
- •Криптография
- •Общие понятия криптографии и криптоанализа
- •Основные понятия и определения
- •Понятие криптографии и криптоанализа
- •Понятие криптографического алгоритма и криптосистемы
- •Классификация криптосистем
- •Задачи криптоанализа
- •Виды криптоаналитических атак
- •Сложность криптоаналитических атак
- •Характеристики криптосистем
- •Требования к криптосистемам
- •Понятие защищенности криптосистем
- •Симметричные криптосистемы
- •Принципы применения симметричных криптосистем
- •Элементарные операции подстановки и перестановки
- •Синтез блочных шифров
- •Шифр Файстеля
- •Принцип аппроксимации блочных шифров
- •Диффузия и конфузия
- •Структура шифра Файстеля
- •Дешифрование шифра Файстеля
Шифр Файстеля
Принцип аппроксимации блочных шифров
Файстель предложил аппроксимировать подстановочный шифр продукционными шифрами, которые строятся на последовательном применении как минимум двух базовых шифров с тем, чтобы полученный результат обладал более высокой стойкостью по сравнению с любым из этих базовых шифров в отдельности. В частности, Файстель предложил шифр, в котором попеременно используются и подстановки, и перестановки. Фактически данное предложение является практическим применением идеи Шеннона разработать продукционный шифр, в котором попеременно использовались бы функции диффузии и конфузии. Структура шифра Файстеля, разработанная четверть века тому назад и на основе идеи Шеннона, высказанной еще в 1945 г., сегодня является структурой, на основе которой построены все практически значимые симметричные схемы блочного шифрования.
Диффузия и конфузия
Шеннон вводит понятие идеального шифра — шифра, который полностью скрывает в шифрованном тексте все статистические закономерности открытого текста. Примером такого шифра является рассмотренный подстановочный шифр с произвольной подстановкой, но, как мы видели, такой шифр практически нереализуем.
Помимо обращения к идеальным системам, Шеннон предложил два метода, задачей которых является затруднение криптоанализа: диффузию и конфузию. Суть диффузии заключается в рассеянии статистических особенностей открытого текста по широкому диапазону статистических характеристик шифрованного текста. Это достигается тем, что значение каждого элемента открытого текста влияет на значения многих элементов шифрованного текста или, что оказывается эквивалентным сказанному, любой из элементов шифрованного текста зависит от множества элементов открытого текста. Примером применения метода диффузии является шифрование сообщения М = т1m2m3… с помощью операции усреднения
,
когда для получения буквы уn шифрованного текста складываются k последовательных букв открытого текста.
В любом блочном шифре используется зависящее от ключа преобразование блока открытого текста в блок шифрованного текста. Конфузия заключается в максимальном усложнении статистической взаимосвязи между шифрованным текстом и ключом опять же с целью противостояния попыткам определить ключ. Конфузия достигается использованием сложных подстановочных алгоритмов: простые линейные подстановочные функции увеличивают беспорядок лишь в незначительной степени.
Структура шифра Файстеля
Практическая реализация схемы Файстеля зависит от выбора значений следующих параметров и конструктивных особенностей.
• Размер блока. Чем больше размер блока, тем выше надежность шифра (при прочих равных условиях), но тем ниже скорость выполнения операций шифрования и дешифрования. Разумным компромиссом является блок размером 64 бита, который является сегодня практически универсальным для всех блочных шифров.
• Размер ключа. Чем длиннее ключ, тем выше надежность шифра, но большая длина ключа тоже может быть причиной слишком медленного выполнения операций шифрования и дешифрования. На сегодня ключи длиной 64 бита и меньше считаются недостаточно надежными — обычно используются 128-битовые ключи.
• Число раундов обработки. Суть идеи шифра Файстеля в том, что за один раунд обработки данных обеспечивается недостаточно высокая надежность, но уровень надежности шифра повышается с каждым новым раундом обработки. Как правило, число раундов выбирают равным 16.
• Алгоритм вычисления подключей. Чем сложнее этот алгоритм, тем в большей степени затрудняется криптоанализ шифра.
• Функция раунда. Здесь, опять же, усложнение, как правило, введет к повышению стойкости шифра с точки зрения криптоанализа.
Кроме того, имеется еще два фактора, которые приходится принимать во внимание при построении любой реализации шифра Файстеля.
• Скорость выполнения программ шифрования/дешифрования. Часто функции шифрования встраиваются в приложения или утилиты, чтобы избежать необходимости аппаратной реализации шифрования. В таких случаях важным фактором оказывается скорость программного выполнения алгоритма.
• Простота анализа. Хотя нашей задачей является создание такого алгоритма, который для криптоанализа был бы настолько сложным, насколько это возможно, все же весьма выгодно, чтобы сам такой алгоритм оставался простым для понимания. Иными словами, если алгоритм прост и понятен, его легче анализировать с точки зрения уязвимости для криптоанализа и, следовательно, легче совершенствовать с целью достижения более высокого уровня надежности. Алгоритм DES, например, нельзя отнести к .алгоритмам, слишком простым для анализа.