06 20008 Cryptography

Volker Sorge 10 credits in Semester 1


Marks for programming exercise have been updated and individual feedback put online.

There will be a guest lecture by Dr Steven Vickers on Tuesday, 29 November, 2011, on Quantum Cryptography.

All debug data for the programming exercise has now been corrected!

Handout 6, Exercise 14: The feedback function of L1 is incorrect and should be: 2 r1 + r5 + 2.
The other function will not give you a very meaningful plaintext!

The walkthrough has just been updated and should now be correct. Observe that the ciphertexts in the ASCII file are not yet updated and therefore still incorrect!

One mistake has been found in the walkthrough. The fixed version should be available this afternoon!

Walkthrough, problems and examples for the programming exercise have been released. The bottom of the page.

In Programming Exercise 10 please perform the MixColumn operation for i=0,1 not i=0,1,2.

Exercise 11 has been updated. Please have a look at it in handout 5.

The exercise due Tuesday, 25 October has been released on handout 4. Note that this will also be handed out next Friday together with the programming exercise.

The exercise class on Friday, 7 October, 2pm will be held by Katrina Samperi.

The Exercise 1 marks have been entered. Please have a look here. Please check the marks and in case you have not got a mark or you have a 0 mark but believe this is incorrect, please come and see me after the next lecture!

There will be a regular class in the first week of term on Friday, 8 October instead of an exercise class.


The lectures are
Tuesdays, 2:00pm-3:00pm in Learning Centre LG32 (Building R28 on the Campus Map)
Fridays 11:00am-12:00pm in Biosciences E102 (Building R27 on the Campus Map)

Exercises are
Fridays 2:00pm-3:00pm in Biosciences E102 (Building R27 on the Campus Map)


80% of your course mark will be determined by a 1.5-hour examination in May (or early June).

20% of the mark is determined by continuous assessment. See Handout 0 for details.

For continuous assessment exercises marked so far please see here


While it can be helpful to discuss assignments with others, in all cases work submitted must be formulated by yourself. If I find evidence of plagiarism then I will award zero marks without prior warning, irrespective of whether you copied from others or whether your work was copied by others. More serious cases will be dealt with according to the School's policy on plagiarism, a copy of which is kept here.


If you have any questions, problems, or comments, please come and see us during our office hours:

To see either one of us outside these office hours, please email and suggest some times, which are compatible with Katrina's timetable, or Volker's timetable.

When emailing, please observe that you can expect the fastest response, when your email is short and in plain ASCII. If you have to send attachments, please make sure they are in some open standard format. In particular, do NOT send MS word files. Why? See here.

Recommended Books

Title Author(s) Publisher Comments
Practical Cryptography Fergueson, Schneier John Wiley & Sons Supplementary Reading
Applied Cryptography Schneier John Wiley & Sons Supplementary Reading
Handbook of Applied Cryptography Menezes, van Oorschot, Vanstone CRC Press Supplementary Reading
Cryptography Smart McGraw Hill Supplementary Reading
Beginning Cryptography with Java Hook John Wiley & Sons Book on Programming

Handouts and Worksheets

It is planned to make the handouts for the lectures available on-line after they have been handed out in the lectures. Please DO NOT PRINT THEM OUT. First check for spare and reference copies which can be found in the School's library. DO NOT WASTE PRINTER RESOURCES.

Week Topic Handout Solution
0 General Information pdf  
1 Historical Ciphers, Modular Arithmetic, Permutations pdf pdf
2 Block Ciphers: Feistel Ciphers, DES pdf pdf
3 AES (Rijndael), Finite Fields, AACS pdf pdf
4 Modes of Operations, Cryptomeria pdf pdf
5 Stream Ciphers: RC4, LFSR, CSS, A5/1 pdf pdf
6 Cryptographic Hash Functions
Message Authetication Codes
pdf pdf
7 Key Exchange Protocols
Overview of Cryptanalysis techniques
8 Public Key Cryptography, Discrete Logarithms pdf pdf
9 RSA, Generating Prime Numbers, Arithmetic Modulo Composites pdf
10/1 Quantum Cryptography
Guest Lecture by Steven Vickers
10/2 Digital Signatures pdf pdf
11 Certificates, Commitment Schemes, Zero Knowledge Proofs pdf pdf
12 Review Suggestions    

Errata can be found here.

Programming Exercises

Implement the exercises in a programming language of your choice. The only requirement is that the program should be runnable on the Linux machines in the department. Include sufficient explicit output into your program so I can convince myself that the computation actually works.
Submit the source of your program (with an included comment how to run it and your Student ID number) via Boss. You can also include a Readme file with that information.
Also submit a file with the requested answers (i.e. only the answers to the problems, not the full intermediate output!) together with your code.

Programming exercises will be given on the exercise sheets

No. Topic Handout Resources Solution
1 Rijndael-like Feistel Cipher
with CFB mode
In Handout 4 (pdf) Examples and walk-through (pdf)
Test data (ASCII)
Marking Scheme
Solutions Individual Feedback

Maintained by: Volker Sorge, School of Computer Science, The University of Birmingham
Last modified: Tue Nov 22 09:27:23 GMT 2011