SlideShare a Scribd company logo
Elliptic Curves: Modern Cryptography
Eric Seifert
May 4, 2014
Abstract
This paper explains the mathematics behind elliptic curve cryptography, its
various protocols, and the importance of elliptic curve encryption systems. Math-
ematical topics include group theory, rings, and modular arithmetic. Additionally,
we discuss elliptic curves as intellectual property and their legal ramiļ¬cations.
1 Introduction
The concept of transmitting information to a third party via a secure network has been
of interest since antiquity. Over time technology advancements changed the methods of
encrypting information. Methods for transmitting information were not strictly reliant
on transposition or substitution ciphers. Much of the increased need for cryptography
was due in part to World War I and the later World War II [3].
The spark of the computer age of the latter half of the 20th century caused the
use of cryptography to accelerate. The power and capabilities of the computer allowed
cryptography to become even more sophisticated. American cryptographers Whitļ¬eld
Diļ¬ƒe and Martin Hellmanā€™s paper in 1976 [3] was a signiļ¬cant step in the development
of what is now known as public key cryptography. In 1977, American cryptographers
Ronald Rivest, Adi Shamir, and Len Adleman used Diļ¬ƒe and Hellmanā€™s ļ¬ndings to
develop a practical encryption system known as the RSA algorithm [15].
However, booming technological advancements caused a demand for more secure en-
cryption systems. In the 1980s, computers started seeing improvements in computational
speeds, improving their ability to compute more complex mathematical problems faster.
There was a growing need for more computationally diļ¬ƒcult encryption systems.
In 1985 Neal Koblitz [9] and Victor S. Miller [11] independently suggested the use
of elliptic curves as an encryption system. In 2004, elliptic curves entered wide use.
This was due largely in part to the lack of technology available to handle such complex
calculations as those of elliptic curves. The computationally intractable mathematics of
elliptic curves allows them to utilize more eļ¬ƒcient key sizes while oļ¬€ering the same level
of security as their RSA counterparts. This complexity is magniļ¬ed by the types of time
algorithms used to solve them. The three main types are polynomial, sub-exponential,
and exponential. The names stem from their algebraic properties. For example, an
elliptic curve time algorithm is a varient of an exponential time algorithm.
In this paper we will discuss the underlying abstract mathematics used in elliptic curve
algorithms, present current protocols, and ļ¬nally end with a discussion about patents and
current issues surrounding elliptic curve cryptography. Speciļ¬cally, in Section 2 we will
introduce the elliptic curve over the real numbers and deļ¬ne the associated algebraic
1
properties. Then in Section 3 we introduce the algrebraic properties of rings. Section 4
will introduce non-elliptic curve encryption protocols. Then Section 5 introduces two
main elliptic curve encryption systems. Finally, Section 6 concludes with a discussion of
patenting elliptic curves for use and various legal ramiļ¬cations.
2 Elliptic Curves over the Real Numbers
An elliptic curve is a cubic curve with genus one deļ¬ned over some set of numbers. A
genus refers to the largest number of nonintersecting closed curves that can be drawn on
a surface without seperation.
In practice, elliptic curve encryption systems utilize 19th Century German mathemati-
cian Karl Weierstrassā€™s elliptic curve equation. This stems from the Weierstrass Elliptic
Function (notably documented as ā„˜). Much of Weierstrassā€™s work centered around Cal-
culus, but his work on elliptic curves inļ¬‚uenced much of modern cryptography [8].
Weierstrass equations are commonly used for their accessibility over any set of num-
bers. A Weierstrass equation is any equation of the following
y2
+ ay = x3
+ bx2
+ cxy + dx + e where a, b, c, d, e āˆˆ R
Though the coeļ¬ƒcients of the Weierstrass equation above are deļ¬ned over R, they
could also be deļ¬ned over other sets, which we will discuss later. A commonly used
Weierstrass equation is as follows
y2
= x3
+ dx + e where d, e āˆˆ R, and a = b = c = 0
In practice and for eļ¬ƒciency reasons, the National Institute of Standards and Tech-
nology recommends elliptic encryption systems to use the above equation with d = āˆ’3
[13]. One can also consider other variants of cubic curves such as the general cubic curve
ax3
+ b2
y + cxy2
+ dy3
+ ex2
+ fxy + gy2
+ hx + iy + j = 0
Here a, b, c, d, e, f, g, h, i, j āˆˆ S, where S is a ļ¬eld, which we will discuss below. We
will focus on the Weierstrass equation since it is most commonly used in practice.
2.1 Elliptic Curve Properties
We now explain some important properties of an elliptic curve by deļ¬ning an algebraic
structure on a collection of points on a ļ¬xed elliptic curve. These properties are vital to
the use of elliptic curves in cryptography.
2.1.1 Point Addition
We deļ¬ne elliptic curve addition as follows:
Deļ¬nition 2.1. Let P, R and Q be points on the elliptic curve E. Then P + Q ā‰” R,
where R is Rāˆ’1
reļ¬‚ected over the x-axis and Rāˆ’1
is the point of intersection between the
elliptic curve and the line that contains P and Q. Figure 1 illustrates this concept.
2
1
āˆ’1
āˆ’2
1āˆ’1āˆ’2
ā€¢P
ā€¢
Rāˆ’1
ā€¢
Q
ā€¢R
Figure 1: Graph showing elliptic curve point addition
We use this deļ¬nition of addition because, due to a special property of elliptic curves,
it will allow us to have additive inverses. Furthermore, in order to understand why we
reļ¬‚ect the point R in Deļ¬nition 2.1 we need to deļ¬ne the identity of an elliptic curve.
Deļ¬nition 2.2. Let P be a point on the elliptic curve E, and O be the point at inļ¬nity,
then P + O = O + P = P. Figure 2 illustrates this concept.
1
āˆ’1
āˆ’2
1āˆ’1āˆ’2
ā€¢P
ā€¢
Pāˆ’1
ā€¢O
Figure 2: Graph showing the identity at inļ¬nity
3
Deļ¬nition 2.1 implies that P + Pāˆ’1
= O, where Pāˆ’1
is sometimes denoted as āˆ’P.
Graphically, the line created between P and O is assumed to be a vertical line, intersecting
the curve at Pāˆ’1
. This implies the point at inļ¬nity is the identity element.
2.1.2 Point Doubling
Rather than computing repeated sums, most encryption algorithms use point doubling
to reduce run time. Instead of considering two points on the curve we will consider one
point P on the elliptic curve E. If we add P to itself this is equivalent to drawing a
tangent line through P. This line intersects the curve at point (2P)āˆ’1
. After reļ¬‚ection
we see that P + P = 2P. Figure 3 illustrates this concept.
1
āˆ’1
āˆ’2
1āˆ’1āˆ’2
ā€¢
P
ā€¢
ā€¢
(2P)āˆ’1
2P
Figure 3: Graph showing elliptic curve point doubling
Example 2.1. Instead of calculating 15P = P + P + Ā· Ā· Ā· + P
15 times
, we can more eļ¬ƒciently
calculate this using point doubling. Namely, 15P = P +2(P +2(P +2P)). This eļ¬€ectively
reduces the number of operations from 15 to six [16].
To actually evaluate 2P depends on the type of elliptic curve. There are speciļ¬c
formulae that solve for the point doubling value. For example, the interested reader can
verify that for the elliptic curve y2
= x3
+ ax + b, 2P = R, where P = (Px, Py) and
R = (Rx, Ry). The point R is calculated as follows
Rx = s2
āˆ’ 2Px and Ry = s(Px āˆ’ Rx) āˆ’ Py where s = (3P2
x + a)/(2Py) (1)
Multiple point doubling is one of the main reasons that makes Elliptic Curve algo-
rithms so eļ¬€ective.
4
2.2 Group Deļ¬nition
In conjunction with the property of elliptic curve addition, elliptic curves form an alge-
braic structure known as a group.
Deļ¬nition 2.3. A group (G, ā—¦) consists of a set of elements G and a binary operation ā—¦
that satisfy the following axioms as deļ¬ned from Judson [7]:
ā€¢ (Associativitiy) a ā—¦ (b ā—¦ c) = (a ā—¦ b) ā—¦ c for all a, b, c āˆˆ G.
ā€¢ (Identity) There exists an element e āˆˆ G such that a ā—¦ e = e + a = a for all a āˆˆ G.
ā€¢ (Inverse) For each a āˆˆ G, there exists and element aāˆ’1
āˆˆ G, such that a ā—¦ aāˆ’1
=
aāˆ’1
ā—¦ a = e.
Now we can deļ¬ne a group (E, +) based on the elliptic curve E. This is known as
the elliptic group. Elliptic curve addition is associative since P + (Q + R) = (P + Q) + R
for all P, Q, R āˆˆ E. Every element of the elliptic group contains an identity element we
call O. Finally, inverses exists since by deļ¬nition P + Pāˆ’1
= O. For these reasons, the
elliptic group is indeed a group.
3 Prime Modulus and Binary Fields
In the previous section we discussed elliptic curves over R. However in practice, com-
puters have a diļ¬ƒcult time working with an inļ¬nite set of numbers. For this reason,
early encryption systems such as RSA rely heavily on a basic concept of number theory:
modular arithmetic. Mathematically, modular arithmetic is deļ¬ned as follows
Deļ¬nition 3.1. Let a and b be two integers and suppose that n āˆˆ N then a is congruent
to b modulo n if a āˆ’ b is divisible by n; that is, a āˆ’ b = nk for some k āˆˆ Z. We denote
by Zn the set of equivalence classes of the integers mod n, as deļ¬ned from Judson [7].
3.1 Rings
Though we deļ¬ned Zn as the set of equivalence class of the integers mod n, we can also
deļ¬ne it as a set with two binary operations, addition and multiplication.
Theorem 3.1. Let a1 ā‰” b1 mod n and a2 ā‰” b2 mod n. Then a1 + a2 ā‰” (b1 + b2) mod n.
Furthermore, a1a2 ā‰” (b1b2) mod n.
The resulting system has a nice algebraic structure called a ring, which is deļ¬ned as
follows
Deļ¬nition 3.2. A nonempty set R is a ring if it has two closed binary operations,
addition and multiplication, satisfying the following conditions.
ā€¢ (Commutativity in Addition) a + b = b + a for a, b āˆˆ R.
ā€¢ (Associativity in Addition) (a + b) + c = a + (b + c) for a, b, c āˆˆ R.
ā€¢ (Additive Identity) There exists an element 0 in R such that a+0 = a for all a āˆˆ R.
5
ā€¢ (Additive Inverse) For every element a āˆˆ R, there exists an element āˆ’a āˆˆ R such
that a + (āˆ’a) = 0.
ā€¢ (Associativity in Multiplication) (ab)c = a(bc) for a, b, c āˆˆ R.
ā€¢ (Distributivity) For a, b, c āˆˆ R, a(b + c) = ab + ac and (a + b)c = ac + bc.
Notice that in a ring every element has an addiditive inverse. A special type of ring
is a ļ¬eld.
Deļ¬nition 3.3. A ļ¬eld is a ring for which ab = ba for all a, b āˆˆ R, there exists a nonzero
element 1 āˆˆ R such 1a = a1 = a for every a āˆˆ R, and any nonzero element a in R has a
unique element aāˆ’1
such that aāˆ’1
a = aāˆ’1
a = 1.
Notice that in a ļ¬eld every element has both an addiditive and multiplicative inverse.
We have already seen an example of a ļ¬eld.
Example 3.1. We can see that Z3 is a ļ¬eld because every element has a multiplicative
inverse, there exists an identity element, and it is commutative. However, Z6 is not a
ļ¬eld because not every element has a multiplicative inverse. For example consider the
element 2. We see that 2 multiplied by any other element of Z6 yields only 0, 2 or 4.
When deļ¬ning the types of ļ¬elds used in elliptic curve cryptography, we must deļ¬ne
the following theorem that explains the connection between a ļ¬eld and the ring Zn.
Theorem 3.2. If p is prime then every element of Zp has a multiplicative inverse. Fur-
thermore, Zp is a ļ¬eld.
Proof. Commutativity of addition and multiplication follow from Theorem 3.1. We want
to show that any element x of Zp has a multiplicative inverse. Let x be some integer such
that 0 < x < p. Then gcd(x, p) = 1. By the Eucilidean Algorithm there exists integers a
and b such that ap + bx = 1. Then bx = 1 āˆ’ ap = 1 mod p, which implies bx = 1. Thus
any element x āˆˆ Zp has a multiplicative inverse. Therefore Zp is a ļ¬eld.
The characteristic p of ļ¬eld F is the smallest positive integer such that for every
nonzero element Ī± āˆˆ F, pĪ± = 0.
Proposition 3.1. If F is a ļ¬nite ļ¬eld of characteristic p, then the order of F is pn
for
some n āˆˆ N.
As an example, see Judson [7].
3.2 The Galois Field
Fundamentally, all ļ¬elds of order pn
, where p is prime, are the same in structure to one
another. Therefore, there exists only one ļ¬eld of order pn
we call the Galois Field; written
as Fpn or GF(pn
). The Galois Field is a ļ¬nite ļ¬eld whose order is a prime power. Notice
that when p is prime, Zp is the Galois Field Fp. When p = 2, the Galois Field is known as
a binary ļ¬eld because the elements of the ļ¬eld are the same in structure to the integers
modulo 2.
Example 3.2. We can clearly see that when n = 1 the binary ļ¬eld is simply F2, which
is the same in structure to the integers modulo 2.
6
When thinking of F2n we can think of its elements in terms of a polynomial represen-
tation with coeļ¬ƒcients in Z2[x] = Z2 mod p(x) where p(x) is an irreducible polynomial
(i.e. a polynomial that is not factorable). Then given an irreducible polynomial of degree
n, we can construct a ļ¬eld of prime power. It is important to note that such a polynomial
exists for any n and any p.
Example 3.3. Let p(x) be an irreducible polynomial in Z2[x] with degree n. Then
Z2[x]/āŸØp(x)āŸ© is F2n where āŸØp(x)āŸ© = {p(x)q(x) : q(x) āˆˆ Z2[x]} (i.e. the set of polynomials
generated by p(x)). It is clear that both Z2[x] and āŸØp(x)āŸ© have inļ¬nite order. However,
Z2[x]/āŸØp(x)āŸ© has order p2
.
Example 3.4. Suppose we have the irreducible polynomial p(x) = x3
+x2
+x+1, where
p(x) āˆˆ Z2[x]. Then Z2[x]/āŸØp(x)āŸ© is F23 and has elements {0, 1, x, x2
, x + 1, x2
+ x, x2
+
1, x2
+x+1}. Here the polynomial basis is deļ¬ned as {x2
, x, 1}, where the polynomial basis
is the set of single polynomials that in linear combination can represent every polynomial
element in the given Galois Field.
Example 3.4 uses the Galois Field F23 which is equivalent to F8 or a ļ¬nite ļ¬eld of
order 8. Thus it is possible to create ļ¬nite ļ¬elds of non-prime order. Though there exists
no ļ¬eld of order 6 because there exists no prime number such that pn
= 6 for n āˆˆ N.
Example 3.4 provides further insight into the binary ļ¬eld. Each element of the poly-
nomial p(x) = x3
+ x2
+ x + 1 over Z2 can be expressed as a binary sequence. For
example, the element x2
+ x can be expressed as (1, 1, 0), whereas x + 1 is called (0, 1, 1).
Combinatorically, one can see that over Z2 there are 23
binary sequences of length 3.
Furthermore, if m(x) is irreducible over Zp with degree n, then |Z2[x]/āŸØp(x)āŸ©| = pn
and
there exists pn
p-inary sequences of length n.
The value of the Galois Field when p = 2, is its ability to represent large ļ¬nite ļ¬elds
in binary form. Together, these provide eļ¬ƒcient computing for the complex algorithms
of elliptic curve cryptography.
In terms of notation, E(Fpn ) refers to an elliptic curve E over prime ļ¬eld Fpn . We
will use this notation when we discuss elliptic curve algorithms in Section 5.
4 Cryptographic Protocols
Cryptography is the study of techniques for securing communication in the presence of
third-party adversaries. Encryption is a subset of cryptography aiming at developing
algorithms to obscure information passed during communication. There are two types
of encryption: symmetric key and public key encryption. Both types of encryption in-
volve two communicating parties and a third party commonly called the attacker. In
symmetric key encryption the two parties must agree upon a private key for both en-
cryption and decryption before communicating. The key acts as the means to determine
the functional output of the encryption algorithm. In contrast, public key encryption in-
volves asymmetric key algorithms since there exists two diļ¬€erent keys used for encryption
and decryptionā€“a public encryption key and a private decryption key respectively. The
intention is that it should be nearly impossible to calculate the private key given only
the public key. This diļ¬ƒculty is due to the mathematical complexity of the encryption
algorithms and is of interest to elliptic curve cryptography.
7
4.1 RSA Encryption
A notable encryption system that is an example of public key encryption is called RSA;
where its name stems from its 1977 inventors Ronald Rivest, Adi Shamir, and Len Adle-
man [15]. Algorithm 1 illustrates the RSA algorithm considering parties A and B.
Algorithm 1 RSA Encryption
INPUT: A picks picks two large prime numbers p and q.
OUTPUT: Shared Bā€™s message with A.
Step 1: A computes n = pq.
Step 2: A computes Ļ•(n) = (p āˆ’ 1)(q āˆ’ 1).
Step 3: A computes her d = eāˆ’1
mod Ļ•(n), for some e such that gcd(e, Ļ•(n)) = 1.
Step 4: B encrypts message m by computing me
mod n, publicly sending it to A.
Step 5: A receives the encrypted message c = me
mod n.
Step 6: A decrypts the encrypted message by computing cd
mod n = m.
In the above algorithm e and n are the public keys and d is the private key. In order to
prove the RSA algorithm we need to deļ¬ne the following theorem proven by 18th century
mathematician Leonhard Euler:
Theorem 4.1 (Eulerā€™s Theorem). Let a and n be integers such that n > 0 and
gcd(a, n) = 1. Then aĻ•(n)
ā‰” 1 mod n.
Proof that RSA works. We need to show (me
)d
mod n = m. We know that ed = 1 mod
Ļ•(n). This implies that Ļ•(n)|(ed āˆ’ 1). Therefore there exists some integer k such that
ed = 1 + kĻ•(n). Then (me
)d
ā‰” med
ā‰” m1+kĻ•(n)
ā‰” m Ā· (mĻ•(n)
)k
ā‰” m Ā· 1k
ā‰” m mod
n = m.
The security of RSA encyrption is magniļ¬ed by the diļ¬ƒculty of factoring the product
of two large prime numbers pq. Namely, it is diļ¬ƒcult to determine prime numbers a and
b given only ab. In practice, computers may take months in order to ļ¬nd a and b. An
RSA algorithm complexity has a subexponential time algorithm. Namely, the amount of
time needed to ļ¬nd a and b increases roughly exponentially as mentioned by Hankerson,
Vanstone, and Menezes in [5]. This may seem like a lot of time but as we will see, elliptic
curve algorithms require exponentially greater amount of time to crack.
4.2 The Diļ¬ƒe-Hellman Key Exchange
One of the more important problems that pertains to elliptic curve cryptography is the
discrete logarithm problem. The idea of the problem centers around the formula y = gx
.
On its own, y is easy to calculate if given g and x. However, solving for x when given y and
g proves to be much more diļ¬ƒcult. For that reason cryptographers have been interested
in desigining encyrption systems that center around the discrete logarithm problem.
Cryptographers Whitļ¬eld Diļ¬ƒe and Martin Hellman published one of the earliest
algorithms which centered around the discrete logarithm problem; notably called the
Diļ¬ƒe-Hellman Key Exchange [3]. This algorithm allows two parties with no prior knowl-
edge of one another to decide upon a secure key over a third party (i.e. an attacker).
The algorithm involves solving for x given y = gx
mod p, where p is prime, and g and y
are non-negative integers. However, given only g, p, and y it is often extremely diļ¬ƒcult
8
to solve for x where x = logg y mod p. Algorithm 2 illustrates the Diļ¬ƒe-Hellman Key
Exchange algorithm again assuming parties A and B.
Algorithm 2 Diļ¬ƒe-Hellman Key Exchange
INPUT: prime number p, element g from the group Zp.
OUTPUT: Shared secret over a third party.
Step 1: A picks a natural number a and computes ga
mod p and sends it to B.
Step 2: B picks a natural number b and computes gb
mod p and sends it to A.
Step 3: A computes (gb
)a
mod p.
Step 4: B computes (ga
)b
mod p.
In conclusion, A and B successfully shared the secret gab
over a third party. The
mathematical idea here centers around the fact that (ga
)b
mod p = (gb
)a
mod p proven
by Diļ¬ƒe and Hellman in [3]. The algorithm focuses on the diļ¬ƒculty ļ¬nding gab
given
public keys ga
, gb
, g, and p. This is known as the Diļ¬ƒe-Hellman Problem.
A similar problem can be applied to elliptic curves. We call this the elliptic curve
discrete logarithm problem. The idea is to ļ¬nd an integer n only given the point P and
the end result nP. Again the diļ¬ƒculty here is solving for n given limited information.
We will revist this topic in Section 5.2.
4.3 Digital Signature Algorithm
A Digital Signature is often an eļ¬€ective way at verifying that information sent to another
party has not been altered during transit and by verifying that the recipient is certain of
the originatorsā€™ identity. Unlike the previous algorithms, the digital signature algorithm
acts as a means to verify someoneā€™s identity. The algorithm is two-fold. The ļ¬rst party
generates the signature, which is then verifed by the second party. This helps insure the
validity of the ļ¬rst partyā€™s signature. The idea of a digital signature was ļ¬rst mentioned
by Whitļ¬eld Diļ¬ƒe and Martin Hellman in their 1976 paper ā€œNew Directions in Cryp-
tographyā€ [3] and further developed in 1995 by cryptographers Shaļ¬ Goldwasser, Silvio
Micali and Ronald Rivest [4]. The actual algorithm was proposed in 1991 by the National
Institute of Standards and Technology (NIST). The algorithm is currently attributed to
former NSA employee David W. Krause and is covered by a United States patent [10].
The algorithm stems from the discrete logarithm problem. Algorithm 3 illustrates the
algorithm for signature generation and Algorithm 4 illustrates the algorithm for signature
verļ¬cation.
9
Algorithm 3 Digital Signature: Signature Generation
INPUT: Message m.
OUTPUT: Signature (r, s).
Step 1: Choose a prime number q less than or equal to the output length of Secure
Hash Algorithm (H(Ā·))ā€“algorithm that maps data of arbitrary length to data of ļ¬xed
length; typically a bit string to a ļ¬xed hexidecimal representation.
Step 2: Choose a prime number p such that p āˆ’ 1 is a multiple of q.
Step 3: Choose an element x and k at random from [0, q āˆ’ 1].
Step 4: Choose an element h at random from [0, p āˆ’ 1].
Step 5: Compute g = h(pāˆ’1)/q
mod p.
Step 6: Compute y = gx
mod p.
Step 7: Compute r = (gk
mod p) mod q.
Step 8: Compute s = (kāˆ’1
(H(m) + xr)) mod q.
Algorithm 4 Digital Signature: Signature Veriļ¬cation
INPUT: Public key (p, q, g, y), private key (m, x), signature (r, s).
OUTPUT: Signature (r, s).
Step 1: Hash function H computes H(m) = e.
Step 2: Compute w = sāˆ’1
mod q.
Step 3: Compute u1 = ew mod q.
Step 4: Compute u2 = rsāˆ’1
mod q.
Step 5: Compute v = (gu1
yu2
mod p) mod q.
Step 6: If v = r then return(ā€œAccept the Signatureā€); Else return(ā€œReject Signatureā€).
We will not prove that the algorithm works, but the interested reader can consult the
proof in the NIST report on Digital Security Standards [12]. The idea purpose of the
algorithm is to make sure that the person who sent the signature is actually the correct
person. If v Ģø= r then the signature was not constructed by the signature generation
algorithm. This tells the verifying party that the signature created was not a correct
signature based on the input parameters.
Overall, the digital signature algorithmā€™s security relies on the complexity of the
discrete logarithm problem mod an integer. Furthermore, a brief introduction is necessary
for comparison with the elliptic curve digital signature algorithm mentioned in the next
section.
5 Elliptic Curve Protocols
In order to discuss the various elliptic curve protocols, we need to ļ¬rst illustrate how one
can prepare all of the necessary parameters for implementing a protocol.
5.1 Preparing for an Elliptic Curve Algorithm
Developing an algorithm based on an elliptic curve has many parameters to consider.
Currently and as of 1999, The National Institue of Standards and Technology (NIST)
documents ļ¬fteen elliptic curves and their various recommended parameters. We list the
parameter considerations.
10
1. Choice of Key Length
The key length is represented through a combination of a speciļ¬c based point G on
the elliptic curve E and the elliptic curve itself. We choose a base point G that has
large prime order r, where the order r of a point G is the smallest integer such that
rG = G + G + Ā· Ā· Ā· + G
r times
= O. The number of points on the curve is n = fr where
f is an integer such that f is not divisble by r. NIST recommends that the value
for f should be no smaller than 1 to optimize eļ¬ƒciency [13]. We are now gathering
more information to describe the curve.
2. Choice of Field
We focused our attention on prime characteristic ļ¬elds because they are the two
choices of underlying ļ¬elds recommended by NIST. The following table lists the
order of p followed by a ļ¬eld degree m (i.e. the degree of the polynomial represen-
tation of the ļ¬eld). Here āˆ„pāˆ„ refers to the length of the binary expansion of the
integer p.
Prime Field Binary Field
āˆ„pāˆ„ = 192 m = 163
āˆ„pāˆ„ = 224 m = 233
āˆ„pāˆ„ = 256 m = 283
āˆ„pāˆ„ = 384 m = 401
āˆ„pāˆ„ = 521 m = 571
Table 1: NIST Recommended Field Sizes [13]
For example, P-192 refers to a binary expansion of prime ļ¬eld āˆ„pāˆ„ = 192 and is
p = 6277101735386680763835789423207666416083908700390324961279.
Additionally, Curve K-163 refers to binary ļ¬eld m = 163 with a polynomial repre-
sentation degree of 163 and is as follows
p(t) = t163
+ t7
+ t6
+ t3
+ 1
where p(t) is the ļ¬eld polynomial representation of GF(2163
).
3. Choice of Basis
When using a binary ļ¬eld we use a basis to help interpret a bit string. NIST
recommends using either a polynomial basis or a normal basis. We explained a
polynomial basis in Example 3.4 but will not explain a normal basis. The interested
reader should consult [13] for more information about a normal basis.
4. Choice of Curve
An elliptic curve is either supersingular or non-supersinglar. An elliptic curve is
supersingular if its trace t is divisible by its characteristic p of Fq [6].
Supersingular curves satisfy
11
y2
+ ay = x3
+ bx + c where a, b, c āˆˆ R
while non-supersingular curves satisfy
y2
+ axy = x3
+ bx2
+ c where a, b, c āˆˆ R.
Supersingluar curves are not suitable for cryptography because of their ability to
reduce the discrete logarithm problem to one that is much easier to attack, according
to Rosing in [16]. For that reason, elliptic curve cryptography focuses on non-
supersingular curves.
NIST recommends either pseudo-random or special curves. Psuedo-random curves
are the most common and have coeļ¬ƒcients generated by a speciļ¬c cryptographic
hash algorithm. Special curves are curves that have selected coeļ¬ƒcients from un-
derlying ļ¬elds in order to optimize eļ¬ƒciency of the elliptic curve operations. These
types of curves deļ¬ned over F2n are also called Koblitz Curves, whose name stems
from mathematician Neal Koblitz, a prominent ļ¬gure in the ļ¬eld of elliptic curve
cryptography.
As documented in [13], there are currently 15 elliptic curves used in practice. The
ļ¬rst ļ¬ve curves are deļ¬ned over ļ¬ve diļ¬€erent prime ļ¬elds Fp with ļ¬ve diļ¬€erent
prime orders r and satisfy the following formula
y2
ā‰” x3
āˆ’ 3x + b mod p
where for eļ¬ƒciency reasons a = āˆ’3 and b satisļ¬es b2
c ā‰” āˆ’27 mod p, where c is the
output of the SHA-1 algorithm.
The last 10 curves are deļ¬ned over the binary ļ¬eld Fpn with 10 diļ¬€erent ļ¬eld degrees
m and are deļ¬ned as
y2
+ xy = x3
+ ax2
+ b where a, b āˆˆ R (2)
The psuedo-random curves satisfy Equation 2 with a = 1, while the Koblitz curves
satisfy Equation 2 with b = 1 and a = 0 or 1 (dependent on the key length variable
f).
5. Choice of Base Point
NIST also provides a base point G = (Gx, Gy) with order r as a general way to
follow their speciļ¬c computations. The base point ultimately acts like a seed when
computing the coeļ¬ƒcients of the curve. It is private information and for that reason,
one should not use the provided base point in [13] but generate their own.
12
5.2 Elliptic Curve Diļ¬ƒe-Hellman Key Exchange
Now that we have provided the foundations of the mathematics and the requirements
of preparing an elliptic curve algorithm, we begin discussing the Elliptic Curve Diļ¬ƒe-
Hellman Key Exchange. Algorithm 5 illustrates the Elliptic Curve Diļ¬ƒe-Hellman Algo-
rithm again assuming parties A and B.
Algorithm 5 Elliptic Curve Diļ¬ƒe-Hellman
INPUT: E(Fpn ), point P with order r
OUTPUT: Shared secret over a third party
Step 1: A and B choose a private key nA and nB in the interval [1, r āˆ’ 1] respectively
Step 2: A and B compute and trade QA = nAP āˆˆ E(Fpn ) and QB = nBP āˆˆ E(Fpn )
respectively
Step 3: A and B compute nAQB āˆˆ E(Fpn ) and nBQA āˆˆ E(Fpn ) respectively
In conclusion, nAQB = nBQA which means A and B have successfully decided upon
a shared secret key over a third party.
In general, the concept behind the algorithm is the same as in Algorithm 2. An
attacker would have to ļ¬nd nAnBP when only given nAP, nBP, and P making it dif-
ļ¬cult to calculate the secret. The diļ¬€erence lies with the eļ¬ƒciency of the elliptic curve
calculations. According to the National Security Agency it generally would take 2k āˆ’ 1
operations to attack an algorithm with a k-bit key size [1]. Ideally, a secure public key
algorithm should use parameters that require at least 2k āˆ’ 1 operations to attack. Ta-
ble 2 illustrates a comparison between RSA and Diļ¬ƒe-Hellman key sizes and those using
elliptic curves.
As with all elliptic curve encryption systems, the mathematically diļ¬ƒcult aspect cen-
ters around the Elliptic Curve Discrete Logarithm Problem. The problem is similar to
the non-elliptic curve previously mentioned. However instead it relies on elliptic curve
point multiplication and the diļ¬ƒculty it is to solve for n given Q = nP, where P is a
point on the elliptic curve E.
It becomes increasingly diļ¬ƒcult to ļ¬nd n only given Q and P since in order to ļ¬nd n
one would have to continually test diļ¬€erent n values, each time computing the associate
mutliple point doublings. Given the complexity of only one point doubling as stated in
Equation 1, this task can easily become time consuming. For this reason, elliptic curves
require an exponential time algorithm to crack. Because the operations are more complex
to crack than its non-elliptic counterparts, the size of the private key can be much lower
as illustrated in Table 2.
Non-Elliptic Curve Elliptic Curve
Key Size (Bits) Key Size (Bits)
1024 160
2048 224
3072 256
7680 384
15360 521
Table 2: NIST Recommended Key Sizes [1]
13
5.3 Elliptic Curve Digital Signature Algorithm
A more common algorithm used in practice is the Elliptic Curve Digital Signature Al-
gorithm. The algorithm of Elliptic Curve Digital Signature is similar to the non-elliptic
curve algorithm. Algorithm 6 illustrates the algorithm for signature generation and Al-
gorithm 7 illustrates the algorithm for signature verļ¬cation as published by Johnson,
Menezes, and Vanstone in [6].
Algorithm 6 Elliptic Curve Digital Signature: Signature Generation
INPUT: E(Fpn ), point P, integer n, private key d, message m.
OUTPUT: Signature (r, s).
Step 1: Choose an element k at random from [1, n āˆ’ 1].
Step 2: Compute kP = (x1, y1).
Step 3: Compute r = x1 mod n. If r = 0 then go to step 1.
Step 4: Hash function H computes H(m) = e.
Step 5: Compute s = kāˆ’1
(e + dr) mod n. If s = 0 then go to step 1.
Step 6: Return (r, s).
Algorithm 7 Elliptic Curve Digital Signature: Signature Veriļ¬cation
INPUT: E(Fpn ), point P, integer n, public key Q = dP, message m, signature (r, s).
OUTPUT: Acceptance or rejection of the signature.
Step 1: Verify that r and s are integers in the interval [1, n āˆ’ 1]. If veriļ¬cation fails
return(ā€œReject Signatureā€).
Step 2: Hash function H computes H(m) = e.
Step 3: Compute w = sāˆ’1
mod n.
Step 4: Compute u1 = ew mod n and u2 = rw mod n.
Step 5: Compute X = u1P + u2Q = (x1, y1)
Step 6: If X = O return(ā€œReject Signatureā€)
Step 7: Compute v = x1 mod n.
Step 8: If v = r then return(ā€œAccept the Signatureā€); Else return(ā€œReject Signatureā€).
The digital signature algorithm and the elliptic curve digital signature algorithm are
conceptually the same with the diļ¬€erence centering on how their signature is calculated.
We provide the proof of signature veriļ¬cation.
Proof. We need to verify that the steps in the algorithm lead to the conclusion v = r.
We know from the signature generation that s = kāˆ’1
(e + dr). Rearranging we see
sāˆ’1
= k(e + dr)āˆ’1
. Then w = k(e + dr)āˆ’1
mod n which implies X = (ek(e + dr)āˆ’1
mod
n + drk(e + dr)āˆ’1
mod n)P since dP = Q. Furthermore, X = kP mod n. But v = x1
mod n = r. Therefore the conclusion veriļ¬es the signatureā€™s validity.
The security of the hash algorithm is another important aspect of the algorithm. An
insecure hash algorithm could cause an attacker to forge a signature. For example, a
third party E selects an integer l and computes the x coordinate of Q+lP mod n setting
it equal to r. E then can set s = r and compute e = rl mod n. In the event E ļ¬nds a
message m such that e = H(m), then (r, s) becomes a valid signature for m [5].
For elliptic curves, the algorithms necessary to crack require greater amount of com-
plexity. The current fastest algorithm known for solving the the elliptic curve discrete
14
logarithm problem is called the Pollardā€™s rho algorithm. The algorithmā€™s run time is based
on a probabilistic method for factoring a composite number N. For more information
consult Hankerson, Menezes, and Vanstoneā€™s result in [5].
6 Elliptic Curve Cryptography in Practice
In practice, acquiring elliptic curves to use for encrypting can be diļ¬ƒcult due to patent
laws. Above all, elliptic curves are intellectual property and thus come with many legal
considerations.
6.1 Intellectual Property
Despite the high security with using an elliptic curve algorithm, elliptic curves are in-
tellectual property and are patented formulas. Canadian company Certicom holds over
130 elliptic curve patents. However, this protection limits the use of elliptic curves in
academia and other venues [1]. For this reason, the National Security Administration
purchased licenses for all of Certicomā€™s intellectual property with the stipulation that
the property would only be used under NSA permission. Additionally, the license only
applies to prime ļ¬eld curves with a prime greater than 2255. This applies to only three
out of the 15 NIST approved curves. Other non-governmental vendors may receive a
license from the NSA to use their curves or negotiate a seperate license agreement with
Certicom [1]. As of 2009, Certicom is a wholly owned subsidary of BlackBerry Limited
previously known as Research in Motion.
However, the numerous Certicom patents poses a debate on patenting mathematics,
speciļ¬cally elliptic curves. Alone, an elliptic curve cannot legally be patented. Instead,
the elliptic curve must serve as a tool producing a tangible result. From Certicomā€™s
standpoint, they are patenting the mathematical process of using the elliptic curve in
a way that enhances previous known encryption systems. For that reason it is legal to
patent the actual curve since they use the curve in an algorithm to produce a tangible
result. Ultimately, they hope to proļ¬t oļ¬€ their monopolized ļ¬ndings [14].
On May 30th, 2007 Certicom ļ¬led a lawsuit against Sony Corporation for patent
infringement. Certain Sony technologies such as Blue-ray DVD players and Playstation 3
were found utilizing elliptic curve technologies without a license. Considering BlackBerry
Limited acquired Certicom for $106 million, shows the increasing value of this type of
technology. Furthermore, the NSA has urged a shift for elliptic curve cryptography for
its greater security and improved performance cabilities according to former Certicom
Director John Callahan in [2].
6.2 Future of Elliptic Curve Cryptography
In the future, elliptic curve cryptography could expand into the use of hyperelliptic
curves [16]. A hyperelliptic curve is simply an extension of an elliptic curve following
y2
= f(x) where f(x) is some polynomial with degree greater than 3. Naturally, the
number of operations to compute multiple point doublings would be higher allowing for
even greater security than with normal elliptic curves. However, technological advance-
ments have not yet discarded the security of elliptic curves to make hyperelliptic curves
more appealing. Unfortunately, the structure of hyperelliptic curves may make them
15
more attackable, according to Rosing in [16]. However, much of this area of cryptography
has not been explored for this statement to be valid.
7 Conclusion
The fundamentals of elliptic curve cryptography have stemed from decades of work from
notable cryptographers such as Diļ¬ƒe, Hellman, Koblitz, Miller, Rivest, Shamir, and
Adleman. The continued growth of computer technology has enable us to re-develop
previous algorithms using the more complex mathematics of elliptic curves. The core
success is due to the diļ¬ƒculty of solving the elliptic curve discrete logarithm problem
and the extremely diļ¬ƒcult task it is for a third party attacker to gain access to private
information. The beneļ¬ts of elliptic curve cryptography are simple: eļ¬ƒciency. With
something more complex, comes something more simple and eļ¬ƒcient to encrypt. The
only thing now is to see how the future of technology shapes elliptic curve cryptography.
16
References
[1] National Security Agency. The Case for Elliptic Curve Cryptography. http://www.
nsa.gov/business/programs/elliptic_curve.shtml, January 2009.
[2] John Callahan. Certicom Files Suit Against Sony for Patent Infringement. Certicom
Corporation: https://www.certicom.com/index.php/2007-press-releases/
20-certicom-files-suit-against-sony-for-patent-infringement, May 2007.
[3] Whitļ¬eld Diļ¬ƒe and Martin Hellman. New Directions in Cryptography. IEEE Trans-
actions on Information Theory, IT-22(6), November 1976.
[4] Shaļ¬ Goldwasser, Silvio Micali, and Ronald L Rivest. A digital signature scheme
secure against adaptive chosen message attacks. SIAM Journal on Computing,
17(2):281ā€“308, 1988.
[5] Darrel Hankerson, Scott Vanstone, and Alfred J. Menezes. Guide to Elliptic Curve
Cryptography. Springer Professional Computing. Springer, 2004.
[6] Don Johnson, Alfred Menezes, and Scott Vanstone. The Elliptic Curve Digital Signa-
ture Algorithm (ECDSA). International Journal of Information Security, 1(1):36ā€“63,
2001.
[7] Thomas W. Judson. Abstract Algebra: Theory and Applications. http://
abstract.ups.edu/, 2009. Accessed: 2014-05-04.
[8] Israel Kleiner. Excursions in the History of Mathematics: The State Space Method.
Operator theory, advances and applications. BirkhĀØauser, 2012.
[9] Neal Koblitz, Alfred Menezes, and Scott Vanstone. The State of Elliptic Curve
Cryptography. Number 19, pages 173ā€“193. November 2000.
[10] D.W. Kravitz. Digital signature algorithm, July 1993. US Patent 5,231,668.
[11] Victor S. Miller. Use of elliptic curves in cryptography. In Hugh C. Williams, editor,
Advances in Cryptology CRYPTO 85 Proceedings, volume 218 of Lecture Notes in
Computer Science, pages 417ā€“426. Springer Berlin Heidelberg, 1986.
[12] U.S. Department of Commerce, National Institute of Standards, and Technology.
Digital Security Standard (DSS). Technical Report 186-4, Federal Information Pro-
cessing Standards Publication, December 2013.
[13] National Institute of Standards and Technology. Recommended Elliptic Curves for
Federal Government Use. July 1999.
[14] Teresa Riordan. Patents; An appeals court says a mathematical formula can be
patented, if it is a moneymaker. New York Times, August 1998.
[15] Ronald L. Rivest, Adi Shamir, and Leonard M. Adleman. A Method for Obtaining
Digital Signatures and Public-Key Cryptosystems. Commun. ACM, 21(2):120ā€“126,
1978.
[16] Michael Rosing. Implementing Elliptic Curve Cryptography. Manning Pubs Co
Series. Manning Publications Company, 1999.
17

