Curupira-1 block cipher (Barreto and Simplicio, SBRC 2007) as implemented in the DarkCrypt Total Commander plugin: involutional round function (S-box, row permutation, GF(2^8) MDS diffusion, key XOR) over a 3x4 byte state, with a GF(2^8) key schedule. 96-bit block, 96/144/192-bit key. Only the 192-bit key path was vector-validated against the DarkCrypt implementation.
| Property | Value |
|---|---|
| Category | Block Ciphers |
| Sub-category | Block Cipher |
| Security status | 🎓 Educational Only |
| Complexity | Advanced |
| Inventor | Paulo S. L. M. Barreto, Marcos A. Simplicio Jr. (base cipher); DarkCrypt port by Alexander Myasnikov |
| Year | 2007 |
| Origin | 🇧🇷 Brazil |
| Source | algorithms/block/darkcrypt-curupira1.js |
| Parameter | Supported values |
|---|---|
| Key sizes | 12 bytes (96 bits) to 24 bytes (192 bits) in steps of 6 bytes |
| Block sizes | 12 bytes (96 bits) |
Status: 🎓 Educational Only
| Issue | Description | Mitigation |
|---|---|---|
| Unanalyzed variant | Round count and S-box calibrated against a single DarkCrypt build rather than the original academic specification; not recommended 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 — DarkCrypt Curupira1 — zero key/plaintext (192-bit key)
| Field | Value |
|---|---|
key |
000000000000000000000000000000000000000000000000 |
input |
000000000000000000000000 |
expected |
f174d6feb1be8c3487f51330 |
Vector 2 — DarkCrypt Curupira1 — incrementing key/plaintext (192-bit key)
| Field | Value |
|---|---|
key |
000102030405060708090a0b0c0d0e0f1011121314151617 |
input |
000102030405060708090a0b |
expected |
bc8d14a7abf41c2420f73ae8 |
Vector 3 — DarkCrypt Curupira1 — shifted incrementing key/plaintext (192-bit key)
| Field | Value |
|---|---|
key |
0102030405060708090a0b0c0d0e0f101112131415161718 |
input |
101112131415161718191a1b |
expected |
62c69122b36105fc644ed3d6 |