Skip to main content

Quantum-safe cryptography utilities built on top of liboqs-python

Project description

qcrypto

Version: 0.1.0

qcrypto is a lightweight Python library providing simple, Pythonic wrappers around post-quantum cryptography (PQC) algorithms using the official liboqs-python bindings from the Open Quantum Safe project.

The library currently includes:

  • Kyber Key Encapsulation Mechanism (KEM)
  • Dilithium digital signatures
  • A hybrid PQC + AES-GCM encryption scheme
  • Clean utility classes and exception handling

qcrypto is suitable for learning PQC, research, prototyping, and experiments involving quantum-safe primitives.

Features

Kyber KEM

  • Public/secret key generation
  • Encapsulation (ciphertext + shared secret)
  • Decapsulation (recover shared secret)
  • Supports Kyber512, Kyber768, Kyber1024

Dilithium Signatures

  • Keypair generation
  • Message signing
  • Signature verification
  • Supports Dilithium2, Dilithium3, Dilithium5

Hybrid PQC + AES Encryption

A simple hybrid model where:

  • Kyber encapsulates a symmetric key
  • AES-256-GCM encrypts the message
  • Result is (kem_ciphertext, aes_ciphertext)

Installation

Requires Python 3.8+.

pip install qcrypto

This installs liboqs-python automatically.

Usage (brief) Example

from qcrypto import KyberKEM

kem = KyberKEM("Kyber768")
keys = kem.generate_keypair()

ciphertext, ss1 = kem.encapsulate(keys.public_key)
ss2 = kem.decapsulate(ciphertext)

print("Shared secret match:", ss1 == ss2)

More complete usage examples are available in the examples/ directory

Implementation Notes

  • Uses liboqs-python, which bundles OQS C library implementations.
  • Hybrid encryption uses AES-256-GCM.
  • Pure Python package, no compiled extensions.
  • Modern PEP 621 src/ layout.

Disclaimer

This library is for educational, experimental, and research use.
It is not a production security component and has not undergone cryptographic review.

License

MIT License.

Resources

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

qcrypto-0.1.0.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

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

qcrypto-0.1.0-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file qcrypto-0.1.0.tar.gz.

File metadata

  • Download URL: qcrypto-0.1.0.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for qcrypto-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fc7abd27fc9ee934d0e0643bb19e86785550f7b6efb98234daecfce3f6578758
MD5 5e7694fb381d42a749badbf601ad9655
BLAKE2b-256 bd95419f6960dd46797a293d451f4c43cc6c6e8e283271a74d6d70e428ecc257

See more details on using hashes here.

File details

Details for the file qcrypto-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: qcrypto-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for qcrypto-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9c27b5d120b5b626deb9ce516af2edf4f58f458860d2c5bb34c7a90ef2950484
MD5 fe87e01c7969889ed123ebe4578e3085
BLAKE2b-256 0d69f53f5eed3b9465a6de326ebd2e8c6d1a5a0d71e5f0f9c8f80f1d1e6b25f0

See more details on using hashes here.

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