CS 431 homework assignment #3

This homework assignment is due on October 22 (the day of the midterm).

Backgound material for problem 1

Recall the definition of a Feistel block cipher: It operates on 2n-bit blocks, consisting of two n-bit half-blocks L and R (left half and right half). A single round consists of the following operations to derive (L_i,R_i) from (L_{i-1},R_{i-1}):
  L  = R
   i    i-1

  R  = L    XOR f(R   , K )
   i    i-1        i-1   i
This is repeated for r rounds. The input block is called (L0,R0), and the output block is called (Lr,Rr). At round i there is a k-bit round key Ki, and the function f maps takes an n-bit argument and a k-bit argument, and produces an n-bit result.
     n    k     n
 f: Z  x Z  -> Z
     2    2

Problem 1

Define a Feistel block cipher as follows. Use n=32 for the half-block size, and r=2 rounds, and use independent 32-bit round keys K1 and K2 (for a total key size of 64 bits). Define the combiner function f by f(A,K) = A XOR K (the bitwise exclusive or function).

a) describe an efficient known plaintext against this cipher that will recover the secret key.

b) Carry out the attack on the plaintext/ciphertext pair (in hex notation)

 p = fa621f3e 35819fa2
 c = 67b19d51 53173901
(you may find this easiest to do with a program).

Problem 2

Suppose party A wants to send a large confidential file to multiple recipients, namely parties B, C, and D - all of whom have RSA key pairs. The file is to be sent encrypted, such that no party other than A, B, C, or D can determine its contents by monitoring the transmission. Rather than send separate messages to B, C, and D, A wants to generate only one message containing only one encrypted version of the file contents. How can this be accomplished?

Problem 3

a) what happens if the output of the mangler function f(R,K) in DES produces an output of all zeros?

b) for a fixed right hand side R_{i-1} in DES, how may choices are there for the round key K_i for which the output f(R_{i-1},K_i) will produce an output of all zeros?

c) for a fixed round key K_i, how may choices are there for the right hand side R_{i-1} for which the output f(R_{i-1},K_i) will produce an output of all zeros? NOTE: Your answer cannot be given in any simple form, but what can you say about the number of such values? Also, how many are there when the input K_i is all zeros? In case it helps you to analyze it, here are the S boxes of DES and here is the expansion function E.


Return to the CS431 page.