A5/1 is an LFSR based stream cipher used to encrypt on-air mobile communication traffic in the GSM standard.
It combines 3 LFSRs , , of lengths 19, 22 and 23 bits. The keystream bit at each step is the XOR of the output bits of the 3 registers.
Kerckhoffs’s Principle Violation
The A5/1 design was kept secret from its creation in 1987 until 1999, violating Kerckhoffs’s principle.
- 1999
Marc Briceno reverse engineered the design. - 2006
With the design public, Elad Barkan, Eli Biham and Nathan Keller showed how to break the cipher in real time.
Registers
Each register is defined by a feedback polynomial.
Irregular Clocking
Each register has a clocking bit. At every step, the majority of the 3 clocking bits is computed.
A register is clocked iff its clocking bit equals . At least 2 registers are clocked at every step.
| 0 | 0 | 0 | 0 | Y | Y | Y |
| 0 | 0 | 1 | 0 | Y | Y | N |
| 0 | 1 | 0 | 0 | Y | N | Y |
| 0 | 1 | 1 | 1 | N | Y | Y |
| 1 | 0 | 0 | 0 | N | Y | Y |
| 1 | 0 | 1 | 1 | Y | N | Y |
| 1 | 1 | 0 | 1 | Y | Y | N |
| 1 | 1 | 1 | 1 | Y | Y | Y |
Here Y means clocked and N means not clocked.
Whether a register advances depends on the other registers, so the keystream is not a linear function of the key.