Keccak

Fortgeschritten

Keccak (ausgesprochen „Ketschak“) ist eine vielseitig nutzbare Funktion, die von Guido Bertoni, Joan Daemen, Michaël Peeters und Gilles Van Assche entwickelt wurde. Während sie auch für andere Zwecke verwendet werden kann, wird sie vor allem als Hash-Funktion eingesetzt, die im Vergleich zu älteren Hash-Algorithmen wie SHA-1 und SHA-2 ein höheres Maß an Sicherheit bietet.

SHA steht für Secure Hash Algorithm und bezeichnet eine Reihe von kryptografischen Hash-Funktionen, die vom US National Institute of Standards and Technology (NIST) veröffentlicht wurden. Sowohl SHA-1 als auch SHA-2 wurden von der Nationalen Sicherheitsbehörde der USA (NSA) entwickelt und weisen daher eine ähnliche Struktur auf. Obwohl der Keccak-Algorithmus die gleiche Ausgabegröße (Hash-Längen) wie SHA-2 unterstützt, ist seine Funktionsweise eine ganz andere. Dennoch zählt Keccak zur SHA-Familie und wird oft auch als SHA-3 bezeichnet.

Im Jahr 2004 wurden theoretische Angriffe auf SHA-1 durchgeführt und 2005 offengelegt. Einige Jahre später, im Jahr 2011, wurde SHA-2 vom NIST zur neuen Standard-Hash-Funktion erklärt, die von nun an verwendet werden sollte. Die Umstellung von SHA-1 auf SHA-2 verlief jedoch recht schleppend, und erst Anfang 2017 wechselte ein großer Teil der Entwickler und Informatiker schließlich zu SHA-2. Nur wenig später präsentierten Forscher von Google im Februar 2017 einen erfolgreichen SHA-1-Kollisionsangriff. Seither gilt SHA-1 als nicht mehr sicher, und es wird von einer Verwendung abgeraten.
Die Entwicklung der Keccak-Funktion (SHA-3) begann etwa 2007, nachdem das NIST einen öffentlichen Wettbewerb und ein Prüfverfahren angekündigt hatte, um eine neue kryptografische Hash-Funktion zu finden, die die potenziellen Schwachstellen der Vorgänger SHA-1 und SHA-2 beseitigen konnte.

Zwar war noch kein bedeutender Angriff auf SHA-2 demonstriert worden, doch wird grundsätzlich davon ausgegangen, dass Hash-Funktionen mit der Zeit geknackt werden und es Jahre dauert, bis eine neue Standardfunktion entwickelt wird. Vor diesem Hintergrund und angesichts der erfolgreichen Angriffe auf SHA-1 in den Jahren 2004 und 2005 hielt das NIST die Entwicklung eines neuen kryptografischen Hash-Algorithmus für notwendig. 2012 wurde Keccak vom NIST zum Gewinner des Wettbewerbs erklärt und als neuester Vertreter der SHA-Familie (also SHA-3) standardisiert. 

Einer der Gründe, warum Keccak vom NIST ausgewählt wurde, ist die innovative Struktur, die sich als sicherer und effizienter als die der anderen Algorithmen erwies. Technisch gesehen basiert der SHA-3-Algorithmus auf den sogenannten Schwammfunktionen (auch Schwammkonstruktion genannt) und unterscheidet sich damit von der Merkle-Damgård-Konstruktion, die von SHA-1 und SHA-2 verwendet wird.

Zurzeit gilt SHA-2 noch als sicher und ist weit verbreitet. Beispielsweise wird SHA-256 von Bitcoin und anderen Kryptowährungen verwendet und spielt eine entscheidende Rolle beim Mining-Prozess. In Zukunft dürfte sich jedoch zunehmend SHA-3 durchsetzen, da die Hash-Funktion als sehr sicher angesehen wird. Gleichzeitig werden in den kommenden Jahren wahrscheinlich weitere kryptografische Hash-Algorithmen hinzukommen, da sich die Kryptografie weiterentwickelt und mit der Entdeckung neuer Schwachstellen zu rechnen ist.