La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Data Encryption Standard Monica Bianchini Dipartimento di Ingegneria dellInformazione Università di Siena.

Presentazioni simili


Presentazione sul tema: "Data Encryption Standard Monica Bianchini Dipartimento di Ingegneria dellInformazione Università di Siena."— Transcript della presentazione:

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

2 Introduzione Il 15 Maggio 1973, il National Bureau of Standards (NBS) pubblicò un invito, nel Registro Federale, per lemissione di un crittosistema standardIl 15 Maggio 1973, il National Bureau of Standards (NBS) pubblicò un invito, nel Registro Federale, per lemissione di un crittosistema standard nasce DES Data Encryption Standard, che è divenuto il crittosistema più usato nel mondo nasce DES Data Encryption Standard, che è divenuto il crittosistema più usato nel mondo DES fu sviluppato alla IBM, come evoluzione di un crittosistema più antico, LUCIFER, e fu pubblicato sul Registro Federale il 17 Marzo 1975DES fu sviluppato alla IBM, come evoluzione di un crittosistema più antico, LUCIFER, e fu pubblicato sul Registro Federale il 17 Marzo 1975 La definizione di DES è riportata nel Federal Information Processing Standards Publication 46, del 15 Gennaio 1977La definizione di DES è riportata nel Federal Information Processing Standards Publication 46, del 15 Gennaio 1977 DES viene revisionato con frequenza quinquennale da NBSDES viene revisionato con frequenza quinquennale da NBS

3 DES 1 DES codifica una stringa di plaintext, x, di 64 bit, utilizzando una chiave k di 56 bit, ed ottenendo un testo cifrato rappresentato da una stringa di 64 bitDES codifica una stringa di plaintext, x, di 64 bit, utilizzando una chiave k di 56 bit, ed ottenendo un testo cifrato rappresentato da una stringa di 64 bit Lalgoritmo si compone di tre passi:Lalgoritmo si compone di tre passi: 1.Dato il plaintext x, si costruisce la stringa x 0, permutando i bit di x secondo una permutazione iniziale (fissata) IP. In particolare, x 0 =IP(x)=L 0 R 0, dove L 0 comprende i primi 32 bit di x 0 e R 0 gli ultimi 32 2.L i R i, per 1 i 16, viene calcolato come L i =R i-1 R i =L i-1 (R i-1,k i ) dove è loperatore di XOR, è una funzione che verrà descritta nel seguito, e k 1,k 2,…,k 16 sono stringhe di 48 bit calcolate in funzione di k. k 1,k 2,…,k 16 formano il key schedule dove è loperatore di XOR, è una funzione che verrà descritta nel seguito, e k 1,k 2,…,k 16 sono stringhe di 48 bit calcolate in funzione di k. k 1,k 2,…,k 16 formano il key schedule 3.Si applica la permutazione inversa IP -1 alla stringa di bit R 16 L 16, ottenendo il testo cifrato y, cioè y=IP -1 (R 16 L 16 )

4 DES 2 L i-1 R i-1 RiRiRiRi kikikiki LiLiLiLi Un passo di codifica di DES

5 La funzione ha come primo argomento la stringa A di 32 bit, come secondo argomento la stringa J di 48 bit, e produce in output una stringa di bit di lunghezza 32 La funzione ha come primo argomento la stringa A di 32 bit, come secondo argomento la stringa J di 48 bit, e produce in output una stringa di bit di lunghezza 32 A viene espanso in una stringa di 48 bit in base ad una funzione di espansione E(A) fissata. E(A) consiste dei 32 bit di A permutati, 16 dei quali compaiono due volteA viene espanso in una stringa di 48 bit in base ad una funzione di espansione E(A) fissata. E(A) consiste dei 32 bit di A permutati, 16 dei quali compaiono due volte Si calcola E(A) J e si scrive il risultato come la concatenazione di otto stringhe di 6 bit B=B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8Si calcola E(A) J e si scrive il risultato come la concatenazione di otto stringhe di 6 bit B=B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 Si utllizzano gli S i, 1 i 8, che sono array 4 16 i cui elementi sono interi compresi fra 0 e 15. Data una stringa di 6 bit B j =b 1 b 2 b 3 b 4 b 5 b 6, S j (B j ) viene calcolata come segue: i due bit b 1 e b 6 determinano la rappresentazione binaria di una riga r di S j (0 r 3), ed i quattro bit b 2 b 3 b 4 b 5 determinano la rappresentazione binaria di una colonna c di S j (0 c 15). Pertanto S j (B j ) è lelemento S j (r,c), scritto in binario sotto forma di stringa di 4 bit C j =S j (B j ), 1 j 8Si utllizzano gli S i, 1 i 8, che sono array 4 16 i cui elementi sono interi compresi fra 0 e 15. Data una stringa di 6 bit B j =b 1 b 2 b 3 b 4 b 5 b 6, S j (B j ) viene calcolata come segue: i due bit b 1 e b 6 determinano la rappresentazione binaria di una riga r di S j (0 r 3), ed i quattro bit b 2 b 3 b 4 b 5 determinano la rappresentazione binaria di una colonna c di S j (0 c 15). Pertanto S j (B j ) è lelemento S j (r,c), scritto in binario sotto forma di stringa di 4 bit C j =S j (B j ), 1 j 8 La stringa di 32 bit C= C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 viene permutata in accordo ad una permutazione P fissata. La stringa risultante P(C) è (A,J )La stringa di 32 bit C= C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 viene permutata in accordo ad una permutazione P fissata. La stringa risultante P(C) è (A,J ) DES 3

6 DES 4 J E(A ) A P C1C1C1C1 C2C2C2C2 C3C3C3C3 C4C4C4C4 C5C5C5C5 C6C6C6C6 C8C8C8C8 B8B8B8B8 S8S8S8S8 S1S1S1S1 S2S2S2S2 S3S3S3S3 S4S4S4S4 S5S5S5S5 S6S6S6S6 S7S7S7S7 B1B1B1B1 B2B2B2B2 B3B3B3B3 B4B4B4B4 B5B5B5B5 B6B6B6B6 B7B7B7B7 C7C7C7C7 E (A,J ) (A,J ) Realizzazione della funzione in DES

7 Le funzioni utilizzate in DES sono…Le funzioni utilizzate in DES sono… …ciò significa, ad esempio, che il 58-esimo bit di x è il primo bit di IP(x), il 50-esimo bit di x è il secondo di IP(x), etc. …ciò significa, ad esempio, che il 58-esimo bit di x è il primo bit di IP(x), il 50-esimo bit di x è il secondo di IP(x), etc. DES 5 IP -1 IP E bit-selection table

8 Inoltre…Inoltre… DES 6 S4S4S4S4 S1S1S1S1 S2S2S2S2 S3S3S3S3

9 DES 7 S8S8S8S8 S5S5S5S5 S6S6S6S6 S7S7S7S7 P

10 Infine, occorre descrivere il calcolo della succesione di chiavi, a partire dalla chiave kInfine, occorre descrivere il calcolo della succesione di chiavi, a partire dalla chiave k k è una stringa di 64 bit, di cui 56 costituiscono la chiave vera e propria, mentre i rimanenti 8 sono bit di parità (per il rilevamento di errori)k è una stringa di 64 bit, di cui 56 costituiscono la chiave vera e propria, mentre i rimanenti 8 sono bit di parità (per il rilevamento di errori) I bit di parità occupano le posizioni 8,16,…,64 ed assumono valore tale che ogni byte abbia un numero dispari di bit a 1. Il bit di parità può servire a rilevare errori su un singolo bit del byte relativoI bit di parità occupano le posizioni 8,16,…,64 ed assumono valore tale che ogni byte abbia un numero dispari di bit a 1. Il bit di parità può servire a rilevare errori su un singolo bit del byte relativo I bit di parità non vengono utilizzati nel calcolo del key scheduleI bit di parità non vengono utilizzati nel calcolo del key schedule DES 8

11 Calcolo della succesione di chiavi k i, 1 i 16Calcolo della succesione di chiavi k i, 1 i 16 1.Data la chiave k a 64 bit, si tralasciano i bit di parità, mentre si permutano i rimanenti 56 bit, in base alla permutazione PC 1, fissata a priori. Sia PC 1 (k)=C 0 D 0, dove C 0 comprende i primi 28 bit di PC 1 (k) e D 0 gli ultimi 28 2.Per i compreso fra 1 e 16 si calcolano C i =LS i (C i-1 ) D i =LS i (D i-1 ) e k i =PC 2 (C i D i ). LS i è uno shift ciclico a sinistra, di una o due posizioni in funzione del valore di i: si scorre di una posizione per i=1,2,9,16, di due in tutti gli altri casi. PC 2 è una permutazione fissata e k i =PC 2 (C i D i ). LS i è uno shift ciclico a sinistra, di una o due posizioni in funzione del valore di i: si scorre di una posizione per i=1,2,9,16, di due in tutti gli altri casi. PC 2 è una permutazione fissata DES 9 PC 1 PC 2

