Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР4-5_ПРО3_ЗИ_2020-21.doc
Скачиваний:
6
Добавлен:
25.11.2022
Размер:
5.56 Mб
Скачать

2.3.2 Процедура расширения ключа

Процедура расширения ключа незначительно сложнее собственно шифрования. Опишем эту процедуру:

  1. Производится выравнивание ключа шифрования, в рамках которого ключ шифрования, если его размер в байтах b не кратен w/8 (т.е. размеру слова в байтах), дополняется нулевыми байтами до ближайшего большего размера с, кратного w/8.

  2. Инициализация массива расширенных ключей производится следующим образом:

(37)

(38)

где и . - псевдослучайные константы, образованные путем умножения на дробной части и последующего округления до ближайшего нечетного целого двух математических констант (e и φ соответственно). В спецификации алгоритма приведены вычисленные константы для возможных значений w (указаны шестнадцатеричные значения):

P16=В7Е1;

Q16= 9Е37;

Р32 = B7E15163,

Q32 = 9Е3779В9;

P64 = В7Е151628АЕD2А6В;

P64= 9Е3779В97F4А7С15.

  1. Циклически выполняются следующие действия:

(39)

(40)

(40)

где i, j, A и B - временные переменные, их начальные значения равны нулю, KC - выровненный на этапе 1 ключ шифрования.

Количество итераций цикла N определяется как N=3 *т, где т - максимальное из двух значений: с или (2*R+1).

2.3.3 Криптоанализ алгоритма

Считается, что именно сдвиги на переменное число битов привлекли внимание криптоаналитиков к алгоритму RС5 - RС5 стал одним из наиболее изученных алгоритмов на предмет возможных уязвимостей.

Начало криптоанализу алгоритма RС5 было положено сотрудниками RSA Laboratories Бертоном Калиски и Икван Лайзой Ин. В период с 1995 по 1998 гг. они опубликовали ряд отчетов, в которых подробно проанализировали криптостойкость алгоритма RС5. Выводы таковы.

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

при использовании которых алгоритм может быть вскрыт линейным криптоанализом.

Дифференциальный криптоанализ существенно более эффективен при атаках на алгоритм RC5. Калиски и Ии предложили атаку на алгоритм RC5-32/12/16, для которой требовалось наличие 263 пар выбранных открытых текстов и соответствующих им шифртекстов. Этот результат улучшили Ларе Кнудсен и Уилли Мейер, для атаки которых требовалось 254 выбранных открытых текстов. Они же нашли несколько классов слабых ключей, использование которых упрощает дифференциальный криптоанализ. А наилучшим результатом является крипто аналитический метод, предложенный Алексом Бирюковым и Эйялом Кушилевицем, которым необходимо 244 выбранных открытых текстов для успешной атаки. Тем не менее, все описанные выше атаки являются непрактичными - для их выполнения требуется наличие огромного количества выбранных открытых текстов. Бирюков и Кушилевиц считают, что для обеспечения полной невскрываемости алгоритма дифференциальным криптоанализом достаточно выполнения 18-20 раундов вместо 12.

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

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