DES

emyclz 667 views 62 slides Apr 09, 2011
Slide 1
Slide 1 of 62
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62

About This Presentation

DES: applicazioni ed evoluzioni


Slide Content

DES: applicazioni ed evoluzioniDES: applicazioni ed evoluzioni
Calzetta Emilia Calzetta Emilia
Cervone Vincenzo Cervone Vincenzo
Reti di calcolatoriReti di calcolatori

22
Programmazione didatticaProgrammazione didattica
Titolo:Titolo: DES: evoluzioni ed applicazioni DES: evoluzioni ed applicazioni
Classe:Classe: 5^ I.T.I. 5^ I.T.I.
Contenuti:Contenuti:
Cenni sulla crittografia; DES: Introduzione storica; La Struttura del DES: codifica Cenni sulla crittografia; DES: Introduzione storica; La Struttura del DES: codifica
e decodifica; Le modalità operative ed applicative del DES: Electronic Codebook e decodifica; Le modalità operative ed applicative del DES: Electronic Codebook
Chaining, Cipher Block Chaining, Cipher Feedback, Output Feedback; Chaining, Cipher Block Chaining, Cipher Feedback, Output Feedback;
Crittoanalisi del DES; Esercizi.Crittoanalisi del DES; Esercizi.
Obiettivi:Obiettivi:
Comprendere la struttura e l’utilizzo degli algoritmi crittografici a chiave Comprendere la struttura e l’utilizzo degli algoritmi crittografici a chiave
privataprivata
Comprendere l’importanza della sicurezza in un sistema informaticoComprendere l’importanza della sicurezza in un sistema informatico
Demotivare gli alunni a intraprendere azioni di intrusione nei sistemi Demotivare gli alunni a intraprendere azioni di intrusione nei sistemi
informaticiinformatici

33
Programmazione didatticaProgrammazione didattica
Prerequisiti e verifica:Prerequisiti e verifica:
Il prerequisito richiesto è la conoscenza di base della crittografia. La verifica sarà Il prerequisito richiesto è la conoscenza di base della crittografia. La verifica sarà
svolta durante il corso sia sotto forma di dialogo e sperimentazione e sia mediate svolta durante il corso sia sotto forma di dialogo e sperimentazione e sia mediate
esercizi, prove pratiche e tesine sia di gruppo che individuali.esercizi, prove pratiche e tesine sia di gruppo che individuali.
Modalità di lavoro:Modalità di lavoro:
lezioni frontalilezioni frontali
utilizzo del laboratorioutilizzo del laboratorio
Riferimenti:Riferimenti:
Eli Biham, Adi Shamir, Differential Cryptanalysis of the Data Encryption Standard, Eli Biham, Adi Shamir, Differential Cryptanalysis of the Data Encryption Standard,
Springer Verlag, 1993. Springer Verlag, 1993.
Cryptography and Network Security:  Principles and Practice (3rd Edition)Cryptography and Network Security:  Principles and Practice (3rd Edition)
by William Stallings, 2003by William Stallings, 2003
Don Coppersmith. (1994). The data encryption standard (DES) and its strength Don Coppersmith. (1994). The data encryption standard (DES) and its strength
against attacks. IBM Journal of Research and Development, 38(3), 243–250.against attacks. IBM Journal of Research and Development, 38(3), 243–250.
Joan Daemen and Vincent Rijmen, "The Design of Rijndael: AES - The Advanced Joan Daemen and Vincent Rijmen, "The Design of Rijndael: AES - The Advanced
Encryption Standard." Springer-Verlag, 2002Encryption Standard." Springer-Verlag, 2002

44
Crittografia: cenni storiciCrittografia: cenni storici
CrittografiaCrittografia

““cryptos" =cryptos" = segreto segreto “grafien” =“grafien” = scrittura scrittura
La crittografia tratta i metodi per rendere un messaggio “segreto” in modo La crittografia tratta i metodi per rendere un messaggio “segreto” in modo
da non essere comprensibile a persone non autorizzate, è una scienza antica da non essere comprensibile a persone non autorizzate, è una scienza antica
nata dall’esigenza di riservare solo al destinatario la facoltà di comprendere nata dall’esigenza di riservare solo al destinatario la facoltà di comprendere
il significato di un messaggio. il significato di un messaggio.
Nel corso della storia la crittografia è stata usata per scopi civili e militari e Nel corso della storia la crittografia è stata usata per scopi civili e militari e
oggi assume importanza ancor maggiore con l’espansione delle reti.oggi assume importanza ancor maggiore con l’espansione delle reti.
Si hanno traccia di applicazioni di crittografia (in special modo sulle Si hanno traccia di applicazioni di crittografia (in special modo sulle
comunicazioni) risalenti persino agli antichi egizi.comunicazioni) risalenti persino agli antichi egizi.
Uno dei più antichi cifrari che si conoscano è il "Cifrario di Cesare", Uno dei più antichi cifrari che si conoscano è il "Cifrario di Cesare",
utilizzato dagli imperatori romani e basato sulla trasposizione delle lettere. utilizzato dagli imperatori romani e basato sulla trasposizione delle lettere.

55
Codice di CesareCodice di Cesare
"… se vi era qualche questione riservata egli usava scrivere in cifra, e questa cifra
consisteva in una disposizione apparentemente caotica delle lettere, sicché era
impossibile ricostruire la parola originale. Chi voglia scoprirne il senso e decifrarla
sappia che bisogna sostituire a ogni lettera la terza che segue nell'alfabeto; vale a dire
dove è scritto A bisogna leggere D e così di seguito." Svetonio - Svetonio - Vita del Divo GiulioVita del Divo Giulio
Per cifrare: chiave = 3chiave = 3
CADE CADE ÞÞ FDGH FDGH
Crittografia: cenni storiciCrittografia: cenni storici

66
La prima lettera dell'alfabeto ebraico ‘La prima lettera dell'alfabeto ebraico ‘aleph’aleph’ viene sostituita con l'ultima ‘ viene sostituita con l'ultima ‘taw’taw’
e la seconda ‘e la seconda ‘bethbeth’ con la penultima ‘’ con la penultima ‘shin’shin’. Da qui il nome Atbash.. Da qui il nome Atbash.
EsempioEsempio: nella Bibbia, Geremia, 25: : nella Bibbia, Geremia, 25:
“… “… il re di Sesacil re di Sesac”; si tratta invece del re di Babel.”; si tratta invece del re di Babel.
Il cifrario ebraico (ATBASH) Il cifrario ebraico (ATBASH)
Crittografia: cenni storiciCrittografia: cenni storici

77
Il cifrario Albam (ROT-13)Il cifrario Albam (ROT-13)
Ad ogni lettera si sostituisce quella che la segue 13 posti più avanti Ad ogni lettera si sostituisce quella che la segue 13 posti più avanti
nell'alfabeto.nell'alfabeto.
AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRR……
| | | | | |||||||||||||
NNOOPPQQRRSSTTUUVVWWXXYYZZAABBCCDDEE……
I cifrari Albam e Atbash, sono reversibili, cioè, se sono applicati due (o un I cifrari Albam e Atbash, sono reversibili, cioè, se sono applicati due (o un
numero pari di) volte di seguito ad un testo, si ottiene il testo originale.numero pari di) volte di seguito ad un testo, si ottiene il testo originale.
Crittografia: cenni storiciCrittografia: cenni storici
ESERCIZIOESERCIZIO

88
Crittografia modernaCrittografia moderna
Gli antichi cifrari sono stati sostituiti nel corso della storia dai sistemi Gli antichi cifrari sono stati sostituiti nel corso della storia dai sistemi
crittografici, ma il problema da risolvere non è cambiato: crittografici, ma il problema da risolvere non è cambiato:
Bob e Alice vogliono comunicare in modo “sicuro”Bob e Alice vogliono comunicare in modo “sicuro”
Carmen (l’intrusa) può intercettare, rimuovere o aggiungere messaggiCarmen (l’intrusa) può intercettare, rimuovere o aggiungere messaggi
Carmen vuole modificare, conoscere o impedire la comunicazione Carmen vuole modificare, conoscere o impedire la comunicazione
BobBob
AliceAlice
CarmenCarmen

99
Un sistema crittografico è un sistema in grado di cifrare e decifrare un Un sistema crittografico è un sistema in grado di cifrare e decifrare un
messaggio attraverso l’uso di un algoritmo e di una chiave (una stringa messaggio attraverso l’uso di un algoritmo e di una chiave (una stringa
alfanumerica). Il messaggio che dovrà essere cifrato viene chiamato testo alfanumerica). Il messaggio che dovrà essere cifrato viene chiamato testo
in chiaro (plaintext) mentre il risultato dell’algoritmo crittografico testo in chiaro (plaintext) mentre il risultato dell’algoritmo crittografico testo
cifrato (ciphertext). cifrato (ciphertext).
Crittografia modernaCrittografia moderna
Il sistema crittografico deve soddisfare i seguenti requisiti di sicurezza:Il sistema crittografico deve soddisfare i seguenti requisiti di sicurezza:
 Disponibilità Disponibilità
 RiservatezzaRiservatezza
 IntegritàIntegrità
 AutenticazioneAutenticazione
 Non ripudiazioneNon ripudiazione

1010
Requisiti di disponibilitáRequisiti di disponibilitá: : Rendere disponibili a ciascun utente abilitato Rendere disponibili a ciascun utente abilitato
le informazioni alle quali ha diritto di accedere, nei tempi e nei modi le informazioni alle quali ha diritto di accedere, nei tempi e nei modi
previsti.previsti.
Crittografia modernaCrittografia moderna
Requisiti di integritàRequisiti di integrità:: Impedire l’alterazione diretta o indiretta delle Impedire l’alterazione diretta o indiretta delle
informazioni, sia da parte di utenti e processi non autorizzati, che a informazioni, sia da parte di utenti e processi non autorizzati, che a
seguito di eventi accidentali. Se i dati vengono alterati e’ necessario seguito di eventi accidentali. Se i dati vengono alterati e’ necessario
fornire strumenti per poterlo verificare facilmente.fornire strumenti per poterlo verificare facilmente.

1111
Requisiti di riservatezzaRequisiti di riservatezza: : Nessun utente deve poter ottenere o dedurre Nessun utente deve poter ottenere o dedurre
dal sistema informazioni che non è autorizzato a conoscere. Se una dal sistema informazioni che non è autorizzato a conoscere. Se una
informazione è protetta, o se esiste una comunicazione in atto fra due informazione è protetta, o se esiste una comunicazione in atto fra due
utenti o processi in un certo contesto, il sistema non deve permettere di utenti o processi in un certo contesto, il sistema non deve permettere di
dedurre informazioni riservate.dedurre informazioni riservate.
Crittografia modernaCrittografia moderna
Requisiti di autenticazioneRequisiti di autenticazione: : Ciascun utente deve poter verificare Ciascun utente deve poter verificare
l’autenticità delle informazioni. Si richiede di poter verificare se una l’autenticità delle informazioni. Si richiede di poter verificare se una
informazione, non necessariamente riservata, e’ stata manipolata. informazione, non necessariamente riservata, e’ stata manipolata.
Firmato
e
certificato
Requisiti di non ripudiazioneRequisiti di non ripudiazione: : Nessun utente deve Nessun utente deve
poter ripudiare o negare messaggi da lui spediti o poter ripudiare o negare messaggi da lui spediti o
firmati. Questo evita che le informazioni e i messaggi firmati. Questo evita che le informazioni e i messaggi
siano negati dal firmatario in tempi successivi (es. siano negati dal firmatario in tempi successivi (es.
firma di un contratto)firma di un contratto)

1212
I sistemi crittografici sono di 2 tipi:I sistemi crittografici sono di 2 tipi:
 Sistemi crittografici Simmetrici (detti anche a chiave simmetrica o a Sistemi crittografici Simmetrici (detti anche a chiave simmetrica o a
chiave segreta) chiave segreta)
 Sistemi crittografici Asimmetrici (detti anche a chiave asimmetrica o Sistemi crittografici Asimmetrici (detti anche a chiave asimmetrica o
a chiave pubblica).a chiave pubblica).
Simmetrici:Simmetrici:
permettono al mittente e al destinatario di usare la medesima chiave;permettono al mittente e al destinatario di usare la medesima chiave;
l’operazione di decifratura è relativamente semplice nel caso in cui si l’operazione di decifratura è relativamente semplice nel caso in cui si
conosca la chiave.conosca la chiave.
Asimmetrici:Asimmetrici:
Usano una chiave pubblica e una privata;Usano una chiave pubblica e una privata;
Un messaggio viene cifrato con la chiave privata e decifrato con quella Un messaggio viene cifrato con la chiave privata e decifrato con quella
pubblica;pubblica;
Crittografia modernaCrittografia moderna

1313
Schema: algoritmi simmetriciSchema: algoritmi simmetrici
BobBob
AliceAlice
CarmenCarmen
I’love I’love
youyou
BobBob
I’love I’love
youyou
BobBob

1414
DES: Data Encryption Standard DES: Data Encryption Standard (storia)(storia)
Il DES nasce nella metà degli anni 70 dai laboratori di ricerca dell’IBM.Il DES nasce nella metà degli anni 70 dai laboratori di ricerca dell’IBM.
Nel 1972 l'NBS (National Bureau of Standards) dopo aver concluso una serie Nel 1972 l'NBS (National Bureau of Standards) dopo aver concluso una serie
di studi sulla sicurezza informatica per il governo statunitense definì la di studi sulla sicurezza informatica per il governo statunitense definì la
necessità dell'individuazione di un algoritmo di cifratura in modo da favorire necessità dell'individuazione di un algoritmo di cifratura in modo da favorire
la comunicazione protetta tra le varie organizzazioni governative la comunicazione protetta tra le varie organizzazioni governative
statunitensi. Dopo essersi consultata con l'NSA (National Security Agency) il statunitensi. Dopo essersi consultata con l'NSA (National Security Agency) il
15 maggio 1972 venne presentata la prima richiesta pubblica di uno standard 15 maggio 1972 venne presentata la prima richiesta pubblica di uno standard
di cifratura definito secondo criteri rigorosi. di cifratura definito secondo criteri rigorosi.
Nessuno degli algoritmi presentati superò i test dell'NSA e quindi il 27 agosto Nessuno degli algoritmi presentati superò i test dell'NSA e quindi il 27 agosto
1974 fù diramato un secondo bando. L’IBM sottopose come candidato il suo 1974 fù diramato un secondo bando. L’IBM sottopose come candidato il suo
algoritmo di cifratura sviluppato tra il 1973 e il 1974. Questo algoritmo algoritmo di cifratura sviluppato tra il 1973 e il 1974. Questo algoritmo
chiamato chiamato LuciferLucifer fù sviluppato da un team guidato da fù sviluppato da un team guidato da Horst FeistelHorst Feistel e si e si
basava su una chiave da 128basava su una chiave da 128 bit.bit. L'attività di ricerca continuò e la chiave fù L'attività di ricerca continuò e la chiave fù
portata da 128 a 56 bit, i risultati raggiunti apparvero in una serie di portata da 128 a 56 bit, i risultati raggiunti apparvero in una serie di
pubblicazioni e documenti ufficiali. pubblicazioni e documenti ufficiali.

1515
DES: Data Encryption Standard DES: Data Encryption Standard (storia)(storia)
Il 17 marzo 1975, il DES fu pubblicato nel Il 17 marzo 1975, il DES fu pubblicato nel Federal Register.Federal Register. Lo standard Lo standard
proposto fù subito messo in discussione da proposto fù subito messo in discussione da Martin HellmanMartin Hellman e e Whitfield DiffieWhitfield Diffie
che citavano la brevità della lunghezza della chiave e le misteriose S-box che citavano la brevità della lunghezza della chiave e le misteriose S-box
come prova di un'interferenza impropria da parte della NSA. come prova di un'interferenza impropria da parte della NSA.
Il sospetto che aleggiava era che l'algoritmo fosse stato indebolito di nascosto Il sospetto che aleggiava era che l'algoritmo fosse stato indebolito di nascosto
dall'agenzia di dall'agenzia di intelligenceintelligence in modo che essi, ma nessun altro, potessero in modo che essi, ma nessun altro, potessero
facilmente leggere messaggi cifrati. facilmente leggere messaggi cifrati.
Il Il Select Committee on IntelligenceSelect Committee on Intelligence del Senato degli Stati Uniti esaminò le del Senato degli Stati Uniti esaminò le
azioni della NSA per determinare se ci fosse stato un coinvolgimento azioni della NSA per determinare se ci fosse stato un coinvolgimento
improprio. Nel resoconto delle indagini pubblicato nel 1978, il Comitato improprio. Nel resoconto delle indagini pubblicato nel 1978, il Comitato
scrisse, "scrisse, "L'NSA non alterò il progetto dell'algoritmo in alcun modo. L'IBM L'NSA non alterò il progetto dell'algoritmo in alcun modo. L'IBM
inventò e progettò l'algoritmo, prese tutte le decisioni pertineti e fu inventò e progettò l'algoritmo, prese tutte le decisioni pertineti e fu
d'accordo nel ritenere che la lunghezza della chiave fosse più che adeguata d'accordo nel ritenere che la lunghezza della chiave fosse più che adeguata
a tutti gli usi commerciali al quale il DES era destinatoa tutti gli usi commerciali al quale il DES era destinato". ".

1616
Nonostante le critiche, il DES fu approvato come standard federale nel Nonostante le critiche, il DES fu approvato come standard federale nel
novembre 1976 e pubblicato il 15 gennaio 1977 come FIPS (Federal novembre 1976 e pubblicato il 15 gennaio 1977 come FIPS (Federal
Information Processing Standard) PUB 46. È stato in seguito riconfermato Information Processing Standard) PUB 46. È stato in seguito riconfermato
come standard nel 1983, 1988 (riesaminato come FIPS-46-1), 1993 come standard nel 1983, 1988 (riesaminato come FIPS-46-1), 1993
(FIPS-46-2) e nuovamente nel 1998 (FIPS-46-3), nel quale si introduce il (FIPS-46-2) e nuovamente nel 1998 (FIPS-46-3), nel quale si introduce il
"Triple DES"."Triple DES".
Il 26 maggio 2002, il DES è stato finalmente rimpiazzato dall'AES, l'Advanced Il 26 maggio 2002, il DES è stato finalmente rimpiazzato dall'AES, l'Advanced
Encryption Standard. Ancora oggi, ad ogni modo, il DES è ancora largamente Encryption Standard. Ancora oggi, ad ogni modo, il DES è ancora largamente
utilizzato.utilizzato.
L'introduzione del DES è stata un catalizzatore per ricerche accademiche L'introduzione del DES è stata un catalizzatore per ricerche accademiche
sulla crittografia, in particolare sui metodi di violazione dei cifrari a blocchi. sulla crittografia, in particolare sui metodi di violazione dei cifrari a blocchi.
Bruce Schneier scrive: "Bruce Schneier scrive: "Ufficiosamente, la NSA ha definito il DES come uno Ufficiosamente, la NSA ha definito il DES come uno
dei propri più grandi errori. Se avessero saputo che i dettagli sarebbero dei propri più grandi errori. Se avessero saputo che i dettagli sarebbero
stati rilasciati pubblicamente in modo che chiunque avrebbe potuto stati rilasciati pubblicamente in modo che chiunque avrebbe potuto
scrivere il software, non sarebbero stati d'accordoscrivere il software, non sarebbero stati d'accordo." ."
DES: Data Encryption Standard DES: Data Encryption Standard (storia)(storia)

