Cryptography and Internet Security

Module code: CO7099

Module co-ordinator: Stanley Fung

  • How can computer systems defend themselves against network attacks?
  • How can we ensure that our data has not been tampered with, or disclosed without our consent?
  • How can we be sure of the identity of the party whom we are communicating with?

The ever-increasing prevalence of computers and computer networks in every aspect of life has given us numerous advantages and convenience. At the same time, the security of computer systems becomes an evermore critical issue. A fundamental part of security systems is cryptography, the science of secret writing. There have been rapid advances in cryptography in the past few decades, and it has become an integral part of many commercial computer applications.

In this module you will explore the principles of modern public key cryptography, a cornerstone of many security-enabled network applications in current use. We will discuss cryptographic primitives - including message digests, digital signatures and certificates - and you will learn how to write secure network applications using these.

We will examine the security model of Java and elements of its access control model, such as security manager and policies, as well as notation and techniques for the analysis of cryptographic protocols commonly adopted in distributed applications (e.g. Pretty Good Privacy and digital signatures).


  • 30 one-hour lectures
  • 10 one-hour seminars
  • 10 hours of practicals


  • Exam, 3 hours (60%)
  • Coursework (40%)