Schema generico di un algoritmo crittografico
Sicurezza nei Sistemi Informativi
Crittografia a chiave simmetrica
Ing. Orazio Tomarchio
[email protected]
Dipartimento di Ingegneria Informatica e delle Telecomunicazioni
Università di Catania
O. Tomarchio
Crittografia a chiave segreta
„
Sicurezza nei Sistemi Informativi
Crittografia a chiave segreta (simmetrica)
chiave-1 = chiave-2
Plaintext m
„
„
2
cifratura
Ciphertext c
chiave K
Algoritmi simmetrici
(cioè la funzione di cifratura e di decifratura sono
l’una l’inversa dell’altra)
Plaintext m
Basso carico di elaborazione
Ciphertext c
decifratura
Funzione di cifratura
c = E(m,K) = EK (m)
Funzione di decifratura
m = D(c,K) = DK (c)
con funzioni di cifratura e decifratura l’una inversa dell’altra
„
Usata principalmente per crittografia dei dati
O. Tomarchio
Sicurezza nei Sistemi Informativi
EK (DK (c )) == c
DK (EK (m )) == m
3
O. Tomarchio
Sicurezza nei Sistemi Informativi
4
Crittografia a chiave segreta (simmetrica)
„
„
Chiave unica
Chiave comune a mittente e destinatario
O. Tomarchio
Sicurezza nei Sistemi Informativi
Crittografia simmetrica
Cifrari a blocchi (Block cipher)
5
Symmetric block cipher
Principali algoritmi ( a blocchi)
Schema generico ad alto livello
„
„
„
Facendo riferimento allo schema generico già introdotto:
la stessa chiave k viene usata sia per D che per E
„
k = stringa di bit di lunghezza l
„
m = stringa di bit di lunghezza b
„
c = stringa di bit di lunghezza b
Il block cipher Ek rappresenta una relazione biunivoca tra l’insieme delle stringhe m
(i.e., i numeri m compresi tra 0 e 2b-1) e i possibili 2b valori [0..2b-1] di c, in
maniera dipendente da k
Dk = Ek-1
O. Tomarchio
Sicurezza nei Sistemi Informativi
7
„
DES, triple-DES
„
IDEA
„
RC2, RC5
„
Blowfish
„
AES
O. Tomarchio
Sicurezza nei Sistemi Informativi
8
Principali algoritmi
Obiettivi fondamentali di un block cipher
„
„
„
„
O. Tomarchio
Sicurezza nei Sistemi Informativi
9
Ogni bit di c deve dipendere da tutti i bit di k e da tutti i
bit di m
Non ci deve essere alcuna relazione statistica evidente
(almeno per chi non conosce k ) tra c e m
La modifica di un bit di m deve portare ad una modifica
di ciascuno dei bit di c con probabilità 0.5
La modifica di un bit di c deve fare in modo che il
corrispondente m, ricavato con Dk(c), subisca
cambiamenti statisticamente non correlati con il
cambiamento subito da c
O. Tomarchio
„
„
„
Concetti introdotti da Shannon
Diffusione
„ La struttura statistica del testo in chiaro viene espansa
in un ampio intervallo statistico del testo cifrato
„ In pratica vuol dire che ogni cifra del testo cifrato deve
essere influenzata da più cifre del testo in chiaro
Confusione
„ Cercare di complicare la relazione fra le statistiche del
testo cifrato ed il valore della chiave di crittografia
Questi due concetti sono alla base della progettazione dei
moderni cifrari a blocchi
O. Tomarchio
Sicurezza nei Sistemi Informativi
10
La funzione XOR
Diffusione e confusione
„
Sicurezza nei Sistemi Informativi
11
„
operatore di “confusione” ideale
se l’input è casuale (probabilità 0 : 1 = 50 : 50%)
allora anche l’output sarà casuale allo stesso
modo
disponibile su tutte le CPU
„
tavola di verità:
„
„
O. Tomarchio
Sicurezza nei Sistemi Informativi
12
Prodotto di cifrari
„
„
Prodotto di cifrari: un possibile schema
La sostituzione e la permutazione dei simboli possono
essere viste come funzioni fondamentali per la costruzione
di una funzione più complessa, che altro non è se non un
particolare prodotto delle funzioni fondamentali
„
„
„
„
Un obiettivo importante nel design di questo tipo di
algoritmi è che essi siano facilmente reversibili,
conoscendo k
„
„
„
Data la Ek, deve essere il più semplice possibile ricavare la Dk
O. Tomarchio
Sicurezza nei Sistemi Informativi
13
Dimensione di m e c: b bit
b= j n
Si: cifrari a sostituzione che
operano su j bit
P: cifrario a trasposizione
che opera su b bit
Round: prodotto dei due
cifrari
Sono necessari t round, con
t > 1, perché si raggiunga
uno degli obiettivi
fondamentali
(il cambiamento di un bit di
m deve portare al
cambiamento di ciascuno
dei bit di c con probabilità
0.5)
O. Tomarchio
Prodotto di cifrari:
„
combinazione di funzioni elementari
„
(swap, bit-shift, separazioni, concatenazioni, XOR,
susbstitution-cipher, …)
„
„
„
„
„
„
„
Il dimensionamento ottimale del numero di round è uno
dei parametri di progetto più importanti
„
Come utilizzare k in ciascuno dei cifrari utilizzati nella
combinazione?
Come assicurare la reversibilità?
O. Tomarchio
Sicurezza nei Sistemi Informativi
14
DES
Prodotto di cifrari: note
„
Sicurezza nei Sistemi Informativi
„
15
Data Encryption Standard
standard FIPS 46/2 (pubblicato nel 1977)
modalità di applicazione standard FIPS 81
chiave a 56 bit (+ 8 bit di parità = 64 bit)
blocco dati da 64 bit
Oggi è ormai obsoleto (sostituito dal 3DES nel 1999)
pensato per essere efficiente in hardware perché richiede:
„ permutazioni
„ shift
„ XOR
In pratica il più vecchio e il più usato cifrario a blocchi commerciale
(conosciuto) ancora in uso oggi, seppure con metodologie di
applicazione più complesse rispetto a quanto si facesse tempo fa
O. Tomarchio
Sicurezza nei Sistemi Informativi
16
Triple DES (3DES)
„
„
„
„
„
„
Doppio DES ?
applicazione ripetuta di DES
usa due o tre chiavi a 56 bit
solitamente usato in modo EDE
(compatibilità con DES se K1 = K2 = K3)
„
„
encrypt(K1) + decrypt(K2) + encrypt(K1)
equivale a K di 56 bit se si hanno 2**59B, altrimenti
equivale a K di 112 bit
encrypt(K1) + decrypt(K2) + encrypt(K3)
equivale ad avere K di 112 bit
„
standard FIPS 46/3 e ANSI X9.52
O. Tomarchio
Sicurezza nei Sistemi Informativi
17
l’applicazione doppia di algoritmi di cifratura è
soggetta ad un attacco di tipo known-plaintext
chiamato meet-in-the-middle che permette di
decifrare i dati con al più 2N+1 tentativi
quindi solitamente non si usa mai la versione
doppia degli algoritmi di cifratura
Nota: se l’algoritmo simmetrico di base fosse un
gruppo allora esisterebbe K3 tale che
enc (K2 , enc (K1 , P) ) = enc (K3 , P)
O. Tomarchio
Attacco meet-in-the-middle
„
„
„
IDEA
ipotesi:
„ chiavi da N bit
„ sono noti P e C tali che C = enc (K2, enc (K1, P) )
nota:
„ esiste M tale che M = enc(K1,P) e C = enc(K2,M)
azioni:
„ calcolo 2N valori Xi = enc (Ki, P)
„ calcolo 2N valori Yj = dec (Kj, C)
„ cerco quei valori Ki e Kj tali che Xi = Yj
„ “falsi positivi” eliminabili se ho più coppie P,C
O. Tomarchio
Sicurezza nei Sistemi Informativi
Sicurezza nei Sistemi Informativi
Introdotto nel1991
„
brevettato ma con basse royalty (solo per uso commerciale)
„
chiave a 128 bit
„
blocco dati da 64 bit
„
operazioni usate:
„
19
International Data Encryption Algorithm
„
„
18
„
XOR
„
addizione modulo 16
„
moltiplicazione modulo 216+1
Ampiamente analizzato dalla comunità, senza che fosse trovato alcun
problema: nessuno ha pubblicato alcun metodo pratico (al di là degli
attacchi a forza bruta) per penetrare IDEA
Utilizzato in diversi prodotti e sistemi: PGP, S/MIME, …
O. Tomarchio
Sicurezza nei Sistemi Informativi
20
RC2
„
„
„
„
„
„
RC5
sviluppati da Ron Rivest
RC = Ron’s Code
algoritmi proprietari di RSA ma non brevettati
3 e 10 volte più veloci di DES
chiave a lunghezza variabile
RC2:
„
„
„
„
„
„
„
„
„
pubblicato come RFC-2268 (mar 1998)
chiave da 8 a 1024 bit (solitamente 64 bit)
blocchi da 64 bit
O. Tomarchio
Sicurezza nei Sistemi Informativi
RFC-2040
blocco dati da B bit (0 < B < 257)
chiave (fissa/variabile) da b byte
(0 <= b < 256) ossia tra 0 e 2048 bit
lavora al meglio con B = 2 W
operazioni usate:
„
„
„
21
shift, rotate
addizione modulare
usato nel WAP
O. Tomarchio
Blowfish
„
„
„
„
„
„
„
22
AES (Advanced Encryption Standard)
Algoritmo a blocchi, introdotto nel 1994, royalty free
„ b = 64 bit
„ l = variabile, da 32 a 448 bit
Uno dei primi algoritmi ancora in uso ad introdurre il concetto di sicurezza
variabile, legato alla variabilità della dimensione della chiave
Progettato per essere estremamente efficiente in implementazioni SW su
processori general-purpose
È molto meno efficace in implementazioni HW: problemi con l’algoritmo di
generazione delle sotto-chiavi (estremamente complesso, e richiede “molta”
memoria)
Utilizza funzioni elementari combinate in maniera semplice, il che lo rende
relativamente semplice sia da analizzare che da implementare
Implementato in vari meccanismi di sicurezza (esempio: OpenSSH, PGPfone,
…)
Ha ricevuto ancora meno attenzione (temporale) di IDEA, ma finora non sono
stati trovati problemi
O. Tomarchio
Sicurezza nei Sistemi Informativi
Sicurezza nei Sistemi Informativi
23
„
„
„
„
Algoritmo a blocchi, standardizzato come successore di DES nel 2001
Processo di standardizzazione completamente aperto (processo di
selezione pubblica, con regole dettate dal NIST)
Basato sulla teoria matematica dei campi finiti di Galois
Progettato, oltre che per i “soliti” obiettivi, per essere semplice da
implementare sia in HW che in SW:
in entrambi i casi si ottiene un algoritmo molto più veloce di DES
„
„
„
b = 128 bit
l = variabile, 128, 192, 256 bit
(AES-128, AES-192, AES-256)
Non si conoscono attacchi crittanalitici pratici più efficienti della forza
bruta
O. Tomarchio
Sicurezza nei Sistemi Informativi
24
Applicazione degli algoritmi a blocchi
„
Crittografia simmetrica
Modalità d’uso dei block cipher
„
„
Come si applica un algoritmo a blocchi a dati in quantità diversa da
quella del blocco base?
Diversi modi d’uso portano a meccanismi ce possiedono diversi
vantaggi e svantaggi, e sono più o meno adatti ad applicazioni diverse
per cifrare dati in quantità superiore
„
„
„
ECB (Electronic Code Book)
CBC (Cipher Block Chaining)
per cifrare dati in quantità inferiore
„
„
„
padding
CFB (Cipher FeedBack)
OFB (Output FeedBack)
O. Tomarchio
ECB (Electronic Code Book)
„
„
„
m2
„
formula per il blocco i-esimo:
-1 (c , k)
„ mi = E
i
m1
mn
k
k
E
k
E
…
k
E
D
c1
c1
O. Tomarchio
c2
Sicurezza nei Sistemi Informativi
26
ECB (decifratura)
Il messaggio viene suddiviso in blocchi indipendenti
Ciascun blocco viene cifrato indipendentemente dagli altri
blocchi
Formula per il blocco i-esimo
„ ci = E (mi, k)
m1
Sicurezza nei Sistemi Informativi
m2
k
D
mn
…
k
c2
D
cn
cn
27
O. Tomarchio
Sicurezza nei Sistemi Informativi
28
CBC (Cipher Block Chaining)
ECB: proprietà
„
Vantaggi
„
„
„
Semplicissimo da implementare
„
Non propagazione degli errori, per errori di tipo “cambio di valore
di bit” (bit error)
„
„
Il messaggio viene suddiviso in blocchi…
che però vengono legati assieme nelle operazioni di cifratura
formula per il blocco i-esimo:
„
„
Svantaggi
„
„
„
„
Si presta ad attacchi (passivi) che analizzano la frequenza dei
simboli
ci = E (mi ⊕ ci-1, k)
richiede c0 = IV (Initialization Vector)
non attaccabile banalmente
Propagazione degli errori, per errori del tipo “inserimento o
cancellazione di bit” (lost/inserted bit)
k
A causa di questi svantaggi, è bene non usare mai ECB
Sicurezza nei Sistemi Informativi
29
O. Tomarchio
m1
m2
„
k
D
c1
O. Tomarchio
„
mn
…
k
D
…
c2
Sicurezza nei Sistemi Informativi
E
c1
k
E
…
c2
Sicurezza nei Sistemi Informativi
Cn-1
k
E
cn
30
CBC: proprietà
formula per il blocco i-esimo:
-1 (c , k) ⊕ c
„ mi = E
i
i-1
richiede che c0 (ossia l’ IV) sia noto anche al ricevente del
messaggio
IV
mn
…
CBC (decifratura)
„
m2
Si presta ad attacchi (attivi) che manipolano l’ordine dei blocchi, o
ne modificano il valore (violazione dell’integrità e autenticità)
O. Tomarchio
„
m1
IV
Cn-1
k
D
„
cn
31
Vantaggi
„
Non propagazione degli errori per gli errori bit error (un singolo errore di questo
tipo nel ciphertext agisce sul blocco di <c,m> in esame, e su un bit dell’m
successivo)
„
Stessi valori di m in posizioni diverse producono diversi c: molto più resistente di
ECB all’analisi della frequenza dei simboli
„
Più resistente di ECB ad attacchi attivi che manipolano l’ordine dei blocchi, o che ne
cambiano il valore (ma non immune)
Svantaggi
„
Si presta ad attacchi attivi che aggiungono blocchi, o che modificano il valore di
un blocco c per modificare in maniera prevedibile il corrispondente m (violazione di
integrità e autenticità)
„
Propagazione degli errori, per lost/inserted bit (a meno che non si perda/inserisca
un numero di bit multiplo di b)
Nota: importanza della presenza dell’IV, e della sua casualità
„
Esempio: se l’IV rimane costante, la trasmissione periodica dello stesso messaggio
porterà allo stesso ciphertext, quindi un intruso potrà capire quando il messaggio è
cambiato
O. Tomarchio
Sicurezza nei Sistemi Informativi
32
CBC: proprietà
„
Problemi di sincronizzazione (perdita di bit o inserimento di bit spuri nel ciphertext)
„
„
OFB (Output FeedBack)
„
Contromisura: se si usa CBC, bisogna prevedere dei meccanismi per ri-sincronizzare
il ciphertext di tanto in tanto (per esempio, utilizzando dei marker ben riconoscibili
ogni n blocchi)
„
Attacco attivo: aggiunta di blocchi
Contromisura: prevedere dei meccanismi per sapere in anticipo quanto ciphertext ci
si deve aspettare, o usare dei MAC (vedi più avanti)
Attacco attivo: modifiche a ci per influenzare prevedibilmente mi+1
„
Contromisura: aggiungere un CRC, o, meglio ancora, un MAC (vedi più avanti) per
„
„
garantire l’integrità
„
„
Attenzione all’IV!
„
„
„
Il messaggio è trattato
come uno stream
L’output della cifratura viene
usato come feedback per la fase
successiva
Tale feedback è indipendente dal
messaggio
richiede un IV
(per inizializzare lo shift register)
left shift register
64
k
64
Prendi gli s bit più a sinistra
s
s
mi
Assicurarsi sempre che nella propria implementazione vengano generati IV casuali,
e che essi non si ripetano
s
In ogni caso, e questo non vale solo per CBC, ricordate che questi modi di utilizzo degli
algoritmi a blocchi servono per fornire segretezza, non garanzia di integrità o
ci
autenticazione
O. Tomarchio
Sicurezza nei Sistemi Informativi
33
O. Tomarchio
Sicurezza nei Sistemi Informativi
OFB: proprietà
„
„
„
Un block cipher usato in OFB diventa a tutti gli effetti uno stream cipher: in particolare, il
keystream può essere calcolato prima della trasmissione dei dati (compromesso
memoria/potenza di calcolo)
„
Ancora meno propagazione degli errori di CBC: non essendoci feedback dal ciphertext, un
eventuale errore di trasmissione su un blocco ci influenzerà solo il corrispondente blocco mi, non
„
Non è più necessario inviare i messaggi in blocchi di (almeno) b bit alla volta come con CBC: si
possono inviare i c anche in blocchi di dimensione variabile, man mano che i relativi m sono
pronti per essere trasmessi
„
„
„
Soliti problemi legati agli errori di bit lost/deleted, amplificati: qualunque numero di bit persi o
aggiunti (anche multipli di b) nella trasmissione del ciphertext impediscono la corretta
decifratura dall’errore in poi
Se Alice sta trasmettendo il messaggio ci=mi ⊕ oi a Bob, e Trudy scopre la
coppia <ci,mi>, Trudy può sostituire ci con ci’=ci ⊕ mi ⊕ mi’, e fare in
modo che il messaggio ricevuto da Bob sia mi’ invece di mi
Contromisura: MAC
Attacco passivo: analisi in frequenza
„
Svantaggi
„
Attacco attivo: violazione di integrità e autenticità
„
mi+1
„
Attenzione all’IV: non si deve mai riutilizzare lo stesso IV con la stessa k
per due messaggi diversi! (ergo, se la chiave rimane costante, gli IV che
vengono usati per diversi messaggi devono essere veramente casuali)
„
Non è self-synchronizing: non si può usare su canali di comunicazione affetti di errori, a meno di
introdurre meccanismi esterni per la ri-sincronizzazione (ad esempio, marker)
Non può essere usato con algoritmi crittografici asimmetrici (si usa solo la Ek)
O. Tomarchio
Sicurezza nei Sistemi Informativi
34
OFB: proprietà
Vantaggi
„
E
35
O. Tomarchio
In questo caso il keystream sarà lo stesso per due messaggi diversi, quindi un
crittanalista, semplicemente facendo lo ⊕ dei due ciphertext, si troverebbe a
dover crittanalizzare semplicemente lo ⊕ dei due plaintext originali (analisi in
frequenza, ecc.)
Sicurezza nei Sistemi Informativi
36
CFB (Cipher FeedBack)
„
„
„
„
Il messaggio è trattato
come uno stream
Il testo cifrato viene usato come
feedback per la fase successiva
Lo standard permette di eseguire
il feedback con numero qualsiasi
di bit (1, 8, 64, o altro)
„ Denotati con CFB-1, CFB-8,
CFB-64, etc
richiede un IV
(per inizializzare lo shift register)
CFB: proprietà
„
left shift register
„
64
k
Vantaggi
Self-synchronizing: si auto-sincronizza, contrariamente a quanto
accade in OFB, se accadono errori di trasmissione (cancellazione o
aggiunta di bit) che coinvolgono un multiplo di b bit
E
„
64
Prendi gli s bit più a sinistra
„
s
mi
Svantaggi
„
s
Propagazione dell’errore limitata: in caso di un errore di
trasmissione su un singolo bit di un blocco ci, l’errore influenzerà la
decifratura di mi, e dei successivi b/s blocchi
„
s
Non si può calcolare il keystream in anticipo
Non può essere usato con algoritmi crittografici asimmetrici
(si usa solo la Ek)
ci
O. Tomarchio
Sicurezza nei Sistemi Informativi
37
O. Tomarchio
Sicurezza nei Sistemi Informativi
38
Algoritmi di tipo stream
„
Crittografia simmetrica
Stream cipher
„
„
operano su un flusso di dati senza richiederne la divisione
in blocchi, tipicamente su un bit o un byte alla volta
Ek è, in genere, stateful (con memoria): essa varia man
mano che trasforma il plaintext
algoritmo ideale:
„
„
one-time pad
algoritmi reali:
„
„
usano generatori pseudo-casuali di chiavi,
sincronizzati tra mittente e ricevente
esempi: RC4 e SEAL
O. Tomarchio
Sicurezza nei Sistemi Informativi
40
Stream cipher:
one-time-pad vs. pseudo-random keystream
Algoritmi di tipo stream
„
„
„
Abbiamo già visto le proprietà, i vantaggi (perfetta segretezza) e gli
svantaggi (chiave lunga) del one-time-pad
Il one-time-pad sarebbe il perfetto stream cipher
Un possibile metodo per creare uno stream cipher è quello di generare
un keystream lungo quanto il messaggio, ma a partire da una chiave k
di lunghezza piccola e predefinita
„
„
„
O. Tomarchio
Sicurezza nei Sistemi Informativi
41
Il keystream sarebbe in questo caso, non perfettamente casuale come nel
one-time-pad, bensì pseudocasuale
Quanto più il keystream generato si avvicina ad essere perfettamente
casuale, tanto più lo stream cipher si avvicina alla perfetta segretezza
In ogni caso, saremo lontani dalla perfetta segretezza,
dato che H(k) « H(m)
O. Tomarchio
Schema generico
O. Tomarchio
Sicurezza nei Sistemi Informativi
Sicurezza nei Sistemi Informativi
42
Synchronous stream cipher
43
O. Tomarchio
Sicurezza nei Sistemi Informativi
44
Self-synchronizing stream cipher
Synchronous stream cipher: proprietà principali
„
„
„
Se parliamo di alfabeti binari, mi e ci possono essere di qualunque dimensione, anche un
solo bit
La concatenazione dei vari zi porta ad un keystream pseudocasuale
Sorgente e destinazione devono sincronizzare il flusso di dati e il processo di
generazione e uso delle zi
„
„
„
„
Dalla mi=h-1(ci,zi) segue che la perdita o l’aggiunta anche di un solo blocco ci porta alla
decifrazione errata di tutti i successivi cj (con j>i)
Nelle implementazioni di questi cifrari bisogna quindi prevedere dei meccanismi per limitare gli
effetti di questi problemi (per esempio, marker, re-inizializzazione del processo, ecc.)
Analogamente, se ci serve lo zi, dobbiamo calcolare tutti gli z precedenti, fino a zi-1
La modifica, per esempio per errori di trasmissione, di un dato blocco ci non porta a
modifiche dei blocchi successivi o precedenti di mj (recuperati dai corrispettivi cj)
„
Non propagazione dell’errore: questo meccanismo si adatta bene alla trasmissione su canali
con un alto tasso d’errore
„
La maggior parte degli stream cipher oggi usati è di tipo binary additive, dove la
funzione h è semplicemente un XOR
O. Tomarchio
Sicurezza nei Sistemi Informativi
45
O. Tomarchio
„
„
„
Come nel caso precedente, se parliamo di alfabeti binari, mi e ci
possono essere di qualunque dimensione, anche un solo bit
„
La concatenazione dei vari zi porta ad un keystream pseudocasuale
È un synchronous stream cipher, creato da Ron Rivest (la
“R” di RSA) nel 1987
„
Initialization Vector (IV): serie di blocchi non segreti necessari ad
inizializzare il processo di generazione degli zi
„
Self-synchronizing: la cancellazione di un ci, l’inserimento di un ci
“spurio”, o gli errori di trasmissione su un certo ci porta ad errori di
ricostruzione degli m, ma tali errori si ripercuotono solo su un limitato
numero di mj che seguono l’mi corrotto
„ La quantità di mj corrotti dipenderà dalla grandezza di t
„
„
Sicurezza nei Sistemi Informativi
47
È rimasto protetto da segreto fino al 1994, quando il codice
sorgente di RC4 fu illegalmente inviato in rete
È ancora, in teora, un trade secret, quindi dovrebbe essere
acquistata una licenza da RSADSI (RSA Data Security
Incorporated) per poter usarlo in applicazioni commerciali
RC4 viene usato per generare, a partire da una chiave K
lunga da 1 a 256 byte (ottetti), un keystream pseudocasuale
„
O. Tomarchio
46
RC4
Self-synchronizing stream cipher: proprietà principali
„
Sicurezza nei Sistemi Informativi
La pseudo-casualità dello stream è stata verificata anche con chiavi
“banali”, come “0”
Di solito è meglio non utilizzare i primi 256 byte, in quanto essi
mostrano la correlazione maggiore tra chiave e keystream
O. Tomarchio
Sicurezza nei Sistemi Informativi
48
Crittografia simmetrica
RC4
„
„
„
„
„
È estremamente semplice da implementare, e porta ad
implementazioni veloci ed efficienti sia in HW che in SW
„ RC4 nelle implementazioni commerciali è circa 10 volte più veloce
di DES
„
„
Chiave singola e segreta
Una chiave per ogni coppia/gruppo di utenti
si è un vettore di 258 byte
zi è lungo 8 bit
h = h-1 = XOR
Sembra possedere tutte le proprietà necessarie per uno stream cipher.
Il keystream generato è:
„ Pseudo-casuale, indipendentemente dalla chiave scelta
„ Non c’è regolarità nei cicli di ripetizione del keystream
„ Non sembrano esserci cicli di ripetizione piccoli
O. Tomarchio
Sicurezza nei Sistemi Informativi
49
O. Tomarchio
Distribuzione delle chiavi
per crittografia simmetrica
„
„
„
distribuzione OOB (Out-Of-Band)
distribuzione tramite algoritmi per scambio chiavi
„
„
O. Tomarchio
Sicurezza nei Sistemi Informativi
50
Lunghezza delle chiavi segrete
Per una comunicazione privata completa tra N
persone occorrono N x (N-1) / 2 chiavi:
„
Sicurezza nei Sistemi Informativi
51
se l’algoritmo di crittografia è stato ben progettato
…
e le chiavi - lunghe Nbit - sono tenute segrete …
allora l’unico attacco possibile è l’attacco esaustivo
che richiede un numero di tentativi pari a 2Nbit
O. Tomarchio
Sicurezza nei Sistemi Informativi
52
Block cipher: quale usare oggi?
„
Criteri
„
„
„
„
„
Sicurezza: robustezza rispetto agli attacchi crittanalitici conosciuti,
spazio delle chiavi, dimensione del blocco
Disponibilità di implementazioni HW/SW, e loro compatibilità
Rapidità di esecuzione, efficienza, compattezza
Flessibilità d’uso (chiave di dimensione variabile, blocco di dimensione
variabile)
Ad oggi, personalmente, non vedo altra scelta se non AES
Velocità indicative di diversi
block cipher, in Mb/s,
implementati in SW in
linguaggio C++, P4 2.1 GHz
© Wei Dai
O. Tomarchio
Sicurezza nei Sistemi Informativi
53