Algoritmul de calcul al comenzii

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 6 iunie 2019; verificările necesită 2 modificări .

Algoritmul de calcul al ordinului ( algoritmul index-calculus ) este un algoritm probabilistic pentru calcularea logaritmului discret într-un inel de reziduuri modulo un număr prim . Complexitatea găsirii logaritmului discret stă la baza multor algoritmi legați de criptografie . Deoarece rezolvarea acestei probleme folosind numere mari necesită o cantitate mare de resurse pe care niciun computer modern nu le poate oferi . Un exemplu de astfel de algoritm este GOST R 34.10-2012 .

Istorie

Maurice Krajczyk a propus pentru prima dată ideea de bază a acestui algoritm în cartea sa „Théorie des Nombres” în 1922. După 1976, problema logaritmului discret devine importantă în matematică și criptoanaliza. Acest lucru se datorează creării criptosistemului Diffie-Hellman . În acest sens, în 1977, R. Merkle a reluat discuțiile despre acest algoritm. Doi ani mai târziu, a fost publicat pentru prima dată de colegii lui Merkel. În cele din urmă, în 1979, Adlerman l-a optimizat, a cercetat complexitatea și l-a prezentat în forma pe care o cunoaștem astăzi. În prezent, algoritmul de calcul al ordinii și versiunile sale îmbunătățite oferă cea mai rapidă modalitate de a calcula logaritmi discreti în unele grupuri finite.

Enunțul problemei logaritmului discret

Pentru un număr prim dat și două numere întregi și este necesar să se găsească un număr întreg care să satisfacă comparația:

unde este un element al grupului ciclic generat de elementul .

Algoritm

Intrare : g  - generator al unui grup ciclic de ordin n , a  - dintr-un subgrup ciclic, p  - un număr prim, c  - parametru de fiabilitate, de obicei luat egal cu 10 sau un număr apropiat de această valoare (utilizat pentru implementarea algoritmului pe un computer, dacă o persoană decide, atunci nu se setează).

Sarcină : găsiți x astfel încât .

  1. Alegeți o bază factorială S = { p 1 , p 2 , p 3 , …, p t } (Dacă G = Z * p , atunci baza constă din primele t numere prime).
  2. Ridicăm g la o putere aleatorie k , unde k este astfel încât . Primim .
  3. Reprezentăm g k astfel: unde (adică încercăm să o factorizăm). Dacă nu funcționează, atunci reveniți la pasul 2.
  4. Din paragraful 3 urmează expresia obţinut prin luarea unui logaritm (comparaţia se ia modulo ordinea grupului, deoarece lucrăm cu exponentul, dar în grupul G ). Logaritmii sunt necunoscuți în această expresie. Sunt t dintre ei. Este necesar să obținem astfel de ecuații t  +  c bucăți, dacă acest lucru nu este posibil, revenim la pasul 2 (când este implementat pe un computer) sau obținem numărul necesar de ecuații pentru a găsi toți logaritmii necunoscuti (atunci când sunt rezolvate de o persoană).
  5. Rezolvăm sistemul de ecuații rezultat, cu t necunoscute și t  +  c comparații.
  6. Alegem un număr aleator k astfel încât . Noi calculăm .
  7. Repetăm ​​punctul 3, doar pentru numărul . Dacă nu funcționează, revenim la al 6-lea paragraf.
  8. Similar punctului 4, obținem: , unde ( ), unde . În acest moment, am rezolvat problema logaritmului discret găsind .

Ieșire : .

Exemplu

Rezolvați ecuația:

Alegeți o bază de factori Fie k = 7 Calculați

Luăm logaritmul și notăm Și obținem sistemul de ecuații

O rezolvam

Într-adevăr, prin urmare ,

Găsim k astfel încât

prin urmare

Luăm logaritmul acestei expresii și obținem

Raspuns :

Dificultate

În acest algoritm, numărul de iterații depinde atât de dimensiunea lui p , cât și de dimensiunea bazei factorilor. Dar alegem baza de factori în avans, iar dimensiunea acesteia este fixă. Prin urmare, complexitatea finală este determinată doar de mărimea numărului prim și este egală cu: , unde ,  sunt niște constante care depind de calcule intermediare, în special, de alegerea bazei factorilor.

Îmbunătățiri

Un algoritm de calcul accelerat al comenzii , a cărui esență este utilizarea unui tabel index.

Dificultate

Complexitatea de calcul este redusă la , în comparație cu algoritmul original.

Vezi și

Link -uri