The University of Sheffield
Department of Computer Science

COM313 Introduction to Cryptography

Summary

This module provides an introduction into cryptography and cryptographic protocols focussing on theoretical understanding and practical use of cryptography and cryptographic mechanisms for building secure systems. It aims to develop knowledge and understanding of fundamental principles of information security, the security guarantees of cryptographic primitives, attacks and countermeasures against cryptosystems and provide practical experience of implementing secure systems using cryptographic libraries. The module requires a solid understanding of mathematical concepts (e.g., modulo-arithmetic, discrete mathematics, probability binary operations), introduces fundamental mathematical concepts needed to understand cryptographic primitives (e.g., group theory and basic complexity theory) and requires a solid understanding of some programming language (e.g., Python, Java or C, but solutions will be given in Python). 

Session Spring 2024/25
Credits 10
Assessment
  • Blackboard quiz, written assignment and formal examination  
Lecturer(s) Dr Behzad Abdolmaleki  
Resources
Aims
  • To develop knowledge and understanding of fundamental principles of cryptography.
  • To develop mathematical background necessary to implement and understand modern cryptographic primitives.
  • To develop practical experience of using secure systems.  
Learning Outcomes  By the end of this course the students should be able to:
  • Identify and evaluate the security of cryptographic protocols and algorithms, identifying vulnerabilities and potential threats in various applications. 
  • Demonstrate a comprehensive understanding of foundational cryptographic concepts, vulnerabilities and risks to computer systems. 
  • Describe fundamental cryptographic primitives and protocols, explain what they achieve and what security and contextual properties they must have. 
  • Analyse and assess the use of cryptographic primitives within security settings, identifying architecture, resources constraints and suggesting appropriate use of cryptography for particular application contexts. 
Content

Lectures will cover:

  • Introduction to Modern Cryptography
  • One-Time Pads and Perfect Security
  • Symmetric Encryption and Block Ciphers (AES)
  • Modes of Operation for Block Ciphers (CTR, CBC, GCM)
  • Hash Functions
  • Message Authentication Codes
  • Number Theory and Cryptography
  • Public Key Encryption, RSA and Diffie-Hellman
  • Digital Signature Schemes
  • Zero-Knowledge Proofs
  • Secure Channels and Transport Layer Security 
Restrictions  Optional modules within the department have limited capacity. We will always try to accommodate all students but cannot guarantee a place. 
Teaching Method Lectures, problem classes and laboratory work.   
Feedback Students will receive feedback in the tutorial sessions in which solutions for the problem sheets are discussed.