Interested Article - RC5

RC5 ( Ron’s Code 5 или Rivest’s Cipher 5 ) — это блочный шифр , разработанный Роном Ривестом из компании с переменным количеством раундов , длиной блока и длиной ключа . Это расширяет сферу использования и упрощает переход на более сильный вариант алгоритма.

Описание

Существует несколько , в которых преобразования в «пол-раундах» классического RC5 несколько изменены. В классическом алгоритме используются три примитивных операции и их инверсии:

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

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

Параметры

Так как алгоритм RC5 имеет переменные параметры, то для спецификации алгоритма с конкретными параметрами принято обозначение RC5-W/R/b , где

  • W — половина длины блока в битах , возможные значения 16, 32 и 64. Для эффективной реализации величину W рекомендуют брать равным машинному слову . Например, для 32-битных платформ оптимальным будет выбор W =32, что соответствует размеру блока 64 бита.
  • R — число раундов , возможные значения от 0 до 255. Увеличение числа раундов обеспечивает увеличение уровня безопасности шифра. Так, при R =0 информация шифроваться не будет. Также алгоритм RC5 использует таблицу расширенных ключей размера слов, которая получается из ключа заданного пользователем.
  • b — длина ключа в байтах , возможные значения от 0 до 255.

Расширение ключа


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

  • Генерация констант
  • Разбиение ключа на слова
  • Построение таблицы расширенных ключей
  • Перемешивание

Генерация констант

Для заданного параметра генерируются две псевдослучайные величины используя две математические константы: ( экспонента ) и ( Золотое сечение ).

,

где — это округление до ближайшего нечетного целого.

Для получатся следующие константы:

Разбиение ключа на слова

На этом этапе происходит копирование ключа в массив слов , где , где , то есть, количество байт в слове.

Если не кратен , то дополняется нулевыми битами до ближайшего большего размера , кратного .

В случае если , то мы устанавливаем значение , а .

Построение таблицы расширенных ключей

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

Перемешивание

Циклически N раз выполняются следующие действия:

,

причем — временные переменные, начальные значения которых равны 0. Количество итераций цикла — это максимальное из двух значений и .

Шифрование


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

В каждом раунде выполняются следующие действия:

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


Для Расшифрования данных используются обратные операции, то есть для выполняются следующие раунды:

После выполнения всех раундов, исходное сообщение находится из выражения:

Свойства

Алгоритм RC5 обладает следующими свойствами:

  • Пригодный как для аппаратной, так и для программной реализации (алгоритм использует операции, выполняющиеся одинаково быстро на всех процессорах ).
  • Каждый раунд обрабатывает весь блок целиком (типичный раунд сети Фейстеля обрабатывает только «подблок»).
  • Одинаково хорош для машин с разной длиной машинного слова (то есть работает также хорошо и на 64-битных машинах).
  • Имеет повторяющуюся структуру с переменным числом раундов, что позволяет пользователю самому выбирать между более высокой скоростью шифрования и большей защищенностью шифра.
  • Имеет переменную длину ключа, что позволяет пользователю самому выбирать уровень безопасности, соответствующий специфике его приложения.
  • Достаточно простой в реализации и анализе.
  • Не требователен к памяти, что позволяет использовать его даже в мобильных и переносных устройствах.

Криптостойкость

RSA потратила много времени на анализ его работы с 64-битным блоком. Так в период с 1995 по 1998 г. они опубликовали ряд отчётов, в которых подробно проанализировали криптостойкость алгоритма RC5. Оценка для линейного криптоанализа показывает, что алгоритм безопасен после 6 раундов. Дифференциальный криптоанализ требует выбранных открытых текстов для алгоритма с 5 раундами, для 10 раундов, для 12 раундов и для 15 раундов. А так как существует всего лишь возможных различных открытых текстов, то дифференциальный криптоанализ невозможен для алгоритма в 15 и более раундов. Так что рекомендуется использовать 18-20 раундов, или по крайней мере не меньше 15 вместо тех 12 раундов которые рекомендовал сам Ривест.

RSA Security Challenge

