RC2 64-bitine sümmeetriline plokkšiffer: kirjeldus, tööpõhimõte ja turvariskid

Krüptograafias on RC2 sümmeetrilise võtmega plokkšiffer, mille konstrueeris Ronald Rivest 1987. aastal. "RC" tähistab tavaliselt "Rivest Cipher" või alternatiivselt "Ron's Code". RC2 töötati algselt välja Lotus’i jaoks ning seda kasutati mitmes varasemas tarkvaras ja protokollis.

Peamised omadused

RC2 on 64-bitine plokkšiffer, kus ploki suurus on 64 bitti. Algoritm läbib kokku 18 vooru ja kasutab muutuva pikkusega võtme sisendit — võtme tegelik pikkus võib olla erinev, sealhulgas tavatav 40-biti „eksportvõti” või pikemad võtmepikkused. Algoritmis kasutatakse ka võimalust määrata nii-öelda "effective key length" (efektiivne võtmepikkus), et kunstlikult vähendada võtme tugevust (seda kasutati varem ekspordipiirangute kontekstis).

Tööpõhimõte ja struktuur

RC2 on üles ehitatud allika-centrilisele feistel-võrgule. Voorud on rühmitatud nii, et 16 vooru ühest tüübist — nimetame neid segamisvoorudeks — vahelduvad kahe voorutüübi vahel, mida nimetatakse mashing-ringideks. Täpne voorude järjekord on järgmine:

  1. teha 5 segamisvooru
  2. teha 1 mashing-voor (mashing-ring)
  3. teha 6 segamisvooru
  4. teha 1 mashing-voor
  5. teha 5 segamisvooru

Üks segamisvoor sisaldab nelja järjestikust „segamismuutuse” rakendust, kus iga samm kasutab erinevat aritmeetikat ja loogikaoperatsioone ning lisab ühe 16-bitise sõna laiendatud võtme (vaata RFC 2268 for detaile). Mashing-voorud lisavad plokile erineval moel võtmesõnu, et tugevdada hajutust.

Võtme laiendamine

RC2 kasutab võtme laiendamise algoritmi, mille tulemusena saadakse 64 16-bitisest sõnast koosnev laiendatud võti (kokku 1024 bitti sõnade kujul). See laiendatud võti sõltub keerukalt sisendvõtme igast bitist ja sisaldab mehhanisme, mis võimaldavad rakendada ka „efektiivset võtmepikkust” (nt 40 bitti ekspordi-nõuete simuleerimiseks). Täpsemad sammud ja konstantsed tabelid on kirjeldatud standardis RFC 2268.

Tõhusus ja rakendamine

RC2 oli algselt mõeldud kiireks tarkvara- ja riistvaraalaseks teostuseks ning seda kasutati mitmetes rakendustes, sh varajastes e-posti ja ärirakendustes (näiteks Lotus Notes). Tänapäeval on RC2 harvem kasutusel, sest turvalisemad ja laialdasemalt toetatud algoritmid nagu AES ja ChaCha20 on eelistatumad.

Turvariskid ja nõrkused

  • Seotud võtmete rünnak: RC2 on vastuvõtlik seotud võtmetega rünnakule; Kelsey jt. (1997) näitasid, et on võimalik pöördkrüpteerimise abil leida võtme kohta infot kasutades 234 valitud lihtteksti rünnakut.
  • 64-bitine plokk: Ploki suurus 64 bitti on tänapäevases kontekstis piirav — suuremate andmemahtude krüpteerimisel ilmneb „sünteesi” (birthday) efekt, mis suurendab kolisioonide ja rünnakute riski pärast ~2^32 plokki. See teeb RC2 vähem sobivaks suuremahuliste voogude või pikaajalise andmesalvestuse jaoks.
  • Lühikesed võtmepikkused: Ajalooliselt kasutati RC2 sageli 40-bitise võtmega ekspordioksponaalseks vastavuseks; 40-bitised võtmed on tänapäeval täiesti ebaturvalised ja kergesti murdvad bruutjõu rünnakuga.
  • Standardi- ja avalik diskussioon: Algoritmi üksikasjad olid algselt eraomandis, kuid 29. jaanuaril 1996 avaldati RC2 lähtekood anonüümselt Internetis Useneti foorumis sci.crypt; see tekitas arutelusid spetsifikatsiooni päritolu üle.

Ajalugu ja standardimine

RC2 väljatöötamist sponsoreeris Lotus, kes soovis pärast NSA hinnangut oma Lotus Notes tarkvara osana eksportida kohandatud salastust. NSA soovitas teha mõned muudatused, mida Ronald Rivest seejärel sisse viis; pärast läbirääkimisi lubati šifreeringu eksport 1989. aastal. Koos RC4-ga käsitleti 40-bitise võtme suurusega RC2-d USA krüptograafia ekspordieeskirjade järgi. Tänapäeval loetakse 40-bitiseid algoritme vananenuks ja ebaturvaliseks (kergesti murdatavad brute force'i meetoditega).

Soovitused praktikas

  • Ära kasuta RC2 uuteks projektideks; vali tugevam ja tänapäevane algorütm nagu AES (128/192/256 bittine võtme ja 128-bitise plokiga) või voog-krüptograafia puhul ChaCha20-Poly1305.
  • Kui on vaja tagada ühilduvus vanemate süsteemidega, piirdu RC2 kasutamisega vaid juhul kui seda nõuab olemasolev infrastruktuur ja rakenda täiendavaid kaitseliike (nt lühikesed andmeplokid, piiratud elutsükkel). Kuid planeeri üleminek kaasaegsele lahendusele.
  • Vältida 64-bitiste plokkšifrite pikaajalist kasutust suures andmemahtudei; kasuta autentsuse lisamiseks kombineeritud režiime (näiteks AEAD) ning jälgi, et IV/nonce’id oleksid korrektsed ja kordumatud.

Kokkuvõttes on RC2 ajalooliselt huvitav ja praktiline näide 1980.–1990. aastate plokkšifritest, kuid tänapäevased turvanõuded muudavad selle sobimatuks uutes süsteemides. Kui turvalisus on oluline, eelistage tänapäevaseid, laialt auditeeritud ja standarditud algoritme.

RC2 segamistransformatsioon; Segamisvoor koosneb segamistransformatsiooni neljast rakendamisest.Zoom
RC2 segamistransformatsioon; Segamisvoor koosneb segamistransformatsiooni neljast rakendamisest.

Küsimused ja vastused

K: Mis on RC2?


V: RC2 on Ronald Rivesti 1987. aastal loodud sümmeetrilise võtmega plokkšiffer. See kasutab 64-bitist plokisuurust ja 18 krüpteerimisringi.

K: Mida tähendab "RC"?


V: "RC" tähendab "Rivest Cipher" või alternatiivselt "Ron's Code".

K: Mitu vooru tehakse RC2 kasutamisel?


V: RC2 kasutamisel tehakse 18 vooru - 16 segamisvooru, mis on vaheldumisi kahe segamisvooruga.

K: Kuidas töötab võtme laiendamise algoritm?


V: Võtme laiendamise algoritm toodab laiendatud võtme, mis koosneb 64 (16-bitisest sõnast) sõltuvalt esitatud muutuva pikkusega sisendvõtme igast bitist.

K: Millist tüüpi rünnakutele on RC2 vastuvõtlik?


V: RC2 on vastuvõtlik seotud võtmega seotud rünnakule, mis kasutab 234 valitud lihtteksti rünnakut.

K: Kes sponsoreeris RC2 väljatöötamist?



V: RC2 väljatöötamist sponsoreeris Lotus, kes soovis, et nende Lotus Notes'i tarkvara osana eksporditaks kohandatud salastust.

AlegsaOnline.com - 2020 / 2025 - License CC3