Lai–Massey scheme

From The Right Wiki
Jump to navigationJump to search

The Lai–Massey scheme is a cryptographic structure used in the design of block ciphers,[1][2] an alternative to the Feistel network for converting a non-invertible keyed round function to an invertible keyed cipher. It is used in IDEA and IDEA NXT. The scheme was originally introduced by Xuejia Lai[3] with the assistance of James L. Massey, hence the scheme's name, Lai-Massey.

Design

File:Lai Massey scheme diagram en.svg

The Lai-Massey Scheme is similar to a Feistel network in design, but in addition to using a using a non-invertible round function whose input and output is half the data block size, each round uses a full-width invertible half-round function. Either, or preferably both of the functions may take a key input as well. Initially, the inputs are passed through the half-round function. In each round, the difference between the inputs is passed to the round function along with a sub-key, and the result from the round function is then added to each input. The inputs are then passed through the half-round function. This is then repeated a fixed number of times, and the final output is the encrypted data. Due to its design, it has an advantage over a Substitution-permutation network since the round-function does not need to be inverted - just the half-round - enabling it to be more easily inverted, and enabling the round-function to be arbitrarily complex. The encryption and decryption processes are fairly similar, decryption instead requiring a reversal of the key schedule, an inverted half-round function, and that the round function's output be subtracted instead of added.

Construction details

Let F be the round function, and H a half-round function, and let K0,K1,,Kn be the sub-keys for the rounds 0,1,,n respectively. Then the basic operation is as follows: Split the plaintext block into two equal pieces, (L0, R0). For each round i=0,1,,n, compute

(Li+1,Ri+1)=H(Li+Ti,Ri+Ti),

where Ti=F(LiRi,Ki), and (L0,R0)=H(L0,R0). Then the ciphertext is (Ln+1,Rn+1)=(Ln+1,Rn+1). Decryption of a ciphertext (Ln+1,Rn+1) is accomplished by computing for i=n,n1,,0

(Li,Ri)=H1(Li+1Ti,Ri+1Ti),

where Ti=F(Li+1Ri+1,Ki), and (Ln+1,Rn+1)=H1(Ln+1,Rn+1). Then (L0,R0)=(L0,R0) is the plaintext again. The Lai–Massey scheme offers security properties similar to those of the Feistel structure. It also shares its advantage over a substitution–permutation network that the round function F does not have to be invertible. The half-round function is required to prevent a trivial distinguishing attack (L0R0=Ln+1Rn+1). It commonly applies an orthomorphism σ on the left hand side, that is,

H(L,R)=(σ(L),R),

where both σ and xσ(x)x are permutations (in the mathematical sense, that is, a bijection – not a permutation box). Since there are no orthomorphisms for bit blocks (groups of size 2n), "almost orthomorphisms" are used instead. H may depend on the key. If it doesn't, the last application can be omitted, since its inverse is known anyway. The last application is commonly called "round n.5" for a cipher that otherwise has n rounds.

Literature

References

  1. Aaram Yun, Je Hong Park, Jooyoung Lee: Lai-Massey Scheme and Quasi-Feistel Networks. IACR Cryptology.
  2. Serge Vaudenay: On the Lai-Massey Scheme Archived 2022-07-12 at the Wayback Machine. ASIACRYPT'99.
  3. X. Lai. On the design and security of block ciphers. ETH Series in Information Processing, vol. 1, Hartung-Gorre, Konstanz, 1992