当前位置: 首页 > ai >正文

后量子密码算法ML-DSA介绍及开源代码实现

原文:https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf

在数字化浪潮中,数字签名如同电子世界的 “公章”,确保信息的真实性与完整性。然而,随着量子计算技术的飞速发展,传统基于大整数分解或离散对数的签名算法(如 RSA、ECDSA)正面临被量子算法破解的风险。为应对这一挑战,美国国家标准与技术研究院(NIST)推出了基于模格密码学的 ML-DSA(Module-Lattice-Based Digital Signature Algorithm),并将其纳入 FIPS 204 标准,为后量子时代的信息安全提供了新保障。

一、为什么需要 ML-DSA?

传统数字签名的安全性建立在 “某些数学问题在经典计算机上难以求解” 的基础上。例如,RSA 依赖于大整数分解的困难性,而 ECDSA 则基于椭圆曲线离散对数问题。但量子计算机若实现规模化应用,肖尔(Shor)算法可在多项式时间内解决这些问题,导致现有签名体系瞬间失效。

为抵御量子威胁,NIST 自 2016 年起启动后量子密码学标准化进程,从 82 个候选算法中筛选出首批抗量子方案,ML-DSA 便是其中之一。它源于 CRYSTALS-DILITHIUM 算法,经优化后成为首个标准化的模格基数字签名方案,其安全性基于模格上的学习误差问题(MLWE)—— 这一问题被证明在量子计算模型下仍具有极高的计算复杂度。

二、ML-DSA 的核心技术原理

ML-DSA 的设计核心是利用格结构的数学特性构建安全的签名机制,同时通过优化算法实现高效计算。其工作流程可分为密钥生成、签名生成和签名验证三个阶段。

1. 密钥生成:构建 “锁与钥匙”

  • 随机种子扩展:通过 cryptographically secure 随机数生成器(RBG)产生 32 字节种子,再通过 SHAKE256 等哈希函数扩展出公钥种子 ρ 和私钥种子 ρ'。
  • 格矩阵与向量生成:从公钥种子 ρ 生成多项式矩阵 A(类似 “锁芯”),从私钥种子 ρ' 生成短系数秘密向量 s₁和 s₂(类似 “钥匙齿纹”)。
  • 公钥压缩:计算公开向量 t = A・s₁ + s₂,压缩后得到 t₁(丢弃低 13 位系数),最终公钥为(ρ,t₁),私钥则包含秘密向量和 t 的完整信息。

2. 签名生成:生成 “一次性印章”

签名过程采用Fiat-Shamir 带中止范式,通过随机化和拒绝采样确保安全性:

  • 承诺阶段:生成随机向量 y,计算 w = A・y 并取高位得到承诺 w₁。
  • 挑战阶段:将 w₁与消息哈希值串联,通过哈希生成挑战多项式 c(系数为 ±1 或 0)。
  • 响应阶段:计算响应 z = y + c・s₁,通过拒绝采样确保 z 的系数足够小(避免泄露私钥),并生成提示信息 h 辅助验证。

3. 签名验证:验证 “印章真伪”

验证者通过公钥和签名重构承诺,检查一致性:

  • 从签名中提取 z、c 和 h,计算近似值 w'_approx = A・z - c・t₁。
  • 利用提示 h 重构承诺 w'₁,验证其与挑战 c 的哈希是否匹配,同时检查 z 的系数范围是否合法。

关键优化:效率与安全的平衡

  • 数论变换(NTT):将多项式乘法复杂度从 O (n²) 降至 O (n log n),大幅提升计算效率。
  • 参数可配置:通过不同参数集平衡安全性与性能(如 ML-DSA-44 适合一般场景,ML-DSA-87 适合高安全需求)。

三、参数集:安全与性能的权衡

ML-DSA 定义了三个参数集,覆盖不同安全级别,具体特性如下:

参数集

安全等级

私钥大小

公钥大小

签名大小

适用场景

ML-DSA-44

类别 2(≈128 位安全)

2560 字节

1312 字节

2420 字节

普通互联网应用

ML-DSA-65

类别 3(≈192 位安全)

4032 字节

1952 字节

3309 字节

金融交易、政务系统

ML-DSA-87

类别 5(≈256 位安全)

4896 字节

2592 字节

4627 字节

国防、关键基础设施

参数集中的 “安全等级” 对应 NIST 定义的抗量子攻击能力,数值越高,抵御量子计算机破解的能力越强,但密钥和签名尺寸也随之增加。

四、应用场景:从日常到关键领域

ML-DSA 的抗量子特性使其适用于需要长期安全保障的场景:

  • 电子政务:保护敏感公文传输,确保政令下达的真实性与完整性。
  • 金融交易:在跨境支付、区块链交易中防止签名伪造,避免资金损失。
  • 软件供应链:验证操作系统镜像、固件更新的来源,抵御供应链攻击。
  • 物联网:为智能设备固件签名,防止恶意代码注入。

此外,ML-DSA 还支持预哈希模式(HashML-DSA),通过先哈希大型消息再签名,提高处理长文档的效率,适合云计算、大数据传输等场景。

五、安全优势与未来展望

核心安全特性

  • 抗量子性:基于 MLWE 问题,即使面对大规模量子计算机仍能保持安全。
  • 强不可伪造性:在选择消息攻击下,攻击者无法伪造有效签名。
  • 非否认性:签名者无法否认已生成的签名,适合法律证据场景。

六、开源代码实现参考

【openHiTLS开源密码库已开源实现ML-DSA,欢迎下载使用】

 openHiTLS旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
 项目地址:https://gitcode.com/openHiTLS/openhitls

http://www.xdnf.cn/news/17958.html

相关文章:

  • 【DL学习笔记】常用数据集总结
  • 微服务架构实战指南:从单体应用到云原生的蜕变之路
  • 56. 合并区间
  • 【Java基础面试题】数据类型
  • PAT乙级_1085 PAT单位排行_Python_AC解法_含疑难点
  • C语言(11)—— 数组(超绝详细总结)
  • C++基础——内存管理
  • QT基础入门
  • Tomcat Server 组件原理
  • 肖臻《区块链技术与应用》第23-26讲 - The DAO事件、BEC事件、反思和总结
  • select、poll 和 epoll
  • RK3568 NPU RKNN(二):RKNN-ToolKit2环境搭建
  • Java应届生求职八股(5)---并发编程篇
  • 【OpenGL】LearnOpenGL学习笔记10 - 平行光、点光源、聚光灯
  • ZCU国产化方案选型,哪家物料更齐全
  • 图像相似度算法汇总及Python实现
  • Linux内核内存管理深度解析
  • 自适应阈值二值化参数详解 ,计算机视觉,图片处理 邻域大小 调整常数(C=3)和可视化调节参数的应用程序
  • [Linux] Linux硬盘分区管理
  • 配置 Docker 镜像加速,解决 docker pull 拉取镜像失败、docker search 查询镜像失败等问题
  • 数据库Microsoft Access、SQL Server和SQLite三者对比及数据库的选型建议
  • Win11和Win10共享打印机提示709用添加Windows凭据来解决的小方法
  • 【UHD】vivado 2021.1 编译
  • 接口自动化测试框架搭建
  • maven与maven-archetype-plugin版本匹配问题
  • 一周学会Matplotlib3 Python 数据可视化-绘制绘制甘特图
  • 跑实验记录
  • Python Day30 CSS 定位与弹性盒子详解
  • python---内置函数
  • 微服务之注册中心与ShardingSphere关于分库分表的那些事