ABSTRACT

MixColumns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 8.2.1.4 Faults Are Injected between the Output of 8th and the Input of 9th

MixColumns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 8.2.2 Relationships between the Discussed Fault Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

8.2.2.1 Faults Are Injected in Any Location and Any Round . . . . . . . . . . . . . . . . 209 8.2.2.2 Faults Are Injected in AddRoundKey in Round 0 . . . . . . . . . . . . . . . . . . . . 209 8.2.2.3 Faults Are Injected between the Output of 7th and the Input of 8th

MixColumns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 8.2.2.4 Faults Are Injected between the Output of 8th and the Input of 9th

MixColumns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 8.3 Principle of Differential Fault Attacks on AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

8.3.1 Differential Properties of AES S-Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 8.3.2 DFA of AES Using Bit Faults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 8.3.3 Bit-Level DFA of Last Round of AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 8.3.4 Bit-Level DFA of First Round of AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

8.4 State-of-the-art DFAs on AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 8.4.1 Byte-Level DFA of Penultimate Round of AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

8.4.1.1 DFA Using Two Faults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 8.4.1.2 DFA Using Only One Fault . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 8.4.1.3 DFA with Reduced Time Complexity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

8.5 Multiple-Byte DFA of AES-128 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 8.5.1 DFA According to Fault Model DM0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

8.5.1.1 Equivalence of Faults in the Same Diagonal . . . . . . . . . . . . . . . . . . . . . . . . . . 222 8.5.2 DFA According to Fault Model DM1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 8.5.3 DFA According to Fault Model DM2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

8.6 Extension of the DFA to Other Variants of AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 8.6.1 DFA on AES-192 States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 8.6.2 DFA on AES-256 States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

8.6.2.1 First Phase of the Attack on AES-256 States . . . . . . . . . . . . . . . . . . . . . . . . 226 8.6.2.2 Second Phase of the Attack on AES-256 States . . . . . . . . . . . . . . . . . . . . . . 228

8.7 DFA of AES Targeting the Key Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 8.7.1 Attack on AES-128 Key Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

8.7.1.1 First Phase of the Attack on AES-128 Key Schedule . . . . . . . . . . . . . . . . . 231 8.7.1.2 Second Phase of the Attack on AES-128 Key Schedule . . . . . . . . . . . . . . 233 8.7.1.3 Time Complexity Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

8.7.2 Proposed Attack on AES-192 Key Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 8.7.2.1 First Phase of the Attack on AES-192 Key Schedule . . . . . . . . . . . . . . . . . 236 8.7.2.2 Second Phase of the Attack on AES-192 Key Schedule . . . . . . . . . . . . . . 239

8.7.3 Proposed Attack on AES-256 Key Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 8.7.3.1 First Phase of the Attack of AES-256 Key Schedule . . . . . . . . . . . . . . . . . 240 8.7.3.2 Second Phase of th Attack of AES-256 Key Schedule . . . . . . . . . . . . . . . . 243

8.8 DFA countermeasures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 8.8.1 Hardware Redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

8.8.2 Time Redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 8.8.3 Information Redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

8.8.3.1 Parity-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 8.8.3.2 Parity-16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 8.8.3.3 Parity-32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 8.8.3.4 Robust Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250

8.8.4 Hybrid Redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 8.8.5 Other Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

8.9 Invariance based DFA Countermeasures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 8.9.1 An Infective Countermeasure Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 8.9.2 Infection Countermeasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 8.9.3 Attacks on the Infection Countermeasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

8.9.3.1 Further Loop Holes in the Countermeasure: Attacking the Infection Technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

8.9.4 Infection Caused by Compulsory Dummy Round . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 8.9.4.1 Attacking the Top Row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

8.9.5 Piret & Quisquater’s Attack on the Countermeasure . . . . . . . . . . . . . . . . . . . . . . . . . . 259 8.10 Improved Countermeasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 8.11 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

The growing complexity of the cryptographic algorithms and the increasing applications of ciphers in real-time applications has lead to research in the development of high speed hardware designs or optimized cryptographic libraries for these algorithms. The complex operations performed in these designs and the large state space involved indicates that a complete verification is ruled out. Hence these designs have a chance of being fault prone. Apart from these unintentional faults, faults can also be injected intentionally. Literature shows several ways of fault injection: accidental variation in operating conditions, like voltage, clock frequency, or focussed laser beams in hardware. Software programs can also be subjected to situations, like missing of certain instructions to inflict faults. Apart from the general issue of fault tolerance in any large design, faults bring a complete new aspect when dealing with cryptographic algorithms: security.