12 DES 10 Il calcolo della successione di chiavi viene effettuato secondo il seguente schemaIl calcolo della successione di chiavi viene effettuato secondo il seguente schema PC 2 k1k1k1k1 PC 1 C1C1C1C1 LS 1 C0C0C0C0 C 16 D0D0D0D0 D1D1D1D1 D 16 k k2k2k2k2 PC 2 LS 1 LS 2 LS 16

13 Mostriamo adesso come viene generata la serie delle chiavi utilizzate nelle 16 iterate di DES. Gli elementi nelle tabelle seguenti indicano i bit di k che vengono utilizzati ai vari passiMostriamo adesso come viene generata la serie delle chiavi utilizzate nelle 16 iterate di DES. Gli elementi nelle tabelle seguenti indicano i bit di k che vengono utilizzati ai vari passi DES 11 Passo 6 Passo 8 Passo 5 Passo 7 Passo 2 Passo 4 Passo 1 Passo 3

14 DES 12 Passo 14 Passo 16 Passo 13 Passo 15 Passo 10 Passo 12 Passo 9 Passo 11 La fase di decodifica viene realizzata utilizzando lo stesso algoritmo, con y per input, e key schedule k 16,k 15,…,k 1. Loutput è il plaintext xLa fase di decodifica viene realizzata utilizzando lo stesso algoritmo, con y per input, e key schedule k 16,k 15,…,k 1. Loutput è il plaintext x

15 Supponiamo di voler codificare il plaintext esadecimaleSupponiamo di voler codificare il plaintext esadecimale 0123456789ABCDEF 0123456789ABCDEF0000000100100011010001010110011110001001101010111100110111101111 utilizzando la chiave esadecimale utilizzando la chiave esadecimale133457799BBCDFF1 La corrispondente chiave binaria, senza bit di parità, è La corrispondente chiave binaria, senza bit di parità, è00010010011010010101101111001001101101111011011111111000 Applicando IP si ottengono L 0 ed R 0, come…Applicando IP si ottengono L 0 ed R 0, come… L 0 =11001100000000001100110011111111 L 1 =R 0 =11110000101010101111000010101010 Un esempio di codifica con DES 1

16 Un esempio di codifica con DES 2 I 16 passi della codifica calcolano…I 16 passi della codifica calcolano… E(R 1 )=011101011110101001010100001100001010101000001001 E(R 1 )=011101011110101001010100001100001010101000001001 k 2 =011110011010111011011001110110111100100111100101 k 2 =011110011010111011011001110110111100100111100101 E(R 1 ) k 2 =000011000100010010001101111010110110001111101100 C=11111000110100000011101010101110 C=11111000110100000011101010101110 (R 1,k 2 )=00111100101010111000011110100011 (R 1,k 2 )=00111100101010111000011110100011 L 3 =R 2 =11001100000000010111011100001001 L 3 =R 2 =11001100000000010111011100001001 E(R 0 )=011110100001010101010101011110100001010101010101 E(R 0 )=011110100001010101010101011110100001010101010101 k 1 =000110110000001011101111111111000111000001110010 k 1 =000110110000001011101111111111000111000001110010 E(R 0 ) k 1 =011000010001011110111010100001100110010100100111 C=01011100100000101011010110010111 C=01011100100000101011010110010111 (R 0,k 1 )=00100011010010101010100110111011 (R 0,k 1 )=00100011010010101010100110111011 L 2 =R 1 =11101111010010100110010101000100 L 2 =R 1 =11101111010010100110010101000100

17 Infine, applicando IP -1 a R 16 L 16, si ottiene la stringaInfine, applicando IP -1 a R 16 L 16, si ottiene la stringa100001011110100000010011010101000000111100001011011010000000101 ovvero, in esadecimale ovvero, in esadecimale85E813540F0AB405 Un esempio di codifica con DES 3 E(R 14 )=111000000101010001011001010010101100000001011011 E(R 14 )=111000000101010001011001010010101100000001011011 k 15 =101111111001000110001101001111010011111100001010 k 15 =101111111001000110001101001111010011111100001010 E(R 14 ) k 15 =010111111100010111010100011101111111111101010001 C=10110010111010001000110100111100 C=10110010111010001000110100111100 (R 14,k 15 )=01011011100000010010011101101110 (R 14,k 15 )=01011011100000010010011101101110 L 16 =R 15 =01000011010000100011001000110100 L 16 =R 15 =01000011010000100011001000110100 E(R 15 )=001000000110101000000100000110100100000110101000 E(R 15 )=001000000110101000000100000110100100000110101000 k 16 =110010110011110110001011000011100001011111110101 k 16 =110010110011110110001011000011100001011111110101 E(R 15 ) k 16 =111010110101011110001111000101000101011001011101 C=10100111100000110010010000101001 C=10100111100000110010010000101001 (R 15,k 16 )=11001000110000000100111110011000 (R 15,k 16 )=11001000110000000100111110011000 R 16 =00001010010011001101100110010101 R 16 =00001010010011001101100110010101

18 Quando DES fu proposto come standard, furono sollevate numerose critiche relative alle S-box. Quando DES fu proposto come standard, furono sollevate numerose critiche relative alle S-box. Infatti, tutti i calcoli effettuati in DES, ad eccezione delle S-box, sono lineari, poiché calcolare lXOR di due output equivale a calcolare loutput relativo allXOR degli stessi input Infatti, tutti i calcoli effettuati in DES, ad eccezione delle S-box, sono lineari, poiché calcolare lXOR di due output equivale a calcolare loutput relativo allXOR degli stessi input Le S-box, che costituiscono la nonlinearità del crittosistema, sono fondamentali per la sua sicurezza: i crittosistemi lineari (tipo Affine cipher) sono infatti proni ad attacchi Known plaintext Le S-box, che costituiscono la nonlinearità del crittosistema, sono fondamentali per la sua sicurezza: i crittosistemi lineari (tipo Affine cipher) sono infatti proni ad attacchi Known plaintext Tuttavia, i criteri di costruzione delle S-box non sono stati resi pubblici Tuttavia, i criteri di costruzione delle S-box non sono stati resi pubblici Cè chi sostiene che le S-box contengano delle trapdoor (scorciatoie) che garantiscano alla National Security Agency (NSA) la possibilità di decifrare messaggi, mantenendo la sicurezza di DES Cè chi sostiene che le S-box contengano delle trapdoor (scorciatoie) che garantiscano alla National Security Agency (NSA) la possibilità di decifrare messaggi, mantenendo la sicurezza di DES La controversia del DES 1

19 Nel 1976, la NSA rese pubbliche le seguenti specifiche di progetto relative alle S-box: Nel 1976, la NSA rese pubbliche le seguenti specifiche di progetto relative alle S-box: 1.Ciascuna riga di ciascuna S-box è una permutazione degli interi 0,…,15 2.Nessuna delle S-box è una funzione lineare o affine 3.Il cambiamento di un bit in ingresso ad una S-box provoca il cambiamento di al più due bit del risultato 4.Per ogni S-box e x, S(x) e S(x 001100) differiscono almeno per due bit (x è una stringa di 6 bit) Due ulteriori proprietà vennero indicate come conseguenze progettuali: Due ulteriori proprietà vennero indicate come conseguenze progettuali: 5.Per ogni S-box e x, per e,f {0,1}, S(x) S(x 11ef00) 6.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 in maniera equiprobabile Unlteriori (eventuali) specifiche progettuali non sono note Unlteriori (eventuali) specifiche progettuali non sono note La controversia del DES 2

20 La critica più pertinente al DES riguarda la relativa ristrettezza dello spazio delle chiavi, |K |=2 56, per garantirne la sicurezza La critica più pertinente al DES riguarda la relativa ristrettezza dello spazio delle chiavi, |K |=2 56, per garantirne la sicurezza Sono state proposte una serie di apparecchiature special-purpose in grado di sferrare a DES un attacco Known plaintext, per mezzo di una ricerca esaustiva nello spazio delle chiavi Sono state proposte una serie di apparecchiature special-purpose in grado di sferrare a DES un attacco Known plaintext, per mezzo di una ricerca esaustiva nello spazio delle chiavi oData una stringa di 64 bit, il plaintext x, ed il corrispondente testo cifrato y, dovrebbero essere testate tutte le possibili chiavi fino a quando non viene rilevata una chiave k tale che e k (x)=y (ce ne potrebbero essere più di una) Nel 1977, Diffie ed Helman progettarono un chip in VLSI che poteva testare 10 6 chiavi al secondo Nel 1977, Diffie ed Helman progettarono un chip in VLSI che poteva testare 10 6 chiavi al secondo Una macchina dotata di 10 6 chip poteva sondare lintero spazio delle chiavi in un giorno circa (ma sarebbe costata 20 milioni di dollari!) Una macchina dotata di 10 6 chip poteva sondare lintero spazio delle chiavi in un giorno circa (ma sarebbe costata 20 milioni di dollari!) La controversia del DES 3

