CS 194: Cryptography (Spring 2019)
Time: 2:00--3:30pm, Tuesdays and Thursdays.
Office Hours: 3:30pm- 4:30pm Tuesdays or by email
(For Fall 2017 only).
Cryptography or cryptology is the science of designing algorithms and
protocols for enabling parties to communicate and compute securely in
an untrusted environment (e.g. secure communication, digital signature
and etc.) Over the last four decades, cryptography has transformed from an ad hoc
collection of mysterious tricks into a rigorous science based on firm
complexifty-theoretic foundations. This modern
complexity-theoretic approach to cryptography will be the focus of this
For example, in the context of encryption we will begin by giving a precise mathematical definition
for what it means to be a secure encryption scheme and then give a
construction (realizing this security notion) assuming various
computational hardness asumptions (e.g. factoring).
Tentative List of Topics
of Algorithms and Probability
- Perfect Security: One time Pad
- Computation Security
- Pseudorandom Functions; Pseudorandom Permutations
- CPA Security
- CCA Security
Signatures in Theory & Practice
- Homomorphic Encryption
Prerequisites and Suggested Textbook
We will be following the book Introduction
to Modern Cryptography by Jonathan
Katz and Yehuda Lindell.
prerequisite is a course on discrete mathematics (CS70). Specifically,
we will assume familiarity with basic (discrete) probability and
modular arithmetic. Students enrolled are also expected to have had
some exposure to algorithms, mainly to be comfortable reading
and to be familiar with big-O notation.
Homeworks (every week) - 20%, Midterm I - 25%, Midterm II - 25%, Final 30%
Following includes some other excellent reference