Для стимуляции изучения и применения шифра RC5 RSA Security 28 января 1997 года предложила взломать серию сообщений, зашифрованных алгоритмом RC5 с разными параметрами, назначив за взлом каждого сообщения приз в $10 000. Шифр с самыми слабыми параметрами RC5-32/12/5 был взломан в течение нескольких часов. Тем не менее, последний осуществлённый взлом шифра RC5-32/12/8 потребовал уже 5 лет вычислений в рамках проекта распределённых вычислений RC5-64 (здесь 64= b ·8, длина ключа в битах) под руководством distributed.net . По-прежнему неприступными пока остаются RC5-32/12/ b для b от 9 до 16. distributed.net запустил проект RC5-72 для взлома RC5-32/12/9, в котором по состоянию на январь 2023 года удалось перебрать около 10 % ключей.

В мае 2007 года RSA Security Inc. объявила о прекращении поддержки соревнования и выплаты денежного вознаграждения. Чтобы не прекращать проект RC-72 , distributed.net решила спонсировать для него приз в $4 000 из собственных средств.

Атака по времени выполнения

На платформах, где операция циклического сдвига на переменное число битов выполняется за различное число тактов процессора , возможна атака по времени исполнения на алгоритм RC5. Два варианта подобной атаки были сформулированы криптоаналитиками Говардом Хейзом и Хеленой Хандшух ( англ. Helena Handschuh ). Они установили, что ключ может быть вычислен после выполнения около 220 операций шифрования с высокоточными замерами времени исполнения и затем от 228 до 240 пробных операций шифрования. Самый простой метод борьбы с подобными атаками — принудительное выполнение сдвигов за постоянное число тактов (например, за время выполнения самого медленного сдвига).

Варианты алгоритма

Так как одним из свойств RC5 является его простота в реализации и анализе, вполне логично, что многие криптологи [ кто? ] захотели усовершенствовать классический алгоритм. Общая структура алгоритма оставалась без изменений, менялись только . Так появилось несколько различных вариантов этого алгоритма:

RC5XOR

В этом алгоритме сложение с ключом раунда по модулю заменено операцией XOR:

Этот алгоритм оказался уязвим для дифференциального и линейного криптоанализа. Бирюкову и Кушилевицу удалось найти атаку методом дифференциального криптоанализа для алгоритма RC5XOR-32/12/16, используя 228 выбранных открытых текстов.

RC5P

В этом алгоритме сложение двух обрабатываемых «подблоков» операцией XOR заменено сложением по модулю :

RC5PFR

В данном алгоритме циклический сдвиг осуществляется на фиксированное для данного раунда число бит, а не на переменное.

,

где фиксированное число.

Этот алгоритм не достаточно хорошо изучен, однако предполагается, [ кем? ] что он неустойчив к дифференциальному криптоанализу.

RC5KFR

В этом алгоритме число бит сдвига зависит от ключа алгоритма и от текущего раунда:

,

Этот алгоритм также не достаточно хорошо изучен.

RC5RA

В этом алгоритме число бит сдвига определяется с помощью некоторой функции от другого «подблока»:

,

Предполагается, [ кем? ] что алгоритм RC5RA ещё более стоек к известным методам криптоанализа, чем RC5.

Примечания

  1. Rivest, R. L. (1994). (pdf) . Proceedings of the Second International Workshop on Fast Software Encryption (FSE) 1994e . pp. 86—96. {{ cite conference }} : Игнорируется текст: "ref-en" ( справка ) . Дата обращения: 27 октября 2009. Архивировано из 17 апреля 2007 года.
  2. 23 мая 2004 года.
  3. . Дата обращения: 14 февраля 2010. 9 октября 2018 года.

Ссылки

  • Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М. : Триумф, 2002. — 816 с. — 3000 экз. ISBN 5-89392-055-4 .
  • . — по материалам конференции fido7.ru.crypt. Дата обращения: 11 ноября 2009. Архивировано из 22 августа 2011 года.
  • . — Описание некоторых методов атак на алгоритмы шифрования. Дата обращения: 4 декабря 2009. Архивировано из 21 мая 2009 года.
Источник —

Same as RC5