Professional Documents
Culture Documents
DES Key Generation 1.0
DES Key Generation 1.0
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