JH is a SHA-3 finalist designed by Hongjun Wu. A 1024-bit state is regrouped into 256 four-bit elements and driven through 42 rounds of S-box substitution, a maximum distance separable mixing layer and a permutation. This is the 256-bit variant of the round-three design.
| Property | Value |
|---|---|
| Category | Hash Functions |
| Sub-category | SHA-3 Candidate |
| Security status | Not classified |
| Complexity | Not specified |
| Inventor | Hongjun Wu |
| Year | 2011 |
| Origin | 🇨🇳 China |
| Source | algorithms/hash/jh.js |
| Parameter | Supported values |
|---|---|
| Output sizes | 32 bytes (256 bits) |
| Hash sizes | 32 bytes (256 bits) |
Status: not classified — treat as unverified.
| Issue | Description | Mitigation |
|---|---|---|
| Preimage attacks on reduced rounds | Preimage and semi-free-start results exist against JH cut down to a fraction of its 42 rounds. The full function has no published break, but SHA-3 went to Keccak instead. | — |
7 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — NIST SHA-3 KAT Len=0 - empty message, one combined padding block
| Field | Value |
|---|---|
input |
(empty) |
expected |
46e64619c18bb0a92a5e87185a47eef83ca747b8fcc8e1412921357e326df434 |
Vector 2 — NIST SHA-3 KAT Len=8 - one byte
| Field | Value |
|---|---|
input |
cc |
expected |
7b1191f13a2667830142541bfc5918543d2a434c7692e70c3e5e9bbdddb7f581 |
Vector 3 — NIST SHA-3 KAT Len=504 - 63 bytes, one under the block size
| Field | Value |
|---|---|
input |
f57c64006d9ea761892e145c99df1b24 640883da79d9ed5262859dcda8c3c32e 05b03d984f1ab4a230242ab6b78d368d c5aaa1e6d3498d53371e84b0c1d4ba |
expected |
98f236f14420fa4d6d7187d429f446b28a82c359e7d0ff59d0efc983bb224ad9 |
Vector 4 — NIST SHA-3 KAT Len=512 - 64 bytes, exactly the block size
| Field | Value |
|---|---|
input |
e926ae8b0af6e53176dbffcc2a6b88c6 bd765f939d3d178a9bde9ef3aa131c61 e31c1e42cdfaf4b4dcde579a37e150ef bef5555b4c1cb40439d835a724e2fae7 |
expected |
9d35c0cc1880a36ebb6cb33b732c0c2adb4a418b4bf0df9173b539263653e90b |
Vector 5 — NIST SHA-3 KAT Len=520 - 65 bytes, one over the block size
| Field | Value |
|---|---|
input |
16e8b3d8f988e9bb04de9c96f2627811 c973ce4a5296b4772ca3eefeb80a652b df21f50df79f32db23f9f73d393b2d57 d9a0297f7a2f2e79cfda39fa393df1ac 00 |
expected |
334f80e3a32b128528267a1541821dda9ea69199ce506f6e88dcbf35ebb80f4e |
Vector 6 — NIST SHA-3 KAT Len=1016 - 127 bytes, one under two blocks
| Field | Value |
|---|---|
input |
a62fc595b4096e6336e53fcdfc8d1cc1 75d71dac9d750a6133d23199eaac2882 07944cea6b16d27631915b4619f743da 2e30a0c00bbdb1bbb35ab852ef3b9aec 6b0a8dcc6e9e1abaa3ad62ac0a6c5de7 65de2c3711b769e3fde44a74016fff82 ac46fa8f1797d3b2a726b696e3dea553 0439acee3a45c2a51bc32dd055650b |
expected |
7ff3cf7b9a468cfb581a5bd21cc68ff0c3ef3fcfe2a63bd68e9b3934e0ffd488 |
Vector 7 — NIST SHA-3 KAT Len=1024 - 128 bytes, an exact multiple of the block size
| Field | Value |
|---|---|
input |
2b6db7ced8665ebe9deb080295218426 bdaa7c6da9add2088932cdffbaa1c141 29bccdd70f369efb149285858d2b1d15 5d14de2fdb680a8b027284055182a0ca e275234cc9c92863c1b4ab66f304cf06 21cd54565f5bff461d3b461bd40df281 98e3732501b4860eadd503d26d6e6933 8f4e0456e9e9baf3d827ae685fb1d817 |
expected |
43b7d01d93213874b2ac0792bed8c137e865ba5fa87b20a3151a984f4af267a6 |