Coppersmithin lause

Coppersmithin lause ( Coppersmithin menetelmä) on lause, jonka avulla voit tehokkaasti löytää normalisoitujen polynomien nollat ​​tietyllä arvolla. [yksi]

Lausetta käytetään pääasiassa hyökkäyksiin RSA - salausjärjestelmää vastaan . Tämä menetelmä on tehokas, jos koodauseksponentti on tarpeeksi pieni tai kun osa salaisesta avaimesta tunnetaan . Lause liittyy myös LLL-algoritmiin .

Kuvaus

Johdanto

Lause ehdottaa algoritmia, jolla voidaan löytää tehokkaasti normalisoidun polynomimodulin juuret , jotka ovat pienempiä kuin . Jos se on pieni, algoritmi toimii nopeammin. Lauseen etuna on kyky löytää polynomin modulon pienet juuret . Jos moduuli on alkuluku, ei ole mitään järkeä käyttää Coppersmithin lausetta . On paljon tehokkaampaa käyttää muita tapoja löytää polynomin juuret. [yksi]

Pieni koodauseksponentti

Salauksen tai allekirjoituksen vahvistusajan lyhentämiseksi on suositeltavaa käyttää pientä (koodauseksponenttia). Pienin mahdollinen arvo on , mutta sitä suositellaan käytettäväksi (joitakin hyökkäyksiä vastaan). Arvoa käytettäessä tarvitaan 17 kertolaskua allekirjoituksen tarkistamiseksi ( , missä on kertovan ryhmän  järjestys , ehkä noin 1000). Pienten käyttöön keskittyvät hyökkäykset eivät aina ole tehokkaita.

Tehokkaimmat hyökkäykset pientä koodauseksponenttia vastaan ​​perustuvat Coppersmithin lauseeseen , jolla on monia sovelluksia, joista yksi on Hasted-hyökkäys. [2]

Attack of Hasted

Oletetaan, että yksi lähettäjä lähettää saman viestin salatussa muodossa tietylle määrälle ihmisiä , joista jokainen käyttää samaa pientä koodauseksponenttia , esimerkiksi , ja eri pareja , ja . Lähettäjä salaa viestin vuorollaan kunkin käyttäjän julkisella avaimella ja lähettää sen sopivalle vastaanottajalle. Sitten, jos vastustaja kuuntelee lähetyskanavaa ja kerää lähetetyt salatekstit , hän pystyy palauttamaan viestin .

Todiste

Oletetaan, että vihollinen sieppasi ja missä . Oletetaan, että ne ovat suhteellisen alkulukuja , muuten suurin yhteinen jakaja muu kuin yksikkö tarkoitti löytää jakaja yhdelle . Soveltamalla kiinalaista jäännöslausetta , saadaan sellainen, että jolla on arvo . Kuitenkin tietäen sen , saamme . Siksi vastustaja voi purkaa viestin salauksen ottamalla kuutiojuuren .

Jos haluat palauttaa viestin , jolla on mikä tahansa avoimen koodauseksponentin arvo, vastustajan on siepattava salatekstit .

Sanamuoto

Olkoon ja normalisoitu astepolynomi . Anna , . Sitten, kun otetaan huomioon pari, hyökkääjä löytää tehokkaasti kaikki kokonaisluvut tyydyttävinä . Suoritusaika määräytyy LLL-algoritmin suorituksella dimensioimalla hilassa , jossa . [yksi]

Todiste

Olkoon luonnollinen luku , jonka määrittelemme myöhemmin. Määritellään

Käytämme polynomeja hilallemme ja sen perustana . Esimerkiksi, milloin ja saamme rivien kattaman hilamatriisin :

,

jossa "—" tarkoittaa nollasta poikkeavia diagonaalisia elementtejä, joiden arvo ei vaikuta determinanttiin . Tämän hilan koko on , ja sen determinantti lasketaan seuraavasti:

Vaadimme sitä . tämä tarkoittaa

joka voidaan yksinkertaistaa

,

missä ja kaikille . Jos otamme , niin saamme siis, ja . Erityisesti, jos haluamme ratkaista mielivaltaisen , riittää , missä . [3]

Katso myös

Muistiinpanot

  1. ↑ 1 2 3 Dan Boneh. 20 vuotta hyökkäyksiä RSA:n salausjärjestelmää vastaan . Haettu 25. marraskuuta 2016. Arkistoitu alkuperäisestä 26. maaliskuuta 2016.
  2. Ushakov Konstantin. RSA-järjestelmän hakkerointi . Käyttöpäivä: 25. marraskuuta 2016. Arkistoitu alkuperäisestä 1. joulukuuta 2016.
  3. Glenn Durfee. RSA:n KRYPTANALYYSI ALGEBRIA- JA HILAMENETELMIÄ KÄYTTÄMÄLLÄ (kesäkuu 2002). Käyttöpäivä: 30. marraskuuta 2016. Arkistoitu alkuperäisestä 4. maaliskuuta 2016.