On Tue, 29 Sep 2026 03:39:43 GMT, Hai-May Chao <[email protected]> wrote:
> Enhance SSLHandshake benchmark to measure the TLS 1.3 server authentication > of an ML-DSA-65 server certificate and CertificateVerify, compared with an > ECDSA P-256 server authentication profile, across classical and hybrid key > exchange groups. > > --------- > - [X] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). The SSLHandshake benchmark results are: ## Linux AArch64 Benchmark (handshakeProfile) (resume) Mode Cnt Score Error Units SSLHandshake.doHandshake TLSv1.2-secp256r1-ecdsa_p256 true thrpt 15 6023.945 ± 49.091 ops/s SSLHandshake.doHandshake TLSv1.2-secp256r1-ecdsa_p256 false thrpt 15 218.445 ± 2.174 ops/s SSLHandshake.doHandshake TLSv1.3-x25519-ecdsa_p256 true thrpt 15 821.909 ± 6.073 ops/s SSLHandshake.doHandshake TLSv1.3-x25519-ecdsa_p256 false thrpt 15 404.449 ± 4.465 ops/s SSLHandshake.doHandshake TLSv1.3-secp256r1-ecdsa_p256 true thrpt 15 291.396 ± 2.181 ops/s SSLHandshake.doHandshake TLSv1.3-secp256r1-ecdsa_p256 false thrpt 15 211.402 ± 2.611 ops/s SSLHandshake.doHandshake TLSv1.3-secp384r1-ecdsa_p256 true thrpt 15 81.058 ± 0.229 ops/s SSLHandshake.doHandshake TLSv1.3-secp384r1-ecdsa_p256 false thrpt 15 73.121 ± 0.213 ops/s SSLHandshake.doHandshake TLSv1.3-X25519MLKEM768-ecdsa_p256 true thrpt 15 675.367 ± 5.876 ops/s SSLHandshake.doHandshake TLSv1.3-X25519MLKEM768-ecdsa_p256 false thrpt 15 365.153 ± 5.253 ops/s SSLHandshake.doHandshake TLSv1.3-SecP256r1MLKEM768-ecdsa_p256 true thrpt 15 270.081 ± 2.841 ops/s SSLHandshake.doHandshake TLSv1.3-SecP256r1MLKEM768-ecdsa_p256 false thrpt 15 199.005 ± 2.253 ops/s SSLHandshake.doHandshake TLSv1.3-SecP384r1MLKEM1024-ecdsa_p256 true thrpt 15 78.728 ± 0.261 ops/s SSLHandshake.doHandshake TLSv1.3-SecP384r1MLKEM1024-ecdsa_p256 false thrpt 15 71.150 ± 0.233 ops/s SSLHandshake.doHandshake TLSv1.3-x25519-mldsa65 true thrpt 15 856.427 ± 3.781 ops/s SSLHandshake.doHandshake TLSv1.3-x25519-mldsa65 false thrpt 15 506.364 ± 4.522 ops/s SSLHandshake.doHandshake TLSv1.3-secp256r1-mldsa65 true thrpt 15 290.872 ± 2.470 ops/s SSLHandshake.doHandshake TLSv1.3-secp256r1-mldsa65 false thrpt 15 231.732 ± 3.530 ops/s SSLHandshake.doHandshake TLSv1.3-secp384r1-mldsa65 true thrpt 15 81.169 ± 0.321 ops/s SSLHandshake.doHandshake TLSv1.3-secp384r1-mldsa65 false thrpt 15 75.606 ± 0.289 ops/s SSLHandshake.doHandshake TLSv1.3-X25519MLKEM768-mldsa65 true thrpt 15 702.961 ± 3.762 ops/s SSLHandshake.doHandshake TLSv1.3-X25519MLKEM768-mldsa65 false thrpt 15 444.084 ± 3.053 ops/s SSLHandshake.doHandshake TLSv1.3-SecP256r1MLKEM768-mldsa65 true thrpt 15 269.530 ± 3.228 ops/s SSLHandshake.doHandshake TLSv1.3-SecP256r1MLKEM768-mldsa65 false thrpt 15 218.854 ± 2.805 ops/s SSLHandshake.doHandshake TLSv1.3-SecP384r1MLKEM1024-mldsa65 true thrpt 15 78.774 ± 0.211 ops/s SSLHandshake.doHandshake TLSv1.3-SecP384r1MLKEM1024-mldsa65 false thrpt 15 73.679 ± 0.345 ops/s ## Linux x64 Benchmark (handshakeProfile) (resume) Mode Cnt Score Error Units SSLHandshake.doHandshake TLSv1.2-secp256r1-ecdsa_p256 true thrpt 15 9273.246 ± 48.693 ops/s SSLHandshake.doHandshake TLSv1.2-secp256r1-ecdsa_p256 false thrpt 15 373.237 ± 1.607 ops/s SSLHandshake.doHandshake TLSv1.3-x25519-ecdsa_p256 true thrpt 15 1302.877 ± 16.632 ops/s SSLHandshake.doHandshake TLSv1.3-x25519-ecdsa_p256 false thrpt 15 601.247 ± 3.086 ops/s SSLHandshake.doHandshake TLSv1.3-secp256r1-ecdsa_p256 true thrpt 15 493.436 ± 0.727 ops/s SSLHandshake.doHandshake TLSv1.3-secp256r1-ecdsa_p256 false thrpt 15 362.618 ± 2.601 ops/s SSLHandshake.doHandshake TLSv1.3-secp384r1-ecdsa_p256 true thrpt 15 115.201 ± 0.721 ops/s SSLHandshake.doHandshake TLSv1.3-secp384r1-ecdsa_p256 false thrpt 15 103.842 ± 0.437 ops/s SSLHandshake.doHandshake TLSv1.3-X25519MLKEM768-ecdsa_p256 true thrpt 15 1069.312 ± 10.544 ops/s SSLHandshake.doHandshake TLSv1.3-X25519MLKEM768-ecdsa_p256 false thrpt 15 546.426 ± 2.395 ops/s SSLHandshake.doHandshake TLSv1.3-SecP256r1MLKEM768-ecdsa_p256 true thrpt 15 455.260 ± 0.701 ops/s SSLHandshake.doHandshake TLSv1.3-SecP256r1MLKEM768-ecdsa_p256 false thrpt 15 337.926 ± 3.211 ops/s SSLHandshake.doHandshake TLSv1.3-SecP384r1MLKEM1024-ecdsa_p256 true thrpt 15 111.193 ± 0.980 ops/s SSLHandshake.doHandshake TLSv1.3-SecP384r1MLKEM1024-ecdsa_p256 false thrpt 15 100.300 ± 1.871 ops/s SSLHandshake.doHandshake TLSv1.3-x25519-mldsa65 true thrpt 15 1466.874 ± 13.981 ops/s SSLHandshake.doHandshake TLSv1.3-x25519-mldsa65 false thrpt 15 926.568 ± 3.822 ops/s SSLHandshake.doHandshake TLSv1.3-secp256r1-mldsa65 true thrpt 15 492.980 ± 0.566 ops/s SSLHandshake.doHandshake TLSv1.3-secp256r1-mldsa65 false thrpt 15 404.430 ± 2.208 ops/s SSLHandshake.doHandshake TLSv1.3-secp384r1-mldsa65 true thrpt 15 115.325 ± 0.861 ops/s SSLHandshake.doHandshake TLSv1.3-secp384r1-mldsa65 false thrpt 15 107.289 ± 0.659 ops/s SSLHandshake.doHandshake TLSv1.3-X25519MLKEM768-mldsa65 true thrpt 15 1176.036 ± 10.067 ops/s SSLHandshake.doHandshake TLSv1.3-X25519MLKEM768-mldsa65 false thrpt 15 785.892 ± 7.030 ops/s SSLHandshake.doHandshake TLSv1.3-SecP256r1MLKEM768-mldsa65 true thrpt 15 456.045 ± 0.765 ops/s SSLHandshake.doHandshake TLSv1.3-SecP256r1MLKEM768-mldsa65 false thrpt 15 377.330 ± 3.063 ops/s SSLHandshake.doHandshake TLSv1.3-SecP384r1MLKEM1024-mldsa65 true thrpt 15 111.318 ± 0.801 ops/s SSLHandshake.doHandshake TLSv1.3-SecP384r1MLKEM1024-mldsa65 false thrpt 15 104.162 ± 0.879 ops/s ## Performance analysis ### Linux AArch64 | Key exchange | Resumed throughput: ML-DSA-65 vs ECDSA-P256 | Full throughput: ML-DSA-65 vs ECDSA-P256 | Full-handshake time saved | |---|---:|---:|---:| | X25519 | +4.2% | +25.2% | 0.498 ms | | secp256r1 | -0.2% | +9.6% | 0.415 ms | | secp384r1 | +0.1% | +3.4% | 0.450 ms | | X25519MLKEM768 | +4.1% | +21.6% | 0.487 ms | | secp256r1MLKEM768 | -0.2% | +10.0% | 0.456 ms | | secp384r1MLKEM1024 | +0.1% | +3.6% | 0.482 ms | ### Linux x64 | Key exchange | Resumed throughput: ML-DSA-65 vs ECDSA-P256 | Full throughput: ML-DSA-65 vs ECDSA-P256 | Full-handshake time saved | |---|---:|---:|---:| | X25519 | +12.6% | +54.1% | 0.584 ms | | secp256r1 | -0.1% | +11.5% | 0.285 ms | | secp384r1 | +0.1% | +3.3% | 0.309 ms | | X25519MLKEM768 | +10.0% | +43.8% | 0.558 ms | | secp256r1MLKEM768 | +0.2% | +11.7% | 0.309 ms | | secp384r1MLKEM1024 | +0.1% | +3.9% | 0.370 ms | ------------- PR Comment: https://git.openjdk.org/jdk/pull/33111#issuecomment-5883679453
