A = ((A (+) B) <<< B) + K2*r mod 2w, (2.7)= ((A (+) B) <<< A) + K2*r+1 mod 2w, (2.8)
где r - номер текущего раунда, начиная с 1; Kn - фрагмент расширенного ключа; <<< n - операция циклического сдвига на x бит влево, где x - значение младших log2 w бит n
Рис 2.13. Структура алгоритма RC5.
Перед первым раундом выполняются операции наложения двух первых фрагментов расширенного ключа на шифруемые данные:
A = A + K0 mod 2w (2.9)= B + K1 mod 2w (2.10)
Стоит отметить, что под словом "раунд" в описании алгоритма Ривест понимает преобразования, соответствующие двум раундам обычных алгоритмов, структура которых представляет собой сеть Фейстеля (см. рис. 2.13). Это означает, что раунд алгоритма RC5 обрабатывает блок целиком, тогда как типичный раунд сети Фейстеля обрабатывает только один субблок обычно половину блока, реже его четверть.
Алгоритм поразительно прост - в нем используются только операции сложения по модулю 2 и по модулю 2w, а также сдвиги на переменное число бит. Последняя из операций представляется автором алгоритма как революционное решение, не использованное в более ранних алгоритмах шифрования (до алгоритма RC5 такие операции использовались только в алгоритме Madryga, не получившем широкой известности): сдвиг на переменное число бит - это весьма просто реализуемая операция, которая, однако, существенно усложняет дифференциальный и линейный криптоанализ алгоритма. Простота алгоритма может рассматриваться как его важное достоинство - простой алгоритм легче реализовать и легче анализировать на предмет возможных уязвимостей.
Для расшифрования выполняются обратные операции в обратной последовательности, т. е. в каждом раунде r (с обратной последовательностью раундов) выполняются следующие операции:
B = ((B - K2*r+1 mod 2w) >>> A) (+) A (2.11)= ((A - K2*r mod 2w) >>> B) (+) B (2.12)
где >>> n - аналогичная описанной выше (<<< n) операция побитового циклического сдвига вправо.
Соответственно после R раундов выполняются следующие операции:
B = B - K1 mod 2w (2.13)= A - K0 mod 2w (2.14)
Алгоритм RC5 и некоторые его варианты запатентованы; патенты принадлежат фирме RSA Data Security.
Процедура расширения ключа незначительно сложнее собственно шифрования. Расширение ключа выполняется в несколько этапов.
Этап 1. Выравнивание ключа шифрования, в рамках которого ключ шифрования, если его размер в байтах b не кратен w/8 (т. е. размеру слова в байтах), дополняется нулевыми байтами до ближайшего большего размера c, кратного w/8.
Этап 2. Инициализация массива расширенных ключей K0…K2*R+1, которая выполняется следующим образом:
= Pw (2.15)+1 = Ki + Qw (2.16)
где Pw и Qw - псевдослучайные константы, образованные путем умножения на 2w дробной части и последующего округления до ближайшего нечетного целого двух математических констант (e и f соответственно). В спецификации алгоритма приведены вычисленные константы для возможных значений w в шестнадцатеричном виде:
P16 = B7E1 (2.17)= 9E37 (2.18)= B7E15163 (2.19)= 9E3779B9 (2.20)= B7E151628AED2A6B (2.21)= 9E3779B97F4A7C15 (2.22)
Этап 3. Циклически выполняются следующие действия:
A = Ki = (Ki + A + B) <<< 3 (2.23)
B = KCj = (KCj + A + B) <<< (A + B) (2.24)= i + 1 mod (2 * R + 1) (2.25)= j + 1 mod c (2.26)
где i, j, A и B - временные переменные, их начальные значения равны нулю; KC - выровненный на этапе 1 ключ шифрования.
Количество итераций цикла N определяется как N = 3 * m, где m - максимальное из двух значений: c либо (2 х R + 1).
Считается, что именно революционная идея сдвига на переменное число бит привлекла внимание криптоаналитиков к алгоритму RC5 - он стал одним из алгоритмов, наиболее изученных на предмет возможных уязвимостей.
Начало криптоанализу алгоритма RC5 было положено сотрудниками RSA Laboratories (научного подразделения фирмы RSA Data Security) Бертоном Калиски-младшим (Burton S. Kaliski Jr.) и Икван Лайзой Ин (Yiqun Lisa Yin). В период с 1995 по 1998 г. они опубликовали ряд отчетов, в которых подробно проанализировали криптостойкость алгоритма RC5. Сделанные из них выводы приведены ниже.почти невозможно вскрыть методом линейного криптоанализа. Во многом это свойство алгоритма предопределено наличием операции циклического сдвига на переменное число бит. Однако дальнейшие исследования показали, что существует класс ключей, при использовании которых алгоритм можно вскрыть линейным криптоанализом.
Дифференциальный криптоанализ существенно более эффективен при атаках на алгоритм RC5. Калиски и Ин предложили атаку на алгоритм RC5-32/12/16, для которой требовалось 263 пар выбранных открытых текстов и соответствующих им шифртекстов. Этот результат улучшили Ларс Кнудсен (Lars R. Knudsen) и Уилли Мейер (Willi Meier), которым для атаки потребовалось 254 выбранных открытых текстов. Они же нашли несколько классов слабых ключей, упрощающих дифференциальный криптоанализ. А наилучшим результатом стал криптоаналитический метод, предложенный криптологами Алексом Бирюковым (Alex Biryukov) и Эйялом Кушилевицем (Eyal Kushilevitz), в котором необходимо 244 выбранных открытых текстов для успешной атаки. Тем не менее, все описанные выше атаки не слишком практичны - для их выполнения требуется огромное число выбранных открытых текстов. Бирюков и Кушилевиц считают, что для обеспечения полной невскрываемости алгоритма дифференциальным криптоанализом достаточно выполнения 18-20 раундов вместо 12. Перейти на страницу: 1 2 3 4 5 6 7
Другие статьи по теме
GMSK-модулятор В среде MATLAB собрали схему MSK модулятора, установили заданные параметры элементов схемы. Рисунок1-спектр сигнала на выходе схемы Затем со всех осциллогр ...
Исследование параметров оптоволоконного тракта За последние годы достигнут значительный прогресс в создании новых перспективных средств связи, повышающих качество и эффективность передачи информации различного вида, расширяющих услу ...
Исследование методов организации служебной связи при строительстве волоконно-оптических линий связи Обеспечение массового доступа абонентов к современным телекоммуни-кационным и информационным услугам является одной из важнейших проблем в нашей стране. Актуальность этого вопроса возра ...