Polig-Hellman-algoritmi

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 23. huhtikuuta 2020 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

Polyg-Hellman-algoritmi (kutsutaan myös Silver-Polig-Hellman-algoritmiksi ) on deterministinen diskreetti logaritmi -algoritmi jäännösrenkaassa , joka on modulo a alkuluku . Eräs algoritmin ominaisuuksista on, että erikoismuotoisille alkuluvuille löytyy diskreetti logaritmi polynomiajassa . [yksi]

Historia

Tämän algoritmin keksi amerikkalainen matemaatikko Roland Silver , mutta sen julkaisivat ensimmäisen kerran kaksi muuta amerikkalaista matemaatikkoa Stephen Pohlig ja Martin Hellman vuonna 1978 artikkelissa " Parannettu algoritmi logaritmien laskemiseen GF(p):n yli ja sen kryptografinen merkitys" [2] , joka kehitti tämän algoritmin Roland Silveristä riippumatta. [3]  

Alkutiedot

Esitetään vertailu

(yksi)

ja luvun hajoaminen alkutekijöiksi tunnetaan:

(2)

On tarpeen löytää luku , joka tyydyttää vertailun (1). [neljä]

Algoritmin idea

Algoritmin ydin on, että riittää, että kaikille löydetään moduulit ja sitten ratkaisu alkuperäiseen vertailuun löytyy kiinalaisen jäännöslauseen avulla . Löytääksesi kunkin näistä moduuleista sinun on ratkaistava vertailu:

. [5]

Algoritmin kuvaus

Yksinkertaistettu versio

Paras tapa käsitellä tätä algoritmia on ottaa huomioon erikoistapaus, jossa .

Meille annetaan , ja vaikka on olemassa primitiivinen elementti, ja meidän on löydettävä sellainen , joka tyydyttää .

Oletetaan, että koska sitä ei voi erottaa , koska meidän tapauksessamme primitiivielementillä on määritelmän mukaan aste , siksi:

.

Milloin , on helppo määrittää binäärilaajennuksella kertoimilla , esimerkiksi:

Vähiten merkitsevä bitti määritetään nostamalla potenssiin ja soveltamalla sääntöä

Ylemmän säännön johtaminen

Harkitse aiemmin saatua vertailua :

,

mutta määritelmän mukaan saa muun arvon kuin , joten vertailua on jäljellä vain yksi :

.

Nosta vertailu (1) potenssiin ja korvaa yllä saatu vertailu:

Tasa-arvo on totta, jos se on parillinen, eli polynomin muodossa olevassa laajennuksessa vapaa termi on yhtä suuri kuin , joten on totta, kun .

Nyt muunnetaan tunnettu hajoaminen ja otetaan käyttöön uusi muuttuja :

,

missä

On selvää, että on jaollinen milloin , ja milloin on jaollinen , mutta ei enää.

Väittelemällä kuten ennenkin, saamme vertailun :

josta löydämme .

Loput bitit saadaan samalla tavalla. Kirjoitetaan etsinnän yleinen ratkaisu uudella merkinnällä:

,

missä

.

Joten tehoon nostaminen antaa:

.

Näin ollen:

josta löydämme .

Kun kaikki bitit on löydetty, saamme tarvittavan ratkaisun . [6]

Esimerkki

Annettu:


Löytö:

Ratkaisu:
Saamme . Siksi se näyttää tältä:

Löydämme :

Laskemme myös :

Löydämme :

Laskemme myös :

Löydämme :

Laskemme myös :

Löydämme :

Löydä etsimäsi :

Vastaus:

Peruskuvaus

Vaihe 1 (taulukon kokoaminen). Tee arvotaulukko , missä Vaihe 2 (laskenta ). I : lle 1 - k : Päästää missä . Sitten vertailu on oikea: Ylin vertailutulos

Nostetaan vertailun (1) vasen ja oikea osa potenssiin :

Korvaa ja muunna vertailu:

Koska on primitiivinen elementti, joten muodon vertailut:

Saamme

[neljä] Vaiheessa 1 laaditun taulukon avulla löydämme For j :n välillä 0 - Vertailua harkiten Ratkaisu löytyy jälleen taulukosta Silmukan loppu j :ssä Silmukan loppu kohdassa i Vaihe 3 (vastauksen löytäminen). Kaikille i : lle etsiminen löydämme kiinalaisen jäännöslauseen avulla . [7] Esimerkki

On tarpeen löytää diskreetti logaritmi kantaan kohdasta , toisin sanoen löytää :

.

Löydämme hajoamisen .

Me saamme .

Teemme pöydän :

Me harkitsemme . Totta :

Vertailusta löydämme :

Taulukosta huomaamme, että yllä oleva vertailu pitää paikkansa.

Vertailusta löydämme :

