抗量子计算密码算法的Java开源实现


Dilithium 是一种实验性后量子数字签名算法,是美国国家标准与技术研究院标准化的三个决赛入围算法之一。

  • 此实现为 Dilithium 提供了 Java 加密提供程序,允许通过标准 Java 加密扩展接口使用它。
  • 它支持为 Dilithium 指定的所有三个安全级别并通过测试向量。

该实现仅用于实验和学习目的,因为它创建得很快,并且尚未针对生产使用进行审核。基于 JCE 提供者 API 演示了密钥生成、签名、验证和序列化。

众所周知,RSA 和 ECC 加密算法很容易受到量子计算机通过肖尔算法进行的攻击。虽然达到必要规模的量子计算机在实践中还不存在,但人们一直在寻找不存在这种漏洞的算法。

事实上,为了找出量子安全的替代方案,NIST 已经进行了 6 年多的竞赛。7 月 5 日,NIST 公布了后量子数字签名方案的三个候选方案。Dilithium 就是其中之一,并被推荐为主要算法。

虽然量子计算通过实现大数的高效分解对当前的加密方法构成了潜在风险,但具有足够量子位来运行 Shor 算法的实用量子计算机仍然需要很多年的时间。

研究人员正在致力于量子纠错和硬件改进,这可能会导致量子比特随着时间的推移呈指数增长,但所有当前系统仍然存在严重错误。

现在采用后量子加密标准可以帮助长期保护数据,以防大型量子计算机比预期更快建成,但风险水平取决于特定数据在未来几十年内保持私密性的重要性。