Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

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).