0 lalgoritmo des semplificato cifratura di flussi e cifratura a blocchi la cifratura di feistel...
TRANSCRIPT
![Page 1: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/1.jpg)
1
•L’algoritmo DES semplificato
•Cifratura di flussi e cifratura a blocchi
•La cifratura di Feistel
• L’algoritmo DES (Data Encryption Standard)
•La cifratura DES
•Decrittografia DES
•Effetto valanga
• La potenza di DES
•L’uso di chiavi a 56 bit
•La natura dell’algoritmo DES
•Attacchi temporizzati
•Analisi crittografica differenziale e lineare
•Principi di progettazione della cifratura a blocchi
•Criteri progettuali di DES
![Page 2: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/2.jpg)
2
•Des semplificato(S-DES)Des semplificato(S-DES)•Sviluppato da Edward SchaeferSviluppato da Edward Schaefer•Ha valore educativo poiché non è sicuroHa valore educativo poiché non è sicuro
•Prende in input un blocco di 8 bit di testo in chiaroPrende in input un blocco di 8 bit di testo in chiaro•Prende in input una chiave di 10 bitPrende in input una chiave di 10 bit•Produce come output un blocco di 8 it di testo cifratoProduce come output un blocco di 8 it di testo cifrato
L’algoritmo di crittografiaL’algoritmo di crittografia
•Prende in input un blocco di 8 bit di testo cifratoPrende in input un blocco di 8 bit di testo cifrato
•Prende in input la chiave di 10 bit usata per la cifraturaPrende in input la chiave di 10 bit usata per la cifratura
•Produce come output un blocco di 8 it di testo in chiaroProduce come output un blocco di 8 it di testo in chiaro
L’algoritmo di decrittografiaL’algoritmo di decrittografia
![Page 3: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/3.jpg)
3
Esegue 5 funzioni:Esegue 5 funzioni:
Permutazione iniziale (IP) (IP)Funzione complessa fk composta da permutazione
e sostituzione e che dipende dalla chiave di inputFunzione di permutazione semplice (SW) che
commuta le due metà di datiFunzione fk
Permutazione inversa della funzione di permutazione
iniziale
![Page 4: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/4.jpg)
4•Schema Des semplificatoSchema Des semplificato
![Page 5: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/5.jpg)
5
La funzione fk accetta come input i dati elaborati nell’algoritmo
di crittografia e una chiave di 8 bit.
Alternative per la scelta delle sottochiavi:Chiave di 16 bit costituita da due sottohiavi di 8 bit, una per ogni fk
Unica chiave di 8 bitCompromesso due sottochiavi da 8 bit selezionate da una chiave
di 10 bit.
Operazioni da farePermutazione (P10)
Scorrimento
Permutazione (P8) che produce un output di 8 bit, scelto come prima chiave
Scorrimento
Permutazione (P8) per generare la seconda chiave
![Page 6: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/6.jpg)
6
Matematicamente:
2 1
1
k kIP f SW f IP
ovvero
Testo cifrato=IPTesto cifrato=IP-1-1(f(fk2k2(SW(f(SW(fk1k1(IP(testo in chiaro)))))(IP(testo in chiaro)))))
dove K1=P8(Shift(P10(key)))
K2=P8(Shift(Shift(P10(key)))
e per la decrittografia
Testo in chiaro=IPTesto in chiaro=IP-1-1(f(fk1k1(SW(f(SW(fk2k2(IP(testo cifrato)))))(IP(testo cifrato)))))
![Page 7: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/7.jpg)
7
La generazione della chiave S-DES
Chiave iniziale di 10 bit condivisa dal mittente e
dal destinatario:
1 2 3 4 5 6 7 8 9 10, , , , , , , , ,k k k k k k k k k k
1 2 3 4 5 6 7 8 9 10 3 5 2 7 4 10 1 9 8 610( , , , , , , , , , ) ( , , , , , , , , , )P k k k k k k k k k k k k k k k k k k k kPermutazione P10Permutazione P10
o anche
3 5 2 7 4 10 1 9 8 6
P10P10
![Page 8: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/8.jpg)
8
La generazione della chiave S-DES
Esempio:
A. Permutazione: (1010000010) (1000001100).
B. Shift circolare sinistro (LS-1) separatamente sui primi (Left) e sui
secondi (right)5 bit. (00001 11000)
C. P8
6 3 7 4 8 5 10 9
P8P8
D.D. Il risultato è la prima chiave kIl risultato è la prima chiave k11 (10100100). (10100100).
E. Shift circolare sinistro di due posizioni sui primi e sui secondi 5 bitE. Shift circolare sinistro di due posizioni sui primi e sui secondi 5 bit
di B, il valore (00001 11000) diviene (00100 00011).di B, il valore (00001 11000) diviene (00100 00011).
F. P8 sul risultato che genera kF. P8 sul risultato che genera k22
![Page 9: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/9.jpg)
9
•Chiave di 10 bitChiave di 10 bit1010
P10
55 55
55 55
55 55
LS-1LS-1 LS-1LS-1
LS-2LS-2 LS-2LS-2
P8P8
P8P8
88
88
P10: permutazioneP10: permutazione
LS-1: shiftLS-1: shift
La generazione della chiave S-DES
![Page 10: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/10.jpg)
10
Crittografia S-DES
Permutazione inizialePermutazione iniziale
2 6 3 1 4 8 5 7
IPIP
Permutazione finalePermutazione finale
4 1 3 5 7 2 8 6
IPIP-1-1
![Page 11: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/11.jpg)
11
Crittografia S-DES
Le funzione fLe funzione fkk
)),,((),( RSKRFLRLfk
dove L e R sono i 4 bit a sinistra e i 4 bit a destra dell’input di 8 bitdove L e R sono i 4 bit a sinistra e i 4 bit a destra dell’input di 8 bit
F è un mapping che da 4 bit in ingresso restituisce 4 bit in uscita.F è un mapping che da 4 bit in ingresso restituisce 4 bit in uscita.
Sk è una sottochiave, Sk è una sottochiave, è la funzione or esclusivo bit a bit è la funzione or esclusivo bit a bit
Esempio: Esempio: L||R=10111101, F(1101,SK)=(1110) per qualche SKL||R=10111101, F(1101,SK)=(1110) per qualche SK
(1011)(1011)(1110)=(0101)(1110)=(0101) 01011101()10111101( kf
![Page 12: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/12.jpg)
12
Crittografia S-DES
Le funzione fLe funzione fkk: mapping F: mapping F
L’input è il numero di 4 bit (n1n2n3n4).
La prima operazione è un’espansione/permutazione
4 1 2 3 2 3 4 1
E/PE/P
risultato rappresentabile anche come
![Page 13: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/13.jpg)
13
Crittografia S-DESLe funzione fLe funzione fkk: mapping F: mapping F
La sottochiave a 8 bit kLa sottochiave a 8 bit k11=(k=(k1111,k,k1212,k,k1313,k,k1414,k,k1515,k,k1616,k,k1717,k,k1818))
è aggiunta xor al risultato precedenteè aggiunta xor al risultato precedente
Rinominando gli 8 bitRinominando gli 8 bit
![Page 14: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/14.jpg)
14
Crittografia S-DES
I primi 4 bit (prima riga della precedente matrice sono disposti nellaI primi 4 bit (prima riga della precedente matrice sono disposti nella
S-box S0. Producono in uscita 2-bit.S-box S0. Producono in uscita 2-bit.
I rimanenti 4 bit sono posti nella S-box S1. Producono in uscita 2-bit.I rimanenti 4 bit sono posti nella S-box S1. Producono in uscita 2-bit.
S-boxS-box
![Page 15: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/15.jpg)
15
Crittografia S-DESFunzionamento delle S-boxFunzionamento delle S-box
Il primo ed il quarto bit sono trattati come numeri a due bit cheIl primo ed il quarto bit sono trattati come numeri a due bit che
specificano una riga della S-box, il secondo ed il terzo bit di inputspecificano una riga della S-box, il secondo ed il terzo bit di input
specificano una colonna delle S-box, l’elemento di matrice individuatospecificano una colonna delle S-box, l’elemento di matrice individuato
da tali valori di riga e di colonna fornisce i due bit di outputda tali valori di riga e di colonna fornisce i due bit di output
Esempio: (pEsempio: (p0,00,0pp0,30,3)=00)=00
(p(p0,10,1pp0,20,2)=(10))=(10)
riga 0riga 0
colonna 2colonna 2S0(0,2)=3 (11 in binario)S0(0,2)=3 (11 in binario)
Successivamente iSuccessivamente i 4 bit generati da S0 e S1 sono sottoposti ad una4 bit generati da S0 e S1 sono sottoposti ad una
permutazionepermutazione
1 4 3 1
P4P4 L’output è la funzioneL’output è la funzione
FF
![Page 16: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/16.jpg)
16
Crittografia S-DES
La funzione SwitchLa funzione Switch
La funzione switch (SW) scambia la parte sinistra con la parte destraLa funzione switch (SW) scambia la parte sinistra con la parte destra
E’ introdotta poiché la funzione fE’ introdotta poiché la funzione fkk altera solo i 4 bit più a sinistra altera solo i 4 bit più a sinistra
![Page 17: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/17.jpg)
17
Analisi della tecnica DES semplificata
•• Con una chiave a 10 bit ci sono 210=1024 combinazioni.
• L’attacco a S-DES può essere sferrato con successo
•ogni ciphertext ci è una funzione polinomiale dei pi (plaintext)
e dei ki (key).
• Possiamo esprimere l’algoritmo di encryption come 8 equazioni
non lineari in 10 incognite
La non linearità proviene dalle S-box
◘Poniamo
(p0,0, p0,1, p0,2, p0,3)=(a,b,c,d), (p1,0, p1,1,p1,2,p1,3)=(w,x,y,z) e sia
l’uscita a 4 bit (q,r,s,t) allora l’operazione di S0 è definita dalle
equazioni:
![Page 18: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/18.jpg)
18
Analisi della tecnica DES semplificata
••Le operazioni sono modulo 2Le operazioni sono modulo 2
• • Otteniamo equazioni simili per S1.Otteniamo equazioni simili per S1.
• • Alternando mappature lineari con mappature non lineari provenientiAlternando mappature lineari con mappature non lineari provenienti
dalle S-Box si complica l’analisi crittograficadalle S-Box si complica l’analisi crittografica
![Page 19: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/19.jpg)
19
•I cifrari a blocchi elaborano il messaggio da
criptare viene suddiviso in blocchi di lunghezza
fissa. In genere sono utilizzati blocchi di 64 o 128 bit. Il
messaggio cifrato si ottiene elaborando indipendenemente
ogni singolo blocco.
•Possono essere considerati cifrari a semplice sostituzione.
•Devono avere alfabeti grandi per contrastare l’analisi in
frequenza
![Page 20: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/20.jpg)
20
•I cifrari a flusso elaborano il messaggio un bit o un
byte per volta.
•La maggior parte dei cifrari moderni sono a blocco
![Page 21: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/21.jpg)
21
Principi dei cifrari a blocco
![Page 22: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/22.jpg)
22
Mapping reversibile Mapping irreversibileTesto in chiaro Testo cifrato Testo in chiaro Testo cifrato
00 11 00 11
01 10 01 10
10 00 10 01
11 01 11 01
Struttura di FeistelStruttura di Feistel
Una cifratura a blocchi opera un blocco di dati di dimensioneUna cifratura a blocchi opera un blocco di dati di dimensione
fissata, di solito 64 bit, e lo trasforma in un altro blocco di 64 bitfissata, di solito 64 bit, e lo trasforma in un altro blocco di 64 bit
usando una funzione selezionata dalla chiave.usando una funzione selezionata dalla chiave.
Il procedimento deve essere reversibile per garantire laIl procedimento deve essere reversibile per garantire la
decrittografia, ovvero un blocco di testo in chiaro deve produrre decrittografia, ovvero un blocco di testo in chiaro deve produrre
(a parità di chiave) un blocco cifrato univoco(a parità di chiave) un blocco cifrato univoco
![Page 23: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/23.jpg)
23
Cifrario a blocco ideale
![Page 24: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/24.jpg)
24
Motivazioni Struttura di FeistelMotivazioni Struttura di Feistel
Tabella di crittografia e decrittografia per la cifratura a Tabella di crittografia e decrittografia per la cifratura a
sostituzione sostituzione
![Page 25: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/25.jpg)
25
Struttura di FeistelStruttura di Feistel
Se viene utilizzato un blocco di piccole dimensioni ad es. n=4,Se viene utilizzato un blocco di piccole dimensioni ad es. n=4,
il sistema è equivalente a una classica cifratura a sostituzioneil sistema è equivalente a una classica cifratura a sostituzionePer blocchi di grandi dimensioni la cifratura ideale a blocchiPer blocchi di grandi dimensioni la cifratura ideale a blocchi
non è convenientenon è conveniente
N=4 N=4 chiave (4bit)x(16 righe)=64chiave (4bit)x(16 righe)=64
N=64N=64 chiave=10chiave=102121 bit bitFeistel adotta un’approssimazioneFeistel adotta un’approssimazione
![Page 26: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/26.jpg)
26
Motivazioni Struttura di FeistelMotivazioni Struttura di Feistel
La chiave per n=4 è uguale a 64 bitLa chiave per n=4 è uguale a 64 bit
In generale per una cifratura a sostituzione a blocchi aIn generale per una cifratura a sostituzione a blocchi a
n bit la chiave ha dimensioni pari a n bit la chiave ha dimensioni pari a
n n 22nn
Per un blocco di 64 bit Per un blocco di 64 bit
64 64 226464=2=27070=10=102121 bit bit
![Page 27: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/27.jpg)
27
Shannon e i cifrari
![Page 28: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/28.jpg)
28
Confusione e diffusione
![Page 29: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/29.jpg)
29
La cifratura di Feistel
![Page 30: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/30.jpg)
30
k1 F
R1L1
Round1
kn F
RnLn
Roundn
Key
Algoritmodi
generazionedella
sottochiave
Testo in chiaro
R0L0
Testo cifrato
ki F
RiLi
Roundi
Li=Ri-1
Ri=Li-1F(Ri-1, ki)
Un testo in chiaro M viene Un testo in chiaro M viene
spezzato in due parti di egualespezzato in due parti di eguale
lunghezza llunghezza l
Struttura di FeistelStruttura di Feistel
•Applicazione pratica di Applicazione pratica di
una cifratura proposta dauna cifratura proposta da
Shannon che alterna Shannon che alterna
confusione e diffusioneconfusione e diffusione
![Page 31: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/31.jpg)
31
Parametri del ciclo di Feistel
![Page 32: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/32.jpg)
32
Decriptazione del ciclo di FeistelDecriptazione del ciclo di Feistel
![Page 33: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/33.jpg)
33
all’inizio degli anni ’70, ciascuno usava il proprio crittosistema per cifrare e decifrare
mancava uno standard (es: banche) Il 15 Maggio 1973, il Il 15 Maggio 1973, il National Bureau of StandardsNational Bureau of Standards (NBS) (NBS)
pubblicò un invito, nel Registro Federale, per l’emissione di un pubblicò un invito, nel Registro Federale, per l’emissione di un crittosistema standardcrittosistema standard)
nacque così il nacque così il DES DES Data Encryption Standard Data Encryption Standard, divenuto il , divenuto il crittosistema più usato nel mondocrittosistema più usato nel mondo
Il DES fu sviluppato alla IBM, come evoluzione di un DES fu sviluppato alla IBM, come evoluzione di un crittosistema più antico, LUCIFER, e fu pubblicato sul Registro crittosistema più antico, LUCIFER, e fu pubblicato sul Registro Federale il 17 Marzo 1975Federale il 17 Marzo 1975
La definizione di DES è riportata nel La definizione di DES è riportata nel Federal Information Federal Information Processing Standards Publication 46Processing Standards Publication 46, del 15 Gennaio 1977, del 15 Gennaio 1977
![Page 34: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/34.jpg)
34
Il DES (Data Encryption Standard) è un cifrario composto sviluppato dall'IBM, modificato dalla National Security Agency (NSA) e adottato dal governo statunitense nel 1977 ufficialmente per la protezione di dati riservati ma non classificati come "segreti militari" o di "stato" (fatta eccezione per quegli atti che richiedevano un livello più alto di sicurezza), tuttora è usato da agenzie federali
![Page 35: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/35.jpg)
35
Struttura di FeistelStruttura di Feistel
![Page 36: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/36.jpg)
36
Caratteristiche del DES
Progettato inizialmente per essere implementato in hardware accetta una stringa di 64 bit in ingresso e la trasforma in una di 64 bit in uscita
Combina sostituzione e trasposizione Si basa sul sistema di Feistel come la maggior parte dei cifrari
simmetrici a blocchi Schema simmetrico
– Il DES è un codice cifrato a blocchi. La chiave usata per cifrare è un blocco di 64 bit suddivisa in 8 sottoblocchi di 8 bit ciascuno; l'ultimo bit di ogni sottoblocco è di controllo, di conseguenza i bit liberi che costituiscono in pratica la chiave sono 56. Accetta una stringa di 64 bit in ingresso e la trasforma in una di 64 bit in uscita
L’algoritmo comprende 16 iterazioni che mischiano testo in chiaro e valori ottenuti dalla chiave
![Page 37: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/37.jpg)
37
Caratteristiche del DES
Il testo da cifrare viene suddiviso in blocchi di 64 bit ciascuno e vengono cifrati uno dopo l'altro in successione con uguale procedimento
Se un blocco non raggiunge la lunghezza desiderata di 64 bit si utilizza un procedimento detto "pad", che può essere implementato in diversi modi
Aggiungere zeri fino alla lunghezza stabilita Se i dati sono binari, integrare il blocco con bit che sono
l'opposto degli ultimi bit del messaggio Se i dati sono ASCII si usano invece byte generati in modo
casuale specificando nell'ultimo byte il carattere ASCII corrispondente al numero di byte aggiunti.
Una tecnica, in parte equivalente alla precedente, usa sempre bit casuali ma fornisce, negli ultimi tre bit, il numero di byte originali, cioè quelli che costituiscono il messaggio senza riempimento
![Page 38: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/38.jpg)
38
Data Encryption Standard
DESDEStesto in chiarotesto in chiaro testo cifratotesto cifrato
chiavechiave
64 bit64 bit 64 bit64 bit
56 bit56 bit
![Page 39: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/39.jpg)
39
L’algoritmo può essere suddiviso in tre blocchi:L’algoritmo può essere suddiviso in tre blocchi:
1. Dato il plaintext x, si costruisce la stringa x0, permutando i bit di x secondo una permutazione iniziale (fissata) IP. In particolare, x0=IP(x)=L0R0, dove L0 comprende i primi 32 bit di x0 e R0 gli ultimi 32
Struttura
![Page 40: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/40.jpg)
40
2. LiRi, per 1i16, viene calcolato comeLi=Ri-1
Ri=Li-1 F(Ri-1,ki) dove è l’operatore di XOR, k1,k2,…,k16 sono sottochiavi di 48 bit
calcolate in funzione della chiave originaria k (formano il key schedule) e F è una funzione che prende i 32 bit della metà destra Ri-
1 e i 48 bit della subkey e:▪Espande Ri-1 a 48 bit utilizzando una tabella che definisce una espansione/permutazione E▪Ne fa l’XOR con la subkey ki e scrive il risultato come concatenazione si stringhe di 6 bit▪Il risultato a 48 bit viene elaborato da una funzione di sostituzione che utilizza 8 S-box e produce un output di 32 bit▪Permuta i 32 bit utilizzando una tabella di permutazione
Struttura
![Page 41: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/41.jpg)
41
3. Si applica la permutazione inversa IP-1 alla stringa di bit R16L16,
ottenendo il testo cifrato y, cioè y=IP-1(R16L16)
Struttura
![Page 42: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/42.jpg)
42
Struttura del DES
IPIP
IPIP -1 -1
iterazione 1iterazione 1
iterazione 16iterazione 16
testo in chiaro 64 bittesto in chiaro 64 bit
testo cifrato 64 bittesto cifrato 64 bit
scambioscambio
...... schedulazioneschedulazione
chiavechiave
chiavechiave
56 bit56 bit48 bit48 bit
48 bit48 bit
![Page 43: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/43.jpg)
43
Permutazione Iniziale IP
58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7
11 22
5050 5858
bit inizialibit iniziali
bit permutatibit permutati6464......
Poiché il primo bit della tabella è 58,il 58° bit della stringa iniziale diviene il primo bit di quella permutata , il 50° bitdiventa il secondo e così via.
![Page 44: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/44.jpg)
44
Permutazione Inversa IP-1
11 22
88 4040
bit inizialibit iniziali
bit permutatibit permutati
40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 2633 1 41 9 49 17 57 25
6464......
1 2 3 4 5 6 7 89 10 11 12 13 14 15 1617 18 19 20 21 22 23 2425 26 27 28 29 30 31 3233 34 35 36 37 38 39 4041 42 43 44 45 46 47 4848 50 51 52 53 54 55 5657 58 59 60 61 62 63 64
58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7
![Page 45: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/45.jpg)
45
Struttura del ciclo
Funzione di espansione E
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
![Page 46: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/46.jpg)
46
Struttura del ciclo
![Page 47: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/47.jpg)
47
Struttura
![Page 48: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/48.jpg)
48
Singola iterazione DES
LLi-1i-1 RRi-1i-1
LLii
RRii
kkii
ff
parte sinistraparte sinistra32 bit32 bit
parte destraparte destra32 bit32 bit
sottochiavesottochiave48 bit48 bit
RRii
![Page 49: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/49.jpg)
49
S-Box
![Page 50: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/50.jpg)
50
S-Box
![Page 51: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/51.jpg)
51
S-Box
![Page 52: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/52.jpg)
52
S-Box
![Page 53: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/53.jpg)
53
Caratteristiche S-Box
![Page 54: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/54.jpg)
54
Struttura del ciclo
Permutazione finale (P)Permutazione finale (P)
![Page 55: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/55.jpg)
55
Partendo da una chiave iniziale di 64 bits vengono effettuate diverse operazioni per generare un insieme di chiavi da utilizzare nei singoli cicli.
La scelta permutata 1 ci permetterà di ottenere 56 bits dai 64 iniziali da utilizzare come materiale di partenza per la generazione delle singole chiavi.
E' per tale motivo che le chiavi possibili sono 72,057,594,037,927,936.
![Page 56: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/56.jpg)
56
![Page 57: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/57.jpg)
57
Lo schema generico delle operazioni effettuate sulla chiave
è il seguente:
Vediamo adesso nello specifico le singole operazioni.
64 64 bitbit
![Page 58: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/58.jpg)
58Vediamo adesso nello specifico le singole operazioni.
![Page 59: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/59.jpg)
60
•Chiave iniziale
La chiave iniziale è costituita da 64 bits generati solitamente in modo
casuale ma aventi una particolarità: l'ottavo bit di ogni riga non è altro
che un controllo di disparità effettuato sui bits costituenti la riga e
non verrà utilizzato nelle successive operazioni di elaborazione
sulla chiave.
![Page 60: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/60.jpg)
61
Scelta permutata 1
I 64 bits della chiave iniziale vengono sottoposti alla scelta permutata 1 ed èproprio attraverso questa operazione che vengono eliminati gli otto bits di controllo.
![Page 61: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/61.jpg)
62
I 56 bits ottenuti vengono suddivisi in due parti da 28 bits per poi essere spostati singolarmente a sinistra.
![Page 62: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/62.jpg)
63
•Spostamento
Il valore dello spostamento è variabile ed è legato al ciclo secondo
questa tabella:
![Page 63: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/63.jpg)
64
•Scelta permutata 2 I due semiblocchi vengono quindi rielaborati utilizzando la
scelta permutata 2 (Permuted Choise 2) che è una compressione.Permuted Choise 2) che è una compressione.
Prende in ingresso 56 bit e ne restituisce 48.Prende in ingresso 56 bit e ne restituisce 48.
La coppia di blocchi Cj e Dj è determinata dalla tabellaLa coppia di blocchi Cj e Dj è determinata dalla tabella
Il valore ottenuto costituisce la prima chiave utilizzata nel primo
ciclo. La procedura continuerà poi negli altri cicli, seguendo lo
schema generale esposto in
precedenza.
![Page 64: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/64.jpg)
65
Decifratura DES
![Page 65: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/65.jpg)
66
IPIP
IPIP -1 -1
iterazione 1iterazione 1
iterazione 16iterazione 16
testo cifratotesto cifrato
testo in chiarotesto in chiaro
scambioscambio
...... schedulazioneschedulazione
chiavechiave
chiavechiave
kk1616
kk11
stesso algoritmostesso algoritmosottochiavi in ordine inversosottochiavi in ordine inverso
Decifratura DES
![Page 66: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/66.jpg)
67
Per il momento sembra ancora abbastanza sicura, nonostante i numerosi attacchi brute force
La sua effettiva sicurezza è comunque una questione estremamente controversa
La maggiore preoccupazione è che esso possa avere qualche debolezza nota soltanto a NSA– Originariamente la chiave doveva essere
lunga 64 bit, fu ridotta a 56 poco prima dell’approvazione come standard
Decifratura DES
![Page 67: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/67.jpg)
68
Effetto valanga
![Page 68: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/68.jpg)
69
Effetto valanga
![Page 69: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/69.jpg)
70
Numero chiavi DES = 256 7,2056 ·1016
Un computer a 500 Mhz che testa una chiave per ciclo
di clock impiega
144.115.188 secondi 834 giorni 2 anni e 3 mesi
per provare 255 3,6 ·1016 chiavi
La sicurezza del DESRicerca esaustiva
![Page 70: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/70.jpg)
71
La sicurezza del DES
Nel 1990 Biham e Shamir inventano la criptoanalisi differenziale
Nel 1991 applicano tale tecnica al DES dimostrando che quasi tutte le modifiche all’algoritmo lo indeboliscono
Dopo aver indebolito l’algoritmo Biham e Shamir violano la versione modificata
Diffie ed Helman nel 1977 asseriscono che una chiave di 56 bit è troppo breve.
![Page 71: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/71.jpg)
72
Attacchi al DES Nel 1995 l’istituto nazionale per gli standard e la
tecnologia (NIST, National Institute of Standards and Technology) inizia la ricerca di un nuovo algoritmo di crittografia più forte
Nel 1997 alcuni ricercatori riescono a dedurre una chiave DES utilizzando 3500 macchine in parallelo e impiegando circa 4 mesi
Nel 1998 viene costruito un “craker DES” a un costo di circa 100.000 euro, in grado di individuare una chiave des in 4 giorni
Gennaio 1999: 22 ore 15 minuti testando 245 miliardi di chiavi al secondo, Distributed.Net 100.000 computer e EFF
![Page 72: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/72.jpg)
73
Attacchi al DES
![Page 73: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/73.jpg)
74
Forza del DES- Attacchi analiticiOggi esistono diversi attacchi analitici al DES• Utilizzano la struttura profonda del DES• Acquisendo informazioni circa le encryptions• Possono eventualmente ricavare alcuni/tutti i bit delle subkey• Se serve dopo possono fare una ricerca esaustiva del resto• Generalmente questi sono attacchi statistici
Includono:• Criptoanalisi differenziale• Criptoanalisi lineare• Attacchi relativi alla chiave
![Page 74: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/74.jpg)
75
Forza del DES- Attacchi di timing
Attacchi verso la reale cifratura• La struttura della chiave (peso di Hamming) ha
effetto sul tempo di cifratura/decifratura• Possibile solo nel caso in cui sia possibile
controllare questi tempi• Particolarmente problematica per le smartcard•Rappresenta solo un primo passo del possibile attacco
![Page 75: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/75.jpg)
76
Criptoanalisi differenziale
-Uno dei più significativi avanzamenti recenti
(pubblici) nella criptoanalisi
-Nota alla NSA e alla IBM al progetto del DES
-Pubblicata negli anni 90 da Murphy et al.
-Metodo potente per l’attacco ai block cipher
-Usato per attaccare diversi cifrari a blocco
con successo variabile
-DES (come Lucifer) abbastanza resistente
![Page 76: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/76.jpg)
77
Criptoanalisi differenziale
•Attacco statistico contro i cifrari Feistel introdotto da E. Biham e A. Shamir •Primo attacco a rompere l’algoritmo più velocemente di un attacco a forza bruta•Può essere utilizzato contro altri cifrari come ad esempio idea•Richiede 247 coppie scelte di plaintexts per avere successo
•Si presta con successo alla rottura del DES nell'ipotesi che il numero di iterazioni sia ridotto (il DES a 8 iterazioni può essere rotto in un paio di minuti su un personal computer).
![Page 77: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/77.jpg)
78
Criptoanalisi differenziale
Si considereranno note delle coppie,(testo in chiaro - testo cifrato), con chiave segreta k uguale per tutte. • Con una differenza nota nell’input• Cercando una differenza nota nell’output
![Page 78: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/78.jpg)
79
Criptoanalisi differenziale
•Alcune differenze di input danno luogo con
probabilità p ad alcune differenze di output•Se si trovano con probabilità più elevata istanze
di alcune coppie di differenze input/output allora:• Possibile inferire la subkey usata in un round• Dopo di ciò bisogna iterare il processo su
molti round (con probabilità decrescenti)
•collegamenti ipertestuali\sez3-6.html
![Page 79: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/79.jpg)
80
Criptoanalisi differenziale
![Page 80: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/80.jpg)
81
Criptoanalisi differenziale
•Vedi D. Stinson Cryptography: Theory and Practice
![Page 81: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/81.jpg)
82
Criptoanalisi lineare
•Introdotta nel 1994 da Matsui e altri
•Si può recuperare la chiave del DES dall’analisi di 243 messaggi
noti tramite un’approssimazione lineare per descrivere il
comportamento del cifratore a blocco.
La prima applicazione sperimentale riuscì nell’attacco in 50 giorni
su dodici workstations HP 9735.
•Non è praticabile sia per le grandi richieste di dati, sia per la
difficoltà di preparare nella realtà un attacco a messaggio noto.
E’ basato sulla determinazione di approssimazioni lineari.
![Page 82: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/82.jpg)
83
Criptoanalisi lineare
•Trova delle approssimazioni lineari con probabilità L 1/2
•ia, jb,kc sono le posizioni dei bit in P, C, K
•Fornisce delle equazioni lineari per i bit della chiave•Ottiene un bit della chiave usando un algoritmo di massima verosimiglianza
•Usa un gran numero di encryptions di tentativo
![Page 83: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/83.jpg)
84
Criterio di Davies
L'attacco migliorato di Davies:
Crittanalisi lineare e differenziale: tecniche generali che possono essere applicate anche ad altri algoritmi,
Attacco di Davies: tecnica specializzata per il DES, proposto da Davies negli anni '80 e migliorato da Biham e Biryukov (1997). La forma più potente dell'attacco richiede 250 testi in chiaro, ha una complessità computazionale di 250 ed il 51% di probabilità
di successo.
![Page 84: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/84.jpg)
85
Altri attacchi
Attacchi proposti su versioni con un minor numero di cicli di cifratura, permettono di valutare quanti cicli siano necessari per avere una certa sicurezza e che margine di sicurezza ha la versione completa.
Crittanalisi differenziale-lineare Proposta da Langford ed Hellman nel 1994, combina l'analisi lineare e differenziale in un singolo attacco. Una versione migliorata dell'attacco può violare una versione del DES con 9 cicli con 215,8 testi in chiaro ed una complessità temporale di 229,2
(Biham ed altri, 2002).
![Page 85: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/85.jpg)
86
Criteri progettuali DESPresentati da Coppersmith nel 1994
7 criteri per gli S-box forniscono:
•Non linearità
• Resistenza alla criptanalisi differenziale
• Buona confusione
3 criteri per la permutazione P forniscono:
• Aumento della diffusione
![Page 86: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/86.jpg)
87
Progetto dei cifrari a bloccoPrincipi fondamentali ancora come Feistel nel 1970
• Numero dei round
• Cifrari migliori con valore maggiore
• Funzione f
Se non lineare fornisce confusione, valanga
Esistono problemi circa la selezione degli S-box
• Schedulazione della chiave
Creazione complessa delle subkey, valanga
![Page 87: 0 Lalgoritmo DES semplificato Cifratura di flussi e cifratura a blocchi La cifratura di Feistel Lalgoritmo DES (Data Encryption Standard) La cifratura](https://reader035.vdocuments.site/reader035/viewer/2022062404/5542eb4d497959361e8bb209/html5/thumbnails/87.jpg)
88
Modalità di utilizzo dei cifrari a blocco
• I Cifrari a blocchi criptano parole di lunghezza
•fissa (esempio: DES elabora blocchi di 64 bit)
• Nella realtà, con grosse moli di dati, vi sono
•molteplici blocchi da criptare
•• L’ ANSI standard ANSI X3.106-1983 Modes of
•Use ha stabilito 4 possibili modi di utilizzo dei
•cifrari a blocco
•• I modi di utilizzo usualmente considerati sono 5