Dec-12: A note about Project 4: A number of people have submitted solutions for 4a where the encrypter/decrypter are somehow limited, but "good enough" for carrying out 4b. I understand that this choice comes from our focus, in the projects, on cracking these codes. However, I am looking for the solutions for 4a to be fully general; that is, I should be able to pass any file through your encrypter and decrypter, and get a result that is byte-for-byte identical to the original. Make sure that your encrypter/decrypter are well-written tools for operating on any input.
Dec-08: An updated Project 4, Revision 1 has been posted. I pushed back the due date a little, provided more information on how to choose a plaintext/ciphertext pair, and gave away the size of the keys. (Contrary to what I said in class, the Hill cipher doesn't need multiple such pairs; instead, it needs one pair of sufficient length to create the desired matrices of plaintext and ciphertext.)