Skip to main content

SDZKP: A zero-knowledge proof using subgroup distance problem

Project description

SDZKP: A zero-knowledge proof using subgroup distance problem

Zero-knowledge proof (ZKP) systems help principals to verify the veracity of a piece of information without sharing the data. They are widely used to preserve confidentiality and ownership of data. ZKP can be seen as a reusable building block for making the future internet trustworthy and secure. In this project (0KNOW) we aimed to develop a lightweight group-theoretic zero-knowledge proof system that can be employed as a cryptographic primitive in many security protocols such as identification, authentication, or credential ownership.

In 0KNOW, we have studied NP group-theoretic problems and selected the search version of the subgroup distance problem within the Hamming metric. Breifly, for given distance $k$, given element $g$, given subgroup H from the symmeric group of degree $n$ ($S_n$), problem asks to find an element h from the subgroup H which is at most $k$ distance from $g$. Our choice as platform subgroup is an elementary abelian subgroup. We have designed a novel black-box 3-round statistical zero knowledge proof of knowledge protocol called the Subgroup Distance Zero Knowledge Proof (SDZKP). It can be seen as a Stern-type protocol. It has 3-special-soundness property which assures knowledge soundness with error $\frac{2}{3}$.

All in all, we present a new zero-knowledge identification scheme rooted in the complexity of the subgroup distance problem within the Hamming metric. SDZKP incorporates a cryptographically secure pseudorandom number generator to obscure secrets and employs a Stern-type algorithm to ensure strong security features.

Articles

Acknowledgement

This work is partially supported by the NLnet foundation under the MoU number 2021-12-510.

Installation (Package)

Create a project folder, in that folder preferably create a virtual environment:

python3 -m venv venv

source venv/bin/activate

Prerequisites

SDZKP is an interactive zero-knowledge protocols and we use gRPC.

pip install grpcio

pip install protobuf

SDZKP package

Install the latest SDZKP package

pip install sdzkp

You can then copy sdzkp_verifier.py and sdzkp_prover.py from GitHub and run them in two terminals (do not forget to source venv/bin/activate in both terminals).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sdzkp-0.0.4.tar.gz (28.8 kB view details)

Uploaded Source

Built Distribution

SDZKP-0.0.4-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

File details

Details for the file sdzkp-0.0.4.tar.gz.

File metadata

  • Download URL: sdzkp-0.0.4.tar.gz
  • Upload date:
  • Size: 28.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for sdzkp-0.0.4.tar.gz
Algorithm Hash digest
SHA256 c581f768758ceb8f7215d0a04c0a667f9f197987dd4285496b51d5a833354e45
MD5 8575e820ad3831e6b7000a517a11e32e
BLAKE2b-256 45277e06df7c724b7ff9126f4bfca62abd2eb9244be322fff775072ad6fb8aa2

See more details on using hashes here.

File details

Details for the file SDZKP-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: SDZKP-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 30.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for SDZKP-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c68da2d7baa06ac57eaf8158b526b2400a147f8f9ba44a3fa332aecf772ebff7
MD5 ca629949c2387dee2e10fe91d9fa7fee
BLAKE2b-256 f13fcde28ce54c87db707b18fe9b2185c28c027dc694ffdd669674b810f0e913

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page