Download - Data Encryption Standard Monica Bianchini [email protected] Dipartimento di Ingegneria dellInformazione Università di Siena.

Transcript
Page 1: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Data Encryption StandardData Encryption Standard

Monica BianchiniMonica Bianchini

[email protected]@ing.unisi.it

Dipartimento di Ingegneria Dipartimento di Ingegneria dell’Informazionedell’Informazione

Università di SienaUniversità di Siena

Page 2: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Introduzione Introduzione • Il 15 Maggio 1973, il Il 15 Maggio 1973, il National Bureau of National Bureau of

StandardsStandards (NBS) pubblicò un invito, nel Registro (NBS) pubblicò un invito, nel Registro Federale, per l’emissione di un crittosistema Federale, per l’emissione di un crittosistema standard standard

nasce nasce DES DES Data Encryption Standard Data Encryption Standard, che è , che è divenuto il crittosistema più usato nel mondodivenuto il crittosistema più usato nel mondo

• DES fu sviluppato alla IBM, come evoluzione di DES fu sviluppato alla IBM, come evoluzione di un crittosistema più antico, un crittosistema più antico, LUCIFERLUCIFER, e fu , e fu pubblicato sul Registro Federale il 17 Marzo pubblicato sul Registro Federale il 17 Marzo 19751975

• La definizione di DES è riportata nel La definizione di DES è riportata nel Federal Federal Information Processing Standards Publication Information Processing Standards Publication 4646, del 15 Gennaio 1977, del 15 Gennaio 1977

• DES viene revisionato con frequenza DES viene revisionato con frequenza quinquennale da NBS quinquennale da NBS

Page 3: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

DES DES 1 1• DES codifica una stringa di plaintext, x, di 64 DES codifica una stringa di plaintext, x, di 64

bit, utilizzando una chiave k di 56 bit, ed bit, utilizzando una chiave k di 56 bit, ed ottenendo un testo cifrato rappresentato da ottenendo un testo cifrato rappresentato da una stringa di 64 bituna stringa di 64 bit

• L’algoritmo si compone di tre passi:L’algoritmo si compone di tre passi:1.1. Dato il plaintext x, si costruisce la stringa xDato il plaintext x, si costruisce la stringa x00, ,

permutando i bit di x secondo una permutando i bit di x secondo una permutazione permutazione inizialeiniziale (fissata) IP. In particolare, x (fissata) IP. In particolare, x00=IP(x)=L=IP(x)=L00RR00, , dove Ldove L00 comprende i primi 32 bit di x comprende i primi 32 bit di x00 e R e R00 gli gli

ultimi 32ultimi 32 2.2. LLiiRRii, per 1, per 1ii16, viene calcolato come16, viene calcolato come

LLii=R=Ri-1i-1

RRii=L=Li-1 i-1 (R(Ri-1i-1,k,kii)) dove dove è l’operatore di XOR, è l’operatore di XOR, è una funzione che è una funzione che

verrà descritta nel seguito, e kverrà descritta nel seguito, e k11,k,k22,…,k,…,k1616 sono sono stringhe di 48 bit calcolate in funzione di k. kstringhe di 48 bit calcolate in funzione di k. k11,k,k22,,…,k…,k1616 formano il formano il key schedulekey schedule

3.3. Si applica la permutazione inversa IPSi applica la permutazione inversa IP-1-1 alla stringa alla stringa di bit Rdi bit R1616LL1616, ottenendo il testo cifrato y, cioè y=IP, ottenendo il testo cifrato y, cioè y=IP--

11(R(R1616LL1616) )

Page 4: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

DES DES 2 2

LLi-1i-1 RRi-1i-1

RRii

kkii

LLii

Un passo di codifica di DESUn passo di codifica di DES

Page 5: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• La funzione La funzione ha come primo argomento la stringa ha come primo argomento la stringa AA di 32 bit, come secondo argomento la stringa di 32 bit, come secondo argomento la stringa JJ di di 48 bit, e produce in output una stringa di bit di 48 bit, e produce in output una stringa di bit di lunghezza 32lunghezza 32

• AA viene “espanso” in una stringa di 48 bit in base viene “espanso” in una stringa di 48 bit in base ad una funzione di espansione E(ad una funzione di espansione E(AA) fissata. E() fissata. E(AA) ) consiste dei 32 bit di consiste dei 32 bit di AA permutati, 16 dei quali permutati, 16 dei quali compaiono due voltecompaiono due volte

• Si calcola E(Si calcola E(AA) ) JJ e si scrive il risultato come la e si scrive il risultato come la concatenazione di otto stringhe di 6 bit concatenazione di otto stringhe di 6 bit B=BB=B11BB22BB33BB44BB55BB66BB77BB88

• Si utllizzano gli SSi utllizzano gli Sii, 1, 1ii8, che sono array 48, che sono array 416 i cui 16 i cui elementi sono interi compresi fra 0 e 15. Data una elementi sono interi compresi fra 0 e 15. Data una stringa di 6 bit Bstringa di 6 bit Bjj=b=b11bb22bb33bb44bb55bb66, S, Sjj(B(Bjj) viene ) viene calcolata come segue: i due bit bcalcolata come segue: i due bit b11 e b e b66 determinano determinano la rappresentazione binaria di una riga r di Sla rappresentazione binaria di una riga r di Sjj (0(0rr3), ed i quattro bit b3), ed i quattro bit b22bb33bb44bb55 determinano la determinano la rappresentazione binaria di una colonna c di Srappresentazione binaria di una colonna c di Sjj (0(0cc15). Pertanto S15). Pertanto Sjj(B(Bjj) è l’elemento S) è l’elemento Sjj(r,c), (r,c), scritto in binario sotto forma di stringa di 4 bit scritto in binario sotto forma di stringa di 4 bit CCjj=S=Sjj(B(Bjj), 1), 1jj88

• La stringa di 32 bit C= CLa stringa di 32 bit C= C11CC22CC33CC44CC55CC66CC77CC8 8 viene viene permutata in accordo ad una permutazione P permutata in accordo ad una permutazione P fissata. La stringa risultante P(C) è fissata. La stringa risultante P(C) è ((AA,,JJ ))

DES DES 3 3

Page 6: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

DES DES 4 4

JJ

E(E(AA ))

AA

PP

CC11 CC22 CC33 CC44 CC55 CC66 CC88

BB88

SS88SS11 SS22 SS33 SS44 SS55 SS66 SS77

BB11 BB22 BB33 BB44 BB55 BB66 BB77

CC77

EE

((AA,,JJ ))

RealizzazioRealizzazione della ne della funzionfunzione e in in DESDES

Page 7: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Le funzioni utilizzate in DES sono…Le funzioni utilizzate in DES sono…

… …ciò significa, ad esempio, che il 58-esimo bit ciò significa, ad esempio, che il 58-esimo bit di x è il primo bit di IP(x), il 50-esimo bit di x è di x è il primo bit di IP(x), il 50-esimo bit di x è il secondo di IP(x), etc.il secondo di IP(x), etc.

DES DES 5 5

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

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

IPIP-1-1IPIP32 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

EE bit-selection tablebit-selection table

Page 8: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Inoltre…Inoltre…

DES DES 6 6

14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

SS44

SS11

SS22

SS33

Page 9: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

DES DES 7 7

SS88

SS55

SS66

SS77

2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 19 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25

PP

Page 10: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Infine, occorre descrivere il calcolo della Infine, occorre descrivere il calcolo della succesione di chiavi, a partire dalla chiave ksuccesione di chiavi, a partire dalla chiave k

• k è una stringa di 64 bit, di cui 56 costituiscono k è una stringa di 64 bit, di cui 56 costituiscono la chiave vera e propria, mentre i rimanenti 8 la chiave vera e propria, mentre i rimanenti 8 sono bit di parità (per il rilevamento di errori)sono bit di parità (per il rilevamento di errori)

• I bit di parità occupano le posizioni 8,16,…,64 I bit di parità occupano le posizioni 8,16,…,64 ed assumono valore tale che ogni byte abbia un ed assumono valore tale che ogni byte abbia un numero dispari di bit a 1. Il bit di parità può numero dispari di bit a 1. Il bit di parità può servire a rilevare errori su un singolo bit del servire a rilevare errori su un singolo bit del byte relativobyte relativo

• I bit di parità non vengono utilizzati nel calcolo I bit di parità non vengono utilizzati nel calcolo del del key schedulekey schedule

DES DES 8 8

Page 11: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Calcolo della succesione di chiavi kCalcolo della succesione di chiavi kii, 1, 1ii16161.1. Data la chiave k a 64 bit, si tralasciano i bit di Data la chiave k a 64 bit, si tralasciano i bit di

parità, mentre si permutano i rimanenti 56 bit, in parità, mentre si permutano i rimanenti 56 bit, in base alla permutazione PCbase alla permutazione PC11, fissata a priori. Sia , fissata a priori. Sia PCPC11(k)=C(k)=C00DD00, dove C, dove C00 comprende i primi 28 bit di comprende i primi 28 bit di PCPC11(k) e D(k) e D00 gli ultimi 28 gli ultimi 28

2.2. Per i compreso fra 1 e 16 si calcolanoPer i compreso fra 1 e 16 si calcolanoCCii=LS=LSii(C(Ci-1i-1))DDii=LS=LSii(D(Di-1i-1))

e ke kii=PC=PC22(C(CiiDDii). LS). LSii è uno shift ciclico a sinistra, di è uno shift ciclico a sinistra, di una o due posizioni in funzione del valore di i: si una o due posizioni in funzione del valore di i: si scorre di una posizione per i=1,2,9,16, di due in scorre di una posizione per i=1,2,9,16, di due in tutti gli altri casi. PCtutti gli altri casi. PC22 è una permutazione fissata è una permutazione fissata

DES DES 9 9

57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4

14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32

PCPC11 PCPC22

Page 12: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

DES DES 10 10• Il calcolo della successione di chiavi viene Il calcolo della successione di chiavi viene

effettuato secondo il seguente schemaeffettuato secondo il seguente schema

PCPC22

kk11

PCPC11

CC11

LSLS11

CC00

CC1616

DD00

DD11

DD1616

kk

kk22

PCPC22

LSLS11

LSLS22 LSLS22

LSLS1616 LSLS1616

Page 13: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Mostriamo adesso come viene generata la Mostriamo adesso come viene generata la serie delle chiavi utilizzate nelle 16 iterate di serie delle chiavi utilizzate nelle 16 iterate di DES. Gli elementi nelle tabelle seguenti DES. Gli elementi nelle tabelle seguenti indicano i bit di k che vengono utilizzati ai indicano i bit di k che vengono utilizzati ai vari passivari passi

DES DES 11 11

10 51 34 60 49 17 33 57 2 9 19 42 3 35 26 25 44 58 59 1 36 27 18 41 22 28 39 54 37 4 47 30 5 53 23 29 61 21 38 63 15 20 45 14 13 62 55 31

2 43 26 51 41 9 25 49 59 1 11 34 60 27 18 17 36 50 51 58 57 19 10 33 14 20 31 46 29 63 39 22 28 45 15 21 53 13 30 55 7 12 37 6 5 54 47 23

51 27 10 36 25 58 9 33 43 50 60 18 44 11 2 1 49 34 35 42 41 3 59 17 61 4 15 30 13 47 23 6 12 29 62 5 37 28 14 39 54 63 21 53 20 38 31 7

35 11 59 49 9 42 58 17 27 34 44 2 57 60 51 50 33 18 19 26 25 52 43 1 45 55 62 14 28 31 7 53 63 13 46 20 21 12 61 23 38 47 5 37 4 22 15 54

Passo 6Passo 6

Passo 8Passo 8

Passo 5Passo 5

Passo 7Passo 7

19 60 43 33 58 26 42 1 11 18 57 51 41 44 35 34 17 2 3 10 9 36 27 50 29 39 46 61 12 15 54 37 47 28 30 4 5 63 45 7 22 31 20 21 55 6 62 38

3 44 27 17 42 10 26 50 60 2 41 35 25 57 19 18 1 51 52 59 58 49 11 34 13 23 30 45 63 62 38 21 31 12 14 55 20 47 29 54 6 15 4 5 39 53 46 22

52 57 11 1 26 59 10 34 44 51 25 19 9 41 3 2 50 35 36 43 42 33 60 18 28 7 14 29 47 46 22 5 15 63 61 39 4 31 13 38 53 62 55 20 23 37 30 6

36 41 60 50 10 43 59 18 57 35 9 3 58 25 52 51 34 19 49 27 26 17 44 2 12 64 51 13 31 30 6 20 62 47 45 23 55 15 28 22 37 46 39 4 7 21 14 53

Passo 2Passo 2

Passo 4Passo 4

Passo 1Passo 1

Passo 3Passo 3

Page 14: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

DES DES 12 1257 33 52 42 2 35 51 10 49 27 1 60 50 17 44 43 26 11 41 19 18 9 36 59 4 46 53 5 23 22 61 12 54 39 37 15 47 7 20 14 29 28 31 63 62 13 6 45

41 17 36 26 51 19 35 59 33 11 50 44 34 1 57 27 10 60 25 3 2 58 49 43 55 30 37 20 7 6 45 63 38 23 31 62 31 54 4 61 13 22 15 47 46 28 53 29

25 1 49 10 35 3 19 43 17 60 34 57 18 50 41 11 59 44 9 52 51 42 33 27 39 14 21 4 54 53 29 47 22 7 5 46 15 38 55 45 28 6 62 31 30 12 37 13

9 50 33 59 19 52 3 27 1 44 18 41 2 34 25 60 43 57 58 36 35 26 17 11 23 61 5 55 38 37 13 31 6 54 20 30 62 22 39 29 12 53 46 15 14 63 21 28

Passo Passo 1414

Passo Passo 1616

Passo Passo 1313

Passo Passo 1515

58 34 17 43 3 36 52 11 50 57 2 25 51 18 9 44 27 41 42 49 19 10 1 60 7 45 20 39 22 21 28 15 53 38 4 14 46 6 23 13 63 37 30 62 61 47 5 12

42 18 1 27 52 49 36 60 34 41 51 9 35 2 58 57 11 25 26 33 3 59 50 44 54 29 4 23 6 5 12 62 37 22 55 61 30 53 7 28 47 21 14 46 45 31 20 63

26 2 50 11 36 33 49 44 18 25 35 58 19 51 42 41 60 9 10 17 52 43 34 57 38 13 55 7 53 20 63 46 21 6 39 45 14 37 54 12 31 5 61 39 29 15 4 47

18 59 42 3 57 25 41 36 10 17 27 50 11 43 34 33 52 1 2 9 44 35 26 49 30 5 47 62 45 12 55 38 13 61 31 37 6 29 46 4 23 28 53 22 21 7 63 39

Passo Passo 1010

Passo Passo 1212

Passo 9Passo 9

Passo Passo 1111

• La fase di decodifica viene realizzata La fase di decodifica viene realizzata utilizzando lo stesso algoritmo, con y per input, utilizzando lo stesso algoritmo, con y per input, e key schedule ke key schedule k1616,k,k1515,…,k,…,k11. L’output è il . L’output è il plaintext xplaintext x

Page 15: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Supponiamo di voler codificare il plaintext Supponiamo di voler codificare il plaintext esadecimaleesadecimale

0123456789ABCDEF0123456789ABCDEF

00000001001000110100010101100111100010011010101111001101110000000100100011010001010110011110001001101010111100110111

101111101111

utilizzando la chiave esadecimaleutilizzando la chiave esadecimale

133457799BBCDFF1133457799BBCDFF1

La corrispondente chiave binaria, senza bit di La corrispondente chiave binaria, senza bit di parità, èparità, è

0001001001101001010110111100100110110111101101111110001001001101001010110111100100110110111101101111111100011000

• Applicando IP si ottengono LApplicando IP si ottengono L00 ed R ed R00, come…, come…

LL00=11001100000000001100110011111111=11001100000000001100110011111111

LL11=R=R00=11110000101010101111000010101010=11110000101010101111000010101010

Un esempio di codifica con DES Un esempio di codifica con DES 1 1

Page 16: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Un esempio di codifica con DES Un esempio di codifica con DES 2 2• I 16 passi della codifica calcolano…I 16 passi della codifica calcolano…

E(RE(R11)=0111010111101010010101000011000010101010000)=01110101111010100101010000110000101010100000100101001

kk22=011110011010111011011001110110111100100111100=011110011010111011011001110110111100100111100101101

E(RE(R11))kk22=0000110001000100100011011110101101100011111=00001100010001001000110111101011011000111110110001100

C=11111000110100000011101010101110C=11111000110100000011101010101110

(R(R11,k,k22)=00111100101010111000011110100011)=00111100101010111000011110100011

LL33=R=R22=11001100000000010111011100001001=11001100000000010111011100001001

E(RE(R00)=0111101000010101010101010111101000010101010)=01111010000101010101010101111010000101010101010110101

kk11=000110110000001011101111111111000111000001110=000110110000001011101111111111000111000001110010010

E(RE(R00))kk11=0110000100010111101110101000011001100101001=01100001000101111011101010000110011001010010011100111

C=01011100100000101011010110010111C=01011100100000101011010110010111

(R(R00,k,k11)=00100011010010101010100110111011)=00100011010010101010100110111011

LL22=R=R11=11101111010010100110010101000100=11101111010010100110010101000100

Page 17: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Infine, applicando IPInfine, applicando IP-1-1 a R a R1616LL1616,, si ottiene la si ottiene la stringa stringa

100001011110100000010011010101000000111100001011011010000100001011110100000010011010101000000111100001011011010000000101000101

ovvero, in esadecimaleovvero, in esadecimale85E813540F0AB40585E813540F0AB405

Un esempio di codifica con DES Un esempio di codifica con DES 3 3

E(RE(R1414)=111000000101010001011001010010101100000001)=111000000101010001011001010010101100000001011011011011

kk1515=101111111001000110001101001111010011111100001=101111111001000110001101001111010011111100001010010

E(RE(R1414))kk1515=010111111100010111010100011101111111111101=010111111100010111010100011101111111111101010001010001

C=10110010111010001000110100111100C=10110010111010001000110100111100

(R(R1414,k,k1515)=01011011100000010010011101101110)=01011011100000010010011101101110

LL1616=R=R1515=01000011010000100011001000110100=01000011010000100011001000110100

E(RE(R1515)=001000000110101000000100000110100100000110)=001000000110101000000100000110100100000110101000101000

kk1616=110010110011110110001011000011100001011111110=110010110011110110001011000011100001011111110101101

E(RE(R1515))kk1616=111010110101011110001111000101000101011001=111010110101011110001111000101000101011001011101011101

C=10100111100000110010010000101001C=10100111100000110010010000101001

(R(R1515,k,k1616)=11001000110000000100111110011000)=11001000110000000100111110011000

RR1616=00001010010011001101100110010101=00001010010011001101100110010101

Page 18: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Quando DES fu proposto come standard, furono Quando DES fu proposto come standard, furono sollevate numerose critiche relative alle sollevate numerose critiche relative alle S-boxS-box..

• Infatti, tutti i calcoli effettuati in DES, ad Infatti, tutti i calcoli effettuati in DES, ad eccezione delle S-box, sono lineari, poiché eccezione delle S-box, sono lineari, poiché calcolare l’XOR di due output equivale a calcolare calcolare l’XOR di due output equivale a calcolare l’output relativo all’XOR degli stessi inputl’output relativo all’XOR degli stessi input

• Le S-box, che costituiscono la nonlinearità del Le S-box, che costituiscono la nonlinearità del crittosistema, sono fondamentali per la sua crittosistema, sono fondamentali per la sua sicurezza: i crittosistemi lineari (tipo Affine cipher) sicurezza: i crittosistemi lineari (tipo Affine cipher) sono infatti proni ad attacchi sono infatti proni ad attacchi Known plaintextKnown plaintext

• Tuttavia, i criteri di costruzione delle S-box non Tuttavia, i criteri di costruzione delle S-box non sono stati resi pubblicisono stati resi pubblici

• C’è chi sostiene che le S-box contengano delle C’è chi sostiene che le S-box contengano delle trapdoor (scorciatoie) che garantiscano alla trapdoor (scorciatoie) che garantiscano alla National Security AgencyNational Security Agency (NSA) la possibilità di (NSA) la possibilità di decifrare messaggi, mantenendo la sicurezza di decifrare messaggi, mantenendo la sicurezza di DESDES

La controversia del DES La controversia del DES 1 1

Page 19: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Nel 1976, la NSA rese pubbliche le seguenti Nel 1976, la NSA rese pubbliche le seguenti specifiche di progetto relative alle S-box:specifiche di progetto relative alle S-box:

1.1. Ciascuna riga di ciascuna S-box è una permutazione Ciascuna riga di ciascuna S-box è una permutazione degli interi 0,…,15degli interi 0,…,15

2.2. Nessuna delle S-box è una funzione lineare o affineNessuna delle S-box è una funzione lineare o affine3.3. Il cambiamento di un bit in ingresso ad una S-box Il cambiamento di un bit in ingresso ad una S-box

provoca il cambiamento di al più due bit del provoca il cambiamento di al più due bit del risultatorisultato

4.4. Per ogni S-box e x, S(x) e S(xPer ogni S-box e x, S(x) e S(x001100) differiscono 001100) differiscono almeno per due bit (x è una stringa di 6 bit)almeno per due bit (x è una stringa di 6 bit)

• Due ulteriori proprietà vennero indicate come Due ulteriori proprietà vennero indicate come conseguenze progettuali:conseguenze progettuali:

5.5. Per ogni S-box e x, per Per ogni S-box e x, per e,fe,f {0,1}, S(x){0,1}, S(x)S(xS(x11ef00)11ef00)6.6. Per ogni S-box, se un dato bit di input è fissato, il Per ogni S-box, se un dato bit di input è fissato, il

valore di un dato bit di output assume i valori 0 e 1 valore di un dato bit di output assume i valori 0 e 1 in maniera equiprobabilein maniera equiprobabile

• Unlteriori (eventuali) specifiche progettuali non Unlteriori (eventuali) specifiche progettuali non sono notesono note

La controversia del DES La controversia del DES 2 2

Page 20: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• La critica più pertinente al DES riguarda la La critica più pertinente al DES riguarda la relativa “ristrettezza” dello spazio delle chiavi, relativa “ristrettezza” dello spazio delle chiavi, ||KK |=2|=25656, per garantirne la sicurezza, per garantirne la sicurezza