1717
Nel 1990 in seguito alla pubblicazione da parte di Eli Biham e Adi Shamir Nel 1990 in seguito alla pubblicazione da parte di Eli Biham e Adi Shamir
della crittanalisi differenziale, un metodo per violare i cifrari a blocchi, si della crittanalisi differenziale, un metodo per violare i cifrari a blocchi, si
scoprì che Le S-box del DES erano molto resistenti agli attacchi facendo scoprì che Le S-box del DES erano molto resistenti agli attacchi facendo
fortemente sospettare che l'IBM conoscesse le techiche di crittoanalisi fortemente sospettare che l'IBM conoscesse le techiche di crittoanalisi
differenziale già negli anni '70. differenziale già negli anni '70.
Quando nel 1994, furono pubblicati i criteri di progetto originali delle S-Quando nel 1994, furono pubblicati i criteri di progetto originali delle S-
box si capì che l'IBM aveva scoperto la crittanalisi differenziale negli anni box si capì che l'IBM aveva scoperto la crittanalisi differenziale negli anni
'70 e che dopo aver reso sicuro il DES, gli fu richiesto dalla NSA di '70 e che dopo aver reso sicuro il DES, gli fu richiesto dalla NSA di
mantenere segreta questa tecnica. mantenere segreta questa tecnica.
QQuesto accadde perché la crittanalisi differenziale può essere una uesto accadde perché la crittanalisi differenziale può essere una
tecnica molto potente usata contro vari schemi e quindi avrebbe potuto tecnica molto potente usata contro vari schemi e quindi avrebbe potuto
generare problemi di sicurezza nazionale.generare problemi di sicurezza nazionale.
DES: Data Encryption Standard DES: Data Encryption Standard (storia)(storia)

1818
DES: struttura generaleDES: struttura generale
Il DES codifica blocchi di 64 bit e usa una chiave di 56 bit. Il DES codifica blocchi di 64 bit e usa una chiave di 56 bit.
La chiave in realtà è lunga 64 bit ma solo 56 di questi sono effettivamente La chiave in realtà è lunga 64 bit ma solo 56 di questi sono effettivamente
utilizzati dall'algoritmo in quanto 8 bit sono utilizzati solo per il controllo utilizzati dall'algoritmo in quanto 8 bit sono utilizzati solo per il controllo
di paritàdi parità

1919
La chiave (k) è memorizzata sfruttando 64 bit, dove l'ottavo, il 16-esimo, ... , La chiave (k) è memorizzata sfruttando 64 bit, dove l'ottavo, il 16-esimo, ... ,
il 64-esimo, sono i bit di parità per i sette bit precedenti. Possiamo il 64-esimo, sono i bit di parità per i sette bit precedenti. Possiamo
immaginare i 64 bit della chiave k divisi in 8 byte, dove per ognuno di questi immaginare i 64 bit della chiave k divisi in 8 byte, dove per ognuno di questi
l'ottavo bit definisce la parità del byte.l'ottavo bit definisce la parità del byte.
Quindi concretamente ci sono solo 56 bit su cui può variare la chiave per un Quindi concretamente ci sono solo 56 bit su cui può variare la chiave per un
totale di 2totale di 2
56 56
possibili combinazionipossibili combinazioni
XOR (0+0=0, 1+0=1, 0+1=1, 1+1=0)XOR (0+0=0, 1+0=1, 0+1=1, 1+1=0)
DES: struttura generaleDES: struttura generale

2020
DES: struttura generaleDES: struttura generale
permutazione iniziale di 64 bit
le sedici iterazioni che
trasformano la stringa in input
sono uguali nel senso che la
funzione che le realizza è
sempre la stessa (ad ogni
iterazione cambia solo la chiave
utilizzata)
scambia i 32 bit più a sinistra con
quelli più a destra della stringa
prodotta come output alla 16-
esima iterazione
sfruttando la sola chiave k,
produce le chiavi k1, k2, ...,
k16 di 48 bit ciascuna, per
le iterazioni da 1 a 16.

2121
DES: Permutazione IPDES: Permutazione IP
Sia x un testo in chiaro di 64 bit: l'algoritmo costruisce una stringa binaria Sia x un testo in chiaro di 64 bit: l'algoritmo costruisce una stringa binaria
permutando la stringa iniziale mediante la permutazione iniziale fissata IPpermutando la stringa iniziale mediante la permutazione iniziale fissata IP
585042342618102
605244362820124
625446383022146
645648403224168
57494133251791
595143352719113
615345372921135
635547393123157
1122
5050 5858
bit inizialibit iniziali
bit permutatibit permutati
6464......
Il primo valore della tabella specifica che il Il primo valore della tabella specifica che il
primo bit della stringa permutata IP(x) è il 58-primo bit della stringa permutata IP(x) è il 58-
esimo bit della stringa da permutare x; il esimo bit della stringa da permutare x; il
secondo elemento della tabella, 50, ne secondo elemento della tabella, 50, ne
specifica il secondo e così via. specifica il secondo e così via.

2222
Passo 3: L'output dell'algoritmo è ottenuto applicando la permutazione IPPasso 3: L'output dell'algoritmo è ottenuto applicando la permutazione IP
-1-1
a a
RR
1616LL
1616. Si noti l'ordine inverso delle ultime due stringhe di bit R. Si noti l'ordine inverso delle ultime due stringhe di bit R
1616 e L e L
1616 dovuto dovuto
allo scambio di 32 bit allo scambio di 32 bit
1122
88 4040
bit inizialibit iniziali
bit permutatibit permutati
408481656246432
397471555236331
386461454226230
375451353216129
364441252206028
353431151195927
342421050185826
33141949175725
6464......
DES: permutazione inversa IPDES: permutazione inversa IP
-1-1

Questa tabella si legge nello stesso modo della Questa tabella si legge nello stesso modo della
precedente. Queste permutazioni sono solo una precedente. Queste permutazioni sono solo una
scelta dello standard, potremmo infatti fare a scelta dello standard, potremmo infatti fare a
meno della permutazione iniziale e finale senza meno della permutazione iniziale e finale senza
perdere in sicurezza.perdere in sicurezza.

2323
Il DES effettua 16 iterazioni. Per 1 Il DES effettua 16 iterazioni. Per 1 ££ i i ££ 16 l'input della i-esima iterazione è 16 l'input della i-esima iterazione è
una stringa di 64 bit divisa in due parti, Luna stringa di 64 bit divisa in due parti, L
i-1i-1 e R e R
i-1i-1, ognuna di 32 bit (chiamate , ognuna di 32 bit (chiamate
rispettivamente parte sinistra e parte destra della stringa). I valori di output Lrispettivamente parte sinistra e parte destra della stringa). I valori di output L
ii
e Re R
ii sono prodotti in base alla seguente regola: sono prodotti in base alla seguente regola: LL
ii=R=R
i-1 i-1 e Re R
ii=L=L
i-1i-1ÅÅ f(Rf(R
i-1 i-1 , k, k
ii))
DES: iterazioniDES: iterazioni
L'operatore L'operatore ÅÅ denota la denota la
funzione xor bit a bit delle funzione xor bit a bit delle
due stringhe, ed f è una due stringhe, ed f è una
funzione che, data la funzione che, data la
chiave kchiave k
ii e la sottostringa e la sottostringa
RR
i-1 i-1 , produce una stringa , produce una stringa
lunga 32 bit. lunga 32 bit.
kk
11, k, k
22, ..., k, ..., k
1616 sono le chiavi sono le chiavi
prodotte dal processo di prodotte dal processo di
schedulazione. All'i-esima schedulazione. All'i-esima
iterazione verrà usata la iterazione verrà usata la
sola chiave ksola chiave k
ii..
L
i-1
LL
ii--11 R
i-1
RR
ii--11
L
i
LL
ii R
i
RR
ii
k
i
kk
ii
fff
parte sinistraparte sinistra
32 bit32 bit
parte destraparte destra
32 bit32 bit
sottochiavesottochiave
48 bit48 bit
singola iterazionesingola iterazione

2424
DES: funzione di FeistelDES: funzione di Feistel
La funzione f prende in input una stringa A di 32 bit, una stringa K di 48 bit, La funzione f prende in input una stringa A di 32 bit, una stringa K di 48 bit,
e fornisce in output una stringa di 32 bit.e fornisce in output una stringa di 32 bit.
JJ
AA
EEE
E(A)E(A)
PPP
S1
S1S1
S2
S2S2
S3
S3S3
S4
S4S4
S5
S5S5
S6
S6S6
S7
S7S7
CC
1 1 CC
2 2 CC
3 3 CC
4 4 CC
5 5 CC
6 6 CC
7 7 CC
88
BB
1 1 BB
2 2 BB
3 3 BB
4 4 BB
5 5 BB
6 6 BB
7 7 BB
88
48 bit48 bit
48 bit48 bit
32 bit32 bit
S8
S8S8
La stringa A di 32 bit viene espansa La stringa A di 32 bit viene espansa
dalla funzione E in una stringa 48 dalla funzione E in una stringa 48
bit. Viene computato lo xor bit a bit. Viene computato lo xor bit a
bit tra K e E(A), che è una stringa di bit tra K e E(A), che è una stringa di
48 bit. La sequenza viene divisa in 48 bit. La sequenza viene divisa in
8 sottosequenze di 6 bit ciascuna, 8 sottosequenze di 6 bit ciascuna,
dette sottosequenze Bdette sottosequenze B
11, B, B
22, ..., B, ..., B
88. .
L'S-box Si (per 1 L'S-box Si (per 1 ££ i i ££ 8) prende in 8) prende in
input Bi (a 6 bit) e da in output una input Bi (a 6 bit) e da in output una
sequenza a 4 bit, che chiamiamo Ci. sequenza a 4 bit, che chiamiamo Ci.
La stringa CLa stringa C
11,C,C
22,...,C,...,C
88 (a 32 bit) (a 32 bit)
viene permutata tramite la viene permutata tramite la
permutazione P e questo è il valore permutazione P e questo è il valore
f(A, K).f(A, K).
K

2525

3212345
456789
8910111213
121314151617
161718192021
202122232425
242526272829
28293031321
La funzione E duplica e permuta 16 bit dei 32 di A La funzione E duplica e permuta 16 bit dei 32 di A
in base allo schema della tabella Ein base allo schema della tabella E
Espansione (E)Espansione (E) e permutazione (P)e permutazione (P)
1122
11 3232
bit inizialibit iniziali
bit dopo espansionebit dopo espansione
4848
22
33......
Tabella ETabella E
Tabella PTabella P
La tabella P specifica la permutazione PLa tabella P specifica la permutazione P

