Chapter 6
Advanced Fault Analysis with Techniques from Cryptanalysis

As introduced in Chapter 5, fault analysis causes a faulty computation during the encryption process. The basic differential fault analysis (DFA) exploits the difference of the correct computation and the faulty computation and recovers the key using the principle of differential cryptanalysis. Once the desired fault is injected to the middle of the computation, the remaining analysis is basically the same as the theoretical cryptanalysis. In fact, many of the techniques developed for the theoretical cryptanalysis can also be used in fault analysis.

On the contrary, fault analysis requires to deal with several problems that do not appear in the theoretical cryptanalysis. For example, in the theoretical differential cryptanalysis, the value of input difference can be chosen by the attacker because the input difference is the one between two plaintexts that are chosen by the attacker in the chosen plaintext attack model. On the other hand, in the DFA, the value of input difference cannot be chosen by the attacker because the fault injection cannot be controlled by the attacker in the random fault model.

The purpose of this chapter is applying the techniques for the theoretical cryptanalysis to fault analysis in order to optimize the attack. There are two approaches of optimizing fault analysis.

  1. Relaxing the fault model: This is very important for fault analysis. To recover the key in practice, the fault model must match the effect that can actually be caused by physical fault injections. In general, the more expensive devices are used, the more accurate and complicated faults can be injected. Relaxing the fault model is meaningful in the sense that fault analysis becomes more feasible.
  2. Reducing the cost to recover the key: Different from theoretical cryptanalysis, the goal of the fault analysis is recovering the key in practice, rather than finding a shortcut attack, which is infeasible but theoretically faster than the brute force attack. For example, for AES with a 128-bit key, the attack with a computational cost of c6-math-0001 AES operations is regarded as a vulnerability of the AES algorithm in the sense of theoretical cryptanalysis, whereas operating c6-math-0002 AES encryptions are computationally infeasible withthe current computation resources, and thus is not important in the sense of fault analysis. There seems to exist a consensus in the current cryptographic community that performing c6-math-0003 operations is hard or at least too expensive for fault analysis. In another aspect, a small number of fault injections is very important for fault analysis. This is because fault analysis is an active attack, that is, it actually gives unusual physical impact to the device. The device can be broken by such a physical impact, and then the attacker faces two problems:
    1. 1. The attacker cannot continue the key recovery procedure.
    2. 2. The attacker may be detected by the owner of the device that the device is being attacked.

6.1 Optimized Differential Fault Analysis

The basic DFA in Chapter 5 only introduced the basic concept, but did not explain the full description of the attack or advanced techniques for optimization. This section aims to optimize DFA.

6.1.1 Relaxing Fault Model

Recall Figure 5.75 in Chapter 5, which is a differential propagation in basic DFA. The assumed fault model in this attack is as follows:

1 byte of fault is injected at the beginning of the 8th round of AES-128. The faulty byte position is known to attackers, while the faulty value is not known to attackers.

As mentioned before, relaxing the fault model is important for fault analysis, hence optimized DFA relaxes it as follows:

1 byte of fault is injected at the beginning of the 8th round of AES-128. The faulty byte position is unknown to attackers. The faulty value, either.

The assumption is relaxed in optimized DFA, that is, the faulty byte position becomes unknown to the attackers. This is very meaningful for applications in practice. The attacker indeed cannot detect the faulty byte position after some physical impact is added to the device. Several experimental reports also indicate that causing the fault on a fixed target byte position with probability 1 is infeasible. Hence, DFA that can deal with unknown faulty byte position is practically meaningful.

6.1.1.1 Obtaining c6-math-0004

The generation of correct and faulty ciphertexts is basically the same as basic DFA. The attacker assumes that a plaintext P is encrypted twice. For the first time, the attacker observes the corresponding ciphertext C without injecting fault, and achieves a pair of c6-math-0007. For the second time, the attacker injects a 1-byte fault at the beginning of round 8, and obtains the corresponding faulty ciphertext c6-math-0008. Note that the timing of the fault injection (the beginning of round 8) should be measured before the analysis. It is widely known that the timing can be measured quite accurately. In summary, the attacker obtains a pair of c6-math-0009 and the faulty ciphertexts c6-math-0010 generated by the fault satisfying the fault model.

6.1.2 Four Classes of Faulty Byte Positions

On the basis of this fault model, the differential propagation in Figure 5.75 is reviewed. The new differential propagation is depicted in Figure 6.1. From the new fault model, the 1-byte fault is injected at state c6-math-0011 but its position is unknown. The straightforward method for the attacker is guessing the faulty byte position exhaustively, and performing the basic DFA for all the guesses. Because the state consists of 16 bytes, the number of guesses is at most 16, which roughly concludes that DFA with the new fault model can finish with 16 times as much cost as basic DFA.

c6f001

Figure 6.1 Differential propagation for four classes of faulty byte position at c6-math-0012

The attack cost can be improved more. The 16 candidates of the faulty byte position are divided into the following four classes:

  1. Class 1: byte positions 0, 5, 10, and 15.
  2. Class 2: byte positions 3, 4, 9, and 14.
  3. Class 3: byte positions 2, 7, 8, and 13.
  4. Class 4: byte positions 1, 6, 11, and 12.

The numbers in each state in Figure 6.1 show the differential propagation for each class.

Four positions in each class can be analyzed with exactly the same procedure. Therefore, the attack cost can be at most four times as much as basic DFA. Suppose that the fault is injected to any 1 byte of c6-math-0013. The corresponding active byte position after the c6-math-0014 operation is 1 byte of c6-math-0015, and the corresponding active byte position after the c6-math-0016 operation is 1 byte of c6-math-0017. The important fact is that in any of the four cases, the input state to the c6-math-0018 operation, c6-math-0019, contains 1 active byte in the left most column. The MDS property of the c6-math-0020 operation guarantees that the number of active bytes in the input and the output columns is greater than or equal to 5. Therefore, in any of the four cases, all the 4 bytes in the left most column (labeled as “1”) of c6-math-0021 are active. In the remaining part of the attack, only the information of 4 active byte positions in c6-math-0022 is used. Thus, 4 faulty byte positions in class 1 are equivalent for the analysis. Similarly, 4 faulty byte positions in each of the other classes can be shown to be equivalent for the analysis. Classes 2, 3, and 4 contain 4 active bytes labeled as “2,” “3,” and “4” at c6-math-0023, respectively.

6.1.3 Recovering Subkey Candidates of c6-math-0024

The key recovery procedure is iterated four times by exhaustively guessing the class of the faulty byte position. In the following, the analysis for class 1 is explained.

DFA first aims to recover the last subkey c6-math-0025. The overall picture for this process is shown in Figure 6.2.

c6f002

Figure 6.2 Recovery of 4 bytes of c6-math-0026 for class 1

The attacker analyzes the difference of two encryption processes, one is for computing C and the other is for computing c6-math-0028. When the faulty byte position at c6-math-0029 belongs to class 1, 4 bytes of c6-math-0030 have nonzero difference. From the MDS property of the c6-math-0031 operation, all bytes of c6-math-0032 have nonzero difference. The number of possible differences for each input column is c6-math-0033, thus the number of possible differences for each output column is also c6-math-0034. Because the c6-math-0035 operation does not affect the difference, the same difference is preserved until c6-math-0036, which is equivalent to c6-math-0037. From the analysis so far, the input difference to the S-box in round 10, c6-math-0038, is determined uniquely for each possibility of c6-math-0039.

The output difference from the S-box in round 10, c6-math-0040, can be computed from the ciphertext pair c6-math-0041. C and c6-math-0043 are known values to the attacker, thus its difference c6-math-0044 can be computed. During the backward computation, the values are soon hidden by the last subkey XOR with c6-math-0045, however, the difference can still be traced. In fact c6-math-0046 can be computed by c6-math-0047.

As explained in differential cryptanalysis in Section 4.2, for a pair of input and output differences for S-box, the paired values can be obtained using the differential distribution table (DDT) of the AES S-box. The idea was introduced in Figure 4.22 as a technique for driving key suggestions without guess. For DFA, subkey candidates for c6-math-0048 are derived with this technique, and the analysis is processed column by column. The analysis for the left most column is stressed by bold line in Figure 6.2.

How to derive the paired values of the left most column of c6-math-0049 is explained below. The 4-byte output difference is uniquely fixed by c6-math-0050, and there are about c6-math-0051 choices for the 4-byte input difference of c6-math-0052. According to the DDT of the AES S-box, a pair of randomly determined input and output differences of the S-box has

  • two solutions with probability 126/256,
  • four solutions with probability 1/256, and
  • no solution with probability 129/256.

For the sake of simplicity, the above can be roughly approximated such that a pair of randomly determined input and output differences of the S-box has two solutions with probability 1/2, otherwise, the pair does not have a solution. A pair of input and output differences is called “matched” when they have solutions to satisfy its propagation. For each of the c6-math-0053 choices of c6-math-0054, the existence of the solution to achieve c6-math-0055 is checked with DDT. Because the matchis examined for 4 bytes, the probability that there exist solutions for all bytes is c6-math-0056. Once the match is verified for 4 bytes, 4 byte values can be fixed to any of the solutions. The number of solution for each byte is 2, and any combination of the solutions of 4 bytes can make a valid value of c6-math-0057. Thus, c6-math-0058 solutions of c6-math-0059 are obtained from each match. In total, c6-math-0060 choices of the input difference can match in all of the 4 bytes, and c6-math-0061 solutions are obtained, which yields c6-math-0062 values of the left most column of c6-math-0063.

c6-math-0064 values c6-math-0065 will move to c6-math-0066 by the subsequent c6-math-0067 operation. Finally, c6-math-0068 candidates of c6-math-0069 can be computed as

