Hawkynt

EnRUPT

Cryptographic primitive based on XXTEA using unbalanced Feistel network. Submitted to SHA-3 competition but broken by multiple practical attacks including collision, preimage, and chosen plaintext vulnerabilities.

Properties

Property Value
Category Block Ciphers
Sub-category Block Cipher
Security status ❌ Broken
Complexity Intermediate
Inventor Sean O’Neil, Karsten Nohl, Luca Henzen
Year 2008
Origin πŸ‡ΊπŸ‡Έ United States
Source algorithms/block/enrupt.js

Parameters

Parameter Supported values
Key sizes 4 bytes (32 bits) to 64 bytes (512 bits) in steps of 4 bytes
Block sizes 8 bytes (64 bits) to 1024 bytes (8192 bits) in steps of 4 bytes

Security

Status: ❌ Broken

Known vulnerabilities

Issue Description Mitigation
Collision Attack Practical collision attack with 2^40 time complexity DO NOT USE - Algorithm is cryptographically broken
Preimage Attack Meet-in-the-middle preimage attack with 2^480 complexity against EnRUPT-512 hash DO NOT USE - Algorithm is cryptographically broken
Chosen Plaintext Attack Related-key chosen plaintext attack with 2^15 queries against block cipher DO NOT USE - Algorithm is cryptographically broken
Related-Key Attacks Fast related-key attacks stemming from weak key schedule properties DO NOT USE - Severe key schedule vulnerabilities

Documentation

References

Test vectors

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

Vector 1 β€” EnRUPT 8-byte block - all zeros (matches XXTEA for minimal block)

Field Value
key 00000000000000000000000000000000
input 0000000000000000
expected ab043705808c5d57

Vector 2 β€” EnRUPT 16-byte block - demonstrates different round count

Field Value
key 0102040810204080fffefcf8f0e0c080
input 00000000000000000000000000000000
expected 38b678919f2828418fe77d7d40c4c2ed

Vector 3 β€” EnRUPT 8-byte block - mixed key for verification

Field Value
key 0102040810204080fffefcf8f0e0c080
input 0000000000000000
expected a20a9e9c22f12184

← All algorithms