International Data Encryption Algorithm: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
|||
Riga 2:
|Immagine:International_Data_Encryption_Algorithm_InfoBox_Diagram.svg
|fullName = International Data Encryption Algorithm (IDEA)
|caption = Un
|designers = [[James Massey]], [[Xuejia Lai]]
|yearPublished = [[1991]]
Riga 22:
==Descrizione dell'algoritmo==
* [[Disgiunzione_esclusiva|XOR]] (OR esclusivo), indicato con un ⊕ blu;
* addizione modulo 2<sup>16</sup>, indiciata con un [[Immagine:Boxplus.png]] verde;
* moltiplicazione modulo 2<sup>16</sup>+1 (dove un numero con tutte cifre 0 è interpretato come 2<sup>16</sup>), indicato con un [[Immagine:Odot.png]] rosso.
==La rotazione della chiave==
Ad ogni passaggio la chiave viene divisa in blocchi di 16 bit ciascuno, denominati '''sottochiavi''' ed 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 utilizzati 6 sottochiavi ed 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 2<sup>16</sup> 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 2<sup>16</sup> 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 ed addizione modulo 2<sup>16</sup>.
==
L'algoritmo è uno dei più resistenti e ad oggi non risulta che sia stato violato: i progettisti dell'IDEA lo hanno realizzato in modo che fosse praticamente immune ad attacchi condotti con la [[crittoanalisi differenziale]] ma si è anche dimostrato molto resistente a quelli condotti con la [[crittoanalisi lineare]] tant'è che ad oggi il migliore attacco indica come violabili solo 6 degli 8,5 passaggi dell'algoritmo.
==La questione dei brevetti==
▲IDEA è uno degli algoritmi più robusti mai studiati: resistente agli attacchi ''[[brute force]]'' (forza bruta), si calcola che un attacco di questo tipo ad una chiave a 128 bit impieghi nel migliore dei casi {{Exp|2|15}} anni per la riuscita. Ad oggi non risulta infatti che IDEA sia stato violato.
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==
La società detentrice dei diritti, MediaCrypt, ha rilasciato 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]].
{{Portale|matematica}}
|