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 .
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 |
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ä):
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 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:
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).
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] .
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.
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 .
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] .
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).
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.
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.
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] .
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+ 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:
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):
R :n salauskierroksen jälkeen avaimia sekoitetaan samalla tavalla kuin avainten sekoitus .
Salauksenpurkualgoritmin toiminnot ovat samanlaisia kuin salaustoiminnot ja ne suoritetaan käänteisessä järjestyksessä. Ero on seuraava:
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 |
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 |
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):
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.
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]
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] .
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:
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.
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):
Offset-sanat lasketaan lähes samalla tavalla kuin SAFER+ , sillä ainoa ero on, että parametrin i alueet muuttuvat :
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.
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] .
Symmetriset salausjärjestelmät | |
---|---|
Suoratoista salauksia | |
Feistelin verkko | |
SP verkko | |
Muut |