Crittografia. Corso di Laurea Specialistica. in Informatica. Generatori di Numeri PseudoCasuali

Documenti analoghi
Crittografia. Nozioni di Algebra. Corso di Laurea Specialistica. in Informatica

esistenza dell identità: $ e œ G tale che " a œ G esistenza dell inverso: " a œ G $ a œ G tale che Alberto Leporati Corso di Crittografia 2

Confidenzialità e crittografia simmetrica. Contenuto. Scenario tipico. Intercettazione dei dati. Uso della crittografia simmetrica

Confidenzialità e crittografia simmetrica. Contenuto. Scenario tipico. Corso di Sicurezza su Reti Uso della crittografia simmetrica

Confidenzialità e crittografia simmetrica. Contenuto. Scenario tipico. Sicurezza su reti Uso della crittografia simmetrica

Crittografia. Crittosistemi a Chiave Pubblica. Corso di Laurea Specialistica. in Informatica

maggiore velocità per cifratura/decifratura l uso di chiavi più corte comporta: memorizzazione efficiente Alberto Leporati Corso di Crittografia 2

Crittografia. Corso di Laurea Specialistica. in Informatica. Crittosistemi basati sulle Curve. Ellittiche

La crittografia moderna e la sua applicazione

I Cifrari Perfetti. Alessio Nunzi Fabiola Genevois Federico Russo

Crittografia Moderna. Segretezza Perfetta: nozioni

Numeri casuali. Randomness by obscurity. Generazione Deterministica? Caratteristiche del sistema. Caratteristiche del sistema

Pr(x y) = Pr(x) si può riformulare questa definizione in termini di indistinguibilità x 0, x 1 P e y C, scelta in modo casuale una chiave k K

le sorgenti casuali (macroscopiche) sono idea: si usa un generatore di numeri sequenza di bit casuali Alberto Leporati Corso di Crittografia 2

una possibile funzione unidirezionale

Crittografia. Corso di Laurea Magistrale in Informatica Algebra, Teoria dei Numeri e Relative Assunzioni. Ugo Dal Lago. Anno Accademico

Numeri casuali. Randomness by obscurity. Generazione Deterministica? Caratteristiche del sistema. Caratteristiche del sistema

crittosistemi a flusso

5. Analisi dei dati di input

Crittografia e sicurezza delle reti. 1. Classi complessità probabilistiche e OWF 2. Test primalità

L one-time pad o cifrario di Vernam (1917) è il crittosistema tale che P = C = K = (Z 2 ) m. è un crittosistema a segretezza perfetta

Numeri casuali. Randomness by obscurity. Generazione Deterministica? Caratteristiche del sistema. Caratteristiche del sistema

NUMERI CASUALI E SIMULAZIONE

Corso di Crittografia Prof. Dario Catalano. Introduzione alla crittografia asimmetrica

Metodi di Ottimizzazione

una possibile funzione unidirezionale

Corso di Crittografia Prof. Dario Catalano. Primitive Asimmetriche

Cenni di teoria dell informazione

sia G un gruppo ciclico di ordine n, sia g un generatore di G

GENERAZIONE DI NUMERI PSEUDOCASUALI

CALCOLO NUMERICO. Prof. Di Capua Giuseppe. Appunti di Informatica - Prof. Di Capua 1

2.3.1 Generazione di numeri pseudocasuali con distribuzione uniforme

Crittografia a chiave pubblica

Limiti della calcolabilità

Stream cipher. Cifrari simmetrici. Stream cipher. Sicurezza su reti I cifrari simmetrici possono essere: Cifrari a blocchi: Stream Cipher:

una possibile funzione unidirezionale

una possibile funzione unidirezionale

Crittografia a chiave pubblica

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi

Crittografia a chiave pubblica

idea della crittografia a chiave pubblica

Corso di Crittografia

L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013

sia G un gruppo ciclico di ordine n, sia g un generatore di G

Progetto Lauree Scientifiche Crittografia V incontro

Stream cipher. Cifrari simmetrici. Stream cipher. Stream cipher. I cifrari simmetrici possono essere:! Cifrari a blocchi: !

Crittografia. Firme Digitali e Funzioni di Hash. Corso di Laurea Specialistica. in Informatica

crittosistemi a flusso

(G, ) un gruppo moltiplicativo di ordine n l ordine di un elemento g G, o(g), è il minimo intero positivo m tale che g m = 1

Il concetto di calcolatore e di algoritmo

Seminario sulla Crittografia. Corso: T.A.R.I Prof.: Giulio Concas Autore: Ivana Turnu

