Открыть сервис

RC2

RC2 — это симметричный блочный шифр, разработанный в 1987 году Роном Ривестом из лаборатории MIT для компании RSA Data Security. Шифр известен своей простотой, высокой скоростью работы и переменной длиной ключа, что делало его привлекательным для использования в коммерческих и правительственных приложениях, в частности, в протоколе SSL/TLS и в системе шифрования электронной почты S/MIME. Несмотря на то, что RC2 был разработан как альтернатива более сложному алгоритму DES, впоследствии он был признан устаревшим из-за уязвимости к атакам с использованием современных вычислительных мощностей.

История

Разработка RC2 была инициирована в ответ на потребность в более быстром и гибком шифре, чем стандарт DES, который к тому времени уже подвергался критике за относительно короткий 56-битный ключ. В 1987 году Рон Ривест создал два алгоритма: RC2 и RC4. RC2 был спроектирован как блочный шифр с переменной длиной ключа (от 1 до 128 байт), что позволяло адаптировать его под различные уровни безопасности и экспортные ограничения США того времени.

Первоначально алгоритм был запатентован компанией RSA Data Security, и его детали не раскрывались публично. Однако в 1996 году исходный код RC2 был анонимно опубликован в сети Usenet, что привело к его широкому распространению и анализу. После этого патентные ограничения фактически перестали действовать, и шифр вошёл в состав многих открытых библиотек, таких как OpenSSL и Bouncy Castle.

Алгоритм

Общая структура

RC2 является блочным шифром с размером блока 64 бита (8 байт). Он использует переменную длину ключа: от 1 до 128 байт (8–1024 бит). Алгоритм основан на сети Фейстеля, что обеспечивает обратимость шифрования и дешифрования при использовании одного и того же ключа.

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

Перед шифрованием ключ расширяется до массива из 64 16-битных слов (K[0]…K[63]). Процесс расширения включает:

  1. Копирование исходного ключа в первые L байт массива K.
  2. Заполнение оставшихся байт с помощью линейного конгруэнтного генератора (LCG) с параметрами: a = 257, c = 1, m = 256.
  3. Применение операции «смешивания» (mix) для каждого слова, где используется таблица замен PITABLE (Permutation and Inversion Table) — фиксированный массив из 256 байт, полученный из цифр числа π.

Раунды шифрования

RC2 выполняет 16 раундов шифрования. Каждый раунд состоит из трёх операций:

  • Смешивание (mix): преобразование одного 16-битного слова с использованием таблицы PITABLE и сложения по модулю 2^16.
  • Перестановка (mash): обмен между словами, зависящий от раунда.
  • Сложение с ключом: добавление соответствующего слова расширенного ключа.

На выходе получается 64-битный шифротекст. Дешифрование выполняется в обратном порядке с использованием тех же ключей.

Режимы работы

RC2 может использоваться в различных режимах блочного шифрования, таких как ECB (Electronic Codebook), CBC (Cipher Block Chaining), CFB (Cipher Feedback) и OFB (Output Feedback). Наиболее распространённым является режим CBC, который обеспечивает лучшую защиту от статистических атак.

Применение

Протокол SSL/TLS

RC2 был одним из первых шифров, включённых в спецификацию протокола SSL (Secure Sockets Layer) версии 2.0 и 3.0, а также в его преемника TLS (Transport Layer Security). В ранних версиях SSL/TLS RC2 использовался для шифрования данных, передаваемых между клиентом и сервером, особенно в браузерах Netscape и Internet Explorer. С появлением более сильных алгоритмов (AES, 3DES) и уязвимостей RC2, его применение в SSL/TLS было прекращено. В современных версиях TLS (1.2 и 1.3) RC2 не поддерживается.

Система S/MIME

Стандарт S/MIME (Secure/Multipurpose Internet Mail Extensions) версии 2 и 3 поддерживал RC2 как один из алгоритмов для шифрования электронной почты. Шифр использовался для защиты содержимого писем и вложений. Однако из-за слабости 40-битной версии (экспортное ограничение) и последующей уязвимости к атакам, S/MIME перешёл на использование AES.

Другие применения

RC2 также применялся в:

  • Протоколе Kerberos (версии 4 и ранние версии 5) для шифрования аутентификационных данных.
  • Файловых архиваторах (например, WinZip) для защиты паролем.
  • Системах управления базами данных (например, Microsoft SQL Server) для шифрования резервных копий.

Криптоанализ и уязвимости

Атаки на RC2

RC2 подвергался нескольким видам криптоаналитических атак:

  • Атака на основе связанных ключей (related-key attack): в 1997 году Джон Келси и Брюс Шнайер показали, что при использовании связанных ключей (например, отличающихся одним битом) можно восстановить ключ с трудоёмкостью около 2^56 операций.
  • Атака с известным открытым текстом (known-plaintext attack): в 2000 году группа исследователей (Кнутссон, Мейер и др.) продемонстрировала, что для 64-битного ключа атака требует около 2^55 вызовов шифра.
  • Атака с выбранным открытым текстом (chosen-plaintext attack): в 2004 году была опубликована атака, позволяющая восстановить ключ за 2^47 операций для 64-битного ключа.

Статус безопасности

На сегодняшний день RC2 считается полностью устаревшим и небезопасным для использования в новых системах. Ключи длиной 40 бит (экспортная версия) могут быть взломаны за несколько секунд на современном оборудовании. Даже 128-битная версия подвержена атакам с трудоёмкостью около 2^56, что значительно ниже теоретической стойкости. Основные рекомендации криптографических стандартов (NIST, ISO, IETF) предписывают отказ от RC2 в пользу AES или ChaCha20.

Сравнение с другими шифрами

ХарактеристикаRC2DES3DESAES
Размер блока64 бит64 бит64 бит128 бит
Длина ключа1–128 байт56 бит112/168 бит128/192/256 бит
Количество раундов16164810/12/14
Скорость (на 32-битном процессоре)~10 Мб/с~5 Мб/с~2 Мб/с~20 Мб/с
Криптостойкость (2024 г.)УстаревшийУстаревшийУстаревшийСовременный

Интересные факты

  • Название «RC2» расшифровывается как «Rivest Cipher 2» (шифр Ривеста 2). Существует также RC1 (неопубликованный), RC4 (потоковый шифр), RC5 и RC6 (блочные шифры).
  • В 1990-е годы из-за экспортных ограничений США RC2 часто поставлялся с ключом длиной 40 бит, что делало его уязвимым для атак методом полного перебора.
  • Алгоритм PITABLE, используемый в RC2, был получен из цифр числа π, что является распространённым приёмом для создания псевдослучайных таблиц.
  • В 2011 году компания Microsoft объявила о прекращении поддержки RC2 в своих продуктах (Windows, Office, Exchange) и рекомендовала переходить на AES.

Источники

  • Rivest, R. L. (1987). «The RC2 Encryption Algorithm». MIT Laboratory for Computer Science.
  • Schneier, B. (1996). «Applied Cryptography». John Wiley & Sons.
  • Kelsey, J., Schneier, B., Wagner, D. (1997). «Related-Key Cryptanalysis of 3-WAY, Biham-DES, CAST, DES-X, NewDES, RC2, and TEA».
  • Knudsen, L. R., Meier, W., Rijmen, V. (2000). «The Security of the RC2 Block Cipher».
  • IETF RFC 2268 (1998). «A Description of the RC2(r) Encryption Algorithm».
  • NIST Special Publication 800-67 (2012). «Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →