Advanced Encryption Standard: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Etichette: Ripristino manuale Modifica da mobile Modifica da web per mobile
m Eliminato il grassetto da varie parole
Riga 30:
 
C'è un passaggio iniziale:
# <code>'''AddRoundKey'''</code> – Ogni byte della tabella viene combinato con la chiave di sessione, la chiave di sessione viene calcolata dal [[gestore della chiave|gestore delle chiavi]].
 
Successivamente per cifrare sono previsti diversi round o cicli di processamento: ogni round (fase) dell'AES (eccetto l'ultimo) consiste dei seguenti quattro passaggi:
# <code>'''SubBytes'''</code> – Sostituzione non lineare di tutti i byte che vengono rimpiazzati secondo una specifica tabella.
# <code>'''ShiftRows'''</code> – Spostamento dei byte di un certo numero di posizioni dipendente dalla riga di appartenenza.
# <code>'''MixColumns'''</code> – Combinazione dei byte con un'operazione lineare, i byte vengono trattati una colonna per volta.
# <code>'''AddRoundKey'''</code> – Ogni byte della tabella viene combinato con la chiave di sessione, la chiave di sessione viene calcolata dal gestore delle chiavi.
 
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.
Riga 63:
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 ([[Confusione e diffusione|teoria di Shannon]]).
Ogni colonna è trattata come un polinomio in '''[[Campo di Galois|GF(2<sup>8</sup>)]]''' e viene moltiplicata modulo <math>x^4+1</math> per un polinomio fisso <math>c(x)=3x^3+x^2+x+2</math>.
 
[[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)''.]]