Wiener-hyökkäys

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 15. helmikuuta 2019 tarkistetusta versiosta . tarkastukset vaativat 8 muokkausta .

Wiener-hyökkäys , joka on nimetty kryptologi Michael J. Wienerin mukaan, on eräänlainen kryptografinen hyökkäys RSA-algoritmia vastaan . Hyökkäys käyttää jatkuvan murto -osan menetelmää järjestelmän katkaisemiseen pienellä suljetulla eksponentilla .

Lyhyesti RSA:sta

Ennen kuin aloitat kuvauksen Wienerin hyökkäyksen toiminnasta, kannattaa esitellä joitakin RSA :ssa käytettyjä käsitteitä [1] . Katso lisätietoja RSA :n pääartikkelista .

Viestien salaamiseen RSA -kaavan mukaisesti käytetään julkista avainta - numeroparia , salauksen purkamiseen - yksityistä avainta . Lukuja kutsutaan avoimiksi ja suljetuiksi eksponenteiksi, lukua kutsutaan moduuliksi. Modulus , jossa ja ovat kaksi alkulukua . Suljetun, avoimen eksponentin ja moduulin välinen yhteys annetaan muodossa , jossa on Euler-funktio .

Jos julkinen avain voidaan palauttaa lyhyessä ajassa , avain on haavoittuvainen: saatuaan tiedon yksityisestä avaimesta hyökkääjät voivat purkaa viestin salauksen.

Algoritmin historia

RSA-salausjärjestelmän keksivät Ronald Rivest , Adi Shamir ja Leonard Adleman , ja se julkaistiin ensimmäisen kerran vuonna 1977 [1] . Artikkelin julkaisun jälkeen monet tutkijat ovat tutkineet RSA-salausjärjestelmän haavoittuvuuksia. [2] Useimmat näistä hyökkäyksistä käyttävät algoritmin mahdollisesti vaarallisia toteutuksia ja käyttävät eksplisiittisiä ehtoja jollekin algoritmin puutteelle: yhteinen moduuli, pieni julkinen avain, pieni yksityinen avain [3] . Siten kryptografinen hyökkäysalgoritmi RSA-algoritmia vastaan ​​pienellä yksityisellä avaimella ehdotti kryptologi Michael J. Wiener artikkelissa, joka julkaistiin ensimmäisen kerran vuonna 1990. [4] Wienerin lause sanoo, että jos avain on pieni, niin yksityinen avain löytyy lineaarisessa ajassa .

Pieni yksityinen avain

RSA - salausjärjestelmässä Bob voi käyttää pienempää arvoa suuren satunnaisluvun sijaan parantaakseen RSA -salauksen purkamista . Wienerin hyökkäys kuitenkin osoittaa, että pienen arvon valitseminen for:lle johtaa epävarmaan salaukseen, jossa hyökkääjä voi palauttaa kaikki salaiset tiedot, eli rikkoa RSA -järjestelmän . Tämä hakkerointi perustuu Wienerin lauseeseen, joka pätee pienille arvoille . Wiener osoitti, että hyökkääjä voi löytää tehokkaasti milloin .

Wiener esitteli myös vastatoimia hyökkäystään vastaan. Nämä kaksi menetelmää kuvataan alla: [5]

1. Suuren julkisen avaimen valitseminen :

Korvaa , jossa joillekin suurille . Kun se on riittävän suuri , niin Wienerin hyökkäystä ei voida soveltaa vaikka kuinka pieni tahansa .

2. Kiinan jäännöslauseen avulla :

Valitse niin, että ja , ja ovat pieniä, mutta ei itseään, niin nopea viestin salauksen purku voidaan suorittaa seuraavasti:
  1. Ensin se laskee
  2. Laskemalla kiinalaisen jäännöslauseen avulla yksilöllinen arvo , joka täyttää ja . Tulos tyydyttää tarpeen mukaan. Asia on siinä, että Wienerin hyökkäys ei sovellu tähän, koska arvo voi olla suuri.

Kuinka Wiener-hyökkäys toimii

Koska

,

sitten on sellainen kokonaisluku :

.

Kannattaa määrittää ja korvata edellisessä yhtälössä :

.

Jos merkitsemme ja , korvaus edelliseen yhtälöön antaa:

.

Jakamalla yhtälön molemmat puolet luvulla , käy ilmi, että:

, missä .

