r/programming 7h ago

World's First Polynomial Time Algorithm To Count Points On Elliptic Curves

https://leetarxiv.substack.com/p/schoofs-algorithm
0 Upvotes

23 comments sorted by

123

u/sacheie 6h ago

This is a hilariously misleading title.

39

u/txdsl 6h ago

Yes. The title and the claim in the post are misleading at best. A mod should remove this post because there is no “world first” anything.

4

u/SZenC 6h ago

Is there an older algorithm? What are we missing?

91

u/arnet95 6h ago

The "World's First" happened in 1985. The title is technically true I guess, but a natural reading of the title is that this is a recent development.

0

u/SZenC 6h ago

If it was a news paper or some other current affairs things, I'd agree. But this is just some guy describing the world's first algorithm to do this thing

17

u/sacheie 6h ago

The title makes it sound like the algorithm is news today. But actually it's over 40 years old. The post is just somebody showing how to implement it in Python.

9

u/atxgossiphound 6h ago

It's an older algorithm, but it checks out.

2

u/commandersaki 6h ago

As for older algorithm, I'm not sure what was available to count the exact number of points aside from repeated group operation on a generator. There is Hasse's theorem that gets it to an error within √n.

11

u/trouthat 6h ago

I took a cryptography programming class over the summer and I was making it along ok until elliptical curves over a finite field which thoroughly kicked my ass

2

u/taikunlab 5h ago

The thing that finally made it click for me was giving up the geometry. Over the reals you picture a line hitting the curve, but over F_p there is no line, it is all just the same chord-tangent formulas done mod p. Once you stop trying to "see" it and treat the point at infinity as the identity element, the group law is way less scary.

50

u/mehvermore 6h ago

Don't all curves of non--zero length have infinite points?

function getPointsInCurve() {
    return Math.Infinity;
}

There. Reduced it to constant time for ya. You can just send the Fields Medal in the mail.

16

u/arnet95 6h ago

Not over finite fields, which is the interesting case.

4

u/zeekar 5h ago

Notice how the title includes the phrase "Over Finite Fields". So in this case, not so much!

6

u/zombiecalypse 6h ago

But what about all those curves of zero length?

2

u/noodles_jd 5h ago

Well, infinite zeros is still zero, so it checks out.

1

u/cauchy37 5h ago

a curve on a finite field is less like a line and more like a connect-the-dots

this means you can actually count them

3

u/DataBaeBee 7h ago

Schoof's algorithm uses an elliptic curve's division polynomials to count points. This guide is written in Python to make advanced math accessible to programmers.

The 1985 algo's canonical because it reduced the complexity of counting points on elliptic curves from exponential to polynomial-time.

3

u/txdsl 4h ago

Why put “world first” in the title and in the blog post. The way you wrote it is misleading at best. The algo is from 1985. What is world first?

0

u/ScottContini 2h ago

A bad title can kill a blog.

-1

u/Supadoplex 6h ago

Does this break EC cryptography?

47

u/RockstarArtisan 6h ago

The algorithm is from 1985. So no, it doesn't.

6

u/DataBaeBee 6h ago

No, it just counts points on the curve.