
- •Криптография
- •Общие понятия криптографии и криптоанализа
- •Основные понятия и определения
- •Понятие криптографии и криптоанализа
- •Понятие криптографического алгоритма и криптосистемы
- •Классификация криптосистем
- •Задачи криптоанализа
- •Виды криптоаналитических атак
- •Сложность криптоаналитических атак
- •Характеристики криптосистем
- •Требования к криптосистемам
- •Понятие защищенности криптосистем
- •Симметричные криптосистемы
- •Принципы применения симметричных криптосистем
- •Элементарные операции подстановки и перестановки
- •Синтез блочных шифров
- •Шифр Файстеля
- •Принцип аппроксимации блочных шифров
- •Диффузия и конфузия
- •Структура шифра Файстеля
- •Дешифрование шифра Файстеля
Дешифрование шифра Файстеля
Процесс дешифрования шифра Файстеля принципиально не отличается от процесса шифрования. Применяется тот же алгоритм, но на вход подается шифрованный текст, а подключи Кi используются в обратной последовательности: для первого раунда берется подключ Кn, для второго — Kn-1 и так далее, пока не будет введен ключ K1 для последнего раунда. Это свойство данной схемы шифрования оказывается очень удобным, так как для дешифрования не требуется вводить второй алгоритм, отличный от алгоритма шифрования.
По окончании последнего раунда процесса шифрования две половины блока данных меняются местами, поэтому блок данных будет иметь вид RE16||LE16. Этот блок данных и будет представлять собой шифрованный текст. Возьмем этот шифрованный текст и используем его в качестве входных данных того же самого алгоритма. Тогда на входе первого раунда алгоритма мы получим значение RE16||LE16, равное значению результата 16-го раунда шифрования с переставленными 32-битовыми половинами.
Теперь покажем, что результат первого раунда процесса дешифрования после 32-битового обмена будет равен значению, поступающему на вход 16-го раунда шифрования. Сначала рассмотрим процесс шифрования. Здесь мы имеем
С другой стороны, для процесса дешифрования получаем
Операция XOR (исключающее "ИЛИ") имеет следующие свойства:
[AB] C = A[BC],
DD = 0,
E0 = E.
Поэтому мы получим LD1 = RE15 и RD1 = LE15. Таким образом, в результате первого раунда процесса дешифрования будет получено значение LE15||RE15, которое после 32-битового обмена оказывается равным значению, подаваемому на вход 16-го раунда шифрования. Несложно показать, что такое соответствие будет выполняться для любого из 16 раундов процесса. Для самого процесса можно выписать общую формулу. Для i-й итерации алгоритма шифрования имеем
LEi = REi-1,
REi=LEiF(REi-1,Ki).
Выполнив несложные преобразования, получим следующие выражения:
REi-1 = LEi,
LEi-1=REiF(REi-1,Ki) = REiF(LEi,Ki).
Обратите внимание на то, что данное доказательство не требует, чтобы функция F была обратимой. Чтобы убедиться в этом, рассмотрите частный случай, когда результат применения функции F является константой, не зависящей от поступающих на вход значений ее двух аргументов (например, всегда равен 1). Приведенные выше равенства останутся справедливыми.