[curves] Finished series about simple Weierstrass form

Dominik Pantůček dominik.pantucek at trustica.cz
Sun Jun 17 11:38:23 PDT 2018

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/

More information about the Curves mailing list