PQC TLS Transmission Cost Metrics - crt26/PQC-LEO GitHub Wiki

Collected Performance Metrics

The TLS handshake transmission cost test measures the network data exchanged during TLS 1.3 handshakes for PQC, Hybrid-PQC, and classical configurations. PQC and Hybrid-PQC tests use signing-algorithm/KEM pairings, while classical tests use signing-algorithm/key-exchange-group/ciphersuite combinations. The tool performs one handshake with one-way authentication and one handshake with mutual authentication for every configuration. The measurements are extracted from the summary produced by OpenSSL s_client output.

Metric Description
Bytes Sent Number of bytes written by the TLS client during the handshake
Bytes Received Number of bytes read by the TLS client during the handshake
Total Bytes Sum of the bytes sent and received during the handshake

Each result row also identifies the signature algorithm and authentication type (one_way_auth or mutual_auth). PQC and Hybrid-PQC rows identify the KEM algorithm; classical rows instead identify both the key-exchange group and ciphersuite. Unlike the TLS performance suite, this test records a single handshake per configuration and does not calculate run averages.

TLS Handshake Transmission Cost Result Data Storage Structure

The get_pqc_tls_bytes.py script writes structured CSV data directly, so there is no unparsed result directory or additional parsing stage.

Data Type Description Location (relative to test_data/)
PQC TLS Handshake Bytes Transmission-cost results for PQC signature and KEM combinations results/tls_handshake_bytes/machine_x/pqc_tls_handshake_bytes_results.csv
Hybrid-PQC TLS Handshake Bytes Transmission-cost results for Hybrid-PQC signature and KEM combinations results/tls_handshake_bytes/machine_x/hybrid_tls_handshake_bytes_results.csv
Classical TLS Handshake Bytes Transmission-cost results for classical signature, key-exchange-group, and ciphersuite combinations results/tls_handshake_bytes/machine_x/classic_tls_handshake_bytes_results.csv

Where machine_x is the Machine-ID selected when the script is executed. If no custom Machine-ID is assigned, the default ID of 1 is used.

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