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
Ulteriori informazioni 0a, 0b ...

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:

  1. immagazzinare l'inverso moltiplicativo del numero di ingresso in 2 variabili temporanee ad 8 bit senza segno s e x;
  2. 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";
  3. OR esclusivo fra x ed s, immagazzinando il risultato in x;
  4. per 3 iterazioni: ripetere i punti 2. e 3. (i punti 2. e 3. saranno eseguiti 4 volte in totale);
  5. 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
Ulteriori informazioni 0a, 0b ...

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

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads