The course explains how the standard cryptographic and coding techniques used on the Internet and in modern computer security actually work. In particular RSA cryptography is introduced together with the number theory on which it is based. Algebraic coding, including group codes, prefix codes and Huffman codes also feature. Mathematically the course is virtually self-contained but the student who undertakes it as an outside option should be used to dealing with mathematical ideas.


Number Theory: elementary theory of factors, congruences, Fermat's Lemma, Euler's function and theorem. Public key cryptography and RSA system.

Introduction to groups, cosets and Lagrange's theorem, group codes, Hamming metric, error detection and correction, trees, prefix codes and Huffman codes.

On completion of the course, students should grasp the basic principles of cryptography and understand how RSA cryptography actually works. Understand the principles of error detection and correction and the mathematical principles of discrete coding.