**EC Cryptography Tutorials - Herong's Tutorial Examples** - v1.03, by Herong Yang

Algebraic Introduction to Elliptic Curves

This chapter provides an algebraic introduction of addition operations on elliptic curves. Algebraic solutions are provided to calculate addition operations by dividing the problem into 4 cases: two symmetric points, one infinity point, two identical points, and two distinct points.

Algebraic Description of Elliptic Curve Addition

Algebraic Solution for Symmetrical Points

Algebraic Solution for the Infinity Point

Algebraic Solution for Point Doubling

Algebraic Solution for Distinct Points

Elliptic Curves with Singularities

Takeaways:

- Calculating the addition operation of two symmetric points on an elliptic curve is easy: R = P + (-P) = (∞, ∞).
- Calculating the addition operation of two points and one of them is infinity point is also easy: R = P + O = P, or R = O + Q = Q
- Calculating the addition operation of two identical points is not hard:
R = 2P = (m
^{2}-2x_{P}, m(x_{P}-x_{R})-y_{P}), where m is the slop of the straight line passing P and tangent to the curve: m = 3(x_{P})^{2}+a)/2(y_{P}). - Calculating the addition operation of two distinct points is not hard:
R = P + Q = (m
^{2}-x_{P}-x_{Q}, m(x_{P}-x_{R})-y_{P}), where m is the slop of the straight line passing P and Q: m = (y_{P}-y_{Q})/(x_{P}-x_{Q}). - Vieta's first formula is used to help calculating the addition operation: The sum of 3 roots of a cubic equation is the negation of the coefficient of the second term.
- Condition of "4a
^{3}+ 27b^{2}!= 0" can be used to avoid elliptic curves with singularities.

Table of Contents

Geometric Introduction to Elliptic Curves

►Algebraic Introduction to Elliptic Curves

Abelian Group and Elliptic Curves

Discrete Logarithm Problem (DLP)

Generators and Cyclic Subgroups

tinyec - Python Library for ECC

ECDH (Elliptic Curve Diffie-Hellman) Key Exchange

ECDSA (Elliptic Curve Digital Signature Algorithm)