Substitutions-Permutations-Netzwerk
Substitutions-Permutations-Netzwerk (SPN) ist ein Designprinzip für Blockchiffren. Ein Beispiel für ein Substitutions-Permutations-Netzwerk ist der Advanced Encryption Standard.
Beschreibung
Ein Substitutions-Permutations-Netzwerk besteht aus einer Anzahl von Runden gleichen Aufbaus. In jeder Runde wird zuerst ein Rundenschlüssel auf die Eingabe addiert. Dann wird das Ergebnis in mehrere Blöcke aufgeteilt, und jeder Block mittels der Substitutionsbox (S-Box) durch einen anderen Block ersetzt. Diese Blöcke werden wiederum durch eine Permutationsbox (P-Box) vermischt.
Bei der letzten Runde kann die P-Box weggelassen werden, weil sie von jedem aus dem Ergebnis trivial herausgerechnet werden kann. Dafür ist es sinnvoll, ein weiteres Mal einen Rundenschlüssel auf das Ergebnis zu addieren, um zu verhindern, dass auch die Substitutionen leicht herausgerechnet werden können.
Eigenschaften
Ein SPN-Design hat gute Diffusion und Konfusion, denn wenn sich ein Bit des Klartextes oder Schlüssels ändert, ändern sich mehrere Bit der Ausgabe der S-Box, die dann durch die P-Box auf verschiedene S-Boxen der nächsten Runde verteilt werden. Bei AES-128 beispielsweise bewirkt eine Änderung eines Eingabebits innerhalb von zwei Runden eine Änderung in jedem Byte der Ausgabe.
Im Gegensatz zu Feistelchiffren sind Substitutions-Permutations-Netzwerke im Allgemeinen nicht durch einfaches Umordnen des Schlüssels umkehrbar, da die S-Box nicht selbstinvers ist. Dafür erlauben sie einen höheren Grad an Parallelverarbeitung.[1]
Einzelnachweise
- Bart Preneel, Vincent Rijmen und Antoon Bosselaers: Algorithm Alley. 1998, Design Principles for Cryptographic Algorithms (drdobbs.com).