eSTREAM Phase 3 finalist with large table-based design. Uses two 1024-word tables with nonlinear update functions for high-speed software encryption. Designed by Hongjun Wu.
| Property | Value |
|---|---|
| Category | Stream Ciphers |
| Sub-category | Stream Cipher |
| Variant | 256 |
| Security status | Not classified |
| Complexity | Advanced |
| Inventor | Hongjun Wu |
| Year | 2004 |
| Origin | 🇨🇳 China |
| Source | algorithms/stream/hc.js |
| Parameter | Supported values |
|---|---|
| Key sizes | 32 bytes (256 bits) |
| Block sizes | 1 byte (8 bits) to 65536 bytes (524288 bits) |
| Flag | Value |
|---|---|
HAS_XY_ARRAYS |
No |
Status: not classified — treat as unverified.
| Issue | Description | Mitigation |
|---|---|---|
| Distinguishing Attack | 2^255 complexity distinguishing attack (impractical) | — |
4 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — HC-256 Test Vector - Zero Key/IV
Source: eSTREAM verified implementation
| Field | Value |
|---|---|
key |
0000000000000000000000000000000000000000000000000000000000000000 |
iv |
0000000000000000000000000000000000000000000000000000000000000000 |
input |
0000000000000000000000000000000000000000000000000000000000000000 |
expected |
5b078985d8f6f30d42c5c02fa6b6795153f06534801f89f24e74248b720b4818 |
Vector 2 — HC-256 Test Vector - Non-zero Key/IV
Source: eSTREAM verified implementation
| Field | Value |
|---|---|
key |
0053a6f94c9ff24598eb3e91e4378add3083d6297ccf2275c81b6ec11467ba0d |
iv |
0d74db42a91077de45ac137ae148af16b9c6b1f8e9c1a86a6b17f1b9a6c3c8f7 |
input |
0000000000000000000000000000000000000000000000000000000000000000 |
expected |
2ec868d5779c5f522a5e2a9530a675ec359dd8d08845f57064562fe0c5927ea4 |
Vector 3 — DarkCrypt keystream, incremental key
| Field | Value |
|---|---|
key |
000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f |
iv |
0000000000000000000000000000000000000000000000000000000000000000 |
input |
00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 |
expected |
7cb997d6e1b46dd7c0a9629b441c3771 14d6c18f230291fa7ef0b039aedcc9aa a4ae05ba13f3931e3f8373aa320a8bcf 28e825b2084d0fa486be52c92c3c6f14 87f9af5c886705dcbd33d08c62e59c81 4a719c6b0372f44948d5130aaf20289b c3dc704d2ffa09ce7989d5afc977695a fa6c82dd92a9a01cdc5de373127cc4e1 |
Vector 4 — DarkCrypt incremental plaintext, incremental key
| Field | Value |
|---|---|
key |
000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f |
iv |
0000000000000000000000000000000000000000000000000000000000000000 |
input |
000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e3f |
expected |
7cb895d5e5b16bd0c8a068904811397e 04c7d39c371787ed66e9aa22b2c1d7b5 848f279937d6b53917aa59811e27a5e0 18d917813c783993be8768f21001512b |