Hawkynt

FISH Stream Cipher

FISH (FIbonacci SHrinking) Stream Cipher designed by Blöcher and Dichtl (1993). Combines Lagged Fibonacci generators with shrinking generator principle for fast software implementation. Cryptographically broken by Ross Anderson.

Properties

Property Value
Category Special Algorithms
Sub-category Stream Cipher
Security status ❌ Broken
Complexity Intermediate
Inventor Blöcher, Dichtl
Year 1993
Origin 🇩🇪 Germany
Source algorithms/special/fish.js

Parameters

Parameter Supported values
Key sizes 4 bytes (32 bits) to 256 bytes (2048 bits)

Security

Status: ❌ Broken

Known vulnerabilities

Issue Description Mitigation
Known Plaintext Attack — Ross Anderson demonstrated successful cryptanalysis with few thousand bits of known plaintext
Statistical Weaknesses — Lagged Fibonacci generators have inherent statistical weaknesses exploitable in cryptanalysis

Documentation

References

Test vectors

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

Vector 1 — Basic keystream generation

Field Value
key 74657374
input 48656c6c6f20576f726c64
expected ec865add438ba0a2fe556b

Vector 2 — Empty input test

Field Value
key 746573746b6579
input (empty)
expected (empty)

Vector 3 — Single byte test

Field Value
key 6b657931
input 41
expected fe

← All algorithms