crittografia simmetrica

Transcript

crittografia simmetrica
Un’introduzione ai meccanismi crittografici simmetrici
Quando si parla di tecniche di crittografia simmetrica ci si fa riferimento ai concetti di
confidenzialità ed autenticità applicati alle tecniche crittografiche simmetriche.
Con la confidenzialità si verifica il problema di mantenere riservato ai legittimi destinatari il
contenuto di messaggi trasmessi su un canale insicuro, soggetto a intercettazioni(intrusioni passive)
Tale definizione è adattabile a varie situazioni. Per risolvere ciò si adotta una soluzione
crittografica: Il testo in chiaro(messaggio originale) è sostituito con un testo cifrato da trasmettere
sul canale insicuro L’estrazione del messaggio in chiaro da quello cifrato può essere fatta solo da un
destinatario legittimato dal possesso, in esclusiva o in condivisione, di una chiave segreta. Passiamo
ora ad esaminare un’operazione di cifratura/decifratura:
L’operazione di cifratura trasforma il testo in chiaro Pnel testo cifrato C•B, usando la propria
chiave, può ricostruire, tramite l’operazione di decifratura, P da C. Un intruso IP può intercettare C
ma,idealmente, non può ricostruire P•IP è passivo (attività limitata all’osservazione dei messaggi in
transito sul canale). Nella cifratura simmetrica, l’operazione di cifratura e la corrispondente
operazione di decifratura sono controllate dalla stessa chiave segreta condivisa dalle parti legittime
in gioco.• Nel caso in cui, in un sistema di N utenti si voglia distinguere ogni coppia di utenti, è
richiesta la gestione*di N·(N –1)/2chiavi distinte [*include generazione, distribuzione, distruzione,
etc.]•Gli algoritmi che definiscono le operazioni di cifratura e decifratura sono tipicamente di
dominio pubblico. E’possibile ottenere robustezza ideale. Esaminiamo ora il modello per cifratura
simmetrica:
Le trasformazioni Cifratura e Decifratura sono assunte di dominio pubblico in quanto si verifica una
distinzione tra IP e utenti legittimi basata solo su K(Kerckhoff).
Esaminiamo ora gli schemi di cifratura nel seguente disegno:
Uno schema di cifratura (cifrario) è definito dalle specifiche necessarie per l’esecuzione delle
operazioni di cifratura/decifratura. In questo caso la gestione delle chiavi è considerata a parte.
Risulta necessario specificare univocamente lo spazio dei testi in chiaro,lo spazio dei testi cifrati, lo
spazio delle chiavi, l’algoritmo di cifratura, l’algoritmo di decifratura (algoritmo di generazione
della chiave K).
Lo spazio dei testi in chiaro, lo spazio dei testi cifrati e lo spazio delle chiavi sono tipicamente
definiti a partire dall'alfabeto binario {0,1}. L’algoritmo di generazione della chiave K è
tipicamente basato su un generatore casuale binario (bit indipendenti ed equiprobabili). Le
trasformazioni Cifratura e Decifratura devono soddisfare una condizione di decifrabilità .
Condizione di decifrabilità:per ogni P nello spazio dei testi in chiaro e per ogni K nello spazio delle
chiavi deve essere Decifratura(Cifratura(P, K), K) = P( richiede che la cardinalità dello spazio dei
testi cifrati sia non inferiore a quella dello spazio dei testi in chiaro). Sono individuabili due
approcci alla cifratura, detti a blocchi e a flusso
Schemi di Cifratura a Blocchi
Blocco: stringa binaria di lunghezza* prefissata [*lunghezza di blocco. Es.: 64, 128 bit] Chiave:
stringa binaria di lunghezza* prefissata [*lunghezza di chiave. Es.: 128 bit]•Algoritmo di cifratura
trasforma un singolo*blocco in chiaro in un blocco cifrato sotto il controllo di una chiave [*la
cifratura di un insieme di blocchi è definita attraverso opportuni modi operativi]. L’algoritmo di
decifratura esegue la trasformazione inversa sotto il controllo della stessa chiave* usata per la
cifratura[*simmetria]
Flusso
Simbolo: stringa binaria di lunghezza fissa Flusso: sequenza* di simboli [*lunghezza illimitata]
L’algoritmo di cifratura* trasforma un flusso di simboli in chiaro in un flusso di simboli cifrati
usando un flusso di simboli di chiave [*la combinazione invertibile di un simbolo in chiaro e un
simbolo di chiave fornisce un simbolo cifrato]. L’algoritmo di decifratura esegue la trasformazione
inversa sotto il controllo dello stesso flusso di chiave* usato per la cifratura[*simmetria]
Passiamo ora ad esaminare gli algoritmi per cifratura a blocchi nella seguente figura:
P e C stringhe binarie di n bit, K stringa binaria di k bit•
EKe DK indicano cifratura e decifratura con chiave K•
Proprietà:DK (EK(P)) = P per ogni P e per ogni K. I parametri n e k influenzano la robustezza degli
algoritmi.
Parametri n/kin ISO/IEC 18033-3*•
[*FDIS, 2005] Questo standard specifica 6 cifrari a blocchi con parametri n(block length) e
k(keylength) nella seguente tabella:
Passiamo ora ad esaminare nella seguente figura la struttura iterativa per operazione cifratura
Tipicamente, alcuni round sono definiti dalla stessa trasformazione base (iterazione)
Mentre nella struttura iterativa per operazione decifratura la figura sarà la seguente:
Per ogni he per ogni X, se Y = Roundh(X, Kh), allora InvRoundh(Y, Kh) = X