2626
L'unico punto in cui il sistema DES non utilizza funzioni di tipo lineare (cioè L'unico punto in cui il sistema DES non utilizza funzioni di tipo lineare (cioè
gli xor, le permutazioni e le espansioni) è nelle S-box, che costituiscono il gli xor, le permutazioni e le espansioni) è nelle S-box, che costituiscono il
fulcro dell'algoritmo. fulcro dell'algoritmo.
0000000100100011010001010110011110001001101010111100011001111111
0014 413 1 21511 8 310 612 5 9 0 7
01015 7 414 213 110 61211 9 5 3 8
104 1 7 813 6 2111512 9 7 310 5 0
11151210 2 4 9 1 7 511 31410 0 613
DES: S-BOXDES: S-BOX
S-BOX S1S-BOX S1
Dato Bi (l'input a 6 bit dell‘S-box Si), il primo e l'ultimo bit di Bi vengono Dato Bi (l'input a 6 bit dell‘S-box Si), il primo e l'ultimo bit di Bi vengono
interpretati come indice di riga, mentre i bit centrali come indice di colonna. interpretati come indice di riga, mentre i bit centrali come indice di colonna.
Si consulta la tabella Si alle coordinate prescritte e il valore trovato nell'S-Si consulta la tabella Si alle coordinate prescritte e il valore trovato nell'S-
box è un decimale la cui conversione binaria dà i 4 bit outputbox è un decimale la cui conversione binaria dà i 4 bit output

2727
0000000100100011010001010110011110001001101010111100011001111111
0014 413 1 21511 8 310 612 5 9 0 7
01015 7 414 213 110 61211 9 5 3 8
104 1 7 813 6 2111512 9 7 310 5 0
11151210 2 4 9 1 7 511 31410 0 613
Box S1Box S1

0000000100100011010001010110011110001001101010111100011001111111
0014 413 1 21511 8 310 612 5 9 0 7
01015 7 414 213 110 61211 9 5 3 8
104 1 7 813 6 2111512 9 7 310 5 0
11151210 2 4 9 1 7 511 31410 0 613
Input BInput B
11 = 101110 = 101110
1010
primo ed ultimo bitprimo ed ultimo bit
output Soutput S
11= 11 ---> in binario = 1011= 11 ---> in binario = 1011
DES: S-BOX (esempio) DES: S-BOX (esempio)

2828
DES: proprietà delle S-boxDES: proprietà delle S-box
I criteri di progettazione delle S-box non sono completamente noti. Si I criteri di progettazione delle S-box non sono completamente noti. Si
conoscono solo alcune proprietà:conoscono solo alcune proprietà:
Ogni riga è una permutazione degli interi 0,..,15Ogni riga è una permutazione degli interi 0,..,15
Nessuna S-box è una funzione affine o lineare dei suoi inputNessuna S-box è una funzione affine o lineare dei suoi input
Cambiando un solo bit di input ad una S-box variano almeno due bit Cambiando un solo bit di input ad una S-box variano almeno due bit
nell'outputnell'output
Per ogni S-box S e per ogni input x a 6 bit: S(x) e S(xPer ogni S-box S e per ogni input x a 6 bit: S(x) e S(x ÅÅ001100) 001100)
differiscono in almeno due bitdifferiscono in almeno due bit
Per ogni S-box, per ogni input x e per ogni bit d,g, S(x) Per ogni S-box, per ogni input x e per ogni bit d,g, S(x) ¹¹ S(x S(xÅÅ11dg00)11dg00)
Per ogni S-box, se fissiamo un bit di input e osserviamo il valore di un Per ogni S-box, se fissiamo un bit di input e osserviamo il valore di un
fissato bit di output, il numero degli input per i quali il bit di output vale fissato bit di output, il numero degli input per i quali il bit di output vale
0 è circa uguale al numero degli input per i quali tale bit vale 10 è circa uguale al numero degli input per i quali tale bit vale 1
Verificare per esercizio queste proprietà sulla S-BOX S1Verificare per esercizio queste proprietà sulla S-BOX S1

2929
DES: schedulazione delle chiaviDES: schedulazione delle chiavi
LS
1
LSLS
11
chiave kchiave k
PC1PC1PC1
PC2PC2PC2
PC2PC2PC2
kk
11
kk
1616
CC
00 DD
00
LS
1
LSLS
11
CC
11 DD
11
CC
1616 DD
1616
LS
16
LSLS
1616 LS
16
LSLS
1616
48 bit48 bit
48 bit48 bit 56 bit56 bit
56 bit56 bit
..
..
..
..
..
..
..
..
..
Le chiavi usate durante i vari round sono ricavate dalla chiave k di 64 bit Le chiavi usate durante i vari round sono ricavate dalla chiave k di 64 bit
escludendo gli 8 bit utilizzati per il controllo di parità e permutando i escludendo gli 8 bit utilizzati per il controllo di parità e permutando i
rimanenti 56 bit tramite la permutazione PC1 che calcolerà PC1(k) = Crimanenti 56 bit tramite la permutazione PC1 che calcolerà PC1(k) = C
00DD
0 0 dove dove
CC
00 e D e D
00 sono i primi e gli ultimi 28 bit di PC1(k). sono i primi e gli ultimi 28 bit di PC1(k).
Sia Per 1 Sia Per 1 ££ i i ££ 16 computiamo 16 computiamo
CC
ii = LS = LS
ii(C(C
i-1i-1););
DD
ii = LS = LS
ii(D(D
i-1i-1););
KK
ii = PC = PC
22(C(C
iiDD
ii))
LSLS
ii è uno shift ciclico a sinistra è uno shift ciclico a sinistra
di una o due posizioni a di una o due posizioni a
seconda del valore di i.seconda del valore di i.
PC2 infine è una compressione PC2 infine è una compressione
di una stringa di input a di una stringa di input a
56 bit, in una stringa di 56 bit, in una stringa di
output a 48 bit.output a 48 bit.

3030
Permutazione PC1Permutazione PC1

1122
11 6464
bit inizialibit iniziali
bit dopo permutazionebit dopo permutazione
5656
5757
33......
57494133251791585042342618
10259514335271911360524436
635547393123157625446383022
1466153453729211352820124
I bit in posizione 8, 16, 24, 32, 40, 48, 56, 64 sono di parità e non I bit in posizione 8, 16, 24, 32, 40, 48, 56, 64 sono di parità e non
compaiono, essi servono per rivelare un errore in ogni byte.compaiono, essi servono per rivelare un errore in ogni byte.

3131
La funzione shift a sinistra LSLa funzione shift a sinistra LS
ii

12345678910111213141516
1122222212222221
iterazioniterazion
ee shiftshift
Lo shift LSi riguarda una sola Lo shift LSi riguarda una sola
posizione alle iterazioni 1, 2, 9 e 16, posizione alle iterazioni 1, 2, 9 e 16,
e due posizioni a tutte le altre e due posizioni a tutte le altre
iterazioniiterazioni
Totale shift nelle 16 iterazioni = 28 Totale shift nelle 16 iterazioni = 28
posizioniposizioni
LS
1
LSLS
11
chiave kchiave k
PC1PC1PC1
PC2PC2PC2
PC2PC2PC2
kk
11
kk
1616
CC
00 DD
00
LS
1
LSLS
11
CC
11 DD
11
CC
1616 DD
1616
LS
16
LSLS
1616 LS
16
LSLS
1616
48 bit48 bit
48 bit48 bit 56 bit56 bit
56 bit56 bit
..
..
..
..
..
..
..
..
..

3232
Compressione-permutazione PC2Compressione-permutazione PC2

1122
11 5656
bit inizialibit iniziali
bit dopo bit dopo compressione
8 bit soppressi in posizione 9, 18, 22, 25, 35, 38, 43 e 548 bit soppressi in posizione 9, 18, 22, 25, 35, 38, 43 e 54
4848
1414
33......
141711241532815621102319124
268167272013264152313747553040
51453348444939563453464250362932

3333
Decifratura del DESDecifratura del DES

IPIP
IPIP
-1 -1
iterazione 1iterazione 1
iterazione 16iterazione 16
testo cifratotesto cifrato
scambioscambio
......
schedulazioneschedulazione
chiavechiave
Chiave kChiave k
kk
1616
kk
11
Per decifrare si usa lo stesso algoritmo e la stessa Per decifrare si usa lo stesso algoritmo e la stessa
chiave K usati per cifrare, eccezion fatta per la chiave K usati per cifrare, eccezion fatta per la
schedulazione delle chiavi ad ogni round, che è schedulazione delle chiavi ad ogni round, che è
invertita.invertita.
ESERCIZIOESERCIZIO

3434
l'ECB (Electronic Codebook chaining). l'ECB (Electronic Codebook chaining).
Un messaggio in chiaro xUn messaggio in chiaro x
11xx
22…x…x
nn, dove ogni x, dove ogni x
i i rappresenta un blocco di 64 bit) rappresenta un blocco di 64 bit)
viene cifrato applicando ripetutamente ad ogni blocco xviene cifrato applicando ripetutamente ad ogni blocco x
ii l'algoritmo DES, l'algoritmo DES,
sempre con la stessa chiave k, producendo un testo cifrato ysempre con la stessa chiave k, producendo un testo cifrato y
11yy
22…y…y
nn..
Quindi i valori dei blocchi yQuindi i valori dei blocchi y
ii sono dati da: y sono dati da: y
ii = DES = DES
kk(x(x
ii))
Modalità del DES: ECBModalità del DES: ECB

3535
L'unico problema con questo metodo si ha quando il messaggio è costituito da L'unico problema con questo metodo si ha quando il messaggio è costituito da
un numero di bit che non è un multiplo di 64, cioè quando l'ultimo blocco un numero di bit che non è un multiplo di 64, cioè quando l'ultimo blocco
non contiene esattamente 64 bit, ma di meno. La soluzione per questo caso non contiene esattamente 64 bit, ma di meno. La soluzione per questo caso
non è definita dallo standard, ma bisogna convenire su come risolverlo.non è definita dallo standard, ma bisogna convenire su come risolverlo.
L'idea potrebbe essere quella di inserire del testo opportuno alla fine del L'idea potrebbe essere quella di inserire del testo opportuno alla fine del
blocco, in modo tale che, in fase di decifratura, possa essere semplice blocco, in modo tale che, in fase di decifratura, possa essere semplice
distinguere il testo aggiunto da quello originale. distinguere il testo aggiunto da quello originale.
Una possibile soluzione è quella di aggiungere al messaggio originale la Una possibile soluzione è quella di aggiungere al messaggio originale la
sequenza 100...0, in modo da completare l'ultimo blocco a 64 bit. sequenza 100...0, in modo da completare l'ultimo blocco a 64 bit.
Naturalmente, questa operazione deve essere fatta anche quando l'ultimo Naturalmente, questa operazione deve essere fatta anche quando l'ultimo
blocco è già di 64 bit, in modo da stabilire un criterio generale.blocco è già di 64 bit, in modo da stabilire un criterio generale.
Questo significa che, in fase di decifratura si sa con certezza che la stringa Questo significa che, in fase di decifratura si sa con certezza che la stringa
finale del messaggio decifrato, cioè la stringa 100...0, è stata aggiunta in fase finale del messaggio decifrato, cioè la stringa 100...0, è stata aggiunta in fase
di cifratura, e quindi non viene considerata come facente parte del di cifratura, e quindi non viene considerata come facente parte del
messaggio originario.messaggio originario.
ModalitàModalità del DES: ECBdel DES: ECB