6.1 equation

6.1.3.1 Obtaining Subkey Candidates for Entire c6-math-0071

After obtaining c6-math-0072 candidates of c6-math-0073, the analysis is performed for the other columns independently. The analysis is almost the same. The only difference is that the input difference comes from a different byte position of c6-math-0074, which does not give significant impact to the attack procedure. Thus, c6-math-0075 candidates of c6-math-0076, c6-math-0077 candidates of c6-math-0078, and c6-math-0079 candidates of c6-math-0080 are obtained by iterating the same procedure for the second, third, and the fourth column of the c6-math-0081 operation in the last round.

6.1.3.2 Recovery of the Original Key c6-math-0082

The correct value of c6-math-0083 is now limited to c6-math-0084 candidates per diagonal, which makes c6-math-0085 candidates of the entire c6-math-0086. The correctness of those c6-math-0087 candidates can be verified by the exhaustive search. The attacker uses the pair of c6-math-0088. For each of the c6-math-0089 candidates of c6-math-0090, the attacker computes the corresponding c6-math-0091 by inverting the key schedule function. The correctness of the candidate can be checked by matching c6-math-0092 and C, where c6-math-0094 represents that plaintext P is processed by AES under the key c6-math-0096. This is a match of 128-bit values. With c6-math-0097 matching trials, only the correct key value can result in the match, and thus the correct key is recovered.

6.1.3.3 Remarks

The analysis of the subkey or key recovery is performed for each guess of the class of the faulty byte position. Hence, the procedure is iterated four times. If the guess of the class is wrong, the attacker fails the validity check for all of c6-math-0098 candidates of c6-math-0099. Only if the guess of the class is correct, the attacker obtains the correct suggestion of c6-math-0100.

6.1.4 Attack Procedure

The attack procedure in an algorithmic form is described in Algorithm 6.1.

6.1.4.1 Complexity Evaluation

In Algorithm 6.1, the computational complexity inside the loop of step 4 is c6-math-0127 column operations, which would require about 1/4 cost of the round function. Then, owing to the loop in step 3, the column-wise operations are iterated four times, which makes the cost inside the loop of step 3 c6-math-0128 round function operations. The computational cost for the loop of step 15 is c6-math-0129 AES computations. Finally, the computational cost for the loop of step 2 becomes c6-math-0130 AES computations.

The data complexity is a valid pair of plaintext P and its correct ciphertext C and the faulty ciphertext c6-math-0133. The number of fault injection is only 1. The required memory amount is storing c6-math-0134 32-bit values for c6-math-0135, which is about c6-math-0136 AES state values.

The attack complexity is summarized as follows:

6.2 equation

The attack complexity is feasible, which meets the requirement for side-channel analysis and fault analysis.

6.1.5 Probabilistic Fault Injection

In a real environment, injecting the fault in the byte position with probability 1 is hard. For example,

  • The fault may be injected in a different timing.
  • The fault may be injected in several bytes nearby the target byte position.

If the desired fault is not guaranteed with probability 1, the attack requires more fault injections and its complexity increases. Fault injection that can succeed only probabilistically is called noisy fault injection, meaning that the intended fault only occurs with probability p, and the useless fault (noise) is obtained with probability c6-math-0139.

Optimized DFA has a good characteristic against noisy fault injection. Namely, it still can recover the key practically. The attacker performs c6-math-0140 fault injections and collects c6-math-0141 tuples of c6-math-0142. Because the impact of the fault at state c6-math-0143 propagates to all bytes at the ciphertext, there is no method to efficiently detect the desired or undesired fault injection. Thus, the attacker analyzes all the tuples by assuming that each tuple is obtained by the desired fault injection. Note that if the pair is the wrong pair, the key recovery procedure does not return anything, and thus the attacker eventually finds the right tuple caused by the desired fault injection.

This increases the attack cost only linearly to the number of pairs analyzed. In summary, the key is recovered with the following cost:

6.3 equation

According to the experiment of the fault injection, p is not so small. Assuming c6-math-0146 is sufficient. Then, the attack complexity is only 10 times of the original optimized DFA, which is still feasible.

 

6.1.6 Optimized DFA with the c6-math-0151 Operation in the Last Round c6-math-0152

It is often misunderstood that the absence of the c6-math-0153 operation in the last round enables optimized DFA to recover the last round key efficiently. In other words, it is often misunderstood that, if the AES encryption algorithm computed the c6-math-0154 operation in the last round, efficient DFA could be prevented.

This section explains that, even with the c6-math-0155 operation in the last round, optimized DFA can recover the key with exactly the same cost as the case of the original AES. Note that the modified AES is inconsistent with the original AES, namely, they do not return the same ciphertext for the same pair of plaintext and key. The purpose of this discussion is understanding the impact of the last c6-math-0156 operation.

For clarity, the structure of the modified AES along with the differential characteristic for DFA is described in Figure 6.3.

c6f003

Figure 6.3 Differential propagation against modified AES

6.1.6.1 Hardness of Straightforward Application to Modified AES

What does cause the misunderstanding? In order to explain it, Figure 6.2 and Algorithm 6.1 are reviewed. Optimized DFA for the original AES analyzes the internal state value column by column over the c6-math-0157 operation in round 10, and then the corresponding 4-byte subkey candidates of c6-math-0158 are obtained. This corresponds to step 9 of Algorithm 6.1, and is depicted in Figure 6.2.

In the original AES, computing 4 bytes of c6-math-0159 in the byte position c6-math-0160 can be trivially done. However, if the c6-math-0161 operation is used in round 10, the computation becomes as depicted in Figure 6.4. Namely, the 4 bytes in a column obtained at state c6-math-0162 will move to four different columns with the subsequent c6-math-0163 operation. Then, the attacker cannot compute the subsequent c6-math-0164 operation without knowing the values of other bytes. This prevents the attacker from obtaining 4 byte values of c6-math-0165.

c6f004

Figure 6.4 Impossibility of straightforward recovery of c6-math-0166 for class 1

Although optimized DFA on the original AES cannot be applied to the modified AES in a straightforward manner, the attack procedure can be modified so that the key is recovered with the same efficiency. There are two approaches of modifying the attack procedure.

6.1.6.2 Storing Internal State Values

The idea is very simple. To recover the key, storing 4 bytes of c6-math-0167 after the analysis of each column over the c6-math-0168 operation in the last round is not necessary.

In the original AES, if the internal state value of c6-math-0169 is recovered, the corresponding c6-math-0170 is obtained accordingly using the ciphertext. In other words, the internal state value of c6-math-0171 can be converted into the c6-math-0172 by 1-to-1 mapping. With this property, the core idea of optimized DFA for the original AES can be summarized in Algorithm 6.2.

 

Considering that the conversion from the internal state value of c6-math-0185 to c6-math-0186 can be applied at any timing, the pseudocode can be changed as shown in Algorithm 6.3.

Nothing is changed but for the timing of the conversion from c6-math-0187 to c6-math-0188. The important learning from those two algorithms is that the mechanism of reducing the candidates in optimized DFA is obtaining only c6-math-0189 candidates of c6-math-0190 using differential cryptanalysis. It is easy to see that storing 4 bytes of c6-math-0191 for each diagonal is not the main mechanism.

With this observation, DFA for the modified AES with the c6-math-0192 operation in the last round is constructed. Adding the c6-math-0193 operation in the last round does not affect the core mechanism of DFA, that is, reducing the internal state values during the c6-math-0194 operation in the last round. Hence, the key should be recovered as efficiently as the original AES. Actually, the procedure in Algorithm 6.2 can be applied to the modified AES quite simply. After c6-math-0195 internal state values are obtained as a solution of the differential transition through the S-box for each column, the attacker stores the corresponding 4 bytes in the diagonal of state c6-math-0196. After obtaining c6-math-0197 candidates for each diagonal of c6-math-0198, the attacker generates the exhaustive combinations of four diagonals, which generates c6-math-0199 candidates of the entire c6-math-0200. For each of the c6-math-0201 values of c6-math-0202, the last subkey c6-math-0203 is recovered as

6.4 equation

Then, the corresponding secret key c6-math-0205 can be computed by inverting the key schedule function, and its correctness can be verified by checking if C matches c6-math-0207 with a pair of plaintext and ciphertext c6-math-0208. The attack is depicted in Figure 6.5.

c6f005

Figure 6.5 Storing c6-math-0209 internal state values for each diagonal against modified AES

The procedure of DFA against the modified AES with the c6-math-0210 operation in the last round is given in Algorithm 6.4.

Owing to the similarity of the procedure, the detailed complexity evaluation is omitted. The correct c6-math-0234 can be recovered with the same complexity as Algorithm 6.1.

6.1.6.3 Equivalent Transformation of Subkey Addition

The first approach with storing the internal state values illustrated the core mechanism of DFA very well. The second approach does not mention the core mechanism but seems to be much simpler.

In the second approach, the technique of the equivalent transformation of subkey addition is used. This technique was used for the impossible differential cryptanalysis in Section 4.3, which represents the computations of the AES round function in an alternative method. In particular, the order of two linear computations c6-math-0235 and c6-math-0236 is exchanged.

By taking c6-math-0237 and c6-math-0238 as input, the computation for round 10 can be written as follows:

6.5 equation

Let c6-math-0240 be c6-math-0241. Then, the above-mentioned equation can be converted as follows:

6.6 equation

Namely, the order of the c6-math-0243 and c6-math-0244 operations is exchanged. The computation structure along with the differential propagation for DFA is described in Figure 6.6.

c6f006

Figure 6.6 DFA against modified AES with equivalent transformation of subkey addition

For each of the obtained ciphertexts C and c6-math-0246, the corresponding state c6-math-0247 is easily computed by the inverse c6-math-0248 operation. Because the order of the c6-math-0249 and c6-math-0250 operations is exchanged, c6-math-0251 can be computed without the knowledge of the key.

Then, the remaining structure is almost the same as the DFA against the original AES, which is drawn in Figure 6.1. The only difference is that the recovered subkey is c6-math-0252, instead of c6-math-0253. However, when c6-math-0254 candidates of c6-math-0255 are exhaustively examined in the original AES, the attacker can first apply the c6-math-0256 operation to c6-math-0257, and then invert it with the key schedule function. Finally, the correct c6-math-0258 can be recovered with the same complexity as DFA against the original AES.

6.1.7 Countermeasures against DFA and Motivation of Advanced DFA

As explained in this section, DFA is a strong attack, and thus the countermeasures are often implemented. The details will be explained in Chapter 7. An example is that the system computes the same plaintext twice and checks if the results of the two computations are always the same. If the computation results do not match, the system halts the computation immediately, and never outputs the faulty ciphertext c6-math-0259. While this countermeasure can detect DFA, the efficiency loss is not small. The overhead is 100%, which is not acceptable for some environment.

In order to minimize the overhead, the number of rounds computed twice can be minimized. If the fault injection can be prevented for the last three rounds, the DFA cannot recover the key efficiently. Considering DFA against the AES decryption algorithm, protecting the first three rounds and the last three rounds, in total protecting six rounds, is enough to prevent DFA, which reduces the overhead to 60%.

Given the situation, cryptographers have developed other types of DFA in order to recover the key even if the first and last three rounds are protected. In the remaining sections, such advanced DFA will be explained.

6.2 Impossible Differential Fault Analysis

As long as the fault is injected during the last three rounds under the random byte-fault model, the optimized DFA is highly efficient to be practical, and thus the motivation of developing other types of fault analysis is weak. It is assumed that the last three rounds of the AES encryption are protected against the fault injection. The fault can be injected only in the 7th round or earlier during the encryption process. This section explains that the impossible differential cryptanalysis enables the attacker to recover the key with byte fault injected at the beginning of the seventh round. Hereafter, the combination of DFA with impossible differential cryptanalysis is called impossible DFA.

6.2.1 Fault Model

Because the last three rounds are protected, the attacker injects the fault at the beginning of the 7th round c6-math-0260. Two types of fault model can be considered, and the attack cost depends on the strength of the fault model assumed. The first fault model is as follows:

1 byte of fault is injected at the beginning of the 7th round of AES-128. The faulty byte position is unknown to attackers. The faulty value, either. Every time the fault is injected, the faulty byte position may change, and the (unknown) fault value is assumed to be determined accordingly to the uniform distribution for 1-byte values.

The second fault model is as follows:

1 byte of fault is injected at the beginning of the 7th round of AES-128. The faulty byte position is unknown to attackers. The faulty value, either. Every time the fault is injected, the attacker can cause the fault in the same but unknown byte position. Every time the fault is injected, the (unknown) fault value is assumed to be determined accordingly to the uniform distribution for 1-byte values.

Compared with DFA, impossible DFA requires more fault injections. Thus, the assumption for multiple fault injections is added in the fault model. The second fault model assumes stronger property than the first one. Indeed, owing to the assumed ability, that is, the ability of targeting an identical faulty byte position, the attack cost can be smaller than the one in the first model. In the following, impossible DFA with the first assumption is explained. Then, impossible DFA with the second assumption is explained.

6.2.2 Impossible DFA with Unknown Faulty Byte Positions

Similarly to impossible differential cryptanalysis in Section 4.3, impossible DFA requires to collect several pairs. The attack assumes that several plaintexts c6-math-0261 for some i are available, and each of them is encrypted twice. For each plaintext, for the first time, the attacker observes the corresponding ciphertext C without injecting fault, and achieves a pair of c6-math-0264. For the second time, the attacker injects 1-byte fault at the beginning of round 7, and obtains the corresponding faulty ciphertext c6-math-0265. In summary, the attacker obtains a tuple of c6-math-0266 for some i generated by the fault satisfying the first fault model (faulty byte position is unknown and may change every time).

6.2.2.1 Differential Characteristic

On the basis of the fault model, the differential propagation during the last four rounds of AES is shown in Figure 6.7.

c6f007

Figure 6.7 Differential propagation for impossible DFA

The differential propagation starts from the 1-byte fault injected at state c6-math-0268, but its position is unknown. An important property is that for any active byte position at state c6-math-0269, all bytes become active, that is, fully active, after two rounds. (The detailed analysis was given in Section 4.3, and thus omitted here.) Such a probability 1 property is important for impossible differential cryptanalysis. In Figure 6.7, the fully active states are marked by dark gray. The fully active state will be broken after the c6-math-0270 operation in round 9 with a relatively low probability. The probability that a byte becomes inactive is about c6-math-0271 for each byte. Hence, the ciphertext may not be fully active. In Figure 6.7, the bytes that can be either active or inactive are marked by light gray.

6.2.2.2 Mechanism of Reducing Subkey Space

The mechanism of reducing the subkey space of the last subkey c6-math-0272 is principally the same as impossible differential cryptanalysis for theoretical cryptanalysis. The attacker applies the partial decryption for the ciphertext pair by guessing the last subkey c6-math-0273, and obtains the corresponding difference at state c6-math-0274. For wrong guesses, the result of the partial decryption behaves randomly, and thus some bytes at c6-math-0275 will have no difference. This contradicts the differential propagation depicted in Figure 6.7. Hence, the guess is detected to be wrong and can be discarded from the subkey space. With several pairs of ciphertexts c6-math-0276, the attacker iterates the analysis until only one value remains in the subkey space. The mechanism of impossible DFA is described in Figure 6.8.

c6f008

Figure 6.8 Key recovery mechanism of impossible DFA

6.2.2.3 Key Recovery Procedure

As depicted in Figure 6.8, the subkey value of c6-math-0277 is recovered for each of the diagonally located 4 bytes. The same procedure to recover 4 bytes can be applied in parallel to recover the other 12 bytes. In the following, to be consistent with Figure 6.8, the procedure to recover c6-math-0278 is explained.

In a simple method, the attacker first collects several pairs of correct and faulty ciphertexts. Let N be the number of collected pairs. Then, the ciphertext pairs are denoted by c6-math-0280.

  1. Subkey space c6-math-0281 for c6-math-0282 is initialized to all the possible c6-math-0283 values.
  2. For each of c6-math-0284, the attacker exhaustively guesses the subkey value of c6-math-0285 and computes the corresponding difference at state c6-math-0286.
    1. If all bytes are active, do nothing (keep the guess in c6-math-0287).
    2. If at least one byte is inactive, discard the guess from c6-math-0288.
  3. Repeat the above until the subkey space c6-math-0289 becomes 1.

The above-mentioned procedure requires the computational cost of c6-math-0290 inverse round function computations. The attack works, but has a room to be improved owing to step 2a, which does nothing as a result of some computation. This part can be optimized so that ineffective computations can be avoided. In short, the attacker chooses contradictory difference at state c6-math-0291 without guessing the subkey values, and then derive the corresponding internal state values through the c6-math-0292 computation in round 10 to derive the corresponding wrong subkey.

In the optimized procedure, the attacker first prepares the look-up table T of c6-math-0294 target differences for c6-math-0295. The construction of T starts from choosing c6-math-0297 impossible difference at c6-math-0298. Namely, all the differences with at least one inactive byte are collected. When the byte position c6-math-0299 is chosen to be inactive and the other three bytes are active, there are c6-math-0300 ways to choose the active 3-byte differences. Similarly, roughly c6-math-0301 differences are obtained for the cases that the inactive-byte position is set to byte positions 1, 2, and 3. In total, c6-math-0302 impossible differences are chosen. Actually, there are c6-math-0303 differences for two inactive-byte patterns and c6-math-0304 differences for three inactive-byte patterns. Because they only have a small factor, those differential patterns are ignored here for simplifying the description. For the c6-math-0305 impossible differences for c6-math-0306, the corresponding difference at c6-math-0307 can uniquely be computed by linearly propagating the differences. Those are stored in the look-up table T. In detail, T is constructed by Algorithm 6.5.

Using the c6-math-0328 target differences in the look-up table T, only the wrong subkey guesses are obtained for each correct and faulty ciphertexts pair c6-math-0330. From the c6-math-0331, the corresponding c6-math-0332 can be uniquely computed owing to the linearityof the operations. Then, for each of the target difference in T, the corresponding internal state values are obtained by looking up the DDT of the S-box. Each S-box has about two solutions satisfying the given input and output differences with probability about c6-math-0334. After trying c6-math-0335 target difference for c6-math-0336, c6-math-0337 target differences have solutions for all the 4 bytes, and the number of obtained solutions is c6-math-0338. In the end, c6-math-0339 wrong key suggestions are obtained for each pair of c6-math-0340.

Let N be the number of collected ciphertext pairs, which are determined later. The optimized attack procedure is summarized in Algorithm 6.6.

6.2.2.4 Evaluation of the Number of Ciphertext Pairs

In the following, the number of ciphertext pairs necessary to reduce the subkey space to 1 is evaluated. Because each pair generates c6-math-0363 wrong subkey suggestions, by analyzing c6-math-0364 pairs, c6-math-0365 wrong subkey suggestions are obtained. However, different ciphertext pairs may derive identical wrong key suggestions. Considering the overlap, more than c6-math-0366 ciphertext pairs are necessary. The analysis of the number of the necessary pairs is the same as impossible differential cryptanalysis in Section 4.3.

At the initial stage, the size of the remaining subkey space is c6-math-0367. By deriving one wrong key suggestion, the size of the remaining subkey space becomes

6.7 equation

After discarding r wrong key suggestions, the size of the remaining subkey space becomes

6.8 equation

When the number of wrong key suggestions is c6-math-0371, the size of the remaining subkey space becomes

For c6-math-0373, Equation (6.9) becomes c6-math-0374. Therefore, the size of the subkey space is reduced to 1 by obtaining c6-math-0375 wrong key suggestions. The suitable choice of the number of ciphertexts pairs, N, can be obtained by the following inequation:

which concludes that c6-math-0378 is the necessary number of correct and faulty ciphertext pairs.

6.2.2.5 Complexity Evaluation

Algorithm 6.5 firstly runs before the attack starts. Its computational cost is c6-math-0379 round function computations and its memory requirement is c6-math-0380 4-byte values. Because it is performed offline, the data complexity is 0 and the number of fault injection is 0 at this stage. In any type of the attack complexity, Algorithm 6.5 requires much smaller cost than Algorithm 6.6.

In Algorithm 6.6, initializing the subkey space c6-math-0381 requires a memory to store c6-math-0382 4-byte values. The computational complexity inside the loop of step 4 is c6-math-0383 one-round operations for a single column, which would require about 1/4 cost of the round function. Then, the column-wise operations of Algorithm 6.6 are iterated four times for all the columns, which makes the entire computational cost c6-math-0384 round function operations.

c6-math-0385 different plaintexts c6-math-0386 must be processed twice to obtain the corresponding c6-math-0387 and c6-math-0388. Thus, the data complexity is c6-math-0389 plaintexts. The number of fault injection is c6-math-0390.

The attack complexity is summarized as follows:

The attack complexity is feasible, which meets the requirement for side-channel analysis and fault analysis.

6.2.2.6 Memory-Efficient Attack Variant

The impossible DFA starts with preparing the subkey space c6-math-0392 containing c6-math-0393 values. It seems to indicate that the attack cannot work without a memory to store c6-math-0394 4-byte values. However, the impossible DFA can recover the subkey with a much less memory requirement. This variant of the attack requires a memory only for collecting correct and faulty ciphertext pairs. Hence, it only requires c6-math-0395 ciphertexts, which is equivalent to c6-math-0396 bytes, although it requires a little bit more computational cost than Algorithm 6.6.

The attack procedure is simple. Suppose that the attacker collects c6-math-0397 correct and faulty ciphertext pairs c6-math-0398 for c6-math-0399. The attacker guesses the 4 bytes of c6-math-0400 exhaustively, and then computes the corresponding difference at c6-math-0401 for each ciphertext pair. If the guess is wrong, the result will have inactive bytes for at least a pair. If the guess is correct, the result is always fully active for all the c6-math-0402 pairs. Thus, the correct subkey values are obtained. The attack procedure for the memory-efficient attack variant is given in Algorithm 6.7.

Algorithm 6.7 requires the same data complexity as Algorithm 6.6. The memory requirement is reduced to c6-math-0416 for storing correct and faulty ciphertext pairs. The computational cost increases to c6-math-0417 round function computations. Note that Algorithm 6.5 cannot be performed with the limited memory requirement. In summary, the attack complexity of the memory-efficient attack variant is as follows:

6.12 equation

6.2.3 Impossible DFA with Fixed Faulty Byte Position

Suppose that the attacker can target an identical byte position for every fault injection trials. The assumption of such a stronger attacker's ability enables to improve impossible DFA.

The attack assumes that an identical plaintext P is encrypted many times. For the first time, the attacker observes the corresponding ciphertext without injecting fault. Let c6-math-0420 be the correct ciphertext. For the second time or later, the attacker injects 1-byte fault at the beginning of round 7 in the same byte position. The faulty byte position is not necessarily to be known to the attacker as long as the position is fixed. It is assumed that the injected fault value is determined accordingly to the uniform distribution. Let c6-math-0421 be the obtained faulty ciphertext with the ith fault injection. In summary, after the encryption of the plaintext i times and fault injection c6-math-0424 times, the attacker obtains i ciphertexts c6-math-0426. Note that the attack in this fault model does not distinguish whether the obtain ciphertext is correct or faulty. The differential propagation in this fault model is described in Figure 6.9.

c6f009

Figure 6.9 Differential propagation for impossible DFA with fixed faulty byte position. The figure describes the case in which the byte c6-math-0427 has a fault. The attack can work for any byte position as long as the faulty byte position is fixed. Moreover, the attacker does not have to know the faulty byte position as long as it is fixed.

6.2.3.1 Reducing Data Complexity

The core mechanism and the subkey recovery procedure of this attack is exactly the same as the one in the previous fault model. The main improvement that can be utilized in this fault model is that any of the two ciphertexts among c6-math-0428 can be used to derive wrong subkey suggestions. To be more precise, from i distinct ciphertexts,

equation

ciphertext pairs are constructed, and all of the c6-math-0431 pairs can suggest the wrong subkey suggestions.

Recall that impossible DFA requires to collect c6-math-0432 ciphertext pairs in the previous fault model in Equation (6.10). The data complexity i and the number of fault injections c6-math-0434 in this model can be computed as

equation

By setting c6-math-0436, c6-math-0437. In the end, the attack complexity can be reduced as follows:

6.13 equation

6.3 Integral Differential Fault Analysis

Similarly to impossible DFA, the motivation is to attack the AES implementation in which the last three rounds of the AES encryption are protected against the fault injection. Thus, the fault can be injected only in the 7th round or earlier during the encryption process. This section explains that the integral cryptanalysis enables the attacker to recover the key with fault injected at the beginning of the 7th round. Hereafter, the combination of DFA with integral cryptanalysis is called integral DFA.

Integral DFA has been improved several times. The first integral DFA assumes the bit-fault model, in which the attacker can flip any bit of the internal state with probability 1. The fault model is very strong if the real environment is considered. Then, the bit-fault model was relaxed to the random byte model with more sophisticated analysis of the key recovery mechanism. Finally, the fault model in integral DFA was further relaxed to accept the noise during fault injection trials. Integral DFA can recover the key even if the fault injection can succeed only probabilistically.

6.3.1 Fault Model

Because the last three rounds are protected, the attacker injects the fault at the beginning of the 7th round c6-math-0439. Three types of fault model have been considered depending on the progress of the attack theory. The first fault model is the so-called bit-fault model, explained as follows:

1 bit of fault is injected at the beginning of the 7th round of AES-128. The attacker can choose the target bit and the value of the faulty bit is flipped owing to the fault.

The second fault model is a random byte-fault model on the fixed unknown byte position, which is the same as the second fault model in impossible DFA:

1 byte of fault is injected at the beginning of the 7th round of AES-128. The faulty byte position is unknown to attackers. The faulty value, either. Every time the fault is injected, the attacker can cause the fault in the same but unknown byte position. Everytime the fault is injected, the (unknown) fault value is assumed to be determined accordingly to the uniform distribution for 1-byte values.

The third fault model is a noisy random byte-fault model on the fixed unknown byte position, explained as follows:

1 byte of fault is intended to be injected at the beginning of the 7th round of AES-128. The attacker intends to target an identical byte position for every fault injection trials. The faulty byte position is unknown to attackers. The faulty value, either. The fault injecting attempt may fail with some probability. The attacker cannot know whether or not the intended fault is injected. Every time the intended fault is injected, the (unknown) fault value is assumed to be determined accordingly to the uniform distribution for 1-byte values.

The assumption for the attacker's ability is getting more and more relaxed. In the noisy random fault model, the attacker obtains a set of ciphertexts, in which some of them are derived by the intended fault and the others are completely random noise. The attacker cannot distinguish which of the collected ciphertexts are the intended ones, but still needs to recover the key.

6.3.2 Integral DFA with Bit-Fault Model

Recall integral cryptanalysis in Section 4.4, in particular a set of 256 plaintexts in Equation (4.160). The attack requires to collect a set of 256 intermediate values in which only 1 byte of the state takes all the 256 possible values and the other 15 bytes are fixed to the unique value among 256 intermediate values.

The attack assumes that an identical plaintext P is encrypted at least 256 times under the fixed key. For the first time, the attacker observes the corresponding ciphertext c6-math-0441 without injecting fault. For the second time, the attacker injects 1-bit fault to the least significant bit of the target byte so that the second state value has difference 1 compared to the original state value. The attacker obtains the corresponding ciphertext c6-math-0442. For the third time, the attacker injects 1-bit fault to the second least significant bit of the target byte so that the third state value has difference 2 compared to the original state value. The attacker obtains the corresponding ciphertext c6-math-0443. For the fourth time, the attacker injects 1-bit faultto the least significant bit and the second least significant bit of the target byte simultaneously so that the second state value has difference 3 compared to the original state value. The attacker obtains the corresponding ciphertext c6-math-0444. This procedure is iterated 255 times to collect 256 internal state values containing 256 different values on the target byte of the state at the beginning of round 7. In summary, the attacker obtains a tuple of c6-math-0445. The attacker does not have to know the faulty byte position as long as the target faulty bit is located in the same byte position. Note that the attack in this fault model does not distinguish whether the obtain ciphertext is correct or faulty.

6.3.2.1 Integral Property

The collected 256 intermediate state values are propagated toward the ciphertext. With the same notations as Section 4.4, the 2.5-round integral property from round 7 is shown in Figure 6.10.

c6f010

Figure 6.10 Integral property for integral DFA in bit fault model

The propagation of the property up to state c6-math-0446 is exactly the same as the theoretical cryptanalysis in Section 4.4. Namely, all bytes have the “all” property at c6-math-0447. In round 9, the order of the c6-math-0448 and c6-math-0449 operations is exchanged by linearly transforming c6-math-0450. Because the subkey XOR does not affect the integral property, the all property is maintained in all bytes at state c6-math-0451.

In Figure 6.10, the propagation of the integral property finishes at state c6-math-0452, while the theoretical cryptanalysis in Section 4.4 propagates over one more c6-math-0453 operation. Recall Figure 4.41. After the subsequent c6-math-0454 operation, all bytes still hold the “balanced” property. Actually, the same analysis can be applied about the propagation in integral DFA. Namely, all bytes at state c6-math-0455 in Figure 6.10 satisfy the balanced property.

Why such a property is not considered in integral DFA? The problem here is that the balanced property occurs even for wrong guesses with a relatively high probability. For a wrong guess, the sum of the decryption results among 256 texts can be 0 in each byte with probability c6-math-0456, which may not be enough to reduce the subkey space. In theoretical cryptanalysis, the goal of the attacker is recovering the key faster than the exhaustive search. The feasibility of the attack in practice is not an important issue. However, in side-channel analysis, the goal is recovering the key in practice, which may prefer a much stronger property than the one used in theoretical cryptanalysis.

6.3.2.2 Key Recovery Procedure

The mechanism of reducing the subkey space of the last subkey c6-math-0457 is similar to the theoretical integral cryptanalysis, but the subkey space can be reduced much faster. The attacker first collects 256 ciphertexts c6-math-0458, in which the corresponding internal state at 1 byte of c6-math-0459 takes all 256 values owing to the bit fault.

In order to simplify the attack evaluation as much as possible, the order of the c6-math-0460 operation and c6-math-0461 is exchanged by applying the linear transformation c6-math-0462 to subkey c6-math-0463. Then, the partial decryption from the ciphertext to state c6-math-0464 becomes as Figure 6.11.

c6f011

Figure 6.11 Key recovery procedure for integral DFA

c6-math-0465 is converted to c6-math-0466 by the inverse of the c6-math-0467 operation. Hereafter, integral DFA first aims to recover the value of c6-math-0468. Note that if c6-math-0469 is recovered, the corresponding c6-math-0470 can be computed easily, and eventually the original key c6-math-0471 is recovered by computing the inverse of the key schedule function. Not only c6-math-0472, but also each ciphertext is converted by the inverse of c6-math-0473 operation. Hereafter, the converted ciphertexts are renamed as c6-math-0474. During the key recovery procedure, the converted ciphertexts are used instead of the real ciphertexts.

Because the c6-math-0475 operation in round 10 is ignored now, the partial decryption from converted ciphertexts to c6-math-0476 is done column by column. The related bytes to the analysis of the first column are stressed by bold line in Figure 6.11.

The attacker exhaustively guesses the first column of c6-math-0477, and performs the partial decryption for 256 converted ciphertexts. Let c6-math-0478 be the 4 byte values of c6-math-0479 corresponding to c6-math-0480. For each guess, the attacker computes c6-math-0481 for c6-math-0482 and stores the results. Then, the attacker checks if c6-math-0483 for c6-math-0484 covers all the 256 possibilities. Similarly, the occurrence of the same event is checked for byte positions c6-math-0485, and c6-math-0486. Because the bit-fault model can inject the fault on a target bit with probability 1, the 256 texts in the set always satisfy the “all” property in state c6-math-0487. Therefore, if the guess is correct, the results of the partial decryption up to c6-math-0488 for 256 ciphertexts will contain all the 256 values in each byte. If the guess is wrong, the results of the partial decryption show a random behavior. The probability that 256 texts will result in 256 different state values is very low (later evaluated in details). From this reason, the attack can recover the correct value of c6-math-0489.

6.3.2.3 Evaluation of the Remaining Subkey Space

In integral DFA, if the guess of c6-math-0490 is correct, the results of the partial decryption always satisfy the “all” property at state c6-math-0491. Hence, false negatives never occur. On the other hand, the “all” property at state c6-math-0492 may happen to be satisfied with a low probability for wrong guesses. Thus, it is necessary to evaluate the probability of the false positive.

Assume that the partial decryption of c6-math-0493 with a wrong guess of c6-math-0494 behaves randomly and independently for different i. Then, the occurrence of false positives in a single byte of c6-math-0496 is equivalent to the occurrence of the following event.

Let c6-math-0497 be a byte value space, that is, c6-math-0498. Let “random pick up” be a procedure to randomly choose 1 element from c6-math-0499 according to the uniform distribution. The false positive in a single byte is equivalent to the event that after doing the random pick up 256 times, all of the 256 elements are chosen once.

The random pick up trial corresponds to obtaining a result of the partial decryption in one byte for one ciphertext. The evaluation of the occurrence of this event is widely known. In the first pick up, any value can be chosen. Thus, the success probability of the first pick up is c6-math-0500. In the second pick up, any value but for the already appeared one can be chosen. Thus, the success probability of the second pick up is c6-math-0501. Similarly, the success probability for the c6-math-0502th pick up is c6-math-0503. In the end, the probability of the event is evaluated as

6.14 equation

This test is applied to 4 bytes in a column simultaneously. Thus, the probability of the false positive of this attack is

The probability of the false positive is negligible, which indicates that only the correct guess can satisfy the “all” property at 4 bytes of state c6-math-0506.

6.3.2.4 Attack Procedure

The attack procedure of integral DFA in the bit-fault model is described in an algorithmic form in Algorithm 6.8.

After the fist column of c6-math-0527 is recovered, the same procedure is iterated three times in order to recover the second, the third, and the fourth column of c6-math-0528. Then, c6-math-0529 is computed by c6-math-0530, and eventually c6-math-0531 is recovered by computing the inverse of the key schedule function.

6.3.2.5 Complexity Evaluation

Owing to the exhaustive guess of c6-math-0532 at step 4 and 256 converted ciphertexts at step 5, the computational cost of this attack is about c6-math-0533 round function computations for one column. After iterating Algorithm 6.8 four times, the computational cost becomes c6-math-0534 round function computations, which is equivalent to c6-math-0535 AES computations. The memory complexity is only 256 state values. Regarding the data complexity, the same plaintext must be encrypted 256 times. The attacker needs to cause intended bit faults for 255 times out of 256 opportunities. In the end, the attack complexity is summarized as follows:

6.16 equation

The attack complexity is feasible, which meets the requirement for side-channel analysis and fault analysis.

6.3.3 Integral DFA with Random Byte-Fault Model

Similarly to the bit-fault model, the attack in the random byte-fault model injects many faults in a fixed byte at the beginning of round 7 (state c6-math-0537), while the same plaintext is encrypted under the same key many times. The main difference from the bit-fault model is that the attacker cannot collect all the 256 values at a fixed byte of c6-math-0538 because the attacker does not have an ability to control the fault bit by bit.

To solve this problem, integral DFA in a random byte-fault model introduces a similar, but different, integral property from Figure 6.10. Here, the attacker does not collect 256 texts containing all the 256 values in a target byte. Instead, the attacker collects only d texts containing distinct d values in the target byte, where c6-math-0541. Note that when c6-math-0542, the property becomes the same as Figure 6.10.

6.3.3.1 “Distinct” Property D

Consider a set of d byte values c6-math-0545 satisfying c6-math-0546 such that c6-math-0547. Such a set of byte values is defined to have distinct property, or in short D. The attacker tries to make d distinct state values at state c6-math-0550 in which only one byte satisfies the “distinct” property and all the other bytes satisfy the constant property. The intuition behind is that, for a relatively small d, d distinct fault values can be caused efficiently even with the random byte-fault model. After those d texts are obtained, the corresponding properties in several AES operations are considered.

  • Suppose that d distinct byte values are processed by the S-box transformation. Because S-box is a bijective mapping, d distinct input values always result in d distinct output values. Therefore, the D property never be broken by the S-box transformation.
  • The c6-math-0558 operation only changes the byte positions in a state. It does not affect the value inside each byte. Therefore, the c6-math-0559 operation never breaks the D property.
  • Suppose that d distinct 4-byte values consisting of 1 byte with the D property (in any position) and 3 bytes with the C property are input to the c6-math-0564 operation. Then, all of the 4 output bytes from the c6-math-0565 operation will have the d property. Note that this holds only when the number of byte with the d property is 1. If more than 1 byte with the d property are input to the c6-math-0569 operation, no property can be exploited.
  • Suppose that d distinct byte values are XORed with some constant byte values. Obviously, the output-byte values take d distinct byte values. Therefore, the D property is never broken by the constant addition.

Those properties are summarized in Figure 6.12. With the distinct property, the previous integral property from c6-math-0573 in Figure 6.10 is updated for the random byte-fault model. The updated property is shown in Figure 6.13.

c6f012

Figure 6.12 Propagation of distinct property

c6f013

Figure 6.13 Integral property for integral DFA in random byte fault model

6.3.3.2 Key Recovery Procedure and the Number of Distinct Fault Values

The key recovery procedure basically follows the one in the bit-fault model. The attacker exhaustively guesses c6-math-0574 column by column and decrypts the collected ciphertexts up to state c6-math-0575. For the right guess, d distinct values appear for each of 4 bytes of c6-math-0577 in the target column. The main difference is that only d ciphertexts are obtained instead of 256 ciphertexts. The key recovery procedure is shown in Figure 6.14. The smaller number of ciphertexts decreases the attack complexity, while the effect of reducing the key space is reduced as well. For wrong guesses, the event now occurs with a higher probability than the bit-fault model.

c6f014

