Quantum-secure message authentication via blind-unforgeability
Gorjan Alagic, Christian Majenz, Alexander Russell and Fang Song
Eurocrypt 2020, in Cyberspace
Quantum-secure message authentication via blind-unforgeability - - PowerPoint PPT Presentation
Quantum-secure message authentication via blind-unforgeability Gorjan Alagic, Christian Majenz, Alexander Russell and Fang Song Eurocrypt 2020, in Cyberspace Introduction Integrity and authenticity Integrity and authenticity It says X
Gorjan Alagic, Christian Majenz, Alexander Russell and Fang Song
Eurocrypt 2020, in Cyberspace
this letter really from them?”
this letter really from them?”
to get here, offering plenty of
change it.”
this letter really from them?”
to get here, offering plenty of
change it.” Nowadays: digital signature schemes, message authentication codes (MACs).
Alice Bob m k k
Alice Bob m k k
Mac
𝑢
Alice Bob m k k
Mac
𝑢 𝑢′
m′
… the Internet is a scary place…
m
𝑢
m′
𝑢′
Alice Bob m k k
Mac
𝑢
Mac
? acc/rej
𝑢′
m′
… the Internet is a scary place…
m
𝑢
m′
𝑢′
𝐍𝐛𝐝𝑙
m1 t1 m2 t2 … mq tq (m*, t*) Success: i) m* ≠ mi for all i = 1,...,q ii) Mack(m*) = t*
A message authentication code is secure, if no successful forger exists: Definition: Unforgeability under chosen message attacks (UF-CMA)
Stronger security model: quantum oracle access to :
𝐍𝐛𝐝𝑙
Stronger security model: quantum oracle access to :
𝐍𝐛𝐝𝑙
Why?
Stronger security model: quantum oracle access to :
𝐍𝐛𝐝𝑙
Why?
Stronger security model: quantum oracle access to :
𝐍𝐛𝐝𝑙
Why?
Stronger security model: quantum oracle access to :
𝐍𝐛𝐝𝑙
Why?
Stronger security model: quantum oracle access to :
𝐍𝐛𝐝𝑙
Why?
Let’s try UF-”QCMA”
Stronger security model: quantum oracle access to :
𝐍𝐛𝐝𝑙
Example: i) Query to obtain ii) Measure in the computational basis to obtain for random iii) Output
|m1⟩ = ∑
m∈{0,1}n
|m⟩|0⟩ (m, Mack(m)) m ∑
m∈{0,1}n
|m⟩|Mack(m)⟩ (m, Mack(m))
Why?
Let’s try UF-”QCMA”
Stronger security model: quantum oracle access to :
𝐍𝐛𝐝𝑙
UF-CMA doesn’t make sense anymore… Example: i) Query to obtain ii) Measure in the computational basis to obtain for random iii) Output
|m1⟩ = ∑
m∈{0,1}n
|m⟩|0⟩ (m, Mack(m)) m ∑
m∈{0,1}n
|m⟩|Mack(m)⟩ (m, Mack(m))
Why?
Let’s try UF-”QCMA”
What does it mean for a function to be unpredictable against quantum? What is a successful forging adversary?
What does it mean for a function to be unpredictable against quantum? What is a successful forging adversary? We shouldn’t be worried about: i) Query to obtain ii) Measure in the computational basis to obtain for random iii) Output
m1 = ∑
m∈{0,1}n
|m⟩|0⟩ ∑
m∈{0,1}n
|m⟩|Mack(m)⟩ (m, Mack(m)) m (m, Mack(m))
What does it mean for a function to be unpredictable against quantum? What is a successful forging adversary? We shouldn’t be worried about: i) Query to obtain ii) Measure in the computational basis to obtain for random iii) Output
m1 = ∑
m∈{0,1}n
|m⟩|0⟩ ∑
m∈{0,1}n
|m⟩|Mack(m)⟩ (m, Mack(m)) m (m, Mack(m))
We should be worried about: key specifies a random periodic function with period , and i) run period finding (a subroutine of Shor’s algorithm) to find ii) output
k fk pk Mack(pk) = 0 Mack(x) = fk(x) ∀x ≠ pk pk (pk,0)
𝐍𝐛𝐝𝑙
m1 t1 m2 t2 … mq tq (m*, t*) Success: i) m* ≠ mi for all i = 1,...,q ii) Mack(m*) = t*
𝐍𝐛𝐝𝑙
m1 t1 m2 t2 … mq tq (m*, t*) Success: i) m* ≠ mi for all i = 1,...,q ii) Mack(m*) = t*
(Eurocrypt 2013) but clearly broken, and BU-insecure
𝐍𝐛𝐝𝑙
m1 t1 m2 t2 … mq tq (m*
1 , t* 1 ), (m* 2 , t* 2 ), . . . , (m* q+1, t* q+1)
Success: Mack(m*
i ) = t* i ∀i = 1,...,q + 1
Boneh and Zhandry (Eurocrypt 2013) propose: Ask forgeries for queries!
q + 1 q
𝐍𝐛𝐝𝑙
m1 t1 m2 t2 … mq tq (m*
1 , t* 1 ), (m* 2 , t* 2 ), . . . , (m* q+1, t* q+1)
Success: Mack(m*
i ) = t* i ∀i = 1,...,q + 1
Boneh and Zhandry (Eurocrypt 2013) propose: Ask forgeries for queries!
q + 1 q
Has some nice properties:
Mack(m*
i ) = t* i ∀i = 1,...,q+1
𝐍𝐛𝐝𝑙
m1 t1 m2 t2
…
mq tq (m*
1 , t* 1 ), (m* 2 , t* 2 ), . . . , (m* q+1, t* q+1)
Success:
Mack(m*
i ) = t* i ∀i = 1,...,q+1
𝐍𝐛𝐝𝑙
m1 t1 m2 t2
…
mq tq (m*
1 , t* 1 ), (m* 2 , t* 2 ), . . . , (m* q+1, t* q+1)
Success:
What if…
Mack(m*
i ) = t* i ∀i = 1,...,q+1
𝐍𝐛𝐝𝑙
m1 t1 m2 t2
…
mq tq (m*
1 , t* 1 ), (m* 2 , t* 2 ), . . . , (m* q+1, t* q+1)
Success:
What if…
space of all messages
forgery comes from here (msg prefix “from the White Rabbit”) all queries supported here (msg prefix “from Alice”)
Mack(m*
i ) = t* i ∀i = 1,...,q+1
𝐍𝐛𝐝𝑙
m1 t1 m2 t2
…
mq tq (m*
1 , t* 1 ), (m* 2 , t* 2 ), . . . , (m* q+1, t* q+1)
Success:
What if…
In fact, it seems like it should be easy to find examples like this!
space of all messages
forgery comes from here (msg prefix “from the White Rabbit”) all queries supported here (msg prefix “from Alice”)
Mack(m*
i ) = t* i ∀i = 1,...,q+1
𝐍𝐛𝐝𝑙
m1 t1 m2 t2
…
mq tq (m*
1 , t* 1 ), (m* 2 , t* 2 ), . . . , (m* q+1, t* q+1)
Success:
What if…
In fact, it seems like it should be easy to find examples like this!
space of all messages
forgery comes from here (msg prefix “from the White Rabbit”) all queries supported here (msg prefix “from Alice”)
is not
Mack(m*
i ) = t* i ∀i = 1,...,q+1
𝐍𝐛𝐝𝑙
m1 t1 m2 t2
…
mq tq (m*
1 , t* 1 ), (m* 2 , t* 2 ), . . . , (m* q+1, t* q+1)
Success:
What if…
In fact, it seems like it should be easy to find examples like this!
space of all messages
forgery comes from here (msg prefix “from the White Rabbit”) all queries supported here (msg prefix “from Alice”)
One obstacle: “property finding” cannot be used.
is not
Mack(m*
i ) = t* i ∀i = 1,...,q+1
𝐍𝐛𝐝𝑙
m1 t1 m2 t2
…
mq tq (m*
1 , t* 1 ), (m* 2 , t* 2 ), . . . , (m* q+1, t* q+1)
Success:
What if…
In fact, it seems like it should be easy to find examples like this!
space of all messages
forgery comes from here (msg prefix “from the White Rabbit”) all queries supported here (msg prefix “from Alice”)
One obstacle: “property finding” cannot be used.
is not
One-time Mac that’s BZ secure, GYZ (Garg, Yuen&Zhandry, Crypto ’17) insecure, assuming iO (Zhandry, Eurocrypt ’19)
A MAC that unconditionally “breaks” Boneh-Zhandry:
A MAC that unconditionally “breaks” Boneh-Zhandry:
Mack
x b
m = f1
b(x)
f 0
b(x)
f i
b : {0,1}n → {0,1}n
f 0
0(x) =
̂ f 0
0(x mod p)
p f1
0 =
̂ f1 f 0
1 = {
0n x = p ̂ f 0
1(x)
else , f1
1 ≡ 0n
A MAC that unconditionally “breaks” Boneh-Zhandry:
Random periodic function shielded by a random function
𝑐 = 0 𝑐 = 1
Random function punctured at the period
Message space
A MAC that unconditionally “breaks” Boneh-Zhandry:
Simple one-query attack: i) Use period finding to find , “ignoring” ii)
p f1 (1p,02n)
Random periodic function shielded by a random function
𝑐 = 0 𝑐 = 1
Random function punctured at the period
Message space
A MAC that unconditionally “breaks” Boneh-Zhandry:
Simple one-query attack: i) Use period finding to find , “ignoring” ii)
p f1 (1p,02n)
Random periodic function shielded by a random function
𝑐 = 0 𝑐 = 1
Random function punctured at the period
Message space
Theorem (AMRS17). There is no efficient quantum algorithm which query
.
Mack Mack
A MAC that unconditionally “breaks” Boneh-Zhandry:
Simple one-query attack: i) Use period finding to find , “ignoring” ii)
p f1 (1p,02n)
Random periodic function shielded by a random function
𝑐 = 0 𝑐 = 1
Random function punctured at the period
Message space
Theorem (AMRS17). There is no efficient quantum algorithm which query
.
Mack Mack
A MAC that unconditionally “breaks” Boneh-Zhandry:
Simple one-query attack: i) Use period finding to find , “ignoring” ii)
p f1 (1p,02n) Key step: ignorance is necessary
Random periodic function shielded by a random function
𝑐 = 0 𝑐 = 1
Random function punctured at the period
Message space
Problem: how do we define unforgeability vs quantum?
Problem: how do we define unforgeability vs quantum? A new approach: “blind unforgeability.” Idea: to test a forger…
More formally: for
by putting every independently with probability ;
Mack Bε ⊂ {0,1}n m ∈ Bε ε 𝐶𝜗Mack : m ↦ { Mack(m) m ∉ 𝐶𝜗 ⊥ m ∈ 𝐶𝜗
Problem: how do we define unforgeability vs quantum? A new approach: “blind unforgeability.” Idea: to test a forger…
More formally: for
by putting every independently with probability ;
Mack Bε ⊂ {0,1}n m ∈ Bε ε 𝐶𝜗Mack : m ↦ { Mack(m) m ∉ 𝐶𝜗 ⊥ m ∈ 𝐶𝜗
Problem: how do we define unforgeability vs quantum? A new approach: “blind unforgeability.” Idea: to test a forger…
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(m, Mack(m) ← BεMack and m ∈ Bε] = negl(n)
Does this work?
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
Does this work?
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
Does this work?
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
Does this work?
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
1.
;
Output: for random .
m1 = ∑
m∈{0,1}n
|m⟩|0⟩ (m, BεMack(m)) m
Does this work?
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
1.
;
Output: for random .
m1 = ∑
m∈{0,1}n
|m⟩|0⟩ (m, BεMack(m)) m
Check, e.g., for random functions:
for blinded is independent of post-query state,
Mack(m) m
One-query attack: Find period in orange part, forge in olive part.
2.
Random periodic function shielded by a random function
𝑐 = 0 𝑐 = 1
Random function punctured at the period
Definition (Blind-Unforgeability): A MAC is unpredictable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
Does this work?
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
One-query attack: Find period in orange part, forge in olive part.
2.
Check, say for ,
ε = 0.0001
;
(1p,0) ε
Random periodic function shielded by a random function
𝑐 = 0 𝑐 = 1
Random function punctured at the period
Definition (Blind-Unforgeability): A MAC is unpredictable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
Does this work?
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
Additional results:
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
strengthens collapsingness Additional results:
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
strengthens collapsingness
Additional results:
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
strengthens collapsingness
actually even Bernoulli-preserving Additional results:
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
strengthens collapsingness
actually even Bernoulli-preserving
Additional results:
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
strengthens collapsingness
actually even Bernoulli-preserving
Tools: Additional results:
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
strengthens collapsingness
actually even Bernoulli-preserving
Tools:
unblinded cases Additional results:
Definition (Blind-Unforgeability): A MAC is blind-unforgeable if for every adversary with a quantum oracle for ,
Mack 𝐶𝜗Mack ℙ [(y, Mack(y) ← BεMack and y ∈ Bε] = negl(n)
strengthens collapsingness
actually even Bernoulli-preserving
Tools:
unblinded cases
Additional results:
Summary:
allows for an intuitive forgery attack.
correctly. Open questions:
and Lamport in the QROM for now…