Skip to main content
Log in

Security analysis of concurrent error detection against differential fault analysis

  • Regular Paper
  • Published:
Journal of Cryptographic Engineering Aims and scope Submit manuscript

Abstract

Differential fault analysis (DFA) poses a significant threat to advanced encryption standard (AES). Only a single faulty ciphertext is required to extract the secret key. Concurrent error detection (CED) is widely used to protect AES against DFA. Traditionally, these CEDs are evaluated with uniformly distributed faults, the resulting fault coverage indicates the security of CEDs against DFA. However, DFA-exploitable faults, which are a small subspace of the entire fault space, are not uniformly distributed. Therefore, fault coverage does not accurately measure the security of the CEDs against DFA. We provide a systematic study of DFA of AES and show that an attacker can inject biased faults to improve the success rate of the attacks. We propose fault entropy (FE) and fault differential entropy (FDE) to evaluate CEDs. We show that most CEDs with high fault coverage are not secure when evaluated with FE and FDE. This work challenges the traditional use of fault coverage for uniformly distributed faults as a metric for evaluating the security of CEDs against DFA.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15

Similar content being viewed by others

Notes

  1. Appendix A describes the AES encryption algorithm.

  2. Classic fault model, such as permanent single bit stuck-at faults, is not relevant for DFA.

  3. Single, stuck-at fault model. The assumption of random fault in DFA is not relevant.

  4. The number of faults is calculated with an assumption that the faults are injected at the input to the round. If the faults can be injected anywhere in the AES round, all these numbers can be proportionally scaled.

  5. In practice, it may be subjected to clock, power, laser, or EM injection attack, but it is relatively feasible and affordable to use multiple countermeasures on the checker. To defend against clock glitch attack, one can use dual rail logic style [50]. To defend against power or EM pulse attack, one can use a power supply noise detector for the checker [40]. To defend against laser, one can use shielding [16].

  6. This is demonstrated using clock glitch in Dutertre et al. [21].

  7. This is demonstrated using laser in Canivet et al. [13].

  8. For more details, we refer to [19].

  9. The evaluation is similar to the attack presented in Lashermes et al. [34].

  10. \(i\) and \(j\) are the row and column indices of the state matrix, respectively. Appendix 7.1 contains the detail of the AES algorithm.

  11. The details of SubBytes are in Appendix A.

  12. This means eight bit binary value in hex.

  13. We compute the difference between the fault-free and the faulty 10th round input.

References

  1. Agoyan, M., Dutertre, J.M., Mirbaha, A.P., Naccache, D., Ribotta, A.L., Tria, A.: How to Flip a Bit? IOLTS pp. 235–239 (2010)

  2. Agoyan, M., Dutertre, J.M., Naccache, D., Robisson, B., Tria, A.: When clocks fail: on critical paths and clock faults. In: Proc. CARDIS, pp. 182–193 (2010)

  3. Ali, S.S., Mukhopadhyay, D.: A differential fault analysis on AES key schedule using single fault. In: 2011 Workshop on Fault Diagnosis and Tolerance in Cryptography, FDTC 2011, Tokyo, Japan, September 29, 2011, pp. 35–42 (2011)

  4. Ali, S.S., Mukhopadhyay, D.: Differential fault analysis of AES-128 key schedule using a single multi-byte fault. In: Smart Card Research and Advanced Applications - 10th IFIP WG 8.8/11.2 International Conference, CARDIS 2011, Leuven, Belgium, September 14–16, 2011, Revised Selected Papers, pp. 50–64 (2011)

  5. Ali, S.S., Mukhopadhyay, D.: An improved differential fault analysis on AES-256. In: Progress in Cryptology - AFRICACRYPT 2011: 4th International Conference on Cryptology in Africa, Dakar, Senegal, July 5–7, 2011, Proceedings, pp. 332–347 (2011)

  6. Ali, S.S., Mukhopadhyay, D., Tunstall, M.: Differential fault analysis of AES: towards reaching its limits. J. Cryptogr. Eng. 3, 73–97 (2013)

  7. Amiel, F., Clavier, C., Tunstall, M.: Fault analysis of dpa-resistant algorithms. FDTC, pp. 223–236 (2006)

  8. Barenghi, A., Breveglieri, L., Koren, I., Naccache, D.: Fault injection attacks on cryptographic devices: theory, practice, and countermeasures. Proc. IEEE 100(11), 3056–3076 (2012)

    Article  Google Scholar 

  9. Barenghi, A., Hocquet, C., Bol, D., Standaert, F.X., Regazzoni, F., Koren, I.: Exploring the Feasibility of low cost fault injection attacks on sub-threshold devices through an example of a 65 nm AES implementation, pp. 48–60 (2011)

  10. Battistello, A., Giraud, C.: Fault analysis of infective AES computations. FDTC, pp. 101–107 (2013)

  11. Bertoni, G., Breveglieri, L., Koren, I., Maistri, P., Piuri, V.: Error analysis and detection procedures for a hardware implementation of the advanced encryption standard. IEEE Trans. Comput. 52(4), 492–505 (2003)

    Article  Google Scholar 

  12. Blömer, J., Seifert, J.P.: Fault Based cryptanalysis of the advanced encryption standard. FC, pp. 162–181 (2003)

  13. Boost C++ Libraries. http://www.boost.org/

  14. Breveglieri, L., Koren, I., Maistri, P.: An Operation-centered approach to fault detection in symmetric cryptography ciphers. IEEE Trans. Comput. 56, 635–649 (2007)

    Article  MathSciNet  Google Scholar 

  15. Briais, S., Cioranesco, J.M., Danger, J.L., Guilley, S., Naccache, D., Porteboeuf, T.: Random active shield. FDTC, pp. 103–113 (2012)

  16. Canivet, G., Clediere, J., Ferron, J., Valette, F., Renaudin, M., Leveugle, R.: Detailed analyses of single laser shot effects in the configuration of a Virtex-II FPGA. IOLTS, pp. 289–294 (2008)

  17. Canivet, G., Maistri, P., Leveugle, R., Clédière, J., Valette, F., Renaudin, M.: Glitch and laser fault attacks onto a secure aes implementation on a sram-based fpga. J. Cryptol. 24 (2011)

  18. Chih-Hsu, Y., Bing-Fei, W.: Simple error detection methods for hardware implementation of advanced encryption standard. IEEE Trans. Comput. 55(6), 730–731 (2006)

    Google Scholar 

  19. Cover, T.M., Thomas, J.A.: Elements of information theory. Wiley (1991)

  20. Dehbaoui, A., Dutertre, J., Robisson, B., Tria, A.: Electromagnetic transient faults injection on a hardware and a software implementations of AES. In: Proc. IEEE FDTC, pp. 7–15 (2012)

  21. Dutertre, J.M., Fournier, J., Mirbaha, A.P., Naccache, D., Rigaud, J.B., Robisson, B., Tria, A.: Review of fault injection mechanisms and consequences on countermeasures design. DTIS, pp. 1–6 (2011)

  22. Giraud, C.: DFA on AES. AES, pp. 27–41 (2005)

  23. Guo, X., Karri, R.: Invariance-based concurrent error detection for advanced encryption standard. In: Design Automation Conference (DAC), 2012 49th ACM/EDAC/IEEE, 3–7 June 2012, San Francisco, CA, 573–578 (2012)

  24. Guo, X., Karri, R.: Recomputing with permuted operands: a concurrent error detection approach. IEEE Trans. CAD 32(10), 1595–1608 (2013)

    Article  Google Scholar 

  25. Guo, X., Mukhopadhyay, D., Jin, C., Karri, R.: NREPO: normal basis recomputing with permuted operands. In: IEEE International Symposium on Hardware-Oriented Security and Trust (HOST), 2014, pp. 118–123 (2014)

  26. Jarvinen, K., Blondeau, C., Page, D., Tunstall, M.: Harnessing biased faults in attacks on ECC-based signature schemes. FDTC, pp. 72–82 (2012)

  27. Joye, M., Manet, P., Rigaud, J.: Strengthening hardware AES implementations against fault attack. IET Inf. Sec. 1, 106–110 (2007)

    Article  Google Scholar 

  28. Kaminsky, A., Kurdziel, M., Radziszowski, S.: An overview of cryptanalysis research for the advanced encryption standard. MILCOM, pp. 1310–1316 (2010)

  29. Karaklajić, D., Schmidt, J.M., Verbauwhede, I.: Hardware designer’s guide to fault attacks. IEEE Trans. VLSI 21(12), 2295–2306 (2013)

    Article  Google Scholar 

  30. Karpovsky, M., Kulikowski, K.J., Taubin, A.: Robust protection against fault-injection attacks of smart cards implementing the advanced encryption standard. DNS, pp. 93–101 (2004)

  31. Karri, R., Wu, K., Mishra, P., Kim, Y.: Concurrent error detection schemes of fault based side-channel cryptanalysis of symmetric block ciphers. IEEE Trans. CAD 21(12), 1509–1517 (2002)

    Article  Google Scholar 

  32. Khelil, F., Hamdi, M., Guilley, S., Danger, J.L., Selmane, N.: Fault analysis attack on an aes fpga implementation. In: Proc. New Technologies, Mobility and Security, pp. 1–5 (2008)

  33. Kim, C.H.: Differential fault analysis against AES-192 and AES-256 with minimal faults. FDTC, pp. 3–9 (2010)

  34. Lashermes, R., Reymond, G., Dutertre, J., Fournier, J., Robisson, B., Tria, A.: A DFA on AES based on the entropy of error distributions. FDTC, pp. 34–43 (2012)

  35. Li, Y., Sakiyama, K., Gomisawa, S., Fukunaga, T., Takahashi, J., Ohta, K.: Fault sensitivity analysis. In: Proc. CHES, pp. 320–334 (2010)

  36. Mozaffari-Kermani, M., Reyhani-Masoleh, A.: Concurrent structure-independent fault detection schemes for the advanced encryption standard. IEEE Trans. Comput. 59(5), 608–622 (2010)

  37. Maistri, P.: Countermeasures against fault attacks: the good, the bad, and the ugly. IOLTS, pp. 134–137 (2011)

  38. Maistri, P., Leveugle, R.: Double-data-rate computation as a countermeasure against fault analysis. IEEE Trans. Comput. 57(11), 1528–1539 (2008)

    Article  MathSciNet  Google Scholar 

  39. Malkin, T., Standaert, F.X., Yung, M.: A comparative cost/security analysis of fault attack countermeasures. FDTC, pp. 109–123 (2005)

  40. Metra, C., Schiano, L., Favalli, M.: Concurrent detection of power supply noise. IEEE Trans. Reliab. 52(4), 469–475 (2003)

    Article  Google Scholar 

  41. Moradi, A., Shalmani, M.T.M., Salmasizadeh, M.: A generalized method of differential fault attack against AES cryptosystem. In: Proc. CHES, pp. 91–100 (2006)

  42. Mozaffari-Kermani, M., Reyhani-Masoleh, A.: A lightweight high-performance fault detection scheme for the advanced encryption standard using composite field. IEEE Trans. VLSI 19(1), 85–91 (2011)

    Article  Google Scholar 

  43. Mukhopadhyay, D.: An improved fault based attack of the advanced encryption standard. AFRICACRYPT, pp. 421–434 (2009)

  44. National Institute of Standards and Technology (NIST): Advanced Encryption Standard (AES). http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf (2001)

  45. Dusart, P., L, G., Vivolo, O.: Differential fault analysis on AES. Cryptology ePrint Archive (2003)

  46. Piret, G., Quisquater, J.: A differential fault attack technique against spn structures, with application to the AES and Khazad. In: Proc. CHES, pp. 77–88 (2003)

  47. Saha, D., Mukhopadhyay, D., Chowdhury, D.R.: A diagonal fault attack on the advanced encryption standard. IACR Cryptology ePrint Archive, p. 581 (2009)

  48. Sakiyama, K., Li, Y., Ohta, K., Iwamoto, M.: Information-theoretic approach to optimal differential fault analysis. IEEE Trans. Inf. Forensics Secur. 7(1), 109–120 (2012)

    Article  Google Scholar 

  49. Satoh, A., Sugawara, T., Homma, N., Aoki, T.: High-performance concurrent error detection scheme for AES hardware. In: Proc. CHES, pp. 100–112 (2008)

  50. Selmane, N., Bhasin, S., Guilley, S., Graba, T., Danger, J.L.: WDDL is protected against setup time violation attacks. FDTC, pp. 73–83 (2009)

  51. Selmane, N., Guilley, S., Danger, J.L.: Practical setup time violation attacks on aes. EDCC, pp. 91–96 (2008)

  52. Takahashi, J., Fukunaga, T., Yamakoshi, K.: DFA mechanism on the AES key schedule. FDTC, pp. 62–74 (2007)

  53. Tunstall, M., Mukhopadhyay, D., Ali, S.: Differential fault analysis of the advanced encryption standard using a single fault. WISTP, pp. 224–233 (2011)

  54. Wu, K., Karri, R., Kuznetsov, G., Goessel, M.: Low cost concurrent error detection for the advanced encryption standard. ITC, pp. 1242–1248 (2004)

  55. Xilinx: ChipScope Pro. http://www.xilinx.com/support/documentation/dt_chipscopepro.htm

  56. Yumbul, K., Erdem, S., Savas, E.: On selection of modulus of quadratic codes for the protection of cryptographic operations against fault attacks. IEEE Trans. Comput. (99), 1 (PP) (2012)

