August 31, 2010
The Data Encryption Standard has been one of the most successful ciphers in history, and is still in use today, especially in its Triple DES variant. The Data Encryption Standard is officially described by FIPS 46-3, though if you are not fond of reading algorithm descriptions written by government lawyers there are many other descriptions available on the internet.
DES is a block cipher, operating on 64 bits at a time. Here is an example:
PT P r o g P r a x
HEX 50 72 6F 67 50 72 61 78
KEY 01 23 45 67 89 AB CD EF
CT CC 99 EA 46 B1 6E 28 90
There is more than one way to encrypt a message longer than 64 bits; we will examine them in a later exercise.
Your task is to write the code to encipher and decipher a single 64-bit block using the Data Encryption Standard. When you are finished, you are welcome to read or run a suggested solution, or to post your own solution or discuss the exercise in the comments below.