Paper 2020/728

Minerva: The curse of ECDSA nonces

Jan Jancar, Vladimir Sedlacek, Petr Svenda, and Marek Sys


We present our discovery of a group of side-channel vulnerabilities in implementations of the ECDSA signature algorithm in a widely used Atmel AT90SC FIPS 140-2 certified smartcard chip and five cryptographic libraries (libgcrypt, wolfSSL, MatrixSSL, SunEC/OpenJDK/Oracle JDK, Crypto++). Vulnerable implementations leak the bit-length of the scalar used in scalar multiplication via timing. Using leaked bit-length, we mount a lattice attack on a 256-bit curve, after observing enough signing operations. We propose two new methods to recover the full private key requiring just 500 signatures for simulated leakage data, 1200 for real cryptographic library data, and 2100 for smartcard data. The number of signatures needed for a successful attack depends on the chosen method and its parameters as well as on the noise profile, influenced by the type of leakage and used computation platform. We use the set of vulnerabilities reported in this paper, together with the recently published TPM-FAIL vulnerability as a basis for real-world benchmark datasets to systematically compare our newly proposed methods and all previously published applicable lattice-based key recovery methods. The resulting exhaustive comparison highlights the methods' sensitivity to its proper parametrization and demonstrates that our methods are more efficient in most cases. For the TPM-FAIL dataset, we decreased the number of required signatures from approximately 40 000 to mere 900.

Available format(s)
Public-key cryptography
Publication info
A minor revision of an IACR publication in TCHES 2020
digital signaturesECDSAHidden Number Problemside-channel attacklattice attacksmartcards
Contact author(s)
j08ny @ mail muni cz
vlada sedlacek @ mail muni cz
svenda @ fi muni cz
syso @ fi muni cz
2020-06-17: received
Short URL
Creative Commons Attribution


      author = {Jan Jancar and Vladimir Sedlacek and Petr Svenda and Marek Sys},
      title = {Minerva: The curse of ECDSA nonces},
      howpublished = {Cryptology ePrint Archive, Paper 2020/728},
      year = {2020},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.