In: Computer Science
Consider the following proposal to prevent DES from exhaustive key search under a known-plaintext attack. The secret key is k=k{1,k2}, where k1 is in (0,1) ^56 and k2 is (0,1) ^64. Let m be in (0,1) ^64 be the plaintext message. Encryption is defined as follows Ek(m)=DESk1(m) XOR k2
(a) Show that this proposal does not increase the work needed to break the encryption scheme E using brute force (exhaustive) search (that is, approximately 2^56 DES operations are still sufficient). You may assume that you have a few plaintext ciphertext pairs (m1,c1), (m2,c2), (m3,c3),...
(b) Now suppose the encryption algorithm is changed to Ek(m)=DESk1(m XOR k2)
Show that this scheme is again no more secure that DES.
Explain with equations.
k = { k1 , k2 }
C is Ciphertext and M = Plaintext
a.) C = Ek( M ) = DESk1,k2 ( M ) = DESk1 ( M ) XOR k2 , where k1 , k2 are keys used for symmetric encryption and M is plaintext
Lets assume we have a few pairs of Plaintext-Ciphertext - (M1 , C1) and (M2 , C2)
C1 = DESk1 ( M1 ) XOR k2
C2 = DESk1 ( M2 ) XOR k2
If we do C1 XOR C2,
C1 XOR C2 = DESk1 ( M1 ) XOR k2 XOR DESk1 ( M2 ) XOR k2 ( a XOR a = 0 )
C1 XOR C2 = DESk1 ( M1 ) XOR DESk1 ( M2 ) ---- eq (1)
since we have C1, C2, M1, M2, we just need to do a brute force attack, using all possible combinations of
key k1 and check whether eq(1) is satisfied or not. This is same as a brute force attack against DES.
On finding the key k1 using brute force attack,
k2 = C1 XOR DESk1 ( M1 )
k2 = DESk1 ( M1 ) XOR k2 XOR DESk1 ( M1 ) = k2 ( a XOR a = 0)
since we have found both the keys k1 and k2, now any plaintext can be excrypted, and any ciphertext can be decrypted.
b.) C = Ek( M ) = DESk1,k2 ( M ) = DESk1 ( M XOR k2 ) , where k1 , k2 are keys used for symmetric encryption and M is plaintext
Lets assume we have a few pairs of Plaintext-Ciphertext - (M1 , C1) and (M2 , C2)
C1 = DESk1 ( M1 XOR k2 )
C2 = DESk1 ( M2 XOR k2 )
If we perform a Bruteforce attack and try to Decrypt C1 and C2 using all possible keys k1, and XOR them
Dk1( C1 ) XOR Dk2( C2 ) , then for the correct key k1, this would be equal to,
= M1 XOR k2 XOR M2 XOR k2 = M1 XOR M2 , hence we can find out the key k1, using a brute force attack,
Then, for k2,
Dk1( C1 ) = M1 XOR k2
Therefore Dk1( C1 ) XOR M1 = M1 XOR k2 XOR M1 = k2 ,
since we have found both the keys k1 and k2, now any plaintext can be excrypted, and any ciphertext can be decrypted.