PQC TLS Performance Testing - crt26/PQC-LEO GitHub Wiki

Benchmarking Tool Overview

This page provides an overview of the tool used for benchmarking for PQC-enabled TLS 1.3 handshakes and cryptographic operations within OpenSSL 4.0.3. It supports OpenSSL-native algorithms and PQC algorithms integrated into OpenSSL through the OQS-Provider library. The handshake tests evaluate PQC and Hybrid-PQC signing-algorithm/KEM pairings alongside classical signing-algorithm, key-exchange-group, and ciphersuite combinations. The OpenSSL speed tests benchmark PQC/Hybrid-PQC KEM and signature operations together with classical signature and key-exchange operations.

Tests can be conducted either on a single machine (localhost) or across two networked machines, using a physical or virtual connection. The tool records detailed performance and timing metrics for each algorithm pairing evaluated during testing.

The relevant PQC TLS Performance testing scripts can be found in the scripts/test_scripts directory from the project's root.

If you wish to perform TLS handshake and operations energy usage testing, please refer to the PQC Energy Usage Testing Guide page for further details.

To compare the size of the network data exchanged by one-way and mutually authenticated TLS 1.3 handshakes, refer to the separate TLS Handshake Transmission Cost Testing Guide page.

Notice: Certain PQC, Hybrid-PQC, and classical algorithm combinations may produce values of inf for "Connections Per User Second" results in TLS handshake testing when using smaller testing windows. Please refer to the Inf Result Value Occurrence Details page for further information.

Supported Algorithms

This tool supports PQC and Hybrid-PQC algorithms available through OpenSSL 4.0.3 and the OQS-Provider, with a small number excluded because of known incompatibilities and dependency limitations. TLS handshake testing also covers a set of classical digital signature algorithms, TLS key-exchange groups, and TLS 1.3 ciphersuites. Every supported classical signing algorithm is tested with every supported key-exchange-group and ciphersuite combination. TLS speed testing covers supported PQC/Hybrid-PQC KEMs and signatures, classical RSA/EC/Ed signature algorithms, and classical ECDH/XDH key-exchange groups.

RSA-PSS is included in classical TLS handshake testing, but standard TLS speed testing does not produce separate RSA-PSS results. The underlying openssl speed command provides size-based RSA selectors only and uses its standard RSA/PKCS#1 v1.5 benchmark path; it does not provide an RSA-PSS selector that the test could invoke or parse as a distinct result.

The complete algorithm lists and information about exclusions are provided in the following project documentation:

Algorithm Support Overview

Usage Guides

To conduct the PQC TLS performance testing using the PQC implementations available in the OpenSSL(4.0.3) and OQS-Provider libraries, please refer to the following wiki pages:

Additionally, for further information on the advanced TLS testing customisation options, please refer to the following wiki page:

⚠️ **GitHub.com Fallback** ⚠️