chaum_pedersen_auth 0.1.3

An implementation of ZKP(Zero Knowledge Proof) using chaum pedersen algorithm
Documentation

Zero Knowledge Proof Algorithm Implemetaion Awesome

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