These are the courses about cryptography, security, or privacy given by CrySP faculty members. Note that the offering dates and instructors listed are subject to change.

Courses in the School of Computer Science

CS 458/658 Computer Security and Privacy

This course provides an introduction to security and privacy issues in various aspects of computing, including programs, operating systems, networks, databases, and Internet applications. It examines causes of security and privacy breaches, and gives methods to help prevent them. CS 458 is intended for 3rd or 4th year undergraduates; CS 658 is intended for graduate students. Course home page

CS 634 Security and Privacy for Health Systems

An overview of basic security and privacy principles relevant in the design and use of applications in health settings. Program security, operating system security, network security, data security, and issues related to the management of security and privacy policies are introduced. Master of Health Informatics students only. Course home page

CS 758 Cryptography / Network Security

This course covers cryptographic protocols and their application to secure communication, especially in a network setting. Course home page

CS 848 Topics in Encryption in Databases, Machine Learning and Distributed Systems

This course is about how to operate computer programs, such as databases, machine learning algorithms and distributed systems on encrypted data. We will study the properties of cryptographic algorithms and protocols and how they can be used in these systems. This is not only an exercise in cryptography, but also needs to consider the systems aspects in order to balance performance, security and functionality. The goal is to study practical systems that run over encrypted data and leak as little information as possible. Course home page

CS 858 Hot Topics in Privacy Enhancing Technologies

This is a seminar course that examines current research into technologies that help users maintain their privacy, both online and in the real world. Topics covered will include anonymity and pseudonymity systems, censorship resistance, private credentials, and electronic cash. Course home page

CS 858 Unconditionally Secure Cryptography (Combinatorial Cryptography)

The security of many cryptographic protocols depends on the (presumed) difficulty of solving computational problems such as factoring and discrete logarithm. However, it is also possible to design cryptographic protocols that can be proven secure without recourse to any computational assumptions. These protocols are termed "unconditionally secure". In this course, we will explore various cryptographic topics in the setting of unconditional security. Most examples of cryptographic protocols that are secure in this setting make essential use of tools from combinatorics, such as codes, designs, and extremal set systems. We will study some classical cryptographic problems such as perfect secrecy (encryption), secret sharing (threshold schemes) and message authentication, as well as more specialized topics including resilient functions, all-or-nothing-transforms and various other topics, many of which are drawn from my research over the years. The course will consist of a combination of lectures given by me, and student presentations based on research papers.

Some background in cryptography would be helpful but not required. Mathematical background in discrete math, algebra and probability would be very useful in understanding the course content. Offered S19.

CS 858 Mobile Privacy and Security (MoPS)

Many people now carry a smartphone with them all the time. A smartphone has many sensors, which it can use to sense potentially sensitive information about its owner, such as voice or location data. In addition, users can install their own applications on their smartphone. Some of these applications may access sensitive information and forward it to third parties without the owner of the smartphone noticing, which violates user privacy. Some applications may be malicious, leading to security problems. The goal of the MoPS course is to make students aware of the security and privacy challenges raised by smartphones and of possible defenses against these challenges. Course home page

CS 858: (Very Hot) Topics in Computing on Encrypted Data

A course about encryption-in-use. In this course we study techniques, cryptographic algorithms, and methods that enable encryption-in-use and allow applications to run over encrypted data. Topics include multi-party computation protocols, homomorphic, functional, searchable and attribute-based encryption schemes, as well as secure hardware technologies. We study mathematics behind these algorithms, crypto, performance impacts and integration challenges. Course home page

Courses in the Department of Combinatorics and Optimization

C&O 485/685 The Mathematics of Public-Key Cryptography

An in-depth study of public-key cryptography and number-theoretic problems related to the efficient and secure use of public-key cryptographic schemes. Topics covered may include algorithmic number theory, public-key encryption, signature schemes, key establishment, pairing-based cryptography, and provable security. Course home page

C&O 487 Applied Cryptography

This course is a comprehensive introduction to modern cryptography that is aimed primarily at those interested in applications. The topics discussed will include an introduction to classical cryptography: encryption algorithms, hash functions, and message authentication codes. In the area of public-key cryptography, topics will include an overview of specific systems (Diffie-Hellman, RSA, DSA, etc.) and a few advanced protocols. The security of these schemes and the use of public-key techniques for generating digital signatures will be described. An emphasis will be placed on tools that are currently being used to secure the Internet and enable secure electronic commerce. Course home page