Piccolo is a 64-bit lightweight block cipher which is able to be implemented in constrained hardware environments such as a wireless sensor network. Fault analysis is a type of side channel attack and cube attack is an algebraic attack finding sufficiently low-degree polynomials in a cipher. In this paper, we show a fault analysis on the Piccolo by using cube attack. We find 16 linear equations corresponding to a round function F by cube attack, which are used to fault analysis. Our attack has the complexity of 28.49 and 29.21 encryptions with fault injections of target bit positions into Piccolo-80 and Piccolo-128, respectively. And our attack needs 220.86 and 221.60 encryptions with random 4-bit fault injections for Piccolo-80 and Piccolo-128, respectively.
1. Introduction
Fault analysis is a type of side channel attack. This analysis was introduced by Boneh et al. in [1]. Differential fault analysis (DFA), which is an improved method of fault analysis, was introduced by Biham and Shamir in [2]. DFA is applied to various block ciphers such as AES [3, 4], ARIA [5], SEED [6], CLEFIA [7], LED [8], Piccolo [9–12], PRESENT [13], and KATAN32 [14]. Cube attack was introduced by Dinur and Shamir in [15]. This attack is an algebraic attack by finding sufficiently low-degree polynomials in a cipher. Cube attack is applied to various cryptosystems such as block cipher [16] and stream cipher [15, 17].
In CHES 2011, Piccolo was introduced by Shibutani et al. in [18]. Piccolo is a block cipher which supports 80-bit and 128-bit secret key size. In this paper, we analyze two versions of Piccolo [18] with fault analysis by using cube attack. In ISPEC 2012, fault analysis using cube attack was introduced by Abdul-Latip et al. in [16]. In this paper, we apply this method on Piccolo-80 and Piccolo-128. As a result, we find 16 linear equations corresponding to a round function F by cube attack, which are used to fault analysis.
Piccolo is analyzed by various techniques. In ISPEC 2012, Wang et al. suggest biclique cryptanalysis of reduced round Piccolo in [19]. They analyze reduced version of Piccolo-80 without postwhitening keys XOR and reduced 28-round Piccolo-128 without prewhitening keys XOR. In 2013, Song et al. suggest biclique cryptanalysis of full rounds of Piccolo [20]. And also Jeong suggests a differential fault analysis of full rounds of Piccolo [9].
In this paper, we show a fault analysis on the Piccolo by using cube attack. We find 16 linear equations corresponding to a round function F of Piccolo by using cube attack. These equations are used to our attack. In this paper, we describe the case that an adversary injects random 4-bit faults. Our attack has the complexity of and encryptions for Piccolo-80 and Piccolo-128, respectively, while the assumption of [9] is an adversary that injects random byte faults. Reference [9] has the complexity of 224 and 240 encryptions for Piccolo-80 and Piccolo-128, respectively. Our attack has a lower computational complexity than [9], even though the assumption of fault injection in our attack differs from [9].
In Section 2, we briefly describe the procedures of cube attack and cube tester. And then we describe the brief specifications of Piccolo in Section 3. In Section 4, a method of fault analysis of Piccolo by using cube attack is presented. Finally, our conclusions are in Section 5.
2. Cube Attack and Cube Tester
Algebraic attack is to find a solution, which is the key, of a system of equations that represent target cipher with given plaintext and the corresponding ciphertext, that is representing cipher as a system of equations with multiple variables defined over finite field where each key bit is represented as a variable in the system. Solving the system is equivalent to finding the secret key of the target cipher. Cube attack is an algebraic attack finding sufficiently low-degree polynomials in cipher.
2.1. Cube Attack
Cube attack was introduced by Dinur and Shamir in [15]. Cube attack is a chosen plaintext attack. The main idea of cube attack is to find linear equations consisting of secret variables by using cube sum. Let be a polynomial derived from a cipher, where are public variables and are secret variables. In other words, each secret variable is considered a bit in secret key and each public variable is considered a bit in plaintext or internal state. Let be a set and let be the monomial . Note that the set in terms of I is called cube index. Then the polynomial p is represented by three polynomials , , and q as the following form:
where q is not consisting of a monomial which has a factor .
Cube attack is required to check the linearity of which is called superpoly. A superpoly is called a maxterm if is linear. We use the following cube sum to find a :
where plaintext bits except cube index () are fixed as constants.
As the above representation, cube is completed with the sum total pairs of plaintext and ciphertext for a cube index . To check whether is a maxterm, linearity test is required. Let be a polynomial of m variables over GF(2). Let t be the number of tests. The following is a procedure of linearity test.
If is linear, the above equation in Step 2 is always correct for all inputs . Because checking all inputs is impossible, an upper bound of number of linearity tests has to be set. If there are at most elements in a cube index for testing linearity, at most pairs of plaintext and ciphertext are needed. Cube attack consists of preprocessing phase and online phase. Preprocessing phase is to find a system of linear equations by using cube sum and linearity test. Online phase is recovering the master key stored by using an encryption oracle. The following are details for the two phases.
Preprocessing Phase. After finding a polynomial from a cipher, find a cube, that is, a maxterm, by using linearity test. Since we know output after all plaintext bits are entered in encryption oracle, fix plaintext except cube index as a constant. Fixed constants of every cube do not have to be equal. Let be a maxterm which consists of only secret variables and let be the value of the maxterm which is found from online phase. We consider the following system of equations:
In the preprocessing phase, find enough maxterms to recover the master key and precalculate this system of equations by using Gaussian elimination. If we find m linear independent maxterms, then recover all the master keys with operations for recovery by using Gaussian elimination. In general, it is lower than complexity for finding l maxterms. Let be linearly independent. Then the master keys are represented as the following system:
where .
Online Phase. In online phase, calculate the value of cube sum from an encryption oracle by using the cube that has been found in the preprocessing phase. Let each plaintext bit not in the cube be constant. The calculated value is , that is, the value of the maxterm. By substituting the value into (4), we recover the master key. Let cube index found at preprocessing phase have at most elements. Then the complexity of online phase is .
2.2. Cube Tester
Cube attack finds a maxterm by testing linearity of of a given polynomial p and cube index I. Cube tester distinguishes a polynomial from a random polynomial by many tests including linearity test. There are some other tests using cube sum in [21]. In cube attack, a plaintext bit not in the cube is fixed as a constant. However all bits not in the cube have to be considered variables in the cube tester. Since the purpose of using the cube tester is getting information, which are properties of polynomial, we use the low-degree test that is in [21]. The degree N is determined by low-degree test. Let I be a cube index, let J be the number of bits not in the cube index (i.e., ; consists of J variables), and t is the number of tests. Since low-degree test is valid only when for the given polynomial p, we define . Then low-degree test for the polynomial is as follows.
If , then the low-degree test is similar to the linearity test. We use the idea of the cube tester which uses every bit not in the cube index (consisting of plaintext and the master key) as a variable.
3. Description of Piccolo
Piccolo is a 64-bit block cipher with 80- and 128-bit key size. The structure of Piccolo is a Feistel network. Piccolo-80 consists of 25 rounds and Piccolo-128 consists of 31 rounds. Figure 1 illustrates the working processing of Piccolo. Each round consists of two functions, round function F and round permutation . The round functions F and are as follows.
Encryption process of Piccolo.
Round FunctionF. The round function F is defined by
where is the transposition of X.
is the 4-bit S-box and M is the diffusion matrix as follows (see Table 1):
The multiplications between M and vectors are defined by an irreducible polynomial over .
S-box of Piccolo.
x
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
e
4
b
2
3
8
0
9
1
a
7
f
6
c
5
d
Round Permutation RP. The round permutation is defined by
where is byte.
For description of Piccolo and our attack, we denote intermediate variables before r-round as and intermediate variables before r-round's function as (i.e., ). Let the round function F in r-round be and let the round key be . The other notations are as follows:
: left 8 bits of and : right 8 bits of ;
: left 8 bits of and : right 8 bits of ;
: concatenation of A and B.
Let the 64-bit plaintext and ciphertext be P and C, respectively. Encryption of Piccolo is defined as follows:
( is the 16-bit plaintext);
;
for to
;
;
(is the 16-bit ciphertext).
Key schedule of Piccolo consists of the following.
Piccolo-80:
for to do
if , then
if , then
if , then
where is the round constant.
Piccolo-128:
for to do
if , then
where is the round constant.
Since key schedule of Piccolo is just performing XOR determined constants to the master key, recovering the round key and recovering the master key are the same. Table 2 is showing the master key used for the round key of Piccolo. Detailed descriptions of Piccolo are in [18].
Round key of Piccolo.
Piccolo-80
Piccolo-128
Round
Round key
Master key
Round
Round key
Master key
First
wk
0, wk1
First
wk
0, wk1
1
rk0, rk1
K2, K3
1
rk0, rk1
K2, K3
2
rk2, rk3
K0, K1
2
rk2, rk3
K4, K5
3
rk4, rk5
K2, K3
3
rk4, rk5
K6, K7
4
rk6, rk7
K4, K4
4
rk6, rk7
K2, K1
5
rk8, rk9
K0, K1
5
rk8, rk9
K6, K7
6
rk10, rk11
K2, K3
6
rk10, rk11
K0, K3
7
rk12, rk13
K0, K1
7
rk12, rk13
K4, K5
8
rk14, rk15
K2, K3
8
rk14, rk15
K6, K1
9
rk16, rk17
K4, K4
9
rk16, rk17
K4, K5
10
rk18, rk19
K0, K1
10
rk18, rk19
K2, K7
11
rk20, rk21
K2, K3
11
rk20, rk21
K0, K3
12
rk22, rk23
K0, K1
12
rk22, rk23
K4, K1
13
rk24, rk25
K2, K3
13
rk24, rk25
K0, K3
14
rk26, rk27
K4, K4
14
rk26, rk27
K6, K5
15
rk28, rk29
K0, K1
15
rk28, rk29
K2, K7
16
rk30, rk31
K2, K3
16
rk30, rk31
K0, K1
17
rk32, rk33
K0, K1
17
rk32, rk33
K2, K7
18
rk34, rk35
K2, K3
18
rk34, rk35
K4, K3
19
rk36, rk37
K4, K4
19
rk36, rk37
K6, K5
20
rk38, rk39
K0, K1
20
rk38, rk39
K2, K1
21
rk40, rk41
K2, K3
21
rk40, rk41
K6, K5
22
rk42, rk43
K0, K1
22
rk42, rk43
K0, K7
23
rk44, rk45
K2, K3
23
rk44, rk45
K4, K3
24
rk46, rk47
K4, K4
24
rk46, rk47
K6, K1
25
rk48, rk49
K0, K1
25
rk48, rk49
K4, K3
Final
wk2, wk3
26
rk50, rk51
K2, K5
27
rk52, rk53
K0, K7
28
rk54, rk55
K4, K1
29
rk56, rk57
K0, K7
30
rk58, rk59
K6, K3
31
rk60, rk61
K2, K5
Final
wk2, wk3
4. Fault Analysis on the Piccolo
In this section, we show the fault analysis for Piccolo-80 and Piccolo-128. We assume that an adversary is able to make 4-bit errors in a maximum at a time on a round during an encryption process. By using cube sum, find system of linear equations in the common F of Piccolo-80 and Piccolo-128. And use the system to represent the phase recovering the master key of Piccolo-80 and Piccolo-128. Analysis of a round function F in Section 4.1 is corresponding to the preprocessing phase of cube attack. The attack in Sections 4.2 and 4.3 is the case of an encryption oracle that is given and is corresponding to online phase.
4.1. Equations of Round Function F
Since round function F is the same for Piccolo-80 and Piccolo-128, the results of fault injection attack on F are the same in the both algorithms. Let , where is an 16-bit intermediate value and each is a bit . We test all possible cubes of degree 1 to degree 4 and all possible inputs for each cube. We get many linear polynomials and choose 16 appropriate polynomials for recovering the master key. Table 3 shows our selected 16 polynomials, cube index, and output bit .
Cube sum result of .
Cube index
Outbit ()
Polyequation
1, 5, 6
8
0, 8, 9, 11
10
1, 5, 6
12
0, 8, 9, 11
7
0, 1, 5, 6
4
4, 8
12
4, 5, 8, 9
4
4, 8, 9, 11
7
5, 6, 9
12
4, 5, 7, 8
6
5, 6, 9
8
4, 5, 7, 8
3
5, 6, 13
8
0, 12
4
5, 6, 13
12
0, 8, 11, 12
7
4.2. Analysis on the Piccolo-80
We explain how to recover all the master keys of Piccolo-80. By key schedule of Piccolo-80, recovering , , , , and is equal to recovering all the master keys of Piccolo-80. Let plaintext P be given and let be intermediate values for plaintext P. In this paper, we recover the master key of Piccolo-80 by recovering some s. Figure 2 is for the last 4 rounds of Piccolo-80. The following is the attack on Piccolo-80.
Fault analysis of Piccolo-80.
Step 1.
First, we analyze the last round (i.e., round 25). Perform cube sum by using the cube in Table 3 for F which takes . For example, consider 6th equation of Table 3. Suppose that inject fault into to . Then, since fault is injected into only , value of or is not changed. We notate the following to explain our attack:
;
;
: when fault is injected into ;
: when fault is injected into ;
: when fault is injected into both , .
We calculate cube sum for cube index like the following:
is not the output of F. But since cube sum does XOR even times, and are offset. That is, we know value of cube sum cause of . In the same way, cube sum using fault injection in this paper is performed. By performing cube sum for every cube in Table 3, we get 16 systems of equations. Recover input . Similarly, we recover input using F which takes . Since , we recover (i.e., , ).
Step 2.
Since we know and , calculate intermediate value , for given ciphertext. Round permutation in round 24 is as follows:
Therefore, we calculate , for given ciphertext. By using this, analyze round 24. In a similar way with Step 1, recover , by using the cube in Table 3 for F which takes , . Since , , , and , we recover , . Then we recover (i.e., , ) since .
Step 3.
We recover , , , and so far. Given ciphertext C, we calculate , , , and . That is, we recover , , , and . We want to recover . Since , , if we recover right 8 bits of and left 8 bits of , then we recover . To recover right 8 bits of , inject fault into bits corresponding to cube index of last 8 equations in Table 3. For recovering left 8 bits of , inject fault into bits corresponding to cube index of first 8 equations in Table 3. Then we recover . Since ,we recover (i.e., ).
Use the above 3 steps to recover all the master keys used for Piccolo-80. This needs the assumption that we inject fault into at most 4 bits in the same time. Thus in this paper we consider the following as an analyzing way.
Assumption 1.
We inject fault into at most 4 bits in the same time. But, apply this to only last round.
Assumption 2.
We inject fault into at most 4 bits in the same time. But, apply this to only rounds 24 and 25.
Assumption 3.
We inject fault into at most 4 bits in the same time.
That is, suppose that we analyze only Step 1 or Steps 1 and 2. Even though we analyze only Steps 1 and 2, since at least 32 bits of 80-bit master key are recovered, we recover all the master keys with less operations than brute-force attack. To recover , inject fault into 11 bits among 16 bits of internal state by using injections 66 times. To recover left 8 bits and right 8 bits of (i.e., ), we inject fault into 8 bits and 10 bits among 16 bits of , respectively. Then are recovered by using injections 44 and 39 times, respectively.
Under Assumption 1, we need 133 encryptions for recovering 32-bit master key . We exclusively search to recover remaining 48-bit master key. Therefore, we need total encryptions for recovering the master key under Assumption 1.
Under Assumption 2, we need 133 encryptions for recovering 32-bit master key . For recovering 32-bit round keys and , we have to calculate . Given ciphertext, calculating is equivalent to 0.5 round encryption. So is . Hence, we need encryptions for recovering 32-bit round keys and . We exclusively search to recover remaining 16-bit master key. Therefore, we need total encryptions for recovering the master key under Assumption 2.
Under Assumption 3, we need encryptions for recovering , , , and . Given ciphertext, calculating is equivalent to 2.5 round encryption. We need encryptions for recovering 32-bit round keys , . Therefore, we need total encryptions for recovering the master key under Assumption 3. Table 4 is showing encryption complexity needed for recovering the master key of each assumption.
Piccolo-128 recovers the master key in a similar way to Piccolo-80. Figure 3 is for the last 5 rounds of Piccolo-128. The following is how Piccolo-128 recovers the master key.
Fault analysis of Piccolo-128.
Step 1.
First, we analyze the last round (i.e., round 25). In a similar way with Step 1 in analysis of Piccolo-80, recover , by using the cube in Table 3 for F which takes , . Since , we recover , .
Step 2.
Since we know and , calculate intermediate values for given ciphertext. Since , we calculate for given ciphertext. In a similar way with Step 1 in analysis of Piccolo-80, recover , by using the cube in Table 3 for F which takes , . We recover , , since , and . Since , , we recover , .
Step 3.
Since we know , , , and , calculate intermediate values , , , and for given ciphertext. Since , , we calculate , for given ciphertext. In a similar way with Step 1 in analysis of Piccolo-80, recover , by using the cube in Table 3 for F which takes , . We recover , since , , and , . Since and , we recover , (, ).
Step 4.
This step is similar to Step 3 in analysis of Piccolo-80. Given ciphertext C, we calculate , , , and . We want to recover . Since , , if we recover right 8 bits of and left 8 bits of , then we recover . To recover right 8 bits of , inject fault into bits corresponding to cube index of last 8 equations in Table 3. For recovering left 8 bits of , inject fault into bits corresponding to cube index of first 8 equations in Table 3. Then is recovered. And then we recover (), because .
Step 5.
This step is similar to Step 3 in analysis of Piccolo-80. We want to recover . Given ciphertext C, we calculate , , , and . Since , , we recover left 8 bits of and right 8 bits of . To recover left 8 bits of , inject fault into bits corresponding to cube index of first 8 equations in Table 3. For recovering right 8 bits of , inject fault into bits corresponding to cube index of last 8 equations in Table 3. Then we recover . And we recover since .
Use the above 5 steps to recover all the master keys used for Piccolo-128. This needs the assumption that we inject fault into at most 4 bits in the same time. Assume that we analyze only Steps 1, 2, 3, and 4 such as Piccolo-80. Even though we analyze only Steps 1, 2, 3, and 4, since at least 32 bits of 128-bit master key are recovered, we recover all the master keys with less operations than brute-force attack. Table 5 is showing encryption complexity needed for recovering the master key of each assumption.
The attacks described in Sections 4.2 and 4.3 are valid under the assumption that an adversary is able to control the injecting time and bit positions to inject fault and the number of bits of fault injection. However it is difficult to control bit positions where faults are injected. Therefore, in this section, we explain the way of attack under the assumption that an adversary is not able to control bit positions to inject faults. That is, an adversary is able to inject i bits of random faults into Piccolo-80 and Piccolo-128. The attack of Section 4.4 is similar to the attack of Sections 4.2 and 4.3. But this attack adds the process that determines fault position before each Step of Sections 4.2 and 4.3.
Assume that we inject i bits of random fault into last round. In some cases, we determine fault position. Then, the following is how to determine position of fault injection for 3 cases. (Each case with 4 fault bits is described in Figures 4, 5, and 6).
Determine position of fault injection for Case 1 (i = 4).
Determine position of fault injection for Case 2 (, ).
Determine position of fault injection for Case 3 (, ).
Case 1.
There are i bits error in after fault injection. Since and i fault bits, if is different i bits from original ciphertext, then fault injection position in must be same with changed i bits after fault injection in .
Case 2.
There are j bits error in and bits error in after fault injection. In a similar way to Case 1, fault injection position in must be same with changed j bits after fault injection in . And fault injection position in must be same with changed i-j bits after fault injection in .
Case 3.
There are bits error in and j bits error in . And there is no error in . If there are j bits error in , then or is fault injected. Since there is no error in , fault injection position in must be same with changed j bits after fault injection in . Furthermore, must be same with changed bits after fault injection in since there are bits error in .
Therefore, we determine the position of fault injection for these 3 cases. Table 3 is the table of optimal cubes that are used for the attack in Sections 4.2 and 4.3. Therefore, there are many cubes except cubes in Table 3. Because there are too many cubes, we do not describe all cubes in this paper. For example, suppose that we get 16 ciphertexts for cube sum of . Then we calculate all of subcubes of . So, we use cubes in Table 6 and recover 1st, 2nd, 5th, and 7th bit of whitening key.
Subcube of {0, 1, 3, 4}.
Cube index
Outbit ()
Polyequation
0, 3
0
0, 4
8
0, 1, 3, 4
2
0, 1, 3, 4
15
By the same method, we use sufficient cubes for recovering and of Piccolo-80 and Piccolo-128 and recover and . Since we know and , calculate intermediate values for given ciphertext. Therefore, we inject faults into th round, determining position of fault injection by 3 cases that described this section. And we recover th round key. This process is the same with Step 2 in Section 4.2 and Step 2 in Section 4.3 except determining position of fault injection. By the same way, we recover all the master keys of Piccolo-80 and Piccolo-128 using Steps in Sections 4.2 and 4.3 with determining position of fault injection, respectively.
The complexity of this attack depends on the complexity for finding ciphertext to recover round key. For Table 3, we need 66 ciphertexts. Table 7 is showing necessary positions of fault injection for cubes of Table 3.
Necessary positions of fault injections for Table 3.
For calculating complexity, we assume that an adversary always injects 4-bit random fault into the last three and five rounds for Piccolo-80 and Piccolo-128, respectively. Since an adversary injects exactly 4-bit fault, position of all fault bits has to match position that we want. This probability is . That is, an adversary injects times for each round and gets all ciphertexts that correspond to Table 3 for each round. Therefore, this attack on Piccolo-80 needs fault injections. Similarly, this attack on Piccolo-128 needs fault injections. The number of additional encryptions to recover the master key is negligible. Hence, our attack has the complexity of and encryptions with four bits of random fault injections for Piccolo-80 and Piccolo-128, respectively.
5. Conclusions
In this paper, we present the security weakness of Piccolo against fault analysis. Our attack fully exploits the structure of Piccolo, which is a Feistel network. We describe an attack for fault injection of target bit positions on Piccolo-80 and Piccolo-128. The master key of Piccolo-80 and Piccolo-128 is recovered by fault analysis by using cube attack with injecting faults 28.44 and 29.14, respectively. Our attack has the complexity of and encryptions for Piccolo-80 and Piccolo-128, respectively, which are practical complexities. And finally, an attack for random four bits fault injection for Piccolo-80 and Piccolo-128 is presented. This attack needs and encryptions with four bits of random fault injections for Piccolo-80 and Piccolo-128, respectively.
Footnotes
Conflict of Interests
The authors declare that there is no conflict of interests regarding the publication of this paper.
References
1.
BonehD.DeMilloR. A.LiptonR. J.On the importance of checking cryptographic protocols for faultsAdvances in Cryptology—EUROCRYPT'9719971233Springer3751Lecture Notes in Computer Science10.1007/3-540-69053-0_4
2.
BihamE.ShamirA.Differential fault analysis of secret key cryptosystemsAdvances in Cryptology—CRYPTO'9719971294Springer513525Lecture Notes in Computer Science10.1007/BFb0052259
3.
KimC. H.QuisquaterJ.-J.New differential fault analysis on AES key schedule: two faults are enoughSmart Card Research and Advanced Applications20085189Springer4860Lecture Notes in Computer Science2-s2.0-5294912801110.1007/978-3-540-85893-5_4
4.
TunstallM.MukhopadhyayD.AliS.Differential fault analysis of the advanced encryption standard using a single faultInformation Security Theory and Practice. Security and Privacy of Mobile Devices in Wireless Communication20116633Springer224233Lecture Notes in Computer Science2-s2.0-7995884068710.1007/978-3-642-21040-2_15
5.
LiW.GuD.LiJ.Differential fault analysis on the ARIA algorithmInformation Sciences200817819372737372-s2.0-4784909720710.1016/j.ins.2008.05.031
6.
JeongK.LeeY.SungJ.HongS.Differential fault analysis on block cipher SEEDMathematical and Computer Modelling2012551-226342-s2.0-8275516186110.1016/j.mcm.2011.01.008
7.
ChenH.WuW.FengD.Differential fault analysis on CLEFIAInformation and Communications Security20074861Springer284295Lecture Notes in Computer Science2-s2.0-38149107487
8.
JeongK.LeeC.Differential fault analysis on block cipher LED-64Future Information Technology, Application, and Service20121Springer74775510.1007/978-94-007-4516-2_79
9.
JeongK.Security analysis of block cipher Piccolo suitable for wireless sensor networksPeer-to-Peer Networking and Applications201310.1007/s12083-012-0196-9
10.
LiS.GuD.MaZ.LiuZ.Fault analysis of the Piccolo block cipherProceedings of the 8th International Conference on Computational Intelligence and Security (CIS '12)201248248610.1109/CIS.2012.114
11.
YoshikawaH.KaminagaM.ShikodaA.SuzukiT.Round addition DFA on 80-bit Piccolo and TWINEIEICE Transactions on Information and Systems2013E96-D920312035
12.
ZhangF.ZhaoX.GuoS.WangT.ShiZ.Improved algebraic fault analysis: a case study on Piccolo and applications to other lightweight block ciphers7864Proceedings of the 4th International Workshop on Constructive Side-Channel Analysis and Secure Design (COSADE '13)2013Springer6279Lecture Notes in Computer Science10.1007/978-3-642-40026-1_5
13.
BagheriN.EbrahimpourR.GhaediN.New differential fault analysis on PRESENTEURASIP Journal on Advances in Signal Processing20132013, article 1451010.1186/1687-6180-2013-145
14.
ZhangW. Y.LiuF.LiuX.MengS.Differential fault analysis and meet-in-the-middle attack on the block cipher KATAN32Journal of Shanghai Jiaotong University (Science)2013182147152
15.
DinurI.ShamirA.Cube attacks on tweakable black boxp polynomialsAdvances in Cryptology—EUROCRYPT 200920095479Springer278299Lecture Notes in Computer Science2-s2.0-6765069972710.1007/978-3-642-01001-9_16
16.
Abdul-LatipS. F.ReyhanitabarM. R.SusiloW.SeberryJ.Fault analysis of the KATAN family of block ciphersInformation Security Practice and Experience20127232Springer319336Lecture Notes in Computer Science2-s2.0-8485946548210.1007/978-3-642-29101-2_22
17.
DinurI.ShamirA.Applying cube attacks to stream ciphers in realistic scenariosCryptography and Communications201243-4217232
18.
ShibutaniK.IsobeT.HiwatariH.MitsudaA.AkishitaT.ShiraiT.Piccolo: an ultra-lightweight blockcipherProceedings of the 13th International Workshop on Cryptographic Hardware and Embedded Systems (CHES '11)20116917342357Lecture Notes in Computer Science2-s2.0-8005352424410.1007/978-3-642-23951-9_23
19.
WangY.WuW.YuX.Biclique cryptanalysis of reduced-round Piccolo block cipherInformation Security Practice and Experience20127232Springer337352Lecture Notes in Computer Science2-s2.0-8485945689610.1007/978-3-642-29101-2_23
20.
SongJ.LeeK.LeeH.Biclique cryptanalysis on lightweight block cipher: HIGHT and PiccoloInternational Journal of Computer Mathematics20139012117
21.
AumassonJ.-P.DinurI.MeierW.ShamirA.Cube testers and key recovery attacks on reduced-round MD6 and triviumFast Software Encryption20095665Springer122Lecture Notes in Computer Science2-s2.0-7035038511710.1007/978-3-642-03317-9_1