Description

This course introduces the science and art behind the design, security analysis, implementation, and cryptanalysis of modern day cryptosystems.

First, we will examine several primitives including block ciphers and collision-resistant hash functions, which we will apply in order to design cryptosystems that protect the privacy and authenticity of data at rest and in transit. Second, we will examine how cryptography can overcome, or be harmed by, systems security concerns. Third, we will explore the state of the art in secure messaging systems that leverage public and secret key cryptography to protect communications even in the case of prior or future device compromise. Finally, we will examine the mathematical strength of block ciphers and hash functions toward common types of mathematical cryptanalysis.

General Information

Meeting times
This class meets MW 12:20-1:35pm in MCS room B21.
VPN information
Some of the textbooks and reading assignments require access to the websites of publishers like Springer, IEEE, and ACM. You will only be able to access these papers if you are on the BU network or if you VPN into it. Instructions to VPN into the BU network are located here: http://www.bu.edu/tech/services/support/remote/vpn/. Alternatively, prepending "http://ezproxy.bu.edu/login?url=" to the front of a URL allows you to view a single website through the BU network without the need to VPN.
Office hours
Office hours are typically Tu 12-2pm and Fri 3-5pm in MCS room 164.

Announcements

Course schedule
1/22/17 1:08 PM

This post will be continually updated as new readings and assignments are posted.

Part 1. The power of random-looking permutations

WeekTopicRequired reading (by the end of the week)Additional resourcesDue date
1Block ciphers

Rogaway: The Moral Character of Cryptographic Work (paper, post @7)

2Encrypting by enciphering

Two related papers:

  1. Whitten & Tygar 1999: Why Johnny Can't Encrypt
  2. Renaud et al 2014: Why Jane Doesn't Protect Her Privacy

Post @13

PS1 due 2/3
3MACs and hash functionsCanetti, Goldreich, and Halevi: The random oracle model, revisited (paper, post @26)
  • The Hash Function BLAKE (section 2.4) surveys the popular methods of hash function design from a fixed-length permutation or compression function, including Merkle-Damgard, HAIFA, and the sponge function construction.
  • The Hash Function Lounge lists well-studied hash functions. See also this website, which details their perceived strength over time.
  • Georgiev et al show that authenticity only matters if software properly validates signatures. Unfortunately, this is not always the case.
4Alternate designsPost @29 (note: you have two weeks to complete this reading)
  • The Keccak website has many excellent resources, including reference implementations of Keccak and the slides I use in Lecture 7
  • Liskov, Rivest, Wagner 2002 introduces tweakable block ciphers. There are also two recent papers on tweakable Even-Mansour specifically (1, 2).
  • The Block Cipher Companion (chapter 5) describes the power of brute-force searches, including time-memory trade-offs.
PS2 due 2/17
5Authenticated encryptionMany papers listed in post @29

Part 2. Cryptography meets systems: a love/hate story

WkTopicRequired readingAdditional resourcesDue date
6Protecting data at rest(none) PS3 due 3/2
(spring break)
7Padding oracles

Egele et al: An empirical study of cryptographic misuse in Android applications (paper, post @61).

Please read before lecture on Wed 3/15

  • YouTube video of a lecture on padding oracles by Prof. Matt Green
  • Blog post by CloudFlare summarizing padding oracle attacks on CBC
  • Blog post describing the padding oracle attack that was introduced in OpenSSL as part of the effort to fix the prior padding oracle.
8Side channelsSpreitzer et al, Systematic Classification of Side-Channel Attacks: A Case Study for Mobile Devices (paper, post @68)
  • Osvik, Shamir, Tromer 2006 describes cache-based side channel attacks on AES
  • Bernstein 2005 also studies cache-based side channel attacks, with remote network exploitation
  • Crypto coding rules gives guidelines on producing timing-independent code
  • Almeida et al 2015 explains the difficulty in writing software to prevent timing attacks, and provides a methodology for proving cryptosystems secure against timing attacks.
PS4 due 3/24

Part 3. Structured forgetfulness: dropping keys before they can be stolen

WkTopicRequired readingAdditional resourcesDue date
9Delegation & group keying(None required. Optional: Challenges in Authenticated Encryption)
10Authenticated key exchange

Two papers/blog posts by Bryant and Davis, post @105

Test on 4/3
11Key ratcheting & secure messaging(none) PS5 due 4/13

Part 4. When reductions fail: dealing with the lowest layer

WkTopicRequired readingAdditional resourcesDue date
12Randomness(none)

13Cryptanalysis of AESHerley and van Oorschot: Science, Security, and the Elusive Goal of Security as a Scientific Pursuit (paper, post @119)
14Final project presentations(none)

PS6 due 5/1

Final project report due 5/3

#pin

Staff Office Hours
NameOffice Hours
Mayank Varia
When?
Where?

Lecture materials

Lecture materials
Date