RC5: parametrizovaná bloková šifra Ronalda Rivesta v kryptografii

RC5 — parametrizovaná bloková šifra Ronalda Rivesta: flexibilní velikosti bloku/klíče, datově závislé rotace a analýza bezpečnosti pro moderní kryptografii.

Autor: Leandro Alegsa

V kryptografii je RC5 jednoduchá bloková šifra se symetrickým klíčem. Šifru RC5 navrhl Ronald Rivest v roce 1994 a jedná se o parametrizovaný algoritmus s proměnnou velikostí bloku, proměnnou velikostí klíče a proměnným počtem kol. Zkratka "RC" znamená "Rivestova šifra", případně "Ronova šifra".

Parametry a zápis

Aby bylo možné zajistit různé úrovně bezpečnosti a efektivity, má RC5 proměnnou velikost bloku (32, 64 nebo 128 bitů), proměnnou velikost klíče (0 až 2040 bitů) a proměnný počet kol (0 až 255). Původní navrhovaná volba parametrů byla 64bitová velikost bloku, 128bitový klíč a 12 kol.

V praxi se často používá zápis RC5-w/r/b, kde

  • w je velikost slova v bitech (např. 32),
  • r je počet kol (např. 12),
  • b je délka tajného klíče v bajtech (např. 16).
Block size je pak 2·w bitů.

Princip operace

Klíčovým rysem RC5 je použití datově závislých rotací, tedy rotací o počet bitů určený hodnotou zpracovávaných dat. Jedním z cílů RC5 bylo studovat a vyhodnocovat operace blokových šifer jako kryptografického primitiva. Struktura algoritmu kombinuje opakované kroky jednoduchých operací:

  • modulární sčítání (word addition),
  • bitové XOR (eXclusive OR),
  • cyklické rotace (data-dependent rotates).

Obecná struktura algoritmu připomíná Feistelovu síť, ale není klasickou Feistelovou strukturou; pracuje se dvěma slovy A a B a v každém kole se obě slova vzájemně mísí pomocí sčítání, XOR a rotací závislých na druhém slovu. Šifrovací a dešifrovací rutiny jsou relativně krátké a snadno implementovatelné v několika řádcích kódu.

Rozvrh klíče (key schedule)

Rozvrh klíče vytváří pole pomocných slov S[0..2r+1], které se používá při šifrování a dešifrování. Princip rozšíření klíče je navržen tak, aby byl jednoduchý, ale zajistil dostatečné „rozmíchání“ klíče do interních konstant. Rozšíření zahrnuje inicializaci S pomocí dvou konstant odvozených z matematických konstant (jako zdroje "nic v rukávu") — používané konstanty jsou odvozeny z přirozené exponenciály e a zlatého řezu — a následné iterované míchání polí S a L (pole získané z původního tajného klíče) pomocí sčítání a rotací.

Výstupem rozvrhu je pole S dostatečně dlouhé (2r+2 slov, každé o velikosti w bitů), které se pak používá v samotných kolech šifrování.

Příklad základního průběhu šifrování

Simplifikovaný popis jedné iterace (pro ilustraci, bez přesného zápisu):

  • Inicializace: A = A + S[0]; B = B + S[1]
  • Pro i = 1 až r:
    • A = ((A xor B) <<< B) + S[2i]
    • B = ((B xor A) <<< A) + S[2i+1]

Dešifrování provádí inverzní operace v opačném pořadí: používá se opačné sčítání/subtrakce, pravé rotace a XOR.

Bezpečnost a kryptoanalýza

Jednoduchost algoritmu spolu s novostí rotace závislé na datech učinily z RC5 atraktivní předmět studia pro kryptoanalytiky. Byla zkoumána řada útoků proti zjednodušeným (redukovanému počtu kol) verzím RC5 pomocí technik jako diferencová a lineární kryptoanalýza či útoky vázané na související klíče. Obecně platí:

  • pro malé počty kol lze nalézt praktické útoky;
  • pro doporučenou konfiguraci (např. RC5-32/12/16) nebyly publikovány praktické útoky lámající celý klíč v rozumném čase, nicméně bezpečnostní marže se zvyšovaly dalšími studiemi;
  • pro vyšší bezpečnost je možné zvýšit počet kol (např. na 16 nebo 20) – RC5 je navržen tak, aby tuto parametrizaci podporoval.

