RC6: definicija, delovanje, varnost in parametri blokovne šifre

V kriptografiji je RC6 blokovna šifra s simetričnim ključem, ki izhaja iz RC5. RC6 je parametriziran algoritem s spremenljivo velikostjo bloka, spremenljivo velikostjoključa in spremenljivim številom krogov. RC je kratica za "Rivestovo šifro" ali "Ronovo šifro".

Izvor in namen

Leta 1997 je NIST objavil natečaj za izbiro naslednika standarda za šifriranje podatkov (DES), ki se bo imenoval Advanced Encryption Standard (AES). RC6 je bil izpeljan iz RC5, da bi izpolnil zahteve natečaja, in je bil izbran kot eden od petih finalistov natečaja Advanced Encryption Standard, vendar ni bil izbran kot standard. Avtorji so Ron Rivest, Matt Robshaw, Ray Sidney in Yiqun Lisa Yin; algoritem je bil prav tako predložen projektoma NESSIE in CRYPTREC.

Glavne lastnosti in zasnova

RC6 je po osnovni strukturi zelo podoben RC5, vendar prinaša več sprememb in izboljšav:

  • Blok je razdeljen na štiri delovne registre (A, B, C, D) namesto dveh, kar omogoča večjo združljivost z 32-bitnimi procesorji in olajša implementacijo za 128-bitne bloke.
  • Uporablja operacije seštevanja, XOR, cirkularnih rotacij in dodatno operacijo množenja celih števil, ki ni prisotna v RC5. Multiplikacija poveča razpršenost (diffusion) in zmanjša število potrebnih krogov.
  • Rotacijski pomiki so podatkovno odvisni (data-dependent rotations), kar poveča zmedenost (confusion) in razpršenost.
  • Parametri so prilagodljivi: velikost bloka (npr. 32, 64 ali 128 bitov), število krogov (do 255) in velikost ključa (do 2040 bitov v izvorni specifikaciji).

Osnutek delovanja

Na visoki ravni RC6 deluje tako, da blok podatkov razdeli na štiri besede (A, B, C, D). Ključ se razširi (key schedule) v nabor podključev (S), ki se nato v več krogih uporabi za mešanje besed. V vsakem krogu sta dve glavni operaciji, vključno z računanjem rotacijskih pomikov z uporabo množenja (da se pridobi bolj pseudorandom rotacijski števec), nato pa sledi serija rotacij, seštevanj in XOR-ov. Po koncu vseh krogov se besede ponovno sestavijo v izhodni blok.

Key schedule je zasnovan podobno kot pri RC5: izvorni ključ se razdeli na c besed, nato pa se v tabelo S napolnijo vrednosti, izpeljane iz dveh konstant, ki so izpeljane iz matematičnih konstant (npr. e in zlati presek), in se nato mešajo s ciklom, ki zagotavlja dobro porazdelitev ključnih besed po tabeli S.

Priporočeni parametri in združljivost

  • Za kandidaturo AES je bila pogosto uporabljena kombinacija z 128-bitnim blokom (štiri 32-bitne besede), tipično 20 krogov in ključi dolžine 128, 192 ali 256 bitov.
  • RC6 omogoča tudi 64-bitne bloke (kot nadomestek za DES) in eksperimentalno 32-bitne bloke, vendar so za resno uporabo priporočljivi 128-bitni bloki zaradi varnosti in skladnosti s sodobnimi standardi.
  • Ker je algoritem lastniški in patentiran (RSA Security U. S. Patent 5,724,428 in U. S. Patent 5,835,600), je treba upoštevati licenčne zahteve pri komercialni uporabi.

Varnost in kriptanalize

RC6 je bil temeljito preučen med AES natečajem in v letih po njem. Ključne točke glede varnosti:

  • Na polnih, priporočanih nastavitvah (npr. RC6-32/20 z 128-bitnim blokom in ustrezno dolgo uporabo ključa) niso znane praktične kriptografske ranljivosti, ki bi omogočile razbijanje šifre z zanemarljivimi sredstvi v primerjavi z zahtevami moderne varnosti.
  • Kot pri mnogih blokovnih šifrah so bila predlagana napada na zmanjšano število krogov: diferencijalni in linearni pristopi, integralne in hibridne metode so pokazale uspehe proti poenostavljenim/okrnjenim različicam RC6, vendar ti napadi ne segajo do celotnih priporočenih izvedb.
  • Razprava o varnostni rezervi (security margin) je bila del ocen AES-natečaja — množica podatkovno odvisnih rotacij in množenj prinaša dobre kriptografske lastnosti, vendar tudi povečuje kompleksnost forme analize.

