Source: /cirosantilli/elliptic-curve-point-addition

= Elliptic curve point addition

<Elliptic curve point addition> is the <group operation> of an <elliptic curve group>, i.e. it is a <function> that takes two points of an <elliptic curve> as input, and returns a third point of the <elliptic curve> as its output, while obeying the <group axioms>.

The operation is defined e.g. at https://en.wikipedia.org/w/index.php?title=Elliptic_curve_point_multiplication&oldid=1168754060\#Point_operations[]. For example, consider the most common case for two different points different.  If the two points are given in coordinates:
$$
\begin{aligned}
P &+ Q &= R \\
(x_p, y_p) &+ (x_q, y_q) &= (x_r, y_r) \\
\end{aligned}
$$
then the addition is defined in the general case as:
$$
\begin{aligned}
\lambda &= \frac{y_q - y_p}{x_q - x_p} \\
x_r &= \lambda^2 - x_p - x_q \\
y_r &= \lambda(x_p - x_r) - y_p \\
\end{aligned}
$$
with some slightly different definitions for point doubling $P + P$ and the identity point.

This definition relies only on operations that we know how to do on arbitrary <field (mathematics)>[fields]:
* <addition> $+$
* <multiplication> $\times$
and it therefore works for <elliptic curves> defined over any field.

Just remember that:
$$
x/y
$$
means:
$$
x \times y^{-1}
$$
and that $y^{-1}$ always exists because it is the <inverse element>, which is guaranteed to exist for multiplication due to the <group axioms> it obeys.

The group function is usually called <elliptic curve point addition>, and repeated addition as done for <DHKE> is called <elliptic curve point multiplication>.

\Image[https://upload.wikimedia.org/wikipedia/commons/a/ae/ECClines-2.svg]
{title=Visualisation of <elliptic curve point addition>}