So What is An Isogeny?

An isogeny (“equal origin”) provides a mapping from one elliptic curve to another. In this way we transform from one curve into another…

Photo by Benjamin Voros on Unsplash

So What is An Isogeny?

An isogeny (“equal origin”) provides a mapping from one elliptic curve to another. In this way we transform from one curve into another. For example, =x³+x maps to y²=x³−4x with the mapping:

The code is [here]:

A sample run [here]:

Finite field: 97

y^2 = x^3 + x (mod 97) y^2 = x^3 - 4x (mod 97)
(1 83) (2 0) Check (2 0)
(5 79) (44 91) Check (44 6)
(8 61) (93 7) Check (93 7)
(11 88) (64 52) Check (64 52)
(12 73) (4 57) Check (4 57)
(19 66) (65 7) Check (65 90)
(20 39) (54 37) Check (54 60)
(22 0) (0 0) Check (0 0)
(23 68) (61 57) Check (61 40)
(25 79) (91 83) Check (91 14)
(30 89) (85 39) Check (85 39)

The check is correct in this case, as (44,91) is the same as (44,6) as we are using (mod 97). This is because we generate two points for every x value (y and -y).

One application area is the post-quantum cryptography method of Supersingular isogeny Diffie–Hellman key exchange (SIDH) and which uses these isogenies to create a shared secret key between Bob and Alice. Basically Bob and Alice start of with the same curve, and then they randomly walk away from the curves. This creates EA (Alice’s curve) and EB (Bob’s curve). Alice then starts a walk from EB, and repeats her random walk, and Bob starts a walk from EA and repeats his random walk, and then eventually meet at a new secret curve (ES). This will be a curve which is only known to them.