More Related Content

What's hot

Elliptic Curves and Elliptic Curve Cryptography
Elliptic Curves and Elliptic Curve CryptographyElliptic Curves and Elliptic Curve Cryptography
Elliptic Curves and Elliptic Curve Cryptography
Md. Al-Amin Khandaker Nipu
Ā 
Elliptic Curve Cryptography for those who are afraid of maths
Elliptic Curve Cryptography for those who are afraid of mathsElliptic Curve Cryptography for those who are afraid of maths
Elliptic Curve Cryptography for those who are afraid of maths
Martijn Grooten
Ā 
Cs6402 design and analysis of algorithms may june 2016 answer key
Cs6402 design and analysis of algorithms may june 2016 answer keyCs6402 design and analysis of algorithms may june 2016 answer key
Cs6402 design and analysis of algorithms may june 2016 answer key
appasami
Ā 
5.1 greedy 03
5.1 greedy 035.1 greedy 03
5.1 greedy 03
Krish_ver2
Ā 
Introduction to Elliptic Curve Cryptography
Introduction to Elliptic Curve CryptographyIntroduction to Elliptic Curve Cryptography
Introduction to Elliptic Curve Cryptography
David Evans
Ā 
Graph Traversal Algorithms - Depth First Search Traversal
Graph Traversal Algorithms - Depth First Search TraversalGraph Traversal Algorithms - Depth First Search Traversal
Graph Traversal Algorithms - Depth First Search Traversal
Amrinder Arora
Ā 
Lecture 8 nul col bases dim & rank - section 4-2, 4-3, 4-5 & 4-6
Lecture 8   nul col bases dim & rank - section 4-2, 4-3, 4-5 & 4-6Lecture 8   nul col bases dim & rank - section 4-2, 4-3, 4-5 & 4-6
Lecture 8 nul col bases dim & rank - section 4-2, 4-3, 4-5 & 4-6
njit-ronbrown
Ā 
Minimal spanning tree class 15
Minimal spanning tree class 15Minimal spanning tree class 15
Minimal spanning tree class 15Kumar
Ā 
Dynamic Programming - Part II
Dynamic Programming - Part IIDynamic Programming - Part II
Dynamic Programming - Part II
Amrinder Arora
Ā 
Eucledian algorithm for gcd of integers and polynomials
Eucledian algorithm for gcd of integers and polynomialsEucledian algorithm for gcd of integers and polynomials
Eucledian algorithm for gcd of integers and polynomials
SWAMY J S
Ā 
Planted Clique Research Paper
Planted Clique Research PaperPlanted Clique Research Paper
Planted Clique Research PaperJose Andres Valdes
Ā 
18 Basic Graph Algorithms
18 Basic Graph Algorithms18 Basic Graph Algorithms
18 Basic Graph Algorithms
Andres Mendez-Vazquez
Ā 
5.1 greedy
5.1 greedy5.1 greedy
5.1 greedy
Krish_ver2
Ā 
Euclid's Algorithm for Greatest Common Divisor - Time Complexity Analysis
Euclid's Algorithm for Greatest Common Divisor - Time Complexity AnalysisEuclid's Algorithm for Greatest Common Divisor - Time Complexity Analysis
Euclid's Algorithm for Greatest Common Divisor - Time Complexity Analysis
Amrinder Arora
Ā 
Seismic data processing
Seismic data processingSeismic data processing
Seismic data processing
Amin khalil
Ā 
Elliptic curve scalar multiplier using karatsuba
Elliptic curve scalar multiplier using karatsubaElliptic curve scalar multiplier using karatsuba
Elliptic curve scalar multiplier using karatsuba
IAEME Publication
Ā 
14 - 08 Feb - Dynamic Programming
14 - 08 Feb - Dynamic Programming14 - 08 Feb - Dynamic Programming
14 - 08 Feb - Dynamic Programming
Neeldhara Misra
Ā 
Algorithm chapter 9
Algorithm chapter 9Algorithm chapter 9
Algorithm chapter 9chidabdu
Ā 

What's hot (20)

Elliptic Curves and Elliptic Curve Cryptography
Elliptic Curves and Elliptic Curve CryptographyElliptic Curves and Elliptic Curve Cryptography
Elliptic Curves and Elliptic Curve Cryptography
Ā 
Elliptic Curve Cryptography for those who are afraid of maths
Elliptic Curve Cryptography for those who are afraid of mathsElliptic Curve Cryptography for those who are afraid of maths
Elliptic Curve Cryptography for those who are afraid of maths
Ā 
Cs6402 design and analysis of algorithms may june 2016 answer key
Cs6402 design and analysis of algorithms may june 2016 answer keyCs6402 design and analysis of algorithms may june 2016 answer key
Cs6402 design and analysis of algorithms may june 2016 answer key
Ā 
5.1 greedy 03
5.1 greedy 035.1 greedy 03
5.1 greedy 03
Ā 
Introduction to Elliptic Curve Cryptography
Introduction to Elliptic Curve CryptographyIntroduction to Elliptic Curve Cryptography
Introduction to Elliptic Curve Cryptography
Ā 
Lec 2-2
Lec 2-2Lec 2-2
Lec 2-2
Ā 
Graph Traversal Algorithms - Depth First Search Traversal
Graph Traversal Algorithms - Depth First Search TraversalGraph Traversal Algorithms - Depth First Search Traversal
Graph Traversal Algorithms - Depth First Search Traversal
Ā 
Lecture 8 nul col bases dim & rank - section 4-2, 4-3, 4-5 & 4-6
Lecture 8   nul col bases dim & rank - section 4-2, 4-3, 4-5 & 4-6Lecture 8   nul col bases dim & rank - section 4-2, 4-3, 4-5 & 4-6
Lecture 8 nul col bases dim & rank - section 4-2, 4-3, 4-5 & 4-6
Ā 
Minimal spanning tree class 15
Minimal spanning tree class 15Minimal spanning tree class 15
Minimal spanning tree class 15
Ā 
Dynamic Programming - Part II
Dynamic Programming - Part IIDynamic Programming - Part II
Dynamic Programming - Part II
Ā 
Eucledian algorithm for gcd of integers and polynomials
Eucledian algorithm for gcd of integers and polynomialsEucledian algorithm for gcd of integers and polynomials
Eucledian algorithm for gcd of integers and polynomials
Ā 
Planted Clique Research Paper
Planted Clique Research PaperPlanted Clique Research Paper
Planted Clique Research Paper
Ā 
18 Basic Graph Algorithms
18 Basic Graph Algorithms18 Basic Graph Algorithms
18 Basic Graph Algorithms
Ā 
5.1 greedy
5.1 greedy5.1 greedy
5.1 greedy
Ā 
Ecc2
Ecc2Ecc2
Ecc2
Ā 
Euclid's Algorithm for Greatest Common Divisor - Time Complexity Analysis
Euclid's Algorithm for Greatest Common Divisor - Time Complexity AnalysisEuclid's Algorithm for Greatest Common Divisor - Time Complexity Analysis
Euclid's Algorithm for Greatest Common Divisor - Time Complexity Analysis
Ā 
Seismic data processing
Seismic data processingSeismic data processing
Seismic data processing
Ā 
Elliptic curve scalar multiplier using karatsuba
Elliptic curve scalar multiplier using karatsubaElliptic curve scalar multiplier using karatsuba
Elliptic curve scalar multiplier using karatsuba
Ā 
14 - 08 Feb - Dynamic Programming
14 - 08 Feb - Dynamic Programming14 - 08 Feb - Dynamic Programming
14 - 08 Feb - Dynamic Programming
Ā 
Algorithm chapter 9
Algorithm chapter 9Algorithm chapter 9
Algorithm chapter 9
Ā 

Viewers also liked

Google lme4
Google lme4Google lme4
Google lme4Ben Bolker
Ā 
TPF-Utlities - Exploitatie
TPF-Utlities - ExploitatieTPF-Utlities - Exploitatie
TPF-Utlities - Exploitatiesandrineeeman
Ā 
Intro to linux os
Intro to linux osIntro to linux os
Intro to linux os
Ardian Haxha
Ā 
Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...
Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...
Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...
Yoshihiro Mizoguchi
Ā 
Probability powerpoint presentation assignment two
Probability powerpoint presentation assignment twoProbability powerpoint presentation assignment two
Probability powerpoint presentation assignment two
Amy Wilson
Ā 
Probability (1)
Probability (1)Probability (1)
Probability (1)
chaitu282693
Ā 
math bio for 1st year math students
math bio for 1st year math studentsmath bio for 1st year math students
math bio for 1st year math students
Ben Bolker
Ā 
Casino Mathematics
Casino MathematicsCasino Mathematics
Casino Mathematics
John Piorkowski
Ā 
Introduction to Casino Mathematics
Introduction to Casino MathematicsIntroduction to Casino Mathematics
Introduction to Casino Mathematics
Ramachandar Siva
Ā 
CONIC SECTIONS AND ITS APPLICATIONS
CONIC SECTIONS AND ITS APPLICATIONSCONIC SECTIONS AND ITS APPLICATIONS
CONIC SECTIONS AND ITS APPLICATIONS
Jaffer Sheriff
Ā 
Applications of conic sections3
Applications of conic sections3Applications of conic sections3
Applications of conic sections3
Iram Khan
Ā 
Probability Powerpoint
Probability PowerpointProbability Powerpoint
Probability Powerpointspike2904
Ā 

