Next Article in Journal
An Equilibrium Analysis of a Secondary Mobile Data-Share Market
Next Article in Special Issue
Profiling Attack against RSA Key Generation Based on a Euclidean Algorithm
Previous Article in Journal
An Ontological Approach to Enhancing Information Sharing in Disaster Response
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Communication

Algebraic Fault Analysis of SHA-256 Compression Function and Its Application

1
Graduate School of Engineering, University of Fukui, Fukui 910-8507, Japan
2
Tokai Rika Co., Ltd., Oguchi 480-0195, Japan
3
Faculty of Engineering, University of Fukui, Fukui 910-8507, Japan
*
Author to whom correspondence should be addressed.
Information 2021, 12(10), 433; https://doi.org/10.3390/info12100433
Submission received: 23 August 2021 / Revised: 14 October 2021 / Accepted: 15 October 2021 / Published: 19 October 2021
(This article belongs to the Special Issue Side Channel Attacks and Defenses on Cryptography)

Abstract

:
Cryptographic hash functions play an essential role in various aspects of cryptography, such as message authentication codes, pseudorandom number generation, digital signatures, and so on. Thus, the security of their hardware implementations is an important research topic. Hao et al. proposed an algebraic fault analysis (AFA) for the SHA-256 compression function in 2014. They showed that one could recover the whole of an unknown input of the SHA-256 compression function by injecting 65 faults and analyzing the outputs under normal and fault injection conditions. They also presented an almost universal forgery attack on HMAC-SHA-256 using this result. In our work, we conducted computer experiments for various fault-injection conditions in the AFA for the SHA-256 compression function. As a result, we found that one can recover the whole of an unknown input of the SHA-256 compression function by injecting an average of only 18 faults on average. We also conducted an AFA for the SHACAL-2 block cipher and an AFA for the SHA-256 compression function, enabling almost universal forgery of the chopMD-MAC function.

1. Introduction

1.1. Background

Side-channel attacks are severe threats to hardware implementations of cryptographic algorithms. Fault attacks (FAs) are side-channel attacks that intentionally cause faults in the cryptographic process on a hardware device and try to recover the secret information from internal information that is not usually output. They can cause faults, for example, by irradiating electromagnetic waves, such as lasers, or by manipulating the device’s voltage. Fault attacks were first proposed by Boneh et al. in 1996 [1,2], and then Biham and Shamir proposed a differential fault analysis (DFA) for DES in 1997 [3]. The basic principle of DFAs is to recover the secret key by using the output difference between normal and fault-injected executions and the cryptographic algorithm from the point of fault injection to the output. DFAs were also applied to other ciphers [4,5,6]. In addition, DFAs on the compression functions of cryptographic hash functions were studied. Hemme et al. proposed a DFA against the SHA-1 compression function using a 32-bit random fault model [7]. Based on this attack, DFAs were also applied to the HAS-160 [8] and MD5 [9] compression functions. On the other hand, Courtois et al. proposed an algebraic fault analysis (AFA) for DES [10]. An AFA can analyze more information than a DFA and recover secret information with fewer fault injections. AFAs were also applied to other ciphers [11,12].
When performing an AFA, a SAT solver and an SMT solver are used to solve algebraic equations. A SAT solver is a program that judges whether a given problem is satisfiable or not and outputs a solution if it is satisfiable. The problem is given in the form of a CNF formula. An SMT solver is an extension of the SAT solver for propositional logic and deals with predicate logic satisfiability problems. STP [13] is a kind of SMT solver, which solves bit-vector theory. STP converts a given problem into a CNF equation and then calls a SAT solver to solve it. The SAT solver we used was CryptoMiniSat 5 [14], which is capable of processing cryptographic problems quickly.

1.2. Related Work

