Contents

Abstract

CVE-2024-13176 describes a low-amplitude timing side channel in OpenSSL ECDSA signature computation that may expose information related to the signing nonce. This study evaluated whether the reported nonce-related condition produced a statistically distinguishable timing effect in a controlled ARM64 virtualized Linux environment. Source-level instrumentation classified each P-521 signing operation and measured the downstream Montgomery multiplication consuming ckinv in OpenSSL 3.4.0 and OpenSSL 3.4.1. The confirmatory collection contained 600,000 observations organized into 30 block pairs for the vulnerable and patched releases. OpenSSL 3.4.0 showed a positive hit-versus-non-hit effect in all 30 blocks, with a median block effect of 125 nanoseconds. OpenSSL 3.4.1 had a median block effect of zero, with zero effect in 29 blocks. All 30 paired vulnerable-versus-patched contrasts were positive, and all three confirmatory criteria specified before collection were met. Broader nonce-inversion and full-signature measurements did not show the same stable separation, indicating that the clearest measured behavior was localized to the downstream multiplication. An exploratory subsampling analysis found that the paired result remained consistent when fewer observations were retained, describing sensitivity within this dataset rather than a universal sample-size requirement. Overall, the results show that the timing effect was detectable at the localized internal measurement point in the tested environment, while visibility through an ordinary signing interface, practical private-key recovery, and behavior on other systems remain open questions.

1. Introduction

Cryptographic algorithms are usually evaluated based on their mathematical security assumptions, but real implementations can fail in ways that are not captured by the algorithm alone. One example is timing leakage, where secret-dependent computation time may reveal information about private values. Timing attacks have been known for decades, beginning with early work showing that carefully measured execution time could expose secrets in public-key cryptosystems [1]. Later work showed that timing attacks are not limited to smartcards or highly controlled hardware. Under some conditions, they can also be practical against general software systems and networked services [2].

Implementation security is especially important for digital signature schemes. In the Elliptic Curve Digital Signature Algorithm (ECDSA), each signature depends not only on the long-term private key but also on a per-message secret value often called the nonce. If information about this nonce leaks across signatures, even partially, the long-term private key may become recoverable. ECDSA implementations must therefore protect not only the private key itself, but also intermediate values that may be correlated with the nonce or with nonce-dependent computation [3].

CVE-2024-13176 provides a recent example of this issue in a widely used cryptographic library. The OpenSSL advisory describes the vulnerability as a timing side channel in ECDSA signature computation that could potentially allow recovery of the private key [4]. OpenSSL rates the issue as Low severity because the reported timing signal is small, approximately 300 nanoseconds, and because measuring it would require either local access to the signing application or a very fast network connection with low latency [4]. The NVD entry similarly describes the vulnerability as potentially allowing private-key recovery while emphasizing the difficulty of measuring the timing signal under normal remote conditions [5].

CVE-2024-13176 therefore provides a useful case study for timing analysis. The main measurement question is whether the reported signal can be distinguished under controlled measurement conditions. A timing difference can exist and still be difficult to separate from noise caused by scheduling, CPU frequency changes, cache effects, background processes, virtualization, or network jitter. Repeated measurements and statistical analysis can sometimes reveal weak signals that are not obvious in individual observations.

This paper focuses on detecting the localized timing behavior associated with CVE-2024-13176 rather than on full private-key recovery. Specifically, it asks whether the nonce-related condition is associated with a distinguishable localized timing effect in the tested environment, whether the corresponding effect is reduced in OpenSSL 3.4.1, and how the completed paired analysis behaves when fewer observations are retained.

The study combines source-level classification, localized timing measurements, a vulnerable-versus-patched comparison, and exploratory sample-size analysis to characterize the reported behavior under controlled conditions. Together, these measurements show how the timing effect appears in one ARM64 virtualized Linux environment and how that behavior changes in the patched OpenSSL release.

2. Background

2.1 ECDSA and Nonce Sensitivity

ECDSA is a public-key digital signature algorithm used to authenticate data and verify that it was signed by the holder of the corresponding private key. The algorithm is standardized as part of the NIST Digital Signature Standard [6] and is commonly used in cryptographic libraries, protocols, certificates, and authentication systems. At a high level, ECDSA signing uses a long-term private key together with a per-message secret value, often referred to as a nonce or per-message secret number. The resulting signature can then be verified using the signer’s public key.

The nonce is a critical part of ECDSA security. If the same nonce is reused across signatures, or if enough information about the nonce is leaked, the long-term private key may be recoverable. Even partial leakage from repeated signing operations can become security-relevant because an attacker may be able to combine information across many signatures [3].

ECDSA nonces may be generated randomly or deterministically, depending on the implementation. RFC 6979 defines a deterministic method for generating DSA and ECDSA nonces from the private key and message, reducing the risk of failures caused by poor randomness [7]. Deterministic nonce generation still requires side-channel resistance, since later computations during signing may leak information through timing, memory access patterns, cache behavior, or other implementation-level effects.

2.2 Timing Side Channels

A timing side channel occurs when the time required to complete an operation depends on secret data. In cryptographic code, this can happen when branches, loops, arithmetic operations, memory accesses, or error-handling paths vary based on private values. The security issue is not simply that one operation is faster than another, but that the timing difference may be statistically correlated with information an attacker should not know.

In practice, timing measurements are affected by many sources of noise. Operating system scheduling, CPU frequency scaling, cache state, branch prediction, background processes, virtualization, and network jitter can all hide or distort a timing signal. For that reason, timing leakage is often evaluated statistically rather than through individual observations. A single timing measurement may reveal little, while a large set of measurements may show a distributional difference between two classes of operations.

2.3 Constant-Time Implementations and Leakage Detection

A common defense against timing side channels is to write cryptographic code in a constant-time style. In this context, “constant-time” does not mean that every operation always takes exactly the same number of nanoseconds. Instead, it means that the control flow, memory access pattern, and operation sequence should not depend on secret data in a way that creates observable leakage. This is difficult to guarantee in real systems because compiler optimizations, platform behavior, and microarchitectural effects can introduce timing differences even when the source code is written carefully.

Because constant-time behavior is difficult to prove from source code alone, practical testing tools often use statistical methods to detect timing leakage. Tools such as dudect compare timing measurements from different input classes and use statistical tests to determine whether the resulting distributions are distinguishable [8]. These tests are designed to identify observable secret-dependent behavior rather than reproduce a complete attack, making them useful for evaluating implementation-level leakage.

That distinction applies directly to this study. Since CVE-2024-13176 reports a small timing signal whose practical significance depends partly on whether it can be measured reliably, the experiment uses controlled measurements and statistical analysis to evaluate its detectability [4], [5].

3. CVE-2024-13176 Overview

CVE-2024-13176 is a timing side-channel vulnerability in OpenSSL’s ECDSA signature computation. According to the OpenSSL advisory, the vulnerability could potentially allow an attacker to recover the ECDSA private key by observing timing behavior during signing operations [4]. The NVD entry describes the same issue and identifies it as a timing side channel in ECDSA signature computation [5].

The OpenSSL advisory gives both a rough magnitude and a specific condition for the timing signal. It reports an approximately 300-nanosecond signal when the top word of the inverted ECDSA nonce value is zero [4]. This condition does not occur with the same probability across all supported elliptic curves, and the advisory specifically identifies NIST P-521 as affected [4]. P-521 was therefore used for the measurements in this study.

OpenSSL rates the vulnerability as Low severity because the timing signal is small and difficult to measure in many practical attack settings [4]. The advisory states that measuring the leak would require either local access to the signing application or a very fast network connection with low latency [4]. This measurement difficulty makes detectability an important part of understanding the vulnerability, since the presence of an internal timing difference does not by itself show how readily that difference can be observed under broader conditions.

The OpenSSL advisory also identifies the affected version branches and the fixes released for them [4]. For OpenSSL 3.4, the relevant public fix is commit 77c608f4, titled “Fix timing side-channel in ECDSA signature computation” [9]. This allowed the study to compare OpenSSL 3.4.0 with the patched OpenSSL 3.4.1 release using the same experimental procedure.

This paper treats CVE-2024-13176 as a case study in low-amplitude timing leakage. The analysis examines whether the reported nonce-related condition produces detectable localized timing behavior, how the corresponding effect changes in the patched release, and how the paired detection procedure behaves when fewer observations are retained. Together, these questions connect the public vulnerability description with a controlled empirical measurement of the implementation behavior.

5. Research Questions and Scope

This study focuses on the localized timing behavior associated with CVE-2024-13176 in one controlled ARM64 virtualized Linux environment. The primary research question is:

In the tested ARM64 virtualized Linux environment, is the nonce-related condition associated with a statistically distinguishable localized timing effect during OpenSSL 3.4.0 ECDSA signing?

This question focuses on whether the condition described by the advisory produces observable timing behavior under controlled local measurement conditions. Source-level instrumentation classified signing operations according to the nonce-related condition without recording the nonce, private key, or complete intermediate values. Timing was measured at multiple levels of the signing path, including the complete signing operation, the nonce-inversion operation, and the downstream Montgomery multiplication that consumes the inverted nonce value. Measuring these three levels allowed the study to distinguish a localized internal effect from broader variation in full-signature timing.

The study also addresses two supporting questions:

  1. Does OpenSSL 3.4.1 reduce or remove the corresponding condition-dependent timing effect observed in OpenSSL 3.4.0?

    To keep the comparison focused on the nonce-related condition, both versions were tested using the same curve, measurement harness, virtual machine, and interleaved block design. The analysis compared hit-versus-non-hit timing within each version and then paired the resulting block-level effects. This is more specific than comparing the overall execution speed of the two releases, which could differ for reasons unrelated to the vulnerability.

  2. Within the confirmatory dataset and block design, how does the paired detection procedure behave when fewer observations per OpenSSL version and block are analyzed?

    Small timing effects can require repeated observations before they become statistically distinguishable. The secondary exploratory analysis reused the completed confirmatory dataset at several reduced sample sizes while preserving the original hit classifications and paired block structure. This shows how the procedure behaves when less data is retained within this dataset rather than estimating a universal minimum number of signatures for other environments.

The primary confirmatory analysis and secondary exploratory analysis were kept separate. The primary analysis followed a plan frozen before confirmatory collection began. The sample-size analysis was specified afterward and is therefore treated as an exploratory sensitivity analysis rather than as an additional independent confirmation.

The experimental scope was limited to instrumented ECDSA signing with NIST P-521 using OpenSSL 3.4.0 and 3.4.1 in one ARM64 Linux virtual machine. Full-signature timing was recorded as a secondary measurement, while the primary analysis used the localized timing measurement provided by the source-level instrumentation. Private-key recovery, uninstrumented external interfaces, and network measurements were not part of the experiment.

The experiment also did not include deliberately introduced CPU load, native macOS execution, other hypervisors, additional processor architectures, other elliptic curves, or other OpenSSL configurations. The results therefore represent one controlled empirical data point rather than a general claim about all systems or deployment environments.

Within this scope, the study identifies where the reported condition produces measurable timing behavior, compares that behavior with the patched release, and examines how the paired procedure behaves when fewer observations are retained.

6. Methodology

6.1 Study Design

This study used instrumented measurements to test whether the nonce-related condition described in CVE-2024-13176 produced distinguishable timing behavior during ECDSA signing. OpenSSL 3.4.0 served as the vulnerable implementation and OpenSSL 3.4.1 as the patched comparison. Both versions were built from source and tested with the same elliptic curve, Linux guest environment, measurement harness, and collection procedure.

Source-level instrumentation classified each signing operation according to the nonce-related condition described by the advisory. The probe recorded the Boolean classification along with the bit length, classification threshold, call count, and timing measurements used in the analysis. It did not record the nonce, private key, or complete intermediate values. Timing was collected at three levels of the signing path: the complete ECDSA signing operation, the nonce-inversion operation, and the downstream Montgomery multiplication that consumes the inverted nonce value. These three timing levels allowed the analysis to separate a localized internal effect from broader variation in full-signature timing.

The experimental work was conducted in two stages. An exploratory development stage validated the harness and classification logic and examined several possible timing boundaries. These runs identified the downstream multiplication as the primary measurement point. Since the instrumentation and analysis decisions were still being developed, the runs remained exploratory.

Once the instrumentation, collection procedure, and primary analysis criteria were finalized, the confirmatory experiment was conducted using the analysis plan specified before collection. The confirmatory dataset consisted of 30 interleaved blocks. Each block contained 10,000 signing observations from OpenSSL 3.4.0 and 10,000 from OpenSSL 3.4.1, producing 300,000 observations per version and 600,000 observations in total. The version measured first alternated between successive blocks, so each version appeared first in 15 blocks. Corresponding vulnerable and patched runs within the same block were treated as a paired experimental unit, reducing sensitivity to gradual system drift and persistent ordering effects.

The primary analysis plan designated the downstream Montgomery multiplication timing as the primary field and defined the block-level hit-versus-non-hit comparison within each OpenSSL version, followed by a paired comparison of the resulting block effects. Full-signature and nonce-inversion timing remained secondary measurements throughout the confirmatory analysis.

After the confirmatory analysis, the completed dataset was reused for a secondary sample-size sensitivity analysis to examine how the primary detection procedure behaved when fewer observations per version and block were retained. Because this analysis was specified after collection, it is reported as exploratory.

