MA6030 - Cryptography and Coding Theory (2017/18)
|Module specification||Module approved to run in 2017/18|
|Module title||Cryptography and Coding Theory|
|Module level||Honours (06)|
|Credit rating for module||30|
|School||School of Computing and Digital Media|
|Total study hours||300|
|Running in 2017/18||
The module is an introduction to modern ideas in coding and cryptography. It proves the background to the essential techniques and algorithms of cryptography in widespread use today, as well as the essentials of Number Theory underlying them.
Error correcting codes are an important part of the data communications theory and allow a message to be recovered even if errors have been introduced during transmission. The elegant mathematics of finite field theory is introduced to develop multiple error correcting codes with a wide range of communications applications.
Prior learning requirements
Completion of level 5
This module aims to equip students with a sound understanding of the concepts of Number Theory and Galois Theory, and their applications in Cryptography and to Error Correcting Codes. It will
• develop students’ understanding of different situations in which cryptography and error correcting codes are used,
• encourage students to develop and analyse algorithms for encryption and decryption, and for encoding and decoding efficient single error correcting codes;
• enable students to appreciate the strength of some results from the Number Theory and their applications in on-line security, of the abstract theory of finite fields for developing efficient multiple error correcting codes.
Number theory: Chinese Remainder Theorem, Fermat’s Little Theorem and generalisations,
Primality testing, Primitive roots, Discrete logarithms
Theory of fields: Rings, Polynomials, Fields, Construction of finite fields, GCD algorithm and calculation of inverses. Minimal polynomials.
Cryptography and cryptanalysis: History and Terminology, Symmetric Encryption. Block Cipher Principles. Asymmetric Encryption: RSA public key cryptosystem
Error correcting codes: Linear codes, Hamming and other perfect codes, check and generator matrices,
BCH codes, error locator polynomial, Reed Solomon codes, error evaluator polynomial
Learning and teaching
Students’ learning is directed via face-to-face learning activities centred on lectures and seminars. There is full provision of documents related to the module in electronic format that can be accessed by students all the time. The documents include lecture notes, slides, guidance to further reading and relevant mathematical packages, and exercises and tests.
On successful completion of this module, students should be able to:
LO1 Appreciate proofs of theorems in Number Theory and application to cryptography
LO2 Appreciate proofs of theorems in Field Theory and application to coding theory
LO3 Use appropriate error detecting and error correcting algorithms for a given code;
LO4 Construct and perform arithmetic, including finding inverses, in finite fields GF(p^n);
There will be a series of mini tests every 2-3 weeks, allowing students an early opportunity to demonstrate their understanding of basic topics [from LO1, LO2 ,LO3 and LO4] and to receive feedback on them. 2 x 1.5 hour tests will take place at the end of the two major sections of the module (cryptography and coding theory) where students will be tested across the whole of the material studied [LO1,LO2,LO3,LO4].
Students are permitted to bring two sides of handwritten notes to each assignment to aid the consolidation of learning.
W. Stallings; Cryptography and Network Security: Principles and Practice; Prentice Hall.
Paul Garrett; Making, Breaking Codes: An Introduction to Cryptography; Prentice Hall.
J. Holt, J. Jones; Discovering Number Theory; W.H. Freeman and Company.
Pretzel, O; Error Correcting Codes; Oxford University Press.