SHA-2 is a family of cryptographic hash functions standardized by NIST in FIPS PUB 180-4 [15]. SHA-256 is included in the family. It is widely deployed and is one of the most important cryptographic hash functions. HMAC is a MAC function standardized by NIST in FIPS PUB 198-1 [16].
Jeong et al. [17] recovered the secret key of HMAC/NMAC-SHA-2 by injecting a fault during the computation of HMAC/NMAC and reducing the number of steps in the SHA-2 compression function. Their fault model assumes that an attacker can change the number of steps in the SHA-2 compression function. Hao et al. [18] proposed an AFA for the SHA-256 compression function using a 32-bit random fault model. They recovered the whole of an unknown input of the SHA-256 compression function by injecting 65 faults. They also presented an almost universal forgery attack on HMAC-SHA-256 based on this result. Nejati et al. [19] assumed an advanced fault injection device and improved the AFA by Hao et al. [18] in 2018. They recovered the whole of an unknown input message block of the SHA-256 compression function with fewer fault injections.

1.3. Our Contribution

We first conducted computer experiments on various fault injection conditions and showed that one can recover the whole of an unknown input of the SHA-256 compression function by injecting about 18 faults on average. While our AFA reduces the number of fault injections compared to that of Hao et al., it requires more time to solve algebraic equations. However, a standard PC can solve them in less than an hour, and it still seems practical. Next, we performed an AFA for the block cipher SHACAL-2 [20]. It can recover the secret key with 12 fault injections by using a standard PC to solve algebraic equations in less than an hour. Finally, we performed an AFA for the SHA-256 compression function, which enabled almost universal forgery of the chopMD-MAC function [21].

1.4. Organization

In Section 2, we describe the SHA-256 compression function, the block cipher SHACAL-2, and the chopMD-MAC function. We also review the AFA for the SHA-256 compression function of Hao et al. In Section 3, we first describe the results of computer experiments on the AFA of Hao et al. and show that the number of injected faults can be greatly reduced. Next, we present the results of the AFA for SHACAL-2 and the AFA for the SHA-256 compression function, which enables almost universal forgery of the chopMD-MAC function. Section 4 is the conclusion.

2. Materials and Methods

This section describes the SHA-256 compression function [15], the SHACAL-2 block cipher [20], and the chopMD-MAC function [21]. We also review the AFA for the SHA-256 compression function of Hao et al. [18].

2.1. SHA-256 Compression Function

SHA-256 is an iterated hash function producing a 256-bit output. The SHA-256 compression function takes a 512-bit message block and a 256-bit intermediate hash value as an input and produces a 256-bit new intermediate hash value as an output.
The algorithm of the SHA-256 compression function is described below. It is also depicted in Figure 1. In the following description, the operation + denotes addition modulo 2 32 , denotes bitwise XOR, denotes bitwise AND, ¬ denotes bitwise NOT, and denotes the concatenation of bit strings.
The SHA-256 compression function first divides a given 512-bit message block M as follows:
M = m 0 m 1 m 2 m 3 m 14 m 15
where m j 0 , 1 32 . Next, it computes w j 0 , 1 32   j = 0 ,   1 ,   ,   63 using the following message schedule:
w j = m j σ 1 w j 2 + w j 7 + σ 0 w j 15 + w j 16 if   0 j 15 ,     if   16 j 63 .  
σ 0 and σ 1 are defined as follows. R O T R n ,   x denotes the right n -bit cyclic shift of x , and S H R n ,   x denotes the right n -bit shift of x .
σ 0 x = R O T R 7 ,   x R O T R 18 ,   x S H R 3 ,   x ,  
σ 1 x = R O T R 17 ,   x R O T R 19 ,   x S H R 10 ,   x .
Next, it assigns an input intermediate hash value to ( a 0 ,   b 0 ,   ,   h 0 ) and calculates the following steps for i = 0 ,   1 , ,   63 (Figure 2). a i ,   b i ,   ,   h i are called chaining values, α i ,   β i are called auxiliary values, and k i is called a step constant.
α i = h i + Σ 1 e i + Ch e i ,   f i ,   g i + k i + w i ,
β i = Σ 0 a i + Maj a i ,   b i ,   c i ,
a i + 1 = α i + β i , b i + 1 = a i ,  
c i + 1 = b i ,   d i + 1 = c i ,
e i + 1 = d i + α i ,   f i + 1 = e i ,  
g i + 1 = f i ,   h i + 1 = g i ,
where Ch ,   Maj ,   Σ 0 ,     Σ 1 are defined as follows:
Ch x ,   y ,   z = x y ¬ x z ,  
Maj x ,   y ,   z = x y x z y z ,  
Σ 0 x = R O T R 2 ,   x R O T R 13 ,   x R O T R 22 ,   x ,  
Σ 1 x = R O T R 6 ,   x R O T R 11 ,   x R O T R 25 ,   x .
Finally, the SHA-256 compression function outputs H as a new intermediate hash value:
H = Y a Y b Y c Y d Y e Y f Y g Y h
where
Y a = a 64 + a 0 ,   Y b = b 64 + b 0 ,  
Y c = c 64 + c 0 ,   Y d = d 64 + d 0 ,  
Y e = e 64 + e 0 ,   Y f = f 64 + f 0 ,  
Y g = g 64 + g 0 ,   Y h = h 64 + h 0 .

