SEAL (salausalgoritmi)

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 26. maaliskuuta 2014 tarkistetusta versiosta . tarkastukset vaativat 9 muokkausta .

SEAL ( S oftware -  optimized Encryption Algorithm , software -optimized Encryption Algorithm ) on symmetrinen tietovirran salausalgoritmi, joka on optimoitu ohjelmistojen toteuttamiseen.

Phil Rogaway ja Don Coppersmith kehittivät IBM : llä vuonna 1993. _ _ _ Algoritmi on optimoitu ja sitä suositellaan 32-bittisille prosessoreille . Se vaatii useita kilotavuja välimuistia ja kahdeksan 32-bittistä rekisteriä toimiakseen . Salausnopeus on  noin 4 konesykliä tekstitavua kohden . Koodaukseen ja dekoodaukseen käytetään 160-bittistä avainta . Välttääkseen ei-toivotun nopeuden menetyksen hitaiden näppäinkäsittelytoimintojen vuoksi , SEAL suorittaa sille useita muunnoksia, jolloin tuloksena on kolme tietyn kokoista taulukkoa. Itse avaimen sijasta näitä taulukoita käytetään suoraan tekstin salaamiseen ja salauksen purkamiseen.  

Algoritmia pidetään erittäin luotettavana, erittäin nopeana [1] ja se on suojattu US - patentilla nro 5454039 [2] joulukuusta 1993 lähtien .

Historia

Vuonna 1991 Ralph C. Merkle  kuvaili ohjelmistopohjaisten salausten kustannustehokkuutta . Hänen mielestään tehokkaimmat näistä olivat Khufu , FEAL ja RC4 . Asiakkaiden jatkuvasti kasvavat luotettavan kryptografian tarpeet vaativat kuitenkin uusien etsimistä ja vanhojen ratkaisujen hiomista.

Kesällä 1992 aloitettiin uuden ohjelmistooptimoidun SEAL 1.0 -algoritmin ensimmäisen version kehittäminen. Kehittäjät ottivat pääideat ja toimintaperiaatteet lohkosalauksesta Ralph Merkle ( eng.  Ralph C. Merkle ) Khufu , joka vaikutti heistä tuolloin täydellisimmältä. He päättivät saavuttaa projektin parhaat ominaisuudet (pääasiassa nopeus) kaventamalla laitteiden valikoimaa, joilla sen toteuttaminen on mahdollista. Valinta tehtiin 32-bittisille koneille , joissa on vähintään kahdeksan yleiskäyttöistä rekisteriä ja vähintään 8 kt :n välimuisti . Maaliskuussa 1993 päätettiin luoda lohkosalaus , mutta saman vuoden lokakuuhun mennessä kehitetty näennäissatunnaisten toimintojen perherakenne toimi nopeammin, mikä sai kehittäjät käyttämään suoratoistosalausta .

Tämä rakenne koostui neljästä rekisteristä , joista jokainen vaihtoi "naapuriaan" avaimesta saadun taulukon mukaan . Useiden tällaisten muutosten jälkeen rekisteriarvot lisätään avainsekvenssiin, joka kasvaa jokaisella iteraatiolla , kunnes se saavuttaa tietyn pituuden.

Kehityksen aikana lähes kaikki huomio kiinnitettiin algoritmin sisäiseen silmukkaan , koska rekisterin alustusmenettelyllä ja menetelmällä luoda taulukoita avaimesta ei ollut juurikaan vaikutusta sen turvallisuuteen. Lopullisessa muodossaan SEAL 1.0 -projekti ilmestyi vasta joulukuussa 1993 .

Vuonna 1996 Helen Handschuh ja Henri Gilbert itse SEAL 1.0:aa vastaan. He tarvitsivat tekstejä, kukin neljä 32-bittistä sanaa, löytääkseen näennäissatunnaisen funktion riippuvuuden avaimesta . Tämän seurauksena SEAL 3.0- ja SEAL 2.0 -algoritmien seuraaviin versioihin tehtiin joitain parannuksia ja muutoksia . Esimerkiksi versiossa 1.0 jokainen iteraatio avainsekvenssillä päättyi vain kahden rekisterin muutokseen , ja versiossa 3.0 kaikkia neljää muutettiin. SEAL 3.0 ja SEAL 2.0 käyttivät myös SHA-1 ( Secure Hash Algorithm-1 ) -algoritmia taulukoiden luomiseen alkuperäisen SHA : n sijasta , mikä teki niistä entistä vastustuskykyisempiä kryptausanalyysille .  