6.2 Test Environment

All measurements were collected in an Ubuntu Server 24.04.4 LTS ARM64 virtual machine running in VMware Fusion on a consumer Apple Silicon laptop host. The virtual machine was assigned four virtual CPU cores and 8 GB of memory. It used the server installation without a graphical desktop environment, keeping the guest configuration simple and reducing desktop background activity during collection.

The guest used GCC 13.3.0 and GNU Make 4.3. OpenSSL 3.4.0 and 3.4.1 were built from source in separate installation directories using the same general build procedure. Both instrumented builds identified their platform as linux-aarch64, used 64-bit BIGNUM words through the bn(64,64) configuration, and were compiled with the same build options, including -O3 and NDEBUG. Separate build and installation directories kept each harness linked to its intended OpenSSL build rather than the Ubuntu system library or the other tested version.

All measurements were performed locally within the Linux guest. The harness and internal instrumentation used clock_gettime with CLOCK_MONOTONIC_RAW to record elapsed times in nanoseconds. This clock is monotonic and is not affected by changes to the system wall clock. The same timing source was used for the complete signing operation and the narrower instrumented operations, with each timer surrounding a different part of the signing path. Section 6.4 describes the exact timing boundaries.

6.3 Target Operation and Curve Selection

The experiment targeted ECDSA signature generation because CVE-2024-13176 affects OpenSSL’s ECDSA signing computation [4], [5]. The OpenSSL advisory reports an approximately 300-nanosecond timing signal when the top word of the inverted ECDSA nonce value is zero [4]. It also explains that this condition occurs with significant probability only for some supported curves and specifically identifies NIST P-521 as affected [4].

All experimental measurements therefore used NIST P-521. The same curve was used for OpenSSL 3.4.0 and OpenSSL 3.4.1, keeping curve selection fixed across the vulnerable and patched measurements. Focusing the collection on P-521 also increased the likelihood of obtaining enough observations associated with the nonce-related condition for block-level statistical analysis. No additional elliptic curves were tested, so the measured effects are specific to P-521 in the tested environment.

6.4 Timing Collection Method

A C measurement harness was compiled separately against the instrumented OpenSSL 3.4.0 and OpenSSL 3.4.1 builds. After initializing its P-521 signing context, each harness process performed a short warm-up sequence and then repeatedly called ECDSA_do_sign for the requested number of recorded iterations. The probe state was reset before every recorded signature, keeping the timing and classification metadata tied to a single signing operation.

Using CLOCK_MONOTONIC_RAW, the harness recorded the duration of the complete ECDSA_do_sign call as sign_ns. The OpenSSL instrumentation recorded two narrower measurements. The op_ns field covered the nonce-inversion operation, while kinv_mul_ns covered the downstream BN_mod_mul_montgomery call that consumes the previously computed inverse through ckinv. These three timing fields allowed the analysis to compare complete signing time with the broader inversion operation and the localized downstream multiplication.

The source-level probe also classified each signing operation according to the nonce-related condition. For P-521, the instrumentation recorded the bit length associated with the inversion result and compared it with a 512-bit threshold. An observation was labeled as a hit when the recorded bit length was at or below this threshold. The probe also recorded the number of relevant inversion calls made during the signature. These fields allowed the classification to be validated without storing the nonce or the full intermediate BIGNUM value.

Each CSV row contained the sample index, sign_ns, op_ns, kinv_mul_ns, the Boolean hit classification, the call count, the recorded bit length, and the classification threshold. The harness retrieved these values after the timed signing operation had completed, so CSV output occurred outside the internal timing boundaries. The collection script ran the 30 interleaved blocks described in Section 6.1, alternating which OpenSSL version was measured first and producing 60 separate measurement CSV files. It also recorded the run order, start and completion times, output paths, environment information, and hashes of the relevant source files and binaries.

Automated structural checks were applied before statistical analysis. They verified the required columns and expected row counts, confirmed that the hit classification was binary, required one relevant classification call per observation, and checked that the P-521 threshold was 512 bits. The checks also required op_ns to be no greater than sign_ns and kinv_mul_ns to be no greater than op_ns. Zero-duration kinv_mul_ns values were allowed because sufficiently short calls could receive the same timestamp at both timer reads.

6.5 Measurement Conditions and Noise Handling

The confirmatory experiment used a single controlled local baseline within the ARM64 Linux virtual machine. No synthetic CPU load, interactive host use, native macOS comparison, loopback measurement, or network timing condition was included. Nonessential host applications were closed and the host was kept awake throughout collection.

Even under this baseline, guest and host scheduling, cache state, virtualization, and host processor behavior could influence individual timing observations. These factors remained part of the tested virtualized environment rather than being controlled as separate experimental variables. The collection therefore represents a controlled virtualized baseline rather than noise-free execution.

The block structure and collection order reduced sensitivity to gradual variation during the run. OpenSSL 3.4.0 and 3.4.1 were measured in corresponding block pairs, with the version measured first alternating between successive blocks. The analysis then used within-block hit-versus-non-hit effects and paired vulnerable-versus-patched contrasts, reducing the influence of slow drift and persistent ordering effects.

Individual observations were not removed solely because their timing values appeared unusually high or low. Quality control instead focused on dataset completeness, required metadata, valid classifications, and internal timing consistency. Block-level medians further reduced the influence of isolated extreme values without requiring a separate cutoff for timing outliers.

6.6 Statistical Analysis

The confirmatory analysis treated the interleaved blocks as the primary experimental units rather than treating all individual timing observations as independent. For each timing field and OpenSSL version, observations within a block were separated into hit and non-hit classes using the classification recorded by the instrumentation. The condition-dependent effect for that block was calculated as the median timing of the hit observations minus the median timing of the non-hit observations. A block effect was usable only when both classes were present and the file passed the structural checks described in Section 6.4.

The primary analysis used kinv_mul_ns, which measured the downstream Montgomery multiplication that consumed ckinv. The same block-level calculation was also applied to op_ns and sign_ns, but those fields remained secondary measurements. Medians were used because the timing distributions contained occasional extreme observations and were not assumed to follow a normal distribution. Using medians reduced the influence of isolated large values without requiring a separate rule for removing outliers.

Corresponding OpenSSL 3.4.0 and OpenSSL 3.4.1 blocks were then compared as pairs. For each pair, the OpenSSL 3.4.1 block effect was subtracted from the OpenSSL 3.4.0 block effect. A positive paired contrast therefore indicated a larger condition-dependent timing effect in the vulnerable version. The primary effect estimate was the median of these paired contrasts, while the mean and numbers of positive, negative, and zero contrasts were reported as descriptive summaries.