La matematica negli algoritmi. Maat: dea egizia dell ordine. Liber Abaci 1202

sia G un gruppo ciclico di ordine n, sia g un generatore di G bisogna determinare l unico intero x con 1 x n 1 tale che g x = y

logaritmo discreto come funzione unidirezionale

Generatori di sequenze pseudocasuali. Manuela Aprile Maria Chiara Fumi

Generatori di numeri pseudocasuali

Cifrari Storici. Prologo. Cifrario di Cesare. x mod 26. Motivazioni: Crittografia manuale Sono note tecniche statistiche per forzarli!

Capitolo 11. Teoria della computazione Pearson Addison-Wesley. All rights reserved

Teoria dei Fenomeni Aleatori AA 2012/13

Probabilità e Statistica

Teoria della Calcolabilità

Gruppi, Anelli, Campi

Problemi, algoritmi, calcolatore

Generazione di numeri random. Distribuzioni uniformi

Minimi quadrati e massima verosimiglianza

Teoria della complessità

una possibile funzione unidirezionale

Fully Homomorphic Ecryption

Funzioni di hash sicure: MD5 e SHA-1

Corso di Crittografia Prof. Dario Catalano. Cifrari Simmetrici (Prima Parte)

Esercitazione per la prova scritta

Teoria della Calcolabilità!

una possibile funzione unidirezionale

problema del logaritmo discreto

Complessità computazionale. Complessità e Crittografia

Corso di Crittografia

crittografia a chiave pubblica

funzione φ di Eulero, o funzione toziente è definita sugli interi positivi φ(n) è il numero di interi positivi n che sono coprimi con n

Teoria dei Fenomeni Aleatori AA 2012/13

da chi proviene un messaggio?

Fondamenti dell informatica

SICUREZZA DI SHANNON E SICUREZZA COMPUTAZIONALE

si cerca di scegliere e non troppo grande e tale che nella scrittura binaria di e ci siano pochi 1 e piccolo = cifratura più veloce

Analisi e scelta dei dati di input

Analisi e scelta dei dati di input

Corso di Crittografia

Number Theory. Teoria dei numeri. Teorema della divisione. Corso di Sicurezza su reti Concetti preliminari per RSA

Dal messaggio a sequenze di numeri

Casualità e sicurezza Fabrizio d Amore Facoltà di Ingegneria dell informazione, informatica e statistica

Teoria della Calcolabilità!

Capitolo 8: Teoria della complessitá

schema di firma definizione formale

Converte una chiave di al più 14 word a 32 bit (K-array) in un array di 18 sottochiavi a 32 bit (P-array) Genera 4 S-box, ognuna con 256 word a 32 bit

Aritmetica 2009/10 Compitino 3/11/ x 16 mod 23 3x 2 mod 5

Transcript:

Crittografia Corso di Laurea Specialistica in Informatica Generatori di Numeri PseudoCasuali Alberto Leporati Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi di Milano Bicocca e-mail: alberto.leporati@unimib.it leporati@disco.unimib.it

molti algoritmi crittografici necessitano di (tanti) bit casuali le sorgenti casuali (macroscopiche) sono rare in Natura Ø produrre bit casuali è costoso idea: si usa un generatore di numeri pseudocasuali (PRNG) dato un seme casuale, un PRNG produce una sequenza di bit che è indistinguibile da una sequenza di bit casuali Alberto Leporati Corso di Crittografia 2

indistinguibile significa che nessun algoritmo eseguibile in tempo polinomiale su una MdT probabilistica sa decidere se la sequenza emessa dal PRNG è casuale oppure calcolata Ø nozione di tipo computazionale la casualità sembra esistere veramente in Natura Ø non sarebbe una nozione di tipo computazionale Alberto Leporati Corso di Crittografia 3