Taulukosta saamme, että yllä oleva vertailu pitää paikkansa. Löydämme :

Nyt mietitään . Totta :

Analogisesti löydämme :

Saamme :

Saamme järjestelmän:

Ratkaistaan ​​järjestelmä. Muutamme ensimmäisen vertailun tasa-arvoksi, jonka korvaamme toisella vertailulla:

Korvaamme löytämämme ja saamme etsimämme :

Vastaus :. [kahdeksan]

Algoritmin monimutkaisuus

Jos laajennus (2) tunnetaan, niin algoritmin monimutkaisuus on

, missä .

Tämä vaatii vähän muistia. [9]

Yleensä algoritmin monimutkaisuus voidaan myös arvioida seuraavasti

. [kymmenen]

Jos jokaisen q i :n käsittelyssä käytetään nopeutettuja menetelmiä (esimerkiksi Shanks-algoritmi ), kokonaispistemäärä laskee

.

Näissä arvioissa oletetaan, että aritmeettiset operaatiot modulo p suoritetaan yhdessä vaiheessa. Itse asiassa näin ei ole - esimerkiksi modulo p -lisäys vaatii O (log p ) perusoperaatioita. Mutta koska samanlaisia ​​tarkennuksia tehdään mille tahansa algoritmille, tämä tekijä hylätään usein.

Polynomin monimutkaisuus

Kun alkutekijät ovat pieniä, niin algoritmin monimutkaisuus voidaan arvioida muodossa . [yksitoista]

Algoritmilla on yleensä polynomimonimutkaisuus siinä tapauksessa, että kaikki alkutekijät eivät ylitä , missä  ovat positiivisia vakioita. [yksi]

Esimerkki

Totta yksinkertaisille lajeille .

Eksponentiaalinen monimutkaisuus

Jos on olemassa alkutekijä , jossa . [yksi]

Sovellus

Polig-Hellman-algoritmi on erittäin tehokas, kun se jaetaan pieniin alkutekijöihin. Tämä on erittäin tärkeää ottaa huomioon valittaessa salausmenetelmien parametreja. Muuten järjestelmä on epäluotettava.

Huomautus

Polig-Hellman-algoritmin soveltamiseksi sinun on tiedettävä tekijöiden jako. Yleisesti ottaen tekijöiden jakamisen ongelma on melko aikaa vievä, mutta jos luvun jakajat ovat pienet (yllä mainitussa mielessä), niin tämä luku voidaan nopeasti tekijöihin lisätä jopa peräkkäisen jaon menetelmällä. Näin ollen siinä tapauksessa, että Polig-Hellman-algoritmi on tehokas, tekijöiden jakamisen tarve ei vaikeuta ongelmaa.

Muistiinpanot

  1. 1 2 3 Vasilenko, 2003 , s. 131.
  2. Pohlig et ai, 1978 .
  3. Odlyzko, 1985 , s. 7.
  4. 1 2 Koblitz, 2001 , s. 113.
  5. Koblitz, 2001 , s. 113-114.
  6. Pohlig et ai., 1978 , s. 108.
  7. Vasilenko, 2003 , s. 130-131.
  8. Koblitz, 2001 , s. 114.
  9. Odlyzko, 1985 , s. kahdeksan.
  10. Hoffstein et al, 2008 , s. 87.
  11. Pohlig et ai., 1978 , s. 109.

Kirjallisuus

venäjäksi
  1. N. Koblitz. Lukuteorian ja kryptografian kurssi . - M . : Tieteellinen kustantaja TVP, 2001. - 254 s.
  2. O.N. Vasilenko. Numeroteoreettiset algoritmit kryptografiassa . - M .: MTSNMO, 2003. - 328 s. - 1000 kappaletta.  — ISBN 5-94057-103-4 . Arkistoitu 27. tammikuuta 2007 Wayback Machinessa
englanniksi
  1. SC Pohlig ja ME Hellman. Parannettu algoritmi GF(p):n logaritmien laskemiseen ja sen kryptografinen merkitys  //  IEEE Transactions on Information Theory. - 1978. - Voi. 1 , ei. 24 . - s. 106-110 .
  2. A. M. Odlyzko. Diskreetit logaritmit äärellisissä kentissä ja niiden kryptografinen merkitys  //  T.Beth , N.Cot, I.Ingemarsson Proc. EUROCRYPT 84 -työpajan aiheesta Advances in cryptology: theory and application of cryptographic techniks. - NY, USA: Springer-Verlag New York, 1985. - P. 224-314 . - ISBN 0-387-16076-0 .  (linkki ei saatavilla)
  3. J. Hoffstein, J. Pipher, J. H. Silverman. Johdatus matemaattiseen  kryptografiaan . - Springer, 2008. - 524 s. — ISBN 978-0-387-77993-5 .