Skip to content

Elvis339/chaum-pedersen-zkp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chaum Pedersen ZKP

"Cryptography: An Introduction (3rd Edition) Nigel Smart" page 377 section "3. Sigma Protocols" subsection "3.2. Chaum–Pedersen Protocol."
Public parameters derived from RF 3526 - 2048

Changes

Fiat-shamir heuristic

Fiat-Shamir heuristic is a way to make the prover compute a challenge for themselves in a way they can’t control by computing the challenge as a hash.
I used this heuristic to implemnt non-interactive version of this protocol over Curve25519.

How to run

Without docker

Open two separate terminal windows, in one of the windows run:

  • RUST_LOG=info cargo run --bin zkp_server
  • Register:
    • Interactive
      • RUST_LOG=info cargo run --bin zkp_client register --name Nyan --password cat
      • Non-interactive
        • RUST_LOG=info cargo run --bin zkp_client register --name Nyan --password cat --algorithm non-interactive
  • Login:
    • Interactive
      • RUST_LOG=info cargo run --bin zkp_client login --name Nyan --password cat
    • Non-interactive
      • RUST_LOG=info cargo run --bin zkp_client login --name Nyan --password cat --algorithm non-interactive

With docker

  • docker-compose up will start the server
  • docker exec -it $(docker ps --filter "name=chaum_pedersen_protocol-zkp_server" --format "{{.ID}}") /bin/bash exec into the container
  • Register:
    • Interactive
      • RUST_LOG=info ./zkp_client register --name Nyan --password cat
      • Non-interactive
        • RUST_LOG=info ./zkp_client register --name Nyan --password cat --algorithm non-interactive
  • Login:
    • Interactive
      • RUST_LOG=info ./zkp_client login --name Nyan --password cat
    • Non-interactive
      • RUST_LOG=info ./zkp_client login --name Nyan --password cat --algorithm non-interactive

About

Implementation of Chaum-Pedersen interactive ZKP.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published