Wiener 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 2019. február 15-én felülvizsgált verziótól ; az ellenőrzések 8 szerkesztést igényelnek .

A Michael J. Wiener kriptológusról elnevezett Wiener-támadás egyfajta kriptográfiai támadás az RSA algoritmus ellen . A támadás a folyamatos tört módszert használja a rendszer törésére egy kis zárt kitevővel .

Röviden az RSA-ról

Mielőtt elkezdené a Wiener-támadás működésének leírását, érdemes bevezetni néhány RSA -ban használt fogalmat [1] . További részletek az RSA fő cikkében találhatók .

Az üzenetek RSA séma szerinti titkosításához nyilvános kulcsot használnak - egy számpárt , a visszafejtéshez - egy privát kulcsot . A számokat nyitott és zárt kitevőknek, a számokat modulusnak nevezzük. Modulus , ahol és két prímszám . A zárt, nyitott kitevő és a modulus közötti kapcsolatot a következőképpen adjuk meg , ahol az Euler-függvény .

Ha a nyilvános kulcsot rövid időn belül vissza lehet állítani , akkor a kulcs sebezhető: miután információt kaptak a titkos kulcsról , a támadóknak lehetőségük van visszafejteni az üzenetet.

Az algoritmus története

Az RSA kriptorendszert Ronald Rivest , Adi Shamir és Leonard Adleman találta fel, és először 1977-ben publikálták [1] . A cikk megjelenése óta számos kutató vizsgálta az RSA kriptorendszer sebezhetőségét. [2] A legtöbb ilyen támadás az algoritmus potenciálisan veszélyes megvalósításait használja, és kifejezett feltételeket használ az algoritmus néhány hibájára: közös modulus, kis nyilvános kulcs, kis privát kulcs [3] . Így egy kriptográfiai támadási algoritmust az RSA algoritmus ellen kis privát kulccsal javasolt Michael J. Wiener kriptológus egy 1990-ben megjelent cikkében. [4] Wiener tétele kimondja, hogy ha a kulcs kicsi, akkor a privát kulcs lineáris időben megtalálható .

Kis privát kulcs

Az RSA titkosítási rendszerben Bob kisebb értéket használhat nagy véletlenszám helyett az RSA visszafejtési teljesítményének javítására . Wiener támadása azonban azt mutatja, hogy a for számára kis érték kiválasztása bizonytalan titkosítást eredményez, amelyben a támadó vissza tudja állítani az összes titkos információt, azaz feltörheti az RSA rendszert . Ez a feltörés Wiener-tételen alapul, amely kis értékekre érvényes . Wiener bebizonyította, hogy a támadó hatékonyan meg tudja találni , amikor .

Wiener néhány ellenintézkedést is bevezetett támadása ellen. A két módszert az alábbiakban ismertetjük: [5]

1. Nagy nyilvános kulcs kiválasztása :

Cserélje ki a , ahol néhány nagy . Ha elég nagy, azaz , akkor Wiener támadása nem alkalmazható, bármilyen kicsi is legyen .

2. A kínai maradéktételt használva :

Válassza ki , hogy a és , és kicsik legyenek, de nem önmaga, akkor a gyors üzenet visszafejtése a következőképpen hajtható végre:
  1. Először is kiszámítja
  2. A kínai maradéktétel segítségével kiszámítunk egy egyedi értéket , amely kielégíti és . Az eredmény igény szerint kielégíti . A lényeg, hogy Wiener támadása itt nem alkalmazható, mert az érték nagy lehet.

Hogyan működik a Wiener-támadás

Mert a

,

akkor van egy egész szám :

.

Érdemes az előző egyenletben meghatározni és behelyettesíteni :

.

Ha és jelöljük , akkor az előző egyenletbe való behelyettesítés a következőt kapja:

.

Ha az egyenlet mindkét oldalát elosztjuk -vel , akkor kiderül, hogy:

, hol .

Ennek eredményeként valamivel kevesebb, mint , és az első töredék teljes egészében nyilvános információkból áll . Azonban még mindig szükség van egy módszerre egy ilyen feltételezés tesztelésére. Míg az utolsó egyenlet a következőképpen írható fel:

.

Egyszerű algebrai műveletek és azonosságok segítségével megállapítható egy ilyen feltevés pontossága . [6]

