Introduction to Modern Cryptography
Michele Ciampi
(Slides courtesy of Prof. Jonathan Katz)
Lecture 4, part 1
1 / 24
One-time Pad
2 / 24
One-time Pad (OTP)
▶ Patented in 1917 by Vernam
▶ Invented (at least) 35 years earlier
▶ Proven perfectly secret by Shannon (1949)
3 / 24
One-time Pad
▶ Let M = {0, 1}n
▶ Gen: choose a uniform key k ∈ {0, 1}n
▶ Enck (m) = k ⊕ m
▶ Deck (c) = k ⊕ c
▶ Deck (Enck (m)) = k ⊕ (k ⊕ m) = (k ⊕ k) ⊕ m = m
4 / 24
One-time Pad
5 / 24
Perfect Secrecy of One-time Pad
Theorem
The One-time Pad satisfies perfect secrecy.
Intuition
▶ Any observed ciphertext can correspond to any message
▶ (This is necessary, but not sufficient, for perfect secrecy)
▶ Having observed a ciphertext, the attacker cannot conclude
for certain which message was sent
6 / 24
Perfect Secrecy of One-time Pad
Proof.
▶ Fix arbitrary distribution over M = {0, 1}n , and choose
arbitrary m, c ∈ {0, 1}n
▶ Check if
Pr[M = m|C = c] = Pr[M = m]
7 / 24
Perfect Secrecy of One-time Pad
Proof.
▶ Recall (Bayes’ theorem)
Pr[C = c|M = m] Pr[M = m]
Pr[M = m|C = c] =
Pr[C = c]
▶ We can see that ∀c, m
Pr[C = c|M = m] = Pr[M ⊕ K = c|M = m] =
= Pr[m ⊕ K = c] = Pr[K = c ⊕ m] = 2−n
8 / 24
Perfect Secrecy of One-time Pad
Proof.
By law of total probability:
Pr[C = c] =
X
= Pr[C = c|M = m′ ] Pr[M = m′ ]
m′
X
= Pr[K = m′ ⊕ c|M = m′ ] Pr[M = m′ ]
m′
X
= 2−n Pr[M = m′ ]
m′
X
= 2−n Pr[M = m′ ] = 2−n
m′
9 / 24
Perfect Secrecy of One-time Pad
Proof.
Pr[M = m|C = c] =
Pr[C = c|M = m] Pr[M = m]
=
Pr[C = c]
2 −n Pr[M = m]
=
2−n
= Pr[M = m]
10 / 24
One-time Pad and Brute-force Attacks
▶ OTP resists even a brute-force attack
▶ Decrypt a ciphertext with every key returns every possible
plaintext (incl. every ASCII/English string)
▶ No way of telling the correct plaintext
Image credit: https://nakedsecurity.sophos.com
11 / 24
One-time Pad
▶ The One-time Pad achieves perfect secrecy!
▶ Resists even a brute-force attack
▶ One-time Pad has historically been used in the real world
▶ e.g. red phone between Washington and Moscow
▶ Not currently used! Why?
12 / 24
One-time Pad
Limitations of OTP
1. The key is as long as the message
2. A key must be used only once
▶ Only secure if each key is used to encrypt a single message
▶ (Trivially broken by a known-plaintext attack)
=⇒ Parties must share keys of (total) length equal to the
(total) length of all the messages they might ever send
13 / 24
Using the Same Key Twice?
▶ Say
c1 = k ⊕ m1
c2 = k ⊕ m2
▶ Attacker can compute
c1 ⊕ c2 = (k ⊕ m1 ) ⊕ (k ⊕ m2 ) = m1 ⊕ m2
▶ This leaks information about m1 , m2
14 / 24
Using the Same Key Twice?
m1 ⊕ m2 leaks information about m1 , m2
Is this significant?
▶ m1 ⊕ m2 reveals where m1 , m2 differ
▶ No longer perfectly secret!
▶ Exploiting characteristics of ASCII...
15 / 24
ASCII table (recall)
https://hubpages.com/technology/What-Are-ASCII-Codes
16 / 24
Using the Same Key Twice: recall ASCII
Observatoins
▶ Letters begin with 0x4, 0x5, 0x6 or 0x7
▶ =⇒ letters all begin with 01...
▶ ASCII code for the space character 0x20 = 00100000
▶ =⇒ the space character begins with 00...
▶ XOR of two letters gives 00...
▶ XOR of letter and space gives 01...
▶ Easy to identify XOR of letter and space!
17 / 24
Using the Same Key Twice
▶ The last byte of c1 ⊕ c2 starts with 01
▶ Therefore
c1 ⊕ c2 = m1 ⊕ m2 = x ⊕ 00100000
x = c1 ⊕ c2 ⊕ 00100000
▶ e.g. let c1 ⊕ c2 = 01010000
x = 01010000 ⊕ 00100000
x = 01110000 = 0x70 = ”p”
▶ Attacker learns one plaintext character: m1 = p or
m2 = p
18 / 24
One-time Pad
Drawbacks
▶ Key as long the message
▶ Only secure if each key is used to encrypt once
▶ Trivially broken by a known-plaintext attack
Note
These limitations are inherent for schemes achieving perfect
secrecy
19 / 24
Optimality of the One-time Pad
Theorem
If (Gen, Enc, Dec) with message space M is perfectly secret,
then |K| ≥ |M|.
Intuition
▶ Given any ciphertext, try decrypting under every possible
key in K
▶ This gives a list of up to |K| possible messages
▶ If |K| < |M| =⇒ some message is not on the list
20 / 24
Optimality of the One-time Pad
Proof.
▶ Assume |K| < |M|
▶ Need to show that there is a distribution on M, a message
m, and a ciphertext c such that
Pr[M = m|C = c] ̸= Pr[M = m]
21 / 24
Optimality of the One-time Pad
Proof.
▶ Take the uniform distribution on M
▶ Take any ciphertext c
▶ Consider the set M (c) = {Deck (c)}k∈K
▶ the set of messages that could yield the ciphertext c
▶ |M (c)| ≤ |K| < |M | =⇒ ∃m s.t. m ∈
/ M (c):
Pr[M = m|C = c] = 0 ̸= Pr[M = m]
22 / 24
Summary
▶ We defined the notion of perfect secrecy (PS)
▶ We proved that the One-time Pad achieves PS
▶ We proved that the One-time Pad is optimal (in the key
length)
▶ i.e. we cannot improve the key length
▶ Are we done? What about the limitations of OTP?
▶ Address OTP’s limitations by relaxing the definition
▶ But in a meaningful way...
▶ (next slides)
23 / 24
End
References: From Section 2.2 until the end of Chapter 2.
24 / 24