Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции (Все подряд) / Криптография_1.doc
Скачиваний:
84
Добавлен:
20.06.2014
Размер:
156.67 Кб
Скачать
          1. Дешифрование шифра Файстеля

Процесс дешифрования шифра Файстеля принципиально не отличается от процесса шифрования. Применяется тот же алгоритм, но на вход подается шиф­рованный текст, а подключи Кi используются в обратной последовательности: для первого раунда берется подключ Кn, для второго — Kn-1 и так далее, пока не будет введен ключ K1 для последнего раунда. Это свойство данной схемы шифрования оказывается очень удобным, так как для дешифрования не требует­ся вводить второй алгоритм, отличный от алгоритма шифрования.

По окончании последнего раунда процесса шифрования две половины блока данных меняются местами, поэтому блок дан­ных будет иметь вид RE16||LE16. Этот блок данных и будет представлять собой шифрованный текст. Возьмем этот шифрованный текст и используем его в каче­стве входных данных того же самого алгоритма. Тогда на входе первого раунда алгоритма мы получим значение RE16||LE16, равное значению результата 16-го раунда шифрования с переставленными 32-битовыми половинами.

Теперь покажем, что результат первого раунда процесса дешифрования после 32-битового обмена будет равен значению, поступающему на вход 16-го раунда шифрования. Сначала рассмотрим процесс шифрования. Здесь мы имеем

С другой стороны, для процесса дешифрования получаем

Операция XOR (исключающее "ИЛИ") имеет следующие свойства:

[AB] C = A[BC],

DD = 0,

E0 = E.

Поэтому мы получим LD1 = RE15 и RD1 = LE15. Таким образом, в результате первого раунда процесса дешифрования будет получено значение LE15||RE15, которое после 32-битового обмена оказывается равным значению, подаваемому на вход 16-го раунда шифрования. Несложно показать, что такое соответствие будет выполняться для любого из 16 раундов процесса. Для самого процесса можно выписать общую формулу. Для i-й итерации алгоритма шифрования имеем

LEi = REi-1,

REi=LEiF(REi-1,Ki).

Выполнив несложные преобразования, получим следующие выражения:

REi-1 = LEi,

LEi-1=REiF(REi-1,Ki) = REiF(LEi,Ki).

Обратите внимание на то, что данное доказательство не требует, чтобы функ­ция F была обратимой. Чтобы убедиться в этом, рассмотрите частный случай, когда результат применения функции F является константой, не зависящей от поступающих на вход значений ее двух аргументов (например, всегда равен 1). Приведенные выше равенства останутся справедливыми.

Соседние файлы в папке Лекции (Все подряд)