Stream Ciphers Alfredo De Santis Dipartimento di Informatica ed Applicazioni Università di Salerno ads@dia.unisa.it http://www.dia.unisa.it/professori/ads Marzo 2015
Cifrari simmetrici I cifrari simmetrici possono essere: Ø Cifrari a blocchi: Ø trasformazione di grandi blocchi del testo in chiaro Ø Stream Cipher: Ø trasformazione, dipendente dal tempo, di singoli caratteri del testo in chiaro
Stream cipher Ø Cifra il messaggio un byte (o bit) alla volta Ø Utilizza una sequenza (keystream) pseudo-casuale generata a partire dalla chiave (e dal messaggio) Ø Cifra il messaggio mediante la keystream Testo in chiaro M 0 M 1 M 2 M 3 M i Keystream z 0 z 1 z 2 z 3 z i Testo cifrato C 0 C 1 C 2 C 3 C i Su alfabeto binario: C i = M i XOR z i
Stream cipher K K Generatore di byte pseudocasuali Generatore di byte pseudocasuali Flusso di dati z Flusso di dati cifrati z Flusso di dati 0101011101 1101011110 0101011101 Cifratura Decifratura
Stream cipher Molto più veloci dei cifrari a blocchi Ø Poche linee di codice Ø Operazioni semplici Per complicare la crittoanalisi Ø keystream con lungo periodo (più tardi inizia a ripetersi, meglio è) Ø keystream con le stesse caratteristiche di una sequenza casuale. Ad esempio: Ø Dovrebbe avere lo stesso numero di 0 e di 1 Ø Se vista come sequenza di byte, ciascuno dei 256 valori possibili dovrebbe apparire lo stesso numero di volte
Stream cipher Descriveremo: Ø Cifrario autokey Ø LSFR (Linear Feedback Shift Register) Ø RC4 Ø A5
Cifrario Autokey Testo in chiaro lettere 0, 1,, 25 Keystream z 0 = K, z i = M i-1 per i=1,2, Testo cifrato C i = M i + z i mod 26 Esempio con chiave k=5 testo in chiaro: CIAO (2 8 0 14) keystream: 5 2 8 0 cifrato: 7 10 8 14 à HKIO chiave
Cifrario Autokey Proviamolo insieme, collegandoci al link Ø http://www.dia.unisa.it/professori/masucci/ sicurezza0809/streamciphers/frameiniziale.html
Cifrario Autokey Testo in chiaro lettere 0,1,, 25 Keystream z 0 = K, z i = M i-1 per i=1,2, Testo cifrato C i = M i + z i mod 26 Quanto è sicuro?
Cifrario Autokey known ciphertext attack Testo in chiaro M 0 M 1 M 2 M 3 M i Keystream K M 0 M 1 M 2 M i-1 Testo cifrato C 0 C 1 C 2 C 3 C i C 0 = M 0 + K mod 26 C i = M i + M i-1 mod 26, i=1,2,
Cifrario Autokey known ciphertext attack Testo in chiaro M 0 M 1 M 2 M 3 M i Keystream K M 0 M 1 M 2 M i-1 Testo cifrato C 0 C 1 C 2 C 3 C i C 0 = M 0 + K mod 26 C i = M i + M i-1 mod 26 Solo 26 chiavi!
Cifrario Autokey known ciphertext attack
Linear Feedback Shift Register z = z mod 2 j i = 0,1, 2,... i+m m-1 j=0 c i+ j Ø Ricorrenza lineare di grado m Ø Coefficienti c 0 c 1 c m-1 (costanti binarie predeterminate) Ø Inizializzazione: z 0 = k 0, z m-1 = k m-1 Ø Implementazione hardware efficiente
Linear Feedback Shift Register Fissati m coefficienti c 0 c 1 c m-1 i+m m-1 z = z mod 2 j i = 0,1, 2,... j=0 c i+ j Chiave: i valori di inizializzazione k 0 k 1 k m-1 e i coefficienti c 0 c 1 c m-1 Testo in chiaro M 0 M 1 M 2 M 3 M 4 Keystream z 0 z 1 z 2 z 3 z 4 Testo cifrato Y 0 Y 1 Y 2 Y 3 Y 4 Esempio Y i =M i z i
Linear Feedback Shift Register m=4 z i+4 = z i + z i+1 mod 2 i=0,1,2, bit output 1 0 0 0 Inizializzazione: z 0 = 1 z 1 = 0 z 2 = 0 z 3 = 0 Keystream: 1000100110
Linear Feedback Shift Register z i+4 = z i + z i+1 mod 2 i=0,1,2, 1 1 0 0 0 Inizializzazione: z 0 = 1 z 1 = 0 z 2 = 0 z 3 = 0
Linear Feedback Shift Register z i+4 = z i + z i+1 mod 2 i=0,1,2, z 0 =1 0 0 0 1 Inizializzazione: z 0 = 1, z 1 = 0, z 2 = 0, z 3 = 0
Linear Feedback Shift Register z i+4 = z i + z i+1 mod 2 i=0,1,2, z i+4 z i z i+1 z i+2 z i+3 Inizializzazione: z 0 = 1, z 1 = 0, z 2 = 0, z 3 = 0 Keystream di periodo 15: 100010011010111
Linear Feedback Shift Register http://www.dia.unisa.it/professori/masucci/sicurezza0809/ streamciphers/frameiniziale.html
Linear Feedback Shift Register
LFSR: Crittoanalisi Known Plaintext Attack Ø conosce Ø testo in chiaro: M 0 M n Ø testo cifrato: Y 0 Y n Ø e può calcolare z 0 z n (z i = M i Y i ) Ø Se n 2m e conosce anche m, può computare i coefficienti c 0,c 1,,c m-1 e quindi l intera keystream Tutte le operazioni sono lineari!
LFSR: Crittoanalisi [ z m+1, z m+2,..., z 2m ] = [ c 0, c 1,..., c m-1 ] " $ $ $ $ # $ z 1 z 2... z m z 2 z 3... z m+1............ z m z m+1 z 2m 1 % ' ' ' ' &' m equazioni lineari in m incognite c 0, c m-1
LFSR: Crittoanalisi [ z m+1, z m+2,..., z 2m ] = [ c 0, c 1,..., c m-1 ] " $ $ $ $ # $ z 1 z 2... z m z 2 z 3... z m+1............ z m z m+1 z 2m 1 1 % ' ' ' ' &' La matrice inversa esiste se il determinante è diverso da zero
LFSR: Crittoanalisi
RC4 Ø Ideato da Ron Rivest nel 1987 Ø RC acronimo: Rivest Cipher, Ron s Code Ø Tenuto secreto, comparve in forma anonima nel 1994 Ø mailing-list CypherPunks e newsgroup sci.crypt Ø Allerged RC4 key RC4 Keystream Testo in chiaro + Testo cifrato
RC4 Ø Caratteristiche: Ø Chiave: lunghezza variabile (da 1 a 256 byte) Ø Semplice da implementare e da analizzare Ø Genera una keystream con periodo maggiore di 10 100 Ø Usa operazioni orientate ai byte Ø Implementato in numerosi prodotti Ø SSL/TLS per la comunicazione sicura sul Web Ø IEEE 802.11 wireless LAN: WEP traffico cifrato
RC4: la chiave Ø K[0] K[h-1] vettore della chiave, di h byte Ø 1 h 256 K[0] K[1] K[h-1]
RC4 Ø Usa un vettore di byte S contenente una permutazione degli interi da 0 a 255 Ø S[0] S[255] Ø Inizializzazione S[i]=i, i=0,,255 S[0] S[255] 0 1 255 for i=0 to 255 do S[i]=i
RC4: schedulazione chiave Ø K è usata per aggiornare il vettore S Ø Produce una permutazione, scambiando ciascun S[i] con un S[j], dipendente da S[i] e K[i mod h] j=0 for i=0 to 255 do j=(j+s[i]+k[i mod h]) mod 256; Swap(S[i],S[j]); S[0] S[i] S[j] S[255]
RC4: la keystream Ø Il vettore S è usato per generare la keystream S[0] S[1] S[t] S[i] S[j] S[255] + K=S[t] t=s[i]+s[j] mod 256
RC4: la keystream Ø Il vettore S è usato per generare la keystream i,j = 0 while (true) i = i+1 mod 256; j = (j+s[i]) mod 256; k=s[t] Swap(S[i],S[j]); t = (S[i]+S[j]) mod 256; k = S[t] S[0] S[t] S[255] Ø Effettua lo XOR del byte k con il prossimo byte del testo in chiaro
RC4
RC4
RC4
Wired Equivalent Privacy (WEP/WEP2) Ø IEEE 802.11 wireless LAN Ø Protocollo per garantire confidenzialità Ø Usa una chiave key condivisa tra utenti e access point lunga 40/104 bit (WEP-40, WEP-104) key IV, P RC4(IV,key) key Ø WEP cifra un TCP/IP packet P con RC4 Ø IV Initialization Vector di 24 bit Ø Chiave K di RC4: 8/16 byte K[0] K[7] K[0] K[15]
Wired Equivalent Privacy (WEP/WEP2) Maggiori dettagli: IV original unencrypted packet checksum key RC4 IV encrypted packet
WEP: attacchi Ø Fluhrer, Mantin, Shamir (2001) Ø Problema nella generazione della chiave in input a RC4 Ø Il problema non dipende da RC4 Ø Proposte modifiche a WEP per rendere vano l attacco Ø Tews, Weinmann, Pyshkin, Breaking 104-bit WEP in under a minute (2007) Ø 40.000 packet, probabilità successo 50% Ø 85.000 packet, probabilità successo 95%
WEP: implementazioni attacchi Aircrack-ng Ø network software suite Ø detector Ø packet sniffer Ø WEP e WPA cracker (implementazione attacco PTW) Ø tool di analisi Ø incluso in BackTrack (rinominata backtrack-ng)
Altri usi di RC4 Ø Bitorrent Ø Scartato il primo kilobyte di output per prevenire l attacco di Fluhrer, Mantin and Shamir Ø Skype Ø Microsoft Point-to-Point Encryption Ø Kerberos Ø PDF Ø Secure Shell (SSH) Ø sessione remota cifrata tramite interfaccia a riga di comando con un altro host di una rete Ø Microsoft Remote Desktop Protocol Ø Connessione remota ad altro computer in modo grafico
skype
Microsoft
5 milioni di siti analizzati Uso di RC4
A5 Standard 2G (Ancora il più diffuso, 3 miliardi di persone in 200 paesi) Stream Cipher usato nel GSM (Group Spécial Mobile) Base station
A5 Stream Cipher usato nel GSM (Group Spécial Mobile) Base station Ø A5/1 sviluppato nel 1987 Ø Prima per l Europa poi anche negli USA Ø A5/2 Versione più debole nel 1989 Ø Paesi asiatici pericolosi (Iraq, ) Ø Algoritmo segreto Ø Scoperto nel 1999 da Marc Briceno con reverse-engineering
A5 Stream Cipher usato nel GSM (Group Special Mobile) Base station Ø Chiave memorizzata nella memoria del modulo SIM (Subscriber Identity Module) Ø 3 Linear Feedback Shift Register di grado 19, 22, 23
Configurazione del sistema GSM OSS Network service Managment Centre Operation and Maintenance Centre NS Base Transceiver Station Base Station Controller Home Location Register Mobile service Switching Centre Authentication Centre Equipment Identity Register Visitor Location Register Mobile Station BSS PSTN ISDN CSPDN PSPDN PLMN
Configurazione del sistema GSM MS: Sistema radio dotato di SIM OSS Network service Managment Centre Operation and Maintenance Centre NS Base Transceiver Station Base Station Controller Home Location Register Mobile service Switching Centre Authentication Centre Equipment Identity Register Visitor Location Register Mobile Station BSS PSTN ISDN CSPDN PSPDN PLMN
Configurazione del sistema GSM BSS: Sottosistema OSS radio comprendente la stazione base Controlla la trasmissione radio con la MS Network service Managment Centre Operation and Maintenance Centre NS Base Transceiver Station Base Station Controller Home Location Register Mobile service Switching Centre Authentication Centre Equipment Identity Register Visitor Location Register Mobile Station BSS PSTN ISDN CSPDN PSPDN PLMN
Configurazione del sistema GSM BTS: stazione di base con cui la MS comunica OSS Network service Managment Centre Operation and Maintenance Centre NS Base Transceiver Station Base Station Controller Home Location Register Mobile service Switching Centre Authentication Centre Equipment Identity Register Visitor Location Register Mobile Station BSS PSTN ISDN CSPDN PSPDN PLMN
Configurazione del sistema GSM OSS BSC: nodo comune tra le varie BTS Network service Managment Centre Operation and Maintenance Centre NS Base Transceiver Station Base Station Controller Home Location Register Mobile service Switching Centre Authentication Centre Equipment Identity Register Visitor Location Register Mobile Station BSS PSTN ISDN CSPDN PSPDN PLMN
Configurazione del sistema GSM OSS (NS): Sottosistema di rete Realizza la connessione tra l utente della rete mobile e gli utenti delle altre reti Base Transceiver Station Network service Managment Centre Operation and Maintenance Centre Base Station Controller Home Location Register Mobile service Switching Centre NS Authentication Centre Equipment Identity Register Visitor Location Register Mobile Station BSS PSTN ISDN CSPDN PSPDN PLMN
Configurazione del sistema GSM OSS: Sottosistema di esercizio e manutenzione Sovraintende al corretto funzionamento della rete OSS Base Transceiver Station Network service Managment Centre Operation and Maintenance Centre Base Station Controller Home Location Register Mobile service Switching Centre NS Authentication Centre Equipment Identity Register Visitor Location Register Mobile Station BSS PSTN ISDN CSPDN PSPDN PLMN
Configurazione del sistema GSM OSS NMC: coordina e gestisce tutti gli OMC presenti nella rete OMC: responsabile della gestione regionale della rete Base Transceiver Station Network service Managment Centre Operation and Maintenance Centre Base Station Controller Home Location Register Mobile service Switching Centre NS Authentication Centre Equipment Identity Register Visitor Location Register Mobile Station BSS PSTN ISDN CSPDN PSPDN PLMN
Configurazione del sistema GSM OSS MSC: nodo che controlla tutte le BSC in una zona e fornisce la connessione con le reti fisse VLR: database temporaneo contenente info sulle MS in transito nella zona Base Transceiver Station Network service Managment Centre Operation and Maintenance Centre Base Station Controller Home Location Register Mobile service Switching Centre NS Authentication Centre Equipment Identity Register Visitor Location Register Mobile Station BSS PSTN ISDN CSPDN PSPDN PLMN
Configurazione del sistema GSM HLR: database permanente dei dati di abbonamento degli utenti OSS AuC: unità che fornisce i dati di autenticazione (IMSI, ki, TMSI, LAI) EIR: database degli IMEI che identificano le MS Base Transceiver Station Network service Managment Centre Operation and Maintenance Centre Base Station Controller Home Location Register Mobile service Switching Centre NS Authentication Centre Equipment Identity Register Visitor Location Register Mobile Station BSS PSTN ISDN CSPDN PSPDN PLMN
Configurazione del sistema GSM PIN IMSI (International mobile subscriber identification) Chiave k i di 128 bit Network service Managment Centre Operation and Maintenance Centre SIM Base Transceiver Station Base Station Controller Home Location Register Mobile service Switching Centre Authentication Centre Equipment Identity Register Visitor Location Register Mobile Station PSTN ISDN CSPDN PSPDN PLMN
Autenticazione utente Mobile Station Tratta radio Rete GSM TMSI (oppure IMSI) richiesta di accesso 128 bit 128 bit k i A3 32 bit rand SRES MS k i A3 SRES rete Genera rand? SRES MS = SRES rete SI accesso consentito NO 32 bit accesso negato
Cifratura Mobile Station Tratta radio Rete GSM k i 128 bit 128 bit TMSI (oppure IMSI) richiesta di accesso rand k i Genera rand A8 A8 64 bit k c k c info A5 info cifrate A5 info
A5 Stream Cipher usato per cifrare la comunicazione via etere (sotto forma di frame di 114 bit) Ø Ogni frame identificato da 22 bit Ø Frame inviati ogni 4.6 ms Ø Una keystream per ciascun frame Ø 3 LFSR con polinomi delle connessioni di grado 19, 22, 23 (periodo massimale) Ø x 19 + x 5 + x 2 + x + 1 Ø x 22 + x + 1 Ø x 23 + x 15 + x 2 + x + 1
A5 Ø Ad ogni passo ciascun registro viene shiftato se il suo bit centrale concorda con la maggioranza dei bit centrali dei tre registri Ø 0,1,1, à shift registri 2 e 3 Ø 0,1,0 à shift registri 1 e 3 Ø Almeno due registri shiftati ad ogni round
A5
A5 Ø LSFR inizializzati con una combinazione non lineare di k c e i 22 bit del numero di frame
A5 Ø XOR bit a bit tra i valori dei registri e i 22 bit del numero di frame Ø Scarto dei primi 100 bit della keystream Ø Cifratura del frame da MS a BTS con 114 bit della keystream Ø Scarto altri 100 bit della keystream Ø Decifratura del frame da BTS a MS con 114 bit della keystream Ø In totale, utilizzati 228 bit della keystream
COMP128 COMP128 invece di due algoritmi A3 e A8 k i 128 bit 32 bit COMP128 rand SRES MS 32 bit 64 bit k c Chiave k i di 64 bit di cui gli ultimi 10 tutti 0
Attacco chosen-challange a COMP128 SIM rand SRES MS Ecco k i Ø Occorrono 2 17,5 challange (Berkeley, aprile 1998) Ø Se 6,25 query al secondo tempo attacco: circa 8 ore
Attacchi ad A5 Attacco forza bruta: complessità 2 64 In genere la chiave k c ha solo 54 bit Ø gli ultimi 10 sono posti a ''0'' Ø Debolezza introdotta per le intercettazioni? Ø Attacco forza bruta: complessità 2 54
Attacchi ad A5 Attacco forza bruta: complessità 2 64 In genere la chiave k c ha solo 54 bit Ø gli ultimi 10 sono posti a ''0'' Ø Debolezza introdotta per le intercettazioni? Ø Attacco forza bruta: complessità 2 54 Tradeoff tempo-memoria Ø Biryukov, Shamir, Wagner (2000) Ø Calcolo chiave in 1 sec con 2 min testo in chiaro Ø Preprocessing 2 48 con 300GB di dati
COPACOBANA Ø Cost-Optimized Parallel COde breaker Ø Costruito da team Università di Bochum e Kiel, Germania Ø Utilizzo in parallelo di dispositivi Field Programmable Gate Array (FPGA) riprogrammabili e reperibili normalmente in commercio Ø Possibile riprogrammarne la logica, quindi possibile utilizzare l'apparecchiatura per altri cifrari Ø Costo contenuto Ø 2008: 120 FPGA di tipo XILINX Spartan3-1000 Ø 10.000, tempo medio per rompere A5/1: 7 ore se si conoscono 64 bit della keystream (senza precomputazioni)
COPACOBANA Ø Cost-Optimized Parallel COde breaker Ø Costruito da team Università di Bochum e Kiel, Germania Ø Utilizzo in parallelo di dispositivi Field Programmable Gate Array (FPGA) riprogrammabili e reperibili normalmente in commercio Ø Possibile riprogrammarne la logica, quindi possibile utilizzare l'apparecchiatura per altri cifrari Ø Costo contenuto Ø 2008: 120 FPGA di tipo XILINX Spartan3-1000 Ø 10.000, tempo medio per rompere A5/1: 7 ore se si conoscono 64 bit della keystream (senza precomputazioni)
COPACOBANA Ø Cost-Optimized Parallel COde breaker Ø Costruito da team Università di Bochum e Kiel, Germania Ø Utilizzo in parallelo di dispositivi Field Programmable Gate Array (FPGA) riprogrammabili e reperibili normalmente in commercio Ø Possibile riprogrammarne la logica, quindi possibile utilizzare l'apparecchiatura per altri cifrari Ø Costo contenuto Ø 2008: 120 FPGA di tipo XILINX Spartan3-1000 Ø 10.000, tempo medio per rompere A5/1: 7 ore se si conoscono 64 bit della keystream (senza precomputazioni)
Edward Snowden (2013) NSA can process encrypted A5/1 GSM
Bibliografia Ø Cryptography and Network Security by W. Stallings, 2010 Ø cap. 6 (RC4) Ø Cryptography: Theory and Practice by D. Stinson (1995) Ø cap. 1 (autokey, LFSR) Ø Tesina di Sicurezza su reti Ø Crittografia classica a.a. 1999-2000
Domande?