Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

a) Describe the high level steps involved for decryption using a Feistel cipher.

ID: 670489 • Letter: A

Question

a) Describe the high level steps involved for decryption using a Feistel cipher.

b) Modify the pseudo code provided in the lecture notes that describe encryption using a Feistel network to do decryption. You need to actually rewrite the code. Use different font colors and comments to highlight the areas of the code you have changed.

c) What are some benefit(s) of a Feistel structure?

Literal # Number of Encryption rounds MaxRound-16 EndLiteral BitRange LeftBits= 0, 31 RightBits-32, 63 # Total block is 64 bits wide. Left side is bits 0-31 # right side are bits 32-63 EndBitRange # Size of Plain Text is 64 bits # Set subkey value to the 1st round # The key [n] represents the sub-key derived from TempText=PlainText the key while n = IntermediateValue n=n+ 1 one #After last round there should not be any swapping of the # data block halves. Therefore undo the last swap done in # the while loop CipherText = TempText CipherText = IntermediateValue

Explanation / Answer

a)

According to Feistel cipher, the decryption of a message is done as follows:

Step 1: First split the provided cipher into two halves. Obtain the Li+1 and Ri+1 values from the two halves.

Step 2: According to steps in encryption technique of the plain text, Ri = Li+1. So, Ri and Li are known.

Step 3: To get the Li substitute the value in equation of the encryption where the equation obtained in encryption was,

Ri+1 = Li XOR F(Ri, Ki )    where Ki is a sub key used to round of the value of i.

After substituting the value of Ri, the equation obtained is

Ri+1 = Li XOR F(Li+1, Ki )

The value of F(Li+1, Ki) can be calculated because at this point the value of Li+1 value is known.

If the resultant is in terms of Ri+1, then the terms F(Li+1, Ki) gets canceled and finally left out with the Li.

So, the Li is been recovered from this equation.

Step 4: Now, the decryption algorithm is described as follows:

Split the given cipher text into two halves as Li+1 and Ri+1.

Set Li= Ri+1 XOR F(Li+1, Ki )

Thus the decryption of a message is done by using the Feistel cipher.

c)

Advantages of using the Feistel cipher:

In decryption, there is no need to invert the function F.

The code provided for encryption and decryption is basically same. But to decrypt the cipher text, the sub keys are used to reverse the function.