2.2. SHACAL-2

SHACAL-2 [20] is a block cipher based on the SHA-256 compression function. A plain text is given as an intermediate hash value, and a secret key as a message block. The ciphertext is ( a 64 ,   b 64 ,   ,   h 64 ). The key length is recommended to be at least 128 bits.

2.3. ChopMD-MAC

The chopMD-MAC function [21] adds a chop function to the output of the MD hash function, whose initial value is the secret key. The chop function truncates an n -bit input and outputs an s -bit output (Figure 3). In this work, we assume that chopMD-MAC uses the SHA-256 compression function ( n = 256 ) and s = 128 .

2.4. Algebraic Fault Analysis for the SHA-256 Compression Function by Hao et al.

This section reviews the AFA procedure for the SHA-256 compression function in the study by Hao et al. [18]. It assumes that a 32-bit fault is injected into a specified chaining value among a i , b i , , h i   i = 0 , 1 , , 63 . When a fault is injected, the chaining value is changed to a random value unknown to the attacker, and a faulty output is obtained after the cryptographic operation. With the faulty output and the normal output, an algebraic equation is constructed for the operations from the injected fault location to the output. Through repeated fault injection into the same chaining value, multiple algebraic equations are obtained for the same operations. STP is used to solve the algebraic equations.
The process of the AFA for the SHA-256 compression function can be divided into two phases. Phase 1 recovers the chaining value p 63 = ( a 63 ,   b 63 , ,   h 63 ) . Phase 2 recovers the whole input to the SHA-256 compression function.

2.4.1. Phase 1

In this phase, 14 faults are injected into c 60 , and the 14 corresponding faulty outputs are obtained. Next, the algebraic equations are constructed based on the normal and faulty outputs and the operations (including feed-forward operations) for the four steps from 60 to 63. STP solves the algebraic equations and returns a solution for p 63 . Hao et al. reported that they succeeded in recovering p 63 in all of the 100 trials of the procedure above. They also reported that they always succeeded in recovering p 63 in the same way by injecting 13 faults into c 58 or c 59 .
In addition, they examined the number of chaining values p i ’s recovered at the same time and the computation time for the cases where 13 faults were injected into one of a 59 ,   b 59 ,   , h 59 . The results showed that there was a positive correlation between the number of recovered chaining values and the percentage of computation time larger than 200 s.

2.4.2. Phase 2

