module specification

MA7010 - Number Theory for Cryptography (2024/25)

Module specification Module approved to run in 2024/25
Module title Number Theory for Cryptography
Module level Masters (07)
Credit rating for module 20
School School of Computing and Digital Media
Total study hours 200
 
52 hours Assessment Preparation / Delivery
100 hours Guided independent study
48 hours Scheduled learning & teaching activities
Assessment components
Type Weighting Qualifying mark Description
Other 0%   Completion of Online Python Tutorial
Coursework 50%   Portfolio of number theory investigations
Unseen Examination 50%   A 2 hour exam consisting of questions covering major areas of the module
Running in 2024/25

(Please note that module timeslots are subject to change)
Period Campus Day Time Module Leader
Autumn semester North Friday Morning

Module summary

This module, together with MA7009, Discrete Mathematical Structures provides the essential grounding needed to complement the algorithms and techniques encountered in spring semester modules in cryptography and information security.  It aims to describe relevant topics in the theory of the natural numbers that underpin much of 21st century cryptographic security. It is designed to complement, in particular, MA7011 -Applications in Cryptography and Cryptanalysis and can be taken either before or after this module depending on a student’s start point without disadvantaging them.

Additionally, this module will support a series of mini investigations designed to develop students’ ability to take the ideas they encounter, apply them with realistic datasets and draw appropriate conclusions. These will principally be delivered via procedures written in the mathematical programming language MAPLE in which students will be supported as they gain fluency but the module will also encourage students to use other languages such as Python where these are applicable to the problems being investigated. 

The module will principally introduce topics in number theory but their application to cryptography will be stressed as they are introduced and in the initial weeks the module will also provide a brief overview of the subject of cryptography and its historical context.

Prior learning requirements

Standard Entry Requirements for Masters Courses in SCDM

Syllabus

Fundamental skills in mathematical programming through MAPLE and Python.

Introduction/Recap of key terms and concepts in cryptography: symmetric and asymmetric cryptography. Example of classical ciphers (affine, Playfair, Vigenere) and the use of frequency analysis in cryptanalysis.

Introduction to number theory: early history, prime numbers and their distribution. The infinity of primes and the prime number theorem.

Prime testing: Fermat’s Little Theorem; probabilistic methods, Miller Rabin Test and other Monte Carlo methods. Carmichael numbers and Korselt’s criterion. The Agrawal-Kayal-Saxena primality test

Discrete logarithms and methods for their calculation (baby step-giant step and Pohlig-Hellman algorithms).

Congruence equations: applications of the Chinese Remainder Theorem to cryptography, quadratic residues and their properties. Gauss’ quadratic reciprocity theorem and techniques for solving congruence problems. Legendre and Jacobi symbols and their use in primality testing.

Introduction to integer factorisation: methods covered will be selected from basic sieving algorithms, Fermat factorisation, Pollard’s rho method.

Advanced methods for integer factorisation: quadratic sieve and number field sieve algorithms, factorisation using elliptic curves; continued fractions, and their use in integer factorisation.     

Complexity: polynomial and exponential time for algorithms; NP complete problems. Examples, e.g. knapsack problem.
  
Random and pseudo random numbers.

Balance of independent study and scheduled teaching activity

The module has 200 learning hours. 4 hours per week contact is divided approximately equally between lectures covering background, theory and examples and workshops in PC Labs which involve discussion of the ideas and an opportunity for students to practice the mathematical techniques and to develop proficiency in programming in Maple and Python and investigating realistic data sets. The remaining hours of private study will allow students to follow the self study python guide, complete background reading, work on exercises and prepare for assessment.

Learning outcomes

This module aims to enable students to:
LO1:    Acquire and consolidate skills in programming languages needed to support cryptographic investigation and to engage in self reflection to identify and address any other areas of skills deficiency that may affect performance on the course.
LO2:   Assimilate key concepts in number theory and demonstrate understanding of the properties of the natural numbers appropriate to cryptography;
LO3:    Understand and apply key theorems that prove the properties needed to demonstrate cryptographic security;
LO4:    Describe how the concepts in number theory encountered in the module find application in the modern technological world.

Bibliography