RC2 — 64 bitų simetrinis blokinis šifras (Rivestas, 1987)

RC2 – Ronald Rivest (1987) 64 bitų simetrinis blokinis šifras: kintamas raktas, 18 raundų, rakto išplėtimas, istorija ir saugumo įvertinimai.

Autorius: Leandro Alegsa

Kriptografijoje RC2 yra simetrinio rakto blokinis šifras, kurį 1987 m. sukūrė Ronaldas Rivestas. "RC" reiškia „Rivesto šifras“ arba „Rono kodas“. RC2 yra skirtas šifruoti 64 bitų blokams ir naudoja kintamo dydžio raktą bei 18 raundų šifravimo veiksmų.

Algoritmo struktūra

RC2 yra 64 bitų blokinis šifras, pagrįstas modifikuotu Feistel tipo tinklu (kartais apibūdinamas kaip „maišymo“ ir „užmaišymo“ raundų seka). Iš viso vyksta 18 raundų, kurie išsidėsto taip, kad 16 „maišymo“ raundų yra perskirstyti dviem „mashing“ (užmaišymo) raundais. Konkretus sekos eiliškumas yra:

  1. atlikite 5 maišymo raundus.
  2. atlikite 1 užmaišymo ciklą.
  3. atlikite 6 maišymo raundus.
  4. atlikite 1 užmaišymo ciklą.
  5. atlikite 5 maišymo raundus.

Vieną maišymo raundą sudaro keturios „maišymo–išplėtimo“ transformacijos, kiekviena operacija veikia ant keturių 16 bitų žodžių (registrų) ir naudoja papildomą 16 bitų išplėstinio rakto žodį. Maišymo raunduose taikomi aritmetiniai veiksmai (modulo 2^16 sudėjimas), XOR ir bitinės rotacijos. Užmaišymo raundai („mashing“) paprastai tiesiogiai priduria tam tikrus išplėstinio rakto žodžius prie registrų, taip „sumaišydami“ raktą su duomenimis.

Rakto išplėtimas

RC2 naudoja specialų rakto išplėtimo algoritmą, kuris pagal pateiktą įvesties rakto ilgio parametrą (kartais vadinamą „kintamu ilgiu“ arba „efektyviu ilgiu“ — angl. effective key length) generuoja išplėstinį raktą, sudarytą iš 64 16 bitų žodžių (iš viso 128 baitų). Išplėtimo procedūra, aprašyta RFC 2268, naudoja fiksuotą permutacijų lentelę (dažnai vadinamą „pi–lentelė“) ir specialų žingsnį, kuris sumažina rakto efektyvų ilgį iki reikiamo parametro T bitų (pvz., 40 bitų eksportiniam režimui).

Trumpoji rakto išplėtimo santrauka:

  • Pradinis vartotojo raktas išsidėsto baitais ir užpildomas iki tam tikro ilgio pagal algoritmą.
  • Taikoma pi–lentelės permutacija, kad būtų gauti tarpiniai baitai.
  • Jei nurodytas efektyvus rakto ilgis T < 1024, vykdoma papildoma operacija, kuri nustato konkrečius baitus taip, kad rezultatas turėtų tik T bitų entropiją.
  • Galiausiai baitai sujungiami į 64 16 bitų žodžius, naudojamus raundų metu.

Saugumas ir kriptanalizė

RC2 per laiką buvo natūraliai analizuojamas ir tam tikroms atakoms pažeidžiamas. Viena reikšminga analizė — giminingo rakto (related‑key) ataka, atlikta Kelsey ir bendraautorių 1997 m., parodė, kad galima atakuoti RC2 panaudojant apie 2^34 pasirinktų tekstų (ir atitinkamas skaičiavimo sąnaudas) tam tikromis prielaidomis. Tai reiškia, kad RC2 nėra atsparus kai kurioms modernioms kriptanalitinėms metodikoms.

Be to, eksportui skirtos versijos su 40 bitų rakto dydžiu dabar laikomos nesaugiomis, nes 40 bitų raktą galima atakuoti brutaliu jėgos metodu per praktiškai įmanomą laiką. Dėl to RC2 ir visi kiti trumpų raktų (pvz., 40 bitų) sprendimai tapo nebetinkami saugiam naudojimui.

Dėl kriptanalizės ir technologijų pažangos šiuolaikinėms reikmėms rekomenduojama naudoti modernesnius algoritmus, pvz., AES arba kitas gerai įvertintas bei plačiai priimtas kriptografines schemas.

Istorija, įtraukimas į produktus ir viešasis atskleidimas

RC2 kūrimą rėmė „Lotus“, kad šį šifrą būtų galima naudoti „Lotus Notes“ ir importuoti bei eksportuoti pagal JAV taisykles. NSA įvertinimo metu buvo pasiūlyta kelių pakeitimų, kuriuos Ronaldas Rivestas įtraukė į dizainą. Po derybų 1989 m. RC2 buvo patvirtintas eksportui tam tikromis sąlygomis.

Kartu su RC4, RC2 su 40 bitų rakto dydžiu tradiciškai buvo traktuojamas pagal JAV kriptografijos eksporto taisykles. Dėl prasto atsparumo brutalioms atakoms 40 bitų raktai tapo netinkami ir praktiškai neveiksmingi.

Iš pradžių algoritmo detalės buvo laikomos paslaptyje — jos priklausė „RSA Security“. Tačiau 1996 m. sausio 29 d. RC2 išeities kodas buvo anonimiškai paskelbtas internete, "Usenet" forume sci.crypt. Panašūs nutekėjimai anksčiau buvo stebimi ir su RC4. Iki šiol nėra visiškai aišku, ar skelbimo autorius turėjo teisėtą prieigą prie specifikacijų, ar jos buvo rekonstruotos atvirkštiniu būdu.

Panaudojimas šiandien

Nors RC2 buvo plačiai naudojamas praeityje, šiandien jis laikomas pasenusius dėl dviejų priežasčių:

  • Kriptanalizės pažanga atskleidė silpnybes, ypač susijusias su giminingo rakto atakomis.
  • Trumpi eksportui naudojami raktai (pvz., 40 bitų) yra pernelyg silpni prieš brutalią jėgą.

Dėl šių priežasčių RC2 retai rekomenduojamas naujiems projektams — patartina rinktis geriau ištirtus ir šiuolaikiškus algoritmus, tokius kaip AES, su tinkamo ilgio raktais ir saugiais protokolais.

RC2 sumaišymo transformacija; sumaišymo raundą sudaro keturis kartus taikoma "sumaišymo" transformacija.Zoom
RC2 sumaišymo transformacija; sumaišymo raundą sudaro keturis kartus taikoma "sumaišymo" transformacija.

Klausimai ir atsakymai

K: Kas yra RC2?


A: RC2 yra simetrinio rakto blokinis šifras, kurį 1987 m. sukūrė Ronaldas Rivestas. Jame naudojamas 64 bitų dydžio blokas ir 18 šifravimo raundų.

K: Ką reiškia "RC"?


A: "RC" reiškia "Rivesto šifras" arba "Rono kodas".

K: Kiek raundų atliekama naudojant RC2?


A: Naudojant RC2 atliekama 18 raundų - 16 maišymo raundų, kurie perskiriami dviem mashing raundais.

K: Kaip veikia rakto išplėtimo algoritmas?


A: Raktą išplečiantis algoritmas sukuria išplėstinį raktą, sudarytą iš 64 (16 bitų žodžių), priklausomai nuo kiekvieno pateikto kintamo ilgio įvesties rakto bito.

K: Kokio tipo atakoms yra jautrus RC2?


A.: RC2 yra jautrus susijusio rakto atakai naudojant 234 pasirinkto teksto atakas.

K: Kas rėmė RC2 kūrimą?



A.: RC2 kūrimą rėmė "Lotus", kuri siekė, kad jų "Lotus Notes" programinė įranga eksportuotų pasirinktinį šifrą.


Ieškoti
AlegsaOnline.com - 2020 / 2025 - License CC3