Tämän seurauksena hieman vähemmän kuin , ja ensimmäinen murto-osa koostuu kokonaan julkisesta tiedosta . Menetelmää tällaisen oletuksen testaamiseksi tarvitaan kuitenkin edelleen. Kun taas viimeinen yhtälö voidaan kirjoittaa seuraavasti:

.

Käyttämällä yksinkertaisia ​​algebrallisia operaatioita ja identiteettejä voidaan määrittää tällaisen oletuksen tarkkuus . [6]

Wienerin lause

Anna , missä . Anna .

Ottaa missä , krakkausyksikkö voi toipua . [7]

Todistus Wienerin lauseesta

Todistus perustuu likiarvoihin käyttämällä jatkuvia murtolukuja . [kahdeksan]

Koska , sitten on olemassa jolle . Näin ollen:

.

Tämä on siis likiarvo . Vaikka krakkausyksikkö ei tiedä , hän voi käyttää sitä arvioimaan sitä. Todellakin, koska:

ja , meillä on: ja

Käyttämällä sen sijaan , saamme:

Nyt tarkoittaa . Koska , tarkoittaa , ja lopulta käy ilmi:

missä

Siitä lähtien ja siksi:

Koska , silloin ja tämän perusteella tarkoittaa:

(1) ja (2) perusteella voimme päätellä, että:

Lauseen tarkoitus on, että jos yllä oleva ehto täyttyy, niin esiintyy luvun jatkuvan murto-osan konvergenttien joukossa .

Siksi algoritmi löytää lopulta sellaisen [9] .

Algoritmin kuvaus

Tarkastellaan julkista RSA - avainta , jolla on tarpeen määrittää yksityinen eksponentti . Jos se tiedetään , niin se voidaan tehdä seuraavan algoritmin [10] mukaan :

1. Laajenna murto-osa jatkuvaksi jakeeksi . 2. Etsi jatkuvalle murtoluvulle kaikkien mahdollisten konvergenttien joukko . 3. Tutki sopivaa fraktiota : 3.1. Määritä mahdollinen arvo laskemalla . 3.2. Kun olet ratkaissut yhtälön , hanki juurpari . 4. Jos yhtälö on tosi juurparille , niin suljettu eksponentti löytyy . Jos ehto ei täyty tai juurparia ei voitu löytää , on tarpeen tutkia seuraava sopiva murto palaamalla vaiheeseen 3.

Esimerkki algoritmin toiminnasta

Nämä kaksi esimerkkiä [10] osoittavat selvästi yksityisen eksponentin löytämisen, jos RSA :n julkinen avain tunnetaan .

Julkiselle RSA - avaimelle :

Taulukko: suljetun eksponentin löytäminen 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 - - - -
yksi 1/1 1073780832 - - -
2 7/8 1227178094 - - -
3 22/25 1220205492 30763 39667 1220275921

Siitä käy ilmi . Tässä esimerkissä voit nähdä, että pienuusehto täyttyy .

Julkiselle RSA - avaimelle :

Taulukko: suljetun eksponentin löytäminen 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 - - - -
yksi 1/1 1779399042 - - -
2 1/2 3558798085 - - -
3 2/3 2669098564 - - -
neljä 5/8 2847038468 - - -
5 7/11 2796198496 47129 59333 2796304957

Siitä käy ilmi . Tässä esimerkissä voit myös huomata, että pienuusehto täyttyy .

Algoritmin monimutkaisuus

Algoritmin monimutkaisuus määräytyy luvun jatkuvan murto-osan konvergenttien lukumäärän mukaan, joka on suuruusluokkaa oleva arvo . Eli numero palautetaan lineaarisessa ajassa [11] avaimen pituudesta .

Linkit

  1. 12 Rivest , 1978 .
  2. Boneh, 1999 , Johdanto, s. yksi.
  3. Coppersmith, 1996 .
  4. Wiener, 1990 .
  5. Wiener, 1990 , Combatting the Continued Fraction Attack on RSA., s. 557.
  6. Renderöinti, 2007 .
  7. Boneh, 1999 .
  8. Khaled, 2006 .
  9. Herman, 2012 , RSA-järjestelmän haavoittuvuudesta. Pieni salainen avain, ss. 283-284.
  10. 12 Kedmi , 2016 .
  11. Herman, 2012 , RSA-järjestelmän haavoittuvuudesta. Pieni salainen avain., s. 284: "Näiden murto-osien lukumäärä on O(ln(n)) suuruusluokkaa oleva arvo, eli luku d palautetaan lineaarisessa ajassa."

Kirjallisuus