3636
L'operazione di decifratura considera un blocco alla volta del messaggio, così L'operazione di decifratura considera un blocco alla volta del messaggio, così
come accadeva per la cifratura, applicando però in questo caso l'algoritmo di come accadeva per la cifratura, applicando però in questo caso l'algoritmo di
decifratura DES.decifratura DES.
ModalitàModalità del DES: ECBdel DES: ECB
Il vantaggio di questo metodo sta nella Il vantaggio di questo metodo sta nella
sua rapidità di esecuzione. sua rapidità di esecuzione.
Lo svantaggio è dato dal fatto che, Lo svantaggio è dato dal fatto che,
durante la trasmissione del messaggio, durante la trasmissione del messaggio,
potrebbe verificarsi sia la perdita di un potrebbe verificarsi sia la perdita di un
blocco che l'attacco da parte di un blocco che l'attacco da parte di un
nemico. nemico.
In particolare, quest'ultimo potrebbe In particolare, quest'ultimo potrebbe
sostituire un blocco con un altro, senza sostituire un blocco con un altro, senza
la possibilità che colui che riceve il la possibilità che colui che riceve il
messaggio possa accorgersene.messaggio possa accorgersene.
Per esempio egli potrebbe cambiare in Per esempio egli potrebbe cambiare in
un messaggio il blocco "do" con "do not" un messaggio il blocco "do" con "do not"
senza essere scoperto. Questo è dovuto senza essere scoperto. Questo è dovuto
alla mancanza di dipendenza tra i vari alla mancanza di dipendenza tra i vari
blocchiblocchi

3737
Modalità del DES: CBCModalità del DES: CBC
CBC (Cipher Block Chaining)CBC (Cipher Block Chaining)
Dato un messaggio in chiaro xDato un messaggio in chiaro x
11xx
22 ...x ...x
nn ed una chiave nascosta k, in questa ed una chiave nascosta k, in questa
modalità un generico ymodalità un generico y
ii è dato da: è dato da:
yy
ii = DES = DES
kk(y(y
i-1i-1 ÅÅ x x
ii), 1 ), 1 ££ i i ££ n n
con ycon y
00 = IV(vettore di inizializzazione a 64 bit). = IV(vettore di inizializzazione a 64 bit).
Quest'ultimo viene poi utilizzato per fare lo xor bit a bit col blocco successivo del
messaggio in chiaro x
2
, quindi si applica alla stringa così ottenuta l'algoritmo DES sempre
con la stessa chiave k, ottenendo il blocco cifrato y
2
e così via. Con questo metodo, si
definisce in qualche modo un legame tra y
i
ed il blocco precedente y
i-1
.
ÅÅ ÅÅ ÅÅ
Il procedimento di cifratura considera inizialmente il vettore IV, di 64 bit, quindi
effettua lo xor bit a bit tra questi ed i primi 64 bit del messaggio in chiaro, infine
applica alla stringa così ottenuta l'algoritmo di cifratura DES con chiave k, ottenendo il
blocco cifrato y
1
.

3838
Per decifrare operiamo all'inverso del caso della cifratura, cioè si applica yPer decifrare operiamo all'inverso del caso della cifratura, cioè si applica y
11
come input del DEScome input del DES
-1-1
(algoritmo di decifratura) con la stessa chiave k, (algoritmo di decifratura) con la stessa chiave k,
ottenendo quindi la stringa che precedentemente definiva lo xor bit a bit tra ottenendo quindi la stringa che precedentemente definiva lo xor bit a bit tra
xx
11 ed IV, che costituiva l'input del DES. Ora poiché si vuole calcolare x ed IV, che costituiva l'input del DES. Ora poiché si vuole calcolare x
11 si si
effettua l'operazione inversa, cioè lo xor bit a bit del valore in output del effettua l'operazione inversa, cioè lo xor bit a bit del valore in output del
DES-1 con IV e ottenendo xDES-1 con IV e ottenendo x
11. In generale quindi: . In generale quindi:
xx
ii = y = y
i-1i-1 ÅÅ DES DES
kk-1(y-1(y
ii) per 1 ) per 1 ££ i i ££ n n
Modalità del DES: CBCModalità del DES: CBC
Il vantaggio di questo schema è che se si Il vantaggio di questo schema è che se si
cambia un solo bit del messaggio cambia un solo bit del messaggio
originario cambia di conseguenza anche originario cambia di conseguenza anche
la parte rimanente del messaggio.la parte rimanente del messaggio.
Questa caratteristica elimina la Questa caratteristica elimina la
possibilità di un attacco tramite possibilità di un attacco tramite
sostituzione di un blocco. Infatti, in una sostituzione di un blocco. Infatti, in una
tale evenienza il messaggio sarebbe tale evenienza il messaggio sarebbe
irrimediabilmente compromesso. irrimediabilmente compromesso.
Lo svantaggio di tale metodo è che in Lo svantaggio di tale metodo è che in
esso vengono eseguite più operazioni esso vengono eseguite più operazioni
rispetto all'ECB, e quindi rispetto ad esso rispetto all'ECB, e quindi rispetto ad esso
è più lentoè più lento.

3939
Modalità del DES: CFBModalità del DES: CFB
CFB (Cipher Feedback)CFB (Cipher Feedback)
In questa modalità viene fornito un vettore di inizializzazione IV, che è una In questa modalità viene fornito un vettore di inizializzazione IV, che è una
stringa di 64 bit. Sia xstringa di 64 bit. Sia x
11xx
22…x…x
nn il messaggio in chiaro. Allora il generico y il messaggio in chiaro. Allora il generico y
ii è è
definito da:definito da:
yy
ii = x = x
ii ÅÅ DES DES
kk (y (y
i-1i-1) con 1 ) con 1 ££ i i ££ n n

4040
Esiste una versione più generale detta Cipher Feedback con j bit. Per essa si Esiste una versione più generale detta Cipher Feedback con j bit. Per essa si
considera inizialmente una stringa di 64 bit (costituita dal vettore IV), che si considera inizialmente una stringa di 64 bit (costituita dal vettore IV), che si
può immaginare suddivisa in due parti, di 64-j bit a sinistra e j bit a destra. può immaginare suddivisa in due parti, di 64-j bit a sinistra e j bit a destra.
Quindi si cifra tale stringa usando l'algoritmo di cifratura DES con chiave k.Quindi si cifra tale stringa usando l'algoritmo di cifratura DES con chiave k.
Modalità del DES: CFB j-bitModalità del DES: CFB j-bit
Ad ogni passo, da j bit del testo in chiaro otteniamo j bit del testo cifrato.
Della stringa cifrata così ottenuta vengono considerati solo i j bit più a sinistra. Quindi
si effettua lo xor bit a bit tra questi j bit ed i prossimi j bit del messaggio in chiaro,
ottenendo j bit del messaggio cifrato. Tali j bit così definiti rientrano nel circuito, in
quanto al passo successivo il vettore originale di 64 bit viene shiftato di j posizioni a
sinistra, e gli ultimi j bit di tale vettore diventano i j bit del messaggio cifrato.

4141
La decifratura avviene in maniera analoga alla cifratura. E’ importante La decifratura avviene in maniera analoga alla cifratura. E’ importante
osservare che per la decifratura viene usato ancora l’algoritmo DES e non il osservare che per la decifratura viene usato ancora l’algoritmo DES e non il
DESDES
-1-1
. .
L'unica variante significativa in tale schema è data dal fatto che i j bit del L'unica variante significativa in tale schema è data dal fatto che i j bit del
messaggio cifrato, vengono utilizzati per effettuare lo xor bit a bit con i j bit messaggio cifrato, vengono utilizzati per effettuare lo xor bit a bit con i j bit
più a sinistra dell'output del DES, oltre a costituire in seguito i nuovi j bit più più a sinistra dell'output del DES, oltre a costituire in seguito i nuovi j bit più
a destra del vettore iniziale (su cui viene applicato l'algoritmo DES), a destra del vettore iniziale (su cui viene applicato l'algoritmo DES),
definendo così j bit del messaggio in chiaro.definendo così j bit del messaggio in chiaro.
Modalità del DES: CFB j-bitModalità del DES: CFB j-bit
Il vantaggio di questo schema è dato dal fatto che Il vantaggio di questo schema è dato dal fatto che
il valore di j può essere scelto a piacimento. il valore di j può essere scelto a piacimento.
Per esempio alcune applicazioni scelgono j = 8, Per esempio alcune applicazioni scelgono j = 8,
che significa cifrare 8 bit (1 byte) alla volta del che significa cifrare 8 bit (1 byte) alla volta del
messaggio in chiaro. Questa scelta si presta messaggio in chiaro. Questa scelta si presta
particolarmente alla cifratura on-line; infatti con particolarmente alla cifratura on-line; infatti con
j = 8 può essere trasmesso un carattere alla volta.j = 8 può essere trasmesso un carattere alla volta.
Lo svantaggio di questo metodo è che per valori Lo svantaggio di questo metodo è che per valori
di j piccoli esso diventa sicuramente più oneroso di j piccoli esso diventa sicuramente più oneroso
di quelli visti in precedenza.di quelli visti in precedenza.

