Dominik Pantůček

2018-06-17 18:38:23 UTC

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

infinity.

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!

Cheers,

Dominik

[1] https://trustica.cz/en/category/ecc/

[2] https://www.youtube.com/playlist?list=PLN9KZDpNfsHMd7d7PX87JGesGY_Qzyb3V

[3] http://racket-lang.org/