• Sono state proposte una serie di Sono state proposte una serie di apparecchiature special-purpose in grado di apparecchiature special-purpose in grado di sferrare a DES un attacco sferrare a DES un attacco Known plaintextKnown plaintext, per , per mezzo di una ricerca esaustiva nello spazio mezzo di una ricerca esaustiva nello spazio delle chiavidelle chiavio Data una stringa di 64 bit, il plaintext x, ed il Data una stringa di 64 bit, il plaintext x, ed il

corrispondente testo cifrato y, dovrebbero essere corrispondente testo cifrato y, dovrebbero essere testate tutte le possibili chiavi fino a quando non testate tutte le possibili chiavi fino a quando non viene rilevata una chiave k tale che eviene rilevata una chiave k tale che ekk(x)=y (ce (x)=y (ce ne potrebbero essere più di una)ne potrebbero essere più di una)

• Nel 1977, Diffie ed Helman progettarono un Nel 1977, Diffie ed Helman progettarono un chip in VLSI che poteva testare 10chip in VLSI che poteva testare 1066 chiavi al chiavi al secondo secondo

• Una macchina dotata di 10Una macchina dotata di 1066 chip poteva chip poteva sondare l’intero spazio delle chiavi in un giorno sondare l’intero spazio delle chiavi in un giorno circa (ma sarebbe costata 20 milioni di dollari!)circa (ma sarebbe costata 20 milioni di dollari!)

La controversia del DES La controversia del DES 3 3

Page 21: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Al CRYPTO ’93, Michael Wiener descrisse molto Al CRYPTO ’93, Michael Wiener descrisse molto dettagliatamente una macchina per la ricerca dettagliatamente una macchina per la ricerca nello spazio delle chiavinello spazio delle chiavi

• La macchina era basata su un chip La macchina era basata su un chip pipelinedpipelined dedicato, in grado di realizzare concorrentemente dedicato, in grado di realizzare concorrentemente i 16 passi di codificai 16 passi di codifica

• Il chip poteva testare 5Il chip poteva testare 5101077 chiavi per secondo e chiavi per secondo e poteva essere realizzato (con la tecnologia poteva essere realizzato (con la tecnologia dell’epoca) ad un costo unitario $10,50dell’epoca) ad un costo unitario $10,50

• Una configurazione dotata di 5760 chip, del costo Una configurazione dotata di 5760 chip, del costo di 100 mila dollari, poteva sondare lo spazio delle di 100 mila dollari, poteva sondare lo spazio delle chiavi in circa un giorno e mezzo, mentre una chiavi in circa un giorno e mezzo, mentre una macchina 10 volte più potente (e più costosa) ci macchina 10 volte più potente (e più costosa) ci sarebbe riuscita in poco più di tre oresarebbe riuscita in poco più di tre ore

• Ormai, DES trova rare utilizzazioni, data la sua Ormai, DES trova rare utilizzazioni, data la sua vulnerabilità, utilizzando le macchine attuali (in vulnerabilità, utilizzando le macchine attuali (in cui tempi e costi non sono assolutamente cui tempi e costi non sono assolutamente proibitivi) proibitivi)

La controversia del DES La controversia del DES 4 4

Page 22: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Anche se descrivere DES a parole può risultare Anche se descrivere DES a parole può risultare lungo e noioso, DES può essere implementato in lungo e noioso, DES può essere implementato in maniera molto efficiente sia in hardware che in maniera molto efficiente sia in hardware che in software: software: o La sola operazione aritmetica necessaria è l’XOR La sola operazione aritmetica necessaria è l’XOR

fra stringhe di bitfra stringhe di bito La funzione di espansione E, le S-box, le La funzione di espansione E, le S-box, le

permutazioni IP e P, ed il calcolo delle chiavi kpermutazioni IP e P, ed il calcolo delle chiavi k11, k, k22,,…,k…,k1616 possono essere tutte effettuate in tempo possono essere tutte effettuate in tempo costante, attraverso look-up table in software, o costante, attraverso look-up table in software, o “bruciate” in un circuito in hardware“bruciate” in un circuito in hardware

• DES ha trovato applicazioni significative nelle DES ha trovato applicazioni significative nelle transazioni bancarie: veniva utilizzato per transazioni bancarie: veniva utilizzato per codificare i PIN (codificare i PIN (Personal Identification NumberPersonal Identification Number ) ) e le transazioni su conto corrente per operazioni e le transazioni su conto corrente per operazioni da ATM (da ATM (Automated Teller MachineAutomated Teller Machine ))

• DES è stato inoltre largamente impiegato da DES è stato inoltre largamente impiegato da organizzazioni governative americane, quali il organizzazioni governative americane, quali il Department of Energy, il Justice Department ed Department of Energy, il Justice Department ed il Federal Reserve Systemil Federal Reserve System

DES nelle applicazioni DES nelle applicazioni

Page 23: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Per DES sono state definite quattro modalità Per DES sono state definite quattro modalità operative distinte: operative distinte: Electronic CodeBookElectronic CodeBook (ECB), (ECB), Cipher FeedBackCipher FeedBack (CFB), (CFB), Cipher Block ChainingCipher Block Chaining (CBC) e (CBC) e Output FeedBackOutput FeedBack (OFB) (OFB)

• La modalità ECB corrisponde all’impiego classico dei La modalità ECB corrisponde all’impiego classico dei cifrari a blocchi: data una sequenza xcifrari a blocchi: data una sequenza x11xx22… di blocchi … di blocchi di plaintext, ciascuno di 64 bit, ogni xdi plaintext, ciascuno di 64 bit, ogni xii viene viene codificato per mezzo della stessa chiave k, codificato per mezzo della stessa chiave k, producendo una sequenza di blocchi di testo cifrato producendo una sequenza di blocchi di testo cifrato yy11yy22……

• In modalità CBC, si effettua l’XOR fra il blocco In modalità CBC, si effettua l’XOR fra il blocco corrente di plaintext xcorrente di plaintext xii ed il blocco di testo cifrato al ed il blocco di testo cifrato al passo precedente ypasso precedente yi-1i-1, prima di effettuare la codifica , prima di effettuare la codifica utilizzando k. Occorre pertanto inizializzare yutilizzando k. Occorre pertanto inizializzare y00=v e, =v e, per iper i1, si ottiene y1, si ottiene yii=e=ekk(y(yi-1i-1 xxii))

Modalità operative di DES Modalità operative di DES 1 1

Page 24: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Modalità operative di DES Modalità operative di DES 2 2 Modalità CBCModalità CBC

yy00=v=v ++ ++

eekk eekk

xx11 xx22

yy11 yy22

yy00=v=v ++ ++

ddkk

yy11 yy22

xx11 xx22

ddkk

Decodifica CBCDecodifica CBCCodifica CBCCodifica CBC

Page 25: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Nelle modalità OFB e CFB viene generato un flusso Nelle modalità OFB e CFB viene generato un flusso di chiavi che vengono successivamente poste in di chiavi che vengono successivamente poste in XOR con il plaintext (tipo Stream cipher)XOR con il plaintext (tipo Stream cipher)

• OFB è uno stream cipher sincrono: il flusso di chiavi OFB è uno stream cipher sincrono: il flusso di chiavi viene prodotto iterativamente codificando un viene prodotto iterativamente codificando un vettore v di inizializzazione, lungo 64 bitvettore v di inizializzazione, lungo 64 bito Si definisce zSi definisce z00=v e quindi il keystream z=v e quindi il keystream z11zz22… viene … viene

calcolato con la regola zcalcolato con la regola zii=e=ekk(z(zi-1i-1), i), i 11

o Infine, la sequenza plaintext xInfine, la sequenza plaintext x11xx22… viene codificata … viene codificata calcolando ycalcolando yii=x=xii zzii, i, i 11

• In modalità CFB si inizializza yIn modalità CFB si inizializza y00=v e si produce il =v e si produce il keystream secondo la regola zkeystream secondo la regola zii= e= ekk(y(yi-1i-1); si calcolano ); si calcolano poi ypoi yii= x= xii zzii, i, i 1 (come in OFB)1 (come in OFB)

• In entrambe le modalità, OFB e CFB, la funzione eIn entrambe le modalità, OFB e CFB, la funzione ekk di codifica viene utilizzata anche in fase di di codifica viene utilizzata anche in fase di decodifica decodifica

Modalità operative di DES Modalità operative di DES 3 3

Page 26: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

Modalità operative di DES Modalità operative di DES 4 4 Modalità CFBModalità CFB

yy00=v=v ++++ eekk

yy22

eekk

xx22

yy11

xx11

yy00=v=v ++++ eekk

xx22

eekk

yy22

xx11

yy11

Decodifica CFBDecodifica CFB

Codifica CFBCodifica CFB

Page 27: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Le quattro modalità operative hanno vantaggi e Le quattro modalità operative hanno vantaggi e svantaggi diversi:svantaggi diversi:o Nelle modalità ECB e OFB, il cambiamento di un blocco Nelle modalità ECB e OFB, il cambiamento di un blocco

a 64 bit di plaintext, xa 64 bit di plaintext, xii, altera il corrispondente blocco , altera il corrispondente blocco cifrato, ycifrato, yii, ma non produce cambiamenti negli altri , ma non produce cambiamenti negli altri blocchiblocchi

o Può essere una caratteristica vantaggiosa: per Può essere una caratteristica vantaggiosa: per esempio, OFB viene usato per codificare le trasmissioni esempio, OFB viene usato per codificare le trasmissioni satellitariesatellitarie

o Nelle modalità CBC e CFB, se un blocco, xNelle modalità CBC e CFB, se un blocco, xii, di plaintext , di plaintext cambia, vengono alterati dal cambiamento i blocchi cambia, vengono alterati dal cambiamento i blocchi cifrati ycifrati yii e successivi e successivi

o CBC e CFB sono utili nel caso dell’autenticazione. Più CBC e CFB sono utili nel caso dell’autenticazione. Più specificamente, queste modalità possono essere usate specificamente, queste modalità possono essere usate per produrre un per produrre un Message Autentication CodeMessage Autentication Code (MAC) (MAC)

o Il MAC viene accodato ad una sequenza di blocchi di Il MAC viene accodato ad una sequenza di blocchi di plaintext, e viene utilizzato per convincere Bob che il plaintext, e viene utilizzato per convincere Bob che il messaggio proviene da Alice, senza interferenze da messaggio proviene da Alice, senza interferenze da parte di Oscar parte di Oscar MAC garantisce l’integrità del MAC garantisce l’integrità del contenuto del messaggio (ma non la sua segretezza)contenuto del messaggio (ma non la sua segretezza)

Modalità operative di DES Modalità operative di DES 5 5

Page 28: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Descriviamo come la modalità CBC viene utilizzata Descriviamo come la modalità CBC viene utilizzata per produrre MAC:per produrre MAC:o Il vettore di inizializzazione v viene posto a 0Il vettore di inizializzazione v viene posto a 0

o Viene costruito il testo cifrato yViene costruito il testo cifrato y11,y,y22,…,y,…,ynn, con la chiave , con la chiave k, untilizzando CBC. Infine, viene definito MAC come yk, untilizzando CBC. Infine, viene definito MAC come ynn

o Quindi Alice trasmette la sequenza di plaintext xQuindi Alice trasmette la sequenza di plaintext x11…x…xnn e e il MACil MAC

o Quando Bob riceve xQuando Bob riceve x11…x…xnn può ricostruire y può ricostruire y11…y…ynn, , utilizzando la chiave segreta k, e verificare che yutilizzando la chiave segreta k, e verificare che ynn coincide con il MAC che ha ricevuto coincide con il MAC che ha ricevuto

o Oscar non può produrre un MAC valido perché non Oscar non può produrre un MAC valido perché non conosce k. Inoltre, anche se intercetta il messaggio in conosce k. Inoltre, anche se intercetta il messaggio in plaintext e ne altera il contenuto, è altamente plaintext e ne altera il contenuto, è altamente improbabile che riesca a modificare il MAC in modo improbabile che riesca a modificare il MAC in modo tale da ingannare Bobtale da ingannare Bob

DES per l’autenticazione DES per l’autenticazione 1 1

Page 29: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• In generale, è auspicabile abbinare la segretezza alla In generale, è auspicabile abbinare la segretezza alla garanzia di autenticità di un messaggio. In questo garanzia di autenticità di un messaggio. In questo caso…caso…o Alice usa la chiave kAlice usa la chiave k11 per produrre un MAC per x per produrre un MAC per x11…x…xnn; ;

quindi definisce MAC=xquindi definisce MAC=xn+1n+1 e codifica la sequenza x e codifica la sequenza x11…x…xn+1n+1 utilizzando una seconda chiave, kutilizzando una seconda chiave, k22, ed ottenendo y, ed ottenendo y11…y…yn+1n+1

o Quando Bob riceve yQuando Bob riceve y11…y…yn+1n+1 lo decodifica utilizzando k lo decodifica utilizzando k22 e e quindi controlla che xquindi controlla che xn+1n+1 sia il MAC relativo al plaintext sia il MAC relativo al plaintext xx11…x…xnn, con k, con k11

o Altrimenti, Alice può usare kAltrimenti, Alice può usare k11 per codificare x per codificare x11…x…xnn, , ottenendo yottenendo y11…y…ynn, e quindi usare k, e quindi usare k22 per produrre il per produrre il MAC=yMAC=yn+1n+1 per y per y11…y…ynn

o Bob utilizzerà kBob utilizzerà k22 per verificare il MAC e k per verificare il MAC e k11 per decifrare per decifrare yy11…y…ynn

DES per l’autenticazione DES per l’autenticazione 2 2

Page 30: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Ricordiamo che, in un attacco Ricordiamo che, in un attacco Known plaintextKnown plaintext,, Oscar ottiene una coppia plaintext/ciphertext Oscar ottiene una coppia plaintext/ciphertext prodotta utilizzando una chiave k a lui sconosciutaprodotta utilizzando una chiave k a lui sconosciuta

Oscar conosce x e y=eOscar conosce x e y=ekk(x) e vuole determinare k(x) e vuole determinare k• Una caratteristica del trade-off tempo-memoria è Una caratteristica del trade-off tempo-memoria è

che non dipende dalla “struttura” di DES. Il solo che non dipende dalla “struttura” di DES. Il solo aspetto del DES rilevante per l’attacco è che sia il aspetto del DES rilevante per l’attacco è che sia il plaintext che il testo cifrato sono costituiti da 64 plaintext che il testo cifrato sono costituiti da 64 bit, contro i 56 della chiave bit, contro i 56 della chiave

• Si è già parlato della possibilità di effettuare una Si è già parlato della possibilità di effettuare una ricerca esaustiva nello spazio delle chiavi, che ha ricerca esaustiva nello spazio delle chiavi, che ha cardinalità 2cardinalità 25656: non richiede memoria ma, in : non richiede memoria ma, in media, 2media, 25555 chiavi verranno esaminate prima del chiavi verranno esaminate prima del reperimento di quella cercatareperimento di quella cercata

• D’altra parte, per un dato x, Oscar può calcolare D’altra parte, per un dato x, Oscar può calcolare anticipatamente yanticipatamente ykk=e=ekk(x) per ogni chiave e (x) per ogni chiave e costruire una tabella di coppie (ycostruire una tabella di coppie (ykk,k), ordinate ,k), ordinate rispetto a yrispetto a ykk

Il trade-off tempo-memoria Il trade-off tempo-memoria 1 1

Page 31: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• In un momento successivo, quando Oscar ottiene il In un momento successivo, quando Oscar ottiene il testo cifrato y, può confrontarlo con i valori della testo cifrato y, può confrontarlo con i valori della tabella, e reperire immediatamente la chiave ktabella, e reperire immediatamente la chiave k

• In questo caso, la determinazione del valore della In questo caso, la determinazione del valore della chiave richiede un tempo costante, ma per contro vi è chiave richiede un tempo costante, ma per contro vi è un grosso spreco di memoria e lunghi tempi di calcolo un grosso spreco di memoria e lunghi tempi di calcolo preliminaripreliminari

• Il trade-off tempo-memoria combina un tempo di Il trade-off tempo-memoria combina un tempo di calcolo inferiore rispetto alla ricerca esaustiva, ed calcolo inferiore rispetto alla ricerca esaustiva, ed un’occupazione di memoria inferiore rispetto ad una un’occupazione di memoria inferiore rispetto ad una tavola di look-uptavola di look-up

• L’algoritmo può essere descritto in funzione di due L’algoritmo può essere descritto in funzione di due parametri interi positivi, parametri interi positivi, mm e e tt

• L’algoritmo richiede inoltre una L’algoritmo richiede inoltre una funzione di riduzionefunzione di riduzione R, che riduce una stringa di 64 bit ad una di R, che riduce una stringa di 64 bit ad una di lunghezza 56lunghezza 56

