Finished series about simple Weierstrass form
(too old to reply)
Dominik Pantůček
2018-06-17 18:38:23 UTC
Hello curves fans,

about two months ago Trevor asked me to post the series at once when it
is complete - and I finally managed to finish it.

I started creating videos explaining various phenomena of elliptic
curves in simple Weierstrass form over real numbers and over GF(p)
finite fields. Each video takes very narrow topic and shows it in 2D
plane (for real numbers), on 3D torus (for finite fields) and on 3D
sphere representing the projective plane, where we can see the point at

All the articles can be found on my blog. There is a special ECC
category where only these articles reside[1] - I do not want to spam
[curves] by unrelated topics.

All the videos can be seen on my YouTube channel - I created a dedicated
playlist for the elliptic curves in simple Weierstrass form[2] for the
same reason as above.

Last article I linked here was about point at infinity shown on the
projective plane depicted as sphere. Since then, I produced following
new videos and accompanying articles:

8. Elliptic curves: multiplication by scalar
9. Elliptic curves: scalar multiplication revisited
10. Elliptic curves: prime-order curves
11. Elliptic curves: double and add
12. Elliptic curves: discrete logarithm problem
13. Elliptic curve Diffie-Hellman key exchange
14. Elliptic Curve Digital Signature Algorithm

Just to complete the list, the first seven posts were:

1. Introduction to elliptic curves
2. Elliptic curves over finite fields
3. Elliptic curves: point negation
4. Elliptic curves: point addition
5. Elliptic curves: point doubling
6. Elliptic curves: point at infinity
7. Elliptic curves: point at infinity revisited

Throughout the series, the readers are given a walk-through starting
from elliptic curves in generic Weierstrass form and their mapping to
simple Weierstrass form. Then the elliptic curves in simple Weierstrass
form over GF(p) are explained and the "doughnut" renderings are
presented. After that, the algebraic operations required to create an
Abelian group from the points of elliptic curves in simple Weierstrass
form are introduced one by one: negation, addition and doubling. With
the basic operations explained, the point at infinity is introduced and
the spherical rendering of the projective plane is presented.

After these basics, multiplication by scalar over R, GF(p) and in the
projective plane are shown. Nearing the end of the series the reader is
presented with additional features the curve must possess in order to be
usable for some real cryptography and the double-and-add algorithm is
shown. The last article explaining the theory is the introduction to the
discrete logarithm problem.

Final two articles and videos put it all together and give the
explanation of ECDH and ECDSA respectively.

My goal was to explain ECC using simple Weierstrass curves to a general
audience and I think that it should be possible for everyone to
understand at least ECDH. Although the series ends with ECDSA, it
actually just shows ECDSA - for explanation why it works the way it
works, more theory would have to be presented and I wanted to keep it short.

Although all the work is subject to copyright, I - as the author - would
be more than happy to give anyone permission to re-use it as they see
fit. Especially - but not limited to - for any educative purposes. Just
give credit where credit is due and let me know. Also, if the published
videos and pictures do not fit your needs, let me know and I'll do my
best to create renderings with generally any parameters you like.
However, I am not open-sourcing the code right now, as it is:

1) in Racket[3], and
2) a HUGE mess :)

Thank you for reading this far and public thanks to Trevor for running
this list!


[1] https://trustica.cz/en/category/ecc/
[2] https://www.youtube.com/playlist?list=PLN9KZDpNfsHMd7d7PX87JGesGY_Qzyb3V
[3] http://racket-lang.org/