Elliptic curve representations:

- Short Weierstrass: $E:y_{2}−x_{3}−Ax−B=0$
- Montgomery: $E:y_{2}−x_{3}−Ax_{2}−x=0$
- Edward:
- Twisted Edwards:

Elliptic curve

- Affine point: $P:(x,y)$
- Projective point: $P:(x,y,z)$
- Jacobian point:

## Negation

Inverse of a point by inverting on x-axis, including the case when $x_{1}=x_{2}=0$:

$−P:(−x,y)$## Addition

Addition: $P,Q∈E:R=P+Q$ where $x_{1}=x_{2}$. Using algebraic formula,

Using chord method,

$λx_{3}y_{3}R =x_{2}−x_{1}y_{2}−y_{1} =λ_{2}−x_{1}−x_{2}=λ(x_{1}−x_{3})−y_{1}=λ(2x_{1}+x_{2})−λ_{3}−y_{1}=(x_{3},y_{3}) $Cost: $6A+2M+1I$

as human species, we have arrived to the unanimous conclusion that we hate divisions, and will do anything to avoid them.

## Doubling

Case where, $P=Q$

Using tangent method, slope of the curve comes out to be:

$λx_{3}y_{3}R =2y_{1}3x_{1}+a =λ_{2}−2x_{1}=λ(x_{1}−x_{3})−y_{1}=λ(3x_{1})−λ_{3}−y_{1}=(x_{3},y_{3}) $Cost: $4A+2M+1I$

## Scalar Multiplication

scalar multiplication for elliptic curve refers to multiplication of a scalar value $k∈F_{r}$ with a point $P∈E$. Three different kinds of scalar mult exists:

**Fixed base**: where the point is fixed**Variable base**: where the point can be different**Double base**: multiple points with multiple scalars

## Montgomery curve formulae

montgomery curves

## List of things and resources to learn

- all different point representations and their advantages/disadvantages.
- affine
- projective
- Jacobian
- extended jacobian

- different curve representations
- short weierstrass
- montgomery
- edwards
- twisted edwards

- hash to curve
- constant time operations
- pairings

### resources

- axioms’ halo2curves
- pse’s halo2curves
- dalek-cryptography’s ed25519
- martin klepmann’s paper
- lamdaworks’ ec module
- arkworks’ ec modulehttps://github.com/arkworks-rs/algebra/tree/master/ec
- twisted edwards curve
- twisted edwards curve revisted
- montgomery ladder
- pairing friendly ec curves of prime order
- Hyperelliptic database
- ristretto group
- Constant-Time Arithmetic for Safer Cryptography
- constant time montgomery ladder
- Hardware Aspects of Montgomery Modular Multiplication
- Montgomery Multiplication Using Vector Instructions
- Selecting Elliptic Curves for Cryptography: An Efficiency and Security Analysis
- Faster addition and doubling on elliptic curves
- Montgomery curves and the Montgomery ladder