A demonstration project for the Quantum Internet Alliance Challenge 2025
Quantum Internet Banking is a proof-of-concept implementation of a crypto-agile security system that combines two complementary cryptographic layers:
|
MDI-QKD Protocol
|
Lattice Cryptography
|
The combination provides defense-in-depth security: an attacker must simultaneously break both quantum physics and mathematical hardness assumptions.
graph LR
A[Transaction Data] --> B{Hybrid Key Generation}
B --> C[MDI-QKD<br/>Quantum Bits]
B --> D[Kyber KEM<br/>Lattice Secret]
C --> E[XOR + SHA3-256]
D --> E
E --> F[Master Key 256-bit]
F --> G[AES-256-GCM Encryption]
G --> H[Secured Transaction]
style B fill:#8A2BE2,color:#fff
style E fill:#00ADD8,color:#fff
style F fill:#3776AB,color:#fff
style G fill:#28a745,color:#fff
- Python 3.8+ (Tested with Python 3.12.3)
- (Optional) NetSquid registration for quantum simulation
# Clone the repository
git clone https://github.com/refexa/Quantum-Internet-Banking.git
cd Quantum-Internet-Banking
# Verify Python version
python --version # Should be ≥ 3.8
# ✨ No installation needed! Uses Python standard library only.
# Run the demo
python demo.py# 1. Register at https://netsquid.org/
# 2. Install dependencies
pip install squidasm netqasm netsquid
# 3. Verify quantum simulation is enabled
python -c "from qib import SQUIDASM_AVAILABLE; print(f'Quantum Sim: {SQUIDASM_AVAILABLE}')"from qib import run_mdi_protocol, run_kyber_kem, generate_hybrid_key
# Step 1: Generate quantum-secured bits (MDI-QKD)
quantum_bits = run_mdi_protocol(
fiber_distance_km=10,
num_bits=256
)
# Step 2: Generate lattice-based secret (Kyber KEM)
lattice_secret = run_kyber_kem(security_level=3)
# Step 3: Combine into hybrid master key
master_key = generate_hybrid_key(quantum_bits, lattice_secret)
print(f"✅ Hybrid Master Key: {master_key.hex()}")┌──────────────────────────────────────────────────────────────┐
│ HYBRID SECURITY SYSTEM │
└──────────────────────────────────────────────────────────────┘
│
┌───────────────┴───────────────┐
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────────────┐
│ MDI-QKD Protocol │ │ Kyber KEM (PQC) │
├─────────────────────┤ ├─────────────────────┤
│ • Alice & Bob nodes │ │ • Key encapsulation │
│ • Charlie relay │ │ • NIST Level 3 │
│ • Bell measurements │ │ • Module-LWE hard │
│ • CASCADE error fix │ │ • 256-bit security │
└──────────┬──────────┘ └──────────┬──────────┘
│ │
│ 256 bits 32 bytes │
└───────────────┬───────────────┘
▼
┌───────────────────────┐
│ Hybrid Key Combiner │
├───────────────────────┤
│ 1. XOR combination │
│ 2. SHA3-256 KDF │
│ 3. Output: 32 bytes │
└───────────┬───────────┘
▼
┌───────────────────────┐
│ Master Key (256b) │
└───────────┬───────────┘
▼
┌───────────────────────┐
│ AES-256-GCM Encrypt │
└───────────────────────┘
| Component | Purpose | Security Basis |
|---|---|---|
| MDI-QKD | Quantum key distribution | No-cloning theorem, Bell inequalities |
| CASCADE | Error correction | Information-theoretic privacy amplification |
| Kyber | Post-quantum KEM | Module-LWE lattice problem hardness |
| Dilithium | Digital signatures | Module-SIS lattice problem hardness |
| SHA3-256 | Key derivation | Keccak sponge construction |
Run the benchmark suite:
python benchmark.py|
Throughput |
Component Breakdown |
QBER Level | Success Rate | CASCADE Passes
-----------|--------------|---------------
0.5% | 100% | 4
2.0% | 98% | 5
5.0% | 92% | 6Run the comprehensive test suite (19 tests):
python tests.pyTest Coverage:
- ✅ MDI-QKD Protocol (5 tests)
- ✅ Kyber KEM (4 tests)
- ✅ Dilithium Signatures (4 tests)
- ✅ Hybrid Key Generation (6 tests)
| Document | Description |
|---|---|
| ARCHITECTURE.md | Detailed system design and component specifications |
| SECURITY.md | Security analysis, threat model, and proofs |
| ERROR_CORRECTION.md | CASCADE protocol implementation details |
| SQUIDASM_SETUP.md | Quantum simulation setup guide |
|
Two modes: fast classical fallback or real quantum state simulation with Squidasm/NetSquid |
Requires breaking both quantum physics AND lattice mathematics simultaneously |
Uses CRYSTALS-Kyber and CRYSTALS-Dilithium (NIST PQC standards) |
|
~80 keys/sec at 10km with realistic error rates and correction |
Modular design allows algorithm swapping without architecture changes |
Includes HSM guidelines, FIPS considerations, and enterprise security patterns |
graph TD
A[Quantum Internet Banking] --> B[Interbank Settlements]
A --> C[Central Bank Communications]
A --> D[Quantum-Safe Key Exchange]
A --> E[Critical Infrastructure]
B --> B1[High-value transactions $100M+]
C --> C1[Government financial networks]
D --> D1[Future-proof cryptography]
E --> E1[Defense & aerospace]
style A fill:#8A2BE2,color:#fff
style B fill:#3776AB,color:#fff
style C fill:#3776AB,color:#fff
style D fill:#3776AB,color:#fff
style E fill:#3776AB,color:#fff
| Challenge | Mitigation Strategy |
|---|---|
| Hardware Cost | Deploy only for Tier-1 settlements ($100M+) |
| Distance Limitation | 50km range with repeaters for longer distances |
| Computational Overhead | AVX2 optimization, FPGA acceleration |
| DoS Vulnerability | Automatic fallback to pure PQC mode |
Note: This is a demonstration project. Production deployment requires certified implementations (e.g., liboqs, PQClean) and hardware QKD systems (ID Quantique, Toshiba).
Outputs # contains sample outputs of the files
Report_Quantum_Internet_Banking.pdf # extensive report of the project
Quantum-Internet-Banking/
├── 📦 qib/ # Core package
│ ├── __init__.py # Package exports
│ ├── mdi_qkd.py # MDI-QKD protocol + CASCADE
│ ├── lattice.py # Kyber KEM + Dilithium
│ └── hybrid.py # Hybrid key combiner
├── 📄 demo.py # Quick demonstration
├── 💼 banking_transaction.py # Full transaction simulation
├── 📊 benchmark.py # Performance benchmarks
├── 🧪 tests.py # Test suite (19 tests)
├── 📚 docs/ # Documentation
│ ├── ARCHITECTURE.md
│ ├── SECURITY.md
│ ├── ERROR_CORRECTION.md
│ └── SQUIDASM_SETUP.md
│ Outputs # contains sample outputs of the files
│ Report_Quantum_Internet_Banking.pdf # extensive report of the project
└── 📋 requirements.txt # Dependencies
This is a demonstration project for the Quantum Internet Alliance Challenge 2025. Contributions, suggestions, and feedback are welcome!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- MDI-QKD: Lo, H.-K., Curty, M., & Qi, B. (2012). Measurement-Device-Independent Quantum Key Distribution. Physical Review Letters.
- CASCADE: Brassard, G., & Salvail, L. (1994). Secret-Key Reconciliation by Public Discussion. EUROCRYPT.
- CRYSTALS-Kyber: Bos, J., et al. (2018). CRYSTALS - Kyber: A CCA-Secure Module-Lattice-Based KEM. IEEE EuroS&P.
- CRYSTALS-Dilithium: Ducas, L., et al. (2018). CRYSTALS-Dilithium: A Lattice-Based Digital Signature Scheme. IACR TCHES.
This project is licensed under the MIT License - see the LICENSE file for details.
Demonstrating practical quantum-safe cryptography for critical financial infrastructure
Report an Issue • Request Feature
Made with 💜 by @refexa