Assume that hash(X) == Y
- Alice knows both X and Y
- Bob only knows Y
Alice generates a random nonce N and shares it with Bob.
Alice calculates H = hash(X⊕N) and shares H with Bob.
Can Alice prove to Bob that H really is hash(X⊕N) without sharing the value of X?
X, Y, N, H are all 32 bytes.
The hash function is SHA-256.