460 likes | 607 Views
Some integral properties of Rijndael. Marine Minier CITI Laboratory INSA de Lyon. Guideline. Description of the AES and of its little brothers Integral properties of the AES Integral properties of the different Rijndael versions Deduced distinguishers With unknown keys With known keys
E N D
Some integral properties of Rijndael Marine Minier CITI Laboratory INSA de Lyon Workshop MITACS - June 2009
Guideline • Description of the AES and of its little brothers • Integral properties of the AES • Integral properties of the different Rijndael versions • Deduced distinguishers • With unknown keys • With known keys • LANE • Conclusion Workshop MITACS - June 2009
The AES and its brothers Workshop MITACS - June 2009
AES and Rijndael (1/3) Plaintexts (128, 160 192,224, 256 bits) Bytes matrix 4x, 5x, 6x, 7x, 8x4 K0 • Rijndael, created by J. Daemen and V. Rijmen, AES new standard • Iterative block ciphers with a parallel structure. • blockssizes: 128, 160, 192, 224 or 256 bits. • Key sizes: 128, 192 or 256bits. • The number of rounds vary between 10 and 14 according to the blocks sizes and the key sizes. initial Key addition Byte Sub Shift Row round 1 Mix Column K1 Key Addition Byte Sub Shift Row round 9, 11 ou 13 Mix Column K9 Key Addition Byte Sub Last Round Shift Row K10 Key Addition Ciphertexts (128, 160 192,224, 256 bits) Bytes matrix 4x, 5x, 6x, 7x, 8x4 Workshop MITACS - June 2009
3 a00 a01 a02 a03 a00 a01 a02 a03 a10 a11 a12 a13 a10 a11 a12 a13 a20 a21 a22 a23 1 a20 a21 a22 a23 a30 a31 a32 a33 a30 a31 a32 a33 S(a00) S(a01) S(a01) S(a00) S(a13) S(a12) S(a11) S(a10) S(a23) S(a22) S(a21) S(a20) S(a33) S(a32) S(a31) S(a30) The AES (2/3): Round function (1/2) • Byte Substitution • Shift Row 2 (8x8 S-box S) a00 a01 a02 a03 a11 a12 a13 a10 a22 a23 a20 a21 a32 a30 a33 a31 Workshop MITACS - June 2009
a00 a01 a02 a00 a01 a02 a03 a10 a11 a12 a10 a11 a12 a13 a20 a21 a22 a30 a31 a32 a20 a21 a22 a23 a30 a31 a32 a33 b00 b01 b02 b03 b00 b01 b02 b03 b10 b11 b12 b13 b10 b11 b12 b13 b20 b21 b22 b23 b20 b21 b22 b23 b30 b31 b32 b33 b30 b31 b32 b33 The AES (3/3): Round function (2/2) • Key Addition • Mix Column a03 a13 a23 a33 Ki(128 bits) Workshop MITACS - June 2009
Rijndael: main differences • Change: • nb of rounds • ShiftRows AES (4 col.) Rijndael-160 (5 col.) Rijndael-192 (6 col.) Rijndael-224 (7 col.) Rijndael-256 (8 col.) Workshop MITACS - June 2009
. . . . . . . . . General principle of cryptanalysis X [n bits] f KX • Distinguisher A: To find a relation R(x’,y’) on intermediate states which has a probability p of happening as far as possible from the uniform probability p*: Pr[A]=Adv(A)=|p-p*| • Test over the keys sur (KX, KY) Initial rounds x’ = (X,KX) f x’ [ n bits] f Intermediate rounds R(x’,y’) f y’ [ n bits] f KY Kr Final rounds y’ = (Y,KY) Y Workshop MITACS - June 2009
Integral properties Workshop MITACS - June 2009
SubBytes ShiftRows SubBytes ShiftRows SubBytes ShiftRows MixColumns AddRoundKey MixColumns AddRoundKey MixColumns AddRoundKey Integral property of the AES (1/2) y Y S(y) • byte y = 0…255 • other bytes = constants z0 z1 Z z2 S(z0) z3 S(z1) S(z2) S(z3) R s S Workshop MITACS - June 2009
Integral property of the AES (2/2) 232 textes clairs • On 6 rounds: • For each 9 bytes of keys: • Test if: • Good keys pass the test. • Take care of false alarms. 4 key bytes Y 3 rounds As before Trois rounds S( y ) Lasr round without MixColumn 4 key bytes 232 textes chiffrés Workshop MITACS - June 2009
Complexity of integral attacks • Improvement by Ferguson: • Sum over the 232values • => Complexity for 6 rounds • Nb plaintexts = 6*232 • Complexity = 246 using partial sum techniques • For 7 rounds: • Nb plaintexts = 2128 – 2119 (with herd technique) • Complexity = 2120 cipher operations Workshop MITACS - June 2009
For Rijndael • The same kind of properties • But, due to the slower diffusion, => more rounds and better extensions Workshop MITACS - June 2009
Rijndael-256: first remark y Note: SR: 1, 2, 4 Nb rounds: 14 (min) z0 z1 z2 z3 z0 z3 z2 z1 SubBytes ShiftRows z2 z1 a0 b0 a1 b1 MixColumns AddKey a2 b2 b3 a3 Workshop MITACS - June 2009
Rijndael 256Integral property y n p First round z0 z1 z2 z3 Second round • Distinguisher on 4 rounds: • Saturation on 3 bytes • => Complexity: 224 ciphers Third round Fourth round 0 0 0 0 0 0 0 0 Workshop MITACS - June 2009
Rijndael 224Integral property y p First round z0 z1 z2 z3 Second round • Distinguisher on 4 rounds: • Saturation on 2 bytes • => Complexity: 216 ciphers Third round Fourth round 0 0 0 0 Workshop MITACS - June 2009
Rijndael 192 Integral property (1) y p z0 z1 z2 z3 • Distinguisher on 4 rounds: • Saturation of 2 bytes • => Complexity: 216 ciphers =1 =2 =1 =2 Workshop MITACS - June 2009
Rijndael 192Integral property y p n z0 z1 z2 z3 • Distinguisher on 4 rounds: • Saturation on 3 bytes • => Complexity: 224 ciphers =1 0 0 =2 =1 0 0 =2 0 0 0 0 Workshop MITACS - June 2009
Rijndael 160Integral property y p n z0 z1 z2 z3 • Distinguisher on 4 rounds: • Saturation de 3 bytes • => Complexity: 224 ciphers =1 0 =2 =1 0 =2 0 0 Workshop MITACS - June 2009
Unknown keys Distinguishers Workshop MITACS - June 2009
Extension of 2 rounds at the end • [Ferguson and al. -00]: partial sums • s directly deduced from ci,j • For each ciphertext c, we associate the partial sum: • Use to sequentially determine kk => Share in 4 steps the key serach Workshop MITACS - June 2009
Extension at the beginning: 2 methods • [Ferguson and al. - 00]: one initial round • => attack on 5 rounds with 232 plaintexts Workshop MITACS - June 2009
The herd technique • One more round at the beginning: • Naively 2128 plaintexts (work, cf Nakhara and al.) • Fix a particular byte x => a herd: set of 2120 ciphertexts of 288 structures • Test on a single herd. • X depends on (p4,…,p7) and on 4 bytes of K0 • Using 264 counters my • 232 counters nz • Filter information on the key guess Workshop MITACS - June 2009
Combine those extensions • attack over 2+4+2=8 rounds (for Rijndael-256) • Increment the 64 bits (c0,…,c3,p4,…, p7) • Guess the 4 bytes of K0, compute x, separate counters into herds. • Choose a single herd, nz en ajoutant (c0,…,c3) pour chaque y correct • Guess the 5 bytes of K7 and of K6 of the two last rounds to decipher each z on one byte. Sum this value over the 232 values of z and look at the 0s. • Repeat this point for each value of theK0 bytes. • => The 4 bytes (p4,…, p7) and the 4 bytes of K0 give 4 bytes • => 224 smaller herds => reduce the exhaustive search to 2128-2119 plaintexts. Workshop MITACS - June 2009
Complexity and attacks on 9 rounds • Total cost: • 2128-2119 plaintexts • 2120 cipher operations • => Add one round at the end using a complete exhaustive search on the subkey K9 Workshop MITACS - June 2009
Summary of the attacks Workshop MITACS - June 2009
Known Keys Distinguishers Workshop MITACS - June 2009
[Knudsen – Rijmen 07] • Notion of Known Key Distinguisher • Principle: create a distinguisher beginning at the middle of the cipher • Then, determine a particular property linking plaintexts and ciphertexts • Comparison withe the complexity required to find such a structure for a random permutation • Interest: create distinguishers when block ciphers are used as hash functions Workshop MITACS - June 2009
Theoritical model [Africacrypt 09] • Advantage of Distinguishers [Vaudenay 97]: AdvE(A) • Two more cases: non-adaptative, adaptative Workshop MITACS - June 2009
Case of an adaptative SPRP Distinguisher Workshop MITACS - June 2009
Case of a non-adaptative Known Key Distinguisher Workshop MITACS - June 2009
=0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 =0 Case of study: the AES [Knu-Rij 07] • Backward sense • Forward sense Workshop MITACS - June 2009
KK distinguisher for the AES • KK distinguisher on 7 rounds • 3 in backward, 4 in forward • Requires 256 middletexts and 256 cipher operations • For a random permutation => k-sum problem, Complexity: 258 operations • => KK distinguisher for the AES 3 rounds 4 rounds Workshop MITACS - June 2009
KK distinguisher for Rijndael • Same kind of properties in the backward sense • Summary of the KK distinguishers for Rijndael [Africacrypt 2009]: Workshop MITACS - June 2009
A last idea… Workshop MITACS - June 2009
LANE: SHA 3 hash function • Hi = h0 ||h1 = 256 bits • Mi = m0 ||m1 ||m2 ||m3 = 512 bits • Pi = 6 modified AES rounds • Qi = 3 modified AES rounds Workshop MITACS - June 2009
the Pi inputs Workshop MITACS - June 2009
Pis and Qis(LANE 256) • The same operations than the ones of the AES • SubBytes, ShiftRows, MixColumns, KeyAdd (with constants) • Two more: AddConstants and SwapColumns Workshop MITACS - June 2009
Integral propertiesof LANE-256 y p • 4 rounds + extension at the beginning: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y p Workshop MITACS - June 2009
Integral property of LANE-256 backward sense 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 • Integral property on 3 rounds + extension at the beginning: 0 0 0 0 0 0 0 0 y p Workshop MITACS - June 2009
Combine the two properties 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 rounds: seen as 2^16 sets of 2^96 values as we want • Distinguisher in 2112on the right part of LANE-256 0 0 0 0 0 0 0 0 3 rounds 5 rounds: seen as 2^48 sets of 2^64 as we want 5 rounds 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Workshop MITACS - June 2009
Why only one half ? • If h0=h1=m2=m3 = cte: • W0 = m0 + m1 || m0 • W1 = m0 || m1 • W2 = m0 + m1 || m0 • W3 = 0 || 0 • W4 = m0 || m1 • W5 = 0 || 0 • Then: • over 2112 messages, a certain number of sums is equal to 0 sum = 0 sum = 0 sum = 0 sum = 0 sum = 0 sum = 0 sum = 0 sum = 0 Workshop MITACS - June 2009
Conclusion • Integral properties of Rijndael were not well studied • Unknown Keys Distinguishers • Known Keys Distinguishers • The last model is really useful to create distinguishers for the SHA-3 competition (cf: LANE) Workshop MITACS - June 2009