CS127

CS 127 FAQ Why should I take this course? Cryptography has (in my biased opinion) the rare combination of being both a beautiful and intellectually enriching field with a large and growing impact on our society. This course will teach you some of the fundamental ideas and the exciting recent advances in this area. What background do I need to succeed in this course? This is an advanced proof-based course, and so you should have some experience with reading and writing mathematical definitions and proofs.

CS127

Previous offerings Spring 2016 course - most similar version to this one Princeton crypto courses: Spring 2010, Fall 2007 and Fall 2005. At Harvard, CS 127 was previously taught by Salil Vadhan on Fall 2006 and Fall 2013, see this web page.

CS127

CS 127 / 227 / CSCI-E 207 - Cryptography Projects: Spring 2018 Students in CS 127/227r had the option of doing a project of their own choice. These are the projects that they submitted. I was pleasantly surprised by the creativity, depth, and technical level of many of these projects. Below are links to the project and some (informal and sometimes inaccurate) descriptions of them: A Cryptanalysis of IOTA’s Curl Hash Function / Michael Colavita and Garrett Tanzer.

CS127

All lecture notes can be found at intensecrypto.org. Note that you will need to read the lecture notes for each lecture before it is given. Final projects for Fall 2018 are now available online - thanks to everyone for all their work! Tentative schedule Lecture Day Date Lecture Slides 1 Tuesday Jan 23 introduction powerpoint 2 Thursday Jan 25 Computational security - 3 Tuesday Jan 30 Pseudorandom generators - 4 Thursday Feb 1 Pseudorandom (aka key derivation) functions - 5 Tuesday Feb 6 Pseudorandom functions from pseudorandom generators, block ciphers - 6 Thursday Feb 8 Chosen ciphertext security - 7 Tuesday Feb 13 Hash functions, random oracles, proofs of work, cryptocurrencies - 8 Thursday Feb 15 More hash functions: Entropy extraction, protecting passwords, slow hashes, merkle trees - 9 Tuesday Feb 20 Public key cryptography, the obfuscation paradigm, Diffie Hellman and DSA - 10 Thursday Feb 22 Concrete candidates: RSA - 11 Tuesday Feb 27 Lattice based crypto - 12 Thursday March 1 Secure communication and the “handhsake”, SSL/TLS and friends - 13 Tuesday March 6 Fully homomorphic encryption 1 - 14 Thursday March 8 Fully homomorphic encryption 2 - - Harvard Spring Break - - - 15 Tuesday March 20 Zero Knowledge Proofs - 16 Thursday March 22 Multiparty secure computation - 17 Tuesday March 27 no class - 18 Thursday March 29 Multiparty secure computation 2 - 19 Tuesday April 3 Guest lecture by Yael Kalai Software obfuscation 1 - 20 Thursday April 5 Guest lecture by Yael Kalai Software obfuscation 2 - 21 Tuesday April 10 Quantum computing and crypto - 22 Thursday April 12 Quantum computing and crypto 2 - 23 Tuesday April 17 SNARKs and their friends - 24 Thursday April 19 Course recap - 25 Tuesday April 24 Guest lecture by Bruce Schneier -

CS127

CS 127 / 227 / CSCI-E 207 - Cryptography Syllabus Instructor: Boaz Barak TL;DR: This is a fast paced course starting from the basics of cryptography and going all the way to advanced topics. Students that are willing to put in the work to keep up will be exposed to some of the most exciting and impactful intellectual advances of the last 40 years. “Human ingenuity cannot concoct a cipher which human ingenuity cannot resolve.