Unifying Zero-Knowledge Proofs of Knowledge
A method for obtaining digital signatures and public-key cryptosystems