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.
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 .
Mivel az RC5 algoritmus változó paraméterekkel rendelkezik, a meghatározott paraméterekkel rendelkező algoritmus megnevezése RC5-W/R/b , ahol
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:
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:
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éseEbben a szakaszban megépül a kiterjesztett kulcstábla , amely a következőképpen történik:
ShuffleA 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 .
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:
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:
Az RC5 algoritmus a következő tulajdonságokkal rendelkezik: [1]
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.
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]
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).
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:
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.
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.
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.
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.
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.
Szimmetrikus titkosítási rendszerek | |
---|---|
Rejtjelfolyam adatfolyam | |
Feistel hálózat | |
SP hálózat | |
Egyéb |