RC5 — parametrizuotas simetrinis blokinis šifras: apibrėžimas ir savybės
Sužinokite apie RC5 — parametrizuotą simetrinį blokinį šifrą: apibrėžimas, parametrai (bloko/rakto dydis, raundai), nuo duomenų priklausančios rotacijos ir saugumo savybės.
Kriptografijoje RC5 yra paprastas simetrinio rakto blokinis šifras. 1994 m. Ronaldo Rivesto sukurtas RC5 yra parametrizuotas algoritmas su kintamu bloko dydžiu, kintamu rakto dydžiu ir kintamu raundų skaičiumi. "RC" reiškia "Rivesto šifras" arba "Rono kodas".
Kad būtų užtikrintas įvairus saugumo ir efektyvumo lygis, RC5 turi kintamą bloko dydį (32, 64 arba 128 bitų), kintamą rakto dydį (nuo 0 iki 2040 bitų) ir kintamą raundų skaičių (nuo 0 iki 255). Iš pradžių buvo siūloma pasirinkti tokius parametrus: 64 bitų dydžio blokas, 128 bitų raktas ir 12 raundų.
Pagrindinis RC5 bruožas yra nuo duomenų priklausančių rotacijų naudojimas; vienas iš RC5 tikslų buvo ištirti ir įvertinti blokinių šifrų operacijas kaip kriptografinį primityvą. RC5 taip pat susideda iš kelių modulinių papildinių ir išskirtinių OR (Xor). Bendroji algoritmo struktūra yra į Feistelio tinklą panašus tinklas. Šifravimo ir dešifravimo procedūras galima nurodyti keliomis kodo eilutėmis. Tačiau rakto tvarkaraštis yra sudėtingesnis, raktas išplečiamas naudojant iš esmės vienakryptę funkciją, kurios šaltiniai yra dvejetainiai e ir aukso pjūvio išsiplėtimai, kaip "nieko rankovėje neturintys skaičiai". Dėl algoritmo paprastumo ir nuo duomenų priklausančių rotacijų naujumo RC5 tapo patraukliu objektu kriptoanalitikams tyrinėti.
Pagrindinės savybės ir parametrai
RC5 yra parametrizuotas taip, kad galima laisvai pasirinkti tris pagrindinius parametrus:
- w — žodžio (word) ilgis bitais (dažniausiai 16, 32 arba 64 bitai). Bloko dydis yra 2·w bitai;
- r — raundų (rounds) skaičius (rekomenduojama vertė priklauso nuo w — populiari konfigūracija yra r = 12, w = 32);
- b — rakto dydis baitais (naudotojo rakto ilgis, dažnai 16 baitų = 128 bitų).
Algoritmo struktūra ir operacijos
RC5 pagrįstas paprastomis, efektyviomis operacijomis, kurios gerai atitinka modernių procesorių instrukcijų rinkinį:
- modulinė sudėtis (addition modulo 2^w);
- bitinės XOR operacijos;
- dinaminės, nuo duomenų priklausančios rotacijos (rotations) — rotacijos pasukamos pagal kito žodžio reikšmę, o ne pastovų skaičių.
Rakto tvarkaraštis (key schedule)
Rakto išplečiama seką sudaro S masyvas, paruoštas iš dviejų specialių konstantų (gautų iš perskaičiuotų reikšmių, susijusių su dvejetainiu e ir aukso pjūviu) bei vartotojo rakto baitų paskirstymo į žodžius L. Po to vyksta sukeitimo (mixing) žiedas, kuriame S ir L elementai „sumaišomi“ per kelias iteracijas naudojant sudėtis, XOR ir rotacijas. Toks tvarkaraštis suteikia S masyvui struktūrą, kuri priklauso nuo įvesto rakto ir kurios atbulinės inžinerijos užduotis yra sudėtingesnė.
Saugumas ir žinomi atakai
RC5 buvo plačiai analizuojamas ir tapo standartiniu eksperimentinės kriptoanalizės objektu. Svarbiausi pastebėjimai:
- Prieš RC5 buvo sėkmingai atlikta įvairių tipų atakų įrodymų ir eksperimentų, ypač sumodeliuotų arba sumažintų raundų atvejais — pvz., diferencialinė ar susijusių raktų (related-key) kriptoanalizė gali veikti esant mažesniam raundų skaičiui.
- Vis dėlto, įprastose rekomenduojamose konfigūracijose (pvz., RC5-32/12/16) iki šiol nebuvo atskleista praktinė, efektyvi ataka, kuri leistų atakuoti pilną raktą greičiau nei grynąja jėga.
- RC5 ypatybė — duomenų priklausomos rotacijos — suteikia papildomą sudėtingumą analizei, tačiau taip pat atvėrė naujas kriptoanalitines kryptis, todėl daug tyrimų orientuoti į šių rotacijų elgsenos modeliavimą.
Reikia pažymėti, kad saugumo padėtis keitėsi laikui bėgant: visada verta tikrinti naujausius mokslinius šaltinius ir atnaujinimus, jei planuojate naudoti RC5 saugumo tikslais.
Praktinis naudojimas ir rekomendacijos
RC5 buvo sukurtas kaip paprastas, greitas ir lengvai įgyvendinamas algoritmas — jis gerai veikia programinėje įrangoje, ypač procesoriams, turintiems greitas bitines rotacijų instrukcijas. Tačiau dėl intensyvios kriptoanalizės ir atsiradusių naujesnių algoritmų pasirinkimas praktinėje kriptografijoje dabar dažnai krypsta prie kitų standartizuotų konstrukcijų (pvz., AES).
Praktinės rekomendacijos, jei vis dėlto planuojama naudoti RC5:
- Naudoti pakankamai ilgą raktą (pvz., ≥ 128 bitų), kad sumažintumėte grynosios jėgos atakų riziką;
- Pasirinkti pakankamai daug raundų (r), atsižvelgiant į w, kad apsaugotumėte nuo žinomų teorinių atakų; dažna rekomendacija — r ≈ 12 kai w = 32;
- Apsvarstyti modernesnius, plačiau įvertintus algoritmus ir pasirinkti sprendimą pagal saugumo reikalavimus bei standartus jūsų srityje.
Išvados
RC5 yra svarbi kriptografijos istorijos dalis: jis pasižymi elegantiška, parametrizuota konstrukcija, kurios pagrindinis novatoriškumas — nuo duomenų priklausančios rotacijos. Dėl šios savybės RC5 suteikė daug žinių apie tai, kaip įvairios pagrindinės bitinės operacijos prisideda prie šifro saugumo. Tačiau, planuojant naujas sistemas, rekomenduojama naudoti algoritmus, kurie turi platesnį praktinį priėmimą ir ilgalaikes saugumo garantijas.
Kriptoanalizė
12 raundų RC5 (su 64 bitų blokais) yra jautrus diferencinei atakai naudojant 244 pasirinktus atvirus tekstus. Kaip pakankama apsauga siūloma 18-20 raundų.
Bendrovė "RSA Security", turinti šio algoritmo patentą, siūlė 10 000 JAV dolerių prizus už RC5 užšifruotų šifrogramų įveikimą, tačiau nuo 2007 m. gegužės mėn. šie konkursai buvo nutraukti. Keletas šių uždavinių buvo sprendžiami naudojant paskirstytąsias skaičiavimo priemones, kurias organizavo Distributed.net. Distributed.net įveikė 56 ir 64 bitų raktais užšifruotus RC5 pranešimus, o dabar bando įveikti 72 bitų raktą. Dabartiniu tempu (2008 m. lapkričio 12 d. duomenimis), norint išbandyti visus įmanomus raktus ir užbaigti projektą, prireiks maždaug 1000 metų.
Klausimai ir atsakymai
K: Kas yra RC5?
A: RC5 yra paprastas simetrinio rakto blokinis šifras, kurį 1994 m. sukūrė Ronaldas Rivestas.
K: Ką reiškia "RC"?
A: "RC" reiškia "Rivesto šifras" arba "Rono kodas".
K: Kokie yra RC5 parametrai?
A.: RC5 parametrai: kintamas bloko dydis (32, 64 arba 128 bitai), kintamas rakto dydis (nuo 0 iki 2040 bitų) ir kintamas raundų skaičius (nuo 0 iki 255). Iš pradžių buvo siūloma pasirinkti 64 bitų dydžio bloką, 128 bitų raktą ir 12 raundų.
Klausimas: Kokia yra bendra algoritmo struktūra?
A: Bendroji algoritmo struktūra yra į Feistelio tinklą panašus tinklas.
K: Kiek sudėtingas yra rakto tvarkaraštis?
A: Rakto tvarkaraštis yra sudėtingesnis, raktas išplečiamas naudojant iš esmės vienakryptę funkciją su dvejetainiais plėtiniais kaip skaičių šaltiniais.
K: Kodėl RC5 buvo patrauklus kriptoanalitikams?
A: Dėl algoritmo paprastumo ir nuo duomenų priklausančių rotacijų naujovės RC5 tapo patraukliu objektu kriptoanalitikams.
Ieškoti