RC2 — 64bitová bloková šifra Rivesta: principy, historie a bezpečnost

Komplexní přehled RC2 — 64bitové blokové šifry Rivesta: principy, historie, zranitelnosti a doporučení pro bezpečné nasazení v moderní kryptografii.

Autor: Leandro Alegsa

Principy šifry

V kryptografii je RC2 bloková šifra se symetrickým klíčem, navržená Ronaldem Rivestem v roce 1987. Zkratka RC pochází z angličtiny jako "Rivest Cipher" (česky často "Rivestova šifra").

RC2 pracuje na 64bitových blocích dat a používá proměnnou velikost klíče (vstupní klíč může mít různé délky, typicky až do 128 bitů). Interně šifra používá rozšířený klíč sestávající ze 64 16bitových slov (tj. 1024 bitů / 128 bajtů), které se získají pomocí speciálního algoritmu rozšiřování klíče. Tento rozšířený klíč závisí složitým způsobem na každém bitu původního vstupního klíče a umožňuje zároveň nastavit tzv. efektivní délku klíče pro exportní omezení (viz RFC 2268).

Struktura RC2 je založena na Feistelově typu sítě. Celkem se provádí 18 kol, z nichž 16 jsou tzv. mixing (mísicí) kol jednoho typu a dvě jsou mashing (kašovací) kola jiného typu. Kola jsou uspořádána v následujícím prokládaném pořadí:

  1. proveďte 5 kol míchání,
  2. proveďte 1 kolo kašování (mashing),
  3. proveďte 6 kol míchání,
  4. proveďte 1 kolo kašování,
  5. proveďte 5 kol míchání.

Typické mísicí kolo aktualizuje čtyři 16bitové registry pomocí operací sčítání, bitových operací (AND, OR, XOR) a rotací. Každé mísicí kolo použije jedno ze 16bitových slov z rozšířeného klíče. Kašovací kolo potom přidá do registrů další slova z rozšířeného klíče na základě současných hodnot registrů, což výrazně promíchá závislost na klíči (podrobnosti a přesný zápis transformací jsou specifikovány v RFC 2268).

Rozšiřování klíče

Algoritmus rozšiřování klíče vezme původní klíč "proměnné délky" a postupně z něj vytvoří pole 64 16bitových slov. Proces zahrnuje opakované míchání bajtů a případné doplnění do požadované velikosti a rovněž volitelnou redukci efektivní délky klíče pro splnění exportních omezení. Výsledný rozšířený klíč se pak používá v mísicích i kašovacích kolech (RFC 2268 popisuje přesný postup a funkce).

Historie a standardizace

Vývoj RC2 byl sponzorován společností Lotus; cílem bylo zajistit šifru vhodnou pro exportní verze softwaru Lotus Notes. Během procesu hodnocení se do návrhu zapojila NSA, která navrhla několik úprav, jež Ronald Rivest následně implementoval. Po dohodách byla šifra v roce 1989 schválena k vývozu.

Zpočátku byly podrobnosti algoritmu vlastnictvím společnosti RSA Security a drženy v tajnosti. Dne 29. ledna 1996 byl však zdrojový kód RC2 anonymně zveřejněn na internetu v diskusi na fóru sci.crypt v sítí Usenet. Podobné zveřejnění se dříve týkalo i RC4; není zcela jasné, zda zveřejněná data pocházela z interních specifikací, nebo byla získána reverzním inženýrstvím.

Použití a omezení exportu

RC2 (stejně jako RC4) byl historicky součástí amerických exportních omezení kryptografických produktů a často se používal ve variantách s 40bitovou délkou klíče, aby splňoval tehdejší pravidla. Dnes jsou všechny 40bitové konfigurace považovány za nebezpečně slabé a prakticky prolomitelné útoky hrubou silou.

Bezpečnost

RC2 není považována za dostatečně bezpečnou pro moderní použití. Mezi významné kryptanalytické výsledky patří útok na příbuzné klíče (related-key attack) publikovaný Kelseym a kolegy v roce 1997, který dokáže prolomit RC2 s nároky přibližně 2^34 útoků vybraným prostým textem. Tento výsledek ukazuje relativní slabost rozšiřovací funkce a vazeb mezi klíčem a rozšířeným klíčem. Navíc, konfigurace s krátkým (např. 40bitovým) klíčem jsou zřejmým terčem pro útoky hrubou silou (2^40), které jsou dnes proveditelné.

V důsledku těchto zranitelností se RC2 nedoporučuje pro nové aplikace; moderní protokoly a systémy by měly volit bezpečnější alternativy, například AES (Advanced Encryption Standard) nebo proudové šifry jako ChaCha20, které poskytují lepší odolnost a jsou široce standardizované.

Závěr

RC2 je historicky důležitá šifra, která ilustruje vývoj symetrické kryptografie v 80. a 90. letech a problém kompromisů mezi exportní politikou a bezpečností. Přestože hrála roli v komerčních produktech (např. Lotus Notes) a byla popsána v normě (RFC 2268), její slabiny a existence efektivních útoků znamenají, že by dnes neměla být používána pro ochranu citlivých dat.

Míchací transformace RC2; Míchací kolo se skládá ze čtyřnásobného použití transformace "mix-up".Zoom
Míchací transformace RC2; Míchací kolo se skládá ze čtyřnásobného použití transformace "mix-up".

Otázky a odpovědi

Otázka: Co je to RC2?


A: RC2 je bloková šifra se symetrickým klíčem, kterou navrhl Ronald Rivest v roce 1987. Používá 64bitovou velikost bloku a 18 kol šifrování.

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


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

Otázka: Kolik kol se provádí při použití RC2?


Odpověď: Při použití RC2 se provádí 18 kol - 16 směšovacích kol prokládaných dvěma mashingovými koly.

Otázka: Jak funguje algoritmus rozšiřování klíče?


Odpověď: Algoritmus rozšiřování klíče vytváří rozšířený klíč složený ze 64 (16bitových slov) v závislosti na každém bitu dodaného vstupního klíče proměnné délky.

Otázka: Na jaký typ útoku je RC2 náchylný?


Odpověď: RC2 je náchylný k útoku na příbuzný klíč pomocí 234 útoků vybraným prostým textem.

Otázka: Kdo sponzoroval vývoj RC2?



Odpověď: Vývoj RC2 sponzorovala společnost Lotus, která chtěla exportovat vlastní šifru jako součást svého softwaru Lotus Notes.


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