Pseudo -Hadamard Transform ( PHT ) es una transformación reversible de cadenas de bits que se utiliza en criptografía para proporcionar difusión en el cifrado . El número de bits en la entrada de la conversión debe ser par para que sea posible dividir la cadena en dos partes de igual longitud. El creador de la transformación es el matemático francés Jacques Hadamard .
Sea la entrada de la transformación una cadena de bits de longitud . Representémoslo como dos cadenas de longitud : . Luego, como resultado de la acción de la pseudotransformación de Hadamard, obtenemos una cadena cuyos valores de subcadena se calculan mediante las siguientes fórmulas:
En consecuencia, a partir de estas fórmulas, se obtiene fácilmente la pseudotransformada inversa de Hadamard:
La pseudotransformada de Hadamard se puede representar en forma de matriz . Si escribimos y en forma vectorial , entonces la transformación será equivalente a multiplicar por una matriz :
Eso sí, no olvides que todas las operaciones al multiplicar por una matriz se realizan módulo .
La transformación inversa es equivalente a multiplicar por la matriz inversa a : .
También puede representar la matriz de transformación como una matriz más grande que es una potencia de dos. Entonces, por ejemplo, si estamos trabajando con una cadena de 8 bits, podemos representarla como 4 subcadenas de 2 bits cada una: y hacer lo mismo con la cadena de salida . La matriz para tal transformación se obtiene de la regla recursiva:
En nuestro ejemplo , y la matriz de transformación se ve así:
La transformada pseudo Hadamard se utiliza en algunos algoritmos de cifrado para proporcionar una mejor difusión criptográfica. Twofish y SAFER son ejemplos de tales algoritmos . Al mismo tiempo, se utiliza una conversión de 2 puntos (en la entrada, una cadena de 2 bytes de longitud) en todas las variedades de SAFER, excepto en la última versión de SAFER ++ ( 2000 ), que utiliza una conversión de 4 puntos (en la entrada, una cadena de 4 bytes de largo).
En los algoritmos de cifrado anteriores, la mayoría de las operaciones, incluida la pseudotransformación de Hadamard, se realizan en bytes . En consecuencia, en las fórmulas que describen la transformación, se toma igual a 8