Come funziona l'AES?

Operazione di base

L'AES può essere descritto come un blocco crittografato iterativo e simmetrico. L'AES utilizza una struttura ad anello per riordinare ripetutamente dati o permutazioni. Il loop sostituisce un'unità di dati con un'altra per i dati di input. La routine di crittografia utilizza la stessa chiave per crittografare e decrittografare i dati e applicare quella chiave ai blocchi di dati a lunghezza fissa.

Programma chiave

La routine di crittografia AES memorizza la chiave di crittografia primaria in un array. Un array è un gruppo di oggetti con gli stessi attributi che possono essere indirizzati singolarmente. La matrice è composta da quattro righe, ciascuna contenente quattro, sei o otto byte, a seconda della dimensione della chiave. Dietro le quinte, la routine di crittografia utilizza questa matrice per generare una tabella, nota come programma chiave, che contiene diverse chiavi. Questi tasti sono chiamati tasti rotondi per distinguerli dalla chiave master originale.

Matrice di stato

L'AES utilizza una chiave di crittografia che può essere lunga 128, 192 o 256 bit e viene applicata in unità di dati, chiamate blocchi, ciascuno dei quali è lungo 128 bit. L'algoritmo AES inizia copiando ciascun blocco a 16 bit in un array bidimensionale chiamato State, per creare un array di byte 4x4. L'algoritmo esegue un'operazione "O" esclusiva che restituisce "vero" se uno o l'altro dei suoi operandi è vero. Questo è noto come "AddRoundKey" ed è tra le prime quattro righe del programma chiave e la matrice State.

Operazioni matematiche

Dopo l'operazione iniziale esclusiva "O", l'algoritmo di crittografia AES entra nel suo ciclo principale, in cui esegue ripetutamente quattro diverse operazioni matematiche nella matrice dello stato: "SubBytes", "ShiftRows", "MixColumns" e "AddRoundKey" . Queste operazioni impiegano una combinazione di addizione, moltiplicazione, rotazione e sostituzione per crittografare ciascun byte nella matrice dello stato. Il ciclo principale viene eseguito 10, 12 o 14 volte a seconda della dimensione della chiave di crittografia. Una volta completata l'esecuzione, l'algoritmo copia la matrice di stato nel suo output sotto forma di testo crittografato.

Articoli Interessanti