Download references

Acknowledgments

This material is based upon work supported by the NSF CNS program under grant 0831349 and the Center for Interdisciplinary Studies in Security and Privacy (CRISSP). Debdeep Mukhopadhyay would like to acknowledge Indo-US S&T Forum for providing fellowship to support the above collaboration and to support his visit as a researcher under the Indo-USSTF Fellowship to NYU School of Engineering, USA in 2012.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Xiaofei Guo.

Appendix

Appendix

1.1 AES Algorithm

Advanced Encryption Standard is a block cipher with key lengths of 128, 192, and 256. We consider 128-bit key for AES, but the conclusions apply to the other key sizes. AES encrypts a 128-bit plaintext into a 128-bit ciphertext with a 128-bit user key using 10 nearly identical rounds plus an initial round (round 0). One AES encryption round consists of SubBytes, ShiftRows, MixColumns, and AddRoundKey denoted by \(SB\), \(SR\), \(MC\), and \(AR\), respectively, as shown in Fig. 17. In round 0, only AddRoundKey is used and in round 10, MixColumns is not used. Each operation in every round acts on a 128-bit input state, where each state element is a byte in \(GF(2^{8})\). Each byte is denoted by \({\varvec{st_{r,c}}}\) (\(0 \le r,c \le 3\)) indicating that this byte is in row r and column c in the state matrix.

$$\begin{aligned} \left[ {\begin{array}{llll} x_{0,0} &{} x_{0,1} &{} x_{0,2} &{} x_{0,3} \\ x_{1,0} &{} x_{1,1} &{} x_{1,2} &{} x_{1,3} \\ x_{2,0} &{} x_{2,1} &{} x_{2,2} &{} x_{2,3} \\ x_{3,0} &{} x_{3,1} &{} x_{3,2} &{} x_{3,3} \\ \end{array} } \right] = [x_{r,c}]_{r,c = 0\ldots 3} \end{aligned}$$
(19)

In SubBytes, each byte is processed by an S-box (SB in Fig. 17). Each SB performs a nonlinear transformation of the input byte. If \(X\) is the input, the output is:

$$\begin{aligned} Y = SB(X) = SB([x_{r,c}]_{r,c=0\ldots 3}) = [y_{r,c}]_{r,c=0\ldots 3} \end{aligned}$$
(20)

In ShiftRows, each row of the state is shifted cyclically byte-wise using a different offset. Row 0 is not shifted, while rows 1, 2, and 3 are cyclically shifted to the left by one, two, and three bytes, respectively. The resulting output is:

$$\begin{aligned} Z = SR(Y) = \left[ {\begin{array}{llll} y_{0,0} &{} y_{0,1} &{} y_{0,2} &{} y_{0,3} \\ y_{1,1} &{} y_{1,2} &{} y_{1,3} &{} y_{1,0} \\ y_{2,2} &{} y_{2,3} &{} y_{2,0} &{} y_{2,1} \\ y_{3,3} &{} y_{3,0} &{} y_{3,1} &{} y_{3,2} \\ \end{array} } \right] \end{aligned}$$
$$\begin{aligned} \quad = [y_{r, (r+c) \ mod \ 4}]_{r,c=0\ldots 3} = [z_{r,c}]_{r,c=0\ldots 3} \end{aligned}$$
(21)

In MixColumns, the output state is obtained by multiplying the output of ShiftRows by a constant matrix. The resulting output is:

$$\begin{aligned} U = MC(Z) = [u_{r,c}]_{r,c=0\ldots 3} \end{aligned}$$
$$\begin{aligned} \quad = \left[ {\begin{array}{llll} 02 &{} 03 &{} 01 &{} 01 \\ 01 &{} 02 &{} 03 &{} 01 \\ 01 &{} 01 &{} 02 &{} 03 \\ 03 &{} 01 &{} 01 &{} 02 \\ \end{array} } \right] \left[ {\begin{array}{llll} z_{0,0} &{} z_{0,1} &{} z_{0,2} &{} z_{0,3} \\ z_{1,0} &{} z_{1,1} &{} z_{1,2} &{} z_{1,3} \\ z_{2,0} &{} z_{2,1} &{} z_{2,2} &{} z_{2,3} \\ z_{3,0} &{} z_{3,1} &{} z_{3,2} &{} z_{3,3} \\ \end{array}} \right] \end{aligned}$$
(22)

In AddRoundKey, the round key \(K = [k_{r,c}]_{r,c=0\ldots 3}\) is added (modulo-2) to the 128-bit state \(U\). The resulting round output is:

$$\begin{aligned} V \!=\! AR(K,U) \!=\! [k_{r,c}]_{r,c=0..3} + [u_{r,c}]_{r,c=0\ldots 3} \!=\! [v_{r,c}]_{r,c = 0..3}\nonumber \\ \end{aligned}$$
(23)

1.2 Example of computing FE and FDE

We would like to show a concrete example that illustrates how FE and FDE are calculated. We assume the attacker performs two fault injections in an AES circuit. Let \(X_{i, j}\) be the input of the 9th round. In both fault injections, byte with index (0,0) is faulty and its fault-free value is 0 \(\times \) 00.Footnote 12 In the first fault injection, the fault is 0 \(\times \) 80 (0\(\times \)80 \(\oplus \) 0 \(\times \) 00 = 0\(\times \)80) as shown in Fig. 16a. In the second fault injection, the fault is 0 \(\times \) 40 (0\(\times \)40 \(\oplus \) 0 \(\times \) 00 = 0\(\times \)40) as shown in Fig. 16b.

Fig. 16
figure 16

A simple two fault injection experiment of computing FE and FDE. The faults are injected in the 9th round input byte with index (0,0). The fault-free byte value is 0x00. a The fault is injected at bit 7. b The fault is injected at bit 6

Fig. 17
figure 17

One typical AES encryption round (The last round does not have MixColumns)

First of all, we compute the FE. We assume the attacker knows that byte (0,0) is faulty at the beginning of the 9th round. Therefore, he needs to invert both the 10th and 9th rounds. It requires him to guess 32 bits of the 10th round key and 32 bits of the 9th round key to compute the difference between the fault-free and faulty input of the 9th round. For the fault-free ciphertext, the correct key will recover the 9th round input byte value 0 \(\times \) 00. For the first fault injection, the correct key will recover the 9th round input faulty byte value 0 \(\times \) 80. The evaluator then computes the difference between the fault-free and faulty byte and gets 0 \(\times \) 80 which is the fault. The wrong key hypothesis will not recover the correct fault since the AES round function is a bijective mapping. The evaluator repeats the above procedure for the second fault injection experiment and the correct key will recover the fault 0 \(\times \) 40. He computes the entropy of tuple {0 \(\times \) 80, 0\(\times \)40}. Then, he repeats this procedure for all possible key candidates. As the number of fault injection increases, the FE of the wrong key candidates will increase.

Alternatively, we can compute FDE. In this case, the evaluator knows that the relationship of the faultsFootnote 13 between the first column bytes, i.e., (0,0), (0,1), (0,2), and (0,3), has certain relationship as shown in Fig. 16 due to the MixColumns operation 9th round regardless of the actually fault value injected on byte (0,0) at the beginning of the 9th round, i.e., both the first fault injection and the second fault injection will give the same relationship between the bytes in the first column. The evaluator then only guesses 32 bits of the 10th round key and inverts the 10th round. The correct key will give him the relationship that the faults in byte (0,0) are two times of that in byte (0,1). Similarly, he can derive the interrelationship between these four bytes shown in Eqs. (7), (8), and (9). He assumes that such relationship is true for all key hypothesis and computes the difference (fault differential) between the fault-free input to the 10th round and the faulty input for the bytes in the first column using equation Eqs. (10), (11) and (12). Then, he computes the entropy of the fault differential for all key hypotheses. Obviously, the difference will be all 0s for the correct key hypothesis and the entropy will be the lowest.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Guo, X., Mukhopadhyay, D., Jin, C. et al. Security analysis of concurrent error detection against differential fault analysis. J Cryptogr Eng 5, 153–169 (2015). https://doi.org/10.1007/s13389-014-0092-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s13389-014-0092-8

Keywords

Navigation