Original-URL des Artikels: http://www.golem.de/news/sha-3-und-keccak-mehr-als-nur-hashing-1302-97530.html    Veröffentlicht: 12.02.2013 11:54

SHA-3 und Keccak

Mehr als nur Hashing

Aufgrund seiner Flexibilität eignet sich der künftige Hash-Standard Keccak nicht nur als gewöhnliche Hash-Funktion. Die Entwickler von Keccak präsentierten zahlreiche weitere Einsatzzwecke auf der Fosdem 2013.

Auf der Open-Source-Konferenz Fosdem in Brüssel hat das Team hinter dem Hash-Algorithmus Keccak zahlreiche Möglichkeiten vorgestellt, die über die Nutzung als reine Hash-Funktion hinausgehen. So kann der Algorithmus beispielsweise das Authentifizierungsverfahren HMAC ablösen, zur Stromverschlüsselung eingesetzt werden oder sogenannte Maskengenerierungsfunktionen ersetzen. Keccak gewann im vergangenen Jahr einen Wettbewerb um den künftigen kryptographischen Hash-Standard SHA-3. Der Wettbewerb wurde 2007 von der US-Standardisierungsbehörde NIST initiiert, da zahlreiche frühere Hash-Funktionen wie MD5 und SHA-1 Sicherheitsprobleme aufwiesen.

Hash-Funktionen kommen in fast allen kryptographischen Anwendungen als Baustein zum Einsatz. Ein typisches Beispiel sind etwa Signaturfunktionen. So wird etwa der Signaturalgorithmus RSA in der Regel nicht auf eine Nachricht direkt angewandt, sondern auf den Hash einer Nachricht. Ein weiterer klassischer Einsatzzweck von Hash-Funktionen ist die Identifizierung von Objekten über Fingerprints. So wird etwa im Versionskontrollsystem GIT jeder Commit über einen SHA-1-Hash referenziert.

Keccak kann auch zur sicheren Speicherung von Passwörtern genutzt werden. Passwörter sollten nie direkt im Klartext abgespeichert werden - im Falle eines Servereinbruchs stünden dann einem Angreifer sämtliche Passwörter zur Verfügung. Stattdessen wird ein Zufallswert gebildet - der Salt - und gemeinsam mit dem Passwort gehasht. Abgespeichert werden nun Salt und Hash.

Keccak ist so langsam wie nötig

Sollte ein Angreifer Zugriff auf die gespeicherten Daten erhalten, kann er diese allerdings immer noch durch das Ausprobieren gängiger Passwörter, genannt Wörterbuchangriff, angreifen. Daher haben Hash-Funktionen in diesem Fall eine besondere Anforderung: Sie sollten möglichst langsam und ineffizient arbeiten, während sonst meist eine schnelle Hash-Funktion von Vorteil ist. Hier kann die Flexibilität von Keccak helfen. "Keccak kann so langsam sein, wie man möchte", erklärte Joan Daemen auf der Fosdem. Durch die Wahl geeigneter Parameter wird somit eine besonders ineffiziente Hash-Funktion geschaffen. Und je langsamer die Hash-Funktion, desto langsamer sind Wörterbuchangriffe auf gestohlene Passwort-Hashes.

Zur Nachrichtenauthentifizierung wurde im Zusammenspiel mit früheren Hash-Funktionen ein Verfahren namens HMAC eingesetzt. Dabei wird die Nachricht gemeinsam mit einem geheimen Sitzungsschlüssel, der vorher ausgehandelt wurde, gehasht. So kann der Empfänger die Echtheit einer Nachricht überprüfen.

Obsoletes HMAC

Bei Keccak ist HMAC nicht mehr nötig. Die Hash-Funktion liefert bereits ein Nachrichtenauthentifizierungsverfahren mit. Ebenso lässt sich Keccak als Stromchiffrierfunktion einsetzen. In einem besonderen Duplexverfahren können diese beiden Schritte kombiniert werden. Für sichere Protokolle wie SSH oder TLS, die üblicherweise Nachrichtenauthentizität und Verschlüsselung benötigen, kann somit beides in einer Berechnung durchgeführt werden.

Maskengenerierung

Ein weiterer Einsatzzweck von Keccak sind sogenannte Maskengenerierungsfunktionen. Dabei handelt es sich, einfach gesprochen, um Hash-Funktionen, die eine Ausgabe mit gewählter Länge berechnen. Üblicherweise haben Hash-Funktionen eine feste Ausgabelänge - SHA-1 etwa 160 Bit, SHA-512 512 Bit. Eine Maskengenerierungsfunktion liefert eine Ausgabe einer beliebigen, einstellbaren Länge.

Eingesetzt werden diese etwa in den neueren RSA-Standards RSA-PSS und RSA-OAEP, die in PKCS #1 v2.1 spezifiziert sind. Dort kommt eine Funktion namens MGF1 zum Einsatz, die auf bestehende Hash-Funktionen aufbaut. Keccak bietet auch hier einen speziellen Modus und kann so direkt als Maskengenerierungsfunktion genutzt werden.

Die Keccak-Entwickler wiesen zuletzt darauf hin, dass der SHA-3-Standard bislang noch nicht endgültig verabschiedet wurde. Der finale Standard wird vermutlich nur eine Auswahl der flexiblen Möglichkeiten enthalten.  (zeit-hb)


Verwandte Artikel:
Keccak: Hash-Algorithmus für SHA-3 festgelegt   
(03.10.2012 16:07, http://www.golem.de/news/keccak-hash-algorithmus-fuer-sha-3-festgelegt-1210-94887.html)
Skriptsprachen: PHP 5.5 als erste Alpha veröffentlicht   
(19.11.2012 11:13, http://www.golem.de/news/skriptsprachen-php-5-5-als-erste-alpha-veroeffentlicht-1211-95786.html)
PHP 5.5: Sichere Passwörter mit neuem Crypt-API   
(13.09.2012 12:26, http://www.golem.de/news/php-5-5-sichere-passwoerter-mit-neuem-crypt-api-1209-94534.html)
C29x: Sparsame Krypto-Prozessoren von Freescale   
(31.01.2013 12:28, http://www.golem.de/news/c29x-sparsame-krypto-prozessoren-von-freescale-1301-97297.html)
Sicherheit: OpenSSL behebt Fehler im ASN1-Parser   
(20.04.2012 15:19, http://www.golem.de/news/sicherheit-openssl-behebt-fehler-im-asn1-parser-1204-91307.html)

© 2014 by Golem.de