ŽRALOK

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é 5. listopadu 2019; kontroly vyžadují 3 úpravy .
ŽRALOK
Tvůrce Vincent Rayman , Joan Dymen , Bart Presnel , Antun Bossalers a Eric de Veen
Vytvořeno 1996 _
zveřejněno 1996 _
Velikost klíče 128 bit
Velikost bloku 64 bit
Počet kol 6 [1] (8 [2] )
Typ Substitučně-permutační síť

SHARK ( anglicky  Secure Hash Algorithm Regenerative Keys  – bezpečný hashovací algoritmus s obnovenými klíči) je symetrický blokový šifrovací algoritmus vyvinutý skupinou kryptografů, včetně Vincenta Raymana , autora šifry AES . Teoreticky umožňuje použití bloků a klíčů různých délek, nicméně autorská implementace používá 128bitový klíč a 64bitové bloky. Struktura je podobná struktuře permutační sítě .

Historie SHARK

Šifra SHARK  je první ze série algoritmů vyvinutých jako součást studie k vytvoření bezpečných a účinných blokových šifer založených na strategii návrhu Wide Trail [3] . Výsledkem výzkumu bylo později vytvoření standardní šifry AES [2] .

Autoři umístili SHARK jako algoritmus navržený tak, aby nahradil tehdy rozšířenou šifru DES . Novému algoritmu byly předloženy následující požadavky:

Přestože šifry založené na SP-net ( MMB, SAFER , 3-Way ) již existovaly dříve , SHARK byl první, kdo pro lineární transformaci použil kódy MDS [4] , konkrétně kódy Reed-Solomon [1] .

Existují dvě verze šifry SHARK : SHARK-A ( angl.  affine transform ) a SHARK-E ( ang.  exor ), pojmenované podle různých způsobů zavádění kulatých klíčů [5] .

Návrh algoritmu

Algoritmus SHARK se skládá ze tří částí:

Každá součást algoritmu je uvažována samostatně a každá musí mít určité vlastnosti. Difúzní vrstva by tedy měla mít jednotné a dobré difúzní vlastnosti. Nelineární vrstva musí mít také jednotné nelineární vlastnosti a komponenty algoritmu jsou nezávislé v následujícím smyslu: pokud se změní implementace např. nelineární vrstvy (některé S-boxy jsou nahrazeny jinými S-boxy se stejnými vlastnostmi), bezpečnost algoritmu zůstává nezměněna. Taková strategie je variantou strategie Wide trail [3] popsané v doktorské práci Joan Dymen [1] .

SHARK se skládá z nábojů, další vrstvy pro přidání klíče a další vrstvy obrácené difúze. Každé kolo zase sestává z přidání klíče, nelineární náhrady a difúzní vrstvy. Je potřeba další vrstva přidání klíče, aby se zabránilo útočníkovi oddělit poslední kolo. Pro zjednodušení dešifrovací operace je zapotřebí další vrstva obrácené difúze [1] .

Nelineární substituční vrstva se skládá z S-boxů, z nichž každý je -bitová permutace. Algoritmus je tedy schopen zašifrovat bloky délky [1] .

Difúzní vrstva

Difúzní vrstva přijímá -bitová čísla, která lze považovat za prvky nad polem . Dotyčná vrstva je nezbytná pro vytvoření lavinového efektu . Tento efekt se projevuje v lineárních a rozdílových kontextech:

Nechť  je vratná lineární transformace ,  je prvek pole ,  je Hammingova vzdálenost , pak se kvantitativně lavinový efekt odhaduje podle čísla skoku ( angl. číslo větve ) [1] .  

Pokud , tak . se nazývá optimální číslo skoku ( ang. optimální číslo větve ). V hlavním článku autoři ukázali, že pomocí MDS kódů je možné sestrojit reverzibilní lineární transformaci s optimálním počtem skoků. Implementace využívá Reed-Solomonovy kódy [1] .  

Nelineární vrstva (substituční bloky)

Nelineární S-boxy poskytují ochranu proti lineární a diferenciální kryptoanalýze. Jednou z důležitých číselných charakteristik bezpečnosti šifry je matice exkluzivních zobrazení OR ( anglicky exor  table ) , jejíž prvky jsou určeny vzorcem , kde  - označuje počet prvků splňujících podmínku,  - prvky oboru . Velké hodnoty maticových prvků mohou vést k náchylnosti šifry k diferenciálnímu útoku [1] .

Autoři zvolili S-boxy na základě mapování nad polem . V tomto případě, když je sudý, má matice následující vlastnosti:

Pro odstranění pevných bodů a je použita invertibilní afinní transformace výstupních bitů [1] .

Klíčový plán

Plánování klíčů vám umožňuje rozšířit původní klíč získáním kulatých klíčů .  Dobré plánování vám umožní získat kulaté klíče s maximální entropií. Autoři navrhují dva způsoby, jak zadat kulatý klíč:

  1. Exor je jednoduchý XOR se vstupy v každém kole. Odpovídající algoritmus je SHARK-E.
  2. Afinní transformace je afinní transformace vstupních dat, která závisí na klíči. Odpovídající algoritmus je SHARK-A [1] .
Exor

Vypočítá se jednoduchý XOR vstupních bitů kola a podklíče. Výhody metody jsou rychlost a stabilita: žádný klíč není silnější nebo slabší než jiný. Nevýhodou metody je, že entropie kulatého klíče nepřesahuje [1] .

Afinní transformace

