COM 1205 Assignment #2. Assigned: Tuesday, 25 January 2000 Due: Tuesday, 1 February 2000 Acting as the software developer who is to design the program whose requirements are specified below, write a professional electronic memo to the author of these requirements in which you request any clarifications or further details that you may need before you can design the program. Submit your memo before 5 pm on the due date by sending it to will@ccs.neu.edu with a subject line of assignment #2 and a body that consists of 1. Your name 2. Any remarks that you wish to make to the instructor. 3. A line consisting of exactly 50 hyphens. 4. The text of your memo, formatted so that any email program can be used to read it. -------------------------------------------------- Requirements for a simple cryptanalysis program. The input to this program consists of a cryptogram, represented as a string consisting of the 26 alphabetic characters of English, spaces, and newlines. The cryptogram may consist of five-letter groups separated by whitespace, or it may be divided into words as in a recreational cryptogram. The program should assume that this cryptogram was obtained by enciphering an English plaintext using some kind of cipher that was popular during the nineteenth century but has been made obsolete by computers and by more powerful methods of cryptanalysis. Examples of these obsolete ciphers include single or double ("US Army") columnar transposition ciphers, simple substitution ciphers, periodic substitution ciphers (e.g. Vigenere/Beaufort), the Playfair digram cipher, and combinations of transposition and substitution ciphers. Auxiliary inputs may also be provided, in the form of words or phrases that are considered likely to occur within the original plaintext. These inputs will also be represented as strings. Ideally, the output of the program should consist of the type of cipher that was used, the cipher key, and the plaintext. If the program is unable to recover the original plaintext, then it should output as much of the plaintext as it is able to recover, using periods to take the place of unknown letters. If there are several plausible versions of the plaintext, then each version should be output, in decreasing order of plausibility. If the program is unable to recover the plaintext, but can provide some insight into the type of cipher and/or the nature of its key, then the output should consist of that information. There are many algorithms and heuristics available for use in this program. See for example the following introductory texts: William F. Friedman, Elements of Cryptanalysis, Aegean Press. Helen F Gaines, Elementary Cryptanalysis, Dover Books, 1956 (originally published in 1939). For a more complete list of references, see http://www.faqs.org/ftp/faqs/cryptography-faq/part10 http://www.aegeanparkpress.com/desc.html#C