Nyírási támadás

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2018. május 6-án felülvizsgált verziótól ; az ellenőrzések 9 szerkesztést igényelnek .

Shift attack ( eng.  slide attack ) - kriptográfiai támadás , amely általános esetben egy kiválasztott sima szövegen alapuló támadás , amely lehetővé teszi a blokk többkörös rejtjeleinek kriptoanalízisét, függetlenül a felhasznált körök számától. Alex Biryukov és David Wagner javasolta 1999-ben [1] .

Létrehozási előzmények

A nyírási támadás létrehozásának ötlete először Edna Grossmannál és Brian Tuckermannél merült fel 1977-ben. A megfelelő jelentést [2] az IBM -mel közösen tették közzé . Grossman és Tuckerman meg tudta mutatni a támadás lehetőségét egy meglehetősen gyenge New Data Seal (NDS) titkosítás ellen . A támadás azt a tényt használja ki, hogy a titkosító minden körben csak ugyanazt a billentyűt keveri, ugyanazt az asztalt használja minden körben. Az egyszerű szövegek használata ezt megkerüli, és lehetővé teszi számunkra, hogy a shift támadás legkorábbi változatának tekintsük.

1990- ben javasolták a differenciális kriptoanalízist , amely bemutatja a többfordulós DES-szerű kriptorendszerek sebezhetőségét [3] . A kriptográfiai erejük biztosításának egyik módja a felhasznált lövedékek számának növelése volt, ami a támadás számítási bonyolultságát a számukkal arányosan növelte. Ennek a fejlesztésnek a használata számos titkosítási algoritmus esetében különösen azon az empirikus ítéleten alapult, hogy a titkosítási műveletek többszöri megismétlésével bármilyen, még meglehetősen gyenge rejtjel is kriptográfiailag erőssé tehető:

Az algoritmus néhány degenerált eset kivételével tetszőlegesen biztonságossá tehető a körök számának növelésével.

Eredeti szöveg  (angol)[ showelrejt] Néhány degenerált eset kivételével egy algoritmus tetszőlegesen biztonságossá tehető több kör hozzáadásával. – B. Preneel, V. Rijmen, A. Bosselears: Principles and Performance of Cryptographic Algorithms [4]

Például néhány rejtjel, amelyet 1997-ben jelöltek az AES versenyre, meglehetősen sok fordulót tartalmaztak: RC6(20), MARS(32), SERPENT(32), CAST(48) [1] .

1999-ben azonban megjelent Alex Biryukov és David Wagner egy nyírási támadást leíró cikke, amely megcáfolta ezt a feltételezést. Ennek a támadásnak az volt a sajátossága, hogy nem függött a rejtjelezések számától; a sikerhez csupán a körök azonosítása és a titkosítási funkció kriptoanalízisének lehetősége volt szükséges egy külön körön. A cikk ismerteti a támadás alkalmazását a TREYFER titkosításra, valamint a DES titkosítások (2K-DES) és BLOWFISH [1] egyszerűsített változataira is .

2000-ben megjelent egy második cikk is, amely bemutatta a váltótámadás továbbfejlesztett változatait – „Csúsztatás csavarral” és „Kiegészítő csúszda”, lehetővé téve a kiterjesztést azokra a rejtjelekre, amelyeknél a lövések kis eltéréseket mutatnak. Tehát ezeknek a fejlesztéseknek a segítségével feltörték a DES titkosítás néhány módosítását , valamint a GOST 28147-89 [5] [6] titkosítási szabvány egyszerűsített, 20 körös változatát .

Általános leírás

A legegyszerűbb esetben [7] shift támadást alkalmaznak a titkosítási algoritmusokra, amelyek valamilyen titkosítási függvény többszöri megismétlődései, amelyek bemenete minden körben a titkosított szöveg (az előző körben végzett titkosítás eredménye) és valamilyen körkulcs. , ami minden körben ugyanaz. A támadás sikeres végrehajtásának fő követelményei: [7] :

  1. A körök azonossága (amelyet minden körben ugyanazon funkció és ugyanazon billentyű használata garantál )
  2. Az a képesség, hogy könnyen megtalálja a kulcsot , ismerve a szöveget a bemenetnél és a szöveget a kimeneten néhány körben

A legegyszerűbb támadás algoritmusa

1. lépés : Vegyünk néhány egyszerű szöveget a titkosítási algoritmus bemenetén és a megfelelő titkosított szöveget a kimeneten. 2. lépés : Vegyünk egy másik egyszerű szöveget és a hozzá tartozó titkosított szöveget úgy, hogy a pár eltérjen a már kiválasztott pártól . 3. lépés Tegyük fel, hogy az = relációhoz kapcsolódik , és kapcsolódik a relációhoz , azaz. és az egyfordulós titkosítás eredményei és ill. Nevezzük az ilyen párokat "csúszott párnak" (slid pair) [1] . Azzal az állítással, hogy a titkosítási kulcs könnyen kiszámítható, ismerve a bemeneti és a kimeneti szöveget, a reláció alapján kiszámítjuk a titkosítás első körének kulcsát, az utolsó körben pedig a kulcsot. reláció általi titkosítás . 4. lépés : Ellenőrizzük az egyenlőséget . Mert feltétel szerint minden körkulcs egyforma, akkor ennek az egyenlőségnek teljesülnie kell, ellenkező esetben a 3. lépésben tett feltételezés hibás, és vissza kell térni a 2. lépéshez, kizárva a tesztelt párt a lehetséges jelöltek listájából. Az egyenlőség teljesülése azt jelzi, hogy a kulcs potenciálisan a kívánt kerek kulcs. 5. lépés: A talált kulcs hamis pozitív eredményének ellenőrzéséhez cserélje be a titkosítási algoritmusba, és ellenőrizze a helyes működést több különböző ismert "sima szöveg – titkosított szöveg " páron. Annak ellenére, hogy előfordulhat, hogy rossz kulcs is átmegy ezen a teszten, jó rejtjelek esetén ennek a valószínűsége rendkívül kicsi [7] , ami azt jelenti, hogy az ellenőrzött kulcs nagy valószínűséggel a kívánt kerek kulcs. Így sikeres ellenőrzés esetén a kulcsot keresendőnek nyilvánítjuk, ellenkező esetben visszatérünk a 2. lépéshez, kizárva az ellenőrzött párt és a kulcsot a lehetséges jelöltek listájából.

Megjegyzések az algoritmushoz

Shift támadás módosítások

A modern blokkos titkosítások esetében a kerek billentyűk általában nem egyformák. Ez ahhoz a tényhez vezet, hogy a legegyszerűbb támadás felépítéséhez használt algoritmus általában nem alkalmazható az ilyen titkosításokra, és néhány kiegészítést igényel.

A probléma leírása

Legyen egy blokkokból álló 1. számú titkosítási algoritmus úgy, hogy a kulcsot az 0. körben használjuk (feltételezzük, hogy a kulcsok teljes számához , a kulcsra később lesz szükség), és válasszunk néhány kulcspárt "plaintext - titkosított szöveg" . Az első kör kimenetén a szöveget kapjuk , ahol a titkosítási funkció.

Továbbá a shift támadás magában foglalja a szöveg titkosítását egy új, 2-es számú blokkrejtjellel, amely től ig terjedő blokkokból áll . Jelöljük a rejtjelezett szöveget a -edik blokk kimenetén . Könnyen belátható, hogy ebben az esetben az i-edik blokk kimeneténél a fent már talált szöveget kapjuk , ami azt jelenti, hogy a szöveget és a rejtjelezett szöveget a reláció kapcsolja össze .

Így kaptunk egy olyan párt , amely kielégíti az és összefüggéseket , ami nem más, mint egy általános váltópár. Ennek megfelelően a legegyszerűbb esetben ezek a kapcsolatok a és a formát öltik majd .

Feltételezve, hogy valamilyen szöveg kapcsolódik az arányhoz , a 2. titkosítási algoritmus kimeneténél a rejtjelezett szöveget kell megkapnunk a bemeneti szöveggel, hogy az arányokkal megerősítsük vagy cáfoljuk . Triviális kulcsütemezés esetén az 1-es és a 2-es titkosítási algoritmusok azonosak, ami azt jelenti , hogy a szöveget egy már meglévő blokkrejtjellel titkosítjuk. Ellenkező esetben az 1-es és a 2-es titkosítási algoritmusok különböznek, és a kriptoanalizátor nem tudja megszerkeszteni a 2-es algoritmust, ami azt jelenti, hogy a rejtjelezett szöveg nem érhető el.

Egy Feistel hálózat esete kétfordulós önhasonlósággal

Kiegészítő dia  [ 5 ]

Amint azt a támadási algoritmushoz fűzött megjegyzésekben említettük, a p-fordulós önhasonlóságú rejtjelek kriptoanalízisének esete könnyen redukálható a legegyszerűbb váltási támadás esetére, ha több kört egyesítünk egybe, ami egyenértékű a rejtjelblokkok eltolásával. fordulóban. Feistel hálózat esetén váltakozó kerek gombokkal és , azaz A kétfordulós önhasonlósággal ez a megközelítés növelheti a kriptoanalízis összetettségét, és ezáltal hatástalanná teheti a shift támadást. Ehelyett a korábbiakhoz hasonlóan azt javasolták, hogy kettő helyett csak egy kört váltsanak, ugyanakkor kissé módosítsák a váltópárral szemben támasztott követelményeket.

A fent tárgyalt probléma leírásában jeleztük, hogy a műszakpár kereséséhez általános esetben tudni kell dolgozni két -blokk titkosítással - az eredetivel, amely blokkokból áll . , és az új, amely től ig terjedő blokkokból áll . A komplementer dia lehetővé teszi, hogy csak az eredeti blokk titkosítással dolgozzon.

Bár a következő okfejtést 4 körből álló rejtjel segítségével mutatjuk be, ez tetszőleges számú körre kiterjeszthető. Először nézzük meg, hogyan változik a nyílt szöveg a titkosítás különböző fordulóiban. Jelentsük a nyílt szöveget , ahol és a szöveg bal és jobb része.

Kerek szám Bal oldal Jobb rész
egy
2
3
négy

Jelöljük az 1. forduló kimenetén lévő szöveget és a titkosított szöveget . Most vegye figyelembe, hogy ahhoz, hogy megtalálja a rejtjelezett szöveget egy négyfordulós blokkrejtjel kimenetén egy kulcsütemezéssel, elegendő a különbséget hozzáadni az eredeti rejtjel minden egyes fordulójának jobb oldalához, majd titkosítani a szöveget a eredményül kapott titkosítás (2. ábra, jobb oldali diagram). Ehhez a szöveget a kezdeti rejtjel bemenetére szállítjuk . Jelöljük a rejtjelezett szöveget . Nézzük meg, hogyan változik a szöveg a különböző titkosítási körökben.

Kerek szám Bal oldal Jobb rész
egy
2
3

négy

Ebből látható, hogy a bevezetett különbség minden körben megmarad, ami azt jelenti, hogy a és a rejtjelezett szövegeket a: és relációk , valamint a "nyilvános szöveg - rejtjelezett szöveg" párok és az és relációk kapcsolják össze .

Ha a szövegek arányban kapcsolódnak egymáshoz , akkor azt mondják, hogy a és szövegeknek nyírási különbségük van ( angol dia különbség ) .  

Így a következő egyenleteket kapjuk a nyírási párra:


A korábbiakhoz hasonlóan a -bites szövegek esetében egyszerű szövegekre van szükség a shift pár megtalálásához . A nyírási párnak most teljesítenie kell az egyenletet (lásd a 2. ábrát). Potenciális eltoláspár keresése esetén a második egyenlet lehetővé teszi egy jelölt megtalálását , és ha a függvény kellően sérülékeny a kriptoanalízisre, akkor ezek az egyenletek lehetővé teszik a potenciálisan kívánt kulcsok és kulcsok megtalálását . Ezt követően már csak a hamis pozitív eredmények ellenőrzése marad.

Csúszás csavarral  [ 5 ]

A problémafelvetésben megadott követelmény, hogy az eredeti #1 rejtjellel, amely től -ig blokkokból áll , és az új #2 rejtjellel, amely től -ig terjedő blokkokból áll , könnyen átalakítható az ún. shift- segítségével. és-forgatás megközelítés.

