Puncte:3

Metoda logaritmului discret ElGamal pentru a trimite cheile

drapel cn

La cursul meu de criptografie mi s-a dat următorul exercițiu:

ElGamal a propus următoarea schemă de semnătură digitală folosind logaritmi discreti pe un câmp $\mathbb{F}_p$, Unde $p$ este un prim mare.

  • Pasul 1) Toată lumea este de acord asupra unui prim $p$ si un generator $g$ pentru $\mathbb{F}_p^*$.

  • Pasul 2) A (și toate celelalte utilizări) alege un exponent secret $d_A$, și face public $e_A\equiv g^{d_A}\mod p$ (la fel ca în criptosistemul ElGamal).

  • Pasul 3) Pentru a semna un mesaj, codificat ca un număr întreg $m$ cu $0\le m\le p-1$, A alege un număr întreg aleatoriu $k$ relativ prim pentru $p-1$ (adică $\gcd(k,p-1)=1$). Apoi calculează $r\equiv g^k \mod p$ și rezolvă ecuația $g^m\equiv e_A^r r^s \mod p$ în necunoscut $s$. În cazul în care $s=0$ (destul de puțin probabil), ea începe din nou cu altceva $k$. În cele din urmă, A îi trimite lui B mesajul $m$ împreună cu perechea $(r,s)$, care este semnatura ei pentru acel mesaj.

  • Pasul 4) Beatriz verifică asta $g^m \equiv e_A^r r^s \mod p$. Dacă acest lucru este valabil, B acceptă semnătura $(r,s)$ chiar aparține lui A.

a) Verifică dacă Ana știe tot ce trebuie să calculeze $s$.

b) Verificați că C nu poate pretinde că este A fără să știe $d_A$, adică fără a putea rezolva o problemă de logaritm discret și, prin urmare $B$ pot fi sigur că mesajul vine cu adevărat de la A.

c) De ce trebuie A arunca $k$ dacă se dovedește că $s=0$?

Asta am:

a) Din moment ce $r\equiv g^k\mod p$ și $e_A=g^{d_A}\mod p$ atunci: $$g^m\equiv e_A^rr^s\equiv (g^{d_A})^{r}(g^k)^s=g^{d_Ar+ks}\mod p$$ Și mica teoremă a lui Fermat implică asta $m\equiv d_Ar+ks\mod p-1\Rightarrow ks\equiv m-d_Ar\mod p-1$. Prin urmare, din moment ce $\gcd(k,p-1)=1$ avem asta $k$ este inversabilă în $\mathbb{F}^*_p$ Așadar $s\equiv k^{-1}(m-d_Ar)\mod p-1$. Prin urmare, am terminat, din moment ce Ana știe $p,k,m,d_A$ și $r$.

b) Dacă $C$ vreau să pretind că sunt $A$, trebuie trimis $m$ și $(r,s)$ astfel încât $g^m\equiv e_A^rr^s\mod p$. Dar $s$ depinde de $d_A$ după cum am văzut în $a)$. Prin urmare, nu putem construi $s$ fara sa stie $d_A$, și așa, dacă $C$ vreau să pretind că sunt $B$, trebuie să găsească $d_A$. Dar asta este greu, din moment ce singurul lucru despre care știm $d_A$ (dacă nu suntem $A$) este asta $e_A\equiv g^{d_A}\mod p$ și așa, prefăcându-se că sunt $A$ este echivalent cu rezolvarea unei probleme de logaritm discret.

c) Dacă $s=0$ atunci $g^m\equiv e_A^r\equiv g^{d_Ar}\mod p$ Așadar $m\equiv d_Ar\mod p-1$. De aici sunt blocat, deoarece acestea sunt singurele informații pe care le am, dar nu văd cum ne permite asta să construim o semnătură fără să știm $d_A$. Desigur, putem rezolva $m\equiv d_Ar\mod p-1$, care va avea $\gcd(r,p-1)$ soluții și apoi verifică care este cea corectă $d_A$, dar $\gcd(r,p-1)$ poate fi aproape de $p-1$ dacă avem ghinion, și asta ar însemna că acest proces este în timp exponențial și nu este mai bine decât rezolvarea logaritmului discret.

Dacă puteți verifica dacă a) și b) au dreptate și dați-mi un indiciu cu privire la c) vă voi fi foarte recunoscător.

Puncte:2
drapel ng

Solutia data la A e bine.


Proba încercată pentru b este greșit: este posibil ca C âtrimite $m$ și $(r,s)$ astfel încât $g^m\equiv(e_A)^r\,r^s\pmod p$â.

