Shift attack ( eng. slide attack ) - kryptografinen hyökkäys , joka on yleensä valittuun selkeään tekstiin perustuva hyökkäys , joka mahdollistaa usean kierroksen lohkosalausten kryptausanalyysin käytettyjen kierrosten määrästä riippumatta. Alex Biryukovin ja David Wagnerin ehdottama vuonna 1999 [1] .
Ajatus leikkausiskun luomisesta tuli ensimmäisen kerran Edna Grossmanille ja Brian Tuckermanille vuonna 1977. Vastaava raportti julkaistiin [2] yhdessä IBM :n kanssa . Grossman ja Tuckerman pystyivät osoittamaan hyökkäyksen melko heikkoa New Data Seal (NDS) -salausta vastaan . Hyökkäys hyödyntää sitä tosiasiaa, että kunkin kierroksen salaus sekoittaa vain samaa näppäintä käyttäen samaa taulukkoa jokaisella kierroksella. Selkeiden tekstien käyttö kiertää tämän ja antaa meille mahdollisuuden pitää sitä siirtohyökkäyksen varhaisimpana versiona.
Vuonna 1990 ehdotettiin differentiaalista kryptoanalyysiä , joka osoitti monikierrosten DES-tyyppisten salausjärjestelmien haavoittuvuuden [3] . Yksi tapa varmistaa niiden kryptografinen vahvuus oli lisätä käytettyjen kierrosten määrää, mikä lisäsi hyökkäyksen laskennallista monimutkaisuutta suhteessa niiden määrään. Tämän parannuksen käyttö monille salausalgoritmeille perustui erityisesti empiiriseen arvioon, jonka mukaan mistä tahansa, jopa melko heikoista salakirjoituksista, voidaan tehdä kryptografisesti vahvoja toistamalla salaustoiminnot useita kertoja:
Vain muutamaa rappeutunutta tapausta lukuun ottamatta algoritmi voidaan tehdä mielivaltaisesti turvalliseksi lisäämällä kierrosten määrää.
Alkuperäinen teksti (englanniksi)[ näytäpiilottaa] Muutamia rappeutuneita tapauksia lukuun ottamatta algoritmi voidaan tehdä mielivaltaisesti turvalliseksi lisäämällä kierroksia. — B. Preneel, V. Rijmen, A. Bosselears: Salausalgoritmien periaatteet ja suorituskyky [4]Esimerkiksi joissakin AES-kilpailussa vuonna 1997 ehdokkaiksi ehdotetuissa salakirjoissa oli melko suuri määrä kierroksia: RC6(20), MARS(32), SERPENT(32), CAST(48) [1] .
Vuonna 1999 kuitenkin julkaistiin Alex Biryukovin ja David Wagnerin artikkeli, jossa kuvattiin leikkaushyökkäystä, joka kumosi tämän oletuksen. Tämän hyökkäyksen piirre oli, että se ei riipunut salauskierrosten lukumäärästä; sen menestys vaati vain kierrosten identiteetin ja mahdollisuuden salaustoiminnon kryptausanalyysiin erillisellä kierroksella. Artikkelissa kuvattiin myös tämän hyökkäyksen soveltamista TREYFER -salaukseen sekä DES -salausten (2K-DES) ja BLOWFISHin yksinkertaistettuihin versioihin [1] .
Vuonna 2000 julkaistiin toinen artikkeli, joka esitteli parannettuja versioita siirtohyökkäyksestä - "Sliding with a twist" ja "Complementation slide", mikä mahdollisti sen laajentamisen salakirjoihin, joiden kierroksilla on pieniä eroja. Joten näiden parannusten avulla murrettiin joitain DES -salauksen muutoksia sekä yksinkertaistettu 20-kierroksen versio salausstandardista GOST 28147-89 [5] [6] .
Yksinkertaisimmassa tapauksessa [7] siirtohyökkäystä sovelletaan salausalgoritmeihin, jotka ovat jonkin salaustoiminnon useita toistoja , joiden syötteenä jokaisella kierroksella on salateksti (edellisen kierroksen salauksen tulos) ja jokin kierrosavain. , joka on sama kaikilla kierroksilla. Tärkeimmät vaatimukset tämän hyökkäyksen onnistuneelle toteuttamiselle ovat [7] :
Nykyaikaisissa lohkosalauksissa pyöreät avaimet eivät yleensä ole samat. Tämä johtaa siihen, että yksinkertaisimman hyökkäyksen rakentamisessa käytetty algoritmi ei yleensä sovellu sellaisille salakirjoille ja vaatii joitain lisäyksiä.
Olkoon salausalgoritmi nro 1, joka koostuu lohkoista siten, että avainta käytetään kolmannella kierroksella (oletetaan, että avainten kokonaismäärä , avain tarvitaan myöhemmin), ja valitaan jokin pari "plaintext - salateksti" . Ensimmäisen kierroksen ulostulossa saamme tekstin , jossa on salaustoiminto.
Lisäksi Shift-hyökkäys käsittää tekstin salaamisen uudella lohkosalauksella nro 2, joka koostuu lohkoista välillä - . Merkitään -: nnen lohkon lähdössä oleva salateksti muodossa . On helppo nähdä, että tässä tapauksessa i:nnen lohkon ulostulossa saamme jo yllä olevan tekstin , mikä tarkoittaa, että teksti ja salateksti liittyvät toisiinsa relaatiolla .
Siten olemme saaneet parin , joka täyttää suhteet ja , joka ei ole muuta kuin yleinen siirtopari. Vastaavasti yksinkertaisimmassa tapauksessa nämä suhteet ovat muotoa ja .
Olettaen, että jokin teksti liittyy suhteeseen , meidän pitäisi saada salateksti salausalgoritmin #2 lähdöstä tekstin kanssa, jotta voimme vahvistaa tai kumota sen suhteilla . Triviaalin avainaikataulun tapauksessa salausalgoritmit nro 1 ja nro 2 ovat identtisiä, mikä tarkoittaa , että se voidaan saada salaamalla teksti jo olemassa olevalla lohkosalauksella. Muuten salausalgoritmit nro 1 ja nro 2 ovat erilaisia, eikä kryptanalyytikko pysty rakentamaan algoritmia nro 2, mikä tarkoittaa, että salatekstiä ei voida saada.
Kuten hyökkäysalgoritmia koskevissa huomautuksissa mainittiin, p-kierroksen samankaltaisuuden omaavien salausten kryptausanalyysi voidaan helposti pelkistää yksinkertaisimpaan siirtohyökkäykseen yhdistämällä useita kierroksia yhdeksi, mikä vastaa salauslohkojen siirtoa kierroksia. Kun kyseessä on Feistel-verkko, jossa on vuorotellen pyöreät näppäimet ja ts. Kahden kierroksen itsensä samankaltaisuuden ansiosta tämä lähestymistapa voi monimutkaistaa krypta-analyysiä ja tehdä siten siirtohyökkäyksestä tehottoman. Sen sijaan ehdotettiin, kuten ennenkin, siirtymistä vain yhdellä kierroksella kahden sijaan, mutta samalla muutetaan hieman vuoroparille asetettuja vaatimuksia.
Yllä tarkastellun ongelman kuvauksessa todettiin, että siirtoparin etsimiseksi on yleensä kyettävä työskentelemään kahdella -lohkosalauksella - alkuperäisellä, joka koostuu lohkoista välillä - , ja uusi, joka koostuu lohkoista . Täydennysdialla voit työskennellä vain alkuperäisen lohkosalauksen kanssa.
Vaikka seuraava päättely osoitetaan 4-kierroksen salauksella, se voidaan laajentaa mihin tahansa kierrosten määrään. Katsotaanpa ensin, kuinka selväteksti muuttuu eri salauskierroksilla. Esitetään pelkkä teksti muodossa , missä ja ovat tekstin vasen ja oikea osa, vastaavasti.
Pyöreä numero | Vasen puoli | Oikea osa |
---|---|---|
yksi | ||
2 | ||
3 | ||
neljä |
Merkitään kierroksen 1 ulostulossa oleva teksti ja salateksti . Huomaa nyt, että salatekstin löytämiseksi 4-kierroksen lohkosalauksen lähdöstä avainaikataululla riittää, että lisäät eron alkuperäisen salauksen jokaisen kierroksen oikealle puolelle ja sitten salaat tekstin tuloksena oleva salaus (kuva 2, oikea kaavio). Tätä varten syötämme tekstin alkuperäisen salauksen syötteeseen . Merkitään salateksti muodossa . Pohditaan kuinka teksti muuttuu eri salauskierroksilla.
Pyöreä numero | Vasen puoli | Oikea osa |
---|---|---|
yksi | ||
2 | ||
3 | ||
neljä |
Tästä voidaan nähdä, että tuotu ero säilyy joka kierroksella, mikä tarkoittaa, että salatekstit ja liittyvät toisiinsa suhteilla: ja , ja pareilla "selkoteksti - salateksti" sekä suhteilla ja .
Jos tekstit liittyvät suhteeseen , he sanovat, että teksteillä ja on leikkausero ( englanniksi dia ero ) .
Siten leikkausparille saadaan seuraavat yhtälöt:
Kuten ennenkin, bittisten tekstien tapauksessa siirtoparin löytämiseen tarvitaan selkeitä tekstejä . Leikkausparin on nyt täytettävä yhtälö (katso kuva 2). Potentiaalisen siirtoparin löytämisen tapauksessa toinen yhtälö mahdollistaa ehdokkaan löytämisen , ja jos funktio on riittävän altis salausanalyysille, niin näiden yhtälöiden avulla voimme löytää mahdolliset halutut avaimet ja . Sen jälkeen on vain tarkistettava vääriä positiivisia tuloksia.
Liukuminen kierteellä [ 5 ]Ongelmankäsityksessä määritetty vaatimus kyetä toimimaan alkuperäisen salauksen #1 kanssa, joka koostuu lohkoista välillä - , ja uudella salauksella #2, joka koostuu lohkoista alkaen - , voidaan helposti muuntaa käyttämällä ns. shift- ja kierto -lähestymistapa.
Jos jätetään pois tekstin vasemman ja oikean osan viimeinen permutaatio ja käännetään avainten järjestys, niin salauksen purku tapahtuu Feistel-verkossa täsmälleen samalla tavalla kuin salaus [1] . Siirrä ja kierrä -lähestymistapa käyttää tätä ominaisuutta, nimittäin, se ehdottaa salauksenpurkualgoritmin käyttöä salauksena #2 (katso kuva 3).
Tällä lähestymistavalla ei ole perustavanlaatuisia eroja yksinkertaisimpaan algoritmiin. Kuten yksinkertaisimmassa tapauksessa, vaatimukset vaihtoparille , jossa . Siten saamme yhtälöt:
ja ehto, joka helpottaa vuoroparien löytämistä:
Kuten tavallista, bittitekstien tapauksessa tarvitaan selkeitä tekstejä siirtoparin löytämiseen . Jos se löytyy, funktion haavoittuvuus antaa sinun löytää avaimen yhtälöistä .
Vaadittujen tekstien lukumäärä tässä vaiheessa voidaan vähentää arvoon . Tätä varten salaamme erilaisia lomakkeen tekstejä ja puramme lomakkeen eri tekstejä , joissa ja ovat kiinteät ja täyttävät ehdon . Siten, koska työskentelemme nyt itse asiassa --bittisten tekstien kanssa, syntymäpäiväparadoksin mukaan näiden "selkoteksti-salateksti"-parien joukossa, on suuri todennäköisyys siirtoparille.
Avain löytyy soveltamalla p-kierroksen itsesamankaltaisuuden omaavien lohkosalausten yleiselle tapaukselle kuvattua menetelmää, eli yhdistämällä jokaista seuraavaa kaksi kierrosta yhdeksi - näin pelkistetään ongelma yksinkertaisimpaan tapaukseen. Vaikka pyöreän avaimen koko kaksinkertaistuu, tämä ei vaikeuta kryptausanalyysiä, koska avain , joka on puolet uudesta pyöreästä avaimesta, on jo tiedossa, ja meidän on löydettävä vain toinen puolisko, joka on yhtä suuri kuin kierroksen koko näppäile alkuperäinen ongelma.
Erillisenä muunnelmana voidaan pitää kahden yllä kuvatun lähestymistavan - Complementation slide ja Sliding with a twist - samanaikaista käyttöä, mikä mahdollistaa siirtohyökkäyksen laajentamisen salauksiin, joissa on 4-kierroksen samankaltaisuus [5] .
Epätasaisten kierrosten salausten kryptausanalyysin ongelma eroaa kaikista tähän mennessä käsitellyistä tapauksista, joiden ratkaisussa ei voida käyttää mitään tarkasteluista hyökkäyksen modifikaatioista. Tällaisten salausten tapauksessa ehdotettiin uudelleenkohdistavaa diahyökkäystä [ 8 ] , joka esitettiin esimerkillä DES-salauksen modifikaatioista, erityisesti DES :n täyden 16-kierroksen version esimerkistä.
Sliding-linear attack ( englanniksi slide-linear attack ) [9] on esimerkki siirtohyökkäyksen toteutuksesta lineaarisen krypta -analyysin periaatteita käyttäen . Tämän hyökkäyksen työ näytettiin salauksella 4K-DES.
On myös parannuksia, jotka nopeuttavat jo olemassa olevien leikkausiskun muutosten toteuttamista. Erityisesti yksi näistä parannuksista, jotka on kuvattu teoksessa Eli Biham, Orr Dunkelman, Nathan Keller: Improved Slide Attacks [10] , mahdollistaa siirtoparien löytämisen paljon nopeammin käyttämällä syklistä salausrakennetta ja vastaavia avainpermutaatioita. Tämän muunnoksen toiminta esitettiin GOST 28147-89 (GOST) -salauksen eri muunnelmien esimerkissä.
Alkuperäisen tarkoituksensa - lohkosalausten hyökkäämisen - lisäksi shift-hyökkäyksen periaatteet ovat löytäneet käyttöä myös hash-funktion krypta-analyysin alalla. Samoin kuin lohkosalausten tapauksessa, jossa siirtohyökkäystä on käytetty avainaikataulun löytämiseen, se on osoittautunut mahdollisesti soveltuvaksi sen salaisen avaimen löytämiseen, jota käytetään lähetetyn viestin hajautusarvon luomiseen ja vahvistamiseen. Tämä lähestymistapa osoitettiin erityisesti simuloidun lisäyksen (MAC) luomisen esimerkissä .
Shift-hyökkäys osoittautui myös hyödylliseksi paitsi kryptografisissa hash-funktioissa, jotka ottavat parametriksi jonkin salaisen avaimen arvon, vaan myös sellaisissa hash-funktioissa, jotka tuottavat hajautusarvon pelkän viestin perusteella. Tällaisten toimintojen siirtohyökkäykseen perustuva analyysi mahdollistaa suurella todennäköisyydellä jotkin siirtoominaisuudet ja sen seurauksena tietyt hajautusalgoritmien toimintamallit.
Koska avainaikataulun haavoittuvuuksia käytetään vuorohyökkäyksen aikana, yksi toimenpiteistä on monimutkaista sitä. Erityisesti avainaikataulussa tulee mahdollisuuksien mukaan välttää syklisiä toistoja tai käyttää ainakin riittävän suurta toistojaksoa. Jos näppäimiä on vähän, yksinkertaisen jaksollisen toiston sijasta tulisi käyttää jotakin satunnaista järjestystä niiden järjestyksessä.
Avainaikataulun heikkouden lisäksi myös vuorohyökkäys hyödyntää samoja kierroksia. Yksi tapa välttää tämä on käyttää eri kierroksilla salaustoiminnon parametreina joitain erilaisia pyöreitä vakioita - näin voit tehdä eroja yksittäisten salauslohkojen toiminnassa ilman, että koko salausalgoritmi muuttuu merkittävästi.
Myös siirtohyökkäyksen tehokkuutta voidaan vähentää merkittävästi lisäämällä pyöreän salaustoiminnon kryptografista vahvuutta. Joten sen vastustuskyky selkeisiin teksteihin perustuvia hyökkäyksiä vastaan vaikeuttaa pyöreän avaimen löytämistä jopa vaihtoparin ollessa läsnä.