vuoi
o PayPal
tutte le volte che vuoi
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:
- la lunghezza troppo breve della chiave;
- il fatto di aver nascosto la metodologia di realizzazione di alcuni criteri progettuali (come erano state
realizzate le S-box)
Nel 1999 il NIST, dopo aver già approvato nel 94 il DES per utilizzo federale, ha richiesto l’adozione del TDES
(Triple DES), e anche se nel 2002 il DES venne rimpiazzato da AES, il NIST nel 2005 approvò l’utilizzo del
TDES fino al 2030.
Fasi del DES
1. Il blocco iniziale viene diviso in due metà che vengono permutate
2. Seguono 16 iterazioni, in ogni fase viene attuato il cifrario di Feistel (con sottochiavi da 48 bit)