TURVALLISTA

TURVALLISTA
Luoja James Massey
Luotu 1993
julkaistu 1993
Avaimen koko 64 (128, 192, 256) bittiä
Lohkon koko 64 (40, 128) bittiä
Kierrosten lukumäärä 6-16
Tyyppi Korvaus-permutaatioverkko
 Mediatiedostot Wikimedia Commonsissa

SÁFER ( Eng.  Secure And Fast Encryption Routine  - turvallinen ja nopea salausmenettely) - kryptografiassa symmetristen lohkosalauksen algoritmien perhe, joka perustuu korvaus-permutaatioverkkoon . Pääasiallisen panoksen algoritmien kehittämiseen antoi James Massey . Ensimmäinen versio salauksesta luotiin ja julkaistiin vuonna 1993 .

Historia

Salauksesta on useita muunnelmia, jotka eroavat toisistaan ​​salausavaimen pituuden ja lähdetekstin lohkojen koon suhteen.

Algoritmin ensimmäisen version  , SAFER K-64 , kehitti James Massey kalifornialaiselle Cylinc -yhtiölle vuonna 1993 [1] . Samana vuonna julkaistussa algoritmissa oli 64 - bittinen salauslohko ja avain . Hänelle suositeltiin 6 salauskierrosta. Kuitenkin, koska avaimen pituutta piti kasvattaa 128 bittiin (koska alkuperäisessä algoritmissa havaittiin heikkous), Massey kehitti uuden version SAFER K-128 -salauksesta , joka julkaistiin seuraavana vuonna SAFER K-64: n jälkeen. . Uusi algoritmi sisälsi Singaporen sisäministeriön kehittämän avainaikataulun , ja se käytti sitä myöhemmin eri tarkoituksiin. Tälle algoritmille suositeltiin myös 10 (enintään 12) salauskierrosta.

Jonkin aikaa myöhemmin, algoritmin ensimmäisissä versioissa, joitain Lars Knudsenin ja Sean Murphyn [1] löytämiä heikkouksia paljastettiin . Tämä johti uusien versioiden luomiseen algoritmista, nimeltään SAFER SK-64 ja SAFER SK-128 , joissa avainaikataulua muutettiin Knudsenin ehdottaman kaavan mukaisesti. Kehitettiin myös variantti, jonka avaimen pituus on pienennetty 40 bittiin - SAFER SK-40 . Algoritmien nimessä oleva lyhenne " SK " tarkoittaa " vahvistettu avainaikataulu ". Uusille salausmuunnelmille ehdotettiin, että ei käytetä 6, vaan vähintään 8 (enintään 10) salauskierrosta.

SAFER+ -algoritmin kehitti vuonna 1998 kalifornialainen yritys Cylinc yhdessä Armenian tiedeakatemian kanssa osallistuakseen AES - kilpailuun , jossa vain ensimmäinen karsintakierros meni läpi. Tämän salauksen syöttölohko on 128 bittiä ja avaimen koko on 128, 192 tai 256 bittiä.

Uusin luodun SAFER-algoritmin muunnos on SAFER ++ , jonka Massey on kehittänyt vuonna 2000 ja josta on tulossa SAFER+ -algoritmin jatkokehitys . Algoritmi osallistui eurooppalaiseen NESSIE -algoritmien kilpailuun , jossa se esiteltiin kahdessa versiossa: salaus 64-bittisellä lohkolla ja 128-bittisellä lohkolla. Se kelpuutettiin kilpailun toiseen vaiheeseen, mutta sitä ei valittu NESSIE :n suosittelemien kryptografisten primitiivien joukkoon . Asiantuntijat katsoivat, että salaus oli liian hidas kaikissa paitsi 8-bittisissä koneissa (kuten älykorteissa ), ja salauksen turvallisuusmarginaali oli liian pieni [2] [3] .

SAFER - algoritmit eivät ole yksityistä omaisuutta eivätkä ole tekijänoikeudella suojattuja, eli niitä voidaan käyttää ilman rajoituksia. Koska ne koostuvat kokonaan yksinkertaisista tavuoperaatioista (lukuun ottamatta tavujen kiertoa avaimen generoinnin aikana), nämä algoritmit voidaan toteuttaa prosessoreilla, joilla on pieni bittisyvyys [4] .

Alla on yhteenvetotaulukko kaikista olemassa olevista SAFER -salauksen muunnelmista

otsikko Englanti luomispäivämäärä lohkon pituus avaimen pituus kierrosten määrä
TURVALLISempi K-64 avain 64-bittinen 1993 64 64 6
TURVALLISempi K-128 avain 128-bittinen 1995 64 128 10 (enintään 12)
TURVALLISempi SK-64 Vahvistettu avainaikataulu, 64-bittinen 1995 64 64 8 (vähintään 6, enintään 10)
TURVALLINEN SK-128 Vahvistettu avainaikataulu, 128-bittinen 1995 64 128 10 (enintään 12)
TURVALLISempi SK-40 Vahvistettu avainaikataulu, 40 bittiä 1995 64 40
TURVALLINEN+ SAFER Plus 1998 128 128, 192, 256 8, 12, 16
TURVALLISTA++ SAFER Plus Plus 2000 64, 128 128, 256 7, 10

SAFER K-64

Salausalgoritmi

Salatun lohkon pituus ja avaimen pituus ovat 64 bittiä. Algoritmi on iteratiivinen lohkosalaus , ts. samaa salaustoimintoa sovelletaan peräkkäin syöttölohkoon r kertaa, ja jokaisessa vaiheessa käytetään eri avaimia. Tarkastelun algoritmin jokaisessa iteraatiossa (vaihe, kierros) otetaan kaksi 64-bittistä aliavainta.

Algoritmin yhden kierroksen rakenne on esitetty kaaviossa. Kuvataan algoritmi askel askeleelta (alla i ajaa arvot välillä 1 - r , missä r  on salauskierrosten lukumäärä):

  1. Syöttölohko B ja molemmat avaimet ja on jaettu 8 yhden tavun osaan (8 bittiä ). Syötetekstin ja avaimen vastaavat alilohkot lisätään joko modulo two ( XOR -toiminto ) - alilohkoille nro 1, 4, 5 ja 8 tai lisätään tavallisten sääntöjen mukaisesti (tavun lisäystoiminto modulo 256) - alilohkoille No. 2, 3, 6 7.
  2. Lisäyksen tulokset kulkevat ns. S-laatikoiden ( S-boxes ) läpi. Niiden sisältö on yksi epälineaarisista operaatioista: (jossa y = 0, kun x = 128) tai (y = 128, kun x = 0). Tässä x  on syöttötavu, y  on lähtötavu. Nämä operaatiot ovat operaatioita lopullisessa kentässä GF(257), jossa 45 on kentän primitiivinen elementti. Koska joka kerta on erittäin hankalaa laskea näiden toimintojen tuloksia algoritmin käytännön toteutuksissa, niiden toiminnan tulosten saamiseksi käytetään yleensä erityisesti laadittuja taulukoita.
  3. Kohdan 1 kaltainen toiminto suoritetaan edellisen toiminnon tuloksille sillä ainoalla erolla, että käytetään toista aliavainta ja XOR- ja modulo 256 -operaatiot käännetään.
  4. Tuloksena olevat tavut käyvät läpi monitasoisen muunnosjärjestelmän, jotka summautuvat keskenään eri järjestyksessä. Tämä tehdään paremman lumivyöryefektin saavuttamiseksi , ts. lähtöbittien riippuvuuden lisäämiseksi kaikista tulolohkon biteistä. Kaaviossa muunnokset esitetään additiomoduulin 256 operaatioiden verkkona. Tämä verkko vastaa kolmea Hadamardin pseudomuunnoksen tasoa ( Pseudo-Hadamard Transform , PHT ) [5] . Jokainen muunnos toimii siten, että tulotavuilla ja lähdössä saamme:

Kun peräkkäiset kierrokset on suoritettu loppuun, saatuun tulokseen sovelletaan kappaleen 1 kaltaista toimintoa, jossa viimeistä aliavainta käytetään avaimena.

Algoritmin kirjoittaja suosittelee kierrosten käyttöä, mutta voit lisätä niiden määrää luotettavuuden lisäämiseksi [5] .

Salauksen purkualgoritmi

Salauksen purku suoritetaan käänteisessä järjestyksessä, mutta toiminnot päinvastaiset. Näin ollen yhteenlaskuoperaatiot modulo 256 korvataan vähennysoperaatioilla ja yhteenlasku modulo 2 suoritetaan samalla tavalla kuin salauksessa. Toiminnot ja vaihdetaan. Hadamardin pseudomuunnokset korvataan käänteismuunnoksilla ( Inverse PHT , IPHT ), jotka toimivat seuraavasti:

Avaimen luominen

Ensimmäinen salausavain on käyttäjän määrittämä salainen avain. Jokainen seuraava salausavain saadaan edellisestä kaavan mukaan (lisäys suoritetaan modulo 256, kun taas tavut lisätään erikseen). Tässä " "-toiminto on tavu-tavuinen syklinen siirto vasemmalle 3 bitin verran, eli siirto tapahtuu avaimen jokaisen yksittäisen tavun sisällä. Arvoa kutsutaan salausvaihevakioksi. Saat sen seuraavasti: jos  — i :nnen asteen vakion j -tavu , niin kaikki vaiheiden vakiot ilmaistaan ​​seuraavalla kaavalla: [5] . Näin saadut vaihevakiot käyttäytyvät satunnaislukuina hyvällä tarkkuudella. Yleensä kaikkien näiden vakioiden arvot tallennetaan erityisiin taulukoihin laskemiseen kuluvan ajan lyhentämiseksi.

Muodollinen kuvaus avainten luontialgoritmista: [6]

TULO: 64-bittinen avain ; kierrosten määrä .

TULOSTULO: 64-bittiset aliavaimet . Tavu  - avaintavu (numerointi vasemmalta oikealle).

  1. Antaa olla  8-bittisiä arvoja. Olkoon salauksen i :  nnen vaiheen vakion j - tavu .
  2. .
  3. .
  4. Alkaen - : _
    • 1-8 : .
    • 1-8 : .

Kryptanalysis algoritmi

James Massey osoitti, että kuuden salauskierroksen jälkeen SAFER K-64 -algoritmi tarjoaa absoluuttisen vastuksen differentiaalista kryptausanalyysiä vastaan ​​[5] . Samanaikaisesti kolmen salauskierroksen jälkeen lineaarinen krypta -analyysi ei myöskään tehoa hakkerointiin [5] .

