Zero Knowledge Proof Algorithm Implemetaion 
How to use this library?
TL;DR
cargo build(should generate the compiled protobuf in exampls/protos. Note the build.rs file is only for compiling the proto files in example folder.)- Start the server:
cargo run --package chaum_pedersen_auth --example server - Start the client:
cargo run --package chaum_pedersen_auth --example client - Take a look at Example folder which implemeted a client and a server that use gRPC as protocol.
The theory
Assets:
- Bob's Asset: Private key: $x, k$
- Alice's Asset: Random key $c$
- Shared Asset: generator $\alpha , \beta$.
Registrition:
$\alphax \mod q$ , $\betax \mod q$
Authentication:
Bob send $\alphak \mod q$ , $\betak \mod q$
- Bob calculation: $s = k - cx$
- Alice Verification: $\alphas (\alphax)c \mod q$ , $\betas (\beta^x)^c\mod q$
Usage
- Put the following crates to Cargo workspace: