REDOC

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é 30. prosince 2016; kontroly vyžadují 5 úprav .
REDOC II
Tvůrce Michael Wood
Vytvořeno 1990_ _
zveřejněno 1990_ _
Velikost klíče 70 až 17920 bitů, efektivní: 70 bitů
Velikost bloku 70 bitů
Počet kol deset
Typ vlastní
REDOC III
Tvůrce Michael Wood
Velikost klíče Variabilní, až 2560 bajtů (20480 bitů)
Velikost bloku 80 bitů
Počet kol deset
Typ vlastní

REDOC je symetrický blokový kryptoalgoritmus vyvinutý Michaelem Woodem v roce 1990 pro Cryptech a nazvaný REDOC II. Všechny operace - substituce , permutace, XOR jsou prováděny s byty, což umožňuje efektivní programovou implementaci. Algoritmus používá klíč a původní prostý text závislých sad tabulek ( S-boxů ) pomocí různých tabulkových funkcí . Algoritmus se vyznačuje použitím masek , tzn. čísla získaná z tabulky klíčů. Masky se používají k výběru tabulek konkrétní funkce konkrétního kola. To používá jak hodnotu masky, tak hodnotu dat [1] .

Algoritmus

REDOC-II je desetikolový kryptosystém (ale bylo navrženo, že 1- nebo dvoukolová verze je bezpečná) [2] . Každé kolo v původní verzi REDOC II zahrnuje sadu manipulací na 10bajtovém bloku. Pro datové hodnoty se používá sedm bitů z každého bajtu a osmý bit je paritní bit .

Protože se však pro šifrování používá pouze prvních 7 bitů z každého bytu , je abecední prostor pro každý bajt od 0 do 127. A všechny operace se provádějí modulo 128 [3] .

Délka klíče v původní verzi REDOC II je 10 bajtů. Efektivní velikost klíče je 70 bitů. Mělo by být objasněno, že REDOC II může podporovat délku klíče v rozsahu od 70 do 17920 bitů [3] .

Každé kolo se skládá ze šesti fází:

  1. Permutační proměnná fáze ,
  2. První fáze klíče proměnné XOR ,
  3. Druhá fáze klíče proměnné XOR ,
  4. Variabilní fáze enklávy ,
  5. První fáze variabilní substituce ,
  6. Druhá fáze variabilní substituce .

Během každé fáze jsou data zpracovávána pomocí tabulek [4] .

Typy tabulek

1) 16 předdefinovaných vyhledávacích tabulek, které se používají ve fázích variabilního vyhledávání. (Pevný)

2) 128 předdefinovaných permutačních tabulek používaných proměnnými permutačními fázemi. (Pevný)

3) 128 předdefinovaných enklávových tabulek používaných proměnnými fázemi enklávy. (Pevný)

4) Navíc je pro každý klíč vypočítáno 128 desetibajtových tabulek klíčů a devět tabulek masek pomocí algoritmu zpracování klíčů. (Vypočítatelné, vytvořené při inicializaci šifrování) [3] [4]

Popis fází

Fáze proměnné permutace

V každé fázi permutační proměnné je přidáno všech deset bajtů dat (modulo 128) a výsledek je XORed s konkrétním bytem z tabulky masky. Výsledná hodnota je číslo permutační tabulky. Všechny datové bajty jsou nahrazeny vybranou permutací [4] .

Proměnné klíčové fáze XOR

Z dat je vybrán bajt a z tabulky masky odpovídající bajt, mezi kterými se provádí operace XOR. Výsledná hodnota je číslo tabulky klíčů. (Je vhodné připomenout, že pro šifrování se používá 7 bitů z každého bytu. Výsledné číslo tabulky klíčů tedy leží v rozsahu od 0 do 127). Všechny datové bajty, kromě vybraného, ​​jsou XORed s odpovídajícími bajty z tabulky klíčů s přijatým číslem.

Taková operace se provádí pro všechny bajty z dat. [čtyři]

Variabilní substituční fáze

Z dat je vybrán bajt a z tabulky masky odpovídající bajt, mezi kterými se provádí operace XOR. Výsledná hodnota, bráno modulo 16, je číslo substituční tabulky. Všechny bajty, kromě vybraného, ​​jsou nahrazeny hodnotami ze substituční tabulky s přijatým číslem.

Taková operace se provádí pro všechny bajty z dat [4] .

Variabilní fáze enklávy

Předdefinovaná tabulka enklávy má pět řádků a 3 sloupce. Každý záznam obsahuje číslo od 1 do 5. Tabulka enklávy musí splňovat 2 vlastnosti:

To je způsobeno tím, že tabulka je zpracovávána řádek po řádku a následovně: Každé číslo v tabulce enklávy znamená pozici bajtu. Tři bajty zadané pomocí jednoho řádku tabulky se sečtou (modulo 128). Bajt uvedený v prvním sloupci je nahrazen přijatou částkou. [3]

