JH (Hashfunktion)
# JH (Hashfunktion)

JH ist eine kryptologische Hashfunktion, die von Hongjun Wu entwickelt wurde. JH war einer der fünf Finalisten des SHA-3-Auswahlverfahrens des NIST und ist frei von Patenten.

## Struktur

JH weist eine für Hashfunktionen neue Struktur auf, welche die Vorteile der Blockchiffren AES und Serpent in sich vereinen soll.

Das Design beruht auf einer Blockchiffre mit konstantem Schlüssel und einer Größe des Datenblocks von 1024 Bit. In jeder Runde werden immer vier Bit in eine von zwei 4×4 S-Boxen eingegeben und substituiert. Ein Schlüsselbit bestimmt jeweils, welche der S-Boxen angewandt wird. Danach werden immer zwei dieser 4-Bit-Abschnitte gemischt, was auf ähnliche Weise wie in der Mix-Columns-Operation von AES geschieht. Die 4-Bit-Abschnitte werden dann permutiert, so dass jeder in der nächsten Runde mit einem anderen gemischt wird. Die Rundenzahl war ursprünglich 35,5 und wurde für die dritte Runde des SHA3-Auswahlverfahrens auf 42 erhöht.

Die Nachricht wird in 512 Bit-Blöcke unterteilt. Ein Block wird mit der ersten Hälfte des Datenblocks XOR-verknüpft, 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 von 224, 256, 384 oder 512 Bit.

## Sicherheit

Unter den SHA-3-Finalisten war JH der Algorithmus, der als am wenigsten analysiert galt. Zudem wies er eine geringe Sicherheitsmarge für Kollisionen auf, die man aus Performance-Gründen nicht durch eine Erhöhung der Anzahl der Runden erweitern wollte. Als Nachteil im Auswahlverfahren erwies sich auch die neuartige Struktur. Praktisch relevante Kryptoanalysen sind jedoch nicht bekannt.

