Orr Dunkelman
Symmetric-key primitives
Cryptography was invented for two parties, Alice and Bob, to communicate securely when they possess a shared secret. Hence, symmetric-key cryptography (or secret-key cryptography), has been in use for over 2,000 years. Of course, many things have changed since Julius Caesar used the cipher which is named after him. We no longer encrypt a single character at a time, but rather large amounts of data. Instead of relying on manual computation, computers and embedded devices perform the actual encryption. While in the past, security was trusted on the lack of known cryptanalysis, today we base our security arguments on heuristic claims that preclude some cryptanalytic attacks and the lack of known cryptanalysis (and some security-reductions).
This series of lectures will concentrate on the advances in the field of symmetric-key cryptography. We will cover how symmetric-key cryptography actually works today. We will start by covering the different primitives in use (the standard block ciphers, hash functions, MACs and stream ciphers). We will follow by exploration of the generic attacks that can be used to break any cryptographic primitive, including how to efficiently implement exhaustive search, or how to find collisions with no additional memory. This will also include the somewhat forgotten time-memory tradeoff attack of Hellman (and its predecessor, the rainbow tables attack). We will discuss differential and linear attacks, and discuss the advances in their study in the recent years. We will cover the emerging new block ciphers for special environments, such as those that support FHE, MPC, and advanced zero-knowledge protocols. Finally, we will discuss how one can construct a secure authenticated channel based on the cryptographic building blocks that we covered.
- Basic primitives (DES, AES, SHA1, SHA3,...).
- Generic attacks - exhaustive search, collision finding, memoryless collision finding, time-memory tradeoff attacks (e.g., rainbow tables).
- Analysis of primitives - differential and linear cryptanalysis.
- Combination of primitives (how to transform AES into a secure authenticated channel - and mostly, what NOT to do).
- Symmetric-Key primitives for "cool new stuff" - most notably, ZK and MPC.





