20881  CRYPTOGRAPHY AND SECURITY
Department of Computing Sciences
ALON ROSEN
Mission & Content Summary
MISSION
CONTENT SUMMARY
 Introduction
 Review of Algorithms and Probability
 PrivateKey Encryption: Defining Security
 Computational Number Theory
 OneWay Functions
 Pseudorandom Generators and Pseudorandom Functions
 PrivateKey Encryption: Constructions
 PrivateKey Encryption in Practice: Block Ciphers
 Trapdoor Functions and PublicKey Encryption
 Message Authentication, Digital Signatures, and Hashing
 ZeroKnowledge Proofs
 Protocols for secure computation
 Network and Systems Security
 Policy Issues
 Conclusions and what we didn't cover
Intended Learning Outcomes (ILO)
KNOWLEDGE AND UNDERSTANDING
What can you hope to learn?
 Definitions: The importance of precisely defining cryptographic problems.
 Constructions: Examples of solutions to cryptographic problems.
 Foundations: The assumptions on which modern cryptography is based.
 Theory vs. Practice: The focus is on theory, but we will discuss how it relates to what is done in practice.
 Applications: If time permits, we will see examples of higherlevel protocols such as auctions, voting, or electronic cash.
APPLYING KNOWLEDGE AND UNDERSTANDING
What can you hope to learn to do?
 Definitions: How to define several important cryptographic problems.
 Constructions: How to design solutions to cryptographic problems and prove that they satisfy definitions of security.
 Foundations: Implications of the assumptions and intuition on what makes an assumption secure.
What this course will NOT teach you
 Acronyms: There are many different cryptographic algorithms, protocols, and standards out there, each with their own acronym. It is not the aim of this course to cover these specific systems, which may come and go, but rather the general principles on which good cryptography is based. Understanding these principles will enable you to evaluate the specific systems~you encounter outside this course, on your own.
 Hacking: We will not learn how to "break" or "hack" systems.
 Security: We will not learn "how to secure your system." Cryptography is only one part of security, albeit an important one.
 Everything there is to know about cryptography: Cryptography is a vast subject, and we will not attempt to be comprehensive here. Instead, we aim to convey the main principles, philosophy, and techniques which guide the subject, focusing on the most basic primitives, such as encryption and digital signatures. This should put you in a good position to read about other topics on your own or take more advanced courses on cryptography.
Teaching methods
 Lectures
 Individual works / Assignments
 Collaborative Works / Assignments
DETAILS
 Lectures: Regular class attendance is strongly encouraged. Feel free to interrupt and ask questions. Beyond clarifying technical issues, we are always happy to discuss the philosophical and conceptual aspects of the material we learn in class. Having students participate actively in class will improve the learning atmosphere and make the experience more enjoyable to all of us.
 Homework: Doing the problem sets is for most students the best way to master the course material. We will have between 4 and 6 problem sets throughout the semester. Each problem set has 23 questions. Sometimes, the third question in a problem set will be a more difficult ``bonus" question.
 Collaborative work: Students are encouraged to work together to do homework problems. Remember that what is important is a student's eventual understanding of homework problems, and not how that is achieved. In particular, what a student turns in as a homework solution is to be his or her own understanding of how to do the problem. Therefore, in preparing the draft of the homework to be turned in, a student may not consult the notes or homework solutions of another student. In other words, you are required to write your homework by yourself.
Assessment methods
Continuous assessment  Partial exams  General exam  


x  

x 
ATTENDING AND NOT ATTENDING STUDENTS
The exam will be designed to assess the student's familiarity with the concepts taught in the course (definitions, constructions, proofs), as well as a general technical and conceptual understanding of the material, both at the concrete level and at the abstract level. Such skills can be acquired by attending lectures, actively participating them, and solving homework solutions throughout the semester.
Teaching materials
ATTENDING AND NOT ATTENDING STUDENTS
We will hand lecture notes of the material taught in class. In addition, the course will loosely follow parts of the book Introduction to Modern Cryptography by Jonathan Katz and Yehuda Lindell. A more advanced exposition of the material can be found in Oded Goldreich's Foundations of Cryptography (Volumes I and II). Further complementary material should be quite easy to find on the web.