PRNGs, Stream Ciphers and Diffie-Hellman Key Exchange
CS 161 Fall 2021 - Lecture 13
#
Computer Science 161
Popa and Weaver
Popa and Weaver
Announcements
2
Computer Science 161
Popa and Weaver
Popa and Weaver
Last Time: Hashes
3
Computer Science 161
Popa and Weaver
Popa and Weaver
Last Time: MACs
4
Computer Science 161
Popa and Weaver
Popa and Weaver
Authenticated Encryption (cont’d)
5
Textbook Chapter 8.7 & 8.8
Computer Science 161
Popa and Weaver
Popa and Weaver
Cryptography Roadmap
6
| Symmetric-key | Asymmetric-key |
Confidentiality |
|
|
Integrity,�Authentication |
|
|
Computer Science 161
Popa and Weaver
Popa and Weaver
Authenticated Encryption: Definition
7
Computer Science 161
Popa and Weaver
Popa and Weaver
Key Reuse
8
Computer Science 161
Popa and Weaver
Popa and Weaver
Scratchpad: Let’s design it together
9
Computer Science 161
Popa and Weaver
Popa and Weaver
MAC-then-Encrypt or Encrypt-then-MAC?
10
Computer Science 161
Popa and Weaver
Popa and Weaver
TLS 1.0 “Lucky 13” Attack
11
Computer Science 161
Popa and Weaver
Popa and Weaver
AEAD Encryption
12
Computer Science 161
Popa and Weaver
Popa and Weaver
AEAD Example: Galois Counter Mode (GCM)
13
Computer Science 161
Popa and Weaver
Popa and Weaver
AEAD Example: Galois Counter Mode (GCM)
14
Computer Science 161
Popa and Weaver
Popa and Weaver
Summary: Authenticated Encryption
15
Computer Science 161
Popa and Weaver
Popa and Weaver
Pseudorandom Number Generators (PRNGS)
16
Textbook Chapter 9
Symmetric-key encryption schemes need randomness. How do we securely generate random numbers?
Computer Science 161
Popa and Weaver
Popa and Weaver
Cryptography Roadmap
17
| Symmetric-key | Asymmetric-key |
Confidentiality |
|
|
Integrity,�Authentication |
|
|
Computer Science 161
Popa and Weaver
Popa and Weaver
Randomness
18
Computer Science 161
Popa and Weaver
Popa and Weaver
Entropy
19
Computer Science 161
Popa and Weaver
Popa and Weaver
Breaking Bitcoin Wallets
20
Computer Science 161
Popa and Weaver
Popa and Weaver
True Randomness
21
Exotic entropy source: Cloudflare has a wall of lava lamps that are recorded by an HD video camera that views the lamps through a rotating prism
Computer Science 161
Popa and Weaver
Popa and Weaver
Pseudorandom Number Generators (PRNGs)
22
Computer Science 161
Popa and Weaver
Popa and Weaver
PRNG: Definition
Properties
23
Computer Science 161
Popa and Weaver
Popa and Weaver
PRNG: Security
24
Computer Science 161
Popa and Weaver
Popa and Weaver
Insecure PRNGs: Breaking Slot Machines
25
Computer Science 161
Popa and Weaver
Popa and Weaver
Insecure PRNGs: OpenSSL PRNG bug
26
Computer Science 161
Popa and Weaver
Popa and Weaver
Example construction of PRNG
27
Randomness,
PRNG output
Computer Science 161
Popa and Weaver
Popa and Weaver
Insecure PRNGs: Rust Rand_Core
28
Computer Science 161
Popa and Weaver
Popa and Weaver
Insecure PRNGs: CVE-2019-16303
29
Computer Science 161
Popa and Weaver
Popa and Weaver
Application: Universally Unique Identifiers (UUIDs)
30
Computer Science 161
Popa and Weaver
Popa and Weaver
PRNGs: Summary
31
Computer Science 161
Popa and Weaver
Popa and Weaver
Stream Ciphers
32
Textbook Chapter 9.5
Computer Science 161
Popa and Weaver
Popa and Weaver
Stream Ciphers
33
Computer Science 161
Popa and Weaver
Popa and Weaver
Stream Ciphers
34
⊕
Generate(n)
Seed(k)
Seed(k)
Generate(n)
⊕
Plaintext
Ciphertext
Plaintext
Alice
Bob
Computer Science 161
Popa and Weaver
Popa and Weaver
Stream Ciphers: Encrypting Multiple Messages
35
⊕
Generate(n)
Seed(k)
Alice
Bob
Seed(k)
Generate(n)
⊕
Plaintext
Ciphertext
Plaintext
Computer Science 161
Popa and Weaver
Popa and Weaver
Stream Ciphers: Encrypting Multiple Messages
36
⊕
Generate(n)
Seed(k | IV)
Alice
Bob
Seed(k | IV)
Generate(n)
⊕
Plaintext
Ciphertext
Plaintext
IV
IV
Computer Science 161
Popa and Weaver
Popa and Weaver
Application of PRNG: Stream ciphers
37
Computer Science 161
Popa and Weaver
Popa and Weaver
Stream ciphers
Enc(K, M):
Q: How to decrypt?
A: Compute PRG sequence using K and IV and XOR with ciphertext C
Q: What is advantage over OTP?
A: Can encrypt any message length because PRG can produce any number of random bits, and multiple times because IV is chosen at random in Enc
38
Computer Science 161
Popa and Weaver
Popa and Weaver
Stream Ciphers: Security
39
Computer Science 161
Popa and Weaver
Popa and Weaver
Stream Ciphers: Encryption Efficiency
40
Computer Science 161
Popa and Weaver
Popa and Weaver
Stream Ciphers: Decryption Efficiency
41
Computer Science 161
Popa and Weaver
Popa and Weaver
Diffie-Hellman Key Exchange
42
Textbook Chapter 10
Computer Science 161
Popa and Weaver
Popa and Weaver
Cryptography Roadmap
43
| Symmetric-key | Asymmetric-key |
Confidentiality |
|
|
Integrity,�Authentication |
|
|
Computer Science 161
Popa and Weaver
Popa and Weaver
A quick “physical” game: keys are not shared/symmetrical!
44
Alice:
Bob:
Eve:
msg
Computer Science 161
Popa and Weaver
Popa and Weaver
Option 1: similar to Diffie Hellman key exchange
45
Alice:
Bob:
Eve:
msg
2. Bob sends back
msg
3. Alice removes her lock and sends to Bob
msg
Like Diffie-Hellman key exchange
Computer Science 161
Popa and Weaver
Popa and Weaver
Option 2: similar to public-key encryption
46
Alice:
Bob:
Eve:
2. Alice locks down msg with Bob’s lock
msg
Computer Science 161
Popa and Weaver
Popa and Weaver