Quantum algorithms Daniel J. Bernstein University of Illinois at - - PDF document

quantum algorithms daniel j bernstein university of
SMART_READER_LITE
LIVE PREVIEW

Quantum algorithms Daniel J. Bernstein University of Illinois at - - PDF document

1 Quantum algorithms Daniel J. Bernstein University of Illinois at Chicago Quantum algorithm means an algorithm that a quantum computer can run. i.e. a sequence of instructions, where each instruction is in a quantum computers


slide-1
SLIDE 1

1

Quantum algorithms Daniel J. Bernstein University of Illinois at Chicago “Quantum algorithm” means an algorithm that a quantum computer can run. i.e. a sequence of instructions, where each instruction is in a quantum computer’s supported instruction set. How do we know which instructions a quantum computer will support?

slide-2
SLIDE 2

2

Quantum computer type 1 (QC1): stores many “qubits”; can efficiently perform “Hadamard gate”, “T gate”, “controlled NOT gate”. Making these instructions work is the main goal of quantum- computer engineering. Combine these instructions to compute “Toffoli gate”; : : : “Simon’s algorithm”; : : : “Shor’s algorithm”; : : : “Grover’s algorithm”; etc.

slide-3
SLIDE 3

3

Quantum computer type 2 (QC2): stores a simulated universe; efficiently simulates the laws of quantum physics with as much accuracy as desired. This is the original concept of quantum computers introduced by 1982 Feynman “Simulating physics with computers”.

slide-4
SLIDE 4

3

Quantum computer type 2 (QC2): stores a simulated universe; efficiently simulates the laws of quantum physics with as much accuracy as desired. This is the original concept of quantum computers introduced by 1982 Feynman “Simulating physics with computers”. General belief: any QC1 is a QC2. Partial proof: see, e.g., 2011 Jordan–Lee–Preskill “Quantum algorithms for quantum field theories”.

slide-5
SLIDE 5

4

Quantum computer type 3 (QC3): efficiently computes anything that any physical computer can compute efficiently.

slide-6
SLIDE 6

4

Quantum computer type 3 (QC3): efficiently computes anything that any physical computer can compute efficiently. General belief: any QC2 is a QC3. Argument for belief: any physical computer must follow the laws of quantum physics, so a QC2 can efficiently simulate any physical computer.

slide-7
SLIDE 7

4

Quantum computer type 3 (QC3): efficiently computes anything that any physical computer can compute efficiently. General belief: any QC2 is a QC3. Argument for belief: any physical computer must follow the laws of quantum physics, so a QC2 can efficiently simulate any physical computer. General belief: any QC3 is a QC1. Argument for belief: look, we’re building a QC1.

slide-8
SLIDE 8

5

The state of an algorithm Data (“state”) stored in n bits: an element of {0; 1}n, viewed as an element of {0; 1; : : : ; 2n − 1}.

slide-9
SLIDE 9

5

The state of an algorithm Data (“state”) stored in n bits: an element of {0; 1}n, viewed as an element of {0; 1; : : : ; 2n − 1}. State stored in n qubits: a nonzero element of C2n. Retrieving this vector is tough!

slide-10
SLIDE 10

5

The state of an algorithm Data (“state”) stored in n bits: an element of {0; 1}n, viewed as an element of {0; 1; : : : ; 2n − 1}. State stored in n qubits: a nonzero element of C2n. Retrieving this vector is tough! If n qubits have state (a0; a1; : : : ; a2n−1) then measuring the qubits produces an element of {0; 1; : : : ; 2n − 1} and destroys the state. Measurement produces element q with probability |aq|2= P

r |ar|2.

slide-11
SLIDE 11

6

Some examples of 3-qubit states: (1; 0; 0; 0; 0; 0; 0; 0) is “|0” in standard notation. Measurement produces 0.

slide-12
SLIDE 12

6

Some examples of 3-qubit states: (1; 0; 0; 0; 0; 0; 0; 0) is “|0” in standard notation. Measurement produces 0. (0; 0; 0; 0; 0; 0; 1; 0) is “|6” in standard notation. Measurement produces 6.

slide-13
SLIDE 13

6

Some examples of 3-qubit states: (1; 0; 0; 0; 0; 0; 0; 0) is “|0” in standard notation. Measurement produces 0. (0; 0; 0; 0; 0; 0; 1; 0) is “|6” in standard notation. Measurement produces 6. (0; 0; 0; 0; 0; 0; −7i; 0) = −7i|6: Measurement produces 6.

slide-14
SLIDE 14

6

Some examples of 3-qubit states: (1; 0; 0; 0; 0; 0; 0; 0) is “|0” in standard notation. Measurement produces 0. (0; 0; 0; 0; 0; 0; 1; 0) is “|6” in standard notation. Measurement produces 6. (0; 0; 0; 0; 0; 0; −7i; 0) = −7i|6: Measurement produces 6. (0; 0; 4; 0; 0; 0; 8; 0) = 4|2 + 8|6: Measurement produces 2 with probability 20%, 6 with probability 80%.

slide-15
SLIDE 15

7

Fast quantum operations, part 1 (a0; a1; a2; a3; a4; a5; a6; a7) → (a1; a0; a3; a2; a5; a4; a7; a6) is complementing index bit 0, hence “complementing qubit 0”.

slide-16
SLIDE 16

7

Fast quantum operations, part 1 (a0; a1; a2; a3; a4; a5; a6; a7) → (a1; a0; a3; a2; a5; a4; a7; a6) is complementing index bit 0, hence “complementing qubit 0”. (a0; a1; a2; a3; a4; a5; a6; a7) is measured as (q0; q1; q2), representing q = q0 + 2q1 + 4q2, with probability |aq|2= P

r |ar|2.

(a1; a0; a3; a2; a5; a4; a7; a6) is measured as (q0 ⊕ 1; q1; q2), representing q ⊕ 1, with probability |aq|2= P

r |ar|2.

slide-17
SLIDE 17

8

(a0; a1; a2; a3; a4; a5; a6; a7) → (a4; a5; a6; a7; a0; a1; a2; a3) is “complementing qubit 2”: (q0; q1; q2) → (q0; q1; q2 ⊕ 1).

slide-18
SLIDE 18

8

(a0; a1; a2; a3; a4; a5; a6; a7) → (a4; a5; a6; a7; a0; a1; a2; a3) is “complementing qubit 2”: (q0; q1; q2) → (q0; q1; q2 ⊕ 1). (a0; a1; a2; a3; a4; a5; a6; a7) → (a0; a4; a2; a6; a1; a5; a3; a7) is “swapping qubits 0 and 2”: (q0; q1; q2) → (q2; q1; q0).

slide-19
SLIDE 19

8

(a0; a1; a2; a3; a4; a5; a6; a7) → (a4; a5; a6; a7; a0; a1; a2; a3) is “complementing qubit 2”: (q0; q1; q2) → (q0; q1; q2 ⊕ 1). (a0; a1; a2; a3; a4; a5; a6; a7) → (a0; a4; a2; a6; a1; a5; a3; a7) is “swapping qubits 0 and 2”: (q0; q1; q2) → (q2; q1; q0). Complementing qubit 2 = swapping qubits 0 and 2

  • complementing qubit 0
  • swapping qubits 0 and 2.

Similarly: swapping qubits i; j.

slide-20
SLIDE 20

9

(a0; a1; a2; a3; a4; a5; a6; a7) → (a0; a1; a3; a2; a4; a5; a7; a6) is a “reversible XOR gate” = “controlled NOT gate”: (q0; q1; q2) → (q0 ⊕ q1; q1; q2).

slide-21
SLIDE 21

9

(a0; a1; a2; a3; a4; a5; a6; a7) → (a0; a1; a3; a2; a4; a5; a7; a6) is a “reversible XOR gate” = “controlled NOT gate”: (q0; q1; q2) → (q0 ⊕ q1; q1; q2). Example with more qubits: (a0; a1; a2; a3; a4; a5; a6; a7; a8; a9; a10; a11; a12; a13; a14; a15; a16; a17; a18; a19; a20; a21; a22; a23; a24; a25; a26; a27; a28; a29; a30; a31) → (a0; a1; a3; a2; a4; a5; a7; a6; a8; a9; a11; a10; a12; a13; a15; a14; a16; a17; a19; a18; a20; a21; a23; a22; a24; a25; a27; a26; a28; a29; a31; a30).

slide-22
SLIDE 22

10

(a0; a1; a2; a3; a4; a5; a6; a7) → (a0; a1; a2; a3; a4; a5; a7; a6) is a “Toffoli gate” = “controlled controlled NOT gate”: (q0; q1; q2) → (q0 ⊕ q1q2; q1; q2).

slide-23
SLIDE 23

10

(a0; a1; a2; a3; a4; a5; a6; a7) → (a0; a1; a2; a3; a4; a5; a7; a6) is a “Toffoli gate” = “controlled controlled NOT gate”: (q0; q1; q2) → (q0 ⊕ q1q2; q1; q2). Example with more qubits: (a0; a1; a2; a3; a4; a5; a6; a7; a8; a9; a10; a11; a12; a13; a14; a15; a16; a17; a18; a19; a20; a21; a22; a23; a24; a25; a26; a27; a28; a29; a30; a31) → (a0; a1; a2; a3; a4; a5; a7; a6; a8; a9; a10; a11; a12; a13; a15; a14; a16; a17; a18; a19; a20; a21; a23; a22; a24; a25; a26; a27; a28; a29; a31; a30).

slide-24
SLIDE 24

11

Reversible computation Say p is a permutation

  • f {0; 1; : : : ; 2n − 1}.

General strategy to compose these fast quantum operations to obtain index permutation (a0; a1; : : : ; a2n−1) → (ap−1(0); ap−1(1); : : : ; ap−1(2n−1)):

slide-25
SLIDE 25

11

Reversible computation Say p is a permutation

  • f {0; 1; : : : ; 2n − 1}.

General strategy to compose these fast quantum operations to obtain index permutation (a0; a1; : : : ; a2n−1) → (ap−1(0); ap−1(1); : : : ; ap−1(2n−1)):

  • 1. Build a traditional circuit

to compute j → p(j) using NOT/XOR/AND gates.

  • 2. Convert into reversible gates:

e.g., convert AND into Toffoli.

slide-26
SLIDE 26

12

Example: Let’s compute (a0; a1; a2; a3; a4; a5; a6; a7) → (a7; a0; a1; a2; a3; a4; a5; a6); permutation q → q + 1 mod 8.

  • 1. Build a traditional circuit

to compute q → q + 1 mod 8. q0

✷ ✷ ✷ ✷ ✷ ✷ ✷ ✷ ✷ ✷ ✷ ✷ ✷ ✷ ✷ ✷

❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ q1

  • q2
  • c1 = q1q0

❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ ❉ q0 ⊕ 1 q1 ⊕ q0 q2 ⊕ c1

slide-27
SLIDE 27

13

  • 2. Convert into reversible gates.

Toffoli for q2 ← q2 ⊕ q1q0: (a0; a1; a2; a3; a4; a5; a6; a7) → (a0; a1; a2; a7; a4; a5; a6; a3).

slide-28
SLIDE 28

13

  • 2. Convert into reversible gates.

Toffoli for q2 ← q2 ⊕ q1q0: (a0; a1; a2; a3; a4; a5; a6; a7) → (a0; a1; a2; a7; a4; a5; a6; a3). Controlled NOT for q1 ← q1 ⊕ q0: (a0; a1; a2; a7; a4; a5; a6; a3) → (a0; a7; a2; a1; a4; a3; a6; a5).

slide-29
SLIDE 29

13

  • 2. Convert into reversible gates.

Toffoli for q2 ← q2 ⊕ q1q0: (a0; a1; a2; a3; a4; a5; a6; a7) → (a0; a1; a2; a7; a4; a5; a6; a3). Controlled NOT for q1 ← q1 ⊕ q0: (a0; a1; a2; a7; a4; a5; a6; a3) → (a0; a7; a2; a1; a4; a3; a6; a5). NOT for q0 ← q0 ⊕ 1: (a0; a7; a2; a1; a4; a3; a6; a5) → (a7; a0; a1; a2; a3; a4; a5; a6).

slide-30
SLIDE 30

14

This permutation example was deceptively easy. It didn’t need many operations. For large n, most permutations p need many operations ⇒ slow. Really want fast circuits.

slide-31
SLIDE 31

14

This permutation example was deceptively easy. It didn’t need many operations. For large n, most permutations p need many operations ⇒ slow. Really want fast circuits. Also, it didn’t need extra storage: circuit operated “in place” after computation c1 ← q1q0 was merged into q2 ← q2 ⊕ c1. Typical circuits aren’t in-place.

slide-32
SLIDE 32

15

Start from any circuit: inputs b1; b2; : : : ; bi; bi+1 = 1 ⊕ bf (i+1)bg(i+1); bi+2 = 1 ⊕ bf (i+2)bg(i+2); : : : bT = 1 ⊕ bf (T)bg(T); specified outputs.

slide-33
SLIDE 33

15

Start from any circuit: inputs b1; b2; : : : ; bi; bi+1 = 1 ⊕ bf (i+1)bg(i+1); bi+2 = 1 ⊕ bf (i+2)bg(i+2); : : : bT = 1 ⊕ bf (T)bg(T); specified outputs. Reversible but dirty: inputs b1; b2; : : : ; bT ; bi+1 ← 1 ⊕ bi+1 ⊕ bf (i+1)bg(i+1); bi+2 ← 1 ⊕ bi+2 ⊕ bf (i+2)bg(i+2); : : : bT ← 1 ⊕ bT ⊕ bf (T)bg(T). Same outputs if all of bi+1; : : : ; bT started as 0.

slide-34
SLIDE 34

16

Reversible and clean: after finishing dirty computation, set non-outputs back to 0, by repeating same operations

  • n non-outputs in reverse order.

Original computation: (inputs) → (inputs; dirt; outputs). Dirty reversible computation: (inputs; zeros; zeros) → (inputs; dirt; outputs). Clean reversible computation: (inputs; zeros; zeros) → (inputs; zeros; outputs).

slide-35
SLIDE 35

17

Given fast circuit for p and fast circuit for p−1, build fast reversible circuit for (x; zeros) → (p(x); zeros).

slide-36
SLIDE 36

17

Given fast circuit for p and fast circuit for p−1, build fast reversible circuit for (x; zeros) → (p(x); zeros). Replace reversible bit operations with Toffoli gates etc. permuting C2n+z → C2n+z . Permutation on first 2n entries is (a0; a1; : : : ; a2n−1) → (ap−1(0); ap−1(1); : : : ; ap−1(2n−1)). Typically prepare vectors supported on first 2n entries so don’t care how permutation acts on last 2n+z − 2n entries.

slide-37
SLIDE 37

18

Warning: Number of qubits ≈ number of bit operations in original p; p−1 circuits. This can be much larger than number of bits stored in the original circuits.

slide-38
SLIDE 38

18

Warning: Number of qubits ≈ number of bit operations in original p; p−1 circuits. This can be much larger than number of bits stored in the original circuits. Many useful techniques to compress into fewer qubits, but often these lose time. Many subtle tradeoffs.

slide-39
SLIDE 39

18

Warning: Number of qubits ≈ number of bit operations in original p; p−1 circuits. This can be much larger than number of bits stored in the original circuits. Many useful techniques to compress into fewer qubits, but often these lose time. Many subtle tradeoffs. Crude “poly-time” analyses don’t care about this, but serious cryptanalysis is much more precise.

slide-40
SLIDE 40

19

Fast quantum operations, part 2 “Hadamard”: (a0; a1) → (a0 + a1; a0 − a1).

slide-41
SLIDE 41

19

Fast quantum operations, part 2 “Hadamard”: (a0; a1) → (a0 + a1; a0 − a1). (a0; a1; a2; a3) → (a0 + a1; a0 − a1; a2 + a3; a2 − a3).

slide-42
SLIDE 42

19

Fast quantum operations, part 2 “Hadamard”: (a0; a1) → (a0 + a1; a0 − a1). (a0; a1; a2; a3) → (a0 + a1; a0 − a1; a2 + a3; a2 − a3). Same for qubit 1: (a0; a1; a2; a3) → (a0 + a2; a1 + a3; a0 − a2; a1 − a3).

slide-43
SLIDE 43

19

Fast quantum operations, part 2 “Hadamard”: (a0; a1) → (a0 + a1; a0 − a1). (a0; a1; a2; a3) → (a0 + a1; a0 − a1; a2 + a3; a2 − a3). Same for qubit 1: (a0; a1; a2; a3) → (a0 + a2; a1 + a3; a0 − a2; a1 − a3). Qubit 0 and then qubit 1: (a0; a1; a2; a3) → (a0+a1; a0−a1; a2+a3; a2−a3) → (a0 +a1 +a2 +a3; a0 −a1 +a2 −a3, a0 +a1 −a2 −a3; a0 −a1 −a2 +a3).

slide-44
SLIDE 44

20

Repeat n times: e.g., (1; 0; 0; : : : ; 0) → (1; 1; 1; : : : ; 1). Measuring (1; 0; 0; : : : ; 0) always produces 0. Measuring (1; 1; 1; : : : ; 1) can produce any output: Pr[output = q] = 1=2n.

slide-45
SLIDE 45

20

Repeat n times: e.g., (1; 0; 0; : : : ; 0) → (1; 1; 1; : : : ; 1). Measuring (1; 0; 0; : : : ; 0) always produces 0. Measuring (1; 1; 1; : : : ; 1) can produce any output: Pr[output = q] = 1=2n. Aside from “normalization” (irrelevant to measurement), have Hadamard = Hadamard−1, so easily work backwards from “uniform superposition” (1; 1; 1; : : : ; 1) to “pure state” (1; 0; 0; : : : ; 0).

slide-46
SLIDE 46

21

Simon’s algorithm Assume: nonzero s ∈ {0; 1}n satisfies f (x) = f (x ⊕ s) for every x ∈ {0; 1}n. Can we find this period s, given a fast circuit for f ?

slide-47
SLIDE 47

21

Simon’s algorithm Assume: nonzero s ∈ {0; 1}n satisfies f (x) = f (x ⊕ s) for every x ∈ {0; 1}n. Can we find this period s, given a fast circuit for f ? We don’t have enough data if f has many periods. Assume: {periods} = {0; s}.

slide-48
SLIDE 48

21

Simon’s algorithm Assume: nonzero s ∈ {0; 1}n satisfies f (x) = f (x ⊕ s) for every x ∈ {0; 1}n. Can we find this period s, given a fast circuit for f ? We don’t have enough data if f has many periods. Assume: {periods} = {0; s}. Traditional solution: Compute f for many inputs, sort, analyze collisions. Success probability is very low until #inputs approaches 2n=2.

slide-49
SLIDE 49

22

Simon’s algorithm uses far fewer qubit operations if n is large and reversibility overhead is low.

slide-50
SLIDE 50

22

Simon’s algorithm uses far fewer qubit operations if n is large and reversibility overhead is low. Say f maps n bits to m bits using z “ancilla” bits for reversibility. Prepare n + m + z qubits in pure zero state: vector (1; 0; 0; : : :).

slide-51
SLIDE 51

22

Simon’s algorithm uses far fewer qubit operations if n is large and reversibility overhead is low. Say f maps n bits to m bits using z “ancilla” bits for reversibility. Prepare n + m + z qubits in pure zero state: vector (1; 0; 0; : : :). Use n-fold Hadamard to move first n qubits into uniform superposition: (1; 1; 1; : : : ; 1; 0; 0; : : :) with 2n entries 1, others 0.

slide-52
SLIDE 52

23

Apply fast vector permutation for reversible f computation: 1 in position (q; 0; 0) moves to position (q; f (q); 0). Note symmetry between 1 at (q; f (q); 0) and 1 at (q ⊕ s; f (q); 0).

slide-53
SLIDE 53

23

Apply fast vector permutation for reversible f computation: 1 in position (q; 0; 0) moves to position (q; f (q); 0). Note symmetry between 1 at (q; f (q); 0) and 1 at (q ⊕ s; f (q); 0). Apply n-fold Hadamard.

slide-54
SLIDE 54

23

Apply fast vector permutation for reversible f computation: 1 in position (q; 0; 0) moves to position (q; f (q); 0). Note symmetry between 1 at (q; f (q); 0) and 1 at (q ⊕ s; f (q); 0). Apply n-fold Hadamard.

  • Measure. By symmetry,
  • utput is orthogonal to s.
slide-55
SLIDE 55

23

Apply fast vector permutation for reversible f computation: 1 in position (q; 0; 0) moves to position (q; f (q); 0). Note symmetry between 1 at (q; f (q); 0) and 1 at (q ⊕ s; f (q); 0). Apply n-fold Hadamard.

  • Measure. By symmetry,
  • utput is orthogonal to s.

Repeat n + 10 times. Use Gaussian elimination to (probably) find s.

slide-56
SLIDE 56

24

Example, 3 bits to 3 bits: f (0) = 4. f (1) = 7. f (2) = 2. f (3) = 3. f (4) = 7. f (5) = 4. f (6) = 3. f (7) = 2.

slide-57
SLIDE 57

24

Example, 3 bits to 3 bits: f (0) = 4. f (1) = 7. 4 ❁ ❁ 7 ❁ ❁ 2 3 7 ❁ ❁ 4 ❁ ❁ 3 2 f (2) = 2. f (3) = 3. f (4) = 7. f (5) = 4. f (6) = 3. f (7) = 2.

slide-58
SLIDE 58

24

Example, 3 bits to 3 bits: f (0) = 4. f (1) = 7. 4 ❁ ❁ 7 ❁ ❁ 2 3 7 ❁ ❁ 4 ❁ ❁ 3 2 f (2) = 2. f (3) = 3. f (4) = 7. f (5) = 4. f (6) = 3. f (7) = 2. Complete table shows that f (x) = f (x ⊕ 5) for all x. Let’s watch Simon’s algorithm for f , using 6 qubits.

slide-59
SLIDE 59

25

Step 1. Set up pure zero state: 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0:

slide-60
SLIDE 60

25

Step 2. Hadamard on qubit 0: 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0:

slide-61
SLIDE 61

25

Step 3. Hadamard on qubit 1: 1; 1; 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0:

slide-62
SLIDE 62

25

Step 4. Hadamard on qubit 2: 1; 1; 1; 1; 1; 1; 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0:

slide-63
SLIDE 63

25

Step 5. (q; 0) → (q; f (q)): 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 1; 0; 0; 0; 1; 0; 0; 1; 0; 1; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 1; 0; 0; 0:

slide-64
SLIDE 64

25

Step 6. Hadamard on qubit 0: 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 1; 0; 0; 1; 1; 0; 0; 1; 1; 0; 0; 1; 1; 1; 1; 0; 0; 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 1; 0; 0; 1; 1; 0; 0: Notation: 1 = −1.

slide-65
SLIDE 65

25

Step 7. Hadamard on qubit 1: 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 1; 1; 1; 1; 1; 1; 1:

slide-66
SLIDE 66

25

Step 8. Hadamard on qubit 2: 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 2; 0; 2; 0; 0; 2; 0; 2; 2; 0; 2; 0; 0; 2; 0; 2; 2; 0; 2; 0; 0; 2; 0; 2; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 2; 0; 2; 0; 0; 2; 0; 2:

slide-67
SLIDE 67

25

Step 8. Hadamard on qubit 2: 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 2; 0; 2; 0; 0; 2; 0; 2; 2; 0; 2; 0; 0; 2; 0; 2; 2; 0; 2; 0; 0; 2; 0; 2; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 2; 0; 2; 0; 0; 2; 0; 2: Step 9. Measure. First 3 qubits are uniform random vector orthogonal to 101: i.e., 000, 010, 101, or 111.

slide-68
SLIDE 68

26

Grover’s algorithm Assume: unique s ∈ {0; 1}n has f (s) = 0. Traditional algorithm to find s: compute f for many inputs, hope to find output 0. Success probability is very low until #inputs approaches 2n.

slide-69
SLIDE 69

26

Grover’s algorithm Assume: unique s ∈ {0; 1}n has f (s) = 0. Traditional algorithm to find s: compute f for many inputs, hope to find output 0. Success probability is very low until #inputs approaches 2n. Grover’s algorithm takes only 2n=2 reversible computations of f . Typically: reversibility overhead is small enough that this easily beats traditional algorithm.

slide-70
SLIDE 70

27

Start from uniform superposition

  • ver all n-bit strings q.

Step 1: Set a ← b where bq = −aq if f (q) = 0, bq = aq otherwise. This is fast. Step 2: “Grover diffusion”. Negate a around its average. This is also fast. Repeat Step 1 + Step 2 about 0:58 · 20:5n times. Measure the n qubits. With high probability this finds s.

slide-71
SLIDE 71

28

Normalized graph of q → aq for an example with n = 12 after 0 steps:

−1.0 −0.5 0.0 0.5 1.0

slide-72
SLIDE 72

28

Normalized graph of q → aq for an example with n = 12 after Step 1:

−1.0 −0.5 0.0 0.5 1.0

slide-73
SLIDE 73

28

Normalized graph of q → aq for an example with n = 12 after Step 1 + Step 2:

−1.0 −0.5 0.0 0.5 1.0

slide-74
SLIDE 74

28

Normalized graph of q → aq for an example with n = 12 after Step 1 + Step 2 + Step 1:

−1.0 −0.5 0.0 0.5 1.0

slide-75
SLIDE 75

28

Normalized graph of q → aq for an example with n = 12 after 2 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-76
SLIDE 76

28

Normalized graph of q → aq for an example with n = 12 after 3 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-77
SLIDE 77

28

Normalized graph of q → aq for an example with n = 12 after 4 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-78
SLIDE 78

28

Normalized graph of q → aq for an example with n = 12 after 5 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-79
SLIDE 79

28

Normalized graph of q → aq for an example with n = 12 after 6 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-80
SLIDE 80

28

Normalized graph of q → aq for an example with n = 12 after 7 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-81
SLIDE 81

28

Normalized graph of q → aq for an example with n = 12 after 8 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-82
SLIDE 82

28

Normalized graph of q → aq for an example with n = 12 after 9 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-83
SLIDE 83

28

Normalized graph of q → aq for an example with n = 12 after 10 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-84
SLIDE 84

28

Normalized graph of q → aq for an example with n = 12 after 11 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-85
SLIDE 85

28

Normalized graph of q → aq for an example with n = 12 after 12 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-86
SLIDE 86

28

Normalized graph of q → aq for an example with n = 12 after 13 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-87
SLIDE 87

28

Normalized graph of q → aq for an example with n = 12 after 14 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-88
SLIDE 88

28

Normalized graph of q → aq for an example with n = 12 after 15 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-89
SLIDE 89

28

Normalized graph of q → aq for an example with n = 12 after 16 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-90
SLIDE 90

28

Normalized graph of q → aq for an example with n = 12 after 17 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-91
SLIDE 91

28

Normalized graph of q → aq for an example with n = 12 after 18 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-92
SLIDE 92

28

Normalized graph of q → aq for an example with n = 12 after 19 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-93
SLIDE 93

28

Normalized graph of q → aq for an example with n = 12 after 20 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-94
SLIDE 94

28

Normalized graph of q → aq for an example with n = 12 after 25 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-95
SLIDE 95

28

Normalized graph of q → aq for an example with n = 12 after 30 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-96
SLIDE 96

28

Normalized graph of q → aq for an example with n = 12 after 35 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

Good moment to stop, measure.

slide-97
SLIDE 97

28

Normalized graph of q → aq for an example with n = 12 after 40 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-98
SLIDE 98

28

Normalized graph of q → aq for an example with n = 12 after 45 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-99
SLIDE 99

28

Normalized graph of q → aq for an example with n = 12 after 50 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

Traditional stopping point.

slide-100
SLIDE 100

28

Normalized graph of q → aq for an example with n = 12 after 60 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-101
SLIDE 101

28

Normalized graph of q → aq for an example with n = 12 after 70 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-102
SLIDE 102

28

Normalized graph of q → aq for an example with n = 12 after 80 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-103
SLIDE 103

28

Normalized graph of q → aq for an example with n = 12 after 90 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

slide-104
SLIDE 104

28

Normalized graph of q → aq for an example with n = 12 after 100 × (Step 1 + Step 2):

−1.0 −0.5 0.0 0.5 1.0

Very bad stopping point.

slide-105
SLIDE 105

29

q → aq is completely described by a vector of two numbers (with fixed multiplicities): (1) aq for roots q; (2) aq for non-roots q. Step 1 + Step 2 act linearly on this vector. Easily compute eigenvalues and powers of this linear map to understand evolution

  • f state of Grover’s algorithm.

⇒ Probability is ≈1 after ≈(ı=4)20:5n iterations.

slide-106
SLIDE 106

30

Textbook algorithm analysis “WHAT is your algorithm?”

slide-107
SLIDE 107

30

Textbook algorithm analysis “WHAT is your algorithm?” “Heapsort. Here’s the code.”

slide-108
SLIDE 108

30

Textbook algorithm analysis “WHAT is your algorithm?” “Heapsort. Here’s the code.” “WHAT does it accomplish?”

slide-109
SLIDE 109

30

Textbook algorithm analysis “WHAT is your algorithm?” “Heapsort. Here’s the code.” “WHAT does it accomplish?” “It sorts the input array in place. Here’s a proof.”

slide-110
SLIDE 110

30

Textbook algorithm analysis “WHAT is your algorithm?” “Heapsort. Here’s the code.” “WHAT does it accomplish?” “It sorts the input array in place. Here’s a proof.” “WHAT is its run time?”

slide-111
SLIDE 111

30

Textbook algorithm analysis “WHAT is your algorithm?” “Heapsort. Here’s the code.” “WHAT does it accomplish?” “It sorts the input array in place. Here’s a proof.” “WHAT is its run time?” “O(n lg n) comparisons; and Θ(n lg n) comparisons for most inputs. Here’s a proof.”

slide-112
SLIDE 112

30

Textbook algorithm analysis “WHAT is your algorithm?” “Heapsort. Here’s the code.” “WHAT does it accomplish?” “It sorts the input array in place. Here’s a proof.” “WHAT is its run time?” “O(n lg n) comparisons; and Θ(n lg n) comparisons for most inputs. Here’s a proof.” “You may pass.”

slide-113
SLIDE 113

31

Algorithms to attack crypto Critical question for ECC security: How hard is ECDLP?

slide-114
SLIDE 114

31

Algorithms to attack crypto Critical question for ECC security: How hard is ECDLP? Standard estimate for “strong” ECC groups of prime order ‘: Latest “negating” variants of “distinguished point” rho methods break an average ECDLP instance using ≈0:886 √ ‘ additions.

slide-115
SLIDE 115

31

Algorithms to attack crypto Critical question for ECC security: How hard is ECDLP? Standard estimate for “strong” ECC groups of prime order ‘: Latest “negating” variants of “distinguished point” rho methods break an average ECDLP instance using ≈0:886 √ ‘ additions. Is this proven? No! Is this provable? Maybe not!

slide-116
SLIDE 116

31

Algorithms to attack crypto Critical question for ECC security: How hard is ECDLP? Standard estimate for “strong” ECC groups of prime order ‘: Latest “negating” variants of “distinguished point” rho methods break an average ECDLP instance using ≈0:886 √ ‘ additions. Is this proven? No! Is this provable? Maybe not! So why do we think it’s true?

slide-117
SLIDE 117

32

2000 Gallant–Lambert–Vanstone: inadequately specified statement

  • f a negating rho algorithm.
slide-118
SLIDE 118

32

2000 Gallant–Lambert–Vanstone: inadequately specified statement

  • f a negating rho algorithm.

2010 Bos–Kleinjung–Lenstra: a plausible interpretation of that algorithm is non-functional.

slide-119
SLIDE 119

32

2000 Gallant–Lambert–Vanstone: inadequately specified statement

  • f a negating rho algorithm.

2010 Bos–Kleinjung–Lenstra: a plausible interpretation of that algorithm is non-functional. See 2011 Bernstein–Lange– Schwabe for more history and better algorithms.

slide-120
SLIDE 120

32

2000 Gallant–Lambert–Vanstone: inadequately specified statement

  • f a negating rho algorithm.

2010 Bos–Kleinjung–Lenstra: a plausible interpretation of that algorithm is non-functional. See 2011 Bernstein–Lange– Schwabe for more history and better algorithms. Why do we believe that the latest algorithms work at the claimed speeds? Experiments!

slide-121
SLIDE 121

33

Similar story for RSA security: we don’t have proofs for the best factoring algorithms.

slide-122
SLIDE 122

33

Similar story for RSA security: we don’t have proofs for the best factoring algorithms. Code-based cryptography: we don’t have proofs for the best decoding algorithms.

slide-123
SLIDE 123

33

Similar story for RSA security: we don’t have proofs for the best factoring algorithms. Code-based cryptography: we don’t have proofs for the best decoding algorithms. Lattice-based cryptography: we don’t have proofs for the best lattice algorithms.

slide-124
SLIDE 124

33

Similar story for RSA security: we don’t have proofs for the best factoring algorithms. Code-based cryptography: we don’t have proofs for the best decoding algorithms. Lattice-based cryptography: we don’t have proofs for the best lattice algorithms. MQ-based cryptography: we don’t have proofs for the best system-solving algorithms.

slide-125
SLIDE 125

33

Similar story for RSA security: we don’t have proofs for the best factoring algorithms. Code-based cryptography: we don’t have proofs for the best decoding algorithms. Lattice-based cryptography: we don’t have proofs for the best lattice algorithms. MQ-based cryptography: we don’t have proofs for the best system-solving algorithms. Confidence relies on experiments.

slide-126
SLIDE 126

34

Where’s my quantum computer? Quantum-algorithm design is moving beyond textbook stage into algorithms without proofs. Example: subset-sum exponent ≈0:241 from 2013 Bernstein–Jeffery–Lange–Meurer. Don’t expect proofs or provability for the best quantum algorithms to attack post-quantum crypto. How do we obtain confidence in analysis of these algorithms? Quantum experiments are hard.

slide-127
SLIDE 127

35

Where’s my big computer? Analogy: Public hasn’t carried out a 280 NFS RSA-1024 experiment.

slide-128
SLIDE 128

35

Where’s my big computer? Analogy: Public hasn’t carried out a 280 NFS RSA-1024 experiment. But public has carried out 250, 260, 270 NFS experiments. Hopefully not too much extrapolation error for 280.

slide-129
SLIDE 129

35

Where’s my big computer? Analogy: Public hasn’t carried out a 280 NFS RSA-1024 experiment. But public has carried out 250, 260, 270 NFS experiments. Hopefully not too much extrapolation error for 280. Vastly larger extrapolation for the quantum situation. Imagine attacker performing 280 operations on 240 qubits; compare to today’s challenges

  • f 21, 22, 23, 24, 25, 26 qubits.
slide-130
SLIDE 130

36

Simulations 2014.04 Chou → Ambainis: Simulation shows error in proof of 2003 Ambainis distinctness algorithm.

slide-131
SLIDE 131

36

Simulations 2014.04 Chou → Ambainis: Simulation shows error in proof of 2003 Ambainis distinctness algorithm. Ambainis: Yes, thanks, will fix.

slide-132
SLIDE 132

36

Simulations 2014.04 Chou → Ambainis: Simulation shows error in proof of 2003 Ambainis distinctness algorithm. Ambainis: Yes, thanks, will fix. 2014.04 Chou → Childs: Simulation shows that 2003 Childs–Eisenberg distinctness algorithm is non-functional; need to take half angle.

slide-133
SLIDE 133

36

Simulations 2014.04 Chou → Ambainis: Simulation shows error in proof of 2003 Ambainis distinctness algorithm. Ambainis: Yes, thanks, will fix. 2014.04 Chou → Childs: Simulation shows that 2003 Childs–Eisenberg distinctness algorithm is non-functional; need to take half angle. Childs: Yes. Typo, already fixed in 2005 journal version.

slide-134
SLIDE 134

37

Do we know the best attacks? Maybe, maybe not. How many researchers have looked for better attacks?

slide-135
SLIDE 135

37

Do we know the best attacks? Maybe, maybe not. How many researchers have looked for better attacks? Do those researchers have the right experience?

slide-136
SLIDE 136

37

Do we know the best attacks? Maybe, maybe not. How many researchers have looked for better attacks? Do those researchers have the right experience? Did they carefully study all possible avenues of attack?

slide-137
SLIDE 137

37

Do we know the best attacks? Maybe, maybe not. How many researchers have looked for better attacks? Do those researchers have the right experience? Did they carefully study all possible avenues of attack? Is this auditable and audited?

slide-138
SLIDE 138

37

Do we know the best attacks? Maybe, maybe not. How many researchers have looked for better attacks? Do those researchers have the right experience? Did they carefully study all possible avenues of attack? Is this auditable and audited? Real-world security systems cannot avoid these questions.