2.0Tools
Key Forge
Key Forge runs the standardized post-quantum algorithms on your device: generate, encapsulate, decapsulate, sign and verify.
Algorithms
| Algorithm | Standard | Category | Public key | Secret key | Ciphertext / signature |
|---|---|---|---|---|---|
| ML-KEM-512 | FIPS 203 | 1 | 800 B | 1632 B | 768 B |
| ML-KEM-768 | FIPS 203 | 3 | 1184 B | 2400 B | 1,088 B |
| ML-KEM-1024 | FIPS 203 | 5 | 1568 B | 3168 B | 1,568 B |
| ML-DSA-44 | FIPS 204 | 2 | 1312 B | 2560 B | 2,420 B |
| ML-DSA-65 | FIPS 204 | 3 | 1952 B | 4032 B | 3,309 B |
| ML-DSA-87 | FIPS 204 | 5 | 2592 B | 4896 B | 4,627 B |
| SLH-DSA-SHA2-128f | FIPS 205 | 1 | 32 B | 64 B | 17,088 B |
| SLH-DSA-SHA2-128s | FIPS 205 | 1 | 32 B | 64 B | 7,856 B |
What each button does
- Generate: a fresh key pair from the browser's secure random source.
- Encapsulate (ML-KEM): uses only the public key to produce a ciphertext and a 32-byte shared secret.
- Decapsulate (ML-KEM): turns the ciphertext back into the same secret with the secret key.
- Sign and verify (ML-DSA, SLH-DSA): a signature over your message, and a check that also shows a one-character change being rejected.
Keeping a key
Keys stay in memory until you download a key file. With a passphrase, the secret key is encrypted with AES-256-GCM under a key derived by PBKDF2-SHA-256 (600,000 iterations). Without one, the file holds it in plain base64. A lost key file cannot be recovered.
json
{
"format": "kibora-key/1",
"suite": "ML-KEM-768",
"publicKey": "<base64>",
"lockedSecretKey": { "kdf": "PBKDF2-SHA-256", "iterations": 600000, "salt": "<b64>", "iv": "<b64>", "data": "<b64>" },
"created": "2026-10-16T09:00:00.000Z"
}