Elliptic curve Elliptic curve arithmetic and arithmetic and applications to applications to cryptographycryptography
By Uros AbazBy Uros Abaz
Supervised by Dr. Shaun Supervised by Dr. Shaun
Cooper and Dr. Andre Cooper and Dr. Andre
BarczakBarczak
Structure of the talkStructure of the talk
Introduction to cryptographyIntroduction to cryptography Motivation for studying elliptic curve Motivation for studying elliptic curve
cryptography (ECC)cryptography (ECC) Theory of elliptic curvesTheory of elliptic curves Very brief about arithmetic on the Very brief about arithmetic on the
elliptic curveelliptic curve ElGamal Public Key Encryption ElGamal Public Key Encryption
algorithmalgorithm Tour of the computer programTour of the computer program
Introduction to Introduction to cryptographycryptography
Cryptography dates back to Julius Cryptography dates back to Julius CaesarCaesar
Introduction of computers drives Introduction of computers drives development in cryptographydevelopment in cryptography
Two main types of cryptosystemsTwo main types of cryptosystems Private keyPrivate key – same key used for encryption – same key used for encryption
and decryptionand decryption Public keyPublic key – public key used for encryption – public key used for encryption
and private key used for decryptionand private key used for decryption
Public key cryptosystemPublic key cryptosystem
1977 RSA algorithm (R. 1977 RSA algorithm (R. RRivest, A. ivest, A. SShamir, L. hamir, L. AAdleman)dleman) 1985 ECC algorithm (N. Koblitz and V. Miller)1985 ECC algorithm (N. Koblitz and V. Miller)
Alice Bob
Motivation for the studyMotivation for the study
Advantages of ECC over RSAAdvantages of ECC over RSA 108-bit ECC Vs 512-bit RSA using 9500 108-bit ECC Vs 512-bit RSA using 9500
machinesmachines To understand theory behind elliptic To understand theory behind elliptic
curvescurves To improve efficiency of Maple code To improve efficiency of Maple code Provide user friendly application Provide user friendly application
using Visual C++ and M.I.R.A.C.Lusing Visual C++ and M.I.R.A.C.L
Elliptic curvesElliptic curves
Defined by equation yDefined by equation y22 = x = x33 + Ax + B + Ax + B yy22 = x = x33 – 4x is equivalent to y = ±√(x – 4x is equivalent to y = ±√(x33-4x)-4x)
If x and y are complex => elliptic curve is If x and y are complex => elliptic curve is torus in ℂtorus in ℂ22
There are other interesting shapes of elliptic There are other interesting shapes of elliptic curvescurves
-3 -2 -1 0 1 2 3-10
-8
-6
-4
-2
0
2
4
6
8
10
x
x3-4 x
y
-3 -2 -1 0 1 2 3 4 5-10
-8
-6
-4
-2
0
2
4
6
8
10
x
y2=x3-4 x
y
Arithmetic on the elliptic Arithmetic on the elliptic curvecurve
Elliptic curves over finite field FElliptic curves over finite field Fqq
Mario’s webpage - Mario’s webpage - www.mariospage.comwww.mariospage.com
Addition of two points on an elliptic Addition of two points on an elliptic curvecurve Geometrically Geometrically AlgebraicallyAlgebraically
Multiplication of a point and a scalar Multiplication of a point and a scalar on a curve on a curve
Description of ElGamal Description of ElGamal algorithmalgorithm
Alice wants to send message to BobAlice wants to send message to Bob Bob establishes his public key as Bob establishes his public key as
following:following: Chooses an elliptic curve E over FChooses an elliptic curve E over Fqq
Chooses a point P on EChooses a point P on E Chooses integer s and computes B=sPChooses integer s and computes B=sP E, FE, Fqq, P and B are Bob’s public key, P and B are Bob’s public key Integer s is Bob’s private keyInteger s is Bob’s private key
Description of ElGamal Description of ElGamal algorithmalgorithm
Alice does following to encrypt a Alice does following to encrypt a message:message: Downloads Bob’s public keyDownloads Bob’s public key Expresses her message as a point M on Expresses her message as a point M on
the curve Ethe curve E Chooses a secret random integer k and Chooses a secret random integer k and
computes Mcomputes M11=kP and M=kP and M22=M+kB=M+kB
Sends MSends M11 and M and M22 to Bob to Bob
Description of ElGamal Description of ElGamal algorithmalgorithm
Bob decrypts the message by Bob decrypts the message by calculating:calculating: MM22 – sM – sM11 = (M + kB) – s(kP) = M + ksP = (M + kB) – s(kP) = M + ksP
– skP = M– skP = M Eavesdropper, Eve, knows Bob’s Eavesdropper, Eve, knows Bob’s
public key and point Mpublic key and point M11 and M and M22
She needs to solve discrete She needs to solve discrete logarithm problem (hard!)logarithm problem (hard!)
Tour of the programTour of the program