RC5

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2015. február 24-én felülvizsgált verziótól ; az ellenőrzések 18 szerkesztést igényelnek .
RC5
Teremtő Ron Rivest
Létrehozva 1994
közzétett 1994
Kulcsméret 0-2040 bit (alapértelmezés szerint 128)
Blokkméret 32, 64 vagy 128 bit (a 64 az alapértelmezett a 32 bites platformokon)
A körök száma 1-255 (alapértelmezés szerint 12)
Típusú Feistel hálózat

Az RC5 ( Ron's Code 5 vagy Rivest's Cipher 5 ) egy blokk-rejtjel , amelyet Ron Rivest , az RSA Security fejlesztett ki, változó számú körrel , blokkhosszal és kulcshosszal . Ez kibővíti a felhasználási kört, és leegyszerűsíti az átállást az algoritmus erősebb verziójára.

Leírás

Az algoritmusnak számos változata létezik , amelyekben a klasszikus RC5 "félköreiben" a transzformációk némileg módosulnak. A klasszikus algoritmus három primitív műveletet és azok inverzióit használ:

A fő újítás a változó bitszámú eltolási művelet alkalmazása, amelyet a korábbi titkosítási algoritmusok nem használtak. Ezek a műveletek a legtöbb processzoron egyformán gyorsak , ugyanakkor jelentősen megnehezítik az algoritmus differenciális és lineáris kriptoanalízisét .

Az RC5 algoritmussal történő titkosítás két szakaszból áll. Kulcsbővítési eljárás és maga a titkosítás . A visszafejtéshez először a kulcsbővítési eljárást hajtják végre, majd a műveletek visszafordulnak a titkosítási eljáráshoz. Minden összeadás és kivonás művelet modulo .

Opciók

Mivel az RC5 algoritmus változó paraméterekkel rendelkezik, a meghatározott paraméterekkel rendelkező algoritmus megnevezése RC5-W/R/b , ahol

Kulcskiterjesztés

Az adatok közvetlen titkosítása vagy visszafejtése előtt egy kulcsbővítési eljárást hajtanak végre. A kulcsgenerálási eljárás négy lépésből áll:

Állandó generálás

Egy adott paraméterhez két pszeudo-véletlen változót állítunk elő két matematikai állandó segítségével: ( kitevő ) és ( aranyarány ).

,

ahol  a legközelebbi páratlan egész számra kerekítés .

A következő állandókat kapod:

A kulcs felosztása szavakra

Ebben a szakaszban a kulcs egy szavak tömbjébe másolódik … , ahol , ahol , azaz egy szó bájtjainak száma.

Ha nem többszöröse , akkor nulla bitekkel töltve a legközelebbi nagyobb többszörösére .

Ha , akkor beállítjuk a , és az értékét .

A kiterjesztett kulcsok táblázatának elkészítése

Ebben a szakaszban megépül a kiterjesztett kulcstábla , amely a következőképpen történik:

Shuffle

A következő műveletek ciklikusan, N alkalommal hajtódnak végre:

,

ahol  olyan ideiglenes változók vannak, amelyek kezdeti értéke 0. A ciklus iterációinak száma  a két érték és a maximuma .

Titkosítás

Az első kör előtt a titkosított adatokra kiterjesztett kulcsot helyeznek el:

Minden körben a következő műveleteket hajtják végre:

Dekódolás

Az adatok visszafejtéséhez fordított műveleteket használnak, azaz a következő köröket hajtják végre:

Az összes kör befejezése után az eredeti üzenet megtalálható a következő kifejezésből:

Tulajdonságok

Az RC5 algoritmus a következő tulajdonságokkal rendelkezik: [1]

  • Hardveres és szoftveres megvalósításra egyaránt alkalmas (az algoritmus olyan műveleteket használ, amelyek minden processzoron egyformán gyorsan futnak ).
  • Minden kör a teljes blokkot dolgozza fel (egy tipikus Feistel hálózati kör csak egy "alblokkot" dolgoz fel).
  • Ugyanolyan jó a különböző gépi szóhosszúságú gépekhez (vagyis 64 bites gépeken is jól működik).
  • Változó körszámú ismétlődő szerkezettel rendelkezik, amely lehetővé teszi a felhasználó számára, hogy válasszon a nagyobb titkosítási sebesség és a biztonságosabb titkosítás között.
  • Változtatható kulcshosszúságú, így a felhasználó kiválaszthatja az alkalmazásának sajátosságainak megfelelő biztonsági szintet.
  • Meglehetősen egyszerű megvalósítani és elemezni.
  • Nem igényes a memóriában, így akár mobil és hordozható eszközökben is használható.

Biztonság

Az RSA sok időt töltött azzal, hogy elemezze, hogyan működik egy 64 bites blokkal. Így az 1995 és 1998 közötti időszakban számos jelentést tettek közzé, amelyekben részletesen elemezték az RC5 algoritmus kriptográfiai erejét. A lineáris kriptoanalízis pontszáma azt mutatja, hogy az algoritmus 6 kör után biztonságos. A differenciális kriptográfiai elemzéshez kiválasztott sima szövegekre van szükség az 5 körös algoritmushoz, a 10 körös, a 12 körös és a 15 körös algoritmushoz. És mivel csak különböző nyílt szövegek lehetségesek, a differenciális kriptográfiai elemzés lehetetlen 15 vagy több körből álló algoritmus esetén. Tehát ajánlatos 18-20 kört használni, vagy legalább 15 kört a Rivest által ajánlott 12 kör helyett.

RSA Security Challenge

Az RC5 titkosítás tanulmányozásának és használatának ösztönzése érdekében az RSA Security 1997. január 28-án felajánlotta, hogy feltör egy sor RC5 algoritmussal titkosított üzenetet különböző paraméterekkel, [2] 10 000 dollár jutalmat osztva ki minden egyes üzenet feltöréséért. A leggyengébb paraméterek az RC5-32/12/5 néhány órán belül feltörték. Azonban az utolsó RC5-32/12/8 titkosítás feltöréséhez 5 évnyi számítást igényelt az RC5-64 elosztott számítási projekt (itt 64 = b 8, kulcshossz bitben), amelyet a distributed.net vezetett . Az RC5-32 / 12/ b a 9-től 16 -ig még mindig áthatolhatatlan % billentyűk. [3]

2007 májusában az RSA Security Inc. bejelentette a pályázat támogatásának megszüntetését és a pénzjutalom kifizetését. Az RC-72 projekt fenntartása érdekében a distributed.net úgy döntött, hogy saját forrásaiból 4000 dolláros díjat szponzorál érte. [négy]

Runtime attack

Azokon a platformokon, ahol a különböző számú processzorciklushoz változó számú bit forgatási műveletet hajtanak végre , futásidejű támadás lehetséges az RC5 algoritmus ellen. Egy ilyen támadás két változatát fogalmazták meg Howard Hayes és Helena Handschuh kriptoanalitikusok .  Azt találták, hogy a kulcsot körülbelül 220 titkosítási művelet végrehajtása után, rendkívül pontos végrehajtási idővel, majd 228-240 próba titkosítási művelet után lehet kiszámítani. Az ilyen támadások leküzdésének legegyszerűbb módja, ha a váltásokat állandó számú ciklusban hajtják végre (például a leglassabb váltás végrehajtása során).

Az algoritmus változatai

Mivel az RC5 egyik tulajdonsága a könnyű implementáció és elemzés, logikus, hogy sok kriptológus[ ki? ] javítani akarta a klasszikus algoritmust. Az algoritmus általános felépítése változatlan maradt, csak az egyes blokkon végrehajtott műveletek változtak a titkosítási folyamat során . Tehát ennek az algoritmusnak több változata volt:

RC5XOR

Ebben az algoritmusban a modulo round billentyűvel történő összeadást az XOR művelet váltja fel:

Ez az algoritmus sebezhetőnek bizonyult a differenciális és lineáris kriptoanalízissel szemben. Birjukovnak és Kushilevitsnek sikerült egy differenciális kriptográfiai támadást találnia az RC5XOR-32/12/16 algoritmushoz 228 kiválasztott egyszerű szöveg felhasználásával.

RC5P

Ebben az algoritmusban két feldolgozott "alblokk" XOR művelettel történő hozzáadását modulo összeadás váltja fel :

Ez az algoritmus sebezhetőnek bizonyult a differenciális kriptoanalízissel szemben.

RC5PFR

Ebben az algoritmusban a ciklikus eltolást egy adott körben meghatározott számú bit hajtja végre, nem pedig egy változó.

,

hol van egy fix szám.

Ez az algoritmus nem teljesen érthető, de feltételezhető[ kitől? ] , hogy instabil a differenciális kriptoanalízisre.

RC5KFR

Ebben az algoritmusban az eltolni kívánt bitek száma az algoritmus kulcsától és az aktuális körtől függ:

,

Ez az algoritmus sem érthető jól.

RC5RA

Ebben az algoritmusban a shift bitek számát egy másik "alblokkból" származó függvény segítségével határozzuk meg:

,

Feltételezett,[ kitől? ] , hogy az RC5RA algoritmus még jobban ellenáll az ismert kriptográfiai módszereknek, mint az RC5.

Jegyzetek

  1. Rivest, R. L. (1994). „Az RC5 titkosítási algoritmus” (pdf) . A gyors szoftvertitkosítás (FSE) második nemzetközi workshopjának anyaga, 1994e . pp. 86-96. "ref-en" szöveg kimaradva ( súgó ) Archiválva : 2007. április 17. a Wayback Machine -nél
  2. Az RSA Laboratories Secret-Key Challenge archiválva : 2004. május 23.
  3. RC5-72: Általános projektstatisztika . Letöltve: 2010. február 14. Az eredetiből archiválva : 2018. október 9..
  4. distributed.net: munkatársak blogjai - 2008 - szeptember - 08

Linkek