, ,

Acceleration of Curve25519 Field Operations with Java Software and Intrinsics

原文はこちら。
The original article was written by Shawn Emery (Principal Platform Software Engineer, Oracle).
https://inside.java/2026/09/03/java-acceleration-curve25519-field-operations/

JDK 27 および JDK 28 ではCurve25519 の体演算のパフォーマンスを大幅に向上させる数々の機能強化が行われました。これは、X25519 [1] による鍵生成および合意、Ed25519 [2] 署名方式、および TLS 1.3 向けの X25519MLKEM768 [3,9] ポスト量子ハイブリッド鍵交換グループの基礎です。
アプリケーションでは、JCE API のKeyAgreement、Signature、KeyPairGeneratorを使用してこれらのアルゴリズムを実行する場合、および TLS 1.3 ハイブリッド鍵交換で JSSE API を使用する場合に、これらのパフォーマンス向上が確認できます。

アプリケーションでは、JCE API のKeyAgreement、Signature、KeyPairGeneratorを使用してこれらのアルゴリズムを処理する場合、および TLS 1.3 ハイブリッド鍵交換で JSSE API を使用する場合に、こうしたパフォーマンスの向上が確認できます。

Improved Performance of Curve25519 Field Operations

ソフトウェアの変更により、内部データ構造のサイズが拡大され、より効率的な計算が可能になりました。その結果、JDK 27 – ビルド 14 以降、以下のアルゴリズムで顕著なパフォーマンス向上が見込まれます。

  • X25519 [4,5] の鍵生成および鍵合意:スループットが 49~54% 向上
  • Ed25519 [6,7] の鍵生成、署名、および検証:スループットが 46~49% 向上
  • X25519MLKEM768 [8] の鍵生成およびハイブリッド鍵交換:スループットが 27~51% 向上

ソフトウェアの効率化に加え、x86_64 および AArch64 アーキテクチャの両方に対してintrinsicsが作成されました。これらのintrinsicsは、ソフトウェアの改良を基盤とし、アーキテクチャ固有の最適化されたマシン命令を使用しています。その結果、JDK 28(ビルド 5)以降、以下のプラットフォームで大幅なパフォーマンス向上が確認されました。

CPUPerformance improvement
x86_64X25519 鍵生成および鍵合意:スループットが 19% 向上
Ed25519 鍵生成、署名、および検証:スループットが 16~20% 向上
X25519MLKEM768 鍵生成およびハイブリッド鍵交換:スループットが 12~15% 向上
AArch64X25519 鍵生成および鍵合意:スループットが 7~10% 向上
Ed25519 鍵生成、署名、および検証:スループットが 12~15% 向上
X25519MLKEM768 鍵生成およびハイブリッド鍵交換:スループットが 7~8% 向上

Next Steps

JDK 27 および JDK 28 の早期アクセスビルドでは、X25519、Ed25519、および X25519MLKEM768 アルゴリズムを用いた Curve25519 フィールド演算において、アプリケーションのパフォーマンスが大幅に向上します。ぜひ、JDK 27およびJDK 28の早期アクセス版をダウンロードして、これらの改善をお試しいただき、security-dev OpenJDK メーリングリスト(登録が必要)を通じてフィードバックをお寄せください。

OpenJDK JDK 27 GA Release Builds
OpenJDK JDK 28 Early-Access Builds
Info | security-dev@openjdk.org – openjdk.org

References

[1] X25519 is a key agreement function that uses Curve25519, as specified in RFC 7748 – Elliptic Curves for Security

[2] Ed25519 is a signature algorithm that is based on Curve25519, as specified in RFC 8032 – Edwards-Curve Digital Signature Algorithm (EdDSA)

[3] X25519MLKEM768 is a post-quantum hybrid key exchange scheme specified in RFC 10024 – Post-Quantum Traditional (PQ/T) Hybrid Key Agreement Mechanisms for TLS 1.3

[4] Benchmark: micro:org.openjdk.bench.javax.crypto.full.KEMBench.JSSE_DHasKEM

[5] Benchmark: micro:org.openjdk.bench.javax.crypto.full.KeyAgreementBench.XDH

[6] Benchmark: micro:org.openjdk.bench.javax.crypto.full.KeyPairGeneratorBench.EdDSA

[7] Benchmark: micro:org.openjdk.bench.javax.crypto.full.SignatureBench.EdDSA

[8] Benchmark: micro:org.openjdk.bench.java.security.SSLHandshake

[9] JEP 527: Post-Quantum Hybrid Key Exchange for TLS 1.3

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。