Puncte:0

Selectarea parametrilor Fiat-Shamir cu logaritm discret

drapel ph

Conform FiatâShamir euristic există doi parametri ai algoritmului: număr prim mare $p$ și rădăcină primitivă $g$. Astfel, apar mai multe întrebări:

  1. Cât de mare ar trebui să fie numărul prim $p$ fi? Cum să selectezi $p$ astfel încât, de exemplu, algoritmul PohligâHellman sau alți algoritmi cunoscuți nu l-ar putea rupe?
  2. Cum se selectează rădăcina primitivă $g$? Din cate stiu eu, este o problema NP
  3. Este sigur să folosiți aceleași valori ale $p$ și $g$ pentru câteva provocări?
Кирилл Волков avatar
drapel ph
@fgrieu De ce este mai bine să folosiți grupul Schnor în loc de primul sigur?
Puncte:2
drapel cn

Se pare că există o confuzie aici.După cum a afirmat corect fgrieu, Fiat-Shamir este o metodă de a face ca o monedă publică (verificator onest) să nu fie interactivă. Nu trebuie să selectați niciun parametru pentru Fiat-Shamir, dincolo de funcția hash: toți ceilalți parametri sunt parametri ai protocolului interactiv pe care îl faceți non-interactiv sau ai declarației pe care încercați să o demonstrați. De obicei, pentru o dovadă a cunoașterii unui logaritm discret, grupul, generatorul $g$, și modulul $p$, fac parte din descrierea declarației. Dovada Schnorr este o dovadă interactivă pentru gestionarea unor astfel de declarații, iar Fiat-Shamir poate fi folosit pentru a o face non-interactivă.

Parametrii declarației vor fi de obicei determinați de contextul în care intenționați să utilizați o dovadă de cunoștințe zero pentru declarație. În general, veți dori să utilizați o dovadă de cunoștințe zero a cunoașterii unui logaritm discret peste un grup în care se crede că calculul logaritmilor discreti este insolubil (în caz contrar, nu are nici un rost să dovediți cunoașterea logaritmului discret). Există o mulțime de opțiuni standard pentru astfel de grupuri (de exemplu, ed25519 cu orice generator, pentru a folosi exemplul de cealaltă întrebare a ta).

Puncte:1
drapel ng

Euristica Fiat-Shamir este o metodă generală de a construi o schemă de dovadă (sau semnătură) non-interactivă dintr-o schemă de dovadă interactivă a cunoștințelor. Un exemplu a schemei interactive adaptabile euristicii Fiat-Shamir este protocol într-un grup Schnorr. Așa voi interpreta întrebarea (celălalt răspuns discutați perspectiva mai generală a euristicii Fiat-Shamir).

Un grup Schnorr este un subgrup de ordin prim $q$, și generator $g$, din grupa multiplicativă modulo unele prime $p$. Acel grup principal $\mathbb Z_p^*$ are ordine $\varphi(p)=p-1$. Deoarece ordinea unui subgrup împarte ordinea grupului, $q$ trebuie să fie o divizare primară $p-1$. De cand $g$ este un generator, trebuie să fie astfel încât $g^q\equiv1\pmod p$ și $g\nu\equiv1\pmod p$. Grupul Schnorr este de obicei menționat ca trei numere întregi $(p,q,g)$.

Cât de mare ar trebui să fie numărul prim $p$ fi? Cum să selectezi $p$ astfel încât, de exemplu, algoritmul PohligâHellman sau alți algoritmi cunoscuți nu l-ar putea rupe?

Pentru ca grupul Schnorr să fie de interes criptografic, problema logaritmului discret trebuie să fie dificilă în grupul Schnorr. Aceasta implică rezistența unor algoritmi DLP cunoscuți. Algoritmul care determină practic dimensiunea necesară a $p$ într-un grup Schnorr este varianta DLP a GNFS, care este calculul indicelui specializată să $\mathbb Z_p^*$. The recordul curent este un bit de 795 de biți $p$, iar o dimensiune minimă recomandată pentru aplicațiile actuale este de 2048 de biți sau de 3072 de biți pentru „2030 și mai departe”.

De asemenea, este necesar ca $q$ este suficient de mare încât Rho lui Pollard pentru DLP este imposibil de realizat. Costul este de aproximativ $\Theta(\sqrt q)$ înmulțiri de grup. Prin urmare, este recomandat un minim de 224 de biți sau 256 de biți $q$.

Aceste cerințe sunt suficiente pentru a asigura Pohlig-Hellman algoritmul este să nu te temi. Asta pentru că Pohlig-Hellman necesită rezolvarea unui DLP în fiecare subgrup de ordine $q^k$ cu $k\ge 1$, $q$ prim, și $q^k$ împărțirea ordinii grupului de bază; și $k=1$ este cel mai simplu caz.

Cum se selectează rădăcina primitivă $g$?

Acest algoritm de timp polinomial probabilist va face:

  • alege primul aleator $q$ de dimensiunea dorită
  • alege chiar aleatoriu $r$ pentru prim $p=qr+1$ de dimensiunea dorită
  • ales aleatoriu $s$ în $[2,p-2]$, și calculați $g=s^{(p-1)/q}\bmod p$, pana cand $g\ne1$ (ceea ce este aproape sigur)
  • ca verificare a coerenței, verificați $g^q\bmod p=1$ (acesta este valabil, dacă nu a existat o eroare).

Este sigur să folosiți aceleași valori ale $p$ și $g$ pentru câteva provocări?

Da. Cunoașterea soluției pentru un anumit DLP dintr-un grup Schnorr, în mod demonstrabil, nu ajută la rezolvarea altor DLP-uri aleatoare neînrudite pe același grup Schnorr (rămâne posibilitatea ca o anumită precalculare să poată fi amortizată între mai multe DLP-uri, dar asta este marginal).

De ce este mai bine să folosiți un grup Schnorr în loc de un prim sigur $p$?

Un prim sigur $p$ corespunde $p-1=2q$, sau $r=2$ în cele de mai sus. Deși din punct de vedere tehnic, aceasta încă se potrivește cu definiția unui grup Schnorr, nu îndeplinește o motivație cheie a grupurilor Schnorr: a avea o comandă. $q$ de dimensiuni mult mai mici decât $p$. Acest lucru este interesant pentru că sunt exponenți $\mathbb Z_q$, deci mai scurt $q$ duce la o exponențiere mai rapidă, secrete mai scurte și (într-o variantă comună a euristicii Fiat-Shamir) semnături mai scurte. De asemenea, căutarea $p$ este ceva mai implicat. Din câte știm, folosind un grup Schnorr suficient de mare $q$ și $p$ este la fel de sigur ca și folosirea unui prim sigur $p$ de dimensiuni comparabile.

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.