Viewers also liked (15)

Google lme4
Google lme4Google lme4
Google lme4
Ā 
TPF-Utlities - Exploitatie
TPF-Utlities - ExploitatieTPF-Utlities - Exploitatie
TPF-Utlities - Exploitatie
Ā 
Intro to linux os
Intro to linux osIntro to linux os
Intro to linux os
Ā 
Career sharing fsl
Career sharing fslCareer sharing fsl
Career sharing fsl
Ā 
Hyperbolas
HyperbolasHyperbolas
Hyperbolas
Ā 
Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...
Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...
Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...
Ā 
Probability powerpoint presentation assignment two
Probability powerpoint presentation assignment twoProbability powerpoint presentation assignment two
Probability powerpoint presentation assignment two
Ā 
Probability (1)
Probability (1)Probability (1)
Probability (1)
Ā 
math bio for 1st year math students
math bio for 1st year math studentsmath bio for 1st year math students
math bio for 1st year math students
Ā 
Casino Mathematics
Casino MathematicsCasino Mathematics
Casino Mathematics
Ā 
Introduction to Casino Mathematics
Introduction to Casino MathematicsIntroduction to Casino Mathematics
Introduction to Casino Mathematics
Ā 
CONIC SECTIONS AND ITS APPLICATIONS
CONIC SECTIONS AND ITS APPLICATIONSCONIC SECTIONS AND ITS APPLICATIONS
CONIC SECTIONS AND ITS APPLICATIONS
Ā 
Conic section ppt
Conic section pptConic section ppt
Conic section ppt
Ā 
Applications of conic sections3
Applications of conic sections3Applications of conic sections3
Applications of conic sections3
Ā 
Probability Powerpoint
Probability PowerpointProbability Powerpoint
Probability Powerpoint
Ā 

Similar to elliptic-curves-modern

SYMMETRIC BILINEAR CRYPTOGRAPHY ON ELLIPTIC CURVE AND LIE ALGEBRA
SYMMETRIC BILINEAR CRYPTOGRAPHY ON ELLIPTIC CURVE  AND LIE ALGEBRASYMMETRIC BILINEAR CRYPTOGRAPHY ON ELLIPTIC CURVE  AND LIE ALGEBRA
SYMMETRIC BILINEAR CRYPTOGRAPHY ON ELLIPTIC CURVE AND LIE ALGEBRA
BRNSS Publication Hub
Ā 
An Introduction to ECDSA and it's use in Bitcoin (1)
An Introduction to ECDSA and it's use in Bitcoin (1)An Introduction to ECDSA and it's use in Bitcoin (1)
An Introduction to ECDSA and it's use in Bitcoin (1)Hakeem Hunte
Ā 
Survey ecc 09june12
Survey ecc 09june12Survey ecc 09june12
Survey ecc 09june12IJASCSE
Ā 
Elliptic Curves as Tool for Public Key Cryptography
Elliptic Curves as Tool for Public Key CryptographyElliptic Curves as Tool for Public Key Cryptography
Elliptic Curves as Tool for Public Key Cryptography
inventy
Ā 
Low Power FPGA Based Elliptical Curve Cryptography
Low Power FPGA Based Elliptical Curve CryptographyLow Power FPGA Based Elliptical Curve Cryptography
Low Power FPGA Based Elliptical Curve Cryptography
IOSR Journals
Ā 
Low Power FPGA Based Elliptical Curve Cryptography
Low Power FPGA Based Elliptical Curve CryptographyLow Power FPGA Based Elliptical Curve Cryptography
Low Power FPGA Based Elliptical Curve Cryptography
IOSR Journals
Ā 
Lecture50
Lecture50Lecture50
Lecture50
Muhammad Kamran
Ā 
Hormann.2001.TPI.pdf
Hormann.2001.TPI.pdfHormann.2001.TPI.pdf
Hormann.2001.TPI.pdf
ssuserbe139c
Ā 
Cryptography Baby Step Giant Step
Cryptography Baby Step Giant StepCryptography Baby Step Giant Step
Cryptography Baby Step Giant Step
SAUVIK BISWAS
Ā 
An Application Of Graph Theory In Cryptography
An Application Of Graph Theory In CryptographyAn Application Of Graph Theory In Cryptography
An Application Of Graph Theory In Cryptography
Lori Mitchell
Ā 
A SURVEY ON ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM AND ITS VARIANTS
A SURVEY ON ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM AND ITS VARIANTSA SURVEY ON ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM AND ITS VARIANTS
A SURVEY ON ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM AND ITS VARIANTS
csandit
Ā 
Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...
Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...
Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...
Editor IJCATR
Ā 
Lect no 13 ECC.ppt
Lect no 13 ECC.pptLect no 13 ECC.ppt
Lect no 13 ECC.ppt
DEEPAK948083
Ā 
Lect no 13 ECC.ppt
Lect no 13 ECC.pptLect no 13 ECC.ppt
Lect no 13 ECC.ppt
DEEPAK948083
Ā 
CRYPTOGRAPHY USING ELLIPTIC CURVE WITH MATRIX SCRAMBLING
CRYPTOGRAPHY USING ELLIPTIC CURVE WITH MATRIX SCRAMBLINGCRYPTOGRAPHY USING ELLIPTIC CURVE WITH MATRIX SCRAMBLING
CRYPTOGRAPHY USING ELLIPTIC CURVE WITH MATRIX SCRAMBLING
Journal For Research
Ā 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...ijceronline
Ā 
Some Engg. Applications of Matrices and Partial Derivatives
Some Engg. Applications of Matrices and Partial DerivativesSome Engg. Applications of Matrices and Partial Derivatives
Some Engg. Applications of Matrices and Partial Derivatives
SanjaySingh011996
Ā 
An Introduction to Elleptic Curve Cryptography
An Introduction to Elleptic Curve CryptographyAn Introduction to Elleptic Curve Cryptography
An Introduction to Elleptic Curve Cryptography
Derek Callaway
Ā 
Design and Analysis of algorithms
Design and Analysis of algorithmsDesign and Analysis of algorithms
Design and Analysis of algorithms
Dr. Rupa Ch
Ā 
01.01 vector spaces
01.01 vector spaces01.01 vector spaces
01.01 vector spaces
Andres Mendez-Vazquez
Ā 

Similar to elliptic-curves-modern (20)

SYMMETRIC BILINEAR CRYPTOGRAPHY ON ELLIPTIC CURVE AND LIE ALGEBRA
SYMMETRIC BILINEAR CRYPTOGRAPHY ON ELLIPTIC CURVE  AND LIE ALGEBRASYMMETRIC BILINEAR CRYPTOGRAPHY ON ELLIPTIC CURVE  AND LIE ALGEBRA
SYMMETRIC BILINEAR CRYPTOGRAPHY ON ELLIPTIC CURVE AND LIE ALGEBRA
Ā 
An Introduction to ECDSA and it's use in Bitcoin (1)
An Introduction to ECDSA and it's use in Bitcoin (1)An Introduction to ECDSA and it's use in Bitcoin (1)
An Introduction to ECDSA and it's use in Bitcoin (1)
Ā 
Survey ecc 09june12
Survey ecc 09june12Survey ecc 09june12
Survey ecc 09june12
Ā 
Elliptic Curves as Tool for Public Key Cryptography
Elliptic Curves as Tool for Public Key CryptographyElliptic Curves as Tool for Public Key Cryptography
Elliptic Curves as Tool for Public Key Cryptography
Ā 
Low Power FPGA Based Elliptical Curve Cryptography
Low Power FPGA Based Elliptical Curve CryptographyLow Power FPGA Based Elliptical Curve Cryptography
Low Power FPGA Based Elliptical Curve Cryptography
Ā 
Low Power FPGA Based Elliptical Curve Cryptography
Low Power FPGA Based Elliptical Curve CryptographyLow Power FPGA Based Elliptical Curve Cryptography
Low Power FPGA Based Elliptical Curve Cryptography
Ā 
Lecture50
Lecture50Lecture50
Lecture50
Ā 
Hormann.2001.TPI.pdf
Hormann.2001.TPI.pdfHormann.2001.TPI.pdf
Hormann.2001.TPI.pdf
Ā 
Cryptography Baby Step Giant Step
Cryptography Baby Step Giant StepCryptography Baby Step Giant Step
Cryptography Baby Step Giant Step
Ā 
An Application Of Graph Theory In Cryptography
An Application Of Graph Theory In CryptographyAn Application Of Graph Theory In Cryptography
An Application Of Graph Theory In Cryptography
Ā 
A SURVEY ON ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM AND ITS VARIANTS
A SURVEY ON ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM AND ITS VARIANTSA SURVEY ON ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM AND ITS VARIANTS
A SURVEY ON ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM AND ITS VARIANTS
Ā 
Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...
Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...
Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...
Ā 
Lect no 13 ECC.ppt
Lect no 13 ECC.pptLect no 13 ECC.ppt
Lect no 13 ECC.ppt
Ā 
Lect no 13 ECC.ppt
Lect no 13 ECC.pptLect no 13 ECC.ppt
Lect no 13 ECC.ppt
Ā 
CRYPTOGRAPHY USING ELLIPTIC CURVE WITH MATRIX SCRAMBLING
CRYPTOGRAPHY USING ELLIPTIC CURVE WITH MATRIX SCRAMBLINGCRYPTOGRAPHY USING ELLIPTIC CURVE WITH MATRIX SCRAMBLING
CRYPTOGRAPHY USING ELLIPTIC CURVE WITH MATRIX SCRAMBLING
Ā 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
Ā 
Some Engg. Applications of Matrices and Partial Derivatives
Some Engg. Applications of Matrices and Partial DerivativesSome Engg. Applications of Matrices and Partial Derivatives
Some Engg. Applications of Matrices and Partial Derivatives
Ā 
An Introduction to Elleptic Curve Cryptography
An Introduction to Elleptic Curve CryptographyAn Introduction to Elleptic Curve Cryptography
An Introduction to Elleptic Curve Cryptography
Ā 
Design and Analysis of algorithms
Design and Analysis of algorithmsDesign and Analysis of algorithms
Design and Analysis of algorithms
Ā 
01.01 vector spaces
01.01 vector spaces01.01 vector spaces
01.01 vector spaces
Ā 

