0 considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software des, hanno...

51
1 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di progetti di cifrature a blocchi alternativi a cominciare dalla fine degli anni '80 ed i primi anni '90 Esempi di tali sistemi sono: RC5, Blowfish, IDEA, NewDES, SAFER, CAST5 e FEAL. La maggior parte di questi progetti considerano blocchi a 64 bit come nel DES e chiavi di 64 o 128 bit. •Il DES può essere migliorato utilizzando un procedimento di crittografia multipla

Upload: agapito-casini

Post on 01-May-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

1

Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di progetti di cifrature a blocchi alternativi a cominciare dalla fine degli anni '80 ed i primi anni '90

Esempi di tali sistemi sono:

RC5, Blowfish, IDEA, NewDES, SAFER, CAST5 e FEAL.

La maggior parte di questi progetti considerano blocchi a 64 bit come nel DES e chiavi di 64 o 128 bit.

•Il DES può essere migliorato utilizzando un procedimento di crittografia multipla mediante il quale lo stesso algoritmo viene applicato più volte.

Page 2: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

2

Varianti del DES

•Double-DES: implica l'applicazione del DES tre volte con due chiavi diverse

• Triple DES (3DES): è stato analizzato e descritto nelle pubblicazioni ufficiali. Implica l'applicazione del DES tre volte con due o tre chiavi diverse.

•DES-X: alternativa computazionalmente meno pesante che aumenta la lunghezza della chiave effettuando un'operazione di XOR con dei bit extra prima e dopo il l'applicazione del DES.

•GDES:altra variante del DES proposta per avere un'alternativa più veloce ma si è dimostrata debole nei confronti degli attacchi mediante crittanalisi differenziale.

Page 3: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

3

•Nel 2001, dopo una competizione internazionale, il NIST ha selezionato un nuovo algoritmo di cifratura: l'Advanced Encryption Standard (AES), come sostituto.

•L’uso di varianti del DES ha comunque il vantaggio di conservare l’investimento esistente in termini di software e

dispositivi

Page 4: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

4

DES Doppio

Cifraturalunghezza blocco = 64 bitchiave (K1, K22) apparentemente lunga 56+56 = 112 bitC=E[K2,E(K1,P)]

DESDES DESDEStesto cifratotesto cifratotesto in chiarotesto in chiaro

KK11 KK22

Page 5: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

5

DES DoppioCifratura

Decifratura

DESDES

EEDESDES

EEtesto cifratotesto cifratotesto in chiarotesto in chiaro

KK11 KK22

testo in chiarotesto in chiarotesto cifratotesto cifrato

KK11KK22

DESDES--11

DD

DESDES-1-1

DD

P=D[K1,D(K2,C)]

PP XX CC

CC XXPP

Page 6: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

6

DES Doppio

•Riduzione a un’unica faseRiduzione a un’unica fase

Proposizione 2.1: Per ogni coppia di chiavi (k1, k2) non esiste alcuna chiave k3 tale che

DES k2(DES k1(X))=DES k3(X)

per ogni testo in chiaro X.

Se fosse stato vero il contrario, se cioè l'utilizzo di due chiavi fosse stato equivalente

all'utilizzo di una sola chiave, allora la cifratura doppia, ed in generale la cifratura

con un numero qualsiasi di passi (e di chiavi), sarebbe stata inutile

Page 7: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

7

DES Doppio

•Un’encryption DES è un mapping da un blocco di 64 bit ad un altro

•Con una data chiave ad un blocco di 64 bit viene associato uno dei 264 possibili blocchi in modo univoco.

•Vi sono 264 ingressi possibili quindi vi sono

mapping diversi

•DES definisce un mapping per ogni chiave, quindi 256 < 1017

•Il DES con due chiavi diverse può produrre un mapping

