LOKI97

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 8. september 2017; checks kræver 4 redigeringer .
LOKI97
Skaber Brown
Oprettet 1997 _
offentliggjort 1998 _
Nøglestørrelse 128/192/256 bit
Blokstørrelse 128 bit
Antal runder 16
Type Feistel netværk

LOKI97  er en 128-bit, 16-rund, symmetrisk blokcifre med en 128-256-bit brugerdefineret nøgle, der bruges til både at kryptere og dekryptere meddelelser. Udviklet af Lawrie Brown i samarbejde med J.Pieprzyk og J.Seberry. Den har en Feistel-netværksbalanceret sløjfestruktur, der bruger 16 cyklusser og en kompleks f-funktion, der kombinerer to SP-lag.

Det er i øjeblikket ikke meget brugt på grund af dets relativt langsomme krypteringshastighed, højere ressourcekrav end andre AES- deltagere og nogle potentielle sårbarheder.

Ved udviklingen af ​​LOKI97 blev der taget højde for funktionerne i de aktuelt eksisterende symmetriske algoritmer, deres sårbarheder og fordele blev taget i betragtning. Især i sin artikel "Foreløbige skitser til at afslutte LOKI", 15. december 1997, udforsker forfatteren af ​​algoritmen L. Brown Blowfish , CAST , IDEA , TEA , ICE , SAFER og en række andre algoritmer. Denne artikel undersøgte sårbarhederne i den originale algoritme - LOKI91, forgængeren til LOKI97, som har en fejl i nøglegenereringsmekanismen, som i teorien gjorde det muligt at bruge brute force-mekanismen til angrebet.

LOKI97-chifferet er ikke patenteret, gratis at bruge, placeret af forfatteren som en erstatning for DES og andre blokalgoritmer. Forgængerne er LOKI89 og LOKI91 algoritmerne . Implementeret i mcrypt- biblioteket , en række gratis krypteringsprogrammer, er der et plugin til Total Commander med LOKI97-understøttelse.

Sikkerhed

LOKI97 var den første offentliggjorte kandidat i Advanced Encryption Standard-konkurrencen, blev analyseret og angrebet på ret kort tid. I "Svagheder i LOKI97" [1] (Rijmen & Knudsen, 1999) blev det afsløret, at algoritmen har en række mangler, der gør den sårbar over for differentiel og lineær kryptoanalyse .

Ifølge forskning udført inden for AES-konkurrencen vil ændring af én bit af inputdata i en af ​​runderne med en relativt høj sandsynlighed (i størrelsesordenen ) føre til en ændring i én bit i outputdataene, hvilket gør forskellen angreb lykkedes maksimalt for forsøg. Samtidig gør ubalancen i F-funktionen lineær krypteringsanalyse vellykket med kendte krypterede meddelelser. Samtidig, i beskrivelsen af ​​algoritmen, estimerede forfatteren sikkerheden af ​​LOKI97 til at være flere størrelsesordener højere (det blev antaget, at for at knække er det nødvendigt at have mindst chiffertekster). Denne analyse af algoritmens mangler tillod ikke LOKI97-chifferet at gå videre til næste runde af AES-konkurrencen.

En moderne 128-bit blokchiffer bør modstå differentiel og lineær krypteringsanalyse bedre end LOKI97.

Originaltekst  (engelsk)[ Visskjule] En moderne blokchiffer med en 128-bit blok burde modstå differentielt og lineært angrebsmuck bedre end LOKI97.

Specifikation af LOKI97-algoritmen [2]

LOKI97 konverterer en 128-bit almindelig tekstblok til 128-bit chiffertekst. Kryptering sker som følger: 128 bit af den oprindelige blok [L|R] er opdelt i 2 64-bit ord

Derefter gennemgår disse ord 16 runder af det afbalancerede Feistel-netværk i henhold til følgende algoritme:

Hver runde bruger både XOR-operationen og addition (modulo 2:64) af 64-bit ord, hvilket øger algoritmens modstand mod cracking. Funktionen F(F,B) giver den maksimale blanding af alle input bits af funktionen, dens beskrivelse vil blive givet nedenfor. Dekrypteringsprocessen ligner algoritmen til at opnå en chiffertekst: 16 trin (fra 16 til 1)

LOKI97 nøgleinitialisering

Algoritmen selv bruger en 256-bit nøgle, men nøglen, der udstedes til brugere, kan være 256, 192 og også 128-bit. Følgelig, hvis en 256-bit nøgle er givet , så

hvis en 192-bit nøgle er givet , så

og hvis en 128-bit nøgle er givet , så

For at komplicere korte (128-bit) og simple (for eksempel nul) nøgler brugte generationen funktionen F, som bruges i algoritmen nedenfor.

For at opnå mellemnøgler med samme effektivitet mod angreb bruges funktionen g, hvor et af faserne er tilføjelsen af ​​en konstant, ifølge forfatteren af ​​det " gyldne snit ". Nøglen modtaget ved indgangen gennemgår 48 iterationer af følgende handlinger (i=1,48), hvilket skaber 48 mellemnøgler

,hvor

Ved dekryptering af en besked bruges mellemnøglerne i omvendt rækkefølge.

Funktion f(A,B)

Funktionen kan beskrives med følgende udtryk

, hvori:

KP(A, B)

Bit shuffle funktion. Opdeler input 64-bit ord A i 2 32-bit og de nederste 32 bit af ord B og producerer et 64-bit resultat ved output i henhold til formlen:

Ved at udveksle bits med en mellemnøgle og en del af inputdataene blander KP-funktionen bitsene for at komplicere processen med at matche input- og outputdata, der kommer fra og til S-bokse.

E(A)

Udvidelsesfunktion. Konverterer et input 64-bit ord til et 96-bit ord i henhold til følgende lov:

.

Funktionen er opbygget på en sådan måde, at hver bit ved sin input falder i 2 S-bokse.

Sa(A), Sb(A)

2 grupper af S-bokse . Bygget til at have maksimal ikke-linearitet (deraf valget af den kubiske funktion og Galois-feltets ulige styrke), have god modstandsdygtighed over for differentiel kryptoanalyse og også skabe en lavineeffekt, når du bruger funktionen. Blokke af forskellig længde bruges S1 - 13 bit, S2 - 11 bit. , og . Indgangen til Sa(C) er et 96-bit ord ved udgangen af ​​funktionen E(B). De høje bits af ordet for Sb(C) er de høje 32 bits af ordet B, der bruges som en af ​​inputtene for hele funktionen F(A,B), og de lave bits er resultatet af funktionens handling P(D). Indgangsdataene for S-bokse inverteres for at reducere sandsynligheden for transformationer af formen 0-> 0, 1 -> 1. S-bokse beregnes ved hjælp af følgende formler

Operationen vælger de mindst signifikante 8 bits fra A.

P(A)

Omarrangering af output fra Sa(A)-funktionen. 64 bit blandes i henhold til følgende skema:

56 48 40 32 24 16 08 00 57 49 41 33 25 17 09 01
58 halvtreds 42 34 26 atten ti 02 59 51 43 35 27 19 elleve 03
60 52 44 36 28 tyve 12 04 61 53 45 37 29 21 13 05
62 54 46 38 tredive 22 fjorten 06 63 55 47 39 31 23 femten 07

P-funktionen er den vigtigste måde at blande bits på. Ved konstruktionen var målet at minimere sandsynligheden for mønstre i fordelingen af ​​input- og outputbits. Som i tidligere versioner af algoritmen blev den latinske firkant ifølge forfatteren taget som grundlag .

Se også

Noter

  1. LR Knudsen og V. Rijmen , "Svagheder i LOKI97", Proceedings of the 2nd AES Candidate Conference, Rom, 22.-23. marts, 1999, pp. 168-174
  2. Laurence Brown, Josef Pieprzyk, Introducing the new LOKI97 Block Cipher

Links