V kryptografické komunitě se pro RC5 objevily přesné analýzy omezující bezpečnostní margin u různých parametrů, a proto se doporučuje volit parametry podle očekávaných hrozeb a životnosti šifrovaných dat.

Výkonnost a implementace

RC5 je navržena tak, aby byla rychlá v softwaru na běžných CPU: používá operace, které jsou nativní pro většinu procesorů (sčítání, XOR, rotace). Díky jednoduchosti operací je RC5 vhodná i pro omezené prostředky (embedded systémy). Implementace je krátká a přehledná, což usnadňuje audit a učení se kryptografii.

Varianty a následníci

Vliv RC5 byl významný: myšlenka datově závislých rotací a parametrizovatelné konstrukce vedly ke vzniku dalších návrhů. Nejznámějším následníkem je RC6, který navrhli autoři RC5 (včetně R. Rivesta) jako jednu z finalistických nominací v soutěži AES; RC6 rozšiřuje myšlenky RC5 o další operace (např. multiplikace), aby dosáhl lepší bezpečnostní marže.

Využití a historie

RC5 se používá zejména jako pedagogický příklad blokové šifry a byl také implementován v různých knihovnách a aplikacích. Díky své parametrizovatelnosti a jednoduchosti slouží i jako testovací objekt pro nové analytické metody v kryptografii.

Doporučení pro použití

  • Používejte dostatečně dlouhý klíč a doporučený či vyšší počet kol – výběr parametrů závisí na požadované bezpečnosti a výkonu.
  • Vyrábějte implementace pečlivě (správné rotace, práce s přetečením slov, bezpečné zpracování klíče v paměti).
  • V aplikacích s dlouhou životností citlivých dat zvažte moderní standardy (např. AES) nebo pečlivě odhadněte požadavky a rizika při použití RC5.

RC5 je tedy zajímavý příklad flexibilní, snadno implementovatelné blokové šifry, která významně ovlivnila další vývoj symetrických algoritmů a kryptografickou analýzu.

Kryptoanalýza

12kolový RC5 (s 64bitovými bloky) je náchylný k diferenciálnímu útoku pomocí 244 vybraných otevřených textů. Jako dostatečná ochrana se navrhuje 18-20 kol.

Společnost RSA Security, která má na tento algoritmus patent, nabízela řadu soutěží o ceny v hodnotě 10 000 USD za prolomení šifrových textů zašifrovaných pomocí RC5, ale tyto soutěže byly v květnu 2007 ukončeny. Řada těchto soutěžních problémů byla řešena s využitím distribuovaných výpočtů, které organizuje Distributed.net. Distributed.net prolomila zprávy RC5 zašifrované 56- a 64bitovými klíči a nyní pracuje na prolomení 72bitového klíče. Při současném tempu (k 12. listopadu 2008) bude trvat přibližně 1 000 let, než se otestují všechny možné klíče a projekt se dokončí.

Otázky a odpovědi

Otázka: Co je RC5?


Odpověď: RC5 je jednoduchá bloková šifra se symetrickým klíčem, kterou navrhl Ronald Rivest v roce 1994.

Otázka: Co znamená zkratka "RC"?


A: "RC" znamená "Rivestova šifra" nebo také "Ronova šifra".

Otázka: Jaké jsou parametry RC5?


Odpověď: Mezi parametry RC5 patří proměnlivá velikost bloku (32, 64 nebo 128 bitů), proměnlivá velikost klíče (0 až 2040 bitů) a proměnlivý počet kol (0 až 255). Původní navrhovaná volba byla velikost bloku 64 bitů, 128bitový klíč a 12 kol.

Otázka: Jaká je obecná struktura algoritmu?


Odpověď: Obecnou strukturou algoritmu je síť podobná Feistelově.

Otázka: Jak složitý je plán klíče?


Odpověď: Rozvrh klíče je složitější, rozšiřuje klíč pomocí v podstatě jednosměrné funkce s binárními expanzemi jako zdroji čísel.

Otázka: Proč je RC5 pro kryptoanalytiky atraktivní?


Odpověď: Jednoduchost algoritmu spolu s novinkou v podobě rotace závislé na datech učinily z RC5 atraktivní předmět studia pro kryptoanalytiky.


Vyhledávání
AlegsaOnline.com - 2020 / 2025 - License CC3