Whirlpool (Hash -Funktion)

Whirlpool
Allgemein
Designer Vincent Rijmen, Paulo S. L. M. Barreto
Erstmals veröffentlicht 2000, 2001, 2003
Abgeleitet von Quadrat, AES
Zertifizierung Nessie
Detail
Verdauungsgrößen 512 Bit
Sicherheitsansprüche Große Hashsumgröße
Struktur Miyaguchi-Prenel
Runden 10
Beste Öffentlichkeit Kryptanalyse
Im Jahr 2009 a Rebound -Angriff wurde angekündigt, dass volle Kollisionen gegen 4,5 Runden Whirlpool in 2 vorgestellt werden120 Operationen, halbfreie Kollisionen gegen 5,5 Runden in 2120 Zeit- und halbfreie Nahkollisionen gegen 7,5 Runden in 2128 Zeit.[1]

Im Informatik und Kryptographie, Whirlpool (sometimes styled Whirlpool) ist ein Kryptografische Hash -Funktion. Es wurde von entworfen von Vincent Rijmen (Mitschöpfer der fortgeschrittener Verschlüsselungsstandard) und Paulo S. L. M. Barreto, der es zum ersten Mal im Jahr 2000 beschrieb.

Der Hash wurde von der empfohlen Nessie Projekt. Es wurde auch von der übernommen Internationale Standardisierungsorganisation (ISO) und die Internationale Elektrotechnische Kommission (IEC) als Teil des gemeinsamen ISO/IEC 10118-3 internationaler Standard.

Design-Merkmale

Das Whirlpool Galaxy (M51), der den Namen des Algorithmus inspirierte.[2]

Whirlpool ist ein Hash, der nach dem entworfen wurde Quadrat Cipher Blockund gilt als in dieser Familie der Blockverschnitten.

Whirlpool ist ein Miyaguchi-Prenel Konstruktion basierend auf einem im Wesentlichen modifizierten fortgeschrittener Verschlüsselungsstandard (AES).

Whirlpool übernimmt eine Länge von weniger als 2256 Bits und gibt einen 512-Bit zurück Nachrichtendigest.[3]

Die Autoren haben das erklärt

"Whirlpool wird nicht patentiert (und wird niemals). Es kann für jeden Zweck kostenlos verwendet werden."[2]

Versionsänderungen

Der ursprüngliche Whirlpool wird genannt Whirlpool-0Die erste Überarbeitung von Whirlpool wird genannt Whirlpool-T und die neueste Version wird genannt Whirlpool In den folgenden Testvektoren.

  • In der ersten Revision im Jahr 2001 die S-Box wurde von einem zufällig generierten eines mit guten kryptografischen Eigenschaften zu einem, was besser kryptografische Eigenschaften hat und in der Hardware einfacher zu implementieren ist.
  • In der zweiten Revision (2003) ein Fehler in der Diffusionsmatrix Es wurde festgestellt, dass die geschätzte Sicherheit des Algorithmus unter seinem Potenzial verringert wurde.[4] Das Ändern der 8x8 rotierenden Matrixkonstanten von (1, 1, 3, 1, 5, 8, 9, 5) auf (1, 1, 4, 1, 8, 5, 2, 9) löste dieses Problem.

Interne Struktur

Die Whirlpool -Hash -Funktion ist a Merkle -Damgård -Konstruktion basierend auf einem AES-wie Cipher Block Gewinnen Miyaguchi -Prenel Modus.[2]

Das Cipher Block W besteht aus einer 8 × 8 -Zustandsmatrix von Bytes für insgesamt 512 Bit.

Der Verschlüsselungsprozess besteht aus der Aktualisierung des Staates mit vier Rundenfunktionen über 10 Runden. Die vier Rundenfunktionen sind Subbytes (SB), ShiftColumns (SC), Mixrows (MR) und AddroundKey (AK). Während jeder Runde wird der neue Zustand als berechnet als.

