Процедура расширения ключа незначительно сложнее собственно шифрования. Опишем эту процедуру:
1. Производится выравнивание ключа шифрования, в рамках которого ключ шифрования, если его размер в байтах b не кратен w/8 (т.е. размеру слова в байтах), дополняется нулевыми байтами до ближайшего большего размера c, кратного w/8.
2. Инициализация массива расширенных ключей
производится следующим образом:
, (32)
, (33)
где
и
– псевдослучайные константы, образованные путем умножения на
дробной части и последующего округления до ближайшего нечетного целого двух математических констант (e и φ соответственно). В спецификации алгоритма приведены вычисленные константы для возможных значений w (указаны шестнадцатеричные значения):
;
;
;
;
;
.
3. Циклически выполняются следующие действия:
, (34)
, (35)
, (37)
где i, j, A и B – временные переменные, их начальные значения равны нулю,
KC – выровненный на этапе 1 ключ шифрования.
Количество итераций цикла N определяется как N=3*m, где m – максимальное из двух значений: c или (2*R+1).