Timeline
Chat
Prospettiva
S-box del Rijndael
Da Wikipedia, l'enciclopedia libera
Remove ads
L'S-box è utilizzata nell'algoritmo crittografico Rijndael (alias AES).
L'S-box
Riepilogo
Prospettiva
L'S-box è generata determinando l'inverso moltiplicativo di un numero appartenente al campo finito del Rijndael (lo zero, che non ha inversi, è impostato a zero). L'inverso moltiplicativo è poi trasformato usando la seguente trasformazione affine:
dove [x0, ..., x7] è l'inverso moltiplicativo espresso come vettore.
La moltiplicazione di matrici può essere calcolata con il seguente algoritmo:
- immagazzinare l'inverso moltiplicativo del numero di ingresso in 2 variabili temporanee ad 8 bit senza segno s e x;
- ruotare s di 1 bit a sinistra; se il valore di s aveva il bit più alto (l'ottavo da destra) impostato a "1", impostare il bit più basso di s ad "1", altrimenti a "0";
- OR esclusivo fra x ed s, immagazzinando il risultato in x;
- per 3 iterazioni: ripetere i punti 2. e 3. (i punti 2. e 3. saranno eseguiti 4 volte in totale);
- x conterrà adesso il risultato della moltiplicazione
Le colonne sono determinate dal nibble meno significativo, le righe sono determinate dal nibble più significativo. Ad esempio, il valore 0x9a è convertito in 0xb8. Da notare che l'inverso moltiplicativo di 0x00 è definito come sé stesso.
Remove ads
S-box invertita
Riepilogo
Prospettiva
L'S-box invertita è semplicemente l'S-box eseguita alla rovescia: ad esempio, l'S-box invertita di 0xdb è 0x9f. Viene calcolata computando prima la trasformazione affine inversa del valore di ingresso e poi l'inverso moltiplicativo. La trasformata affine inversa è definita come segue:
Remove ads
Specifiche progettuali
L'S-box del Rijndael è stata progettata specificatamente per risultare resistente alla crittoanalisi differenziale e lineare: ciò si è ottenuto minimizzando la correlazione tra le trasposizioni lineari di bit di input/output ed al tempo stesso minimizzando la probabilità di far propagare una differenza. Inoltre, per irrobustire dell'S-box contro gli attacchi algebrici è stata aggiunta la trasformazione affine.
Nel caso si sospetti la presenza di una trap door all'interno del cifrario, l'S-box corrente può essere sostituita da un'altra. Gli autori affermano che la struttura del cifrario Rijndael dovrebbe offrire abbastanza resistenza alla crittoanalisi lineare e differenziale da resistere a questi tipi di attacco anche se venisse utilizzata una S-box che presentasse o una correlazione "media" o la propagazione di differenze.
Una equazione alternativa per la Trasformazione Affine
Riepilogo
Prospettiva
Una equazione alternativa per la trasformazione affine è:
dove b', b e c sono matrici ad 8 bit e c è "01100011"[1].
Implementazioni
Quella che segue è un'implementazione in Java del precedente algoritmo:
public static boolean[] affineX (boolean[] bprime, boolean[] b, boolean[] c) {
for (int j=0; j<8; j++) {
bprime[ j ] = b[ j ] ^ b[ (j+4)%8 ];
bprime[ j ] ^= b[ (j+5)%8 ];
bprime[ j ] ^= b[ (j+6)%8 ];
bprime[ j ] ^= b[ (j+7)%8 ];
bprime[ j ] ^= c [ j ];
}
return bprime;
}
Remove ads
Note
Voci correlate
Collegamenti esterni
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads