Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР4-5_МО417_МСЗИ_ИбрагимоваК_РахимоваА_СтепановаД_ШакировА.docx
Скачиваний:
10
Добавлен:
14.09.2022
Размер:
3.1 Mб
Скачать

Расшифровывание

Расшифровывание выполняется по той же общей схеме, что и зашифровывание. Однако при расшифровывании используются

другие операции, выполняемые в смешивающем и объединяющем раундах.

Смешивающий раунд расшифровывания в цикле по i от 3 до О выполняет следующие операции:

(22)

,

j=j+1,

где » - циклический сдвиг вправо на число битов, определяемое значением (табл. 6), начальное значение j устанавливается не в 0, а в 63.

Аналогичным образом изменен и объединяющий раунд при расшифровывании по сравнению с зашифровыванием. В нем в цикле

по i от 3 до 0 выполняется следующая операция:

, (24)

где . (25)

Криптостойкость алгоритма

Почти сразу после опубликования RC2 вышла работа ряда известных криптологов: Рональда Ривеста, Ларса Кнудсена, Винсента Риджмена и Мэта Робшоу, - в которой исследовалось воздействие дифференциального и линейного криптоанализа на алгоритм RC2. Результаты оказались таковы:

  • алгоритм не подвержен атаке методом линейного криптоанализа;

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

Не более практичной является атак на связанных ключах, для успешного проведения которой требуется наличие 234 выбранных открытых текстов и соответствующих им шифртекстов, причем зашифровывание должно выполняться на ключе, связанном с искомым определенным простым соотношением. Данная атака изобретена не менее известными криптологами: Джоном Келси, Брюсом Шнайером и Дэвидом Вагнером.

Других методов вскрытия алгоритма RC2 на настоящий момент не известно.

Алгоритм rc4

RC4 представляет собой потоковый шифр с переменной длиной ключа, разработанный в 1987 г. Роном Ривестом для компании RSA Data Security, Inc.

Описывается шифр очень просто. Алгоритм работает в режиме OFB. Ключевая последовательность не зависит от исходного текста. Структура алгоритма включает блок замены размерностью 8x8: . Блок замены представляет собой зависимую от ключа переменной длины перестановку чисел 0,..., 255. Имеется два счетчика i и j, первоначально равные 0. Для генерирования псевдослучайного байта выполняются следующие действия:

i = ( i + 1) mod 256,

(26)

j = ( j + Si)mod 256,

переставить Si и Sj

t = (Si + Sj) mod 256,

(27)

k = St.

(28)

Затем байт k складывается по модулю 2 с байтом исходного текста для получения шифрованного.

Инициализация блока замены также проста. Вначале он заполняется линейно: . Затем заполняется

еще один 256-байтный массив ключом, при этом ключ может повторяться необходимое число раз для заполнения всего массива: . Счетчик j устанавливается в 0. После чего производятся следующие действия:

for i=0 to 255 j = (j + ki + Si )mod 256 переставить Si и Sj.

Возможно обобщение алгоритма на большие длину слова и размер блока замены. Так, можно построить шифр с блоком замены размерностью 16x16 (потребуется 128 Кбайт памяти) и длиной слова 16 бит. Этап инициализации будет значительно медленнее, необходим цикл до 65535, если мы хотим в точности следовать конструкции, но получившийся в результате алгоритм будет более быстрым.

Алгоритм RC5

Алгоритм разработан известнейшим криптологом Рональдом Ривестом - одним из разработчиков асимметричной системы RSA. Аналогично предыдущим алгоритмам шифрования Рона Ривеста RC2 и RC4 (является потоковым шифром), алгоритм RC5 получил весьма широкое распространение.

На преобразованиях, используемых в RC5, основана последующая разработка компании RSA - алгоритм RC6, который стал финалистом конкурса AES по выбору нового стандарта шифрования США.

Структура алгоритма

Часть основных параметров алгоритма RC5 являются переменными. Помимо секретного ключа, параметрами алгоритма являются следующие:

  • размер слова w (в битах); RC5 шифрует блоками по два слова; допустимыми значениями w являются 16, 32 или 64, причем 32 является рекомендуемым;

  • количество раундов алгоритма R в качестве значения допустимо любое целое число от 0 до 255 включительно;

  • размер секретного ключа в байтах b - любое целое значение от 0 до 255 включительно.

Наиболее часто для уточнения параметров алгоритма, используемых в его конкретной реализации, применяется обозначение RC5-w/R/b; например, RC5-32/12/16 обозначает RC5 с 64-битным блоком, 12 раундами и 128-битным (16-байтным) ключом.

Переменные параметры расширяют сферу использования алгоритма, а также позволяют сильно сократить издержки при необходимости перехода на более сильный вариант алгоритма, в программной или аппаратной реализации RC5, поддерживающей переменные параметры, легко было бы заменить ключ более длинным, таким образом, устранив проблему.

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

Рис. 45. Структура алгоритма RC5

Структура алгоритма представлена на рис. 45. Алгоритм представляет собой сеть Фейстеля, в каждом раунде которой выполняются следующие операции:

(29)

, (30)

где r - номер текущего раунда, начиная с 1,

- фрагмент расширенного ключа,

n - операция циклического сдвига на х битов влево, где x - значение младших log2w битов п.

Перед первым раундом выполняются операции наложения двух первых фрагментов расширенного ключа на шифруемые данные:

, (31)

(32)

Под словом «раунд» в описании алгоритма понимаются преобразования, соответствующие двум раундам обычных алгоритмов, структура которых является сетью Фейстеля (рис. 3).

То есть раунд алгоритма RC5 обрабатывает блок целиком, тогда как типичный раунд сети Фейстеля обрабатывает только один субблок - обычно половину блока.

Алгоритм поразительно прост - в нем используются только операции сложения по модулю 2 и по модулю 2w, а также сдвиги на переменное число битов. Сдвиг на переменное число битов является весьма просто реализуемой операцией, которая, однако, существенно усложняет дифференциальный и линейный криптоанализ алгоритма. Простота алгоритма может рассматриваться как его важное достоинство - простой алгоритм легче реализовать и легче анализировать на предмет возможных уязвимостей.

Расшифровывание выполняется применением обратных операций в обратной последовательности, т.е. в каждом раунде r (с обратной последовательностью раундов) выполняются следующие операции:

(33)

(34)

где »п - аналогичная описанной выше («п) операция побитового циклического сдвига вправо.

Соответственно, после R раундов выполняются следующие операции:

(35)

(36)

Алгоритм RC5 и некоторые его варианты являются запатентованными.