Uporaba in izvedbe

RC6 je bil zasnovan za učinkovito izvedbo na splošnih procesorjih, še posebej 32-bitnih, kjer uporaba štirih registrov in množenja prinaša dobre hitrosti v programski implementaciji. Kljub temu pa je zaradi iztehtanih razlogov (patenti, široka razširjenost AES in njegova hardware podpora) RC6 postala redkejša v praksi v primerjavi z AES.

Pri praktični uporabi je, kot pri vsaki samostojni blokovni šifri, priporočljivo:

  • uporabljati varne načine delovanja (npr. autentificirane sheme AEAD kot sta GCM ali CCM) ali kombinirati z MAC/AE,
  • zagotoviti pravilno upravljanje z iv-ji (inicijalizacijskimi vektorji) in naključnimi vrednostmi,
  • redno pretehtati uporabo sodobnih in standardiziranih rešitev (npr. AES), zlasti v novih sistemih in tam, kjer je podpora za patente vprašljiva.

Primerjava z RC5 in AES

  • RC6 je neposredni izpeljanec RC5 in ohranja podobno filozofijo (parametriziranost, preproste osnovne operacije), a dodaja množenje in štiri registre za podporo 128-bitnih blokov z 32-bitnimi operacijami.
  • AES (Rijndael) je postal izbran standard in ima široko hardware/firmware podporo, dobro preučeno varnost ter ni patentnih omejitev, zato ga večina sistemov raje uporablja kot RC6.

Zaključek in priporočila

RC6 je zanimiv in tehnično dodelan algoritem z dobrimi lastnostmi razpršitve in učinkovitosti na splošnih procesorjih. Vendar so omejitve v zvezi s patenti in dejstvo, da AES vodi v praksi, pomembni dejavniki pri izbiri algoritma za nove sisteme. Če že uporabljate RC6 ali ga izbirate zaradi specifičnih razlogov, uporabite priporočene parametre (npr. 128-bitni bloki in zadostno število krogov, običajno približno 20) in kombinirajte s preverjenimi načini delovanja ter pristopi za avtentikacijo.

Opomba: ker gre za kompleksno kriptografsko temo, se priporočljivo posvetovati s strokovnjakom za kriptografijo pri načrtovanju varnostnih rešitev ali pri implementaciji v kritičnih okoljih.

Vprašanja in odgovori

V: Kaj je RC6?


O: RC6 je blokovna šifra s simetričnim ključem, ki izhaja iz RC5. Gre za parametriziran algoritem s spremenljivo velikostjo bloka, velikostjo ključa in številom krogov.

V: Kdo je zasnoval RC6?


O: RC6 so zasnovali Ron Rivest, Matt Robshaw, Ray Sidney in Yiqun Lisa Yin.

V: Kakšne so privzete velikosti blokov za RC5 in AES?


O: Privzeta velikost bloka za RC5 je 64 bitov, za AES pa 128 bitov.

V: Kakšna je struktura RC6 v primerjavi s strukturo RC5?


O: Struktura RC6 je zelo podobna strukturi RC5, vendar uporablja dodatno operacijo množenja, ki je v RC5 ni, in štiri b/4-bitne delovne registre namesto dveh b/2-bitnih.

V: Zakaj se uporabljajo štirje delovni registri namesto dveh, da bi arhitektura AES uporabljala samo 32-bitne operacije?


O: Multiplikacija celih števil se uporablja za povečanje razpršitve, dosežene v enem krogu, zato je potrebnih manj krogov in se lahko poveča hitrost. Štirje delovni registri so potrebni, ker se pri 64-bitnih blokih uporabljajo 32-bitne operacije, pri 128-bitnih blokih pa 64-bitne operacije.

V: Ali je za izdelke, ki uporabljajo algoritem, treba plačati licenčnino ali licenčnino?



O: Da, ker gre za lastniški in patentiran algoritem (z ameriškima patentoma RSA Security U.S. Patent 5,724,428 in U.S. Patent 5,835,600 ), se lahko za vse izdelke, ki uporabljajo ta algoritem, zahtevajo licenčnine in licenčnine.

AlegsaOnline.com - 2020 / 2025 - License CC3