RC5 | |
---|---|
Tvůrce | Ron Rivest |
Vytvořeno | 1994 |
zveřejněno | 1994 |
Velikost klíče | 0–2040 bitů (128 ve výchozím nastavení) |
Velikost bloku | 32, 64 nebo 128 bitů (64 je výchozí pro 32bitové platformy) |
Počet kol | 1-255 (výchozí 12) |
Typ | Síť Feistel |
RC5 ( Ron's Code 5 nebo Rivest's Cipher 5 ) je bloková šifra vyvinutá Ronem Rivestem z RSA Security s proměnným počtem kol , délkou bloku a délkou klíče . To rozšiřuje rozsah použití a zjednodušuje přechod na silnější verzi algoritmu.
Existuje několik různých variant algoritmu , ve kterých jsou transformace v "půlkolách" klasického RC5 poněkud upraveny. Klasický algoritmus používá tři primitivní operace a jejich inverze:
Hlavní inovací je použití operace posunu o proměnný počet bitů, což se v dřívějších šifrovacích algoritmech nepoužívalo. Tyto operace jsou stejně rychlé na většině procesorů , ale zároveň výrazně komplikují diferenciální a lineární kryptoanalýzu algoritmu.
Šifrování pomocí algoritmu RC5 se skládá ze dvou fází. Postup rozšíření klíče a samotné šifrování . Při dešifrování se nejprve provede postup rozšíření klíče a poté se operace obrátí k postupu šifrování. Všechny operace sčítání a odčítání se provádějí modulo .
Protože má algoritmus RC5 proměnné parametry, označení algoritmu se specifickými parametry je RC5-W/R/b , kde
Před přímým šifrováním nebo dešifrováním dat se provede postup rozšíření klíče. Postup generování klíče se skládá ze čtyř kroků:
Pro daný parametr jsou generovány dvě pseudonáhodné proměnné pomocí dvou matematických konstant: ( exponent ) a ( Zlatý poměr ).
,kde je zaokrouhlení na nejbližší liché celé číslo.
Získáte tak následující konstanty:
V této fázi je klíč zkopírován do pole slov … , kde , kde , tedy počet bajtů ve slově.
Pokud ne násobkem , pak doplněno nulovými bity na nejbližší větší násobek .
Pokud , pak nastavíme hodnotu , a .
Vytvoření tabulky rozšířených klíčůV této fázi je vytvořena rozšířená tabulka klíčů , která se provádí následovně:
ZamíchatNásledující akce se provádějí cyklicky Nkrát:
kde jsou dočasné proměnné, jejichž počáteční hodnoty se rovnají 0. Počet iterací smyčky je maximum ze dvou hodnot a .
Před prvním kolem se provedou operace vložení rozšířeného klíče na zašifrovaná data:
V každém kole se provádějí následující akce:
Pro dešifrování dat se používají reverzní operace, to znamená , že se provádějí následující kola:
Po dokončení všech kol je původní zpráva nalezena z výrazu:
Algoritmus RC5 má následující vlastnosti: [1]
RSA strávila spoustu času analýzou toho, jak funguje s 64bitovým blokem. V období od roku 1995 do roku 1998 tedy publikovali řadu zpráv, ve kterých podrobně analyzovali kryptografickou sílu algoritmu RC5. Skóre pro lineární kryptoanalýzu ukazuje, že algoritmus je bezpečný po 6 kolech. Diferenciální kryptoanalýza vyžaduje vybrané otevřené texty pro 5-kolový algoritmus, pro 10-kolový, pro 12-kolový a pro 15-kolový. A protože existují pouze možné různé holé texty, diferenciální kryptoanalýza je nemožná pro algoritmus 15 nebo více kol. Doporučuje se tedy použít 18-20 nábojů, nebo alespoň 15 nábojů místo 12 nábojů, které doporučoval sám Rivest.
Pro stimulaci studia a používání šifry RC5 nabídla RSA Security 28. ledna 1997 prolomení série zpráv zašifrovaných algoritmem RC5 s různými parametry [2] a přidělila odměnu 10 000 $ za prolomení každé zprávy. nejslabší parametry je RC5-32/12/5 byl hacknut během několika hodin. Poslední šifra RC5-32/12/8, která měla být prolomena, však vyžadovala 5 let výpočtů v rámci projektu distribuovaných výpočtů RC5-64 (zde 64= b 8, délka klíče v bitech) vedeného distribuovaným.net . RC5-32 /12/ b pro b od 9 do 16 je stále neprostupné . [3]
V květnu 2007 RSA Security Inc. oznámila ukončení podpory soutěže a vyplacení peněžních odměn. Aby projekt RC-72 pokračoval v chodu , rozhodl se distribuovaný.net sponzorovat za něj cenu 4 000 $ z vlastních prostředků. [čtyři]
Na platformách, kde se operace rotace s proměnným počtem bitů provádí pro různý počet cyklů procesoru , je možný runtime útok na algoritmus RC5. Dvě varianty takového útoku formulovali kryptanalytici Howard Hayes a Helena Handschuh . Zjistili, že klíč lze vypočítat po provedení asi 220 šifrovacích operací s vysoce přesnými časy provedení a poté 228 až 240 zkušebních šifrovacích operací. Nejjednodušší metodou boje proti takovým útokům je vynutit provádění směn v konstantním počtu cyklů (například při provádění nejpomalejší směny).
Protože jednou z vlastností RC5 je snadná implementace a analýza, je logické, že mnoho kryptologů[ kdo? ] chtěl vylepšit klasický algoritmus. Obecná struktura algoritmu zůstala nezměněna, změnily se pouze akce prováděné na každém bloku v procesu samotného šifrování . Takže existovalo několik různých verzí tohoto algoritmu:
V tomto algoritmu je sčítání pomocí kulatého klíče modulo nahrazeno operací XOR:
Tento algoritmus se ukázal být citlivý na diferenciální a lineární kryptoanalýzu. Biryukovovi a Kushilevitsovi se podařilo najít diferenciální kryptoanalytický útok pro algoritmus RC5XOR-32/12/16 pomocí 228 vybraných otevřených textů.
V tomto algoritmu je přidání dvou zpracovaných „podbloků“ operací XOR nahrazeno přidáním modulo :
Ukázalo se, že tento algoritmus je citlivý na diferenciální kryptoanalýzu.
V tomto algoritmu se cyklický posun provádí pevným počtem bitů pro dané kolo, nikoli proměnným.
,kde je pevné číslo.
Tento algoritmus není dobře pochopen, ale předpokládá se, že ano[ kým? ] že je nestabilní vůči diferenciální kryptoanalýze.
V tomto algoritmu závisí počet bitů, které se mají posunout, na klíči algoritmu a na aktuálním kole:
,Tento algoritmus také není dobře pochopen.
V tomto algoritmu je počet bitů posunu určen pomocí nějaké funkce z jiného „podbloku“:
,Předpokládá se,[ kým? ] , že algoritmus RC5RA je ještě odolnější vůči známým metodám kryptoanalýzy než RC5.
Symetrické kryptosystémy | |
---|---|
Streamové šifry | |
Síť Feistel | |
Síť SP | |
jiný |