Skip to main content
For Security Engineers

PQC ImplementationThat Actually Works

Technical deep-dives, code samples, and implementation guides from engineers who've done this in production. No hand-waving—just working code.

Quick Start Code

Copy-paste examples to get started with PQC algorithms.

ML-KEM Key Exchange (Python)python
from pqcrypto.kem import kyber768

# Generate keypair
public_key, secret_key = kyber768.generate_keypair()

# Encapsulate (sender)
ciphertext, shared_secret_sender = kyber768.encapsulate(public_key)

# Decapsulate (recipient)
shared_secret_recipient = kyber768.decapsulate(ciphertext, secret_key)

assert shared_secret_sender == shared_secret_recipient
Hybrid TLS Configuration (OpenSSL)bash
# Enable hybrid key exchange in OpenSSL 3.2+
openssl s_server \
  -cert server.crt \
  -key server.key \
  -groups X25519MLKEM768:X25519:P-256 \
  -accept 443
ML-DSA Signature (Go)go
import "github.com/cloudflare/circl/sign/dilithium"

// Generate keypair
pk, sk, _ := dilithium.Mode3.GenerateKey(rand.Reader)

// Sign message
message := []byte("quantum-safe message")
signature := dilithium.Mode3.Sign(sk, message)

// Verify signature
valid := dilithium.Mode3.Verify(pk, message, signature)

Algorithm Quick Reference

NIST standardized PQC algorithms at a glance.

AlgorithmTypeSecurityKey SizeOutputUse Case
ML-KEM-768Key EncapsulationNIST Level 3 (~AES-192)1184 bytes (public)1088 bytesTLS key exchange, encryption
ML-DSA-65Digital SignatureNIST Level 3 (~AES-192)1952 bytes (public)3293 bytesCode signing, certificates
SLH-DSA-128sDigital SignatureNIST Level 1 (~AES-128)32 bytes (public)7856 bytesLong-term signatures

Ready to Scan Your Codebase?

Our Qscout26 scanner identifies every cryptographic vulnerability in your infrastructure. Get a complete inventory in minutes.