What the app does

Key generation

Generate post-quantum key pairs (public/private) with passphrase protection.

Digital signatures

Sign files and verify signatures using post-quantum signature schemes.

Hybrid encryption

Encrypt and decrypt files using Kyber (KEM) + AES-GCM (data encryption).

USB key detection

Automatically detect .pub and .key files on removable storage.

Benchmarks

Compare algorithm performance: keygen, signing/verifying, encrypt/decrypt.

Algorithm auto-detection

File headers help detect which algorithm should be used for a given operation.

Supported algorithms

Encryption

  • Kyber (Kyber512 / Kyber768 / Kyber1024) — post-quantum KEM
  • AES-GCM — symmetric authenticated encryption for file contents

Digital signatures

  • Dilithium (ML-DSA)
  • Falcon
  • SPHINCS++
  • Cross (experimental)
Note: This is an educational / research project showcasing practical usage of PQC algorithms.

Documentation

Project documentation and presentation prepared as part of the academic coursework.

Technical Documentation

Detailed description of the application architecture, implemented algorithms, sequence diagrams, and installation instructions.

Project Presentation

Project overview, goals, timeline, team responsibilities, and functional demo prepared for final presentation.

Screenshots

Selected views from the application UI.

Source Code & Installation

The project is open-source and available on GitHub. Below are short instructions for cloning the repository and installing required dependencies.

Source Code

The complete source code of the application is hosted on GitHub.

Project Setup (recommended)

The recommended way to run the project locally is using Conda and the provided environment.yml file.

git clone https://github.com/krzysiek581234/post-quantum-cryptography.git
cd post-quantum-cryptography
conda env create -f environment.yml
conda activate BSK
python main.py

Post-Quantum Cryptography Backend (liboqs)

This project uses liboqs via the official liboqs-python bindings.

Install liboqs-python

git clone --depth=1 https://github.com/open-quantum-safe/liboqs-python
cd liboqs-python
pip install .

Set PYTHONPATH

# Linux / macOS
export PYTHONPATH=$PYTHONPATH:/path/to/liboqs-python

# Windows
set PYTHONPATH=%PYTHONPATH%;C:\path\to\liboqs-python

Authors

  • Krzysztof Madajczak — GUI, architecture, USB handling
  • Julia Sadecka — Kyber, UML diagrams, documentation
  • Jakub Młocek — Falcon, Cross, benchmarks
  • Marcel Trzaskawka — signatures, file headers, installation

License: Educational project for academic and research purposes.