Computing endomorphism rings of supersingular elliptic curves is an important
problem in computational number theory, and it is also closely connected to the
security of some of the recently proposed isogeny-based cryptosystems. We give a new
algorithm for computing the endomorphism ring of a supersingular elliptic curve
defined over
that runs, under certain
heuristics, in time
.
The algorithm works by first finding two cycles of a certain form in the supersingular
-isogeny graph
, generating an order
End.
Then all maximal orders containing
are computed, extending work of Voight (2013). The final step is to
determine which of these maximal orders is the endomorphism ring. As
part of the cycle-finding algorithm, we give a lower bound on the set of all
-invariants
that are
adjacent to
in
,
answering a question of Arpin et al. (2019).
We also give a polynomial-time reduction from computing
End to path-finding
in the
-isogeny
graph which is simpler in several ways than previous ones. We show that this reduction
leads to another algorithm for computing endomorphism rings which runs in time
. This
allows us to break the second preimage resistance of a hash function in the family
constructed by Charles, Goren and Lauter.