Pollard kenguru algoritmusa

A számítási számelméletben és a számítási algebrában a Pollard-féle kenguru-algoritmus (és a Pollard-féle lambda-algoritmus is , lásd a címet alább) a diszkrét logaritmus -probléma megoldására szolgáló algoritmus . Az algoritmust 1978-ban J. M. Pollard javasolta ugyanabban a cikkben [1] , mint az ő ismertebb ρ-algoritmusát ugyanazon probléma megoldására. Bár Pollard leírja ennek az algoritmusnak az alkalmazását a diszkrét logaritmus-problémára egy modulo a pr prím multiplikatív csoportban , valójában ez egy általános diszkrét logaritmus-algoritmus – minden ciklikus véges csoporton működik.

Algoritmus

Legyen egy elem által generált  véges ciklikus rendű csoport , és keressük az elem diszkrét logaritmusát az alaphoz képest . Más szóval, olyat keresünk , hogy . A lambda-algoritmus lehetővé teszi, hogy a -nak valamely részhalmazában keressünk . Megkereshetjük a lehetséges logaritmusok teljes halmazát és feltételezésével , bár a ρ-algoritmus ebben az esetben hatékonyabb lesz. A következőképpen járunk el:

1. Válassza ki az egész számok halmazát, és határozzon meg egy pszeudo-véletlen leképezést .

2. Válasszon egy egész számot , és számítsa ki a csoportelemek sorrendjét a képletek alapján:

3. Számítsa ki

.

vegye észre, az

4. A képletek segítségével elkezdjük kiszámítani a csoportelemek második sorozatát

és a megfelelő egész számsorozat a képlet szerint

.

vegye észre, az

számára

5. Ha az egyik feltétel teljesül, állítsa le a számítást

A) egyesek számára . Ha a sorozatok és a szekvenciák ilyen módon "ütköznek", akkor: így megtaláltuk, amit akartunk. B) . Ha ez megtörténik, az algoritmus nem találta meg a . Egy másik kísérlet a halmaz és/vagy a leképezés megváltoztatásával tehető .

Nehézség

Pollard a valószínűségi okoskodáson alapuló időbonyolultságot adott meg az algoritmus számára , ami abból a feltevésből következik, hogy f álvéletlenszerűen működik. Megjegyzendő, hogy abban az esetben, ha az { a , …, b } halmaz méretét bitben mérjük , ami a komplexitáselméletben szokásos , akkor a halmaz log( b  −  a ) mérettel rendelkezik, így az algoritmikus komplexitás egyenlő : amely a probléma méretének kitevője . Emiatt a Pollard-féle lambda-algoritmus egy exponenciális összetettségű algoritmusnak tekinthető . Egy idő-szubexponenciális algoritmus példáját a Számítási algoritmus sorrendje című témakörben találja .

Cím

Az algoritmust két néven ismerjük.

Az első név Pollard "kenguru" algoritmusa . A név a cikkben használt analógiára utal, ahol az algoritmust javasolták. A cikk elmagyarázza az algoritmust egy szelíd kenguru használatával egy vad kenguru elfogására . Amint Pollard [2] kifejtette , ezt az analógiát egy "bájos" cikk ihlette, amely a Scientific American ugyanabban a számában jelent meg, mint az RSA nyilvános kulcsú kriptorendszer kiadása . A [3] cikk egy kísérletet ír le, amelyben "egy kenguru mozgatásának energiaköltségét, amelyet az oxigénfogyasztásban mértek különböző sebességeknél, úgy határozták meg, hogy egy kengurut egy futópadra helyeztek " .

A második név Pollard lambda algoritmusa . Nagyon hasonlít Pollard másik diszkrét logaritmus algoritmusának nevéhez, a ρ-algoritmushoz , és ez a név az algoritmus vizualizációs hasonlóságának köszönhető a görög lambda ( ) betűhöz. A lambda betű rövid sora a sorozatnak felel meg . Ennek megfelelően a hosszú sor annak a sorozatnak felel meg, amely "ütközik" az első sorozattal (hasonlóan egy betű rövid és hosszú sorainak találkozásához).

Pollard szívesebben használja a "kenguru algoritmus" [4] nevet , hogy elkerülje a ρ-algoritmus néhány párhuzamos változatával való összetévesztést, amelyeket "lambda-algoritmusnak" is neveznek.

Lásd még

Jegyzetek

  1. Pollard, 1978 .
  2. Pollard, 2000 , p. 437-447.
  3. Dawson, 1977 , p. 78-89.
  4. jmptidcott2 . Letöltve: 2016. november 5. Az eredetiből archiválva : 2016. augusztus 17..

Irodalom