Teoria dell`Informazione e Crittografia Claude Shannon
by user
Comments
Transcript
Teoria dell`Informazione e Crittografia Claude Shannon
Teoria dell’Informazione e Crittografia di Francesco Napoli Claude Shannon C. Shannon è considerato "il padre della teoria dell'informazione“. A Mathematical Theory of Communication (1948) Communication Theory of Secrecy Systems (1949) (Bell Systems Technical Journal) Shannon • La moderna teoria dell’informazione è stata originariamente sviluppata da Shannon per lo studio teorico del problema generale della comunicazione efficiente ed affidabile su di un canale reale inaffidabile (rumoroso). • Shannon si rende conto che la Crittografia fornisce interessanti applicazioni della sua MTC. Sistema di Comunicazione sorgente canale rumore destinazione Modello dettagliato Sorgente Destinazione Acquisizione Ricostruzione Codifica sorgente Decodifica sorgente distorsione (rumore) cifratura Codifica canale decifratura Decodifica canale Canale discreto modulazione Canale continuo demodulazione Crittosistema - Modello Generale Sorgente del messaggio M testo in chiaro cifratura ki Sorgente della chiave Destinazione intrusione C C testo cifrato C' Canale insicuro Canale sicuro M C' testo cifrato ki testo in chiaro decifrazione Struttura Crittosistema Quintupla (P,C,K,E,D): • P Sorgente Aleatoria v.a. X v.a. indip. • K “ “ “ “ v.a. K • C “ “ “ “ v.a. Y • E: y = eki (x) • D: x = d ki ( y ) d ki (eki ( x)) = x Ipotesi Assunzioni: • il nemico (il crittoanalista) conosce il CS utilizzato. • Il nemico è in grado di intercettare il testo cifrato (chipertext attack) e dispone di capacità computazionali illimitate. • Ipotesi pessimistiche • Sicurezza matematicamente trattabile • Realistiche con il passare del tempo Informazioni Diverse • il decifratore è colui che è autorizzato a leggere il messaggio e quindi conosce la chiave utilizzata. • il crittoanalista, invece, conosce solo le probabilità a priori con cui verranno utilizzate le chiavi nel crittosistema e i messaggi nel testo in chiaro. Segretezza Perfetta (1) Definizione: un CS ha segretezza perfetta se la probabilità a posteriori che il testo in chiaro sia x, avendo osservato il testo cifrato y, è identica alla probabilità a priori che il testo in chiaro sia x, cioè: Pr[X=x|Y=y] = Pr[X=x] per ogni x in P, y in C. Quando il CS utilizzato ha segretezza perfetta il crittoanalista non può ottenere nessuna informazione sul testo in chiaro osservando il testo cifrato. Segretezza Perfetta (2) • Grazie al teorema di Bayes si ottiene immediatamente il seguente teorema: • Teorema: in un CS perfetto Pr[y] = Pr[y|x], per ogni x in P e per ogni y in C. • Cioè, in un CS perfetto, il testo in chiaro e il testo cifrato sono descrivibili da due variabili aleatorie (X e Y) statisticamente indipendenti. • Teorema: in un CS perfetto |K| ≥ |P| • “the number of different keys is at least as great as the number of messages” • Teorema: il cifrario di Vernam è un CS perfetto se la chiave è scelta con probabilità uniforme Pr[k] = 1 / |K| (One-time-Pad è la versione binaria del CS di Vernam). • Questo ovviamente quando ogni nuova chiave è generata casualmente per cifrare ogni nuova stringa di testo in chiaro. Riutilizzo della Chiave • Siccome nel caso del CS di Vernam la chiave che bisognerebbe spedire su un canale sicuro è lunga almeno quanto il messaggio, l’utilizzo di tale CS diventa non conveniente. • Allora non rimane altro che riutilizzare la stessa chiave per cifrare più di un testo in chiaro. • Per cifrare un lungo messaggio M = x x . . . xN (M è l’intero messaggio e le x sono gli elementi dell’insieme dei testi in chiaro P (caratteri o stringhe di caratteri)) si cifra ciascun elemento xi in yi = ek(xi) con la stessa chiave k e si concatenano i risultati nel messaggio cifrato C = y1 y2 . . . yN. • Un CS che riutilizza la chiave non è perfetto poiché ci sarà sempre un N per cui il numero di chiavi sarà inferiore al numero di messaggi di lunghezza N (|M|>|K|). • In questo modo il crittoanalista può guadagnare informazioni sulla chiave o sul messaggio osservando il testo cifrato. • Tuttavia un CS che è giudicato insicuro dal punto di vista della teoria dell’informazione può tuttavia essere computazionalmente sicuro e quindi fornire ancora un’elevata protezione nei confronti di eventuali chipertext attacks considerando che un opponente reale può disporre solo di una quantità finita di risorse computazionali. 1 2 i Entropia (1) • In MTC è stato mostrato che l’informazione può essere convenientemente misurata grazie all’entropia. • Quindi possiamo dare una caratterizzazione di un CS perfetto in termini di entropia. • In un CS sono coinvolte due scelte descrivibili secondo una statistica: la scelta del messaggio e la scelta della chiave. • Possiamo quindi misurare la quantità d’informazione prodotta quando un messaggio è scelto: H ( X ) = − ∑ Pr( x) log 2 Pr( x) x∈ X • essendo la sommatoria estesa a tutti i messaggi. Entropia (2) • Similarmente, c’è un’incertezza associata con la scelta della chiave: H ( K ) = − ∑ Pr(k ) log 2 Pr(k ) k∈K • essendo la sommatoria estesa a tutte le chiavi. • Nota: in un CS la quantità d’informazione presente nel testo in chiaro è al più pari a log |P| (quando i testi sono tutti equiprobabili). 2 Entropia (3) H ( K ) = log 2 | Κ • Allora, in un CS perfetto (|K| >= |P| = n) se le chiavi sono tutte equiprobabili (Pr[k] = 1 / |K| per ogni k in K) si ha: | ≥ log 2 n ≥ H ( X ) ⇒ ⇒ H ( K ) ≥ log 2 n • Cioè l’informazione portata dal testo in chiaro può essere nascosta al crittoanalista (in un CS perfetto) se l’incertezza sulla chiave H(K) è almeno log2 n. • “the amount of uncertainty we can introduce into the solution cannot be greater than the key uncertainty” Equivocazione • Entropia condizionata o equivovazione: H ( X | Y ) = −∑∑ P ( x, y ) log P( x | y ) y x • Nella MTC l’ equivocazione del canale è una stima dell’informazione perduta in media nel canale rumoroso. • Rappresenta l’incertezza che rimane in media sul simbolo trasmesso dopo l’osservazione del simbolo ricevuto. Equivocazioni Equivocazione della chiave: H ( K | Y ) = − ∑∑ P ( k , y ) log P ( k | y ) y k Equivocazione del messaggio: H ( X | Y ) = −∑∑ P ( x, y ) log P ( x | y ) y x Punto di vista del crittoanalista: un crittosistema è quivalente ad un sistema di comunicazione su di un canale rumoroso. Index of Secrecy • Quindi l’equivocazione della chiave (k) o del messaggio (x) misura quanta informazione sulla chiave o sul messaggio non è rivelata dal testo cifrato (y). • Maggiore è l’equivocazione e maggiore è l’incertezza che rimane sulla chiave o sul messaggio quando si osserva il testo cifrato. • Shannon propone di utilizzarla come misura della segretezza di un CS (index of secrecy). Informazione Mutua • Informazione mutua: I ( X ;Y ) = H ( X ) − H ( X | Y ) • Nella MTC è una stima dell’informazione media ricevuta dalla sorgente attraverso il canale. • Punto di vista del crittoanalista: l’informazione mutua misura quanta informazione sul testo in chiaro è possibile dedurre dal testo cifrato. • Punto di vista dell’utente: rendere l’informazione mutua tra X e Y la più piccola possibile. • Quindi in un CS perfetto (situazione ideale): I ( X ;Y ) = 0 ⇔ H ( X | Y ) = H ( X ) • Il testo cifrato non dà nessuna informazione sul testo in chiaro. Lunghezza del testo cifrato Più lungo è il testo cifrato, più alta è la probabilità di trovare la chiave H H (K ) L H (K | Y ) XL : Messaggio in chiaro di lunghezza L YL : Messaggio cifrato di lunghezza L H (X L |Y L) L Distanza di Unicità (1) • Teorema: H ( K | Y L ) ≥ H ( K ) − DL • dove: DL = L ⋅ log | P | − H ( X L ) • la ridondanza assoluta dei messaggi di lunghezza L (ridonadanza della sorgente L-estesa le cui realizzazioni sono concatenazioni di L realizzazioni della v.a. X dei testi in chiaro). Distanza di Unicità (2) H (X L) = L⋅ H (X ) In prima approssimazione (random chiper) H ( K | Y L ) ≥ H ( K ) − L ⋅ [H ( X ) − log | P |] H (K | Y L ) = 0 ⇔ L ≥ H (K ) H (K ) = D log | P | − H ( X ) Distanza di unicità: lunghezza minima di testo cifrato necessaria allo opponente per poter calcolare la chiave univocamente. Ridondanza assoluta dei testi in chiaro (linguaggio utilizzato) (ridondanza della sorgente non estesa) Distanza di Unicità (3) • CS ideale: se D = 0 un attaccante non può identificare il messaggio univocamente. • In questo caso ideale, infatti, la distanza di unicità è infinita e l’equivocazione della chiave e del messaggio non va a zero all’aumentare della lunghezza L del testo cifrato osservato. • In pratica è possibile comprimere il messaggio, riducendone la ridondanza, e quindi avvicinarsi il più possibile al caso ideale. • Si può rendere la distanza di unicità grande a piacere applicando una codifica (Huffman) ai testi in chiaro prima della cifratura. • Tuttavia i CS che cercano di avvicinarsi molto al caso ideale hanno i seguenti inconvenienti: • Maggiore complessità : sono sensibilmente più complesse le operazioni di cifratura e decifratura • Propagazione degli errori distruttiva : c’è un’elevata sensibilità agli errori di cifratura e di trasmissione i quali possono essere amplificati dall’operazione di decifrazione e quindi possono portare ad un gran numero di errori nel testo decifrato causando spesso una grave perdita d’informazione. Entropia del Linguaggio (1) • Definiamo entropia del linguaggio HL la misura dell’informazione media per carattere portata da una stringa del testo in chiaro dotata di significato nel linguaggio considerato. • Possiamo considerare come approssimazione del primo ordine di HL l’entropia H(X) dove P = Zm e la distribuzione delle lettere segue la distribuzione delle probabilità del linguaggio considerato. • Siccome in un linguaggio le lettere successive sono correlate, sarà necessario considerare approssimazioni di ordine successivo; ciò ovviamente riduce la stima dell’entropia. • Definiamo quindi la v.a. n-estesa X^n come la v.a. le cui realizzazioni sono stringhe di n caratteri la cui distribuzione di probabilità è quella degli ngrammi della linguaggio considerato. Entropia del Linguaggio (2) • Quindi l’entropia del linguaggio L è definita come: H (X n) H L = lim n →∞ n • e la ridondanza relativa del linguaggio L è definita come: HL Dr = 1 − log 2 | P | Stima dell’entropia (1) Frequenze caratteri Testo: Amleto (Atto I) Amleto Atto I : 34989 caratteri Hamlet Act I : 29624 caratteri P (" A" ) M P(" Z" ) H ( testo) = "Z" ∑ σ ="A" P(σ )log 2 1 P(σ ) Stima dell’entropia (2) H (X ) log 2 | P | η= Dr = 1 − η Ridondanza relativa Efficienza di codifica H (it ) = 3,985 bit / car η (it ) = 0.90 Dr (en) = 0.11 η (en) = 0.89 Dr (it ) = 0.10 H (en) = 4,165 bit / car η r = 1.01 Testo inglese 12 10 10 8 8 frequenze frequenze Testo italiano 12 6 6 4 4 2 2 0 0 5 10 15 lettere 20 25 0 0 5 10 15 lettere 20 25 I caratteri più frequenti Stima dell’entropia (3) Frequenze caratteri Frequenze digrammi Amleto Atto I : 27352 digr Hamlet Act I : 22495 digr Testo: Amleto (Atto I) P (" A" ) M P(" Z" ) H (testo) = P(" A" |" A" ) P(" B" |" A" ) M P (" Z" |" Z" ) " ZZ" ∑ σ =" AA" P( σ )log 2 1 P( σ ) Stima dell’entropia (4) η= Dr = 1 − η H (X ) log 2 | P | Efficienza di codifica Ridondanza relativa η (it ) = 0.82 Dr (en) = 0.22 η (en) = 0.78 H (it ) = 3,574 H (en) = 3,659 Dr (it ) = 0.18 η r = 1.05 Testo inglese Testo italiano 2 4 1.8 3.5 1.6 3 1.4 2.5 frequenze frequenze 1.2 1 0.8 2 1.5 0.6 1 0.4 0.5 0.2 0 0 100 200 300 400 lettere 500 600 0 0 100 200 300 400 lettere 500 600 Stima dell’entropia (5) Frequenze caratteri Frequenze digrammi Frequenze trigrammi P (" A" ) M P(" Z" ) P(" A" |" A" ) P(" B" |" A" ) M P (" Z" |" Z" ) P (" A" |" AA" ) Testo: Amleto (Atto I) Amleto Atto I : 20392 trigr H (testo) = Hamlet Act I : 15730 trigr " ZZZ" ∑ σ =" AAA" P( σ )log 2 P (" B" |" AA" ) M P (" Z" |" ZZ" ) 1 P( σ ) Stima dell’entropia (6) Dr = 1 − η η= H (X ) log 2 | P | Ridondanza relativa H (it ) = 3,188 H (en) = 3,185 Efficienza di codifica η (it ) = 0.73 Dr (en) = 0.32 η (en) = 0.68 Dr (it ) = 0.27 η r = 1.07 Testo italiano Testo inglese 3 1 2.5 0.8 frequenze 0.6 0.4 0.2 0 1.5 1 0.5 0 0 2000 4000 6000 8000 10000 lettere 12000 14000 16000 0 2000 4000 6000 8000 10000 lettere 12000 Stima dell’Entropia con memoria crescente Entropia frequenze 2 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 1 10 100 Memoria 1 n →∞ n H L = H ∞ = lim ∑ P( x) log x =n 1 P( x) 14000 16000 Lingua Inglese • In Inglese (P = Z26) HL = 1.5 bit / car, essendo le lettere correlate (Dr = 0.7), e quindi la ridondanza assoluta sarà: D = log 26 - H = 4.7 – 1.5 = 3.2 bit/car • Utilizzando il CS additivo, la distanza di unicità diviene: N = H(K) / 3.2 = log 26 / 3.2 = 1.5 = 2 caratteri • Nel CS a sostituzione invece si ha: N = H(K) / 3.2 = log 26! / 3.2 = 27.6 = 28 caratteri • In un linguaggio casuale senza memoria (caratteri successivi indipendenti) in cui la distribuzione dei caratteri segue le frequenze dei caratteri della lingua inglese si ha: D = 4.7 - 4 = 0.7 bit/car • e le distanze di unicità sono 7 e 126 caratteri, rispettivamente. • NB: un linguaggio massimamente casuale costituito da stringhe di caratteri distribuiti uniformemente avrà un’entropia massima pari a log 26 = 4.70 bit/car (Dr = 0, D=0 e N=inf). 2 Italiano - Dalla Terra alla Luna Cap 1-3 Volgare - Dante Inferno Canti 1-10 12 12 10 10 8 frequenze frequenze 8 6 4 4 2 2 0 6 0 0 5 10 15 20 25 0 5 10 15 20 25 lettere lettere Latino - De Rerum Natura Liber I 12 4.025 4.02 10 4.015 4.01 4.005 entropia frequenze 8 6 4 3.995 4 3.99 2 3.985 3.98 0 0 5 10 15 lettere 20 25 3.975 1 1.2 1.4 1.6 1.8 2 tempo 2.2 2.4 2.6 2.8 3 Teoria Algoritmica dell’Informazione • Kolmogorov, Solomonoff, Chaitin (’60). • Data una stringa di bit, si definisce contenuto di informazione algoritmica o Kolmogorov Complexity o complessità algoritmica o entropia algoritmica la lunghezza del programma più corto che è in grado di generare la stringa e poi fermarsi. • Nasce dal tentativo di tradurre in linguaggio matematico formale il principio filosofico del rasoio di Occam ("A parità di fattori la spiegazione più semplice tende ad essere quella esatta" ). • Misura assoluta, si concentra sulla singola stringa, non è una teoria probabilistica. TM ( y ) = x X oggetti (stringhe) x K ( x) ≡ min y TM ( y ) = x y Y descrizioni (programmi) Kolmogorov Complexity ed Entropia • La Kolmogorov Complexity di una data stringa x finita non è calcolabile. • Tuttavia limitando lo spazio dei programmi ammissibili diventa una quantità calcolabile nota come Minimum Description Length (MDL). • Inoltre è possibile approssimarla tramite l’entropia informativa di Shannon. • • Teorema: • Cioè per n sufficientemente grande: • Casualità Algoritmica (Kolgomorov randomess): una stringa è casuale se e solo se è più corta di ogni programma in grado di generarla come output. • Quindi una stringa veramente casuale è incomprimibile. K (xn ) lim = H (X ) n →∞ n (dove X è una v.a. a memoria 0) K (xn ) ≈ n ⋅ H ( X ) Entropia Termodinamica e Informazione • Entropia termodinamica secondo la Meccanica Statistica (Boltzmann): S = k log W = k log (1 / 1 / W)= k log (1 / Pw) • Ricordando l’autoinformazione di un evento casuale nella teoria dell’informazione classica, l’entropia di un sistema fisico è direttamente proporzionale al numero di bit richiesti per descrivere lo stato dei suoi componenti microscopici • Quindi, è proporzionale al numero di bit che porta o registra un suo stato-evento miscoscopico. • Un sistema fisico, potendo stare in un numero finito di stati (secondo la teoria quantistica), può quindi registrare una quantità finita di informazione. • Sebbene l’entropia misuri l’informazione (in bit) contenuta a livello miscoscopico nei movimenti atomici, in realtà, essendo questi a noi inaccessibili, è una misura dell’informazione a noi indisponibile sullo stato miscoscopico del sistema: non sappiamo cosa c’è in quei bit. FINE