Preface xiii
Emmanuel PROUFF, Guenaël RENAULT, Matthieu RIVAIN and Colin O'FLYNN
Part 1. Software Side-Channel Attacks 1
Chapter 1. Timing Attacks 3
Daniel PAGE
1.1. Foundations 3
1.2. Example attacks 10
1.3. Example mitigations 20
1.4. Notes and further references 21
1.5. References 24
Chapter 2. Microarchitectural Attacks 31
Yuval YAROM
2.1. Background 31
2.2. The Prime+Probe attack 34
2.3. The Flush+Reload attack 41
2.4. Attacking other microarchitectural components 45
2.5. Constant-time programming 47
2.6. Covert channels 50
2.7. Transient-execution attacks 51
2.8. Summary 54
2.9. Notes and further references 54
2.10. References 57
Part 2. Hardware Side-Channel Attacks 65
Chapter 3. Leakage and Attack Tools 67
Davide BELLIZIA and Adrian THILLARD
3.1. Introduction 67
3.2. Data-dependent physical emissions 67
3.3. Measuring a side-channel 75
3.4. Leakage modeling 78
3.5. Notes and further references 86
3.6. References 87
Chapter 4. Supervised Attacks 91
Eleonora CAGLI and Loïc MASURE
4.1. General framework 91
4.2. Building a model 98
4.3. Controlling the dimensionality 105
4.4. Building de-synchronization-resistant models 108
4.5. Summary of the chapter 112
4.6. Notes and further references 113
4.7. References 115
Chapter 5. Unsupervised Attacks 117
Cecile DUMAS
5.1. Introduction 117
5.2. Distinguishers 122
5.3. Likelihood distinguisher 123
5.4. Mutual information 129
5.5. Correlation 136
5.6. A priori knowledge synthesis 139
5.7. Conclusion on statistical tools 142
5.8. Exercise solutions 144
5.9. Notes and further references 149
5.10. References 150
Chapter 6. Quantities to Judge Side Channel Resilience 153
Elisabeth OSWALD
6.1. Introduction 153
6.2. Metrics for comparing the effectiveness of specific attack vectors 156
6.3. Metrics for evaluating the leakage (somewhat) independent of a specific attack vector 158
6.4. Metrics for evaluating the remaining effort of an adversary 160
6.5. Leakage detection as a radical alternative to attack driven evaluations 162
6.6. Formal evaluation schemes 164
6.7. References 167
Chapter 7. Countermeasures and Advanced Attacks 171
Brice COLOMBIER and Vincent GROSSO
7.1. Introduction 171
7.2. Misalignment of traces 173
7.3. Masking 180
7.4. Combination of countermeasures 183
7.5. To go further 184
7.6. References 185
Chapter 8. Mode-Level Side-Channel Countermeasures 187
Olivier PEREIRA, Thomas PETERS and François-Xavier STANDAERT
8.1. Introduction 187
8.2. Building blocks 188
8.3. Security definitions 190
8.4. Leakage models 197
8.5. Constructions 201
8.6. Acknowledgments 208
8.7. Notes and further references 208
8.8. References 210
Part 3. Fault Injection Attacks 213
Chapter 9. An Introduction to Fault Injection Attacks 215
Jean-Max DUTERTRE and Jessy CLEDIÈRE
9.1. Fault injection attacks, disturbance of electronic components 216
9.2. Practical examples of fault injection attacks 262
9.3. Notes and further references 272
9.4. References 273
Chapter 10. Fault Attacks on Symmetric Cryptography 277
Debdeep MUKHOPADHYAY and Sayandeep SAHA
10.1. Introduction 277
10.2. Differential fault analysis 278
10.3. Automation of DFA 286
10.4. DFA countermeasures: general idea and taxonomy 289
10.5. Advanced FA 292
10.6. Leakage assessment in fault attacks 302
10.7. Chapter summary 305
10.8. Notes and further references 306
10.9. References 307
Chapter 11. Fault Attacks on Public-key Cryptographic Algorithms 311
Michael TUNSTALL and Guillaume BARBU
11.1. Introduction 311
11.2. Preliminaries 312
11.3. Attacking the RSA using the Chinese remainder theorem 315
11.4. Attacking a modular exponentiation 316
11.5. Attacking the ECDSA 318
11.6. Other attack strategies 319
11.7. Countermeasures 321
11.8. Conclusion 324
11.9. Notes and further references 325
11.10. References 328
Chapter 12. Fault Countermeasures 333
Patrick SCHAUMONT and Richa SINGH
12.1. Anatomy of a fault attack 333
12.2. Understanding the attacker 334
12.3. Taxonomy of fault countermeasures 336
12.4. Fault countermeasure principles 337
12.5. Fault countermeasure examples 340
12.5.1. Algorithm level countermeasures 340
12.6. ISA level countermeasures 342
12.7. RTL-level countermeasures 343
12.8. Circuit-level countermeasures 343
12.9. Design automation of fault countermeasures 344
12.10. Notes and further references 345
12.11. References 348
List of Authors 355
Index 357
Summary of Volume 2 363
Summary of Volume 3 371