Elliptic Curve Cryptography
Elliptic Curve Cryptography
Public key cryptographic algorithms (asymmetric key algorithms) play an important role in providing
security services:
Key management
Confidentiality
User authentication
Signature
Public key cryptography systems are constructed by relying on the hardness of mathematical problems
RSA: based on the integer factorization problem
DH: based on the discrete logarithm problem
The main problem of conventional public key cryptography systems
key size has to be sufficient large in order to meet the high-level security requirement.
This results in lower speed and consumption of more bandwidth
Solution: Elliptic Curve Cryptography system
Introduction to Elliptic Curves
6
Graphical Representation
Y axis
X axis
2 2
What are the roots of this equation???
Method of Diophantus…
2 2
What are the roots of this equation???
Two trivial roots x=0 and x=1…… But what about third one????
Method of Diophantus…
We have, 2 2
3
a+b+x = 3 → 0+1+x = 2 → x= 1
2 2
Consider two points (½ , -½) and (1,1) and find out another point
on the curve …..
Method of Diophantus… : Exercise solution
51 2
x − x + ... = 0
3
2
Thus ½ + 1 + x = 51/2 or x = 24 and y=70
Thus if we have 4900 balls we may arrange them in either way
Weierstrass Equation
For most situations, an elliptic curve E is the graph of an equation of the form:
y 2 = x3 + Ax + B
where A and B are constants. This refers to the Weierstrass Equation of
Elliptic Curve.
Here, A, B, x and y all belong to a field of say rational numbers, complex
numbers, finite fields (Fp) or Galois Fields (GF(2n)).
If K is the field where A,B K, then we say that the Elliptic Curve E is defined
over K
Points on Elliptic Curve
y
Consider elliptic curve
E: y2 = x3 - x + 1
P2 Start with two points : P1(x1,y1) and
P1 P2(x2,y2) on elliptic curve
x To get a new point P3 ,
Draw a line L through P1 and P2
P3
Get the intersection P3’
Reflect across x-axis to get P3
We define P1 + P2 = P3
Adding points on Elliptic Curve…
Case II : P1 = P2 =(x1,y1)
When two points on a curve
are very close to each other,
the line through them
approximates a tangent line.
Therefore, when the two
points coincide, we take the
line L through them to be the
tangent line.
Implicit differentiation allows
us to find the slope m of L
Adding points on Elliptic Curve…
1 + A
2
Case II : P1 = P2 =(x1,y1) dy dy 3 x
2 y = 3x + A, so m = =
2
Case II : P1 = P2 =(x1,y1)
If y1 = 0
We get P1 + P2 = O
Case III: P2 = O
What about P1 + P2 ????
Do we get P1 + P2 = P1 ??
In other words, P1 + O = P1
Group Law
The points on E form an additive abelian group with O as the identity element.
`
Integer times a point
As a very small example, consider an elliptic curve over the field F23. With A = 1 and
B = 0, the elliptic curve equation is y2 = x3 + x.
The point (9,5) satisfies this equation since:
y2 mod p = x3 + x mod p
25 mod 23 = 729 + 9 mod 23
25 mod 23 = 738 mod 23
2=2
The 23 points which satisfy this equation are:
(0,0) (1,5) (1,18) (9,5) (9,18) (11,10) (11,13) (13,5) (13,18) (15,3) (15,20) (16,8)
(16,15) (17,10) (17,13) (18,10) (18,13) (19,1) (19,22) (20,4) (20,19) (21,6) (21,17)
Elliptic Curve over finite field F23…
Elliptic curves over finite fields
x x3+x+1 y Points
Let us do an exercise....
Let E be the curve y2 = x3+x+1 over 0 1 ±1 (0,1),(0,4)
2 1 ±1 (2,1),(2,4)
Therefore, E(F5) has order 9.
3 1 ±1 (3,1),(3,4)
If we are working over a large finite field and are given points P and kP, it
is computationally hard to determine the value of k.This is called the
discrete logarithm problem for elliptic curves (ECDLP) and is
the basis for the cryptographic applications.
What Is Elliptic Curve Cryptography (ECC)?
A key pair is associated with a set of public domain parameters (p, q, g).
Here, p is a prime, and g ∈ [1, p−1] has order q
ElGamal INPUT : DLdomain parameters (p, q, g), private key x, ciphertext (c1 , c2 ).
OUTPUT : Plaintext m.
Decryption −x
1. Compute m = c2 • c1 mod p.
2.Return (m).
ECC Analog to El Gamal : ECEG
INPUT : Elliptic curve domain parameters (p, E, P, n), public key Q, plaintext m.
OUTPUT : Ciphertext (C1 , C 2 )
1. Represent the message m as a point M in E(Fp )
EC-ElGamal 2. Select k R [1, n − 1].
3.Compute C1 = kP.
Encryption 4. Compute C 2 = M + kQ.
5. Return (C1 , C 2 ).
INPUT : Elliptic curve domain parameters (p, E, P, n), private key d, ciphertext (C1 , C 2 )
EC-ElGamal OUTPUT : Plaintext m.
Decryption 1. Compute M = C2 − dC1 , and extract m from M
2. Return M.
ECC Diffie-Hellman: ECDH
Public: Elliptic curve and point P=(x,y) on curve
Secret: Alice’s A and Bob’s B
a(x,y)
b(x,y)
Alice, a Bob, b
The RSA, DL and EC families all provide the basic functionality expected of
public-key cryptography
But…… How do we analyze these Cryptosystems?
How difficult is the underlying problem that it is based upon
RSA – Integer Factorization
DH – Discrete Logarithms
ECC - Elliptic Curve Discrete Logarithm problem
Why use ECC?…
Impractical?
Applications of ECC
1. Does the elliptic curve equation y2 = x3 - 7x - 6 over real numbers define a group?
2. What is the additive identity of regular integers?
3. Is (4,7) a point on the elliptic curve y2 = x3 - 5x + 5 over real numbers?
4. What are the negatives of the following elliptic curve points over real numbers?
P(-4,-6), Q(17,0), R(3,9), S(0,-4)
5. In the elliptic curve group defined by y2 = x3 - 17x + 16 over real numbers, what is P
+ Q if P = (0,-4) and Q = (1,0)?
6. In the elliptic curve group defined by y2 = x3 - 17x + 16 over real numbers, what is
2P if P = (4, 3.464)?
Tutorial II : Elliptic curves over real numbers
1. Does the elliptic curve equation y2 = x3 + 10x + 5 define a group over F17?
2. Do the points P(2,0) and Q(6,3) lie on the elliptic curve y2 = x3 + x + 7 over F17?
3. What are the negatives of the following elliptic curve points over F 17?
P(5,8) Q(3,0) R(0,6)
4. In the elliptic curve group defined by y2 = x3 + x + 7 over F17, what is P + Q if P =
(2,0) and Q = (1,3)?
5. In the elliptic curve group defined by y2 = x3 + x + 7 over F17,
what is 2P if P = (1, 3)?
key references