Fiat-Shamir-protokollet är ett av de mest välkända noll - kunskapsidentifieringsprotokollen. Protokollet föreslogs av Amos Fiat och Adi Shamir _
Låt A veta några hemligheter . Det är nödvändigt att bevisa kännedom om denna hemlighet för någon part B utan att avslöja någon hemlig information. Säkerheten för protokollet är baserad på svårigheten att extrahera kvadratroten modulo ett tillräckligt stort sammansatt antal n vars faktorisering är okänd.
A bevisar för B att han kan s i t omgångar. Omgången kallas även ackreditering. Varje ackreditering består av 3 steg.
Följande åtgärder utförs sekventiellt och oberoende t gånger. B anser att kunskapen är bevisad om alla t omgångar var framgångsrika.
Valet av e från mängden {0,1} innebär att om part A verkligen känner till hemligheten, så kommer den alltid att kunna svara rätt, oavsett valet av e . Låt oss säga att A vill lura B. I detta fall kan A endast svara på ett specifikt värde på e . Till exempel, om A vet att han kommer att få e = 0, då bör A agera strikt enligt instruktionerna och B kommer att acceptera svaret. Om A vet att han kommer att få e = 1, så väljer A ett slumpmässigt r och skickar det till sida B , som ett resultat får vi det önskade . Problemet är att A initialt inte vet vad e han kommer att få och därför inte med 100 % sannolikhet kan skicka till sidan B de r och x som behövs för att lura ( för e = 0 och för e = 1). Därför är sannolikheten för fusk i en omgång 50%. För att minska sannolikheten för fusk (det är lika med ) väljs t tillräckligt stort ( t =20, t =40). Således ser B till att A vet om och endast om alla t omgångar har varit framgångsrika.
Var
Om e var lika med 0, då bekräftas.
Annat,
och bekräftad.