Java 中的后量子密码学。

更新:澳大利亚政府已宣布与美国政府类似的要求,但这些建议提前 5 年生效,即 2030 年而不是 2035 年。

Java 24(预计于 2025 年 3 月)发布的一对新 JEP 解决了 Java 中的后量子密码学 (PQC) 主题。他们是:

理想的加密系统使用通过私人通道在两方之间提前交换的密钥,但这不适用于大规模或远距离工作,也不适用于事先不认识对方的各方。

因此,公钥加密所做的就是利用“单向函数”(又名“陷门函数”)来允许接收者共享发送者可以用来加密密钥(或消息)的东西,但其他人无法共享这些东西可以用来解密它。

当前的加密保护使用离散数学中的问题(例如大数分解),这些问题被认为执行起来计算成本很高。数字相乘很便宜,但因式分解很昂贵,这一想法使得它成为单向函数并且对于密码学来说是有用的一对。

就计算难度而言,所有已知的因式分解算法都比暴力破解算法好不了多少。

这一假设使密码学家能够可靠地估计破解密钥封装机制 (KEM) 并恢复对称密钥所需的计算能力。反过来,即使考虑到摩尔定律等计算趋势,这也使密码学用户对其通信的安全性充满信心。

然而,近年来,利用量子力学行为的计算机已经开始出现。关键概念是量子位,它不仅仅是 1 或 0,而是同时代表两者的概率组合。量子计算在量子位上运行,而不强迫它们呈现任一状态(这一过程称为“崩溃”)。

有关量子计算的更多背景信息,应查阅专业信息

未来的大规模量子计算机可以使用诸如 Shor 算法等新技术,该算法能够解决离散对数问题,从而损害广泛部署的基于公钥的算法的安全性,例如 Rivest-Shamir-Adleman (RSA) 和Diffie-Hellman - 包括椭圆曲线算法。

另一方面,ML-KEM 旨在抵御未来的量子计算攻击。它通过使用完全不同的方法来解决“难题”来实现这一目标。 ML-KEM 已由美国国家标准与技术研究院 (NIST) 在联邦信息处理标准 (FIPS) 203 中标准化。

它使用一种“晶格密码学”形式——在 n 维空间中以规则间隔使用点的 n 维晶格。这些点可以看作向量,并且可以加在一起,形成平移组。

使用这种数学技术创建安全加密算法的一种强大方法称为“错误学习”(LWE)。它基于将秘密信息表示为一组有误差的方程的思想,并且自 2010 年左右才在数学研究界出现。

目前,大规模量子计算机还不存在。最好的可用实验室系统刚刚首次成功应用于 RSA 密码学。然而,这仅使用量子方法分解 50 位整数,这比生产系统实际使用的密钥长度短得多。例如,典型的 Java 应用程序使用 2048 位的密钥长度,这是一个合理的选择,因为 NIST 认为这个密钥长度足够到 2030 年。

尽管如此,美国政府仍强制要求处理敏感信息的计算机系统必须在未来十年内升级,以使用 ML-KEM 和其他即将推出的标准来防范量子攻击。例如,美国国家安全局 (NSA) 计划最晚在 2033 年完全实现后量子时代。

从理论上讲,到 2024 年,国家级攻击者可以开始捕获和存储大量加密流量,并期望在未来出现足够强大的量子计算机时能够解密这些流量。

换句话说,不存在可信的直接威胁 - 这些标准是为未来做好准备并最大限度地减少当前流动的脆弱流量。

前进的道路还远未明朗——一方面,制造更大的量子计算机面临着严峻的挑战,这可能会威胁到当今的密钥,这可能会导致可行的量子密码破译器的创建进一步延迟;另一方面,新技术可以更快地加速交付。

最后要考虑的一点是,互联网安全标准的历史表明,可能存在互操作性问题,并且缺乏明确的迁移路径,有时称为“协议僵化”。这是现在开始这项工作有意义的另一个原因。

Cloudflare最近发表的一篇文章讨论了 PQC 的当前状态和这些互操作问题(借鉴他们推出 TLS 1.3 的经验)。

无论如何,考虑到 Java 的悠久历史和普遍存在,该平台有必要开始支持后量子功能,甚至在完全标准化之前也是如此。这两个 JEP 代表了 Java 迈向经典公钥密码学之外的世界的第一步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值