Phoenix SDR / DSP reaches its first stable milestone. The kernel library that opened at 16 / 16 (v0.4.0) now closes at 34 / 34 PASS on Phoenix NPU1 with the full Post-Quantum Cryptography track landed and silicon-validated bit-exact against the NIST ACVP-Server known-answer tests.
What's in v1.0.0
FIPS 203 ML-KEM — M32b (NTT over Z_3329), M32c (FIPS 202 Keccak-f[1600] / SHA-3 / SHAKE), M32d (K-PKE component), M32e (ML-KEM-{512, 768, 1024} KeyGen / Encaps / Decaps composer). Reference oracle: kyber-py 1.0.1.
FIPS 204 ML-DSA — M33a (NTT over Z_8380417), M33b (rounding + hint), M33c (SHAKE reuse per FIPS 204 §3.3.5), M33d (ML-DSA-{44, 65, 87} KeyGen composer, 75 / 75), M33e (Sign_internal + Verify_internal composer, 180 / 180 including 72 must-reject tampered signatures across both externalMu paths). Reference oracle: dilithium-py 1.4.0.
Full closure notes: docs/PQC_COMPLETE_V1.md.
Reproduction (Windows / Ryzen Phoenix laptop)
conda deactivate
git clone https://github.com/midhatn/phoenix-sdr-dsp.git
cd phoenix-sdr-dsp
py .\install.py
py .\run_all_silicon_tests.pySince v1.0.0, install.py auto-installs the pinned PQC reference packages (kyber-py==1.0.1, dilithium-py==1.4.0, pytest) into the ironenv it just created. SHAKE / SHA-3 primitives come from the CPython hashlib standard library, so no separate SHAKE / Keccak wheel is required. A fresh-clone dry run on a blank disk finished 34 / 34 PASS in 38.02 s.
Prerequisites: AMD Ryzen Phoenix / Hawk Point NPU, AMD NPU driver, and the toolchain pins in docs/M2_TOOLCHAIN_PIN.md (Xilinx XRT, Xilinx MLIR-AIE v1.4.1 + pin 3ca0193, LLVM Peano 21.0.0.2026080301+c9c5ecb7).
Silicon coverage at v1.0.0
33 milestones, 34 test invocations, all PASS on Phoenix NPU1:
M3, M5–M15, M15b, M17, M17p, M19–M27, and the PQC track M32b / M32c / M32d / M32e + M33a / M33b / M33d / M33e.
The Kernel.org Phoenix topology is 4 × 5 (four columns × five rows of AIE-ML tiles). All 34 tests dispatch on this topology through the pinned MLIR-AIE + Peano toolchain.
Vector provenance
NIST ACVP-Server response vectors for ML-KEM (keyGen / encapDecap) and ML-DSA (keyGen / sigGen / sigVer) are vendored under tests/m32_mlkem/vectors/ and tests/m33_mldsa/vectors/. Source: usnistgov/ACVP-Server.
Standards and specifications
- FIPS 203, 2024-08-13 — Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM)
- FIPS 204, 2024-08-13 — Module-Lattice-Based Digital Signature Standard (ML-DSA)
- FIPS 202 — SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions
Prior tags (unchanged)
v0.6.0 (988ba6c), v0.5.0 (e63bdbe), v0.4.0 (7127315), v0.3.0 (8a7a152), v0.2 (647859d).