ECDLP

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 26 ianuarie 2015; verificările necesită 13 modificări .

ECDLP (Elliptic Curve Discrete Logarithm Problem)  este o problemă de logaritm discret într-un grup de puncte ale unei curbe eliptice .

Să fie date o curbă eliptică E, un câmp finit F p , și punctele P, Q ∈ E(F p ). Sarcina ECDLP este să găsească un astfel de k, dacă există, încât Q = [k]P.

Definiții

O curbă eliptică E peste un câmp finit F p este o curbă de forma (forma Weierstrass):

, unde a, b ∈ F p .

Mulțimea punctelor de pe o curbă eliptică din câmpul F p , inclusiv punctul „infinit” (notat cu Ο), formează un grup abelian finit și este notat cu E(F p ) .

Un punct Q ∈E (F p ) se numește punct invers față de P ∈ E(F p ) dacă P + Q = Ο și se notează Q = -P .

Pentru un număr natural n și P ∈ E(F p ) presupunem:

Notațiile [n]P și nP sunt echivalente. Definiția poate fi extinsă la orice număr întreg n folosind -P.

Ordinea unui grup de puncte este numărul N egal cu cardinalitatea mulțimii E(F p ) și se notează |E(F p )| =N . De obicei, în criptografia eliptică, curbele sunt luate astfel încât N = h * l, unde h = 1, 2 sau 4 și l este un număr prim mare.

Ordinea unui punct P ∈ E(Fp) este numărul minim s astfel încât [s]P = Ο. În acest caz, se formează un subgrup și punctul P se numește generator .

Algoritmi de soluție

Enumerarea completă

Este cel mai simplu atac de implementat. Este necesar doar să se poată efectua operația R = [k]P.

Algoritm
  1. dacă , atunci  - soluție
  2. altceva ; mergeți la [2].

Complexitatea algoritmului: Ο(N).

Algoritmul Polig-Hellman

Descriere

Fie G un subgrup al lui E(F p ), (adică se presupune că numărul N poate fi factorizat) și .

Vom rezolva problema găsirii k modulo , apoi, folosind teorema chineză a restului , vom găsi soluția k modulo N.

Din teoria grupurilor se știe că există un izomorfism de grup:

unde  este un subgrup ciclic al lui G,

Apoi proiecția pe :

Prin urmare, în .

Să arătăm cum să rezolvăm problema în , reducând-o la rezolvarea ECDLP în .

Lasă și .

Numărul este definit modulo . Atunci k poate fi scris sub următoarea formă:

Să găsim valorile prin inducție. Să presupunem că știm  - valoarea , adică

Acum vrem să determinăm și astfel să calculăm :

Apoi .

Lasă și apoi

Acum  - elementul de ordine , pentru a obține elementul de ordine și, prin urmare, pentru a reduce problema la este necesar să se înmulțească expresia anterioară cu . Acea.

și

A primit ECDLP pe teren ca .

Presupunând că această problemă poate fi rezolvată în , găsim soluția în . Folosind teorema chineză a restului, obținem soluția ECDLP în .

După cum sa menționat mai sus, în practică, curbele eliptice sunt luate astfel încât , unde  este un număr prim foarte mare, ceea ce face ca această metodă să fie ineficientă.

Exemplu

Pasul 1. Găsiți

  • Găsim proiecțiile punctelor pe :
  • Noi decidem

Pasul 2. Găsiți

  • Găsim proiecțiile punctelor pe :
  • Noi decidem
Rețineți că atunci

Pasul 3. Găsiți

  • Găsim proiecțiile punctelor pe :
  • Noi decidem

Pasul 4. Găsiți

  • Din teorema chineză a restului pentru valorile obținute în pașii anteriori 1-3, avem că

Algoritmul lui Shanks (metoda Baby-Step/Giant-Step)

Descriere

Fie  un subgrup ciclic al .

Să o punem sub forma:

De când , atunci .

Calculăm lista de „pași mici” și salvăm perechile .

Complexitatea calculelor: .

Acum calculăm „pașii mari”. Să găsim . _

În timpul căutării, încercăm să găsim printre perechile salvate astfel încât . Dacă a fost posibil să găsești o astfel de pereche, atunci .

Sau, care este la fel:

.

Complexitatea calculelor „pașilor mari”: .

În acest caz, complexitatea generală a metodei , dar necesită și memorie pentru stocare, ceea ce este un dezavantaj semnificativ al algoritmului.

Algoritm
  1. Salvați
  2. lista de înregistrare [2]

Metoda ρ a lui Pollard

Descriere

Fie  un subgrup ciclic al .

Ideea principală a metodei este de a găsi perechi distincte și modulo astfel încât .

Apoi sau . Prin urmare, .

Pentru a implementa această idee, alegem o funcție aleatoare pentru iterații și un punct aleatoriu pentru a începe traversarea. Următorul punct este calculat ca .

Deoarece  este finit, există indici astfel încât .

Apoi .

De fapt , pentru .

Apoi succesiunea  este periodică cu o perioadă (vezi figura).

Deoarece f este o funcție aleatorie, conform paradoxului zilei de naștere , coincidența se va întâmpla după aproximativ iterații. Pentru a accelera căutarea coliziunilor, se utilizează o metodă inventată de Floyd pentru a găsi lungimea ciclului: o pereche de valori pentru este calculată dintr-o dată până când este găsită o potrivire.

Algoritm
  1. Inițializare. Alegeți numărul de ramuri L (de obicei se ia 16) Selectați funcția
  2. Calculul . Luați la întâmplare
  3. Calculul . Luați la întâmplare
  4. Pregătirea pentru un ciclu.
  5. Ciclu.
  6. Ieșire. EROARE sau rulați algoritmul din nou.

Complexitatea algoritmului: .

Exemplu

Pasul 1. Definiți funcția.

Pasul 2. Iterații.

Pasul 3 Detectarea coliziunilor

  • La :
  • Înțelegem asta

Literatură

Bolotov, A. A., Gashkov, S. B., Frolov, A. B., Chasovskikh, A. A. O introducere elementară în criptografia eliptică: fundamente algebrice și algoritmice. - M .: KomKniga, 2006. - S. 328. - ISBN 5-484-00443-8 .

Bolotov, A. A., Gashkov, S. B., Frolov, A. B., Chasovskikh, A. A. O introducere elementară în criptografia eliptică: protocoale de criptare cu curbă eliptică. - M .: KomKniga, 2006. - S. 280. - ISBN 5-484-00444-6 .

Galbraith, SD, Smart, NP RAPORT DE EVALUARE PENTRU CRYPTREC: NIVEL DE SECURITATE AL CRIPTOGRAFII - PROBLEMA MATEMATICĂ ECDLP.

Song Y. Yan Atacuri cuantice asupra criptosistemelor bazate pe ECDLP. - Springer US, 2013 - ISBN 978-1-4419-7721-2