S-Box

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springenZur Suche springen

In derKryptografie bezeichnet eineS-Box (englischsubstitution box) eineGrundkomponentesymmetrischer Kryptosysteme, die eine Bitfolge durch eine andere ersetzt (substituiert).

Inhaltsverzeichnis

Verwendung

[Bearbeiten |Quelltext bearbeiten]

Einem×n S-Box ist eine – in der Regel nichtlineare – Substitutionsoperation, bei der eine m-stellige Binärzahl (m-Tupel vonBits) durch eine n-stellige Binärzahl ersetzt wird. Sie kann beispielsweise mit einer Tabelle implementiert werden, die 2m Zellen enthält. Je nach Anwendung kann es notwendig sein, dass diese Abbildunginvertierbar (im Sinne vonbijektiv) ist.

S-Boxen werden inBlockverschlüsselungen wie beispielsweiseDES undBlowfish eingesetzt, um die Beziehung zwischenKlar- undGeheimtext zu verwischen (in derkryptologischen FachspracheKonfusion genannt).

Der DES-Algorithmus verwendet acht verschiedene S-Boxen, die auch teilweise dasShannon’sche Prinzip derDiffusion umsetzen. Dies kann einfach nachvollzogen werden: Die Änderung eines Input-Bits ändert mindestens 2 Output-Bits.[1] Dieses Verhalten liegt im Design der S-Boxen. Bei vollständiger Diffusion hingegen wäre dasStrict Avalanche Criterion (SAC) erfüllt und die Änderung eines Input-Bits würde jedes Output-Bit mit der Wahrscheinlichkeit von 0,5 ändern.

S-Boxen müssen sehr sorgfältig entworfen werden, um einerKryptoanalyse, insbesondere derlinearen und derdifferentiellen Kryptoanalyse zu widerstehen.

Anforderungen

[Bearbeiten |Quelltext bearbeiten]

Eine S-Box sollte die folgenden Anforderungen erfüllen:[2]

  • Vollständigkeit: Jedes Ausgangsbit ist von jedem Eingangsbit abhängig.
  • Avalanche: Die Änderung eines Eingangsbits zieht im Mittel die Änderung der Hälfte aller Ausgangsbits nach sich.
  • Nichtlinearität: Kein Ausgangsbit istlinear oderaffin von einem Eingangsbit abhängig. Dies sollte auch nicht näherungsweise der Fall sein.[3]
  • Korrelationsimmunität: Solange nur ein Teil der Eingangsbits bekannt ist, können keine Rückschlüsse auf die Ausgangsbits gezogen werden. Und umgekehrt.

Statisch oder Dynamisch

[Bearbeiten |Quelltext bearbeiten]

Man unterscheidet zwischen statischen und dynamischen S-Boxen: Während vieleBlockchiffren wieDES oderAES festgelegte (statische) S-Boxen verwenden, initialisieren beispielsweiseRC4 undTwofish aus dem Schlüssel die S-Box dynamisch (sogenannte:key-dependent S-box). Statische S-Boxen haben Vorteile bei derImplementierung inHardware hinsichtlich Geschwindigkeit und Speicherbedarf; dynamische S-Boxen können dieKryptoanalyse erheblich erschweren.

Implementierung

[Bearbeiten |Quelltext bearbeiten]

Naheliegend ist die Realisierung alsArray mit2a{\displaystyle 2^{a}} Elementen, deren jedes eineb Bit lange Ausgabe enthält. Diea Eingabebits werden als Zahl interpretiert, die das Array-Element mit der zugehörigen Ausgabe bezeichnet.

Die S-Box kann auch mitbooleschen Operationen verwirklicht werden. Die Eingabebits stehen ina Datenwörtern jeweils an der gleichen Bitposition, und dieb Ausgabebits werden durch Verknüpfen dieser Datenwörter mitbitweisen Operatoren berechnet. Bei einer Wortbreite vonw Bit erfolgen dadurchw Substitutionen parallel.Serpent ist eine Blockverschlüsselung, die für diese Methode ausgelegt ist.

Beispiel

[Bearbeiten |Quelltext bearbeiten]

Ein Beispiel ist diese statische 6×4-Bit S-Box (S5) von DES:

S5Mittlere 4 Bits des Eingabewertes
0000000100100011010001010110011110001001101010111100110111101111
Äußere Bits000010110001000001011110101011011010000101001111111101000011101001
011110101100101100010001111101000101010000111110100011100110000110
100100001000011011101011010111100011111001110001010110001100001110
111011100011000111000111100010110101101111000010011010010001010011

Der Eingabewert ist 6 Bit lang. Der 4-Bit-Ausgabewert steht in der Zeile mit den beiden äußeren Bits und der Spalte mit den 4 inneren Bits des Eingabewertes. Im Beispiel hat der Eingabewert "011011" die äußeren Bits "01" und die inneren Bits "1101". Der zugehörige Ausgabewert ist demnach "1001".

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. Don Coppersmith:The Data Encryption Standard (DES) and its strength against attacks. In: International Business Machines Corporation (Hrsg.):IBM Journal of Research and Development.Band 38,Nr. 3, 3. Mai 1994,S. 247,Absch. Design Criteria Nr. S-4 (simson.net [PDF]): „If two inputs to an S-box differ in exactly one bit, the outputs must differ in at least two bits.“ 
  2. Walter Fumy, Hans Peter Rieß:Kryptographie: Entwurf und Analyse symmetrischer Kryptosysteme. Oldenbourg, München / Wien 1988,ISBN 3-486-20868-3. 
  3. Bruce Schneier:Applied Cryptography. Protocols, Algorithms and Source Code in C. 2. Auflage. John Wiley & Sons, New York 1996,ISBN 0-471-11709-9,S. 349–350. 
Abgerufen von „https://de.wikipedia.org/w/index.php?title=S-Box&oldid=252862326
Kategorie: