Nel 1997 il NIST pubblica un nuovo bando (AES) per determinare il successore di DES, concluso nel 2000.

Alla fine arrivarono 5 cifrari : Rijndael, Serpent,Twofish,RC6,MARS. Nel 2001 venne selezionato Rijndael , in base a test di performance efficienza anche su hardware datato e supporto a chiavi di grandezza variabile.

Rijndael venne proposto da due ricercatori che cercarono di evitare gli errori presenti in DES :

  1. Chiave corta
  2. Feistel
  3. S-BOX

In particolare la chiave di AES passa a 128 bit (Prerequisito Nist) e puo variare 192 o 256.

Gli S-Box sono costruiti in maniera matematica, Non si usa piu un approccio feistel Infatti AES è di tipo SPN (Substitution-Pemutation-Network).

In particolare AES :

AES - Rijndael

Untitled

il plaintext è un blocco di 128 bit , la chiave puo essere di varie dimensioni ma in questo caso la prendiamo da 128 bit.

Il cifrario manipola la chiave e il plaintext come se fossero delle matrici.

In particolare il plaintext dopo essere stato trasformato in una matrice 4x4 (byte) viene copiato nella matrice Stato , che verrà modificato ad ogni iterazione

In AES la chiave e il plaintext sono processati a parte , da una parte il plain-text-process e dall’altro il key-processing per costruire il key material

Plain Text Process

Untitled

La prima cosa che viene fatta è lo XOR del plaintext con la chiave questo è quello che avviene nel round 0 o Initial Round

Poi il plaintext entra in 9 Rounds dove vengono eseguite 4 operazioni :