RC2: 64-bitna blokovna šifra v kriptografiji – definicija in zgodovina

RC2: zgodovina, tehnična definicija in ranljivosti 64-bitne blokovne šifre Rivesta — kratek vodnik o arhitekturi, širitvi ključev in varnostnih tveganj.

Avtor: Leandro Alegsa

V kriptografiji je RC2 blokovna šifra s simetričnim ključem, ki jo je zasnoval Ronald Rivest leta 1987. Kratica "RC" običajno pomeni "Rivest Cipher" oziroma v slovenščini pogosto "Rivestova šifra" ali preprosto "Ronova šifra".

Osnovne značilnosti

RC2 deluje na blokih velikosti 64 bitov in uporablja spremenljivo velikost ključa (vhodni ključ je lahko dolg od 1 do 128 bajtov, torej do 1024 bitov). V praktičnih, izvoznih različicah je bila pogosto omejena na učinkovito dolžino 40 bitov. Algoritem je standardiziran v RFC 2268 in izvaja skupaj 18 krogov (rounds).

Struktura in delovanje

RC2 je zgrajena kot Feistelova struktura (Feistelova mreža) z nekaj posebnostmi; v literaturi se opisuje tudi kot source‑heavy Feistelova struktura. Izvedba krogov je razdeljena na dve osnovni vrsti:

  • mixing rounds (mešalni krogi) — v teh krogih se izvaja več zaporednih transformacij tipa mix‑up, pri katerih se kombinirajo delni zamenjave, rotacije in aritmetične operacije; vsak obhod koristi besedo razširjenega ključa (16‑bitno vrednost) kot dodatek;
  • mashing rounds (mash‑krogi) — v teh krogih se dodatno vmešajo vrednosti iz razširjenega ključa v stanje šifre, kar poveča zapletenost odvisnosti šifriranega besedila od ključa.

Celotnih 18 krogov se izvede v naslednjem zaporedju:

  1. izvedite 5 mixing rounds (mešalnih krogov);
  2. izvedite 1 mashing round (mash‑krog);
  3. izvedite 6 mixing rounds;
  4. izvedite 1 mashing round;
  5. izvedite 5 mixing rounds.

Razširitev ključa (key schedule)

RC2 uporablja algoritem za razširitev vhodnega ključa v razširjen ključ, sestavljen iz 64 16‑bitnih besed (K[0] … K[63]). Vhodni ključ (niz bajtov) se najprej razširi in permutira z uporabo fiksne tabele, nato pa je po potrebi skrajšan ali prilagojen glede na zahtevano učinkovito dolžino ključa (parameter, ki se je uporabljal za izvozno omejevanje moči šifre). Ta razširjeni ključ se med mešalnimi in mash krogi uporablja po besedah, kot jih določajo transformacije (RFC 2268).

Varnost in napadi

RC2 ni bil zasnovan z današnjimi zahtevami za odpornost; zlasti različice z omejeno učinkovito dolžino ključa (npr. 40 bitov) so ranljive za napade z grobo silo. Dodatno, Kelsey in sodelavci (1997) sta pokazala sorodno‑ključni (related‑key) napad, ki zahteva približno 2^34 izbranih tekstov (chosen plaintexts), kar pomembno zmanjša varnost pri določenih scenarijih uporabe.

Zaradi teh in drugih naprednih tehnik analize šifriranja je RC2 danes v večini varnostnih priporočil ocenjen kot zastarela izbira; za nove projekte se priporoča uporaba modernejših, standardiziranih algoritmov, kot je AES.

Zgodovina in uporaba

Razvoj RC2 je sponzoriral Lotus z namenom, da bi lahko v izdelkih (npr. Lotus Notes) uporabljali šifriranje, primerno za izvoz. Pri pripravi različic za izvoz je NSA predlagala spremembe v algoritmu, ki jih je Ronald Rivest vključil; po nadaljnjih pogajanjih je bila šifra leta 1989 odobrena za izvoz. Poleg RC4 je bila tudi RC2 pogosto uporabljena z 40‑bitnim ključem v okviru ameriških predpisov o izvozu kriptografije.

Podrobnosti izvorne specifikacije RC2 so bile sprva last podjetja RSA Security in niso bile javno objavljene; 29. januarja 1996 pa je bila izvorna koda algoritma RC2 anonimno objavljena na forumu Usenet (skupina sci.crypt). Podobno se je zgodilo tudi pri RC4. Ni popolnoma jasno, ali je bil objavitelj vire prej pridobil odlastno ali pa je bila koda vmes rekonstruirana.

Priporočila

V sodobnih implementacijah in protokolih se uporaba RC2 ne priporoča. Če prenašate ali posodabljate stare sisteme, ki še uporabljajo RC2 (ali druge stare šifre z malimi ključnimi dolžinami), je priporočljivo preiti na sodobne, preizkušene algoritme in protokole (npr. AES v ustreznih načinih delovanja) ter zagotoviti ustrezno upravljanje ključev in parametrov.

Transformacija mešanja v RC2; krog mešanja je sestavljen iz štirikratne uporabe transformacije "mešanja".Zoom
Transformacija mešanja v RC2; krog mešanja je sestavljen iz štirikratne uporabe transformacije "mešanja".

Vprašanja in odgovori

V: Kaj je RC2?


O: RC2 je blokovna šifra s simetričnim ključem, ki jo je leta 1987 zasnoval Ronald Rivest. Uporablja 64-bitno velikost bloka in 18 krogov šifriranja.

V: Kaj pomeni "RC"?


O: "RC" pomeni "Rivestova šifra" ali "Ronova šifra".

V: Koliko krogov se izvede pri uporabi RC2?


O: Pri uporabi RC2 se izvede 18 krogov - 16 krogov mešanja, ki se izmenjujejo z dvema krogovoma razbijanja.

V: Kako deluje algoritem za razširitev ključa?


O: Algoritem za razširitev ključa ustvari razširjeni ključ, sestavljen iz 64 (16-bitnih besed), odvisno od vsakega bita predloženega vhodnega ključa spremenljive dolžine.

V: Na katero vrsto napada je RC2 občutljiv?


O: RC2 je dovzeten za napad na sorodne ključe z uporabo 234 napadov z izbranim prostim besedilom.

V: Kdo je sponzoriral razvoj RC2?



O: Razvoj RC2 je sponzoriral Lotus, ki je želel imeti šifro po meri, ki bi jo izvozil kot del svoje programske opreme Lotus Notes.


Iskati
AlegsaOnline.com - 2020 / 2025 - License CC3