[Draft]Block Ciphers - DeS
[Draft]Block Ciphers - DeS
Feistel proposed [FEIS73] that we can approximate the ideal block cipher
by utilizing the concept of a product cipher, which is the execution of two
or more simple ciphers in sequence in such a way that the final result or
product is cryptographically stronger than any of the component ciphers.
It develop a block cipher with a key length of k bits and a block length of
n bits so that there are a total of 2𝑘 transformation instead of 2𝑛 !.
It alternates substitutions and permutations.
Ideal Block Cipher
Claude Shannon proposed to develop a product cipher that alternates confusion and diffusion functions.
His concern was to thwart cryptanalysis based on statistical analysis.
confusion – makes relationship between ciphertext and key as complex as possible.
Implemented using complex substitution function (S-Box).
diffusion – dissipates statistical structure of plaintext into long-range statistics of ciphertext.
One (plaintext digit/symbol) affect many (digits/symbols of ciphertext) and vice versa.
Example: 𝐶𝑛 = σ𝑘𝑖 𝑚𝑖 𝑚𝑜𝑑 26
In binary, it is achieved as follows 𝐶 = 𝐹 𝑃 𝑚 where 𝐹 and 𝑃 are a function and permutation (P-Box) respectively
Feistel cipher structure is based on Shannon’s proposal, and it is the structure used by a number of significant
symmetric block ciphers currently in use.
Statistical and Mathametical
Relationships
Diffusion
Statistical relationship
Plaintext Ciphertext
relationship
Confusion
Key
Feistel Cipher Design Elements
block size
key size
number of rounds
subkey generation algorithm
round function
Expansion/Compression Permutation and Substitution function (S-BOX)
fast software en/decryption
ease of analysis
DES: core idea – Feistel Network
R0 R1 R2 Rd-1 Rd
f1 f2
L0 ⊕ L1 ⊕ L2
⋯ Ld-1
fd
⊕ Ld
input output
𝐿𝑖 = 𝑅𝑖−1
In symbols: ቊ
𝑅𝑖 = 𝐿𝑖−1 ⊕ 𝐹𝑖 𝑅𝑖−1
Data Encryption Standard (DES)
Key
𝟖 × 𝟕 = 𝟓𝟔bit
1234567812345678 12345678
DES | Example
Example:
DES(m,k)=DES(0x8787878787878787, 0x0E329232EA6D0D73)=0x0000000000000000
What if the message isn’t multiple of 8Bytes.
Message should be padded to become multiple of 8Bytes.
Example: “Hello Dr Adnan”
Padding
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
H e l l o D r A d n a n
48 65 6C 6C 6F 20 44 72 20 41 64 6E 61 6E 00 00
DES | SubKey Generation | 1st Step
K = 133457799BBCDFF1, K(64b) = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
PK(56b)=𝑃(𝐾, 𝑃1 )=1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111, where 𝑃(𝐾, 𝑃1 ) denotes
the permutation of K binary sequence using the first permutation indices sequence 𝑃1 .
index 1 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 3 3 4 5 7 7 9
Key
0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 0 0 1
Permutation 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
PermKey 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1
Index 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
9 B B C D F F 1
Key
1 0 0 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1
permutation 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4
PermKey 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1
Initial Key Permutation
8 16 24 32 40 48 56 64
8 16 24 32 40 48 56
Cipher
DES | 16 SubKeys Generation
Iteration Number of 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Number Cyclic Left Shifts 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
DES | 16 SubKeys Generation | Contd.
IP-1 SP EP IP
40 8 48 16 56 24 64 32 16 7 20 21 32 1 2 3 4 5 58 50 42 34 26 18 10 2
39 7 47 15 55 23 63 31 29 12 28 17 4 5 6 7 8 9 60 52 44 36 28 20 12 4
38 6 46 14 54 22 62 30 1 15 23 26 8 9 10 11 12 13 62 54 46 38 30 22 14 6
37 5 45 13 53 21 61 29 5 18 31 10 12 13 14 15 16 17 64 56 48 40 32 24 16 8
36 4 44 12 52 20 60 28 2 8 24 14 16 17 18 19 20 21 57 49 41 33 25 17 9 1
35 3 43 11 51 19 59 27 32 27 3 9 20 21 22 23 24 25 59 51 43 35 27 19 11 3
34 2 42 10 50 18 58 26 19 13 30 6 24 25 26 27 28 29 61 53 45 37 29 21 13 5
33 1 41 9 49 17 57 25 22 11 4 25 28 29 30 31 32 1 63 55 47 39 31 23 15 7
DES | S Boxes (One per Block B)
S1 S5
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
0 15 7 414 2 13 1 10 6 12 11 9 5 3 8 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 1 14 813 6 2 11 15 12 9 7 3 10 5 0 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S2 S6
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S3 S7
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
S4 S8
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
The S-boxes
𝑆𝑖 : 0,1 6 ⟶ 0,1 4
𝑆5 : 011011 ⟶ 1001
DES Round Structure
DES Structure Overview
The Avalanche Effect
A small change in either the plaintext or the key should produce a significant change in the ciphertext.
It is a desirable property of any encryption algorithm
DES exhibits strong avalanche
Strength of DES – Key Size