Hawkynt

Hermes8 (DarkCrypt)

Hermes8 byte-oriented stream cipher as shipped in the DarkCrypt Total Commander plugin. Built around the AES S-box with a 17-byte state register and an evolving 16-byte key register. 128-bit key, 128-bit IV.

Properties

Property Value
Category Stream Ciphers
Sub-category Stream Cipher
Security status 🎓 Educational Only
Complexity Intermediate
Inventor Ulrich Kaiser (Hermes8); DarkCrypt variant by Alexander Myasnikov
Year 2005
Origin 🇷🇺 Russia
Source algorithms/stream/darkcrypt-hermes.js

Parameters

Parameter Supported values
Key sizes 16 bytes (128 bits)
Nonce sizes 16 bytes (128 bits)

Security

Status: 🎓 Educational Only

Known vulnerabilities

Issue Description Mitigation
Not selected for eSTREAM Hermes8 was an eSTREAM Phase 1 candidate that was not advanced; the DarkCrypt variant is unanalysed. Use a vetted cipher such as ChaCha20 or AES-GCM.

Documentation

Test vectors

3 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.

Vector 1 — DarkCrypt Hermes - 128 zero bytes, key 00..0f, iv 0

Field Value
key 000102030405060708090a0b0c0d0e0f
iv 00000000000000000000000000000000
input 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000
expected 896e260cddf5618498ce69e189f2c6e8 d2ece3bae069a04485b9853fec8bf3c4 ae6682ed94adc3854f080d1d161146d0 00e22ce9e71c72ea29808d5dcfcc7121 bbe2234825f52a48f29c5a833c0df270 b6da8d53350b29129d8e1be363200059 5582ceb16211c4f5dad13ab26b763663 25b6b9923a28e1becc05ad433a887a38

Vector 2 — DarkCrypt Hermes - encrypt 00..3f, key 00..0f, iv 0

Field Value
key 000102030405060708090a0b0c0d0e0f
iv 00000000000000000000000000000000
input 000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e3f
expected 896f240fd9f0678390c763ea85ffc8e7 c2fdf1a9f47cb6539da09f24f096eddb 8e47a0ceb088e5a2672127363a3c68ff 30d31edad32944dd11b9b766f3f14f1e

Vector 3 — DarkCrypt Hermes — non-zero key and IV, 48-byte message (verified against the DarkCrypt implementation)

Field Value
key 0b30557a9fc4e90e33587da2c7ec1136
iv 073c71a6db10457aafe4194e83b8ed22
input 03203d5a7794b1ceeb0825425f7c99b6 d3f00d2a4764819ebbd8f5122f4c6986 a3c0ddfa1734516e8ba8c5e2ff1c3956
expected d15c6002a28c7cb2065390cab8313602 a53f1f49747205b26212c787171bfc43 2b37c2e385f22ad20e80d96aca344077

← All algorithms