SlideShare a Scribd company logo
1 of 35
Download to read offline
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Grazie per l’attenzione.
Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 32 / 35
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
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
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

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
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
  • 32. Grazie per l’attenzione. Alice Valentini RC4, RC5 e le loro propriet`a di sicurezza 28 Luglio 2017 32 / 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