An exact two-sided sign test evaluated whether the nonzero paired contrasts were equally likely to be positive or negative. Zero contrasts were reported but were not counted as either sign. A 95 percent confidence interval for the median paired contrast was estimated by resampling the paired blocks with replacement [10]. The bootstrap used 20,000 repetitions and a fixed random seed of 20260724 so that the result could be reproduced.

The confirmatory criteria specified before collection required a positive median paired contrast, a 95 percent bootstrap confidence interval that excluded zero on the positive side, and an exact two-sided sign-test result below 0.05. All three criteria had to be met jointly, and no alternative timing field could replace the primary field after the confirmatory dataset was collected.

The analysis also calculated pooled hit and non-hit summaries for each OpenSSL version and timing field, including counts, medians, means, timing ranges, and descriptive area under the receiver operating characteristic curve (AUC). In this context, AUC describes how often a randomly selected hit observation has a greater timing value than a randomly selected non-hit observation, with ties receiving partial credit. These pooled summaries described distributional separation but were not part of the confirmatory decision criteria, since pooling observations can hide differences among collection blocks.

A secondary sample-size sensitivity analysis was performed after the confirmatory analysis. It evaluated target sizes of 500, 1,000, 2,000, 5,000, and 10,000 observations per OpenSSL version and block. For each of 500 Monte Carlo repetitions, observations were sampled uniformly without replacement within every version and block. For reproducibility, the Monte Carlo sampling used 20260725 as a fixed seed, chosen to match the date of the analysis. Samples at the smaller target sizes were nested within the larger samples from the same repetition, while the original hit classifications and vulnerable-versus-patched block pairing were preserved.

The primary block-level and paired analysis procedure was repeated at each target size. A block pair was usable only when both OpenSSL versions contained at least one hit and one non-hit observation. The sensitivity analysis recorded the number of usable block pairs, the median paired contrast, and the exact sign-test result. The exploratory joint criterion required a positive median paired contrast and a sign-test result below 0.05. Results across the 500 repetitions were summarized using medians, fifth and ninety-fifth percentiles, and the proportion of repetitions meeting the criterion.

Because the sample-size analysis reused the confirmatory observations and was specified after collection, it is treated as an exploratory sensitivity analysis. Its results describe how the completed dataset behaved when fewer observations were retained rather than establishing a general minimum sample requirement.

6.7 Vulnerable and Patched Comparison

OpenSSL 3.4.0 served as the vulnerable implementation, while OpenSSL 3.4.1 served as the patched comparison. The OpenSSL advisory identifies 3.4.1 as the fixed release for the 3.4 branch, and the associated public fix is commit 77c608f4, titled “Fix timing side-channel in ECDSA signature computation” [4], [9]. Both releases were built from source in separate installation directories using the same compiler, general build configuration, P-521 curve, virtual machine, and collection procedure.

The source-level probe used the same classification rule, timing source, and measurement boundaries in both versions. In particular, the downstream timing wrapper surrounded the same BN_mod_mul_montgomery operation that consumed ckinv. Keeping these measurement details fixed allowed the comparison to focus on the same condition and location in the signing path. The two versions were collected in alternating order and analyzed as corresponding block pairs.

The comparison focused on the condition-dependent effect within each version rather than on overall signing speed. For each block, the median non-hit timing was subtracted from the median hit timing. The resulting OpenSSL 3.4.0 effect was then compared with the corresponding OpenSSL 3.4.1 effect. This reduced the influence of general performance differences between the releases that were unrelated to the nonce condition.

OpenSSL 3.4.0 and 3.4.1 are complete releases rather than source snapshots differing only by commit 77c608f4, so other software changes may also be present between them. The comparison therefore evaluates how the reported condition-dependent behavior changes in the release containing the public fix rather than isolating the causal effect of that commit alone.

6.8 Reproducibility

OpenSSL build materials, measurement harnesses, raw data, analysis results, research notes, and scripts were organized into separate directories. Raw confirmatory measurements were preserved separately from derived tables and figures, allowing the statistical analysis to be repeated without collecting the timing data again.

The confirmatory runset retained the 60 measurement CSV files produced by the 30 interleaved block pairs. It also retained the run configuration, version order, collection log, environment information, source and binary hashes, analysis reports, and a manifest of the files included in the run package. SHA-256 manifests were also generated for later analysis outputs, scripts, figures, and archival packages.

The instrumented OpenSSL builds can be reconstructed from the OpenSSL versions, hashes of the source archives, build commands, and documented source changes used for instrumentation. The repository includes the measurement harness source, instrumentation patches and source differences, collection and quality control scripts, confirmatory analysis code, and scripts used to generate figures. It also includes the frozen confirmatory analysis plan and the later sample-size sensitivity plan, preserving the distinction between decisions made before confirmatory collection and analyses added afterward.

The reproducibility materials include the raw confirmatory data, derived tables of block effects and paired contrasts, statistical reports, and final figures. These materials are distributed with the repository rather than reproduced in full within the paper. An archival analysis package was also transferred to a separate host, where its recorded SHA-256 digest was verified again after transfer.

The repository provides the readable documentation, source materials, raw confirmatory data, and analysis files used for reproducibility. A separate archival record preserves a fixed copy of the report and reproducibility package. The repository documentation describes the required environment, data layout, analysis commands, and expected outputs.

Rerunning the preserved analysis should reproduce the recorded statistical outputs. Collecting new measurements on different hardware or virtualization platforms is a separate replication task, and exact nanosecond values may differ. A replication would instead examine whether the same condition can be classified, whether the localized timing effect has a comparable direction and structure, and whether the patched release reduces or removes that effect.

7. Results

The results are presented in the same order as the completed analysis. The confirmatory dataset and primary downstream timing results are reported first, followed by the paired vulnerable-versus-patched comparison and the secondary nonce-inversion and full-signature measurements. The section ends with the post-confirmatory sample-size sensitivity analysis. Results from the earlier exploratory development runs remain separate from the confirmatory dataset.

7.1 Confirmatory Dataset and Classification

The confirmatory collection produced all 60 expected measurement files, and each passed the structural quality control checks. All 30 interleaved block pairs contained both hit and non-hit observations for OpenSSL 3.4.0 and OpenSSL 3.4.1, so no pairs were omitted from the confirmatory analysis. The final dataset contained 600,000 observations, divided equally between the two OpenSSL versions.

Table 1. Confirmatory dataset and classification counts
OpenSSL version Observations Hits Non-hits Hit rate Usable blocks
3.4.0 300,000 581 299,419 0.1937% 30 of 30
3.4.1 300,000 556 299,444 0.1853% 30 of 30

The classified condition was rare in both versions, averaging approximately 19.4 hit observations per 10,000-observation block in OpenSSL 3.4.0 and 18.5 in OpenSSL 3.4.1. The similar hit counts gave the paired analysis comparable numbers of classified observations from each release.

