Cryptography Lab - Classical Crypto


Part a: Classical Cryptography

During the first week of this lab, you need to devise your own cipher from the various substitution and transposition ciphers we have discussed in class. It must be a single cipher, not a product of two or more. It must have a key of no more than 12 alphabets (substitution) or columns (transposition), and substitutions must only be on the letters A..Z. The cipher chosen should be non-trivial in complexity, but not impossible for the others to break (making an appropriate choice of security is part of the assessment).

Using this cipher, encrypt a paragraph or two of plain English text (about 250-350 words) and save this to a file (preferably using the jkrypto program described below).

To create and analyse these types of ciphers, you can use the jkrypto Java program, that this file is distributed with. You can install and run this program on your computer, provided you have a Java 1.5 or later runtime system, as detailed in the jkrypto page. You should spend some time experimenting with creating and analysing ciphers using jkrypto.

Assessment for Part a

As assessment for this part of the lab, you should create a lab file. At the top of this file you should include the name of this course, this lab, your name, and your student number. Then include the heading: Part a: Classical Cryptography, followed by

Part b: Classical Cryptanalysis

Select at least (note some bonus marks are available for extra ciphers broken) three files of ciphertext from those posted by the other students to the course discussion list and cryptanalyse them. You must select at least one substitution and one transposition cipher to break, in order to possibly gain full marks.

I strongly recommend that you briefly review a number of ciphers, classifying them as to type by observation and using the IC, then focus on a smaller number to actually analyse. Please understand that it takes time to develop the skill of breaking ciphers. You will very likely want to experiment on some ciphers of your own creation to explore the process and use of the jkrypto tool, before tackling others ciphers.

You should also be aware of the computational load that the analysis tools can place on the computer - the upper bounds I've specified will very likely be infeasible to analyse easily. If you are experiencing significant difficulties with this, please consult with the lecturer well before the due date.

Assessment for Part b

As assessment for this part of the lab, edit your lab file to add a second heading Part b: Classical Cryptanalysis. Then for each of the ciphers you've broken, detail:

For additional, bonus mark, decryptions, you need only tell me in a few sentences for each: whose ciphertext it is, the type of cipher, the key used, the first line or so of plaintext recovered, and briefly how you broke it.

Please make sure you clearly separate the sections of your lab, and each cipher you've analysed, to make it easier for me to mark. Marks will be awarded for the approach taken and difficulty of cipher broken.


Copyright © Dr Lawrie Brown / 5 Aug 2010