| Recommend this page to a friend! |
| Packages of Scott Arciszewski | ext-pqcrypto | README.md | Download |
|
|||||||||||||||||||||
ext-pqcrypto: Post-Quantum Cryptography for PHPA PHP extension (written in Rust) that exposes post-quantum cryptography algorithms from the RustCrypto project. Implements FIPS 203 (ML-KEM), FIPS 204 (ML-DSA), FIPS 205 (SLH-DSA), and X-Wing (hybrid X25519 + ML-KEM-768). Requirements
Building
After installing, add
UsageX-Wing (Hybrid KEM: X25519 + ML-KEM-768)> [!TIP] > > X-Wing is the recommend hybrid post-quantum KEM.
ML-KEM (Key Encapsulation)> [!TIP] > > We do not recommend ML-KEM-512, but include it for completeness. > ML-KEM-768 or ML-KEM-1024 should be used if X-Wing is not acceptable.
ML-DSA (Digital Signatures)> [!TIP] > > ML-DSA-44 is fine. The larger parameter sets should only be used if you specifically need them for compliance reasons > (i.e., CNSA 2.0).
SLH-DSA (Stateless Hash-Based Signatures)
Key SizesKEM| Algorithm | Seed | Public Key | Ciphertext | Shared Secret | |-------------|-------|------------|------------|---------------| | ML-KEM-512 | 64 | 800 | 768 | 32 | | ML-KEM-768 | 64 | 1184 | 1088 | 32 | | ML-KEM-1024 | 64 | 1568 | 1568 | 32 | | X-Wing | 32 | 1216 | 1120 | 32 | Signatures| Algorithm | Seed | Public Key | Signature | |------------------|------|------------|-----------| | ML-DSA-44 | 32 | 1312 | 2420 | | ML-DSA-65 | 32 | 1952 | 3309 | | ML-DSA-87 | 32 | 2592 | 4627 | | SLH-DSA-*-128s | 64 | 32 | 7856 | | SLH-DSA-*-128f | 64 | 32 | 17088 | | SLH-DSA-*-192s | 96 | 48 | 16224 | | SLH-DSA-*-192f | 96 | 48 | 35664 | | SLH-DSA-*-256s | 128 | 64 | 29792 | | SLH-DSA-*-256f | 128 | 64 | 49856 | All sizes above are measured in bytes. Secret keys are stored as seeds, never semi-expanded secrets. This is a deliberate design choice. |