Tapaaminen keskellä menetelmää

Kryptoanalyysissä "meet-in-the-middle" -menetelmä tai " meet-in-the-middle-hyökkäys " on luokka salausalgoritmeja vastaan ​​tehtyjä hyökkäyksiä, jotka lyhentävät asymptoottisesti täydellisen luetteloinnin aikaa " hajoita ja hallitse " -periaatteen vuoksi. , sekä lisäämällä tarvittavan muistin määrää . Tätä menetelmää ehdottivat ensimmäisen kerran Whitfield Diffie ja Martin Hellman vuonna 1977 [1] .  

Alkuehdot

Avoin (salaamaton) ja salattu teksti on annettu. Salausjärjestelmä koostuu salausjaksoista . Sykliset näppäimet ovat riippumattomia ja niillä ei ole yhteisiä bittejä. Järjestelmänäppäin on syklisten näppäinten yhdistelmä . Tehtävänä on löytää avain .

Yksinkertainen tapausratkaisu

Yksinkertainen esimerkki on kaksinkertainen peräkkäinen lohkosalaus kahdella eri avaimella ja . Salausprosessi näyttää tältä:

,

missä  on selväteksti,  on salateksti ja  on kertaluonteinen salausoperaatio avaimella . Vastaavasti käänteinen toiminta - salauksen purku - näyttää tältä:

Ensi silmäyksellä näyttää siltä, ​​​​että kaksoissalauksen käyttö lisää suuresti koko järjestelmän turvallisuutta, koska nyt on selvitettävä kaksi avainta, ei yksi. DES-algoritmin tapauksessa suojaus kasvaa arvosta arvoon . Se ei kuitenkaan ole. Hyökkääjä voi luoda kaksi taulukkoa:

  1. Kaikki arvot kaikille mahdollisille arvoille ,
  2. Kaikki arvot kaikille mahdollisille arvoille .

Sitten hänen tarvitsee vain löytää osumat näistä taulukoista, eli sellaiset arvot ja , että . Jokainen vastaavuus vastaa ehdon täyttävää näppäinsarjaa.

Tämä hyökkäys vaati salaus-salauksenpurkuoperaatioita (vain kaksi kertaa enemmän kuin yhden avaimen laskeminen) ja muistia. Lisäoptimoinnit - hash-taulukoiden käyttö , laskelmat vain puolelle avaimista ( DES :ssä tyhjentävä haku vaatii itse asiassa vain toimintoja) - voivat vähentää näitä vaatimuksia. Hyökkäyksen tärkein tulos on se, että kahden avaimen peräkkäinen salaus vain kaksinkertaistaa raa'an voiman ajan.

Yleinen ratkaisu

Merkitään algoritmin muunnos muodossa , jossa on selväteksti ja on salateksti. Se voidaan esittää sävellyksenä , jossa  on syklinen muunnos avaimessa . Jokainen avain on binääripituusvektori ja järjestelmän julkinen avain on pituusvektori .

Muistin täyttäminen

Kaikki arvot on järjestetty , eli ensimmäiset sykliset näppäimet. Jokaisessa tällaisessa avaimessa salaamme selkeän tekstin  - (eli käymme läpi salausjaksot :n sijaan ). Pidämme sitä tiettynä muistiosoitteena ja kirjoitamme arvon tähän osoitteeseen . On tarpeen toistaa kaikki arvot .

Avaimen määritelmä

Kaikki mahdolliset on selvitetty . Vastaanotetuilla avaimilla salakirjoitus puretaan  - . Jos osoite ei ole tyhjä, saamme sieltä avaimen ja saamme avainehdokkaan .

On kuitenkin huomattava, että ensimmäinen vastaanottama ehdokas ei välttämättä ole oikea avain. Kyllä, datan ja , mutta todellisesta avaimesta saadun selkeän tekstin salatekstin muilla arvoilla tasa-arvo saattaa loukata. Kaikki riippuu kryptojärjestelmän erityisominaisuuksista . Mutta joskus riittää saada tällainen "pseudo-ekvivalentti" avain. Muuten toimenpiteiden suorittamisen jälkeen saadaan tietty joukko avaimia , joiden joukossa on todellinen avain.

Jos tarkastelemme tiettyä sovellusta, salateksti ja pelkkä teksti voivat olla suuria (esimerkiksi grafiikkatiedostot) ja edustaa riittävän suurta määrää lohkoja lohkosalaukselle . Tässä tapauksessa prosessin nopeuttamiseksi voit salata ja purkaa ei koko tekstiä, vaan vain sen ensimmäisen lohkon (joka on paljon nopeampi) ja sitten saatuaan useita ehdokkaita etsiä siitä todellista avainta ja tarkistaa se. loput lohkot.

Hyökkäys, jossa näppäinsarja jaetaan kolmeen osaan

Joissakin tapauksissa voi olla vaikeaa erottaa näppäinsarjan bittejä eri avaimiin liittyviin osiin. Tässä tapauksessa käytetään Bogdanovin ja Richbergerin vuonna 2011 ehdottamaa 3-osajoukon MITM-hyökkäysalgoritmia , joka perustuu tavanomaiseen tapaamismenetelmään keskellä. Tätä algoritmia voidaan soveltaa, kun avainbittisarjoja ei ole mahdollista jakaa kahteen itsenäiseen osaan. Se koostuu kahdesta vaiheesta: avainten poimiminen ja tarkistaminen [2] .

Avaimen purkuvaihe

Tämän vaiheen alussa salaus jaetaan 2 alisalaukseen ja , kuten hyökkäyksen yleisessä tapauksessa, kuitenkin mahdollistaa yhden alisalauksen joidenkin bittien käytön toisessa. Joten jos , niin ; tässä tapauksessa käytetyn avaimen bitit merkitään , ja in  — . Sitten näppäinsarja voidaan jakaa kolmeen osaan:

  1.  on joukkojen ja ,
  2.  - avainbitit, jotka ovat vain ,
  3.  - avainbitit, jotka ovat vain .

Seuraavaksi hyökkäys suoritetaan tapaamismenetelmällä keskellä seuraavan algoritmin mukaisesti:

  1. Laske väliarvo , jossa  on selkeä teksti, ja  ovat joitakin avainbittejä kohteesta ja , eli se  on tulos avaimessa olevan selkeän tekstin välisalauksesta .
  2. Laske väliarvo , jossa  on yksityinen teksti, ja  ovat joitakin avainbittejä kohteesta ja , eli se  on tulos avaimen yksityisen tekstin salauksen välipurkusta .
  3. Vertaa ja . Ottelun sattuessa saamme ehdokkaan avaimiin.

Avaimen validointivaihe

Avainten tarkistamiseksi vastaanotetut ehdokkaat verrataan useisiin tunnettuihin julkisen ja yksityisen tekstin pareihin. Yleensä varmentamiseen ei tarvita kovin suurta määrää tällaisia ​​tekstipareja [2] .

Esimerkki

Otetaan esimerkkinä hyökkäys KTANTAN-salakirjoitusperheeseen [3] , joka mahdollisti avaimen saamisen laskennallisen monimutkaisuuden vähentämisen arvosta (raaka voimahyökkäys) arvoon [1] .

Valmistellaan hyökkäystä

Jokainen KTANTANin 254 salauskierroksesta käyttää 2 satunnaista avaimen bittiä 80-bittisestä sarjasta. Tämä tekee algoritmin monimutkaisuudesta riippuvaiseksi vain kierrosten lukumäärästä. Aloittaessaan hyökkäyksen kirjoittajat huomasivat seuraavat ominaisuudet:

  • Kierroksilla 1-111 seuraavia avainbittejä ei käytetty: .
  • Kierroksilla 131-254 seuraavia avainbittejä ei käytetty: .

Tämä mahdollisti avainbittien jakamisen seuraaviin ryhmiin:

  1.  - yleiset avainbitit: ne 68 bittiä, joita ei mainita yllä.
  2.  - bitit, joita käytetään vain kierrosten ensimmäisessä lohkossa (1 - 111),
  3.  - bittejä käytetään vain kierrosten toisessa lohkossa (131 - 254).
Vaihe yksi: Avaimen purkaminen

Yllä kuvattujen ja arvojen laskemisessa oli ongelma , koska kierrokset 112:sta 130:een puuttuvat tarkastelusta, mutta sitten suoritettiin osittainen vertailu : hyökkäyksen tekijät huomasivat 8 bitin osuman. ja , tarkistamalla ne normaalilla hyökkäyksellä käyttämällä keskikokousmenetelmää kierroksella 127. Tältä osin tässä vaiheessa verrattiin näiden 8 bitin arvoja alikoodeissa ja . Tämä lisäsi keskeisten ehdokkaiden määrää, mutta ei laskennallista monimutkaisuutta.

Toinen vaihe: avainten tarkistus

KTANTAN32-algoritmin avainehdokkaiden testaamiseksi kesti keskimäärin kaksi julkisen ja yksityisen sektorin tekstiparia lisää avaimen purkamiseen.

Tulokset
  • KTANTAN32: Avainarvauksen laskennallinen monimutkaisuus on vähennetty kolmen julkisen ja yksityisen tekstiparin käyttämiseen.
  • KTANTAN48: Avain arvauksen laskennallinen monimutkaisuus on vähennetty kahden julkisen ja yksityisen tekstiparin käyttämiseen.
  • KTANTAN64: Avain arvauksen laskennallinen monimutkaisuus on vähennetty kahden julkisen ja yksityisen tekstiparin käyttämiseen.

Tämä ei kuitenkaan ole paras hyökkäys KTANTANin salausperhettä vastaan. Vuonna 2011 tehtiin hyökkäys [4] , joka vähensi algoritmin laskennallisen monimutkaisuuden käyttämään neljää avointa-suljettua tekstiparia.

Hyökkäys täydelliseen kaksiosaiseen kaavioon

