Xmx


In cryptography, xmx is a block cipher designed in 1997 by David
M'Raïhi, David Naccache, Jacques Stern, and Serge Vaudenay. According to the
designers it "uses public-key-like operations as confusion and diffusion means." The
cipher was designed for efficiency, and the only operations it uses are XORs
and modular multiplications.
The main parameters of xmx are variable, including the
block size and key size, which are equal, as well
as the number of rounds. In addition to the key, it also makes
use of an odd modulus n which is small enough to fit in a single block.
The round function is f=·b mod n, where a and b are
subkeys and b is coprime to n. Here moa represents an operation that
equals m XOR a, if that is less than n, and otherwise equals m. This is a simple
invertible operation: moaoa = m. The xmx cipher consists
of an even number of iterations of the round function, followed by a final o
with an additional subkey.
The key schedule is very simple, using the same key for all the multipliers, and
three different subkeys for the others: the key itself for the first half of the
cipher, its multiplicative inverse mod n for the last half, and the XOR of these two
for the middle subkey.
The designers defined four specific variants of xmx:
Borisov, et al., using a multiplicative form of differential cryptanalysis, found a
complementation property for any variant of xmx, like the first three above, such that
n=2k-1, where k is the block size. They also found large weak key classes
for the Challenge variant, and for many other moduli.