Tweaked-IV-setup variant of Py by Biham and Seberry (2007), fixing the equivalent-IV weakness of the original Py while keeping its key setup and round function unchanged. As implemented in the DarkCrypt Total Commander plugin, which hardcodes a 512-bit key and 512-bit IV.
| Property | Value |
|---|---|
| Category | Stream Ciphers |
| Sub-category | Rolling-Array Stream Cipher |
| Security status | ❌ Broken |
| Complexity | Advanced |
| Inventor | Eli Biham, Jennifer Seberry |
| Year | 2007 |
| Origin | 🇮🇱 Israel |
| Source | algorithms/stream/darkcrypt-tpy.js |
| Parameter | Supported values |
|---|---|
| Key sizes | 64 bytes (512 bits) |
| Nonce sizes | 64 bytes (512 bits) |
Status: ❌ Broken
| Issue | Description | Mitigation |
|---|---|---|
| Distinguishing attacks | Crowley and Paul/Preneel/Sekar published distinguishing attacks on TPy independent of the key schedule fix. | Use a vetted modern cipher. |
2 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — DarkCrypt TPy keystream
| Field | Value |
|---|---|
iv |
00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 |
key |
000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e3f |
input |
00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 |
expected |
9757dfc4e1f7caf9c04013c7269f05a5 5886a19930dd0cd81ca74a2f6eea4ec2 dffb3ed25d10deb24387a064e90b6aeb 5e95f9017273d9653fa9cc28a72f08e7 83f2647815bccad5caa41423f79cfdec 6c1f8f7461dc21b01c80d8152a6d09b6 5fd1f0ed2f942987dab01aacee09124f 5593ecebdce0d166eb8d33d19ac9c09c |
Vector 2 — DarkCrypt TPy — non-zero key and IV, 48-byte message (verified against the DarkCrypt implementation)
| Field | Value |
|---|---|
key |
0b30557a9fc4e90e33587da2c7ec1136 5b80a5caef14395e83a8cdf2173c6186 abd0f51a3f6489aed3f81d42678cb1d6 fb20456a8fb4d9fe23486d92b7dc0126 |
iv |
073c71a6db10457aafe4194e83b8ed22 578cc1f62b6095caff34699ed3083d72 a7dc11467bb0e51a4f84b9ee23588dc2 f72c6196cb00356a9fd4093e73a8dd12 |
input |
03203d5a7794b1ceeb0825425f7c99b6 d3f00d2a4764819ebbd8f5122f4c6986 a3c0ddfa1734516e8ba8c5e2ff1c3956 |
expected |
bf67c4b29fe7b70e0cc9349a01f5d10c 9f74bd60a03c6f62b117362453259152 c2aab066604515b33b6e1fc28c3698b3 |