RC6: symetrická bloková šifra odvozená z RC5 — finalista AES
RC6 – parametrizovatelná symetrická bloková šifra odvozená z RC5, finalista soutěže AES: rychlé celočíselné násobení, volitelné bloky a vysoká bezpečnost.
V kryptografii je RC6 bloková šifra se symetrickým klíčem odvozená od RC5. RC6 je parametrizovaný algoritmus s proměnlivou velikostí bloku, proměnlivou velikostíklíče a proměnlivým počtem kol. RC je zkratka pro "Rivestovu šifru", případně "Ronovu šifru".
V roce 1997 vyhlásil NIST soutěž o nástupce standardu DES (Data Encryption Standard), který se měl jmenovat AES (Advanced Encryption Standard). RC6 byl odvozen z RC5, aby splňoval požadavky soutěže, a byl vybrán jako jeden z pěti finalistů soutěže Advanced Encryption Standard (AES), ale nebyl vybrán jako standard.
Aby bylo možné zajistit různé úrovně bezpečnosti a efektivity, umožňuje RC6 volbu velikosti bloku: 32 bitů (pouze pro experimentální a hodnotící účely), 64 bitů (pro použití jako náhrada DES) a 128 bitů (určeno pro AES). Počet kol se může pohybovat od 0 do 255, zatímco velikost klíče může být od 0 bitů do 2040 bitů.
RC6 je svou strukturou velmi podobný RC5 a lze na něj pohlížet jako na prolínání dvou paralelních šifrovacích procesů RC5. RC6 však používá dodatečnou operaci násobení, která v RC5 chybí, a čtyři b/4bitové pracovní registry (viz rozdělení bloků otevřeného textu ve feistelově šifře) namísto dvou b/2bitových registrů jako v RC5 (b je velikost bloku). Celočíselné násobení se používá ke zvýšení rozptylu dosaženého v jednom kole, takže je zapotřebí méně kol a lze zvýšit rychlost šifry.
Důvodem použití čtyř pracovních registrů místo dvou je především optimalizace na 32bitových procesorech. Výchozí velikost bloku RC5 byla 64 bitů, zatímco výchozí velikost bloku AES je 128 bitů. RC5 má pouze dva pracovní registry. Při práci s 64bitovými bloky používá 32bitové operace a při práci se 128bitovými bloky 64bitové operace, takže pro sestavení architektury AES s použitím pouze 32bitových operací jsou nutné čtyři pracovní registry.
RC6 je patentovaný algoritmus (RSA Security U. S. Patent 5,724,428 a U. S. Patent 5,835,600 ), který může vyžadovat licenční a licenční poplatky za jakékoli produkty využívající tento algoritmus. Navrhli jej Ron Rivest, Matt Robshaw, Ray Sidney a Yiqun Lisa Yin a byl také předložen projektům NESSIE a CRYPTREC.
Princip a základní vlastnosti
RC6 zpracovává blok dat rozdělený do čtyř pracovních registrů (obvykle nazývaných A, B, C, D). V každém kole kombinuje operace sčítání, XOR, rotace a celočíselného násobení tak, aby dosáhla rychlého a silného rozptylu (diffuse). Násobení má v návrhu za úkol generovat závislé, datově řízené rotace, což podstatně zvýší komplikovanost šifrovací transformace již v jednom kole.
Parametry a typické nastavení
- Velikost bloku: 128 bitů je primární volba pro použití jako kandidát AES; RC6 ale podporuje i 64bitové a experimentální 32bitové bloky.
- Slovo (word) w: pro 128bitový blok je obvyklé w = 32 bitů (4 slova po 32 b), proto se často setkáte s označením RC6-32/20/16 (32 = word size, 20 = počet kol, 16 = délka klíče v bajtech).
- Počet kol: doporučené nastavení pro soutěž AES bylo 20 kol; RC6 však umožňuje od 0 do 255 kol podle potřeb bezpečnosti a výkonu.
- Délka klíče: flexibilní — od velmi krátkých až po velmi dlouhé (teoreticky až 2040 bitů), v praxi se používají 128, 192 a 256bitové klíče.
Schéma šifrování (přehled)
Bez nutnosti uvádět kompletní pseudokód lze RC6 popsat těmito kroky: klíčová expanze vytváří pole subklíčů (S-array), které se použijí při inicializaci a v každém kole; následně probíhá série kol, v nichž se hodnoty pracovních registrů navzájem míchají pomocí operací + (mod 2^w), XOR, datově řízených rotací a celočíselného násobení (mod 2^w). Po posledním kole se provede závěrečné „whitening“ (přidání subklíčů) a výstup je hotový. Dešifrování provádí inverzní operace v opačném pořadí s inverzními rotacemi a subtrakty.
Výkon a implementace
RC6 byl navržen s ohledem na efektivitu zejména na 32bitových procesorech — proto použití čtyř pracovních registrů. Díky celočíselnému násobení dosahuje rychlého rozptylu, a tím i relativně malého počtu kol potřebných k dosažení požadované bezpečnosti. Ve výpočetně omezených prostředích bez rychlé instrukce pro násobení nebo s hardwarem optimalizovaným pro jiné operace může být však RC6 méně výhodný než jiné návrhy (např. Rijndael).
Existují reference implementace v jazycích C, Java a dalších; RC6 byl testován v mnoha implementačních prostředích, ale nikdy se nestal široce přijatým standardem jako AES (Rijndael).
Bezpečnost a kryptanalýza
RC6 prošel rozsáhlým veřejným hodnocením během soutěže AES. Pro redukovaný počet kol byly nalezeny různé teoretické útoky a analýzy (diferenciální, lineární a další pokročilé techniky) ukazující slabší zachování některých statistických vlastností u menšího počtu kol. Nicméně pro navrhované parametry (např. RC6-32/20/16) nebyly dosud publikovány prakticky využitelné útoky, které by překonaly útok hrubou silou proti celým 20 kolům v reálném čase.
Jak u většiny kryptografických návrhů platí: bezpečnost závisí na volbě parametrů (počet kol, délka klíče) a na správné implementaci (ochrana proti bočním kanálovým útokům, bezpečná správa klíčů apod.).
Patent a licence
RC6 je patentovaný algoritmus (U.S. Patents 5,724,428 a 5,835,600). To znamená, že implementace využívající RC6 mohla vyžadovat licenční ujednání s držitelem práv (RSA Security) v době, kdy byly patenty platné. Z tohoto důvodu někteří implementátoři a standardizační orgány preferovaly návrhy bez omezení licencí.
Historie a zařazení v soutěži AES
RC6 vznikl jako přímý vývoj RC5 s cílem splnit technické požadavky NISTu pro novou federální šifrovací normu. Bylo to jedno z pěti finalistických řešení, vedle návrhů jako Rijndael (který se stal AES), Twofish, Serpent a MARS. I když RC6 nebyl nakonec vybrán, jeho koncepty — zejména využití datově řízených rotací a násobení pro rychlý rozptyl — ovlivnily další návrhy a analýzy v oblasti blokových šifer.
Závěr
RC6 je flexibilní a dobře analyzovaný symetrický blokový algoritmus navržený pro rychlost a silný rozptyl na běžných procesorech. I přes své kvality nebyl vybrán jako AES a kvůli patentové situaci se neujal širokého standardního nasazení. Pro studium moderních konstrukcí blokových šifer a jako historicky významný kandidát AES je však stále důležitou referencí.
Otázky a odpovědi
Otázka: Co je RC6?
Odpověď: RC6 je bloková šifra se symetrickým klíčem odvozená od RC5. Je to parametrizovaný algoritmus s proměnlivou velikostí bloku, velikostí klíče a počtem kol.
Otázka: Kdo navrhl RC6?
A: RC6 navrhli Ron Rivest, Matt Robshaw, Ray Sidney a Yiqun Lisa Yin.
Otázka: Jaké jsou výchozí velikosti bloků pro RC5 a AES?
Odpověď: Výchozí velikost bloku RC5 je 64 bitů, zatímco výchozí velikost bloku AES je 128 bitů.
Otázka: Jaká je struktura RC6 ve srovnání se strukturou RC5?
Odpověď: Struktura RC6 je velmi podobná struktuře RC5, ale používá další operaci násobení, která v RC5 není, a také čtyři b/4bitové pracovní registry místo dvou b/2bitových.
Otázka: Proč se používají čtyři pracovní registry místo dvou, aby bylo možné vytvořit architekturu AES s použitím pouze 32bitových operací?
Odpověď: Celočíselné násobení se používá ke zvýšení rozptylu dosaženého v jednom kole, takže je zapotřebí méně kol a lze zvýšit rychlost. Čtyři pracovní registry jsou nutné, protože při práci s 64bitovými bloky se používají 32bitové operace a při práci se 128bitovými bloky 64bitové operace.
Otázka: Jsou pro produkty využívající tento algoritmus vyžadovány nějaké licenční nebo licenční poplatky?
Odpověď: Ano, protože se jedná o patentovaný algoritmus (patentem RSA Security U.S. Patent 5 724 428 a U.S. Patent 5 835 600 ), mohou být vyžadovány licenční a licenční poplatky za všechny produkty, které tento algoritmus používají.
Vyhledávání