First, from the non-faulty chaining value p 63 obtained in Phase 1 and the correct output Y , the faulty chaining value p 63 = a 63 ,   b 63 , ,   h 63 corresponding to a faulty output Y can be calculated as follows:
a 63 = Y b Y b + a 63 ,
b 63 = Y c Y c + b 63 ,
c 63 = Y d Y d + c 63 ,
d 63 = Y e Y e T 63 T 63 + d 63
e 63 = Y f Y f + e 63 ,
f 63 = Y g Y g + f 63 ,
g 63 = Y h Y h + g 63 ,
h 63 = T 63 T 63 + f 1 e 63 ,   f 63 ,   g 63 f 1 e 63 ,   f 63 ,   g 63 + h 63 ,
where
T 63 = h 63 + Σ 1 e 63 + Ch e 63 ,   f 63 ,   g 63 + k 63 + w 63 ,
f 1 e 63 ,   f 63 ,   g 63 = Σ 1 e 63 + Ch e 63 ,   f 63 ,   g 63 .
Phase 2 proceeds as follows. First, 13 faults are injected into c 56 , and faulty outputs are obtained. For each faulty output Y , the corresponding faulty chaining value p 63 is calculated. Based on these values, the algebraic equations for the seven steps from 56 to 62 are constructed. Subsequently, STP solves them and finds the values of w 59 , w 60 , w 61 , w 61 , w 62 . Hao et al. claimed that they were successful in all of their 100 trials.
Second, 13 faults are injected into c 52 . For each faulty output Y , the faulty chaining value p 63 is calculated in the same way as above. For faulty p 63 and non-faulty p 63 , p 59 and p 59 are calculated, respectively, with recovered w 59 , w 60 , w 61 , w 62 . Then, based on p 59 and p 59 , algebraic equations for the seven steps from 52 to 58 are constructed. STP solves them and finds the values of w 55 , w 56 , w 57 , w 58 .
In a similar way, by injecting faults into c 48 and c 44 ,   w 51 ,   w 52 ,   w 53 ,   w 54 and w 47 ,   w 48 ,   w 49 ,   w 50 are recovered. The input message block m 0   m 1   m 15 can be calculated from the recovered w 47 ,     ,   w 62 according to the message schedule. Once the input message block is recovered, w 63 can be calculated. Next, p 64 can be calculated from p 63 and w 63 , and the input intermediate hash value p 0 = H p 64 is recovered.
In summary, by injecting 65 32-bit random faults in total (13 faults are injected five times), the whole input of the SHA-256 compression function can be recovered.

3. Results

3.1. Detailed Examination of AFA

We conducted computer experiments on various fault-injection conditions in the AFA for the SHA-256 compression function described in Section 2. In the experiments, we implemented the SHA-256 compression function in the C language and simulated fault injections. STP was used as an automatic tool, and CryptoMiniSat5 was used as a SAT solver. The experiments were performed on a PC with Intel(R) Xeon(R) Silver 4110 CPU @ 2.10 GHz, 32 G memory, and Ubuntu 18.04.3 LTS.
For Phase 1, we first injected 13 faults into each of the chaining values from a 60 to h 60 , and tried to recover as many chaining values p i = a i , b i , , h i as possible. The results are shown in Table 1. The computation time is the average of 100 trials. The results show that the fault injections into e 60 can recover more chaining values than the fault injections into other positions.
Next, we changed the number of faults injected into c 60 or e 60 in Phase1 and c 56 or e 56 in Phase 2 and measured the number of times the correct chaining values were recovered out of 100 trials. The results are shown in Table 2 and Table 3 for Phase 1 and Phase 2, respectively. For Phase 1, except for the cases where four or fewer faults were injected, the correct chaining values were recovered with higher probabilities when faults were injected into e 60 than when faults were injected into c 60 . For Phase 2, even when only three faults were injected into e 56 , all 100 trials were successful.
From the experimental results described above, the procedure of AFA with the smallest expected number of faults (with the cases of the colored parts in Table 2 and Table 3) is given below.
Phase 1: Inject five faults into e 60 and recover the chaining value p 63 .
Phase 2:
(1)
Inject three faults into e 56 and recover w 59 , w 60 , w 61 , and w 62 .
(2)
Inject three faults into e 52 and recover w 55 , w 56 , w 57 , and w 58 .
(3)
Inject three faults into e 48 and recover w 51 , w 52 , w 53 , and w 54 .
(4)
Inject three faults into e 44 and recover w 47 , w 48 , w 49 , and w 50 .
(5)
Calculate the input message block and intermediate hash value.
For the procedure, the expected number of faults is 18.1, and the computation time is about 35 min.

3.2. AFA for SHACAL-2

Since SHACAL-2 feeds the key to the message input of the SHA-256 compression function, the goal of the AFA is to recover the message input of the SHA-256 compression function. SHACAL-2 outputs the chaining value a 64 , b 64 , ,   h 64 as a ciphertext without the feed-forward operation of the SHA-256 compression function. Thus, we can start the AFA with Phase 2 in Section 2. The procedure is shown below:
(1)
Inject three faults into e 57 and recover w 60 , w 61 , w 62 , and w 63 .
(2)
Inject three faults into e 53 and recover w 56 , w 57 , w 58 , and w 59 .
(3)
Inject three faults into e 49 and recover w 52 , w 53 , w 54 , and w 55 .
(4)
Inject three faults into e 45 and recover w 48 , w 49 , w 50 , and w 51 .
(5)
Calculate the input message.
For the procedure with 12 fault injections in total, all of 100 trials were successful. The total computation time was about 33 min.

