Pseudo-trasformata di Hadamard
# 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\,{\pmod {2^{n}}}$
    $b'=a+2b\,{\pmod {2^{n}}}$

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

    $b=b'-a'\,{\pmod {2^{n}}}$
    $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}={\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}={\begin{bmatrix}2\times H_{n-1}&H_{n-1}\\H_{n-1}&H_{n-1}\end{bmatrix}}$

Ad esempio:

    $H_{2}={\begin{bmatrix}4&2&2&1\\2&2&1&1\\2&1&2&1\\1&1&1&1\end{bmatrix}}$
