Cellular Message Encryption Algorithm


In cryptography, the Cellular Message Encryption Algorithm is a block cipher which was used for securing mobile phones in the United States. CMEA is one of four cryptographic primitives specified in a Telecommunications Industry Association standard, and is designed to encrypt the control channel, rather than the voice data. In 1997, a group of cryptographers published attacks on the cipher showing it had several weaknesses which give it a trivial effective strength of a 24-bit to 32-bit cipher.
Some accusations were made that the NSA had pressured the original designers into crippling CMEA, but the NSA has denied any role in the design or selection of the algorithm. The ECMEA and SCEMA ciphers are derived from CMEA.
CMEA is described in. It is byte-oriented, with variable block size, typically 2 to 6 bytes. The key size is only 64 bits. Both of these are unusually small for a modern cipher. The algorithm consists of only 3 passes over the data: a non-linear left-to-right diffusion operation, an unkeyed linear mixing, and another non-linear diffusion that is in fact the inverse of the first. The non-linear operations use a keyed lookup table called the T-box, which uses an unkeyed lookup table called the CaveTable. The algorithm is self-inverse; re-encrypting the ciphertext with the same key is equivalent to decrypting it.
CMEA is severely insecure. There is a chosen-plaintext attack, effective for all block sizes, using 338 chosen plaintexts. For 3-byte blocks, there is a known-plaintext attack using 40 to 80 known plaintexts. For 2-byte blocks, 4 known plaintexts suffice.
The "improved" CMEA, CMEA-I, is not much better: chosen-plaintext attack of it requires less than 850 plaintexts in its adaptive version.