Wiener-tétel

Hadd , hol . Hadd .

Ha van hol , a cracker meggyógyulhat . [7]

Wiener-tétel bizonyítása

A bizonyítás folyamatos törteket használó közelítéseken alapul . [nyolc]

Mivel , akkor létezik , amelyre . Következésképpen:

.

Tehát ez egy közelítés . Annak ellenére, hogy a cracker nem tudja , használhatja a közelítéshez. Sőt, mert:

és , van: és

A helyett használva a következőket kapjuk:

Ez azt jelenti . Mivel a , azt jelenti , és a végén kiderül:

ahol

Amióta és ezért:

Mivel , akkor és ez alapján azt jelenti:

Az (1) és (2) bekezdésből arra következtethetünk, hogy:

A tétel jelentése az, hogy ha a fenti feltétel teljesül, akkor megjelenik a konvergensek között a szám folytonos törtrészére .

Ezért az algoritmus végül megtalálja az ilyeneket [9] .

Az algoritmus leírása

Nyilvános RSA kulcsot veszünk figyelembe , amellyel meg kell határozni a privát kitevőt . Ha ez ismert , akkor ez a következő [10] algoritmus szerint tehető meg :

1. Bontsa ki a törtet egy folyamatos törtté . 2. Egy folytatólagos törthez keresse meg az összes lehetséges konvergens halmazát . 3. Fedezze fel a megfelelő frakciót : 3.1. Határozza meg a lehetséges értéket számítással . 3.2. Az egyenlet megoldása után kapjunk egy gyökérpárt . 4. Ha az egyenlőség igaz egy gyökpárra , akkor a zárt kitevő megtalálható . Ha a feltétel nem teljesül, vagy nem sikerült gyökérpárt találni , akkor meg kell vizsgálni a következő megfelelő frakciót , visszatérve a 3. lépéshez.

Példa az algoritmus működésére

Ez a két példa [10] egyértelműen bemutatja a privát kitevő megtalálását, ha ismert az RSA nyilvános kulcsa .

RSA nyilvános kulcs esetén :

táblázat: a zárt kitevő megtalálása d
e / N = [0, 1, 7, 3, 31, 5, 2, 12, 1, 28, 13, 2, 1, 2, 3]
n k n / d n phi n p n q n p n q n
0 0/1 - - - -
egy 1/1 1073780832 - - -
2 7/8 1227178094 - - -
3 22/25 1220205492 30763 39667 1220275921

Kiderül, hogy . Ebben a példában láthatja, hogy a kicsiség feltétele teljesül .

RSA nyilvános kulcs esetén :

táblázat: a zárt kitevő megtalálása d
e / N = [0, 1, 1, 1, 2, 1, 340, 2, 1, 1, 3, 2, 3, 1, 21, 188]
n k n / d n f n p n q n p n q n
0 0/1 - - - -
egy 1/1 1779399042 - - -
2 1/2 3558798085 - - -
3 2/3 2669098564 - - -
négy 5/8 2847038468 - - -
5 7/11 2796198496 47129 59333 2796304957

Kiderül, hogy . Ebben a példában azt is észreveheti, hogy a kicsinységi feltétel teljesül .

Az algoritmus összetettsége

Az algoritmus bonyolultságát a konvergensek száma határozza meg a szám folytonos törtrészéhez , ami a nagyságrendű érték . Azaz a szám lineáris időben [11] visszaáll a kulcshosszból .

Linkek

  1. 12 Rivest , 1978 .
  2. Boneh, 1999 , Bevezetés, p. egy.
  3. Coppersmith, 1996 .
  4. Wiener, 1990 .
  5. Wiener, 1990 , Combatting the Continued Fraction Attack on RSA., p. 557.
  6. Render, 2007 .
  7. Boneh, 1999 .
  8. Khaled, 2006 .
  9. Herman, 2012 , Az RSA rendszer sebezhetőségéről. Kis titkos kulcs., pp. 283-284.
  10. 2016. Kedmi 12 .
  11. Herman, 2012 , Az RSA rendszer sebezhetőségéről. Kis titkos kulcs., p. 284: "E törtek száma O(ln(n)) nagyságrendű érték, vagyis a d szám lineáris időben áll vissza."

Irodalom