审计后量子签名与零知识验证器全景 —— 并用纯 TypeScript 在本地跑一遍真正的 ML-DSA 密钥生成/签名/验证。
检查内容:
- 标准矩阵:ML-DSA(FIPS 204 final——注意不是 203,203 是 ML-KEM)、SLH-DSA(FIPS 205,12 个参数集)、FN-DSA(FIPS 206 草案,Falcon)、BBS 签名(CFRG draft,BLS12-381),以及 Groth16 / PLONK / Halo2 零知识验证器家族 —— 给出精确的公钥/私钥/签名尺寸、NIST 安全等级和 RFC 9964 的 COSE/JOSE 算法 ID(-48/-49/-50)。
- 可信设置审计:哪些系统需要逐电路仪式(Groth16)、可更新通用 Powers-of-Tau SRS(PLONK/KZG),或完全不需要(Halo2 的透明 IPA + Pasta 曲线;所有格/哈希 PQC 方案)。
- CNSA 2.0 时间线:2027 新采购门槛、2030 软件/固件签名截止(现在就鼓励 LMS/XMSS)、2033 浏览器/服务器/操作系统、2035 NSM-10 终点。
- ML-DSA 实时演示:确定性生成密钥对、签名你的消息并验证 —— 外加篡改检测 —— 使用仓库内置的纯 TS FIPS-204-final 移植,该移植已与本地编译的 PQClean 参考实现逐字节对拍(ML-DSA-44/65/87 的 pk/sk/sig 完全一致,拒绝循环逐轮吻合)。
- 数据块识别:粘贴 hex 或 base64 的公钥/签名,按字节长度匹配所有参数集(如 1312 → ML-DSA-44 公钥;3309 → ML-DSA-65 签名;49856 → SLH-DSA-256f 签名)。
提示:旧博客的 FIPS 编号经常整体错一位 —— 本工具锚定经过核实的映射(ML-DSA = 204,SLH-DSA = 205,FN-DSA = 206 草案;ML-KEM = 203)。BBS 证明非定长:按 draft-12 反序列化下限为 3 个 G1 点 + 4 个标量 = 272 字节,每多一个标量加 32 字节。