RC5 — Ronalda Rivesta simetriskais blokšifrs: definīcija, parametri un princips
RC5 — Rivesta simetriskais blokšifrs: definīcija, parametri un darbības princips. Uzzini par bloka/atslēgas izmēriem, raundiem, datu atkarīgajām rotācijām un drošību.
Kriptogrāfijā RC5 ir vienkāršs, bet elastīgs simetriskā atslēgas bloka šifrs, ko 1994. gadā izstrādāja Ronalds Rivests. RC5 ir raksturojams ar trim galvenajām mainīgajām dimensijām: bloka lielumu, atslēgas lielumu un raundu skaitu. "RC" apzīmē gan "Rivesta šifrs", gan nereti lietoto nosaukumu "Rona kods". Dizains izstrādāts tā, lai būtu viegli realizējams — šifrēšanas un atšifrēšanas procedūras parasti var uzrakstīt dažās koda rindās — vienlaikus piedāvājot pietiekamu kriptogrāfisku sarežģītību.
Parametri un nosaukšanas konvencija
RC5 atšķiras ar parametrizējamu struktūru, kas ļauj izvēlēties atbilstošu drošības un veiktspējas balansu:
- Bloka lielums: tiek definēts kā divkāršs vārda (word) lielums; parastās izvēles ir 32, 64 vai 128 biti kopējā bloka garumā (t.i., attiecīgi 16, 32 vai 64 bitu vārdi). Bieži lietotais variants ir RC5-32 (vārda izmērs 32 biti, bloks 64 biti).
- Atslēgas lielums: ir mainīgs — no 0 līdz 2040 bitiem teorētiski; izteikti praktiski piemēri izmanto, piemēram, 128 bitu atslēgu (16 baiti).
- Raundu skaits: var būt no 0 līdz 255; sākotnēji ieteiktie parametri bija 64 bitu bloks (RC5-32), 128 bitu atslēga un 12 raundi (bieži apzīmēts kā RC5-32/12/16).
Darbības princips
RC5 galvenā iezīme ir datiem atkarīga rotācija, kas nozīmē, ka rotācijas daudzums katrā soļā tiek iegūts no citas šifrējamās vārda vērtības. Pamatoperācijas ir modulāra saskaitīšana, ekskluzīvais OR (Xor) un bitu rotācija. Algoritma vispārējā struktūra ir Feistelam līdzīgs tīkls, bet ar rotācijām, kas padara to atšķirīgu no klasiskām Feistel struktūrām.
Šifrēšanas soļi īsumā (divu vārdu bloka A un B gadījumā):
- Veic sākotnējo «pre-whitening»: A = A + S[0], B = B + S[1].
- Atkārto r raundu: katrā raundā A un B tiek apstrādāti izmantojot XOR, pēc tam bitu rotāciju pa kreisi par rotācijas daudzumu, kas ir otra vārda zemākie biti; rezultāts tiek papildināts ar atbilstošo atslēgas vārdu S[i].
- Atšifrēšana tiek veikta apgrieztā secībā, izmantojot rotācijas pa labi un atņemšanu vietā, kur šifrēšanā tika skaitīts klāt.
Atslēgas grafiks (Key schedule)
Atslēgas grafika mērķis ir izvērst īso atslēgu (b baitu) uz lielāku atslēgu tabulu S ar garumu 2(r + 1) vārdiem. Galvenie soļi:
- Atslēgas baitus sadala vārdu masīvā L[0..c−1] (atbilstoši izvēlētajam vārda izmēram).
- S masīvs inicializēts, izmantojot divas konstantes (parasti sauktas Pw un Qw), kas ir uzstādītas no matemātisku konstantu — dabiskās eksponenciālās pamatvalodas e un zelta griezuma — daļām. Šīs konstantes tiek izvēlētas tā, lai būtu nepāra (odd) vārdi un būtu labi izkliedētas.
- Sekmīgi S[i] tiek pievienots L un apmainīts vairāku iterāciju gaitā, izmantojot rotācijas un modulāras saskaitīšanas, parasti veicot aptuveni 3⋅max(c, 2r+2) jaukšanas soļu, lai nodrošinātu labu entropijas izkliedi.
Šis atslēgas paplašināšanas process ir svarīgs RC5 drošībai — tas nodrošina, ka katrs šifrēšanas raunds izmanto atšķirīgu, sarežģītu atslēgas vārdu kopu.
Raksturīgās īpašības
- Vienkāršība īstenošanā: RC5 ir viegli realizējams gan programmatūrā, gan aparatūrā; burtiski dažas koda rindas ir pietiekamas, lai uzrakstītu šifrēšanu un atšifrēšanu.
- Datu atkarīgā rotācija: rotācijas, kas balstītas uz datiem, palielina negaidāmību un sarežģītību pret daudziem analītiskiem paņēmieniem.
- Parametrizējamība: iespēja mainīt vārda izmēru, raundu skaitu un atslēgas garumu ļauj pielāgot RC5 dažādiem drošības un ātruma prasību līmeņiem.
Drošība un kriptoanalīze
RC5 ir bijis intensīvu pētījumu objekts kopš tā izstrādes. Tā vienkāršība un datu atkarīgo rotāciju novitāte padarīja to pievilcīgu kriptoanalītiķiem. Ir izstrādātas vairākas uzbrukumu metodes pret samazināto raundu versijām (piem., diferenciālā analīze, atslēgas-saistītie uzbrukumi), taču pilna ieteiktā versija (piem., RC5-32/12/16) joprojām tiek uzskatīta par izturīgu pret praktiskiem ģenerālajiem uzbrukumiem, ja ir izvēlēti pietiekami lieli parametri.
Praktiski apsvērumi un ierobežojumi:
- Daži kriptoanalītiskie rezultāti rāda, ka raundu skaits un atslēgas garums būtiski ietekmē drošību — drošības rezervi var palielināt, izvēloties vairāk raundu vai garāku atslēgu.
- Datu atkarīgā rotācija prasa uzmanību ieviešanas laikā, jo dažas programmatūras vai aparatūras realizācijas var atklāt laika vai citas svešas informācijas kanālus (side‑channel attacks). Rotācijas parasti ir ar konstantu laiku procesoros ar iebūvētu rotate instrukciju, bet jāizvairās no savdabīgām optimizācijām, kas var ieviest laika atšķirības.
Lietojumi un atvasinājumi
RC5 ir ticis izmantots dažādās lietojumprogrammās un akadēmiskos pētījumos kā paraugs datu atkarīgajām rotācijām un kā pamats tālākiem dizainiem. No RC5 izrietēja arī RC6, kas ir rivesta izstrādāts algoritms un tika pieteikts kā viens no kriptogrāfijas kandidātiem AES konkursā — RC6 izmanto līdzīgas idejas, bet papildina tās ar citām operācijām.
Praktiski ieteikumi
- Izvēlieties parametrus atbilstoši jūsu drošības prasībām: garāka atslēga un vairāk raundu palielina drošību, bet ietekmē veiktspēju.
- Rūpīgi ieviesiet atslēgas grafiku un šifrēšanu, lai izvairītos no blīvuma kļūdām un side‑channel problēmām.
- Ņemiet vērā, ka RC5 sākotnēji bija patentēts — pirms plašas izmantošanas ražošanā pārliecinieties par licences un patentu statusu jūsu jurisdikcijā.
Kopumā RC5 ir nozīmīgs vēsturisks un tehnisks paraugs kriptogrāfijā: tas apvieno vienkāršu un efektīvu implementāciju ar inovatīvu datu atkarīgo rotāciju ideju, kas veicināja gan praktiskas lietojumu izpēti, gan teorētisku analīzi.
Kriptoanalīze
12 apļu RC5 (ar 64 bitu blokiem) ir jutīgs pret diferenciālu uzbrukumu, izmantojot 244 izvēlētus atklātos tekstus. Ieteicams, ka pietiekama aizsardzība ir 18-20 raundi.
Uzņēmums RSA Security, kam ir algoritma patents, piedāvāja virkni 10 000 ASV dolāru balvu par šifrtekstu, kas šifrēti ar RC5, uzlaušanu, taču no 2007. gada maija šie konkursi ir pārtraukti. Vairākas no šīm problēmām tika risinātas, izmantojot sadalīto skaitļošanu, ko organizēja Distributed.net. Distributed.net ir uzlauzis RC5 ziņojumus, kas šifrēti ar 56 un 64 bitu atslēgām, un pašlaik strādā pie 72 bitu atslēgas uzlaušanas. Pašreizējā tempā (uz 2008. gada 12. novembri), lai pārbaudītu visas iespējamās atslēgas un pabeigtu projektu, būs vajadzīgi aptuveni 1000 gadi.
Jautājumi un atbildes
J: Kas ir RC5?
A: RC5 ir vienkāršs simetriskās atslēgas bloka šifrs, ko 1994. gadā izstrādāja Ronalds Rivests.
J: Ko nozīmē "RC"?
A: "RC" nozīmē "Rivesta šifrs" vai arī "Rona kods".
J: Kādi ir RC5 parametri?
A: RC5 parametri ietver mainīgu bloka lielumu (32, 64 vai 128 biti), mainīgu atslēgas lielumu (no 0 līdz 2040 bitiem) un mainīgu raundu skaitu (no 0 līdz 255). Sākotnēji tika ierosināts izvēlēties 64 bitu bloka lielumu, 128 bitu atslēgu un 12 raundus.
J: Kāda ir algoritma vispārējā struktūra?
A: Algoritma vispārējā struktūra ir Feistelam līdzīgs tīkls.
J: Cik sarežģīts ir atslēgas grafiks?
A: Atslēgas grafiks ir sarežģītāks, paplašinot atslēgu, izmantojot būtībā vienvirziena funkciju ar binārajiem paplašinājumiem kā skaitļu avotiem.
J: Kāpēc RC5 ir bijis pievilcīgs kriptoanalītiķiem?
A.: Algoritma vienkāršība kopā ar datu atkarīgo rotāciju novitāti ir padarījusi RC5 par pievilcīgu objektu kriptoanalītiķu pētījumiem.
Meklēt