RC2 – 64-bitová bloková šifra v kryptografii: definícia a história
RC2 – 64‑bitová bloková šifra: história, technická definícia, rozšírenie kľúča, konštrukcia 18 kôl a bezpečnostné riziká vrátane príbuzných kľúčov a exportných obmedzení.
V kryptografii je RC2 bloková šifra so symetrickým kľúčom, ktorú navrhol Ronald Rivest v roku 1987. Skratka "RC" znamená "Rivestova šifra" alebo neformálne "Ronova šifra". RC2 bola navrhnutá ako rýchla, softvérovo efektívna 64-bitová bloková šifra na použitie v komerčných produktoch.
Parametre a štruktúra
RC2 je 64-bitová bloková šifra, ktorá pracuje s premenlivou veľkosťou kľúča, ktorá môže mať rôzne dĺžky (efektívna dĺžka kľúča sa dá podľa potreby znížiť, napr. na 40 bitov pre exportné verzie). Šifra vykonáva 18 kôl a interná štruktúra vychádza z Feistelovej idey: kolá sú usporiadané ako zdrojovo ťažká feistelovásieť so 16 kolami jedného typu nazývanými "mixing rounds", ktoré sú prerušované dvoma kolami iného typu nazývanými "mashing rounds" (vkladacie kolá, ktoré miešajú slová rozšíreného kľúča do stavu).
18 kôl sa vykoná pomocou nasledujúcej striedavej sekvencie:
- vykonajte 5 kôl miešania (mixing rounds).
- vykonajte 1 kolo vkladania (mashing round).
- vykonajte 6 kôl miešania.
- vykonajte 1 kolo vkladania (mashing round).
- vykonajte 5 kôl miešania.
Rozšírenie kľúča a vnútorné operácie
RC2 používa špecifický algoritmus rozširovania kľúčov, ktorým sa z pôvodného vstupného kľúča vytvorí rozšírený kľúč pozostávajúci zo 64 slov po 16 bitoch (t. j. 64 × 16-bitových slov). Toto rozšírenie silne závisí od všetkých bitov pôvodného kľúča a obsahuje permutačnú tabuľku a niekoľko fáz obnovovania efektívnej dĺžky kľúča (podľa špecifikácie, napr. RFC 2268). Zmiešavacie kolo (mixing round) pozostáva zo štyroch aplikácií jednoduchej transformácie nazývanej "mix-up", ktorá kombinuje operácie modularnej sčítania, XOR a rotácií na 16-bitových slovách. Pri vkladacom kole (mashing round) sa do vnútorného stavu pridáva niekoľko slov z rozšíreného kľúča, čím sa ďalej premieša závislosť stavu od pôvodného kľúča (podrobnosti sú v RFC 2268).
Bezpečnosť a známe útoky
RC2 v minulosti patrila medzi široko používané šifry, dnes sa však považuje za historickú a v praxi bola väčšinou nahradená modernejšími štandardmi (napr. AES). Pre RC2 boli publikované kryptanalytické výsledky ukazujúce zraniteľnosti voči príbuzným kľúčom (related-key) a iným útokom. Napríklad bol opísaný útok príbuzným kľúčom, ktorý vyžaduje približne 2^34 vybraných textov (útokov vybraným textom) podľa práce Kelsey et al. (1997). Takéto výsledky znižujú dôveru v RC2 pre nové nasadenia, najmä ak sa používajú slabšie (kratšie) kľúče.
História, export a zverejnenie
Vývoj RC2 sponzorovala spoločnosť Lotus, ktorá po vyhodnotení NSA hľadala vlastnú šifru, ktorá by bola exportovaná ako súčasť ich softvéru Lotus Notes. NSA navrhla niekoľko zmien, ktoré Ronald Rivest zapracoval do návrhu. Po ďalších rokovaniach bola šifra v roku 1989 schválená na vývoz.
Spolu s RC4 bol RC2 v určitých konfiguráciách (najmä s 40-bitovou veľkosťou kľúča) považovaný podľa amerických predpisov za kryptografický produkt podliehajúci obmedzeniam exportu. Dnes sú 40-bitové kľúče považované za zastarané a nezabezpečujú ochranu proti útoky hrubou silou, preto je ich používanie nedoporučené.
Spočiatku boli technické podrobnosti RC2 utajené - boli vlastníctvom spoločnosti RSA Security. Napriek tomu bol zdrojový kód RC2 zverejnený anonymne na internete 29. januára 1996 na fóre sci.crypt (anonymne zverejnenie na internete.). Nie je jednoznačné, či autor príspevku mal priamy prístup k interným špecifikáciám, alebo či išlo o reverzný inžiniering.
Praktické odporúčania
- RC2 by sa dnes nemala používať pre nové systémy, kde je požadovaná silná bezpečnosť; namiesto toho sa odporúča použiť modernejšie a štandardizované algoritmy (napr. AES).
- Ak sa v starších aplikáciách objaví RC2 (napr. pri kompatibilite so starším softvérom), zvažujte migráciu na bezpečnejší algoritmus alebo použitie dostatočne dlhého efektívneho kľúča a ďalších opatrení (silné protokoly, autentizácia, atď.).
RC2 má historický význam v kontexte komerčných aplikácií 80. a 90. rokov a ilustruje, ako sa regulácie exportu a požiadavky trhu premietli do návrhu a distribúcie šifrovacích algoritmov.

Mix-up transformácia RC2; Mixovacie kolo pozostáva zo štvornásobného použitia transformácie "mix-up".
Otázky a odpovede
Otázka: Čo je to RC2?
Odpoveď: RC2 je bloková šifra so symetrickým kľúčom, ktorú navrhol Ronald Rivest v roku 1987. Používa 64-bitovú veľkosť bloku a 18 kôl šifrovania.
Otázka: Čo znamená skratka "RC"?
Odpoveď: "RC" znamená "Rivestova šifra" alebo alternatívne "Ronova šifra".
Otázka: Koľko kôl sa vykonáva pri použití RC2?
Odpoveď: Pri použití RC2 sa vykoná 18 kôl - 16 miešacích kôl preložených dvoma mashingovými kolami.
Otázka: Ako funguje algoritmus rozširovania kľúčov?
Odpoveď: Algoritmus rozšírenia kľúča vytvára rozšírený kľúč pozostávajúci zo 64 (16-bitových slov) v závislosti od každého bitu dodaného vstupného kľúča s premenlivou dĺžkou.
Otázka: Na aký typ útoku je RC2 náchylný?
Odpoveď: RC2 je náchylný na útok na príbuzný kľúč, ktorý využíva 234 útokov na vybraný text.
Otázka: Kto sponzoroval vývoj RC2?
Odpoveď: Vývoj RC2 sponzorovala spoločnosť Lotus, ktorá chcela exportovať vlastnú šifru ako súčasť svojho softvéru Lotus Notes.
Prehľadať