RC6
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]
Výhody
[editovat | editovat zdroj]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]
Nevýhody
[editovat | editovat zdroj]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]
Parametry
[editovat | editovat zdroj]RC6 algoritmus má Feistelovu 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íč |
Schéma
[editovat | editovat zdroj]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ů:
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]
Reference
[editovat | editovat zdroj]- ↑ a b c KLÍMA, Vlastimil. Představujeme kandidáty na AES: Šifra RC6 [online]. 1999-09-10 [cit. 2022-11-15]. Dostupné online.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.