Des PDF
Des PDF
Des PDF
Group Members
Sadeeq Jan
Charu Gupta
Tariq Saeed
Table of Contents
Topic
Page
1. INTRODUCTION TO CRYPTOGRAPHY
1.2.1 Substitution
1.2.2 Transposition
5
5
6
7
10
11
11
2.2.4 S-Boxes
13
15
16
16
16
16
18
List of Figures
Figure
Page
2
3
7
9
11
INTRODUCTION TO CRYPTOGRAPHY
Cryptography is the art of achieving security by encoding messages to make them nonreadable. Cryptography enables one to store sensitive information or transmit it across
insecure networks (like the Internet) so that it cannot be read by anyone accept the
intended recipient.
A Cryptographic Algorithm, or Cipher, is a mathematical function used in the
encryption and decryption process. A cryptographic algorithm works in combination with
a keya word, number, or phraseto encrypt the plaintext.
The same plaintext encrypts to different cipher text with different keys. The security of
encrypted data is entirely dependent on two things: the strength of the cryptographic
algorithm and the secrecy of the key.
A cryptographic algorithm, plus all possible keys and all the protocols that make it work
comprise a cryptosystem. [1]
Substitution
Techniques
Transposition
Techniques
Process
Input
Output
Sender
Communication Channel
Input
Process
Output
Reciever
The entire model can be considered as a combination of two subsystems. i.e. a system at
the sender which is known as the Encryption System and another system at the receiver
which is known as Decryption System.
26
28
30
32
25
27
29
31
18
20
22
24
17
19
21
23
10
12
14
16
9
11
13
15
2
4
6
8
1
3
5
7
10
The 58th bit of the input becomes the first bit of the permuted input, 50th bit becomes the
second bit, the bit 42 becomes the 3rd bit and so on. The 7th bit of the input becomes the
last bit of the permuted input.
The permuted input block is then passed through 16 rounds. The details of a single round
are explained in section 2.3.2. The output of that computation, called the preoutput, is
then subjected to the following permutation which is the inverse of the initial
permutation:
IP-1
40
39
38
37
36
35
34
33
8
7
6
5
4
3
2
1
48
47
46
45
44
43
42
41
16
15
14
13
12
11
10
9
56
55
54
53
52
51
50
49
24
23
22
21
20
19
18
17
64
63
62
61
60
59
58
57
32
31
30
29
28
27
26
25
That is, the output of the algorithm has bit 40 of the preoutput block as its first bit, bit 8
as its second bit, and so on, until bit 25 of the preoutput block is the last bit of the output.
32 bits
32 bits
28 bits
Li-1
Ri-1
Ci-1
Expansion
E-table
28 bits
Di-1
Left
Shif ( )
Right
Shif ( )
48
F
Permutation/
Contraction
XOR
48
48
Substitution
/choice
(s-box)
32
Permutation (P)
32
XOR
Li-1
Ri
Ci
Di
1
5
9
13
17
21
25
29
2 3 4 5
6 7 8 9
10 11 12 13
14 15 16 17
18 19 20 21
22 23 24 25
26 27 28 29
30 31 32 1
12
7 20 21
12 28 17
15 23 26
18 31 10
8 24 14
27 3 9
13 30 6
11 4 25
2.2.4 S-Boxes
There are 8 selection boxes S1, S2, ..S8. each S box takes 6-bit block as input and
produces 4-bit block as output.
S1
Column Number
Row
No.
0
1
2
3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
14 4 13 1 2 15 11 8 3 10 6 12 5 9
0 15 7 4 14 2 13 1 10 6 12 11 9 5
4 1 14 8 13 6 2 11 15 12 9 7 3 10
15 12 8 2 4 9 1 7 5 11 3 14 10 0
15
0 7
3 8
5 0
6 13
The first and last bits of the input box Si for a 2-bit binary number which is used for the
selection of Row defined in the above table. The middle four bits are used to select one of
the sixteen columns. The decimal value at the intersection of row and column is then
converted to 4-bit binary number to produce the output.
For example if the input is 110001, then the first and last bits of this number are 11 which
selects row number 3. the middle four bits are 1000 which is equivalent of 8 in decimal,
that means the column to be selected is 8th. In row 3 and column 8 the number is 5 which
in binary is equivalent 0101 which is the intended output.
All of the four S-Boxes are shown below:
13
S1
14
O
4
15
4 13
15 7
1 14
12 8
1 2 15 11 8 3 10 6 12 5 9 0 7
4 14 2 13 1 10 6 12 11 9 5 3 8
8 13 6 2 11 15 12 9 7 3 10 5 0
2 4 9 1 7 5 11 3 14 10 O 6 13
S2
15 1 8 14 6 11 3 4 9
3 13 4 7 15 2 8 14 12
0 14 7 11 10 4 13 1 5
13 8 10 1 3 15 4 2 11
7 2 13 12
0 1 10 6
8 12 6 9
6 7 12 0
O 5 10
9 11 5
3 2 15
5 14 9
S3
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 O 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 13 0 6 9 8 7 4 15 14 3 11 5 2 12
S4
7 13 14
13 8 11
10 6 9
3 15 O
3 0 6 9 10 1 2 8 5 11 12 4 15
5 6 15 O 3 4 7 2 12 1 10 14 9
0 12 11 7 13 15 1 3 14 5 2 8 4
6 10 1 13 8 9 4 5 11 12 7 2 14
S5
14
2 12 4 1 7 10 11 6 8
14 11 2 12 4 7 13 1 5
4 2 1 11 10 13 7 8 15
11 8 12 7 1 14 2 13 6
5 3 15 13 O 14 9
0 15 10 3 9 8 6
9 12 5 6 3 O 14
15 O 9 10 4 5 3
S6
12 1 10 15 9 2 6 8 O
10 15 4 2 7 12 9 5 6
9 14 15 5 2 8 12 3 7
4 3 2 12 9 5 15 10 11
13 3 4 14 7 5 11
1 13 14 O 11 3 8
0 4 10 1 13 11 6
14 1 7 6 0 8 13
S7
4 11 2 14 15
13 0 11 7 4
1 4 11 13 12
6 11 13 8 1
0 8 13 3 12 9 7 5 10 6 1
9 1 10 14 3 5 12 2 15 8 6
3 7 14 10 15 6 8 0 5 9 2
4 10 7 9 5 0 15 14 2 3 12
S8
13 2 8
1 15 13
7 11 4
2 1 14
4 6 15 11 1 10
8 10 3 7 4 12
1 9 12 14 2 0
7 4 10 8 13 15
9 3 14 5 0 12 7
5 6 11 0 14 9 2
6 10 13 15 3 5 8
12 9 0 3 5 6 11
15
CONCLUSION
Data Encryption Standard is a very powerful algorithm. It is much faster than the public
key systems like RSA. It is also easy to implement in both hardware and software. It was
tested for about 25 years and no logic flaws were detected. Despite these advantages DES
also has some limitations like the key transmission of private key over public channel,
slower than AES, RC6 and its smaller key length.
However if the key size of DES is made larger which is done in Triple DES, then DES
can be a very powerful and unbreakable algorithm.
17
[5] Hevia, A and Kiwi ,M. Strength of Two Data Encryption Standard
Implementations under Timing Attacks ACM Transactions on Information and
System Security, November 1999.
18