Differential Fault Analysis of AES Let's say: an error is induced into an implementation of the AES-128 to produce a faulty ciphertext. The error is a one-byte eror and is always induced on the last state byte, during round9, before the MixColumns operation. The induced errors are unknown and can be different. However the key is the same in both cases.

Then how can I recover 4 bytes of the last round key? Which bytes of that round key can I recover and what's their value?

ciphertext1 = 0xe719f8ab9e0b846f0cf2e5c32a0e5b45
faultytext1 = 0xe719f86f9e0beb6f0c97e5c38b0e5b45

ciphertext2 = 0x78f272c7cf5383085fa240236d97130f
faultytext2 = 0x78f27277cf53e7085f944023fa97130f
Your fault attack scenario correspond to this paper :

A Differential Attack Technique Against SPN Structures with Application to AES and KHAZAD (Piret &amp; Quisquater - CHES 2003)

This paper describe how to retrieve four bytes of the last round key with at least two pairs of ciphertext/faultytext.

Each pair of ciphertext $C$ and faultytext $C^*$ could be written as $C^* = C \oplus E$, where $E$ contains 4 bytes $\neq 0$.

For more details, the attack consists on several steps :


Compute a list $L$ of 4x255 possible differences after the MixColumns of Round 9
Guess 4 parts of $K_{10}$
Compute $d = SB^{-1} (C \oplus K_{10}) \oplus SB^{-1} (C^* \oplus K_{10})$
If $d$ in $L$, add guessed $K$ in a list of possible candidates of $K_{10}$
Repeat for each pair, considering only guessed $K$ in the list of possible candidates, if $d$ is not in $L$ for the new pair, remove the candidate.
Repeat until the list of possible candidates is reduced to one.