GSM stream cipher using three irregularly clocked LFSRs with majority voting. Educational implementation demonstrating telecommunications security algorithms from cellular networks.
| Property | Value |
|---|---|
| Category | Stream Ciphers |
| Sub-category | Stream Cipher |
| Security status | ❌ Broken |
| Complexity | Intermediate |
| Inventor | ETSI SAGE |
| Year | 1987 |
| Origin | Not specified |
| Source | algorithms/stream/a5.js |
| Parameter | Supported values |
|---|---|
| Key sizes | 8 bytes (64 bits) |
| Block sizes | 1 byte (8 bits) to 65536 bytes (524288 bits) |
Status: ❌ Broken
| Issue | Description | Mitigation |
|---|---|---|
| Time-Memory Tradeoff Attack | Practical real-time key recovery attacks demonstrated by Biryukov-Shamir-Wagner | — |
| Correlation Attack | Exploits linear properties of LFSRs to recover internal state | — |
2 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — A5/1 Test Vector - Key 1
Source: A5/1 reference implementation with frame=0
| Field | Value |
|---|---|
key |
123456789abcdef0 |
input |
000000000000000000000000000000 |
expected |
b7d37880be862cdbf6d401fae7ffa2 |
Vector 2 — A5/1 Test Vector - Key 2
Source: A5/1 reference implementation with different key
| Field | Value |
|---|---|
key |
fedcba9876543210 |
input |
0102030405060708090a0b0c0d0e0f |
expected |
6a97039a899deca7df5a3f722e7bff |