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