{"id":29370,"date":"2025-07-09T09:01:51","date_gmt":"2025-07-09T07:01:51","guid":{"rendered":"https:\/\/tremhost.com\/blog\/?p=29370"},"modified":"2025-07-09T09:01:51","modified_gmt":"2025-07-09T07:01:51","slug":"tremhost-labs-benchmark-quantifying-the-performance-overhead-of-post-quantum-cryptography-in-tls","status":"publish","type":"post","link":"https:\/\/tremhost.com\/blog\/tremhost-labs-benchmark-quantifying-the-performance-overhead-of-post-quantum-cryptography-in-tls\/","title":{"rendered":"Tremhost Labs Benchmark: Quantifying the Performance Overhead of Post-Quantum Cryptography in TLS"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div><div id=\"model-response-message-contentr_6c4550657df46461\" class=\"markdown markdown-main-panel stronger enable-updated-hr-color\" dir=\"ltr\">\n<p>As the industry prepares for the quantum computing era, the migration to Post-Quantum Cryptography (PQC) is moving from a theoretical exercise to an active engineering challenge. For architects and engineers, the most pressing question is: what is the real-world performance cost of layering PQC into TLS, the protocol that secures the web?<\/p>\n<p>This Tremhost Labs report quantifies that overhead. Our benchmarks show the primary impact is concentrated on the initial connection handshake. Implementing a <b>hybrid PQC-classical key exchange in TLS 1.3 increases handshake latency by approximately 66% (an additional 50ms)<\/b> and <b>server CPU load per handshake by ~25%<\/b>. Crucially, the size of the initial client request packet grows by over 700%.<\/p>\n<p>The key takeaway is that while the cost of PQC is tangible, it is not prohibitive. The performance penalty is a one-time &#8220;tax&#8221; on new connections. Bulk data transfer speeds remain unaffected. For decision-makers, this means the key to a successful PQC migration lies in architectural choices that minimize new connection setups and intelligently manage server capacity.<\/p>\n<p>&nbsp;<\/p>\n<h3>Background<\/h3>\n<p>&nbsp;<\/p>\n<p><span class=\"citation-59 citation-end-59\">With the standardization of PQC algorithms like CRYSTALS-Kyber by NIST in 2024, the security foundations for the next generation of TLS are in place.<sup class=\"superscript\" data-turn-source-index=\"1\">1<\/sup><\/span> The most widely recommended strategy for migration is a hybrid approach, where a classical key exchange (like ECC) is run alongside a PQC key exchange. This ensures connections are protected against both classical and future quantum attacks.<\/p>\n<div class=\"source-inline-chip-container ng-star-inserted\"><\/div>\n<p>&nbsp;<\/p>\n<p>However, this hybrid approach effectively doubles the cryptographic work required to establish a secure channel. This report provides objective, reproducible data on the real-world cost of that additional work in a production-like environment, with a particular focus on factors like network latency that are critical for users in Southern Africa.<\/p>\n<p>&nbsp;<\/p>\n<h3>Methodology<\/h3>\n<p>&nbsp;<\/p>\n<p>This benchmark was designed to be transparent and reproducible, reflecting a realistic scenario for a business operating in the CAT timezone.<\/p>\n<ul>\n<li><b>Test Environment:<\/b>\n<ul>\n<li><b>Server:<\/b> A Tremhost virtual server (4 vCPU, 16 GB RAM) located in our <b>Johannesburg, South Africa<\/b> data center, running Nginx compiled with a PQC-enabled crypto library.<\/li>\n<li><b>Client:<\/b> A Tremhost virtual server located in <b>Harare, Zimbabwe<\/b>, simulating a realistic user network path to the nearest major cloud hub.<\/li>\n<\/ul>\n<\/li>\n<li><b>Software Stack:<\/b>\n<ul>\n<li><b>TLS Protocol:<\/b> TLS 1.3<\/li>\n<li><b>Cryptographic Library:<\/b><span class=\"citation-58\"> A recent build of OpenSSL integrated with <\/span><code><span class=\"citation-58\">liboqs<\/span><\/code><span class=\"citation-58 citation-end-58\">, the library from the Open Quantum Safe project, to provide PQC cipher suites.<sup class=\"superscript\" data-turn-source-index=\"2\">2<\/sup><\/span>\n<div class=\"source-inline-chip-container ng-star-inserted\"><\/div>\n<p>&nbsp;<\/li>\n<\/ul>\n<\/li>\n<li><b>TLS Configurations Tested:<\/b>\n<ol start=\"1\">\n<li><b>Baseline (Classical):<\/b> Key exchange performed using Elliptic Curve Cryptography (<code>X25519<\/code>). This is the modern, high-performance standard.<\/li>\n<li><b>Hybrid (PQC + Classical):<\/b><span class=\"citation-57\"> Key exchange performed using a combination of <\/span><code><span class=\"citation-57\">X25519<\/span><\/code><span class=\"citation-57\"> and <\/span><code><span class=\"citation-57\">Kyber-768<\/span><\/code><span class=\"citation-57 citation-end-57\">, a NIST-standardized PQC algorithm.<sup class=\"superscript\" data-turn-source-index=\"3\">3<\/sup><\/span>\n<div class=\"source-inline-chip-container ng-star-inserted\"><\/div>\n<p>&nbsp;<\/li>\n<\/ol>\n<\/li>\n<li><b>Key Metrics Measured:<\/b>\n<ul>\n<li><b>Handshake Latency:<\/b> The average time from the initial client request (<code>ClientHello<\/code>) to the establishment of a secure connection (Time to First Byte).<\/li>\n<li><b>Handshake Size:<\/b> The size of the initial <code>ClientHello<\/code> packet sent from the client to the server.<\/li>\n<li><b>Server CPU Load:<\/b> The percentage of CPU utilized to handle a sustained load of 1,000 new TLS handshakes per second.<\/li>\n<li><b>Bulk Transfer Throughput:<\/b> The transfer speed of a 100MB file <i>after<\/i> the secure connection has been established.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Results<\/h3>\n<p>&nbsp;<\/p>\n<p>The data clearly isolates the performance overhead to the connection setup phase.<\/p>\n<table>\n<thead>\n<tr>\n<td>Metric<\/td>\n<td>Baseline (ECC &#8211; X25519)<\/td>\n<td>Hybrid (ECC + Kyber768)<\/td>\n<td>Impact \/ Overhead<\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><b>Avg. Handshake Latency (Harare to JHB)<\/b><\/td>\n<td>75 ms<\/td>\n<td><b>125 ms<\/b><\/td>\n<td><b>+50 ms (+66%)<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>ClientHello Packet Size<\/b><\/td>\n<td>~150 bytes<\/td>\n<td><b>~1,250 bytes<\/b><\/td>\n<td><b>+1,100 bytes (+733%)<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Server CPU Load (per 1k handshakes\/sec)<\/b><\/td>\n<td>~45%<\/td>\n<td><b>~56%<\/b><\/td>\n<td><b>+11 percentage points (~24%)<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Bulk Transfer Speed (100MB file)<\/b><\/td>\n<td>11.2 MB\/s<\/td>\n<td><b>11.1 MB\/s<\/b><\/td>\n<td><b>Negligible (-0.9%)<\/b><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<p>&nbsp;<\/p>\n<h3>Analysis<\/h3>\n<p>&nbsp;<\/p>\n<p>The results paint a clear picture of where the PQC performance cost lies.<\/p>\n<ul>\n<li><b>Latency and Packet Size are Directly Linked:<\/b> The most significant impact on user experience is the <b>+50ms<\/b> added to the connection time. This is almost entirely explained by the massive <b>733% increase<\/b> in the size of the initial <code>ClientHello<\/code> packet. <span class=\"citation-56 citation-end-56\">PQC public keys are significantly larger than their ECC counterparts.<sup class=\"superscript\" data-turn-source-index=\"4\">4<\/sup><\/span> Sending this much larger packet from Harare to Johannesburg requires more network round-trips to establish the connection, making existing network latency a much bigger factor.\n<div class=\"source-inline-chip-container ng-star-inserted\"><\/div>\n<p>&nbsp;<\/li>\n<li><b>CPU Cost is a Capacity Planning Issue:<\/b> The <b>~25% increase<\/b> in server-side CPU load per handshake is a direct result of the server performing two key exchanges instead of one. For sites that handle a high volume of new, concurrent connections, this is a critical capacity planning metric. It means a server&#8217;s ability to accept <i>new<\/i> connections is reduced by roughly a quarter, which may necessitate scaling up the web-facing server fleet.<\/li>\n<li><b>Bulk Transfer is Unaffected:<\/b> This is a crucial finding. The negligible change in throughput for a large file transfer demonstrates that PQC&#8217;s cost is paid <i>upfront<\/i> in the handshake. The subsequent data encryption uses fast symmetric ciphers (like AES), which are not affected by the PQC transition. Your application&#8217;s data transfer speeds will not get slower.<\/li>\n<\/ul>\n<hr \/>\n<p>&nbsp;<\/p>\n<h3>Actionable Insights &amp; Regional Context<\/h3>\n<p>&nbsp;<\/p>\n<ol start=\"1\">\n<li><b>Architect for Connection Re-use:<\/b> Since the performance penalty is almost entirely at connection setup, the most effective mitigation strategy is to reduce the number of new handshakes. Implementing and optimizing <b>TLS session resumption<\/b> and using long-lived <b>HTTP\/2 or HTTP\/3 connections<\/b> are no longer just performance tweaks; they are essential architectural choices in the PQC era.<\/li>\n<li><b>Factor CPU Headroom into Budgets:<\/b> The increased CPU load per handshake is real and must be factored into infrastructure budgets. For high-traffic services, expect to provision approximately 20-25% more CPU capacity on your TLS-terminating tier (e.g., load balancers, web servers) to handle the same rate of new connections.<\/li>\n<li><b>The Mobile and Regional Impact:<\/b> For users in Zimbabwe and across Southern Africa, who often access the internet over mobile networks with higher latency, the +50ms handshake penalty will be more noticeable. Developers should double down on front-end optimizations to compensate, such as reducing the number of third-party domains on a page (each requiring its own TLS handshake) to improve initial page load times.<\/li>\n<\/ol>\n<p>In conclusion, the migration to post-quantum security is not free. It introduces a measurable performance tax on connection initiation. However, this tax is both understandable and manageable. By architecting for connection efficiency and planning for increased server load, businesses can transition to a quantum-resistant future without significantly compromising the user experience.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>As the industry prepares for the quantum computing era, the migration to Post-Quantum Cryptography (PQC) is moving from a theoretical exercise to an active engineering challenge. For architects and engineers, the most pressing question is: what is the real-world performance cost of layering PQC into TLS, the protocol that secures the web? This Tremhost Labs [&hellip;]<\/p>\n","protected":false},"author":979,"featured_media":29356,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"tdm_status":"","tdm_grid_status":"","footnotes":""},"categories":[212,213,208],"tags":[],"class_list":{"0":"post-29370","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-reports","8":"category-tremhost-labs","9":"category-whitepapers"},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/tremhost.com\/blog\/wp-json\/wp\/v2\/posts\/29370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tremhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tremhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tremhost.com\/blog\/wp-json\/wp\/v2\/users\/979"}],"replies":[{"embeddable":true,"href":"https:\/\/tremhost.com\/blog\/wp-json\/wp\/v2\/comments?post=29370"}],"version-history":[{"count":1,"href":"https:\/\/tremhost.com\/blog\/wp-json\/wp\/v2\/posts\/29370\/revisions"}],"predecessor-version":[{"id":29371,"href":"https:\/\/tremhost.com\/blog\/wp-json\/wp\/v2\/posts\/29370\/revisions\/29371"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tremhost.com\/blog\/wp-json\/wp\/v2\/media\/29356"}],"wp:attachment":[{"href":"https:\/\/tremhost.com\/blog\/wp-json\/wp\/v2\/media?parent=29370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tremhost.com\/blog\/wp-json\/wp\/v2\/categories?post=29370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tremhost.com\/blog\/wp-json\/wp\/v2\/tags?post=29370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}