Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RC4 e RC5
1. RC4, RC5 e le loro propriet`a di sicurezza
Alice Valentini
28 Luglio 2017
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 1 / 35
2. Introduzione
RC4 (Rivest Cipher 4) e RC5 (Rivest Cipher 5) sono due algoritmi di
cifratura progettati da Ronald Rivest.
Entrambi sono famosi per la loro semplicit`a.
Mentre RC4 `e stato impiegato in molte applicazioni, RC5 `e stato interesse
di studio grazie ad alcune novit`a introdotte nel design e perch`e il suo
successore, RC6, `e stato tra i candidati dell’Advanced Encryption Standard
(AES).
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 2 / 35
3. RC4
RC4 `e uno degli algoritmi di cifratura a flusso a chiave simmetrica pi`u
utilizzati.
Progettato da Ronald Rivest della RSA Security nel 1987 ma `e stato
tenuto segreto fino al 1994.
`E impiegato in molti protocolli tra i quali WEP, WPA, SSL e TLS.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 3 / 35
4. RC4
RC4 `e detto cifrario a flusso poich`e genera un flusso di bit pseudo-casuali
(keystream).
Il keystream `e poi combinato in XOR con il testo in chiaro per ottenere il
testo cifrato.
E detto invece a chiave simmetrica perch`e la stessa chiave `e utilizzata sia
per criptare che per decrittare il messaggio.
Al contrario della maggior parte dei cifrari a flusso, RC4 non fa uso di
LFSR.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 4 / 35
5. L’algoritmo
RC4 `e composto da due algoritmi:
RC4-KSA (Key Scheduling Algorithm)
RC4-PRGA (Pseudo-Random Generation Algorithm)
Viene utilizzata una S-Box, chiamata anche array di stato, S e due indici
da 8 bit i e j.
L’insieme (i, j, S) forma lo stato interno dell’algoritmo.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 5 / 35
6. L’algoritmo KSA
Inizializza S, di dimensione 256 byte, tramite la chiave di cifratura fornita
dall’utente.
La dimensione della chiave pu`o essere compresa tra 1 e 256 byte ma
generalmente `e lunga dai 5 ai 15 byte.
Inizialmente S `e inizializzato ad una permutazione identit`a.
Successivamente si percorre S scambiando l’elemento corrente (i-esimo)
con un altro determinato usando la chiave, ripetendola se pi`u corta di S.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 6 / 35
7. L’algoritmo KSA
l rappresenta la lunghezza della chiave, mentre key, la chiave.
for i = 0 to 255 do
S[i] = i;
end for
j = 0;
for i = 0 to 255 do
j = (j + S[i]+ key[i mod l]) mod 256;
swap(S[i],S[j]);
end for
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 7 / 35
8. L’algoritmo PRGA
RC4-PRGA produce una sequenza pseudocasuale di byte utilizzando la
permutazione generata da KSA.
La sequenza verr`a poi messa in XOR con il testo in chiaro.
Ogni iterazione produce un elemento in output.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 8 / 35
9. L’algoritmo PRGA
input rappresenta il testo in chiaro e output il testo cifrato.
i = 0;
j = 0;
for k = 0 to len(input) do
i = (i + 1) mod 256;
j = (j + S[i]) mod 256;
swap (S[i], S[j]);
output[k] = S[(S[i] + S[j]) mod 256] ⊕ input[k];
end for
Ogni elemento di S `e scambiato con un altro elemento almeno una volta
ogni 256 iterazioni.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 9 / 35
10. Analisi
Dopo essere stato reso pubblico l’algoritmo `e stato soggetto a numerosi
test.
L’analisi ha il fine di identificare comportamenti non-casuali nel
procedimento.
Si `e notato che la distribuzione dei primi byte dell’output non `e uniforme e
sembrano avere un bias.
L’algoritmo `e stato aggiornato facendo scartare alla procedura i primi n bit
generati nel keystream, questa versione `e chiamata RC4-drop[n].
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 10 / 35
11. Analisi
Nel protocollo WEP RC4 `e soggetto ad attacchi di tipo related key attack.
In questo tipo di attacco l’attaccante pu`o osservare le operazioni di
cifratura con molte chiavi diverse inizialmente sconosciute sapendo che
esiste una relazione matematica tra di esse.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 11 / 35
12. Analisi
WEP include in ogni pacchetto del messaggio un vettore di inizializzazione
(VI) di 24 bit in chiaro.
La chiave RC4 di quel pacchetto `e il VI concatenato alla chiave WEP.
Trovando due pacchetti con VI uguale `e possibile ricavare lo XOR dei
messaggi contenuti.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 12 / 35
13. Analisi
WPA utilizza sempre RC4 come algoritmo “nucleo”, ma usa 3 livelli di
chiave: primaria, operativa e RC4.
La chiave primaria `e condivisa con ogni client ed access point ed `e
utilizzata nel protocollo TKIP che cambia le chiavi operative molto
frequentemente combinate con un VI pi`u lungo.
Il successore di WPA, WPA2, utilizza il cifrario a blocchi AES al posto di
RC4.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 13 / 35
14. Analisi
Altri studi hanno invece dimostrato che `e possibile ricostruire la chiave
partendo dagli stati interni dell’algoritmo.
L’uso di RC4 nel protocollo TLS `e proibito da RFC7465 a partire da
febbraio 2015.
L’anno scorso il suo supporto `e stato rimosso anche dai browser Chrome,
Internet Explorer (o Edge) e Mozilla Firefox.
Al giorno d’oggi gli algoritmi di cifratura a blocco sono preferiti agli
algoritmi di cifratura a flusso poich`e considerati pi`u sicuri.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 14 / 35
15. RC5
RC5 `e un algoritmo di cifratura a blocchi a chiave simmetrica
progettato da Ronald Rivest nel 1994.
`E famoso per la sua semplicit`a, e perch`e la sua evoluzione, RC6, `e stato
fra i candidati per AES.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 15 / 35
16. RC5
`E definito a blocchi poich`e opera su un gruppo di bit di lunghezza finita
organizzati in un blocco.
`E definito anche word-oriented poich`e le operazioni sono eseguite su
blocchi di dimensioni corrispondenti alla word della macchina.
Questa caratteristica gli permette di performare pi`u velocemente rispetto
agli algoritmi a flusso.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 16 / 35
17. Parametrizzazione
RC5 `e un algoritmo parametrizzato.
I parametri base dell’elaborazione sono a discrezione dell’utente.
I parametri sono:
w: dimensione delle word in bit.
r: numero di round.
b: numero di byte nella chiave segreta K.
RC5 pu`o anche essere indicato con la notazione RC5-w/r/b.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 17 / 35
18. Parametrizzazione
Si `e scelto di parametrizzare l’algoritmo con l’idea di renderlo flessibile, ad
esempio, pu`o essere adattato per processori che operano con word di
lunghezza diverse.
Questa caratteristica lo rende versatile e utilizzabile per svariate
applicazioni.
Inoltre, esiste la possibilit`a di aggiornare i parametri in caso essi risultino
non pi`u sicuri, al contrario ad esempio di DES.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 18 / 35
19. Notazioni e primitive
L’algoritmo utilizza solo tre primitive computazionali (e le loro inverse)
elementari utilizzate dalla maggioranza dei processori.
Le primitive sono:
Addizione di word modulo 2w , +.
Or esclusivo eseguito bit a bit, ⊕.
Rotazione ciclica della parola x di y bit a sinistra, x y.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 19 / 35
20. L’algoritmo
Il testo in chiaro in input `e formato da due word A e B di lunghezza w bit.
Viene utilizzato inoltre, un array chiamato “tabella della chiave espansa”,
S[0...t − 1] di lunghezza t = 2(r + 1) word.
Il numero delle rotazioni `e variabile in quanto dipendenti dal messaggio in
chiaro (plaintext-dependent) e non sono quindi predeterminate.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 20 / 35
21. L’algoritmo
L’algoritmo `e composto da tre procedure:
algoritmo di espansione della chiave
algoritmo di cifratura
algoritmo di decifratura
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 21 / 35
22. Espansione della chiave
Espande la chiave segreta K per riempire l’array S di dimensione
t = 2(r + 1) word.
L’algoritmo usa due “costanti magiche” e consiste in tre parti:
1 Conversione della chiave segreta da byte in word
2 Creazione dell’array S
3 Inserimento della chiave segreta
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 22 / 35
23. Espansione della chiave
Le costanti magiche sono definite per w arbitrario come:
Pw = Odd((e − 2)2w
) (1)
Qw = Odd((φ − 1)2w
) (2)
dove:
e = 2.718281828459... (base del logaritmo naturale)
φ = 1.618033988749... (sezione aurea)
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 23 / 35
24. Espansione della chiave
1- Conversione della chiave segreta da byte in word:
for i = b − 1 downto 0 do
L[i/u] = (L[i/u] 8) + K[i];
end for
Si copia la chiave segreta K[0...b − 1] in un array L[0...c − 1].
L `e di dimensione c = b/u word.
u = w/8 `e il numero di byte per word.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 24 / 35
25. Espansione della chiave
2- Creazione dell’array S:
L’array S `e inizializzato usando una progressione aritmetica modulo 2w
determinata dalle costanti magiche.
S[0] = Pw ;
for i = 1 to t − 1 do
S[i] = S[i − 1] + Qw ;
end for
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 25 / 35
26. Espansione della chiave
3- Inserimento della chiave segreta:
L’ultimo step prevede di mescolare la chiave segreta usando gli array S e L.
i = j = 0;
A = B = 0;
loop3*max(t, c) times:
A = S[i] = (S[i] + A + B) 3;
B = L[j] = (L[j] + A + B) (A + B);
i = (i + 1) mod(t);
j = (j + 1) mod(c);
end loop
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 26 / 35
27. Algoritmo di cifratura
A = A + S[0];
B = B + S[1];
for i = 1 to r do
A = ((A ⊕ B) B) + S[2 ∗ i];
B = ((B ⊕ A) A) + S[2 ∗ i + 1];
end for
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 27 / 35
28. Algoritmo di decifratura
for i = 1 downto r do
B = ((B − S[2 ∗ i + 1]) A) ⊕ A;
A = ((A − S[2 ∗ i]) B) ⊕ B;
end for
B = B − S[1];
A = A − S[0];
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 28 / 35
29. Analisi
La velocit`a e la semplicit`a dell’algoritmo rende facile analizzarlo ed
eseguire test per verificare la sicurezza fornita.
RC5 non `e sicuro per ogni parametro scelto. La scelta dei parametri sta
nell’utente.
Le rotazioni sono dipendenti dai dati, questo complica gli attacchi di
crittanalisi differenziale e lineare.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 29 / 35
30. Analisi
RSA Security nel 1997 ha lanciato una sfida per verificare quanto ci si
impiega a crackare un messaggio cifrato con RC5.
Per decifrare un messaggio cifrato con RC5-32/12/8 ci sono voluti 5 anni.
L’esito dimostra che RC5 non `e adatto alla protezione di dati a lungo
termine.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 30 / 35
31. Il successore RC6
RC6 `e un adattamento di RC5 in grado di soddisfare i requisiti richiesti
dalla competizione Advanced Encryption Standard (AES).
L’algoritmo `e molto simile a RC5 in quanto fa uso di rotazioni
data-dependent, addizioni modulari e XOR e pu`o essere visto come un
intreccio di due algoritmi di cifratura di RC5 eseguiti parallelamente.
RC6 usa una moltiplicazione extra non presente in RC5 per rendere le
rotazioni dipendenti da ogni bit in una word e non solo dai meno
significativi.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 31 / 35
33. Bibliografia I
[1] Scott Fluhrer, Itsik Mantin, Adi Shamir, et al.
Weaknesses in the key scheduling algorithm of rc4.
In Selected areas in cryptography, volume 2259, pages 1–24. Springer,
2001.
[2] Ronald L Rivest.
The rc5 encryption algorithm.
In International Workshop on Fast Software Encryption, pages 86–96.
Springer, 1994.
[3] Burton S Kaliski and Yiqun Lisa Yin.
On the security of the rc5 encryption algorithm.
Technical report, RSA Laboratories Technical Report TR-602. To
appear, 1998.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 33 / 35
34. Bibliografia II
[4] Ordine dei byte.
https://it.wikipedia.org/wiki/Ordine_dei_byte.
Visitato: 2017-07-12.
[5] Rc4.
https://en.wikipedia.org/wiki/RC4.
Visitato: 2017-07-17.
[6] Rc5.
https://en.wikipedia.org/wiki/RC5.
Visitato: 2017-07-17.
[7] Jonathan Katz and Yehuda Lindell.
Introduction to modern cryptography.
CRC press, 2014.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 34 / 35
35. Bibliografia III
[8] Project rc5.
https://www.distributed.net/RC5.
Visitato: 2017-07-17.
[9] Alex Biryukov and Eyal Kushilevitz.
Improved cryptanalysis of rc5.
In International Conference on the Theory and Applications of
Cryptographic Techniques, pages 85–99. Springer, 1998.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 35 / 35