4242
Anche in questa modalità si utilizza una stringa iniziale di 64 bit (vettore IV). Anche in questa modalità si utilizza una stringa iniziale di 64 bit (vettore IV).
Come primo passo viene costruita la sequenza: zCome primo passo viene costruita la sequenza: z
00zz
11zz
22zz
33…. dove z…. dove z
00 = IV e z = IV e z
ii = =
DESDES
kk(z(z
ii-1) con chiave k segreta. -1) con chiave k segreta.
Come si può notare tale stringa è del tutto indipendente dal messaggio in Come si può notare tale stringa è del tutto indipendente dal messaggio in
chiaro. Quindi sia xchiaro. Quindi sia x
11xx
22...x...x
nn il messaggio in chiaro; il messaggio cifrato è il messaggio in chiaro; il messaggio cifrato è
definito da ydefinito da y
11yy
22…y…y
nn dove: y dove: y
ii = x = x
i i Å Å zz
ii
Modalità del DES: Modalità del DES: Output Feedback Output Feedback
Anche per tale metodo c'è la variante Anche per tale metodo c'è la variante
a j bit, che è analoga a quella del a j bit, che è analoga a quella del
CFB, l'unica diversità sta nel fatto che CFB, l'unica diversità sta nel fatto che
il feed-back (cioè il riutilizzo di una il feed-back (cioè il riutilizzo di una
certa parte dell'informazione) non certa parte dell'informazione) non
riguarda j bit del testo cifrato, ma i j riguarda j bit del testo cifrato, ma i j
bit più a sinistra della stringa in bit più a sinistra della stringa in
output prodotta dal DES. output prodotta dal DES.

4343
Per la decifratura si può notare che la prima parte del metodo è uguale a Per la decifratura si può notare che la prima parte del metodo è uguale a
quello che viene utilizzata per effettuare la cifratura (ciò è valido dal quello che viene utilizzata per effettuare la cifratura (ciò è valido dal
momento che la sequenza del messaggio in chiaro generata da questa prima momento che la sequenza del messaggio in chiaro generata da questa prima
parte è indipendente dal messaggio in chiaro, così come dal messaggio parte è indipendente dal messaggio in chiaro, così come dal messaggio
cifrato). cifrato).
Quindi, ad ogni passo si considerano i j bit più a sinistra delle stringhe fornite Quindi, ad ogni passo si considerano i j bit più a sinistra delle stringhe fornite
in output dall'algoritmo DES, e si effettua lo xor bit a bit con j bit del in output dall'algoritmo DES, e si effettua lo xor bit a bit con j bit del
messaggio cifrato, ottenendo così j bit del messaggio in chiaro.messaggio cifrato, ottenendo così j bit del messaggio in chiaro.
Modalità del DES: Modalità del DES: Output Feedback Output Feedback
ESERCIZIOESERCIZIO

4444
Applicazioni del DESApplicazioni del DES
L'algoritmo DES può essere usato come standard sia per la cifratura che per L'algoritmo DES può essere usato come standard sia per la cifratura che per
l'autenticazione dei dati.l'autenticazione dei dati.
Cifratura DatiCifratura Dati:: è semplice vedere come il DES può essere usato per cifrare è semplice vedere come il DES può essere usato per cifrare
un testo in chiaro di 64 bit, tuttavia la lunghezza dei testi è raramente un testo in chiaro di 64 bit, tuttavia la lunghezza dei testi è raramente
limitata a 64 bit. Per testi più lunghi possono essere utilizzate le modalità di limitata a 64 bit. Per testi più lunghi possono essere utilizzate le modalità di
operative viste in precedenza. Ognuna di tali modalità ha vantaggi e operative viste in precedenza. Ognuna di tali modalità ha vantaggi e
svantaggi. svantaggi.
Per esempio l'ECB è eccellente per la cifratura delle chiavi; CFB è usato Per esempio l'ECB è eccellente per la cifratura delle chiavi; CFB è usato
tipicamente per cifrare caratteri individuali; OFB è tipicamente usato per tipicamente per cifrare caratteri individuali; OFB è tipicamente usato per
cifrare comunicazioni via satellite (in cui è necessario ridurre al minimo la cifrare comunicazioni via satellite (in cui è necessario ridurre al minimo la
possibilità di errori alla stazione ricevente); ed infine entrambi CBC e CFB possibilità di errori alla stazione ricevente); ed infine entrambi CBC e CFB
possono essere usati per l'autenticazione di dati. possono essere usati per l'autenticazione di dati.
Tuttavia per essi non esistono delle analisi formali che dimostrino qual'è il Tuttavia per essi non esistono delle analisi formali che dimostrino qual'è il
più sicuro, a meno che non si faccia uso di ipotesi molto restrittive.più sicuro, a meno che non si faccia uso di ipotesi molto restrittive.

4545
Applicazioni del DESApplicazioni del DES
Autenticazione DatiAutenticazione Dati: Originariamente il DES fu introdotto per permettere la : Originariamente il DES fu introdotto per permettere la
cifratura e la decifratura di dati usati sul computer. Tuttavia la sua cifratura e la decifratura di dati usati sul computer. Tuttavia la sua
applicazione si è estesa anche alla autenticazione dei dati. applicazione si è estesa anche alla autenticazione dei dati.
Tale necessità è nata dalla difficoltà di riconoscere se in un messaggio Tale necessità è nata dalla difficoltà di riconoscere se in un messaggio
c'erano state delle modifiche o meno, durante la fase di trasmissione. Più in c'erano state delle modifiche o meno, durante la fase di trasmissione. Più in
particolare, nel caso in cui i dati erano cifrati con una delle due modalità CFB particolare, nel caso in cui i dati erano cifrati con una delle due modalità CFB
o CBC, allora queste possono essere usate per produrre un Codice di o CBC, allora queste possono essere usate per produrre un Codice di
Autenticazione del Messaggio (MAC). Autenticazione del Messaggio (MAC).
Il MAC viene posto alla fine del messaggio in chiaro, ed è usato per Il MAC viene posto alla fine del messaggio in chiaro, ed è usato per
convincere chi riceve il messaggio che esso non è stato alterato da nessuno. convincere chi riceve il messaggio che esso non è stato alterato da nessuno.
Così il MAC garantisce l'integrità (o autenticità) del messaggio (ma non la sua Così il MAC garantisce l'integrità (o autenticità) del messaggio (ma non la sua
segretezza).segretezza).

4646
yy
11,y,y
22,…y,…y
nn
Applicazioni del DES: MACApplicazioni del DES: MAC
La modalità di operazione CBC viene usata per produrre un MAC (Message La modalità di operazione CBC viene usata per produrre un MAC (Message
Authentication Code) nel seguente modo: Authentication Code) nel seguente modo:
BobBob
AliceAlice
CarmenCarmen
xx
11,x,x
22,…x,…x
nn
yy
11,y,y
22,…y,…y
nn MAC=MAC= yy
nn
xx
11,x,x
22,…x,…x
nn,y,y
nn
xx
11,x,x
22,…x,…x
nn,y,y
nn
xx
11,x,x
22,…x,…x
nn
yy
nn
Si noti che un nemico che vuole attaccare il sistema non può Si noti che un nemico che vuole attaccare il sistema non può
produrre un MAC valido poiché non conosce la chiave di produrre un MAC valido poiché non conosce la chiave di
cifratura. Quindi se Carmen intercetta il messaggio xcifratura. Quindi se Carmen intercetta il messaggio x
11,x,x
22... ...
xx
nn,y,y
nn e cambia uno o più bit di tale messaggio, è altamente e cambia uno o più bit di tale messaggio, è altamente
improbabile che riesca a cambiare anche il MAC evitando che improbabile che riesca a cambiare anche il MAC evitando che
Bob si accorga delle modifiche.Bob si accorga delle modifiche.

4747
BobBob
xx
11,x,x
22,…x,…x
nn,y,y
nn
Applicazioni del DESApplicazioni del DES
Cifratura ed Autenticazione dei DatiCifratura ed Autenticazione dei Dati: è spesso desiderabile combinare : è spesso desiderabile combinare
autenticità e segretezza. Questo potrebbe essere fatto usando due chiavi: autenticità e segretezza. Questo potrebbe essere fatto usando due chiavi:
yy
11,y,y
22,…y,…y
nn
CarmenCarmen
xx
11,x,x
22,…x,…x
nn
yy
11,y,y
22,…y,…y
nn MAC=MAC= yy
nn
xx
11,x,x
22,…x,…x
nn,y,y
nn
xx
11,x,x
22,…x,…x
nn
yy
nn
xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx
AliceAlice

4848
Applicazioni del DESApplicazioni del DES
Trasferimento Elettronico di Fondi (EFT) (ANSI X9.9)Trasferimento Elettronico di Fondi (EFT) (ANSI X9.9):: probabilmente probabilmente
l'uso più significativo del DES è quello riguardante la protezione dei messaggi l'uso più significativo del DES è quello riguardante la protezione dei messaggi
di trasferimento, relativi a vendite al dettaglio ed all'ingrosso. I dati protetti di trasferimento, relativi a vendite al dettaglio ed all'ingrosso. I dati protetti
tramite DES sono relativi a trasferimenti di fondi che variano da $50 a tramite DES sono relativi a trasferimenti di fondi che variano da $50 a
svariati milioni di dollari. svariati milioni di dollari.
In particolare il governo degli Stati Uniti è responsabile di trasferimenti di In particolare il governo degli Stati Uniti è responsabile di trasferimenti di
miliardi di dollari al giorno. Per far sì che questi trasferimenti siano sicuri, il miliardi di dollari al giorno. Per far sì che questi trasferimenti siano sicuri, il
Dipartimento del Tesoro Americano ha dato inizio alla politica Dipartimento del Tesoro Americano ha dato inizio alla politica
precedentemente citata sull'autenticazione dei messaggi EFT. precedentemente citata sull'autenticazione dei messaggi EFT.
Anche la Banca federale coopera con il Tesoro per la buona riuscita di Anche la Banca federale coopera con il Tesoro per la buona riuscita di
queste operazioni. Uno dei sistemi che si sta considerando consiste di queste operazioni. Uno dei sistemi che si sta considerando consiste di
strumenti manuali contenenti chiavi DES usati nella cifratura di messaggi strumenti manuali contenenti chiavi DES usati nella cifratura di messaggi
finanziari. Questi strumenti forniscono la chiave per l'autenticazione delle finanziari. Questi strumenti forniscono la chiave per l'autenticazione delle
firme di documenti cartacei. firme di documenti cartacei.