Subbytes

Das Subbytes Der Betrieb wendet unabhängig voneinander eine nichtlineare Permutation (S-Box) auf jeden Byte des Staates an. Die 8-Bit-S-Box besteht aus 3 kleineren 4-Bit-S-Boxen.

ShiftColumns

Das ShiftColumns Die Operation verschiebt jedes Byte in jeder Säule des Zustands. Spalte j Hat seine Bytes nach unten verschoben j Positionen.

Mischung

Das Mischung Der Betrieb ist eine rechte Multiplikation jeder Zeile um eine 8 × 8-Matrix über . Die Matrix wird so ausgewählt, dass die Zweignummer (eine wichtige Eigenschaft beim Betrachten des Widerstandes gegen Differentialkryptanalyse) ist 9, was maximal ist.

AddroundKey

Das AddroundKey Der Betrieb verwendet bitweise xor So fügen Sie dem aktuellen Status einen vom Schlüsselplan berechneten Schlüssel hinzu. Der Schlüsselplan ist identisch mit der Verschlüsselung selbst, mit Ausnahme der AddroundKey -Funktion wird durch eine ersetzt AddroundConstant Funktion, die in jeder Runde eine vorgegebene Konstante hinzufügt.

Whirlpool -Hashes

Der Whirlpool -Algorithmus hat sich seit seiner ursprünglichen Spezifikation von 2000 zwei Überarbeitungen unterzogen.

Menschen, die Whirlpool einbeziehen, werden höchstwahrscheinlich die jüngste Überarbeitung von Whirlpool verwenden. Obwohl in früheren Versionen von Whirlpool keine Sicherheitsschwächen bekannt sind, hat die jüngste Überarbeitung eine bessere Eigenschaften der Hardware -Implementierung und ist wahrscheinlich auch sicherer. Wie bereits erwähnt, ist es auch die Version, die im ISO/IEC 10118-3 übernommen wurde internationaler Standard.

Der 512-Bit-Whirlpool-Hashes (ebenfalls bezeichnet Nachrichtenverdauung) werden typischerweise als 128-stellig dargestellt hexadezimal Zahlen.
Das Folgende zeigt eine 43-Byte ASCII Eingabe (keine Zitate) und die entsprechenden Whirlpool -Hashes:

Ausführung Eingabezeichenfolge Berechnete Hash
Whirlpool-0 "The quick brown fox jumps over the lazy dog"
 4F8F5CB531E3D49A61CF417CD133792CCFA501FD8DA53EE368FED20E5FE0248C 3A0B64F98A6533ECEE1DA614C3A8DDDDDDDDDDDDDD971D57C1320205FEE6D971D57C1320205FEE6D971D57C1320205FEE6D971D57C1320205FEE
Whirlpool-T "The quick brown fox jumps over the lazy dog"
 3CCF8252D8BBB258460D9AA999C06EE38E67CB546CFFCF48E91F700F6FC7C183  AC8CC3D3096DD30A35B01F4620A1E3A20D79CD5168544D9E1B7CDF49970E87F1
Whirlpool "The quick brown fox jumps over the lazy dog"
 B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725F  D2B52EB6544EDCACD6F8BEDDFEA403CB55AE31F03AD62A5EF54E42EE82C3FB35

Sogar eine kleine Änderung der Nachricht wird (mit einer extrem hohen Wahrscheinlichkeit von ) führen zu einem anderen Hash, der wird normalerweise Sieht ganz anders aus, genau wie zwei nicht verwandte Zufallszahlen. Das Folgende zeigt das Ergebnis des Änderns der vorherigen Eingabe durch einen einzelnen Buchstaben (ein einzelnes Bit, sogar in ASCII-kompatiblen Codierungen), und ersetzt d mit e:

