LOKI97

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 8. syyskuuta 2017 tarkistetusta versiosta . tarkastukset vaativat 4 muokkausta .
LOKI97
Luoja Brown
Luotu 1997_ _
julkaistu 1998_ _
Avaimen koko 128/192/256 bittiä
Lohkon koko 128 bittinen
Kierrosten lukumäärä 16
Tyyppi Feistelin verkko

LOKI97  on 128-bittinen, 16-kierros, symmetrinen lohkosalaus , jossa on 128-256-bittinen mukautettu avain, jota käytetään sekä viestien salaamiseen että salauksen purkamiseen. Kehittäjä Lawrie Brown yhteistyössä J.Pieprzykin ja J.Seberryn kanssa. Siinä on Feistelin verkon tasapainotettu silmukkarakenne, joka käyttää 16 sykliä ja monimutkainen f-toiminto, joka yhdistää kaksi SP-kerrosta.

Sitä ei tällä hetkellä käytetä laajalti suhteellisen hitaan salausnopeuden, muita AES - kilpailijoita korkeampien resurssivaatimusten ja joidenkin mahdollisten haavoittuvuuksien vuoksi.

LOKI97:ää kehitettäessä otettiin huomioon olemassa olevien symmetristen algoritmien ominaisuudet, niiden haavoittuvuudet ja edut. Erityisesti artikkelissaan "Alustavat luonnokset LOKI:n viimeistelemiseksi", 15. joulukuuta 1997, algoritmin kirjoittaja L. Brown tutkii Blowfish , CAST , IDEA , TEA , ICE , SAFER ja useita muita algoritmeja. Tässä artikkelissa tarkasteltiin alkuperäisen algoritmin haavoittuvuuksia - LOKI91:n, LOKI97:n edeltäjän, haavoittuvuuksia. Avainten luontimekanismissa on puute, mikä teoriassa mahdollisti raakavoimamekanismin käytön hyökkäyksessä.

LOKI97-salausta ei ole patentoitu, se on vapaasti käytettävissä, tekijä on asettanut sen korvaamaan DES :n ja muita lohkoalgoritmeja. Edeltäjät ovat LOKI89- ja LOKI91- algoritmit . Toteutettu mcrypt- kirjastoon , useisiin ilmaisiin salausohjelmiin, Total Commanderille on lisäosa LOKI97-tuella.

Turvallisuus

LOKI97 oli ensimmäinen julkaistu ehdokas Advanced Encryption Standard -kilpailussa, se analysoitiin ja hyökättiin melko lyhyessä ajassa. Teoksessa "Weaknesses in LOKI97" [1] (Rijmen & Knudsen, 1999) paljastettiin, että algoritmissa on useita puutteita, jotka tekevät siitä haavoittuvan differentiaali- ja lineaariselle kryptausanalyysille .

AES-kilpailussa tehdyn tutkimuksen mukaan yhden syöttötiedon bitin muuttaminen jollain kierroksella suhteellisen suurella todennäköisyydellä (luokkaa ) johtaa yhden bitin muutokseen lähtötiedoissa, mikä tekee eron. hyökkäys onnistuu enintään yrityksissä. Samalla F-funktion epätasapaino tekee lineaarisen krypta-analyysin onnistuneeksi tunnetuilla salatuilla viesteillä. Samanaikaisesti algoritmin kuvauksessa kirjoittaja arvioi LOKI97:n turvallisuuden useita suuruusluokkia korkeammaksi (oletettiin, että murtamiseen tarvitaan ainakin salatekstejä). Tämä algoritmin puutteiden analyysi ei sallinut LOKI97-salauksen siirtymistä AES-kilpailun seuraavalle kierrokselle.

Nykyaikaisen 128-bittisen lohkosalauksen pitäisi kestää differentiaali- ja lineaarinen kryptausanalyysi paremmin kuin LOKI97.

Alkuperäinen teksti  (englanniksi)[ näytäpiilottaa] Nykyaikaisen lohkosalauksen, jossa on 128-bittinen lohko, pitäisi vastustaa differentiaalista ja lineaarista hyökkäysmukkia paremmin kuin LOKI97.

LOKI97-algoritmin määrittely [2]

LOKI97 muuntaa 128-bittisen selkeän tekstin lohkon 128-bittiseksi salatekstiksi. Salaus tapahtuu seuraavasti: 128 bittiä alkuperäisestä lohkosta [L|R] on jaettu 2 64-bittiseen sanaan

Sen jälkeen nämä sanat käyvät läpi tasapainoisen Feistel-verkon 16 kierrosta seuraavan algoritmin mukaisesti:

