Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Беззатеев и др. Блоковые шифры.pdf
Скачиваний:
245
Добавлен:
02.04.2015
Размер:
1.75 Mб
Скачать

13

Глава 3. Сети Файстела и другие шифры

В данной главе представлены основные этапы развития симметричного шифрования, охватывающие период с первых разработок, легших в основу стандарта DES, и до объявления в 1996 году конкурса на новый стандарт шифрования. Здесь представлены наиболее известные шифры за этот промежуток времени, в том числе предлагавшиеся (IDEA) или ставшие (DES, FEAL, ГОСТ) государственными стандартами разных стран.

3.1. Сети Файстела (Feistel)

Сети Файстела представляют собой общий метод реализации любой функции как совокупности операций замены и перестановки. Этот метод впервые был предложен Хорстом Файстелем (Horst Feistel) [FNS75] при разработке шифра Люцифер [Fei73]. Он использован в большинстве извест-

ных блоковых шифров, включая DES, FEAL, IDEA, ГОСТ 28147-89, Blowfish, RC5 и другие.

Основным компонентом сети Файстела является функция F , отображающая исходный информационный блок в блок результата по правилам, зависящим от используемого блока ключа. F — это всегда нелинейная и в большинстве случаев необратимая функция. В каждом цикле "основной" информационный блок подвергается преобразованию с помощью функции F , и полученный результат складывается по модулю два со "вспомогательным" информационным блоком, после чего информационные блоки меняются местами (Рис. 1.5). "Вспомогательный" блок становится "основным", а результат сложения — "вспомогательным". Идея сети Файстела заключается в том, что многократное использование функции F , которая сама по себе, возможно, обладает плохими криптографическими характеристиками, может позволить создать надежный алгоритм шифрования.

3.2. Шифр Люцифер

Люцифер (Lucifer) — блоковый шифр, разработанный компанией IBM в начале 70-х годов. Это название было также использовано IBM для проекта по созданию криптографического алгоритма. Их совпадение привело в свое время к ряду недоразумений.

Вначале шифрование определялось операциями замены-перестановки. В ранних отчетах по проекту не определялись параметры перестановок, структура блоков замены (так называемых S-box), процедуры распределения ключа и т.д., обсуждались лишь основные идеи алгоритма. В DES (п.3.3) выход функции f складывался по модулю два (операция "исключающее или" — XOR) со

входом предыдущего цикла, и результат являлся исходной информацией для следующего цикла. В Люцифере входом блока замены (S-box) является перемешанный (побитно) выход блока замены предыдущего цикла, входной информацией для первого блока замены является исходный текст. Биты из ключа используются для определения, какой блок замены из двух возможных будет выбран. В отличие от DES, здесь не имеет значения порядок циклов и не используется процедура деления информационных блоков.

Позже был найден более удачный вариант. Он более похож на DES и имеет существенные различия с предыдущими. В нем имеется 16 циклов, 128-битные информационные блоки и заранее известные блоки замены и процедуры распределения ключа. Эта версия Люцифера была в дальнейшем модифицирована и стала алгоритмом DES.

Используя разностный криптоанализ для первой версии Люцифера, Эли Бихам (Eli Biham) и Ади Шамир (Adi Shamir) показали, что Люцифер с блоками длины 32 бита и восемью циклами может быть вскрыт по 40 выбранным исходным информационным блокам (каждый длиной 32 бита) за 229 шагов. Аналогичным методом может быть вскрыт Люцифер с блоками длины 128 бит и 8 циклами по 60 выбранным исходным информационным блокам за 253 шага. С помощью другого алгоритма криптоанализа с выбором исходного текста может быть вскрыт Люцифер с информационными блоками длины 128 бит и 18 циклами по 24 выбранным информационным блокам за 221 шаг. Используя криптоанализ по ключу, можно вскрыть 128-битный Люцифер с любым числом циклов по 233 специальным образом выбранным информационным блокам и соответствующим образом подобранным ключам, или по 265 специальным образом выбранным ключам при известных информационных блоках.