RC5 – Rivestin parametroitava lohkosalaus: ominaisuudet ja parametrit

Tutustu RC5:een — Rivestin parametrisoitava lohkosalaus: lohkokoot, avainkoot, kierrokset, datasta riippuvat kierrrot; ominaisuudet ja parametrit.

Tekijä: Leandro Alegsa

Kryptografiassa RC5 on yksinkertainen symmetrisen avaimen lohkosalaus. Ronald Rivestin vuonna 1994 suunnittelema RC5 on parametrisoitu algoritmi, jossa on muuttuva lohkokoko, muuttuva avainkoko ja muuttuva kierrosten määrä. "RC" tarkoittaa "Rivest Cipher" tai vaihtoehtoisesti "Ron's Code".

Ominaisuudet ja parametrit

Jotta RC5:n turvallisuus- ja tehokkuustasot vaihtelisivat, siinä on vaihteleva lohkokoko (32, 64 tai 128 bittiä), vaihteleva avainkoko (0-2040 bittiä) ja vaihteleva kierrosten määrä (0-255). Alkuperäisessä ehdotuksessa parametreiksi ehdotettiin 64-bittistä lohkokokoa, 128-bittistä avainta ja 12 kierrosta.

Yleinen käytäntö on merkitä versiot muotoon RC5-w/r/b, missä w on sanan koko bitteinä (esimerkiksi 32), r kierrosten määrä ja b avaimen tavujen määrä. Esimerkiksi RC5-32/12/16 tarkoittaa 32-bittisiä sanoja, 12 kierrosta ja 16 tavun (128-bittisen) avainta. Sanan koko w määrää lohkon pituuden: lohko on kaksi sanaa eli 2w bittiä (esim. 64 bittiä, kun w=32).

Algoritmin rakenne ja toimintaperiaate

Yksi RC5:n tärkeimmistä ominaisuuksista on datasta riippuvaisten kiertojen käyttö; yksi RC5:n tavoitteista oli tutkia ja arvioida lohkosalakirjoitusten toimintoja kryptografisena primitiivinä. RC5 koostuu myös useista modulaarisista yhteenlaskuista ja Xor-erotuksista (eXclusive OR). Algoritmin yleinen rakenne on Feistelin kaltainen verkko. Salaus- ja purkurutiinit voidaan määritellä muutamalla koodirivillä.

Perusidea salauksessa (w-bittisillä sanoilla A ja B) on seuraava:

  • Aluksi A ja B muunnetaan lisäämällä niihin avainsarjan alkusanat (S[0] ja S[1]).
  • Sitten toistetaan r kertaa: A = ((A xor B) <<< (B mod w)) + S[2*i], B = ((B xor A) <<< (A mod w)) + S[2*i+1], jossa <<< tarkoittaa kiertoa vasemmalle.
  • Purku suoritetaan prosessin käänteisellä järjestyksellä: kierron määrät ja operaatiot kumotaan oikeassa järjestyksessä.
Tarkka indeksointi ja alkuarvot riippuvat sanan koosta w ja kierrosluvusta r.

Avaimen laajennus (key schedule)

Avaimen aikataulu on kuitenkin monimutkaisempi, sillä se laajentaa avainta käyttämällä pääasiassa yksisuuntaista funktiota, jossa sekä e:n että kultaisen leikkauksen binääriset laajennukset ovat "ei mitään hihassa olevien numeroiden" lähteitä. Käytännössä avainlaajennuksessa avaintavut ensin kopioidaan taulukkoon L, jonka koko riippuu avaimen pituudesta ja sanan koosta (c = ceil(b / (w/8))). Avainsarjan S alustetaan kahdella niin kutsutulla "magic constant" -arvolla Pw ja Qw, jotka johdetaan e:stä ja kultaisesta leikkauksesta ja pyöristetään parittomiksi kokonaisluvuiksi sanan koon mukaan.

Tämän jälkeen S- ja L-taulukot "sekoitetaan" yhteen käyttämällä 3 * max(c, t) askeleen sekvenssiä, jossa t = 2 * (r + 1). Sekoittaminen sisältää modulo-w-lisäyksiä ja datasta riippuvia kiertoja, mikä tekee avaimen levityksestä ja laajenemisesta kryptografisesti vahvemman kuin yksinkertainen laajennus.

Turvallisuus ja kryptanalyysi

Algoritmin yksinkertaisuus yhdessä datasta riippuvien kiertojen uutuuden kanssa on tehnyt RC5:stä houkuttelevan tutkimuskohteen kryptoanalyytikoille. RC5:n rakenteesta johtuen eri analyysimenetelmät — kuten differentiaali- ja lineaarinen kryptanalyysi sekä niiden johdetut parannukset — ovat sovellettavissa ja tutkittuja. Useat kryptanalyytikot ovat löytäneet hyödyllisiä menetelmiä pienennettyjen kierroslukujen versioiden murtamiseksi; toisaalta täysimittaisella riittävällä avainpituudella bruteforcen vaikeus voi silti tehdä käytännön murrot mahdottomiksi.

