Upload
lamkhanh
View
227
Download
3
Embed Size (px)
Citation preview
La Valutazione degli Algoritmi
Crittografici
Ing. Vincenzo Della Corte
Contenuti
• Gli Algoritmi e la loro importanza per la
Sicurezza di un Sistema Crittografico
• Crittanalisi di Valutazione
La Sicurezza di un Sistema
Crittografico
• Algoritmi crittografici
• Modi d’uso
• Implementazione
• Componenti di Protezione
• Interfaccia Utilizzatore
• Procedure d’uso
ALGORITMI
• Il termine ALGORITMO deriva dal nome del matematico musulmano uzbeko Abū Jaʿfar Muhammad ibn Mūsā Khwārizmī che nacque a Corasmia o Baghdad nel 780 circa e visse fino all'anno 850 circa. “Al Khwarizmi” per primo introdusse nel mondo musulmano concetti acquisiti dalla cultura indiana nel periodo dell’espansione islamica nella penisola indiana.
ALGORITMI
• Un Algoritmo può essere definito , informalmente,come un procedimento che risolve un determinato problema attraverso un numero finito di passi. Un problema risolvibile mediante un algoritmo si dice computabile. Al momento non esiste una definizione formale di algoritmo come invece è dato per strutture computazionali come la “macchina di Alan TURING”
ALGORITMI
Proprietà fondamentali degli algoritmi • Dalla precedente definizione informale si evincono alcune proprietà
caratteristiche degli algoritmi:
• i passi costituenti devono essere "elementari", ovvero non ulteriormente scomponibili (atomicità);
• i passi costituenti devono essere interpretabili in modo univocodall'esecutore, sia esso umano o artificiale (non ambiguità);
• l'algoritmo deve essere composto da un numero finito di passi e richiedere una quantità finita di dati in ingresso (finitezza)
• l'esecuzione deve avere termine dopo un tempo finito (terminazione);
• l'esecuzione deve portare ad un risultato univoco (effettività);
• ad ogni un passo, il successivo deve essere uno ed uno solo, bendeterminato (determinismo). (fanno eccezione gli algoritmi randomizzatiche non interessano questa breve presentazione))
CATOLOGAZIONE DEGLI ALGORITMI
Gli algoritmi vengono raggruppati e catalogati a seconda della loro funzione o delle tecniche utilizzate per
realizzarli, tuttavia una catalogazione rigorosa e completa è ormai diventata impossibile
Essenzialmente è possibile catalogarli come:• Algoritmi di ordinamento
•Algoritmi di ricerca•Algoritmi di compressione
•Genetici•Intelligence
•Ricorsivi
•Algoritmi combinatori•Codice automodificante
•Conversione e codifica
Algoritmi di codifica o crittografici
• Per le finalità di questa presentazione ci
soffermeremo in particolare sugli algoritmi di
codifica a blocchi. Pertanto è necessario
illustrarne i possibili tipi o modalità di
funzionamento. Le modalità di funzionamento
di un algoritmo a blocchi sono definibili come
le modalità di concatenazione del flusso dei
dati ( in blocchi ) sui quali viene applicato.
Modi d’uso degli algoritmi
• Si applicano ai block cipher
• I modi d’uso con concatenazione proteggono
da alcuni attacchi
• La concatenazione può offrire servizi
aggiuntivi come l’autenticazione
• Non devono impedire il parallelismo nelle
cifranti ad alta velocità
Modalità d’uso degli algoritmi a
blocchi
• Tutti gli algoritmi a blocchi utilizzano per
praticità e per velocizzare le operazioni delle
modalità di funzionamento che consentono di
cifrare quantità di dati molto maggiori delle
dimensioni del singolo blocco
(generalmente 64,128 o 256 bit)
Modalità d’uso degli algoritmi a
blocchi
• Le modalità di funzionamento degli algoritmi simmetrici di cifratura o codifica a blocchi) sono state definite inizialmente dal NIST (National Institute of Standards and Technology) degli USA nel documento FIPS 81 (Federal Information Processing Standard) intitolato "DES modes of operation" affinché l'algoritmo di cifratura DES potesse essere applicato ad una varietà di situazioni differenti.Queste modalità cercano dunque di considerare tutte le possibili applicazioni della crittografia per cui può essere utilizzato l'algoritmoDES; con la successiva comparsa di nuovi requisiti, il NIST ha espanso l'elenco delle modalità di funzionamento a cinque, nel documento Special Publication 800-38A.Tali modalità possono essere utilizzate con qualsiasi algoritmo di cifratura simmetrica a blocchi, tra cui Triple DES e più recentemente l’AES.
Modalità d’uso degli algoritmi a
blocchi
• ELECTRONIC CODEBOOK (ECB)
• CIPHER BLOCK CHAINING (CBC)
• CIPHER FEEDBACK (CFB)
• OUTPUT FEEDBACK (OFB)
• COUNTER (CTR)
Modalità d’uso degli algoritmi a
blocchi: Electronic Codebook
• La modalità ECB è la più semplice. Il testo in chiaro viene gestito 64 bit per volta; ognuno dei blocchi di 64 bit viene cifrato con la stessa chiave. Per messaggi più lunghi di 64 bit, si procede suddividendo il messaggio in blocchi di 64 bit, utilizzando, se necessario, bit di riempimento nell'ultimo blocco. Per una data chiave, esiste un unico testo cifrato per ogni blocco di testo in chiaro di 64 bit; in altre parole, se nel messaggio compare più volte lo stesso blocco di 64 bit di testo in chiaro, verrà prodotto sempre lo stesso testo cifrato. Per questo motivo, il metodo ECB è ideale per limitati volumi di dati (ad esempio, la trasmissione di una chiave di cifratura), poichéper messaggi più lunghi potrebbe essere insicuro: se si trattasse di dover cifrare un messaggio molto strutturato, l'analisi crittografica potrebbe sfruttarne le regolarità.
Modalità d’uso degli algoritmi a
blocchi: Cipher Block Chaining
• In sintesi ogni blocco di testo cifrato viene
messo in X-OR con il blocco precedente in
chiaro.
• Quando non c’è ancora il testo in chiaro
precedente (1°blocco si usa il vettore di
inizializzazione IV)
Modalità d’uso degli algoritmi a
blocchi: Cipher Block Chaining• Per superare i limiti di sicurezza di ECB, è necessario l'utilizzo di una
tecnica in cui lo stesso blocco di testo in chiaro, se ripetuto, produce blocchi di testo cifrato differenti. Questo è ciò che accade con la modalità CBC, in cui l'input dell'algoritmo di crittografia è il risultato dello XOR tra il blocco di testo in chiaro corrente e il blocco di testo cifrato precedente; per ciascun blocco viene utilizzata la stessa chiave.In fase di decifratura, ciascun blocco di testo cifrato passa attraverso l'algoritmo di decrittografia; il risultato subisce uno XOR con il blocco di testo cifrato precedente, per produrre il blocco di testo in chiaro. Per produrre il primo blocco di testo cifrato, lo XOR viene effettuato tra un vettore di inizializzazione detto IV e il primo blocco di testo in chiaro. In decifratura, l‘ IV subisce uno XOR con l'output dell'algoritmo di decifratura in modo da ottenere nuovamente il primo blocco di testo in chiaro.Il vettore di inizializzazione IV deve essere dunque noto non solo al mittente ma anche al destinatario, che tipicamente lo riceve assieme alla chiave; entrambi i valori vengono crittati in modalità ECB.In conclusione, questa modalità è la più appropriata per cifrare messaggi più lunghi di 64 bit.
• Inoltre, la modalità CBC può essere utilizzata anche per l'autenticazione.
Modalità d’uso degli algoritmi a
blocchi: Cipher Feedback
• La modalità CFB è stata ideata per convertire idealmente una cifratura a blocchi in una cifratura a flusso. La cifratura a flussi non necessita di eseguire riempimenti e può inoltre operare in tempo reale.Nell'operazione di cifratura, l'input della funzione di crittografia è un registro a scorrimento a 64 bit che inizialmente viene impostato con un vettore di inizializzazione IV). Gli s bit più significativi (ovvero quelli piùa sinistra) dell'output subiscono uno XOR con il primo segmento di testo in chiaro P1 per produrre la prima unità di testo cifrato C1. Il contenuto del registro di scorrimento viene fatto scorrere a sinistra di sbit, e negli s bit meno significativi (quelli più a destra) del registro viene inserito C1. Il processo viene reiterato fino all'esaurimento di tutte le unità di testo in chiaro.All'atto della decifratura, si utilizza il medesimo schema, tranne per il fatto che le unità di testo cifrato ricevute sono sottoposte ad uno XOR con l'output della funzione di crittografia. Non si utilizza dunque la funzione di decrittografia
Modalità d’uso degli algoritmi a
blocchi: Output Feedback
• La modalità OFB è molto simile alla CFB. Il
vantaggio della OFB è che non propaga gli
errori di trasmissione dei bit.
• Il suo svantaggio è che è più vulnerabile a un
attacco a modifica del flusso dei messaggi.
Modalità d’uso degli algoritmi a
blocchi: Counter
• Questa quinta modalità è stata introdotta successivamente alle altre quattro, per poter essere applicata a ATM (AsynchronousTransfer Mode) e a IPsec (IP security).In questa modalità viene utilizzato un contatore corrispondente alle dimensioni del blocco di testo in chiaro. Il requisito essenziale è che il suo valore sia differente per ciascun blocco da cifrare; in genere viene inizializzato con un determinato valore e poi incrementato di un'unità per ogni blocco successivo (modulo 2b dove b corrisponde alle dimensioni del blocco).Per la cifratura, il contatore viene crittografato e poi si applica uno XOR col blocco di testo in chiaro per produrre il blocco di testo cifrato.Per la decifratura si utilizza la stessa sequenza di valori del contatore ai quali si applica lo XOR con i blocchi di testo cifrato.
Modalità d’uso degli algoritmi
a blocchi: Riepilogo
APPLICAZIONI TIPICHE
• ECB:Trasmissione sicura di singoli valori contenuti;
• CBC:Trasmissione sicura di blocchi,autenticazione;
• CFB:Trasmissione sicura di flussi e autenticazione;
• OFB:Trasmissione di flussi dati su canali rumorosi;
• CTR:Trasmissione di blocchi per alte velocità.
Nuove Modalità:XTS mode
• Recentemente il NIST ha pubblicato nel documento SP 800-38E una nuova modalità per l’AES : il modo XTS per la applicazioni di confidenzialità nei dispositivi di Mass Storage.
• XTS fa uso di due diverse chiavi, generalmente generate dividendo la chiave di blocco fornita a metà, senza aggiungere così nessuna sicurezza ulteriore , ma complicando il processo. A causa di ciò gli utilizzatori di AES 256 e/o AES 128 devono scegliere chiavi lunghe rispettivamente 512 bit e 256 bit .
IL problema della confidenzialità
dei dati cifrati a riposo
• La cifratura dei dati su memorie di massa deve garantirne la confidenzialità
• La memorizzazione ed il recupero dei dati deve essere veloce;
• Il metodo di cifratura non deve sprecare memoria: quindi la quantità di memoria che serve per i dati cifrati non deve eccedere significativamente quella dei dati in chiaro;
Proprietà degli algoritmi per la
sicurezza crittografica
• Devono assicurare una resistenza
appropriata al livello di informazione da
proteggere (coerentemente con il modello di
minaccia – threat model)
• Devono essere utilizzati coerentemente con
la loro struttura in modo da non presentare
vulnerabilità non note in letteratura
Implementazione
• Deve essere formalmente corretta e deve avvenire in ambiente omologato ai fini dalla sicurezza)
• Deve assicurare un basso livello di emissioni compromettenti (Emission Security)
• Deve assicurare il livello di resistenza più adatto agli attacchi fisici (SPA, DPA, Timing attacks: attacchi nei quali l’osservazione dei parametri fisici può consentire di correlare informazioni utili)
• Deve avere la velocità adatta al canale di comunicazioni da cifrare
Componenti di protezione
• Devono rendere visibile ogni tentativo di
manomissione
dell’apparecchiatura(antitampering)
• Devono garantire la distruzione del materiale
di chiave ad ogni tentativo di manomissione
• Devono essere attive anche ad apparato
spento
Interfaccia Utilizzatore
• Deve dare un feedback chiaro all’operatore sulle operazioni eseguite
• Deve chiedere opportune conferme delle operazioni irreversibili
• Deve rendere impossibile confondere operazioni in chiaro e in cifra
•PER I PUNTI DI CUI SOPRA RISULTA NECESSARIO
•CERTIFICARE I COMPONENTI IT
Procedure d’utilizzo
• Devono prevedere opportune verifiche dell’identità degli operatori
• Devono essere coerenti con il modello di minaccia
• Devono fornire un livello di protezione complementare alle protezioni tecniche
• Devono garantire l’ambiente operativo in cui il sistema viene utilizzato
Crittanalisi di Valutazione
• Deve garantire l’adeguatezza dell’algoritmo al
modello di minaccia
• Parte da ipotesi sulle risorse tecnologiche
disponibili all’attaccante nel periodo d’uso
dell’algoritmo
• Tiene conto dei criteri di resistenza agli
attacchi noti
• Non mira a “rompere” ma a mettere in
evidenza i rischi di rottura
Criteri Comuni
• Base matematica di provata resistenza
• Lunghezza della chiave (resistenza
all’attacco esaustivo)
• Complessità della rappresentazione algebrica
• Ampio margine di sicurezza
• Indistinguibilità da sequenza aleatoria
• Per sicurezza a lungo termine : intrattabilità
con algoritmi quantistici
Base Matematica
• L’algoritmo deve basarsi su principi
matematici noti
• La struttura deve essere stata analizzata in
maniera approfondita
• Non devono essere noti attacchi alla struttura
o a strutture vicine
Lunghezza della chiave
• Un attacco esaustivo è sempre possibile
• E’ un attacco intrinsecamente parallelizzabile
• La sua complessità cresce con l’effettivo
spazio delle chiavi
• E’ importante verificare che non soltanto la
chiave sia di lunghezza sufficiente, ma anche
che sia utilizzata senza ridurre la sua entropia
Rappresentazione Algebrica
• Un attacco algebrico è sempre possibile
• Maggiore è il grado del sistema di equazioni
equivalente,
• Maggiore è il numero di termini presenti,
• Maggiore è la difficoltà di risolverlo
Ampio margine di sicurezza
• I parametri di sicurezza devono disporre di un
fattore di sicurezza confortevole
• Si deve ipotizzare che eventuali opponenti
abbiano un considerevole vantaggio rispetto
a quanto appare in letteratura
• Deve essere presa in conto la probabile
evoluzione tecnologica nel periodo di uso
Indistinguibilità da sequenza
aleatoria
• Attaccare un testo cifrato significa spesso
basarsi sulle sue ridondanze
• Una sequnza aleatoria, non comprimibile, ha
un bit di entropia per ogni bit della sequenza
• Un testo in chiaro ha poco più di 1 bit di
entropia per carattere
Sicurezza a lungo termine
• Gli algoritmi quantistici riducono circa a metà
la lunghezza effettiva della chiave per gli
algoritmi simmetrici
• Oggi appare un argomento puramente
teorico, ma si sta avanzando verso la
realizzazione di calcolatori quantistici
• Non possiamo escludere che prototipi siano
già operativi
Requisiti di robustezza degli
algoritmi
• In crittografia, confusione e diffusione sono due proprietà che un algoritmo di cifratura sicuro deve possedere per essere considerato più o meno robusto ovvero scarsamente attaccabile da un attacco di tipo crittoanalitico. Queste proprietà sono state identificate da Shannon nel suo lavoro La teoria della comunicazione nei sistemi crittografici pubblicato nel 1949.
Requisiti di sicurezza degli algoritmi
• Nel documento di Shannon si definisce:
• la confusione il fatto che la relazione tra la chiave e il testo cifrato sia quanto più complessa e scorrelata possibile in modo tale che non si possa risalire ad essa a partire dal testo cifrato.
• la diffusione è la capacità dell'algoritmo di distribuire le correlazioni statistiche del testo lungo tutto l'alfabeto utilizzato dall'algoritmo di cifratura rendendo quanto più difficile possibile un attacco statistico.
• La diffusione è associata alla dipendenza dei bit di uscita da i bit di ingresso. In un algoritmo con un'ottima diffusione la variazione di un bit in ingresso dovrebbe cambiare tutte le uscite con probabilità del 50%.
• La sostituzione è la tecnica più utilizzata per eliminare le predominanze statistiche e quindi è il primo metodo da utilizzare per implementare una buona confusione (vedi S-box). La trasposizione viene utilizzata anch'essa per generare confusione anche se negli algoritmi moderni spesso si usano anche altre tecniche come le combinazioni lineari (AES). Il cifrario del prodotto usa alternativamente sostituzioni e trasposizioni iterando più volte i passaggi per ottenere confusione e diffusione.
Block Cipher
• Resistenza alla crittanalisi lineare
• Resistenza alla crittanalisi differenziale
• Dimensioni di blocco
• Inapplicabilità di attacchi specifici
Crittoanalisi lineare
• Consta di 2 fasi. La 1°fase consiste nel
trovare le equazioni lineari che legano testo
in chiaro, in cifra e bit di chiave. Nella
seconda fase, ottenuta l’ approssimazione
lineare, applicando un semplice algoritmo è
teoricamente possibile prevedere i valori dei
bit coinvolti nell’approssimazione. Affinchè un
tale attacco sia praticabile è necessario che
per tutte le “linear trails”l’indice di
correlazione sia tale che la somma sia:
• S >>2 elevato a n-1 ( n è la lunghezza del blocco)
Crittanalisi Lineare• Per resistere alla crittanalisi lineare, quindi ,un
algoritmo deve minimizzare la correlazione, definita
come:
Siano U e V spazi vettoriali su un campo C, sui quali sia
definito un prodotto interno, che indicheremo con il
simbolo · . Sia f : U → V una funzione. Per ogni u ∈ U e per ogni v ∈ V , definiamo la seguente quantità:
corr(u,v) = |{a∈U | u·a = v·f(a)}| . |{a∈U | u·a ≠ v·f(a) }|
Definiamo come correlazione di f:
correlazione = max(u,v)∈U×V \{ (0,0) } |corr(u,v) |/ |U|
Crittanalisi differenziale
• E’ di solito un attacco con testo in chiaro scelto. Si
usano coppie di testi in chiaro relazionate da differenza costante, si calcolano le differenze dei
corrispondenti testi cifrati sperando di intercettare
regole statistiche nella loro distribuzione.Taliproprietà statistiche derivano sempre dalla natura
degli S-Box(unico elemento non lineare). Se attuata con successo consente di di rompere la chiave più
velocemente dell’attacco esaustivo. Per poter praticare tale attacco è necessario una Prop-Ratio
significativamente superiore a 2 elevato a 1-n
Crittanalisi Differenziale
• Per resistere alla crittanalisi differenziale, un algoritmo deve minimizzare la proprazio, definita come :
Siano G, G’ gruppi (per i quali useremo la notazione additiva) e f : G → G’ una funzione. Per ogni x ∈ G e ogni y ∈ G’, definiamo il seguente insieme:
diff(x,y) = {(a,b) ∈ G × G | a - b = x and f(a) - f(b) = y }
e definiamo la seguente quantità:
ratio(x, y) = | diff(x, y) | / | G |
Dicesi propratio di f il massimo di queste quantità al variare di x ∈ G e di y ∈ G’, x e y non entrambi nulli:
propratio = max(x,y) ∈ G × G’ \{ (0,0) } ratio(x, y)
Dimensioni di Blocco
• Il basso costo dei supporti di memorizzazione,
unito alla presenza di intestazioni standard che
consentono attacchi known plaintext rendono
possibile la ricerca della chiave a partire da pochi
blocchi cifrati di contenuto noto
• Una dimensione di blocco sufficiente (associata
ad un’opportuna lunghezza di chiave) rende
impossibile memorizzare un blocco di plaintext
cifrato con ogni chiave possibile
Attacchi specifici
• Non devono essere applicabili attacchi
sviluppati specificamente per strutture simili o
comunque vicine
• Deve essere analizzata la resistenza ad
attacchi known plaintext e adaptive chosen
plaintext
Stream Ciphers (cifrari a flusso)
• In crittografia un cifrario a flusso (anche cifrario a caratteri) è un cifrario simmetrico nel quale i simboli (i bit) che codificano il testo in chiaro sono cifrati indipendentemente l'uno dall'altro e nel quale la trasformazione dei simboli successivi varia con il procedere della cifratura. Un altro termine usato per tale cifrario è cifrario a stati, termine che ricorda che la cifratura di ogni simbolo dipende da uno stato corrente. Tipicamente nella pratica, i simboli sono singoli bit o byte.
Stream Ciphers ( cifrari a flusso)
• I cifrari a flusso costituiscono un approccio alla cifratura simmetrica differente da quello dei cifrari a blocchi: questi prevedono che si effettui su successivi estesi blocchi di simboli una determinata trasformazione che non cambia da blocco a blocco. Questa distinzione in realtà non è sempre netta: alcune modalità operative dei cifrari a blocchieffettuano una cifratura a blocchi primitiva in un modo tale che il suo effetto corrisponde a quello di un cifrario a flusso. Tipicamente i cifrari a flusso sono eseguiti a velocità superiori a quelle dei cifrari a blocchi e si servono di hardware meno complesso.
Stream Ciphers (cifrari a flusso)
• I cifrari a flusso possono essere visti come approssimazioni di un cifrario teoricamente non compromissibile, l' one-time pad(OTP), di cui un noto esempio è il cifrario di Vernam. L'OTP usa una sequenza chiave di simboli completamente casuali. La sequenza chiave è combinata con il testo in chiaro un simbolo alla volta per formare il testo cifrato. Claude E. Shannon ha dimostrato nel 1949 che questo sistema è teoricamente sicuro. Comunque, la sequenza chiave deve avere (almeno) la stessa lunghezza del testo in chiaro, e deve essere generata in maniera casuale. Questo rende il sistema molto oneroso da implementare in pratica, e di conseguenza l'OTP non èlargamente usato, tranne per applicazioni di importanza critica.
• Un cifrario a flusso usa una chiave molto più piccola e molto piùcomoda, 128 bit ad esempio. Sulla base di questa chiave, genera una sequenza chiave pseudo-casuale che può essere combinata con i simboli del testo in chiaro allo stesso modo dell'OTP. Però, questo ha un costo: poiché la sequenza chiave è solo pseudo-casuale, e non veramente casuale, la prova di sicurezza associata all'OTP non ha più valore: è anzi possibile che un cifrario a flusso sia completamente insicuro.
Problemi dei Cifrari a Flusso
• Per essere sicuro, il periodo della sequenza chiave, cioè il numero di simboli in uscita prima che la sequenza si ripeta, deve essere sufficientemente grande. Se la sequenza si ripete, allora i testi cifrati che si sovrappongono possono essere allineati uno contro l'altro "in profondità", e ci sono tecniche con cui in queste condizioni si può estrarre il testo in chiaro. Questo è un pericolo reale: ad esempio, il cifrario a blocchi Data Encryption Standard (DES) poteva inizialmente operare in una modalità (OFB) con parametri variabili. Però, per molte scelte di tali parametri, la sequenza risultante aveva un periodo di solo 232 — per molte applicazioni, questo periodo è troppo piccolo.
Impieghi dei Cifrari a Flusso
• I cifrari a flusso sono spesso utilizzati in applicazioni in cui il testo in chiaro ha una lunghezza sconosciuta a priori - ad esempio, in una rete wireless. Se un cifrario a blocchi venisse usato in questo tipo di applicazioni, il progettista dovrebbe scegliere tra l'efficienza della trasmissione e la complessità dell'implementazione, poiché i cifrari a blocchi non possono lavorare naturalmente su blocchi più piccoli della dimensione prefissata di un blocco. Per esempio, se un cifrario a blocchi a 128-bits ricevesse delle raffiche separate di testo in chiaro a 32-bit, tre quarti dei dati trasmessi sarebbe aggiunta per espandere il testo alla lunghezza necessaria (padding). I cifrari a blocchi devono essere utilizzati nelle modalità ciphertext stealing o residual block termination per evitare il padding, mentre i cifrari a flusso eliminano il problema operando naturalmente sull'unità più piccola trasmissibile (generalmente bytes).
Impieghi dei Cifrari a Flusso
• I cifrari a flusso trovano applicazione anche nella crittografia militare perchè il flusso delle chiavi di cifra può essere generato in una unità fisica separata che può essere sottoposta a misure di sicurezza stringenti e essere fornito ad altri dispositivi, ad es. ad un apparecchio radio, che, tra le sue altre funzioni, si fa carico dell'esecuzione della operazione XOR. Un tale dispositivo a valle può essere progettato e tenuto in esercizio secondo modalità di sicurezza meno stringenti.
In sintesi : gli Stream Ciphers
Devono possedere:Periodo elevato
Complessità lineare altaImmunità da Correlazione
Distanza elevata da approssimazione lineareNon linearità del caricamento iniziale
Stato interno ampio
Periodo Elevato
• In uno stream cipher è di importanza vitale non riutilizzare la stessa sequenza di cifratura (keystream)
• Pertanto il periodo di cifratura dovrà essere superiore all’insieme delle informazioni che potranno essere cifrate con una stessa chiave
• Se questo vincolo non viene rispettato èpossibile eliminare con uno XOR il keystreame ottenere la sovrapposizione dei due dataset
Complessità Lineare
• La complessità lineare di uno stream cipher è
la lunghezza del registro a scorrimento a
retroazione lineare (Linear Feedback Shift
Regiter o LFSR) equivalente
• Esistono algoritmi come Berklamp-Massey
estremamente efficienti nel ricostruire un
LFSR a partire da un frammento della
sequenza generata, lungo il doppio dell’LFSR
Immunità da Correlazione
• La presenza di correlazione tra bit di uno
specifico registro e bit dell’output permette di
applicare specifici attacchi
• Gli attacchi possono essere estremamente
efficaci se la correlazione è sensibile o se i
polinomi di feedback sono sparsi
• L’immunità da Correlazione (Correlation
Immunity) esprime la resistenza a questi
attacchi
Distanza da approssimazione
lineare
• In molte situazioni è sufficiente all’attaccante
ricostruire un’approssimazione abbastanza
vicina allo stream cipher attaccato (p. es.
cifratura della voce)
• Se la componente non lineare dell’algoritmo è
abbastanza vicina ad una componente
lineare, l’attacco all’algoritmo sarà
grandemente facilitato ricercando la
componente lineare quasi equivalente
Caricamento Iniziale
• Il caricamento iniziale combina una quantità
ignota (chiave) con una quantità nota (vettore
di inizializzazione)
• Tale combinazione deve essere altamente
non lineare per impedire una facile
separazione delle due componenti a partire
dal keystream e quindi l’identificazione della
chiave
Stato Interno
• Un attacco esaustivo può essere portato non
soltanto alla chiave, ma anche allo stato
interno di uno stream cipher
• E’ quindi importante che nel passaggio dalla
chiave allo stato interno, e nell’evoluzione
dell’ stato interno, vengano prese tutte le
misure atte a non ridurne la variabilità.