It is then XORed with the number, and shifted right until its first bit coincides with the first remaining 1 bit, and this is repeated until the number is 8 bits long or less. Then, the first subkey for the round is added to the one formed from Q0, and the result is XORed to Q2. The second subkey for the round is added to the one formed from Q1, and the result is XORed to Q3. As in DES, the halves are not swapped after the last round. This description of the key schedule is not quite detailed enough to permit implementation at this time, but it outlines all the required steps, and should help in understanding the original documentation.
Key generation begins by deriving three key vectors each half the length of the original key.
The first two are formed by splitting the key into 32-bit parts. Changing the modular polynomial changes which number does what, which is an isomorphism , but it does not change the underlying mathematical structure of the field. The new value of B is the XOR of the old value of A, B rotated right one bit, and 8 if the old value of A was odd. The new value of B is the XOR of the old value of A, B rotated right one bit, and 8 if the old value of A was odd. A and B are then combined in reverse order to form the result byte.