Tästä huolimatta Lars Knudsen havaitsi vuonna 1995 heikkouden SAFER K-64 : n avainten luontialgoritmissa . Hän osoitti [5] , että mille tahansa salausavaimelle voidaan löytää yksi tai useampi (jopa yhdeksän) avainta (joista eroaa vain yhden tavun arvolla), joten kun salataan kahta erilaista selkeää tekstiä, yksi ja sama salateksti saadaan saatu, joka voidaan kirjoittaa muotoon . Eri selkeiden tekstien M määrä, joista sama salateksti saadaan, on mahdollisten tekstien välissä ja niistä. Siten jäsentämällä tekstistä pelkkää tekstiä, voidaan laskea 8 bittiä 64-bittistä salaista avainta. Tätä hyökkäystä vahvistivat entisestään John Kelsey , Bruce Schneier ja David Wagner ( englanniksi David A. Wagner ). Hyökkäyksen tekijät väittivät, että algoritmi soveltuu helposti toisiinsa liittyviin avaimiin kohdistuviin hyökkäyksiin, koska aliavaimien generointi on hyvin yksinkertaista ja yhtenäistä [7] .  

Tämä ominaisuus vähentää merkittävästi SAFER K-64 -algoritmin luotettavuutta, kun sitä käytetään yksisuuntaisena hajautusfunktiona . Sen luotettavuus salausalgoritmina ei heikkene. Tämä algoritmin heikkous yhdessä Murphyn myöhemmin julkaiseman hyökkäyksen kanssa sai Masseyn kuitenkin parantamaan avainten luontialgoritmia. Tämän seurauksena hän julkaisi syyskuussa 1995 SAFER SK-64 -algoritmin .

Lars Knudsen ja Thomas A. Berson suorittivat toisen sertifioidun hyökkäyksen SAFER K-64 -algoritmia vastaan 6Se suunniteltiin pituudeltaan selkeälle tekstille , joka on salattu viidellä SAFER K-64 -algoritmilla . Vaikka tämä hyökkäys ei kyennyt murtamaan salatekstiä edes kuuden salauskierroksen jälkeen, se osoitti, että algoritmin kryptografinen vahvuus oli pienempi kuin Massey alun perin väitti (hän ​​väitti, että algoritmi oli ehdottoman vastustuskykyinen lineaarisille kryptausanalyysimenetelmille ).  

Ranskalainen kryptografi Serge Vaudenay ( fr.  Serge Vaudenay ) osoitti, että kun S-laatikoiden sisältö korvataan satunnaisilla permutaatioilla , SAFER K-64 -algoritmista tulee vähemmän kryptonkestävä [6] .

SAFER K-128

Algoritmi eroaa SAFER K-64 :stä vain käyttäjäavaimen pituuden ja vastaavasti itse avaimen luontimenetelmän suhteen . Tämän menetelmän kehitti Singaporen sisäministeriö [5] , ja James Massey käytti sitä myöhemmin algoritmissaan.

Avaimen luominen

Tämä algoritmi käyttää 128-bittistä avainta yhden 64-bittisen avaimen sijasta , mikä vastaa kahden 64-bittisen avaimen määrittämistä. Näistä kahdesta avaimesta luodaan kaksi riippumatonta aliavainsarjaa käyttämällä menetelmää, joka on hyvin samankaltainen kuin SAFER K-64 -salauksessa. Näiden sekvenssien avaimia käytetään vuorotellen kaikilla salauskierroksilla.

Kuten kaaviosta voidaan nähdä, kussakin vaiheessa avaintavuja ei siirretä 3, vaan 6 bitillä. Tämä johtaa siihen, että samoilla aloitusavaimilla saadaan, että 128-bittinen avain on yhteensopiva 64-bittisen avaimen kanssa . Eli käyttämällä SAFER K-128 -algoritmin tyyppiavainta ja SAFER K-64 : n avainta saadaan samat aliavainsekvenssit, mikä tarkoittaa, että itse salaus SAFER K-128 :ssa ei poikkea millään tavalla TURVALLISempi K-64 .

Cryptanalysis

Huolimatta SAFER K-128 -algoritmin samankaltaisuudesta edeltäjänsä kanssa, siinä on useita eroja. Joten algoritmin uudessa versiossa James Massey suosittelee käyttämään 6, vaan 10 (enintään 12) salauskierrosta [ 7] . Tämä johtuu siitä, että vähemmällä iteraatiolla algoritmi, kuten SAFER K-64 , joutuu Lars Knudsenin hyökkäyksen kohteeksi . Muista, että se koskee algoritmin käyttöä hajautusfunktion perustana . Salauskierrosten määrän lisääminen lisää kirjoittajan mukaan merkittävästi algoritmin kryptografista vahvuutta tässä mielessä [7] .

SAFER SK-64

Tämä algoritmi eroaa SAFER K-64 :stä vain siinä, miten se luo aliavaimia. Tätä menetelmää ehdotti Lars Knudsen löydettyään myös hyökkäyksen SAFER K-64 -algoritmia vastaan . Suositeltu salauskierrosten määrä on nostettu kuudesta kahdeksaan [7] . Erot keskeisissä laajennusmenetelmissä näkyvät selvästi algoritmin muodollisessa kuvauksessa:

Muodollinen kuvaus avainten luontialgoritmista: [6]

TULO: 64-bittinen avain ; kierrosten määrä .

TULOSTULO: 64-bittiset aliavaimet . Tavu  - avaintavu (numerointi vasemmalta oikealle).

  1. Antaa olla  8-bittisiä arvoja. Olkoon salauksen -:nnen vaiheen  -tavuvakiot .
  2. ; (lisäys tehdään modulo 2).
  3. Alkaen - : _
    • 1-9 : .
    • 1-8 : .

