Come può DES avere S-Box 6x4 ed essere ancora reversibile?


12

I dati non andrebbero persi quando si mappano i valori a 6 bit su valori a 4 bit nelle S-Box di DES? In tal caso, come possiamo invertirlo in modo che appaia l'output corretto?


3
Questa è probabilmente una domanda molto interessante, ma proverei a renderla più autonoma in modo da poter ottenere una risposta decente. Prova a fornire ulteriori informazioni di base.
Dave Clarke,

2
Mentre Sadeq ha una risposta, sarebbe comunque utile chiarire la domanda. Innanzitutto, cos'è una S-Box in DES?
Suresh Venkat,

5
Un codice basato su Feistel suddivide l'ingresso in due stringhe di bit di uguale lunghezza e (32 bit in DES) e quindi applica ripetutamente l'operazione descritta da Sadeq di seguito (in DES, viene ripetuta 16 volte). In DES, un -box è un 6-bit a 4 bit funzione che è un componente dell'applicazione della . Le box avevano alcune interessanti proprietà statistiche, il cui scopo rimase oscuro per quindici anni. Molte persone sospettavano di aver reso il DES più facile da infrangere. Alla fine, è stato scoperto che queste proprietà delle scatole a S hanno reso il DES resistente alla crittoanalisi differenziale. LRSFS
Peter Shor,

3
@Suresh: le cifre classiche sono divise in due tipi: cifre di sostituzione (come Cesare) e cifre di permutazione (come trasposizione colonnare). Più tardi, divenne evidente che nessuno dei due tipi forniva una sicurezza sufficiente. I moderni cifrari utilizzano entrambe le trasformazioni. In particolare, hanno caselle P (= caselle di permutazione) e caselle S (= caselle di sostituzione).
MS Dousti,

3
@Suresh: sono assolutamente d'accordo con te. Mentre le S-Box sono famose per i crittografi, credo che l'OP dovrebbe porre la domanda in modo che vada a beneficio di tutti, non di una piccola parte della comunità.
MS Dousti,

Risposte:


25

DES è una cifra basata su Feistel . In tali cifre, la funzione non deve essere invertibile. Ecco il motivo:F

In ogni round, viene applicata la seguente operazione:

Per i=0,1,,n

Li+1=Ri

Ri+1=LiF(Ri,Ki)

La decrittografia viene eseguita come segue:

Ri=Li+1

Li=Ri+1F(Li+1,Ki)

Come puoi vedere, la decrittazione non richiede che sia invertibile. (Dal momento che la decrittazione non ha bisogno di calcolare F - 1. )FF1


4

Vedi il capitolo 5 del libro di testo "Introduzione alla crittografia moderna" di Katz e Lindell.


1

Senza entrare in tutti i mumbo-jumbo matematici su Feistel (che non capisco ancora al 100%), se guardi questa immagine da Wikipedia:

DES passo di crittografia

Puoi vedere che sebbene le 8 s-box stiano effettivamente comprimendo 48 bit fino a 32, solo 32 bit di entropia provengono dal testo in chiaro , quindi puoi ottenere gli altri 16 bit dalla chiave durante la decodifica, che è la magia eseguita da funzioni Feistel menzionate in precedenza.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.