Modern cryptographic methods

My group are 14-16. There are five lecture hours a day, plus two discussion at night with my TA. The course runs 3 weeks. Then I do it all over again with another group.

One possibility which would be fun and instructive, though perhaps a lot of work for you, would be to have your students devise their own codes/encryptions, and then you go through and break them, to show them how hard it is to design a robust encryption. Or for considerably less work on your own part, you could have them compete against each other, and try to break each others’ codes. This works regardless of how much material you have or haven’t covered, since they’ll come up with codes of whatever level of sophistication they’re up to.

This is a great idea, but as with any code, if you don’t have enough message traffic, you’ll never be able to break it. As I mentioned in my post above, I gave my students the entire first page of a book that I encrypted, and not only did it take me a while to encrypt it (I actually wrote a quick and dirty program to do it), but it was barely enough ciphertext to do the cryptanalysis job with frequency-analysis. Add to it the various other non-frequency analysis methods that are simple to implement, and you’re pretty much dead in the water with less than a few tens of thousands of characters of copied traffic.

Now, if the kids were savvy programmers and could write the encryption into a program and then spit out reams of ciphertext, that’s another story. However, I think you’re starting to get into the mid-college level, semester long computer science cryptography course at that point.

-Tofer

Forgive me for being a pest, but I would really like an answer from you Smart Guys. If a modern laptop computer with all the usual commercial software were tossed in the Wayback Machine to Bencley Park, would it help somehow.

A silly question unworthy of its own thread.

If it had a compiler on it, and sufficiently transparent help files that the Bletchly Park folks knew what the compiler was and the basics of how to use it, and if it had been sent back to a time sufficiently before the end of the war, then yes, it would have been a huge help. It would have taken some time for them to work out how to program it, but once they did, all of their further efforts would be orders of magnitude faster.

If you’re interested, check out this recent thread on cracking Enigma with modern methods.

O.

Thank you.

Project Gutenberg offers an excellent corpus of english text that is absurdly large (over 9GB AFAIK). One possibility is to set up a simple web server than will distribute a random chunk of encrypted text of say, about 1000 words along with the MD5 of SHA checksum of the uncencrypted text. You can verify the correctness of your decryption algorithm by checking the decrypted text against the hash. Since it’s on a webserver, students can request as many chunks of text as they wish to get around the lack of data problem.

If you make the specification of the program rigid enough (ie: make it behave as a unix filter which takes in encrypted text and returns unencrypted text), you could also write a simple auto-marker which students can submit their programs to to get marked.