21 Al CRYPTO 93, Michael Wiener descrisse molto dettagliatamente una macchina per la ricerca nello spazio delle chiavi Al CRYPTO 93, Michael Wiener descrisse molto dettagliatamente una macchina per la ricerca nello spazio delle chiavi La macchina era basata su un chip pipelined dedicato, in grado di realizzare concorrentemente i 16 passi di codifica La macchina era basata su un chip pipelined dedicato, in grado di realizzare concorrentemente i 16 passi di codifica Il chip poteva testare 5 10 7 chiavi per secondo e poteva essere realizzato (con la tecnologia dellepoca) ad un costo unitario $10,50 Il chip poteva testare 5 10 7 chiavi per secondo e poteva essere realizzato (con la tecnologia dellepoca) ad un costo unitario $10,50 Una configurazione dotata di 5760 chip, del costo di 100 mila dollari, poteva sondare lo spazio delle chiavi in circa un giorno e mezzo, mentre una macchina 10 volte più potente (e più costosa) ci sarebbe riuscita in poco più di tre ore Una configurazione dotata di 5760 chip, del costo di 100 mila dollari, poteva sondare lo spazio delle chiavi in circa un giorno e mezzo, mentre una macchina 10 volte più potente (e più costosa) ci sarebbe riuscita in poco più di tre ore Ormai, DES trova rare utilizzazioni, data la sua vulnerabilità, utilizzando le macchine attuali (in cui tempi e costi non sono assolutamente proibitivi) Ormai, DES trova rare utilizzazioni, data la sua vulnerabilità, utilizzando le macchine attuali (in cui tempi e costi non sono assolutamente proibitivi) La controversia del DES 4

22 Anche se descrivere DES a parole può risultare lungo e noioso, DES può essere implementato in maniera molto efficiente sia in hardware che in software: Anche se descrivere DES a parole può risultare lungo e noioso, DES può essere implementato in maniera molto efficiente sia in hardware che in software: oLa sola operazione aritmetica necessaria è lXOR fra stringhe di bit oLa funzione di espansione E, le S-box, le permutazioni IP e P, ed il calcolo delle chiavi k 1, k 2,…,k 16 possono essere tutte effettuate in tempo costante, attraverso look-up table in software, o bruciate in un circuito in hardware DES ha trovato applicazioni significative nelle transazioni bancarie: veniva utilizzato per codificare i PIN (Personal Identification Number ) e le transazioni su conto corrente per operazioni da ATM (Automated Teller Machine ) DES ha trovato applicazioni significative nelle transazioni bancarie: veniva utilizzato per codificare i PIN (Personal Identification Number ) e le transazioni su conto corrente per operazioni da ATM (Automated Teller Machine ) DES è stato inoltre largamente impiegato da organizzazioni governative americane, quali il Department of Energy, il Justice Department ed il Federal Reserve System DES è stato inoltre largamente impiegato da organizzazioni governative americane, quali il Department of Energy, il Justice Department ed il Federal Reserve System DES nelle applicazioni

23 Per DES sono state definite quattro modalità operative distinte: Electronic CodeBook (ECB), Cipher FeedBack (CFB), Cipher Block Chaining (CBC) e Output FeedBack (OFB) Per DES sono state definite quattro modalità operative distinte: Electronic CodeBook (ECB), Cipher FeedBack (CFB), Cipher Block Chaining (CBC) e Output FeedBack (OFB) La modalità ECB corrisponde allimpiego classico dei cifrari a blocchi: data una sequenza x 1 x 2 … di blocchi di plaintext, ciascuno di 64 bit, ogni x i viene codificato per mezzo della stessa chiave k, producendo una sequenza di blocchi di testo cifrato y 1 y 2 … La modalità ECB corrisponde allimpiego classico dei cifrari a blocchi: data una sequenza x 1 x 2 … di blocchi di plaintext, ciascuno di 64 bit, ogni x i viene codificato per mezzo della stessa chiave k, producendo una sequenza di blocchi di testo cifrato y 1 y 2 … In modalità CBC, si effettua lXOR fra il blocco corrente di plaintext x i ed il blocco di testo cifrato al passo precedente y i-1, prima di effettuare la codifica utilizzando k. Occorre pertanto inizializzare y 0 =v e, per i 1, si ottiene y i =e k (y i-1 x i ) In modalità CBC, si effettua lXOR fra il blocco corrente di plaintext x i ed il blocco di testo cifrato al passo precedente y i-1, prima di effettuare la codifica utilizzando k. Occorre pertanto inizializzare y 0 =v e, per i 1, si ottiene y i =e k (y i-1 x i ) Modalità operative di DES 1

24 Modalità operative di DES 2 Modalità CBC y 0 =v + + ekekekek ekekekek x1x1x1x1 x2x2x2x2 y1y1y1y1 y2y2y2y2 + + dkdkdkdk y1y1y1y1 y2y2y2y2 x1x1x1x1 x2x2x2x2 dkdkdkdk Decodifica CBC Codifica CBC

25 Nelle modalità OFB e CFB viene generato un flusso di chiavi che vengono successivamente poste in XOR con il plaintext (tipo Stream cipher) Nelle modalità OFB e CFB viene generato un flusso di chiavi che vengono successivamente poste in XOR con il plaintext (tipo Stream cipher) OFB è uno stream cipher sincrono: il flusso di chiavi viene prodotto iterativamente codificando un vettore v di inizializzazione, lungo 64 bit OFB è uno stream cipher sincrono: il flusso di chiavi viene prodotto iterativamente codificando un vettore v di inizializzazione, lungo 64 bit oSi definisce z 0 =v e quindi il keystream z 1 z 2 … viene calcolato con la regola z i =e k (z i-1 ), i 1 oInfine, la sequenza plaintext x 1 x 2 … viene codificata calcolando y i =x i z i, i 1 In modalità CFB si inizializza y 0 =v e si produce il keystream secondo la regola z i = e k (y i-1 ); si calcolano poi y i = x i z i, i 1 (come in OFB) In modalità CFB si inizializza y 0 =v e si produce il keystream secondo la regola z i = e k (y i-1 ); si calcolano poi y i = x i z i, i 1 (come in OFB) In entrambe le modalità, OFB e CFB, la funzione e k di codifica viene utilizzata anche in fase di decodifica In entrambe le modalità, OFB e CFB, la funzione e k di codifica viene utilizzata anche in fase di decodifica Modalità operative di DES 3

26 Modalità operative di DES 4 Modalità CFB y 0 =v + + ekekekek y2y2y2y2 ekekekek x2x2x2x2 y1y1y1y1 x1x1x1x1 + + ekekekek x2x2x2x2 ekekekek y2y2y2y2 x1x1x1x1 y1y1y1y1 Decodifica CFB Codifica CFB

27 Le quattro modalità operative hanno vantaggi e svantaggi diversi: Le quattro modalità operative hanno vantaggi e svantaggi diversi: oNelle modalità ECB e OFB, il cambiamento di un blocco a 64 bit di plaintext, x i, altera il corrispondente blocco cifrato, y i, ma non produce cambiamenti negli altri blocchi oPuò essere una caratteristica vantaggiosa: per esempio, OFB viene usato per codificare le trasmissioni satellitarie oNelle modalità CBC e CFB, se un blocco, x i, di plaintext cambia, vengono alterati dal cambiamento i blocchi cifrati y i e successivi oCBC e CFB sono utili nel caso dellautenticazione. Più specificamente, queste modalità possono essere usate per produrre un Message Autentication Code (MAC) oIl MAC viene accodato ad una sequenza di blocchi di plaintext, e viene utilizzato per convincere Bob che il messaggio proviene da Alice, senza interferenze da parte di Oscar MAC garantisce lintegrità del contenuto del messaggio (ma non la sua segretezza) Modalità operative di DES 5

28 Descriviamo come la modalità CBC viene utilizzata per produrre MAC: Descriviamo come la modalità CBC viene utilizzata per produrre MAC: oIl vettore di inizializzazione v viene posto a 0 oViene costruito il testo cifrato y 1,y 2,…,y n, con la chiave k, untilizzando CBC. Infine, viene definito MAC come y n oQuindi Alice trasmette la sequenza di plaintext x 1 …x n e il MAC oQuando Bob riceve x 1 …x n può ricostruire y 1 …y n, utilizzando la chiave segreta k, e verificare che y n coincide con il MAC che ha ricevuto oOscar non può produrre un MAC valido perché non conosce k. Inoltre, anche se intercetta il messaggio in plaintext e ne altera il contenuto, è altamente improbabile che riesca a modificare il MAC in modo tale da ingannare Bob DES per lautenticazione 1

29 In generale, è auspicabile abbinare la segretezza alla garanzia di autenticità di un messaggio. In questo caso… In generale, è auspicabile abbinare la segretezza alla garanzia di autenticità di un messaggio. In questo caso… oAlice usa la chiave k 1 per produrre un MAC per x 1 …x n ; quindi definisce MAC=x n+1 e codifica la sequenza x 1 …x n+1 utilizzando una seconda chiave, k 2, ed ottenendo y 1 …y n+1 oQuando Bob riceve y 1 …y n+1 lo decodifica utilizzando k 2 e quindi controlla che x n+1 sia il MAC relativo al plaintext x 1 …x n, con k 1 oAltrimenti, Alice può usare k 1 per codificare x 1 …x n, ottenendo y 1 …y n, e quindi usare k 2 per produrre il MAC=y n+1 per y 1 …y n oBob utilizzerà k 2 per verificare il MAC e k 1 per decifrare y 1 …y n DES per lautenticazione 2

30 Ricordiamo che, in un attacco Known plaintext, Oscar ottiene una coppia plaintext/ciphertext prodotta utilizzando una chiave k a lui sconosciuta Ricordiamo che, in un attacco Known plaintext, Oscar ottiene una coppia plaintext/ciphertext prodotta utilizzando una chiave k a lui sconosciuta Oscar conosce x e y=e k (x) e vuole determinare k Oscar conosce x e y=e k (x) e vuole determinare k Una caratteristica del trade-off tempo-memoria è che non dipende dalla struttura di DES. Il solo aspetto del DES rilevante per lattacco è che sia il plaintext che il testo cifrato sono costituiti da 64 bit, contro i 56 della chiave Una caratteristica del trade-off tempo-memoria è che non dipende dalla struttura di DES. Il solo aspetto del DES rilevante per lattacco è che sia il plaintext che il testo cifrato sono costituiti da 64 bit, contro i 56 della chiave Si è già parlato della possibilità di effettuare una ricerca esaustiva nello spazio delle chiavi, che ha cardinalità 2 56 : non richiede memoria ma, in media, 2 55 chiavi verranno esaminate prima del reperimento di quella cercata Si è già parlato della possibilità di effettuare una ricerca esaustiva nello spazio delle chiavi, che ha cardinalità 2 56 : non richiede memoria ma, in media, 2 55 chiavi verranno esaminate prima del reperimento di quella cercata Daltra parte, per un dato x, Oscar può calcolare anticipatamente y k =e k (x) per ogni chiave e costruire una tabella di coppie (y k,k), ordinate rispetto a y k Daltra parte, per un dato x, Oscar può calcolare anticipatamente y k =e k (x) per ogni chiave e costruire una tabella di coppie (y k,k), ordinate rispetto a y k Il trade-off tempo-memoria 1

31 In un momento successivo, quando Oscar ottiene il testo cifrato y, può confrontarlo con i valori della tabella, e reperire immediatamente la chiave k In un momento successivo, quando Oscar ottiene il testo cifrato y, può confrontarlo con i valori della tabella, e reperire immediatamente la chiave k In questo caso, la determinazione del valore della chiave richiede un tempo costante, ma per contro vi è un grosso spreco di memoria e lunghi tempi di calcolo preliminari In questo caso, la determinazione del valore della chiave richiede un tempo costante, ma per contro vi è un grosso spreco di memoria e lunghi tempi di calcolo preliminari Il trade-off tempo-memoria combina un tempo di calcolo inferiore rispetto alla ricerca esaustiva, ed unoccupazione di memoria inferiore rispetto ad una tavola di look-up Il trade-off tempo-memoria combina un tempo di calcolo inferiore rispetto alla ricerca esaustiva, ed unoccupazione di memoria inferiore rispetto ad una tavola di look-up Lalgoritmo può essere descritto in funzione di due parametri interi positivi, m e t Lalgoritmo può essere descritto in funzione di due parametri interi positivi, m e t Lalgoritmo richiede inoltre una funzione di riduzione R, che riduce una stringa di 64 bit ad una di lunghezza 56 Lalgoritmo richiede inoltre una funzione di riduzione R, che riduce una stringa di 64 bit ad una di lunghezza 56 Il trade-off tempo-memoria 2

