- •Лабораторная работа № 4 семейство алгоритмов rc
- •2.1.2 Процедура расширения ключа
- •2.1.3 Расшифровывание
- •2.1.4 Криптостойкость алгоритма
- •2.2 Алгоритм rc4
- •2.3Алгоритм rc5
- •2.3.1 Структура алгоритма
- •2.3.2 Процедура расширения ключа
- •2.3.3 Криптоанализ алгоритма
- •2.3.4 Варианты rc5
- •2.4 Алгоритм rc6
- •2.4.1 Структура алгоритма
- •2.4.2 Процедура расширения ключа
- •3.Примеры выполнения работы
- •Расшифруем зашифрованное сообщение с помощью правильного и неправильного ключа (рис. 56-58).
- •4. Содержание работы
2.1.3 Расшифровывание
Расшифровывание выполняется по той же общей схеме, что и зашифровывание. Однако при расшифровывании используются
другие операции, выполняемые в смешивающем и объединяющем раундах.
Смешивающий раунд расшифровывания в цикле по i от 3 до О выполняет следующие операции:
(22)
,
j=j+1,
где » - циклический сдвиг вправо на число битов, определяемое значением (табл. 6), начальное значение j устанавливается не в 0, а в 63.
Аналогичным образом изменен и объединяющий раунд при расшифровывании по сравнению с зашифровыванием. В нем в цикле
по i от 3 до 0 выполняется следующая операция:
, (24)
где . (25)
2.1.4 Криптостойкость алгоритма
Почти сразу после опубликования RC2 вышла работа ряда известных криптологов: Рональда Ривеста, Ларса Кнудсена, Винсента Риджмена и Мэта Робшоу, - в которой исследовалось воздействие дифференциального и линейного криптоанализа на алгоритм RC2. Результаты оказались таковы:
алгоритм не подвержен атаке методом линейного криптоанализа;
алгоритм может быть теоретически вскрыт методом дифференциального криптоанализа, для чего необходимо наличие не менее пар выбранных открытых текстов и соответствующих им шифртекстов - такая атака вряд ли реализуема на практике.
Не более практичной является атак на связанных ключах, для успешного проведения которой требуется наличие 234 выбранных открытых текстов и соответствующих им шифртекстов, причем зашифровывание должно выполняться на ключе, связанном с искомым определенным простым соотношением. Данная атака изобретена не менее известными криптологами: Джоном Келси, Брюсом Шнайером и Дэвидом Вагнером.
Других методов вскрытия алгоритма RC2 на настоящий момент не известно.
2.2 Алгоритм 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, если мы хотим в точности следовать конструкции, но получившийся в результате алгоритм будет более быстрым.