RC2 — 64-битов симетричен блоков шифър в криптографията (Роналд Ривест, 1987)

RC2 — 64-битов блоков шифър на Роналд Ривест (1987): история, архитектура, разширяване на ключа, експорти и уязвимости (свързани ключове, остарели 40‑битови ключове)

Автор: Leandro Alegsa

В криптографията RC2 е блоков шифър със симетричен ключ, проектиран от Роналд Ривест през 1987 г. Инициалите "RC" обикновено се тълкуват като "Шифър на Ривест" или "Шифър на Рон".

RC2 оперира върху 64-битови блока и поддържа променлив по дължина входен ключ; алгоритъмът използва общо 18 кръга, организирани в две категории: миксиращи (mixing) и масиращи (mashing) обиколки.

Структура и работен принцип

Криптографската структура на RC2 е комбинация от поредица от нелинейни и линеарни операции, приложени върху 16-битови думи. Преди самото шифриране входният ключ преминава през алгоритъм за разширяване на ключа, който генерира разширен ключ, състоящ се от 64 16-битови думи. Тези 64 думи (общо 1024 бита разширен ключов материал) се извеждат по сложна зависимост от всеки бит на предоставения "променлив по дължина" входен ключ (RFC 2268).

Миксиращите обиколки (mixing rounds) комбинират операции като добавяне по модул 2^16, побитово XOR и 16-битови ротации върху думите от състоянието, за да постигнат дифузия и нелинейност. Масиращите обиколки (mashing rounds) въвеждат допълнителна зависимост от разширения ключ чрез прибавяне на определени 16-битови думи от разширения ключ към текущото състояние.

Последователността на 18-те кръга е организирана по следния начин:

  1. извършете 5 миксиращи обиколки;
  2. извършете 1 масираща обиколка;
  3. извършете 6 миксиращи обиколки;
  4. извършете 1 масираща обиколка;
  5. извършете 5 миксиращи обиколки.

Във всеки миксиращ рунд някои от думите на състоянието се комбинират и върху тях се прилагат гореспоменатите операции; при определени стъпки към думите се добавя и 16-битова дума от разширения ключ (механизмът "mashing" се извършва в точно определен момент в последователността). Всичко това е описано подробно в спецификацията на RFC 2268.

Сигурност и атаки

RC2 е обект на криптоаналитични изследвания. Бяха демонстрирани свързани с ключове (related-key) атаки по работещи вариации на алгоритъма. В частност, Kelsey и съавтори (1997) описват атака със свързани ключове, изискваща приблизително 2^34 операции с избран текст, която компрометира сигурността на оригиналния дизайн в някои условия (Kelsey et al.). Освен това 64-битовият размер на блока днес се смята за недостатъчен за множество приложения поради възможни сблъсъци (birthday атаки) при големи обеми данни.

Практически аспект, който допълнително влошава сигурността в исторически план, е използването на кратки ключове (например 40 бита) заради експортни ограничения, което прави RC2 лесно уязвим на атаки с груба сила. Поради това днес 40-битовите варианти се считат за остарели и несигурни.

История и използване

Разработването на RC2 бе спонсорирано от компанията Lotus с цел да има потребителски шифър, който да бъде изнасян като част от софтуера Lotus Notes след оценка от NSA. По време на преговорите АНС предложи няколко промени, които Роналд Ривест включи в алгоритъма, и след допълнителни обсъждания шифърът бе одобрен за износ през 1989 г.

Първоначално детайлите за алгоритъма бяха запазени в тайна и бяха собственост на RSA Security. На 29 януари 1996 г. кодът/спецификацията на RC2 бе публикуван анонимно в интернет във форума на Usenet, sci.crypt (анонимна публикация). Подобна история има и с RC4. Не е напълно ясно дали този пост съдържаше официални спецификации или представлява обратен инженеринг.

Съвременни препоръки

Поради гореописаните слабости и по-общите изисквания за по-силна защита, RC2 не се препоръчва за нови системи. Алгоритми с по-големи блокове и по-силни криптографски свойства, като AES (Advanced Encryption Standard), или модерни потокови алгоритми като ChaCha20, са днешният стандарт за сигурно криптиране. При миграция от RC2 трябва да се има предвид и пробема с обратна съвместимост в приложения и файлови формати, в които е бил използван RC2.

За исторически и съвместимостни цели RC2 все още може да се срещне в стари реализации и формати, но при нови разработки и при обработка на чувствителни данни се препоръчва използването на по-сигурни и проверени съвременни криптографски примитиви.

За справка: спецификацията на RC2 е публикувана като RFC 2268.

Трансформацията за смесване на RC2; рундът на смесване се състои от прилагане на трансформацията "смесване" четири пъти.Zoom
Трансформацията за смесване на RC2; рундът на смесване се състои от прилагане на трансформацията "смесване" четири пъти.

Въпроси и отговори

В: Какво е RC2?


О: RC2 е блоков шифър със симетричен ключ, разработен от Роналд Ривест през 1987 г. Той използва 64-битов размер на блока и 18 кръга на криптиране.

В: Какво означава "RC"?


О: "RC" означава "Шифър на Ривест" или "Шифър на Рон".

В: Колко кръга се извършват при използването на RC2?


О: При използването на RC2 се извършват 18 кръга - 16 кръга на смесване, преплетени с два кръга на разбъркване.

В: Как работи алгоритъмът за разширяване на ключа?


О: Алгоритъмът за разширяване на ключа създава разширен ключ, състоящ се от 64 (16-битови думи), в зависимост от всеки бит на предоставения входния ключ с променлива дължина.

В: На какъв тип атака е уязвим RC2?


О: RC2 е податлив на атака със свързани ключове, използваща 234 атаки с избран текст.

В: Кой спонсорира разработването на RC2?



О: Разработката на RC2 беше спонсорирана от Lotus, които търсеха потребителски шифър, който да бъде експортиран като част от техния софтуер Lotus Notes.


обискирам
AlegsaOnline.com - 2020 / 2025 - License CC3