Tämän algoritmin tärkein erottuva piirre on ylimääräisen tavun käyttö , joka saadaan lisäämällä bittikohtaisesti kahdeksan avaimen tavua. Lisäksi kussakin algoritmin vaiheessa näitä tavuja siirretään syklisesti, minkä seurauksena käy ilmi, että aliavain riippuu tavuista , aliavain riippuu  tavuista , aliavain riippuu  tavuista jne. Bittikohtainen siirto 3 bittiä ja salausvakioiden rakenne säilyy ennallaan.

Cryptanalysis

Tällaiset näennäisesti pienet muutokset avainten luontialgoritmissa lisäävät merkittävästi algoritmin kryptografista vahvuutta . Tällä hetkellä ei ole tunnettuja hyökkäyksiä SAFER SK - 64- ja SAFER SK-128 -algoritmeille , jotka olisivat tehokkaampia kuin raakavoimahaku [ 7] .

Samaan aikaan on hyökkäyksiä, jotka on suunnattu näiden algoritmien katkaistuihin versioihin. Tässä muutamia niistä: [7]

Kuten näette, kaikki nämä hyökkäykset eivät ole kovin käytännöllisiä, koska ne vaativat melko paljon resursseja ja aikaa.

SAFER SK-128

Tämä salausalgoritmi eroaa SAFER SK-64 :stä täsmälleen samalla tavalla kuin SAFER K-128 eroaa SAFER K-64 :stä . Nimittäin itse salaus- ja aliavaimien generointialgoritmit pysyvät samoina, mutta yhden alkuperäisen 64-bittisen avaimen sijasta käytetään kahta tällaista avainta, joille kullekin muodostetaan itsenäisesti aliavainsekvenssit, joita sitten sovelletaan vuorotellen. Lisäksi jokainen parillisten ja parittomien näppäinten sekvenssi on rakenteeltaan samanlainen kuin SAFER SK-64 :n avainten laajennusalgoritmi . Siinä samalla tavalla ensimmäisessä vaiheessa lisätään lisätavu, joka on jäljellä olevien kahdeksan tavun modulo 2 summa , ja sitten jokaisessa vaiheessa tapahtuu tavu tavu syklinen siirto.

Mitä tulee SAFER K-64- ja SAFER K-128 -algoritmeihin , käytettäessä mukautettua näkymänäppäintä SAFER SK-128 : ssa ja avainta SAFER SK-64 : ssä , algoritmien vaikutus on täsmälleen sama. Samaan aikaan SAFER SK-128 :lle suositeltu salauskierrosten määrä pysyy samana kuin SAFER K-128 :ssa ja on 10 [7] .

SAFER SK-40

Tämä salausversio käyttää vain 40 bitin (5 tavua ) supistettua avainta. Tämä antoi algoritmille mahdollisuuden ohittaa Yhdysvalloissa tuolloin voimassa olleet vientirajoitukset . Algoritmi toimii lähes samalla tavalla kuin SAFER SK-64 , pienellä erolla aliavaimen luomisen alkuvaiheessa.

SAFER SK-64 -algoritmissa yhdeksäs tavu osoitettiin alkuperäisen avaimen 8 tavulle, mikä vastaa niiden bittikohtaista modulo 2 -summaa . SAFER SK-40 :ssä nämä 9 tavua saadaan täysin eri tavalla. Merkitään ne , ,… . Ensimmäiset 5 niistä ovat alkuperäisen avaimen tavuja. Loput 4 tavua saadaan ensimmäisistä seuraavasti [11] :

,

,

,

;

Ensimmäinen aliavain saadaan kahdeksasta ensimmäisestä vastaanotetusta tavusta. Myöhemmät aliavaimet luodaan käyttämällä niitä täsmälleen samalla tavalla kuin SAFER SK-64 -algoritmissa .

SAFER+

SAFER+ on parannettu versio SAFER - algoritmien perheestä . Algoritmi kehitettiin vuonna 1998 kilpailemaan AES - standardista . Kalifornian Cylinc-yhtiön ( James Massey ) ja Armenian tasavallan tiedeakatemian (Gurgen Khachatryan ja Melsik Kuregyan) asiantuntijat työskentelivät yhdessä sen luomisessa [2] .

AES-kilpailussa algoritmi läpäisi ensimmäisen karsintakierroksen yhdessä 14 muun algoritmin kanssa. SAFER+ ei päässyt kilpailun finaaliin, johon sallittiin vain 5 algoritmia , koska perusteellisen analyysin tulosten mukaan kävi ilmi, että se on herkkä useille hyökkäyksille ja sen suoritusnopeus on alhainen [ 12] . Algoritmi luotiin toimimaan 8-bittisillä prosessoreilla, ja sen seurauksena se toimii melko hitaasti 32-bittisillä prosessoreilla [3] .

SAFER+ käsittelee tiedot 128-bittisinä lohkoina. Algoritmi tukee 128-, 192- ja 256-bittisiä avaimia Yhdysvaltain kansallisen standardointi- ja teknologiainstituutin (NIST) [13] asettamien vaatimusten mukaisesti . Salauskierrosten määrä riippuu avaimen koosta:

Salausalgoritmi

SAFER+ -algoritmin rakenne muistuttaa SAFER K-64:ää . Se koostuu samoista päävaiheista, jotka ovat rakenteeltaan hieman erilaisia. Algoritmin jokaisella kierroksella sekoitetaan ensin yksi aliavain, jonka jälkeen tavut kulkevat epälineaaristen korvauslohkojen läpi, sitten toinen aliavain sekoitetaan ja tavut sekoitetaan lineaarisesti. Alaavaimet luodaan peräkkäin syöttöavaimella. Alla on tarkempi kuvaus yhden iteroinnin työstä ( i  on iteraationumero):

  1. Näppäinpeitto : syöttölohkon tavut lisätään avaintavuihin käyttämällä modulo 2 -lisäystä tavuille, joiden numero on 1, 4, 5, 8, 9, 12, 13 ja 16, ja modulo 256 -lisäystä tavuille, joiden numero on 2, 3, 6 , 7, 10, 11, 14 ja 15.
  2. Epälineaarinen muunnos : tavuja, joiden numerot ovat 1, 4, 5, 8, 9, 12, 13 ja 16, käytetään ( korvataan nollalla). Tavut numeroilla 2, 3, 6, 7, 10, 11, 14 ja 15 ovat toiminnon alaisia ​​(ja ). näiden operaatioiden, kuten myös muiden SAFER-algoritmien, tulokset käytännössä tallennetaan usein erityisiin taulukoihin. Tässä tapauksessa tämä vaatii 512 tavua.
  3. Key overlay : syöttölohkon tavut lisätään avaimen tavuihin , mutta toisin kuin kohdassa 1, lisäystoiminnot modulo 2 ja modulo 256 vaihdetaan.
  4. Lineaarinen muunnos : 16-tavuisen datalohkon kertominen oikealla erityisellä ei- singulaarisella matriisilla M (kaikki toiminnot ovat tavupohjaisia ​​ja suoritetaan modulo 256 ). Kertominen tällä matriisilla vastaa neljää PHT -muunnostasoa , joiden välillä suoritetaan joitain tavupermutaatioita [2] . Tämä algoritmin osa on laskennan kannalta vaivalloisin.

R :n salauskierroksen jälkeen avaimia sekoitetaan samalla tavalla kuin avainten sekoitus .

Salauksen purkualgoritmi

Salauksenpurkualgoritmin toiminnot ovat samanlaisia ​​kuin salaustoiminnot ja ne suoritetaan käänteisessä järjestyksessä. Ero on seuraava:

  1. Matriisin sijaan kertolasku tapahtuu sen käänteismatriisilla ;
  2. Kaikki yhteenlaskuoperaatiot modulo 256 korvataan vähennysoperaatioilla;
  3. Operaatiot ja (jotka ovat toistensa käänteisiä) vaihdetaan keskenään.
Salauksessa käytetään seuraavaa matriisia M : [13]
2 2 yksi yksi 16 kahdeksan 2 yksi neljä 2 neljä 2 yksi yksi neljä neljä
yksi yksi yksi yksi kahdeksan neljä 2 yksi 2 yksi neljä 2 yksi yksi 2 2
yksi yksi neljä neljä 2 yksi neljä 2 neljä 2 16 kahdeksan 2 2 yksi yksi
yksi yksi 2 2 2 yksi 2 yksi neljä 2 kahdeksan neljä yksi yksi yksi yksi
neljä neljä 2 yksi neljä 2 neljä 2 16 kahdeksan yksi yksi yksi yksi 2 2
2 2 2 yksi 2 yksi neljä 2 kahdeksan neljä yksi yksi yksi yksi yksi yksi
yksi yksi neljä 2 neljä 2 16 kahdeksan 2 yksi 2 2 neljä neljä yksi yksi
yksi yksi 2 yksi neljä 2 kahdeksan neljä 2 yksi yksi yksi 2 2 yksi yksi
2 yksi 16 kahdeksan yksi yksi 2 2 yksi yksi neljä neljä neljä 2 neljä 2
2 yksi kahdeksan neljä yksi yksi yksi yksi yksi yksi 2 2 neljä 2 2 yksi
neljä 2 neljä 2 neljä neljä yksi yksi 2 2 yksi yksi 16 kahdeksan 2 yksi
2 yksi neljä 2 2 2 yksi yksi yksi yksi yksi yksi kahdeksan neljä 2 yksi
neljä 2 2 2 yksi yksi neljä neljä yksi yksi neljä 2 2 yksi 16 kahdeksan
neljä 2 yksi yksi yksi yksi 2 2 yksi yksi 2 yksi 2 yksi kahdeksan neljä
16 kahdeksan yksi yksi 2 2 yksi yksi neljä neljä 2 yksi neljä 2 neljä 2
kahdeksan neljä yksi yksi yksi yksi yksi yksi 2 2 2 yksi 2 yksi neljä 2
Salauksen purkamisessa käytetään käänteistä matriisia : [13]
2 −2 yksi −2 yksi −1 neljä −8 2 −4 yksi −1 yksi −2 yksi −1
−4 neljä −2 neljä −2 2 −8 16 −2 neljä −1 yksi −1 2 −1 yksi
yksi −2 yksi −1 2 −4 yksi −1 yksi −1 yksi −2 2 −2 neljä −8
−2 neljä −2 2 −2 neljä −1 yksi −1 yksi −1 2 −4 neljä −8 16
yksi −1 2 −4 yksi −1 yksi −2 yksi −2 yksi −1 neljä −8 2 −2
−1 yksi −2 neljä −1 yksi −1 2 −2 neljä −2 2 −8 16 −4 neljä
2 −4 yksi −1 yksi −2 yksi −1 2 −2 neljä −8 yksi −1 yksi −2
−2 neljä −1 yksi −1 2 −1 yksi −4 neljä −8 16 −2 2 −2 neljä
yksi −1 yksi −2 yksi −1 2 −4 neljä −8 2 −2 yksi −2 yksi −1
−1 yksi −1 2 −1 yksi −2 neljä −8 16 −4 neljä −2 neljä −2 2
yksi −2 yksi −1 neljä −8 2 −2 yksi −1 yksi −2 yksi −1 2 −4
−1 2 −1 yksi −8 16 −4 neljä −2 2 −2 neljä −1 yksi −2 neljä
neljä −8 2 −2 yksi −2 yksi −1 yksi −2 yksi −1 2 −4 yksi −1
−8 16 −4 neljä −2 neljä −2 2 −1 2 −1 yksi −2 neljä −1 yksi
yksi −1 neljä −8 2 −2 yksi −2 yksi −1 2 −4 yksi −1 yksi −2
−2 2 −8 16 −4 neljä −2 neljä −1 yksi −2 neljä −1 yksi −1 2

Avaimen luominen

Esitetty algoritmi soveltuu syöttöavaimille, joiden pituus on 128, 192 ja 256 bittiä (16, 24 ja 32 tavua ). Ensimmäinen aliavain on syöttöavaimen ensimmäiset 16 tavua. Loput avaimet generoidaan seuraavasti: ensin koko lähdeavain kirjoitetaan avainrekisteriin 1 tavun pitempi kuin itse avain (eli rekisterin pituus on 17, 25 tai 33 tavua eri syöttöavaimilla ). Avaimen kaikki tavut summataan modulo 2 bittiltä , ​​tulos kirjoitetaan rekisterin viimeiseen tavuun. Jokaisen seuraavan avaimen saamiseksi suoritetaan seuraavat toiminnot rekisterin sisällölle ( i :lle 2 - 2 r +1):

  1. Avainrekisterin tavujen sisältöä siirretään syklisesti vasemmalle 3 paikkaa (siirto tapahtuu tavujen sisällä yksittäin, ei rekisterissä kokonaisuudessaan);
  2. 16 tavua valitaan rekisteristä. Tällöin avaimelle valitaan rekisterin tavut alkaen i :stä ja edelleen sykliä pitkin.
  3. Valitut 16 tavua lisätään modulo 256 offset-sanan tavuihin (katso alla). Lisäyksen tulos on aliavain .

Offset-sanat  ovat 16-tavuisia vakioita, jotka lasketaan seuraavalla kaavalla:

 — i :nnen siirtymäsanan j -tavu . Jos sitten, tämä tavu korvataan 0:lla.

On selvää, että koska salausiteraatioiden määrä on erilainen eri avainten pituuksilla (ja on 8, 12 ja 16 avaimille, jotka ovat 128, 192 ja 256 bittiä, vastaavasti), kaikkia offset-lohkoja ei käytetä. Jos avaimen pituus on 128 bittiä, vain , ... käytetään 192 bitin avaimelle - , ... ja 256 bitin avaimelle - kaikkia siirtymän sanoja.

Cryptanalysis

SAFER + -algoritmin osallistumisen yhteydessä AES -kilpailuun kryptologit kiinnittivät erittäin suurta huomiota sen kryptoanalyysiin. Tämän seurauksena algoritmia vastaan ​​löydettiin useita hyökkäyksiä. Luettelemme joitain niistä:

AES-kilpailun aikana SAFER+ -algoritmia luonnehdittiin seuraavasti: [2]

SAFER++

Algoritmi on SAFER+ :n jatkokehitys ja perii lähes kokonaan sen rakenteen. Erot ovat pääasiassa algoritmin joidenkin osien optimoinnissa (laskennan helpottamiseksi). Se käyttää vähemmän kierroksia: seitsemän 128-bittiselle avaimelle ja kymmenen 256-bittiselle avaimelle. Tämän salauksen lohkon pituus on 128 bittiä, mutta lisäksi tarjotaan "taaksepäin yhteensopiva" tila käytettäessä 64 bitin pituisia lohkoja.

Algoritmi siirtyi NESSIE -kilpailun toiseen vaiheeseen , mutta sitä ei valittu NESSIE :n suosittelemaan salausprimitiivien joukkoon. Asiantuntijat katsoivat, että salaus oli liian hidas kaikissa koneissa paitsi älykorteissa , ja salauksen turvamarginaali oli liian pieni [17] .

Algoritmi

Merkittävä osa salausmenettelystä ei eroa SAFER+ -algoritmista . Suurin ero on lineaarisessa muunnosmenettelyssä, joka on laskennallisesti optimoitu merkittävästi ( SAFER+ :ssa on välttämätöntä suorittaa kertolasku 16x16-matriisilla, mikä vaatii suuren määrän tavu-tavuilta lisäyksiä).

Lineaarinen muunnos , kuten kaaviosta näkyy, koostuu seuraavista vaiheista:

  1. 16 syöttötavua sekoitetaan seuraavassa järjestyksessä: [9, 6, 3, 16, 1, 14, 11, 8, 5, 2, 15, 12, 13, 10, 7, 4];
  2. Uuden järjestyksen tavut jaetaan 4:n ryhmiin. Jokaiselle ryhmälle tehdään 4-pisteinen Hadamard-pseudo -muunnos ;
  3. Muunnoksen jälkeen tavut sekoitetaan uudelleen samassa järjestyksessä kuin kappaleessa 1;
  4. Kohdan 2 tapaan tavut kulkevat jälleen Hadamardin pseudomuunnosten läpi . Tulos on lähtö.

Hadamardin pseudomuunnos koostuu 4-tavuisen merkkijonon kertomisesta 4x4 ei- singulaarisella matriisilla , jolla on seuraava rakenne:

.

Salauksen purkamisessa käytetty käänteinen matriisi on

Tämän lähestymistavan etuna verrattuna SAFER+ :ssa käytettyyn kertomiseen 16x16 matriisilla on, että lineaarinen muunnos Hadamard-muunnosmatriisien rakenteesta johtuen vaatii huomattavasti vähemmän perusoperaatioita. Nimittäin kun kerrotaan 16-tavuinen merkkijono 16x16-matriisilla, se vaatii yleensä 15*16 yhteenlaskua ja 16*16 kertolaskua. Kertominen Hadamard-muunnosmatriisilla vaatii vain 6 summausoperaatiota: [13]

Jos a , b , c , d  ovat syöttötavuja, A , B , C , D  ovat lähtötavuja, niin laskelmat esitetään kaavoilla (lisäys suoritetaan modulo 256 ):

(3 lisäysoperaatiota), (1 lisätoiminto), (1 lisätoiminto), (1 lisäystoiminto).

Näin ollen, vaikka otettaisiin huomioon, että matriisi kerrotaan 8 kertaa, saadaan vain 6*8=48 operaatiota, mikä on paljon vähemmän kuin SAFER+ :ssa (vaikka huomioitaisi kaikki SAFER++- algoritmissa suoritetut tavupermutaatiot ).

Lineaarisen muunnoksen koko rakenne voidaan esittää, aivan kuten SAFER+ :ssa, ei-singulaarisena 16x16 matriisina . Suurin osa tämän matriisin elementeistä on kuitenkin yhtä suuri kuin yksi. Käänteisessä matriisissa , joka vaaditaan salauksenpurkutoimenpiteen suorittamiseen , useimmat elementit ovat yhtä suuria kuin nolla.

Avaimen luominen

Myös eri salauskierroksilla käytetyssä aliavaimen luontialgoritmissa on joitain eroja SAFER+ :sta. Tässä suhteessa SAFER+ ja SAFER++ väliset erot ovat samanlaiset kuin SAFER K-64 :n ja SAFER K-128 :n väliset erot siinä mielessä, että parilliset ja parittomat aliavaimet luodaan itsenäisesti SAFER++ -sovelluksessa . Tarkastellaanpa algoritmia tarkemmin.

Käytössä on 2 avainrekisteriä , joiden pituus on 16+1=17 tavua. Jos käyttäjäavaimen pituus on 128 bittiä (16 tavua), tämä avain kirjoitetaan aluksi molempiin rekistereihin. Jos avaimen pituus on 256 bittiä (32 tavua), avaintavut 1.:stä 16.:een syötetään ensimmäiseen rekisteriin ja 17. - 32. toiseen toiseen. 17. tavun tilalle jokaiseen rekisteriin syötetään tavun tarkistussumma ensimmäisestä 16 tavusta. Tämän jälkeen i :lle 1 - ( r  on salauskierrosten lukumäärä) suoritetaan seuraavat toimenpiteet (jos i = 1,3, ... 2 r +1, otetaan huomioon ensimmäinen rekisteri, i = 2,4, .. 2 r  - toinen rekisteri):

  1. Rekisteristä valitaan 16 tavua alkaen numerosta i ja edelleen sykliä pitkin. Joten avaimelle, jonka numero on i = 5, tavut valitaan seuraavasti: [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1, 2, 3 ],
  2. Vastaanotetut tavut lisätään vastaavaan offset-sanaan (katso alla)
  3. Rekisterin kaikkien tavujen sisältöä kierretään 6 bittiä, jos i on pariton, ja 3 bittiä, jos i on parillinen .

Offset-sanat lasketaan lähes samalla tavalla kuin SAFER+ , sillä ainoa ero on, että parametrin i alueet muuttuvat :

Cryptanalysis

Osana NESSIE -kilpailua SAFER++- algoritmin salauksen vahvuus tutkittiin huolellisesti. Asiantuntijoiden mukaan aiemman SAFER+ -algoritmin haavoittuvuuksia ei peritty. Täysikokoiselle SAFER++- algoritmille ei ole löydetty uusia hyökkäyksiä . Samaan aikaan tehtiin useita hyökkäyksiä salausmuunnelmiin, joissa salauskierrosten määrä on pienempi [9] [18] [19] Yksi niistä, koska se on mahdotonta tarvittavien laskelmien valtavan määrän vuoksi, on teoriassa kykenevä murtaa SAFER ++ 5,5 kierrosta seitsemän sijaan. [20] . Tämä hyökkäys oli yksi tärkeimmistä syistä, miksi algoritmi ei voittanut kilpailua. Lisäksi joidenkin asiantuntijoiden mukaan algoritmi voi hyvinkin sisältää heikkouksia, joita ei ole vielä tunnistettu. Pääsyynä oli algoritmin riittämätön suorituskyky, kun se toteutettiin monibittisillä laitteilla.

Käytännön käyttö

Vaikka SAFER -algoritmit eivät ole saaneet standardien asemaa Yhdysvalloissa tai EU :ssa , ne ovat löytäneet erittäin laajan sovelluksen. Erityisesti SAFER+ on Bluetooth - todennusprotokollan perusta . Itse salausalgoritmi Bluetoothissa ei kuitenkaan käytä tätä algoritmia [1] .

Huolimatta siitä, että sana " nopea " esiintyy algoritmin nimessä, nykyaikaisten standardien mukaan SAFER -perheen algoritmit ovat melko hitaita.

Mitä tulee kryptografiseen vahvuuteen, jopa SAFER K-64 -algoritmin ensimmäinen versio on täysin vastustuskykyinen differentiaalista kryptausanalyysiä vastaan . Perheen viimeisestä algoritmista, SAFER++ , on tullut entistäkin vankempi, sillä sitä on muutettu merkittävästi ottamaan huomioon algoritmin aiempia versioita vastaan ​​tehdyt monet hyökkäykset. Tällä hetkellä algoritmia vastaan ​​ei ole löydetty varsinaisesti toteutettavissa olevia hyökkäyksiä [1] .

Ottaen huomioon, kuinka pitkälle SAFER -algoritmit ovat edenneet olemassaolonsa aikana - SAFER K-64 :stä SAFER++ :een, voidaan olettaa, että näiden algoritmien kehitys ei ole vielä ohi [2] .

Muistiinpanot

  1. 1 2 3 4 Mukherjee, Ganguly, Naskar, 2009 .
  2. 1 2 3 4 5 Panasenko S.P. Salausalgoritmien, SAFER+- ja SAFER++ -salausten kehitys (12.7.2007). - Artikkeli, jossa käsitellään yksityiskohtaisesti SAFER +- ja SAFER ++ -algoritmeja . Haettu: 12. marraskuuta 2009.  (linkki, jota ei voi käyttää)
  3. 1 2 B. Kiivi. Kilpailu uudesta kryptostandardista AES (huhtikuu 1999). — Lyhyt kuvaus SAFER+ -algoritmista . Haettu 12. marraskuuta 2009. Arkistoitu alkuperäisestä 3. heinäkuuta 2011.
  4. Massey, 1994 .
  5. 1 2 3 4 5 6 7 Schneier B. Luku 14. Ja lisää lohkosalauksia // Applied Cryptography. Protokollat, algoritmit, lähdekoodi C-kielellä = Applied Cryptography. Protokollat, algoritmit ja lähdekoodit julkaisussa C. - M . : Triumf, 2002. - S. 382-384. — 816 s. - 3000 kappaletta.  - ISBN 5-89392-055-4 .
  6. 1 2 3 4 Menezes, Oorschot, Vanstone, 1996 .
  7. 1 2 3 4 5 6 7 Panasenko S.P. Salausalgoritmien kehitys, SAFER K- ja SAFER SK -algoritmit (15. kesäkuuta 2007). - Artikkeli, jossa käsitellään yksityiskohtaisesti SAFER K-64/128- ja SAFER SK-64/128 -algoritmeja . Haettu: 12. marraskuuta 2009.  (linkki, jota ei voi käyttää)
  8. Panasenko S.P. Nykyaikaiset menetelmät salausalgoritmien murtamiseen, osa 5 (linkki ei saatavilla) (25. joulukuuta 2006). — Kuvaus mahdottomien erojen menetelmästä. Haettu 12. marraskuuta 2009. Arkistoitu alkuperäisestä 23. huhtikuuta 2008. 
  9. 1 2 3 4 Nakahara J. Jr., Preneel B., Vandewalle J. Impossible Differential Attacks on Reduced-Round SAFER Ciphers // Katholieke Universiteit Leuven, Belgia. - 12. maaliskuuta 2003.
  10. 1 2 Nakahara J.Jr. Lohkosalausten krypta-analyysi ja suunnittelu // Katholieke Universiteit Leuven. - kesäkuuta 2003.
  11. Savard, John SAFER (Suojattu ja nopea salausrutiini ) . — SAFER K- ja SAFER SK -algoritmien kuvaus. Haettu 22. joulukuuta 2009. Arkistoitu alkuperäisestä 30. tammikuuta 2012.  
  12. Panasenko S.P. Salausalgoritmit - AES-kilpailun finalistit (24. elokuuta 2006). - sisältää päätelmiä SAFER + -algoritmin ominaisuuksista. Haettu 12. marraskuuta 2009. Arkistoitu alkuperäisestä 30. tammikuuta 2012.
  13. 1 2 3 4 Barichev, Goncharov, Serov, 2011 .
  14. 1 2 Kelsey, Schneier, Wagner, 1999 .
  15. Biham, Shamir, 1999 .
  16. Chari, Jutla, Rao et ai., 1999 .
  17. Uudet eurooppalaiset allekirjoitusten, eheyden ja salauksen järjestelmät  // v. 0,15. - Eurooppalaisen hankkeen IST-1999-12324 loppuraportti, 19. huhtikuuta 2004. - S. 476 .
  18. Nakahara J.Jr. Päivitys SAFER++:n lineaariseen krypta-analyysiin  //  Katholieke Universiteit Leuven, Belgia. - 12. maaliskuuta 2003.
  19. Piret G., Quisquater J.-J. Integral Cryptanalysis on redund-round SAFER++  (englanniksi)  // Universite catolique de Louvain, Louvain-la-Neuve, Belgia.
  20. Biryukov A., De Canniere C., Dellkrantz G. Cryptanalysis of SAFER++ (englanti)  // KULeuven, Belgia. - 2003. Arkistoitu 15. toukokuuta 2006.  

Kirjallisuus

Linkit

venäjäksi

Muilla kielillä