elliptic-curves-modern

  • 1. Elliptic Curves: Modern Cryptography Eric Seifert May 4, 2014 Abstract This paper explains the mathematics behind elliptic curve cryptography, its various protocols, and the importance of elliptic curve encryption systems. Math- ematical topics include group theory, rings, and modular arithmetic. Additionally, we discuss elliptic curves as intellectual property and their legal ramiļ¬cations. 1 Introduction The concept of transmitting information to a third party via a secure network has been of interest since antiquity. Over time technology advancements changed the methods of encrypting information. Methods for transmitting information were not strictly reliant on transposition or substitution ciphers. Much of the increased need for cryptography was due in part to World War I and the later World War II [3]. The spark of the computer age of the latter half of the 20th century caused the use of cryptography to accelerate. The power and capabilities of the computer allowed cryptography to become even more sophisticated. American cryptographers Whitļ¬eld Diļ¬ƒe and Martin Hellmanā€™s paper in 1976 [3] was a signiļ¬cant step in the development of what is now known as public key cryptography. In 1977, American cryptographers Ronald Rivest, Adi Shamir, and Len Adleman used Diļ¬ƒe and Hellmanā€™s ļ¬ndings to develop a practical encryption system known as the RSA algorithm [15]. However, booming technological advancements caused a demand for more secure en- cryption systems. In the 1980s, computers started seeing improvements in computational speeds, improving their ability to compute more complex mathematical problems faster. There was a growing need for more computationally diļ¬ƒcult encryption systems. In 1985 Neal Koblitz [9] and Victor S. Miller [11] independently suggested the use of elliptic curves as an encryption system. In 2004, elliptic curves entered wide use. This was due largely in part to the lack of technology available to handle such complex calculations as those of elliptic curves. The computationally intractable mathematics of elliptic curves allows them to utilize more eļ¬ƒcient key sizes while oļ¬€ering the same level of security as their RSA counterparts. This complexity is magniļ¬ed by the types of time algorithms used to solve them. The three main types are polynomial, sub-exponential, and exponential. The names stem from their algebraic properties. For example, an elliptic curve time algorithm is a varient of an exponential time algorithm. In this paper we will discuss the underlying abstract mathematics used in elliptic curve algorithms, present current protocols, and ļ¬nally end with a discussion about patents and current issues surrounding elliptic curve cryptography. Speciļ¬cally, in Section 2 we will introduce the elliptic curve over the real numbers and deļ¬ne the associated algebraic 1
  • 2. properties. Then in Section 3 we introduce the algrebraic properties of rings. Section 4 will introduce non-elliptic curve encryption protocols. Then Section 5 introduces two main elliptic curve encryption systems. Finally, Section 6 concludes with a discussion of patenting elliptic curves for use and various legal ramiļ¬cations. 2 Elliptic Curves over the Real Numbers An elliptic curve is a cubic curve with genus one deļ¬ned over some set of numbers. A genus refers to the largest number of nonintersecting closed curves that can be drawn on a surface without seperation. In practice, elliptic curve encryption systems utilize 19th Century German mathemati- cian Karl Weierstrassā€™s elliptic curve equation. This stems from the Weierstrass Elliptic Function (notably documented as ā„˜). Much of Weierstrassā€™s work centered around Cal- culus, but his work on elliptic curves inļ¬‚uenced much of modern cryptography [8]. Weierstrass equations are commonly used for their accessibility over any set of num- bers. A Weierstrass equation is any equation of the following y2 + ay = x3 + bx2 + cxy + dx + e where a, b, c, d, e āˆˆ R Though the coeļ¬ƒcients of the Weierstrass equation above are deļ¬ned over R, they could also be deļ¬ned over other sets, which we will discuss later. A commonly used Weierstrass equation is as follows y2 = x3 + dx + e where d, e āˆˆ R, and a = b = c = 0 In practice and for eļ¬ƒciency reasons, the National Institute of Standards and Tech- nology recommends elliptic encryption systems to use the above equation with d = āˆ’3 [13]. One can also consider other variants of cubic curves such as the general cubic curve ax3 + b2 y + cxy2 + dy3 + ex2 + fxy + gy2 + hx + iy + j = 0 Here a, b, c, d, e, f, g, h, i, j āˆˆ S, where S is a ļ¬eld, which we will discuss below. We will focus on the Weierstrass equation since it is most commonly used in practice. 2.1 Elliptic Curve Properties We now explain some important properties of an elliptic curve by deļ¬ning an algebraic structure on a collection of points on a ļ¬xed elliptic curve. These properties are vital to the use of elliptic curves in cryptography. 2.1.1 Point Addition We deļ¬ne elliptic curve addition as follows: Deļ¬nition 2.1. Let P, R and Q be points on the elliptic curve E. Then P + Q ā‰” R, where R is Rāˆ’1 reļ¬‚ected over the x-axis and Rāˆ’1 is the point of intersection between the elliptic curve and the line that contains P and Q. Figure 1 illustrates this concept. 2
  • 3. 1 āˆ’1 āˆ’2 1āˆ’1āˆ’2 ā€¢P ā€¢ Rāˆ’1 ā€¢ Q ā€¢R Figure 1: Graph showing elliptic curve point addition We use this deļ¬nition of addition because, due to a special property of elliptic curves, it will allow us to have additive inverses. Furthermore, in order to understand why we reļ¬‚ect the point R in Deļ¬nition 2.1 we need to deļ¬ne the identity of an elliptic curve. Deļ¬nition 2.2. Let P be a point on the elliptic curve E, and O be the point at inļ¬nity, then P + O = O + P = P. Figure 2 illustrates this concept. 1 āˆ’1 āˆ’2 1āˆ’1āˆ’2 ā€¢P ā€¢ Pāˆ’1 ā€¢O Figure 2: Graph showing the identity at inļ¬nity 3
  • 4. Deļ¬nition 2.1 implies that P + Pāˆ’1 = O, where Pāˆ’1 is sometimes denoted as āˆ’P. Graphically, the line created between P and O is assumed to be a vertical line, intersecting the curve at Pāˆ’1 . This implies the point at inļ¬nity is the identity element. 2.1.2 Point Doubling Rather than computing repeated sums, most encryption algorithms use point doubling to reduce run time. Instead of considering two points on the curve we will consider one point P on the elliptic curve E. If we add P to itself this is equivalent to drawing a tangent line through P. This line intersects the curve at point (2P)āˆ’1 . After reļ¬‚ection we see that P + P = 2P. Figure 3 illustrates this concept. 1 āˆ’1 āˆ’2 1āˆ’1āˆ’2 ā€¢ P ā€¢ ā€¢ (2P)āˆ’1 2P Figure 3: Graph showing elliptic curve point doubling Example 2.1. Instead of calculating 15P = P + P + Ā· Ā· Ā· + P 15 times , we can more eļ¬ƒciently calculate this using point doubling. Namely, 15P = P +2(P +2(P +2P)). This eļ¬€ectively reduces the number of operations from 15 to six [16]. To actually evaluate 2P depends on the type of elliptic curve. There are speciļ¬c formulae that solve for the point doubling value. For example, the interested reader can verify that for the elliptic curve y2 = x3 + ax + b, 2P = R, where P = (Px, Py) and R = (Rx, Ry). The point R is calculated as follows Rx = s2 āˆ’ 2Px and Ry = s(Px āˆ’ Rx) āˆ’ Py where s = (3P2 x + a)/(2Py) (1) Multiple point doubling is one of the main reasons that makes Elliptic Curve algo- rithms so eļ¬€ective. 4
  • 5. 2.2 Group Deļ¬nition In conjunction with the property of elliptic curve addition, elliptic curves form an alge- braic structure known as a group. Deļ¬nition 2.3. A group (G, ā—¦) consists of a set of elements G and a binary operation ā—¦ that satisfy the following axioms as deļ¬ned from Judson [7]: ā€¢ (Associativitiy) a ā—¦ (b ā—¦ c) = (a ā—¦ b) ā—¦ c for all a, b, c āˆˆ G. ā€¢ (Identity) There exists an element e āˆˆ G such that a ā—¦ e = e + a = a for all a āˆˆ G. ā€¢ (Inverse) For each a āˆˆ G, there exists and element aāˆ’1 āˆˆ G, such that a ā—¦ aāˆ’1 = aāˆ’1 ā—¦ a = e. Now we can deļ¬ne a group (E, +) based on the elliptic curve E. This is known as the elliptic group. Elliptic curve addition is associative since P + (Q + R) = (P + Q) + R for all P, Q, R āˆˆ E. Every element of the elliptic group contains an identity element we call O. Finally, inverses exists since by deļ¬nition P + Pāˆ’1 = O. For these reasons, the elliptic group is indeed a group. 3 Prime Modulus and Binary Fields In the previous section we discussed elliptic curves over R. However in practice, com- puters have a diļ¬ƒcult time working with an inļ¬nite set of numbers. For this reason, early encryption systems such as RSA rely heavily on a basic concept of number theory: modular arithmetic. Mathematically, modular arithmetic is deļ¬ned as follows Deļ¬nition 3.1. Let a and b be two integers and suppose that n āˆˆ N then a is congruent to b modulo n if a āˆ’ b is divisible by n; that is, a āˆ’ b = nk for some k āˆˆ Z. We denote by Zn the set of equivalence classes of the integers mod n, as deļ¬ned from Judson [7]. 3.1 Rings Though we deļ¬ned Zn as the set of equivalence class of the integers mod n, we can also deļ¬ne it as a set with two binary operations, addition and multiplication. Theorem 3.1. Let a1 ā‰” b1 mod n and a2 ā‰” b2 mod n. Then a1 + a2 ā‰” (b1 + b2) mod n. Furthermore, a1a2 ā‰” (b1b2) mod n. The resulting system has a nice algebraic structure called a ring, which is deļ¬ned as follows Deļ¬nition 3.2. A nonempty set R is a ring if it has two closed binary operations, addition and multiplication, satisfying the following conditions. ā€¢ (Commutativity in Addition) a + b = b + a for a, b āˆˆ R. ā€¢ (Associativity in Addition) (a + b) + c = a + (b + c) for a, b, c āˆˆ R. ā€¢ (Additive Identity) There exists an element 0 in R such that a+0 = a for all a āˆˆ R. 5
  • 6. ā€¢ (Additive Inverse) For every element a āˆˆ R, there exists an element āˆ’a āˆˆ R such that a + (āˆ’a) = 0. ā€¢ (Associativity in Multiplication) (ab)c = a(bc) for a, b, c āˆˆ R. ā€¢ (Distributivity) For a, b, c āˆˆ R, a(b + c) = ab + ac and (a + b)c = ac + bc. Notice that in a ring every element has an addiditive inverse. A special type of ring is a ļ¬eld. Deļ¬nition 3.3. A ļ¬eld is a ring for which ab = ba for all a, b āˆˆ R, there exists a nonzero element 1 āˆˆ R such 1a = a1 = a for every a āˆˆ R, and any nonzero element a in R has a unique element aāˆ’1 such that aāˆ’1 a = aāˆ’1 a = 1. Notice that in a ļ¬eld every element has both an addiditive and multiplicative inverse. We have already seen an example of a ļ¬eld. Example 3.1. We can see that Z3 is a ļ¬eld because every element has a multiplicative inverse, there exists an identity element, and it is commutative. However, Z6 is not a ļ¬eld because not every element has a multiplicative inverse. For example consider the element 2. We see that 2 multiplied by any other element of Z6 yields only 0, 2 or 4. When deļ¬ning the types of ļ¬elds used in elliptic curve cryptography, we must deļ¬ne the following theorem that explains the connection between a ļ¬eld and the ring Zn. Theorem 3.2. If p is prime then every element of Zp has a multiplicative inverse. Fur- thermore, Zp is a ļ¬eld. Proof. Commutativity of addition and multiplication follow from Theorem 3.1. We want to show that any element x of Zp has a multiplicative inverse. Let x be some integer such that 0 < x < p. Then gcd(x, p) = 1. By the Eucilidean Algorithm there exists integers a and b such that ap + bx = 1. Then bx = 1 āˆ’ ap = 1 mod p, which implies bx = 1. Thus any element x āˆˆ Zp has a multiplicative inverse. Therefore Zp is a ļ¬eld. The characteristic p of ļ¬eld F is the smallest positive integer such that for every nonzero element Ī± āˆˆ F, pĪ± = 0. Proposition 3.1. If F is a ļ¬nite ļ¬eld of characteristic p, then the order of F is pn for some n āˆˆ N. As an example, see Judson [7]. 3.2 The Galois Field Fundamentally, all ļ¬elds of order pn , where p is prime, are the same in structure to one another. Therefore, there exists only one ļ¬eld of order pn we call the Galois Field; written as Fpn or GF(pn ). The Galois Field is a ļ¬nite ļ¬eld whose order is a prime power. Notice that when p is prime, Zp is the Galois Field Fp. When p = 2, the Galois Field is known as a binary ļ¬eld because the elements of the ļ¬eld are the same in structure to the integers modulo 2. Example 3.2. We can clearly see that when n = 1 the binary ļ¬eld is simply F2, which is the same in structure to the integers modulo 2. 6
  • 7. When thinking of F2n we can think of its elements in terms of a polynomial represen- tation with coeļ¬ƒcients in Z2[x] = Z2 mod p(x) where p(x) is an irreducible polynomial (i.e. a polynomial that is not factorable). Then given an irreducible polynomial of degree n, we can construct a ļ¬eld of prime power. It is important to note that such a polynomial exists for any n and any p. Example 3.3. Let p(x) be an irreducible polynomial in Z2[x] with degree n. Then Z2[x]/āŸØp(x)āŸ© is F2n where āŸØp(x)āŸ© = {p(x)q(x) : q(x) āˆˆ Z2[x]} (i.e. the set of polynomials generated by p(x)). It is clear that both Z2[x] and āŸØp(x)āŸ© have inļ¬nite order. However, Z2[x]/āŸØp(x)āŸ© has order p2 . Example 3.4. Suppose we have the irreducible polynomial p(x) = x3 +x2 +x+1, where p(x) āˆˆ Z2[x]. Then Z2[x]/āŸØp(x)āŸ© is F23 and has elements {0, 1, x, x2 , x + 1, x2 + x, x2 + 1, x2 +x+1}. Here the polynomial basis is deļ¬ned as {x2 , x, 1}, where the polynomial basis is the set of single polynomials that in linear combination can represent every polynomial element in the given Galois Field. Example 3.4 uses the Galois Field F23 which is equivalent to F8 or a ļ¬nite ļ¬eld of order 8. Thus it is possible to create ļ¬nite ļ¬elds of non-prime order. Though there exists no ļ¬eld of order 6 because there exists no prime number such that pn = 6 for n āˆˆ N. Example 3.4 provides further insight into the binary ļ¬eld. Each element of the poly- nomial p(x) = x3 + x2 + x + 1 over Z2 can be expressed as a binary sequence. For example, the element x2 + x can be expressed as (1, 1, 0), whereas x + 1 is called (0, 1, 1). Combinatorically, one can see that over Z2 there are 23 binary sequences of length 3. Furthermore, if m(x) is irreducible over Zp with degree n, then |Z2[x]/āŸØp(x)āŸ©| = pn and there exists pn p-inary sequences of length n. The value of the Galois Field when p = 2, is its ability to represent large ļ¬nite ļ¬elds in binary form. Together, these provide eļ¬ƒcient computing for the complex algorithms of elliptic curve cryptography. In terms of notation, E(Fpn ) refers to an elliptic curve E over prime ļ¬eld Fpn . We will use this notation when we discuss elliptic curve algorithms in Section 5. 4 Cryptographic Protocols Cryptography is the study of techniques for securing communication in the presence of third-party adversaries. Encryption is a subset of cryptography aiming at developing algorithms to obscure information passed during communication. There are two types of encryption: symmetric key and public key encryption. Both types of encryption in- volve two communicating parties and a third party commonly called the attacker. In symmetric key encryption the two parties must agree upon a private key for both en- cryption and decryption before communicating. The key acts as the means to determine the functional output of the encryption algorithm. In contrast, public key encryption in- volves asymmetric key algorithms since there exists two diļ¬€erent keys used for encryption and decryptionā€“a public encryption key and a private decryption key respectively. The intention is that it should be nearly impossible to calculate the private key given only the public key. This diļ¬ƒculty is due to the mathematical complexity of the encryption algorithms and is of interest to elliptic curve cryptography. 7
  • 8. 4.1 RSA Encryption A notable encryption system that is an example of public key encryption is called RSA; where its name stems from its 1977 inventors Ronald Rivest, Adi Shamir, and Len Adle- man [15]. Algorithm 1 illustrates the RSA algorithm considering parties A and B. Algorithm 1 RSA Encryption INPUT: A picks picks two large prime numbers p and q. OUTPUT: Shared Bā€™s message with A. Step 1: A computes n = pq. Step 2: A computes Ļ•(n) = (p āˆ’ 1)(q āˆ’ 1). Step 3: A computes her d = eāˆ’1 mod Ļ•(n), for some e such that gcd(e, Ļ•(n)) = 1. Step 4: B encrypts message m by computing me mod n, publicly sending it to A. Step 5: A receives the encrypted message c = me mod n. Step 6: A decrypts the encrypted message by computing cd mod n = m. In the above algorithm e and n are the public keys and d is the private key. In order to prove the RSA algorithm we need to deļ¬ne the following theorem proven by 18th century mathematician Leonhard Euler: Theorem 4.1 (Eulerā€™s Theorem). Let a and n be integers such that n > 0 and gcd(a, n) = 1. Then aĻ•(n) ā‰” 1 mod n. Proof that RSA works. We need to show (me )d mod n = m. We know that ed = 1 mod Ļ•(n). This implies that Ļ•(n)|(ed āˆ’ 1). Therefore there exists some integer k such that ed = 1 + kĻ•(n). Then (me )d ā‰” med ā‰” m1+kĻ•(n) ā‰” m Ā· (mĻ•(n) )k ā‰” m Ā· 1k ā‰” m mod n = m. The security of RSA encyrption is magniļ¬ed by the diļ¬ƒculty of factoring the product of two large prime numbers pq. Namely, it is diļ¬ƒcult to determine prime numbers a and b given only ab. In practice, computers may take months in order to ļ¬nd a and b. An RSA algorithm complexity has a subexponential time algorithm. Namely, the amount of time needed to ļ¬nd a and b increases roughly exponentially as mentioned by Hankerson, Vanstone, and Menezes in [5]. This may seem like a lot of time but as we will see, elliptic curve algorithms require exponentially greater amount of time to crack. 4.2 The Diļ¬ƒe-Hellman Key Exchange One of the more important problems that pertains to elliptic curve cryptography is the discrete logarithm problem. The idea of the problem centers around the formula y = gx . On its own, y is easy to calculate if given g and x. However, solving for x when given y and g proves to be much more diļ¬ƒcult. For that reason cryptographers have been interested in desigining encyrption systems that center around the discrete logarithm problem. Cryptographers Whitļ¬eld Diļ¬ƒe and Martin Hellman published one of the earliest algorithms which centered around the discrete logarithm problem; notably called the Diļ¬ƒe-Hellman Key Exchange [3]. This algorithm allows two parties with no prior knowl- edge of one another to decide upon a secure key over a third party (i.e. an attacker). The algorithm involves solving for x given y = gx mod p, where p is prime, and g and y are non-negative integers. However, given only g, p, and y it is often extremely diļ¬ƒcult 8
  • 9. to solve for x where x = logg y mod p. Algorithm 2 illustrates the Diļ¬ƒe-Hellman Key Exchange algorithm again assuming parties A and B. Algorithm 2 Diļ¬ƒe-Hellman Key Exchange INPUT: prime number p, element g from the group Zp. OUTPUT: Shared secret over a third party. Step 1: A picks a natural number a and computes ga mod p and sends it to B. Step 2: B picks a natural number b and computes gb mod p and sends it to A. Step 3: A computes (gb )a mod p. Step 4: B computes (ga )b mod p. In conclusion, A and B successfully shared the secret gab over a third party. The mathematical idea here centers around the fact that (ga )b mod p = (gb )a mod p proven by Diļ¬ƒe and Hellman in [3]. The algorithm focuses on the diļ¬ƒculty ļ¬nding gab given public keys ga , gb , g, and p. This is known as the Diļ¬ƒe-Hellman Problem. A similar problem can be applied to elliptic curves. We call this the elliptic curve discrete logarithm problem. The idea is to ļ¬nd an integer n only given the point P and the end result nP. Again the diļ¬ƒculty here is solving for n given limited information. We will revist this topic in Section 5.2. 4.3 Digital Signature Algorithm A Digital Signature is often an eļ¬€ective way at verifying that information sent to another party has not been altered during transit and by verifying that the recipient is certain of the originatorsā€™ identity. Unlike the previous algorithms, the digital signature algorithm acts as a means to verify someoneā€™s identity. The algorithm is two-fold. The ļ¬rst party generates the signature, which is then verifed by the second party. This helps insure the validity of the ļ¬rst partyā€™s signature. The idea of a digital signature was ļ¬rst mentioned by Whitļ¬eld Diļ¬ƒe and Martin Hellman in their 1976 paper ā€œNew Directions in Cryp- tographyā€ [3] and further developed in 1995 by cryptographers Shaļ¬ Goldwasser, Silvio Micali and Ronald Rivest [4]. The actual algorithm was proposed in 1991 by the National Institute of Standards and Technology (NIST). The algorithm is currently attributed to former NSA employee David W. Krause and is covered by a United States patent [10]. The algorithm stems from the discrete logarithm problem. Algorithm 3 illustrates the algorithm for signature generation and Algorithm 4 illustrates the algorithm for signature verļ¬cation. 9
  • 10. Algorithm 3 Digital Signature: Signature Generation INPUT: Message m. OUTPUT: Signature (r, s). Step 1: Choose a prime number q less than or equal to the output length of Secure Hash Algorithm (H(Ā·))ā€“algorithm that maps data of arbitrary length to data of ļ¬xed length; typically a bit string to a ļ¬xed hexidecimal representation. Step 2: Choose a prime number p such that p āˆ’ 1 is a multiple of q. Step 3: Choose an element x and k at random from [0, q āˆ’ 1]. Step 4: Choose an element h at random from [0, p āˆ’ 1]. Step 5: Compute g = h(pāˆ’1)/q mod p. Step 6: Compute y = gx mod p. Step 7: Compute r = (gk mod p) mod q. Step 8: Compute s = (kāˆ’1 (H(m) + xr)) mod q. Algorithm 4 Digital Signature: Signature Veriļ¬cation INPUT: Public key (p, q, g, y), private key (m, x), signature (r, s). OUTPUT: Signature (r, s). Step 1: Hash function H computes H(m) = e. Step 2: Compute w = sāˆ’1 mod q. Step 3: Compute u1 = ew mod q. Step 4: Compute u2 = rsāˆ’1 mod q. Step 5: Compute v = (gu1 yu2 mod p) mod q. Step 6: If v = r then return(ā€œAccept the Signatureā€); Else return(ā€œReject Signatureā€). We will not prove that the algorithm works, but the interested reader can consult the proof in the NIST report on Digital Security Standards [12]. The idea purpose of the algorithm is to make sure that the person who sent the signature is actually the correct person. If v Ģø= r then the signature was not constructed by the signature generation algorithm. This tells the verifying party that the signature created was not a correct signature based on the input parameters. Overall, the digital signature algorithmā€™s security relies on the complexity of the discrete logarithm problem mod an integer. Furthermore, a brief introduction is necessary for comparison with the elliptic curve digital signature algorithm mentioned in the next section. 5 Elliptic Curve Protocols In order to discuss the various elliptic curve protocols, we need to ļ¬rst illustrate how one can prepare all of the necessary parameters for implementing a protocol. 5.1 Preparing for an Elliptic Curve Algorithm Developing an algorithm based on an elliptic curve has many parameters to consider. Currently and as of 1999, The National Institue of Standards and Technology (NIST) documents ļ¬fteen elliptic curves and their various recommended parameters. We list the parameter considerations. 10
  • 11. 1. Choice of Key Length The key length is represented through a combination of a speciļ¬c based point G on the elliptic curve E and the elliptic curve itself. We choose a base point G that has large prime order r, where the order r of a point G is the smallest integer such that rG = G + G + Ā· Ā· Ā· + G r times = O. The number of points on the curve is n = fr where f is an integer such that f is not divisble by r. NIST recommends that the value for f should be no smaller than 1 to optimize eļ¬ƒciency [13]. We are now gathering more information to describe the curve. 2. Choice of Field We focused our attention on prime characteristic ļ¬elds because they are the two choices of underlying ļ¬elds recommended by NIST. The following table lists the order of p followed by a ļ¬eld degree m (i.e. the degree of the polynomial represen- tation of the ļ¬eld). Here āˆ„pāˆ„ refers to the length of the binary expansion of the integer p. Prime Field Binary Field āˆ„pāˆ„ = 192 m = 163 āˆ„pāˆ„ = 224 m = 233 āˆ„pāˆ„ = 256 m = 283 āˆ„pāˆ„ = 384 m = 401 āˆ„pāˆ„ = 521 m = 571 Table 1: NIST Recommended Field Sizes [13] For example, P-192 refers to a binary expansion of prime ļ¬eld āˆ„pāˆ„ = 192 and is p = 6277101735386680763835789423207666416083908700390324961279. Additionally, Curve K-163 refers to binary ļ¬eld m = 163 with a polynomial repre- sentation degree of 163 and is as follows p(t) = t163 + t7 + t6 + t3 + 1 where p(t) is the ļ¬eld polynomial representation of GF(2163 ). 3. Choice of Basis When using a binary ļ¬eld we use a basis to help interpret a bit string. NIST recommends using either a polynomial basis or a normal basis. We explained a polynomial basis in Example 3.4 but will not explain a normal basis. The interested reader should consult [13] for more information about a normal basis. 4. Choice of Curve An elliptic curve is either supersingular or non-supersinglar. An elliptic curve is supersingular if its trace t is divisible by its characteristic p of Fq [6]. Supersingular curves satisfy 11
  • 12. y2 + ay = x3 + bx + c where a, b, c āˆˆ R while non-supersingular curves satisfy y2 + axy = x3 + bx2 + c where a, b, c āˆˆ R. Supersingluar curves are not suitable for cryptography because of their ability to reduce the discrete logarithm problem to one that is much easier to attack, according to Rosing in [16]. For that reason, elliptic curve cryptography focuses on non- supersingular curves. NIST recommends either pseudo-random or special curves. Psuedo-random curves are the most common and have coeļ¬ƒcients generated by a speciļ¬c cryptographic hash algorithm. Special curves are curves that have selected coeļ¬ƒcients from un- derlying ļ¬elds in order to optimize eļ¬ƒciency of the elliptic curve operations. These types of curves deļ¬ned over F2n are also called Koblitz Curves, whose name stems from mathematician Neal Koblitz, a prominent ļ¬gure in the ļ¬eld of elliptic curve cryptography. As documented in [13], there are currently 15 elliptic curves used in practice. The ļ¬rst ļ¬ve curves are deļ¬ned over ļ¬ve diļ¬€erent prime ļ¬elds Fp with ļ¬ve diļ¬€erent prime orders r and satisfy the following formula y2 ā‰” x3 āˆ’ 3x + b mod p where for eļ¬ƒciency reasons a = āˆ’3 and b satisļ¬es b2 c ā‰” āˆ’27 mod p, where c is the output of the SHA-1 algorithm. The last 10 curves are deļ¬ned over the binary ļ¬eld Fpn with 10 diļ¬€erent ļ¬eld degrees m and are deļ¬ned as y2 + xy = x3 + ax2 + b where a, b āˆˆ R (2) The psuedo-random curves satisfy Equation 2 with a = 1, while the Koblitz curves satisfy Equation 2 with b = 1 and a = 0 or 1 (dependent on the key length variable f). 5. Choice of Base Point NIST also provides a base point G = (Gx, Gy) with order r as a general way to follow their speciļ¬c computations. The base point ultimately acts like a seed when computing the coeļ¬ƒcients of the curve. It is private information and for that reason, one should not use the provided base point in [13] but generate their own. 12
  • 13. 5.2 Elliptic Curve Diļ¬ƒe-Hellman Key Exchange Now that we have provided the foundations of the mathematics and the requirements of preparing an elliptic curve algorithm, we begin discussing the Elliptic Curve Diļ¬ƒe- Hellman Key Exchange. Algorithm 5 illustrates the Elliptic Curve Diļ¬ƒe-Hellman Algo- rithm again assuming parties A and B. Algorithm 5 Elliptic Curve Diļ¬ƒe-Hellman INPUT: E(Fpn ), point P with order r OUTPUT: Shared secret over a third party Step 1: A and B choose a private key nA and nB in the interval [1, r āˆ’ 1] respectively Step 2: A and B compute and trade QA = nAP āˆˆ E(Fpn ) and QB = nBP āˆˆ E(Fpn ) respectively Step 3: A and B compute nAQB āˆˆ E(Fpn ) and nBQA āˆˆ E(Fpn ) respectively In conclusion, nAQB = nBQA which means A and B have successfully decided upon a shared secret key over a third party. In general, the concept behind the algorithm is the same as in Algorithm 2. An attacker would have to ļ¬nd nAnBP when only given nAP, nBP, and P making it dif- ļ¬cult to calculate the secret. The diļ¬€erence lies with the eļ¬ƒciency of the elliptic curve calculations. According to the National Security Agency it generally would take 2k āˆ’ 1 operations to attack an algorithm with a k-bit key size [1]. Ideally, a secure public key algorithm should use parameters that require at least 2k āˆ’ 1 operations to attack. Ta- ble 2 illustrates a comparison between RSA and Diļ¬ƒe-Hellman key sizes and those using elliptic curves. As with all elliptic curve encryption systems, the mathematically diļ¬ƒcult aspect cen- ters around the Elliptic Curve Discrete Logarithm Problem. The problem is similar to the non-elliptic curve previously mentioned. However instead it relies on elliptic curve point multiplication and the diļ¬ƒculty it is to solve for n given Q = nP, where P is a point on the elliptic curve E. It becomes increasingly diļ¬ƒcult to ļ¬nd n only given Q and P since in order to ļ¬nd n one would have to continually test diļ¬€erent n values, each time computing the associate mutliple point doublings. Given the complexity of only one point doubling as stated in Equation 1, this task can easily become time consuming. For this reason, elliptic curves require an exponential time algorithm to crack. Because the operations are more complex to crack than its non-elliptic counterparts, the size of the private key can be much lower as illustrated in Table 2. Non-Elliptic Curve Elliptic Curve Key Size (Bits) Key Size (Bits) 1024 160 2048 224 3072 256 7680 384 15360 521 Table 2: NIST Recommended Key Sizes [1] 13
  • 14. 5.3 Elliptic Curve Digital Signature Algorithm A more common algorithm used in practice is the Elliptic Curve Digital Signature Al- gorithm. The algorithm of Elliptic Curve Digital Signature is similar to the non-elliptic curve algorithm. Algorithm 6 illustrates the algorithm for signature generation and Al- gorithm 7 illustrates the algorithm for signature verļ¬cation as published by Johnson, Menezes, and Vanstone in [6]. Algorithm 6 Elliptic Curve Digital Signature: Signature Generation INPUT: E(Fpn ), point P, integer n, private key d, message m. OUTPUT: Signature (r, s). Step 1: Choose an element k at random from [1, n āˆ’ 1]. Step 2: Compute kP = (x1, y1). Step 3: Compute r = x1 mod n. If r = 0 then go to step 1. Step 4: Hash function H computes H(m) = e. Step 5: Compute s = kāˆ’1 (e + dr) mod n. If s = 0 then go to step 1. Step 6: Return (r, s). Algorithm 7 Elliptic Curve Digital Signature: Signature Veriļ¬cation INPUT: E(Fpn ), point P, integer n, public key Q = dP, message m, signature (r, s). OUTPUT: Acceptance or rejection of the signature. Step 1: Verify that r and s are integers in the interval [1, n āˆ’ 1]. If veriļ¬cation fails return(ā€œReject Signatureā€). Step 2: Hash function H computes H(m) = e. Step 3: Compute w = sāˆ’1 mod n. Step 4: Compute u1 = ew mod n and u2 = rw mod n. Step 5: Compute X = u1P + u2Q = (x1, y1) Step 6: If X = O return(ā€œReject Signatureā€) Step 7: Compute v = x1 mod n. Step 8: If v = r then return(ā€œAccept the Signatureā€); Else return(ā€œReject Signatureā€). The digital signature algorithm and the elliptic curve digital signature algorithm are conceptually the same with the diļ¬€erence centering on how their signature is calculated. We provide the proof of signature veriļ¬cation. Proof. We need to verify that the steps in the algorithm lead to the conclusion v = r. We know from the signature generation that s = kāˆ’1 (e + dr). Rearranging we see sāˆ’1 = k(e + dr)āˆ’1 . Then w = k(e + dr)āˆ’1 mod n which implies X = (ek(e + dr)āˆ’1 mod n + drk(e + dr)āˆ’1 mod n)P since dP = Q. Furthermore, X = kP mod n. But v = x1 mod n = r. Therefore the conclusion veriļ¬es the signatureā€™s validity. The security of the hash algorithm is another important aspect of the algorithm. An insecure hash algorithm could cause an attacker to forge a signature. For example, a third party E selects an integer l and computes the x coordinate of Q+lP mod n setting it equal to r. E then can set s = r and compute e = rl mod n. In the event E ļ¬nds a message m such that e = H(m), then (r, s) becomes a valid signature for m [5]. For elliptic curves, the algorithms necessary to crack require greater amount of com- plexity. The current fastest algorithm known for solving the the elliptic curve discrete 14
  • 15. logarithm problem is called the Pollardā€™s rho algorithm. The algorithmā€™s run time is based on a probabilistic method for factoring a composite number N. For more information consult Hankerson, Menezes, and Vanstoneā€™s result in [5]. 6 Elliptic Curve Cryptography in Practice In practice, acquiring elliptic curves to use for encrypting can be diļ¬ƒcult due to patent laws. Above all, elliptic curves are intellectual property and thus come with many legal considerations. 6.1 Intellectual Property Despite the high security with using an elliptic curve algorithm, elliptic curves are in- tellectual property and are patented formulas. Canadian company Certicom holds over 130 elliptic curve patents. However, this protection limits the use of elliptic curves in academia and other venues [1]. For this reason, the National Security Administration purchased licenses for all of Certicomā€™s intellectual property with the stipulation that the property would only be used under NSA permission. Additionally, the license only applies to prime ļ¬eld curves with a prime greater than 2255. This applies to only three out of the 15 NIST approved curves. Other non-governmental vendors may receive a license from the NSA to use their curves or negotiate a seperate license agreement with Certicom [1]. As of 2009, Certicom is a wholly owned subsidary of BlackBerry Limited previously known as Research in Motion. However, the numerous Certicom patents poses a debate on patenting mathematics, speciļ¬cally elliptic curves. Alone, an elliptic curve cannot legally be patented. Instead, the elliptic curve must serve as a tool producing a tangible result. From Certicomā€™s standpoint, they are patenting the mathematical process of using the elliptic curve in a way that enhances previous known encryption systems. For that reason it is legal to patent the actual curve since they use the curve in an algorithm to produce a tangible result. Ultimately, they hope to proļ¬t oļ¬€ their monopolized ļ¬ndings [14]. On May 30th, 2007 Certicom ļ¬led a lawsuit against Sony Corporation for patent infringement. Certain Sony technologies such as Blue-ray DVD players and Playstation 3 were found utilizing elliptic curve technologies without a license. Considering BlackBerry Limited acquired Certicom for $106 million, shows the increasing value of this type of technology. Furthermore, the NSA has urged a shift for elliptic curve cryptography for its greater security and improved performance cabilities according to former Certicom Director John Callahan in [2]. 6.2 Future of Elliptic Curve Cryptography In the future, elliptic curve cryptography could expand into the use of hyperelliptic curves [16]. A hyperelliptic curve is simply an extension of an elliptic curve following y2 = f(x) where f(x) is some polynomial with degree greater than 3. Naturally, the number of operations to compute multiple point doublings would be higher allowing for even greater security than with normal elliptic curves. However, technological advance- ments have not yet discarded the security of elliptic curves to make hyperelliptic curves more appealing. Unfortunately, the structure of hyperelliptic curves may make them 15
  • 16. more attackable, according to Rosing in [16]. However, much of this area of cryptography has not been explored for this statement to be valid. 7 Conclusion The fundamentals of elliptic curve cryptography have stemed from decades of work from notable cryptographers such as Diļ¬ƒe, Hellman, Koblitz, Miller, Rivest, Shamir, and Adleman. The continued growth of computer technology has enable us to re-develop previous algorithms using the more complex mathematics of elliptic curves. The core success is due to the diļ¬ƒculty of solving the elliptic curve discrete logarithm problem and the extremely diļ¬ƒcult task it is for a third party attacker to gain access to private information. The beneļ¬ts of elliptic curve cryptography are simple: eļ¬ƒciency. With something more complex, comes something more simple and eļ¬ƒcient to encrypt. The only thing now is to see how the future of technology shapes elliptic curve cryptography. 16
  • 17. References [1] National Security Agency. The Case for Elliptic Curve Cryptography. http://www. nsa.gov/business/programs/elliptic_curve.shtml, January 2009. [2] John Callahan. Certicom Files Suit Against Sony for Patent Infringement. Certicom Corporation: https://www.certicom.com/index.php/2007-press-releases/ 20-certicom-files-suit-against-sony-for-patent-infringement, May 2007. [3] Whitļ¬eld Diļ¬ƒe and Martin Hellman. New Directions in Cryptography. IEEE Trans- actions on Information Theory, IT-22(6), November 1976. [4] Shaļ¬ Goldwasser, Silvio Micali, and Ronald L Rivest. A digital signature scheme secure against adaptive chosen message attacks. SIAM Journal on Computing, 17(2):281ā€“308, 1988. [5] Darrel Hankerson, Scott Vanstone, and Alfred J. Menezes. Guide to Elliptic Curve Cryptography. Springer Professional Computing. Springer, 2004. [6] Don Johnson, Alfred Menezes, and Scott Vanstone. The Elliptic Curve Digital Signa- ture Algorithm (ECDSA). International Journal of Information Security, 1(1):36ā€“63, 2001. [7] Thomas W. Judson. Abstract Algebra: Theory and Applications. http:// abstract.ups.edu/, 2009. Accessed: 2014-05-04. [8] Israel Kleiner. Excursions in the History of Mathematics: The State Space Method. Operator theory, advances and applications. BirkhĀØauser, 2012. [9] Neal Koblitz, Alfred Menezes, and Scott Vanstone. The State of Elliptic Curve Cryptography. Number 19, pages 173ā€“193. November 2000. [10] D.W. Kravitz. Digital signature algorithm, July 1993. US Patent 5,231,668. [11] Victor S. Miller. Use of elliptic curves in cryptography. In Hugh C. Williams, editor, Advances in Cryptology CRYPTO 85 Proceedings, volume 218 of Lecture Notes in Computer Science, pages 417ā€“426. Springer Berlin Heidelberg, 1986. [12] U.S. Department of Commerce, National Institute of Standards, and Technology. Digital Security Standard (DSS). Technical Report 186-4, Federal Information Pro- cessing Standards Publication, December 2013. [13] National Institute of Standards and Technology. Recommended Elliptic Curves for Federal Government Use. July 1999. [14] Teresa Riordan. Patents; An appeals court says a mathematical formula can be patented, if it is a moneymaker. New York Times, August 1998. [15] Ronald L. Rivest, Adi Shamir, and Leonard M. Adleman. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Commun. ACM, 21(2):120ā€“126, 1978. [16] Michael Rosing. Implementing Elliptic Curve Cryptography. Manning Pubs Co Series. Manning Publications Company, 1999. 17