non prodotto da una singola applicazione del DES (la dimostrazione

è stata data nel 1992 da Campbell che dimostrò che DES non è un

gruppo

•Il Double-DES è un miglioramento rispetto al DES

2064 10(2 )! (10 )

Page 8: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

8

Sicurezza DES doppio

Quanto è “sicuro”

il DES doppio?

Page 9: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

9

DES Doppio:attacco meet in the middle

L’attacco meet in the middle è stato proposto da Diffie ed Hellman nel 1997

Tale algoritmo, non dipende dalla particolare struttura del DES, e pertanto può essere usato per attaccare un qualunque cifrario a blocchi.

Si basa sull’osservazione che, se: (vedi figura)

C = E( K2(E(K1,P))

allora

X = E(K1,P) = d(K2,P)

Page 10: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

10

DES Doppio:attacco meet in the middle

Supponiamo di conoscere una particolare coppia (P, C), dove P è il testo in chiaro e C il testo cifrato, e di voler determinare la coppia di chiavi (K1, K2) utilizzate per cifrare P.

1◘ Cifriamo P utilizzando tutte le 256 possibili chiavi K1 e memorizziamo i testi cifrati in una tabella ordinata per valori di X

2◘ Decifriamo C usando tutte le 256 possibili chiavi K2

◘ Confrontiamo i valori ottenuti nel passo due con quelli presenti nella tabella costruita nel passo1

Se si trova una corrispondenza allora le due chiavi corrispondenti potrebbero formare la coppia cercata

Page 11: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

11

DES Doppio:attacco meet in the middle

Non è detto,, che la coppia trovata sia effettivamente quella corretta perché, in

realtà, possono esistere diverse chiavi che dallo stesso testo in chiaro P generano lo

stesso testo cifrato C. In particolare, per ogni testo in chiaro P, il Doppio DES

può produrre 264 possibili valori di testo cifrato.

Poiché il Doppio DES usa una chiave a 112 bit, le chiavi possibili sono 2112.

Peranto, se scegliamo a caso una coppia (P, C), il numero di di chiavi da 112 bit che

trasformano P in C è in media 2112/264 = 248

•L'attacco considerato produce cioé circa 248 collisioni sulla coppia (P, C).

•Allora scegliamo a caso un'altra coppia (P', C') di testo in chiaro-testo cifrato

(indipendente dalla prima) tale che C' sia prodotto da P' utilizzando la stessa

coppia di chiavi (K1, K2).

Con tale scelta il numero di falsi allarmi diminuisce riducendosi a 248-64=2-16 .

Il risultato è che l’attacco avrebbe successo con uno sforzo computazionale pari a 256;

Page 12: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

12

DES Doppio:attacco meet in the middle

Known Plaintext Attack

Input: x, y = DESk´(DESk(x) )

Costruisci tabella

forfor k2{0,1}56

do do z = DES-1k2(y)

ifif per qualche k1, (k1, z) è nella tabella

thenthen returnreturn la chiave è (k1,k2)

chiave testo cifrato

k'' DESk''(x)

… …

DESDES DESDES testo cifratotesto cifratotesto in chiarotesto in chiaro

K1K1 K2K2

xx yyzz

Page 13: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

13

3DES

standardizzato per le applicazioni finanziarie nel 1985, dal 1999 incorporato nello standard DES

tre esecuzioni del DES secondo uno schema EDEstessa resistenza del DES alla crittoanalisitre chiavi da 56 bit equivalenti a una da 168 bit

Page 14: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

14

DES Triplicato

Cifratura

lunghezza blocco = 64 bit chiave (k1, k2,k3) lunga 56 + 56 + 56 = 168 bit

DESDES DESDES DESDEStesto cifratotesto cifratotesto in chiarotesto in chiaro

k1k1 k2k2 k3k3

Page 15: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

15

DES Triplo

Cifratura

lunghezza blocco = 64 bit chiave (k1, k22) lunga 56+56 = 112 bit spesso chiamato EDEk1,k2 (acronimo per Encrypt Decrypt Encrypt) adottato negli standard X9.17 e ISO 8732

DESDES DESDES-1-1 DESDEStesto cifratotesto cifratotesto in chiarotesto in chiaro

k1k1 k2k2 k1k1

Page 16: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

16

Compatibilità DES Triplo e DES

Se k 1= k2 il DES triplo

è equivalente al semplice DES

DESDES DESDES-1-1 DESDEStesto cifratotesto cifratotesto in chiarotesto in chiaro

k1k1 kk22 k1k1

DESDEStesto in chiarotesto in chiaro testo cifratotesto cifrato

Page 17: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

17

Decifratura DES Triplo

Cifratura

Decifratura

DESDES DESDES-1-1 DESDEStesto cifratotesto cifratotesto in chiarotesto in chiaro

k1k1 k2k2 k1k1

DESDES-1-1 DESDES DESDES-1-1

k1k1 k2k2 k1k1

testo cifratotesto cifrato testo in chiarotesto in chiaro

Page 18: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

18

DES Triplicato: attacco meet in the middle

Complessità Known Plaintext Attack 2112

Ricerca esaustiva su tutte le chiavi 2168

•“Equivalente” ad un cifrario con una chiave di 112 bit, e non 168 bit

Page 19: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

19

DES Triplicato: attacco meet in the middle

Known Plaintext Attack

Input: x, y = DESk´´(DESk´(DESk((x)))

Costruisci tabella

forfor k3 {0,1}56

do do z = DES-1k3(y)

ifif per qualche k1,k2, (k1k2, z) è nella tabella

thenthen returnreturn la chiave è (k1,k2,k3)

DESDES DESDES DESDEStesto cifratotesto cifratotesto in chiarotesto in chiaro

kk k´k´ k´´k´´

xx zz yy

chiave testo cifrato

(k''',k'''') DESk'''(DESk''''(x))

… …

Page 20: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

20

Modalità operative del DES

Come cifrare testi più lunghi di 64 bit?

Electronic codebook chaining (ECB)

Cipher block chaining (CBC)

Cipher feedback (CFB)

Output feedback (OFB)

Counter (CTR)

Page 21: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

21

Modalità operative del DES

• Il messaggio è suddiviso in blocchi indipendenti che sono poi criptati singolarmente

• Si tratta a tutti gli effetti di un cifrario a sostituzione

• E’ il metodo più semplice ma anche meno affidabile, E’ il metodo più semplice ma anche meno affidabile, ideale per la trasmissione di brevi quantità di dati

• Un crittoanalista può rompere tale cifrario abbastanza Un crittoanalista può rompere tale cifrario abbastanza facilmente poiché è possibile applicare un’analisi di facilmente poiché è possibile applicare un’analisi di frequenza. Inoltre un attaccante che si inserisce a metà del frequenza. Inoltre un attaccante che si inserisce a metà del canale di trasmissione (man in the middle attack) può canale di trasmissione (man in the middle attack) può sostituire parti del testo cifrato senza che il ricevente possa sostituire parti del testo cifrato senza che il ricevente possa accorgersi facilmente della sostituzione.accorgersi facilmente della sostituzione.

•Electronic Codebook (ECB)

Page 22: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

22

Modalità operative del DES•Electronic Codebook (ECB)

Page 23: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

23

Modalità operative del DES

Svantaggi della modalità ECB

• La ridondanza del plaintext viene riportata

nel ciphertext

• Blocchi uguali di plaintext in tempi diversi

produrranno blocchi analoghi di ciphertext

• Se il messaggio è strutturato (header comune) si possono ottenere copie di testo in chiaro/testo cifrato su cui lavorare

• La modalità ECB viene utilizzata per l’invio

di piccole quantità di dati tipo una chiave di cifratura

Page 24: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

24

Modalità operative del DES

Cipher Block Chaining (CBC)• Il plaintext è diviso in parole di 64 bit

• Tali parole sono però collegate tra loro durante

la criptazione

• Ciascun blocco cifrato è concatenato (tramite uno XOR) col successivo blocco di plaintext

• Il primo blocco di plaintext fa uso di un vettore di

•inizializzazione (IV):

• La modalità CBC viene usata per la criptazione di grosse quantità di dati

Page 25: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

25

Modalità operative del DES

Cipher Block Chaining (CBC)

Page 26: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

26

Modalità operative del DES

Cipher Block Chaining (CBC)

Page 27: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

27

Modalità operative del DES

•Modalità CBC: vantaggi e svantaggi

• Ciascun blocco di ciphertext dipende da tutti i precedenti blocchi di plaintext

• Un cambiamento in un singolo blocco ha effetto

su tutti i blocchi cifrati seguenti

• C’è bisogno di un vettore di inizializzazione (IV)

noto al trasmettitore e al ricevitore

– IV tuttavia non può essere inviato in chiaro

– IV deve essere inviato in forma criptata (ad esempio

con modalità ECB) o deve assumere un valore fisso e

noto

Page 28: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

28

Modalità operative del DES

Cipher FeedBack (CFB)

Page 29: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

29

Modalità operative del DES

Cipher FeedBack (CFB)

Page 30: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

30

Modalità operative del DES

Message paddingAlla fine del messaggio possibile presenza di un blocco

più breve del blocco del cipher

p.e. [ b1 b2 b3 0 0 0 0 5]

significa avere 3 bytes di dati, quindi 5 bytes di pad+count

Ciò può richiedere un intero blocco aggiuntivo

a quelli propri del messaggio

Possibile padding con valori non-data (p.e. null) noti

oppure possibile un padding dell’ultimo blocco con

un contatore del padding

Esistono altri modi più sofisticati che evitano la presenza

del blocco aggiuntivo

Page 31: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

31

Modalità operative del DES

Output Feedback (OFB)

• Output Feedback (OFB) Output Feedback (OFB) in questo caso il collegamento in questo caso il collegamento avviene tra l'output del blocco precedente ed il blocco avviene tra l'output del blocco precedente ed il blocco corrente. Questo dovrebbe garantire un procedimento più corrente. Questo dovrebbe garantire un procedimento più veloce. Questo modello viene utilizzato nelle veloce. Questo modello viene utilizzato nelle comunicazioni ad elevata velocità come ad esempio i comunicazioni ad elevata velocità come ad esempio i satelliti.satelliti.

Esistono sistemi crittografici che cercano di combinare i Esistono sistemi crittografici che cercano di combinare i modelli a blocchi sopra illustrati.modelli a blocchi sopra illustrati.

Page 32: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

32

Modalità operative del DES

Output FeedBack (OFB)

Page 33: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

33

Modalità operative del DES

Advantages and Limitations of OFBused when error feedback a problem or where need to

encryptions before message is available superficially similar to CFB but feedback is from the output of cipher and is

independent of message a variation of a Vernam cipher

– hence must never reuse the same sequence (key+IV)

sender and receiver must remain in sync, and some recovery method is needed to ensure this occurs

originally specified with m-bit feedback in the standards subsequent research has shown that only OFB-64 should

ever be used

Page 34: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

34

Modalità operative del DES

Counter (CTR)

Page 35: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

35

Modalità operative del DES

Counter (CTR)

Page 36: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

Stream CiphersStream Ciphers

Cifrario a flusso (stream cipher): trasforma, uno o pochi alla volta, i bit del testo da cifrare e da decifrare.

Protezione dei singoli bit di una trasmissione seriale WEP, GSM

•Due tipi di cifrario a flusso•flusso sincrono: Il flusso dei bit di chiave è generato in modo indipendente dal flusso dei bit di testo

•Autosincronizzazione: il flusso dei bit di chiave dipende dal flusso dei bit di testo cifrato

Page 37: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

Stream CiphersStream Ciphers

CIFRATURAci = mi ki

i= 1, 2, 3, ..

DECIFRAZIONEci ki = (mi ki) ki = mi

i= 1, 2, 3, ..

FLUSSO DI CHIAVE•lungo quanto il testo•formato da bit pseudocasuali•periodo lunghissimo•sequenza scelta in segreto e a caso

PRNG

seed

PRNG

seed

sincronismo

mi

ki

cici

ki

mi

Page 38: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

Stream CiphersStream Ciphers

•SicurezzaSicurezzaLa sicurezza dei cifrari a flusso è concentrata nella realizzazione diLa sicurezza dei cifrari a flusso è concentrata nella realizzazione di

una stringa di bit di valore aleatorio lunga quanto il testo.una stringa di bit di valore aleatorio lunga quanto il testo.

In realtà i bit sono pseudocasuali con un periodo p >10In realtà i bit sono pseudocasuali con un periodo p >105050..

Per cifrare e decifrare un messaggio entrambi gli utenti devono Per cifrare e decifrare un messaggio entrambi gli utenti devono

Inizializzare due generatori di flusso di chiave (che garantiscono la Inizializzare due generatori di flusso di chiave (che garantiscono la

sincronizzazione del flusso di dati) con un seme (seed) segreto disincronizzazione del flusso di dati) con un seme (seed) segreto di

piccole dimensioni.piccole dimensioni.

Page 39: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

Stream CiphersStream Ciphers

ATTACCHI FLUSSO SINCRONO AUTOSINCR.

Cancellazione di bit propagazione d’errore transitorio perdita di sincronizzaz. non rilevabile

Inserzione di bit propagazione d’errore transitorio perdita di sincronizzaz. non rilevabile

Replica di bit propagazione d’errore transitorio perdita di sincronizzaz. non rilevabile

Modifica di bit non propagazione transitorio non rilevabile rilevabile

Page 40: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

Stream cipher realizzato della RSA Data Security Inc.

Progetto semplice ma efficiente

Funzionamento byte-oriented

Lunghezza di chiave variabile

Largamente usato: web SSL/TLS, WLAN WEP e WPA

Chiave genera permutazione casuale di tutti i valori a 8 bit

Usa quella permutazione per l’elaborazione dell’informazione

Era rimasto protetto dal segreto commerciale finché qualcuno spedì il codice sorgente di un algoritmo "equivalente" a RC4 nelle Usenet New

Cifratura a flussi:RC4Cifratura a flussi:RC4

Page 41: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

RC4RC4

•S costituisce l’internal state del keystream generator•Inizialmente array S di numeri da 0 a 255•Chiave usata per mescolare bene i 256 numeri•Per un byte da cifrare viene selezionato un byte dello state•Dopo di ciò nuova permutazione

for i = 0 to 255 do

S[i] = i

T[i] = K[i mod keylen]

j = 0

for i = 0 to 255 do

j = (j + S[i] + T[i]) (mod 256)

swap (S[i], S[j])

Page 42: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

RC4RC4

La encryption continua mescolando i valori dell’array

Somma di una coppia mescolata seleziona dalla

permutazione lo stream key

Per criptare/decriptare si fa lo XOR con il successivo

byte del messaggio

i = j = 0

for each message byte Mi

i = (i + 1) (mod 256)

j = (j + S[i]) (mod 256)

swap(S[i], S[j])

t = (S[i] + S[j]) (mod 256)

Ci = Mi XOR S[t]

Page 43: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

RC4RC4

Page 44: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

RC4RC4

Il risultato finale è fortemente non lineare

RC4 è uno stream cipher, quindi non si deve riusare la chiave

Esiste un problema noto con il WEP, ma è dovuto al sistema

di gestione della chiave e non ad RC4

Il governo USA ha approvato l'esportazione di RC4 con chiavi di 40 bits: chiavi cosi piccole possono essere facilmente forzate da

istituzioni come il governo, l'esercito etc SSL, versione export, che usa RC4 con chiavi di 40, bits è stato SSL, versione export, che usa RC4 con chiavi di 40, bits è stato recentemente forzato da almeno due gruppi indipendenti in circa recentemente forzato da almeno due gruppi indipendenti in circa otto giorni di attività. Qualche tempo dopo lo stesso attacco è stato otto giorni di attività. Qualche tempo dopo lo stesso attacco è stato effettuato con successo in soli 35 minuti effettuato con successo in soli 35 minuti

Page 45: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

RC4RC4

Inizialmente i sistemisti Microsoft utilizzavano per la cifratura Inizialmente i sistemisti Microsoft utilizzavano per la cifratura

l 'algoritmo RC4. A causa di qualche problema i programmatoril 'algoritmo RC4. A causa di qualche problema i programmatori

Microsoft implementarono una versione dell'RC4 leggermente Microsoft implementarono una versione dell'RC4 leggermente

modificata a livello di codice, ma completamente stravolta a livello modificata a livello di codice, ma completamente stravolta a livello

di funzionalità. Con semplici operazioni di X0R e di traslazione e di funzionalità. Con semplici operazioni di X0R e di traslazione e

grazie a numerosi programmi freeware si possono decodificare tuttegrazie a numerosi programmi freeware si possono decodificare tutte

le password contenute nel file .PWL. Un esempio di programma per le password contenute nel file .PWL. Un esempio di programma per

attaccare le password è PWL-TOOL. Questo tool è immediato da attaccare le password è PWL-TOOL. Questo tool è immediato da

utilizzare grazie alla sua interfaccia grafica friendly ed è scaricabile utilizzare grazie alla sua interfaccia grafica friendly ed è scaricabile

dal sito www.webdor.com.dal sito www.webdor.com.La software house evidentemente non ha ritenuto opportuno dedicare La software house evidentemente non ha ritenuto opportuno dedicare

sufficiente attenzione alla implementazione di un algoritmo sicurosufficiente attenzione alla implementazione di un algoritmo sicuro

per la protezione delle password di sistema per la protezione delle password di sistema

Page 46: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

A5A5

•Forse il più diffuso stream cipher

•Usato dal GSM per la encryption della voce/dati

•Mai reso pubblico, quindi noto solo in modo non ufficiale

•Due varianti A5/1 ad alta sicurezza A5/1 a bassa sicurezza A5/2

•GSM trasmette un frame ogni 4,6 ms, formato da 228 bit

•114 in un senso e 114 in quello opposto

•Una conversazione è criptata con una chiave di sessione K

•di 64 bit

•10 bit sono uguali a 0, sicché la chiave effettiva è di 54 bit

114114 114114

GSMGSM

Page 47: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

A5A5

•La chiave K è unita ad un frame counter Fn di 22 bit

noto al pubblico e il risultato è lo stato iniziale del

generatore di un keystream con unità di 228 bit•L’unità di keystream di 228 bit è XORed dalle due parti A

e B con i 114 + 144 bit di plaintext per produrre i 114 +

114 bit di ciphertext•L’unità di keystream di 228 bit è generata usando tre Linear

Feedback Shift Register (LFSR) R1 (19 bit), R2 (22 bit) e R3

(23 bit), più un quarto LSFR R4 (17)•I registri sono Maximal Length

Page 48: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

A5A5

Page 49: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

A5A5

Funzionamento del meccanismo di clocking

R4 controlla il clocking di R1, R2 e R3

Dovendo effettuare il clocking di R1, R2 e R3 si iniettano nella

Clocking unit i bit R4[3], R4[7] e R4[10 ]

La Clocking unit calcola la majority function su questi 3 bit

maj(a,b,c) = a· bb · cc · a

R1, R2 e R3 sono clocked, se e solo se, rispettivamente R4[1],

R4[3] e R4[7] è uguale alla majority

Dopo queste operazioni R4 è clocked

Page 50: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

A5A5

Senza funzionamento stop/go, il periodo della somma

dei tre LSFR è dato da

(219 -1)(222 -1)(223 -1)

Tenendo conto dello stop/go si si ha un periodo di circa 4 •(223 -1) / 3

All’avvio i registri sono inizializzati a 0

Per 64 cicli di clock si provvede ad aggiungere la chiave

Page 51: 0 Considerazioni sulla sicurezza e relativa lentezza di alcune operazioni del software DES, hanno motivato i ricercatori a proporre un certo numero di

A5A5

Nel ciclo i si aggiunge al bit meno significativo di ciascun registro il bit i-esimo della chiave usando un’XOR

R(0) = R(0) K(i)

Dopo l’XOR si invia il clock

Similmente in 22 cicli di clock si aggiunge il frame number

Si effettuano 100 cicli di clock a vuoto, ossia senza prendere l’uscita

A questo punto il keystream generator è pronto