Skip to main content

Quantum-resistant hash functions and post-quantum cryptography for blockchain

Project description

Dirac Hashes

Test PyPI version License: MIT !Codecov

A next-generation cryptographic hash library built for speed, security, and quantum resistance.

About

Dirac Hashes is a project aimed at developing and testing high-performance cryptographic hash functions that are resistant to quantum computing attacks. This repository contains a Python package implementing quantum-resistant hash functions, digital signature schemes, and key encapsulation mechanisms (KEM), plus tools for testing and comparing their performance.

Features

  • Quantum-resistant hash algorithms:
    • Improved (default, recommended)
    • Grover
    • Shor
    • Hybrid
    • Improved Grover
    • Improved Shor
  • Post-quantum signature schemes:
    • Dilithium (NIST standard)
    • SPHINCS+
    • Lamport
  • Key Encapsulation Mechanisms (KEM):
    • Kyber (NIST standard)
  • Web-based testing interface with performance visualization
  • Simple Python API for integration into other projects

Installation

Python Package

Install the package from PyPI:

pip install dirac-hashes

Install directly from GitHub:

pip install git+https://github.com/mk0dz/dirac-hashes.git

Or install from source:

git clone https://github.com/mk0dz/dirac-hashes.git
cd dirac-hashes
pip install -e .

Development Setup

For development, install the dev dependencies:

pip install -r requirements-dev.txt

Quick Start

from quantum_hash.dirac import DiracHash
from quantum_hash.signatures.dilithium import DilithiumSignature

# Generate a hash
message = "Hello, quantum world!"
hash_value = DiracHash.hash(message)
print(f"Hash: {hash_value.hex()}")

# Generate a key pair
dilithium = DilithiumSignature()
private_key, public_key = dilithium.generate_keypair()

# Sign a message
signature = dilithium.sign(message.encode(), private_key)

# Verify the signature
is_valid = dilithium.verify(message.encode(), signature, public_key)
print(f"Signature valid: {is_valid}")

For more examples, see the examples directory.

Project Structure

dirac-hashes/
├── deployment/              # Docker and deployment files
├── docs/                    # Documentation files
├── examples/                # Example scripts
├── src/                     # Python package source
│   └── quantum_hash/        # Main package
│       ├── core/            # Core algorithms
│       ├── signatures/      # Signature schemes
│       ├── kem/             # Key encapsulation
│       └── utils/           # Utility functions
├── tests/                   # Test suite
├── tools/                   # Benchmark and demo tools
├── web/                     # Web interface and API
├── README.md                # This file
└── setup.py                 # Package setup

Web Interface

To run the web interface locally:

  1. Install dependencies:

    pip install -r requirements-dev.txt
    
  2. Run the API server:

    python web/run_api.py
    
  3. In another terminal, serve the frontend:

    python web/serve_frontend.py
    
  4. Open http://localhost:8000 in your browser

Tools

Benchmarking

Run performance benchmarks:

python tools/benchmark.py

Demo

Run the interactive demo:

python tools/demo.py

Docker Deployment

Docker files are provided in the deployment directory for containerized deployment:

docker build -t dirac-hashes -f deployment/Dockerfile .
docker run -p 8000:8000 -p 8080:8080 dirac-hashes

Or use Docker Compose:

docker-compose -f deployment/docker-compose.yml up

Future Development

  • Implementation of Dirac hash algorithms in Rust and WebAssembly
  • Integration with Solana blockchain for high-performance verification
  • Command-line tools for batch processing
  • Integration tests for cryptographic properties

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

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

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

dirac_hashes-0.1.1.tar.gz (36.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dirac_hashes-0.1.1-py3-none-any.whl (41.4 kB view details)

Uploaded Python 3

File details

Details for the file dirac_hashes-0.1.1.tar.gz.

File metadata

  • Download URL: dirac_hashes-0.1.1.tar.gz
  • Upload date:
  • Size: 36.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for dirac_hashes-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e2fbd5928c43e972e988242e3aef269bac97c48f215688eecb1da27e5e9739c4
MD5 8a10791505d52d83ff99a60e58d0ef72
BLAKE2b-256 325030ac5cb40c21864d52e3d61302b950fbb22cadf20faadf5f393ee58c2528

See more details on using hashes here.

Provenance

The following attestation bundles were made for dirac_hashes-0.1.1.tar.gz:

Publisher: publish.yml on mk0dz/dirac-hashes

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dirac_hashes-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: dirac_hashes-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 41.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for dirac_hashes-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0fa6fca264795f4aa0de24ffe80645128b31f46fe598d5c1e2a16dc2f37fb009
MD5 6e334756bed375f3302fcf69c487ea6e
BLAKE2b-256 eb8d5b02cb3a5485ccc8659cba7a748288ea826cac2f48d7e3a5db2e119ab73f

See more details on using hashes here.

Provenance

The following attestation bundles were made for dirac_hashes-0.1.1-py3-none-any.whl:

Publisher: publish.yml on mk0dz/dirac-hashes

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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