quantum lll - with an application to mersenne number ... · quantum lll with an application to...

Post on 19-Aug-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Quantum LLLwith an Application to Mersenne Number Cryptosystems

Marcel Tiepelt1 Alan Szepieniec2

1Karlsruhe Institute of Technology2Nervos Foundation

Latincrypt 2019Santiago de Chile, Oct. 2-4

KIT – The Research University in the Helmholtz Associationwww.kit.edu

Overview

Quantum circuit representation of LLLfor (textbook) rational numbersfor floating-point approximation

Resource estimates of (sub)circuits, in Toffoli-gates

Focus on qubits count

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 2/18

Why quantum translation of LLL?

Consider LLL as a subroutine, e.g., SVP oracle in cryptanalysisAssume 256 bits of classical security, for O(2256) expectednumber of oracle calls

Quantumly: 128 bits of security, Groverization promisesimprovement to O(2128)→ Requires efficient translation of LLL into quantum setting!

But: translation of (text-book) LLL results in large overheadw.r.t. the number of qubits!

Does Grover with a QLLL give us the desired improvement?

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 3/18

Why quantum translation of LLL?

Consider LLL as a subroutine, e.g., SVP oracle in cryptanalysisAssume 256 bits of classical security, for O(2256) expectednumber of oracle calls

Quantumly: 128 bits of security, Groverization promisesimprovement to O(2128)→ Requires efficient translation of LLL into quantum setting!

But: translation of (text-book) LLL results in large overheadw.r.t. the number of qubits!

Does Grover with a QLLL give us the desired improvement?

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 3/18

Why quantum translation of LLL?

Consider LLL as a subroutine, e.g., SVP oracle in cryptanalysisAssume 256 bits of classical security, for O(2256) expectednumber of oracle calls

Quantumly: 128 bits of security, Groverization promisesimprovement to O(2128)→ Requires efficient translation of LLL into quantum setting!

But: translation of (text-book) LLL results in large overheadw.r.t. the number of qubits!

Does Grover with a QLLL give us the desired improvement?

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 3/18

Why quantum translation of LLL?

Consider LLL as a subroutine, e.g., SVP oracle in cryptanalysisAssume 256 bits of classical security, for O(2256) expectednumber of oracle calls

Quantumly: 128 bits of security, Groverization promisesimprovement to O(2128)→ Requires efficient translation of LLL into quantum setting!

But: translation of (text-book) LLL results in large overheadw.r.t. the number of qubits!

Does Grover with a QLLL give us the desired improvement?

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 3/18

(Classical) LLL

1: Input: Basis B = (b1, b2, ..., br )2: Output: Reduced Basis B3: B∗,M ← GSO(B)4: k ← 25: while k ≤ r do6: Size-reduce(bk , bk−1)7: if Lovasz condition holds on bk , bk−1 then8: Size-reduce(bk , {bj}0≤j≤k−1), update M9: k++

10: else11: swap bk , bk−1, update M12: k := max(2, k − 1)13: end if14: end while

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 4/18

Variants

Rational M: Lenstra, Lenstra, and Lovasz [2]

Floating-point approximation M: Schnorr [4]

“Best” variant: L2 Nguyen and Stehle [3]

(many more)

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 5/18

Quantum LLL Setup

Registers|B〉 Basis representing a superposition of integer lattices

|M(i)〉 transformation M in iteration i s.t.: B = MB∗

|K 〉, |cntl〉 counters, controls

OperationsArithmetic in Q or R, vector operations in Zmisc compare, round, max(x , y), ...

Notationsfunction f (X )uncompute (run circuit backwards) (f (X ))−1

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 6/18

Quantum LLL Setup

Registers|B〉 Basis representing a superposition of integer lattices

|M(i)〉 transformation M in iteration i s.t.: B = MB∗

|K 〉, |cntl〉 counters, controls

OperationsArithmetic in Q or R, vector operations in Zmisc compare, round, max(x , y), ...

Notationsfunction f (X )uncompute (run circuit backwards) (f (X ))−1

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 6/18

Quantum LLL Setup

Registers|B〉 Basis representing a superposition of integer lattices

|M(i)〉 transformation M in iteration i s.t.: B = MB∗

|K 〉, |cntl〉 counters, controls

OperationsArithmetic in Q or R, vector operations in Zmisc compare, round, max(x , y), ...

Notationsfunction f (X )uncompute (run circuit backwards) (f (X ))−1

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 6/18

Quantum LLL

|L〉

|B〉

|M〉

|Lov〉

|K 〉

|ctl1〉

|ctl2〉

|J〉

QG

SO

0≤|K〉≤

r

size-

redu

ce:|b

K〉,|b

K−

1〉

Lova

sz

0≥|J〉≤|K〉−

2

bran

ch:

size-

redu

ce

(0≥|J〉≤|K〉−

2)−

1 +1

0≥|J〉≤|K〉−

2

bran

ch:

swap

(0≥|J〉≤|K〉−

2)−

1 max(2, |K〉 − 1)

|L〉

|B〉

|M〉

|Lov〉

|K 〉

|ctl1〉

|ctl2〉

|J〉

bound(K ) cycles

rank(L) cycles rank(L) cycles

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 7/18

Quantum LLL

|L〉

|B〉

|M〉

|Lov〉

|K 〉

|ctl1〉

|ctl2〉

|J〉

QG

SO

0≤|K〉≤

r

size-

redu

ce:|b

K〉,|b

K−

1〉

Lova

sz

0≥|J〉≤|K〉−

2

bran

ch:

size-

redu

ce

(0≥|J〉≤|K〉−

2)−

1 +1

0≥|J〉≤|K〉−

2

bran

ch:

swap

(0≥|J〉≤|K〉−

2)−

1 max(2, |K〉 − 1)

|L〉

|B〉

|M〉

|Lov〉

|K 〉

|ctl1〉

|ctl2〉

|J〉

bound(K ) cycles

rank(L) cycles rank(L) cycles

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 8/18

Pitfall I: unbounded loops

QuantumApply as often as necessary,but not too often

ClassicalApply operation until loopterminates

Loop k := 2; while(k ≤ r);|K 〉

|cntl1〉

|cntl2〉

|ψ〉

|K〉≥

2

|K〉≤

r

Apply Task

(|K〉≤

r)−

1

(|K〉≥

2)−

1

±1 |K 〉

|cntl1〉

|cntl2〉

|ψ〉

bound(K ) cycles

Quantum: worst-case running time for all (unbounded) loops

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 9/18

Pitfall I: unbounded loopsQuantum

Apply as often as necessary,but not too often

ClassicalApply operation until loopterminates

Loop k := 2; while(k ≤ r);|K 〉

|cntl1〉

|cntl2〉

|ψ〉

|K〉≥

2

|K〉≤

r

Apply Task

(|K〉≤

r)−

1

(|K〉≥

2)−

1

±1 |K 〉

|cntl1〉

|cntl2〉

|ψ〉

bound(K ) cycles

Quantum: worst-case running time for all (unbounded) loops

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 9/18

Pitfall I: unbounded loopsQuantum

Apply as often as necessary,but not too often

ClassicalApply operation until loopterminates

Loop k := 2; while(k ≤ r);|K 〉

|cntl1〉

|cntl2〉

|ψ〉

|K〉≥

2

|K〉≤

r

Apply Task

(|K〉≤

r)−

1

(|K〉≥

2)−

1

±1 |K 〉

|cntl1〉

|cntl2〉

|ψ〉

bound(K ) cycles

Quantum: worst-case running time for all (unbounded) loops

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 9/18

Pitfall I: unbounded loopsQuantum

Apply as often as necessary,but not too often

ClassicalApply operation until loopterminates

Loop k := 2; while(k ≤ r);|K 〉

|cntl1〉

|cntl2〉

|ψ〉

|K〉≥

2

|K〉≤

r

Apply Task

(|K〉≤

r)−

1

(|K〉≥

2)−

1

±1 |K 〉

|cntl1〉

|cntl2〉

|ψ〉

bound(K ) cycles

Quantum: worst-case running time for all (unbounded) loops

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 9/18

Pitfall Part II: size-reduction cleanup

Size reduction: bireduce by bj−−−−−−−→ bi

Update M s.t. B = MB∗

Classical

dmijc ← round(mij)bi ← bi − dmijcbj

mij ← mij − dmijcfree(dmijc), free(bi ), free(mij)

mij , bi can not be recomputed from mij , bij

⇒ information about larger basis is lost

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 10/18

Pitfall Part II: size-reduction cleanup

Size reduction: bireduce by bj−−−−−−−→ bi

Update M s.t. B = MB∗

Classicaldmijc ← round(mij)bi ← bi − dmijcbj

mij ← mij − dmijcfree(dmijc), free(bi ), free(mij)

mij , bi can not be recomputed from mij , bij

⇒ information about larger basis is lost

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 10/18

Pitfall Part II: size-reduction cleanup

Size reduction: bireduce by bj−−−−−−−→ bi

Update M s.t. B = MB∗

Classicaldmijc ← round(mij)bi ← bi − dmijcbj

mij ← mij − dmijcfree(dmijc), free(bi ), free(mij)

mij , bi can not be recomputed from mij , bij

⇒ information about larger basis is lost

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 10/18

Pitfall Part II: size-reduction cleanupQuantum

mij −

d·c dmijc

mij

|mij〉, |bi〉 can not be recomputed from |mij〉, |bij〉⇒ |bi〉, |mij〉 or |dmijc〉 need to be preserved for reversibility

Quantum: need fresh memory in every size-reduction

(similar issues arises from divisions/ preserving the remainder forfp-numbers)

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 11/18

Pitfall Part II: size-reduction cleanupQuantum

mij −

d·c dmijc

mij

|mij〉, |bi〉 can not be recomputed from |mij〉, |bij〉⇒ |bi〉, |mij〉 or |dmijc〉 need to be preserved for reversibility

Quantum: need fresh memory in every size-reduction

(similar issues arises from divisions/ preserving the remainder forfp-numbers)

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 11/18

Impact?

|M(0)〉|0〉...|0〉

|M(0)〉|M(1)〉|0〉...|0〉

size-reduce

|M(0)〉|M(1)〉|M(2)〉|0〉...|0〉

size-reduce

...

size-reduce

|M(0)〉|M(1)〉...|M(bound(K))〉

size-reduce

Size reduction is conditionally applied toall vectors of |M(i)〉Reversible size-reduction:|M(i)〉|B〉|0〉 ⇒ |M(i)〉|B〉|M(i+1)〉

How many qubits does this require?sizeOf(M) qubits for each reductionbound(K) many iterations

→ bound(K) × sizeOf(M)

Bad if bound(K ) is large

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 12/18

Impact?

|M(0)〉|0〉...|0〉

|M(0)〉|M(1)〉|0〉...|0〉

size-reduce

|M(0)〉|M(1)〉|M(2)〉|0〉...|0〉

size-reduce

...

size-reduce

|M(0)〉|M(1)〉...|M(bound(K))〉

size-reduce

Size reduction is conditionally applied toall vectors of |M(i)〉Reversible size-reduction:|M(i)〉|B〉|0〉 ⇒ |M(i)〉|B〉|M(i+1)〉

How many qubits does this require?sizeOf(M) qubits for each reductionbound(K) many iterations

→ bound(K) × sizeOf(M)

Bad if bound(K ) is large

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 12/18

Impact?

|M(0)〉|0〉...|0〉

|M(0)〉|M(1)〉|0〉...|0〉

size-reduce

|M(0)〉|M(1)〉|M(2)〉|0〉...|0〉

size-reduce

...

size-reduce

|M(0)〉|M(1)〉...|M(bound(K))〉

size-reduce

Size reduction is conditionally applied toall vectors of |M(i)〉Reversible size-reduction:|M(i)〉|B〉|0〉 ⇒ |M(i)〉|B〉|M(i+1)〉

How many qubits does this require?sizeOf(M) qubits for each reductionbound(K) many iterations

→ bound(K) × sizeOf(M)

Bad if bound(K ) is large

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 12/18

Impact?

|M(0)〉|0〉...|0〉

|M(0)〉|M(1)〉|0〉...|0〉

size-reduce

|M(0)〉|M(1)〉|M(2)〉|0〉...|0〉

size-reduce

...

size-reduce

|M(0)〉|M(1)〉...|M(bound(K))〉

size-reduce

Size reduction is conditionally applied toall vectors of |M(i)〉Reversible size-reduction:|M(i)〉|B〉|0〉 ⇒ |M(i)〉|B〉|M(i+1)〉

How many qubits does this require?sizeOf(M) qubits for each reductionbound(K) many iterations

→ bound(K) × sizeOf(M)

Bad if bound(K ) is large

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 12/18

Can we do better?|M(0)〉|0〉...|0〉

|M(0)〉|M(1)〉|0〉...|0〉

...

|M(0)〉|M(1)〉...|M(j−2)〉|M(j−1)〉|0〉

|M(0)〉|M(1)〉...|M(j−2)〉|M(j−1)〉|M(j)〉

size-reduce

size-reduce

|M(0)〉|M(1)〉...|M(j−2)〉|0〉|M(j)〉

(size-reduce)−1

|M(0)〉|M(1)〉|0〉...|0|M(j)〉〉

...

|M(0)〉|0〉...|0〉|M(j)〉

(size-reduce)−1(size-reduce)−1

→ Requires at most: j×sizeOf(M) qubits

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 13/18

Can we do better?|M(0)〉|0〉...|0〉

|M(0)〉|M(1)〉|0〉...|0〉

...

|M(0)〉|M(1)〉...|M(j−2)〉|M(j−1)〉|0〉

|M(0)〉|M(1)〉...|M(j−2)〉|M(j−1)〉|M(j)〉

size-reduce

size-reduce

|M(0)〉|M(1)〉...|M(j−2)〉|0〉|M(j)〉

(size-reduce)−1

|M(0)〉|M(1)〉|0〉...|0|M(j)〉〉

...

|M(0)〉|0〉...|0〉|M(j)〉

(size-reduce)−1(size-reduce)−1

→ Requires at most: j×sizeOf(M) qubits

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 13/18

Can we do better?|M(0)〉|0〉...|0〉

|M(0)〉|M(1)〉|0〉...|0〉

...

|M(0)〉|M(1)〉...|M(j−2)〉|M(j−1)〉|0〉

|M(0)〉|M(1)〉...|M(j−2)〉|M(j−1)〉|M(j)〉

size-reduce

size-reduce

|M(0)〉|M(1)〉...|M(j−2)〉|0〉|M(j)〉

(size-reduce)−1

|M(0)〉|M(1)〉|0〉...|0|M(j)〉〉

...

|M(0)〉|0〉...|0〉|M(j)〉

(size-reduce)−1(size-reduce)−1

→ Requires at most: j×sizeOf(M) qubits

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 13/18

Impact?

|M(0)〉

→ |M(0)〉|M(j)〉→ ...

→ |M(0)〉|M(j)〉...|M(bound(K))〉(Optimal for j =

√bound(K ))

Trade-off:(Maximal) number of qubits:

√bound(K )×sizeOf(M)

For # additional iterations: bound(K )

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 14/18

Impact?

|M(0)〉→ |M(0)〉|M(j)〉

→ ...

→ |M(0)〉|M(j)〉...|M(bound(K))〉(Optimal for j =

√bound(K ))

Trade-off:(Maximal) number of qubits:

√bound(K )×sizeOf(M)

For # additional iterations: bound(K )

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 14/18

Impact?