4949
Applicazioni del DESApplicazioni del DES
Immagazzinamento Dati e Sistemi di Posta (ANSI X9.19)Immagazzinamento Dati e Sistemi di Posta (ANSI X9.19):: il DES viene il DES viene
utilizzato per la cifratura di password per l'accesso a sistemi computerizzati. utilizzato per la cifratura di password per l'accesso a sistemi computerizzati.
L'algoritmo confronta la cifratura della stringa data in input come password L'algoritmo confronta la cifratura della stringa data in input come password
con quella conservata in memoria, ed attiva o nega l'accesso al sistema a con quella conservata in memoria, ed attiva o nega l'accesso al sistema a
seconda che il match fra le due stringhe abbia o meno esito positivo. seconda che il match fra le due stringhe abbia o meno esito positivo.
Il DES può anche essere utilizzato per la protezione di file in memoria. Una Il DES può anche essere utilizzato per la protezione di file in memoria. Una
pubblicazione speciale dell'NBS descrive un sistema di notarizzazione di pubblicazione speciale dell'NBS descrive un sistema di notarizzazione di
chiavi che può essere integrato in un sistema computerizzato, per chiavi che può essere integrato in un sistema computerizzato, per
proteggere file da modifiche e divulgazioni e per provvedere a una firma proteggere file da modifiche e divulgazioni e per provvedere a una firma
digitale usando il DES. digitale usando il DES.
Il sistema di notarizzazione che incorpora il DES può anche essere usato Il sistema di notarizzazione che incorpora il DES può anche essere usato
congiunto ad un sistema di posta per provvedere della posta sicura. Un congiunto ad un sistema di posta per provvedere della posta sicura. Un
software di cifratura/decifratura che contiene le informazioni necessarie a software di cifratura/decifratura che contiene le informazioni necessarie a
decifrare ed autenticare un file di posta è automaticamente aggiunto al file decifrare ed autenticare un file di posta è automaticamente aggiunto al file
che è trasmesso al ricevente. Quest'ultimo in seguito potrà decifrare ed che è trasmesso al ricevente. Quest'ultimo in seguito potrà decifrare ed
autenticare il file facilmente sfruttando quest'informazione. autenticare il file facilmente sfruttando quest'informazione.

5050
DES: CrittoanalisiDES: Crittoanalisi
““La sicurezza di un sistema crittografico deve dipendere solo dalla La sicurezza di un sistema crittografico deve dipendere solo dalla
segretezza della chiavesegretezza della chiave e non dalla segretezza del metodoe non dalla segretezza del metodo” ”
Auguste Kerckhoffs von Nieuwenhof (1835-1903)Auguste Kerckhoffs von Nieuwenhof (1835-1903)
Per poter comprendere meglio l’aspetto della sicurezza di un sistema Per poter comprendere meglio l’aspetto della sicurezza di un sistema
crittografico dobbiamo metterci nei panni della «spia» che intercetta il crittografico dobbiamo metterci nei panni della «spia» che intercetta il
messaggio. La spia cercherà di decrittare (questo è il termine esatto) il messaggio. La spia cercherà di decrittare (questo è il termine esatto) il
messaggio e quindi dovrà conoscere l’algoritmo utilizzato per la cifratura e messaggio e quindi dovrà conoscere l’algoritmo utilizzato per la cifratura e
la chiave. Un principio fondamentale della crittologia moderna afferma che:la chiave. Un principio fondamentale della crittologia moderna afferma che:
La sicurezza di un crittosistema non deve dipendere dalla segretezza La sicurezza di un crittosistema non deve dipendere dalla segretezza
dell’algoritmo usato, ma solo dalla segretezza della chiavedell’algoritmo usato, ma solo dalla segretezza della chiave
Questo principio, apparso per la prima volta nel 1883 nel libro «La Questo principio, apparso per la prima volta nel 1883 nel libro «La
criptographie militarie» di Kerckhoffs un filologo olandese, è fondamentale criptographie militarie» di Kerckhoffs un filologo olandese, è fondamentale
per una corretta visione del problema sicurezza.per una corretta visione del problema sicurezza.

5151
Un primo semplice attacco è quello di forza bruta: provare tutte le possibili Un primo semplice attacco è quello di forza bruta: provare tutte le possibili
chiavi. La lunghezza della chiave determina il numero di chiavi possibili e chiavi. La lunghezza della chiave determina il numero di chiavi possibili e
quindi la fattibilità dell'attacco.quindi la fattibilità dell'attacco.
Lo spazio delle chiavi del DES è formato da 2Lo spazio delle chiavi del DES è formato da 2
5656
elementi, che in notazione elementi, che in notazione
decimale equivale a circa 72 milioni di miliardi di combinazioni distinte, per decimale equivale a circa 72 milioni di miliardi di combinazioni distinte, per
cui un ipotetico computer a 500 MHz che può sondare una chiave ad ogni cui un ipotetico computer a 500 MHz che può sondare una chiave ad ogni
ciclo di clock impiegherebbe 144 milioni di secondi ad esaminarle tutte. ciclo di clock impiegherebbe 144 milioni di secondi ad esaminarle tutte.
Tuttavia, a dispetto delle 2Tuttavia, a dispetto delle 2
5656
chiavi possibili, in media bastano 2 chiavi possibili, in media bastano 2
5555
tentativi. tentativi.
Questo consegue dalla proprietà di complementazione del DES:Questo consegue dalla proprietà di complementazione del DES:
C = DESC = DES
KK(M) allora ¬C = (M) allora ¬C =
DESDES
¬K¬K(¬M). (¬M).
DES: CrittoanalisiDES: Crittoanalisi
Ma anche supponendo che sia sufficiente Ma anche supponendo che sia sufficiente
esaminare solo la metà delle chiavi esaminare solo la metà delle chiavi
occorrerebbero comunque ben 834 giorni, occorrerebbero comunque ben 834 giorni,
pari a 2 anni e 3 mesi di lavoro pari a 2 anni e 3 mesi di lavoro
continuativo! continuativo!

5252
A livello teorico, furono avanzate varie proposte per un computer in grado A livello teorico, furono avanzate varie proposte per un computer in grado
di violare il DES. di violare il DES.
Nel 1977, Diffie ed Hellman proposero una macchina del costo stimato di 20 Nel 1977, Diffie ed Hellman proposero una macchina del costo stimato di 20
milioni di dollari in grado di trovare una chiave DES in un solo giorno. Nel milioni di dollari in grado di trovare una chiave DES in un solo giorno. Nel
1993 Wiener propose una macchina per la ricerca della chiave, del costo di 1993 Wiener propose una macchina per la ricerca della chiave, del costo di
un milione di dollari, in grado di trovarla in 7 ore. un milione di dollari, in grado di trovarla in 7 ore.
La vulnerabilità del DES fu dimostrata praticamente nel 1998 quando fu La vulnerabilità del DES fu dimostrata praticamente nel 1998 quando fu
costruita appositamente la DES-Crack dall‘costruita appositamente la DES-Crack dall‘ Electronic Frontier
Foundation (EFF), un gruppo per la difesa dei diritti civili nel ciberspazio, un gruppo per la difesa dei diritti civili nel ciberspazio,
del costo di circa 250.0000 dollari. Fu costruita per dimostrare che il DES del costo di circa 250.0000 dollari. Fu costruita per dimostrare che il DES
era violabile in pratica, non solo in teoria. Questa macchina violò con la sola era violabile in pratica, non solo in teoria. Questa macchina violò con la sola
forza bruta una chiave in pochi giorni di ricerca.forza bruta una chiave in pochi giorni di ricerca.
Inoltre è stata pubblicata laInoltre è stata pubblicata la documentazione completa del progetto DES-del progetto DES-
Crack in modo da consentire ad altri gruppi di scienziati di riprodurre e di Crack in modo da consentire ad altri gruppi di scienziati di riprodurre e di
migliorare la macchina realizzata dall'EFF. migliorare la macchina realizzata dall'EFF.
DES: CrittoanalisiDES: Crittoanalisi

5353
Il miglior attacco al DES conosciuto è senza dubbio quello definito dal metodo Il miglior attacco al DES conosciuto è senza dubbio quello definito dal metodo
della Crittoanalisi differenziale, introdotto da E. Biham e A. Shamir. della Crittoanalisi differenziale, introdotto da E. Biham e A. Shamir.
Esso defininisce un attacco che si presta con successo alla rottura del DES Esso defininisce un attacco che si presta con successo alla rottura del DES
nell'ipotesi che il numero di iterazioni sia ridotto (il DES a 8 iterazioni può 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).essere rotto in un paio di minuti su un personal computer).
Tuttavia quando il numero di iterazioni sale a 16 o più, attacchi di questo tipo Tuttavia quando il numero di iterazioni sale a 16 o più, attacchi di questo tipo
hanno complessità uguale a quella che si avrebbe con un algoritmo di ricerca hanno complessità uguale a quella che si avrebbe con un algoritmo di ricerca
nello spazio delle chiavi. nello spazio delle chiavi.
Per violare tutti i 16 cicli, Per violare tutti i 16 cicli,
la crittanalisi differenziale la crittanalisi differenziale
richiede 247 testi in chiaro richiede 247 testi in chiaro
scelti (chosen plaintext)scelti (chosen plaintext)
DES: CrittoanalisiDES: Crittoanalisi
ESERCIZIOESERCIZIO

5454
Weak-KeyWeak-Key
Tra le 256 chiavi possibili ve ne sono di particolari per le quali le sottochiavi Tra le 256 chiavi possibili ve ne sono di particolari per le quali le sottochiavi
prodotte dalla fase di schedulazione sono tutte uguali. Queste chiavi sono prodotte dalla fase di schedulazione sono tutte uguali. Queste chiavi sono
dette weak key (chiavi deboli). Quindi se cifriamo un testo cifrato con una dette weak key (chiavi deboli). Quindi se cifriamo un testo cifrato con una
weak key otteniamo il testo in chiaro. weak key otteniamo il testo in chiaro.
Questo succede perché, visto che le sottochiavi prodotte dal processo di Questo succede perché, visto che le sottochiavi prodotte dal processo di
schedulazione sono le stesse sia nel caso della cifratura che della decifratura, schedulazione sono le stesse sia nel caso della cifratura che della decifratura,
queste due operazioni coincidono.queste due operazioni coincidono.
Le weak key sono quelle Le weak key sono quelle
composte da tutti 0, tutti 1, composte da tutti 0, tutti 1,
oppure da una metà da tutti 0 oppure da una metà da tutti 0
e l'altra da tutti 1. e l'altra da tutti 1.
Tali chiavi diminuiscono la Tali chiavi diminuiscono la
sicurezza del sistema in quanto sicurezza del sistema in quanto
basta trovare una sola basta trovare una sola
sottochiave ksottochiave k
ii per scoprire per scoprire
tutte le altre.tutte le altre.
Le quattro weak key in rappresentazione esadecimale

