- •Лабораторная работа № 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, если мы хотим в точности следовать конструкции, но получившийся в результате алгоритм будет более быстрым.
