Skip to content

ivansarno/FiatShamirProtocol

Repository files navigation

FiatShamirProtocol

C++ OOP Fiat-Shamir Zero Knowledge Protocol implementation

This project was designed for learning purposes, its use in real systems is not recommended. This project will no longer be updated.

Library includes:

-keyGen function
-PrivateKey class
-PublicKey calss
-Proover class
-Verifier class
-Makefile with Test and Library targets

Random Number Generator

Random Number Generator included is only for testing, user can replace it subclassing FiatShamirProtocol::Generator

Usage:

a)the client create the keys with PrivateKey::keyGen
b)the client instantiates a Proover object from the private key
c)the server instantiates a Verifier object from the public key of client
d)run a session of the protocol exchanging the result of methods for N iteration, with N is the precision you like:

  1)Client: Proover.step1 -> Server
  2)Server: Verifier.step1 -> Client
  3)Client: Proover.step2 -> Server
  4)Server: Verifier.step2 -> result of identification
  4.1)Server: Verifier.checkstate -> result of identification

Dependencies C++17 Arbitrary Precision Library from GMP. Link: https://gmplib.org

Releases

No releases published

Packages

No packages published