Member-only story
Zero Knowledge Proofs with Elliptic Curves and Schnorr
With Zero Knowledge Proofs (ZKPs), Peggy can have a signature and then use this to prove that she still knows her secret. The method we will use is based on Schnorr’s protocol [1][here]:
Let’s say that Peggy wants to prove that she knows her password (secret) to Victor. First we take a hash of this with:
k=H(secret||salt) (mod n)
and where n is the order of the curve. We then convert this to a point with:
S=k.G
This is a signature that is represented as an (x,y) point. We can then publish this signature publicly, and where subsequent messages are proven to have been produced by the same key. Overall, the signature does not reveal anything about the data.
Messages are thus verified with the signature. For this the verifier (Victor) produces a random message (t) and sends to Peggy for them to generate a proof against her public signature. Victor produces:
t=Random_token()
and send this to Peggy. Peggy then produces:
