Cifratura Simmetrica_Feistel_DES
Cifratura a blocchi di Feistel (è una cifratura simmetrica)
Utilizzata da molti algoritmi di cifratura, essa riceve in input un blocco di dati e una chiave, il blocco viene
suddiviso in due metà uguali che attraversano diverse fasi alternando i processi di “xoratura” con le
sottochiavi generate dalla chiave input.
Ogni fase esegue i seguenti passi:
1. Input di partenza testo in chiaro e chiave, il testo viene diviso in 2 blocchi (sinistro e destro) delle stesse
dimensioni
2. La chiave viene fatta passare insieme al blocco destro all’interno di una funzione che ne genera una
sottochiave
3. La sottochiave ottenuta viene “xorata” con il blocco sinistro, l’output ottenuto viene dato in input come
blocco destro nella fase successiva
4. Il blocco destro non viene modificato, ma viene mandato in input come blocco sinistro nella fase
seguente
n.b.
Solo nell’ultima fase i 2 blocchi in output vengono nuovamente scambiati, questo per rendere il processo
reversibile (per permettere la decifratura)
Parametri da considerare nella cifratura di Feistel
- dimensione del blocco, una maggior dimensione migliora la sicurezza ma rallenta le prestazioni
(DES: 64 bit, AES: 128 bit)
- dimensione della chiave, una chiave più lunga migliora la sicurezza ma rallenta le prestazioni (128 bit)
- numero di fasi di elaborazione, un maggior numero di fasi migliora la sicurezza ma rallenta le prestazioni
(16)
- generazione della sottochiave, più complesso è l’algoritmo, più sarà difficile la crittoanalisi
- funzione round, più è complessa, più è difficile la crittoanalisi
Algoritmo di decifratura di Feistel
Le fasi sono le stesse di quello di cifratura, le uniche differenze sono l’input (che qui è il testo cifrato) e le
sottochiavi (che vengono usate nell’ordine inverso).
L’output della i-esima parte della decifratura è uguale allo scambio a 32 bit (se il blocco è di 64 bit)
dell’input della (n+1-i)-esima iterazione del processo di cifratura (n n° di fasi)
[parte con dimostrazione non molto Chiara, più Paola…]
Data Encryption Standard DES
Negli anni 60 IBM ha iniziato un progetto di crittografia simmetrica, diretto da Feistel ha portato allo
sviluppo di LUCIFER (blocchi 64bit, chiave 128bit). Dopo che nessuno superò il test richiesto da NBS (NIST),
il LUCIFER venne modificato e fu adottato come Data Encryption Standard nel 1977 dal NBS, divenendo lo
schema di cifratura a blocchi più utilizzato, esso opera con blocchi da 64bit, chiave da 56bit ed esegue 16
iterazioni.
Il DES una volta reso pubblico ricevette 2 critiche:
- l
-
Fondamenti di sicurezza - autenticatori
-
Fondamenti di sicurezza - applicazioni della cifratura asimmetrica
-
Fondamenti di sicurezza - introduzione alla crittografia
-
Fondamenti di sicurezza - RSA