JH Hash

Kategorisierung:Modern / Hashes und Prüfsummen
Herkunft / Verwendung: JH ist eine Hashfunktion, die von Hongjun Wu 2008 entwickelt wurde. JH war einer der Finalisten im SHA-3-Auswahlverfahren der NIST. Die Hashlänge ist variabel und beträgt 224, 256, 384, oder 512 bit (entsprechend 28, 32, 48 oder 64 Bytes).

Spezifikation des Algorithmus

JH vereinigt die Vorteile der Blockchiffren AES. JH basiert auf einer Blockchiffre mit konstantem Schlüssel und einer Größe des Datenblocks von 1024 Bit. In jeder der 42 Runden werden vier Bit in eine von zwei 4x4 S-Boxen substituiert. Welche der S-Boxen gerade angewandt wird, richtet sich nach einem Schlüsselbit. In nächsten Schritt folgt ein Mix zwei dieser 4-Bit-Abschnitte, ähnlich wie bei AES. Zum Schluss einer Runde werden die 4-Bit-Abschnitte dann permutiert, so dass jeder in der nächsten Runde mit einem anderen gemischt wird. Die Verarbeitung geschieht in 512-bit-Blöcken, wobei ein Block mit der ersten Hälfte des Datenblocks XOR-verknüpft wird, anschließend wird der Datenblock verschlüsselt, worauf der Nachrichtenblock mit der zweiten Hälfte des Datenblocks XOR-verknüpft wird. Nachdem so alle Nachrichtenblöcke verarbeitet wurden, entnimmt man dem Datenblock den Hashwert.

Eine genaue Spezifikation findet sich auf der Website des Autors.

Beispiel

Klartext:Beispielklartext
JH-224 Hash:330B668A626183454D868E3886EC8CC810AAF29E5B77BDEFBE2C14FC
JH-256 Hash:6F2C14B2C3C6BBF544A41128E1507D68C163483B0AAD88FBAE1756B60A891AC9
JH-384 Hash:58A4C4D45CFCE896E6CC9F2E48B5DDB5A1F9ED3125C30D6E4F249FFE2C28768322540C4ACA09E07070413372D66C4100
JH-512 Hash:81CFB1661FD100E3E17D7545210EEB50772E3663D558CDC8F8525F1EEC44DF8A AF95411D058B46AEE00B6D4DA631B32A5D2322DC3F074C4F8D5917189852E3FE

Code / Chiffre online dekodieren / entschlüsseln bzw. kodieren / verschlüsseln (Decoder / Encoder / Solver-Tool)