Přeskočit na obsah

RC6

Z Wikipedie, otevřené encyklopedie

RC6 (Rivest cipher 6) je symetrická bloková šifra odvozená od RC5. Šifru vytvořili v roce 1998 Ron Rivest, Matt Robshaw, Ray Sidney a Yigun Lisa Yin.

RC6 byla jedním z kandidátů do soutěže od Národního institutu standardů a technologie (NIST) na Advanced Encryption Standard (AES). Do soutěže ji přihlásila společnost RSA. [1] Šifra se dostala do posledních pěti, vítěznou šifrou se ale stala šifra Rijndael. Mimo AES byla šifra poslána do projektů NESSIE a CRYPTREC. [2]

Autor zdůrazňoval jednoduchost algoritmu, jeho rychlost a bezpečnost.[3]

Zjištění AES

[editovat | editovat zdroj]

Dle zjištění NISTu se u šifry RC6 nevyskytly žádné významné bezpečnostní díry, ani méně významné všeobecné bezpečnostní hrozby.[4]

Jako výhoda šifry byla uvedena rychlost na 32 bitových platformách a velmi rychlá byla i na platformách poskytujících podporu pro 32 bitové rotace a multiplikace. [4]

Další výhodou je uvedena jednoduchá struktura. [4]

Jako další výhoda je uvedeno její odvození z šifry RC5, což umožnilo NISTu dřívější analýzu. [4]

Poslední výhoda se týká nastavení klíče, konkrétněji to je podpora délky klíče (větší než 256 bitů, teoreticky až do 1248 bitů) a parametrizování délky klíče, délky bloku a počtu rund. [4]

První nevýhodou bylo uvedeno bezpečnostní rozpětí. [4]

Další nevýhodou je slabý výkon na platformách neposkytující požadující podporu. [4]

Jako poslední nevýhoda je uvedena chybějící podpora pravidla vytváření klíčů na low-end chytrých kartách. [4]

Bezpečnostní díry s ohledem na implementaci na chytrých kartách

[editovat | editovat zdroj]

Dle zjištění je obtížná obrana proti útokům časovou analýzou a útokům odběrovou analýzou kvůli využívání umocňování a variabilních rotací. [4]

Rozdíly oproti RC5

[editovat | editovat zdroj]

Na rozdíl od RC5 má RC6 dvojnásobnou šířku datového bloku - 128 bitů.[1]

RC6 využívá datově závislé rotace z RC5, které ale dále doplňuje o další nelinearitu.[1]

Oproti RC5 RC6 využívá 4 registrů místo 2. [5]

RC6 algoritmusFeistelovu strukturu, symbolicky vyjádřenou jako RC6-w/r/b. Význam písmen w, r a b je znázorněn v tabulce:[6]

Parametr Definice
w reprezentuje 32 bitovou délku slova
r Počet rund pro šifrování.
b 16, 24 a 32 bajtový klíč
RC6 šifra

V každý rundě druhé slovo aktualizuje první slovo, mezitím co paralelně čtvrté slovo aktualizuje třetí slovo. Potom jsou pozice slov přetočena. Aktualizace využívá kvadratické transformace, vyžadující 32 bitový modulární multiplikátor a k tomu XOR operaci, datově závislou rotaci a přidání klíče. Taktéž se zde vyskytuje přidání klíče před první a poslední rundou. Dešifrování je odvozené inverzí každého kroku šifrování.[3]

Základní operace

[editovat | editovat zdroj]

Pro všechny varianty RC6 - w/r/b pracuje s jednotkami o čtyř w-bitových slovech pomocí následujících šesti operací: [6]

  • přidání modulo 2w
  • odečtení modulo 2w
  • exkluzivní disjunkce (XOR) w-bitových slov
  • násobení modulo 2w
  • cyklická rotace w-bitového slova doleva o určitý počet bitů r
  • cyklická rotace w-bitového slova doprava o určitý počet bitů r

Struktura algoritmu

[editovat | editovat zdroj]

RC6 algoritmus se skládá ze 3 procesů:

  1. Určení klíče
  2. Šifrování
  3. Dešifrování

Určení klíče

[editovat | editovat zdroj]

Stanovení klíče je podobné jako u RC5. Uživatel poskytne klíč o b bajtů. Z tohoto klíče jsou derivovány 2r 4 slova (w bitů každý), které se uloží do pole S [0, 2r 3]. Toto pole je používáno jak v šifrování, tak dešifrování.[6]

Algoritmus určení klíče je rozdělený do 3 částí:[5]

  • Konvertování
  • Inicializace
  • Vmíchání

Konvertování

[editovat | editovat zdroj]

