Kas yra RC6? Simetrinis blokinis šifras, savybės ir istorija
RC6 — simetrinis blokinis šifras: kas tai, istorija, savybės, AES finalininkas, našumas ir saugumo aspektai. Sužinokite patentus, parametrus ir praktinį panaudojimą.
Kriptografijoje RC6 yra simetrinio rakto blokinis šifras, išvestas iš RC5. RC6 yra parametrizuotas algoritmas su kintamu bloko dydžiu, kintamu raktodydžiu ir kintamu raundų skaičiumi. RC reiškia "Rivesto šifras" arba "Rono kodas".
Istorija ir AES konkursas
1997 m. NIST paskelbė konkursą duomenų šifravimo standarto (DES) įpėdiniui, kuris bus vadinamas išplėstiniu šifravimo standartu (AES), išrinkti. Kad atitiktų konkurso reikalavimus, RC6 buvo išvestas iš RC5 ir buvo atrinktas kaip vienas iš penkių konkurso "Advanced Encryption Standard" (AES) finalininkų, tačiau galutiniame etape RC6 nebuvo pasirinktas kaip standartas — NIST 2000 m. pasirinko Rijndael (kas tapo AES).
Struktūra ir veikimo principas
RC6 savo struktūra labai panašus į RC5 ir gali būti laikomas dviejų lygiagrečių RC5 šifravimo procesų persipynimu. Tačiau RC6 naudoja papildomą daugybos operaciją, kurios nėra RC5, ir keturis b/4 bitų darbiniai registrai (žr. atvirojo teksto blokų skaidymą feistelio šifre), o ne du b/2 bitų registrai, kaip RC5 (b yra bloko dydis). Techniniu požiūriu RC6 bloko dydis yra 4w bitai (t. y. b = 4w), todėl algoritmas naudoja keturis w bitų žodžius A, B, C ir D.
Pagrindinės operacijos RC6 - tai modularinė sudėtis, bitų XOR, bitų pasukimai (rotacijos) ir taip pat vieno žodžio daugyba, kuri generuoja duomenims priklausančius poslinkius (data-dependent rotations). Tipinė raundo procedūra naudoja dvi tokias daugybas, po kurių vykdomos rotacijos ir sudėtys su raktų žodžiais. Daugyba padidina per raundą pasiekiamą sklaidą, todėl reikalingas mažesnis raundų skaičius norint pasiekti aukštą sumaišymą ir sumaišymo greitį.
Parametrai ir rekomenduotos konfigūracijos
RC6 leidžia pasirinkti bloko dydį: 32 bitų (tik eksperimentavimo ir vertinimo tikslais), 64 bitų (naudojamas kaip DES pakaitalas) ir 128 bitų (skirtas AES tipo naudojimui). Rundų skaičius gali svyruoti nuo 0 iki 255, o raktų dydžiai - nuo 0 iki 2040 bitų. Dažniausiai praktikoje ir AES konkurse siūlyta konfigūracija buvo RC6-32/20/16 (t. y. w = 32 bitų žodis, r = 20 raundų, raktas 16 baitų = 128 bitų), kuri leidžia 128 bitų blokus ir atitinka AES reikalavimus dėl bloko dydžio.
Keturi darbiniai registrai vietoj dviejų naudojami daugiausia dėl optimizavimo 32 bitų procesoriuose. RC5 numatė tik du darbinius registrus; jis naudoja 32 bitų operacijas su 64 bitų blokais ir 64 bitų operacijas su 128 bitų blokais, todėl RC6 sumaniai prisitaiko, kad AES dydžio (128 bitų) bloką būtų galima apdoroti naudojant 32 bitų operacijas, reikalingas keturių registrų rinkinys.
Saugumas ir kriptanalizė
RC6 buvo suprojektuotas taip, kad būtų atsparus žinomoms atakoms — diferencinei, linijinei ir kai kurioms pažangesnėms kriptanalizėms. Per metus tyrėjai rado įvairių atakų prieš RC6, tačiau dauguma jų taikomi sumažintam raundų skaičiui arba reikalauja nerealių išteklių ir nėra praktiškai pavojingos pilnai konfigūruotam RC6-32/20/16. Todėl iki šiol nėra žinomų realių, efektyvių atakų, kurios paneigtų saugumą esant rekomenduojamiems parametrams.
Vis dėlto kriptanalizė nuolat vystosi: tyrėjai demonstravo greitesnius nei „bruto jėga“ metodus sumažintam raundų skaičiui (diferencinės, integralinės arba derivatyvios atakos), todėl saugumo vertinant svarbu atsižvelgti į pasirinktą raundų skaičių ir rakto ilgį. Praktikoje, jei reikalingas ilgalaikis pasitikėjimas ir plačiai patikrinta apsauga, rekomenduojama naudoti gerai įprastus, plačiai priimtus standartus (pvz., AES).
Veikimo našumas
RC6 buvo optimizuotas programiniam vykdymui ypač 32 bitų procesoriuose: naudojamos paprastos aritmetinės operacijos ir bitų rotacijos, o duomenų priklausomos rotacijos ir daugybos operacijos leidžia pasiekti gerą sklaidą per mažesnį raundų skaičių, todėl algoritmas yra greitas daugelyje programinės įrangos aplinkų. Silicio lygyje (hardware) kai kurios operacijos, ypač duomenų priklausoma rotacija ir daugyba, gali būti brangesnės nei paprastesnių blokinių šifrų komponentai, todėl konkreti našumo nauda priklauso nuo platformos.
Naudojimas, licencijavimas ir teisinis statusas
RC6 yra (arba buvo) patentuotas algoritmas (JAV patentai 5 724 428 ir 5 835 600), todėl anksčiau jo įtraukimas į komercinius produktus galėjo reikalauti licencijos ir autorinio atlyginimo. Tačiau patentų galiojimo terminai yra riboti; patartina prieš komercinį naudojimą pasitikrinti galiojančią teisinę situaciją savo jurisdikcijoje. Algoritmą sukūrė Ronas Rivestas, Mattas Robshaw, Ray Sidney ir Yiqun Lisa Yin; RC6 taip pat buvo pateiktas NESSIE ir CRYPTREC projektams.
Praktiniai pastebėjimai
- RC6 tinka programiniam vykdymui ant 32 bitų procesorių ir buvo optimizuotas tokioms platformoms.
- Rekomenduojama konfigūracija AES tipo naudojimui: RC6-32/20/16 (128 bitų blokas, 20 raundų, 128 bitų raktas).
- Prieš diegiant RC6 komerciniuose sprendimuose, verta patikrinti licencijų/patentų būklę.
- Jei prioritetas — ilgalaikis, plačiai priimtas standartas ir ilgalaikis saugumas, dažnai rekomenduojamas AES (Rijndael), nes jis yra NIST standartas ir plačiai išnagrinėtas.
Apibendrinant: RC6 yra galingas ir lanksčiai parametrizuojamas blokinis šifras, sukurtas kaip RC5 vystinys su papildoma daugyba ir keturių registrų architektūra, skirtas efektyviam darbui 32 bitų platformose bei pasiūlytoms AES reikalavimams. Nors jis buvo AES konkurso finalininkas, galutinis AES standartas tapo kita schemą, tačiau RC6 išliko svarbiu pavyzdžiu kriptografinių konstrukcijų dizaino ir analizės istorijoje.
Klausimai ir atsakymai
K: Kas yra RC6?
A: RC6 yra simetrinio rakto blokinis šifras, išvestas iš RC5. Tai parametrizuotas algoritmas su kintamu bloko dydžiu, rakto dydžiu ir raundų skaičiumi.
K: Kas sukūrė RC6?
A.: RC6 sukūrė Ronas Rivestas, Mattas Robshaw, Ray Sidney ir Yiqun Lisa Yin.
K: Kokie yra numatytieji RC5 ir AES blokų dydžiai?
A: Numatytasis RC5 bloko dydis yra 64 bitai, o numatytasis AES bloko dydis yra 128 bitai.
K: Kaip RC6 struktūra skiriasi nuo RC5 struktūros?
A: RC6 struktūra labai panaši į RC5, tačiau joje naudojama papildoma daugybos operacija, kurios pastarojoje nėra, taip pat keturi b/4 bitų darbiniai registrai vietoj dviejų b/2 bitų registrų.
K: Kodėl, norint sukurti AES architektūrą naudojant tik 32 bitų operacijas, vietoj dviejų naudojami keturi darbiniai registrai?
Atsakymas: Skaičių daugyba naudojama siekiant padidinti per vieną raundą pasiektą sklaidą, todėl reikia mažiau raundų ir galima padidinti greitį. Keturi darbiniai registrai reikalingi todėl, kad 32 bitų operacijos atliekamos su 64 bitų blokais, o 64 bitų operacijos - su 128 bitų blokais.
Klausimas: Ar reikia mokėti licencijas arba autorinius mokesčius už produktus, kuriuose naudojamas šis algoritmas?
A: Taip, kadangi tai patentuotas ir patentuotas algoritmas (RSA Security JAV patentas 5 724 428 ir JAV patentas 5 835 600 ), gali reikėti licencijos ir autorinio atlyginimo už bet kokius produktus, kuriuose naudojamas šis algoritmas.
Ieškoti