Figure 6.14 Integral property for integral DFA in random byte fault model

The probability that d distinct values can be obtained after the partial decryption of d ciphertexts for a wrong guess can be evaluated easily with Equation (6.15). Considering that the property is examined for 4 bytes in parallel, the probability of this event denoted by c6-math-0581 for each of the subkey guess is

If this event is sufficiently small to discard all the c6-math-0583 wrong guesses, the right key can be identified. Hence, the condition for the number of d that the attack requires is written as

6.18 equation

For c6-math-0586, c6-math-0587 in Equation (6.17) becomes smaller than c6-math-0588, and thus only one correct subkey can be expected.

The detailed attack procedure is almost the same as Algorithm 6.8, thus omitted here. In precise, the loops in steps 1 and 5 of Algorithm 6.8 are iterated c6-math-0589 times. Then, from steps 12 to 15 check if d distinct values are obtained.

6.3.3.3 Complexity Evaluation

Owing to the column-wise exhaustive guesses of c6-math-0591 at step 4 and 44 converted ciphertexts at step 5, the computational cost of this attack is c6-math-0592, which is less than c6-math-0593 round function computations for one column. After iterating the attack four times, the computational cost becomes c6-math-0594 round function computations, which is equivalent to c6-math-0595 AES computations. The memory complexity is only 44 state values. Regarding the data complexity, the same plaintext must be encrypted 44 times. The attacker needs to cause intended byte faults for 43 times out of 44 opportunities. In the end, the attack complexity is summarized as follows:

It clearly shows that the fault model is relaxed, and the attack complexity is reduced compared to the one in the bit-fault model.

6.3.3.4 Remarks

The “distinct” property is interesting in the sense that it is particular to fault analysis. In the theoretical cryptanalysis in Section 4.4, the attacker can choose any number of plaintexts in the chosen plaintext attack model, and thus it does not have any motivation to investigate “distinct” property.

Moreover, the theoretical cryptanalysis prefers to use the “all” property because the number of distinguished rounds can be extended by introducing the “balanced” property. The “balanced” property is not suitable for integral DFA because it can be satisfied with a relatively high probability for wrong guesses, whereas the goal of the theoretical cryptanalysis is finding shortcut attacks that can be infeasible as long as the attack cost is faster than the generic attack, or exhaustive search of the key.

Integral DFA in a random byte-fault model uses a lot of features particular to the practical analysis. In the next topic, more features particular to the practical analysis will be discussed.

6.3.4 Integral DFA with Noisy Random Byte-Fault Model c6-math-0597

Finally, the fault model is relaxed so that the fault injection succeeds only probabilistically, with some probability p. The fault injecting setting is exactly the same as the previous ones in the bit-fault model and the random byte-fault model. While the same plaintext is encrypted under the same key many times, the attacker tries to inject the fault to a fixed byte at the beginning of round 7, or state c6-math-0599. Let n be the number of fault injection trials. The attacker obtains c6-math-0601 intended faults and c6-math-0602 unintended faults. Hereafter, unintended faults are called noise. In this attack, noise is regarded as a completely random value. Thus, after a noisy fault injection, the whole state value will become completely random at state c6-math-0603. As indicated by Figure 6.10 or Figure 6.13, the impact of the fault at state c6-math-0604 will expand to the entire state until the computation reaches ciphertext. The attacker cannot detect if each obtained ciphertext is an intended one or noise. The attacker's goal is recovering the key when a set of n ciphertexts are given, in which c6-math-0606 ciphertexts are the intended ones.

The success probability of the attack and its efficiency depends on the success probability of the fault injection, or the ratio of n and c6-math-0608. Hereafter, let c6-math-0609 be the number of intended ciphertexts, that is, c6-math-0610.

6.3.4.1 Key Recovery Mechanism Based on Coupon Collector's Problem

Remember the key recovery mechanism in the bit-fault model. With the right guess, the attacker obtains 256 distinct values only with 256 trials, while with wrong guesses, the probability of this event is too low.

Then, let us consider a slightly different situation:

The attacker obtains 256 ciphertexts and 1 noise ciphertext. Among those 257 ciphertexts, the attacker does not know which ciphertext is noise.

To recover the key, the attacker anyway partially decrypts 257 ciphertexts under the guessed subkey c6-math-0611. Owing to the 256 intended ciphertexts, the results of the partial decryption cover all the 256 possibilities, and then 1 overlap owing to the noise. If the probability of this event is sufficiently low for wrong guesses, the attacker can recover the correct subkey value. Actually, this probability is very low. There are

6.20 equation

ways to choose 256 ciphertexts from a set of 257 ciphertexts, and for each of the 256 choices, Equation (6.15) is evaluated. Therefore, the probability of covering all the 256 values in the 4 bytes at c6-math-0613 is c6-math-0614, which is small enough to filter out all the c6-math-0615 wrong guesses.

This probabilistic event is equivalent to the widely known problem called Coupon Collector's Problem.

The coupon collector's problem is also illustrated in Figure 6.15.

c6f015

Figure 6.15 Illustration of coupon collector's problem

Considering the application to integral DFA, the parameters in the coupon collector's problem correspond to integral DFA as follows:

  • The number of coupon-drawing events correspond to the number of ciphertexts (sum of the numbers of partial decryption for intended and noisy ciphertexts). When the probability of obtaining an intended fault is p, c6-math-0619 ciphertexts must be collected to obtain the 256 intended faults. The number of coupon-drawing events is c6-math-0620.
  • c6-math-0621 corresponds to 256, which is the possible number of values that each byte can take.

Integral DFA checks the occurrence of this event for 4 bytes at the same time. Thus, by denoting the success probability of the coupon collector's problem by c6-math-0622, the probability that each subkey candidate is regarded as the right guess is written by c6-math-0623. If c6-math-0624 is smaller than c6-math-0625, all the wrong guesses will be discarded with a good probability, and thus integral DFA can recover the key. In other words, the condition to be a valid integral DFA is that the success probability of the coupon collector's problem with c6-math-0626 events should be lower than c6-math-0627.

It is also widely known that, when there are c6-math-0628 coupons, the coupon collector's problem requires about

6.21 equation

Coupon-drawing events to complete all the c6-math-0630 coupons. When c6-math-0631, c6-math-0632. The corresponding p is evaluated as

which indicates that the coupon collector's problem will succeed with a reasonably high probability when integral DFA can inject intended faults with c6-math-0635. In other words, in order to recover the key with integral DFA, the probability of the fault injection should be higher than c6-math-0636.

In general, to evaluate the number of acceptable noisy fault injections in integral DFA, a success probability of the coupon collector's problem with a given number of coupon-drawing event is needed. Before going into theevaluation, a generalization of the coupon collector's problem is considered below.

Generalized Coupon Collector's Problem

The discussion in the previous section is the probabilistic fault injection for the bit-fault model, that is, the discussion for the noisy bit-fault model. In order to relax the strong assumption of the bit-fault model, the probabilistic fault injection for the random byte-fault model is needed.

The major issue here is that the attacker cannot expect to collect all the 256 values in the fixed byte at state c6-math-0637. The integral property is based on the “distinct” property rather than the “all” property. Remember that, in the random byte-fault model, the key recovery mechanism is based on the low probability of the event that d distinct byte values are obtained by decrypting d different ciphertexts. In the noisy fault model, the attacker obtains n texts in total, and c6-math-0641 of them are intended ciphertexts. Thus, to recover the key, the probability of the event that at least c6-math-0642 distinct byte values are obtained by decrypting n different ciphertexts must be sufficiently small so that all the wrong guesses are filtered out. In the context of the coupon collector's problem, the new event is defined as follows.

Note that the coupon collector's problem is a subset of the generalized coupon collector's problem. Indeed, the coupon collector's problem is a special case of the generalized version when c6-math-0647.

6.3.4.2 Probability Evaluation of Generalized Coupon Collector's Problem

The answer for the above-mentioned generalized coupon collector's problem is given as a relation between the number of coupon-drawing events and the success probability. Suppose that the number of coupon-drawing events is represented as a variable n. Then, the success probability should be calculated as a function of c6-math-0649, c6-math-0650, and n, in which c6-math-0652 and c6-math-0653 are the number of coupons to be collected and the number ofall coupons, respectively. As long as the application to integral DFA on AES is discussed, c6-math-0654 is fixed to c6-math-0655. Here, for the sake of generality, c6-math-0656 is treated as a variable. In the following, the probability that at least c6-math-0657 distinct coupons are collected after n coupon-drawing events is evaluated.

The proof is omitted in this book. Using Lemma 6.3.3, the success probability of the generalized coupon collector's problem for given parameters c6-math-0665, c6-math-0666, and n can be written in a form of the recursive equation as follows.

The evaluation results of c6-math-0691 for various c6-math-0692 and n are given in Figure 6.16. Considering the application to integral DFA on AES, c6-math-0694 is fixed to 256. The parameter with a low probability indicates that wrong key values can be discarded efficiently with integral DFA. For example, for c6-math-0695, even if the attack requires 1500 fault injections (a relatively large number of noise), the key space can be reduced by 1 bit for each byte. On the other hand, when only c6-math-0696 distinct values can be obtained from the fault injection, only a few number of noisy fault injections spoil the attack.

c6f016

Figure 6.16 Probability evaluation of generalized coupon collector's problem

6.3.4.3 Subkey Recovery Procedure

How the key space of AES-128 is reduced with the noisy random byte-fault model is explained here. c6-math-0697 is fixed to c6-math-0698. Then, the attack depends on the parameters c6-math-0699. In practice, the suitable choice of c6-math-0700 should be determined depending on the attacker's ability. For example, if the attack can spend a lot of cost for the fault injection, the attacker may be able to inject various fault values in the target byte at the beginning of round 7, and the success probability of injecting the intended fault can be high. Namely, c6-math-0701 can be big and p is close to 1.