7.2 Primary Within-Version Timing Effects

The primary analysis examined kinv_mul_ns, which measured the downstream Montgomery multiplication consuming ckinv. Within each block and OpenSSL version, the condition-dependent effect was calculated as the median timing among hit observations minus the median timing among non-hit observations.

OpenSSL 3.4.0 showed a positive condition-dependent effect in every confirmatory block. The pooled non-hit observations had a median timing of 83 nanoseconds, while the pooled hit observations had a median of 208 nanoseconds. This produced a pooled median difference of 125 nanoseconds. Across the 30 blocks, the median block effect was also 125 nanoseconds, with a mean of 122.9 nanoseconds and a range from 84 to 125 nanoseconds. All 30 block effects were positive.

OpenSSL 3.4.1 showed essentially no corresponding within-version effect. The pooled hit and non-hit observations both had median timings of 83 nanoseconds, producing a pooled median difference of zero. The median block effect was also zero. Twenty-nine blocks had an effect of exactly zero, and the remaining block had an effect of 0.5 nanoseconds. No block had a negative effect.

Table 2. Primary within-version timing results
OpenSSL version Non-hit median Hit median Median block effect Block effect range Positive / negative / zero Descriptive AUC
3.4.0 83 ns 208 ns 125 ns 84–125 ns 30 / 0 / 0 0.9999
3.4.1 83 ns 83 ns 0 ns 0–0.5 ns 1 / 0 / 29 0.5076

The descriptive AUC for OpenSSL 3.4.0 was 0.9999, indicating near-complete pooled rank discrimination between hit and non-hit observations. A small number of timing values were shared between the two classes, and rare non-hit observations extended into the hit timing range, so the AUC reflects very strong rank ordering rather than perfect sample-by-sample separation.

By comparison, the OpenSSL 3.4.1 AUC was 0.5076, close to the 0.5 value expected when the two classes have little useful rank separation. The within-version results show that the classified condition was consistently associated with increased downstream multiplication timing in OpenSSL 3.4.0, while the corresponding effect was essentially absent in OpenSSL 3.4.1.

Within-version median timing effects across 30 blocks, with OpenSSL 3.4.0 consistently above OpenSSL 3.4.1.
Figure 1. Within-version hit-versus-non-hit median effects for the downstream kinv_mul_ns measurement across 30 interleaved blocks. Each point represents the median timing among hit observations minus the median timing among non-hit observations within one block. OpenSSL 3.4.0 showed a positive effect in all 30 blocks, while OpenSSL 3.4.1 showed zero effect in 29 blocks and a 0.5-nanosecond effect in one block.

7.3 Paired Vulnerable and Patched Comparison

The primary confirmatory comparison paired the OpenSSL 3.4.0 and OpenSSL 3.4.1 effects from corresponding interleaved blocks. For each pair, the OpenSSL 3.4.1 block effect was subtracted from the OpenSSL 3.4.0 block effect. A positive contrast therefore indicated that the nonce-related condition was associated with a larger downstream timing effect in the vulnerable release.

All 30 paired contrasts were positive. The median paired contrast was 125 nanoseconds, and the mean was 122.9 nanoseconds. Individual contrasts ranged from 84 to 125 nanoseconds. No paired contrast was negative or zero. The positive direction was consistent across all 30 collection blocks.

The paired-block bootstrap produced a 95 percent confidence interval of 125 to 125 nanoseconds for the median contrast. The narrow interval reflects the concentration of the observed contrasts at 125 nanoseconds.

The exact two-sided sign test produced a result of p = 1.86265 × 10−9. The observed median contrast was positive, the bootstrap interval excluded zero on the positive side, and the sign-test result was below 0.05. The three prospectively specified confirmatory criteria were therefore satisfied jointly.

The paired results show the same pattern as the within-version analysis, with a consistently larger condition-dependent effect in OpenSSL 3.4.0 than in OpenSSL 3.4.1.

Paired vulnerable-versus-patched timing contrasts across 30 blocks, with all contrasts positive.
Figure 2. Paired vulnerable-versus-patched contrasts for the primary kinv_mul_ns measurement across 30 interleaved block pairs. Each point represents the OpenSSL 3.4.0 within-block effect minus the corresponding OpenSSL 3.4.1 effect. All 30 contrasts were positive, with a median of 125 nanoseconds and a range from 84 to 125 nanoseconds.

7.4 Secondary Timing Measurements

The hit-versus-non-hit block analysis was also applied to op_ns and sign_ns. These measurements covered broader portions of the signing path than the primary kinv_mul_ns field. They remained secondary measurements throughout the confirmatory analysis.

For op_ns, OpenSSL 3.4.0 had a median block effect of 52.2 nanoseconds. Twenty blocks had positive effects, nine had negative effects, and one had an effect of zero. The effects ranged from −3,291 to 354.5 nanoseconds, and the exact two-sided sign-test result was 0.0614. OpenSSL 3.4.1 had a median block effect of −11 nanoseconds, with nine positive, eighteen negative, and three zero effects. Its sign-test result was 0.1221. The descriptive AUC values were 0.5209 for OpenSSL 3.4.0 and 0.4862 for OpenSSL 3.4.1.

For the full-signature measurement, OpenSSL 3.4.0 had a median block effect of 3,958.2 nanoseconds. Twenty effects were positive and ten were negative, with values ranging from −41,959 to 21,833 nanoseconds. The sign-test result was 0.0987. OpenSSL 3.4.1 had a median block effect of 229 nanoseconds, with seventeen positive and thirteen negative effects. Its values ranged from −3,959 to 5,500 nanoseconds, and its sign-test result was 0.5847. The descriptive AUC values were 0.5191 and 0.4864 for OpenSSL 3.4.0 and 3.4.1, respectively.

Table 3. Secondary within-version timing results
Measurement OpenSSL 3.4.0 median block effect OpenSSL 3.4.1 median block effect 3.4.0 sign-test result 3.4.1 sign-test result
op_ns 52.2 ns −11 ns 0.0614 0.1221
sign_ns 3,958.2 ns 229 ns 0.0987 0.5847

Neither secondary timing field produced a within-version sign-test result below 0.05 in either OpenSSL release. Their block effects also varied substantially in direction and magnitude, and their pooled AUC values remained close to 0.5. The broader measurements therefore did not show the stable condition-dependent separation observed in kinv_mul_ns.

7.5 Sample-Size Sensitivity

The exploratory sample-size sensitivity analysis examined how the primary paired procedure behaved when fewer observations from the confirmatory dataset were retained. Target sizes of 500, 1,000, 2,000, 5,000, and 10,000 observations per OpenSSL version and block were evaluated across 500 Monte Carlo repetitions.

