Protocolul Fiat-Shamira

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 16 decembrie 2020; verificarea necesită 1 editare .

Protocolul Fiat-Shamir  este unul dintre cele mai cunoscute protocoale de identificare zero -knowledge. Protocolul a fost propus de  Amos Fiat și Adi Shamir 

Spune - i lui A câteva secrete . Este necesar să se dovedească cunoașterea acestui secret unei părți B fără a dezvălui vreo informație secretă. Securitatea protocolului se bazează pe dificultatea extragerii rădăcinii pătrate modulo un număr compus n suficient de mare a cărui factorizare este necunoscută.

Descrierea protocolului

A îi demonstrează lui B că știe s în t runde. Runda se mai numește și acreditare. Fiecare acreditare constă din 3 etape.

Acțiuni preliminare

Mesaje transmise (etape ale fiecărei acreditări)

Acțiuni de bază

Următoarele acțiuni sunt efectuate succesiv și independent de t ori. B consideră cunoștințele dovedite dacă toate rundele t au avut succes.

Alegerea lui e din setul {0,1} implică faptul că, dacă partea A știe cu adevărat secretul, atunci va putea întotdeauna să răspundă corect, indiferent de alegerea lui e . Să presupunem că A vrea să-l înșele pe B. În acest caz, A , poate răspunde doar la o anumită valoare a lui e . De exemplu, dacă A știe că va obține e = 0, atunci A ar trebui să acționeze strict conform instrucțiunilor și B va accepta răspunsul. Dacă A știe că va primi e = 1, atunci A alege un r aleatoriu și îl trimite în partea B , ca rezultat obținem . Problema este că A nu știe inițial ce e va primi și, prin urmare, nu poate trimite cu 100% probabilitate către partea B r și x necesare pentru a înșela ( pentru e = 0 și pentru e = 1). Prin urmare, probabilitatea de a înșela într-o rundă este de 50%. Pentru a reduce probabilitatea de a înșela (este egal cu ) t este ales suficient de mare ( t =20, t =40). Astfel, B se asigură că A știe dacă și numai dacă toate rundele t au avut succes.

Exemplu

Unde

Dacă e a fost egal cu 0, atunci Confirmat.

In caz contrar,

și Confirmat.

Literatură