In the following explanation, the parameters are set to c6-math-0703, which indicates that the corresponding probability of obtaining the intended fault, p, is 0.18 as evaluated in Equation (6.22). From Equation (6.24), the corresponding probability is calculated as c6-math-0705. In this parameter, the key space is gradually reduced by analyzing eight data sets, and thus the behavior of the attack can be explained clearly. Note that the attack can work for various parameters in general.

Collecting Ciphertexts
  1. The attacker obtains a pair of plaintext and ciphertext denoted by c6-math-0706 without injecting the fault, and stores it in a list.
  2. While the same plaintext c6-math-0707 is processed, the attacker tries to inject a fault in the target fixed byte position at the beginning of round 7. If the obtained ciphertext does not overlap with the already stored ciphertexts in a table, add it to the table.
  3. Repeat the second step until n ciphertexts c6-math-0709 are obtained.

For one plaintext, a set of n ciphertexts is constructed. The same procedure is iterated eight times to collect eight sets of n ciphertexts by changing the plaintext to c6-math-0712. Remember that the attacker does not have to distinguish the intended ciphertexts from noisy ones.

Detecting Correct Subkeys

In each set of c6-math-0713 ciphertexts c6-math-0714, c6-math-0715 values are included in the target fixed byte at c6-math-0716. The detailed procedure of the key recovery phase is as follows.

  1. Compute c6-math-0717 for c6-math-0718.
  2. For each column, exhaustively guess the value for c6-math-0719 and compute the corresponding value of c6-math-0720.
  3. If only less than c6-math-0721 distinct values are observed in at least one byte of each column of c6-math-0722, discard the guessed c6-math-0723 from the key candidates.
  4. Repeat the above three steps by c6-math-0724 times by changing the text set for c6-math-0725.

Because c6-math-0726, the probability that a wrong guess happens to collect c6-math-0727 values for 4 bytes in a column is c6-math-0728. Hence, the subkey space is reduced by 4 bits per set of 1440 ciphertexts. After iterating the analysis eight times, c6-math-0729 subkey space is expected to be reduced to 1, that is, only the correct guess will remain. Note that the subkey space does not have to be reduced to exactly 1. By combining the exhaustive search, reducing the subkey space to a sufficiently small size is sufficient.

Complexity Evaluation

In order to collect the data, eight sets of 1440 ciphertexts are generated. Hence, the data complexity is c6-math-0730 chosen plaintexts, and the number of fault injection is c6-math-0731. The computational cost is c6-math-0732 AES round function computations, which is approximately c6-math-0733 AES computations. The attack requires the memory to store less than c6-math-0734 AES states to count the remaining key space.

The small optimization of the computational cost can be applied. Once a subkey candidate is identified to be wrong, it does not have to be examined again for different sets of ciphertexts. Therefore, the complexity becomes

6.30 equation

AES computations. In summary, the attack complexity of the integral DFA in this fault model is as follows:

6.31 equation

6.4 Meet-in-the-Middle Fault Analysis

The meet-in-the-middle differential fault analysis (MitM DFA) is another fault analysis that injects faults at the beginning of the seventh round. In short, MitM DFA recovers the last subkey c6-math-0737 with about 10 plaintexts, c6-math-0738 computational cost, c6-math-0739 amount of memory, and 10 fault injections. In particular, the MitM DFA has an advantage for a small data complexity and the number of fault injections.

In this section, the concept of the MitM attack against block cipher is first introduced. Then, its application in DFA is explained.

6.4.1 Meet-in-the-Middle Attack on Block Ciphers

6.4.1.1 Introduction of Meet-in-the-Middle Attack

The MitM attack is a classical cryptanalytic technique against block ciphers. Let c6-math-0740 be an encryption algorithm under the key K. The MitM attack can be applied efficiently when c6-math-0742 can be represented as a sequence of two subencryption functions c6-math-0743 and c6-math-0744, namely

6.32 equation

where c6-math-0746 and c6-math-0747 are two independent subkeys, that is, c6-math-0748 and c6-math-0749. An encryption algorithm satisfying this condition is described in Figure 6.17.

c6f017

Figure 6.17 Target structure of meet-in-the-middle attacks

6.4.1.2 Meet-in-the-Middle Attack Procedure

Suppose that the block size, b, is bigger than the key size, k. In addition, suppose that the sizes of c6-math-0752 and c6-math-0753 are identical, which is c6-math-0754 bits. Then, the MitM attack can recover the correct k-bit key K only with one plaintext and ciphertext pair, c6-math-0757 computational cost, and c6-math-0758 memory requirement. This is significantly faster than the exhaustive search for the k-bit key.

The attack idea is simple. The attacker first obtains a pair of plaintext and ciphertext c6-math-0760 from the oracle in the known plaintext setting. Then, the analysis is processed as follows, which is also illustrated in Figure 6.18.

  1. Exhaustively guess c6-math-0761 values of c6-math-0762. For each guess, compute c6-math-0763 and store the result along with c6-math-0764 in a list c6-math-0765. Sort the list c6-math-0766 with respect to the value of c6-math-0767.
  2. Exhaustively guess c6-math-0768 values of c6-math-0769. For each guess, compute c6-math-0770 and store the result along with c6-math-0771 in a list c6-math-0772, where c6-math-0773 is the decryption algorithm. Sort the list c6-math-0774 with respect to the value of c6-math-0775.
  3. Find a match between c6-math-0776 elements in c6-math-0777 and c6-math-0778 elements in c6-math-0779. For a matched pair, the corresponding c6-math-0780 and c6-math-0781 are the correct subkey values. Thus, c6-math-0782 is recovered.
c6f018

Figure 6.18 Key recovery procedure of meet-in-the-middle attacks

6.4.1.3 Mechanism of Key Recovery

For the right guesses of c6-math-0783 and c6-math-0784, the b-bit intermediate state values will match with probability 1. Thus, the false negative never occurs in the MitM attack. For wrong pairs of c6-math-0786 and c6-math-0787, the b-bit intermediate state values in c6-math-0789 and c6-math-0790 will match only probabilistically, that is, c6-math-0791. The number of elements in both of c6-math-0792 and c6-math-0793 is c6-math-0794, and thus the number of matched pairs is c6-math-0795. When c6-math-0796, an event with a probability of c6-math-0797 is unlikely to occur only with c6-math-0798 trials.

Note that the essence of the MitM attack is the independence of c6-math-0799 and c6-math-0800, which allows the attacker to compute c6-math-0801 and c6-math-0802 completely independently.

If the assumption c6-math-0803 does not hold, the MitM attack cannot recover the correct key only with one pair of plaintext and ciphertext. Each pair provides the b-bit filtering, and thus the key space is reduced by b bits per pair. Therefore, to reduce the key space to 1, the number of necessary pairs is written as

6.33 equation

The attack procedure is shown in Algorithm 6.9.

6.4.1.4 Complexity Evaluation

Let us first evaluate the attack complexity of the simple case with c6-math-0835 in Figure 6.18. The data complexity is one known plaintext. The time complexity of the first step is c6-math-0836 evaluations of c6-math-0837. The time complexity of the second step is c6-math-0838 evaluations of c6-math-0839. In total, c6-math-0840 evaluations of c6-math-0841 and c6-math-0842, which is equivalent to c6-math-0843 evaluation of E. Note that the cost of sorting c6-math-0845 data is usually assumed to be negligible compared to c6-math-0846 computations of the encryption algorithm. The memory complexity is c6-math-0847 b-bit internal state values for c6-math-0849 and c6-math-0850, in total c6-math-0851 state values. Here, the memory complexity for c6-math-0852 can be omitted by performing the match as soon as each element for c6-math-0853 is obtained. If thematch is not found, that element can be discarded immediately without being stored in c6-math-0854. This reduces the memory complexity to c6-math-0855 state values.

In summary, the complexity of the MitM attack for the simple case with c6-math-0856 is

6.34 equation

For the case with c6-math-0858, the data complexity increases to c6-math-0859 known plaintexts. The time and data complexities also increase by a factor of c6-math-0860 for handling multiple pairs. In summary, the complexity of the MitM attack with c6-math-0861 is

6.35 equation

where c6-math-0863.

6.4.2 Meet-in-the-Middle Attack for Differential Fault Analysis

Remember that the essence of the MitM attack is the independence of c6-math-0880 and c6-math-0881, which allows the attacker to compute c6-math-0882 and c6-math-0883 completely independently. Unfortunately, such a strong independence of subkeys is unusual forstandard block ciphers. For example, any three versions of AES generate c6-math-0884 from c6-math-0885. Thus, there is no independent subkey. However, the idea of the MitM attack can be useful when a part of the subkeys is guessed during the attack, or an attack against a small number of rounds is considered. Indeed, fault attacks meet those conditions, and thus the mechanism of the MitM attack can be exploited.

MitM DFA is essentially the same as DFA. The efficient key recovery mechanism of the MitM attack is exploited when subkeys are guessed during DFA. The straightforward differential attack requires to guess 10 subkey bytes (c6-math-0886 guesses), which is infeasible. MitM DFA separates the guess of 10 subkey bytes to two independent procedures with five subkey-byte guess. This enables to recover the last subkey c6-math-0887 with about 10 plaintexts, c6-math-0888 computational cost, c6-math-0889 amount of memory, and 10 fault injections.

6.4.2.1 Fault Model

The assumed fault model in MitM DFA is exactly the same as standard DFA but for the fault injection round. The simple attack assumes as follows:

1 byte of fault is injected at the beginning of the 7th round of AES-128. The faulty byte position is known to attackers, while the faulty value is not known to attackers.

The assumption of the knowledge of the faulty byte position can be relaxed as follows:

1 byte of fault is injected at the beginning of the 7th round of AES-128. The faulty byte position is unknown to attackers. The faulty value, either.

6.4.2.2 Differential Characteristic

For simplicity, the attack is first explained in the fault model with the knowledge of the faulty byte position. Let the faulty byte position at the beginning of the seventh round be 6. The attacker obtains a pair of plaintext and ciphertext denoted by c6-math-0890. Then, the attacker makes a query of c6-math-0891 to the encryption oracle in the chosen plaintext model, and injects a fault in the known and fixed byte position at the beginning of round 7. The differential propagation in the subsequent rounds is described in Figure 6.19.

c6f019

Figure 6.19 Differential propagation in MitM DFA

The fault injecting timing and the fault model are exactly the same as the ones in impossible DFA discussed at Section 6.2. Thus, the resulting differential propagation is also the same as the one in Figure 6.9. However, MitM DFA exploits a different feature from impossible DFA. Namely, the property of having 16 active bytes at state c6-math-0892 is no longer used. The new property exploited is the ratio of the byte differences in each column at state c6-math-0893, in which c6-math-0894. Remember that the input difference to the c6-math-0895 operation in round 8 is unknown to the attacker, while the attacker still can compute the ratio of 4 output-byte differences.

How to compute the ratio of 4 output-byte differences is depicted in Figure 6.20. Suppose that the input column to the c6-math-0896 operation, c6-math-0897, only has 1 active byte in the top byte as shown in Figure 6.20. Let U be a nonzero difference in c6-math-0899, which is unknown to the attacker. According to the specification of the c6-math-0900 operation, the difference of the output column, c6-math-0901, is computed as

6.36 equation

Although the value of U is unknown, the attacker knows that

6.37 equation

In particular, the relation c6-math-0905 allows the direct application of the MitM attack. That is, the attacker independently computes c6-math-0906 and c6-math-0907 with guessing subkeys, and stores those values. The correct guesses of subkeys always yield thematch of c6-math-0908 and c6-math-0909, and this much can be found efficiently in the MitM attack.

c6f020

Figure 6.20 Ratio of 4-byte differences in a column

The same property can be obtained for different input active byte positions.

6.38 equation
6.39 equation
6.40 equation

6.4.2.3 Collecting Pairs

The attacker obtains a pair of plaintext and ciphertext denoted by c6-math-0918. While the same plaintext c6-math-0919 is processed, the attacker injects a fault in the known and fixed byte position at the beginning of round 7 to obtain the faulty ciphertext c6-math-0920. In Figure 6.19, this position is fixed to the byte position 6. The same procedure is iterated 10 times to collect c6-math-0921. In the end, the attacker obtains 10 pairs of correct and faulty ciphertexts that follow the differential propagation in Figure 6.19.

6.4.2.4 Key Recovery Procedure

The attacker guesses 4 bytes of the last subkey c6-math-0922 and 1 byte of the converted subkey c6-math-0923 to perform the partial decryption from ciphertext to any 1 byte of c6-math-0924. Figure 6.21 describes the partial decryption from ciphertext to 1 byte of c6-math-0925 and 1 byte of c6-math-0926. Note that the order of c6-math-0927 and c6-math-0928 operations is exchanged in round 9.

c6f021

Figure 6.21 Independent partial decryption with 5-byte guess

From the analysis of the differential ratio, c6-math-0929 holds as long as the fault is injected at c6-math-0930 or the other 3 bytes in the same inverse diagonal, that is, c6-math-0931, c6-math-0932 and c6-math-0933. Hereafter, the attacker aims to compute c6-math-0934 and c6-math-0935 independently. As shown in Figure 6.21, subkeys guessed in the partial decryption for c6-math-0936 and for c6-math-0937 do not have any overlap. Thus, subkey guesses and partial decryptions can be performed independently.

  1. The computation for c6-math-0938 requires 5-byte subkey guess, c6-math-0939 and c6-math-0940. The guessed bytes are marked by filled circles in Figure 6.21. For each c6-math-0941 possibilities of the 5 subkey bytes, compute c6-math-0942 for all the 10 pairs of c6-math-0943, where c6-math-0944. Store the sequence of 10 bytes (c6-math-0945 for 10 pairs) in a list c6-math-0946. Then, sort the list c6-math-0947.
  2. The computation for c6-math-0948 requires 5-byte subkey guess, c6-math-0949 and c6-math-0950. The guessed bytes are marked by bold line in Figure 6.21. For each c6-math-0951 possibilities of the 5 subkey bytes, compute c6-math-0952 for all the 10 pairs of c6-math-0953, where c6-math-0954. Store the sequence of 10 bytes (c6-math-0955 for 10 pairs) in a list c6-math-0956. Then, sort the list c6-math-0957.
  3. Find the match of 10-byte elements in c6-math-0958 and c6-math-0959.

The attack procedure is also illustrated in Figure 6.22.

c6f022

Figure 6.22 Key recovery procedure of MitM DFA

6.4.2.5 Evaluation

Step 1 generates 8-bit value of c6-math-0960 for 10 pairs, which yields 80-bit sequences to match. After the exhaustive guess of 5 subkey bytes, c6-math-0961 80-bit sequences are stored in c6-math-0962. Similarly after step 2, c6-math-0963 80-bit sequences are stored in c6-math-0964. In step 3, c6-math-0965 pairs are examined for matching 80-bit values. Only one value is expected to match. Thus, the correct 10 subkey bytes are recovered.

By iterating the same attack procedure for different columns, the remaining 8 subkey bytes of c6-math-0966 can be recovered. Thus, all the subkey bytes in c6-math-0967 are recovered.

The data complexity of this attack is 20 chosen plaintexts. It requires 10 fault injections. In step 1, the computational cost is c6-math-0968 AES round functions, which is equivalent to c6-math-0969 AES computations. The memory requirement is storing c6-math-0970 80-bit sequence along with 5 subkey bytes, which is less than c6-math-0971 16-byte values, thus less than c6-math-0972 AES states. In summary, the attack complexity of the MitM DFA in this fault model is as follows:

6.41 equation

6.4.2.6 MitM DFA with Unknown Faulty Byte Position

The feasibility of the attack with unknown faulty byte position depends on the assumption whether the unknown faulty byte position at the beginning of round 7 can be fixed or not.

If the faulty byte position can be fixed (but unknown), what the attacker needs is guessing the diagonal position with the faulty byte. The guess is chosen from at most four patterns. Thus, the computational cost of the attack becomes c6-math-0975 rather than c6-math-0976, but it is still feasible.

If the faulty byte position cannot be fixed, there is no method to efficiently match the 80-bit sequences. Thus, the attack can no longer recover the key.

Further Reading

  1. Derbez P, Fouque P and Leresteux D 2011 Meet-in-the-middle and impossible differential fault analysis on AES In Cryptographic Hardware and Embedded Systems - CHES 2011 - 13th International Workshop, Nara, Japan, September 28 - October 1, 2011. Proceedings (ed. Preneel B and Takagi T), vol. 6917 of Lecture Notes in Computer Science, pp. 274–291. Springer-Verlag.
  2. Kim CH 2011 Efficient methods for exploiting faults induced at AES middle rounds Cryptology ePrint Archive, Report 2011/349. International Association for Cryptologic Research.
  3. Mukhopadhyay D 2009 An improved fault based attack of the advanced encryption standard In Progress in Cryptology - AFRICACRYPT 2009, Second International Conference on Cryptology in Africa, Gammarth, Tunisia, June 21-25, 2009. Proceedings (ed. Preneel B), vol. 5580 of Lecture Notes in Computer Science, pp. 421–434. Springer-Verlag.
  4. Phan RC and Yen S 2006 Amplifying side-channel attacks with techniques from block cipher cryptanalysis In Smart Card Research and Advanced Applications, 7th IFIP WG 8.8/11.2 International Conference, CARDIS 2006, Tarragona, Spain, April 19-21, 2006, Proceedings (ed. Domingo-Ferrer J, Posegga J and Schreckling D), vol. 3928 of Lecture Notes in Computer Science, pp. 135–150. Springer-Verlag.
  5. Piret G and Quisquater J 2003 A differential fault attack technique against SPN structures, with application to the AES and KHAZAD In Cryptographic Hardware and Embedded Systems - CHES 2003, 5th International Workshop, Cologne, Germany, September 8-10, 2003, Proceedings (ed. Walter CD, Koç ÇK and Paar C), vol. 2779 of Lecture Notes in Computer Science, pp. 77–88. Springer-Verlag.
  6. Sasaki Y, Li Y, Sakamoto H and Sakiyama K 2013 Coupon collector's problem for fault analysis against AES - high tolerance for noisy fault injections In Financial Cryptography and Data Security - 17th International Conference, FC 2013, Okinawa, Japan, April 1-5, 2013, Revised Selected Papers (ed. Sadeghi A), vol. 7859 of Lecture Notes in Computer Science, pp. 213–220. Springer-Verlag.
  7. Tunstall M, Mukhopadhyay D and Ali S 2011 Differential fault analysis of the advanced encryption standard using a single fault In Information Security Theory and Practice. Security and Privacy of Mobile Devices in Wireless Communication - 5th IFIP WG 11.2 International Workshop, WISTP 2011, Heraklion, Crete, Greece, June 1-3, 2011. Proceedings (ed. Ardagna CA and Zhou J), vol. 6633 of Lecture Notes in Computer Science, pp. 224–233. Springer-Verlag.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.136.17.139