| Key Size (bits) | Time (1us/test) | Time (1us/106test) |
|---|---|---|
| 32 | 35.8 mins | 2.15 msec |
| 40 | 6.4 days | 550 msec |
| 56 | 1140 years | 10.0 hours |
| 64 | ~500000 years | 107 days |
| 128 | 5 x 1024years | 5 x 1018 years |
Comment here that its pretty obvious you can just try every key, but it is necessary to be able to recognise when you've cracked the message, either by knowing explicitly the message you want, or being able to recognise it (ie English text for example). Some forms of data (graphics, machine code) can be much much harder to recognise.
Ri = Li-1 XOR f(Ki XOR Ri-1)
Rai = f(Ki XOR Rai-1)
Rbi = f(Ki XOR Rbi-1)
hence
Yi = Rai XOR Rbi
= f(Ki XOR Rai-1 XOR Ki XOR Rbi-1)
= f(Rai-1 XOR Rbi-1)
= f(Xi)
Called Differential Cryptanalysis because the analysis compares differences between two related, encryptions - and looking for known difference in leading to a known difference out.
XOR profile shows the statistical characteristics of a single S-box, what is likely to happen if you feed a known difference into it. *** show XOR profile of DES S-box 1 ***
f(x')->y', with Pr(p)
(a',b')->(b',a' XOR f(b')) with Pr(p)
(a',b')
Start with the difference we want to use into an S-box, then have to account for the affect of the Permutation of how the ouput(s) are permuted to inputs in the next round. With DES, the best we can do is to use a difference affecting 3 bits & 2 S-boxes.
f(0')->0', Pr(1) ie always(x,0)->(0,x) always
f(x')->0', Pr(p0)(0,x)->(x,0) with probability p0
These are the nicest characteristics to use - the obvious one of no difference in MUST give no difference out (or the universe has suddenly gotton very strange), and one where a difference in leads to no difference out. Then arrange for the data input difference to match this (with the affect of permutation P taken into account).
Note assumption of independence here in the way the probabilities are combined - not actually true, but it works well enough in practise to use it.
A.(x,0)->(0,x) always B.(0,x)->(x,0) with probability p
A.(x,0)->(0,x) always B.(0,x)->(x,x) with probability p1 C.(x,x)->(x,0) with probability p2
Can follow with Biham & Shamir TR Dec 91, Fig 1 p5, Table 2 p9.
Again, this attack uses structure not seen before. This time, it works on single encryptions, collecting stats over many encryptions.
P[i1,i2,...,ia](+)C[j1,j2,...,jb]=K[k1,k2,...,kc] where ia,jb,kc are bit locations in P,C,K
|p - 1/2|
Whilst the S-boxes were designed to be non-linear, it turns out that some of the inputs/outputs can be approximated by linear functions with varying success. Use this to attack the cipher.
PL[7,18,24] XOR PR[12,16] XOR CL[15] XOR CR[7,18,24,29] XOR F16(CR,K16)[15] = K1[19,23] XOR K3[22] XOR K4[44] XOR K5[22] XOR K7[22] XOR K8[44] XOR K9[22] XOR K11[22] XOR K12[44] XOR K13[22] XOR K15[22]
| Cipher | Data/Key/Rounds | Attack Pairs/Encrypts/Memory (Rounds) |
|---|---|---|
| DES | 64/56/16 | Known 43/19/13 |
| Triple-DES | 64/168/48 | Known 2/112/56 |
| IDEA | 64/128/8.5 | Chosen 64/112/32 (4,5) |
| LOKI91 | 64/64/16 | Chosen 58/./. (13) |
| LOKI91 | 64/64/16 | Known 60/./. (11) |
These attacks are applicable to virtually all ciphers, since just about all of them have operations that potential take a varying amount of time/ power to compute, depending on the values being used.
Idea is to monitor the time taken to perform encryptions, and hence infer something about the number of instructions executed, or possibly the values used in time dependent instructions
As part of the AES evaluation, this attack was implemented against a 6502 smartcard version of Twofish, needing 50-100 encryptions to be monitored to recover the 128-bit key (plaintext is not needed, it works by monitoring just the start of the encryption process where keying info is used). The authors believe most of the candidates would be vulnerable.
Another Biham/Shamir attack - it uses deliberately induced errors, typically due to ionising radiation, to introduce single bit errors in the code or subkeys during an encryption computation. When the erroneous output is compared to the correct output, information can be derived about the key. The attack its believed, can be applied to many types of ciphers (incl public key).