Computing
CS402/MA492: Cryptography (5 ECTS)
This course develops basic concepts in private and public key cryptosystems, explores some of the associated algorithmic number theory, and introduces more advanced topics such as the use of elliptic curves in cryptography.
Taught in Semester(s) 2. Examined in Semester(s) 2.
Workload: 104 hours (24 Lecture hours, 10 Tutorial hours, 70 Self study hours).
Module Learning Outcomes.
On successful completion of this module the learner should be able to:
- Encrypt and decrypt simple 1- and 2-dimensional affine cryptosystems.
- Explain the principles of public key cryptography; in particular, be able to encrypt and decrypt simple RSA and superincreasing knapsack examples.
- Thoroughly understand and readily solve problems in elementary number theory, including modular arithmetic, the Chinese Remainder Theorem, Fermat's Little Theorem, and the Euler totient function.
- Describe probabilistic algorithms for primality testing, carry them out, and indicate their relevance to RSA.
- Describe algorithms for integer factorisation, carry them out, and indicate their relevance to RSA.
- Define elliptic curves, calculate the group of points of an elliptic curve, and explain the use of elliptic curves in public key cryptography.
Indicative Content
This course develops basic concepts in private and public key cryptosystems, explores some of the associated algorithmic number theory, and introduces more advanced topics such as the use of elliptic curves in cryptography.
Module Resources
A Course in Number Theory and Cryptography, Neal Koblitz, Springer
The Mathematics of Ciphers: Number Theory and RSA Cryptography, S.C. Coutinho, A. K. Peters.
Making, Breaking Codes: Introduction to Cryptology, Paul Garrett, Prentice Hall.
Back