Jokainen kierros käyttää sekä XOR-operaatiota että 64-bittisten sanojen lisäystä (modulo 2:64), mikä lisää algoritmin vastustuskykyä murtumista vastaan. Funktio F(F,B) tarjoaa funktion kaikkien tulobittien maksimisekoituksen, sen kuvaus annetaan alla. Salauksen purkuprosessi on samanlainen kuin salatekstin hankkimisalgoritmi: 16 vaihetta (16:sta 1:een)

LOKI97-avaimen alustus

Algoritmi itsessään käyttää 256-bittistä avainta, mutta käyttäjille annettava avain voi olla 256-, 192- ja myös 128-bittinen. Vastaavasti, jos 256-bittinen avain annetaan , niin

jos 192-bittinen avain annetaan , niin

ja jos 128-bittinen avain annetaan , niin

Lyhyiden (128-bittinen) ja yksinkertaisten (esimerkiksi nolla) näppäinten monimutkaisemiseksi sukupolvi käytti funktiota F, jota käytetään alla olevassa algoritmissa.

Väliavainten saamiseksi samalla tehokkuudella hyökkäyksiä vastaan ​​käytetään funktiota g, jonka yksi vaihe on vakion lisääminen " kultaisen leikkeen " kirjoittajan mukaan. Syöttössä vastaanotettu avain käy läpi 48 iteraatiota seuraavista toiminnoista (i=1,48) luoden 48 väliavainta

,missä

Viestin salausta purettaessa käytetään väliavaimia käänteisessä järjestyksessä.

Funktio f(A,B)

Funktiota voidaan kuvata seuraavalla lausekkeella

, jossa:

KP(A, B)

Bit shuffle toiminto. Jakaa syötetyn 64-bittisen sanan A kahteen 32-bittiseen ja sanan B alempaan 32 bittiin ja tuottaa 64-bittisen tuloksen ulostulossa seuraavan kaavan mukaan:

Vaihtamalla bittejä väliavaimella ja osan syöttötiedoista KP-toiminto sekoittaa bitit monimutkaistaakseen S-laatikoista tulevien ja niihin tulevien tulo- ja lähtötietojen sovitusprosessia.

E(A)

Laajennustoiminto. Muuntaa syötetyn 64-bittisen sanan 96-bittisiksi seuraavan lain mukaisesti:

.

Funktio on rakennettu siten, että jokainen bitti sisääntulossaan putoaa 2 S-laatikkoon.

Sa(A), Sb(A)

2 ryhmää S-laatikoita . Rakennettu siten, että sillä on maksimaalinen epälineaarisuus (siis kuutiofunktion valinta ja Galois-kentän pariton teho), niillä on hyvä vastustuskyky differentiaalista kryptausanalyysiä vastaan ​​ja ne luovat myös lumivyöryefektin funktiota käytettäessä. Käytetään eripituisia lohkoja S1 - 13 bittiä, S2 - 11 bittiä. , ja . Sa(C):n syöte on 96-bittinen sana funktion E(B) lähdössä. Sb(C):n sanan korkeat bitit ovat sanan B korkeita 32 bittiä, joita käytetään yhtenä syötteenä koko funktiolle F(A,B), ja matalat bitit ovat seurausta funktion toiminnasta. P(D). S-laatikoiden syöttötiedot käännetään 0-> 0, 1 -> 1 muunnosten todennäköisyyden pienentämiseksi. S-laatikot lasketaan seuraavilla kaavoilla

Operaatio valitsee vähiten merkitsevät 8 bittiä A:sta.

P(A)

Sa(A)-funktion lähdön uudelleenjärjestely . 64 bittiä sekoitetaan seuraavan kaavion mukaisesti:

56 48 40 32 24 16 08 00 57 49 41 33 25 17 09 01
58 viisikymmentä 42 34 26 kahdeksantoista kymmenen 02 59 51 43 35 27 19 yksitoista 03
60 52 44 36 28 kaksikymmentä 12 04 61 53 45 37 29 21 13 05
62 54 46 38 kolmekymmentä 22 neljätoista 06 63 55 47 39 31 23 viisitoista 07

P-funktio on tärkein tapa sekoittaa bittejä. Sitä rakennettaessa tavoitteena oli minimoida kuvioiden todennäköisyys tulo- ja lähtöbittien jakautumisessa. Kuten aiemmissa algoritmin versioissa, tekijän mukaan latinalainen neliö otettiin perustaksi .

Katso myös

Muistiinpanot

  1. LR Knudsen ja V. Rijmen , "Heikkoudet LOKI97:ssä", Proceedings of the 2nd AES Candidate Conference, Rooma, 22.-23.3.1999, s. 168-174
  2. Laurence Brown, Josef Pieprzyk, esittelyssä uusi LOKI97 Block Cipher

Linkit