Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sparse strategies for composite elliptic-curve isogenies #34239

Closed
yyyyx4 opened this issue Jul 29, 2022 · 9 comments · Fixed by #34965
Closed

sparse strategies for composite elliptic-curve isogenies #34239

yyyyx4 opened this issue Jul 29, 2022 · 9 comments · Fixed by #34965

Comments

@yyyyx4
Copy link
Member

yyyyx4 commented Jul 29, 2022

Some cryptographic applications (most prominently, https://sike.org/) rely on computing isogenies of huge prime-power degrees quickly. The current algorithm used for this in Sage (since #32744) is quadratic in the number of prime-degree steps. It is known from the SIKE literature how to do better, replacing quadratic by quasilinear scaling.

This patch implements a simple version of the quasilinear algorithm. I haven't found any example where the change incurs a noticeable slowdown, while (as shown below) there can be quite significant speedups.

Example:

sage: F = GF((2^216*3^137-1, 2))
sage: E.<P,Q> = EllipticCurve(F, [1,0])
sage: %timeit E.isogeny(P, algorithm="factored")

Sage 9.7.beta6:

2.19 s ± 341 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

This branch:

1.04 s ± 13.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

CC: @defeo @JohnCremona @categorie

Component: elliptic curves

Author: Lorenz Panny

Issue created by migration from https://trac.sagemath.org/ticket/34239

@yyyyx4 yyyyx4 added this to the sage-9.7 milestone Jul 29, 2022
@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 29, 2022

Changed commit from 09b8349 to 8dd58b7

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Jul 29, 2022

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

8dd58b7implement sparse strategy for prime-power isogenies

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 31, 2022

Changed commit from 8dd58b7 to 9012a31

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 31, 2022

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

9012a31implement sparse strategy for prime-power isogenies

@mkoeppe mkoeppe modified the milestones: sage-9.7, sage-9.8 Sep 19, 2022
@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2022

Branch pushed to git repo; I updated commit sha1. New commits:

ac57648Merge tag '9.8.beta2' into public/sparse_strategies_for_composite_elliptic_curve_isogenies

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Oct 17, 2022

Changed commit from 9012a31 to ac57648

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 8, 2022

Branch pushed to git repo; I updated commit sha1. New commits:

f657363Merge tag '9.8.beta3' into public/sparse_strategies_for_composite_elliptic_curve_isogenies

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 8, 2022

Changed commit from ac57648 to f657363

@mkoeppe
Copy link
Contributor

mkoeppe commented Feb 12, 2023

Removed branch from the issue description because it has been replaced by PR #34965

@vbraun vbraun closed this as completed in 43d4f83 Jun 3, 2023
@mkoeppe mkoeppe added this to the sage-10.1 milestone Jun 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants