Live data from Hacker News

The animated elliptic curve

curves.ulfheim.net

41–50 of 62 posts

Re: The animated elliptic curve

#41
post #4

In the past 5 years I've seen maybe a dozen "how elliptic curves work", but this is the first to actually illustrate how they work on a small field. I think that's key to understanding, seeing it in a small enough field that you can literally see all of the points. Nicely done. If you want to keep going, as an advanced beginner I'd like to see: Arbitrary bigint math - how do you do Exp/Sqrt with arbitrary sized ints?…

> this is the first to actually illustrate how they work on a small field That means a lot, thanks! That was my design goal with the page: figuring out the best way to get the idea across _without_ the user having to read a lot of text and stare at the wall until they got it. I've been casting around for the next idea to do a visualization of, adding yours to the list. (as for a partial answer your second question: t…

I'll agree with GP - this is the best I've seen, too.

If I may offer a critique: the final example with Alice and Bob went too fast. I watched it 5 times and I'm a bit lost. I'll rewatch it again later

Re: The animated elliptic curve

#42

Earlier quoted context omitted.

> this is the first to actually illustrate how they work on a small field That means a lot, thanks! That was my design goal with the page: figuring out the best way to get the idea across _without_ the user having to read a lot of text and stare at the wall until they got it. I've been casting around for the next idea to do a visualization of, adding yours to the list. (as for a partial answer your second question: t…

I'll agree with GP - this is the best I've seen, too. If I may offer a critique: the final example with Alice and Bob went too fast. I watched it 5 times and I'm a bit lost. I'll rewatch it again later

That’s good feedback. There’s a lot of steps, where should I slow it down? (“All” is an acceptable answer):

- Alice computes A

- Bob computes B

- there’s a 3? second delay

- Alice and Bob simultaneously compute the shared secret by multiplying their private key by the others’ public key

Re: The animated elliptic curve

#44

Earlier quoted context omitted.

I'll agree with GP - this is the best I've seen, too. If I may offer a critique: the final example with Alice and Bob went too fast. I watched it 5 times and I'm a bit lost. I'll rewatch it again later

That’s good feedback. There’s a lot of steps, where should I slow it down? (“All” is an acceptable answer): - Alice computes A - Bob computes B - there’s a 3? second delay - Alice and Bob simultaneously compute the shared secret by multiplying their private key by the others’ public key

Amazing work.

For me, I think breaking it up after the Public Keys are generated would have helped.

I lost track the first time after the public keys are computed and exchanged. The exchange is what I think I missed.

Re: The animated elliptic curve

#46

Author here, let me know if there are any questions or comments!

Hi, I like it, but one thing I have some trouble with is the transition from the eliptic curve to the eliptic curve with finite fields. Specifically, I see the curve, as some function y = f(x), but then in the next plots it looks like a scatter plot and I do see the points of the field, being the output of the curve, but I can not really see what happended to the curve itself. Did the curve become the field?

Re: The animated elliptic curve

#47
post #7

Author here, let me know if there are any questions or comments!

Great article and great visuals! One very minor missing detail is how the base point P is picked.

That's also where had to scroll up again; where do Alice and Bob know P from? That's pre defined public knowledge, right? It belongs to the curve they use.

Many many thanks for this brilliantly depicted explanation!

Ot: I also looked up ulfheim after I realized your first name is Michael, not Ulf.

Re: The animated elliptic curve

#48
post #4

In the past 5 years I've seen maybe a dozen "how elliptic curves work", but this is the first to actually illustrate how they work on a small field. I think that's key to understanding, seeing it in a small enough field that you can literally see all of the points. Nicely done. If you want to keep going, as an advanced beginner I'd like to see: Arbitrary bigint math - how do you do Exp/Sqrt with arbitrary sized ints?…

Exponentiation is done through repeated squaring, e.g.

    x^21 = x^16 * x^4 * x
    ...   = (((x^2)^2)^2)^2 * (x^2)^2 * x
Integer square roots can be done using binary search, which is O(n) for an n-bit number, but Newton's method can be used and it's usually much faster.

Re: The animated elliptic curve

#49

Earlier quoted context omitted.

I'll agree with GP - this is the best I've seen, too. If I may offer a critique: the final example with Alice and Bob went too fast. I watched it 5 times and I'm a bit lost. I'll rewatch it again later

That’s good feedback. There’s a lot of steps, where should I slow it down? (“All” is an acceptable answer): - Alice computes A - Bob computes B - there’s a 3? second delay - Alice and Bob simultaneously compute the shared secret by multiplying their private key by the others’ public key

I noticed this problem with other images too. Sometimes animations change too fast, you see points moving, you look at them, but at the same time the formula changes, and you miss it. Especially bad when the formula is written under the image, far away from moving points.

Basically, you should not have several things changing in different places at the same time because human can only focus at one point. Maybe it would be better to add pauses in the sequence, animate one thing, wait a little, then animate other thing. Let the user stop and think a bit about what he/she have seen.

For example, in the image "Repeated addition of a point P" the points and lines are constantly moving, and I don't have time to look at the formula. I see that it is changing, but I cannot read it while looking at the animation. Maybe it would be better if the points stopped moving for a while, then the formula would change, then you give some time to read and comprehend it and then points continue moving.

Or maybe you could write all the formulas on the side, and have a box or selection moving over them. This way the viewer can see how the formulas are related to each other and doesn't have to remember previous ones.

Also, in the image "Point addition is associative and commutative" formulas seem to be random and do not illustrate anything. For example, I see 5P + P = 6P, then 2P + P = 3P, then 6P + P = 7P. So what it should mean?

Maybe a better way to illustrate these laws would be to have two images that produce the same result, for example P + 6P = 7P and 3P + 4P = 7P. It is easier to compare images side-by-side.

Instead of percent sign it might be better to use "mod" as percent sign is understood only by programmers but not by people familiar with mathematical notation.

To illustrate addition you might use a circle (or an ellipse, or even a square, why not) instead of a straight line. This way the wrapping behaviour would be more obvious. To illustrate multiplication, you could draw several sequential arcs (so that the multiplication is represented as several additions). And for negation, two arcs extending in the opposite direction from zero.

I don't understand how to illustrate inverse numbers though. Maybe several arcs that start at zero, end at 1 and number of them is the inverse value?

For the last illustration it definitely would help if it had some key points on the side, showing what we have done and what we are doing now.

Post reply on HN