RC5 — Rivesti plokkšiffer: definitsioon, parameetrid ja tööpõhimõte

Tutvu RC5 (Rivesti) plokkšifriga: definitsioon, plokisuurus, võtme pikkus, voorud ja tööpõhimõte — lihtne, paindlik ja uurimisväärne krüptograafiline algoritm.

Autor: Leandro Alegsa

Krüptograafias on RC5 lihtne sümmeetrilise võtmega plokkšiffer. Ronald Rivesti poolt 1994. aastal väljatöötatud RC5 on parameetriga algoritm, millel on muutuv plokisuurus, muutuv võtme suurus ja muutuv ringide arv. "RC" tähendab "Rivest Cipher" või alternatiivselt "Ron's Code".

Selleks, et pakkuda erinevaid turvalisuse ja tõhususe tasemeid, on RC5-l muutuv plokisuurus (32, 64 või 128 bitti), muutuv võtme suurus (0 kuni 2040 bitti) ja muutuv ringide arv (0 kuni 255). Esialgsed soovituslikud parameetrid olid 64-bitine plokisuurus, 128-bitine võti ja 12 vooru.

RC5 peamine omadus on andmetest sõltuvate pöörete kasutamine; üks RC5 eesmärkidest oli uurida ja hinnata plokkšifrite kui krüptograafilise primitiivi operatsioone. RC5 koosneb ka mitmest modulaarsest liitmisest ja eXclusive OR (Xor)-ist. Algoritmi üldine struktuur on Feisteli-taoline võrk. Krüpteerimis- ja dekrüpteerimisrutiinid saab määrata mõne koodireaga. Võtmeplaan on aga keerulisem, laiendades võtit sisuliselt ühesuunalise funktsiooniga, mille allikateks on nii e kui ka kuldlõike binaarsed laiendused kui "mitte midagi varrukast välja käivad numbrid". Algoritmi lihtsus koos andmetest sõltuvate pöörete uudsusega on muutnud RC5 krüptoanalüütikute jaoks atraktiivseks uurimisobjektiks.

Põhiparameetrid ja märgistus

RC5 on tavaliselt märgitud kujul RC5-w/r/b, kus:

  • w on sõna suurus bittides (näiteks 16, 32 või 64). Ploki suurus on 2·w bitti;
  • r on voorude (rounds) arv;
  • b on võti baitides (või ekvivalentselt võtme suurus bittides).
Näiteks sageli kasutatav variant on RC5-32/12/16 — see tähendab 32‑biti sõna (64‑biti plokk), 12 vooru ja 128‑bitist võtit (16 baiti).

Tööpõhimõte (krüpteerimine ja dekrüpteerimine)

RC5 kasutab lihtsaid bititegevusi, mis on kiirelt teostatavad nii tarkvaras kui riistvaras: täisarvuline modulaarsed liitmine (mod 2^w), xor ja bitiringid (rotatsioonid). Märkimisväärne omadus on, et rotatsiooni suurus sõltub krüptotavatest andmetest — seetõttu räägitakse data-dependent rotations ehk andmetest sõltuvatest pööretest.

Krüpteerimise üldine voog (sõnadel A ja B, mille igaühe laius on w bitti):

  • Esimene samm: A = A + S[0]; B = B + S[1];
  • Seejärel r korda kordusvoor:
    • A = ((A xor B) <<< (B mod w)) + S[2*i];
    • B = ((B xor A) <<< (A mod w)) + S[2*i+1];
Siin <<< tähistab vasakut ringi-rotatsiooni w-bitises sõnas ja S on eelnevalt arvutatud võtmelaienduse massiiv.

Dekrüpteerimine toimub eelmise protsessi täpsel pööramisel: voorud käivad vastupidises järjekorras ja liitmine asendatakse lahutamisega, rotatsioonid on paremale.

Võtmeplaan (key schedule)

Võtmeplaan on RC5-s oluline ja natuke keerukam osa: see laiendab kasutaja sisestatud võtme baitide jadaks S[], mille pikkus on 2*r + 2 sõna. Laiendus kasutab kahte fikseeritud konstanti Pw ja Qw, mis on tuletatud irratsionaalsetest konstantidest (binaarsed laiendused eksponentist e ja kuldlõikest). Võtmeplaani esialgne initsialiseerimine ja segamine sisaldab mitut ringikas liitmist ja rotatsiooni, et hajutada võtme baiti S-massiivi sõnadesse.

