Advanced Encryption Standard: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i. #IABot (v1.6.2) |
Recupero di 2 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5 |
||
(44 versioni intermedie di 23 utenti non mostrate) | |||
Riga 12:
|rounds=10, 12 o 14 (a seconda della dimensione della chiave)
|cryptanalysis=Un attacco basato sulla chiave ha forzato l'AES con una chiave a 256 bit e 9 round. Un attacco conoscendo il testo ha forzato una chiave a 192 e 256 bit con 8 round e una chiave a 128 bit con sette round. (Ferguson e altri, 2000). L'[[attacco XSL]] sembra in grado di semplificare la ricerca esaustiva.
}}
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
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 [[
▲[[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 [[Disgiunzione esclusiva|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 sette round e chiave di {{M|128|u=bit}}, otto round e chiave di {{M|192|u=bit}} e nove round e chiave di {{M|256|u=bit}}.<ref name="improved">[[John Kelsey (cryptanalyst)|John Kelsey]], [[Stefan Lucks]], [[Bruce Schneier]], [[Mike Stay]], [[David A. Wagner|David Wagner]], e [[Doug Whiting]], ''Improved Cryptanalysis of Rijndael'', [[Fast Software Encryption]], 2000 pp. 213–230 {{Cita web|url=https://www.schneier.com/paper-rijndael.html|titolo=Archived copy|accesso=6 marzo 2007|urlarchivio=https://web.archive.org/web/20070223215007/http://www.schneier.com/paper-rijndael.html|dataarchivio=23 febbraio 2007|urlmorto=no}}</ref>
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 102 ⟶ 106:
== Bibliografia ==
* {{Cita libro|autore=Nicolas
* {{Cita libro|autore=Joan Daemen
* {{Cita libro|autore=Niels Ferguson
== Voci correlate ==
Riga 110 ⟶ 114:
== Altri progetti ==
{{interprogetto|preposizione=sull'}}
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC}}
* {{cita web | 1 = http://www.tributemercury.com/wp/criptare-file-e-cartelle-con-password-aes.html | 2 = Criptare file e cartelle con AES (Windows) | accesso = 2 aprile 2012 | urlarchivio = https://web.archive.org/web/20120419180618/http://www.tributemercury.com/wp/criptare-file-e-cartelle-con-password-aes.html | dataarchivio = 19 aprile 2012 | urlmorto = sì }}
* {{en}} RFC 3394 - Algoritmo AES KeyWrap
* {{en}} [https://web.archive.org/web/20120801231831/http://rijndael.info/audio/rijndael_pronunciation.wav Pronuncia di "Rijndael"] (85 KB [[WAV]] file)
* {{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}} [
* {{
* {{en}} [http://www.formaestudio.com/rijndaelinspector/archivos/Rijndael_Animation_v4_eng.swf Animazione di Rijndael] ([[Shockwave Flash|SWF]] file)
Riga 124 ⟶ 130:
* {{cita web|http://embeddedsw.net/Cipher_Reference_Home.html|Implementazione di riferimento e derivata}}
* {{cita web|http://people.eku.edu/styere/Encrypt/JS-AES.html|Un JavaScript che calcola l'AES mostrando i valori intermedi}}
* {{cita web | 1 = http://jclement.ca/software/pyrijndael/ | 2 = Implementazione per Python | accesso = 16 dicembre 2008 | urlarchivio = https://web.archive.org/web/20090321013316/http://jclement.ca/software/pyrijndael/ | dataarchivio = 21 marzo 2009 | urlmorto = sì }}
* {{cita web|http://cryptojs.altervista.org/secretkey.html|Implementazione per JavaScript}}
Riga 131 ⟶ 137:
[[Categoria:Cifrari a blocchi]]
[[Categoria:National Institute of Standards and Technology]]
|