International Data Encryption Algorithm: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Collegamenti esterni: Aggiunto il template "Cifratura a blocchi"
 
(84 versioni intermedie di 51 utenti non mostrate)
Riga 1:
{{C|C'è una contraddizione nello stato dei brevetti tra l'introduzione e il paragrafo specifico|informatica|Gennaio 2018}}
'''IDEA''' ('''I'''nternational '''D'''ata '''E'''ncryption '''A'''lgorithm) e' un algoritmo utilizzato per la [[crittografia]] di messaggi, sviluppato da [[Xuejia Lai]] e [[James Massey]]. Nel [[1990]] Lai e Massey mettono a punto l'algoritmo [[PES]] ('''P'''roposed '''E'''ncryption '''S'''tandard) che viene poi irrobustito in [[IPES]] ('''I'''mproved '''P'''roposed '''E'''ncryption '''S'''tandard). Nel [[1992]] l'algoritmo diventa IDEA e fa parte della versione ufficiale del [[PGP]] ('''P'''retty '''G'''ood '''P'''rivacy). E' un algoritmo di [[cifratura a blocchi]] simmetrico, per cui necessita di una chiave per cifrare ed una per decifrare.
{{F|sicurezza informatica|luglio 2016}}
{{Metodo crittografico
|immagine = International Data Encryption Algorithm InfoBox Diagram.svg
|fullName = International Data Encryption Algorithm (IDEA)
|caption = Un passaggio (o ''round'') di cifratura dell'IDEA
|designers = [[James Massey]], [[Xuejia Lai]]
|yearPublished = [[1991]]
|derivedFrom = [[Proposed Encryption Standard|PES]]
|derivedTo = [[Modular Multiplication-based Block|MMB]], [[MESH]], [[Akelarre (cifrario)|Akelarre]], [[IDEA NXT]] (FOX)
|blockSize = 64 bit
|keySize = 128 bit
|cipherStructure = [[Rete a sostituzione e permutazione]]
|rounds = 8,5
|cryptanalysis = 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 2<sup>64</sup>-2<sup>52</sup> testi in chiaro.
}}L{{'}}'''International Data Encryption Algorithm''' ('''IDEA''') è un [[algoritmo]] [[crittografia|crittografico]] a [[cifratura a blocchi|blocchi]] sviluppato da [[Xuejia Lai]] e [[James Massey]], del [[ETH Zurich|Politecnico federale di Zurigo]], e pubblicato per la prima volta nel [[1991]]. L'algoritmo doveva rappresentare un sostituto del [[Data Encryption Standard|DES]].
Esso nacque originariamente nel [[1990]] come [[Proposed Encryption Standard|PES]] (''Proposed Encryption Standard''): questo fu poi migliorato e presentato nel 1991 come [[Improved Proposed Encryption Standard|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]], [[International Telecommunication Union|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 [[Pretty Good Privacy|PGP]].
 
== Descrizione dell'algoritmo ==
IDEA è un algoritmo di [[cifratura a blocchi]] [[crittografia simmetrica|simmetrico]], per cui necessita di un'unica chiave per cifrare e per decifrare. Opera su [[Dimensione blocco|blocchi di dati]] di [[64 bit]] utilizzando una [[chiave crittografica|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):
 
* [[Disgiunzione esclusiva|XOR]] (OR esclusivo), indicato con un ⊕ blu;
Le operazioni utilizzate da IDEA sono le seguenti:
* addizione modulo 2<sup>16</sup>, indicata con un [[File: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 ⊙ rosso.
 
== La rotazione della chiave ==
*addizione senza riporto modulo 2<sup>16</sup>
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.
*moltiplicazione modulo 2<sup>16</sup>
*[[XOR]] (or-esclusivo)
 
== La rete a permutazione e sostituzione ==
La lunghezza delle chiavi di cifratura/decifratura e' di 128 bit mentre i blocchi cifrati sono da 64 bit ciascuno con modalità [[cipher feedback]].La chiave di 128 bit viene partizionata in 52 sottochiavi di 16 bit mentre i 64 bit del testo in chiaro sono divisi in 4 blocchi da 16 bit. 4 blocchi e sei sottochiavi sono presi in ingresso da 8 iterazioni tutte uguali, infine 4 sottobocchi e 4 sottochiavi sono presi in ingresso da una trasformazione finale fornisce il testo cifrato. Per ognuna delle 8 iterazioni, i 4 sottoblocchi sono soggetti ad operazioni di moltiplicazione e addizione con 4 delle sei sottochiavi. I 4 sottoblocchi cosi' ottenuti sono combinati insieme con lo XOR in modo che i due blocchi risultanti siano dati in ingresso ad una funzione di moltiplicazione/addizione che combina i sottoblocchi con le due sottochiavi. Il risultato, due sottoblocchi viene combinato con lo XOR con i 4 sottoblocchi dell' operazione precedente in modo da avere l'output di quattro sottoblocchi da 16 bit ognuno.
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 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 e addizione modulo 2<sup>16</sup>.
 
== 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 [[attacco a forza bruta|forza bruta]] si calcola che la violazione di una chiave a 128 bit impieghi nel migliore dei casi {{M|2|e=15}} 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 ==
{{Vedi anche|IDEA NXT}}
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 ==
* {{FOLDOC}}
* {{cita web|http://embeddedsw.net/Cipher_Reference_Home.html|Implementazione di riferimento e derivata}}
 
{{Cifratura a blocchi}}
Ad oggi non risulta che IDEA sia stato violato da attacchi.
{{Portale|crittografia|sicurezza informatica}}
 
[[Categoria:Cifrari a blocchi]]