This course provides an introduction to the topic of information security in the context of network communication.

The goal of the course is to provide you with a foundation for identifying, analyzing, and making appropriate security decisions when designing information systems. In this course we're less interested in memorizing the nitty gritty details of how algorithm x works than we are in reasoning about how, when, and where it's appropriate to use said algorithm. To that end we will continuously be asking ourselves the following questions:

  1. What are my security goals?
  2. What properties do I need to achieve these goals?
  3. Which implementations and parameterizations best provide these properties, and hence best help me meet my security goals?

Cryptography is fascinating because of its game-like adversarial nature. A good cryptographer rapidly changes sides back and forth in his or her thinking, from attacker to defender and back. Just as in a game of chess, sequences of moves and counter-moves must be considered until the current situation is understood. Unlike chess players, cryptographers must also consider all the ways an adversary might try to gain by breaking the rules or violating expectations.

Ron Rivest. Foreword. Handbook of Applied Cryptography.. 1996.

No right of private conversation was enumerated in the constitution. I don't suppose it occurred to anyone at the time that it could be prevented.

Whitfield Diffie on the Clipper Chip. US Senate Testimony. (1993)

Course Outline

Please consult the course outline for policies relating to this course.


William Stallings. Cryptography and Network Security, 7th Edition, Pearson, 2016.
N.b., Chapters/sections of the readings (listed below) are for the yth edition. Section numbering of previous editions differ in some places. See the table of contents for more information.

Other Required Reading

Recommended References

Course Personnel

Aleksander Essex
Course Instructor
Office: TEB 235
Email: aessex

Nick Chang-Fong
Teaching Assistant

Rhys Carlton
Teaching Assistant

Emailing Us

Email addresses are Please include "[Security]" in the subject when emailing us, thanks!

Lecture Times and Locations












Office hour:


TEB 235



UCC 37

Dec 5th, 2016. Exam review and sample problems available (see below). Assignment 3 solutions available (see below).
Nov 22nd, 2016. Assignment 3 available (see below).
Nov 21st, 2016. Assignment 2 solutions available (see below). Assignment 3 deadline postponed (see below).
Nov 07th, 2016. Assignment 2 is available (see below). Update (Nov 9th): A previous version of question (1b) incorrectly stated your signature program should accept the public verification key. The PDF has been corrected to read the program should accept the private signing key.
Oct 31st, 2016. Midterm solutions posted (See below), but mind the hindsight bias. Midterm marks posted (see OWL).
Oct 18th, 2016. Sample midterm questions have been posted (See below).
Oct 10th, 2016. Assignment 1 solutions posted (See below).
Oct 6th, 2016. In class we talked a bit about TLS stripping and internet voting security. Here's the talk I gave in Ottawa last week for anyone interested.
Oct 3, 2016. Office hour is 10am-11am Tuesdays in TEB 235.
Sept 19, 2016. Assignment 1 is posted (see below). First tutorial will be tomorrow.
Sept 12, 2016. No tutorial tomorrow. The first tutorial will be Sept 20. Also, I have corrected a mistake in the class schedule above. Just to confirm: Friday's classes are held from 1:30-2:30pm.
Sept 7, 2016. The 2016-17 course site is up. First lecture is Friday Sept. 7th in UCC-37 from 1:30-2:30pm.
Week Subject Textbook Sections Slides
Sept 9 Introduction to information security. Old school crypto. 2.2-2.4
Week of Sept 12 Security goals. Adversarial models. Formal security notions. 1.1, 1.1 — 18.1 (Smart)
Week of Sept 19 Formal security notions cont'd. 18.1 (Smart)
Week of Sept 26 Symmetric-key encryption, block ciphers, modes of operation, the DES and AES ciphers 3.1, 6.2, 6.3, 6.6 — 5.1-5.4
Week of Oct 3 Hash functions. Security properties of hash functions. Uses of hash functions. The SHA hash function family. 11.1, 11.3, 11.5
Week of Oct 10 -- No class Monday (Thanksgiving) Message authentication codes, their security properties and uses. Padding oracle attacks. Authenticated encryption. The AES-GCM authenticated encryption mode. 7.1, 7.4, 7.5
Week of Oct 17 Public-key cryptography. Key agreement. The Diffie-Hellman key agreement protocol. Elliptic curve cryptography. Ephemeral keys. ECDHE key agreement. 9.1, 8.5, 10.1, 10.3, 10.4
Week of Oct 24 -- Midterm Monday. No class Friday (Study break) Midterm test in Monday's class. No class Friday.
Week of Oct 31 Digital Signatures. RSA and ECDSA signature schemes. Digital Certificates. 13.1, 13.4, 13.5, 8.2, 9.2, 13.6 — 10.3, 10.4, 13.5 — 14.3, 14.4
Week of Nov 7 Public-key infrastructure on the web. Certificate authorities, certificate chains, trust stores, revocation. 14.3, 14.5
Week of Nov 14 The Transport Layer Security (TLS) protocol. Secure shell (SSH). 17.1-17.5 — RFC 5346
Week of Nov 21 Randomness and pedudo-randomness. Key generation. Current recommended minimum acceptable key lengths. 7.1-7.3, 7.6 — NIST SP 800-131A
Week of Nov 28 Secure password generation and storage. 22.3
Dec 5th Exam Review
Course Component Weight Date/Deadline Location PDF
Assignment 1 10% Friday, October 7th Submit via OWL

Assignment 2 10% Nov 18th Submit via OWL

Assignment 3 10% Nov 25th Dec. 2nd Submit via OWL

Midterm Test 20% Monday, Oct 24th. In class
Final Examination 50% Tuesday, December 13th, 2:00-5:00pm WSC 55