The module begins by defining several concepts used in coding theory. Codes are then described, with a particular focus on applications such as the Universal Product Code (UPC), International Standard Book Numbers (ISBN), and codabar system.
Next, a range of topics in number theory are presented, such as divisibility, Euclid’s algorithm, linear Diophantine equations, prime numbers, and congruences. These concepts provide the theoretical underpinning needed for the rest of the module.
Cryptography is introduced and its historical significance is discussed. A range of cryptographic systems are then presented, in largely chronological order. These include the Ceasar shift, the Vigenere cipher, the Hill cipher, the exponentiation cipher, the public key cryptosystems known as RSA and ElGamal, and the Merkle-Hellman cryptosystem. The Enigma machine, the Data Encryption Standard, the Advanced Encryption Standard, and elliptic curve cryptography are mentioned briefly.
Cryptographic protocols are discussed, including Diffie-Hellman key exchange, quantum key distribution, digital signatures, and secret sharing.
Finally, cryptanalysis is considered. In particular, the following topics are explored: frequency analysis, coincidence counting, Kasiski examination, the complexity of algorithms, integer factorisation, and the discrete logarithm problem.
The Graduate Attributes relevant to this module are given below:
- Academic: Critical thinker; Analytical; Inquiring; Knowledgeable; Problem-solver; Digitally literate; Autonomous; Incisive; Innovative.
- Personal: Motivated, Creative; Imaginative; Resilient
- Professional: Ambitious; Driven.
|