Elliptic curves are used in cryptography mainly because of DLP i.e. it’s infeasible to calculate $x$ from $X=Gx$.

Pairing helps to compute certain complicated equations on EC points. Traditional EC math lets anyone check linear constraints on the number (eg. $P=Gp,Q=Gq,R=Gr,$ checking $5P+7Q=11R$), but pairing lets you check *quadratic* constraints ($e(P,Q)∗e(G,G5)=1$ *is checking* $p∗q+5=0$**).

This makes DDH (Decision Diffie-Hellman) problem very easy to compute using pairings. Also DLog reduction becomes computably feasible if not done on extension fields of Finite Field as we want the target group to be sufficiently bigger so that it’s not possible to do DLog reduction.

$e(P,Q)$ is a function defined on EC points. This is the *pairing.* Also known as bilinear map. It is called as bilinear because it satisfies following constraints:

- $e(P,Q+R)=e(P,Q)+e(P,R)$
- $e(P+S,Q)=e(P,Q)+e(S,Q)$

The pairing is linear in both constraints. So, EC Pairing is a function that takes a pair of points on an elliptic curve and returns an element of some other group, called the *target group*.

Example: $e(x,y)=2_{xy}$, where $x=3,y=9$ → $P=3,Q=4,R=5$

Pairing needs to have another property, i.e. **Non-Degeneracy**. For generators $g1$, $g2$: $e(G_{1},G_{2})=1$

Note: $+$ and $⋅$ can be any arbitrary operators. It doesn’t matter what symbols are used in abstract mathematics as long as they obey the properties of associativity, commutativity and reflexivity.

- $a+b=b+a$
- $(a⋅b)⋅c=a⋅(b⋅c)$
- $(a⋅c)+(b⋅c)=(a+b)⋅c$

However, such simple pairings are not suitable for cryptography as its trivial to divide, compute logarithms and other computations. Simple integers can’t be used in a field having terms like public-private keys or one-way functions because anyone can go back to $y$ knowing $x$ and $e(x,y)$. Thus, we require numbers that can essentially function as “black boxes” or it’s only possible to do simple arithmetic like addition, subtraction, multiplication and division on them and nothing else. That’s where ECs and EC-points come in.

Pairing - $e:G_{1}×G_{2}→G_{T}$

The reason why Bilinear map works?

First, we look into the concept of divisors.

## Tate Pairings

## Miller’s Algorithm

## MOV Attack

MOV attack refers to the transfer of DLP over EC to finite field $F_{p_{k}}$ where it’s much easier to solve. This is related to the embedded degree of the EC.

Embedded Degreeof an EC refers to the minimum value of k for which $p_{k}≡1(modn)$, where p = prime used for the field and n = order of the curve. This is actually called an attack because DLP shouldn’t be solvable on ECs and thus for curves used throughout the cryptographic primitives, value of k is unreasonably large such that pairings are computably infeasible to compute.

## Complexities Assumptions on Bilinear Groups

- Discrete Log problem is still difficult if target group is sufficiently large.
- CDH (Computation Diffie-Hellman) is still hard as we can’t find $g_{xy}$ if we know $g$, $g_{x}$, $g_{y}$.
- Bilinear Diffie-Hellman Problem: Given $P,aP,bP,cP∈G_{1}$, compute $e(P,P)_{abc}$

## Prerequisites

- Fermat’s Little Theorem: for a prime p, and any positive integer a, $a_{p}≡amodp$
- Additive Group: set of numbers with operation defined on addition
- Multiplicative group: set of numbers with operation defined on multiplication
- Order of Multiplicative group

## Resources

- Vitalik: Exploring Elliptic Curve Pairings
- Statebox’s Elliptic Curve Pairings
- https://crypto.stanford.edu/pbc/thesis.pdf
- https://people.csail.mit.edu/alinush/6.857-spring-2015/papers/bilinear-maps.pdf
- Fundamental Concepts Underlying Elliptic Curves (Level 2): Divisors and Pairings
- Why pairings are used?
- Basics of Pairings - Dan Boneh
- Pairings for beginners
- Intro to Pairings