3.3. AFA for Almost Universal Forgery of chopMD-MAC

For almost universal forgery of the chopMD-MAC function, we recover the hash value input a 0 , b 0 , , h 0 of the SHA-256 compression function under the condition that the message input and only 128 bits of the 256-bit output are known. Since a 0 , b 0 , , h 0 can be calculated from p 63 and the message input, only p 63 has to be recovered.
We assumed that the chop function outputs four words among the eight-word output Y a ,   Y b ,   ,   Y h of the SHA-256 compression function. We injected 14 faults into c 60 and analyzed the SHA-256 compression function under the condition mentioned above. Since we found that the SHA-256 compression function does not propagate the faults to Y h , we excluded the cases that the chop function outputs Y h . We verified all the other 35 cases. Table 4 shows all the successful cases ( p 63 was recovered). The success rate is for 10 trials.

4. Conclusions

In this study, we changed the fault-injection condition of the AFA for the SHA-256 compression function in the study by Hao et al. and conducted computer experiments. We found that the whole input of the SHA-256 compression function can be recovered with a smaller number of faults. We also demonstrated the results of computer experiments on the AFA for SHACAL-2 and the AFA for the SHA-256 compression, which enabled almost universal forgery of chopMD-MAC. Future work should include an AFA for the SHA-512 compression function.

Author Contributions

Conceptualization, K.H. and S.H.; methodology, K.H. and S.H.; software, K.N. and K.H.; validation, K.N., K.H.; formal analysis, K.H.; investigation, K.N. and K.H.; resources, S.H.; data curation, K.N. and K.H.; writing—original draft preparation, K.N. and K.H.; writing—review and editing, S.H.; visualization, K.N.; supervision, S.H.; project administration, S.H.; funding acquisition, S.H. All authors have read and agreed to the published version of the manuscript.

Funding

The authors were supported in part by JSPS KAKENHI Grant Number JP18H05289. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript, or in the decision to publish the results.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

