Polig-Hellman algoritmus

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. április 23-án felülvizsgált verziótól ; az ellenőrzések 2 szerkesztést igényelnek .

A Polyg-Hellman algoritmus (ezt Silver-Polig-Hellman algoritmusnak is nevezik ) egy determinisztikus diszkrét logaritmus -algoritmus a maradékok gyűrűjében, prímszám modulo . Az algoritmus egyik sajátossága, hogy speciális alakú prímszámok esetén a diszkrét logaritmus polinomiális időben található. [egy]

Történelem

Ezt az algoritmust Roland Silver amerikai matematikus találta fel , de először két másik amerikai matematikus , Stephen Pohlig és Martin Hellman tették közzé 1978 -ban „ Egy továbbfejlesztett algoritmus a GF(p) logaritmusszámításhoz és annak kriptográfiai jelentősége” [2] című cikkében. , aki Roland Silvertől függetlenül fejlesztette ki ezt az algoritmust. [3]  

Kiinduló adatok

Legyen megadva az összehasonlítás

(egy)

és egy szám prímtényezőkre való felbontása ismert:

(2)

Olyan számot kell találni, amely kielégíti az összehasonlítást (1). [négy]

Az algoritmus ötlete

Az algoritmus lényege, hogy elég mindenkinek modult találni , majd a kínai maradéktétel segítségével megtalálhatjuk az eredeti összehasonlítás megoldását . Az egyes modulok megtalálásához meg kell oldania az összehasonlítást:

. [5]

Az algoritmus leírása

Egyszerűsített változat

A legjobb módja ennek az algoritmusnak az, ha figyelembe vesszük azt a speciális esetet, amikor .

Adva van , és , miközben van egy primitív elem , és meg kell találnunk azt , amelyik kielégíti .

Feltételezzük, hogy mivel nem különböztethető meg a -tól , mert esetünkben a primitív elemnek definíció szerint van foka , ezért:

.

Mikor , könnyen meghatározható bináris kiterjesztéssel együtthatókkal , például:

A legkisebb jelentőségű bitet hatványra emeléssel és a szabály alkalmazásával határozzuk meg

A felső szabály levezetése

Tekintsük a korábban kapott összehasonlítást :

,

de definíció szerint más értéket vesz fel, mint , így már csak egy összehasonlítás maradt :

.

Emelje az (1) összehasonlítást hatványra , és helyettesítse a fent kapott összehasonlítást:

Az egyenlőség akkor igaz, ha páros, vagyis a polinom alakjában történő bővítésnél a szabad tag egyenlő -val , ezért igaz, ha .

Most átalakítjuk az ismert dekompozíciót és bevezetünk egy új változót :

,

ahol

Nyilvánvaló, hogy osztható mikor -vel , és mikor osztható -vel , de már nem.

A korábbiakhoz hasonlóan érvelve megkapjuk az összehasonlítást :

amelyből azt találjuk .

A fennmaradó biteket hasonló módon kapjuk meg. Írjuk fel a keresés általános megoldását új jelöléssel:

,

ahol

.

Tehát a hatalomra emelés a következőket adja:

.

Következésképpen:

amelyből azt találjuk .

Miután megtaláltuk az összes bitet, megkapjuk a kívánt megoldást . [6]

Példa

Adott:


Megtalálja:

Megoldás:
megkapjuk . Ezért így néz ki:

Találjuk :

Számítunk még :

Találjuk :

Számítunk még :

Találjuk :

Számítunk még :

Találjuk :

Találja meg, amit keres :

Válasz:

Alapleírás

1. lépés (a táblázat összeállítása). Készítsen értéktáblázatot , ahol 2. lépés (számítás ). i -re 1 -től k - ig : Hadd ahol . Akkor helyes az összehasonlítás: Legjobb összehasonlító kimenet

Emeljük fel az (1) összehasonlítás bal és jobb oldalát a hatványra :

Helyettesítse és alakítsa át az összehasonlítást:

Mert primitív elem, ezért a forma összehasonlítása:

Kapunk

[négy] Az 1. lépésben összeállított táblázatot használva megtaláljuk a For j -t 0-tól Ha figyelembe vesszük az összehasonlítást A megoldás ismét a táblázatban található A hurok vége a j -n A hurok vége az i -n 3. lépés (a válasz megtalálása). Minden i -re keresve a kínai maradéktételt kapjuk . [7] Példa

Meg kell találni a diszkrét logaritmust a bázishoz , más szóval meg kell keresni :

.

Dekompozíciót találunk .

kapunk .

Készítünk egy táblázatot :

fontolgatjuk . Igazság szerint:

Összehasonlításból ezt kapjuk :

A táblázatból azt találjuk, hogy a fenti összehasonlítás igaz.

Összehasonlításból ezt kapjuk :

A táblázatból azt kapjuk, hogy a fenti összehasonlítás igaz. Találjuk :

Most mérlegeljük . Igazság szerint:

Analógia alapján a következőket találjuk :

Kapunk :

Megkapjuk a rendszert:

Oldjuk meg a rendszert. Az első összehasonlítást egyenlőséggé alakítjuk, amit a második összehasonlítással helyettesítünk:

Cseréljük, amit találtunk , és azt kapjuk, amit keresünk :

Válasz: . [nyolc]

Az algoritmus összetettsége

Ha ismerjük a (2) kiterjesztést, akkor az algoritmus összetettsége igen

, hol .

Ez egy kis memóriát igényel. [9]

Általánosságban elmondható, hogy az algoritmus bonyolultsága úgy is megbecsülhető

. [tíz]

Ha minden q i feldolgozása során gyorsított módszereket használunk (például a Shanks algoritmust ), akkor az összpontszám a következőre csökken.

.

Ezekben a becslésekben feltételezzük, hogy a modulo p aritmetikai műveleteket egy lépésben hajtják végre. Valójában nem ez a helyzet – például a modulo p összeadáshoz O (log p ) elemi műveletek szükségesek . De mivel hasonló finomítások történnek bármely algoritmusnál, ezt a tényezőt gyakran elvetik.

Polinom komplexitás

Ha a prímtényezők kicsik, akkor az algoritmus összetettsége a következőképpen becsülhető meg . [tizenegy]

Az algoritmus általában polinomiális komplexitású abban az esetben, ha az összes prímtényező nem haladja meg a -t , ahol  pozitív állandók vannak. [egy]

Példa

Igaz az egyszerű fajokra .

Exponenciális összetettség

Ha van olyan prímtényező , ahol . [egy]

Alkalmazás

A Polig-Hellman algoritmus kis prímtényezőkre bontva rendkívül hatékony . Ezt nagyon fontos figyelembe venni a kriptográfiai sémák paramétereinek kiválasztásakor. Ellenkező esetben a rendszer megbízhatatlan lesz.

Megjegyzés

A Polig-Hellman algoritmus alkalmazásához ismernie kell a faktorizációt. Általános esetben a faktorizációs probléma meglehetősen időigényes, de ha egy szám osztói kicsik (a fent említett értelemben), akkor ez a szám gyorsan faktorizálható akár az egymást követő osztás módszerével is. Így abban az esetben, ha a Polig-Hellman algoritmus hatékony, a faktorizálás szükségessége nem bonyolítja a problémát.

Jegyzetek

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

Irodalom

oroszul
  1. N. Koblitz. Számelmélet és kriptográfia tanfolyam . - M . : TVP Tudományos Kiadó, 2001. - 254 p.
  2. O. N. Vaszilenko. Számelméleti algoritmusok a kriptográfiában . - M. : MTSNMO, 2003. - 328 p. - 1000 példányban.  — ISBN 5-94057-103-4 . Archiválva 2007. január 27-én a Wayback Machine -nél
angolul
  1. SC Pohlig és ME Hellman. Továbbfejlesztett algoritmus a GF(p) logaritmusok kiszámításához és kriptográfiai jelentősége  //  IEEE Transactions on Information Theory. - 1978. - 1. évf. 1 , sz. 24 . - 106-110 . o .
  2. A. M. Odlyzko. Diszkrét logaritmusok véges mezőben és kriptográfiai jelentősége  //  T.Beth , N.Cot, I.Ingemarsson Proc. Az EUROCRYPT 84 műhelymunkája: Fejlődés a kriptológiában: kriptográfiai technikák elmélete és alkalmazása. - NY, USA: Springer-Verlag New York, 1985. - P. 224-314 . - ISBN 0-387-16076-0 .  (nem elérhető link)
  3. J. Hoffstein, J. Pipher, J. H. Silverman. Bevezetés a matematikai  kriptográfiába . - Springer, 2008. - 524 p. — ISBN 978-0-387-77993-5 .