KeeLoq variant from the DarkCrypt Total Commander plugin: standard 528-round NLFSR core, but block and key words are packed little-endian (vs. big-endian in common reference implementations). 32-bit block, 64-bit key.
| Property | Value |
|---|---|
| Category | Block Ciphers |
| Sub-category | Block Cipher |
| Security status | ❌ Broken |
| Complexity | Beginner |
| Inventor | Nanoteq (Willem Smit); DarkCrypt packaging by Alexander Myasnikov |
| Year | 1985 |
| Origin | 🇷🇺 Russia |
| Source | algorithms/block/darkcrypt-keeloq.js |
| Parameter | Supported values |
|---|---|
| Key sizes | 8 bytes (64 bits) |
| Block sizes | 4 bytes (32 bits) |
Status: ❌ Broken
| Issue | Description | Mitigation |
|---|---|---|
| Cryptographically broken | Practical key-recovery attacks exist against KeeLoq; not suitable for real use. | Use AES or another vetted cipher. |
3 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — Published KeeLoq vector, in DarkCrypt little-endian byte order
| Field | Value |
|---|---|
key |
49d99fb70167ec5c |
input |
dbe241f7 |
expected |
df4c4fe4 |
Vector 2 — DarkCrypt Keeloq — incrementing key/plaintext
| Field | Value |
|---|---|
key |
0001020304050607 |
input |
00010203 |
expected |
24bc009e |
Vector 3 — DarkCrypt Keeloq — shifted incrementing key/plaintext
| Field | Value |
|---|---|
key |
0102030405060708 |
input |
10111213 |
expected |
75c2a9d9 |