Pseudo-transformation de Hadamard

La x aim est une application de la transformée de Hadamard inventée par le mathématicien français Jacques Hadamard. Elle est utilisée en cryptographie pour ses propriétés de diffusion. Elle est réversible et assure une bonne diffusion des bits dans une structure de chiffrement. Elle a notamment été utilisée dans Twofish et la famille des SAFER.

Description mathématique

Soit une chaîne binaire S de longueur paire n, soit les sous-chaînes Sa et Sb de taille n/2. Pour calculer la transformation Ta et Tb, on utilise les équations suivantes (en modulo 2n) :

T a = S a + S b   {\displaystyle T_{a}=S_{a}+S_{b}~}
T b = S a + 2 S b   {\displaystyle T_{b}=S_{a}+2\cdot S_{b}~}

L'inversion est naturellement produite de cette façon :

S b = T b T a   {\displaystyle S_{b}=T_{b}-T_{a}~}
S a = 2 T a T b   {\displaystyle S_{a}=2\cdot T_{a}-T_{b}~}

Exemple numérique

On considère deux valeurs S a = 240   {\displaystyle S_{a}=240~} et S b = 73   {\displaystyle S_{b}=73~} , nous effectuons une substitution modulo 256 ce qui serait le cas si nous travaillions avec des octets dans une procédure de chiffrement :

T a = S a + S b = 240 + 73 = 57   ( m o d   256 )   {\displaystyle T_{a}=S_{a}+S_{b}=240+73=57~(mod~256)~}
T b = S a + 2 S b = 240 + 2 73 = 130   ( m o d   256 )   {\displaystyle T_{b}=S_{a}+2\cdot S_{b}=240+2\cdot 73=130~(mod~256)~}

L'inversion est obtenue via :

S b = T b T a = 130 57 = 73   ( m o d   256 )   {\displaystyle S_{b}=T_{b}-T_{a}=130-57=73~(mod~256)~}
S a = T a S b = 57 73 = 240   ( m o d   256 )   {\displaystyle S_{a}=T_{a}-S_{b}=57-73=240~(mod~256)~}

Liens externes

  • (en) Implémentation rapide de la transformation
  • icône décorative Portail de la cryptologie