SlideShare a Scribd company logo
An Introduction to Elliptic Curve Cryptography
Tanner Prynn
Elliptic Curves
An elliptic curve is a set of points satisfying an equation of the form
y2
= x3
+ ax + b
for coefficients a, b and variables x, y in some field F (of characteristic not
2 or 3). This type of equation is a Weierstrass equation, which is a
condensed form of a general cubic equation. One additional restriction is
placed on an elliptic curve, which is that 4a3
+ 27b2
= 0. This condition
ensures that the curve is non-singular, which allows us to find a tangent
line to any point on the curve.
Figure 1 shows two simple elliptic curves.
Figure 1: The elliptic curves y2
= x3
− 3x + 1 and y2
= x3
− 2x + 2
The Group Law
Define the set of points on the curve as
C = {(x, y) | x, y ∈ F and y2
= x3
+ ax + b} ∪ ∞
where ∞ is the point at infinity in the projective plane.
There is an operation + which allows the composition of any two points
on the curve. Figure 2 shows the geometric application of this operation.
Figure 2: The + operation for two points on an elliptic curve
To add two points together, take the line between them and find its third
point of intersection with the curve, then reflect across the x-axis. To add
a point to itself, use the tangent line. The identity of + is ∞. The inverse
of a point is its reflection across the x-axis.
From the geometric definition, it is possible to derive an algebraic formula
for the + operation by finding the equation of the line, and solving the
resulting system of equations.
The Discrete Logarithm Problem
Given a group G with operation ∗ we can define a map · : Z × G → G by
n · g → g ∗ g ∗ · · · ∗ g
n times
On an elliptic curve, the map · is equal to the repeated addition of a point
to itself. We call this map point multiplication. For a point P on C,
nP = P + P + · · · + P. If we have two points P, Q on C where nP = Q,
then n is the elliptic-curve discrete logarithm (ECDL) of Q with respect to
P.
Point multiplication is an example of a trap-door function: a function
which is simple to compute in one direction but difficult to compute in the
other direction. This is the exact operation we will use to construct a
cryptosystem.
Naive Multiplication
If an attacker knows P and nP, where N is the order of C, then they can
solve the discrete logarithm problem by testing if mP = nP for each m,
1 ≤ m < N. This is the simplest solution to the ECDL, and will complete
in O(NM) time, where M is the cost of an elliptic curve multiplication.
For small curves, a computer performing naive multiplication will quickly
solve this problem. However, there is no known algorithm which feasibly
solves the ECDL on a generic cryptographic curve. This problem, known
as the Elliptic Curve Discrete Logarithm Problem (ECDLP), is what
elliptic curve cryptography is based on. Generic attacks against the
ECDLP all have complexity which is a function of the order of the curve,
so cryptographic curves are picked such that their order is very large:
more than 2200
.
Baby-Step Giant-Step
The Baby-Step Giant-Step algorithm rewrites the point Q = nP as
(im + j)P, with m =
√
N . Then jP is computed for 0 ≤ j < m and
stored. Finally, naive multiplication is used to find imP for 0 ≤ i < m,
and subtracted from nP to solve for jP.
Baby-Step Giant-Step for ECDLP
m ←
√
N
for 0 ≤ j < m do
Compute and store (j, jP)
end for
for 0 ≤ i < m do
Compute Q − imP
if Q − imP = jP for some j then
return n ≡ j + im
end if
end for
Baby-Step Giant-Step completes in O(
√
NM) time and O(
√
N) space
complexity. This is a large improvement over naive multiplication, but still
very slow on cryptographic curves.
Elliptic Curve Diffie-Hellman Exchange
One of the major problems of pre-modern cryptography was that every
method of communication required a shared key. This problem is called
the key distribution problem. Essentially, if two parties wanted to
communicate they needed to meet and exchange a key - there was no way
to communicate over an insecure channel without first communicating
over a secure channel. The Elliptic Curve Diffie-Hellman Key Exchange
(ECDHE) is a method of key derivation which allows two users to derive a
shared key over an insecure channel.
Elliptic Curve Diffie-Hellman Exchange
1. Alice and Bob agree on a curve C and a generating point P. (In
practice, these parameters are standardized and known to
everyone.)
2. Alice generates a random, secret integer a and sends Bob aP.
3. Bob generates a random, secret integer b and sends Alica bP.
4. Alice computes a(bP).
5. Bob computes b(aP).
6. Alice and Bob now share the key abP.
Elliptic Curve Point Multiplication
Point multiplications is one component of Elliptic Curve Cryptography
which is very important in practice. Consider the computation of nP for a
point P and integer n. Naive multiplication by repeated addition is very
slow (exponential). The Double-and-Add algorithm computes nP by
looping through the bits of n, adding on a 1 bit and doubling on a 0 or 1
bit.
Double-and-Add is much faster than repeated addition, but it leaks
information about n by performing a different number of operations based
on the binary representation. This information leakage makes an
implementation which uses Double-and-Add vulnerable to timing or power
analysis. A real-world implementation of ECDHE will use the Montgomery
Ladder, which operates in constant time.
Implementation of ECDHE on Curve25519
The result of my research is a pedagogical implementation of the
Elliptic-Curve Diffie-Hellman Exchange, using Bernstein’s Curve25519.
Curve25519 is an elliptic curve in Montgomery form, over the prime field
Zp where p = 2255
− 19.
# Create ECDH users alice and bob
a = ECDH::User.new(’alice’)
b = ECDH::User.new(’bob’)
# alice initiates DH exchange with bob
a.negotiate(b)
# alice and bob now have a shared secret key
a.keys[’bob’] == b.keys[’alice’] # true
SISTA - The University of Arizona - Tucson, Arizona Tanner Prynn http://tannerprynn.com

More Related Content

PDF
Greatest Common Measure: the Last 2500 Years
PPTX
GCD of n Numbers
PDF
Elliptic Curve Cryptography: Arithmetic behind
PDF
Elliptic curve cryptography
PPTX
Elliptic Curve Cryptography
PDF
Random Number Generators 2018
PDF
Dipoleinshell
PDF
Absorbing Random Walk Centrality
Greatest Common Measure: the Last 2500 Years
GCD of n Numbers
Elliptic Curve Cryptography: Arithmetic behind
Elliptic curve cryptography
Elliptic Curve Cryptography
Random Number Generators 2018
Dipoleinshell
Absorbing Random Walk Centrality

What's hot (20)

PPTX
Theory of Automata and formal languages Unit 3
PDF
preTEST1A Solved Multivariable Calculus
PDF
preTEST3A Double Integrals Solved
PPT
4.7 inverse functions.ppt worked
PPTX
Quantum logic synthesis (srikanth)
PDF
2021 preTEST4A Vector Calculus
ODP
Program Derivation of Matrix Operations in GF
PDF
PDF
Multicasting in Linear Deterministic Relay Network by Matrix Completion
PDF
Quaternionic Modular Symbols in Sage
PDF
Implementation of Energy Efficient Scalar Point Multiplication Techniques for...
PPTX
Presentation of daa on approximation algorithm and vertex cover problem
PPT
Reza Talk En Kf 09
PDF
Csr2011 june14 15_45_musatov
PDF
RDFS with Attribute Equations via SPARQL Rewriting
PDF
Density of states of bulk semiconductor
PDF
2021 preTEST5A Final Review Packet!
PDF
18. solving cubicequationscastouchpad
PDF
Optimal Budget Allocation: Theoretical Guarantee and Efficient Algorithm
PDF
2020 preTEST5A
Theory of Automata and formal languages Unit 3
preTEST1A Solved Multivariable Calculus
preTEST3A Double Integrals Solved
4.7 inverse functions.ppt worked
Quantum logic synthesis (srikanth)
2021 preTEST4A Vector Calculus
Program Derivation of Matrix Operations in GF
Multicasting in Linear Deterministic Relay Network by Matrix Completion
Quaternionic Modular Symbols in Sage
Implementation of Energy Efficient Scalar Point Multiplication Techniques for...
Presentation of daa on approximation algorithm and vertex cover problem
Reza Talk En Kf 09
Csr2011 june14 15_45_musatov
RDFS with Attribute Equations via SPARQL Rewriting
Density of states of bulk semiconductor
2021 preTEST5A Final Review Packet!
18. solving cubicequationscastouchpad
Optimal Budget Allocation: Theoretical Guarantee and Efficient Algorithm
2020 preTEST5A
Ad

Similar to An Introduction to Elleptic Curve Cryptography (20)

PPTX
Discrete Logarithmic Problem- Basis of Elliptic Curve Cryptosystems
DOCX
Assignment 2 (1) (1).docx
PPTX
Cryptography Baby Step Giant Step
PDF
MAPREDUCE METHODOLOGY FOR ELLIPTICAL CURVE DISCRETE LOGARITHMIC PROBLEMS – SE...
PDF
Survey ecc 09june12
PDF
International Journal of Computational Engineering Research(IJCER)
PDF
Low Power FPGA Based Elliptical Curve Cryptography
PDF
Low Power FPGA Based Elliptical Curve Cryptography
PDF
SYMMETRIC BILINEAR CRYPTOGRAPHY ON ELLIPTIC CURVE AND LIE ALGEBRA
PDF
Elliptic Curves in Cryptography
PDF
Elliptic Curves as Tool for Public Key Cryptography
PDF
Efficiency of 128-bit Encryption and Decryption Process in Elgamal Method Usi...
PDF
Elliptic Curve Cryptography for those who are afraid of maths
PPTX
ellipticcurvecryptography.pptx
PDF
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
PPT
Elliptic Curve Digital Signature Algorithm (ECDSA).ppt
PPT
ECC_basics.ppt
PPT
PDF
elliptic-curves-modern
Discrete Logarithmic Problem- Basis of Elliptic Curve Cryptosystems
Assignment 2 (1) (1).docx
Cryptography Baby Step Giant Step
MAPREDUCE METHODOLOGY FOR ELLIPTICAL CURVE DISCRETE LOGARITHMIC PROBLEMS – SE...
Survey ecc 09june12
International Journal of Computational Engineering Research(IJCER)
Low Power FPGA Based Elliptical Curve Cryptography
Low Power FPGA Based Elliptical Curve Cryptography
SYMMETRIC BILINEAR CRYPTOGRAPHY ON ELLIPTIC CURVE AND LIE ALGEBRA
Elliptic Curves in Cryptography
Elliptic Curves as Tool for Public Key Cryptography
Efficiency of 128-bit Encryption and Decryption Process in Elgamal Method Usi...
Elliptic Curve Cryptography for those who are afraid of maths
ellipticcurvecryptography.pptx
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
Elliptic Curve Digital Signature Algorithm (ECDSA).ppt
ECC_basics.ppt
elliptic-curves-modern
Ad

More from Derek Callaway (7)

PDF
Stop Malware Forever
PDF
Binary Clone Wars at CanSecWest 2009
DOC
DNA Computing Notes Taken for Dr. Harlan Wood at UDel on Oct 9, 2003
PDF
Ham radio-without-a-radio
PDF
Uncloaking IP Addresses on IRC
PDF
Software Testing: Test Design and the Project Life Cycle
PDF
Tickling CGI Problems (Tcl Web Server Scripting Vulnerability Research)
Stop Malware Forever
Binary Clone Wars at CanSecWest 2009
DNA Computing Notes Taken for Dr. Harlan Wood at UDel on Oct 9, 2003
Ham radio-without-a-radio
Uncloaking IP Addresses on IRC
Software Testing: Test Design and the Project Life Cycle
Tickling CGI Problems (Tcl Web Server Scripting Vulnerability Research)

Recently uploaded (20)

PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PPTX
INTERNET------BASICS-------UPDATED PPT PRESENTATION
PDF
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
PDF
Tenda Login Guide: Access Your Router in 5 Easy Steps
DOCX
Unit-3 cyber security network security of internet system
PPTX
Introuction about WHO-FIC in ICD-10.pptx
PDF
Decoding a Decade: 10 Years of Applied CTI Discipline
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PPTX
Job_Card_System_Styled_lorem_ipsum_.pptx
PPTX
E -tech empowerment technologies PowerPoint
PPTX
Introduction to Information and Communication Technology
PPTX
presentation_pfe-universite-molay-seltan.pptx
PDF
Sims 4 Historia para lo sims 4 para jugar
PPTX
innovation process that make everything different.pptx
PDF
Testing WebRTC applications at scale.pdf
PPTX
Slides PPTX World Game (s) Eco Economic Epochs.pptx
PDF
Paper PDF World Game (s) Great Redesign.pdf
PPTX
Module 1 - Cyber Law and Ethics 101.pptx
PDF
An introduction to the IFRS (ISSB) Stndards.pdf
PPTX
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
INTERNET------BASICS-------UPDATED PPT PRESENTATION
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
Tenda Login Guide: Access Your Router in 5 Easy Steps
Unit-3 cyber security network security of internet system
Introuction about WHO-FIC in ICD-10.pptx
Decoding a Decade: 10 Years of Applied CTI Discipline
The New Creative Director: How AI Tools for Social Media Content Creation Are...
Job_Card_System_Styled_lorem_ipsum_.pptx
E -tech empowerment technologies PowerPoint
Introduction to Information and Communication Technology
presentation_pfe-universite-molay-seltan.pptx
Sims 4 Historia para lo sims 4 para jugar
innovation process that make everything different.pptx
Testing WebRTC applications at scale.pdf
Slides PPTX World Game (s) Eco Economic Epochs.pptx
Paper PDF World Game (s) Great Redesign.pdf
Module 1 - Cyber Law and Ethics 101.pptx
An introduction to the IFRS (ISSB) Stndards.pdf
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx

An Introduction to Elleptic Curve Cryptography

  • 1. An Introduction to Elliptic Curve Cryptography Tanner Prynn Elliptic Curves An elliptic curve is a set of points satisfying an equation of the form y2 = x3 + ax + b for coefficients a, b and variables x, y in some field F (of characteristic not 2 or 3). This type of equation is a Weierstrass equation, which is a condensed form of a general cubic equation. One additional restriction is placed on an elliptic curve, which is that 4a3 + 27b2 = 0. This condition ensures that the curve is non-singular, which allows us to find a tangent line to any point on the curve. Figure 1 shows two simple elliptic curves. Figure 1: The elliptic curves y2 = x3 − 3x + 1 and y2 = x3 − 2x + 2 The Group Law Define the set of points on the curve as C = {(x, y) | x, y ∈ F and y2 = x3 + ax + b} ∪ ∞ where ∞ is the point at infinity in the projective plane. There is an operation + which allows the composition of any two points on the curve. Figure 2 shows the geometric application of this operation. Figure 2: The + operation for two points on an elliptic curve To add two points together, take the line between them and find its third point of intersection with the curve, then reflect across the x-axis. To add a point to itself, use the tangent line. The identity of + is ∞. The inverse of a point is its reflection across the x-axis. From the geometric definition, it is possible to derive an algebraic formula for the + operation by finding the equation of the line, and solving the resulting system of equations. The Discrete Logarithm Problem Given a group G with operation ∗ we can define a map · : Z × G → G by n · g → g ∗ g ∗ · · · ∗ g n times On an elliptic curve, the map · is equal to the repeated addition of a point to itself. We call this map point multiplication. For a point P on C, nP = P + P + · · · + P. If we have two points P, Q on C where nP = Q, then n is the elliptic-curve discrete logarithm (ECDL) of Q with respect to P. Point multiplication is an example of a trap-door function: a function which is simple to compute in one direction but difficult to compute in the other direction. This is the exact operation we will use to construct a cryptosystem. Naive Multiplication If an attacker knows P and nP, where N is the order of C, then they can solve the discrete logarithm problem by testing if mP = nP for each m, 1 ≤ m < N. This is the simplest solution to the ECDL, and will complete in O(NM) time, where M is the cost of an elliptic curve multiplication. For small curves, a computer performing naive multiplication will quickly solve this problem. However, there is no known algorithm which feasibly solves the ECDL on a generic cryptographic curve. This problem, known as the Elliptic Curve Discrete Logarithm Problem (ECDLP), is what elliptic curve cryptography is based on. Generic attacks against the ECDLP all have complexity which is a function of the order of the curve, so cryptographic curves are picked such that their order is very large: more than 2200 . Baby-Step Giant-Step The Baby-Step Giant-Step algorithm rewrites the point Q = nP as (im + j)P, with m = √ N . Then jP is computed for 0 ≤ j < m and stored. Finally, naive multiplication is used to find imP for 0 ≤ i < m, and subtracted from nP to solve for jP. Baby-Step Giant-Step for ECDLP m ← √ N for 0 ≤ j < m do Compute and store (j, jP) end for for 0 ≤ i < m do Compute Q − imP if Q − imP = jP for some j then return n ≡ j + im end if end for Baby-Step Giant-Step completes in O( √ NM) time and O( √ N) space complexity. This is a large improvement over naive multiplication, but still very slow on cryptographic curves. Elliptic Curve Diffie-Hellman Exchange One of the major problems of pre-modern cryptography was that every method of communication required a shared key. This problem is called the key distribution problem. Essentially, if two parties wanted to communicate they needed to meet and exchange a key - there was no way to communicate over an insecure channel without first communicating over a secure channel. The Elliptic Curve Diffie-Hellman Key Exchange (ECDHE) is a method of key derivation which allows two users to derive a shared key over an insecure channel. Elliptic Curve Diffie-Hellman Exchange 1. Alice and Bob agree on a curve C and a generating point P. (In practice, these parameters are standardized and known to everyone.) 2. Alice generates a random, secret integer a and sends Bob aP. 3. Bob generates a random, secret integer b and sends Alica bP. 4. Alice computes a(bP). 5. Bob computes b(aP). 6. Alice and Bob now share the key abP. Elliptic Curve Point Multiplication Point multiplications is one component of Elliptic Curve Cryptography which is very important in practice. Consider the computation of nP for a point P and integer n. Naive multiplication by repeated addition is very slow (exponential). The Double-and-Add algorithm computes nP by looping through the bits of n, adding on a 1 bit and doubling on a 0 or 1 bit. Double-and-Add is much faster than repeated addition, but it leaks information about n by performing a different number of operations based on the binary representation. This information leakage makes an implementation which uses Double-and-Add vulnerable to timing or power analysis. A real-world implementation of ECDHE will use the Montgomery Ladder, which operates in constant time. Implementation of ECDHE on Curve25519 The result of my research is a pedagogical implementation of the Elliptic-Curve Diffie-Hellman Exchange, using Bernstein’s Curve25519. Curve25519 is an elliptic curve in Montgomery form, over the prime field Zp where p = 2255 − 19. # Create ECDH users alice and bob a = ECDH::User.new(’alice’) b = ECDH::User.new(’bob’) # alice initiates DH exchange with bob a.negotiate(b) # alice and bob now have a shared secret key a.keys[’bob’] == b.keys[’alice’] # true SISTA - The University of Arizona - Tucson, Arizona Tanner Prynn http://tannerprynn.com