Nechť  je nesingulární matice nad polem , v závislosti na klíči (přesněji na jeho rozšíření). Uveďme klíčovou operaci se vstupními daty takto: . Jedná se o lineární operaci, takže nezavádí slabé klávesy. Navíc se entropie kulatých kláves zvýší na . Tato operace je však z hlediska výkonu poměrně nákladná, takže autoři navrhují omezit podprostor diagonálních matic . V tomto případě se entropie kulatých klíčů blíží [1] .

Generování podklíče

V algoritmu SHARK jsou kulaté klíče generovány následovně:

  1. round - bit klíče jsou inicializovány prvními položkami v substituční tabulce . 
  2. Matice jsou inicializovány pomocí matic identity .
  3. Uživatelem vybraný klíč je zřetězen sám se sebou, dokud není bit dlouhý.
  4. Algoritmus SHARK je aplikován na sekvenci získanou v kroku 3 v režimu CFB .
  5. První bity výstupu se používají k vytvoření kulatých klíčů .
  6. Poslední bity výstupních dat jsou interpretovány jako prvky pole a tvoří diagonální prvky matic . Je-li některý prvek roven nule, je vyřazen a všechny následující prvky jsou posunuty o jedničku dolů. Další zašifrované nulové řetězce jsou přidány na konec, aby se vyplnily zbývající diagonální prvky [1] .

Mechanismus generování podklíče v zásadě umožňuje použití klíče bitové délky, autoři však doporučují použít klíč nepřesahující 128 bitů [1] .

Poznámky k implementaci

Náhradní tabulky

Pro dosažení vysokého výkonu jsou difúzní vrstva a substituční bloky kombinovány v jedné operaci [1] . Nechť označí vstupní data kola;  - výstup;  — permutační matice (S-boxy);  je matrice definující difúzní vrstvu; a  - označují sčítání a násobení přes pole . Pak

Pomocí rozšířených substitučních tabulek dimenze , určených vzorcem , můžeme zapsat transformaci v jednoduchém tvaru:

Jedno kolo tedy vyžaduje vyhledávání v tabulce a binární operace. Avšak vzhledem k tomu, že bity tabulky zabírají bajt délky bloku, algoritmus pro bloky o délce 128 bitů nebo více se ukázal být neefektivní pro většinu procesorů té doby (1996), proto existující omezení na délka bloku 64 bitů ( ) [2] .

Matice kódů MDS

Pro , lze sestavit matici, která definuje difúzní vrstvu na základě Reed-Solomonova kódu [2] .

Dešifrování

Pro popis dešifrování zvažte 2kolovou verzi SHARK [1] . Dovolit být  lineární operace,  být nelineární náhrada  a být operace sčítání klíče pro kulatou klávesu . Šifrovací funkce je v tomto případě rovna , kde  je operace kombinovaná z difúzní vrstvy a S-boxů. Protože operace přidání klíče a operace difúze jsou lineární operace, jejich pořadí může být obráceno [1] :

,

kde je zápis

Výsledný vzorec aplikujeme na [1] :

Ukažme nyní, že operace dešifrování má stejnou strukturu. Chcete-li to provést, nejprve změňte operaci šifrování [1] :

Prohozením operace přidání klíče a operace difúze získáme stejnou strukturu jako v operaci šifrování [1] :

Pozoruhodné útoky

V současné době nebyly nalezeny žádné zranitelnosti klasické implementace algoritmu. Existují útoky pouze na varianty algoritmu:

  • V roce 1997 Thomas Jacobsen a Lars Knudsen ukázali, že 64bitová implementace SHARK-E ( SHARK se strategií vkládání klíče exor round) je teoreticky zranitelná vůči interpolačnímu útoku , když je omezena na 5 kol, stejně jako 128 -bitová implementace − omezena na 8 kol. Ale také ukázaly, že pro dostatečné zabezpečení je potřeba alespoň 6 nábojů [6] .
  • V roce 2013 Yang Shi a Hongfei Fan ukázali  , že implementace White-Box [ 7] SHARK není dostatečně bezpečná a lze ji prolomit s pracovním faktorem přibližně 1,5*(2^47) [8] . 

Poznámky

  1. ↑ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Vincent Raymen , Joan Dymen , Bart Presnel , Antun Bossalers, Eric de Vin. The Cipher SHARK  : PDF .
  2. ↑ 1 2 3 4 Vincent Raymen , Joan Dymen . Návrh Rijndaela  : PDF . - S. 161-165 .
  3. ↑ 1 2 Joan Dymen . Strategie návrhu šifrovacích a hashovacích funkcí založené na lineární a diferenciální kryptoanalýze  : PDF . Archivováno z originálu 16. května 2018.
  4. ↑ 1 2 MDS kódy - kódy s největší kódovou vzdáleností
  5. Naskenujte záznam pro Shark . Získáno 16. prosince 2017. Archivováno z originálu 28. ledna 2012.
  6. Thomas Jacobsen , Lars Knudsen . Interpolační útok na blokové šifry . Springer International Publishing AG (17. května 2006). Získáno 9. února 2018. Archivováno z originálu 14. prosince 2017.
  7. White-box attack kontext – útočník má plný přístup k softwarové implementaci šifry.
  8. Yang Shi, fanoušek Hongfei. O bezpečnosti implementace White-Box programu SHARK . Získáno 14. prosince 2017. Archivováno z originálu 14. prosince 2017.

Literatura

Odkazy