Puncte:3

Truc Strauss-Shamir privind înmulțirea EC cu scalar

drapel cn

Studiez ECDSA și aproape toate articolele oarecum detaliate vorbesc despre folosirea trucului Strauss-Shamir la pasul de verificare.
Apoi am căutat și am găsit acest explicație (mai mult ca o afirmație) pentru algoritm și apoi aceasta alta pdf (pagina 7) care o explică puțin mai detaliat. Dar niciunul dintre ele nu oferă o explicație De ce funcționează.
Aș dori să am un fel de demonstrație sau exemplu pas cu pas? Orice vine de la a Shamir-Straus pentru manechini la o demonstrație oficială sau o referire la orice lucrări pentru mine, matematica nu ar trebui să fie o problemă.

fgrieu avatar
drapel ng
Înțelegeți trucul de bază Shamir ca fiind utilizabil în DSA (non-EC) pentru a calcula $g^u\,y^v\bmod p$ mult mai rapid decât prin evidentul $(g^u\bmod p)\,(y ^v\bmod p)\bmod p$? Ar fi utilizabil și în ECDSA. Cred că trucul Strauss-Shamir este o extensie. Nu sunt familiarizat cu el.
drapel cn
Mă tem că nu am auzit despre asta.
fgrieu avatar
drapel ng
Ah, cred că trucul Shamir este un pas util. Înainte de aceasta: înțelegeți exponențiarea modulară prin pătrat și înmulțiți cu scanarea exponentului începând de la bitul cel mai semnificativ? De exemplu. că se poate calcula $g^{21}\bmod p$ cu 4 pătrare modulare și 2 înmulțiri modulare, cu pași intermediari $g^2\bmod p$, $g^4\bmod p$, $g^5\bmod p$, $g^{10}\bmod p$, $g^{20}\bmod p$ și, în final, $g^{21}\bmod p$ ?
drapel cn
Am aruncat o privire la [această întrebare](https://math.stackexchange.com/questions/119374/modular-exponentiation-by-repeated-squaring) pentru a înțelege ce ați spus și am ajuns la concluzia că înțeleg ideea din spate. $ g^{21} = g^{(10101)_2} = g^{16}*g^{4}*g $, deci trebuie doar să calculați $ g^{20} $ calculând cele mai mici înmulțiri dintre cele mai mici puteri posibile pentru a obține rezultatul. (Totuși, nu înțeleg trucul lui Shamir-Strauss despre înmulțirea EC cu scalari).
drapel cn
Dar înțelegerea a ceea ce ați sugerat mi-a dat ceva informații pentru a încerca să înțeleg referințele declarate mai profund, vă mulțumesc!
drapel pe
[Sondajul lui Bernstein](https://cr.yp.to/papers/pippenger-20020118-retypeset20220327.pdf) privind metodele de exponențiere include metoda [Straus](https://www.jstor.org/stable/2310929) în secțiunea 3.
Puncte:3
drapel ng

Voi descrie trucul Shamir standard adaptat contextului Verificarea semnăturii ECDSA. Renunțând la unii indici, partea costisitoare din punct de vedere computațional este calculul $$u\cdot G+v\cdot Q$$ Unde $u$ și $v$ sunt (presupunem, strict pozitive) numere întregi, $G$ și $Q$ sunt puncte de curbă eliptică și $+$ este adăugarea de puncte (pe care pentru simplificare o consider o cutie neagră, a cărui execuție domină costul de calcul). Amintiți-vă că prin definiție, $$u\cdot G=\underbrace{G+G+\ldots+G+G}_{u\text{ termeni}}$$

Ei bine, rețineți $\mathbin\|u\mathbin\|$ pentru numărul de biți în întreg $u$, acesta este $\left\lfloor\log_2(u)+1\right\rfloor$; la fel pt $\mathbin\|v\mathbin\|$.

Un mod comun de a calcula $u\cdot G$ este să

  • a stabilit $R:=G$
  • pentru un pic $b$ copiat din reprezentarea binară a $u$, începând cu index $\mathbin\|u\mathbin\|-1$ (primul bit din dreapta celui din stânga $1$ bit) până la $0$ (partea cea mai dreaptă)
    • a stabilit $R:=R+R$
    • dacă $b=1$, a stabilit $R:=R+G$

Modul de bază de a calcula $u\cdot G+v\cdot Q$ ar fi să calculez $u\cdot G$, atunci $v\cdot Q$ prin aceeași metodă, apoi adăugați cele două rezultate. Trucul lui Shamir se îmbunătățește în acest sens:

  • a stabilit $H:=G+Q$
  • dacă $\mathbin\|u\mathbin\|>\mathbin\|v\mathbin\|$, a stabilit $R:=G$;
  • altfel dacă $\mathbin\|u\mathbin\|<\mathbin\|v\mathbin\|$, a stabilit $R:=Q$;
  • altfel (adica daca $\mathbin\|u\mathbin\|=\mathbin\|v\mathbin\|$ ), a stabilit $R:=H$;
  • pentru un pic $b$ (resp. $c$) copiat din reprezentarea binară a $u$ (resp. $v$), cu reprezentările lui $u$ sau $v$ adăugată la stânga cu zerouri după cum este necesar, la index de la $\max(\mathbin\|u\mathbin\|,\mathbin\|v\mathbin\|)-1$ până la $0$
    • a stabilit $R:=R+R$
    • dacă $b=1$ și $c=0$, a stabilit $R:=R+G$
    • (altfel) dacă $b=0$ și $c=1$, a stabilit $R:=R+Q$
    • (altfel) dacă $b=1$ și $c=1$, a stabilit $R:=R+H$

Această afirmație este aproape echivalentă cu cea dată în acest raspuns sub denumirea de truc Strauss-Shamir (când cunosc trucul ca al lui Shamir). Varianta pe care o dau evită nevoia de a cunoaște grupul neutru, dar necesită $\max(u,v)>0$.

Corectitudinea înmulțirii standard a punctelor și trucul lui Shamir pot fi dovedite în mod formal prin inducție.

Pentru mare aleatorie $u$ și $v$ de $k$ biți, algoritmul naiv de calculat $u\cdot G+v\cdot Q$ performeaza in medie $\aproximativ 3k$ adaosuri de puncte, trucul lui Shamir reduce asta la $\aproximativ 1,75k$, cum ar fi cu 42% mai puțin (costul beneficiu este mai mic, în mare parte din cauza dublarii punctelor $R:=R+R$ este cel mai rapid tip de adunare de puncte și cel care este cel mai mic). Sunt posibile îmbunătățiri suplimentare, de ex. gruparea biților cu doi sau puțin mai mulți, poate cu „fereastra glisante” când $b=0=c$.

Observați că, în contextul verificării semnăturii, $u$, $v$, $G$ și $Q$ toate sunt publice, astfel că canalele secundare (timing, power draw, emisie, cache…) nu reprezintă o problemă de securitate, deoarece sunt în generarea semnăturii.

Nu cunosc trucul Strauss-Shamir al întrebării altă referință, dar bănuiți vag că se îmbunătățește în continuare acest lucru prin efectuarea uneori de scădere în loc de adunare și/sau este mai compatibil cu o tehnică de accelerare a adunării de puncte.

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.