Isogenies Do Not Require Continuity
Introduction
One of the most common misunderstandings in elliptic curve cryptography (and even in academic discussions) is that curve points must be continuous for isogeny maps to work. This intuition comes from pictures of elliptic curves over the reals (smooth looping curves) and from the analytic definition of isogenies over the complex numbers, where they are holomorphic maps between tori.
In reality, all modern cryptography (and ECAI’s deterministic encoding) uses elliptic curves over finite fields. In this setting:
- The curve is not a continuous geometric object.
- It is simply a finite set of discrete points \((x,y)\) satisfying \(y^2 \equiv x^3 + ax + b \pmod p\).
- There is no topology and thus no notion of continuity.
What Actually Matters
An isogeny between elliptic curves is not about continuity at all. It is:
- A non-constant rational map between elliptic curves
- That also preserves the group law: \[ \varphi(P + Q) = \varphi(P) + \varphi(Q). \]
That is the defining property. Structure preservation, not continuity.
Example: Multiplication-by-m Map
The simplest example of an isogeny is the multiplication-by-\(m\) map: \[ \varphi = [m]: P \mapsto mP. \]
- This isogeny has degree \(m^2\).
- It is defined entirely in terms of the elliptic curve group law.
- It requires no continuity, only algebra.
Python Demo
To illustrate this concretely, here’s a minimal Python demo. It defines a finite-field elliptic curve \(E: y^2 = x^3 + 2x + 3 \pmod{101}\), implements group operations, and verifies that \(\varphi = [3]\) is an isogeny.
from dataclasses import dataclass import random p, a, b = 101, 2, 3 @dataclass(frozen=True) class ECPoint: x: int; y: int; infinity: bool=False O = ECPoint(None,None,True) def inv_mod(x): return pow(x,p-2,p) def ec_add(P,Q): if P.infinity: return Q if Q.infinity: return P if P.x == Q.x and (P.y != Q.y or P.y==0): return O if P.x == Q.x and P.y == Q.y: s=(3*P.x*P.x+a)*inv_mod(2*P.y%p)%p else: s=((Q.y-P.y)%p)*inv_mod((Q.x-P.x)%p,p)%p x_r=(s*s-P.x-Q.x)%p; y_r=(s*(P.x-x_r)-P.y)%p return ECPoint(x_r,y_r) def ec_mul(k,P): R,O=O,O;Q=P while k>0: if k&1: R=ec_add(R,Q) Q=ec_add(Q,Q); k>>=1 return R points=[] for x in range(p): rhs=(x**3+a*x+b)%p for y in range(p): if (y*y)%p==rhs: points.append(ECPoint(x,y)) phi=lambda P: ec_mul(3,P) ok=0 for _ in range(12): A,B=random.sample(points,2) if phi(ec_add(A,B))==ec_add(phi(A),phi(B)): ok+=1 print("Homomorphism checks passed:", ok, "/12")
Running this prints out confirmation that the multiplication-by-3 map satisfies the homomorphism property across random samples.
Why This Matters for ECAI
For ECAI:
- Knowledge is encoded deterministically into elliptic curve points.
- Isogenies provide deterministic retrieval paths between knowledge states.
- No continuity is required—only rational, algebraic structure.
This eliminates the old probabilistic AI intuition and grounds intelligence in cryptographic truth.
Conclusion
Continuity is irrelevant for isogenies over finite fields. What matters is structure preservation. This distinction clears away a major misconception and aligns perfectly with ECAI’s mission: deterministic, verifiable intelligence.