At 500 observations per version and block, the median number of usable block pairs was 11, with 5th and 95th percentiles of 7 and 16. The median paired contrast across repetitions was 124.5 nanoseconds, with 5th and 95th percentiles of 103.5 and 125 nanoseconds. Every repetition produced a positive median contrast, and 99.6 percent also produced an exact sign-test result below 0.05, so 99.6 percent met the exploratory joint criterion.

Increasing the target to 1,000 observations raised the median number of usable block pairs to 22, with 5th and 95th percentiles of 18 and 25. The median paired contrast remained 124.5 nanoseconds, with 5th and 95th percentiles of 104.5 and 125 nanoseconds. All 500 repetitions met the joint criterion.

At 2,000 observations per version and block, the median number of usable block pairs was 29, with 5th and 95th percentiles of 27 and 30. The median paired contrast was 124.5 nanoseconds, with 5th and 95th percentiles of 124 and 125 nanoseconds. All repetitions again met the joint criterion. At both 5,000 and 10,000 observations, every repetition retained all 30 block pairs and produced a median paired contrast of 125 nanoseconds.

Table 4. Exploratory sample-size sensitivity results
Samples per OpenSSL version per block Usable block pairs, 5th / median / 95th percentile Median paired contrast, 5th / median / 95th percentile Repetitions meeting joint criterion
500 7 / 11 / 16 103.5 / 124.5 / 125 ns 99.6%
1,000 18 / 22 / 25 104.5 / 124.5 / 125 ns 100%
2,000 27 / 29 / 30 124 / 124.5 / 125 ns 100%
5,000 30 / 30 / 30 125 / 125 / 125 ns 100%
10,000 30 / 30 / 30 125 / 125 / 125 ns 100%

The target size refers to observations retained for each OpenSSL version within each of the 30 blocks. The 500-observation setting therefore retained 15,000 observations per version across the experiment, or 30,000 observations in total. The 500 value is therefore a per-version, per-block target rather than the total number of observations in the analysis.

The reduction in usable block pairs at the smaller target sizes resulted from the rarity of the classified condition. A paired comparison could not be calculated when the retained sample for either OpenSSL version lacked a hit observation in that block. Even so, the median paired contrast remained positive in every repetition, and the joint criterion was met in 99.6 percent of repetitions at the smallest evaluated target.

These findings show that the paired contrast remained detectable when substantially fewer observations from the completed dataset were retained. Because the analysis reused the confirmatory observations and was designed after collection, it describes the sensitivity of this dataset and procedure rather than a general minimum sample requirement. The sampling procedure is described in Section 6.6.

Usable block pairs increase as more observations per OpenSSL version and block are retained, reaching all 30 pairs at larger sample sizes.
Figure 3. Number of usable block pairs in the exploratory sample-size sensitivity analysis. Each target size was evaluated across 500 Monte Carlo repetitions. The points show the median number of usable block pairs out of 30, with error bars spanning the 5th to 95th percentiles. The annotations show the percentage of repetitions meeting the joint criterion of a positive median paired contrast and an exact sign-test result below 0.05.

8. Discussion

8.1 Interpretation of the Primary Finding

The primary research question asked whether the nonce-related condition was associated with statistically distinguishable timing behavior in OpenSSL 3.4.0 under the tested ARM64 virtualized Linux environment. The confirmatory results show a statistically distinguishable effect at the localized kinv_mul_ns measurement boundary. OpenSSL 3.4.0 showed a positive hit-versus-non-hit effect in every confirmatory block, while the corresponding effect in OpenSSL 3.4.1 was zero in 29 of the 30 blocks.

Each block was analyzed independently before the vulnerable and patched effects were paired. All 30 paired contrasts were positive, and the three criteria specified before confirmatory collection were satisfied jointly. This repeated pattern across block pairs shows that the primary finding was consistent throughout the confirmatory collection.

The median vulnerable-versus-patched contrast was 125 nanoseconds. The approximately 300-nanosecond signal described by the OpenSSL advisory and the 125-nanosecond contrast measured here refer to different timing measurements [4]. The advisory summarizes the reported timing behavior of the vulnerability, while this experiment measured one specific downstream multiplication on a different architecture and within a virtualized environment. The timing boundary, clock behavior, compiler output, processor architecture, and block-level effect calculation can all influence the measured magnitude.

The vulnerable build’s descriptive AUC of 0.9999 showed near-complete pooled rank discrimination. Some timing values overlapped between the two classes, and rare non-hit observations extended into the hit range, so the result reflects highly consistent separation at the selected internal boundary rather than perfect classification of every individual observation.

8.2 Localization of the Timing Behavior

The clearest condition-dependent effect appeared in the downstream Montgomery multiplication consuming ckinv. The broader op_ns and sign_ns measurements did not show similarly stable hit-versus-non-hit separation. Their block effects varied in direction and magnitude, their sign-test results remained above 0.05, and their descriptive AUC values were close to 0.5.

This contrast across timing boundaries suggests that the measurable effect was localized within a narrow part of the ECDSA signing path. The multiplication represented only a small portion of the nonce-inversion interval and an even smaller portion of the complete signing operation. As the measurement boundary widened, variation from surrounding arithmetic, memory behavior, scheduling, virtualization, and other execution costs could make the localized difference harder to distinguish.

Source-level instrumentation made this localization possible by connecting each signing operation with its classification and timing the specific downstream multiplication. The same stable separation was not detected in the broader full-signature measurement. An ordinary uninstrumented signing interface would also not provide the internal classification or direct timing at the selected boundary, so the strongest evidence from this experiment concerns localized internal detectability.

8.3 Meaning of the Patched Comparison

OpenSSL 3.4.1 showed essentially no corresponding condition-dependent effect at the primary measurement boundary. Its hit and non-hit observations had the same pooled median, its median block effect was zero, and its descriptive AUC remained near chance. This behavior contrasts sharply with the consistent positive effects observed in OpenSSL 3.4.0.

The vulnerable-versus-patched pattern is consistent with the OpenSSL advisory and the public fix for CVE-2024-13176 [4], [9]. The same classification logic and timing boundary were applied to both versions, and their measurements were collected in alternating order within paired blocks. Since the comparison used the condition-dependent effect within each release rather than overall signing speed, the observed difference aligns closely with the behavior described for the vulnerability.

OpenSSL 3.4.0 and 3.4.1 are complete releases and may differ in ways beyond the individual security fix. The comparison therefore supports a release-level vulnerable-versus-patched interpretation rather than isolating the causal effect of commit 77c608f4 alone.

8.4 Sample-Size Sensitivity

The exploratory sample-size sensitivity analysis showed that the paired procedure remained stable after substantial subsampling of the confirmatory dataset. At 500 observations per version and block, the median repetition retained 11 of the 30 possible block pairs, and 99.6 percent of repetitions met the exploratory joint criterion. At 1,000 or more observations per version and block, every repetition met that criterion.

