SLIDE 1 Towards practical key exchange from ordinary isogeny graphs
Luca De Feo 1,3 Jean Kieffer 2,3,4 Benjamin Smith 3
1UVSQ, Université Paris Saclay 2École normale supérieure, Paris 3Inria and École polytechnique, Université Paris Saclay 4Inria and IMB, Université de Bordeaux
December 6, 2018
SLIDE 2
Isogeny-based protocols
Post-quantum candidates for key echange/encapsulation: e.g. SIDH/SIKE. Inspired by earlier ideas of Couveignes and Rostovtsev–Stolbunov: CRS key exchange construction.
SLIDE 3
Isogeny-based protocols
Post-quantum candidates for key echange/encapsulation: e.g. SIDH/SIKE. Inspired by earlier ideas of Couveignes and Rostovtsev–Stolbunov: CRS key exchange construction.
CRS characteristics w.r.t. SIDH Pros Cons
SLIDE 4
Isogeny-based protocols
Post-quantum candidates for key echange/encapsulation: e.g. SIDH/SIKE. Inspired by earlier ideas of Couveignes and Rostovtsev–Stolbunov: CRS key exchange construction.
CRS characteristics w.r.t. SIDH Pros Cons
▸ Very slow (minutes) ▸ Subexponential quantum attack
SLIDE 5
Isogeny-based protocols
Post-quantum candidates for key echange/encapsulation: e.g. SIDH/SIKE. Inspired by earlier ideas of Couveignes and Rostovtsev–Stolbunov: CRS key exchange construction.
CRS characteristics w.r.t. SIDH Pros
▸ Efficient key validation: post-quantum NIKE ▸ More “natural” security hypotheses
Cons
▸ Very slow (minutes) ▸ Subexponential quantum attack
SLIDE 6
Isogeny-based protocols
Post-quantum candidates for key echange/encapsulation: e.g. SIDH/SIKE. Inspired by earlier ideas of Couveignes and Rostovtsev–Stolbunov: CRS key exchange construction.
CRS characteristics w.r.t. SIDH Pros
▸ Efficient key validation: post-quantum NIKE ▸ More “natural” security hypotheses
Cons
▸ Very slow (minutes) ▸ Subexponential quantum attack
Both: small keys.
SLIDE 7
Goals
CRS is worth improving. ▸ Key validation ▸ Security analysis ▸ Pre- and post-quantum parameter proposals ▸ Algorithmic improvements.
SLIDE 8
Introduction The CRS construction Security analysis Algorithmic improvements
SLIDE 9
Cryptography with a group action
Hard Homogeneous Space (Couveignes): (G,X) where ▸ G finite commutative group ▸ G ⟳ X ▸ g ↦ g ⋅ x0 is a 1-to-1 correspondence between G and X. Hardness hypotheses: ▸ Given g and x, computing g ⋅ x is easy ▸ Given x and g ⋅ x, computing g is hard.
SLIDE 10
Cryptography with a group action
Hard Homogeneous Space (Couveignes): (G,X) where ▸ G finite commutative group ▸ G ⟳ X ▸ g ↦ g ⋅ x0 is a 1-to-1 correspondence between G and X. Hardness hypotheses: ▸ Given g and x, computing g ⋅ x is easy ▸ Given x and g ⋅ x, computing g is hard. Alice x0 Bob
SLIDE 11
Cryptography with a group action
Hard Homogeneous Space (Couveignes): (G,X) where ▸ G finite commutative group ▸ G ⟳ X ▸ g ↦ g ⋅ x0 is a 1-to-1 correspondence between G and X. Hardness hypotheses: ▸ Given g and x, computing g ⋅ x is easy ▸ Given x and g ⋅ x, computing g is hard. Alice a ←R G x0 Bob b ←R G
SLIDE 12
Cryptography with a group action
Hard Homogeneous Space (Couveignes): (G,X) where ▸ G finite commutative group ▸ G ⟳ X ▸ g ↦ g ⋅ x0 is a 1-to-1 correspondence between G and X. Hardness hypotheses: ▸ Given g and x, computing g ⋅ x is easy ▸ Given x and g ⋅ x, computing g is hard. Alice a ←R G xa ← a ⋅ x0 x0 xb xa b a Bob b ←R G xb ← b ⋅ x0
SLIDE 13
Cryptography with a group action
Hard Homogeneous Space (Couveignes): (G,X) where ▸ G finite commutative group ▸ G ⟳ X ▸ g ↦ g ⋅ x0 is a 1-to-1 correspondence between G and X. Hardness hypotheses: ▸ Given g and x, computing g ⋅ x is easy ▸ Given x and g ⋅ x, computing g is hard. Alice a ←R G xa ← a ⋅ x0 s ← a ⋅ xb x0 xb xa s b a b a Bob b ←R G xb ← b ⋅ x0 s ← b ⋅ xa
SLIDE 14
Cryptography with a group action (2)
Hardness hypotheses: ▸ Given g and x, computing g ⋅ x is easy
SLIDE 15
Cryptography with a group action (2)
Hardness hypotheses: ▸ Given g and x, if g ∈ S, computing g ⋅ x is easy where S is a small set of generators.
SLIDE 16
Cryptography with a group action (2)
Hardness hypotheses: ▸ Given g and x, if g ∈ S, computing g ⋅ x is easy where S is a small set of generators. The same DH key exchange works: ▸ Sample a ← G directly as a product ∏ski
i , si ∈ S
▸ Compute a ⋅ x as the sequence of actions of si.
SLIDE 17
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
SLIDE 18
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
x0
SLIDE 19
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0
SLIDE 20
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0
SLIDE 21
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0
SLIDE 22
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0
SLIDE 23
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0 xa
SLIDE 24
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0 xa Bob b = s1−2s20s31
SLIDE 25
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0 xa Bob b = s1−2s20s31
SLIDE 26
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0 xa Bob b = s1−2s20s31
SLIDE 27
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0 xa xb Bob b = s1−2s20s31
SLIDE 28
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0 xa xb Bob b = s1−2s20s31
SLIDE 29
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0 xa xb Bob b = s1−2s20s31
SLIDE 30
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0 xa xb Bob b = s1−2s20s31
SLIDE 31
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0 xa xb Bob b = s1−2s20s31
SLIDE 32
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0 xa xb s Bob b = s1−2s20s31
SLIDE 33
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0 xa xb s Bob b = s1−2s20s31
SLIDE 34
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0 xa xb s Bob b = s1−2s20s31
SLIDE 35
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0 xa xb s Bob b = s1−2s20s31
SLIDE 36
The Cayley graph
Computing the group action = walking in the Cayley graph: ▸ V = X ▸ Edge labelled by s ∈ S between x and s ⋅ x. If S = {s1,s2,s3} ∪ {s−1
1 ,s−1 2 ,s−1 3 }:
Alice a = s12s21s3−1 x0 xa xb s Bob b = s1−2s20s31
SLIDE 37
Which HHS could we use?
Where can we find such a (potentially quantum-resistant) Hard Homogeneous Space?
SLIDE 38
Which HHS could we use?
Where can we find such a (potentially quantum-resistant) Hard Homogeneous Space? Use isogenies between ordinary elliptic curves: ▸ X is a set of ordinary elliptic curves ▸ G is an arithmetic group: class group ▸ S is a set of “small” elements in G ▸ Computing s ⋅ E means computing an isogeny. Why ordinary? Supersingular and ordinary isogeny graphs do not have the same structure.
SLIDE 39
Elliptic curves and isogenies
▸ Fq finite field of large char. p and size q ▸ E ordinary elliptic curve (≠ supersingular) over Fq ▸ ℓ small prime.
SLIDE 40
Elliptic curves and isogenies
▸ Fq finite field of large char. p and size q ▸ E ordinary elliptic curve (≠ supersingular) over Fq ▸ ℓ small prime.
ℓ-isogeny
Algebraic morphism φ between two elliptic curves, of degree ℓ: ▸ Given by rational fractions of degree ℓ ▸ ℓ-to-1, in particular #Ker φ = ℓ.
SLIDE 41
Elliptic curves and isogenies
▸ Fq finite field of large char. p and size q ▸ E ordinary elliptic curve (≠ supersingular) over Fq ▸ ℓ small prime.
ℓ-isogeny
Algebraic morphism φ between two elliptic curves, of degree ℓ: ▸ Given by rational fractions of degree ℓ ▸ ℓ-to-1, in particular #Ker φ = ℓ. Endomorphism = isogeny E → E (or 0). Commutative endomorphism ring End(E).
SLIDE 42
Elliptic curves and isogenies
▸ Fq finite field of large char. p and size q ▸ E ordinary elliptic curve (≠ supersingular) over Fq ▸ ℓ small prime.
ℓ-isogeny
Algebraic morphism φ between two elliptic curves, of degree ℓ: ▸ Given by rational fractions of degree ℓ ▸ ℓ-to-1, in particular #Ker φ = ℓ. Endomorphism = isogeny E → E (or 0). Commutative endomorphism ring End(E). Fix O and take X = {E ordinary ell. curve ∣ End(E) = O}.
SLIDE 43
Isogenies/ideals correspondence
E ∈ X, i.e. End(E) = O.
Isogenies from E
ℓ-isogeny φ ∶ E → E ′ Endomorphism α ∶ E → E ← → ← →
Ideals in O
Ideal l of norm ℓ in O = {β vanishing on Ker φ} Principal ideal (α)
SLIDE 44
Isogenies/ideals correspondence
E ∈ X, i.e. End(E) = O.
Isogenies from E
ℓ-isogeny φ ∶ E → E ′ Endomorphism α ∶ E → E ← → ← →
Ideals in O
Ideal l of norm ℓ in O = {β vanishing on Ker φ} Principal ideal (α)
Group action (complex multiplication)
Define l ⋅ E = E ′: codomain of the corresponding ℓ-isogeny.
SLIDE 45
Isogenies/ideals correspondence
E ∈ X, i.e. End(E) = O.
Isogenies from E
ℓ-isogeny φ ∶ E → E ′ Endomorphism α ∶ E → E ← → ← →
Ideals in O
Ideal l of norm ℓ in O = {β vanishing on Ker φ} Principal ideal (α)
Group action (complex multiplication)
Define l ⋅ E = E ′: codomain of the corresponding ℓ-isogeny. ▸ G is the class group of O: ideals modulo principal ideals. ▸ S is a set of ideals with small prime norms ℓi. When ℓi is nice (split), two ideals of norm ℓi: li and l−1
i .
Group action of G on X, which we use as a HHS.
SLIDE 46
Isogeny walks
Computing the group action = walking in the isogeny graph: ▸ Vertices are elliptic curves, ▸ Edges are isogenies labelled per degree ℓi (arrows give the action of li). a = (2,1,−1) represents the ideal a = l12l21l3−1: E0
SLIDE 47
Isogeny walks
Computing the group action = walking in the isogeny graph: ▸ Vertices are elliptic curves, ▸ Edges are isogenies labelled per degree ℓi (arrows give the action of li). a = (2,1,−1) represents the ideal a = l12l21l3−1: E0
SLIDE 48
Isogeny walks
Computing the group action = walking in the isogeny graph: ▸ Vertices are elliptic curves, ▸ Edges are isogenies labelled per degree ℓi (arrows give the action of li). a = (2,1,−1) represents the ideal a = l12l21l3−1: E0
SLIDE 49
Isogeny walks
Computing the group action = walking in the isogeny graph: ▸ Vertices are elliptic curves, ▸ Edges are isogenies labelled per degree ℓi (arrows give the action of li). a = (2,1,−1) represents the ideal a = l12l21l3−1: E0
SLIDE 50
Isogeny walks
Computing the group action = walking in the isogeny graph: ▸ Vertices are elliptic curves, ▸ Edges are isogenies labelled per degree ℓi (arrows give the action of li). a = (2,1,−1) represents the ideal a = l12l21l3−1: E0
SLIDE 51
Isogeny walks
Computing the group action = walking in the isogeny graph: ▸ Vertices are elliptic curves, ▸ Edges are isogenies labelled per degree ℓi (arrows give the action of li). a = (2,1,−1) represents the ideal a = l12l21l3−1: E = a ⋅ E0. E0 E
SLIDE 52
Key validation
E is valid protocol data iff End(E) = O. This can be checked using ▸ a few scalar multiplications on E, ▸ a few small-degree isogenies. Key validation is easy and efficient.
SLIDE 53
Introduction The CRS construction Security analysis Algorithmic improvements
SLIDE 54
Hardness assumptions
Isogeny DH-analogues: ▸ Class Group Action-DDH (CGA-DDH) ▸ CGA-CDH Sampling in G using products of small ideals is a probability distribution σ. ▸ Distinguish σ from the uniform distribution: Isogeny Walk Distinguishing (IWD).
SLIDE 55
Security analysis
Theorem (assuming GRH, IWD, CGA-DDH)
The key exchange protocol is session-key secure in the authenticated-links adversarial model of Canetti–Krawczyk.
Theorem (assuming IWD, CGA-CDH)
The derived hashed ElGamal protocol is IND-CPA secure in the random oracle model. Key validation gives CCA-secure encryption. In contrast, CCA attack against SIKE.PKE (Galbraith et al., AsiaCrypt 2016).
SLIDE 56
Classical security
CGA-DDH
Compute an isogeny between two curves to recover the key. Best classical algorithm: O( √ N) where N = #G ≃ √q. ▸ Choose log2(q) ≃ 4n.
IWD
Heuristic: it is enough to have keyspace size ≥ √q. We cannot prove this even under GRH. ▸ Keyspace size: isogeny degrees ℓi = O(log q).
SLIDE 57
Quantum security
Key recovery is an instance of the Hidden Shift Problem. ▸ Kuperberg’s algorithm solves HShP in subexponential time.
SLIDE 58
Quantum security
Key recovery is an instance of the Hidden Shift Problem. ▸ Kuperberg’s algorithm solves HShP in subexponential time. ▸ This does not mean that CRS is broken. ▸ Estimates on query complexity alone: log2(q) = 688, 1656, 3068 for NIST levels 1, 3, 5.
SLIDE 59
Introduction The CRS construction Security analysis Algorithmic improvements
SLIDE 60
Computing small-degree isogenies
The basic building block of CRS is computing ℓ-isogenies.
SLIDE 61
Computing small-degree isogenies
The basic building block of CRS is computing ℓ-isogenies.
The CRS approach
Use modular equations linking E and E ′. ▸ Find the roots of a degree ℓ + 1 polynomial over Fq.
SLIDE 62
Computing small-degree isogenies
The basic building block of CRS is computing ℓ-isogenies.
The CRS approach
Use modular equations linking E and E ′. ▸ Find the roots of a degree ℓ + 1 polynomial over Fq.
Our contribution
Suppose there is some P ∈ E(Fq) of order ℓ. ▸ Find one such P using a scalar multiplication on E, ▸ Compute the image curve knowing the kernel ⟨P⟩.
SLIDE 63
Computing small-degree isogenies
The basic building block of CRS is computing ℓ-isogenies.
The CRS approach
Use modular equations linking E and E ′. ▸ Find the roots of a degree ℓ + 1 polynomial over Fq.
Our contribution
Suppose there is some P ∈ E(Fq) of order ℓ. ▸ Find one such P using a scalar multiplication on E, ▸ Compute the image curve knowing the kernel ⟨P⟩.
Cost analysis
ℓ-torsion point Modular equation
SLIDE 64
Computing small-degree isogenies
The basic building block of CRS is computing ℓ-isogenies.
The CRS approach
Use modular equations linking E and E ′. ▸ Find the roots of a degree ℓ + 1 polynomial over Fq.
Our contribution
Suppose there is some P ∈ E(Fq) of order ℓ. ▸ Find one such P using a scalar multiplication on E, ▸ Compute the image curve knowing the kernel ⟨P⟩.
Cost analysis
ℓ-torsion point O(log(q) + ℓ) Modular equation
SLIDE 65
Computing small-degree isogenies
The basic building block of CRS is computing ℓ-isogenies.
The CRS approach
Use modular equations linking E and E ′. ▸ Find the roots of a degree ℓ + 1 polynomial over Fq.
Our contribution
Suppose there is some P ∈ E(Fq) of order ℓ. ▸ Find one such P using a scalar multiplication on E, ▸ Compute the image curve knowing the kernel ⟨P⟩.
Cost analysis
ℓ-torsion point O(log(q) + ℓ) Modular equation O(ℓ2 log q)
SLIDE 66
Computing small-degree isogenies
The basic building block of CRS is computing ℓ-isogenies.
The CRS approach
Use modular equations linking E and E ′. ▸ Find the roots of a degree ℓ + 1 polynomial over Fq.
Our contribution
Suppose there is some P ∈ E(Fq) of order ℓ. ▸ Find one such P using a scalar multiplication on E, ▸ Compute the image curve knowing the kernel ⟨P⟩.
Cost analysis
ℓ-torsion point O(log(q) + ℓ)
≪
Modular equation O(ℓ2 log q)
SLIDE 67
The twisting trick
Suppose P ∈ E of order ℓi allows to compute the action of li. Can we also compute efficiently the action of l−1
i ?
SLIDE 68 The twisting trick
Suppose P ∈ E of order ℓi allows to compute the action of li. Can we also compute efficiently the action of l−1
i ?
The twisting trick
Suppose q = −1 mod ℓi. Then E t (quad. twist) also has a point of
▸ We can efficiently compute the action of l−1
i
by twisting back and forth.
SLIDE 69 The twisting trick
Suppose P ∈ E of order ℓi allows to compute the action of li. Can we also compute efficiently the action of l−1
i ?
The twisting trick
Suppose q = −1 mod ℓi. Then E t (quad. twist) also has a point of
▸ We can efficiently compute the action of l−1
i
by twisting back and forth. Why? The Frobenius on E[ℓi] is (1 q), so the Frobenius on E t[ℓi] is (−1 −q) and −q = 1.
SLIDE 70
Finding good initial curves
More small-order points on E0 = more efficient cryptosystem.
SLIDE 71
Finding good initial curves
More small-order points on E0 = more efficient cryptosystem. Only exponential algorithms are known to find ordinary curves with smooth order (no CM method here). We look for E0 using ▸ early-abort point counting ▸ curve selection with modular curves but we cannot use our improvements in full even after 2 years CPU time searching.
SLIDE 72
Best results
512-bit prime q = 7∏ℓi − 1, where the ℓi are all primes ≤ 380. Best E0: #E0(Fq) = 3 ⋅ 5 ⋅ 7 ⋅ 11 ⋅ 13 ⋅ 17 ⋅ 103 ⋅ 523 ⋅ 821 ⋅ R #E t
0(Fq) = (same ≤ 103) ⋅ 947 ⋅ 1723 ⋅ R′
Discriminant ∆ = −23⋅ squarefree.
SLIDE 73
Best results
512-bit prime q = 7∏ℓi − 1, where the ℓi are all primes ≤ 380. Best E0: #E0(Fq) = 3 ⋅ 5 ⋅ 7 ⋅ 11 ⋅ 13 ⋅ 17 ⋅ 103 ⋅ 523 ⋅ 821 ⋅ R #E t
0(Fq) = (same ≤ 103) ⋅ 947 ⋅ 1723 ⋅ R′
Discriminant ∆ = −23⋅ squarefree. Type Isogeny degrees #steps Torsion (Fq) 11: see above 409 Torsion (Fqr ) 13: 19,661 (r = 3), . . . 81 down to 10 General 25: 73,89,... up to 359 6 down to 1 Not enough primes in the first two lines: walk ≃ 520 s.
SLIDE 74
Take away messages
▸ Isogeny graphs can be used to construct post-quantum key exchange protocols, and post-quantum NIKE. ▸ Our improvements speed up CRS considerably, but we cannot use them in full with ordinary curves (not enough torsion points!) See next talk on CSIDH.