Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation...

39
Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith ANTS 2020

Transcript of Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation...

Page 1: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Faster computation of isogenies of largeprime degree.

D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

ANTS 2020

Page 2: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Isogenies between montgomery elliptic curves

For Montgomery curves

E�k : y2 = x3 + Ax2 + x

the cyclic isogeny ϕ of odd prime degree n with kernel G = 〈P〉 is thealgebraic map defined by:

ϕ : E −→ E/G

(x , y) 7−→

(g(x)

h(x), y

(g(x)

h(x)

)′)

where:g(X )

h(X )= (−1)n−1X n

n−1∏i=1

1/X − x([i ]P)

X − x([i ]P)

1

Page 3: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Isogenies between montgomery elliptic curves

For Montgomery curves

E�k : y2 = x3 + Ax2 + x

the cyclic isogeny ϕ of odd prime degree n with kernel G = 〈P〉 is thealgebraic map defined by:

ϕ : E −→ E/G

(x , y) 7−→

(g(x)

h(x), y

(g(x)

h(x)

)′)

where:g(X )

h(X )= (−1)n−1X n

n−1∏i=1

1/X − x([i ]P)

X − x([i ]P)

1

Page 4: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

A summary of the result

Isogeny evaluation problem over a field k

Input: Generator P ∈ E (k) of order n for cyclic kernel G = 〈P〉, apoint Q ∈ E (k).

Output: The codomain E/G and the image point ϕ(Q);

Algo. Complexity: O(√n).

Kernel polynomial Evaluation

Input: A point P ∈ E (k) of order n, a value α ∈ k .

Output: Eval. of kernel polynomial h(α) =n−1∏i=1

(α− x ([i ]P)).

Algo. Complexity: O(√n)

2

Page 5: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

A summary of the result

Isogeny evaluation problem over a field k

Input: Generator P ∈ E (k) of order n for cyclic kernel G = 〈P〉, apoint Q ∈ E (k).

Output: The codomain E/G and the image point ϕ(Q);

Algo. Complexity: O(√n).

Kernel polynomial Evaluation

Input: A point P ∈ E (k) of order n, a value α ∈ k .

Output: Eval. of kernel polynomial h(α) =n−1∏i=1

(α− x ([i ]P)).

Algo. Complexity: O(√n)

2

Page 6: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

A summary of the result

Isogeny evaluation problem over a field k

Input: Generator P ∈ E (k) of order n for cyclic kernel G = 〈P〉, apoint Q ∈ E (k).

Output: The codomain E/G and the image point ϕ(Q);

Algo. Complexity: O(√n).

Kernel polynomial Evaluation

Input: A point P ∈ E (k) of order n, a value α ∈ k .

Output: Eval. of kernel polynomial h(α) =n−1∏i=1

(α− x ([i ]P)).

Algo. Complexity: O(√n)

2

Page 7: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

A summary of the result

Isogeny evaluation problem over a field k

Input: Generator P ∈ E (k) of order n for cyclic kernel G = 〈P〉, apoint Q ∈ E (k).

Output: The codomain E/G and the image point ϕ(Q);

Algo. Complexity: O(√n).

Kernel polynomial Evaluation

Input: A point P ∈ E (k) of order n, a value α ∈ k .

Output: Eval. of kernel polynomial h(α) =n−1∏i=1

(α− x ([i ]P)).

Algo. Complexity: O(√n)

2

Page 8: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Warm-up: the multiplicative group example

Input: An element ζ ∈ k and a value α ∈ k .

Output: The evaluation h(α) =n−1∏i=0

(α− ζ i )

Algo. Complexity: O(√n)

Eval. ons−1∏i=0

s−1∏j=0

(α− ζ iζs·j) in BSGS

fashion with resultants (n = s2).

1. B(Y ) =s−1∏i=0

(Y − ζ i ).

2. G (Y ) =s−1∏j=0

(α− Y · ζ j·s).

3. h(α) = ResY (B,G ).

Pollard ’74: Original idea.

Chudnovsky2 ’88: n-th term of aholonomic sequence.

...

Bostan ’20: n-th term of aq-holonomicsequence.

3

Page 9: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Warm-up: the multiplicative group example

Input: An element ζ ∈ k and a value α ∈ k .

Output: The evaluation h(α) =n−1∏i=0

(α− ζ i )

Algo. Complexity: O(√n)

Eval. ons−1∏i=0

s−1∏j=0

(α− ζ iζs·j) in BSGS

fashion with resultants (n = s2).

1. B(Y ) =s−1∏i=0

(Y − ζ i ).

2. G (Y ) =s−1∏j=0

(α− Y · ζ j·s).

3. h(α) = ResY (B,G ).

Pollard ’74: Original idea.

Chudnovsky2 ’88: n-th term of aholonomic sequence.

...

Bostan ’20: n-th term of aq-holonomicsequence.

3

Page 10: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Warm-up: the multiplicative group example

Input: An element ζ ∈ k and a value α ∈ k .

Output: The evaluation h(α) =n−1∏i=0

(α− ζ i )

Algo. Complexity: O(√n)

Eval. ons−1∏i=0

s−1∏j=0

(α− ζ iζs·j) in BSGS

fashion with resultants (n = s2).

1. B(Y ) =s−1∏i=0

(Y − ζ i ).

2. G (Y ) =s−1∏j=0

(α− Y · ζ j·s).

3. h(α) = ResY (B,G ).

Pollard ’74: Original idea.

Chudnovsky2 ’88: n-th term of aholonomic sequence.

...

Bostan ’20: n-th term of aq-holonomicsequence.

3

Page 11: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Warm-up: the multiplicative group example

Input: An element ζ ∈ k and a value α ∈ k .

Output: The evaluation h(α) =n−1∏i=0

(α− ζ i )

Algo. Complexity: O(√n)

Eval. ons−1∏i=0

s−1∏j=0

(α− ζ iζs·j) in BSGS

fashion with resultants (n = s2).

1. B(Y ) =s−1∏i=0

(Y − ζ i ).

2. G (Y ) =s−1∏j=0

(α− Y · ζ j·s).

3. h(α) = ResY (B,G ).

Pollard ’74: Original idea.

Chudnovsky2 ’88: n-th term of aholonomic sequence.

...

Bostan ’20: n-th term of aq-holonomicsequence.

3

Page 12: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Warm-up: the multiplicative group example

Input: An element ζ ∈ k and a value α ∈ k .

Output: The evaluation h(α) =n−1∏i=0

(α− ζ i )

Algo. Complexity: O(√n)

Eval. ons−1∏i=0

s−1∏j=0

(α− ζ iζs·j) in BSGS

fashion with resultants (n = s2).

1. B(Y ) =s−1∏i=0

(Y − ζ i ).

2. G (Y ) =s−1∏j=0

(α− Y · ζ j·s).

3. h(α) = ResY (B,G ).

Pollard ’74: Original idea.

Chudnovsky2 ’88: n-th term of aholonomic sequence.

...

Bostan ’20: n-th term of aq-holonomicsequence.

3

Page 13: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Warm-up: the multiplicative group example

Input: An element ζ ∈ k and a value α ∈ k .

Output: The evaluation h(α) =n−1∏i=0

(α− ζ i )

Algo. Complexity: O(√n)

Eval. ons−1∏i=0

s−1∏j=0

(α− ζ iζs·j) in BSGS

fashion with resultants (n = s2).

1. B(Y ) =s−1∏i=0

(Y − ζ i ).

2. G (Y ) =s−1∏j=0

(α− Y · ζ j·s).

3. h(α) = ResY (B,G ).

Pollard ’74: Original idea.

Chudnovsky2 ’88: n-th term of aholonomic sequence.

...

Bostan ’20: n-th term of aq-holonomicsequence.

3

Page 14: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Warm-up: the multiplicative group example

Input: An element ζ ∈ k and a value α ∈ k .

Output: The evaluation h(α) =n−1∏i=0

(α− ζ i )

Algo. Complexity: O(√n)

Eval. ons−1∏i=0

s−1∏j=0

(α− ζ iζs·j)m−1∏k=0

(α− ζn+k) in BSGS fashion with

resultants (n = s2+m and m = O(√n)).

1. B(Y ) =s−1∏i=0

(Y − ζ i ).

2. G (Y ) =s−1∏j=0

(α− Y · ζ j·s).

3. h(α) = ResY (B,G )∏m−1

k=0 (α− ζn+k).

3

Page 15: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Warm-up: the multiplicative group example

Input: An element ζ ∈ k and a value α ∈ k .

Output: The evaluation h(α) =n−1∏i=0

(α− ζ i )

Algo. Complexity: O(√n)

Eval. ons−1∏i=0

s−1∏j=0

(α− ζ iζs·j)m−1∏k=0

(α− ζn+k) in BSGS fashion with

resultants (n = s2+m and m = O(√n)).

1. B(Y ) =s−1∏i=0

(Y − ζ i ).

2. G (Y ) =s−1∏j=0

(α− Y · ζ j·s).

3. h(α) = ResY (B,G )∏m−1

k=0 (α− ζn+k).

3

Page 16: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Warm-up: the multiplicative group example

Input: An element ζ ∈ k and a value α ∈ k .

Output: The evaluation h(α) =n−1∏i=0

(α− ζ i )

Algo. Complexity: O(√n)

Eval. ons−1∏i=0

s−1∏j=0

(α− ζ iζs·j)m−1∏k=0

(α− ζn+k) in BSGS fashion with

resultants (n = s2+m and m = O(√n)).

1. B(Y ) =s−1∏i=0

(Y − ζ i ).

2. G (Y ) =s−1∏j=0

(α− Y · ζ j·s).

3. h(α) = ResY (B,G )∏m−1

k=0 (α− ζn+k).

3

Page 17: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Warm-up: the multiplicative group example

Input: An element ζ ∈ k and a value α ∈ k .

Output: The evaluation h(α) =n−1∏i=0

(α− ζ i )

Algo. Complexity: O(√n)

Eval. ons−1∏i=0

s−1∏j=0

(α− ζ iζs·j)m−1∏k=0

(α− ζn+k) in BSGS fashion with

resultants (n = s2+m and m = O(√n)).

1. B(Y ) =s−1∏i=0

(Y − ζ i ).

2. G (Y ) =s−1∏j=0

(α− Y · ζ j·s).

3. h(α) = ResY (B,G )∏m−1

k=0 (α− ζn+k).

3

Page 18: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Can we do the same?

Input: A point P ∈ E (k) of order n, a value α ∈ k .

Output: Eval. of kernel polynomial h(α) =n−1∏i=1

(α− x ([i ]P)).

Algo. Complexity: ?

We used the progression

ζ i , ζs·j 7→ ζ i · ζs·j = ζ i+s·j

Problem: No formula for x([i ]P), x([s · j ]P) 7→ x([i + s · j ]P);Solution: But Biquadratic expressions for

x([i ]P), x([j · s]P) 7→

{x([i + s · j ]P) · x([i − s · j ]P)x([i + s · j ]P) + x([i − s · j ]P)

BSGS eval. to h(α) =∏i∈I

∏j∈J

(α− x([i + s · j ]P))(α− x([i − s · j ]P))

4

Page 19: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Can we do the same?

Input: A point P ∈ E (k) of order n, a value α ∈ k .

Output: Eval. of kernel polynomial h(α) =n−1∏i=1

(α− x ([i ]P)).

Algo. Complexity: ?

We used the progression

ζ i , ζs·j 7→ ζ i · ζs·j = ζ i+s·j

Problem: No formula for x([i ]P), x([s · j ]P) 7→ x([i + s · j ]P);Solution: But Biquadratic expressions for

x([i ]P), x([j · s]P) 7→

{x([i + s · j ]P) · x([i − s · j ]P)x([i + s · j ]P) + x([i − s · j ]P)

BSGS eval. to h(α) =∏i∈I

∏j∈J

(α− x([i + s · j ]P))(α− x([i − s · j ]P))

4

Page 20: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Can we do the same?

Input: A point P ∈ E (k) of order n, a value α ∈ k .

Output: Eval. of kernel polynomial h(α) =n−1∏i=1

(α− x ([i ]P)).

Algo. Complexity: ?

We used the progression

ζ i , ζs·j 7→ ζ i · ζs·j = ζ i+s·j

Problem: No formula for x([i ]P), x([s · j ]P) 7→ x([i + s · j ]P);

Solution: But Biquadratic expressions for

x([i ]P), x([j · s]P) 7→

{x([i + s · j ]P) · x([i − s · j ]P)x([i + s · j ]P) + x([i − s · j ]P)

BSGS eval. to h(α) =∏i∈I

∏j∈J

(α− x([i + s · j ]P))(α− x([i − s · j ]P))

4

Page 21: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Can we do the same?

Input: A point P ∈ E (k) of order n, a value α ∈ k .

Output: Eval. of kernel polynomial h(α) =n−1∏i=1

(α− x ([i ]P)).

Algo. Complexity: ?

We used the progression

ζ i , ζs·j 7→ ζ i · ζs·j = ζ i+s·j

Problem: No formula for x([i ]P), x([s · j ]P) 7→ x([i + s · j ]P);Solution: But Biquadratic expressions for

x([i ]P), x([j · s]P) 7→

{x([i + s · j ]P) · x([i − s · j ]P)x([i + s · j ]P) + x([i − s · j ]P)

BSGS eval. to h(α) =∏i∈I

∏j∈J

(α− x([i + s · j ]P))(α− x([i − s · j ]P))

4

Page 22: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Can we do the same?

Input: A point P ∈ E (k) of order n, a value α ∈ k .

Output: Eval. of kernel polynomial h(α) =n−1∏i=1

(α− x ([i ]P)).

Algo. Complexity: ?

We used the progression

ζ i , ζs·j 7→ ζ i · ζs·j = ζ i+s·j

Problem: No formula for x([i ]P), x([s · j ]P) 7→ x([i + s · j ]P);Solution: But Biquadratic expressions for

x([i ]P), x([j · s]P) 7→

{x([i + s · j ]P) · x([i − s · j ]P)x([i + s · j ]P) + x([i − s · j ]P)

BSGS eval. to h(α) =∏i∈I

∏j∈J

(α− x([i + s · j ]P))(α− x([i − s · j ]P))

4

Page 23: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Can we do the same?

Input: A point P ∈ E (k) of order n, a value α ∈ k .

Output: Eval. of kernel polynomial h(α) =n−1∏i=1

(α− x ([i ]P)).

Algo. Complexity: O(√n).

We used the progression

ζ i , ζs·j 7→ ζ i · ζs·j = ζ i+s·j

Problem: No formula for x([i ]P), x([s · j ]P) 7→ x([i + s · j ]P);Solution: But Biquadratic expressions for

x([i ]P), x([j · s]P) 7→

{x([i + s · j ]P) · x([i − s · j ]P)x([i + s · j ]P) + x([i − s · j ]P)

BSGS eval. to h(α) =∏i∈I

∏j∈J

(α− x([i + s · j ]P))(α− x([i − s · j ]P))4

Page 24: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Biquadratic expressions

The group law on the elliptic curve gives:

(X−x(P⊕Q))(X−x(PQ)) = X 2+F1(x(P), x(Q))

F0(x(P), x(Q))X+

F2(x(P), x(Q))

F0(x(P), x(Q))

where

F0(X ,Y ) = (X − Y )2

F1(X ,Y ) = − 2((XY + 1)(X + Y ) + 2AXY )

F2(X ,Y ) = (XY − 1)2

5

Page 25: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Biquadratic expressions

The group law on the elliptic curve gives:

(X−x(P⊕Q))(X−x(PQ)) = X 2+F1(x(P), x(Q))

F0(x(P), x(Q))X+

F2(x(P), x(Q))

F0(x(P), x(Q))

where

F0(X ,Y ) = (X − Y )2

F1(X ,Y ) = − 2((XY + 1)(X + Y ) + 2AXY )

F2(X ,Y ) = (XY − 1)2

5

Page 26: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Rewriting the kernel polynomial

h(α) =∏i∈I

∏j∈J

(α− x([i + s · j ]P))(α− x([i − s · j ]P))

=∏i∈I

∏j∈J

α2F0(x([i ]P), x [s · j ]P) + αF1(x([i ]P), x [s · j ]P) + F2(x([i ]P), x [s · j ]P)F0(x([i ]P), x [s · j ]P)

1. B(Y ) =∏i∈I

(Y − x([i ]P))

2. G1(Y ) =∏j∈J

(F0(Y , x([j · s]P))

3. G2(Y ) =∏j∈J

∏(α2F0(Y , x [s · j ]P) + αF1(Y , x [s · j ]P) + F2(Y , x [s · j ]P))

4. h(α) = ResY (B,G2)/ResY (B,G1)

6

Page 27: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Rewriting the kernel polynomial

h(α) =∏i∈I

∏j∈J

(α− x([i + s · j ]P))(α− x([i − s · j ]P))

=∏i∈I

∏j∈J

α2F0(x([i ]P), x [s · j ]P) + αF1(x([i ]P), x [s · j ]P) + F2(x([i ]P), x [s · j ]P)F0(x([i ]P), x [s · j ]P)

1. B(Y ) =∏i∈I

(Y − x([i ]P))

2. G1(Y ) =∏j∈J

(F0(Y , x([j · s]P))

3. G2(Y ) =∏j∈J

∏(α2F0(Y , x [s · j ]P) + αF1(Y , x [s · j ]P) + F2(Y , x [s · j ]P))

4. h(α) = ResY (B,G2)/ResY (B,G1)

6

Page 28: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Rewriting the kernel polynomial

h(α) =∏i∈I

∏j∈J

(α− x([i + s · j ]P))(α− x([i − s · j ]P))

=∏i∈I

∏j∈J

α2F0(x([i ]P), x [s · j ]P) + αF1(x([i ]P), x [s · j ]P) + F2(x([i ]P), x [s · j ]P)F0(x([i ]P), x [s · j ]P)

1. B(Y ) =∏i∈I

(Y − x([i ]P))

2. G1(Y ) =∏j∈J

(F0(Y , x([j · s]P))

3. G2(Y ) =∏j∈J

∏(α2F0(Y , x [s · j ]P) + αF1(Y , x [s · j ]P) + F2(Y , x [s · j ]P))

4. h(α) = ResY (B,G2)/ResY (B,G1)

6

Page 29: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Rewriting the kernel polynomial

h(α) =∏i∈I

∏j∈J

(α− x([i + s · j ]P))(α− x([i − s · j ]P))

=∏i∈I

∏j∈J

α2F0(x([i ]P), x [s · j ]P) + αF1(x([i ]P), x [s · j ]P) + F2(x([i ]P), x [s · j ]P)F0(x([i ]P), x [s · j ]P)

1. B(Y ) =∏i∈I

(Y − x([i ]P))

2. G1(Y ) =∏j∈J

(F0(Y , x([j · s]P))

3. G2(Y ) =∏j∈J

∏(α2F0(Y , x [s · j ]P) + αF1(Y , x [s · j ]P) + F2(Y , x [s · j ]P))

4. h(α) = ResY (B,G2)/ResY (B,G1)

6

Page 30: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Rewriting the kernel polynomial

h(α) =∏i∈I

∏j∈J

(α− x([i + s · j ]P))(α− x([i − s · j ]P))

=∏i∈I

∏j∈J

α2F0(x([i ]P), x [s · j ]P) + αF1(x([i ]P), x [s · j ]P) + F2(x([i ]P), x [s · j ]P)F0(x([i ]P), x [s · j ]P)

1. B(Y ) =∏i∈I

(Y − x([i ]P))

2. G1(Y ) =∏j∈J

(F0(Y , x([j · s]P))

3. G2(Y ) =∏j∈J

∏(α2F0(Y , x [s · j ]P) + αF1(Y , x [s · j ]P) + F2(Y , x [s · j ]P))

4. h(α) = ResY (B,G2)/ResY (B,G1)

6

Page 31: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Rewriting the kernel polynomial

h(α) =∏i∈I

∏j∈J

(α− x([i + s · j ]P))(α− x([i − s · j ]P))

=∏i∈I

∏j∈J

α2F0(x([i ]P), x [s · j ]P) + αF1(x([i ]P), x [s · j ]P) + F2(x([i ]P), x [s · j ]P)F0(x([i ]P), x [s · j ]P)

1. B(Y ) =∏i∈I

(Y − x([i ]P))

2. G1(Y ) =∏j∈J

(F0(Y , x([j · s]P))

3. G2(Y ) =∏j∈J

∏(α2F0(Y , x [s · j ]P) + αF1(Y , x [s · j ]P) + F2(Y , x [s · j ]P))

4. h(α) = ResY (B,G2)/ResY (B,G1)

6

Page 32: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Questions?https://velusqrt.isogeny.org

6

Page 33: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Concrete Performances (small degrees)

Performance of new vs. old algorithm. Time to eval. an isogeny.

3 5 7 11 13 1719

23 2931

374143

4753

59

616771

7379

83

8997101103107

109

113

127131137

139

149151157

163167173

179

181

191193

197

199

211223

227

229

233

239

241251257

263

269

271277281

283

293

307311

313

317331

337

347

349353

359

367

373 587

6.1825.5395.0504.635

3.898

1628.0331498.000

1266.319

13935.714

10908.9239881.238

8294.1297523.2096735.2175941.3885432.8574995.6164565.2534085.535

3440.992

x-axis: isogeny degree n,y -axis (divided by n + 2):

Top: Cycle counts of pureC implem. on Flint.

Middle: Cycle counts ofassembly optim.implem. based onoriginal CSIDH-512.

Bottom: Fp mul. counts of theassembly optim.implem.

7

Page 34: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Concrete Performances (large degree)

5 11 17 37 67 131 257 521 1031 2053 4099 8209 16411

45532.80039192.323

29822.295

23436.462

17401.37414927.25312625.372

10036.826

7999.829

6055.518

4871.581

3622.4592998.128

2238.375

Performance comparison of new vs. old algorithm in a Julia/Nemoimplementation on a 256-bits base field.x-axis: isogeny degree. y -axis: cycle counts.

8

Page 35: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Application to isogeny-based cryptography

Performance cross point is currently around n ≈ 100

Concrete improvements for:

CSIDH (Castryck, Lange, Martindale, Panny, Renes ’18): n ≤ 5871 % improvement for CSIDH-512 (10 % for CSIDH-1024).

B-SIDH (Costello ’19): n in the millions.First secure implementation: from minutes to seconds forkey exchange.

others: Galbraith, Petit, Silva ’17,Delpech de Saint Guilhem, Kutas, Petit, Silva ’19,. . . (to be assessed).

9

Page 36: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Application to isogeny-based cryptography

Performance cross point is currently around n ≈ 100Concrete improvements for:

CSIDH (Castryck, Lange, Martindale, Panny, Renes ’18): n ≤ 5871 % improvement for CSIDH-512 (10 % for CSIDH-1024).

B-SIDH (Costello ’19): n in the millions.First secure implementation: from minutes to seconds forkey exchange.

others: Galbraith, Petit, Silva ’17,Delpech de Saint Guilhem, Kutas, Petit, Silva ’19,. . . (to be assessed).

9

Page 37: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Application to isogeny-based cryptography

Performance cross point is currently around n ≈ 100Concrete improvements for:

CSIDH (Castryck, Lange, Martindale, Panny, Renes ’18): n ≤ 5871 % improvement for CSIDH-512 (10 % for CSIDH-1024).

B-SIDH (Costello ’19): n in the millions.First secure implementation: from minutes to seconds forkey exchange.

others: Galbraith, Petit, Silva ’17,Delpech de Saint Guilhem, Kutas, Petit, Silva ’19,. . . (to be assessed).

9

Page 38: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Application to isogeny-based cryptography

Performance cross point is currently around n ≈ 100Concrete improvements for:

CSIDH (Castryck, Lange, Martindale, Panny, Renes ’18): n ≤ 5871 % improvement for CSIDH-512 (10 % for CSIDH-1024).

B-SIDH (Costello ’19): n in the millions.First secure implementation: from minutes to seconds forkey exchange.

others: Galbraith, Petit, Silva ’17,Delpech de Saint Guilhem, Kutas, Petit, Silva ’19,. . . (to be assessed).

9

Page 39: Faster computation of isogenies of large prime degree.drew/ANTSXIV/Faster... · Faster computation of isogenies of large prime degree. D. J. Bernstein, L. De Feo, A. Leroux, B. Smith

Application to isogeny-based cryptography

Performance cross point is currently around n ≈ 100Concrete improvements for:

CSIDH (Castryck, Lange, Martindale, Panny, Renes ’18): n ≤ 5871 % improvement for CSIDH-512 (10 % for CSIDH-1024).

B-SIDH (Costello ’19): n in the millions.First secure implementation: from minutes to seconds forkey exchange.

others: Galbraith, Petit, Silva ’17,Delpech de Saint Guilhem, Kutas, Petit, Silva ’19,. . . (to be assessed).

9