RC6 — simetriskās atslēgas bloka šifrs: definīcija un pārskats
Kriptogrāfijā RC6 ir simetriskās atslēgas bloka šifrs, kas atvasināts no RC5. RC6 ir parametrizēts algoritms ar mainīgu bloka lielumu, mainīgu atslēgaslielumu un mainīgu raundu skaitu. Saīsinājums RC nozīmē "Rivesta šifrs" vai arī "Rona kods". RC6 dizains saglabā RC5 vienkāršību, tomēr ievieš papildu elementus (piem., veselo skaitļu reizināšanu), kas uzlabo difūziju un ļauj sasniegt līdzvērtīgu drošību ar salīdzinoši mazāku raundu skaitu.
Vēsture un AES konkurss
1997. gadā NIST izsludināja konkursu, lai izvēlētos datu šifrēšanas standarta (DES) pēcteci ar nosaukumu Advanced Encryption Standard (AES). RC6 tika īpaši atvasināts no RC5, lai atbilstu konkursa prasībām (it īpaši prasībai pēc 128 bitu bloka izmēra), un tika izvēlēts kā viens no pieciem konkursa par Advanced Encryption Standard (AES) finālistiem. Galīgajā izvēlē RC6 netika pieņemts par standartu — par AES tika izvēlēts Rijndael (tagad pazīstams kā AES). RC6 iesniegumā bieži minēti standarta parametri RC6-32/20/16 (32 bitu vārdi, 20 raundi, 16 baitu = 128 bitu atslēga).
Dizains un parametri
RC6 struktūra ir ļoti līdzīga RC5, un to var uztvert kā divu paralēlu RC5 šifrēšanas procesu pārklāšanos ar papildu operācijām. Galvenās iezīmes:
- Bloka un vārda izmēri: RC6 strādā ar četru vārdu bloku; ja vārda izmērs ir w biti, tad bloka lielums ir 4w biti. Tipiski w = 32, kas dod 128 bitu bloku.
- Reģistri: RC6 izmanto četrus w bitu darba reģistrus (A, B, C, D), savukārt RC5 izmanto divus.
- Rotācijas un reizināšana: RC6 ievieš veselo skaitļu reizināšanu (multiplikāciju), kuru izmanto kopā ar rotācijām, lai aprēķinātu rotācijas lielumu un uzlabotu difūziju. Šī reizināšana palielina vienā raundā sasniegto sajaukšanos, tādēļ parasti ir nepieciešams mazāks raundu skaits nekā bez tās.
- Parametrizācija: raundu skaits var būt no 0 līdz 255, bet atslēgas izmērs var būt no 0 bitu līdz 2040 bitu. Bieži lietotais iestatījums iesniegumā NIST konkursā bija 20 raundi un 128 bitu atslēga.
- Atslēgu izvēršana: atslēgas tiek paplašinātas uz podatslēgu bloku virkni, kas tiek lietota raundos. (RC6 atslēgu izvēršanas shēma ir tuva RC5 principiem, tomēr ar papildu vārdu skaitu, lai pielāgotos četriem darba reģistriem.)
Četru darba reģistru izmantošana galvenokārt ir saistīta ar optimizāciju 32 bitu procesoru darbībā: RC5 noklusējuma bloka lielums bija 64 biti (divi 32 bitu vārdi), savukārt RC6 paredzēts 128 bitu blokiem, izmantojot četrus 32 bitu reģistrus. Veselo skaitļu reizināšana ļauj sasniegt labāku difūziju katrā raundā nekā vienkāršs saskaitījums/rotācija, tādēļ RC6 var būt ātrāks programmatūrā, kur pieejama efektīva 32 bitu reizināšana.
Drošība un kriptoanalīze
RC6 tika rūpīgi analizēts kriptogrāfijas kopienā. Parasti tiek uzskatīts, ka ar piemērotiem parametriem (piem., 20 raundi un atbilstoša atslēgas garuma) RC6 nav praktiski uzlaužams ar zināmajām ģenerālajām atakām. Taču kā ar daudziem blokšifriem, ir atrastas atsevišķas metodei paredzētas analīzes tehnikas pret samazinātas jaudas (reduced-round) versijām — t.i., pret mazāku raundu skaitu. Pilnai RC6 versijai nav publiski pieejamu praktisku atklātu atslēgu iegūšanas (key-recovery) metožu.
Praktiskas drošības apsvērumos jāņem vērā:
- Izvēlieties pietiekami ilgu atslēgu un ieteicamo raundu skaitu.
- Rūpējieties par īslaicīgām (side-channel) uzbrukumu aizsardzībām — kā ar citiem simetriskajiem algoritmiem, arī RC6 implementācijas var būt jutīgas pret laika analīzi vai enerģijas mērījumiem, ja netiek veiktas atbilstošas aizsardzības.
- Lai gan RC6 tika izvērtēts NIST konkursā, mūsdienās parasti tiek ieteikts izmantot standarta, plaši pārbaudītas šifru konstrukcijas (piem., AES), kuras atbalsta arī plašas optimizācijas un drošības studijas.
Veiktspēja un piemērošana
RC6 ir veidots ar domu par augstu ātrumu programmatūras izpildē, īpaši uz 32 bitu procesoriem — tāpēc tās izvēle par četrām reģistru daļām un reizināšanas izmantošana ir optimizēta tieši šādai arhitektūrai. Reizināšana dotajā kontekstā palīdz sasniegt labu difūziju ar mazāku raundu skaitu, kas var paātrināt šifrēšanu kopumā. Tomēr uz ierobežotas aparatūras (piem., mikrokontrolleriem ar lēnu reizinātāju vai bez tā) RC6 var būt mazāk efektīvs nekā algoritmi ar vienkāršākām bita operācijām.
Patenti un licences
RC6 ir patentēts algoritms (RSA Security ASV patenti 5 724 428 un ASV patents 5 835 600), un par jebkuru produktu, kurā izmanto šo algoritmu, var būt nepieciešama licences un autoratlīdzības maksājumi. Autori — Ron Rivest, Matt Robshaw, Ray Sidney un Yiqun Lisa Yin — iesniedza RC6 arī citu projektu vērtējumam, piemēram, NESSIE un CRYPTREC.
Kopsavilkums un ieteikumi
RC6 ir labi izstrādāts, parametrizējams blokšifrs ar interesantām arhitektūras iezīmēm (četrām darba reģistru daļām un reizināšanas izmantošanu), kas padara to par spēcīgu kandidātu programmatūras izpildei uz 32 bitu platformām. Tomēr ņemot vērā patenta statusu un to, ka AES (Rijndael) kļuvis par plaši izmantotu, brīvi īstenojamu un rūpīgi analizētu standartu, mūsdienu jaunām sistēmām bieži ieteicams izvēlēties AES, ja vien nav specifisku iemeslu izmantot RC6.
Jautājumi un atbildes
J: Kas ir RC6?
A: RC6 ir simetriskā atslēgas bloka šifrs, kas atvasināts no RC5. Tas ir parametrizēts algoritms ar mainīgu bloka lielumu, atslēgas lielumu un raundu skaitu.
J: Kas izstrādāja RC6?
A.: RC6 izstrādāja Rons Rivests, Mets Robšovs, Rejs Sidnijs un Yiqun Lisa Yin.
J: Kādi ir RC5 un AES noklusējuma bloku izmēri?
A: RC5 noklusējuma bloka lielums ir 64 biti, bet AES noklusējuma bloka lielums ir 128 biti.
J: Kāda ir RC6 struktūra salīdzinājumā ar RC5 struktūru?
A: RC6 struktūra ir ļoti līdzīga RC5 struktūrai, bet tajā tiek izmantota papildu reizināšanas operācija, kas nav RC5, kā arī četri b/4 bitu darba reģistri divu b/2 bitu reģistru vietā.
J: Kāpēc izmanto četrus darba reģistrus divu vietā, lai izveidotu AES arhitektūru, izmantojot tikai 32 bitu operācijas?
A: Veselo skaitļu reizināšana tiek izmantota, lai palielinātu vienā raundā panākto difūziju, tādējādi ir nepieciešams mazāk raundu un var palielināt ātrumu. Četri darba reģistri ir vajadzīgi, jo, strādājot ar 64 bitu blokiem, tiek izmantotas 32 bitu operācijas, bet, strādājot ar 128 bitu blokiem, - 64 bitu operācijas.
J: Vai par produktiem, kuros izmanto algoritmu, ir jāveic licencēšanas vai autoratlīdzības maksājumi?
A: Jā, tā kā tas ir patentēts algoritms (ar RSA Security ASV patentu 5 724 428 un ASV patentu 5 835 600 ), par visiem produktiem, kuros izmanto algoritmu, var būt nepieciešami licences un autoratlīdzības maksājumi.