The data presented in this study are available on request from the corresponding author.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Boneh, D.; DeMillo, R.A.; Lipton, R.J. On the Importance of Checking Cryptographic Protocols for Faults (Extended Abstract). In Advances in Cryptology-EUROCRYPT ‘97, International Conference on the Theory and Application of Cryptographic Techniques, Konstanz, Germany, 11–15 May 1997; Fumy, W., Ed.; Springer: Berlin/Heidelberg, Germany, 1997; Volume 1233, pp. 37–51. [Google Scholar]
  2. Boneh, D.; DeMillo, R.A.; Lipton, R.J. On the Importance of Eliminating Errors in Cryptographic Computations. J. Cryptol. 2001, 14, 101–119. [Google Scholar] [CrossRef]
  3. Biham, E.; Shamir, A. Differential fault analysis of secret key cryptosystems. In Advances in Cryptology-CRYPTO ‘97, 17th Annual International Cryptology Conference, Santa Barbara, CA, USA, 17–21 August 1997; Kaliski, B.S., Ed.; Springer: Berlin/Heidelberg, Germany, 1997; Volume 1294, pp. 513–525. [Google Scholar]
  4. Dusart, P.; Letourneux, G.; Vivolo, O. Differential Fault Analysis on A.E.S. In Applied Cryptography and Network Security, First International Conference, ACNS 2003, Kunming, China, 16–19 October 2003; Zhou, J., Yung, M., Han, Y., Eds.; Springer: Berlin/Heidelberg, Germany, 2003; Volume 2846, pp. 293–306. [Google Scholar]
  5. Li, R.; Li, C.; Gong, C. Differential Fault Analysis on SHACAL-1. In Sixth International Workshop on Fault Diagnosis and Tolerance in Cryptography, FDTC 2009, Lausanne, Switzerland, 6 September 2009; Breveglieri, L., Koren, I., Naccache, D., Oswald, E., Seifert, J.P., Eds.; IEEE Computer Society: Washington, DC, USA, 2009; pp. 120–126. [Google Scholar]
  6. Kitae, J.; Lee, C. Differential Fault Analysis on Block Cipher LED-64. In Future Information Technology, Application, and Service; Hyuk, J., Park, J., Leung, V., Wang, C.L., Shon, T., Eds.; Springer: Dordrecht, The Netherland, 2012; Volume 164, pp. 747–755. [Google Scholar]
  7. Hemme, L.; Hoffmann, L. Differential Fault Analysis on the SHA1 Compression Function. In 2011 Workshop on Fault Diagnosis and Tolerance in Cryptography, FDTC 2011, Tokyo, Japan, 29 September 2011; Breveglieri, J., Guilley, S., Koren, I., Naccache, D., Takahashi, J., Eds.; IEEE Computer Society: Washington, DC, USA, 2011; pp. 54–62. [Google Scholar]
  8. Jinkeon, K.; Kitae, J.; Jaechul, S.; Seokhie, H. Differential Fault Analysis on HAS-160 Compression Function. In Computer Science and Its Applications; Yeo, S.S., Pan, Y., Lee, Y., Chang, H., Eds.; Springer: Dordrecht, The Netherland, 2012; Volume 203, pp. 97–105. [Google Scholar]
  9. Li, W.; Tao, Z.; Gu, D.; Wang, Y.; Liu, Z.; Liu, Y. Differential Fault Analysis on the MD5 Compression Function. J. Comput. 2013, 8, 2888–2894. [Google Scholar] [CrossRef]
  10. Courtois, N.; Ware, D.; Jackson, K. Fault-Algebraic Attacks on Inner Rounds of DES. In Proceedings of the eSmart 2010 European Smart Card Security Conference, Sophia Antipolis, France, 22–24 September 2010. [Google Scholar]
  11. Bouillaguet, C.; Derbez, P.; Fouque, P.A. Automatic Search of Attacks on Round-Reduced AES and Applications. In Advances in Cryptology-CRYPTO 2011—31st Annual Cryptology Conference, Santa Barbara, CA, USA, 14–18 August 2011; Rogaway, P., Ed.; Springer: Berlin/Heidelberg, Germany, 2011; Volume 6841, pp. 169–187. [Google Scholar]
  12. Zhao, X.; Guo, S.; Zhang, F.; Shi, Z.; Ma, C.; Wang, T. Improving and Evaluating Differential Fault Analysis on LED with Algebraic Techniques. In 2013 Workshop on Fault Diagnosis and Tolerance in Cryptography, Los Alamitos, CA, USA, 20 August 2013; Fischer, W., Schmidt, J.M., Eds.; IEEE Computer Society: Washington, DC, USA, 2013; pp. 41–51. [Google Scholar]
  13. Ganesh, V.; Dill, D.L. A Decision Procedure for Bit-Vectors and Arrays. In Computer Aided Verification, 19th International Conference, CAV 2007, Berlin, Germany, 3–7 July 2007; Damm, W., Hermanns, H., Eds.; Springer: Berlin/Heidelberg, Germany, 2007; Volume 4590, pp. 519–531. [Google Scholar]
  14. CryptoMiniSat5. Available online: https://www.msoos.org/cryptominisat5/ (accessed on 23 August 2021).
  15. National Institute of Standards and Technology. Secure Hash Standard (SHS). FIPS PUB 180-4; National Institute of Standards and Technology: Gaithersburg, MD, USA, 2015. [Google Scholar]
  16. National Institute of Standards and Technology. The Keyed-Hash Message Authentication Code (HMAC). FIPS PUB 198-1; National Institute of Standards and Technology: Gaithersburg, MD, USA, 2008. [Google Scholar]
  17. Jeong, K.; Lee, Y.; Sung, J.; Hong, S. Security Analysis of HMAC/NMAC by Using Fault Injection. J. Appl. Math. 2013, 2013, 101907:1–101907:6. [Google Scholar] [CrossRef]
  18. Hao, R.; Li, B.; Ma, B.; Song, L. Algebraic Fault Attack on the SHA-256 Compression Function. IJORCS 2014, 4, 1–9. [Google Scholar] [CrossRef] [Green Version]
  19. Nejati, S.; Horáček, J.; Gebotys, C.; Ganesh, V. Algebraic Fault Attack on SHA Hash Functions Using Programmatic SAT Solvers. In Principles and Practice of Constraint Programming—24th International Conference, CP 2018, Lille, France, 27–31 August 2018; Hooker, J., Ed.; Springer: Cham, Switzerland, 2018; Volume 11008, pp. 737–754. [Google Scholar]
  20. Modifications to NESSIE Submissions Selected for 2nd Phase. Available online: https://www.cosic.esat.kuleuven.be/nessie/tweaks (accessed on 23 August 2021).
  21. Naito, Y.; Sasaki, Y.; Wang, L.; Yasuda, K. Generic State-Recovery and Forgery Attacks on ChopMD-MAC and on NMAC/HMAC. In Advances in Information and Computer Security—8th International Workshop on Security, IWSEC 2013, Okinawa, Japan, 18–20 November 2013; Sakiyama, K., Terada, M., Eds.; Springer: Berlin/Heidelberg, Germany, 2013; Volume 8231, pp. 83–98. [Google Scholar]