Keskeiset turvallisuuteen vaikuttavat tekijät ovat:

  • sanakohta w (vaikuttaa lohkon kokoon ja kierrosten kiertomäärien moduloon),
  • kierrosluku r (enemmän kierroksia yleensä parantaa turvallisuutta),
  • avaimen pituus b (pidempi avain vastustaa bruteforce-hyökkäyksiä).

On tärkeää huomata, että kryptanalyysi on kehittyvää: aika-ajoin ilmenee tehokkaampia hyökkäysmenetelmiä, jotka voivat heikentää pienempien kierroslukujen tai lyhyempien avainten turvallisuutta. RC5 ei ole valittu AES-kilpailun voittajaksi, eikä se ole yhtä laajasti standardoitu kuin jotkut nykyaikaiset lohkosalausalgoritmit.

Suorituskyky ja käytännön näkökohdat

RC5 on suunniteltu yksinkertaiseksi ja helposti toteutettavaksi lukuisilla arkkitehtuureilla. Algoritmi on erityisen tehokas alustoilla, joilla on nopea sananlevyinen aritmetiikka ja kierto-operaatio (esim. 32- tai 64-bittiset prosessorit). Data-riippuvat kierron määrät hyödyntävät prosessorin rotaatio-operaatioita; ilman tehokasta kiertoa toteutus voi hidastua merkittävästi.

RC5:n yksinkertaisuus tekee sen lähdekoodista lyhyen ja helpon ymmärtää, mikä on sekä etu (helppo auditointi, opetus) että mahdollinen riski (vähemmän monimutkaisuutta ei välttämättä tarkoita suurempaa turvallisuutta). RC5 on myös toiminut inspiraationa myöhemmille algoritmeille, kuten RC6:lle, joka lisäsi esimerkiksi kertolaskuoperaation monimutkaisuuden.

Yhteenveto

RC5 on parametrisoitu lohkosalaus, jonka valittavat parametrit (sanan koko w, kierrokset r ja avaimen pituus b) mahdollistavat joustavuuden turvallisuuden ja suorituskyvyn välillä. Sen keskeisiä piirteitä ovat datasta riippuvat kierron määrät, yksinkertainen Feistel-tyyppinen rakenne ja suhteellisen monimutkainen avainlaajennus, joka hyödyntää e:n ja kultaisen leikkauksen perusarvoja. Vaikka RC5 ei ole enää kaikkien aikojen suosituin lohkosalaus nykyaikaisessa standardoinnissa, se on merkittävä historiallinen ja tutkimuksellinen kryptografinen primitiivi.

Cryptanalysis

12-kierroksinen RC5 (64-bittisillä lohkoilla) on altis differentiaalihyökkäykselle, jossa käytetään 244 valittua tekstitiedostoa. Riittäväksi suojaksi ehdotetaan 18-20 kierrosta.

RSA Security, jolla on algoritmin patentti, tarjosi 10 000 dollarin palkintoja RC5:llä salattujen salatekstien murtamisesta, mutta nämä kilpailut on lopetettu toukokuussa 2007. Useita näistä haasteongelmista on ratkaistu Distributed.netin järjestämän hajautetun tietojenkäsittelyn avulla. Distributed.net on murtanut 56- ja 64-bittisillä avaimilla salattuja RC5-viestejä ja työskentelee nyt 72-bittisen avaimen murtamisen parissa. Nykyisellä vauhdilla (tilanne 12. marraskuuta 2008) kestää noin 1000 vuotta testata kaikki mahdolliset avaimet, jotta projekti saadaan päätökseen.

Kysymyksiä ja vastauksia

K: Mikä on RC5?


V: RC5 on yksinkertainen symmetrisen avaimen lohkosalaus, jonka Ronald Rivest suunnitteli vuonna 1994.

K: Mitä "RC" tarkoittaa?


V: "RC" tarkoittaa "Rivest Cipher" tai vaihtoehtoisesti "Ron's Code".

K: Mitkä ovat RC5:n parametrit?


V: RC5:n parametreihin kuuluvat muuttuva lohkokoko (32, 64 tai 128 bittiä), muuttuva avainkoko (0-2040 bittiä) ja muuttuva kierrosten määrä (0-255). Alkuperäinen ehdotus oli 64-bittinen lohkokoko, 128-bittinen avain ja 12 kierrosta.

Kysymys: Mikä on algoritmin yleinen rakenne?


V: Algoritmin yleinen rakenne on Feistelin kaltainen verkko.

K: Kuinka monimutkainen on avaimen aikataulu?


V: Avaimen aikataulu on monimutkaisempi, sillä se laajentaa avainta käyttämällä pääasiassa yksisuuntaista funktiota, jossa binääriset laajennukset ovat numeroiden lähteitä.

K: Miksi RC5 on ollut houkutteleva kryptoanalyytikkojen mielestä?


V: Algoritmin yksinkertaisuus yhdessä datasta riippuvien kiertojen uutuuden kanssa on tehnyt RC5:stä houkuttelevan kryptoanalyytikkojen tutkimuskohteen.


Etsiä
AlegsaOnline.com - 2020 / 2025 - License CC3