背景:加密通讯面临的双重挑战
随着量子计算技术的快速发展,传统公钥密码体系(如 RSA、ECDH)面临着被 Shor 算法攻破的威胁。同时,在中国市场运营的通讯产品需要满足国密标准的合规要求。FIBEMATE 需要在保障端到端加密强度的前提下,同时满足合规性与后量子安全两大目标。
单独采用 SM2 可以满足合规要求,但无法抵抗量子攻击;单独采用 ML-KEM 可以获得后量子安全,但缺乏国密合规性。因此,我们设计并实现了混合密钥交换方案,将两者优势融为一体。
方案设计:双密钥信封 + 统一会话密钥
混合方案的核心思路简洁明了:
- 第一层 — SM2 ECDH(椭圆曲线 Diffie-Hellman):基于中国国密标准 SM2 曲线,完成经典非对称密钥协商,生成 32 字节共享密钥。
- 第二层 — ML-KEM-768(NIST FIPS 203):基于格密码的密钥封装机制,按 NIST 安全等级 3(等效 AES-192)提供量子计算攻击下的安全保障,同样生成 32 字节共享密钥。
- 统一层 — HKDF 密钥派生:将两层密钥通过标准 HKDF-SHA256 混合派生,输出统一的会话密钥。
这种"双密钥信封"设计的优势在于:任何一层被攻破,另一层仍然保护通讯安全。即使未来量子计算机能够破解 SM2 曲线,ML-KEM 层依然牢不可破;反之亦然。
WASM 实现:跨平台高性能
为了让混合加密方案能够同时运行在 Web 前端、Electron 桌面端和移动端,我们选择 Rust 编译到 WebAssembly (WASM) 作为统一的实现平台。
经过深度优化,混合握手操作仅需约 2 毫秒即可完成一次完整的双密钥协商,达到每秒 500 次握手的处理能力。这使得混合加密可以无缝集成到实时通讯流程中,用户完全感受不到性能差异。
标准化与注册
为确保方案的标准化与互操作性,SM2-MLKEM-768 混合密钥交换协议拥有 IANA 公开分配的协议编号(基于 Informational I-D draft-yang-tls-hybrid-sm2-mlkem-03, Recommended=N),FIBEMATE 作为该协议的开源工程实现方引用此编号:
IANA #4590: curveSM2MLKEM768
该协议编号为 SM2-MLKEM-768 混合方案在国际互联网标准体系中提供了唯一的互操作性标识,FIBEMATE 通过实现该协议参与这一开放标准生态。
安全模型
在安全模型层面,混合方案实现了多层防护:
- 前向安全性:ML-KEM-768 的密钥封装天然支持前向安全,即使长期私钥泄露,历史会话密钥不受影响。
- 混合安全性:最终会话密钥的安全性不低于 SM2 和 ML-KEM 两者中较强的一方。
- 标准化合规:SM2 符合 GM/T 0003-2012 国密标准,ML-KEM-768 符合 NIST FIPS 203 标准。
- 侧信道防护:Rust 实现全程使用恒定时间运算库,避免时序侧信道泄露。
应用场景
SM2 + ML-KEM-768 混合密钥交换方案将全面应用于 FIBEMATE 以下场景:
- 用户注册与首次握手:新用户创建通讯身份时的初始密钥协商。
- 会话密钥更新:定期轮换会话密钥,降低长期使用同一密钥的风险。
- 群组通讯密钥分发:在群组场景中安全分发组密钥。
- 文件传输加密:大文件传输前的接收方密钥协商。
下一步规划
混合密钥交换方案是 FIBEMATE 加密体系的里程碑节点。基于此方案,我们正在推进以下方向:
- 与硬件安全模块(HSM)集成,支持企业级密钥管理。
- FPGA 硬件加速,将握手延迟降至微秒级别。
- 完整的形式化安全证明,为学术验证提供严谨基础。
更详细的性能数据和对比分析将随产品正式发布同步公开。敬请期待。
💬 登录后参与讨论
立即登录 或 注册账号