# Hardware Countermeasures Benchmarking against Fault Attacks
## 3 Dfa on AES
### Aes Vulnerabilities  
The use of differential fault analysis on the AES cipher [5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17] has shown its vulnerability to this type of analysis. The vulnerabilities found can be classified according to the block or function where the attack is carried out (state matrix, S-box() or KeySchedule()), the type of fault injected (single fault, multiple fault, etc.), or the round on which the attack must be carried out. Table 3 presents a classification of the different types of cryptanalysis reported in the literature where the DFA on the AES cipher is carried out.  
\begin{table}
\begin{tabular}{c c} \hline \hline
**Type of Fault** & **Description** \\ \hline A & Single Bit Fault \\ \hline B.1 & Multiple Bits in the same Byte (odd) \\ B.2 & Multiple Bits in the same Byte (even) \\ \hline C.1 & Multiple Bits in different Bytes (odd) \\ C.2 & Multiple Bits in different Bytes (even) \\ \hline D & Single Byte Fault \\ E & Multiple Byte Faults \\ F & Random Faults \\ \hline \hline \end{tabular}
\end{table}
Table 2: Type of Possible Faults Classification.  
In the case of a single fault injection into the state matrix, the AES cipher has vulnerabilities if this fault is inserted before the S-box() operation of the ninth round [6]. In this case, only 50 faulty ciphertext are needed to recover the key. This vulnerability was experimentally shown by inserting glitches in the cipher clock signal [5]. In this case, the attacker must be able to repeat the fault in three different positions within the same byte using the same plaintext. For faults inserted in the seventh or eighth rounds, the attacker must be able to inject faults in different positions within the same byte of the state matrix, being their positions known or not [7]. It is also possible to attack the MixColumn() operation in the seventh, eighth, and ninth rounds. For the attack made on the MixColumn() operation in the eighth round, 20 pairs of correct/faulty ciphertext are necessary. For the attack on the MixColumn() operation in the ninth round, 40 to 50 different pairs of correct/faulty ciphertext are needed [7].  
In the scenario where an attacker is able to change a whole byte [6; 8; 9; 10; 11; 12; 16; 17], the vulnerability of the cipher is extended to the three attack points presented in Table 3. When injecting a full byte, the attacker can recover the key preforming the attack during the generation of the state matrix, or the S-box() process, or the KeySchedule(). These attacks can be carried out from round 7 onwards [6; 8; 10; 11; 12; 16; 17]. In the case of [9] the attack is carried out on round 9, but the authors claim that their attack could be adapted and implemented in previous rounds.  
On the other hand, if the attack scenario considered includes the injection of multiple bytes, it can only be exploited in the state matrix and in the KeySchedule(), as this vulnerability cannot be exploited in the S-box() process [13; 14; 15; 16; 17]. These works suggest that this attack can be deployed in the eighth and ninth rounds of the cipher when targeting the state matrix, but only possible in the eighth round when targeting the KeySchedule().