Puncte:3

Măcinarea în euristica Fiat-Shamir

drapel in

Se presupune că euristica Fiat-Shamir înlocuiește mesajele cu monede publice de la verificator cu hasheuri ale mesajelor doveditorului până în acest moment, adică: $$H(\alpha_1) = \beta_1, \ H(\alpha_1, \alpha_2) = \beta_2,\H(\alpha_1, \alpha_2, \alpha_3) = \beta_3,\vdots$$ unde $\alpha_i$Acestea sunt mesajele doveditorului.

Înțeleg de ce euristica Fiat-Shamir este dovedită a fi sigură în ROM, totuși, în practică, funcția hash $H$ NU este un oracol, deci ce îl evită pe doveditor să-și macine mesajele pentru a putea falsifica o dovadă falsă?

De exemplu, într-un $\Sigma$-protocol există un singur mesaj de la verificator $\beta_1 = H(\alpha_1)$. Ce se întâmplă dacă dovezitorul macină peste unele $\alpha_1'$ până când găsește o intrare în funcția hash astfel încât $\beta_1$ îl lasă să obțină un avantaj?

De ce hash TOATE mesajele demonstratorului precedent pentru a obține următorul mesaj de verificator non-interactiv? Care este problema efectuării, de exemplu, $H(\alpha_i) = \beta_i$? Și mai rău, ce se întâmplă dacă probatorul poate hash orice dorește?

Puncte:9
drapel cn

Ce îl evită pe doveditor să-și macine mesajele pentru a putea falsifica o dovadă falsă?

Am putea pune exact aceeași întrebare și cu privire la un oracol aleatoriu! Ce îl împiedică pe doveditor să-și macine mesajele până când poate falsifica o dovadă falsă? Ceea ce sugerezi se poate face în totalitate cu un RO.

Și răspunsul este: ar trebui să existe un număr foarte mic de mesaje $\alpha_1$ astfel încât $\beta_1 = H(\alpha_1)$ lasă dovatorul să aibă un avantaj. Într-un mod tipic $\Sigma$-protocol, de exemplu, atunci când afirmația nu este în limbă (deci probatorul înșală), există în medie unu $\alpha_1$ care permite doveditorului să trișeze. (Exercițiu: arătați că acesta este cazul pentru $\Sigma$-protocol pentru tuplurile DDH, unde este cuvântul $(X,Y)$ iar martorul este $x\in\mathbb{Z}_p$ astfel încât $X = g^x$ și $Y = h^x$). Prin urmare, dacă există $2^c$ valori posibile $\beta_1$ (acesta este spațiul provocării), probatorul rău intenționat va trebui să calculeze $O(2^c)$ hashes pentru a falsifica o dovadă falsă. Acum fa $c$ suficient de mare și obțineți securitate computațională.

Rețineți că atacul de măcinare este încă un aspect important: $\Sigma$-protocoalele au securitate necondiționată, dar imediat ce le compilați în ROM-ul cu Fiat-Shamir, au doar de calcul soliditatea. Aceasta înseamnă că parametrul de securitate pentru soliditate (spațiul de provocare) trebuie ajustat în consecință: un spațiu de provocare de 40 de biți este bine pentru un $\Sigma$-protocol (deoarece oferă un doveditor rău intenționat a $2^{-40}$ probabilitatea statistică de a încălca cu succes soliditatea, care poate fi acceptabilă în practică), dar ruptă pentru Fiat-Shamir (deoarece încălcarea protocolului compilat necesită $2^{40}$ operațiuni, care este banal de efectuat). De obicei, vom folosi un spațiu de provocare despre $2^{128}$ când utilizați Fiat-Shamir.

Vadym Fedyukovych avatar
drapel in
„Într-un protocol Σ tipic..nu în limbă, există, în medie, unul 1 care permite doveditorului să trișeze”. Acest lucru este valabil pentru verificarea răspunsurilor doveditorului, cum ar fi următoarea algebră liner. Poate că nu atât de tipic, s-ar putea verifica coeficientul de putere doi (luând în considerare provocarea ca o variabilă liberă) combinând trei răspunsuri precum teorema lui Pitagora, dublând șansele de a înșela în acest caz.
Bean Guy avatar
drapel in
Mmmm, asta am crezut. Oricum, posibilitatea unui atac „de măcinare” ar trebui luată în considerare de fiecare dată când cineva intenționează să construiască un protocol, nu? Presupun că nu este dovedit (în cazul general) că probabilitatea unui atac de măcinare reușit este neglijabilă.
Geoffroy Couteau avatar
drapel cn
@Vadym corect, ar fi fost mai corect să spunem că este pentru limbaje liniare sau pur și simplu să spunem că numărul mediu va fi o fracțiune neglijabilă din spațiul de provocare în general.
Vadym Fedyukovych avatar
drapel in
@Geoffroy probabil că această idee de „puteri de provocare” a fost exagerată din partea mea și majoritatea Σ-protocoalelor publicate sunt oricum „liniare”. Ideea mea este că au existat unele progrese în proiectarea acestui tip de Σ-protocoale pentru a demonstra relațiile polinomiale înainte de R1CS/snark days.

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.