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?


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


4

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


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.