Skip to content

Solthodox/zkp-auth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZKP Authentication Server

GitHub License GitHub Stars GitHub Forks GitHub Issues

Overview

This project demonstrates a server authentication application using Zero-Knowledge Proof (Chaum-Pedersen protocol) implemented in Rust. It uses the gRPC protocol for communication between the client and server. Zero-Knowledge Proof (ZKP) is a cryptographic technique that allows one party (the prover) to prove to another party (the verifier) that they possess knowledge of a secret without revealing the secret itself.

Features

  • User registration with ZKP
  • Authentication challenge generation
  • Solution verification
  • Secure communication with gRPC
  • Chaum-Pedersen protocol implementation

Getting Started

Prerequisites

  • Rust: Make sure you have Rust installed. You can download it from rustup.rs.
  • Protocol Buffers: Ensure that you have Protocol Buffers (protoc) installed. You can download it from Protocol Buffers.

Building and Running

  1. Clone this repository to your local machine:

    git clone https://github.com/solthodox/zkp-auth.git
    cd zkp-auth
  2. Build the project:

    cargo build --release
  3. Start the server:

    cargo run --bin server
  4. In a separate terminal, run the client:

    cargo run --bin client

Usage

  1. When running the client, you will be prompted to enter a username and a password (x).
  2. The client will register the user with the server using the Chaum-Pedersen protocol.
  3. It will then request an authentication challenge from the server.
  4. After receiving the challenge, the client will verify the solution and log in if successful.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Chaum-Pedersen protocol authentication server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages