This homework is due by class time October 17, 2000. Note: K2/3 denotes homework problem 3 from chapter 2 of the class text. Programming problems may be done in C, C++ or Java; please do not use Perl or other scripting languages.
You may assume that all words in the plaintext are found in /usr/dict/words or can be derived from those words. Note that different versions of this dictionary may contain different sets of conjugations, declinations and abbreviations. For example, the dict files on Linux include many common extensions, like "ed", "ing", "ly", but do not include common contractions like "'re", "'ll", "'t", "'ve", which the Solaris dict files include. You can assume that the ciphertext has the same capitalization as the plaintext and that punctuation is mapped to itself, i.e., there are only 26 entries in the mapping table, not 52 or even one for each ASCII value. You may find that for short ciphertext strings such as the one in the book, techniques other than those based on letter-frequency work better. (20 pts.)
The S boxes for DES are available. (20 pts.)
time des password IV < inputfile > /dev/null time rijndael password IV < inputfile > /dev/nullBe sure to report which library you used, the OS, the machine type and CPU speed. On Unix, use the time mechanism. Execution times below a second are unreliable, so you will need to use a large file, such as /opt/bin/netscape (other suggestions appreciated...).
Last updated by Henning Schulzrinne