Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Dipartimento di Ingegneria dell’Informazione
La Teoria di Shannon Monica Bianchini Dipartimento di Ingegneria dell’Informazione Università di Siena
2
Introduzione Nel 1949, Claude Shannon pubblicò un articolo intitolato “Communication Theory of Secrecy Systems”, sul Bell Systems Technical Journal, che ebbe ricadute fondamentali sui successivi studi sulla crittografia
3
La segretezza perfetta 1
Vi sono due approcci fondamentali per descrivere la sicurezza di un crittosistema Sicurezza computazionale È una misura dello sforzo computazionale richiesto per violare il crittosistema Un crittosistema è computazionalmente sicuro se il miglior algoritmo per violarlo richiede un tempo macchina “irragionevole” (non è una vera prova, ha significato puramente pratico) Un crittosistema è dimostrabilmente sicuro se il problema di violarlo è riducibile a qualche problema noto di cui si conosce la difficoltà Sicurezza incondizionata È una misura della sicurezza del crittosistema quando non si pongono limiti alla quantità di calcoli che Oscar può eseguire Un crittosistema è incondizionatamente sicuro se non può essere violato, neanche avendo a disposizione risorse (spazio-temporali) infinite
4
La segretezza perfetta 2
Quando si discute della sicurezza di un crittosistema, occorre anche definire il tipo di attacco cui le tecniche di sicurezza si rivolgono Shift cipher, Substitution cipher, Vigenere cipher non sono computazionalmente sicuri per attacchi tipo Ciphertext-only Shift cipher, Substitution cipher, Vigenere cipher sono incondizionatamente sicuri per attacchi tipo Ciphertext-only se un unico elemento del plaintext viene codificato utilizzando una data chiave La sicurezza incondizionata di un sistema non può essere studiata dal punto di vista della complessità computazionale, dato che si ipotizzano risorse infinite il framework appropriato è quello probabilistico
5
La segretezza perfetta 3
Definizione 1 Siano X e Y variabili casuali. Indichiamo con p(x) e p(y), rispettivamente, le probabilità che X assuma valore x e Y assuma valore y. La probabilità congiunta, p(x,y), è la probabilità che X e Y assumano congiuntamente i rispettivi valori. La probabilità condizionale p(x|y) descrive la probabilità che X assuma valore x, se Y vale y. Le variabili casuali X e Y sono indipendenti se p(x,y)=p(x)p(y), per tutti i possibili valori x di X e y di Y Le probabilità congiunte sono correlate dalle formule p(x,y)=p(x|y) p(y) e p(x,y)=p(y|x) p(x), da cui… Teorema 1 (Teorema di Bayes) Se p(y)>0, allora p(x|y) = ____________ Corollario 1 X e Y sono variabili indipendenti se e solo se p(x|y)=p(x), per ogni x,y p(x) p(y|x) p(y)
6
La segretezza perfetta 4 pC(y)= pK(k) pP (dk(y))
Sia P la distribuzione di probabilità sullo spazio P dei plaintext; denotiamo la probabilità a priori di occorrenza del plaintext x con pP (x) Supponiamo che la chiave k venga scelta da Alice e Bob utilizzando un qualche tipo di distribuzione di probabilità (potrebbe essere uniforme, ma non è necessario) e sia pK(k) la probabilità di k Poiché la scelta della chiave è precedente alla scrittura di qualsiasi messaggio, k e x sono eventi indipendenti Le due distribuzioni di probabilità P e K inducono una distribuzione di probabilità C su C Per una data chiave k K, sia C (k)={ek(x): x P }, cioè C (k) rappresenta l’insieme dei possibili testi cifrati se la chiave è k; allora, per ogni y C pC(y)= pK(k) pP (dk(y)) {k: yC(k)}
7
La segretezza perfetta 5 pP (x|y) = ____________________
Inoltre, per ogni yC e xP, la probabilità condizionale che si ottenga y, dato x, può essere calcolata come… pC(y|x) = pK(k) È infine possibile calcolare la probabilità condizionale che si abbia il plaintext x, dato il testo cifrato y, pP (x|y) = ____________________ {k: x=dk(y)} pK(k) pP (x) {k: x=dk(y)} pK(k) pP (dk(y)) {k: yC(k)}
8
La segretezza perfetta 6
Segretezza perfetta Oscar non può ottenere nessuna informazione sul plaintext dall’osservazione del testo cifrato Formalmente… Definizione 2 Un crittositema è perfettamente segreto se pP (x|y) = pP (x), per ogni xP, yC, cioè la probabilità a posteriori del plaintext x, dato il testo cifrato y, è identica alla probabilità a priori di x Shift cipher garantisce la segretezza perfetta
9
La segretezza perfetta 7
Teorema 2 Supponiamo che le 26 chiavi di Shift cipher vengano utilizzate con egual probabilità, 1/26. Per ogni distribuzione di probabilità del plaintext, Shift cipher garantisce la segretezza perfetta Infatti… P=C=K=Z26. Sia yZ26, allora: pC(y)= pK(k) pP (dk(y))= __ pP (y-k)= __ pP (y-k) Per y fissato, y-k (mod 26) è una permutazione in Z26 e pP è una distribuzione, da cui pP (y-k) = pP (y)=1. Di conseguenza pC(y)=1/26, per ogni y Z26. Inoltre pC(y|x)=pK(y-x (mod 26))=1/26, dato che, x,y, l’unica chiave k tale che ek(x)=y è k=y-x (mod 26). Infine, per il Teorema di Bayes pP (x|y) = ____________ = __________ = 1 1 kZ26 kZ26 26 26 kZ26 kZ26 yZ26 pP (x) pC(y|x) pP (x) 1/26 pP (x) pC(y) 1/26
10
La segretezza perfetta 8
Pertanto Shift cipher è inviolabile, a patto di usare una diversa chiave casuale per codificare ciascun carattere nel plaintext Per il Teorema di Bayes, la condizione pP (x|y) = pP (x), è equivalente alla pC (y|x) = pC (y), per ogni xP, yC. Pertanto, se pC (y)>0, per ogni yC esiste almeno una chiave k tale che ek(x)=y |K |>|C | Inoltre, per ciascun crittosistema si ha |C |>|P |, dato che le funzioni di codifica sono iniettive Nel caso particolare in cui |K |=|C |=|P |, vale il seguente… Teorema 3 Sia (P,C,K,E,D ) un crittosistema per cui |K |=|C |=|P |. Il crittosistema garantisce segretezza perfetta se e solo se ciascuna chiave viene selezionata con ugual probabilità, 1/|K | e per ogni xP, yC, esiste un’unica chiave k tale che ek(x)=y
11
La segretezza perfetta 9
Infatti… Supponiamo che il crittosistema garantisca segretezza perfetta. Poiché per ogni xP, yC esiste almeno una chiave k tale che ek(x)=y, |C |=|{ek(x): k K }||K | Tuttavia nell’ipotesi di uguaglianza |K |=|C |, non esistono due chiavi k1k2 tali che ek (x)=ek (x)=y esiste esattamente una chiave k tale che ek(x)=y. Sia n=|K |. Sia P={xi: 1 i n} e sia yC fissato. Indicando con k1,k2,…kn, le n chiavi in K, sia ek (xi)=y, 1 i n. Per il Teorema di Bayes… pP (xi|y) = ____________ = __________ L’ipotesi di segretezza perfetta, pP (xi|y)=pP (xi), implica pK(ki)=pC(y), 1 i n le chiavi vengono selezionate in modo equiprobabile (=pC(y)) e essendo in numero di |K|, pK(k)=1/|K | 1 2 i pC(y|xi) pP (xi) pK(ki) pP (xi) pC(y) pC(y)
12
One-time Pad 1 Sia n1 un intero, e siano P = C = K =(Z2)n
Un crittosistema che realizza la segretezza perfetta è One-time Pad, ideato da Gilbert Vernan nel 1917 per la crittatura dei messaggi telegrafici One-time Pad fu ritenuto “inviolabile” per molti anni, anche se la dimostrazione della sua segretezza è dovuta a Shannon (oltre 30 anni dopo che era stato formulato) Sia n1 un intero, e siano P = C = K =(Z2)n Per x=(x1,x2,…xn), y=(y1,y2,…yn) e k=(k1,k2,…kn) ek(x)=(x1+k1,x2+k2,…,xn+kn) (mod 2) dk(y)=(y1+k1,y2+k2,…,yn+kn) (mod 2)
13
One-time Pad 2 La segretezza perfetta di un crittosistema, tuttavia, comporta notevoli svantaggi: Dato che |K ||P |, il numero di chiavi che devono essere comunicate in maniera sicura è almeno pari alla dimensione del plaintext One-time Pad richiede n bit di chiave per codificare n bit di plaintext La stessa chiave può essere utilizzata una sola volta: da questa ipotesi dipende l’incondizionata sicurezza del sistema (ed il nome “one-time” dell’algoritmo) One-time Pad è vulnerabile per attacchi del tipo Known plaintext, poiché la chiave k può essere calcolata come XOR di x ed ek(x) Per ogni messaggio, una nuova chiave deve essere creata ed inviata su un canale sicuro
14
One-time Pad 3 Queste limitazioni hanno rallentato il successo commerciale dei crittosistemi sicuri, anche se One-time Pad ha trovato applicazioni in ambito diplomatico e militare Lo sviluppo storico della crittografia ha teso invece alla creazione di crittosistemi in cui una sola chiave può essere utilizzata per codificare molti messaggi, mantenendo salva, almeno, la sicurezza computazionale Data Encryption Standard DES realizza questo requisito
15
Crittosistemi prodotto 1
Un’altra idea introdotta da Shannon nel 1949 fu quella di combinare più crittosistemi, formandone il “prodotto”, idea che è alla base dei crittosistemi attuali come, ad esempio, DES Sia C=P. Crittosistemi di questo tipo si dicono endomorfi. Siano S1=(P,P,K1,E1,D1) e S2=(P,P,K2,E2,D2) due crittosistemi endomorfi che condividono lo stesso plaintext. Il prodotto dei due crittosistemi è (P,P,K1K2,E,D ) Una chiave del crittosistema prodotto ha la forma k=(k1,k2), con k1K1 e k2K2 Le regole di codifica/decodifica del crittosistema prodotto sono e(k ,k ) (x)=ek (ek (x)) d(k ,k ) (x)=dk (dk (x)) 1 2 2 1 1 2 1 2
16
Crittosistemi prodotto 2
Poiché tutti i crittosistemi hanno associata, allo spazio delle chiavi, una distribuzione di probabilità, occorre definire la distribuzione di probabilità anche per lo spazio delle chiavi del crittosistema prodotto, come… pK(k1,k2)=pK (k1)pK (k2) cioè viene scelta k1 in base alla distribuzione K1 e quindi, indipendentemente, k2 secondo K2 Per descrivere un esempio di crittosistema prodotto, introduciamo MULTIPLICATIVE Cipher 1 2 Sia P = C =Z26 e sia K={aZ26: MCD(a,26)=1} Per a K, si definisce ea(x)=a x (mod 26) da(y)= a-1y (mod 26) x,yZ26
17
Crittosistemi prodotto 3
Sia M Multiplicative cipher ed S Shift cipher (entrambi con distribuzione omogenea delle chiavi) MS è Affine cipher In questo caso, MS=SM, cioè i due crittosistemi commutano: la proprietà non è vera in generale. L’operazione di prodotto è, invece, sempre associativa Considerando il prodotto di un crittosistema endomorfico S per se stesso, si ottiene il crittosistema SS, che si indica con S2 In generale, Sn è un crittosistema iterato Un crittosistema S è idempotente se S2=S. Shift, Substitution, Affine, Hill, Vigenere e Permutation cipher sono tutti idempotenti
18
Crittosistemi prodotto 4
Se un crittosistema non è idempotente, vi è un potenziale aumento della sicurezza considerando l’iterato n-esimo DES consiste di 16 iterazioni Un modo per costruire crittosistemi non idempotenti è quello di considerare il prodotto di due diversi crittosistemi (se i crittosistemi sono idempotenti, non devono commutare) Molti dei crittosistemi più semplici possono essere proficuamente impiegati nel prodotto: il prodotto fra crittosistemi substitution-permutation è una tecnica usata molto comunemente
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.