Advanced Encryption Standard: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Annullata la modifica 137203872 di Simone Biancolilla (discussione) Etichetta: Annulla |
Recupero di 2 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5 |
||
(18 versioni intermedie di 11 utenti non mostrate) | |||
Riga 15:
In [[crittografia]], l{{'}}'''Advanced Encryption Standard''' ('''AES'''), conosciuto anche come '''Rijndael''' ({{IPA|[ˈrɛindaːl]}}),<ref name="Rijndael">{{Cita web|url=http://searchsecurity.techtarget.com/definition/Rijndael|titolo=Rijndael|accesso=9 marzo 2015|urlmorto=sì|urlarchivio=https://web.archive.org/web/20150312013118/http://searchsecurity.techtarget.com/definition/Rijndael|dataarchivio=12 marzo 2015|lingua=en}}</ref><ref name="Rijndael-ammended.pdf">{{Cita web |lingua=en |url=http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=1 |titolo=AES Proposal: Rijndael |cognome1=Daemen |nome1=Joan |cognome2=Rijmen |nome2=Vincent |data=9 marzo 2003 |editore=National Institute of Standards and Technology |p=1 |accesso=21 febbraio 2013 |urlmorto=sì |urlarchivio=https://web.archive.org/web/20130305143117/http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf#page=1 |dataarchivio=5 marzo 2013 }}</ref> di cui più propriamente è una specifica [[implementazione]],<ref name="Rijndael-ammended.pdf" /> è un [[algoritmo]] di [[cifratura a blocchi]] a [[Crittografia simmetrica|chiave simmetrica]], utilizzato come [[standard (informatica)|standard]] dal governo degli [[Stati Uniti d'America]].
Data la sua sicurezza e le sue specifiche pubbliche si presume che in un prossimo futuro venga utilizzato in tutto il mondo come è successo al suo predecessore, il [[Data Encryption Standard]] (DES) che ha perso poi efficacia per vulnerabilità intrinseche. AES è stato adottato dalla [[National Institute of Standards and Technology]] (NIST) e dalla US [[Federal Information Processing Standard|FIPS]] PUB nel novembre del
L'algoritmo scelto è stato sviluppato da due crittografi [[Belgio|belgi]], [[Joan Daemen]] e [[Vincent Rijmen]], che lo hanno presentato al processo di selezione per l'AES con il nome di "Rijndael", derivato dai nomi degli inventori
== Descrizione ==
Rijndael è un'evoluzione del primo algoritmo sviluppato da Daemen e Rijmen, [[Square (cifrario)|Square]]
A differenza del DES, Rijndael è una [[rete a sostituzione e permutazione]], non una [[rete di Feistel]], che implementa comunque il principio crittografico di Shannon di "[[confusione e diffusione]]". AES è veloce sia se sviluppato in [[software]] sia se sviluppato in [[hardware]],<ref>{{Cita web|lingua=en|url=https://www.schneier.com/paper-twofish-final.pdf |titolo=The Twofish Team's Final Comments on AES Selection |autore=Bruce Schneier |autore2=John Kelsey |autore3=Doug Whiting |autore4=David Wagner |autore5=Chris Hall |autore6=Niels Ferguson |autore7=Tadayoshi Kohno |autore8=Mike Stay |data=maggio 2000 |urlmorto=no |urlarchivio=https://web.archive.org/web/20100102041117/http://schneier.com/paper-twofish-final.pdf |dataarchivio=2 gennaio 2010 }}</ref> è relativamente semplice da implementare, richiede poca [[RAM|memoria]]
Il nuovo standard di cifratura sta sostituendo i precedenti standard e la sua diffusione continua ad aumentare. Formalmente, AES non è equivalente al Rijndael (sebbene nella pratica siano intercambiabili) dato che il Rijndael gestisce differenti [[Dimensione del blocco|dimensioni di blocchi]] e di [[
AES opera utilizzando [[Matrice|matrici]] di
In pratica, si divide il numero di bit del blocco in input per 32 e il quoziente specifica il numero di colonne.
C'è un passaggio iniziale:
# <code>
Successivamente per cifrare sono previsti diversi round o cicli di processamento: ogni round (fase) dell'AES (eccetto l'ultimo) consiste dei seguenti quattro passaggi fondamentali che vengono denominati LAYERS:
# <code>
# <code>
# <code>
# <code>
Il numero di round o cicli di processamento/elaborazione crittografica dei quattro passaggi precedenti è 10 con l'ultimo round che salta il passaggio <code>MixColumns</code>. A seguito la descrizione di ogni singolo passaggio.
La fase di decifratura non è identica a quella di cifratura dal momento che
=== SubBytes ===
{{Immagine multipla
Nel passaggio <code>SubBytes</code> ogni byte della matrice viene modificato tramite la [[S-box]] a 8 bit. Questa operazione provvede a fornire la non linearità all'algoritmo.▼
|titolo = I quattro passi dell'algoritmo
La S-box utilizzata è derivata da una funzione inversa nel [[campo finito]] [[Campo di Galois|GF]](''2<sup>8</sup>''), conosciuta per avere delle ottime proprietà di non linearità.▼
|larghezza totale = 500
Per evitare un potenziale attacco basato sulle proprietà algebriche la S-box è costruita combinando la funzione inversa con una [[trasformazione affine]] invertibile.▼
|immagine1 = AES-SubBytes.svg
|immagine2 = AES-ShiftRows.svg
|immagine3 = AES-MixColumns.svg
|immagine4 = AES-AddRoundKey.svg
|per riga = 2
▲}}Nel passaggio <code>SubBytes</code> ogni byte della matrice viene modificato tramite la [[S-box]] a {{M|8
▲La S-box utilizzata è derivata da una funzione inversa nel [[campo finito]] [[Campo di Galois|GF]](
▲Per evitare un potenziale attacco basato sulle proprietà algebriche la S-box è costruita combinando la funzione inversa con una [[trasformazione affine]] [[invertibile]].
La S-box è stata scelta con cura per non possedere né [[punto fisso|punti fissi]] né punti fissi opposti.
▲[[File:AES-SubBytes.svg|center|upright=1.5|thumb|Nel passaggio <code>SubBytes</code>, ogni byte della matrice è sostituito con i dati contenuti nella trasformazione ''S''; ''b<sub>ij</sub>'' = ''S(a<sub>ij</sub>)''.]]
=== ShiftRows ===
Il passaggio <code>ShiftRows</code> provvede a spostare le righe della matrice di un parametro, e dipende dal numero di riga.
Nell'AES la prima riga resta invariata, la seconda viene spostata di un posto verso sinistra, la terza di due posti e la quarta di tre.
In questo modo l'ultima colonna dei dati in ingresso andrà a formare la
Tutte le operazioni sono effettuate utilizzando l'indice della colonna
▲[[File:AES-ShiftRows.svg|center|upright=1.5|thumb|Nel passaggio <code>ShiftRows</code>, i byte di ogni riga vengono spostati verso sinistra dell'ordine della riga. Vedi figura per i singoli spostamenti.]]
=== MixColumns ===
Il passaggio <code>MixColumns</code> prende i quattro byte di ogni colonna e li combina utilizzando una [[trasformazione lineare]] invertibile.
Utilizzati in congiunzione, <code>ShiftRows</code> e <code>MixColumns</code> provvedono a far rispettare il criterio di [[confusione e diffusione]] nell'algoritmo (
Ogni colonna è trattata come un [[polinomio]] in
▲[[File:AES-MixColumns.svg|center|upright=1.5|thumb|Nel passaggio <code>MixColumns</code> ogni colonna di byte viene moltiplicata per un polinomio fisso ''c(x)''.]]
=== AddRoundKey ===
Il passaggio <code>AddRoundKey</code> combina con uno [[XOR]] la [[chiave di sessione]] con la matrice ottenuta dai passaggi precedenti (State). Una chiave di sessione viene ricavata dalla [[chiave primaria]] ad ogni round (con dei passaggi più o meno semplici,
▲[[File:AES-AddRoundKey.svg|center|upright=1.5|thumb|Nel passaggio <code>AddRoundKeys</code> ogni byte della matrice viene combinato con la sua sottochiave tramite un'operazione di [[XOR]].]]
== Sicurezza ==
{{NN|informatica|settembre 2012}}
La [[National Security Agency]] (NSA) segnalava che tutti i finalisti del processo di standardizzazione erano dotati di una sicurezza sufficiente per diventare l'AES, ma che fu scelto il Rijndael per via della sua flessibilità nel trattare chiavi di lunghezza diversa, per la sua
L'AES può essere utilizzato per proteggere le [[informazioni
La maggior parte degli algoritmi crittografici viene forzata riducendo il numero di round.
L'AES effettua
Al 2006, i migliori attacchi sono riusciti a forzare l'AES con
Alcuni crittografi hanno fatto notare che la differenza tra i round effettuati dall'AES e quelli massimi prima che l'algoritmo non sia più forzabile è ridotta (specialmente con chiavi corte).
Questi temono che miglioramenti nelle tecniche di analisi possano permettere di forzare l'algoritmo senza verificare tutte le chiavi.
Attualmente una [[ricerca esaustiva]] è impraticabile: la chiave a {{M|128
Uno dei migliori attacchi a forza bruta è stato svolto dal progetto [[distributed.net]] su una chiave a {{M|64
Un altro dubbio riguardante l'AES deriva dalla sua struttura matematica. A differenza della maggior parte degli algoritmi a blocchi, per l'AES esiste un'approfondita descrizione matematica
Nel
Sebbene l'attacco sia matematicamente corretto, è impraticabile nella realtà per via dell'enorme tempo macchina richiesto per metterlo in pratica.
Miglioramenti nell'attacco hanno ridotto il tempo macchina richiesto e quindi, in un futuro, questo attacco potrebbe diventare attuabile.
{{chiarire|Ultimamente|quando?}}, alcuni esperti hanno fatto delle osservazioni agli autori dell'attacco.
Sembra che abbiano commesso degli errori teorici e che, in realtà, le loro stime siano ottimistiche.
Allo stato attuale, la reale pericolosità dell'attacco XSL è un punto interrogativo.
Comunque, attualmente, l'AES è considerato un algoritmo veloce
In data 1º luglio
== Note ==
Riga 103 ⟶ 106:
== Bibliografia ==
* {{Cita libro|autore=Nicolas
* {{Cita libro|autore=Joan Daemen
* {{Cita libro|autore=Niels Ferguson
== Voci correlate ==
Riga 121 ⟶ 124:
* {{cita web|1=http://csrc.nist.gov/encryption/aes/|2=Archivio del vecchio sito AES|lingua=en|accesso=5 gennaio 2005|urlarchivio=https://web.archive.org/web/20021204193838/http://csrc.nist.gov/encryption/aes/#|dataarchivio=4 dicembre 2002|urlmorto=sì}}
* {{en}} [https://web.archive.org/web/20150407153905/http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf FIPS PUB 197: Documento con le specifiche ufficiali dell'AES] ([[Portable Document Format|PDF]] file)
* {{cita web|lingua=en|url=http://csrc.nist.gov/groups/ST/toolkit/documents/aes/CNSS15FS.pdf|formato=pdf|autore=Lynn Hathaway|data=giugno 2003|titolo=National Policy on the Use of the Advanced Encryption Standard (AES) to Protect National Security Systems and National Security Information|accesso=10 marzo 2011|dataarchivio=6 novembre 2010|urlarchivio=https://web.archive.org/web/20101106122007/http://csrc.nist.gov/groups/ST/toolkit/documents/aes/CNSS15FS.pdf|urlmorto=sì}} Il C.N.S.S. annuncia l'utilizzo dell'AES per i dati classificati
* {{en}} [http://www.formaestudio.com/rijndaelinspector/archivos/Rijndael_Animation_v4_eng.swf Animazione di Rijndael] ([[Shockwave Flash|SWF]] file)
|