Course 2024-2025 a.y.

20881 - CRYPTOGRAPHY AND SECURITY

Department of Computing Sciences

Course taught in English

Class timetable
Exam timetable
Go to class group/s: 31
AI (6 credits - I sem. - OBS  |  INF/01)
Course Director:
ALON ROSEN

Classes: 31 (I sem.)
Instructors:
Class 31: ALON ROSEN


Mission & Content Summary

MISSION

Cryptography is the science of designing algorithms and protocols that guarantee privacy, authenticity, and integrity of data when parties are communicating or computing in an insecure environment. The recent explosion of electronic communication and commerce has expanded the significance of cryptography far beyond its historical military role into all of our daily lives. The past decades have seen cryptography transformed from an ad hoc collection of mysterious tricks into a rigorous science based on firm complexity-theoretic foundations. It is this modern, complexity-theoretic approach to cryptography that will be the focus of this course. We will see how cryptographic problems can be given precise mathematical definitions, and construct algorithms which provably satisfy these definitions, under precisely stated and widely believed assumptions.

CONTENT SUMMARY

- Introduction
- Review of Algorithms and Probability
- Private-Key Encryption: Defining Security
- Computational Number Theory
- One-Way Functions
- Pseudorandom Generators and Pseudorandom Functions
- Private-Key Encryption: Constructions
- Private-Key Encryption in Practice: Block Ciphers
- Trapdoor Functions and Public-Key Encryption
- Message Authentication, Digital Signatures, and Hashing
- Zero-Knowledge 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

At the end of the course student will be able to...

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 higher-level protocols such as auctions, voting, or electronic cash.

APPLYING KNOWLEDGE AND UNDERSTANDING

At the end of the course student will be able to...

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 2-3 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
  • Written individual exam (traditional/online)
    x
  • Individual Works/ Assignment (report, exercise, presentation, project work etc.)
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.

Last change 05/06/2024 10:31