0% found this document useful (0 votes)
31 views13 pages

DES Worksheet

The document outlines the Data Encryption Standard (DES) algorithm, detailing the process of generating subkeys from a given key and the steps involved in encrypting a message. It includes examples of key generation, initial permutation, and the function f used in the encryption process. The document provides specific tables for permutations and S-boxes used in the DES algorithm.

Uploaded by

HOD-DIT PSG-PTC
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views13 pages

DES Worksheet

The document outlines the Data Encryption Standard (DES) algorithm, detailing the process of generating subkeys from a given key and the steps involved in encrypting a message. It includes examples of key generation, initial permutation, and the function f used in the encryption process. The document provides specific tables for permutations and S-boxes used in the DES algorithm.

Uploaded by

HOD-DIT PSG-PTC
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

NAME: ROLL.

NO:

WORKSHEET DATA ENCRYPTION STANDARD

Example: Find Cipher text for the give plain text M- message

Let:-

M = 01001110 01000101 01010110 01010010 01010001 01010101 01001001 01010100

L
M

Example: Let K be the key K = KASHISAB.

K=01001011 01000001 01010011 01001000 01001001 01010011 01000001 01000010

The DES algorithm uses the following steps:

CREATE 16 SUB KEYS, EACH OF WHICH IS 48-BITS LONG.


PC-1

57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4

Example: From the original 64-bit key

K=

K+=

Next, split this key into left and right halves, C0 and D0, where each half has 28 bits.

C0=

D0=
Iteration Number of
Number Left Shifts
1 1
2 1
3 2
4 2
5 2
6 2
7 2
8 2
9 1
10 2
11 2
12 2
13 2
14 2
15 2
16 1

C1 =
D1 =

C2 =
D2 =

C3 =
D3 =

C4 =
D4 =

C5 =
D5 =

C6 =
D6 =

C7 =
D7 =

C8 =
D8 =
C9
D9 =

C10 =
D10 =

C11 =
D11 =

C12 =
D12 =

C13 =
D13 =

C14 =
D14 =

C15 =
D15 =

C16 =
D16 =
We now form the keys Kn, for 1<=n<=16, by applying the following permutation table to each of the
concatenated pairs CnDn. Each pair has 56 bits, but PC-2 only uses 48 of these.
PC-2
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32

Therefore, the first bit of Kn is the 14th bit of CnDn, the second bit the 17th, and so on, ending with the 48th bit
of Kn being the 32th bit of CnDn.

Example: For the first key we have

C1 =
D1 =

Which after we apply the permutation PC-2, becomes

K1 =

For the other keys we have

K2 =
K3 =
K4 =
K5 =
K6 =
K7 =
K8 =
K9 =
K10 =
K11 =
K12 =
K13 =
K14 =
K15 =
K16 =
ENCRYPTION
There is an initial permutation IP of the 64 bits of the message data M. This rearranges the bits according to the
following table, where the entries in the table show the new arrangement of the bits from their initial order. The
58th bit of M becomes the first bit of IP. The 50th bit of M becomes the second bit of IP. The 7th bit of M is
the last bit of IP.

IP
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7

Example: Applying the initial permutation to the block of text M, given previously, we get

M=
IP =

Next divide the permuted block IP into a left half L0 of 32 bits, and a right half R0 of 32 bits.

Example: From IP, we get L0 and R0

L0 =
R0 =

We now proceed through 16 iterations, for 1<=n<=16, using a function f which operates on two blocks--a
data block of 32 bits and a key Kn of 48 bits--to produce a block of 32 bits. Let + denote XOR addition, (bit-
by-bit addition modulo 2). Then for n going from 1 to 16 we calculate

Ln = Rn-1
Rn = Ln-1 + f (Rn-1, Kn)

This results in a final block, for n = 16, of L16R16. That is, in each iteration, we take the right 32 bits of the
previous result and make them the left 32 bits of the current step. For the right 32 bits in the current step, we
XOR the left 32 bits of the previous step with the calculation f.

Example: For n = 1, we have

K1=
L 1 = R0 =
R1 = L0 + f(R0,K1)

It remains to explain how the function f works. To calculate f, we first expand each block Rn-1 from 32 bits to
48 bits. This is done by using a selection table that repeats some of the bits in Rn-1 . We'll call the use of this
selection table the function E. Thus E(Rn-1) has a 32 bit input block, and a 48 bit output block.
Let E be such that the 48 bits of its output, written as 8 blocks of 6 bits each, are obtained by selecting the bits
in its inputs in order according to the following table:
E BIT-SELECTION TABLE
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

Thus the first three bits of E(Rn-1) are the bits in positions 32, 1 and 2 of Rn-1 while the last 2 bits of E(Rn-1) are
the bits in positions 32 and 1.

Example: We calculate E(R0) from R0 as follows:

R0 =

E(R0) =

(Note that each block of 4 original bits has been expanded to a block of 6 output bits.)

Next in the f calculation, we XOR the output E(Rn-1) with the key Kn:

Kn + E(Rn-1).

Example: For K1 , E(R0), we have

K1 =
E(R0) =
K1+E(R0) =

We have not yet finished calculating the function f . To this point we have expanded Rn-1 from 32 bits to 48 bits,
using the selection table, and XORed the result with the key Kn . We now have 48 bits, or eight groups of six
bits. We now do something strange with each group of six bits: we use them as addresses in tables called " S
boxes". Each group of six bits will give us an address in a different S box. Located at that address will be a 4 bit
number. This 4 bit number will replace the original 6 bits. The net result is that the eight groups of 6 bits are
transformed into eight groups of 4 bits (the 4-bit outputs from the S boxes) for 32 bits total.
Write the previous result, which is 48 bits, in the form:

Kn + E(Rn-1) =B1B2B3B4B5B6B7B8,

where each Bi is a group of six bits. We now calculate

S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8)

where Si(Bi) referres to the output of the i-th S box.

To repeat, each of the functions S1, S2,..., S8, takes a 6-bit block as input and yields a 4-bit block as output. The
table to determine S1 is shown and explained below:
S1

Column Number
Row
No. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

The tables defining the functions S1,...,S8 are the following:

S1
14 4 1 1 2 15 11 8 3 10 6 12 5 9 0 7
3
0 15 7 4 14 2 13 1 1 6 1 11 9 5 3 8
0 2
4 1 1 8 13 6 2 11 1 12 9 7 3 10 5 0
4 5
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
S2
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 1 0 1 10 6 9 11 5
2
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 1 1 3 15 4 2 1 6 7 12 0 5 14 9
0 1
S3

10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 1 0 6 9 8 7 4 15 14 3 11 5 2 12
3
S4
7 13 1 3 0 6 9 10 1 2 8 5 11 12 4 15
4
13 8 1 5 6 15 0 3 4 7 2 12 1 10 14 9
1
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
S5
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 1 7 1 14 2 13 6 15 0 9 10 4 5 3
2
S6
12 1 1 15 9 2 6 8 0 13 3 4 14 7 5 11
0
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 1 5 2 8 12 3 7 0 4 10 1 13 11 6
5
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S7
4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 1 7 4 9 1 10 14 3 5 12 2 15 8 6
1
1 4 1 13 12 3 7 14 10 15 6 8 0 5 9 2
1
6 11 1 8 1 4 10 7 9 5 0 15 14 2 3 12
3
S8
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 1 8 10 3 7 4 12 5 6 11 0 14 9 2
3
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 1 7 4 10 8 13 15 12 9 0 3 5 6 11
4

Example: For the first round, we obtain as the output of the eight S boxes:

K1 + E(R0) =

S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) =

The final stage in the calculation of f is to do a permutation P of the S-box output to obtain the final value of f:

f = P(S1(B1)S2(B2)...S8(B8))

The permutation P is defined in the following table. P yields a 32-bit output from a 32-bit input by permuting
the bits of the input block.
P

16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
2 11 4 25

Example: From the output of the eight S boxes:

S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) =

f= 1101 0011 0000 1001 0111 0110 1101 0001

R1 = L0 + f (R0 , K1 )

=
So now

L1=
R1=

In the next round, we will have L2 = R1, which is the block we just calculated, and then we must calculate R2
=L1 + f(R1, K2), and so on for 16 rounds. At the end of the sixteenth round we have the blocks L16 and R16. We
then reverse the order of the two blocks into the 64-bit block

STEP 2

L2=0010 1100 1011 0101 1101 0001 1010 0011

R2=L1 +f (R1, K2)

f (R1,K2)= 0010 1100 1010 1000 1011 0000 0101 0011

R2=0000 0000 0000 0000 0100 0001 0000 1101


+
0010 1100 1010 1000 1011 0000 0101 0011=
0010 1100 1010 1000 1111 0001 0101 1110

L2=0010 1100 1011 0101 1101 0001 1010 0011

R2=0010 1100 1010 1000 1111 0001 0101 1110

STEP 3
L3=
R3=L2+f(R2, K3)
f(R2, K3)=
R3=
+
=
L3=
R3=
STEP4

L4=

R4=L3+f(R3,K4)

So R4=

STEP5

L5=

R5=L4+f(R4,K5)

So R5=

STEP6

L6=

R6=

L5+f(R5,K6)

So R6=

STEP7

L7=

R7=L6+f(R6,K7)

So R7=

STEP8

L8=

R8=L7+f(R7,K8)

So R8=
STEP 9

L9=

R9=L8+f(R8,K9)

So R9=

STEP10

L10=

R10=L9+f(R9,K10)

So R10=

STEP11

L11=

R11=L10+f(R10,K11)

So R11=

STEP12

L12=
R12=L11+f(R11,K12)

So R12=

STEP13

L13=

R13=L12+f(R12,K13)

So R13=

STEP14

L14=

R14=L13+f(R13,K14)

So R14=
STEP15

L15=

R15=L14+f(R14,K15)

So R15=

STEP16

L16=

R16=L15+f(R15,K16)

S0 R16=

Example: If we process all 16 blocks using the method defined previously, we get, on the 16th round,

L16 =
R16 =
We reverse the order of these two blocks and apply the final permutation to

R16L16 =

and apply a final permutation IP-1 as defined by the following table:

IP-1
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25

IP-1 =

 Hexadecimal format is:


 This is the encrypted form of Plain Text =
 Key=

 Cipher Text =

You might also like