Blind-Folded: Simple Power Analysis Attacks using Data with a Single Trace and no Training
DOI:
https://doi.org/10.46586/tches.v2025.i1.475-496Keywords:
Simple Power Attack, Modular Exponentiation, ECDSA, Constant-Time Implementation, Side-Channel AttacksAbstract
Side-Channel Attacks target the recovery of key material in cryptographic implementations by measuring physical quantities such as power consumption during the execution of a program. Simple Power Attacks consist in deducing secret information from a trace using a single or a few samples, as opposed to differential attacks which require many traces. Software cryptographic implementations usually contain a data-independent execution path, but often do not consider variations in power consumption associated to data. In this work, we show that a technique commonly used to select a value from different possible values in a control-independant way leads to significant power differences depending on the value selected. This difference is actually so important that a single sample can be considered for attacking one condition, and no training on other traces is required. We exploit this finding to propose a single-trace attack without any knowledge gained on previous executions, using trace folding. We target the two modular exponentiation implementations in Libgcrypt, getting respectively 100% and 99.998% correct bits in average on 30 executions using 2,048-bit exponents. We also use this technique to attack the scalar multiplication in ECDSA, successfully recovering all secret nonces on 1,000 executions. Finally, the insights we gained from this work allow us to show that a proposed countermeasure from the literature for performing the safe loading of precomputed operands in the context of windowed implementations can be attacked as well.
Downloads
Published
Issue
Section
License
Copyright (c) 2024 Xunyue Hu, Quentin L. Meunier, Emmanuelle Encrenaz
This work is licensed under a Creative Commons Attribution 4.0 International License.