Täysin kaksiosaisen graafin hyökkäystä käytetään lisäämään välityspalvelinhyökkäysyritysten määrää rakentamalla täysi kaksiosainen kaavio . Diffien ja Hellmanin ehdottama vuonna 1977.

Monimuuttujaalgoritmi

Moniulotteista keskikokous-algoritmia käytetään, kun käytetään suurta määrää salausjaksoja eri avaimilla lohkosalauksissa . Tavallisen "kokouksen keskellä" sijaan tämä algoritmi käyttää kryptotekstin jakamista useilla välipisteillä [5] .

Oletetaan, että hyökkäyksen kohteena oleva teksti on salattu tietyn määrän kertoja lohkosalauksella:

Algoritmi

  • Laskettu:
  tallennetaan yhdessä d :n kanssa .   tallennetaan yhdessä d :n kanssa .
  • Laske jokaiselle mahdolliselle välitilalle :
  jokaiselle ottelulle , jossa on elementti välillä - , ja tallennetaan .   tallennettu sisään .
  • Laske jokaiselle mahdolliselle välitilalle :
  jokaiselle osumalle elementin kanssa osoitteesta tarkistetaan , minkä jälkeen ja tallennetaan kohtaan .   tallennettu sisään .
  • Laske jokaiselle mahdolliselle välitilalle :
  ja jokaiselle osumalle elementin kanssa osoitteesta tarkistetaan , minkä jälkeen ja tallennetaan tiedostoon .   ja jokaisesta ottelusta , ottelun kanssa

Seuraavaksi löydettyä ehdokkaiden sarjaa testataan toisella julkisen ja yksityisen tekstin parilla avainten oikeellisuuden varmistamiseksi. On huomattava, että algoritmi on rekursiivinen: tilan avainten valinta perustuu tilan tuloksiin . Tämä tuo tähän algoritmiin eksponentiaalisen monimutkaisen elementin [5] .

Vaikeus

Tämän hyökkäyksen aika monimutkaisuus on

Muistin käytöstä puheen ollen on helppo nähdä, että jokaisen kasvaessa rajoituksia asetetaan yhä enemmän, mikä vähentää siihen kirjoitettavien ehdokkaiden määrää. Tämä tarkoittaa paljon vähemmän .

Käytetyn muistin määrän yläraja:

missä  on avaimen kokonaispituus.

Tietojen käytön monimutkaisuus riippuu väärän avaimen "läpäisemisen" todennäköisyydestä. Tämä todennäköisyys on yhtä suuri kuin , jossa  on ensimmäisen välitilan pituus, joka on useimmiten yhtä suuri kuin lohkon koko. Kun otetaan huomioon avainehdokkaiden määrä ensimmäisen vaiheen jälkeen, monimutkaisuus on .

Tuloksena saamme , missä  on lohkon koko.

Joka kerta kun ehdokasavainsarja testataan uudella julkisen ja yksityisen sektorin tekstiparilla, testin läpäisevien avainten määrä kerrotaan avaimen läpäisyn todennäköisyydellä, joka on .

Osa raa'an voiman hyökkäyksestä (avainten tarkistaminen uusia julkisen ja yksityisen sektorin tekstipareja vastaan) on ajallisesti monimutkainen , jossa myöhemmillä termeillä on luonnollisesti tapana nollata nopeammin ja nopeammin.

Tämän seurauksena tietojen monimutkaisuus on samanlaisten arvioiden mukaan rajoitettu noin julkisen ja yksityisen sektorin avainpareihin.

Muistiinpanot

  1. 12 Diffie , Whitfield; Hellman, Martin E. NBS Data Encryption Standardin kattava salausanalyysi  (englanti)  // Computer : Journal. - 1977. - Kesäkuu ( osa 10 , nro 6 ). - s. 74-84 . - doi : 10.1109/CM.1977.217750 . Arkistoitu alkuperäisestä 14. toukokuuta 2009.
  2. 1 2 Andrey Bogdanov ja Christian Rechberger. "A 3-Subset Meet-in-the-Middle Attack: Cryptanalysis of the Lightweight Block Cipher KTANTAN" Arkistoitu 7. marraskuuta 2018 Wayback Machinessa
  3. Christophe De Cannière, Orr Dunkelman, Miroslav Knežević. "KATAN & KTANTAN – Pienten ja tehokkaiden laitteistolähtöisten lohkosalausten perhe" Arkistoitu 20. huhtikuuta 2018 Wayback Machinessa
  4. Lei Wei, Christian Rechberger, Jian Guo, Hongjun Wu, Huaxiong Wang ja San Ling. "KTANTANin parannettu Meet-in-the-Middle Cryptanalysis" Arkistoitu 7. marraskuuta 2018 Wayback Machinessa
  5. 1 2 3 Zhu, Bo; Guang Gong. MD-MITM Attack ja sen sovellukset GOST:iin, KTANTANiin ja Hummingbird-2 :een  (englanniksi)  // eCrypt : Journal. – 2011.

Kirjallisuus