Paper 2020/891

Keep it Unsupervised: Horizontal Attacks Meet Deep Learning

Guilherme Perin, Lukasz Chmielewski, Lejla Batina, and Stjepan Picek


To mitigate side-channel attacks, real-world implementations of public-key cryptosystems adopt state-of-the-art countermeasures based on randomization of the private or ephemeral keys. Usually, for each private key operation, a "scalar blinding" is performed using 32 or 64 randomly generated bits. Nevertheless, horizontal attacks based on a single trace still pose serious threats to protected ECC or RSA implementations. If the secrets learned through a single-trace attack contain too many wrong (or noisy) bits, the cryptanalysis methods for recovering remaining bits become impractical due to time and computational constraints. This paper proposes a deep learning-based framework to iteratively correct partially correct secret keys resulting from a clustering-based horizontal attack. By testing the trained network on scalar multiplication (or exponentiation) traces, we demonstrate that a deep neural network can significantly reduce the number of error bits from randomized scalars (or exponents). When a simple horizontal attack can recover around 52% of private key bits, the proposed iterative framework improves the private key correctness to 100%. Our attack model remains fully unsupervised and excludes the need to know where the error or noisy bits are located in each separate randomized private key.

Available format(s)
Publication info
Preprint. MINOR revision.
Side-channel AnalysisPublic-key AlgorithmsHorizontal AttacksDeep Learning
Contact author(s)
guilhermeperin7 @ gmail com
lukchmiel @ gmail com
picek stjepan @ gmail com
lejla @ cs ru nl
2020-10-16: last of 2 revisions
2020-07-16: received
See all versions
Short URL
Creative Commons Attribution


      author = {Guilherme Perin and Lukasz Chmielewski and Lejla Batina and Stjepan Picek},
      title = {Keep it Unsupervised: Horizontal Attacks Meet Deep Learning},
      howpublished = {Cryptology ePrint Archive, Paper 2020/891},
      year = {2020},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.