Pollard rho módszere diszkrét logaritmushoz

Pollard ro-metódusa diszkrét logaritmushoz ( -method ) egy algoritmus a diszkrét logaritmushoz a maradékok gyűrűjében modulo prím, exponenciális összetettséggel . Az 1978 - ban John Pollard brit matematikus által javasolt algoritmus alapötlete nagyon hasonlít Pollard számfaktorizációs ro - algoritmusához . Ezt a módszert a nem nulla maradékok modulo csoportjára tekintjük , ahol  egy prímszám nagyobb, mint .  

A diszkrét logaritmus feladat utasítása

Adott prímszámra és két egészre, és meg kell találni egy olyan egész számot , amely kielégíti az összehasonlítást:

(egy)

ahol az elem által generált ciklikus csoport egy eleme .

A ro-metódus algoritmus

A modulo egész számpárok sorozatát és a modulo egész számok sorozatát tekintjük, a következőképpen definiálva:


(2)



(3)


(négy)


(5)

Megjegyzés: minden kifejezésben a legkisebb, nem negatív maradékokat veszik figyelembe.

2. megjegyzés : általánosabb esetben 3 részhalmazra kicsit eltérő módon is fel lehet osztani: a csoportot három , megközelítőleg egyenlő méretű részhalmazra osztjuk úgy, hogy ne tartozzon a részhalmazba .

Mivel annak a szegmensnek minden harmadik része, amelyhez egy elem tartozik, valószínűleg nincs kapcsolatban a sorozatok elemeivel , a kapott sorozat álvéletlen. Ezért létezhetnek olyan számok , amelyek . Ha talál ilyen számpárt, akkor a következőket kapja:


(6)

Ha a szám relatív prímszám -hoz , akkor ez az összehasonlítás megoldható, és a diszkrét logaritmus megtalálható:


(7)

Ha a számok legnagyobb közös osztója és egyenlő a számmal , akkor van megoldás erre az összehasonlításra a modulo -ra . Legyen , majd a kívánt szám , ahol felveheti az értékeket . Ezért, ha  elég kicsi a szám, akkor a problémát az összes lehetséges érték felsorolásával oldjuk meg . A legrosszabb esetben - amikor  - a módszer nem bizonyul jobbnak, mint a diszkrét logaritmus összes lehetséges értékének teljes felsorolása.

Az indexek kereséséhez a Floyd cikluskeresési algoritmust használjuk . Ennek az algoritmusnak a használatakor a -edik lépésben értékek vannak, és egy számot kell keresni , amelyhez . Azt a legkisebb értéket , amelynél ez a feltétel teljesül, epactnak nevezzük . Ha ugyanakkor , akkor


(nyolc)

Po-módszer egy elliptikus görbén lévő pontcsoporthoz

Legyen adott egy elliptikus görbe (EC) pontcsoportja . Az általánosság elvesztése nélkül feltételezhetjük, hogy és  prímszám. Jelölje a sorrendi alcsoportot és rögzítse a generáló elemet . A csoport tetszőleges eleme esetén a diszkrét logaritmus problémája az elem megtalálása

A csoportot unióként ábrázoljuk , ahol  közel azonos kardinalitású tetszőleges halmazok vannak. Az iterációs függvény definíciója:

(9)

Így ahol az együtthatók a következők szerint vannak definiálva

(tíz)
(tizenegy)

Egy tetszőleges kezdeti érték kiválasztásával két és szekvenciát készítünk, amíg ütközést nem találunk . A (10) és (11) képlet alapján megoldódik a diszkrét logaritmus feladat:


(12)

Fontos, hogy az ütközés során kapott érték a kezdeti értéktől függ, és meghatározza a Pollard-módszer számítási bonyolultságát.

Az algoritmus összetettsége

Az algoritmus fő feladata a sorozatok kiszámítása . Ezekhez a számításokhoz három modulo szorzás szükséges a következő iterációhoz való továbblépéshez. A szükséges memória mérete minimális, mivel nincs szükség a sorozatok összes korábbi elemére vonatkozó információ tárolására. Így az algoritmus összetettsége az epact megtalálásának problémájának összetettségére redukálódik, aminek viszont van egy heurisztikus komplexitásbecslése , és különböző esetekben az állandó értékei egészen eltérőek lehetnek, de pl. egy szabály, feküdj belül .

