Suppose that one performs (for example) AES-GCM encryption and decryption using an algorithm that is vulnerable to timing attacks, but each key is used only once. Is it still possible to perform a successful timing attack?

  • $\begingroup$ You ask about AES-GCM specifically but you use a theoretical "algorithm that is vulnerable to timing attacks". Can you clarify if you are more interested in AES-GCM or just timing attacks in general? $\endgroup$ – d1str0 Feb 24 '16 at 23:38
  • 2
    $\begingroup$ Every block uses the same key, so if you encrypt 1 message, with 1000 blocks, you can leak more than enough subkey material to recover the complete key $\endgroup$ – Richie Frame Feb 25 '16 at 0:54
  • $\begingroup$ @RichieFrame in AES-GCM, to be specific, each block is encrypted with a slightly different key because of the counter. Thus, if more than one block of plaintext are the same, they produce different cipher text blocks. So, really, the key isn't being used for each block directly. $\endgroup$ – d1str0 Feb 25 '16 at 4:08
  • 2
    $\begingroup$ @d1str0 each block does in fact use the exact same key, the counter is the plaintext input $\endgroup$ – Richie Frame Feb 25 '16 at 6:56


Let's a thought experiment and not limit this to AES-GCM.

A very trivial example:

$M = \{0, 1\}$ (a one bit message)

$K = \{0, 1\}$ (a one bit key)

$E(m, k) = m \oplus k$

Let's say with this implementation the computation takes 100x as long if $k = 1$. Running this function only one time will give you a pretty good idea what k is based on how long it takes.

Again, this is just a trivial example meant for a thought experiment as to why you wouldn't necessarily need the encryption process to go more than once.

Another case might be that the plaintext has a series of repeated texts. All of which will be computed against the same key. This can be (not always) similar to computing a single plain text several times.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.