Keccak ausprobieren

Die einzelnen Teilformen eines Keccak-States

Beim Keccak-Algorithmus handelt es sich um einen Hash-Algorithmus und SHA-3-Kandidaten. Der Algorithmus verwendet die so genannte "Sponge Construction":

Die "Sponge Construction" besteht aus den Funktionen Absorb und Squeeze. Die Absorb-Funktion liest nacheinander, blockweise die Nachricht in einen internen Zustand, den State, ein und wendet nach jedem Block die eigentliche Permutations-Funktion Keccak-f an, welche noch einmal in fünf Unterfunktionen aufgeteilt ist. Die Squeeze-Funktion erzeugt aus diesem State die Hash-Ausgabe, welche nicht zwangsläufig eine feste Länge haben muss, sondern beliebig lang sein kann. Der Name "Sponge Construction" leitet sich von einer Analogie zu einem Schwamm her. Absorb nimmt das Wasser auf und Squeeze gibt es wieder ab.

Die Permutationsfunktion Keccak-f wendet nacheinander die Funktionen Chi, Theta, Pi, Rho und Iota an und wiederholt dies 12+2*l Runden.
Der State ist ein Wert aus b = 5 * 5 * w Bits, wobei gilt w = 2l mit 0 < l < 6. Optimalerweise wird w so gewählt, dass es der Länge eines CPU-Wortes entspricht. Bei 32-Bit-Architekturen ist l = 5 und b = 800. Diese Version von Keccak wird auch Keccak[800] bezeichnet.

Zur Visualisierung der Permutationen wird der State in einer dreidimensionalen Blockform dargestellt.

Die genaue Spezifikation des Keccak-Algorithmus ist unter keccak.noekeon.org zu finden.