Cellular Message Encryption Algorithm
# Cellular Message Encryption Algorithm

In crittografia il Cellular Message Encryption Algorithm, abbreviato CMEA, è un cifrario a blocchi che è stato utilizzato per rendere sicuri i telefoni cellulari negli Stati Uniti d'America. Il CMEA è una delle 4 primitive crittografiche specificate in uno standard della Telecommunications Industry Association (TIA): specificatamente, era usato per cifrare il canale di controllo piuttosto che i dati vocali. Nel 1997 un gruppo di crittografi ha pubblicato diversi attacchi al cifrario, dimostrando che aveva diverse vulnerabilità. Sono state anche formulate ipotesi secondo le quali la National Security Agency (NSA) avesse fatto pressioni sugli sviluppatori dell'algoritmo affinché realizzassero un cifrario debole, ma l'NSA ha sempre negato ogni ruolo nella progettazione o nella selezione dell'algoritmo.

I cifrari ECMEA e SCEMA derivano dal CMEA.

## Struttura

L'algoritmo è descritto nel brevetto (EN) US5159634, United States Patent and Trademark Office, Stati Uniti d'America.. Si tratta di un cifrario orientato ai byte, con un blocco dati variabile da 16 a 64 bit (2-6 byte) ed una chiave grande solo 64 bit (6 byte): entrambi questi valori sono inusualmente piccoli per un cifrario moderno.

L'algoritmo consiste di soli 3 passaggi sui dati: un'operazione di diffusione non lineare da-sinistra-a-destra, un mescolamento lineare non basato sulla chiave, ed un'altra diffusione non lineare che è di fatto l'inversa della prima. Le operazioni non lineare usato una tabella basata sulla chiave denominata T-box, che a sua volta usa una tabella non basata sulla chiave denominata CaveTable. L'algoritmo è auto-reversibile: ri-cifrare il testo in chiaro con la stessa chiave equivale a decifrarlo.

## Sicurezza

Lo CMEA è altamente insicuro: un attacco con testo in chiaro scelto può violare l'algoritmo con qualunque dimensione del blocco utilizzando solo 338 testi in chiaro scelti. Per la versione con blocchi di 24 bit (la dimensione solitamente utilizzata per crittografare ogni cifra premuta sul cellulare) bastano invece da 40 ad 80 testi in chiaro noti, che scendono a 4 soltanto nel caso di blocchi di 16 bit.

È stata realizzata anche una versione "migliorata" dell'algoritmo denominata CMEA-I, ma la situazione non è molto migliore: un attacco adattivo con testo in chiaro scelto è capace di violare il cifrario con meno di 850 testi in chiaro

