ZKP is a viable alternative to hashing in an authentication schema. This repo implements the ZKP Protocol and a Proof-of-Concept application that utilizes the protocol to register and authenticate users.
The ZKP protocol is described in the book "Cryptography: An Introduction (3rd Edition) Nigel Smart" page 377 section "3. Sigma Protocols" subsection "3.2. Chaum–Pedersen Protocol.". This source code adapts this protocol to support 1-factor authentication, that is, the exact matching of a number (registration password) stored during registration and another number (login password) generated during the login process.
This repo contains two projects: client and server.
-
Launch Postgres database. The url of the database is configured in the file server/src/parameters.rs via the parameter DATABASE_URL.
-
Run the server
/server$ cargo run
-
Run the client
/client$ cargo run