Churning (cipher)
Churning is an encryption function used to scramble downstream user data of the ATM passive optical network system defined by the ITU G.983.1 standard.
The standard states that churning "offers a low level of protection for data confidentiality". Cryptanalysis had shown that "the churning cipher is robustly weak".
Algorithm
Churning uses 24 bits of the key, designated X1..X8 and P1..P16.Ten static K bits are generated from the key:
K1 = + + +
K2 = + + +
K3 = +
K4 = +
K5 = +
K6 = +
K7 = +
K8 = +
K9 = +
K10 = +
The churning transforms eight bits into eight bits:
= TransformNibble
= TransformNibble
Cryptanalysis
The cryptanalysis had shown the cipher to be effectively broken in more than one way:- the cipher pretends to be using a 24-bit key, but the effective key length is 8 bit, making a full search attack trivial
- being a substitution cipher, churning is easily attacked using the standard attacks against this class of ciphers
- the churning function is entirely linear, so it can be broken using linear algebra.