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.3.tar.gz (36.8 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.3-py3-none-any.whl (42.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dirac_hashes-0.1.3.tar.gz
  • Upload date:
  • Size: 36.8 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.3.tar.gz
Algorithm Hash digest
SHA256 6516398f467255dd0295ac56fa3d34c2774eab9e0b655ca0ec39b45e1cb16f10
MD5 88214d7c43ebc3f609308ea43f16f006
BLAKE2b-256 4af534a58e4b862c6e2e07cf0be0deffa9af983b36669f4406980c9fa3a60bf1

See more details on using hashes here.

Provenance

The following attestation bundles were made for dirac_hashes-0.1.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: dirac_hashes-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 42.1 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a304348fdd716f3d5d407b4c5947d123097285aae5fb0ca994b1b5bd2ff6e882
MD5 8ea73794ab9d3a334ab689d3e499d005
BLAKE2b-256 f7895cdc5bddef6766315ba53bed0f202089c4b7359fb9e22c54cc7ad9ea330a

See more details on using hashes here.

Provenance

The following attestation bundles were made for dirac_hashes-0.1.3-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