Találkozás a középső módszerben

A kriptoanalízisben a meet-in-the-middle módszer vagy a " me-in-the-middle attack " a kriptográfiai algoritmusok elleni  támadások osztálya, amelyek aszimptotikusan csökkentik a teljes felsorolás idejét az " oszd meg és uralkodj " elv miatt. , valamint a szükséges memória mennyiségének növelése . Ezt a módszert először Whitfield Diffie és Martin Hellman javasolta 1977-ben [1] .

Kiindulási feltételek

A nyílt (titkosítatlan) és a titkosított szövegek megadva. A kriptorendszer titkosítási ciklusokból áll . A ciklikus kulcsok függetlenek, és nem osztoznak közös biteken. A rendszerbillentyű a -ciklikus billentyűk kombinációja . A feladat a kulcs megtalálása .

Egyszerű esetmegoldás

Egy egyszerű példa a kettős szekvenciális blokk titkosítás két különböző kulccsal és . A titkosítási folyamat így néz ki:

,

ahol  az egyszerű szöveg,  a titkosított szöveg, és  az egyszeri titkosítási művelet a kulccsal . Ennek megfelelően a fordított művelet - dekódolás - így néz ki:

Első pillantásra úgy tűnik, hogy a kettős titkosítás használata nagyban növeli az egész rendszer biztonságát, mivel most két kulcsot kell rendezni , nem pedig egyet. A DES algoritmus esetén a biztonság ról -ra növekszik . Azonban nem. Egy támadó két táblát hozhat létre:

  1. Minden érték az összes lehetséges értékhez ,
  2. Minden érték az összes lehetséges értékhez .

Ekkor már csak egyezéseket kell találnia ezekben a táblázatokban, vagyis olyan értékeket és , hogy . Minden egyezés a feltételnek megfelelő kulcskészletnek felel meg.

Ez a támadás titkosítási-dekódolási műveleteket igényelt (csak kétszer annyit, mint egy kulcs felsorolásához) és memóriát. További optimalizálás - hash táblák használata , számítások csak a kulcsok feléhez (a DES esetén a kimerítő keresés valójában csak műveleteket igényel) - csökkenthetik ezeket a követelményeket. A támadás fő eredménye, hogy a kétkulcsos szekvenciális titkosítás csak megduplázza a brute force idejét.

Általános megoldás

Jelöljük az algoritmus transzformációját így , ahol a nyílt szöveg és a titkosított szöveg. Kompozícióként ábrázolható , ahol  ciklikus transzformáció van a kulcson . Minden kulcs egy bináris hosszúságú vektor , a rendszer nyilvános kulcsa pedig egy hosszvektor .

Memória feltöltése

Minden érték ki van rendezve , azaz az első ciklikus billentyűk. Minden ilyen kulcson titkosítjuk a nyílt szöveget  - (vagyis titkosítási ciklusokon megyünk keresztül a helyett ). Egy bizonyos memóriacímnek fogjuk tekinteni, és erre a címre írjuk az értéket . Minden értéket át kell ismételni .

Kulcsdefiníció

Minden lehetséges rendezve van . A kapott kulcsokon a titkosított szöveg dekódolásra kerül  - . Ha a cím nem üres, akkor onnan kapjuk a kulcsot, és kapunk egy kulcsjelöltet .

Meg kell azonban jegyezni, hogy az elsőként kapott jelölt nem feltétlenül az igazi kulcs. Igen, a és adatok esetében , de a valódi kulcsból nyert egyszerű szöveges titkosított szöveg egyéb értékeinél az egyenlőség sérülhet. Minden a kriptorendszer sajátosságaitól függ . De néha elég egy ilyen "pszeudo-ekvivalens" kulcsot szerezni. Ellenkező esetben az eljárások befejezése után egy bizonyos kulcskészletet kapunk , amelyek között van az igazi kulcs.

Ha egy adott alkalmazást veszünk figyelembe, akkor a rejtjelezett szöveg és az egyszerű szöveg lehet nagy (például grafikus fájlok), és kellően nagy számú blokkot jelenthet egy blokk titkosításhoz . Ebben az esetben a folyamat felgyorsítása érdekében nem a teljes szöveget titkosíthatja és dekódolhatja, hanem csak az első blokkját (ami sokkal gyorsabb), majd miután sok jelöltet kapott, megkeresi benne a valódi kulcsot, ellenőrizve azt. a fennmaradó blokkokat.

Támadás a billentyűsorozat 3 részre bontásával

