kyber/gen_kyber.py
2026-07-26 19:26:27 +00:00

18 lines
591 B
Python

import oqs
# ── Generate Kyber-1024 keypair ──
# ML-KEM-1024 gives ~256-bit post-quantum security
kem = oqs.KeyEncapsulation("Kyber1024")
public_key = kem.generate_keypair() # bytes
secret_key = kem.export_secret_key() # bytes
kem.free()
# ── Save to disk (PEM-like, but just raw bytes is fine) ──
with open("kyber.pub", "wb") as f:
f.write(public_key)
with open("kyber.sec", "wb") as f:
f.write(secret_key)
print(f"Public key size: {len(public_key)} bytes") # 1568 for Kyber-1024
print(f"Secret key size: {len(secret_key)} bytes") # 3168 for Kyber-1024