Ha kizárjuk a szöveg bal és jobb oldali részének utolsó permutációját, és megfordítjuk a kulcsok sorrendjét, akkor a Feistel hálózatban a visszafejtés pontosan ugyanúgy történik, mint a titkosítás [1] . A shift-and-rotate megközelítés ezt a tulajdonságot használja, nevezetesen a dekódoló algoritmus használatát javasolja #2 rejtjelként (lásd 3. ábra).

Ez a megközelítés alapvetően nem különbözik a legegyszerűbb algoritmustól. Mint a legegyszerűbb esetben, a váltópár követelményei , ahol . Így a következő egyenleteket kapjuk:


és egy feltétel, amely megkönnyíti a műszakpárok megtalálását:

Szokás szerint a -bites szövegek esetében egyszerű szövegekre van szükség a shift pár megtalálásához . Ha megtalálja, a függvény sebezhetősége lehetővé teszi, hogy megtalálja a kulcsot az egyenletekből .

Ebben a lépésben a szükséges szövegek száma -ra csökkenthető . Ehhez titkosítjuk az űrlap különböző szövegeit , és visszafejtjük az űrlap különböző szövegeit , ahol és rögzítve vannak, és teljesítik a feltételt . Így, mivel most tulajdonképpen - bites szövegekkel dolgozunk, a születésnapi paradoxon szerint ezek között a „plaintext-tiphertext” párok között nagy a valószínűsége egy váltáspárnak.

A kulcsot a p-fordulós önhasonlóságú blokk-rejtjelek általános esetére leírt módszer alkalmazásával találhatjuk meg, vagyis úgy, hogy minden további két kört egybe vonunk - így a problémát a legegyszerűbb esetre redukáljuk. Bár a kerek kulcs mérete megduplázódik, ez nem bonyolítja a kriptoanalízist, mivel a kulcs , amely az új körkulcs fele, már ismert, és csak a második felét kell megtalálnunk, amely mérete megegyezik a körrel. írja be az eredeti problémát.

Egyéb módosítások

Külön módosításnak tekinthető a fent leírt két megközelítés egyidejű alkalmazása - Complementation slide és Sliding with a twist, amely lehetővé teszi a shift támadás kiterjesztését a 4 körös önhasonlóságú titkosításokra [5] .

Az egyenlőtlen körszámú rejtjelek kriptoanalízisének problémája eltér az összes eddig vizsgált esettől, melynek megoldásában a figyelembe vett támadásmódosítások egyike sem használható. Az ilyen rejtjelek esetében egy újraigazító slide támadást javasoltak [ 8 ]  , amelyet a DES rejtjel módosításának példáján mutattak be , különösen a DES teljes 16 fordulós verziójának példáján.

Sliding - linear attack ( angolul  slide-linear attack ) [9] egy példa a lineáris kriptoanalízis elveit alkalmazó shift támadás megvalósítására . Ennek a támadásnak a működését a 4K-DES titkosítás mutatta be.

Vannak olyan fejlesztések is, amelyek felgyorsítják a nyírási támadás már meglévő módosításainak végrehajtását. Különösen ezeknek a fejlesztéseknek az egyike, amelyet Eli Biham, Orr Dunkelman, Nathan Keller: Improved Slide Attacks [10] című munkája ír le , lehetővé teszi a váltópárok sokkal gyorsabb megtalálását ciklikus titkosítási struktúra és a megfelelő kulcspermutációk segítségével. Ennek a módosításnak a működését a GOST 28147-89 (GOST) titkosítás különböző változatainak példáján mutattuk be .

Titkosító algoritmusok, amelyek sebezhetőek a shift támadásra és annak módosításaira

Leírva az eredeti cikkekben: [1] [5]

  • 2K-DES (DES váltakozó billentyűkkel)
  • DES Brown Seberry kulcs ütemezéssel
  • DESX
  • GOST
  • KÖDÖS
  • TREYFER
  • WAKE-ROFB
  • Blowfish változatok

Leírva más forrásokban

A hash függvények osztályának Shift támadásai [13]

A shift támadás alapelvei eredeti rendeltetésükön, a blokk titkosítások megtámadásán kívül a hash függvény kriptoanalízis területén is alkalmazásra találtak. Hasonlóan a blokk titkosításokhoz, ahol shift támadást alkalmaztak a kulcsütemezés megtalálásához, potenciálisan alkalmazhatónak bizonyult a továbbított üzenet kivonatának generálásához és érvényesítéséhez használt titkos kulcs megtalálásához. Ezt a megközelítést különösen a szimulált beillesztés (MAC) létrehozásának példáján mutatták be .

A shift támadás is hasznosnak bizonyult nemcsak a kriptográfiai hash függvényeknél, amelyek valamilyen titkos kulcs értékét veszik paraméterként, hanem olyan hash függvényeknél is, amelyek csak üzenet alapján állítanak elő hash-t. Az ilyen függvények shift támadáson alapuló elemzése lehetővé teszi, hogy nagy valószínűséggel azonosítsunk néhány eltolási tulajdonságot, és ebből adódóan bizonyos mintákat a hash-algoritmusok működésében.

A shift támadásnak kitett hash-függvények: [13]

A kriptográfiai ellenállás növelésének módjai a shift támadások módosításaival szemben [7] [16]

Mivel a műszakos támadás során a kulcsütemezés sebezhetőségeit használják fel, az egyik intézkedés annak bonyolítása. Különösen fontos, hogy lehetőség szerint kerüljük a ciklikus ismétléseket a kulcsütemezésben, vagy legalább kellően nagy ismétlési periódust használjunk. Kis számú billentyű esetén egyszerű periodikus ismétlés helyett a sorrendjük valamilyen véletlenszerű sorrendjét kell használni.

A kulcsfontosságú ütemterv gyengesége mellett a váltótámadás is ugyanazokat a köröket használja ki. Ennek elkerülésének egyik módja, ha a titkosítási függvény paramétereként különböző körkonstansokat használunk külön körökben – ez lehetővé teszi, hogy az egyes titkosítási blokkok működésében különbségeket hozzunk létre anélkül, hogy jelentősen megnehezítené a titkosítási algoritmus egészét.

Ezenkívül a váltási támadások hatékonysága jelentősen csökkenthető a kerek titkosítási funkció kriptográfiai erősségének növelésével. Tehát a nyílt szövegeken alapuló támadásokkal szembeni ellenállása sokkal nehezebbé teszi a kerek kulcs megtalálását még műszakpár jelenlétében is.

Jegyzetek

  1. 1 2 3 4 5 6 7 Alex Biryukov, David Wagner. Slide Attacks  //  Gyors szoftveres titkosítás. 6th International Workshop, FSE'99 Róma, Olaszország, 1999. március 24–26. Proceedings. - Springer Berlin Heidelberg, 1999. - P. 245-259 . - ISBN 978-3-540-66226-6 .  (nem elérhető link)
  2. EK Grossman, Thomas J. Watson IBM Research Center Research Division, B. Tuckerman. A forgókulcs hiánya miatt meggyengült Feistel-szerű titkosítás elemzése . - IBM Thomas J. Watson Research Division, 1977. - 33 p.
  3. Eli Biham, Adi Shamir. DES-szerű kriptorendszerek differenciális kriptoanalízise  //  Advances in Cryptology-CRYPT0' 90 Proceedings. - Springer Berlin Heidelberg, 1990. - P. 2-21 . — ISBN 978-3-540-54508-8 .  (nem elérhető link)
  4. B. Preneel, V. Rijmen, A. Bosselears. A kriptográfiai algoritmusok alapelvei és teljesítménye  //  Dr. Dobb folyóirata. - Miller Freeman, 1998. - 1. évf. 23 , sz. 12 . - 126-131 . o .
  5. 1 2 3 4 5 6 Alex Biryukov, David Wagner. Advanced Slide Attacks  (angol)  // Advances in Cryptology - EUROCRYPT 2000. International Conference on the Theory and Application of Cryptographic Techniques Bruges, Belgium, 2000. május 14–18. Proceedings. - Springer Berlin Heidelberg, 2000. - P. 589-606 . — ISBN 978-3-540-67517-4 .  (nem elérhető link)
  6. 1 2 Panasenko S.P. Shift attack // Titkosítási algoritmusok. Különleges kézikönyv - Szentpétervár. : BHV-SPb , 2009. - S. 40-42. — 576 p. — ISBN 978-5-9775-0319-8
  7. 1 2 3 4 5 Chalermpong Worawannotai, Isabelle Stanton. Oktatóanyag a  csúsztatásokról . Az eredetiből archiválva : 2014. november 29.
  8. Raphael C.-W. Phan. Advanced Slide Attacks Revisited: Realigning Slide on DES  //  Progress in Cryptology – Mycrypt 2005. Első nemzetközi kriptológiai konferencia Malajziában, Kuala Lumpur, Malajzia, 2005. szeptember 28-30. Proceedings. - Springer Berlin Heidelberg, 2005. - P. 263-276 . — ISBN 978-3-540-28938-8 . Az eredetiből archiválva : 2018. június 12.
  9. 1 2 Soichi Furuya. Slide Attacks with a Known- Plaintext Cryptanalysis  (angol)  // Information Security and Cryptology - ICISC 2001. 4th International Conference Seoul, Korea, December 6–7, 2001 Proceedings. - Springer Berlin Heidelberg, 2002. - P. 214-225 . - ISBN 978-3-540-43319-4 . Archiválva az eredetiből 2018. június 9-én.
  10. Eli Biham, Orr Dunkelman, Nathan Keller. Továbbfejlesztett csúsztatási támadások  //  Gyors szoftvertitkosítás. 14th International Workshop, FSE 2007, Luxembourg, Luxembourg, 2007. március 26-28., Revised Selected Papers. - Springer Berlin Heidelberg, 2007. - P. 153-166 . — ISBN 978-3-540-74617-1 .  (nem elérhető link)
  11. Selçuk Kavut, Melek D. Yücel. Slide Attack on Spectr-H64  //  Progress in Cryptology - INDOCRYPT 2002. Harmadik nemzetközi kriptológiai konferencia Indiában Hyderabad, India, 2002. december 16–18. Proceedings. - Springer Berlin Heidelberg, 2002. - P. 34-47 . - ISBN 978-3-540-00263-5 . Archiválva az eredetiből 2018. június 11-én.
  12. Nicolas T. Courtois, Gregory V. Bard, David Wagner. Algebrai és csúsztatási támadások a KeeLoq-on  //  Gyors szoftvertitkosítás. 15. Nemzetközi Workshop, FSE 2008, Lausanne, Svájc, 2008. február 10-13., Válogatott dokumentumok átdolgozása. - Springer Berlin Heidelberg, 2008. - P. 97-115 . — ISBN 978-3-540-71038-7 . Az eredetiből archiválva : 2018. október 30.
  13. 1 2 Michael Gorski, Stefan Lucks, Thomas Peyrin. Slide Attacks on a Class of Hash Functions  //  Advances in Cryptology - ASIACRYPT 2008. 14th International Conference on the Theory and Application of Cryptology and Information Security, Melbourne, Ausztrália, 2008. december 7-11. Proceedings. - Springer Berlin Heidelberg, 2008. - P. 143-160 . - ISBN 978-3-540-89254-0 .  (nem elérhető link)
  14. Yu Sasaki, Lei Wang, Kazuo Ohta, Noboru Kunihiro. Jelszó-helyreállítás kihívás és válasz: Impossible Differential Attack on Hash Function  //  Progress in Cryptology – AFRICACRYPT 2008. Első nemzetközi kriptológiai konferencia Afrikában, Casablanca, Marokkó, 2008. június 11-14. Proceedings. - Springer Berlin Heidelberg, 2008. - P. 290-307 . — ISBN 978-3-540-68159-5 . Archiválva az eredetiből 2018. június 6-án.
  15. 1 2 Markku-Juhani O. Saarinen. Blokkrejtjelek kriptoanalízise SHA-1 és MD5 alapján  //  Gyors szoftveres titkosítás. 10. Nemzetközi Workshop, FSE 2003, Lund, Svédország, 2003. február 24-26. Átdolgozott dokumentumok. - Springer Berlin Heidelberg, 2003. - P. 36-44 . - ISBN 978-3-540-20449-7 .  (nem elérhető link)
  16. Francois-Xavier Standaert, Gilles Piret, Jean-Jacques Quisquater. A blokk titkosítások kriptanalízise: felmérés  //  UCL Crypto Group Technical Report Series. - 2003. Archiválva : 2014. február 10.