Wie kann DES 6x4 S-Boxen haben und trotzdem reversibel sein?

12

Gehen beim Mappen von 6-Bit-Werten auf 4-Bit-Werte in den S-Boxen von DES keine Daten verloren? Wenn ja, wie können wir es umkehren, damit die richtige Ausgabe angezeigt wird?


quelle
3
Dies ist wahrscheinlich eine sehr interessante Frage, aber ich würde versuchen, sie eigenständiger zu gestalten, damit Sie eine anständige Antwort erhalten. Versuchen Sie, weitere Hintergrundinformationen bereitzustellen.
Dave Clarke
2
Obwohl Sadeq eine Antwort hat, wäre es dennoch nützlich, die Frage zu klären. Was ist eine S-Box in DES?
Suresh Venkat
5
Eine auf Feistel basierende Chiffre teilt die Eingabe in zwei gleichlange Bitfolgen und R (32 Bit in DES) und wendet dann wiederholt die Operation an, die Sadeq unten beschreibt (in DES wird sie 16 Mal iteriert). In DES ist eine S- Box eine 6-Bit- bis 4-Bit-Funktion, die Bestandteil der Implementierung von F ist . Die S- Boxen hatten einige interessante statistische Eigenschaften, deren Zweck fünfzehn Jahre lang im Dunkeln blieb. Viele Leute vermuteten, dass DES leichter zu brechen war. Schließlich wurde entdeckt, dass diese Eigenschaften der S-Boxen DES-resistent gegenüber Differential-Kryptanalyse machen. LRSFS
Peter Shor
3
@Suresh: Klassische Chiffren werden in zwei Typen unterteilt: Substitutionschiffren (wie Caesar) und Permutationschiffren (wie Columnar Transposition). Später stellte sich heraus, dass keiner der beiden Typen ausreichend Sicherheit bot. Moderne Blockchiffren nutzen beide Transformationen. Insbesondere haben sie P-Boxen (= Permutationsboxen) und S-Boxen (= Substitutionsboxen).
MS Dousti
3
@ Suresh: Ich stimme dir absolut zu. Während S-Boxen für Kryptografen bekannt sind, sollte das OP die Frage meines Erachtens so stellen, dass sie allen zugute kommt, nicht nur einem kleinen Teil der Community.
MS Dousti

Antworten:

25

DES ist eine Feistel-basierte Chiffre . In solchen Chiffren muss die Funktion nicht invertierbar sein. Hier ist der Grund:F

In jeder Runde wird die folgende Operation angewendet:

Für ich=0,1,,n

Lich+1=Rich

Rich+1=LichF(Rich,Kich)

Die Entschlüsselung wird wie folgt durchgeführt:

Rich=Lich+1

Lich=Rich+1F(Lich+1,Kich)

FF-1

MS Dousti
quelle
4

Siehe Kapitel 5 des Lehrbuchs "Introduction to Modern Cryptography" von Katz und Lindell.

user686
quelle
1

Ohne auf das mathematische Hokuspokus über Feistel einzugehen (was ich noch nicht zu 100% verstehe), wenn man sich dieses Bild von Wikipedia anschaut:

DES-Verschlüsselungsschritt

Sie können sehen, dass die 8 s-Boxen zwar 48 Bit auf 32 komprimieren, aber nur 32 Bit Entropie aus dem Klartext stammen . Daher können Sie die anderen 16 Bit beim Entschlüsseln aus dem Schlüssel abrufen, was die Magie ist, die von ausgeführt wird zuvor erwähnte Feistelfunktionen.

Sophistifunk
quelle