DES Key Schedule Algorithm Illustration Program Output

This section provides the execution output of the tutorial Java program, DESSubkeysTest.java, to illustrate how DES key schedule algorithm works.

If you run the DES key schedule algorithm illustration program described in the previous section with JDK, you will get:

herong> javac DESSubkeysTest.java

herong> java DESSubkeysTest
Input key:
00010011 00110100 01010111 01111001 10011011 10111100 11011111 111...

After permuted choice 1 - Active key:
11110000 11001100 10101010 11110101 01010110 01100111 10001111

Subkey #1 after shifting:
11100001 10011001 01010101 11111010 10101100 11001111 00011110

Subkey #1 after permuted choice 2:
00011011 00000010 11101111 11111100 01110000 01110010

Subkey #2 after shifting:
11000011 00110010 10101011 11110101 01011001 10011110 00111101

Subkey #2 after permuted choice 2:
01111001 10101110 11011001 11011011 11001001 11100101

Subkey #3 after shifting:
00001100 11001010 10101111 11110101 01100110 01111000 11110101

Subkey #3 after permuted choice 2:
01010101 11111100 10001010 01000010 11001111 10011001

Subkey #4 after shifting:
00110011 00101010 10111111 11000101 10011001 11100011 11010101

Subkey #4 after permuted choice 2:
01110010 10101101 11010110 11011011 00110101 00011101

Subkey #5 after shifting:
11001100 10101010 11111111 00000110 01100111 10001111 01010101

Subkey #5 after permuted choice 2:
01111100 11101100 00000111 11101011 01010011 10101000

Subkey #6 after shifting:
00110010 10101011 11111100 00111001 10011110 00111101 01010101

Subkey #6 after permuted choice 2:
01100011 10100101 00111110 01010000 01111011 00101111

Subkey #7 after shifting:
11001010 10101111 11110000 11000110 01111000 11110101 01010110

Subkey #7 after permuted choice 2:
11101100 10000100 10110111 11110110 00011000 10111100

Subkey #8 after shifting:
00101010 10111111 11000011 00111001 11100011 11010101 01011001

Subkey #8 after permuted choice 2:
11110111 10001010 00111010 11000001 00111011 11111011

Subkey #9 after shifting:
01010101 01111111 10000110 01100011 11000111 10101010 10110011

Subkey #9 after permuted choice 2:
11100000 11011011 11101011 11101101 11100111 10000001

Subkey #10 after shifting:
01010101 11111110 00011001 10011111 00011110 10101010 11001100

Subkey #10 after permuted choice 2:
10110001 11110011 01000111 10111010 01000110 01001111

Subkey #11 after shifting:
01010111 11111000 01100110 01011100 01111010 10101011 00110011

Subkey #11 after permuted choice 2:
00100001 01011111 11010011 11011110 11010011 10000110

Subkey #12 after shifting:
01011111 11100001 10011001 01010001 11101010 10101100 11001111

Subkey #12 after permuted choice 2:
01110101 01110001 11110101 10010100 01100111 11101001

Subkey #13 after shifting:
01111111 10000110 01100101 01010111 10101010 10110011 00111100

Subkey #13 after permuted choice 2:
10010111 11000101 11010001 11111010 10111010 01000001

Subkey #14 after shifting:
11111110 00011001 10010101 01011110 10101010 11001100 11110001

Subkey #14 after permuted choice 2:
01011111 01000011 10110111 11110010 11100111 00111010

Subkey #15 after shifting:
11111000 01100110 01010101 01111010 10101011 00110011 11000111

Subkey #15 after permuted choice 2:
10111111 10010001 10001101 00111101 00111111 00001010

Subkey #16 after shifting:
11110000 11001100 10101010 11110101 01010110 01100111 10001111

Subkey #16 after permuted choice 2:
11001011 00111101 10001011 00001110 00010111 11110101

DES subkeys test result: true

Table of Contents

 About This Book

 Cryptography Terminology

 Cryptography Basic Concepts

 Introduction to AES (Advanced Encryption Standard)

 Introduction to DES Algorithm

DES Algorithm - Illustrated with Java Programs

 DESSubkeysTest.java - DES Key Schedule Algorithm Illustration

DES Key Schedule Algorithm Illustration Program Output

 DESCipherTest.java - DES Cipher Algorithm Illustration

 DES Cipher Algorithm Illustration Program Output

 DES Algorithm Java Implementation

 DES Algorithm - Java Implementation in JDK JCE

 DES Encryption Operation Modes

 DES in Stream Cipher Modes

 PHP Implementation of DES - mcrypt

 Blowfish - 8-Byte Block Cipher

 Secret Key Generation and Management

 Cipher - Secret Key Encryption and Decryption

 Introduction of RSA Algorithm

 RSA Implementation using java.math.BigInteger Class

 Introduction of DSA (Digital Signature Algorithm)

 Java Default Implementation of DSA

 Private key and Public Key Pair Generation

 PKCS#8/X.509 Private/Public Encoding Standards

 Cipher - Public Key Encryption and Decryption

 MD5 Mesasge Digest Algorithm

 SHA1 Mesasge Digest Algorithm

 OpenSSL Introduction and Installation

 OpenSSL Generating and Managing RSA Keys

 OpenSSL Managing Certificates

 OpenSSL Generating and Signing CSR

 OpenSSL Validating Certificate Path

 "keytool" and "keystore" from JDK

 "OpenSSL" Signing CSR Generated by "keytool"

 Migrating Keys from "keystore" to "OpenSSL" Key Files

 Certificate X.509 Standard and DER/PEM Formats

 Migrating Keys from "OpenSSL" Key Files to "keystore"

 Using Certificates in IE

 Using Certificates in Google Chrome

 Using Certificates in Firefox

 Archived Tutorials

 References

 Full Version in PDF/EPUB