Egyes esetekben nehéz lehet egy kulcssorozat bitjeit a különböző kulcsokhoz kapcsolódó részekre szétválasztani. Ebben az esetben a Bogdanov és Richberger által 2011-ben javasolt 3 részhalmazból álló MITM támadás Ez az algoritmus akkor alkalmazható, ha a kulcsbitsorozatokat nem lehet két független részre osztani. Két fázisból áll: a kulcsok kivonásából és ellenőrzéséből [2] .

Kulcskivonási fázis

Ennek a fázisnak az elején a rejtjel két alrejtjelre oszlik, és a támadás általános esetéhez hasonlóan lehetővé teszi az egyik alrejtjel egyes biteinek használatát egy másikban. Tehát, ha , akkor ; ebben az esetben az in használt kulcs bitjeit , in  — -vel jelöljük . Ezután a billentyűsor három részre osztható:

  1. az és  a halmazok metszéspontja ,
  2.  - kulcsbitek, amelyek csak a -ban vannak ,
  3.  - kulcsbitek, amelyek csak a -ban vannak .

Ezután a támadást a középső találkozás módszerével hajtják végre a következő algoritmus szerint:

  1. Számítsa ki a köztes értéket , ahol  a nyílt szöveg, és  néhány kulcsbit a és -ból , azaz  a kulcson lévő nyílt szöveg közbenső titkosításának eredménye .
  2. Számítsa ki a köztes értéket , ahol  a privát szöveg, és  néhány kulcsbit a és -ből ,  vagyis a kulcson lévő privát szöveg közbenső visszafejtésének eredménye .
  3. Hasonlítsa össze és . Egyezés esetén jelöltet kapunk a kulcsokra.

Kulcsérvényesítési fázis

A kulcsok ellenőrzéséhez a beérkezett jelölteket több pár ismert nyilvános-magán szöveghez hasonlítják. Általában nem nagyon sok ilyen szövegpárra van szükség az ellenőrzéshez [2] .

Példa

Példaként vegyünk egy támadást a KTANTAN rejtjelcsalád ellen [3] , amely lehetővé tette a kulcs megszerzésének számítási bonyolultságának csökkentését (brute force attack) -ról [1] -re .

Támadás előkészítése

A KTANTAN-t használó 254 titkosítási kör mindegyike a kulcs 2 véletlenszerű bitjét használja egy 80 bites készletből. Ezáltal az algoritmus bonyolultsága csak a körök számától függ. A támadás indításakor a szerzők a következő jellemzőket vették észre:

  • Az 1-től 111-ig terjedő körökben a következő kulcsbiteket nem használták: .
  • A 131-től 254-ig terjedő körben a következő kulcsbiteket nem használták: .

Ez lehetővé tette a kulcsbitek felosztását a következő csoportokra:

  1.  - közös kulcsbitek: a fent nem említett 68 bit.
  2.  - csak a körök első blokkjában használt bitek (1-től 111-ig),
  3.  - csak a második körben használt bitek (131-től 254-ig).
Első fázis: Kulcskivonás

Probléma adódott a fent leírt és értékeinek kiszámításakor , mivel a 112-től 130-ig terjedő körök hiányoznak a mérlegelésből, de ezután részleges összehasonlításra került sor : a támadás szerzői 8 bites egyezést észleltek. és , normál támadással ellenőrizve őket a találkozó a középső módszerrel a 127. fordulóban. Ebben a fázisban ennek a 8 bitnek az értékeit az alrejtjelekben hasonlították össze . Ez növelte a kulcsfontosságú jelöltek számát, de nem a számítási bonyolultságot.

Második fázis: a kulcsok ellenőrzése

A KTANTAN32 algoritmus kulcsjelöltjeinek teszteléséhez átlagosan még két nyilvános-privát szövegpárra volt szükség a kulcs kinyeréséhez.

Eredmények
  • KTANTAN32: A kulcsfontosságú kitalálás számítási bonyolultsága három nyilvános-privát szövegpár használatára csökkent.
  • KTANTAN48: A kulcsfontosságú kitalálás számítási bonyolultsága két nyilvános-privát szövegpár használatára csökkent.
  • KTANTAN64: A kulcsfontosságú kitalálás számítási bonyolultsága két nyilvános-privát szövegpár használatára csökkent.

Ez azonban nem a legjobb támadás a KTANTAN titkosítócsalád ellen. 2011-ben egy támadást hajtottak végre [4] , amely az algoritmus számítási bonyolultságát négy nyitott-zárt szövegpár használatára csökkentette.

Támadás egy teljes kétoldalú gráf ellen

