Cryptography Tutorials - Herong's Tutorial Notes
Dr. Herong Yang, Version 4.00

DES Algorithm - Illustrated with Java Programs

Part:   1  2  3  4  5  6 

(Continued from previous part...)

R: After S boxes:
00010001 00001100 01010111 01110111

R: After P permutation:
00100010 00110110 01111100 01101010

Right half at round #9:
00100100 01111100 11000110 01111010

R: After E expansion:
00010000 10000011 11111001 01100000 11000011 11110100

R: After XOR with the subkey:
10100001 01110000 10111110 11011010 10000101 10111011

R: After S boxes:
11011010 00000100 01010010 01110101

R: After P permutation:
01100010 10111100 10011100 00100010

Right half at round #10:
10110111 11010101 11010111 10110010

R: After E expansion:
01011010 11111110 10101011 11101010 11111101 10100101

R: After XOR with the subkey:
01111011 10100001 01111000 00110100 00101110 00100011

R: After S boxes:
01110011 00000101 11010001 00000001

R: After P permutation:
11100001 00000100 11111010 00000010

Right half at round #11:
11000101 01111000 00111100 01111000

R: After E expansion:
01100000 10101011 11110000 00011111 10000011 11110001

R: After XOR with the subkey:
00010101 11011010 00000101 10001011 11100100 00011000

R: After S boxes:
01111011 10001011 00100110 00110101

R: After P permutation:
11000010 01101000 11001111 11101010

Right half at round #12:
01110101 10111101 00011000 01011000

R: After E expansion:
00111010 10111101 11111010 10001111 00000010 11110000

R: After XOR with the subkey:
10101101 01111000 00101011 01110101 10111000 10110001

R: After S boxes:
10011010 11010001 10001011 01001111

R: After P permutation:
11011101 10111011 00101001 00100010

Right half at round #13:
00011000 11000011 00010101 01011010

R: After E expansion:
00001111 00010110 00000110 10001010 10101010 11110100

R: After XOR with the subkey:
01010000 01010101 10110001 01111000 01001101 11001110

R: After S boxes:
01100100 01111001 10011010 11110001

R: After P permutation:
10110111 00110001 10001110 01010101

Right half at round #14:
11000010 10001100 10010110 00001101

R: After E expansion:
11100000 01010100 01011001 01001010 11000000 01011011

R: After XOR with the subkey:
01011111 11000101 11010100 01110111 11111111 01010001

R: After S boxes:
10110010 11101000 10001101 00111100

R: After P permutation:
01011011 10000001 00100111 01101110

Right half at round #15:
01000011 01000010 00110010 00110100

R: After E expansion:
00100000 01101010 00000100 00011010 01000001 10101000

R: After XOR with the subkey:
11101011 01010111 10001111 00010100 01010110 01011101

R: After S boxes:
10100111 10000011 00100100 00101001

R: After P permutation:
11001000 11000000 01001111 10011000

Right half at round #16:
00001010 01001100 11011001 10010101

After 16 rounds:
00001010 01001100 11011001 10010101 01000011 01000010 00110010 00110100

After final permutation:
10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101
DES cipher test result: true

Now we got all elements of the implementation working, and validated, let's put them together to make a generic DES encryption program. See the next chapter.

Part:   1  2  3  4  5  6 

Dr. Herong Yang, updated in 2007
Cryptography Tutorials - Herong's Tutorial Notes - DES Algorithm - Illustrated with Java Programs