|M(0)〉→ |M(0)〉|M(j)〉→ ...

→ |M(0)〉|M(j)〉...|M(bound(K))〉(Optimal for j =

√bound(K ))

Trade-off:(Maximal) number of qubits:

√bound(K )×sizeOf(M)

For # additional iterations: bound(K )

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 14/18

Impact?

|M(0)〉→ |M(0)〉|M(j)〉→ ...

→ |M(0)〉|M(j)〉...|M(bound(K))〉(Optimal for j =

√bound(K ))

Trade-off:(Maximal) number of qubits:

√bound(K )×sizeOf(M)

For # additional iterations: bound(K )

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 14/18

Resource Estimate

Given basis B := (b1, b2, ..., br ), bi ∈ Zd

(qu)bit-length n in bi

bound(K ) := r2 log B, B := bounds norm of initial basis

#Toffoli #QubitsQLLL O

(2 log B(r3d + r4)

(n2

log n + 2n))

max(d , r) · n

#QubitsM

text-book O(r3d log B(log B) 1

2)

Schnorr O(r2d log B(log B) 1

2)

L2 O(r(log B) 1

2 (1.6d + o(d)))

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 15/18

Resource Estimate

Given basis B := (b1, b2, ..., br ), bi ∈ Zd

(qu)bit-length n in bi

bound(K ) := r2 log B, B := bounds norm of initial basis

#Toffoli #QubitsQLLL O

(2 log B(r3d + r4)

(n2

log n + 2n))

max(d , r) · n

#QubitsM

text-book O(r3d log B(log B) 1

2)

Schnorr O(r2d log B(log B) 1

2)

L2 O(r(log B) 1

2 (1.6d + o(d)))

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 15/18

Resource Estimate

Given basis B := (b1, b2, ..., br ), bi ∈ Zd

(qu)bit-length n in bi

bound(K ) := r2 log B, B := bounds norm of initial basis

#Toffoli #QubitsQLLL O

(2 log B(r3d + r4)

(n2

log n + 2n))

max(d , r) · n

#QubitsM

text-book O(r3d log B(log B) 1

2)

Schnorr O(r2d log B(log B) 1

2)

L2 O(r(log B) 1

2 (1.6d + o(d)))

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 15/18

Application: Groverization of Attackon Mersenne number cryptosystems

ProblemGiven a, b $←− Zp with low Hamming weight , G $←− Zp

Given pk := aG + b = H mod p, Find a, b

(Best) approach due to Beunardeau et al. [1] applies latticereduction after partitioning sparse a, b, such that each partitionrepresents small numbermsb lsb

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 16/18

Application: Groverization of Attackon Mersenne number cryptosystems

ProblemGiven a, b $←− Zp with low Hamming weight , G $←− Zp

Given pk := aG + b = H mod p, Find a, b

(Best) approach due to Beunardeau et al. [1] applies latticereduction after partitioning sparse a, b, such that each partitionrepresents small numbermsb lsb

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 16/18

Resource Estimate of Grover Oracle

Instantiation for 256-bits of security with n = 756839 the QLLLoracle requires:

#Toffoli #Qubitstext-book ≈ 285 ≈ 252

Schnorr ≈ 265 ≈ 244

L2 ≈ 255 ≈ 233

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 17/18

Resource Estimate of Grover Oracle

Instantiation for 256-bits of security with n = 756839 the QLLLoracle requires:

#Toffoli #Qubitstext-book ≈ 285 ≈ 252

Schnorr ≈ 265 ≈ 244

L2 ≈ 255 ≈ 233

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 17/18

Conclusions

Quantum vs.Apply size-reduction andswap conditionally

Average is worst-case,domain knowledge givessignificant improvements!

Split LLL reduction toimprove qubit overheadO(r3d log B(log B) 1

2)

ClassicalApply either size-reductionor swap

Bad worst-case, good(empirical) average time

Marcel Tiepelt, Alan Szepieniec – Quantum LLL 18/18

top related