Il Data Encryption Standard (DES) è un sistema crittografico di cifratura a blocchi simmetrico ampiamente utilizzato nella sicurezza informatica. Utilizza una struttura di rete Feistel, che consiste in più cicli di crittografia e decrittografia. I processi di crittografia e decrittografia in DES sono simili ma con alcune differenze fondamentali.
Durante il processo di crittografia, DES prende un messaggio di testo in chiaro e una chiave segreta come input e produce un testo cifrato come output. La pianificazione delle chiavi genera 16 chiavi circolari, ciascuna utilizzata in uno specifico ciclo di crittografia. Il testo in chiaro è diviso in blocchi di 64 bit e viene applicata una permutazione iniziale (IP) per riorganizzare i bit. Il blocco risultante viene quindi diviso in due metà, la metà sinistra (L0) e la metà destra (R0), ciascuna di 32 bit di dimensione.
La funzione Feistel è il fulcro di ogni round in DES. Prende come input la metà destra del round precedente (Ri-1) e la chiave del round (Ki). La metà destra viene espansa da 32 bit a 48 bit utilizzando una permutazione di espansione (E). La metà destra espansa viene quindi XORed con la chiave rotonda per produrre un risultato a 48 bit. Questo risultato è diviso in otto blocchi di 6 bit e ogni blocco viene sostituito utilizzando una specifica S-box. La sostituzione S-box sostituisce ogni input a 6 bit con un output a 4 bit basato su una tabella di ricerca predefinita. Gli output delle S-box sono concatenati per formare un risultato a 32 bit.
Successivamente, viene applicata una permutazione (P) al risultato a 32 bit, riorganizzando i bit. Il risultato è XORed con la metà sinistra del round precedente (Li-1). Il risultato XOR diventa la metà destra (Ri) per il round in corso, mentre la metà destra precedente (Ri-1) diventa la metà sinistra (Li) per il round in corso. Questo processo viene ripetuto per 16 round, con il round finale che scambia le posizioni delle metà sinistra e destra.
Dopo i 16 cicli di crittografia, viene applicata una permutazione finale (IP-1) alla concatenazione delle metà sinistra e destra. Il blocco risultante è il testo cifrato.
Il processo di decrittografia in DES è l'inverso del processo di crittografia. Prende il testo cifrato e la stessa chiave segreta come input e produce il testo in chiaro originale come output. La pianificazione delle chiavi genera le stesse 16 chiavi rotonde, ma vengono utilizzate in ordine inverso durante la decrittazione. Il blocco di testo cifrato passa attraverso la stessa permutazione iniziale (IP) della crittografia, risultando nelle metà sinistra e destra.
Per ogni ciclo di decrittazione, la funzione Feistel viene applicata al contrario. La metà destra del round precedente (Ri-1) è XORed con la chiave rotonda (Ki) e passa attraverso la permutazione di espansione (E) e la sostituzione S-box al contrario. Il blocco a 32 bit risultante viene sottoposto a XOR con la metà sinistra del round precedente (Li-1) e il risultato XOR diventa la metà destra (Ri) per il round corrente. La precedente metà destra (Ri-1) diventa la metà sinistra (Li) per il round in corso. Questo processo viene ripetuto per 16 round in ordine inverso, con il round finale che scambia le posizioni delle metà sinistra e destra.
Dopo i 16 cicli di decrittazione, viene applicata una permutazione finale (IP-1) alla concatenazione delle metà sinistra e destra, risultando nel testo in chiaro originale.
Il processo di decrittografia in DES è l'inverso del processo di crittografia. Utilizza le stesse chiavi rotonde della crittografia ma in ordine inverso. La funzione Feistel viene applicata al contrario per ogni round e anche la permutazione finale viene applicata al contrario.
Altre domande e risposte recenti riguardanti Data Encryption Standard (DES) - Pianificazione e decrittografia delle chiavi:
- Tra crittoanalisi lineare e differenziale quale è efficiente per rompere il DES?
- Come può la cirpanalisi lineare rompere un crittosistema DES?
- Il DES può essere violato mediante la crittoanalisi differenziale?
- Due input diversi x1, x2 possono produrre lo stesso output y in Data Encryption Standard (DES)?
- La crittoanalisi differenziale è più efficiente della crittoanalisi lineare nel rompere il crittosistema DES?
- In che modo DES è servito da base per i moderni algoritmi di crittografia?
- Perché la lunghezza della chiave in DES è considerata relativamente breve per gli standard odierni?
- Qual è la struttura della rete Feistel e come si collega al DES?
- Qual è lo scopo della pianificazione delle chiavi nell'algoritmo DES?
- In che modo la comprensione della pianificazione delle chiavi e del processo di decrittazione del DES contribuisce allo studio della crittografia classica e all'evoluzione degli algoritmi di crittografia?
Altre domande e risposte:
- Settore: Cybersecurity
- programma: Fondamenti di crittografia classica EITC/IS/CCF (vai al programma di certificazione)
- Lezione: Crittografia con cifratura a blocchi DES (vai alla lezione correlata)
- Argomento: Data Encryption Standard (DES) - Pianificazione e decrittografia delle chiavi (vai all'argomento correlato)
- Revisione d'esame

