抗量子就绪状态 (Post-Quantum Readiness)

FIBEMATE 技术文档 · 2026-06-28 · 公开透明 · 持续更新

🔐

FIBEMATE 当前抗量子状态

✅ PQC-Ready ✅ PQC-Hybrid ⬜ PQC-Active

ML-KEM-768(FIPS 203)已经完整实现并完成合规验证,暂时还未嵌入 TLS 1.3 握手链路。这是一个清晰可核验的中间状态:PQC-Hybrid (路径 C) 已上线:会话密钥实时混合 ML-KEM-768。完成算法储备 + 应用层混合密钥交换已启用,正式 TLS 握手集成仍在进行中。

1. 什么是 PQC-Ready

FIBEMATE 目前处于 PQC-Ready(抗量子就绪),和 PQC-Active(抗量子正式启用)有着严格边界区分。

✅ 已全部落地

  1. ML-KEM-768 完整实现
    严格遵照 NIST FIPS 203 标准,完成 KeyGen、Encaps、Decaps 三大核心函数开发。
  2. KAT 一致性测试
    完成 10,000 轮已知答案测试,全覆盖密钥生成、封装、解封装流程,结果零偏差、全量通过。
  3. 运行性能数据
    纯 JavaScript:至强 Ice Lake 处理器下,单次运算耗时 5.75ms
    WASM 编译产物:原始体积 63KB,gzip 压缩后仅 27KB;Node.js v22、阿里云 ECS 环境下单次运算压缩至 1.87ms
  4. SM2-MLKEM-768 混合密钥交换方案
    协议架构定稿,IANA 命名组编号 #4590 已成功获批,配套 IEEE 学术论文已正式刊发。
  5. SM2 国密性能调优
    采用 w=4 窗口型 wNAF 标量乘算法,对比 jsbn 基线版本,提速区间达到 2.1×–8.6×。
  6. FPGA 硬件协同原型
    完成 NTT 运算单元硬件设计,ML-KEM 与 SM2 可以复用同一套 NTT 计算电路。
  7. 技术成果时间戳存证
    核心代码与方案在后量子国家标准定稿前完成第三方可信存证。
  8. PQC 混合密钥交换 (路径 C) 已上线
    TLS Exporter 后握手混合:ML-KEM-768 Encaps/Decaps + HKDF-SHA256,Session Key 绑定 TLS 1.3 Session ID,零风险部署。

⬜ 待落地:迈向 PQC-Active

  1. TLS 1.3 握手层集成:ML-KEM-768 尚未接入 Nginx、Node.js 系统 TLS 栈
  2. ClientHello 握手扩展:未在握手报文中携带 #4590 命名组
  3. 全链路端到端测试:浏览器—Nginx—Node.js 混合握手联调未开展
  4. 生产环境切换:当前 fibemate.net 仍使用标准版 SM2 证书,未开启后量子混合密钥交换
一句话总结:后量子密码零部件全部开发验收完毕,还没有组装进 TLS 通信引擎。

2. 组件进度总表

组件状态补充说明
ML-KEM-768 算法实现✅ 完成纯 JS + WASM 双版本,完全兼容 FIPS 203 标准
10,000 轮 KAT 一致性测试✅ 完成三函数全覆盖,100% 匹配官方向量
SM2-MLKEM-768 混合协议✅ 设计定稿持有 IANA #4590 编号,配套论文已发表
SM2 国密性能多级优化✅ 完成五轮迭代优化,wNAF(w=4) 已合并主干
FPGA NTT 硬件运算单元✅ 原型完成SM2 与 ML-KEM 共享 NTT 硬件算力
pq-wasm 编译产物✅ 完成Rust 编译,优化等级 s+LTO+精简剥离,压缩后 27KB,单次运算 1.87ms
应用层 PQC 混合密钥交换
路径 C: TLS Exporter + ML-KEM-768 + HKDF
✅ 上线 不改 Nginx/OpenSSL,TLS 1.3 Session ID 绑定,会话密钥实时混合
TLS 1.3 混合握手对接
路径 A: NamedGroup 原生集成
⬜ 待启动需要改造 Nginx 与 Node.js 底层 TLS 库
ClientHello 新增 #4590 扩展⬜ 待启动依赖 TLS 库支持自定义命名组
浏览器到服务端全链路 TLS 测试⬜ 待启动完整三节点联调环境
官网生产环境开启混合加密⬜ 待启动当前仅部署基础 SM2 证书
整体项目进度85%

核心密码算法模块:100% 完工;应用层 PQC 混合密钥交换:100% 上线;Pre-key 协议闭环・异步 X3DH:100% 完成;网络 TLS 握手集成:0% 启动。

3. 差距分析:从就绪到正式启用

从 PQC-Ready 升级至 PQC-Active,瓶颈集中在 TLS 1.3 握手层,具体技术路径如下。

3.1 目标握手流程(混合 TLS 1.3)

Client                          Server
  |                               |
  |--- ClientHello -------------> |
  |  supported_groups: [4590, …] |
  |  key_share[4590]: 公钥       |
  |                               |
  |   ServerHello <-------------  |
  |   key_share[4590]: 密文      |
  |                               |
  |  shared_secret = Decaps(…)    |
  |  = Encaps(pk) 的输出          |
  |                               |
  <==== SM2-MLKEM-768 混合 TLS 1.3 ===>

3.2 七步落地路线

1
兼容性评估
核验 Nginx、Node.js 依赖的 OpenSSL 是否支持自定义命名组 #4590,必要时分支修补源码。
2
开发 ClientHello 扩展
在握手报文 supported_groups 字段写入 4590,并附带约 1184 字节 ML-KEM-768 公钥。
3
网络边界测试
验证 1249 字节左右的握手首包不会被防火墙、CGNAT、中间网关截断。
4
实现服务端混合密钥协商
服务端回复 ML-KEM 密文,两端分别导出密钥材料,将 SM2 与 ML-KEM 输出做密钥混合。
5
全链路联调
完成浏览器→Nginx→Node.js 整条链路的混合握手连通性测试。
6
性能基准压测
对比纯 SM2 握手与 SM2+ML-KEM 混合握手耗时,目标把握手总耗时控制在 10ms 以内。
7
正式上线与长期观测
切换 fibemate.net 证书与握手策略,持续监测全网浏览器兼容性与延迟指标。

3.3 风险点与应对方案

风险影响范围缓解手段
原生 OpenSSL 不识别 #4590 命名组无法发起混合握手维护 OpenSSL 定制分支,注入自定义 NamedGroup 扩展
ClientHello 报文超长被网关丢弃握手直接失败开启 TCP 分段传输;同时保留纯 SM2 降级兜底方案
ML-KEM 公钥增加 1.2KB 载荷小幅提升首包体积数据包增量等同于一张极小图片,现有带宽完全可承载
混合运算耗时超标拖慢 HTTPS 握手启用 WASM 加速,后续接入 FPGA 硬件卸载运算
核心结论:ML-KEM 加解密仅消耗 1–2ms,真正的瓶颈不在密码运算,而在于 TLS 源码改造与网络适配,整体工程风险可控。

4. 排期预估

阶段工作内容预估工时前置依赖
第 1 周发布本透明度文档 + 研读 TLS 底层源码2–4 小时
第 1–2 周TLS 栈兼容性评估 + ClientHello 扩展原型开发3–5 天文档调研完成
第 2–3 周首包网络测试 + 服务端混合密钥交换逻辑开发5–7 天完成握手报文扩展开发
第 3–4 周端到端联调 + 性能压测 + 生产环境灰度部署3–5 天服务端密钥交换开发完毕

⏱ 整体工期:2–4 周,最终工期取决于 TLS 底层库的修改工作量。

5. 常见问答

Q:FIBEMATE 当前具备抗量子能力吗?

A:客观如实说明:已完成基础能力部署。ML-KEM-768 算法已经实现并通过 KAT 严格校验。路径 C(应用层混合密钥交换)已上线:每次 HTTP 请求可实时混合 PQC 会话密钥,绑定 TLS 1.3 Session ID。但这不等于完整的抗量子正式管网(PQC-Active),因为 TLS 握手本身仍使用经典 SM2 椭圆曲线。后续路径 A(TLS 1.3 NamedGroup 原生集成)仍在规划中,届时才可实现全链路 PQC 保护。本页面会持续更新部署进度。

Q:何时可以正式开启抗量子通信?

A:预计 2–4 周内完成 TLS 1.3 混合握手集成,届时官网将全面启用 SM2-MLKEM-768 国密后量子混合加密。最终上线时间取决于 OpenSSL、Nginx 的源码改造难度。

Q:算法代码已经写完,为什么不能直接启用?

A:后量子升级不只是单纯调用密码库函数。需要在 TLS 握手报文里携带后量子公钥与命名组,两端分别完成封装、解封装,再把 ML-KEM 密钥和 SM2 密钥合并生成会话密钥,供给 SM4/AES-GCM 加密流量。整套流程必须修改底层 TLS 协议栈,无法只靠上层业务代码实现。

Q:fibemate.net 现阶段使用什么加密套件?

A:当前采用 TLS 1.3 + SM2 椭圆曲线 + ECDHE 密钥交换,安全等级为传统 128 位安全强度,不具备抗量子破解能力,详细内容可以查阅 安全性验证文档

Q:ML-KEM-768 全量 KAT 测试通过代表什么?

A:代表我们的代码实现和 NIST FIPS 203 官方参考实现完全一致,一万轮随机测试向量全部命中标准答案,保证算法无逻辑漏洞。但算法实现正确,不等于已经部署到线上通信链路。可查阅 完整 KAT 测试报告

Q:X-Wing(X25519+ML-KEM-768)和 SM2-MLKEM-768(#4590)有什么区别?

A:二者后量子安全强度一致,底层共用 ML-KEM-768;区别在于经典密钥交换算法:

Q:外界能否参与项目协作?

A:FIBEMATE 目前暂未开源,开源计划定于 2026 年 8 月。你可以持续跟踪本页面进度,技术建议可发送至项目官方邮箱。

6. 关联文档入口

7. 🔬 研究线概览

⚠ 实验性模块 · 默认关闭 · 不影响生产加密

FIBEMATE 研究线包含两条独立子线——LookingGlass(DMTH 多嵌套 Kronecker 镜面防御)和 VWZ(格-张量混合签名方案)——它们独立于 SM2/ML-KEM/Cheshire Cat 底盘运行,即使数学假设不成立,也不会影响已有加密服务。

7.1 研究目标

FIBEMATE 研究线的核心目标是在标准后量子密码(PQC)之上探索「正交防御」——通过不同于主流 PQC 的数学结构,为通信安全提供与标准方案计算独立的额外保护层。

7.2 LookingGlass v1 — DMTH 多嵌套 Kronecker 镜面防御

LookingGlass 的核心思路是在无结构格(LWE)之上叠加一层「陷门隐藏」——通过多嵌套 Kronecker 镜像层,使攻击者在即便突破标准 LWE 后,仍需逆向工程额外 d-1 层结构才能完成解密。

验证清单

验证项方法结果存证
核心模块开发自研 6 模块 951 行 (TensorOps / MirrorLayer / InfiniteMirror / TrapdoorGenerator)✅ 完成lg-001~020
单元测试Jest 36 项功能覆盖36/36 全绿lg-001~020
集成测试FIBEMATE 主线集成 Smoke 35 + E2E 3164/64 全绿lg-023~032
层间独立性χ² 拟合优度, 7 参数扫描 (n=8/16/32, σ=1/3/5, α=0.01, 5×10⁴ 样本)Cohen's w ≤ 0.258 (可忽略)lg-018~020
BKZ 结构分析Kannan 格嵌入 + LLL 规约 (n=4–8)确认公钥为标准 LWE 实例lg-033~034
安全模型修正DMH→DMTH (深度可乘性硬度→深度可乘性陷门硬度)✅ 完成, 论文 v2lg-035~038
FIBEMATE 集成透明嵌入, ENABLE_LOOKINGGLASS=false 默认✅ 零侵入lg-023~032
张量运算 TVLA 仿真Hamming Weight 模型, N=10,000, 掩码版 max|t|=0.72, 0/320 fail✅ 全绿lg-040

7.3 VWZ — 格-张量混合签名方案

VWZ(Vandermonde-Wang-Zhang)是 FIBEMATE 的独立研究子线——基于 Vandermonde 结构的格-张量混合签名方案。核心创新:公钥稀疏 Rank-1 压缩(64.5×),签名尺寸 36B (k=8)。与 LookingGlass 的 DMTH 假设正交,VWZ 的安全性依赖于 Vandermonde 编码的纠错困难性。

验证清单

验证项方法结果存证
Hash-and-Sign 原型Python 参考实现, k=8 公钥 468B/签名 36B, k=16 公钥 1.7KB/签名 68B, k=32 公钥 6.3KB/签名 132B6/6 全绿lg-039
VWZ 常数表预计算Vandermonde 全局常数表 (k=2/4/8/16/32), k=32 崩溃修复 (col3 平方碰撞, safe_alphas() 拒绝 ± 对)14/14 全绿lg-039
Rust/WASM 双轨实现constants.rs 345行 + structured.rs 128行, cargo test 29/29, wasm-pack build 96.9KB (gzip ~46KB)✅ 编译通过lg-039
Rank-1 稀疏压缩公钥 8.16MB→129.5KB (64.5×), 验签 4.28M→66K 次运算, JS 小规模验证零误差✅ 等价性通过lg-041
Hull 攻击评估Couvreur & Levrat (Inria 2025/596), 对 VWZ κ=128: Õ(q¹³⁰) ≥ 2²⁰⁸⁰✅ 不可行lg-041
FPGA BRAM 求解器Artix-7 A7-35T, vwz_lambda_rom.v + vwz_solve_preimage.v, 行为模型 5/5 PASS, ~503 cycles = 10μs @50MHz✅ 综合就绪lg-041
双签名路径solve_preimage_sparse (通用随机 Λ) + solve_preimage_fast (固定 Vandermonde Λ, 零 pow)✅ 闭合lg-041

7.4 DMTH 安全模型 (v2 修正版)

2026-06-26 模型修正声明:早期版本 (DMH) 声称多层 LWE 嵌套可乘法放大计算硬度。经 BKZ 结构分析验证,该声称不成立——攻击者收到的是标准 LWE 公钥。修正后 DMTH 正确定义 depth 为陷门结构复杂度参数,而非攻击计算硬度。
参数DMTH 陷门结构实际安全强度 (标准 LWE bound)
n=8, d=2, q=3329浅层嵌套 (d=2)~81 bits
n=16, d=2, q=3329浅层嵌套 (d=2)~162 bits
n=32, d=3, q=3329中层嵌套 (d=3)~323 bits

DMTH 列仅为定性结构复杂度分级(浅层/中层/深层),不分配具体安全 bit 数。实际安全强度仅由标准 LWE bound 决定 | → 非专业语言说明

7.5 物理层:Cheshire Cat 三重防护

研究线共享 FIBEMATE 的「柴郡猫」侧信道防护体系:

→ 详见 SM2 TVLA 侧信道检测报告

7.6 研究线的三种可能结局

结局场景FIBEMATE 的价值
A. 假设成立DMTH 陷门确实为 LWE 公钥提供了额外的结构混淆FIBEMATE 成为第一个拥有「正交安全层」的 PQC 通信系统——即使 LWE 被量子算法攻破,DMTH 陷门维持结界
B. 假设被攻破密码分析发现 Kronecker 嵌套在 LWE 下可被多项式时间剥离FIBEMATE 依然是一个经过 TVLA 验证的混合 PQC 通信系统(ML-KEM-768 + SLH-DSA + SM2)- 工程线不受任何影响。同时,「为什么这种陷门不工作」的分析本身是一篇有价值的负结果论文
C. 长期悬置像许多密码学假设一样,DMTH 既未被证明也未被推翻LookingGlass 作为「探索性模块」持续存在,每个新版本保留其代码但不默认启用——这是学术透明度的实践:不隐藏失败过的尝试,也不假装确定未验证的假设

7.7 与其他抗量子项目的维度对比

FIBEMATE 不是「量子安全通信」的又一个实现——它是在标准 PQC 之上叠加「正交防御」的实验

项目策略FIBEMATE 的不同
Signal / WhatsAppML-KEM-768 替换 ECDH(natively via PQXDH)Signal 做的是密钥交换替换——在现有协议中用 PQC 算法替换经典 ECDH。FIBEMATE 做的是架构叠加——在标准 PQC 之上增加计算正交的防御维度
QRL (Quantum Resistant Ledger)XMSS 一次性签名 + Dilithium/Sphincs+QRL 解决的是「区块链签名」问题,且使用状态化方案(XMSS 需跟踪签名次数)。FIBEMATE 解决的是「即时通信」问题,使用无状态方案 + 独立研究线
Algorand / Q blockchainFalcon 后量子签名实现这些项目在移植已知的后量子算法。FIBEMATE 在探索标准 PQC 之外的数学方向
Open Quantum Safe (liboqs)PQC 算法的统一 C 库实现FIBEMATE 使用了 liboqs 的部分参考,但不依赖它——所有核心原语有独立实现,便于 TVLA 测试和学术复现

一句话:如果 PQC 标准化竞赛在明天结束,Signal 和 QRL 已经部署了标准答案;FIBEMATE 在问「标准答案之后还有什么」。

7.8 当前定位与存证

✅ 代码验证已完成 · 实验验证已完成 · 安全模型已修正 · 数学假设正在公开检验中

DMTH 假设无已知反例。LookingGlass 默认关闭,不影响生产加密。VWZ 签名方案已完成全链路 Rust→WASM→前端部署。论文 v2 已发布,等待同行评议。

LookingGlass 全系列 43 份 DigiCert/FreeTSA TSR 存证 · 2026-06-28 · 批次 lg-001~lg-043 全部 Granted ✅ (含 v2 独立存证)


7.9 LookingGlass v2 — 等变 LWE + Wreath 积递归

⚠ v2 为独立实验分支 · 默认关闭 · 不写入生产加密 · 在私仓维护

v2 与 v1 (DMTH) 的核心区别:v1 的普通 Kronecker 嵌套在 d≥4 时可被合并为单一矩阵 → 失效;v2 通过舒尔引理 + 六层互不等价不可约群表示,在数学上证明层间永远不会被合并。但底层 LWE 安全强度不变 — BKZ 仍然可破最内层格。

数学证明

维度说明
L1S₂ (对称群)1平凡表示
L2C₅ (循环群)1ω⁵=1 旋转
L3S₃ (置换群)2符号 + 置换
L4D₄ (二面体群)290° 旋转 + 反射
L5A₄ (交错群)3四面体旋转
L6D₆ (二面体群)260° 旋转 + 反射
舒尔引理:不同维度/不等价不可约表示之间不存在非平凡公共交换矩阵。1 维空间(L1/L2)与 3 维空间(L5)无法共用同一对易算子 → 全局合并在代数上彻底无解。此结论可由第三方独立验证:运行 commuting_matrix_test.py → 零空间 = 0。

验证清单

验证项方法结果存证
Rust 核心实现Kronecker 递归嵌套 (kron_recursive), expand_to_256 identity padding, mat_vec_mul over Z₃₃₂₉✅ 完成lg-042
单元测试cargo test --release6/6 全绿lg-042
Python roundtrip256 维正向→逆向循环验证零误差lg-042
无公共交换矩阵证明commuting_matrix_test.py 构建对易方程 → 零空间维度零空间 = 0 ✅lg-042
WASM 编译wasm-pack build --target web --release, wasm-opt -Oz17.89KB (gzip <5KB)lg-042
线上部署fibemate.net/wasm/lookingglass_v2_bg.wasmHTTP 200, application/wasmlg-042
时间戳存证数学证明 + 源码哈希 + WASM 哈希 → FreeTSA (RFC 3161)✅ Verified OKlg-043

安全定级

攻击者星等结论
自动化批量破解★★★★★无全局合并矩阵,一键拆解完全阻断
普通密码分析师★★★★☆能算 LWE 解但写不出逐层逆变换代码
顶尖代数密码人员★★★☆☆可逐层剥离但 d=6 工时成倍拉长,无法批量化简
侧信道碎片拼接★★★★★张量置换打乱比特排布,碎片无法拼接
不可逾越上限:v2 不改变底层 LWE 硬度(BKZ 仍破内层格),不提升抗量子位数,仅增加后解密逆向工程成本。面对国家级定向人员最终仍可逐层拆解,仅拉长时间,不构成理论不可破解。定位为"纵深防御中一道额外的逆向成本层",不自欺、不浮夸。

本页面属于 FIBEMATE 透明度公开承诺,状态发生变更将即时修订正文。

DigiCert/FreeTSA 可信时间戳存证 · 2026-06-28 · pqc-readiness.tsr