CS 758: Cryptography / Network Security
last updated May 4, 2012
This page contains information about the Computer Science
graduate course CS 758, "Cryptography / Network Security".
This course is being offered
in the Spring Semester, 2012
- Course enrollment limit:
The course enrollment limit
for this course is 20 students. If you are not a CS student and you would like to take this course, please speak to me.
- class time: 9:30 - 10:30 MWF
- class location: DC 3313
- first lecture Wednesday, May 2
- instructor: Doug Stinson
- office: DC 3522
- email: dstinson"at"uwaterloo.ca
Note: please use University of Waterloo accounts when sending me email.
- telephone: (519)-888-4567 ext. 35590
I am often available for consultation
in my office without an appointment.
If you wish to make an appointment, please send me
email or telephone me.
There will be (approximately) four assignments during the course.
Assignments will be posted here.
There is no assigned textbook for the course.
However, if you would like a reference (other than
the lecture slides), much of the course material
can be found in
The Third Edition of
Cryptography: Theory and Practice.
Course Slides and Supplementary Information
Course slides and additional notes are available here.
This course covers cryptographic protocols and their application
to secure communication, especially in a network setting.
There are no formal prerequisites. A previous course in cryptography
such as C&O 487 (Applied Cryptography),
or a course in security such as CS 458/658, would be helpful
(but it is not essential) in providing background for the course.
This is not a mathematics course, but cryptography uses a variety
of mathematical techniques, most of which are at least introduced in a typical
"discrete structures" course.
Background that is useful for this course
includes basic complexity theory, elementary number theory,
algebra, probability, and combinatorics.
Course Outline (Calendar Description)
- Review of cryptographic primitives and their applications
to information security, and notions of cryptographic
security. Discussion of public-key encryption, secret-key encryption,
message authentication, signature schemes, and hash functions
- Techniques for entity authentication. Passwords, challenge-response,
identification schemes (e.g., Fiat-Shamir, Guillou-Quisquater),
general techniques for zero-knowledge proofs for NP-complete languages
- Protocols for key establishment, transport, agreement and
maintenance. Online key distibution using a trusted server (Kerberos).
Public-key techniques, including a discussion of Diffie-Hellman
key agreement, man-in-the-middle attacks, STS protocol
and forward secrecy. Unconditionally secure key distribution,
including the Blom scheme and combinatorial key distribution patterns
- Cryptography in a multi-user setting. Secret sharing schemes
(including Shamir threshold schemes and schemes for general
access structures). Conference key distribution and
broadcast encryption. Copyright protection techniques and
tracing schemes (8 hours).
- Public-key infrastructure. Models for managing public keys and
certificates (X.509 certificates, certification authorities,
trust models, certificate verification and revocation, etc.).
Applications, including PGP, SSL and IPsec (6 hours).
The course grades will be based on written assignments
(about 65% of course grade; these may require some simple Maple programming) plus a course project
(about 35% of the course grade).