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] .
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 .
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] :
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.
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.
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.
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 .
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.
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.