RC5 — симетричен блоков шифър на Роналд Ривест, описание и характеристики
В криптографията RC5 е прост блоков шифър със симетричен ключ, разработен от Роналд Ривест през 1994 г., като експериментален и параметризиран алгоритъм. RC5 има променлив размер на блока, променлив размер на ключа и променлив брой рундове; "RC" означава "Шифър на Ривест" (или алтернативно "Шифър на Рон").
Параметри и означения
RC5 е проектиран да бъде гъвкав: основните параметри са
- w — размер на думата в бита (обикновено 16, 32 или 64). Блокът е от 2*w бита (две думи).
- r — брой рундове (0–255).
- b — дължина на ключа в байтове (0–255 байта, което съответства на 0–2040 бита).
Често се използва нотация RC5-w/r/b, например RC5-32/12/16 (w=32, r=12, b=16 байта = 128 бита ключ). В предложението на Ривест типичните препоръчани параметри бяха блок от 64 бита (w=32), 128‑битов ключ и 12 рунда.
Основни операции и структура
RC5 използва още няколко прости, но мощни операции:
- Сумиране по модул 2^w (модулни добавки).
- XOR (изключващо ИЛИ).
- Ротации (циркулярни завъртания) с броя битове, задаван от стойността на друга дума — т.нар. data-dependent rotations).
Комбинацията от тези операции дава добра дифузия и нелинейност, а изчислителната простота прави RC5 бърз за софтуерна реализация. Структурно алгоритъмът напомня мрежа на Фейстел, но използва двойка думи (A и B) и операции, зависещи от данните в тези думи.
Кратко описание на криптирането
След разширяване на ключа се извършва следното (условно представяне за w-битови думи):
- Входният блок се разделя на две думи A и B.
- Преди рундовете: A = A + S[0]; B = B + S[1] (суми по модул 2^w).
- За i = 1..r: A = ((A XOR B) <<< B) + S[2*i]; B = ((B XOR A) <<< A) + S[2*i+1]; (където <<< означава лява ротация с количество битове, равно на стойността на другата дума, и всички сборове са модул 2^w)
- Декриптиране се извършва чрез обратните операции (ротации надясно и изваждания), използвайки същия масив S в обратен ред.
Схема за разширяване на ключа
Графикът на ключа (key schedule) е по-сложен от криптирането: първо входният ключ (b байта) се преобразува в масив от w-битови думи; след това се инициализира масив S с 2*r+2 думи, използвайки начални константи Pw и Qw, извлечени от двоичните разширения на e и златното сечение (използвани като "нищо в ръкава ми" числа). Тези начални стойности се смесват с думите на ключа чрез многократно сумиране и ротации, за да се получи финалният масив S, използван при криптиране.
Сигурност и криптоанализ
RC5 привлече вниманието на криптоаналитиците основно заради нетривиалните си операции с ротации, зависещи от данните. Против това бяха разработени различни техники на анализ, включително диференциален криптоанализ и подходи, които използват свойствата на ротациите. Някои от тези атаки са ефективни срещу варианти с намален брой рундове, но при препоръчваните параметри (напр. RC5-32/12/16) не са известни практически, широко приложими атаки, които да компрометират пълната ключова дължина.
Важно е да се отбележи, че какъвто и да е избор на параметри, сигурността зависи от:
- броя рундове;
- дължината на ключа;
- възможните известни резултати от криптоаналитични изследвания за конкретната конфигурация.
Производителност и приложимост
RC5 е лесен за имплементация и често много бърз на платформи с ефективни инструкции за ротация (особено 32-битови и 64-битови процесори). Плюсове и минуси:
- Плюсове: простота на основните операции, гъвкавост на параметрите, добри резултати при софтуерни реализации.
- Минуси: сложност в разширяването на ключа (в сравнение с някои други алгоритми), както и спецификата на ротациите, които налагат специално внимание при криптоанализ и при някои хардуерни реализации.
Употреба и наследство
RC5 има историческо значение като пример за дизайн, в който целта бе експериментално да се изследват ефектите на data-dependent ротациите и параметризацията на шифъра. От него произлязоха и други идеи и алгоритми (напр. RC6, предложен като кандидат за AES). RC5 не придоби същото ниво на стандартизация и разпространение като някои модерни алгоритми (напр. AES), но остава важна стъпка в развитието на блоковите шифри.
Кратко резюме
- Автор: Роналд Ривест, 1994 г.
- Тип: блоков шифър със симетричен ключ, параметризиран.
- Параметри: w (дума), r (рундове), b (дължина на ключа).
- Основни операции: модулни добавки, XOR, data-dependent ротации.
- Ключова характеристика: използване на ротации, зависещи от данните, и "нищо в ръкава ми" константи от разширенията на e и златното сечение.
Криптоанализ
12-рундовият RC5 (с 64-битови блокове) е уязвим на диференциална атака с 244 избрани открити текста. Като достатъчна защита се предлагат 18-20 кръга.
Компанията RSA Security, която притежава патент за алгоритъма, предлагаше серия от награди от 10 000 щатски долара за разбиване на шифрограми, зашифровани с RC5, но от май 2007 г. тези състезания бяха прекратени. Редица от тези задачи са били решени с помощта на разпределени изчисления, организирани от Distributed.net. Distributed.net е разбил с груба сила RC5 съобщения, криптирани с 56- и 64-битови ключове, а сега работи по разбиването на 72-битов ключ. При сегашното темпо (към 12 ноември 2008 г.) ще са необходими приблизително 1000 години, за да се тестват всички възможни ключове и да се завърши проектът.
Въпроси и отговори
В: Какво представлява RC5?
О: RC5 е прост блоков шифър със симетричен ключ, разработен от Роналд Ривест през 1994 г.
В: Какво означава "RC"?
О: "RC" означава "Шифър на Ривест" или "Шифър на Рон".
В: Какви са параметрите на RC5?
О: Параметрите на RC5 включват променлив размер на блока (32, 64 или 128 бита), променлив размер на ключа (от 0 до 2040 бита) и променлив брой рундове (от 0 до 255). Първоначално се предлагаше размер на блока от 64 бита, 128-битов ключ и 12 кръга.
Въпрос: Каква е общата структура на алгоритъма?
О: Общата структура на алгоритъма е мрежа, подобна на мрежата на Фейстел.
В: Колко сложно е разписанието на ключовете?
О: Графикът на ключа е по-сложен, като разширява ключа, използвайки по същество еднопосочна функция с двоични разширения като източници на числа.
В: Защо RC5 е привлекателен за криптоаналитиците?
О: Простотата на алгоритъма заедно с нововъведението на ротациите, зависещи от данните, направиха RC5 привлекателен обект за изследване от криптоаналитиците.