利用Java软件和内建函数加速Curve25519字段运算

利用Java软件和内建函数加速Curve25519字段运算

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

Oracle在JDK 27和28中显著提升了Curve25519字段运算性能,优化了X25519、Ed25519及X25519MLKEM768算法。软件改进使吞吐量增加27-54%,新增的x86_64和AArch64架构内建函数进一步带来7-20%提升。这些改进通过JCE和JSSE API惠及密钥生成、签名及TLS 1.3混合密钥交换,鼓励用户试用早期版本并提供反馈。

🔎

延伸解读

性能提升的适用场景

这些优化主要影响使用JCE API(如KeyAgreement、Signature、KeyPairGenerator)和JSSE API(TLS 1.3混合密钥交换)的应用。如果你的系统依赖X25519、Ed25519或X25519MLKEM768算法,升级到JDK 27或28后,密钥生成、签名和握手等操作将获得显著吞吐量提升。

架构差异与版本选择

软件优化在JDK 27 build 14起生效,而架构特定的内建函数(intrinsics)在JDK 28 build 5起才引入。x86_64平台上的性能提升(最高20%)普遍高于AArch64(最高15%)。因此,若需充分利用硬件加速,建议关注JDK 28的早期版本,并根据部署架构评估实际收益。

测试与反馈渠道

Oracle鼓励开发者下载JDK 27和28的早期访问版本进行测试,并通过security-dev OpenJDK邮件列表(需注册)反馈问题。由于这些改进涉及安全敏感算法,实际部署前建议在目标环境进行基准测试,以验证性能提升是否符合预期,并确保与现有系统兼容。

Q&A

JDK 27和JDK 28中针对Curve25519字段运算做了哪些性能优化?

JDK 27和JDK 28通过软件改进和新增的x86_64与AArch64架构内建函数,显著提升了Curve25519字段运算的性能,从而加速了X25519、Ed25519和X25519MLKEM768算法。

Curve25519字段运算的性能提升影响了哪些算法?

性能提升影响了基于Curve25519的X25519密钥协商、Ed25519签名算法,以及X25519MLKEM768后量子混合密钥交换算法。

JDK 27中软件改进带来的性能提升幅度是多少?

JDK 27中软件改进使X25519密钥生成和密钥协商吞吐量提升49-54%,Ed25519密钥生成、签名和验证提升46-49%,X25519MLKEM768密钥生成和混合密钥交换提升27-51%。

JDK 28中新增的内建函数在x86_64和AArch64架构上分别带来了多少性能提升?

在x86_64上,X25519提升19%,Ed25519提升16-20%,X25519MLKEM768提升12-15%;在AArch64上,X25519提升7-10%,Ed25519提升12-15%,X25519MLKEM768提升7-8%。

这些性能改进通过哪些API对应用程序可见?

这些改进通过JCE API(如KeyAgreement、Signature、KeyPairGenerator)和JSSE API(用于TLS 1.3混合密钥交换)对应用程序可见。

用户如何试用这些性能改进并提供反馈?

用户可以下载JDK 27和JDK 28的早期访问版本,试用这些改进,并通过security-dev OpenJDK邮件列表(需注册)分享反馈。

🏷️

标签

➡️

继续阅读