RC2 — Rivesta 64 bitu bloka šifrs: definīcija, struktūra un vēsture
Kriptogrāfijā RC2 ir simetriskās atslēgas bloka šifrs, ko 1987. gadā izstrādāja Ronalds Rivests. "RC" apzīmē "Rivesta šifrs" vai arī "Rona kods". RC2 darbojas ar 64 bitu blokiem un maināma lieluma atslēgām, izmantojot kopumā 18 raundus.
Struktūra un darbības princips
Bloks tiek sadalīts četrās 16 bitu daļās (parasti apzīmētas kā R0…R3). RC2 ir veidots kā avota smagais Feistel tipa tīkls ar divu veidu raundiem:
- 16 sajaukšanas raundi (mixing rounds), kuros tiek lietotas modulārā saskaitīšana, bitu operācijas (AND, NOT), XOR un cikliskas rotācijas;
- 2 mashing raundi, kuros vārdiem tiek pievienoti atslēgas paplašināšanas tabulas elementi, kuru izvēle ir atkarīga no datiem.
Raundu secība kopā veido 18 kārtas: vispirms 5 sajaukšanas raundi, tad 1 mashing, pēc tam 6 sajaukšanas, 1 mashing un visbeidzot 5 sajaukšanas raundi. Šī secība nodrošina virknes un datu atkarīgu atslēgas izmantošanu, kas palielina šifra difūziju un sajaukumu.
Atslēgas paplašināšana
RC2 izmanto atsevišķu atslēgas paplašināšanas algoritmu, kurš no ievades atslēgas (varas mainīga garuma) izveido paplašinātu atslēgas tabulu, kas sastāv no 64 16 bitu vārdiem (kopā 128 baitu). Šī paplašinātā atslēga tiek izmantota raundu laikā — sajaukšanas raundos pievieno pa vienam no šiem 16 bitu vārdiem, bet mashing raundos atslēgas vārdi tiek indeksēti, izmantojot daļu no pašreizējiem datiem (skat. RFC 2268).
Eksporta ierobežojumu kontekstā RC2 atbalstīja arī parametru, kas nosaka efektīvo atslēgas garumu (piem., 40 bitu režīms), — tādējādi paplašināšanas algoritms varēja tikt konfigurēts, lai izveidotu drošības līmeni atbilstoši eksporta prasībām.
Drošība un kriptanalīze
RC2 nav drošākais mūsdienu standarts. Jau 1997. gadā Kelsey et al. parādīja, ka RC2 ir ievainojams pret saistīto atslēgu (related-key) uzbrukumiem — šiem uzbrukumiem nepieciešami aptuveni 2^34 izvēlētā teksta paraugi, lai atklātu atslēgas saistības un vājinātu šifra drošību. Tas nozīmē, ka RC2 nevar tikt uzskatīts par drošu pret mūsdienu kriptanalītiskajām metodēm un jaudīgām datorzinātnes kapacitātēm.
Tāpat RC2, tāpat kā daudzi citi agrīnie algoritmi, tika izmantots ar 40 bitu atslēgām, lai atbilstu ASV eksporta noteikumiem. Šāds atslēgas garums tagad tiek uzskatīts par pārāk īsu un ir pakļauts brutāla spēka uzbrukumiem, tāpēc to izmantošana nav ieteicama mūsdienu sistēmās.
Vēsture un eksportēšanas kontroles
RC2 izstrādi sponsorēja Lotus, kas pēc NSA novērtējuma meklēja pielāgotu šifru eksportam kā daļu no Lotus Notes. NSA ieteica dažas izmaiņas, kuras Ronalds Rivests iestrādāja, un pēc sarunām šifrēšanas metode tika apstiprināta eksportam 1989. gadā.
Kopā ar RC4, RC2 ar 40 bitu atslēgas lielumu tika apstrādāts saskaņā ar ASV eksporta noteikumiem kriptogrāfijas jomā. Šādu ierobežotu atslēgas garumu mūsdienu drošības prasībām uzskata par novecojušu un nedrošu.
Sākotnēji RC2 specifikācijas un detaļas tika turētas slepenībā un bija RSA Security īpašums. Tomēr 1996. gada 29. janvārī RC2 pirmkods tika anonīmi publicēts interneta Usenet forumā sci.crypt. Līdzīgas publikācijas agrāk bija notikušas arī ar RC4; nav pilnībā skaidrs, vai publicētā informācija tika iegūta no iekšējiem avotiem vai reversās inženierijas ceļā.
Praktiskā nozīme un noslēgums
RC2 bija nozīmīgs vēsturē kā viens no agrīnajiem komerciāli izmantotajiem bloka šifriem un kā piemērs tam, kā politikas (eksporta ierobežojumi) ietekmē kriptogrāfisko rīku dizainu. Taču mūsdienu praksē RC2 vairs netiek ieteikts sensitīvu datu aizsardzībai. Drošāka alternatīva ir, piemēram, NIST standarta AES, kas nodrošina lielākus atslēgas garumus un izturību pret zināmajām kriptanalītiskajām metodēm.
Par tehniskiem aprakstiem un konkrētām matemātiskām formulām skatīt RC2 specifikāciju (piem., RFC 2268) un publikācijas par kriptanalīzi, tostarp Kelsey et al. (1997).


RC2 sajaukšanas transformācija; sajaukšanas raunds sastāv no "sajaukšanas" transformācijas piemērošanas četras reizes.
Jautājumi un atbildes
J: Kas ir RC2?
A: RC2 ir simetriskās atslēgas bloka šifrs, ko 1987. gadā izstrādāja Ronalds Rivests. Tajā izmanto 64 bitu bloka lielumu un 18 šifrēšanas raundus.
J: Ko nozīmē "RC"?
A.: "RC" nozīmē "Rivesta šifrs" vai arī "Rona kods".
J: Cik kārtu veic, izmantojot RC2?
A: Izmantojot RC2, tiek veikti 18 raundi - 16 sajaukšanas raundi, kas mijas ar diviem mashing raundiem.
J: Kā darbojas atslēgas paplašināšanas algoritms?
A: Atslēgas paplašināšanas algoritms veido paplašinātu atslēgu, kas sastāv no 64 (16 bitu vārdiem) atkarībā no katra bita no iesniegtās mainīga garuma ieejas atslēgas.
J: Pret kāda veida uzbrukumiem RC2 ir jutīgs?
A: RC2 ir jutīgs pret radniecīgu atslēgas uzbrukumu, izmantojot 234 izvēlētā teksta uzbrukumus.
J: Kas sponsorēja RC2 izstrādi?
A: RC2 izstrādi sponsorēja Lotus, kas vēlējās, lai pielāgotu šifru eksportētu kā daļu no Lotus Notes programmatūras.