Unbalanced Feistel network by Yuliang Zheng over a queue of eight words. Each round builds one new word from a nonlinear Boolean combination of the other seven, rotates it by an amount derived from itself, and folds in the discarded tail word and a round key. Block width 64, 128 or 256 bits; key any multiple of 16 bits from 48 to 256; round count any multiple of 4 from 32 up.
| Property | Value |
|---|---|
| Category | Block Ciphers |
| Sub-category | Block Cipher |
| Security status | Not classified |
| Complexity | Intermediate |
| Inventor | Yuliang Zheng |
| Year | 1997 |
| Origin | 🇦🇺 Australia |
| Source | algorithms/block/speed.js |
| Parameter | Supported values |
|---|---|
| Key sizes | 6 bytes (48 bits) to 32 bytes (256 bits) in steps of 2 bytes |
| Block sizes | 8 bytes (64 bits); 16 bytes (128 bits); 32 bytes (256 bits) |
Status: not classified — treat as unverified.
| Issue | Description | Mitigation |
|---|---|---|
| Broken by differential and related-key attacks | Hall, Kelsey, Rijmen, Schneier and Wagner broke the cipher at every published parameter set, including a differential attack on the full 48-round 128-bit version. | Use AES or another vetted cipher. |
3 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — Paper certification data — w=64, l=64, r=64
| Field | Value |
|---|---|
key |
0000000000000000 |
blockSize |
8 |
rounds |
64 |
input |
0000000000000000 |
expected |
2e008019bc26856d |
Vector 2 — Paper certification data — w=128, l=128, r=128
| Field | Value |
|---|---|
key |
ffffffffffffffffffffffffffffffff |
blockSize |
16 |
rounds |
128 |
input |
ffffffffffffffffffffffffffffffff |
expected |
6c13e4b9c3171571ab54d816915bc4e8 |
Vector 3 — Paper certification data — w=256, l=256, r=256
| Field | Value |
|---|---|
key |
605f5e5d5c5b5a595857565554535251504f4e4d4c4b4a494847464544434241 |
blockSize |
32 |
rounds |
256 |
input |
1f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100 |
expected |
3de16cfa9a626847434e1574693fec1b3faa558a296b61d708b131ccba311068 |