SLIDE 1 Quantum Collision-Finding in Non-Uniform Random Functions
Marko Balogh1 and Edward Eaton2,3 and Fang Song1
1 Portland State University 2 University of Waterloo 3 ISARA Corporation
April 11, 2018
1 / 33
SLIDE 2 Motivation
Let H : [M] → [N] be a hash function.
2 / 33
SLIDE 3 Motivation
Let H : [M] → [N] be a hash function. The collision resistance of H is a measure of how difficult it is to find x, y ∈ [M] such that H(x) = H(y).
2 / 33
SLIDE 4 Difficulty?
3 / 33
SLIDE 5 Difficulty?
3 / 33
SLIDE 6 Difficulty?
3 / 33
SLIDE 7 Difficulty?
- Time
- Space
- (Qu)bit operations
3 / 33
SLIDE 8 Difficulty?
- Time
- Space
- (Qu)bit operations (logical/physical)
3 / 33
SLIDE 9 Difficulty?
- Time
- Space
- (Qu)bit operations (logical/physical)
- Easy to parallelize
3 / 33
SLIDE 10 Difficulty?
- Time
- Space
- (Qu)bit operations (logical/physical)
- Easy to parallelize
- Hash function queries
3 / 33
SLIDE 11 Difficulty?
- Time
- Space
- (Qu)bit operations (logical/physical)
- Easy to parallelize
- Hash function queries
4 / 33
SLIDE 12 We can allow a quantum query to H by UH :
y∈[N]
αx,y|x|y →
y∈[N]
αx,y|x|y ⊕ H(x)
5 / 33
SLIDE 13
Generic Security
H A
SLIDE 14
Generic Security
H A x
SLIDE 15
Generic Security
H A x H(x)
SLIDE 16
Generic Security
H A x H(x) m1, m2 : H(m1) = H(m2)
SLIDE 17
Generic Security
H A x H(x) m1, m2 : H(m1) = H(m2) UH A
SLIDE 18
Generic Security
H A x H(x) m1, m2 : H(m1) = H(m2) UH A |x|y |x|y ⊕ H(x)
SLIDE 19 Generic Security
H A x H(x) m1, m2 : H(m1) = H(m2) UH A |x|y |x|y ⊕ H(x) m1, m2 : H(m1) = H(m2)
6 / 33
SLIDE 20 Collision Resistance
Let H := {H : [M] → [N]}, and M = Ω(N1/2).
7 / 33
SLIDE 21 Collision Resistance
Let H := {H : [M] → [N]}, and M = Ω(N1/2). Then if we have H
$
← − H uniformly:
- Any algorithm finding a collision in H (with constant
probability) must make Ω(N1/3) queries to UH.
7 / 33
SLIDE 22 Collision Resistance
Let H := {H : [M] → [N]}, and M = Ω(N1/2). Then if we have H
$
← − H uniformly:
- Any algorithm finding a collision in H (with constant
probability) must make Ω(N1/3) queries to UH.
- There is an algorithm that finds a collision in H (with
constant probability) and makes O(N1/3) queries to UH. Results from “A Note on the Quantum Collision and Set Equality Problems” by Mark Zhandry (2015).
7 / 33
SLIDE 23 Motivation
When H is uniform, the query complexity is Θ(N1/3).
8 / 33
SLIDE 24 Motivation
When H is uniform, the query complexity is Θ(N1/3). Is only considering uniform functions enough?
8 / 33
SLIDE 25 Motivation
- Uniformity is a very strong condition on a function —
considering non-uniform can relax our security assumptions.
9 / 33
SLIDE 26 Motivation
- Uniformity is a very strong condition on a function —
considering non-uniform can relax our security assumptions.
- Some crypto functions are certainly not uniform, e.g., if H1,
H2 are uniform then H1 ◦ H2 is not.
9 / 33
SLIDE 27 Motivation
- Uniformity is a very strong condition on a function —
considering non-uniform can relax our security assumptions.
- Some crypto functions are certainly not uniform, e.g., if H1,
H2 are uniform then H1 ◦ H2 is not.
- Proofs of Fujisaki-Okamoto require collision resistance of
non-uniform functions (f ◦ H).
9 / 33
SLIDE 28 Definitions
Let D be a distribution on [N]. Then we say that D has min-entropy k if − log2 max
y∈[N] Pr[y ← D] = k.
10 / 33
SLIDE 29 Definitions
Let D be a distribution on [N]. Then we say that D has min-entropy k if − log2 max
y∈[N] Pr[y ← D] = k.
We say that a function H has distribution D if H(x) has distribution D for all x ∈ [M], and all are independent.
10 / 33
SLIDE 30 Examples
N = 8, D1 = uniform / flat:
11 / 33
SLIDE 31 Examples
N = 8, D1 = uniform / flat: N = 25, D2 = generic :
11 / 33
SLIDE 32 Examples
N = 8, D1 = uniform / flat: N = 25, D2 = generic : Both have min-entropy 3
11 / 33
SLIDE 33 Examples
N = Ω(M), D3 = delta:
12 / 33
SLIDE 34 Examples
N = Ω(M), D3 = delta: Still min-entropy 3
12 / 33
SLIDE 35 Definitions
Useful tool: The collision probability β(D) := 1 Pr[x = y : x, y ← D]. ( − log β is the collision entropy)
13 / 33
SLIDE 36 Definitions
Useful tool: The collision probability β(D) := 1 Pr[x = y : x, y ← D]. ( − log β is the collision entropy) β
SLIDE 37 Definitions
Useful tool: The collision probability β(D) := 1 Pr[x = y : x, y ← D]. ( − log β is the collision entropy) β
β
SLIDE 38 Definitions
Useful tool: The collision probability β(D) := 1 Pr[x = y : x, y ← D]. ( − log β is the collision entropy) β
β
β
13 / 33
SLIDE 39 Previous Work
To find a collision with constant probability... it takes at least this many queries it can be done in this many queries
2k/3 ? 2k/9 2k/3 ? ?
14 / 33
SLIDE 40 Independent Work — Ebrahimi & Unruh
To find a collision with constant probability... it takes at least this many queries it can be done in this many queries
2k/3 2k/2 2k/5 2k/3 2k/2 β1/3
15 / 33
SLIDE 41
Our Work
To find a collision with constant probability... it takes at least this many queries it can be done in this many queries
2k/3
min{N1/3, 2k/2}
2k/3 2k/3
min{N1/3, 2k/2}
β1/3
SLIDE 42 Our Work
To find a collision with constant probability... it takes at least this many queries it can be done in this many queries
2k/3
min{N1/3, 2k/2}
2k/3 2k/3
min{N1/3, 2k/2}
β1/3
16 / 33
SLIDE 43 We prove
Any adversary that can find a collision in a hash function H′ with
in q queries to UH′, with probability p,
17 / 33
SLIDE 44 We prove
Any adversary that can find a collision in a hash function H′ with
in q queries to UH′, with probability p, can be used to find a collision in a hash function H with outputs distributed by in 2q queries to UH, with probability p/2.
17 / 33
SLIDE 45
Reduction Adversary H′ H
SLIDE 46 Reduction Adversary H′ H Collision in H′ Collision in H
18 / 33
SLIDE 47 Proof outline
Idea: Use a distribution conversion to ‘chop up’ and turn it into
19 / 33
SLIDE 48 Proof outline
Idea: Use a distribution conversion to ‘chop up’ and turn it into Then show that a collision in the generic distribution should imply a collision in the uniform!
19 / 33
SLIDE 49 Simulating H′
Say we have H with output distribution
20 / 33
SLIDE 50 Simulating H′
Say we have H with output distribution We pick m
$
← − [M] and compute H(m) =
20 / 33
SLIDE 51 Simulating H′
We want to provide the adversary with access to a hash function H′ with distribution
21 / 33
SLIDE 52 Simulating H′
We want to provide the adversary with access to a hash function H′ with distribution So when we compute H(m) = , we will choose what H′(m) can be based on this.
21 / 33
SLIDE 53
Simulating H′
SLIDE 54 Simulating H′
22 / 33
SLIDE 55 Simulating H′
When H(m) = we will set H′(m) to either , , or .
23 / 33
SLIDE 56 Simulating H′
When H(m) = we will set H′(m) to either , , or . We need a randomness oracle R : [M] → {0, 1}∗ to decide which. (Querying R does not require us to query H.)
23 / 33
SLIDE 57 Simulating H′
When the adversary makes a query on a point m, we:
24 / 33
SLIDE 58 Simulating H′
When the adversary makes a query on a point m, we:
24 / 33
SLIDE 59 Simulating H′
When the adversary makes a query on a point m, we:
- Compute H(m).
- Obtain ‘sufficient’ randomness by R(m).
24 / 33
SLIDE 60 Simulating H′
When the adversary makes a query on a point m, we:
- Compute H(m).
- Obtain ‘sufficient’ randomness by R(m).
- From this, decide what H′(m) is by breaking up H(m).
24 / 33
SLIDE 61 Simulating H′
When the adversary makes a query on a point m, we:
- Compute H(m).
- Obtain ‘sufficient’ randomness by R(m).
- From this, decide what H′(m) is by breaking up H(m).
Note that this only requires one query to H.
24 / 33
SLIDE 62 Converting H′ collision to H
Then note that if the adversary finds m1, m2 ∈ [M] such that H′(m1) = H′(m2) = , we have that H(m1) = H(m2) = .
25 / 33
SLIDE 63 Converting H′ collision to H
Then note that if the adversary finds m1, m2 ∈ [M] such that H′(m1) = H′(m2) = , we have that H(m1) = H(m2) = . But we don’t always have this property.
25 / 33
SLIDE 64
Converting H′ collision to H
SLIDE 65 Converting H′ collision to H
26 / 33
SLIDE 66 Converting H′ collision to H
Say the adversary finds m1, m2 ∈ [M] such that H′(m1) = H′(m2) = . What does this mean for H(m1) and H(m2)?
27 / 33
SLIDE 67 Converting H′ collision to H
If H′(m1) = H′(m2) = , we could have:
28 / 33
SLIDE 68 Converting H′ collision to H
If H′(m1) = H′(m2) = , we could have:
, H(m2) = .
, H(m2) = .
, H(m2) = .
, H(m2) = .
28 / 33
SLIDE 69 Converting H′ collision to H
If H′(m1) = H′(m2) = , we could have:
, H(m2) = .
, H(m2) = .
, H(m2) = .
, H(m2) = . However, note that we do not provide the adversary with direct access to H, only to H′.
28 / 33
SLIDE 70 Converting H′ collision to H
If H′(m1) = H′(m2) = , we could have:
, H(m2) = .
, H(m2) = .
, H(m2) = .
, H(m2) = . However, note that we do not provide the adversary with direct access to H, only to H′. The adversary has no way to tell which
28 / 33
SLIDE 71 Converting H′ collision to H
If H′(m1) = H′(m2) = , we could have:
, H(m2) = .
, H(m2) = .
, H(m2) = .
, H(m2) = . However, note that we do not provide the adversary with direct access to H, only to H′. The adversary has no way to tell which — carefully accounting, we can see that Pr[H(m1) = H(m2)] ≥ 1/2. (Probability over the R oracle and the adversary’s internal randomness).
28 / 33
SLIDE 72 Simulating UH′
For a quantum-enabled adversary, we must quantumize this process, e.g., on input of a query |Ψ, we:
29 / 33
SLIDE 73 Simulating UH′
For a quantum-enabled adversary, we must quantumize this process, e.g., on input of a query |Ψ, we:
- Make a quantum query to UH to get UH|Ψ,
29 / 33
SLIDE 74 Simulating UH′
For a quantum-enabled adversary, we must quantumize this process, e.g., on input of a query |Ψ, we:
- Make a quantum query to UH to get UH|Ψ,
- Pass the message register part of |Ψ through UR to obtain
randomness to break apart the uniform distribution,
29 / 33
SLIDE 75 Simulating UH′
For a quantum-enabled adversary, we must quantumize this process, e.g., on input of a query |Ψ, we:
- Make a quantum query to UH to get UH|Ψ,
- Pass the message register part of |Ψ through UR to obtain
randomness to break apart the uniform distribution,
- Pass this result into a quantum circuit that breaks apart the
uniform distribution to get the desired min-entropy k distribution.
29 / 33
SLIDE 76 Simulating UH′
For a quantum-enabled adversary, we must quantumize this process, e.g., on input of a query |Ψ, we:
- Make a quantum query to UH to get UH|Ψ,
- Pass the message register part of |Ψ through UR to obtain
randomness to break apart the uniform distribution,
- Pass this result into a quantum circuit that breaks apart the
uniform distribution to get the desired min-entropy k distribution.
- Perform garbage collection and pass result to the adversary.
29 / 33
SLIDE 77 UH′ x H(·) r(·) H(·) x |0 |0 y y ⊕ r(x, H(x))
Figure: Quantum circuit that implements function UH′ using two oracle calls to UH.
30 / 33
SLIDE 78
- For each query the adversary makes to UH′, we make two
queries to UH.
31 / 33
SLIDE 79
- For each query the adversary makes to UH′, we make two
queries to UH.
- The function H′ has exactly the correct distribution.
31 / 33
SLIDE 80
- For each query the adversary makes to UH′, we make two
queries to UH.
- The function H′ has exactly the correct distribution.
- The adversary finds a collision with probability p.
31 / 33
SLIDE 81
- For each query the adversary makes to UH′, we make two
queries to UH.
- The function H′ has exactly the correct distribution.
- The adversary finds a collision with probability p.
- This collision corresponds to a collision in H with probability
1/2.
31 / 33
SLIDE 82
- For each query the adversary makes to UH′, we make two
queries to UH.
- The function H′ has exactly the correct distribution.
- The adversary finds a collision with probability p.
- This collision corresponds to a collision in H with probability
1/2. Since we know that 2k/3 queries are needed to break the collision resistance of H with constant probability, the adversary needs to make at least 2k/3 queries to H′.
31 / 33
SLIDE 83 Open Questions
- Can we get distribution conversions that are time efficient
(not just query efficient)?
- Can we get bounds when distributions aren’t entirely known?
- Lower bounds in terms of β(D) rather than k?
32 / 33
SLIDE 84 Summary
- Main result: Finding a collision in a min-entropy k distributed
hash function takes 2k/3 quantum queries.
33 / 33
SLIDE 85 Summary
- Main result: Finding a collision in a min-entropy k distributed
hash function takes 2k/3 quantum queries.
- There exist min-entropy k distributions that take 2k/2 queries
to find a collision.
33 / 33
SLIDE 86 Summary
- Main result: Finding a collision in a min-entropy k distributed
hash function takes 2k/3 quantum queries.
- There exist min-entropy k distributions that take 2k/2 queries
to find a collision.
- There exists an algorithm that finds a collision in a
min-entropy k distribution in β1/3 queries.
33 / 33
SLIDE 87 Summary
- Main result: Finding a collision in a min-entropy k distributed
hash function takes 2k/3 quantum queries.
- There exist min-entropy k distributions that take 2k/2 queries
to find a collision.
- There exists an algorithm that finds a collision in a
min-entropy k distribution in β1/3 queries.
- Preimage/second preimage difficulty on min-entropy k
distributions can also be characterized with β and analysed with distribution conversions.
33 / 33
SLIDE 88 Summary
- Main result: Finding a collision in a min-entropy k distributed
hash function takes 2k/3 quantum queries.
- There exist min-entropy k distributions that take 2k/2 queries
to find a collision.
- There exists an algorithm that finds a collision in a
min-entropy k distribution in β1/3 queries.
- Preimage/second preimage difficulty on min-entropy k
distributions can also be characterized with β and analysed with distribution conversions. Thank you!
33 / 33