The reduction in usable block pairs at smaller target sizes followed from the rarity of the classified condition. A paired block required at least one hit and one non-hit observation for each OpenSSL version. When the retained sample for either OpenSSL version lacked a hit observation in that block, the pair could not contribute to the analysis. Larger samples made it more likely that both classes were retained, which explains the rapid increase in usable block pairs as the target size increased.

Each target size was applied separately to both OpenSSL versions within all 30 blocks. The smallest setting therefore represented 15,000 observations per version and 30,000 observations overall, rather than 500 observations across the entire analysis.

These findings indicate that the primary paired contrast was robust when substantially less of the completed dataset was retained. Because the sensitivity analysis reused the confirmatory observations and was added after collection, the results describe the behavior of this dataset and block design rather than a general detection threshold. Different hit rates, timer behavior, hardware, environmental noise, or block structures could produce different sample requirements.

8.5 Practical Security Implications

The experiment shows that the reported nonce-related condition has a repeatable localized timing effect under the tested internal measurement setup. The effect was clear at the downstream multiplication in OpenSSL 3.4.0 and substantially reduced in OpenSSL 3.4.1. This provides empirical evidence of the implementation-level behavior described for CVE-2024-13176.

Practical exploitation would require additional steps beyond detecting this internal timing difference. An attacker would need to observe useful timing information through a broader interface, extract useful nonce-related information from those observations, collect enough signatures, and convert the resulting leakage into private-key recovery [3]. The broader full-signature measurements in this experiment were much noisier, and no uninstrumented API or network measurements were collected.

These results address only one part of the broader security assessment. OpenSSL rates the issue as Low because measuring the timing signal requires either local access to the signing application or a very fast network connection with low latency [4]. Within that larger picture, this study contributes a controlled measurement of the underlying localized timing behavior and its change in the patched release. External observability, practical key recovery, and behavior on other systems remain questions for further study.

9. Limitations and Threats to Validity

9.1 Platform and Environmental Scope

The experiment represents one empirical result from a single ARM64 Linux virtual machine running on one consumer host. Timing behavior may differ on other ARM64 processors, x86-64 systems, native Linux installations, cloud systems, or different virtualization platforms. The measured effect magnitude should therefore not be assumed to transfer directly to another environment.

The confirmatory dataset was collected during one continuous collection session. Dividing the run into 30 interleaved blocks and alternating which OpenSSL version was measured first reduced sensitivity to gradual drift and persistent ordering effects. However, the experiment did not measure variation across different days, host reboots, guest restarts, or independent collection sessions. Repeating the collection in separate sessions would provide stronger evidence about how stable the measured effect is over time.

The virtualized environment was controlled but not noise-free. Host and guest scheduling, placement on physical processor cores, cache state, processor-frequency behavior, and virtualization could still influence individual timing measurements. The study also did not collect separate datasets under deliberate CPU load, interactive host use, native macOS execution, loopback communication, local-area networking, or remote networking. As a result, the experiment does not show how the localized timing distinction changes as additional environmental or communication noise is introduced.

9.2 Instrumentation and Timing Measurement

Source-level instrumentation was required to classify the nonce-related condition and measure the downstream multiplication directly. The added probe state, classification logic, function calls, and timer reads may have affected instruction layout, cache behavior, compiler decisions, or operation timing. The same general instrumentation was applied to both OpenSSL versions, which helps keep instrumentation-related effects comparable, although the absolute timings may differ from an unmodified build.

The timing wrapper surrounded the individual BN_mod_mul_montgomery call that consumed ckinv. This boundary was intentionally narrow and was selected before the confirmatory collection. It allowed the localized effect to be measured directly, but it is narrower than the timing available through an ordinary signing interface. An external observer would normally measure a broader API call and would not have access to the internal hit classification used by the analysis.

CLOCK_MONOTONIC_RAW reported elapsed times in nanoseconds, but using nanoseconds as the unit does not imply an effective timer resolution of one nanosecond. Timer overhead and quantization were visible in the concentration of primary measurements at repeated values. The repeated 125-nanosecond block effects and the bootstrap interval of 125 to 125 nanoseconds therefore reflect the timer and analysis procedure used in this environment rather than physical precision to the nearest nanosecond.

The saved dataset contains the classification, bit length, threshold, and call count, but not the nonce or complete intermediate BIGNUM values. These fields were sufficient for structural validation, but the complete intermediate values cannot be reconstructed from the CSV files after collection. Rechecking the classification from those intermediate values would require rebuilding and rerunning the instrumented implementation.

9.3 Software, Curve, and Workload Scope

The software comparison was limited to OpenSSL 3.4.0 and OpenSSL 3.4.1. Other affected OpenSSL branches, earlier releases, later patched releases, and alternative cryptographic libraries were not evaluated. The findings therefore apply to the tested release pair rather than every software version associated with CVE-2024-13176.

OpenSSL 3.4.0 and 3.4.1 are complete releases rather than two source trees differing only by the security patch. Unrelated software changes may therefore contribute to differences between them. The shared classification rule, timing boundary, and general build procedure kept the measurements comparable, but the design does not isolate commit 77c608f4 as the sole cause of the observed difference.

All measurements used NIST P-521 because the reported condition occurs with sufficient probability on this curve to support repeated classification and block-level analysis. Other elliptic curves were not tested, so the presence or magnitude of a comparable timing effect on them remains unknown.

The harness used the low-level ECDSA_do_sign interface with a controlled signing workload. Higher-level EVP interfaces, provider and FIPS configurations, hardware acceleration, and application-specific wrappers were not tested. The experiment also did not vary application messages or usage patterns. These choices reduced experimental variation, but the resulting workload represents a controlled test harness rather than a complete production application.

The builds used one compiler version, one optimization configuration, and the Linux AArch64 OpenSSL build target. Different compiler versions, optimization levels, link options, assembly implementations, or debugging features could change instruction selection and timing behavior.

9.4 Statistical and Sampling Limitations

The nonce-related hit condition was rare, averaging about 19 hits per 10,000-observation block for each OpenSSL version. As a result, each block’s hit-class median was based on far fewer observations than its non-hit median. Although all 30 vulnerable blocks produced positive primary effects, individual block estimates can still be influenced by the relatively small number of hit observations in that block.

The confirmatory analysis treated the 30 paired blocks as its experimental units. The 600,000 timing rows provided the observations within those units but were not 600,000 independent experimental replications. The sign test and paired-block bootstrap therefore describe consistency across the 30 observed block pairs. Variation across separately collected sessions, machines, or other environments was not estimated by this dataset.

