Re: [P1619-2] Draft Minutes
> EME2
>
> AI 32 Shai: Provide text and update diagram.
Below is the text that needs to go in the section about "The
Mult-by-alpha Operation." I hope that I got the endianess right,
I basically took it from the XTS spec. Fabio can you edit it in?
Thanks,
-- Shai
The encryption and decryption procedures described in the following
sections use a function Mult-by-alpha(X), that multiplies an input
array X by a primitive element alpha in the field GF(2^128). The input
value is a byte array X[i], i = 0,1,...,15, where X[0] is the first
byte of the byte array. The multiplication by alpha is defined by the
following procedure:
Mult-by-alpha(X)
Input: byte array X[i], i = 0,1,...,15
for i=0 to 15 do
Y[i] = 2*X[i] mod 256
if (i>0 and X[i-1]>127) then Y[i]=Y[i]+1
end-for
if (X[15] > 127) then Y[0] = Y[0] xor 0x87
Output: byte array Y[i], i = 0,1,...,15
Note - Conceptually, the operation is a left shift of each byte by one
bit with carry propagating from one byte to the next. Also, if the 15th
(last) byte shift results in a carry, a special value (decimal 135) is
xor'ed into the first byte. This value is derived from the modulus of
the Galois Field (polynomial x^128+x^7+x^2+x+1).