Кто владеет информацией — тот владеет миром.
Ротшильд
Пока другие только пытаются понять законы рынка, используй их!
Терморектальный криптоанализTM
| |
Алгоритм RC2
Алгоритм шифрования RC2 был разработан в конце 1980-х гг. (в различных источниках указаны 1987 и 1989 гг.) Рональдом Ривестом.
Алгоритм RC2 является собственностью компании RSA Data Security; при этом известен тот факт, что разработку данного алгоритма инициировала и частично спонсировала фирма Lotus, которой требовался сильный (но не являющийся широко распространенным) алгоритм шифрования для последующего использования в программной системе Lotus Notes. Причем криптостойкость алгоритма должна была быть проверена Агентством Национальной Безопасности (АНБ) США. АНБ также внесло свой вклад в разработку алгоритма, предложив некото-рые детали реализации, внедренные в алгоритм Ривестом.
Еще одна интересная особенность состоит в том, что RC2 был разрешен к экспорту за пределы США. Есть источники, в которых утверждается, что взамен на такое благоволение со стороны контролирующих органов Ри-вест внес в процедуру расширения ключа некие ослабляющие алгоритм действия. Автору данной книги не удалось, однако, найти об этом подробную информацию, поэтому алгоритм RC2 далее будет рассмотрен в варианте без подобных ослаблений.
Не менее интересен и тот факт, что долгое время после разработки RC2 структура данного алгоритма оставалась в секрете, но в начале 1996 г. анонимный автор опубликовал в Usenet-конференции sci.crypt исходные тексты алгоритма. Причем не ясно, была ли это утечка информации из RSA Data Security или результат реверс-инжиниринга какой-либо программной реализации алгоритма RC2.
Не известно, насколько долго алгоритм оставался бы в секрете, не будь этой анонимной публикации, но в марте 1998 г. Ривест полностью опубликовал алгоритм в виде RFC 2268.
Алгоритм RC2 получил широкое распространение, как минимум, благодаря тому факту, что он является основным и обязательным для реализации алгоритмом шифрования согласно стандарту защиты сообщений электронной почты S/MIME.
Структура алгоритма
Алгоритм RC2 шифрует данные блоками по 64 бита с использованием ключей переменного размера: от 8 до 1024 битов включительно; рекомендуемым размером ключа является 64 бита.
Алгоритм является сетью Фейстеля, в нем выполняются 18 раундов преобразований. Причем раунды алгоритма делятся на 2 типа: смешивающие (mix) раунды и объединяющие (mesh) раунды. Общая структура алгоритма такова:
Выполняются 5 смешивающих раундов.
Выполняется 1 объединяющий раунд.
Выполняются 6 смешивающих раундов.
Выполняется 1 объединяющий раунд.
Выполняются 5 смешивающих раундов.
Процедура расширения ключа
Как было сказано выше, алгоритм RC2 использует ключи шифрования размером от 8 до 1024 битов, т. е. от 1 до 128 байтов.
Криптостойкость алгоритма
Почти сразу после опубликования RC2 вышла работа ряда известных криптологов: Рональда Ривеста, Ларса Кнудсена, Винсента Риджмена и Мэта Робшоу, — в которой исследовалось воздействие дифференциального и линейного криптоанализа на алгоритм RC2. Результаты оказались таковы:
алгоритм не подвержен атаке методом линейного криптоанализа;
алгоритм может быть теоретически вскрыт методом дифференциального криптоанализа, для чего необходимо наличие не менее 259 пар выбранных открытых текстов и соответствующих им шифртекстов — такая атака вряд ли реализуема на практике.
Не более практичной является атака на связанных ключах, для успешного проведения которой требуется наличие 234 выбранных открытых текстов и соответствующих им шифртектов, причем зашифровывание должно вы-полняться на ключе, связанном с искомым определенным простым соотношением. Данная атака изобретена не менее известными криптологами: Джоном Келси, Брюсом Шнайером и Дэвидом Вагнером.
Других методов вскрытия алгоритма RC2 на настоящий момент не известно.
По материалам книги Сергея Панасенко «Алгоритмы шифрования»
|