32 Sia x una stringa di plaintext fissata, di lunghezza 64. Si definisce la funzione g(k 0 )=R(e k (x)), con k 0 stringa di 56 bit Sia x una stringa di plaintext fissata, di lunghezza 64. Si definisce la funzione g(k 0 )=R(e k (x)), con k 0 stringa di 56 bit Nella fase di preprocessing, Oscar sceglie m stringhe casuali di lunghezza 56, X(i,0), 1 i m. Oscar calcola X(i,j), 1 j t, in base alla relazione di ricorrenza X(i,j)=g(X(i,j-1)), 1 i m, 1 j t Nella fase di preprocessing, Oscar sceglie m stringhe casuali di lunghezza 56, X(i,0), 1 i m. Oscar calcola X(i,j), 1 j t, in base alla relazione di ricorrenza X(i,j)=g(X(i,j-1)), 1 i m, 1 j t Quindi Oscar costruisce una tabella di coppie T=(X(i,t),X(i,0)), ordinate in base alla prima coordinata Quindi Oscar costruisce una tabella di coppie T=(X(i,t),X(i,0)), ordinate in base alla prima coordinata Più tardi, Oscar ottiene un testo cifrato y, che è la codifica del plaintext x, e di nuovo vuole identificare k. Determinerà se k è nelle prime t colonne dellarray X, ma lo farà consultando solo la tabella T Più tardi, Oscar ottiene un testo cifrato y, che è la codifica del plaintext x, e di nuovo vuole identificare k. Determinerà se k è nelle prime t colonne dellarray X, ma lo farà consultando solo la tabella T Il trade-off tempo-memoria 3 0

33 Supponiamo che k=X(i,t-j), per qualche j, 1 j t; in questo caso g j (k)=X(i,t), dove g j è la funzione ottenuta iterando g j volte. Ora si osservi che Supponiamo che k=X(i,t-j), per qualche j, 1 j t; in questo caso g j (k)=X(i,t), dove g j è la funzione ottenuta iterando g j volte. Ora si osservi che g j (k)= g j-1 (g(k))= g j-1 (R(e k (x)))= g j-1 (R(y)) g j (k)= g j-1 (g(k))= g j-1 (R(e k (x)))= g j-1 (R(y)) Si calcolino y j, 1 j t, dalla relazione di ricorrenza Si calcolino y j, 1 j t, dalla relazione di ricorrenza y j = y j = y j =X(i,t) se k=X(i,t-j). Tuttavia, y j =X(i,t) è una condizione necessaria ma non sufficiente per determinare k, perché R non è iniettiva y j =X(i,t) se k=X(i,t-j). Tuttavia, y j =X(i,t) è una condizione necessaria ma non sufficiente per determinare k, perché R non è iniettiva È necessario verificare che y=e X(i,t-j) (x) per avere la certezza di aver scoperto la chiave È necessario verificare che y=e X(i,t-j) (x) per avere la certezza di aver scoperto la chiave Il trade-off tempo-memoria 4 { R(y) se j=1 g(y j-1 ) se 1 j t

34 1. Si calcola y 1 =R(y) 2. for j=1 to t do 3. if y j =X(i,t) per qualche i then 4. si calcola X(i,t-j) da X(i,0), iterando la funzione g j volte funzione g j volte 5. if y=e X(i,t-j) (x) then 6. si pone k=X(i,t-j) e QUIT 7. si calcola y j+1 =g(y j ) Il trade-off tempo-memoria 5 Oscar agisce in accordo al seguente algoritmo…

35 Analizzando la probabilità di successo dellalgoritmo, si può dimostrare che se mt 2 N=2 56, la probabilità che k=X(i,t-j), per qualche i,j, è circa 0.8mt/N. Il fattore 0.8 tiene conto del fatto gli X(i,t) possono non essere tutti distinti Analizzando la probabilità di successo dellalgoritmo, si può dimostrare che se mt 2 N=2 56, la probabilità che k=X(i,t-j), per qualche i,j, è circa 0.8mt/N. Il fattore 0.8 tiene conto del fatto gli X(i,t) possono non essere tutti distinti Prendendo m t N 1/3 e costruendo circa N 1/3 tavole, ciascuna utilizzando una diversa funzione di riduzione R, la memoria necessaria è pari a 112 N 1/3 bit Prendendo m t N 1/3 e costruendo circa N 1/3 tavole, ciascuna utilizzando una diversa funzione di riduzione R, la memoria necessaria è pari a 112 N 1/3 bit Il tempo speso in calcoli preliminari è O (N) Il tempo speso in calcoli preliminari è O (N) Il tempo di esecuzione dellalgoritmo è invece dellordine di O (N 2/3 ) nel caso peggiore (cioè quando la ricerca fallisce) Il tempo di esecuzione dellalgoritmo è invece dellordine di O (N 2/3 ) nel caso peggiore (cioè quando la ricerca fallisce) Il trade-off tempo-memoria 6


Scaricare ppt "Data Encryption Standard Monica Bianchini Dipartimento di Ingegneria dellInformazione Università di Siena."

Presentazioni simili


Annunci Google