You are on page 1of 18

DES Key Generation

Original Key= 0f1571c947d9e859


Original key = 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1
0 0 0 1 1 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 1 1 0 1
1 0 0 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1
PC1 =
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
PC2 =
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

Round 1
key = 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0
0 1 1 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 1 1 0 1 1 0
0 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 0 1
key =
0 1 1 0 1 0 0
0 1 1 1 1 1 1
0 0 0 1 0 0 0
1 0 0 1 0 1 0
0 0 0 1 0 0 0
1 0 0 0 1 0 0
1 1 1 1 1 0 1
0 0 1 0 1 1 0
L=
0 1 1 0 1 0 0
0 1 1 1 1 1 1
0 0 0 1 0 0 0
1 0 0 1 0 1 0
R=
0 0 0 1 0 0 0
1 0 0 0 1 0 0
1 1 1 1 1 0 1
0 0 1 0 1 1 0
L =0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0
0 1 0 1 0
R =0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0
1 0 1 1 0
LS-1 on L =1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1
0 0 1 0 1 0 0
LS-1 on R=0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0
0 1 0 1 1 0 0
After Shifting= 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0
1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1
1 1 0 1 0 0 1 0 1 1 0 0
Applying PC-2=
0 1 1 1 1 0 0 0
0 0 1 1 0 0 1 1
1 1 0 0 0 0 1 1
0 0 1 0 0 0 0 0
1 1 0 1 1 0 1 0
0 1 1 1 0 0 0 0
K1= 0 1 1 1 1 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0
1 1 0 0 1 0 0 0 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 0
0 0
Round 2
Key =

1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0
1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0
LeftBits =

1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0

RightBits =

0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0

LS1onL =

1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1

LS1onR =

0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0

AfterShift =

1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1
0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0

ApplyingPC2 =

0 0 1 0 1 0 1 1
0 0 0 1 1 0 1 0
0 1 1 1 0 1 0 0
1 1 0 0 1 0 1 0
0 1 0 0 1 0 0 0
1 1 0 1 1 0 0 0

RoundKey =

0 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 0 0 1 0
0 0 1 1 0 1 1 0 0 0

Round 3
Key =
1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 1
0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0

LeftBits =

1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1

RightBits =

0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0

LS2onL =

1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0

LS2onR =

0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1

AfterShift =

1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0
1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1

ApplyingPC2 =

1 0 0 0 1 1 0 0
0 1 1 1 1 0 0 0
1 1 0 1 1 0 0 0
1 0 0 0 0 0 0 1
1 1 0 1 0 0 1 1
0 0 0 1 1 1 0 1

RoundKey =

1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0
1 1 0 0 0 1 1 1 0 1

Round 4
Key =

1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0
1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1

LeftBits =

1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0

RightBits =

0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1

LS2onL =

0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0

LS2onR =

0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0

AfterShift =

0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1
1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0

ApplyingPC2 =

0 0 0 1 0 1 1 0
0 1 1 0 0 1 1 1
0 1 1 1 1 0 0 0
1 0 0 1 0 0 1 1
0 0 0 1 0 1 1 0
1 0 1 0 0 0 0 0

RoundKey =

0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 1
1 0 1 0 1 0 0 0 0 0
Round 5

Key =

0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1
1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0

LeftBits =

0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0

RightBits =

0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0

LS2onL =

1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0

LS2onR =

0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1

AfterShift =

1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1
1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1

ApplyingPC2 =

1 1 0 0 1 1 1 0
0 1 0 1 1 1 0 1
0 0 0 0 0 0 0 1
1 1 0 1 1 0 0 0
0 0 0 0 1 0 1 1
0 0 1 0 0 1 0 1

RoundKey =
1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0
1 1 0 0 1 0 0 1 0 1
Round 6

Key =

1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 1 1
1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1

LeftBits =

1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0

RightBits =

0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1

LS2onL =

1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1

LS2onR =

0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0

AfterShift =

1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0
1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0

ApplyingPC2 =

0 1 0 0 1 0 1 1
1 0 1 0 1 0 1 1
0 1 0 0 1 1 0 1
0 0 0 1 0 0 1 0
0 1 1 0 1 0 1 0
1 0 0 1 1 1 0 0
RoundKey =

0 1 0 0 1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0
1 0 1 0 0 1 1 1 0 0
Round 7

Key =

1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0
1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0

LeftBits =

1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1

RightBits =

0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0

LS2onL =

1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1

LS2onR =

0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1

AfterShift =

1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0
0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1

ApplyingPC2 =

0 0 0 0 1 0 0 1
1 1 1 1 0 1 0 0
1 0 0 0 1 0 1 1
0 1 1 1 0 0 0 1
0 0 1 1 0 0 0 1
1 0 0 1 0 0 0 1
RoundKey =

0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0
0 1 1 0 0 1 0 0 0 1
Round 8

Key =

1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 1 0
0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1

LeftBits =

1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1

RightBits =

0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1

LS2onL =

0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1

LS2onR =

1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0

AfterShift =

0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1
0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0

ApplyingPC2 =

0 1 1 1 0 0 0 1
0 0 0 0 1 1 0 1
1 1 1 0 1 0 1 0
1 0 1 0 0 0 1 1
0 0 1 0 0 0 0 0
0 0 1 0 1 0 1 1

RoundKey =

0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0
0 0 0 0 1 0 1 0 1 1
Round 9

Key =

0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1
0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0

LeftBits =

0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1

RightBits =

1 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0

LS1onL =

0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0

LS1onR =

1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1

AfterShift =

0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 0
1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1

ApplyingPC2 =

0 0 0 1 0 0 1 0
1 0 0 1 1 0 1 0
1 0 1 1 1 0 0 0
0 0 1 1 0 0 1 1
0 1 0 0 0 1 1 1
1 1 0 0 0 0 1 1

RoundKey =

0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1
1 1 1 1 0 0 0 0 1 1
Round 10

Key =

0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 0
1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1

LeftBits =

0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0

RightBits =

1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1

LS2onL =

1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0

LS2onR =

1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1

AfterShift =

1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1
0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1

ApplyingPC2 =
1 0 0 1 1 1 0 0
0 0 1 1 1 0 0 0
0 1 1 0 0 1 1 0
0 0 0 1 1 1 1 0
1 0 0 0 0 0 0 1
0 0 0 0 0 0 1 1

RoundKey =

1 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0
0 1 0 0 0 0 0 0 1 1
Round 11

Key =

1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1
0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1

LeftBits =

1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0

RightBits =

1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1

LS2onL =

0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0

LS2onR =

0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1

AfterShift =

0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0
0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1
ApplyingPC2 =

1 0 1 0 0 0 1 0
0 1 1 0 1 1 1 0
0 1 0 0 1 1 0 0
1 1 0 0 0 1 1 0
0 1 1 0 0 1 0 1
0 1 0 0 0 1 0 0

RoundKey =

1 0 1 0 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1
0 1 0 1 0 0 0 1 0 0
Round 12

Key =

0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0
0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1

LeftBits =

0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0

RightBits =

0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1

LS2onL =

1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0

LS2onR =

0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1

AfterShift =

1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0
1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1
ApplyingPC2 =

0 1 0 0 1 0 0 0
0 1 1 1 0 1 1 1
0 0 1 0 0 1 0 0
0 1 1 0 1 0 0 0
1 0 1 0 0 0 1 1
1 1 0 0 1 0 0 0

RoundKey =

0 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0
1 1 1 1 0 0 1 0 0 0
Round 13

Key =

1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0
1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1

LeftBits =

1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0

RightBits =

0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1

LS2onL =

0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0

LS2onR =

1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0

AfterShift =
0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0
0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0

ApplyingPC2 =

1 1 0 0 0 0 0 0
1 0 0 1 1 1 0 1
0 1 1 1 1 0 0 1
1 1 1 1 0 0 0 0
1 1 0 1 0 1 0 0
0 0 0 0 1 0 1 1

RoundKey =

1 1 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 1
0 0 0 0 0 0 1 0 1 1
Round 14

Key =

0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0
0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0

LeftBits =

0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0

RightBits =

1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0

LS2onL =

0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1

LS2onR =

1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0
AfterShift =

0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0
1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0

ApplyingPC2 =

1 1 0 0 0 1 0 1
1 1 1 0 0 0 1 0
0 1 1 0 0 0 1 1
0 1 0 0 1 1 1 0
0 0 0 1 0 1 1 0
0 0 1 0 1 0 1 0

RoundKey =

1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 1 0 1
1 0 0 0 1 0 1 0 1 0
Round 15

Key =

0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0
1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0

LeftBits =

0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1

RightBits =

1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0

LS2onL =

0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1

LS2onR =

0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1
AfterShift =

0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0
0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1

ApplyingPC2 =

1 0 1 0 0 0 1 1
1 1 0 1 1 1 1 1
1 0 0 0 0 0 1 0
1 0 0 1 1 1 0 0
0 1 1 1 1 0 0 1
0 1 1 0 1 0 0 0

RoundKey =

1 0 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 0
0 1 0 1 1 0 1 0 0 0
Round 16

Key =

0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0
0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1

LeftBits =

0 0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1

RightBits =

0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1

LS1onL =

0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0

LS1onR =
0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0

AfterShift =

0 1 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0
0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0

ApplyingPC2 =

1 0 1 0 0 1 1 0
0 0 0 1 0 0 1 0
0 0 0 0 1 0 1 1
0 1 0 0 1 1 0 1
0 1 0 0 1 1 0 0
0 0 1 0 0 1 0 1

RoundKey =

1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1
0 0 0 0 1 0 0 1 0 1

You might also like