218k views
3 votes
In this problem we will work through a round of DES. For notational simplicity, assume it is the first round. Please enter all answers as strings of 0's and 1's

The input is the 64 bit block is 0000100000000010000000000001000000000000000001000000000000000001

Suppose that the subkey for the current round is this 48 bit number: 000000000000000000100000000000000000000000000000

What does the 64 bit state look like after the IP transformation is applied to the input? The answer to this is 0000000000001000001000001000000000000000000000000000000100000010

Now find L0 and R0, the left and right halves of the state.
L0 = 00000000000010000010000010000000
R0 = 00000000000000000000000100000010

What is the result of applying the expansion box to R0?
E(R0)=

What is the result of XORing the subkey with E(R0)?
K₁⊕E(R0)=

We now apply the S-box transformation.
S(K₁⊕E(R0))=

Finally we apply the permutation box to complete the function F
F(R0)=P(S(K₁⊕E(R0)))=

We can now compute the state of DES going into the next round.
L₁=
R₁=

User Dansp
by
7.6k points

1 Answer

4 votes

Answer:

I can help you with the DES algorithm. Here are the steps and the results:

To apply the expansion box to R0, we need to use the following table1:

32 1 2 3 4 5

4 5 6 7 8 9

8 9 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 1

This means that we take the bit at position 32 of R0 and put it at position 1 of E(R0), the bit at position 1 of R0 and put it at position 2 of E(R0), and so on. The result is a 48-bit string E(R0) that is obtained by expanding and rearranging the bits of R0.

E(R0) = 000000000000000000000000000000001000000100000010

To XOR the subkey K₁ with E(R0), we need to compare each bit of K₁ and E(R0) and output a 1 if they are different, or a 0 if they are the same. The result is another 48-bit string K₁⊕E(R0) that is obtained by combining the subkey and the expanded right half.

K₁⊕E(R0) = 000000000000000000100000000000001000000100000010

To apply the S-box transformation, we need to use eight different tables, one for each group of six bits in K₁⊕E(R0). Each table has four rows and sixteen columns, and each cell contains a four-bit number. The tables are shown below2:

To use the tables, we take each group of six bits in K₁⊕E(R0) and split it into two parts: the first and last bits form a two-bit row number, and the middle four bits form a four-bit column number. Then we look up the corresponding cell in the table and get a four-bit output. For example, for the first group of six bits 000000, we split it into 00 and 0000, which means row 0 and column 0 in the first table. The cell at row 0 and column 0 contains 14, which is 1110 in binary. This is the output for the first group of six bits. We repeat this process for all eight groups of six bits and concatenate the outputs to get a 32-bit string S(K₁⊕E(R0)) that is obtained by substituting the bits of K₁⊕E(R0) using the S-boxes.

S(K₁⊕E(R0)) = 11100100111011001010101111101101

To apply the permutation box to S(K₁⊕E(R0)), we need to use another table3 that shows how to rearrange the bits of S(K₁⊕E(R0)):

16 7 20 21 29 12 28 17

1 15 23 26 5 18 31 10

2 6 19 12 21 9 27 14

3 28 10 15 25 2 8 24

4 17 22 11 16 30 4

This means that we take the bit at position 16 of S(K₁⊕E(R0)) and put it at position 1 of F(R0), the bit at position 7 of S(K₁⊕E(R0)) and put it at position 2 of F(R0), and so on. The result is another 32-bit string F(R0) that is obtained by permuting the bits of S(K₁⊕E(R0)).

F(R0) = 01110010101010101110110010001110

To compute L₁ and R₁, we need to use the following rule4: L₁ = R₀, R₁ = L₀⊕F(R₀). This means that we copy the right half of the previous state as the left half of the new state, and XOR the left half of the previous state with the output of the function F as the right half of the new state. The result is a 64-bit string that is the state of DES going into the next round.

L₁ = 00000000000000000000000100000010

R₁ = 01110010101010101110110010001110

I hope this helps you understand the DES algorithm better. If you have any questions, please let me know.

User Arsalan Ahmed
by
8.2k points

Related questions