Foundations of Cybersecurity

Module code: CO3099

In an age where everything is networked, security has never been more important. How do you know that your Internet communications are not spied on? It is encrypted, you say, but how? And does encryption mean it is secure?

This module, loosely speaking, is organised into two parts. The first part introduces basic concepts of cryptography, such as ciphers, hash functions, digital signatures and certificates. It also covers how to write cryptographically secure applications using the Java Cryptographic API.

The second part focuses on how they are put into practice, introducing security protocols such as SSL/TLS, IPsec, Kerberos, access control mechanisms, firewalls, DMZ, IDS, IPS etc. The focus will be on gaining an understanding of various security protocols and the concepts involved in building security solutions at various levels of abstractions in computer networks.

The module has an interesting mix of conceptual, mathematical and practical elements. It introduces basic concepts, requires some mathematics (modular arithmetic), and involves Java programming.


  • 22 hours of lectures
  • 11 hours of tutorials
  • 11 hours of supervised time in lab/studio/workshops
  • 106 hours of guided independent study


  • Coursework (40%)
  • Exam (60%)