Skip to main content


Sliding right into disaster: left-to-right sliding windows leak


Daniel J. Bernstein, Joachim Breitner, Daniel Genkin, Leon Groot Bruinderink, Nadia Heninger, Tanja Lange, Christine van Vredendaal and Yuval Yarom

Eindhoven Technical University


University of Pennsylvania

University of Pennsylvania & University of Maryland


It is well known that constant-time implementations of modular exponentiation cannot use sliding windows. However, software libraries such as Libgcrypt, used by GnuPG, continue to use sliding windows. It is widely believed that, even if the complete pattern of squarings and multiplications is observed through a side-channel attack, the number of exponent bits leaked is not sufficient to carry out a full key-recovery attack against RSA. Specifically, 4-bit sliding windows leak only 40% of the bits, and 5-bit sliding windows leak only 33% of the bits. In this paper we demonstrate a complete break of RSA-1024 as implemented in Libgcrypt. Our attack makes essential use of the fact that Libgcrypt uses the left-to-right method for computing the sliding-window expansion. We show for the first time that the direction of the encoding matters: the pattern of squarings and multiplications in left-to-right sliding windows leaks significantly more information about the exponent than right-to-left. We show how to extend the Heninger-Shacham algorithm for partial key reconstruction to make use of this information and obtain a very efficient full key recovery for RSA-1024. For RSA-2048 our attack is efficient for 13% of keys

BibTeX Entry

    publisher        = {Springer},
    booktitle        = {CHES},
    author           = {Bernstein, Daniel J. and Breitner, Joachim and Genkin, Daniel and Groot Bruinderink, Leon and
                        Heninger, Nadia and Lange, Tanja and van Vredendaal, Christine and Yarom, Yuval},
    month            = sep,
    year             = {2017},
    date             = {2017-9-25},
    title            = {Sliding Right Into Disaster: Left-to-right sliding windows leak},
    pages            = {555-576},
    address          = {Taipei, Taiwan}


Served by Apache on Linux on seL4.