Každá variabilní fáze enklávy používá 4 tabulky enklávy takto:

  1. Rozdělí bloky na dva dílčí bloky po 5 bajtech. Podboxy se nazývají levá a pravá polovina.
  2. XOR mezi dvěma bajty z levé poloviny a dvěma bajty z tabulky masek. Výsledné 2 bajty jsou ukazatele na dvě enklávové tabulky.
  3. Zpracování levé poloviny s první tabulkou enklávy specifikovanou přijatým bajtem.
  4. Zpracování přijaté levé poloviny druhou tabulkou enklávy specifikovanou pomocí přijatého bajtu.
  5. XOR mezi levou a pravou polovinou.
  6. XOR mezi dvěma bajty v přijaté pravé polovině a dvěma bajty z tabulky masek. Výsledné dva bajty jsou ukazatele na dvě enklávové tabulky.
  7. Zpracování přijaté pravé poloviny první tabulkou enklávy označené přijatým byte.
  8. Zpracování přijaté pravé poloviny druhou tabulkou enklávy indikované přijatým bytem.
  9. XOR pravé a levé poloviny.
  10. Zřetězení levé poloviny se získanou hodnotou předchozího kroku [5] .


Algoritmus rozšíření klíče a generování masky

V původní verzi REDOC-II jsou tabulka klíčů a tabulka masky naplněny pomocí klíče K o 70 bitech.

Algoritmus plnění klíčové tabulky.

Algoritmus pro vyplnění tabulky klíčů je následující:

  1. Prvních pět bajtů klíče je sečteno modulo 128. Výsledkem je číslo permutační tabulky.
  2. Zbývajících pět klíčových hodnot je sečteno modulo 16. Výsledkem je číslo substituční tabulky.
  3. Původní klíč je podroben substituční permutaci pomocí substitučních permutačních tabulek, jejichž čísla byla získána dříve. Výsledkem je zpracovaný klíč K'.
  4. Klíčové bajty K' od třetího do sedmého se sečtou modulo 32. Výsledkem je číslo tabulky enklávy.
  5. Klíč K' je zpracováván proměnnou enklávou Phase.Výsledkem je klíč Ki.
  6. Klíč Ki se zapíše do odpovídající buňky tabulky klíčů (v případě původního klíče se jedná o první nebo nulovou buňku).
  7. Algoritmus se opakuje pro klíč Ki, dokud se nevyplní tabulka klíčů.

Celkem je vytvořeno 128 podklíčů.

Algoritmus pro vyplnění tabulky masek.

Algoritmus pro vyplnění tabulky masek vypadá takto:

Celkem se tvoří 4 masky.

Spolehlivost

Hrubá síla je považována za nejúčinnější způsob, jak otevřít klíč, k dosažení cíle bude zapotřebí 2 160 operací . Téměř jedinou účinnou kryptoanalýzou bylo otevření jednoho z kol algoritmu Thomasem Kuzikem, ale rozšíření na další kola nebylo možné. S pomocí 2300 otevřených textů bylo jedno z kol kryptoanalyzováno Shamirem a Bihamem , po 4 kolech byly získány 3 hodnoty masky, ale to jako takové nepřineslo úspěch a v tuto chvíli je algoritmus považován za kryptoodolný [ 1] .

REDOC III

Existuje také mnohem zjednodušená verze algoritmu - REDOC III , kterou vytvořil Michael Wood. Je použit 80bitový blok, délka klíče je variabilní, může dosáhnout 20480 bitů. Permutace a substituce jsou vyloučeny, všechny operace s blokem a klíčem jsou založeny pouze na použití XOR, díky čemuž je výrazně zvýšena rychlost šifrování na úkor odolnosti vůči diferenciální kryptoanalýze . Algoritmus je založen na 256 10bajtových klíčích generovaných na základě tajného klíče a dvou 10bajtových maskových blocích získaných na základě XOR 128 10bajtových klíčů. Úspěšné obnovení obou masek algoritmu REDOC III vyžaduje 223 otevřených textů. Tento algoritmus je jednoduchý a rychlý. Na 33 MHz procesoru 80386 šifruje data rychlostí 2,75 Mbps [1] . Kryptografický systém REDOC II je schopen šifrovat 800 kbps při taktovací frekvenci 20 MHz. [6]

Algoritmus REDOC II a jeho zjednodušená verze jsou patentovány v USA [1] .

Poznámky

  1. 1 2 3 4 Schneier, B., 2002 , oddíl 13.5.
  2. MJB Robshaw, 1995 , s. 36.
  3. 1 2 3 4 Cusick a Wood, 1991 , s. 547.
  4. 1 2 3 4 5 6 Biham a Shamir, 1992 , str. 19.
  5. Biham, Shamir, 1992 , str. dvacet.
  6. Cusick a Wood, 1991 , s. 546.

Literatura