Pseudo-trasformata di Hadamard

In crittografia la pseudo-trasformata di Hadamard è una trasformata invertibile operante su stringhe di bit utilizzata per generare diffusione crittografica.

La stringa di bit deve essere di lunghezza pari così che possa essere divisa in 2 stringhe a e b di uguale lunghezza, ognuna composta da n bit. Per calcolare la trasformata ed ottenere a' e b', si usano le seguenti equazioni:

a = a + b ( mod 2 n ) {\displaystyle a'=a+b\,{\pmod {2^{n}}}}
b = a + 2 b ( mod 2 n ) {\displaystyle b'=a+2b\,{\pmod {2^{n}}}}

L'inverso della trasformata si ottiene con le seguenti equazioni:

b = b a ( mod 2 n ) {\displaystyle b=b'-a'\,{\pmod {2^{n}}}}
a = 2 a b ( mod 2 n ) {\displaystyle a=2a'-b'\,{\pmod {2^{n}}}}

Generalizzazione

Le soprastanti equazioni possono essere espresse anche in algebra matriciale considerando a e b come due elementi di un vettore e la trasformata come la moltiplicazione di una matrice:

H 1 = [ 2 1 1 1 ] {\displaystyle H_{1}={\begin{bmatrix}2&1\\1&1\end{bmatrix}}}

L'inverso della trasformata può essere derivato invertendo la matrice. Ovviamente la matrice può essere generalizzata astraendola a dimensioni maggiori, permettendo a vettori di qualunque dimensione in base potenza di due di essere trasformati utilizzando la seguente regola ricorsiva:

H n = [ 2 × H n 1 H n 1 H n 1 H n 1 ] {\displaystyle H_{n}={\begin{bmatrix}2\times H_{n-1}&H_{n-1}\\H_{n-1}&H_{n-1}\end{bmatrix}}}

Ad esempio:

H 2 = [ 4 2 2 1 2 2 1 1 2 1 2 1 1 1 1 1 ] {\displaystyle H_{2}={\begin{bmatrix}4&2&2&1\\2&2&1&1\\2&1&2&1\\1&1&1&1\end{bmatrix}}}

Voci correlate

  • Trasformata di Hadamard
  • SAFER
  • Twofish

Riferimenti

  • James Massey: On the Optimality of SAFER+ Diffusion - Seconda conferenza sull'AES - 1999
  • Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall: Twofish: A 128-Bit Block Cipher - 1998
  • Helger Lipmaa: On Differential Properties of Pseudo-Hadamard Transform and Related Mappings - INDOCRYPT 2002

Collegamenti esterni

  Portale Crittografia: accedi alle voci di Wikipedia che trattano di crittografia