RC5

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 24. února 2015; kontroly vyžadují 18 úprav .
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.

Popis

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 .

Možnosti

Protože má algoritmus RC5 proměnné parametry, označení algoritmu se specifickými parametry je RC5-W/R/b , kde

Rozšíření klíče

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ů:

Konstantní generování

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:

Rozdělení klíče na slova

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íchat

Ná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 .

Šifrování

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:

Dešifrování

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:

Vlastnosti

Algoritmus RC5 má následující vlastnosti: [1]

  • Vhodné pro hardwarovou i softwarovou implementaci (algoritmus používá operace, které běží stejně rychle na všech procesorech ).
  • Každé kolo zpracuje celý blok (typické kolo sítě Feistel zpracovává pouze „dílčí blok“).
  • Stejně dobré pro stroje s různými délkami strojového slova (to znamená, že funguje dobře i na 64bitových strojích).
  • Má opakující se strukturu s proměnným počtem kol, což uživateli umožňuje volit mezi vyšší rychlostí šifrování a bezpečnější šifrou.
  • Má variabilní délku klíče, která uživateli umožňuje vybrat si úroveň zabezpečení, která vyhovuje specifikům jeho aplikace.
  • Poměrně jednoduchá implementace a analýza.
  • Je nenáročný na paměť, což umožňuje jeho použití i v mobilních a přenosných zařízeních.

Zabezpečení

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.

RSA Security Challenge

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]

Runtime útok

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).

Varianty algoritmu

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:

RC5XOR

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ů.

RC5P

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.

RC5PFR

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.

RC5KFR

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.

RC5RA

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.

Poznámky

  1. Rivest, R. L. (1994). „Šifrovací algoritmus RC5“ (pdf) . Sborník z druhého mezinárodního workshopu o rychlém softwarovém šifrování (FSE) 1994e . str. 86-96. "ref-en" text vynechán ( help ) Archivováno 17. dubna 2007 na Wayback Machine
  2. The RSA Laboratories Secret-Key Challenge Archivováno 23. května 2004.
  3. RC5-72: Celková statistika projektu . Získáno 14. února 2010. Archivováno z originálu 9. října 2018.
  4. Distributed.net: blogy zaměstnanců - 2008 - září - 08

Odkazy