Cellular Message Encryption Algorithm

From Infogalactic: the planetary knowledge core
(Redirected from CMEA (cipher))
Jump to: navigation, search
CMEA
General
Designers James A. Reeds III
First published 1991
Cipher detail
Key sizes 64 bits
Block sizes 16-64 bits
Rounds 3
Best public cryptanalysis
338 chosen plaintexts break all block sizes, 40-80 known plaintexts break 24-bit blocks, and 4 known plaintexts break 16-bit blocks

In cryptography, the Cellular Message Encryption Algorithm (CMEA) 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 (TIA) 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.[1] 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 U.S. Patent 5,159,634. 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 (typically used to encrypt each dialled digit), 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.[2]

See also

  • A5/1, the broken encryption algorithm used in the GSM cellular telephone standard
  • ORYX
  • CAVE

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.

External links