The 95 percent bootstrap interval was unusually narrow because most paired contrasts were concentrated at 125 nanoseconds and the timer produced a discrete measurement pattern. The interval reflects uncertainty from resampling the observed block pairs. It does not imply that the underlying physical effect is known exactly to 125 nanoseconds or that the same interval would apply on other hardware.

The sample-size sensitivity analysis reused the confirmatory dataset, so its 500 Monte Carlo repetitions were repeated subsamples of existing observations rather than independently collected experiments. The high rates of meeting the joint criterion therefore show robustness to retaining less data within this dataset and block design. At the smallest target, 500 observations were retained for each version within each of 30 blocks, for 30,000 observations in total. However, different block counts, hit rates, classification rules, or measurement environments could lead to different sample requirements.

9.5 Scope of the Security Conclusion

The study measured localized timing leakage but did not perform private-key recovery. It did not estimate nonce values, construct a lattice attack, quantify the information leaked by each observation, or determine how many signatures would be needed for key recovery.

The experiment also did not establish that the primary effect is visible through an uninstrumented signing interface. The broader op_ns and sign_ns measurements were substantially noisier, and no network measurements were collected. The evidence therefore supports localized internal detectability rather than a claim of practical local or remote exploitation.

OpenSSL’s Low severity rating reflects the difficulty of measuring the timing signal without local access or a very fast, low-latency network connection [4]. This study addresses one part of that broader security assessment rather than independently determining the overall severity.

10. Conclusion and Future Work

This study evaluated whether the nonce-related condition associated with CVE-2024-13176 produced statistically distinguishable timing behavior in OpenSSL 3.4.0 under one controlled ARM64 virtualized Linux environment. Source-level instrumentation classified the condition for each P-521 signature and measured the downstream Montgomery multiplication consuming ckinv. OpenSSL 3.4.1 was tested under the same procedure as the patched comparison.

The confirmatory dataset contained 600,000 observations divided equally between the two OpenSSL versions. At the primary kinv_mul_ns measurement boundary, OpenSSL 3.4.0 showed a positive hit-versus-non-hit effect in all 30 collection blocks, with a median block effect of 125 nanoseconds. OpenSSL 3.4.1 had a median block effect of zero, with zero effect in 29 of the 30 blocks. All 30 vulnerable-versus-patched contrasts were positive, and the prospectively specified confirmatory criteria were satisfied jointly.

The broader nonce-inversion and full-signature measurements did not show the same stable separation, indicating that the clearest measured behavior was localized to the downstream multiplication. The exploratory subsampling analysis also showed that the paired procedure remained stable when substantially fewer observations from the completed dataset were retained. At the smallest evaluated target, 99.6 percent of repetitions met the exploratory joint criterion. Since this analysis reused the confirmatory dataset, it describes sensitivity within this dataset and block design rather than a universal sample requirement.

Taken together, the results show that under the tested instrumented environment, the classified nonce-related condition was consistently associated with increased downstream multiplication timing in OpenSSL 3.4.0, while the corresponding effect was essentially absent in OpenSSL 3.4.1. The experiment therefore shows that the effect was detectable at the localized internal measurement point under the tested conditions. Visibility through an ordinary signing interface and practical private-key recovery remain open questions.

Future work should first repeat the confirmatory collection across independent sessions to examine how stable the measured effect is over time. Replication on other ARM64 and x86-64 systems would show how the result changes with processor architecture, virtualization, compiler output, and timer behavior. Testing source snapshots immediately before and after the public fix would also provide stronger causal isolation than comparing complete OpenSSL releases.

Another direction is to move the measurement boundary outward. Measurements through an uninstrumented low-level API, the higher-level EVP interface, native execution, and controlled background-load conditions could examine how much of the localized effect remains visible in broader operation timing. Loopback, local-network, and remote-network measurements would be most informative after visibility through an ordinary local interface has been established.

Additional work could examine other affected OpenSSL branches, later patched releases, alternative build configurations, and elliptic curves beyond P-521. A study of practical key recovery would require a substantially different experimental design connecting externally observable timing measurements with nonce-related information and cryptographic inference.

References

  1. P. C. Kocher, “Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems,” in Advances in Cryptology—CRYPTO ’96, N. Koblitz, Ed., Lecture Notes in Computer Science, vol. 1109. Berlin, Germany: Springer, 1996, pp. 104–113, doi: 10.1007/3-540-68697-5_9 .
  2. D. Brumley and D. Boneh, “Remote timing attacks are practical,” in Proc. 12th USENIX Security Symp. (USENIX Security ’03), Washington, DC, USA, Aug. 4–8, 2003, pp. 1–14. [Online]. Available: https://www.usenix.org/conference/12th-usenix-security-symposium/remote-timing-attacks-are-practical
  3. J. Jancar, V. Sedlacek, P. Svenda, and M. Sys, “Minerva: The curse of ECDSA nonces: Systematic analysis of lattice attacks on noisy leakage of bit-length of ECDSA nonces,” IACR Trans. Cryptogr. Hardw. Embedded Syst., vol. 2020, no. 4, pp. 281–308, Aug. 2020, doi: 10.13154/tches.v2020.i4.281-308 .
  4. OpenSSL Project, “Timing side-channel in ECDSA signature computation (CVE-2024-13176),” OpenSSL Security Advisory, Jan. 20, 2025. [Online]. Available: https://openssl-library.org/news/secadv/20250120.txt
  5. National Institute of Standards and Technology, “CVE-2024-13176 Detail,” National Vulnerability Database, Jan. 20, 2025. [Online]. Available: https://nvd.nist.gov/vuln/detail/CVE-2024-13176
  6. Digital Signature Standard (DSS), FIPS PUB 186-5, National Institute of Standards and Technology, Gaithersburg, MD, USA, Feb. 3, 2023, doi: 10.6028/NIST.FIPS.186-5 .
  7. T. Pornin, “Deterministic usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA),” RFC 6979, Aug. 2013, doi: 10.17487/RFC6979 .
  8. O. Reparaz, J. Balasch, and I. Verbauwhede, “Dude, is my code constant time?,” in Proc. Design, Automation & Test in Europe Conf. & Exhibition (DATE), Lausanne, Switzerland, Mar. 27–31, 2017, pp. 1697–1702, doi: 10.23919/DATE.2017.7927267 .
  9. T. Mraz, “Fix timing side-channel in ECDSA signature computation,” OpenSSL, commit 77c608f4c8857e63e98e66444e2e761c9627916f, Jan. 15, 2025. [Online]. Available: https://github.com/openssl/openssl/commit/77c608f4c8857e63e98e66444e2e761c9627916f
  10. B. Efron, “Bootstrap methods: Another look at the jackknife,” Ann. Statist., vol. 7, no. 1, pp. 1–26, Jan. 1979, doi: 10.1214/aos/1176344552 .