O modalitate de a face acest lucru chiar dacă A nu a folosit $d_A$ dincolo de pasul 1: C alege $r=s=(p-1)/2$, și calculează $(e_A)^r\,r^s\bmod p$. Oricum $p-1$ sau $1$. C alege în mod corespunzător $m=(p-1)/2$ sau $m=0$, și acum are $m$ și $(r,s)$ care trec de verificarea pasului 4. Acesta este un fals existențial (există alții care duc la o privire aleatorie $m$). Un anumit grad de ameliorare împotriva acestora poate fi obținut prin solicitarea ca la pasul 4, B să accepte doar semnificative $m$ pentru o anumită definiție a sensului. Sau schimbarea ecuației de verificare în $g^{H(m)}\equiv(e_A)^r\,r^s\pmod p$.

Dar apoi, există problema că C ar fi putut captura un $m$ și $(r,s)$ pregătit de A într-o execuție anterioară a pasului 3 și trimite-l lui B. Acesta este un atac de reluare asupra protocolului prezentat în b. O modalitate de a le bloca este ca B să aleagă $m$ înainte de fiecare execuție a pasului 3.

Dar apoi, C poate transmite către A orice mesaj C primește de la B și către B orice mesaj C primește de la A. Acesta este un atac de releu asupra protocolului prezentat în b. Soluțiile la acesta din domeniul de aplicare al întrebării sunt destul de limitate: a decide că nu este o problemă sau a emite ipoteza că A este izolat de interacțiunile dintre B și C.

Dacă întrebarea transcrie corect enunțul problemei, aceasta din urmă este astfel greșită! În cazul în care doar arătarea este considerată riscantă, sugerez să reformulăm protocolul prezentat în b ca: presupune $m$ este ales la întâmplare în $[0,p-1)$ de B înainte de pasul 3, iar A nu este implicat în schimburile dintre B și C din acea alegere a $m$ până la finalizarea pasului 4. Demonstrați că dacă C poate trece testul pasului 4 cu probabilitate diferită de zero, atunci C poate găsi $d_A$ cu aceeasi probabilitate. Sper (nu sunt sigur) că există o soluție relativ simplă pentru acea reformulare.


Sugestie pentru c: În primul rând să presupunem $(p-1)/2$ este principal (o cerință obișnuită pentru a ajuta la îngreunarea DLP-ului), iar un interlocutor ia cu urechea $m$ și $(r,s=0)$ trecând testul de 4 și $m\not\equiv0\pmod{(p-1)/2}$. Demonstrează că acest observator poate găsi $d_A$, apoi uzurpați identitatea lui A.


Chiar dacă inițial declarația problemei nu, vă recomand să rămâneți la notația standard pentru$\bmod$:

  • $a\equiv b\pmod q$, introdus ca $a\equiv b\pmod q$, înseamnă că $q\ne0$ și $b-a$ este un multiplu al $q$, fără nicio legătură pentru $a$. Există o paranteză de deschidere imediat înainte$\bmod$, ceea ce implică că nu are operand stânga. The$\bmod$și operandul corect se califică mai devreme $\echiv$ semn. Pot fi mai multe, ca în $a\equiv b\equiv c\pmod q$.
  • $a=b\bmod q$ (introdus ca $a=b\bmod q$) înseamnă că $0\le a<q$ și $b-a$ este un multiplu al $q$. În această expresie$\bmod$este un operator cu două argumente, care se aplică operandului din stânga $b$ și operand drept $q$. Nu este $\echiv$ semn și fără paranteză imediat înainte$\bmod$. Am putea scrie în mod echivalent $a=(b\bmod q)$, $(b\bmod q)=a$, sau $b\bmod q=a$.
Marcos avatar
drapel cn
Hmm, mulțumesc pentru soluție, îmi voi întreba profesorul despre partea b) pentru că ai dreptate și trebuie să fie greșit. Pentru c) aceasta este încercarea mea, dacă o puteți verifica: Fie $\frac{p-1}{2}$ prim, atunci $m\equiv d_Ar\pmod {p-1}$ ceea ce implică $m\equiv d_A \,r\pmod {\frac{p-1}{2}}$ și așa, deoarece $\gcd(r,p-1)\in\lbrace 1,\frac{p-1}{2},p -1\rbrace$ dacă presupunem $m\neq 0\pmod{\frac{p-1}{2}}$ avem $\gcd(r,p-1)=1$ și am terminat, deoarece $ r^{-1}m\equiv d_A\pmod{p-1}$
fgrieu avatar
drapel ng
@Marcos: totul mi se pare bine.

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.