Pseudo-Hadamard transform

The pseudo-Hadamard transform is a reversible transformation of a bit string that provides cryptographic diffusion. See Hadamard transform.

The bit string must be of even length so that it can be split into two bit strings a and b of equal lengths, each of n bits. To compute the transform, a' and b', from these we use the equations:

To reverse this, clearly:

Generalization

The above equations can be expressed in matrix algebra, by considering a and b as two elements of a vector, and the transform itself as multiplication by a matrix of the form:

The inverse can then be derived by inverting the matrix.

However, the matrix can be generalised to higher dimensions, allowing vectors of any power-of-two size to be transformed, using the following recursive rule:

For example:

gollark: Encryption means you can encrypt something with a key then decrypt it with that key (symmetric encryption, anyway), hashing means that you irreversibly convert it to a different value.
gollark: It's not encrypted, it's hashed.
gollark: Well, you probably would have to connect up to an external database somehow, yes.
gollark: Oh, I see.
gollark: <@165858230327574528> Someone on here had a SQLite peripheral.

See also

This is the Kronecker product of an Arnold Cat Map matrix with a Hadamard matrix.

References

  • James Massey, "On the Optimality of SAFER+ Diffusion", 2nd AES Conference, 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, LNCS 2551, pp 48-61, 2002.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.