5555
Critiche al DESCritiche al DES
 L'algoritmo di per sé è molto semplice e tutte le funzioni sono funzioni L'algoritmo di per sé è molto semplice e tutte le funzioni sono funzioni
lineari (gli xor e le permutazioni) tranne le S-box, esse infatti rispondono a dei lineari (gli xor e le permutazioni) tranne le S-box, esse infatti rispondono a dei
criteri che non sono completamente noti, ed è per questo che si teme che criteri che non sono completamente noti, ed è per questo che si teme che
l'NSA abbia nascosto in esse delle trapdoor in modo tale da poter decifrare l'NSA abbia nascosto in esse delle trapdoor in modo tale da poter decifrare
facilmente messaggi intercettati.facilmente messaggi intercettati.
 Perché solo 16 iterazioni e non 24 o 32? Fu dimostrato che con 8 Perché solo 16 iterazioni e non 24 o 32? Fu dimostrato che con 8
iterazioni, il testo cifrato era una funzione random di ogni bit del testo in iterazioni, il testo cifrato era una funzione random di ogni bit del testo in
chiaro e di ogni bit della chiave. Perché allora non fermare DES dopo 8 chiaro e di ogni bit della chiave. Perché allora non fermare DES dopo 8
iterazioni? E. Biham e A. Shamir hanno dimostrato nel 1990 che con meno di iterazioni? E. Biham e A. Shamir hanno dimostrato nel 1990 che con meno di
16 iterazioni si può rompere il DES con un attacco più efficiente di un attacco 16 iterazioni si può rompere il DES con un attacco più efficiente di un attacco
brute force che esamina 2brute force che esamina 2
5656
chiavi. Con 16 iterazioni i due attacchi sono chiavi. Con 16 iterazioni i due attacchi sono
equivalenti.equivalenti.
 La maggiore critica al DES è che la dimensione delle chiavi, 2La maggiore critica al DES è che la dimensione delle chiavi, 2
5656
, è troppo , è troppo
piccolo per essere realmente sicuro. Ci si chiede quindi: perché DES usa una piccolo per essere realmente sicuro. Ci si chiede quindi: perché DES usa una
chiave a 56 bit mentre LUCIFER ne usava 128? Un attacco brute force su una chiave a 56 bit mentre LUCIFER ne usava 128? Un attacco brute force su una
chiave a 128 bit non è nemmeno immaginabile mentre sono noti attacchi brute chiave a 128 bit non è nemmeno immaginabile mentre sono noti attacchi brute
force con chiave a 64 bit.force con chiave a 64 bit.

5656
EserciziEsercizi
Siano xSiano x
11…x…x
nn n blocchi di 64 bit e siano y n blocchi di 64 bit e siano y
11…y…y
nn gli n blocchi ottenuti cifrando gli n blocchi ottenuti cifrando
xx
11…x…x
nn con DES. Si supponga che a causa di un errore di trasmissione, il con DES. Si supponga che a causa di un errore di trasmissione, il
blocco yblocco y
11 non sia trasmesso correttamente (alcuni 0 diventano 1 o non sia trasmesso correttamente (alcuni 0 diventano 1 o
viceversa). Analizzare quanti e quali blocchi sono decifrati non viceversa). Analizzare quanti e quali blocchi sono decifrati non
correttamente se la modalità operativa utilizzata per la cifratura è: correttamente se la modalità operativa utilizzata per la cifratura è:
a. ECBa. ECB
b. CBCb. CBC
c. CFBc. CFB
d. OFBd. OFB
Soluzione: per le modalità ECB e OFB, soltanto il primo blocco sarà decifrato Soluzione: per le modalità ECB e OFB, soltanto il primo blocco sarà decifrato
non correttamente; per le modalità CBC e CFB, i primi due blocchi saranno non correttamente; per le modalità CBC e CFB, i primi due blocchi saranno
decifrati non correttamente.decifrati non correttamente.

5757
cifratura
decifratura
DESDES
x
1
x
2
x
n
y
1
y
2
y
n
… … DESDES DESDES
DESDES
-1-1
y
1
y
2
y
n
… … DESDES
-1-1
DESDES
-1-1
x
1
x
2
x
n
Non correttoNon corretto
Non correttoNon corretto
corretticorretti
Electronic codebook chaining (ECB)Electronic codebook chaining (ECB)

5858
decifratura
yy
11
DESDES DESDES DESDES
yy
22
x
1 x
2 x
n
kk kk kk
IVIV
……
……
xx
11
DESDES
-1-1
DESDES
-1-1
DESDES
-1-1
xx
22
y
1 y
2 y
n
kk kk kk
IVIV
……
……
cifratura
xx
nn
yy
nn
Non correttoNon corretto
Non correttiNon corretti
corretticorretti
Cipher Block ChainingCipher Block Chaining CBCCBC

5959
Cipher feedbackCipher feedback CFBCFB
yy
11 yy
nnDESDESIVIV DESDES
xx
11 xx
nn
DESDES……
k k k
xx
22
cifratura
decifratura
xx
nnDESDESIVIV DESDES
yy
nn
DESDES……
k k k
yy
22
xx
11
yy
11
yy
22
xx
22
Non correttoNon corretto
Non correttiNon corretti
corretticorretti

6060
64-bit Output feedback64-bit Output feedback
Cifratura Decifratura
DESDES
k
64 bit del 64 bit del
testo testo
in chiaroin chiaro
shift di 64 bit
DESDES
64 bit del 64 bit del
testo testo
in chiaroin chiaro
k
shift di 64 bit
64 bit testo cifrato64 bit testo cifrato64 bit testo cifrato64 bit testo cifrato
yy
11 non corretto non corretto
xx
1 1 xx
22 … x … x
nn
corretticorretti
non correttonon corretto

6161
Si consideri il crittosistema DES. E’ possibile utilizzare la proprietà del Si consideri il crittosistema DES. E’ possibile utilizzare la proprietà del
complemento per migliorare il running time della ricerca esaustiva in un complemento per migliorare il running time della ricerca esaustiva in un
attacco known plaintext? E in un attacco chosen plaintext? Giustificare le attacco known plaintext? E in un attacco chosen plaintext? Giustificare le
risposte.risposte.
Soluzione: Soluzione: Non è noto come sia possibile utilizzare la proprietà del Non è noto come sia possibile utilizzare la proprietà del
complemento per migliorare il running time della ricerca esaustiva in un complemento per migliorare il running time della ricerca esaustiva in un
attacco known plaintext.attacco known plaintext.
Invece, tale proprietà consente il miglioramento del running time della Invece, tale proprietà consente il miglioramento del running time della
ricerca esaustiva di un fattore ½ nel caso di un attacco chosen plaintext. ricerca esaustiva di un fattore ½ nel caso di un attacco chosen plaintext.
Infatti, supponiamo che k sia la chiave segreta da trovare. In un attacco Infatti, supponiamo che k sia la chiave segreta da trovare. In un attacco
chosen plaintext, si considerino due coppie (m, c1) e (m’, c2), dove m’ indica chosen plaintext, si considerino due coppie (m, c1) e (m’, c2), dove m’ indica
il complemento di m. Per la proprietà del complemento, per ogni possibile il complemento di m. Per la proprietà del complemento, per ogni possibile
chiave h si ha c=DES(h,m) e c’=DES(h’,m’), dove c’ e h’ indicano il chiave h si ha c=DES(h,m) e c’=DES(h’,m’), dove c’ e h’ indicano il
complemento di c e h, rispettivamente. Pertanto, se ccomplemento di c e h, rispettivamente. Pertanto, se c¹¹c1, allora kc1, allora k¹¹h e se h e se
c’c’¹¹c2 allora kc2 allora k¹¹h’. Quindi le due chiavi candidate h e h’ possono essere h’. Quindi le due chiavi candidate h e h’ possono essere
eliminate mediante una singola cifratura DES durante la ricerca esaustiva. eliminate mediante una singola cifratura DES durante la ricerca esaustiva.
EserciziEsercizi

6262
EserciziEsercizi
Quindi dalla stringa RQuindi dalla stringa R
1616LL
1616 possiamo risalire alla stringa R possiamo risalire alla stringa R
1515LL
1515 utilizzando la utilizzando la
sottochiave ksottochiave k
1616. Questo è vero per tutte le iterazioni, quindi utilizzando lo . Questo è vero per tutte le iterazioni, quindi utilizzando lo
stesso algoritmo di cifratura DES, con le sottochiavi schedulate in ordine stesso algoritmo di cifratura DES, con le sottochiavi schedulate in ordine
inverso, possiamo effettuare la decifratura DES.inverso, possiamo effettuare la decifratura DES.
Dimostrare che la decifratura DES può essere effettuata applicando Dimostrare che la decifratura DES può essere effettuata applicando
l’algoritmo di cifratura DES al testo cifrato con le chiavi schedulate in ordine l’algoritmo di cifratura DES al testo cifrato con le chiavi schedulate in ordine
inverso.inverso.
Soluzione: Nella fase di cifratura DES dopo avere effettuato lo scambio di 32 Soluzione: Nella fase di cifratura DES dopo avere effettuato lo scambio di 32
bit successivo alla sedicesima iterazione, abbiamo la stringa di 64 bit Rbit successivo alla sedicesima iterazione, abbiamo la stringa di 64 bit R
1616LL
1616, ,
dovedove
LL
1616= R= R
1515
RR
1616=L=L
1515 ÅÅ f(R f(R
1515,k,k
1616))
da cui otteniamo:da cui otteniamo:
RR
1515= L= L
1616
LL
1515=R=R
1616 ÅÅ f(R f(R
1515,k,k
1616) = R) = R
1616 ÅÅ f(L f(L
1616,k,k
1616).).
Tags