SEAL запатентован [380]. По поводу лицензирования нужно обращаться к Управляющему по лицензиям IBM ( Director of Licenses, IBM Corporation, 500 Columbus Ave., Thurnwood, NY, 10594 ).
17.3 WAKE
WAKE - сокращение от Word Auto Key Encryption (Автоматическое шифрование слов ключом)- это алгоритм, придуманный Дэвидом Уилером (David Wheeler) [1589]. Он выдает поток 32-битовых слов, которые с помощью XOR могут быть использованы для получения шифротекста из открытого текста или открытого текста из шифротекста. Это быстрый алгоритм.
WAKE работает в режиме CFB, для генерации следующего слова ключа используется предыдущее слово шифротекста. Алгоритм также использует S-блок из 256 32-битовых значений. Этот S-блок обладает одним особым свойством: Старший байт всех элементов представляет собой перестановку всех возможных байтов, а 3 младших байта случайны.
Сначала по ключу сгенерируем элементы S-блока, St. Затем проинициализируем четыре регистра с использованием того же или иного ключа: а0, Ь0, с0 и d0. Для генерации 32-битового слова потока ключей Kt.
Kt = d,
Слово шифротекста С, представляет собой XOR слова открытого текста Р, с К,. Затем обновим четыре регистра:
ат = M(a„di)
bi+1 = M(b„al+l)
сж = М(с, А+1)
dl+l = M(d„cM)
Функция М представляет собой
М(х,у) = (х + у) » 8 © S(x + yr255
Схема алгоритма показана на 15-й. Знак » обозначает обычный, не циклический сдвиг вправо . Младшие 8 битов х+у являются входом S-блока. Уилер приводит процедуру генерации S-блока, но на самом деле она неполна. Будет работать любой алгоритм генерации случайных байтов и случайной перестановки .
M |
D
М M |