Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Let's say that we have a hardware AES implementation that, on request, will encrypt or decrypt a 16-byte block of data in ECB mode using a fixed key, but refuses to reveal its fixed key. In other words, an oracle.

This oracle has a flaw: if you read the hardware's output registers before the device says that its output is ready, it will return the result of the intermediate rounds rather than only the 10th (final) round.

Is it possible to attack this system to go after the embedded key? I suppose that this means my question is about chosen-plaintext attacks against reduced-round variants of Rijndael-128.

share|improve this question
I'd say the practical application depends on whether you can obtain states of consecutive rounds. If you can, key extraction seems quite trivial as it boils down to re-doing $SubBytes$, $ShiftRows$, $MixColumns$, and then computing round key by reversing $AddRoundKey$ transformation. – Andrey Aug 18 '14 at 7:44
up vote 3 down vote accepted

If you can read the intermediate states of the encryption algorithm you could recover, one by one all the round keys. Given a AES round, all the operation between the two AddRoundKey (at the beginning and the ond of the round) are invertible.

Take for example round 1: you get the internal state before AddRoundKey (of round 2), you get back at the beginning of round 1, and you get the plaintext XORed with the first round key.

Finally, recovering all round keys is equivalent to recover the master key.

share|improve this answer
Any round key is sufficient to recover the master key. – Dmitry Khovratovich Aug 18 '14 at 13:04

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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