Il trade-off tempo-memoria Il trade-off tempo-memoria 2 2

Page 32: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Sia x una stringa di plaintext fissata, di Sia x una stringa di plaintext fissata, di lunghezza 64. Si definisce la funzione lunghezza 64. Si definisce la funzione g(kg(k00)=R(e)=R(ekk (x)), con k (x)), con k00 stringa di 56 bit stringa di 56 bit

• Nella fase di preprocessing, Oscar sceglie Nella fase di preprocessing, Oscar sceglie m m stringhe casuali di lunghezza 56, X(i,0), 1stringhe casuali di lunghezza 56, X(i,0), 1ii

m. m. Oscar calcola X(i,j), 1Oscar calcola X(i,j), 1jjt, t, in base alla in base alla relazione di ricorrenza X(i,j)=g(X(i,j-1)), 1relazione di ricorrenza X(i,j)=g(X(i,j-1)), 1iim, m, 11jjtt

• Quindi Oscar costruisce una tabella di coppie Quindi Oscar costruisce una tabella di coppie T=(X(i,t),X(i,0)), ordinate in base alla prima T=(X(i,t),X(i,0)), ordinate in base alla prima coordinatacoordinata

• Più tardi, Oscar ottiene un testo cifrato y, che è Più tardi, Oscar ottiene un testo cifrato y, che è la codifica del plaintext x, e di nuovo vuole la codifica del plaintext x, e di nuovo vuole identificare k. Determinerà se k è nelle prime identificare k. Determinerà se k è nelle prime tt colonne dell’array X, ma lo farà consultando colonne dell’array X, ma lo farà consultando solo la tabella Tsolo la tabella T

Il trade-off tempo-memoria Il trade-off tempo-memoria 3 3

00

Page 33: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Supponiamo che k=X(i,Supponiamo che k=X(i,tt-j), per qualche j, 1-j), per qualche j, 1jjtt; ; in questo caso gin questo caso gjj(k)=X(i,(k)=X(i,tt), dove g), dove gj j è la funzione è la funzione ottenuta iterando g j volte. Ora si osservi cheottenuta iterando g j volte. Ora si osservi che

ggjj(k)= g(k)= gj-1j-1(g(k))= g(g(k))= gj-1j-1(R(e(R(ekk(x)))= g(x)))= gj-1j-1(R(y))(R(y))

• Si calcolino ySi calcolino yjj, 1, 1jjtt, dalla relazione di ricorrenza, dalla relazione di ricorrenza

yyj j ==

yyjj=X(i,=X(i,tt) se k=X(i,) se k=X(i,tt-j). Tuttavia, y-j). Tuttavia, yjj=X(i,=X(i,tt) è una ) è una condizione necessaria ma non sufficiente per condizione necessaria ma non sufficiente per determinare k, perché R non è iniettivadeterminare k, perché R non è iniettiva

• È necessario verificare che y=eÈ necessario verificare che y=eX(i,X(i,tt-j)-j)(x) per avere (x) per avere la certezza di aver scoperto la chiavela certezza di aver scoperto la chiave

Il trade-off tempo-memoria Il trade-off tempo-memoria 4 4

{{R(y) se j=1R(y) se j=1

g(yg(yj-1j-1) se 1) se 1jjtt

Page 34: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

1.1. Si calcola ySi calcola y11=R(y)=R(y)

2.2. forfor j=1 j=1 toto tt dodo

3.3. ifif y yjj=X(i,=X(i,tt) per qualche i ) per qualche i thenthen

4.4. si calcola X(i,si calcola X(i,t-jt-j) da X(i,0), iterando la) da X(i,0), iterando la

funzione g j voltefunzione g j volte

5.5. ifif y=e y=eX(i,X(i,tt-j)-j)(x) (x) thenthen

6.6. si pone k=X(i,si pone k=X(i,tt-j) e -j) e QUITQUIT

7.7. si calcola ysi calcola yj+1j+1=g(y=g(yjj) )

Il trade-off tempo-memoria Il trade-off tempo-memoria 5 5

Oscar agisce in accordo al seguente algoritmo…Oscar agisce in accordo al seguente algoritmo…

Page 35: Data Encryption Standard Monica Bianchini monica@ing.unisi.it Dipartimento di Ingegneria dellInformazione Università di Siena.

• Analizzando la probabilità di successo Analizzando la probabilità di successo dell’algoritmo, si può dimostrare che se dell’algoritmo, si può dimostrare che se mtmt 22

N=2N=25656, la probabilità che k=X(i,, la probabilità che k=X(i,t-jt-j), per qualche i,j, ), per qualche i,j, è circa 0.8è circa 0.8mtmt/N. Il fattore 0.8 tiene conto del fatto /N. Il fattore 0.8 tiene conto del fatto gli X(i,gli X(i,tt) possono non essere tutti distinti) possono non essere tutti distinti

• Prendendo Prendendo mm tt NN1/3 1/3 e costruendo circa Ne costruendo circa N1/3 1/3

tavole, ciascuna utilizzando una diversa funzione tavole, ciascuna utilizzando una diversa funzione di riduzione R, la memoria necessaria è pari a 112 di riduzione R, la memoria necessaria è pari a 112 N N1/3 1/3 bitbit

• Il tempo speso in calcoli preliminari è Il tempo speso in calcoli preliminari è OO (N)(N)• Il tempo di esecuzione dell’algoritmo è invece Il tempo di esecuzione dell’algoritmo è invece

dell’ordine di dell’ordine di OO (N(N2/32/3) nel caso peggiore (cioè ) nel caso peggiore (cioè quando la ricerca fallisce)quando la ricerca fallisce)

Il trade-off tempo-memoria Il trade-off tempo-memoria 6 6