Puncte:3

Cum să găsiți eficient distanța dintre două chei private ale punctelor EC

drapel es

Există două chei private EC $x_1$ și $x_2$, unde cheile lor publice corespunzătoare pe punctul de bază binecunoscut $G$ sunt $X_1=x_1G$ și $X_2=x_2G$ respectiv. Ordinea grupului ciclic generat de $G$ este $\ell$.

Acele chei private au fost alese astfel încât distanța $d=|x_1-x_2|\ (mod\ \ell)$ e mai puțin decât $2^n$, pentru o valoare declarată de $n$.

Dat $X_1$, cum putem determina $d$ mai eficient decât prin adăugarea/scăderea în mod repetat $G$ la $X_1$ până când există o potrivire cu $X_2$?

Puncte:2
drapel bd

Poți să folosești pas de copil pas de gigant sau mai degrabă Algoritmul lambda (sau, cangur) al lui Pollard a găsi $d$ folosind $O(2^{n/2})$ operațiuni de grup, care vor depăși căutarea dvs. lineară de aproximativ $2^n$ operațiuni de grup dacă $n$ nu este prea mic.

Puncte:2
drapel ng

Putem folosi o variantă minoră a Pas de copil/pas de gigant a găsi $d$ cu în ordinea de $3\,2^{n/2}$ adăugări de puncte (și normalizare la o reprezentare unică de puncte). Facem pasi de copil din $X_1$, și pași uriași de la $X_2$ (în ambele direcții pentru mai târziu, pentru a compensa semnul necunoscut al $x_1-x_2$). Aici merge:

  • lăsa $m=\lceil2^{n/2}\rceil$
  • lăsa $W_0:=X_1$
  • pentru $i$ din $1$ la $m-1$ (Pași de bebeluș)
    • a stabilit $W_i=W_{i-1}+G$
      nota: aici $W_i=X_1+i\,G$
  • lăsa $H=m\,G$ (care poate fi obținut ca $H=W_{m-1}+G-W_0$ )
  • lăsa $U:=X_2$ și $V:=X_2-H$
  • lăsa $j=0$
  • repetă (pași uriași)
    nota: aici $U=X_2+(j\,m)\,G$ și $V=X_2-((j+1)\,m)\,G$
    • dacă $U$ se găsește în $W_i$
      • ieșire $|j\,m-i|$ și opriți
    • dacă $V$ se găsește în $W_i$
      • ieșire $(j+1)\,m+i$ și opriți
    • lăsa $U:=U+H$ și $V:=V-H$
    • lăsa $j:=j+1$

Dacă din condițiile menționate în note rezultă că acest algoritm se oprește întotdeauna la ieșire $d$ după aproximativ $d/2^{n/2}$ (cel mult $m$) iterații ale buclei repetate. Observați că folosind o structură de date adecvată, costul căutărilor de $U$ și $V$ în tabelul de $W_i$ este în esență constantă w.r.t. $n$, astfel că principalul cost de calcul îl reprezintă adunările de puncte (și normalizarea rezultatului acestora, astfel încât $W_i$ pot fi căutate eficient).

Problemele sunt că acest lucru necesită multă memorie pentru tabelul de $W_i$, iar algoritmul așa cum a fost menționat este secvenţial. Acest lucru poate fi rezolvat, iar căutarea poate fi distribuită între mai multe mașini, folosind tehnicile din lucrarea lui Paul C. van Oorschot și Michael J. Wiener. Căutare de coliziuni paralele cu aplicații criptoanalitice, în Journal of Criptology, 1999.

drapel cn
Acesta răspunde la întrebarea din corp, dar nu la întrebarea din titlu, deoarece algoritmul sugerat este *mai* eficient, dar cu siguranță nu *de fapt* eficient.
knaccc avatar
drapel es
Mulțumesc, am implementat metoda ta și funcționează perfect! Când n=24, primesc o accelerare de aproximativ 100x față de metoda naivă.
fgrieu avatar
drapel ng
@knaccc: pentru n=24 m-aș aștepta la o accelerare cu un factor ca 1000, pentru o structură de date eficientă care caută $U$ și $V$ în $W_i$.
knaccc avatar
drapel es
@fgrieu Cred că se datorează faptului că biblioteca EC pe care o folosesc oferă rezultatele adunărilor/scăderilor în spațiul de coordonate P3 (XYZT), și deci fie va exista o suprasarcină de la înmulțirile elementelor de câmp pentru a normaliza coordona Z înainte de Compararea P3 la P3 sau, alternativ, vor exista operațiuni de element de câmp necesare pentru a converti de la P3 la o coordonată unică semnată în scopul comparării cu o singură coordonată.
fgrieu avatar
drapel ng
@knaccc: ah, asta are sens. Dacă este mai rapid cu un factor mare $\alpha$ pentru a testa o adăugare de puncte care a ajuns la neutru decât pentru a face o reprezentare a punctului normalizată, așa cum este necesar pentru căutare, atunci accelerația așteptată este redusă cu un factor aproape de $\alpha$.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.