Uživatelův tajný klíč je kopírován do pole L.[5]

Inicializace

[editovat | editovat zdroj]

Pole S je inicializováno specifickým fixním pseudonáhodným vzorem založeným na modulo 2w používající dvě konstanty Pw a Qw.[5]

Míchání

[editovat | editovat zdroj]

V této fázi se míchá uživatelův tajný klíč do S a L polí. Konkrétněji, protože pole S a pole L nemají stejné velikosti, větší pole je zpracováno jednou, a druhé pole třikrát.[5]

Šifrování

[editovat | editovat zdroj]

RC6 se skládá ze čtyř w-bitových registrů (A, B, C ,D), které slouží k uložení původního textu. Finální text je taktéž uložen ve stejném registru.[6]

První bajt původního nebo šifrovaného textu je uložen v nejméně signifikantním bajtu z A. Poslední bajt původního nebo šifrovaného textu je uložen v nejvíce signifikantním bajtu z D.[6]

Pseudokód pro šifrování je následující: [6]

Vstup: Text uložený ve 4 w-bitových vstupních registrech A, B, C, D
       r je počet opakování (rund)
       w-bitový klíče S [0, ..., 2r 3]

Výstup: Šifrovaný text uložený v A, B, C, D

Proces: B = B   S[0];
        D = D   S[1];
        for i = 1 to r do
        {
            t = (B(2B 1)) <<< log w;
            u = (D(2D 1)) <<< log w;
            A = ((A⊕t) <<< t)   S[2i];
            C = ((C⊕u) <<< t)   S[2i 1];
            (A,B,C,D)=(B,C,D,A);
        }
        A = A   S[2r 2];
        C = C   S[2r 3];

Dešifrování

[editovat | editovat zdroj]

Dešifrování funguje podobně jako šifrování. Největší rozdíl je, že šifrovaný text je dán jako vstup a výstupem je původní text. [6]

Pseudokód pro dešifrování je následující: [6]

C = C - S[2r 3];
A = A - S[2r 2];
for i = r down to 1 do
    {
        (A,B,C,D) = (D,A,B,C);
        u = (D (2D 1)) <<< log w;
        t = (B (2B 1)) <<< log w;
        C = ((C - S[2i 1]) >>> t)⊕u;
        A = ((A - S[2i]) >>> u)⊕t;
    }
D = D - S[1];
B = B - S[0];

Bezpečnost

[editovat | editovat zdroj]

RC6 je přiměřeně odolná známým útokům. Není znám žádný útok na 20 rundovou variantu. Pomocí lineární a diferenciální kryptoanalýzy je možné prolomit 12 rundovou verzi, statistické útoky založené na vybraných dvojicích OT-ŠT (otevřený-šifrovaný text) prokázaly zranitelnost do 13 rund.[7]

  1. a b c KLÍMA, Vlastimil. Představujeme kandidáty na AES: Šifra RC6 [online]. 1999-09-10 [cit. 2022-11-15]. Dostupné online. 
  2. Tariq, Ziyad & Mustafa Al-Ta'i, Ziyad & Jumaa, Ebtisam. (2019). Improved RC6 Algorithm using Two Types of Chaos Maps. International Journal of Engineering and Advanced Technology. 9. 2249-8958. 10.38630/ijeat.A1075.109119.
  3. a b ROBACK, Edward; DWORKIN, Morris. Conference Report: First Advanced Encryption Standard (AES) Candidate Conference [online]. Ventura, CA: Journal of Research of the National Institute of Standards and Technology, 1998-08-20 [cit. 2022-11-21]. Dostupné online. 
  4. a b c d e f g h i NECHVATAL, James; BARKER, Elaine; DODSON, Donna, aj. Status Report on the First Round of the Development of the Advanced Encryption Standard [online]. Gaithersburg: Journal of Research of the National Institute of Standards and Technology, 1999-08-11 [cit. 2002-11-21]. Dostupné online. 
  5. a b c d e Faragallah, Osama S., et al. "Improved RC6 Block Cipher Based on Data Dependent Rotations." CMC-COMPUTERS MATERIALS & CONTINUA 70.1 (2022): 1921-1934.
  6. a b c d e f g h THANGARUDAI, K.; POONGODI, V. A Review on Ron's Cryptographic Algorithms. 3. vyd. [s.l.]: International Journal of Engineering Research & Technology (IJERT), 2014. S. 493–499. 
  7. VANĚK, Tomáš. Moderní blokové šifry II [online]. Praha: České vysoké učení technické v Praze - Fakulta elektrotechnická - Katedra telekomunikační techniky [cit. 2022-11-21]. Dostupné online.