Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... ·...
Transcript of Cifratura Simmetrica - Libero.itspazioinwind.libero.it/fanciullimassimiliano/files/... ·...
Cifratura Simmetrica
27-Nov-01 Cifratura simmetrica 1
ALGORITMO DI CIFRATURA E( )c = E(k, m) — Il messaggio cifrato c è ottenuto cifrando il messaggio in chiaro m con la chiave k
ALGORITMO DI DECIFRATURA D() m = D(k, c) = D(k, E(k, m)) — Il messaggio in chiaro m è ottenuto decifrando il messaggio cifrato c con la chiave k
PROPRIETÀ di E() e D()I. Dato c è molto difficile ricavare m se non si conosce k e
viceversa
II. Dati m e c è molto difficile ricavare k (a meno che k non sia utilizzata una sola volta)
Algoritmi e Proprietà
27-Nov-01 Cifratura simmetrica 2
Metafora: cassaforte
cm
k
Chiunque vuole aprire la cassaforte, per mettere o togliere valori, deve conoscere la combinazione
E() Network m
k
D()c
27-Nov-01 Cifratura simmetrica 3
Comunicazione Confidenziale
E()m
k
c D()
k
mc
Alice e Bob vogliono comunicare in segreto
Ipotesi:Alice e Bob si fidano l’uno dell’altroAlice e Bob concordano E() e D()La chiave k è un segreto condiviso tra Alice e Bob
network
27-Nov-01 Cifratura simmetrica 4
Considerazioni
...come fa ad essere sicura che m = D(k,c) è buono?Alice conosce m in anticipo
Alice conosce in anticipo parte di m (Es.: email)
Alice sa che m ha certe ridondanze strutturali (Es.: documentoASCII)
Quando Alice riceve c...c = DES(k, m) = f3 9e 8a 73 fc 76 2d 0f 59 43 bd 85 c3 c9 89 d2
bf 96 b6 4f 34 b8 51 dd (multiplo di 8)lo decifra con k = 0x3dd04b6d14a437a9 (56 bit)ed ottiene m = DES(k, c) = “Ci vediamo alle 20!”
27-Nov-01 Cifratura simmetrica 5
� Qual è l’effetto di una “piccola” modifica al testo cifrato?
– Modifica di un bit del testo cifratoSia c[0]7 = ~c[0]7, �M′=“e8¢biö=}o alle 20:00!”
– Modifica di un byte del testo cifratoSia c[CipherTextLenght-1] = 0x00, �m´ = “Ci vediamo alle "}2gÀlõ”
È molto difficile per un avversario determinare c*, modificandoc, in modo tale che c* produca un testo in chiaro m* scelto dall’avversario
Una “piccola” modifica al testo cifrato
27-Nov-01 Cifratura simmetrica 6
Considerazioni
Quando Alice riceve m è portata a credere che:Solo Bob ha visto il messaggio m (confidenzialità)
Il messaggio m proviene da Bob (provenienza)
Il messaggio non è stato modificato (integrità)
Cosa vuol dire che Alice e Bob si fidano l’uno dell’altro?• Alice (Bob) non rivela m
• Alice (Bob) tiene segreta la chiave k
•Alice (Bob) è competente per quanto riguarda l’amministrazione di sistema
•Alice (Bob) non rivela la chiave: Alice (Bob) non “imbroglia”
27-Nov-01 Cifratura simmetrica 7
Chiave compromessa
Se l’avversario viene a conoscenza della chiave k, allora lachiave si dice compromessa
Se k è compromessa, allora• L’avversario può intercettare e leggere tutte le comunicazioni traAlice e Bob (rilascio del contenuto dei messaggi)
• L’avversario può inviare messaggi ad Alice fingendo di essere Bob e viceversa (masquerade)
• L’avversario può intercettare e modificare i messaggi spediti daAlice a Bob e viceversa (modifica dei messaggi)
27-Nov-01 Cifratura simmetrica 8
Chiave non compromessa
� L’avversario inserisce messaggi…ma Alice se ne accorge e li scarta
� L’avversario modifica messaggi…ma Alice se ne accorge e li scarta (idem)
� L’avversario può eliminare messaggi. – La crittografia non aiuta; ci vuole ridondanza.
� L’avversario può replicare messaggi– La crittografia non aiuta; va previsto nel protocollo.– Esempio: si inserisce un contatore cnt nel messaggio: E(k, (m,
cnt))� L’avversario tenta di crittanalizzare i messaggi
27-Nov-01 Cifratura simmetrica 9
Crittanalisi
� Crittanalisi è la disciplina che si occupa di ricavare il testo in chiaro senza conoscere la chiave, oppure lachiave stessa
� Ipotesi1. Il crittanalista ha accesso a tutti i dati cifrati2. Il crittanalista conosce i dettagli dell’algoritmo (Principio di
Kerckhoff)� Tecniche di crittanalisi
1. Ciphertext-only Attack2. Known-Plaintext Attack3. Chosen-Plaintext Attack4. Chosen-Ciphertext Attack
27-Nov-01 Cifratura simmetrica 10
Ciphertext-only attack
� Il crittanalista dispone solo di testo cifrato ottenuto conl’algoritmo E() e la chiave k
– Dato Ci = E(k, Ti), 1≤ i ≤n, determinareil testo in chiaro T1, T2,…,Tn oppurela chiave k, oppureun algoritmo per inferire Tn+1 da Cn+1 = E(k, Tn+1)
� È l’attacco più semplice da cui difendersi perché il crittanalista dispone della minima quantità di informazione
� Solamente algoritmi poco robusti non resistono ad unciphertext-only attack
27-Nov-01 Cifratura simmetrica 11
Known-plaintext attack
� Il crittanalista dispone non solo di testo cifrato maanche del corrispondente testo in chiaro
– Dati Ti e Ci = E(k, Ti), 1≤ i ≤n, determinarela chiave k, oppureun algoritmo per inferire Tn+1 da Cn+1 = E(k, Tn+1)
27-Nov-01 Cifratura simmetrica 12
Chosen-plaintext attack
� Il crittanalista dispone non solo del testo cifrato e delcorrispondente testo in chiaro, ma è anche in grado di scegliere il testo in chiaro
– Dati Pi e Ci = E(k, Ti), 1≤ i ≤n, dove i Pi sono scelti dal crittanalista, determinarela chiave k, oppureun algoritmo per inferire Tn+1 da Cn+1 = E(k, Tn+1)
� Attacco è molto potente: il crittanalista può scegliere“ad arte” dei testi in chiaro che, molto probabilmente,rivelino la struttura della chiave
� Gli algoritmi più diffusi sono stati progettati perresistere a questo attacco
27-Nov-01 Cifratura simmetrica 13
Chosen-ciphertext attack
� Il crittanalista sceglie il testo cifrato da crittanalizzareed ha anche accesso al testo in chiaro corrispondente
– Dati Ci e Ti = D(k, Ci), 1≤ i ≤n, dove i Ci sono scelti dal crittanalista, determinarela chiave k
� Questo attacco è applicato principalmente ai crittosistemi a chiave pubblica
� Nei sistemi simmetrici, questo attacco ha la stessa complessità del chosen-plaintext attack
27-Nov-01 Cifratura simmetrica 14
Brute-force attack (I)
� La sicurezza di un algoritmo simmetrico dipende da:– La forza dell’algoritmo– La lunghezza della chiave
� Brute-force attack: ricerca esaustiva nello spazio delle chiavi
– Se la chiave è su n bit, allora � ci sono 2n chiavi possibili� sono necessari, in media, 2n-1 tentativi
� Si ricorre ad un brute-force attack quando non c’è altro modo per violare l’algoritmo (algoritmo “perfetto”)
– Brute-force attack è il limite superiore alla sicurezza di unalgoritmo di cifratura
27-Nov-01 Cifratura simmetrica 15
Un esempio: sostituzione monoalfabetica
� La chiave è una permutazione dell’alfabeto� Cifratura: Ogni carattere in chiaro è sostituito dal
carattere della chiave che ha la stessa posizione nell’alfabeto
� Numero delle chiavi– 26! – 1 ≈ 4 × 1026 (maggiore del numero di secondi che è
trascorso dalla nascita dell’universo)
Alfabeto in
chiaro A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Chiave
J U L I S C A E R T V W X Y Z B D F G H K M N O P Q
27-Nov-01 Cifratura simmetrica 16
Un esempio (2)
� Esempio– T = “TWO HOUSEHOLDS, BOTH ALIKE IN DIGNITY,
IN FAIR VERONA, WHERE WE LAY OUR SCENE”(“Romeo and Juliet”, Shakespeare)
– T′ = “TWOHO USEHO LDSBO THALI KEIND IGNIT YINFAIRVER ONAWH EREWE LAYOU RSCEN E”
– C = “HNZEZ KGSEZ WIGUZ HEJWR VSRYI RAYRH PRYCJRFMSF ZYJNE SFSNS WJPZK FGLSY S”
27-Nov-01 Cifratura simmetrica 17
Un esempio (3)
� Il cifrario a sostituzione monoalfabetica ha un grosso difetto: mantiene la distribuzione delle frequenze delle lettere
� La crittanalisi si può fare “a mano”– Metodo di al-Kindi (~secolo X)– Ciphertext-only attack, Lingua nota (statistiche), Testo
“abbondante” di argomento “generale”– Costò la testa a Maria Stuart (Congiura di Babington, 1587)
27-Nov-01 Cifratura simmetrica 18
Brute-force attack (II)
T1: Tempo necessario per brute-force a 106 decifrature/s (ragionevole con gli elaboratori odierni)
T2: Tempo necessario per brute-force a 1012 decifrature/s (elaboratori a parallelismo massiccio)
Key size (bit)
Numero di chiavi T1 T2
32 232 = 4.3×109 231µs = 35.8 ′ 2.15 ms
56 256 = 7.2×1016 255µs = 1142 anni 10 ore
128 2128 = 3.4×1038 2127 µs = 5.4×1024 anni 5.4×1018 anni
27-Nov-01 Cifratura simmetrica 19
Brute-force attack (III)
3,9×1027
830000
1 Day
5,6×10261,3×10261,1×1025128
12000028000230056
1 Week1 Month1 YearKey size (bit)
Numero di processori necessari per un brute-force attack
Ogni processore è capace di eseguire 106 cifrature/s
27-Nov-01 Cifratura simmetrica 20
Brute-force attack (IV)
1028$
1 m$1 Day
1027 $1027 $1025$128
1 m$100 k$10 k$561 Week1 Month1 YearKey size
Stima del costo medio di un elaboratore multiprocessore capace di eseguire un brute-force attack nei tempi dati
I costi relativi a 56 bit sono alla portata dei budget dei militari
27-Nov-01 Cifratura simmetrica 21
Brute-force attack (V)
� Software Crackers: 1000 volte più lenti di un hardware cracker, ma gratis!
– Con 512 workstations si ha – 1 probabilità su 200000 di violare una chiave di 56 bit in un
giorno – 1 probabilità su 64000 di violarla in un weekend.
� Sono probabilità migliori di quelle offerte da una lotteria!
� Chinese lottery
27-Nov-01 Cifratura simmetrica 22
PRINCIPALI ALGORITMI
20128CAST18128Blowfish50128IDEA108112Triple-DES4556DES
CLOCKS/BYTE (PENTIUM)
CHIAVE (bit)ALGORITMO
27-Nov-01 Cifratura simmetrica 23
Cifrario simmetrico
� = alfabeto di definizione
�= insieme dei messaggi in chiaro; m = m1m2m3..., con mi � ��
� = insieme dei messaggi cifratic = c1c2c3..., con ci � ��
� = insieme delle chiavi
cm
k
E() m
k
D()c
stessa chiave
27-Nov-01 Cifratura simmetrica 24
Tipi di cifrari simmetrici
� Cifrario a blocchi (block cipher)– Un cifrario a blocchi frammenta il messaggio in chiaro in
ingresso in stringhe (blocchi) di lunghezza t fissa, e cifra unblocco alla volta� Tipicamente t ≥ 64
� Cifrario a carattere (stream cipher)– Un cifrario a carattere è sostanzialmente un cifrario a (blocchi)
a sostituzione in cui t = 1 in cui però la funzione di cifratura può cambiare per ogni carattere in in chiaro
27-Nov-01 Cifratura simmetrica 25
Cifrari a blocchi
� Cifrari semplici– Cifrario a sostituzione: sostituisce simboli di un blocco (gruppi
di simboli) con altri simboli (gruppi di simboli)� Cifrario a sostituzione monoalfabetico� Cifrario a sostituzione omofonico� Cifrario a sostituzione polialfabetica
– Cifrario a trasposizione: permuta i simboli in un blocco– I cifrari semplici non forniscono un livello di sicurezza molto
elevato.� Cifrari composti
– Ottenuti combinando insieme cifrari semplici
27-Nov-01 Cifratura simmetrica 26
SP-network
S…
…S…
…S…
…S…
……
P… … … …
S…
…S…
…S…
…S…
……
P… … … …
� � � �
plaintext
ciphertext
S: sostituzione; P: permutazione, trasposizione
round
27-Nov-01 Cifratura simmetrica 27
Proprietà di un cifrario
� Le principali proprietà di un cifrario sono (Shannon 1940):
– Confusione: Proprietà di rendere la relazione tra chiave etesto cifrato la più complessa possibile
– Diffusione: Proprietà di riorganizzare o distribuire i bit delmessaggio in chiaro in modo che la ridondanza nel testo sia inchiaro sia distribuita su tutto il testo cifrato
� Un round dovrebbe aggiungere confusione e diffusione– Sostituzione aggiunge confusione– Trasposizione aggiunge diffusione
27-Nov-01 Cifratura simmetrica 28
Data Encryption Standard (DES)
Initial Permutation (IP)
Round 1
Round 2
�
Round 16
Scambio a 32 bit
Final Permutation (IP-1)
Testo in chiaro (64 bit)
Testo cifrato (64 bit)
key scheduler
Chiave K (64 bit)
K16
K2
K1
�
K in realtà è su 56 bit: i bit di posizione 8, 16,..., sono di parità
27-Nov-01 Cifratura simmetrica 29
IP
Data Encryption Standard (DES)
Round 1
�
IP-1
Testo in chiaro (64 bit)
Testo cifrato (64 bit)
key scheduler
Chiave K (64 bit)
Round 2
Round 16
L0 R0
L1 R1
L16R16
K16
K2
K1
�
32 32
48
27-Nov-01 Cifratura simmetrica 30
DES: round i-esimo
ki
��⊕
Li-1Li-1 Ri-1Ri-1
RiRi LiLi
32 32
32 32
32
32
48
Li = Ri-1;Ri = Li-1 ⊕ �(Ri-1, Ki)
�: round function
27-Nov-01 Cifratura simmetrica 31
Decifratura in DES
� L’algoritmo di decifratura con chiave K è uguale all’algoritmo di cifratura con chiave K, ma con le chiavi di round Ki applicate in ordine inverso
� Dimostrazione (solo round 1)– La permutazione IP-1 della cifratura è cancellata da IP della
decifratura, si ottiene quindi (L0d, R0
d) ≡ (R16, L16)– Round 1 con chiave di round K16
� L1d = L16; R1
d = R16 ⊕ �(L16, K16)essendo L16 = R15 e R16 = L15 ⊕ �(R15, K16) �� L1
d = L16= R15� R1
d = R16 ⊕ �(L16, K16) = L15 ⊕ �(R15, K16) ⊕ �(R15, K16) = L15
– Il primo round della decifratura produce (L1d, R1
d) ≡ (R15, L15),inverte cioè il round 16
– L’inversione non dipende né da � né da Ki
27-Nov-01 Cifratura simmetrica 32
Round function �
Ri-1 Ki
�
⊕
�1 �2 �3 �4 �5 �6 �7 �8
�
32 48
48
8 × 6 bit
Sostituzione(S-box)
8 × 4 bit
Permutazione
Espansione
6
4
�(Ri-1, Ki) = �(�(�(Ri-1) ⊕ Ki )
32
32
27-Nov-01 Cifratura simmetrica 33
DATA ENCRYPTION STANDARD (DES)
� Permutazioni iniziale IP e finale IP-1
– Sono l’una l’inversa dell’altra – Non sono rilevanti ai fini della sicurezza– Alcune implementazioni SW le omettono
� Espansione �
– Effetto valanga � Sostituzione �
– È una funzione non-lineare, che maggiormente contribuisce alla sicurezza di DES. È difficile da analizzare
– È progettata per massimizzare la diffusione� Permutazione �
– Aggiunge diffusione
27-Nov-01 Cifratura simmetrica 34
Ki: Chiave al round iK
��1
��2
64
2828
Ki
56
48
i
Permutazione e selezione
Permutazione e selezione
Rotazione sinistra (1 o 2 bit in funzione del round)
28 28
56
27-Nov-01 Cifratura simmetrica 35
DES: chiavi deboli e semi-deboli
� Chiavi deboli– Una chiave K è debole se, ∀ x, E(K, E(K, x)) = x– Una chiave debole K genera Ki tutte uguali
� Chiavi semi-deboli– Un paio di chiavi (K1, K2) sono semi-deboli se, ∀ x, E(K1, E(K2,
x)) = x� DES ha 4 chiavi deboli e 12 chiavi semi-deboli� Le chiavi deboli e semi-deboli sono ben note, e
possono essere scartate in fase di generazione
27-Nov-01 Cifratura simmetrica 36
Chiavi deboli
FFFFFFF 0000000E0E0 E0E0 E0E0 E0E0
0000000 FFFFFFF1F1F 1F1F 1F1F 1F1F
FFFFFFF FFFFFFFFEFE FEFE FEFE FEFE
0000000 00000000101 0101 0101 0101
CHIAVE EFFETTIVACHIAVE DEBOLE
27-Nov-01 Cifratura simmetrica 37
Modalità d’impiego
� Un cifrario a blocchi cifra un blocco di t-bit� Se un messaggio è costituito da due o più blocchi, il
cifrario viene impiegato secondo opportune modalità: ✦ Electronic Codebook (ECB)✦ Cipher block chaining (CBC)– Cipher feedback (CFB)– Output Feedback (OFB)
27-Nov-01 Cifratura simmetrica 38
Electronic Codebook (ECB)
Messaggio in chiaro di n blocchi: m = m1m2...mnMessaggio cifrato di n blocchi: c = c1c2...cn
ci = E(K, mi), 1 ≤ i ≤ n
mi = D(K, ci), 1 ≤ i ≤ n
Un errore in un blocco ci incide solo sul blocco mi
Ogni blocco mi è cifrato indipendentemente dagli altri
Due blocchi in chiaro uguali producono, a parità di chiave, dueblocchi cifrati uguali
ECB è soggetto a due attacchi: dictionary attack e block replay attack
E
K
mi ci
D
K
ci mi
27-Nov-01 Cifratura simmetrica 39
Dictionary Attack
� L’avversario può decifrare (parti di) un messaggio senza conoscere la chiave
� Known-plaintext attack– Chiave k– L’avversario costruisce una tabella Tk con le coppie (ci, mi)– Quando l’avversario legge ck, cerca in T se esiste il mk
corrispondente� Questo attacco è efficace se
� la dimensione del blocco è piccola� i messaggi contengono ridondanza� la stessa chiave è utilizzata per cifrare grosse quantità di dati
27-Nov-01 Cifratura simmetrica 40
Block Replay
� L’avversario può modificare un messaggio cifrato senza conoscere la chiave
� ESEMPIO:– Transazione bancaria: utente U sposta denaro D da una
banca B1 ad un’altra B2– La Banca B1 addebita D all’utente ed invia un messaggio di
accredito, di parì entità, alla banca B2.– Formato del messaggio
� Nome Banca Mittente: M (12 byte)� Nome Banca Ricevente: R (12 byte)� Nome Cliente: C (48 byte)� Numero Conto: N (16 byte)� Ammontare Deposito: D (8 byte)
– Block size = 64 bit
27-Nov-01 Cifratura simmetrica 41
Block Replay
� ESEMPIO– Avversario esegue
� un pagamento di 100$ � c1� un pagamento di 100$ � c2� ...� un pagamento di 100$ � ck
– Avversario cerca in rete i “suoi” messaggi: k messaggi cifrati uguali (k = 2÷3)
– Una volta trovati, ne replica uno a suo piacimento
Banca 1 Banca 2
27-Nov-01 Cifratura simmetrica 42
Block Replay
� ESEMPIO (...continua)– La banca previene la replicazione dei messaggi aggiungendo
un campo timestamp T (8 byte) in testa al messaggio...– Tuttavia l’avversario può eseguire un block replay attack– L’avversario
� identifica i suoi messaggi come prima� intercetta un qualunque messaggio in transito e sostituisce i
blocchi 5−12 con quelli di un suo messaggo
� La modalità CBC evita questo tipo di problemi
1 2 3 4 5 6 7 8 9 10 11 12 13
T M R C N D
Numero Blocco
Campo messaggio
27-Nov-01 Cifratura simmetrica 43
Cipher Block Chaining (CBC)
P1 ⊕ E C1 = E(K, P1 ⊕ IV)
P2 ⊕ E C2 = E(K, P2 ⊕ C1)
Pn ⊕ E Cn = E(K, Pn ⊕ Cn-1)
�
IV
Pi = D(K, Ci) ⊕ Ci-1 2 ≤ i ≤ n
P1 = D(K, C1) ⊕ IV
27-Nov-01 Cifratura simmetrica 44
CBC: osservazioni
� Testi in chiaro identici producono testi cifrati identici se e solo se cifrati con la stessa chiave K e lo stesso IV
� Si deve garantire l’integrità di IV� Pi influsice su Ci e tutti i blocchi cifrati successivi
– CBC non è adatto ad applicazioni che accedono dati cifrati in lettura/scrittura in modo random
� Propagazione dell’errore– Sia Ci′ = (Ci con un bit errato), allora
� Pi′ completamente random� Pi+1′ ha un solo bit errato nella stessa posizione del bit errato di Ci
� Pi+2 è corretto (se Ci+1 è corretto): CBC è self-synchronizing– CBC non è in grado di recuperare da errori dovuti a bit “persi”
(Framing error)
27-Nov-01 Cifratura simmetrica 45
Cifratura multipla: 3DES
� Se si cifra più volte un messaggio, la sicurezza aumenta?
– E(K1, E(K2, m)) è meglio di E(K3, m)?� Si, perché DES non è un gruppo (dimostrato nel 1992)
– Se DES fosse un gruppo allora:∀ m ∈ �, ∀ K1, K2 ∈ �, ∃ K3 ∈ � tale che E(K1,E(K2, m)) = E(K3, m)
� Triplo DES (3DES)
DES DES-1 DEST C
K1 K2 K1
Brute-force attackrichiede 2112 tentativi
27-Nov-01 Cifratura simmetrica 46
Cifrario a caratteri (stream cipher)
� Un cifrario a carattere è sostanzialmente un cifrario (ablocchi) a sostituzione in cui t = 1 in cui però lafunzione di cifratura può cambiare per ogni carattere in in chiaro
27-Nov-01 Cifratura simmetrica 47
Cifrario di Vernam (One-time Padding)
� Sia m un messaggio di t bit
� Sia la chiave k una sequenza di t bit scelti a random
� Cifratura: ci = mi ⊕ ki, 0≤ i ≤ t
� Decifratura: mi = ci ⊕ ki, 0≤ i ≤ t
� One-time corrisponde alla definizione– Ci sono due funzioni di cifratura
� E0(mi) = mi se ki = 0
� E1(mi) = (mi+1) mod 2 se ki = 1
27-Nov-01 Cifratura simmetrica 48
One-Time Padding
� La chiave k deve essere utilizzata una sola volta (one-time)
– k può essere ricavata da m e c: k = m ⊕ c
� Se la chiave è riutilizzata...– Siano c = m ⊕ k e c´= m´ ⊕ k, allora
c ⊕ c´ = m ⊕ m´
La ridondanza in m ⊕ m´ può facilitare la crittanalisi
27-Nov-01 Cifratura simmetrica 49
Sicurezza di One-time Padding
� One-time padding è “perfettamente” sicuro – Se il crittanalista dispone solo di c e la chiave è stata usata
una sola volta, allora il crittanalista può solo dedurre che il messaggio in chiaro m è costituito da t bit
– Qualunque messaggio m di t bit può essere generato a partire da c
– ESEMPIO. Per generare m* a partire da c, si può utilizzare lachiave k*= m* ⊕ c
� Shannon ha provato che un sistema è perfettamente sicuro se:
– Ci sono tante chiavi quanti i testi in chiaro
– Ciascuna chiave è equiprobabile
27-Nov-01 Cifratura simmetrica 50
Esempio
� Algoritmo di Cifratura: c[i] = m[i] + k[i] mod 26� m = “SUPPORT JAMES BOND”
m = S U P P O R T J A M E S B O N Dk = W C L N B T D E F J A Z G U I Rc = O W A C P K W N F V E R H I V U
c = O W A C P K W N F V E R H I V Uk' = M W L J V T S E F J A Z G U I Rm = C A P T U R E J A M E S B O N D
27-Nov-01 Cifratura simmetrica 51
One-Time Padding: considerazioni pratiche
� La chiave k deve avere la stessa lunghezza del messaggio m:
– problemi di memorizzazione
– problemi di sincronizzazione nelle comunicazioni
…ma sono realmente un problema con la tecnologia corrente?
� Sembra che la linea Mosca-Washington fosse cifratacon one-time pad
– La chiave era trasportata da un corriere fidato
27-Nov-01 Cifratura simmetrica 52
Sistemi insicuri con componenti sicure
m = D A R E C E N T O E U R O A B O Bk = W C L N B T D E F J A Z G U I R Xc = Z C C R D X Q X T N U Q U U J F Y
ZCCRD... ZCCRN...
c' = Z C C R N B O P J N U Q U U J F Yk = W C L N B T D E F J A Z G U I R Xm = D A R E M I L L E E U R O A B O B
27-Nov-01 Cifratura simmetrica 53
Sistemi insicuri con componenti sicure (II)
� L’algoritmo di cifratura non è stato violato...� ...tuttavia il protocollo fallisce� L’algoritmo One-Time Pad garantisce sicurezza...� ...ma non garantisce integrità
� Perché un protocollo fallisce– Le proprietà di una primitiva crittografica non sono state capite
o sono state sopravvalutate– La primitiva ha delle debolezze ed il protocollo le amplifica