LOKI97

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é 8. září 2017; kontroly vyžadují 4 úpravy .
LOKI97
Tvůrce Brown
Vytvořeno 1997 _
zveřejněno 1998 _
Velikost klíče 128/192/256 bitů
Velikost bloku 128 bit
Počet kol 16
Typ Síť Feistel

LOKI97  je 128bitová, 16kolová, symetrická bloková šifra se 128-256bitovým uživatelským klíčem používaným k šifrování i dešifrování zpráv. Vyvinul Lawrie Brown ve spolupráci s J.Pieprzykem a J.Seberrym. Má strukturu vyvážené smyčky Feistelovy sítě využívající 16 cyklů a komplexní funkci f, která kombinuje dvě vrstvy SP.

V současné době není široce používán kvůli své relativně nízké rychlosti šifrování, vyšším nárokům na zdroje než ostatní soutěžící AES a některým potenciálním zranitelnostem.

Při vývoji LOKI97 byly zohledněny vlastnosti aktuálně existujících symetrických algoritmů, zohledněny jejich slabiny a výhody. Zejména ve svém článku „Předběžné náčrty pro finalizaci LOKI“, 15. prosince 1997, autor algoritmu L. Brown zkoumá Blowfish , CAST , IDEA , TEA , ICE , SAFER a řadu dalších algoritmů. Tento článek zkoumal zranitelnosti původního algoritmu - LOKI91, předchůdce LOKI97, který má chybu v mechanismu generování klíčů, který teoreticky umožňoval použít k útoku mechanismus hrubé síly.

Šifra LOKI97 není patentovaná, je volně použitelná, autor ji umístil jako náhradu za DES a další blokové algoritmy. Předchůdci jsou algoritmy LOKI89 a LOKI91 . Implementován v knihovně mcrypt , řadě bezplatných šifrovacích programů, existuje plugin pro Total Commander s podporou LOKI97.

Zabezpečení

LOKI97 byl prvním zveřejněným kandidátem v soutěži Advanced Encryption Standard, byl analyzován a napaden v poměrně krátké době. V "Weaknesses in LOKI97" [1] (Rijmen & Knudsen, 1999) bylo odhaleno, že algoritmus má řadu nedostatků, které jej činí zranitelným vůči diferenciální a lineární kryptoanalýze .

Podle výzkumu provedeného v rámci soutěže AES povede změna jednoho bitu vstupních dat v jednom z kol s relativně vysokou pravděpodobností (řádově ) ke změně jednoho bitu ve výstupních datech, čímž se rozdíl útok úspěšný maximálně na pokusy. Zároveň nevyváženost funkce F činí lineární kryptoanalýzu úspěšnou se známými šifrovanými zprávami. Zároveň autor v popisu algoritmu odhadl bezpečnost LOKI97 o několik řádů vyšší (předpokládalo se, že pro prolomení je potřeba mít alespoň šifrové texty). Tato analýza nedostatků algoritmu neumožnila šifru LOKI97 projít do dalšího kola soutěže AES.

Moderní 128bitová bloková šifra by měla odolat diferenciální a lineární kryptoanalýze lépe než LOKI97.

Původní text  (anglicky)[ zobrazitskrýt] Současná bloková šifra se 128bitovým blokem by měla odolávat diferenciálnímu a lineárnímu útokovému mucku lépe než LOKI97.

Specifikace algoritmu LOKI97 [2]

LOKI97 převádí 128bitový blok prostého textu na 128bitový šifrovaný text. Šifrování probíhá následovně: 128 bitů původního bloku [L|R] je rozděleno na 2 64bitová slova

Poté tato slova projdou 16 koly vyvážené Feistelovy sítě podle následujícího algoritmu:

Každé kolo používá jak operaci XOR, tak sčítání (modulo 2:64) 64bitových slov, což zvyšuje odolnost algoritmu proti praskání. Funkce F(F,B) poskytuje maximální smíchání všech vstupních bitů funkce, její popis bude uveden níže. Proces dešifrování je podobný algoritmu pro získání šifrovaného textu: 16 kroků (od 16 do 1)

Inicializace klíče LOKI97

Samotný algoritmus používá 256bitový klíč, nicméně klíč vydaný uživatelům může být 256, 192 a také 128bitový. Pokud je tedy zadán 256bitový klíč , pak

pokud je zadán 192bitový klíč , pak

a pokud je zadán 128bitový klíč , pak

Pro zkomplikování krátkých (128bitových) a jednoduchých (například nulových) klíčů generování použilo funkci F, která je použita v algoritmu níže.

Pro získání meziklíčů se stejnou účinností proti útokům se používá funkce g, jejíž jednou z fází je podle autora „ zlatého řezu “ přidání konstanty. Klíč přijatý na vstupu prochází 48 iteracemi následujících akcí (i=1,48), čímž se vytvoří 48 meziklíčů

,kde

Při dešifrování zprávy se meziklíče používají v opačném pořadí.

Funkce f(A,B)

Funkci lze popsat následujícím výrazem

, kde:

KP(A, B)

Funkce bit shuffle. Rozdělí vstupní 64bitové slovo A na 2 32bitové a spodních 32 bitů slova B a na výstupu vytvoří 64bitový výsledek podle vzorce:

Výměnou bitů s meziklíčem a částí vstupních dat funkce KP zamíchá bity, aby zkomplikovala proces porovnávání vstupních a výstupních dat přicházejících z a do S-boxů.

E(A)

Funkce rozšíření. Převede vstupní 64bitové slovo na 96bitové slovo podle následujícího zákona:

.

Funkce je konstruována tak, že každý bit na jejím vstupu spadá do 2 S-boxů.

Sa(A), Sb(A)

2 skupiny S-boxů . Postaveno tak, aby mělo maximální nelinearitu (proto volba kubické funkce a liché mocniny Galoisova pole), mělo dobrou odolnost vůči diferenciální kryptoanalýze a také vytvořilo lavinový efekt při použití funkce. Používají se bloky různých délek S1 - 13 bitů, S2 - 11 bitů. a . Vstupem do Sa(C) je 96bitové slovo na výstupu funkce E(B). Vysoké bity slova pro Sb(C) jsou vysoké 32 bity slova B použité jako jeden ze vstupů pro celou funkci F(A,B) a nízké bity jsou výsledkem činnosti funkce. P(D). Vstupní data pro S-boxy jsou invertována, aby se snížila pravděpodobnost transformací tvaru 0-> 0, 1 -> 1. S-boxy se počítají pomocí následujících vzorců

Operace vybere nejméně významných 8 bitů z A.

P(A)

Přeuspořádání výstupu funkce Sa(A). 64 bitů je smícháno podle následujícího schématu:

56 48 40 32 24 16 08 00 57 49 41 33 25 17 09 01
58 padesáti 42 34 26 osmnáct deset 02 59 51 43 35 27 19 jedenáct 03
60 52 44 36 28 dvacet 12 04 61 53 45 37 29 21 13 05
62 54 46 38 třicet 22 čtrnáct 06 63 55 47 39 31 23 patnáct 07

Funkce P je hlavním způsobem míchání bitů. Při jeho konstrukci bylo cílem minimalizovat pravděpodobnost vzorů v distribuci vstupních a výstupních bitů. Stejně jako v předchozích verzích algoritmu byl podle autora jako základ vzat latinský čtverec .

Viz také

Poznámky

  1. LR Knudsen a V. Rijmen , „Weaknesses in LOKI97“, Sborník příspěvků z 2. konference kandidátů AES, Řím, 22.–23. března 1999, pp. 168-174
  2. Laurence Brown, Josef Pieprzyk, Představení nové blokové šifry LOKI97

Odkazy