Figure 1. SHA-256 compression function.
Figure 1. SHA-256 compression function.
Information 12 00433 g001
Figure 2. Round function of SHA-256 compression function.
Figure 2. Round function of SHA-256 compression function.
Information 12 00433 g002
Figure 3. chopMD-MAC function.
Figure 3. chopMD-MAC function.
Information 12 00433 g003
Table 1. Recovered chaining values and computation time.
Table 1. Recovered chaining values and computation time.
Fault PositionRecovered Chaining ValuesComputation Time [s]
a 60 none-
b 60 none-
c 60 p 63 20.3
d 60 p 63 ,   p 62 176.5
e 60 p 63 ,   p 62 ,   p 61 66.7
f 60 p 63 ,   p 62 82.0
g 60 p 63 109.6
h 60 p 63 ,   p 62 110.0
Table 2. Success rate and average time for each number of faults (Phase 1). “-” indicates that the result was not output within 72 h.
Table 2. Success rate and average time for each number of faults (Phase 1). “-” indicates that the result was not output within 72 h.
Phase 1Fault Position c 60 Fault   Position   e 60
Number of FaultsSuccess Rate
[%]
Average Time
[s]
Success Rate
[%]
Average Time
[s]
1410011.610039.9
139711.010041.7
129810.910041.0
1110011.210037.4
109610.59947.4
99311.210045.5
88810.810059.3
78010.39644.5
67512.68988.0
55013.782123.9
43031.3--
31112.5--
Table 3. Success rate and average time for each number of faults (Phase 2).
Table 3. Success rate and average time for each number of faults (Phase 2).
Phase 2Fault Position c 56 Fault   Position   e 56
Number of Faults Success Rate
[%]
Average Time
[s]
Success Rate
[%]
Average Time
[s]
141001.0010081.34
13970.9310083.48
12980.9110089.20
111000.8610095.11
10960.8410067.34
9930.7610072.71
8880.77100102.73
7800.7310098.08
6750.70100102.01
5500.6410087.25
4300.77100121.75
310.78100492.76
Table 4. Average time and success rate of the analysis for chop-MD.
Table 4. Average time and success rate of the analysis for chop-MD.
Output of Chop FunctionAverage Time [s]Success Rate [%]
Y a , Y b , Y d , Y e 1072100
Y a , Y b , Y c , Y e 46,34480
Y a , Y b , Y e , Y f 37,574100
Y a , Y b , Y e , Y g 49,95070
Y b , Y c , Y e , Y f 201290
Y b , Y d , Y e , Y f 15,44480
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Nakamura, K.; Hori, K.; Hirose, S. Algebraic Fault Analysis of SHA-256 Compression Function and Its Application. Information 2021, 12, 433. https://doi.org/10.3390/info12100433

AMA Style

Nakamura K, Hori K, Hirose S. Algebraic Fault Analysis of SHA-256 Compression Function and Its Application. Information. 2021; 12(10):433. https://doi.org/10.3390/info12100433

Chicago/Turabian Style

Nakamura, Kazuki, Koji Hori, and Shoichi Hirose. 2021. "Algebraic Fault Analysis of SHA-256 Compression Function and Its Application" Information 12, no. 10: 433. https://doi.org/10.3390/info12100433

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop