Mitigate a flush+reload cache attack on RSA secret exponents.
authorWerner Koch <wk@gnupg.org>
Fri, 19 Jul 2013 11:49:23 +0000 (13:49 +0200)
committerWerner Koch <wk@gnupg.org>
Thu, 25 Jul 2013 08:37:40 +0000 (10:37 +0200)
commit35646689f4b80955ff7dbe1687bf2c479c53421e
tree8fa39983dfce06cda35011231194d82c3be89f41
parentfd86f3031161f11c3cbef643a213a04c821364dd
Mitigate a flush+reload cache attack on RSA secret exponents.

* mpi/mpi-pow.c (mpi_powm): Always perform the mpi_mul for exponents
hold in secure memory.
--

The attack is described in a paper to be pusblished at eprint.iacr.org:

Flush+Reload: a High Resolution, Low Noise, L3 Cache Side-Channel
Attack by Yuval Yarom and Katrina Falkner. 18 July 2013.

  Flush+Reload is a cache side-channel attack that monitors access to
  data in shared pages. In this paper we demonstrate how to use the
  attack to extract private encryption keys from GnuPG.  The high
  resolution and low noise of the Flush+Reload attack enables a spy
  program to recover over 98% of the bits of the private key in a
  single decryption or signing round. Unlike previous attacks, the
  attack targets the last level L3 cache. Consequently, the spy
  program and the victim do not need to share the execution core of
  the CPU. The attack is not limited to a traditional OS and can be
  used in a virtualised environment, where it can attack programs
  executing in a different VM.

Signed-off-by: Werner Koch <wk@gnupg.org>
NEWS
mpi/mpi-pow.c