Методы и средства криптографической защиты информации. Жданов О.Н - 127 стр.

UptoLike

127
2.5.3. Алгоритмы KHUFU и KHAFRE
В 1990 году Ральф Меркл (Ralph Merkle) предложил два алгоритма. В
основе их проектирования лежали следующие принципы:
1. 56-битовый размер ключа DES слишком мал. Так как стоимость
увеличения размера ключа пренебрежимо мала (компьютерная память
недорога и доступна), он должен быть увеличен.
2. Интенсивное использование перестановок в DES хотя и удобно для
аппаратных реализаций, чрезвычайно затрудняет программные реализации.
Наиболее быстрые реализации DES выполняют перестановки табличным
образом. Просмотр таблицы может обеспечить те же характеристики
"рассеяния", что и собственно перестановки, и может сделать реализацию
намного более гибкой.
3. S-блоки DES, всего с 64 4-битовыми элементами, слишком малы.
Теперь с увеличением памяти должны увеличиться и S-блоки. Более того, все
восемь S-блоков используются одновременно. Хотя это и удобно для
аппаратуры, для программной реализации это кажется ненужным
ограничением. Должны быть реализованы больший размер S-блоков и
последовательное (а не параллельное) их использование.
4. Широко признано, что начальная и заключительная перестановки
криптографически бессмысленны, поэтому они должны быть устранены.
5. Все быстрые реализации DES заранее рассчитывают ключи для
каждого этапа. При данном условии нет смысла усложнять эти вычисления.
6. В отличие от DES критерии проектирования S-блоков должны быть
общедоступны.
К этому перечню Меркл, возможно, теперь добавил бы "устойчивость к
дифференциальному и линейному криптоанализу", ведь в то время эти
способы вскрытия не были известны.
Khufu
Khufu - это 64-битовый блочный шифр. 64-битовый открытый тест
сначала разбивается на две 32-битовые половины, L и R. Над обеими
половинами и определенными частями ключа выполняется операция XOR.
Затем, аналогично DES, результаты проходят через некоторую
последовательность этапов. На каждом этапе младший значащий байт L
используется в качестве входных данных S-блока. У каждого S-блока 8
входных битов и 32 выходных бита. Далее выбранный в S-блоке 32-битовый
элемент подвергается операции XOR с R. Затем L циклически сдвигается не
несколько из восьми битов, L и R меняются местами, и этап заканчивается.
Сам S-блок не является статическим, но меняется каждые восемь этапов.
Наконец после последнего этапа над L и R выполняется операция XOR с
другими частями ключа, и половины объединяются, образуя блок
шифротекста.
Хотя части ключа используются для XOR с блоком шифрования в
начале и в конце алгоритма, главная цель ключа - генерация S-блоков. Эти S-