Elementaarne ülevaade:

  • Esiteks teisendatakse kasutaja võti baitidena sõnade jada L[]-ks.
  • Seejärel initsialiseeritakse S[0..2r+1] konstantaalkomponentidega Pw ja Qw.
  • L ja S segatakse kokku mitme iteratsiooni jooksul, kasutades liitmist ja andmesõnast sõltuvaid rotatsioone — see tagab, et kõigi sisendi võtmebittide mõjud levivad S-massiivi.

Turvalisus, jõudlus ja kasutus

RC5 on disainilt lihtne ja efektiivne: kasutab vaid põhitegevusi (add, xor, rot), mis teeb selle kiireks nii protsessoritel kui spetsiaalsetes seadmetes. Samuti võimaldab parameetrite reguleerimine kompromisse kiiruse ja turvalisuse vahel.

Krüptoanalüüs on näidanud, et turvalisus sõltub tugevalt valitud parameetritest (sõna suurus, voorude arv, võtme pikkus). Paljud uurimused on keskendunud vähendatud voorude variantidele ning andmetest sõltuvate pöördemehhanismide analüüsile. Näiteks väiksema voorude arvuga variandid on olnud haavatavad erinevatele analüütilistele rünnakutele, kuid soovituslikult kasutatavad parameetrid (näiteks RC5-32/12/16) pole praktiliselt purunenud avalike rünnakute käigus.

Lisaks korraldas RSA Laboratories varem mitmesuguseid avalikke väljakutseid ja konkurse, kus prooviti bruteforce-meetoditega RC5-algoritmi väiksema võtmega variante murda — see aitas teaduskonnal ja kogukonnal hinnata praktikas vajalikku võtmesuurust.

Kokkuvõte ja järeldused

RC5 on oluliselt mõjutanud plokkšifrite disaini, eelkõige andmetest sõltuvate rotatsioonide kasutuselevõtu kaudu. Selle parameetri-süsteem muudab selle kohandatavaks mitmesuguste rakenduste jaoks: väiksema jõudluse piirangu korral saab valida vähem voorusid või väiksema sõna laiuse, turvalisuse tagamiseks kasutada suuremat võtme- ja plokisuurust ning rohkem voorusid. RC5 on jätkuvalt huvitav nii praktiliste rakenduste kui ka akadeemiliste uurimuste jaoks, kuigi tänapäevastes süsteemides kasutatakse sageli ka teisi, uuemaid standardiseeritud šifreid sõltuvalt turvanõuetest.

Krüptoanalüüs

12-ringiline RC5 (64-bitiste plokkidega) on vastuvõtlik diferentsiaalrünnakule, mis kasutab 244 valitud puhasteksti. Piisavaks kaitseks soovitatakse 18-20 vooru.

RSA Security, kellel on algoritmi patent, pakkus RC5-ga krüpteeritud salakirjade murdmise eest 10 000 USA dollari suurust auhinnaraha, kuid need võistlused on alates 2007. aasta maist lõpetatud. Mitmed neist väljakutsetest on lahendatud Distributed.net'i korraldatud hajutatud arvutustehnika abil. Distributed.net on purustanud 56- ja 64-bitise võtmega krüpteeritud RC5-sõnumeid ning töötab praegu 72-bitise võtme murdmise kallal. Praeguse tempo juures (seisuga 12. november 2008) kulub projekti lõpuleviimiseks iga võimaliku võtme katsetamiseks umbes 1000 aastat.

Küsimused ja vastused

K: Mis on RC5?


V: RC5 on lihtne sümmeetrilise võtmega plokkšiffer, mille töötas 1994. aastal välja Ronald Rivest.

K: Mida tähendab "RC"?


V: "RC" tähendab "Rivest Cipher" või alternatiivselt "Ron's Code".

K: Millised on RC5 parameetrid?


V: RC5 parameetrid hõlmavad muutuvat plokisuurust (32, 64 või 128 bitti), muutuvat võtme suurust (0 kuni 2040 bitti) ja muutuvat voorude arvu (0 kuni 255). Esialgu soovitati valida 64-bitine plokisuurus, 128-bitine võti ja 12 vooru.

K: Milline on algoritmi üldine struktuur?


V: Algoritmi üldine struktuur on Feisteli-taoline võrk.

K: Kui keeruline on võtmete ajakava?


V: Võtme ajakava on keerulisem, laiendades võtit sisuliselt ühesuunalise funktsiooniga, mille allikateks on binaarsed laiendused.

K: Miks on RC5 olnud krüptoanalüütikute jaoks atraktiivne?


V: Algoritmi lihtsus koos andmetest sõltuvate pöörete uudsusega on muutnud RC5 krüptoanalüütikute jaoks atraktiivseks uurimisobjektiks.


Otsige
AlegsaOnline.com - 2020 / 2025 - License CC3