A teljes kétoldalú gráftámadást a proxytámadási kísérletek számának növelésére használják egy teljes kétoldalú gráf felépítésével . Diffie és Hellman javasolta 1977-ben.

Többváltozós algoritmus

A többdimenziós találkozás a közepén algoritmust akkor használják, ha nagyszámú titkosítási ciklust használnak különböző kulcsokkal a blokkrejtjeleken . Ez az algoritmus a szokásos "középen találkozás" helyett a kriptotextus több köztes ponttal való felosztását használja [5] .

Feltételezzük, hogy a támadott szöveget bizonyos számú alkalommal titkosítják egy blokk titkosítással:

Algoritmus

  • Számított:
  d -vel együtt tárolódik .   d -vel együtt tárolódik .
  • Minden lehetséges köztes állapothoz számítsa ki:
  minden egyezéshez egy elemmel tól ig , és tárolódnak .   a következővel mentve : .
  • Minden lehetséges köztes állapothoz számítsa ki:
  minden egyes találatnál a -ból származó elemmel ellenőrzik a -val való egyezést , majd a és a -ban tárolódnak .   a következővel mentve : .
  • Minden lehetséges köztes állapothoz számítsa ki:
  és minden egyes találatnál a -ból származó elemmel egyezés ellenőrződik a -val , majd a és a -ban tárolódnak .   és minden egyezéshez -val , egy meccs -val

Ezután a jelöltek talált sorozatát egy másik nyilvános-privát szövegpáron tesztelik, hogy megerősítsék a kulcsok érvényességét. Meg kell jegyezni, hogy az algoritmus rekurzív: az állapot kulcsainak kiválasztása az állapot eredményein alapul . Ez egy exponenciális bonyolultságú elemet vezet be ebbe az algoritmusba [5] .

Nehézség

Ennek a támadásnak az időbeli összetettsége az

Ha már a memóriahasználatról beszélünk, könnyen belátható, hogy ahogy mindegyik növekszik , egyre több korlátozást vezetnek be, ami csökkenti a ráírható jelöltek számát. Ez sokkal kevesebbet jelent .

A felhasznált memória felső határa:

hol  van a kulcs teljes hossza.

Az adatok felhasználásának bonyolultsága a hamis kulcs „átadásának” valószínűségétől függ. Ez a valószínűség egyenlő , ahol  az első köztes állapot hossza, amely legtöbbször megegyezik a blokk méretével. Tekintettel a kulcsfontosságú jelöltek számára az első fázis után, a bonyolultság .

Ennek eredményeként azt kapjuk , hogy hol  van a blokk mérete.

Minden alkalommal, amikor egy jelölt kulcssorozatot tesztelnek egy új nyilvános-privát szövegpáron, a teszten átmenő kulcsok számát megszorozzák a kulcs átadásának valószínűségével, ami .

A brute-force támadás egy része (a kulcsok ellenőrzése az új nyilvános-privát szövegpárok ellen) időbonyolultságú , amelyben nyilvánvalóan a következő kifejezések egyre gyorsabban nullázódnak.

Ennek eredményeként az adatok összetettsége hasonló megítélés szerint megközelítőleg a nyilvános-privát kulcspárokra korlátozódik.

Jegyzetek

  1. 12 Diffie , Whitfield; Hellman, Martin E. Exhaustive Cryptanalysis of the NBS Data Encryption Standard  (angol)  // Computer : Journal. - 1977. - június ( 10. évf. , 6. sz.). - 74-84 . o . - doi : 10.1109/CM.1977.217750 . Az eredetiből archiválva : 2009. május 14.
  2. 1 2 Andrey Bogdanov és Christian Rechberger. "A 3-Subset Meet-in-the-Middle Attack: Cryptanalysis of the Lightweight Block Cipher KTANTAN" Archiválva : 2018. november 7. a Wayback Machine -nél
  3. Christophe De Cannière, Orr Dunkelman, Miroslav Knežević. "KATAN & KTANTAN – Kis és hatékony hardver-orientált blokkrejtjelek családja" archiválva : 2018. április 20. a Wayback Machine -nél
  4. Lei Wei, Christian Rechberger, Jian Guo, Hongjun Wu, Huaxiong Wang és San Ling. "A KTANTAN továbbfejlesztett Meet-in-the-Middle Cryptanalysis" archiválva 2018. november 7-én a Wayback Machine -nél
  5. 1 2 3 Zhu, Bo; Guang Gong. MD-MITM Attack és alkalmazásai a GOST-hoz, a KTANTAN-hoz és a Hummingbird-2-höz  (angol)  // eCrypt : folyóirat. – 2011.

Irodalom