Összehasonlítás más algoritmusokkal

Más diszkrét logaritmus-algoritmusokhoz képest a Pollard-algoritmus olcsóbb mind a bináris műveletek, mind a szükséges memóriamennyiség tekintetében. Például kellően nagy számértékek esetén ez az algoritmus a komplexitás szempontjából hatékonyabb, mint a COS algoritmus és az Adleman algoritmus , amelyek összetettsége . A szintén összetett Shanks algoritmushoz képest a Pollard algoritmus előnyösebb a felhasznált memória szempontjából - a Shanks algoritmus memóriát igényel, míg ennél az algoritmusnál a szükséges memória mérete állandó (feltéve, hogy a Floyd ciklus keresési algoritmusa használt).

Módszer párhuzamosítás

Elosztott memóriarendszerek

A Pollard elosztott memóriarendszerekre vonatkozó módszerének ötlete az, hogy elválasztja a pontok iterációját a kliens munkaállomások között és a szerver általi ütközés keresését. Adjuk meg a kliens munkaállomások halmazát A szerver meghatározza a rendszerben közös paramétereket, néhány részhalmazt és inicializálja a munkaállomásokat. A kliens munkaállomás pontsorozatot épít fel, és a pontokat elemenként küldi el a szervernek. Ha a pont nincs az adatbázisban, akkor a szerver hozzáadja a pontot az adatbázishoz, ellenkező esetben kiszámítja a diszkrét logaritmus értékét.

Osztott memória rendszerek

Ennek a módszernek az az ötlete, hogy az iterációs függvényt és az ütközésészlelési algoritmust külön-külön párhuzamosítsák. Az iterációs függvény párhuzamosításra kerül a sorozatok és szekvenciák kiszámításának szakaszában .. Megjegyzendő, hogy a és a fix érték párhuzamos számítása és az azt követő összehasonlítás nem hatékony. Ennek az az oka, hogy az adatfolyamok használatához kapcsolódó többletköltség számításilag drágább, mint a számítástechnika , ezért célszerű a sorozatokat úgy kiszámítani, hogy a többletterhelés egyenletes legyen. Ezt úgy érhetjük el, hogy rendszerezzük a számításokat a és formájú sorozatok , ahol  a számítási blokk mérete, . A Pollard-módszer ütközésészlelési funkciója összehasonlítja és . Ez az összehasonlítás párhuzamosítható egy iterációs algoritmus használatával megosztott memóriarendszerekhez. A pontiterációs függvény végrehajtásának eredménye két ponthalmaz és , amelyeket blokkonként, azaz két kernel esetén összehasonlítunk.

Kombinált módszer

Az elosztott memóriarendszerek Pollard-módszere kiterjeszthető többmagos munkaállomásokon való használatra. A módszer lényege, hogy a pontok kliens munkaállomások általi iterációja egy bizonyos algoritmus szerint történik, aminek a lényege, hogy van egy kliens munkaállomás, amely pontsorozatot épít fel . Ezután a munkaállomás kiválasztja a pontok egy részhalmazát, és elküldi a szervernek. Az egy részhalmazhoz való tartozás ellenőrzése párhuzamos módban történik: és (két mag esetén). A szerver pontokat és pontokat ad hozzá az adatbázishoz, amíg meg nem talál egy már létező pontot.

Módosítások és optimalizálások

Az algoritmuson számos jelentős fejlesztés található különböző trükkök alapján.

Egy fejlesztést ír le [Teske 1998]. A cikkben bemutatott módszer különbsége a bonyolult iteratív függvényben rejlik - a fent leírt három helyett 20 különböző ágat tartalmaz. A numerikus kísérletek azt mutatják, hogy egy ilyen javulás a véletlenszerű séta algoritmusának átlagosan 20%-os gyorsulásához vezet.

Pollard módszere

A diszkrét logaritmusok kiszámításáról szóló munkájában Pollard egy módszert is javasolt, amelyet azért neveztek el, mert egy görög betű alakja két út egyesülésének képére hasonlít. A módszer lényege, hogy egyszerre két úton haladunk: az egyik abból a számból indul ki, amelynek diszkrét logaritmusát kell megtalálni, a másikat abból a számból, amelynek a diszkrét logaritmusa már ismert. Ha ez a két út konvergál, lehetségessé válik egy szám diszkrét logaritmusának megtalálása . Pollard azt javasolta, hogy az egyes utak lépéseit kengurugrásnak kell tekinteni, ezért ezt az algoritmust néha "kenguru-módszernek" is nevezik. Ha tudjuk, hogy a kívánt diszkrét logaritmus valamilyen rövid intervallumban rejlik, akkor a kenguru módszer adaptálható, mégpedig rövidebb ugrású kenguruk használatával.

A lambda módszer egyik fontos tulajdonsága, hogy könnyen elosztható több számítógép között. Az elosztott számítástechnikában minden résztvevő választ egy véletlen számot , és álvéletlen lépéseket kezd a számból , ahol  a csoport azon eleme, amelyre a diszkrét logaritmust keresik. Minden résztvevő ugyanazt a könnyen kiszámítható pszeudo-véletlen függvényt használja , ahol  a számok viszonylag kis halmaza, amelynek átlagos értéke összehasonlítható a csoport méretével , amelynek sorrendje van . A teljesítményeket előre kiszámítják. Ekkor a "vándorlás" az elemből kiindulva a következő alakot ölti:

Hagyja, hogy a másik résztvevő a kezdő számot választva a sorozatot kapja Ha metszi a sorozatot , azaz egyeseknél , akkor, figyelembe véve, hogy , a következő igaz:


(13)
(tizennégy)

Ezt a módszert általában akkor használják, ha a csoport sorrendje egyszerű. Azóta, ha a számítások elején kiválasztott összes szám abszolút értékben különbözik , akkor az összehasonlítás könnyen megoldható a diszkrét logaritmus meghatározásához . Egy kis nehézséget jelent, hogy az egyezés előfordulhat ugyanabban a sorozatban, ami azt jelenti, hogy . Ha azonban a számításokban részt vevők száma elég nagy, akkor a sorozatok közötti egyezés valószínűsége nagyobb, mint az azonos sorozaton belüli egyezés valószínűsége.

Lehetséges pszeudo-véletlen függvény használata . Ebben az esetben az összes egyezés hasznos lesz: az azonos sorozaton belüli egyezés felhasználható a diszkrét logaritmus kiszámítására is. Egy ilyen egyezés esetén a metódus egyszerűen metódussá válik . Ha azonban tudjuk, hogy a kívánt diszkrét logaritmus egy rövid intervallumban található, akkor az eredeti módszer használható. Ekkor a futási idő körülbelül az intervallum hosszának négyzetgyöke lesz. Ebben az esetben a halmaz egészeinek átlagértékének kisebbnek kell lennie, hogy a "kenguruk" csak a kívánt hosszúságú intervallumon ugorjanak át.

A központi számítógépnek nyomon kell követnie minden résztvevőtől a mérkőzések összes sorozatát. A születésnapi paradoxon szerint egyezés akkor várható, ha az elemek száma az összes sorozatban ). Nyilvánvaló, hogy a leírt formában ez a módszer nagy mennyiségű memóriát igényel a központi számítógéptől. A következő, van Orschot munkájában leírt ötlet nagymértékben lecsökkenti a memóriaigényt, és így alkalmazhatóvá teszi ezt a módszert összetett problémák megoldására. Az ötlet az, hogy figyelembe vegyük az úgynevezett kiválasztott pontokat. Feltételezzük, hogy a csoport elemeit egész számok (vagy esetleg egész számok halmazai) reprezentálják. Egy ilyen számban lévő megkülönböztetett bináris hosszúságú mező az idő körülbelül harmadáig minden nullából áll . Egy véletlenszerű séta átlagosan minden lépésben áthalad az ilyen kiválasztott pontokon. Ha két véletlenszerű sorozat valahol metszi egymást, akkor tovább metszik egymást, és együtt jutnak el a következő kiválasztott ponthoz. Tehát az ötlet az, hogy csak ezeket a kiválasztott pontokat küldjük a központi számítógépnek, ami egy faktorral csökkenti a szükséges memória méretét.

Irodalom