RC6

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

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. +more Š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.

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

...

Zjištění AES

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.

Výhody

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.

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

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

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.

Nevýhody

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

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

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

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

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

Rozdíly oproti RC5

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

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

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

Parametry

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:

wreprezentuje 32 bitovou délku slova
rPočet rund pro šifrování. +more
b16, 24 a 32 bajtový klíč
RC6 šifra.

Schéma

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. +more 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í.

Základní operace

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

* 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

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

# Určení klíče # Šifrování # Dešifrování

Určení klíče

Stanovení klíče je podobné jako u RC5. Uživatel poskytne klíč o b bajtů. +more 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í.

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

* Konvertování * Inicializace * Vmíchání

Konvertování

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

Inicializace

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.

Míchání

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.

Šifrování

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.

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.

Pseudokód pro šifrování je následující: 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))

Dešifrování

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.

Pseudokód pro dešifrování je následující: 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)) >> t)⊕u; A = ((A - S[2i]) >>> u)⊕t; } D = D - S[1]; B = B - S[0];

Bezpečnost

RC6 je přiměřeně odolná známým útokům. Není znám žádný útok na 20 rundovou variantu. +more 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.

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top