Rendelésszámítási 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 2019. június 6-án felülvizsgált verziótól ; az ellenőrzések 2 szerkesztést igényelnek .

A sorrendszámítási algoritmus ( index-számítási algoritmus ) egy valószínűségi algoritmus a maradékgyűrű diszkrét logaritmusának kiszámítására prímszám modulo . A diszkrét logaritmus megtalálásának bonyolultsága sok kriptográfiával kapcsolatos algoritmus alapja . Mivel a probléma megoldása nagy számok felhasználásával olyan nagy mennyiségű erőforrást igényel, amelyet egyetlen modern számítógép sem tud biztosítani . Ilyen algoritmus például a GOST R 34.10-2012 .

Történelem

Maurice Krajczyk 1922-ben "Théorie des Nombres" című könyvében javasolta először ennek az algoritmusnak az alapötletét. 1976 után a diszkrét logaritmus probléma fontossá válik a matematikában és a kriptoanalízisben. Ez a Diffie-Hellman kriptorendszer létrehozásának köszönhető . Ezzel kapcsolatban 1977-ben R. Merkle folytatta ennek az algoritmusnak a tárgyalását. Két évvel később jelentették meg először Merkel munkatársai. Végül 1979-ben Adlerman optimalizálta, kutatta a komplexitást, és a ma ismert formában mutatta be. Jelenleg a sorrendszámítási algoritmus és továbbfejlesztett változatai biztosítják a leggyorsabb módszert a diszkrét logaritmusok kiszámítására bizonyos véges csoportokban.

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:

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

Algoritmus

Bemenet : g - n  rendű ciklikus csoport generátora , a  - ciklikus alcsoportból, p  - prímszám, c  - megbízhatósági paraméter, általában 10-nek vagy egy ehhez közeli számnak számít (az algoritmus megvalósítására használják számítógép, ha valaki úgy dönt, akkor nincs beállítva).

Feladat : keress x olyat, hogy .

  1. Válasszunk egy faktorbázist S = { p 1 , p 2 , p 3 , …, p t } (Ha G = Z * p , akkor az alap az első t prímszámból áll).
  2. Emeljük g -t egy k véletlenszerű hatványra , ahol k olyan, hogy . kapunk .
  3. A g k -t a következőképpen ábrázoljuk: ahol (vagyis megpróbáljuk faktorizálni). Ha nem működik, térjen vissza a 2. lépéshez.
  4. A (3) bekezdésből a kifejezés következik logaritmus felvételével kapjuk meg (az összehasonlítást a csoport sorrendje modulo módon vesszük, mivel a kitevővel dolgozunk, de a G csoportban ). Ebben a kifejezésben a logaritmusok ismeretlenek. t van belőlük. Ilyen egyenleteket kell beszerezni t  +  c darab, ha ez nem lehetséges, akkor visszatérünk a 2. lépéshez (számítógépen való megvalósítás esetén), vagy megkapjuk a szükséges számú egyenletet, hogy megtaláljuk az összes ismeretlen logaritmust (ha valaki megoldja).
  5. Az így kapott egyenletrendszert t ismeretlennel és t  +  c összehasonlítással oldjuk meg.
  6. Válasszunk egy k véletlenszámot úgy, hogy . Kiszámoljuk .
  7. Megismételjük a 3. pontot, csak a számra . Ha nem működik, akkor térjünk vissza a 6. bekezdéshez.
  8. A 4. ponthoz hasonlóan a következőket kapjuk: , hol ( ), hol . Ezen a ponton a diszkrét logaritmus feladatot úgy oldottuk meg, hogy megtaláltuk .

Kimenet : .

Példa

Oldja meg az egyenletet:

Válasszunk egy tényezőalapot Legyen k = 7 Számítsuk ki

Vegyük a logaritmust és jelöljük És megkapjuk az egyenletrendszert

Megoldjuk

Valóban , tehát ,

Találunk k olyat

Következésképpen

Vegyük ennek a kifejezésnek a logaritmusát, és kapjuk

Válasz :

Nehézség

Ebben az algoritmusban az iterációk száma függ a p méretétől és a faktorbázis méretétől is. De a faktorbázist előre kiválasztjuk, és a mérete fix. Ezért a végső összetettséget csak a prímszám nagysága határozza meg, és egyenlő: , ahol ,  olyan állandók, amelyek köztes számításoktól, különösen a faktoralap megválasztásától függenek.

Fejlesztések

Egy gyorsított sorrendszámítási algoritmus , melynek lényege egy indextábla használata.

Nehézség

A számítási bonyolultság az eredeti algoritmushoz képest -ra csökken.

Lásd még

Linkek