Ausführung Eingabezeichenfolge Berechnete Hash
Whirlpool-0 "Der schnelle braune Fuchs springt über die Faulen über EOG"
 228FBF76B2A93469D4B25929836A12B7D7F2A0803E43DABA0C7FC38BC11C8F2A  9416BBCF8AB8392EB2AB7BCB565A64AC50C26179164B26084A253CAF2E012676
Whirlpool-T "Der schnelle braune Fuchs springt über die Faulen über EOG"
 C8C15D2A0E0DE6E6885E8A7D9B8A9139746DA299AD50158F5FA9EECDDEF744F9 1B8B83C617080D77CB4247B1E964C2959C29C507AB2DB0F1F3BF3B29CAWAGAGAE
Whirlpool "Der schnelle braune Fuchs springt über die Faulen über EOG"
 C27BA124205F72E6847F3E19834F925CC666D0974167AF915BB462420ED40CC5 0900D85A1F923219D83235750492D5C14301A7698888388383838383834c2635E69d06f2d5C14301a76988838383834c2635E69d06f2d5C14301a76988838383883834c2635e69d06f 2

Der Hash einer String mit Null-Länge ist:

Ausführung Eingabezeichenfolge Berechnete Hash
Whirlpool-0 "" "
 B3E1AB6EAF640A34F784593F2074416ACCD3B8E62C620175FCA0997B1BA23473 39AAA0D79E754C308209EEA36811DFA40C1C32F1A2B9004725D987D3651C32F1A2B9004725D987D365555555D32B9004725D987D36555551C32B1A2B9004725d987d36555555d32
Whirlpool-T "" "
 470F0409ABAA446E49667D4EBE12A14387CEDBD10DD17B8243CAD550A089DC0F  EEA7AA40F6C2AAAB71C6EBD076E43C7CFCA0AD32567897DCB5969861049A0F5A
Whirlpool "" "
 19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A7  3E83BE698B288FEBCF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3

Implementierungen

Die Autoren bieten Referenzimplementierungen des Whirlpool -Algorithmus, einschließlich einer Version in C und eine Version geschrieben in Java.[2] Diese Referenzimplementierungen wurden öffentlich zugänglich gemacht.[2]

Annahme

Zwei der ersten weit verbreiteten kryptografischen Mainstream Freeotfe, gefolgt von TrueCrypt im Jahr 2005.

Veracrypt (eine Gabel von TrueCrypt) Eingeschlossene Whirlpool (die endgültige Version) als einer seiner unterstützten Hash -Algorithmen.[5]

Siehe auch

Verweise

  1. ^ Florian Mendel1, Christian Reventhberger, Martin Schläffer, Søren S. Thomsen (2009-02-24). Der Rebound -Angriff: Kryptanalyse von reduziertem Whirlpool und Grøstl (PDF). Schnelle Softwareverschlüsselung: 16. International Workshop.{{}}: Cs1 montiert: Mehrfachnamen: Autorenliste (Link)
  2. ^ a b c d e Paulo S. L. M. Barreto (2008-11-25). "Die Whirlpool -Hash -Funktion". Archiviert von das Original Am 2017-11-29. Abgerufen 2018-08-09.
  3. ^ Barreto, Paulo S. L. M. & Rijmen, Vincent (2003-05-24). "Die Whirlpool -Hashing -Funktion". Archiviert von das Original (POSTLEITZAHL) Am 2017-10-26. Abgerufen 2018-08-09. {{}}: Journal zitieren erfordert |journal= (Hilfe)
  4. ^ Kyoji, Shibutani & Shirai, Taizo (2003-03-11). "Auf der Diffusionsmatrix, die in der Whirlpool -Hashing -Funktion verwendet wird" (PDF). Abgerufen 2018-08-09. {{}}: Journal zitieren erfordert |journal= (Hilfe)
  5. ^ "Whirlpool". Veracrypt -Dokumentation. IDRIX. Abgerufen 2018-08-09.

Externe Links