Predicting secret keys via branch prediction


Creative Commons License

Acıiçmez O., Koç Ç. K., Seifert J.

Cryptographers Track at the RSA Conference, CT-RSA 2007, California, Amerika Birleşik Devletleri, 5 - 09 Şubat 2007, cilt.4377 LNCS, ss.225-242, (Tam Metin Bildiri) identifier

  • Yayın Türü: Bildiri / Tam Metin Bildiri
  • Cilt numarası: 4377 LNCS
  • Doi Numarası: 10.1007/11967668_15
  • Basıldığı Şehir: California
  • Basıldığı Ülke: Amerika Birleşik Devletleri
  • Sayfa Sayıları: ss.225-242
  • Anahtar Kelimeler: Branch prediction, Modular exponentiation, Montgomery multiplication, RSA, Side channel analysis, Simultaneous multithreading
  • Açık Arşiv Koleksiyonu: AVESİS Açık Erişim Koleksiyonu
  • İstanbul Ticaret Üniversitesi Adresli: Hayır

Özet

This paper announces a new software side-channel attack — enabled by the branch prediction capability common to all modern high-performance CPUs. The penalty paid (extra clock cycles) for a mispredicted branch can be used for cryptanalysis of cryptographic primitives that employ a data-dependent program flow. Analogous to the recently described cache-based side-channel attacks our attacks also allow an unprivileged process to attack other processes running in parallel on the same processor, despite sophisticated partitioning methods such as memory protection, sandboxing or even virtualization. In this paper, we will discuss several such attacks for the example of RSA, and experimentally show their applicability to real systems, such as OpenSSL and Linux. Moreover, we will also demonstrate the strength of the branch prediction side-channel attack by rendering the obvious countermeasure in this context (Montgomery Multiplication with dummy-reduction) as useless. Although the deeper consequences of the latter result make the task of writing an efficient and secure modular exponentiation (or scalar multiplication on an elliptic curve) a challenging task, we will eventually suggest some countermeasures to mitigate branch prediction side-channel attacks.