International Data Encryption Algorithm
![Voce da controllare](http://upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Emblem-important.svg/40px-Emblem-important.svg.png)
![Niente fonti!](http://upload.wikimedia.org/wikipedia/commons/thumb/6/64/Question_book-4.svg/45px-Question_book-4.svg.png)
International Data Encryption Algorithm (IDEA) | |
---|---|
![]() | |
Generale | |
Progettisti | James Massey, Xuejia Lai |
Prima pubblicazione | 1991 |
Derivato da | PES |
Successori | MMB, MESH, Akelarre, IDEA NXT (FOX) |
Dettagli | |
Dimensione chiave | 128 bit |
Dimensione blocco | 64 bit |
Struttura | Rete a sostituzione e permutazione |
Numero di passaggi | 8,5 |
Migliore crittanalisi | |
Il miglior attacco che si conosca (2007) è stato condotto con la crittoanalisi differenziale, che ha violato una versione ridotta dell'IDEA con soli 6 cicli di cifratura (l'algoritmo standard ne ha 8,5), ma ha richiesto 264-252 testi in chiaro. | |
Modifica dati su Wikidata · Manuale |
L'International Data Encryption Algorithm (IDEA) è un algoritmo crittografico a blocchi sviluppato da Xuejia Lai e James Massey, del Politecnico federale di Zurigo, e pubblicato per la prima volta nel 1991. L'algoritmo doveva rappresentare un sostituto del DES.
Esso nacque originariamente nel 1990 come PES (Proposed Encryption Standard): questo fu poi migliorato e presentato nel 1991 come Improved PES. Nel 1992 il nome viene cambiato nell'attuale IDEA.
L'algoritmo, nato come risultato di un contratto di ricerca con la Fondazione Hasler (poi acquisita dalla Ascom-Tech AG), fu brevettato in diverse Nazioni, ma rimase liberamente utilizzabile in software di tipo non commerciale; anche il nome "IDEA" fu brevettato. Gli ultimi brevetti sono scaduti nel 2012 e adesso IDEA è liberamente utilizzabile.
L'algoritmo IDEA viene raccomandato da diversi organismi di standardizzazione quali ISO, ITU e Swiss Telebanking Security Standard per la sua elevata robustezza: a tutt'oggi risulta infatti ancora inviolato. È inoltre l'algoritmo utilizzato dal software di sicurezza PGP.
Descrizione dell'algoritmo
IDEA è un algoritmo di cifratura a blocchi simmetrico, per cui necessita di un'unica chiave per cifrare e per decifrare. Opera su blocchi di dati di 64 bit utilizzando una chiave di 128 bit effettuando una serie di 8 passaggi identici (definiti in inglese round) durante i quali vengono eseguite le seguenti operazioni, tutte su numeri a 16 bit (vedi figura inserita nella tabella descrittiva dell'algoritmo):
- XOR (OR esclusivo), indicato con un ⊕ blu;
- addizione modulo 216, indicata con un
verde;
- moltiplicazione modulo 216+1 (dove un numero con tutte cifre 0 è interpretato come 216), indicato con un ⊙ rosso.
La rotazione della chiave
Ad ogni passaggio la chiave viene divisa in blocchi di 16 bit ciascuno, denominati sottochiavi e indicati in figura con K1...K6. Di questi ne vengono impiegati solo i primi 6: questo significa che ad ogni passaggio sono utilizzati solo 96 dei 128 bit della chiave. Dopo ogni passaggio (compreso l'ultimo prima del passaggio finale), la chiave viene ruotata di 25 bit a sinistra e vengono ripresi i primi 6 blocchi di 16 bit ciascuno della chiave stessa.
La rete a permutazione e sostituzione
Ad ogni passaggio vengono utilizzate 6 sottochiavi e un blocco di dati da 64 bit diviso in 4 sottoblocchi da 16 bit ciascuno. Durante ogni passaggio i 4 sottoblocchi sono moltiplicati e sommati modulo 216 con 4 sottochiavi, dopodiché i 4 blocchi risultanti da questi calcoli sono combinati a due a due con un'operazione di XOR per ottenere 2 blocchi da 16 bit. Questi ultimi sono moltiplicati/sommati modulo 216 con le restanti 2 sottochiavi ancora non utilizzate nel passaggio. I 2 sottoblocchi finali vengono combinati con lo XOR con i 4 sottoblocchi dell'operazione precedente in modo da avere in output 4 sottoblocchi da 16 bit ciascuno. Alla fine di 8 di questi passaggi, viene eseguito un semi-passaggio denominato "trasformazione finale" in cui i 4 sottoblocchi finali sono combinati con le prime 4 sottochiavi mediante operazioni di moltiplicazione e addizione modulo 216.
Sicurezza
L'algoritmo è uno dei più resistenti e ad oggi non risulta che sia stato violato: i progettisti di IDEA lo hanno realizzato in modo che fosse praticamente immune ad attacchi condotti con la crittanalisi differenziale ma si è anche dimostrato molto resistente a quelli condotti con la crittanalisi lineare tant'è che ad oggi il migliore attacco indica come violabili solo 6 degli 8,5 passaggi dell'algoritmo. Per attacchi a forza bruta si calcola che la violazione di una chiave a 128 bit impieghi nel migliore dei casi 2×1015 anni per la riuscita.
La questione dei brevetti
L'algoritmo (ed il nome IDEA) risulta brevettato in Austria, Francia, Germania, Italia, Paesi Bassi, Spagna, Svezia, Svizzera, Gran Bretagna, Stati Uniti d'America e Giappone: per questo motivo la sua diffusione è limitata nonostante si tratti di uno dei migliori e sicuri algoritmi in circolazione e nonostante ne sia concesso l'uso in applicazioni non commerciali.
IDEA NXT
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/87/Magnifying_glass_icon_mgx2.svg/18px-Magnifying_glass_icon_mgx2.svg.png)
La società detentrice dei diritti, MediaCrypt, ha pubblicato nel 2005 un successore dell'IDEA denominato IDEA NXT (noto precedentemente come FOX): in questa versione migliorata la chiave può assumere qualunque lunghezza fino a 256 bit, i blocchi dati possono essere lunghi anche 128 bit e la struttura è basata sullo schema Lai-Massey.
Collegamenti esterni
- (EN) Denis Howe, International Data Encryption Algorithm, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL
- Implementazione di riferimento e derivata, su embeddedsw.net.
V · D · M | |
---|---|
Cifrari principali | AES · Blowfish · DES · IDEA · Serpent · Triple DES · TEA · Twofish |
Altri cifrari | 3-Way · ABC · Akelarre · Anubis · ARIA · BaseKing · BassOmatic · BATON · BEAR · C2 · Camellia · CAST-128 · CAST-256 · CIKS-1 · CIPHERUNICORN-A · CIPHERUNICORN-E · CLEFIA · CMEA · Cobra · COCONUT98 · Crab · CRYPTON · CS-Cipher · DEAL · DES-X · FEAL · GDES · GOST · IDEA NXT · Iraqi · Kalyna · KASUMI · Khafre · KHAZAD · Khufu · LION · LOKI89/91 · LOKI97 · Lucifer · MacGuffin · MAGENTA · MARS · MISTY1 · MMB · RC2 · RC5 · RC6 · Red Pike · S-1 · SAFER · SEED · SHARK · Skipjack · Square · XTEA · XXTEA |
Strutture | Cifrario del prodotto · Gestore della chiave · Rete a sostituzione e permutazione · Rete di Feistel · S-Box |
Varie | Dimensione del blocco · Dimensione della chiave · Key whitening · Modalità di funzionamento dei cifrari a blocchi · Vettore di inizializzazione |
Portale Crittografia · Progetto Crittografia · Cifrari a blocchi |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/34/Ambox_padlock_green.svg/25px-Ambox_padlock_green.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Gnome-system-lock-screen.svg/25px-Gnome-system-lock-screen.svg.png)