definizione: un PRNG è un algoritmo, eseguibile in tempo polinomiale su una MdT deterministica, che calcola una funzione e tale che: G : {0,1} k Ø {0,1} l(k), con l(k) > k per ogni algoritmo D (distinguisher) œ PPT per ogni polinomio p( ) per tutti gli interi k sufficientemente grandi vale: ) Pr[ {0,1} ; ( ) : ( ) 1] Pr[ {0,1} : ( ) 1] k l ( k x r G x D r = r D r = < ) p 1 ( k Alberto Leporati Corso di Crittografia 4

osservazione: la distanza tra le due distribuzioni di probabilità corrisponde alla capacità di inganno di G i PRNG possono essere uniformi o non uniformi generatore congruenziale lineare: siano a, b ed m tre interi tali che 0 a, b < m dato un seme intero s, con 0 s < m, il sistema di equazioni: x x 0 i = = s ax i 1 + b mod m i 1 si chiama generatore congruenziale lineare Alberto Leporati Corso di Crittografia 5

proposto da Lehmer nel 1951 la scelta di a, b ed m è critica per non ottenere sequenze facili da prevedere viene usato spesso (ma non in Crittografia) non è un buon generatore: i numeri prodotti presentano relazioni lineari se Eve scopre quattro valori x 0, x 1, x 2, x 3 prodotti, risolvendo il sistema di equazioni: trova i valori di a, b, ed m x x x 1 2 3 ax ax ax 0 1 2 + + + b b b mod mod mod m m m Alberto Leporati Corso di Crittografia 6

problema: costruire una funzione G : {0,1} k Ø {0,1} l(k) che allunga l input, verificando i requisiti della definizione domanda: dobbiamo costruire una funzione diversa per ogni possibile funzione l(k)? Alberto Leporati Corso di Crittografia 7

risposta: no. A partire da un PRNG H : {0,1} k Ø {0,1} k+1 possiamo costruire qualunque PRNG G : {0,1} k Ø {0,1} l(k) come segue: G(x 0 ) x 1 σ 1 = H(x 0 ) x 2 σ 2 = H(x 1 ) x l(k) σ l(k) = H(x l(k)-1 ) output (σ 1, σ 2,, σ l(k) ) @ x i œ {0,1} k @σ i œ {0,1} @" i œ {1, 2,, l(k)} Alberto Leporati Corso di Crittografia 8

abbiamo quindi ridotto il problema di costruire G a quello di costruire H, che allunga l input di un solo bit ci basterà una funzione one-way definiamo il concetto di hard-core bit se f è una funzione (permutazione) one-way, è difficile da invertire: dato y, è difficile calcolare x tale che f(x) = y se x è difficile da calcolare, alcuni suoi bit saranno difficili da calcolare (se x œ {0,1} n, devono essere più di log 2 n, ad esempio n/4) Alberto Leporati Corso di Crittografia 9

i bit difficili da calcolare sono hard-core bit per f formalmente, un hard-core bit è l output di un predicato hard-core definizione: sia f : {0,1} n Ø {0,1} n una permutazione one-way, e B: {0,1} n Ø {0,1} un predicato calcolabile in tempo polinomiale su una MdT deterministica. B è un predicato hard-core per f se " algoritmo A œ PPT e " polinomio p( ) $ n A,p tale che: n n n A p Pr[ x {0,1} ; b A ( f ( x )) : b = B ( x )] +, 1 2 p 1 ( n ) Alberto Leporati Corso di Crittografia 10

utilizzando f e B possiamo costruire un PRNG G : {0,1} k Ø {0,1} k+1 come segue: G( x ) = f(x) B(x) k bit 1 bit k bit osservazione: l output di G è difficile da prevedere domanda: come facciamo a costruire predicati hard-core? caso speciale: se g è un generatore di p * e y = g z mod p, allora msb(z) è un predicato hard-core per l esponenziazione modulare [Blum e Micali] Alberto Leporati Corso di Crittografia 11

quindi, possiamo costruire un PRNG basato sull esponenziazione modulare come segue: G(z) = g z msb(z) in generale, possiamo procedere come segue definizione: siano x = (x 1, x 2,, x n ) e y = (y 1, y 2,, y n ) due sequenze di n bit. Il prodotto interno modulo 2 tra x e y, denotato con x, yú, è definito come segue: n n i i i= 1 i= 1 def x, y = x y mod 2 = ( x i y i ) Alberto Leporati Corso di Crittografia 12

teorema (Goldreich Levin): sia f(x) una permutazione one-way, e sia g(x, y) = f(x) y, con x = y = n. Allora la funzione: B(x, y) = def x, yú è un predicato hard-core per g osservazione: se f è una permutazione one-way, anche g lo è quindi, data (solo) la permutazione one-way f su {0,1} n, possiamo costruire un PRNG G : {0,1} 2n Ø {0,1} 2n+1 Alberto Leporati Corso di Crittografia 13

come segue: G(x, y) = g(x, y) B(x, y) = f(x) y x, yú domanda: quando abbiamo un algoritmo G che pensiamo essere un PRNG, come facciamo a dimostrarlo? idea: possiamo eseguire dei test sulla sequenza di bit prodotti da G, per vedere se ci sono relazioni statistiche tra di essi problema: i test (e le relazioni da testare) sono infiniti! questo significa che non possiamo dimostrare che G è uno PRNG? Alberto Leporati Corso di Crittografia 14

per fortuna, Yao ha dimostrato che esiste un test universale definizione: sia G : {0,1} k Ø {0,1} l(k). G è impredicibile se e solo se " i œ {1,2,, l(k)}, " polinomio p( ) e " algoritmo A œ PPT, $ k A,p tale che " k k A,p : Pr[ x {0,1} k ; ( σ 1,..., ˆ σ i σ l ( k ) ) A ( = σ G 1 ( x,..., ); σ i ) : = ˆ 1 σ i σ i ] 1 2 + p 1 ( k ) Alberto Leporati Corso di Crittografia 15

informalmente, G è impredicibile se il problema di indovinare l i-esimo bit della sequenza prodotto in output, dati i primi i-1 bit, è intrattabile con indovinare si intende significativamente meglio rispetto a lanciare una moneta non truccata teorema [Yao, 1985]: G è un PRNG se e solo se è impredicibile Alberto Leporati Corso di Crittografia 16

Cifratura ciclica proposta da Meyer e Matyas nel 1982 a partire da una master key (seme) si produce una sequenza di chiavi di sessione si usa un contatore avente periodo il valore del contatore viene usato come chiave (o come testo in chiaro) in un crittosistema simmetrico ogni volta che viene usato, il contatore viene incrementato Alberto Leporati Corso di Crittografia 17

Cifratura ciclica per rafforzare ulteriormente lo schema si può usare una sequenza di input più complicata contatore con periodo N C C+1 master key k m ENC x i = Ekm (C+1) Alberto Leporati Corso di Crittografia 18

Keystream nel modo OFB si può anche usare il modo di funzionamento OFB di un crittosistema simmetrico per generare un keystream, che poi si usa come l output di un PRNG z 0 z 1 E k z 2 E k m 1 m 2 c 1 c 2 Alberto Leporati Corso di Crittografia 19

ANSI X9.17 è uno dei PRNG crittografici migliori tra quelli noti viene usato in PGP utilizza 3DES come indicato in figura (vedere prossima slide) input: DT i : rappresentazione a 64 bit della data e dell ora attuali. Viene aggiornato ad ogni blocco pseudocasuale generato V i : seme da 64 bit chiavi: k 1, k 2 : da 64 bit ciascuna Vengono usate nei tre moduli di 3DES, in modalità EDE (encryption decryption encryption) Alberto Leporati Corso di Crittografia 20

ANSI X9.17 Alberto Leporati Corso di Crittografia 21

ANSI X9.17 output: R i : blocco pseudocasuale da 64 bit V i+1 : valore aggiornato del seme dalla figura si vede che: R i = EDEk1,k2 (V i EDE k1,k2 (DT i )) V i+1 = EDEk1,k2 (R i EDE k1,k2 (DT i )) riassumendo, il PRNG: usa una chiave da 112 bit vengono fatte nove cifrature/decifrature con DES si usano i valori pseudocasuali DT i e V i, che cambiano ad ogni valore prodotto Alberto Leporati Corso di Crittografia 22

ANSI X9.17 per quanto riguarda la sicurezza: la quantità di informazioni da compromettere è enorme anche se Eve riesce a trovare un R i, non riesce comunque a trovare i successivi Alberto Leporati Corso di Crittografia 23

Generatore di Blum, Blum e Shub (BBS) proposto nel 1986 siano p e q numeri primi (grandi) tali che: p ª q ª 3 mod 4 sia n = pÿ q si sceglie a caso s tale che MCD(s, n) = 1 (s non è multiplo né di p né di q) il generatore produce la sequenza di bit: B 1, B 2, con il seguente algoritmo Alberto Leporati Corso di Crittografia 24

Generatore di Blum, Blum e Shub (BBS) BBS(s) X 0 = s 2 mod n i = 1 while (true) do X i = (X i-1 ) 2 mod n B i = X i mod 2 @ B i = lsb(x i ) la sicurezza si basa sulla (congetturata) difficoltà di fattorizzare n Alberto Leporati Corso di Crittografia 25

Generatore di Blum, Blum e Shub (BBS) si dimostra che BBS supera il next-bit test ovvero, non esiste nessun algoritmo polinomiale che, dati i primi k bit della sequenza di output: B 1, B 2,, B k è in grado di indovinare il (k+1)-esimo (cioè B k+1 ) con probabilità > ½ Alberto Leporati Corso di Crittografia 26