Kuvaus

Algoritmia kuvattaessa käytetään seuraavia toimintoja ja merkintöjä:

Salaustaulukoiden luominen avaimesta

Välttääkseen salausnopeuden menettämisen hitaiden toimintojen aikana algoritmi käyttää kolmea taulukkoa: R , S ja T . Nämä taulukot lasketaan käyttämällä SHA -1- algoritmin menettelyä ja riippuvat vain avaimesta . Näiden taulukoiden täyttäminen voidaan kuvata G -funktiolla, joka palauttaa 160-bittisen arvon 160-bittisestä merkkijonosta ja 32-bittisen luvun .

Esittelemme seuraavat funktiot ja muuttujat indeksistä riippuen :

160-bittinen merkkijono jaetaan sitten viiteen 32-bittiseen sanaan niin, että

Myös kuusitoista 32-bittistä sanaa luodaan

Sitten suoritetaan lopulliset laskelmat:

Esittelemme toiminnon missä varten

Sitten taulukot:

Lisäksi avainta ei käytetä algoritmissa.

Palvelurekisterien alustus

Ennen pseudosatunnaisfunktion luomista on valmisteltava neljä 32-bittistä palvelurekisteriä ( , , ja ) ja neljä 32-bittistä sanaa ( , , ja ). Niiden arvot määritetään taulukoista ja , 32-bittinen luku ja jokin numero seuraavassa menettelyssä.

Pseudosatunnaisen funktion luominen

Tekstin salaamiseksi sinun on luotava näennäissatunnainen funktio.

      

      

            

            

            

            

            

            

            

            

            

            

            

                                

Salausprosessi koostuu suuresta määrästä iteraatioita , joista jokainen päättyy näennäissatunnaisen funktion luomiseen . Läpäistyjen iteraatioiden lukumäärä näkyy laskurilla l . Kaikki ne on jaettu useisiin vaiheisiin, joilla on samanlaiset toiminnot. Jokaisessa vaiheessa yhden rekisterin ( A , B , C tai D ) ylempää 9 bittiä käytetään osoittimena , jolla arvo valitaan taulukosta T. Tämä arvo lisätään aritmeettisesti tai bittikohtaisesti modulo 2 (XOR) seuraavan rekisterin kanssa (jälleen jokin seuraavista: A , B , C tai D ). Ensimmäistä valittua rekisteriä kierretään sitten oikealle 9 paikkaa. Lisäksi joko muutetaan toisen rekisterin arvoa lisäämällä tai XOR ensimmäisen (jo siirretyn) sisällöllä ja suoritetaan siirtyminen seuraavaan vaiheeseen tai tämä siirtyminen suoritetaan välittömästi. 8 tällaisen kierroksen jälkeen arvot A , B , C ja D lisätään (aritmeettisesti tai XORed ) tietyillä taulukon S sanoilla ja lisätään näppäinsarjaan y . Iteroinnin viimeinen vaihe on 32-bittisten lisäarvojen ( n1 , n2 tai n3 , n4 ) lisääminen rekistereihin . Lisäksi tietyn arvon valinta riippuu tämän iteraation lukumäärän pariteetista .

Ominaisuudet ja käytännön sovellus

Tätä algoritmia kehitettäessä päähuomio kiinnitettiin seuraaviin ominaisuuksiin ja ideoihin:

SEAL - salaus vaatii noin neljä konejaksoa jokaisen tekstitavun salaamiseen ja salauksen purkamiseen . Se toimii noin 58 Mbps 32-bittisellä 50 MHz prosessorilla ja on yksi nopeimmista salakirjoituksista .

Muistiinpanot

  1. P.Rogaway , D.Coppersmith . Ohjelmistooptimoitu salausalgoritmi . – 1998.
  2. US-patentti 5 454 039 "Ohjelmistotehokas näennäissatunnainen toiminto ja sen käyttö salaukseen"

Lähteet

Linkit