The Use of Elliptic Curves in Cryptography: Aster S Hesis in Athematics
The Use of Elliptic Curves in Cryptography: Aster S Hesis in Athematics
The Use of Elliptic Curves in Cryptography: Aster S Hesis in Athematics
Tibor Juhas
May, 2007
FACULTY OF SCIENCE
Department of Mathematics
University of Troms
Contents
1
Introduction to cryptography
12
13
13
15
15
17
19
19
22
23
24
26
28
31
34
37
37
37
39
44
1
45
47
47
49
50
51
51
52
55
57
57
63
64
Summary
68
References
69
Introduction to cryptography
1.1
1.2
Both encryption and decryption make use of a key and are parts of a cryptographic algorithm or system. There are two classes of key based algorithms,
symmetric or secret-key and asymmetric or public key algorithms. The difference is that symmetric algorithms use the same key for both encryption
and decryption (or the decryption key is easily derived from the encryption
key), whereas the asymmetric algorithms use a dierent key for encryption
and decryption, and the decryption key cannot be derived from the encryption key. Symmetric algorithms can be divided into stream ciphers and block
ciphers. Stream ciphers encrypt a single bit of plaintext at a time, whereas
block ciphers take a number of bits (typically 64 bits in modern ciphers)
and encrypt them as a single unit. The most studied and probably the
most widely spread symmetric cipher is DES or Data Encryption Standard.
Because of the increase in the computing power of computers, the basic version of DES cannot be considered suciently safe anymore. Therefore a
new, more powerful cipher called AES or Advanced Encryption Standard
was standardized in 2001. Other popular and respected algorithms include
Twofish, Serpent, CAST5, RC4, TDES and IDEA.
The main problem with symmetric key algorithms is that since the sender
and the receiver have to agree on a common key, a secure channel is required
between them in order to exchange the key. Transferring the key over the
Internet either in an e-mail message or through simple IRC services is insecure. Verbally communicating the key over a phone line runs the risk of
eavesdropping. Similarly, snail mail runs the risk of possible interception.
The security risks that are involved in secret key cryptography have been, to
a large extent, overcome in public key cryptography.
4
1.3
Public key cryptography uses a key pair instead of just one secret key. Of
this key pair, one key, known as the private key, is always kept secret by the
key holder and is used for decryption. The private key is not transferred to
anyone and is stored securely by the holder. The key used for encryption is
the public key and is freely distributable, for instance it can be placed on one
of the many public key repositories on the Internet. Over the past 30 years,
public key cryptography has become a mainstay for secure communications
over the Internet and throughout many other forms of communications. It
provides the foundation for both digital signatures and key management.
For digital signatures, public key cryptography is used to authenticate the
origin of data and protect the integrity of that data. In key management,
public key cryptography is used to distribute the secret keys used in other
cryptographic algorithms (e.g. DES). The technique is to use a public key
algorithm to encrypt a randomly generated encryption key, and the random
key is used to encrypt the actual message using a symmetric algorithm. This
combined technique is used widely. It is used for Secure Shell (SSH), which is
used to secure communication between a client and a server and PGP (Pretty
Good Privacy) for sending messages. Above all, it is the heart of SSL (Secure
Socket Layer), which is the most widely deployed and used security protocol on the Internet today. The protocol has withstood years of scrutiny by
the security community and is now trusted to secure virtually all sensitive
web-based applications ranging from on-line banking and stock trading to
e-commerce. SSL oers encryption, source authentication and integrity protection for data exchanged over insecure, public networks. It operates above
a reliable transport service like TCP and has the flexibility to accommodate
dierent cryptographic algorithms for key agreement, encryption and hashing. However, the specification does recommend particular combinations of
these algorithms, called cipher suites, which have wellunderstood security
5
properties. For example, a cipher suite such as RSA-RC4-SHA would indicate RSA as the key exchange mechanism, RC4 for bulk encryption, and
SHA as the hashing function. Here we note that hashing function are very
fast cryptographic functions that take a message of arbitrary length and produce a message digest of specified size. The two main components of SSL
are the Handshake protocol and the Record Layer protocol. The Handshake
protocol allows an SSL client and server to negotiate a common cipher suite,
authenticate each other, and establish a shared master secret using public
key cryptographic algorithms. The Record Layer derives symmetric-keys
from the master secret and uses them with faster symmetric-key algorithms
for bulk encryption and authentication of application data. Public key cryptographic operations are the most computationally expensive portion of SSL
processing. SSL allows the re-use of a previously established master secret,
resulting in an abbreviated handshake that does not involve any public key
cryptography, and requires fewer and shorter messages. However, a client and
server must perform a full handshake on their first interaction. Moreover,
practical issues such as server load, limited session cache and naive Client
authentication are optional. Only the server is typically authenticated at the
SSL layer and client authentication is achieved at the application layer, e.g.
through the use of passwords sent over an SSL-protected channel.
The two most important first generation public key algorithms used to
secure the Internet today are known as RSA and Die-Hellman (DH). The
security of the first is based on the diculty of factoring the product of two
large primes. The second is related to a problem known as the discrete logarithm problem for finite groups. Both are based on the use of elementary
number theory. The majority of public key systems in use today use 1024bit parameters for RSA and Die-Hellman. The US National Institute for
Standards and Technology has recommended that these 1024-bit systems are
sucient for use until 2010. After that, NIST recommends that they be up6
Elliptic curve
key size (bits)
160
.
224
256
384
512
To use RSA or Die-Hellman to protect 128-bit AES keys one should use
3072-bit parameters: three times the size in use throughout the Internet
today. The equivalent key size for elliptic curves is only 256 bits. We can
see that as symmetric key sizes increase the required key sizes for RSA and
Die-Hellman increase at a much faster rate than the required key sizes for
elliptic curve cryptosystems. Hence, elliptic curve systems oer more security per bit increase in key size than either RSA or Die-Hellman public key
systems.
The mathematical problems that RSA and Die-Hellman owe their security are the problem of integer factorization and the discrete logarithm
problem, respectively. The reason why such a large keys are necessary in
7
We will now introduce some basic facts about the elliptic curves. This introduction will describe those parts of the theory of elliptic curves which are
relevant for cryptography and the definitions will be given from a cryptographic point of view. A profound treatment of the general theory of elliptic
curves is given in [52] and [53].
Let k be a field, k its algebraic closure and k its multiplicative group.
The projective plane P2 (k) over k is the set of equivalence classes of the
relation acting on k3 \{(0, 0, 0)}, where (x1 , y1 , z1 ) (x2 , y2 , z2 ) if and only
if there exists u k such that x1 = ux2 , y1 = uy2 , and z1 = uz2 .
form.
plane A2 (k) = k k, together with the extra point at the infinity O. If the
coecients of the equation are in k, then E is said to be defined over k, and
this is denoted as E/k. If E is defined over k, then the set of k - rational
points of E, denoted E(k), is the set of points whose both coordinates lie in
k, together with the point O.
Let E be a curve given by the ane Weierstrass equation. We define the
quantities
d2 = a21 + 4a2
d4 = 2a4 + a1 a3
d6 = a23 + 4a6
d8 = a21 a6 + 4a2 a6 a1 a3 a4 + a2 a23 a24
c4 = d22 24d4
and
y y
2
1
x2 x1
if P 6= Q.
y x y x
1 2
2 1
x2 x1
if P 6= Q.
3x21 + 2a2 x1 + a4 a1 y1
, if P = Q.
2y1 + a1 x1 + a3
x31 + a4 x1 + 2a6 a3 y1
, if P = Q.
2y1 + a1 x1 + a3
11
2.1
Over a finite field Fq , E(Fq ) is an abelian group of rank 1 or 2. The type of the
group is (n1 , n2 ), i.e., E(Fq )e
=Zn1 Zn2 , where n2 | n1 , and furthermore n2 |
(q1).
The number of rational points on a curve is finite, and it will be denoted by
#E(Fq ).
2.2
is now P = (x1 , y1 ). The addition rules are as follows: for the points
P = (x1 , y1 ) and Q = (x2 , y2 ) the coordinates of the point P + Q = (x3 , y3 ),
Q 6= P , are given as
x3 = 2 x1 x2
y3 = (x1 x3 )y1
where
2.3
y y
2
1
x2 x1
if P 6= Q.
3x21 + a
, if P = Q.
2y1
2
y1 + y2
y1 + y2
x1 + x2 + x1 + x2 + x1 + x2 + a2 , if P 6= Q.
x3 =
if P = Q.
x21 + a6 ,
x21
and
y
+
y
1
2
(x1 + x3 ) + x3 + y1 , if P =
6 Q.
x1 + x2
y3 =
y1
2
if P = Q.
x3 + x3 ,
x1 + x1 +
x1
The discriminant of the curve then reduces to = a43 . The inverse of the
point P = (x1 , y1 ) is given as P = (x1 , y1 + a3 ). The coordinates of the
sum P + Q = (x3 , y3 ) of P and Q = (x2 , y2 ), Q 6= P are given as
2
y1 + y2
+ x1 + x2 , if P 6= Q.
x1 + x2
x3 =
x4 + a2
if P = Q.
1 2 4,
a3
and
y3 =
y
+
y
1
2
(x1 + x3 ) + y1 + a3 , if P 6= Q.
x1 + x2
2
x1 + a4
(x1 + x3 ) + y1 + a3 ,
a3
14
if P = Q.
The attack in this section are general in the sense that they can be applied to
attack the ECDLP over any elliptic curve, they do not exploit any possible
weaknesses on the curve. The main focus of the section is to give an in depth
analysis of the best known attacks, namely the parallelized Pollard and
methods.
3.1
We start by examining the algorithms that work for any cyclic finite abelian
groups. But, first of all we have to define the elliptic curve discrete logarithm
problem: Let E(k) be an elliptic curve defined over the ground field k =Fq
and P a point of order n from the curve. Given another point Q E(k) we
have to find such that Q = P, 0 n 1, if such an integer exists.
The most obvious method of solving the ECDLP is exhaustive search.
One computes R = []P for = 1, 2, 3, ..., and checks whether R = Q.
When equality is reached we conclude = . The algorithm has no storage
requirements, but has a running time of O(N), where N is the order of the
group, in both the average and worst case.
Pohlig and Hellman have observed that the DLP in a group G is only as
hard as the discrete logarithm problem in the largest prime subgroup of G.
A very important consequence of this is that for elliptic curve cryptography
we select elliptic curves such that #E(k) = N = h l, where l is a large
prime an the cofactor h is very small, usually h = 1, 2 or 4. The details of
the algorithm can be found in [5].
As a consequence of the Pohlig-Hellman simplification we can concentrate
on solving the DLP in groups of prime order. One way to do this is to use
Shanks the Baby-step/Giant-step, BSGS, algorithm.
For the start we have a group G = hP i, which we now assume to have
prime order l. As before we are given Q G, and we want to find (mod l)
15
= 0 +1 d le
Pi = [i]P
for 0 i d le.
The pairs (Pi , i) are stored in a table so that one can easily search for items
indexed by the first entry in the pair. One way to do this is to use a hash
table. A hash table is a database accessed by one or more hash functions.
The computation of Baby-steps takes O(d le) time, but there is a similar
amount of storage requirement. We start the computation of Giant-steps by
Qj = Q[j]P 0
for 0 j d le.
The time required to compute the Giant-steps is at most O(d le). The next
step is to try to find a match for Qi in the table of Baby-steps. If we find a
value of Pi such that Pi = Qj , then 0 = i and 1 = j, since
[i+j d le]P = Q.
The running time of the algorithm is O( l), in both the average and worst
3.2
Pollards algorithm
Pollard based his algorithm on the birthday paradox. That is, if we choose
elements at random from a set of S numbered elements, we only need to
2
inputs is (1 N1 )(1 N2 )...(1 k1
) ek /2N for large N and k = O( N).
N
Let E( + ) denote the expected value of the sum of the tail and cycle of
the sequence (Zi ), i.e. the expected number of steps taken on the pseudorandom walk before a collision occurs. Then, under the assumption that f
q
p
|G|
is a random mapping, the value of E( + ) =
1,
253
|G| [61].
2
Z + P , if Z S1 .
2Z, if Z S2 .
f (Z) =
Z + Q, if Z S3 .
for k = 0, 1, 2...
for k = 0, 1, 2...
ai aj
bj bi
(mod l)
unless we are very unlucky and bi bj (mod l). So the method is a Monte
factors others than 1 and itself, the only time gcd(bj bi , l) > 1 holds is if
bj bi is a multiple of l. Given that the size of l in practice is greater than
18
3.3
slower than the expected value of 1, 253 l. In the following we are going to
look at the work done by Teske on improving this result.
3.3.1
The original Pollard algorithm does not achieve the performance of a random walk. Teske [61] investigated the eect of changing the number of subgroup partitions and therefore function clauses on the performance of the
method. Two types of better random walks were suggested: linear walk and
combined walk. Linear walks use an iterating function that contains a fixed
number r of clauses, each of which defines a point addition operation unique
to its partition. The question is how should the parameter r be chosen? In
her work Teske experimented with elliptic curve subgroups of prime order
up to 13 digits. The experiments showed that r = 20 is a good choice. It
was also established [61] that taking r = 20 is suitable for simulating random
walks for any size of group orders. Thus, when performing the linear walk we
first partition the group G into 20 sets, S1 ,...S20 . The next step is to define
a set of multipliers Mi , these are produced by generating random integers
si , ti [1, ..., l 1] and then computing
19
Mi = [si ]P +[ti ]Q
i = 1, ..., 20.
for Z Si .
Z + Mi , if i
/ {u1 , ..., u4 } and Z Si .
.
f (Z) =
2Z,
otherwise.
The scalars ak and bk are computed as:
ak+1 (ak + si )(mod l) or
or
20
The reason behind including point doubling is to take bigger steps in our
walk and thus move faster through the tail and cycle to obtain a solution.
Through the experiments it was found that although the combined walk is
slightly faster than the linear walk for small values of p, the latter is to prefer
as p grows. In Teske experiments [61] the expected number of steps to be
r with a hash function of the form h : hP i {1, ..., r}. This hash function
uses an arithmetic operation that is very fast. This ensures the eciency of
the iterating function at every evaluation of a new term. The hash function
used is:
1,
if 0 < x < k.
2,
if k < x < 2k.
h(Z) =
......
r,
if (r 1)k < x < rk.
where k = 2m /r.
for Z Si
3.4
get is only about m. It was Wiener and Van Oorschot [42] who presented
an ecient way of parallelization which was based on distinguished points.
A distinguished point is a group element with an easily testable property. An
often used distinguishing property is whether a points binary representation
has a certain number of leading zeros. Several processors each create their
own starting point Z0 and iterate until a distinguished points Zd is reached.
When Zk = ak P + bk Q is a distinguished point, the triple (Zk , ak , bk ) is
sent and stored in a central list common to all processors. As soon as a
point occurs in two iterations, the remainder of those two iteration trails
will be the same and thus lead to the same distinguished point. Therefore,
by performing the iterations, all processors calculate random group elements
and as soon as the same element has been calculated twice, we are going to
get the same distinguished point twice, as well. If the two representations of
the point, where the trails collided, are dierent, the representation of the
distinguished point are dierent too, and therefore we are able to calculate
. If we denote the number of processors involved in the search by m and
suppose that each processor will send a distinguished point to the central
list every 1/ group operations on average, where denotes the proportion
of the points that constitute the distinguished points, the expected running
q
time of the parallel Pollard method is E( + ) = l2 /m + 1/ [42].
The great advantage of the parallelized method is that storage require22
ment is negligible. The reason for this is that it is only the distinguished
points that are stored rather than all points encountered in the search. The
q
expected space needed in the central list is E(S) = mE( + ) = l2 + m
3.5
One way of speeding up the algorithm is to reduce the size of the space that
is being searched by a factor of 2. This can be done by replacing Zi by Zi at
each step, here Zi being the negative of Zi . We can do this by choosing the
point which has a smallest y coordinate when it is interpreted as an integer.
When performing the search Zi , ai and bi should be computed as normal, but
this time we compute Zi as well. The point with the smallest y coordinate
is taken to be Zi . If it is Zi , then we have the usual triple (Zi , ai , bi ). Should
Zi be used our triple becomes (Zi , ai , bi ), i.e. ai is replaced by ai
and bi is replaced by bi . Doing this we restrict our search to the points that
have a smaller y coordinate than their negative. Since it yields exactly half
of the points, 6= O, we reduce the search space by a factor of 2. We have to
remember that computing which of Zi and Zi to use also takes some time,
R = fj+1 (Zi ). If R
/ Sj+1 , then Zi+1 = R, otherwise we continue trying
successive points will belong to the same set. We also note that Zi+1 depends
solely on Zi , which is a requirement for parallel collision search to work.
The method for speeding up the parallel collision search described above
can be applied to elliptic curves over any field. Further improvements are
possible if we use special classes of elliptic curves.
3.6
We say that we are using a subfield curve when the elliptic curve we are going
to use is defined over the field Fqn , n > 1, but the coecients of the curve
are in Fq . The value of n should be chosen either to be a prime or a product
of a small factor and a large prime to allow for a large enough prime divisor
of #E(Fqn ). This because if n factors non-trivially as n = n1 n1 , then both
#E(Fqn1 ) and #E(Fqn2 ) divide #E(Fqn ), limiting the range of the largest
prime divisor of #E(Fqn ). In practical implementations it is most usual to use
a class of elliptic curves over F2n whose defining equations have coecients
in F2 . Since it is required that a6 6= 0, they must be defined by either the
equation
y 2 +xy = x3 +1
or the equation
y 2 +xy = x3 +x2 +1.
24
These curves are called anomalous binary curves or Koblitz curves, although
lately, the term Koblitz curve is used for any elliptic curve which has
a special endomorphism structure which enables ecient implementations.
( It is very important not to confuse these curves with anomalous curves over
prime fields). The reason for the extended use of these curves are:
1) It is easy to compute the group order #E(F2n ).
2) The arithmetic can be made faster by using the Frobenius endomorphism. The Weil theorem enables us to compute the number of points on an
elliptic curve over an extension field, #E(Fqn ) for n 2, from #E(Fq ) as
follows:
Theorem 5 Let E be an elliptic curve defined over Fq and the trace of the
Frobenius endomorphism t = q + 1 #E(Fq ). Then #E(Fqn ) = q n + 1
that (Z) = []Z for every point Z = (x, y) E(F2n ). This integer is called
the eigenvalue of the Frobenius endomorphism.
2
n1
F2n . Such a basis always exists for all n 1. Using a normal basis is
25
3.7
The principle behind the improvement is to use equivalence classes, that is, if
there is a convenient equivalence relation on the set, then we can consider a
random walk on the set of equivalence classes rather than the whole set. This
principle can be applied on subfield curves as well, but it is on the anomalous
binary curves that we get the best improvement.
We will use a parallel collision search and compute Zk , ak , bk as usual.
n
and use the one whose x is minimal subject to an ordering condition, we can
for instance choose x such that its binary representation has smallest value
when interpreted as an integer. We can then either choose that point or its
negative, applying the same ordering condition used on x to its y coordinate.
This point will replace Zi . If we have chosen j (Zk ) to replace Zk , we must
reduces the expected running time by a factor of 2n, meaning that the
p
running time of the algorithm is now l/4n.
The SEC standard [56] gives 20 predefined curves in characteristic 2 and
six of these are Koblitz curves, meaning that they have a convenient endomorphism which can be used to speed up the group law. The curves are labelled sect163k1, sect233k1, sect239k1, sect283k1, sect409k1 and sect571k1.
The existence of the technic above means that these curves are not as secure as general curves over the same field. For example one would expect
to need approximately 281 operations to break a general elliptic curve over
F163 while the Koblitz curve requires 277 operations. This improvement although modest, means that we should choose another curve if a security
level of 280 is wanted. In a table taken from [56], we can see the dierence between the security of a general curve and a Koblitz curve for the
field sizes in the mentioned standard. It is assumed that the cofactor is
two for the general curves, as this is the most common case in practice.
Table 2: Information on Koblitz vs general curve security
Curves
sect163k1
sect233k1
sect239k1
sect283k1
sect409k1
sect571k1
2
4
4
4
4
4
General curve
security
281
2116
2119
2141
2204
2285
Koblitz curve
security
277
2111
.
2114
2136
2198
2279
In 1997 Certicom [9] announced a series of elliptic curve challenges. The last
break came in April 2004, when the ECC2-109 was solved. This problem, as
well as all the solved problems before that, was done by using the Pollard algorithm with distinguished points and the ideas of Teske. The problem was
27
distributed over the internet and there was approximately 2600 users who
contributed in the work. The distinguished points were chosen so that approximately one of every 230 points on the curve would be distinguished. The
team that won began their work in November 2002, which means that the
solution was found some 17 months later. This also means that the field sizes
that are used in practice oer long time security. Actually, we can draw a table, taken from [28], that shows the MIPS estimates for the ECDLP over fields
considered for practical use:
Table 3: MIPS years to solve a generic ECDLP using the parallel Pollard
q
160
186
234
354
426
3.8
method
p
q/2 MIP S years
280
8, 5 1011
93
2
7, 0 1015
.
2117
1, 2 1023
2177
1, 3 1041
213
2
9, 2 1051
Pollards algorithm
Pollard developed this method in order to solve the so called interval-[a,b]discrete logarithm problem. The problem at hand is the following: Let G =
hP i be a cyclic group of order g and Q a point from the group such that Q =
P x . We have to find the exponent x, for which we know that x [a, b] [0, g].
such a form is that the exponentiation P x is faster than for randomly chosen
x. But, as we shall see later, this leads to reduced security and one should
thus be careful when choosing x from such intervals.
Originally, the algorithm was called as the method for catching kangaroos, as it is described through two kangaroos, a tame and a wild one. It
is also called the method because if the terms of the sequences of both
kangaroos are drawn on a piece of paper, then the figure obtains the shape of
28
the Greek letter lambda. In the following we will use the latter. We shall now
describe the algorithm in both its original form and in the version given by
Wiener and van Oorschot. First we give the setup for the methods as it is the
same for them both:
We define a set of jump distances S = {s1 , ..., sr } with si > 0 and a set of
jumps J = {P s1 , ..., P sr } and let the mean of the values from S be . Just
when tk Mi
wk+1 = wk P sj
when wk Mj .
We denote the distances travelled by the kangaroos with dk,tame and dk,wild .
With starting distances dk,tame = dk,wild = 0, we define the sequences as
dk+1,tame = dk,tame +si when tk Mi
dk+1,wild = dk,wild +sj
when wk Mj .
(b a)/ + C times to come this far and has it not yet landed on the trail
of T it can be stopped, because it must have passed T , without landing on
its trail. Because the expected starting point for W is P (a+b)/2 , when the algorithm succeeds, the expected number of jumps is (b a)/2 + C. Now we
know that in the algorithm T is sent on its way once and makes C jumps,
while W succeeds once and fails 1/(1 eC ) 1 times. The total running
time of the algorithm is thus C (b a)/2 + (C + (b a)/)/(1 eC ).
Wiener and van Oorschot calculated [42] that this is minimized when
s
1 + eC
.
= ba
2C(2 eC )
Evaluating this expression they find that the running time of the algorithm
3, 3 b a group iterations. All we have to store in this version of the algorithm is the set of jumps and the current position of the two kangaroos. If
we allow more storage, we can use the alternative approach by Wiener and
van Oorschot. They again used the distinguished point technique, but this
time even for the single processor case. We can use the same distinguishing
property as before: a point from the group is distinguished if the points
binary representation has a certain number of leading zeros. Now T is set
30
o from t0 = P
a+b
2
whether the current terms are distinguished points. If this is the case, they
are stored in a hash table. We can check whether a collision has occurred
each time we store a distinguished point. If we come across a distinguished
point such that tN = wM , with N 6= M, then P
a+b
2
P dN,tame = P x P dM,wild
and
+dN,tame dM,wild )(mod g).
x ( a+b
2
For the estimation of the running time we let denote the proportion of group
. It is expected
elements that are distinguished and assume that = ba
2
that the kangaroos trail will collide after 2 b a jumps and it will take additional 2/ iterations to find the distinguished point. In general, the time
until a collision occurs is between b a, when the solution is near the mid
dle of the interval, and 3 b a, when it is near the ends. Thus, the running
2 b a.
Just as the algorithm, the algorithm can also be parallelized so that
we get linear speed up. In fact, there are two dierent ways of paralellization,
one by Wiener and van Oorschot and another by Pollard.
3.9
For a start we assume that we have m processors, with m even. The single
processor case given by Wiener and van Oorschot is actually just a special
case of their parallelization of the algorithm. It corresponds to m = 2, with
two processors simulated on one machine. If m is odd or indefinite, we can
simulate m0 = 2m virtual processors by having one pair of wild and tame
kangaroos on each processor and letting them jump alternately.
Instead of one tame and one wild kangaroo, we will now work with a
herd of m/2 tame kangaroos and a herd of m/2 wild kangaroos, with one
31
kangaroo on each processor. We use the same setup as before and assume
that the mean value of the jump lenghts is m b a/4. We will count
the running time in terms of iterations, where one iteration comprises one
kangaroo jump on each processor. There is a couple of important variables
we have to discuss before we start our kangaroos. One of them is the choice of
jump distances si . There are two good choices: the first is to choose si to be
powers of two starting with si = 1 up to sr = 2r1 , where r is such that the
a+b
+(i1)
2
The initial travel distances are d0,tame (Ti ) = d0,wild (Wi ) = (i 1), and each
kangaroo gets a tag which indicates whether it is a tame or wild. As before, after each jump of the kangaroos it is checked whether some of the new
spots are distinguished points. If we find some distinguished point, we send
it to the central list, together with the corresponding travel distance and
the tame/wild tag. Here it is checked whether there is a reoccurrence of a
distinguished point, and if it is the case the solution is found in a manner
already described.
An unwanted occurrence in this version of parallelization are collisions
between members of the same herd. Such collisions are called useless. There
are
m m
(
2 2
herds. It is expected that there will be at most two useless collisions. This
expected value is confirmed through experiments in [60]. The impact of
useless collisions on the running time of the algorithm can be divided into
two cases: m = 4 and m > 4. In general, there are (m/2)2 possible pairs for
m m
( 1).
2 2
either m2 ( m2
( m2 1)2 if it
happened in dierent herds. This means that the running time is decreased
by a factor of at most
m m
(
2 2
ba
4
a+b
.
4
a+b
.
2
The ex-
jumps for the trailing herd to catch up with the one in the
front. After this has happened, the trailing herd enter a region where the
herd of leading kangaroos already landed on m/2 spots. On each step,
the probability that one of the m/2 trailing kangaroos lands on one of these
spots is m2 /4. The expected number of jumps for each kangaroo before this
happens is 4/m2 . Thus, the expected running time until a useful collision
occurs is ba
+ 4/m2 iterations. This value is at its minimum of 2 b a/m
4
for =
m ba
,
4
start. In general this part of the running time will be somewhere between
b a/m iterations, when the solution is near the middle of the interval,
and 3 b a/m iterations, when it is near the ends. By adding 1/, the time
needed to reach the next distinguished point after a useful collision occurred,
3.10
Again, we use the same setup as before and let denote the proportion of
distinguished points. The main dierence between the two parallelization
methods is that in this one there is no possibility of useless collisions. We
will work with u tame and v wild kangaroos, where u and v are coprime. If
34
a+b
+iv
2
where i = 0, ..., u1
the same running time as for the Wiener-van Oorschot parallelization, provided that we stick too our assumption that u v m/2. This version of
less collisions and a proper choice of spacing. However, it only works if the
number of processors is known in advance and all processors take part in the
computation until the end. Since from the beginning of the computation it
is determined which pair of kangaroos is the one to collide, a failure of one of
the two corresponding processors would lead to the computation not being
finished.
At the end, we should note that we might use the method to solve
the general discrete logarithm problem. But, it is approximately 1, 6 times
slower than the method if a = 0 and b = ord(G). It becomes faster than
the method when b a < /8 ord(G) [60].
36
The attacks that will be analyzed in this section are special in the sense that
they exploit weaknesses in special types of curves.
4.1
Menezes, Okamoto and Vanstone [36] showed how the Weil pairing can be
used to eciently reduce the ECDLP in E(Fq ) to the discrete logarithm
problem in the multiplicative group of an extension field Fqn , where subexponential running time index calculus methods are known. We refer to
their attack as the MOV-attack. Frey and Ruck [14] proposed a similar
method, but based on the Tate pairing. In the following we will both analyze
the methods and describe an important part of the theory of elliptic curves,
namely the divisor theory.
4.1.1
Divisor theory
P E
over k, denoted k[E], is the integral domain k[E] = k[x, y]/(r), where (r)
denotes the ideal generated by r. The function field k(E) of E over k is the
field of fractions of k[E]. Now let k = n1 Fqn be the algebraic closure of
k. Then k[E] = k[x, y]/(r) and k(E), the function field of E over k, is the
field of fractions of k[E]. The elements of k(E) are called rational functions.
Let now f k(E) be a non-zero rational function and P E\{O}. For
each point P E there exists a rational function u k(E), u(P ) = 0 such
The integer d does not depend on the choice of u. The function u is called a
uniformizing parameter for P . The order of f at P is defined to be d, and
we write ordP (f ) = d. The point P is a zero of f if and only if ordP (f ) > 0
and P is a pole if and only if ordP (f ) < 0.
We can define div(f ), the divisor of f , as div(f ) =
P E
ordP (f )(P ). If
P E
P
nP (P ) is defined by f (D) =
The evaluation of f on a divisor D =
P E
Q
f (P )nP . Two divisors are equivalent, denoted D1 D2 , if D1 D2
P sup p(D)
Now we introduce a formula for adding two divisors in canonical form, such
that the result is still in canonical form. This formula provides a method
of finding a rational function f such that div(f ) = D for a given divisor D,
and is critical for computing the Weil pairing. Let D1 , D2 D0 (E) be given
39
E[n] E(k)
2
t 4q
Endk (E).
n | q + 1 t, n | q 1 and either Z or
n2
2
t 4q
discriminant
and Endk (E) the ring of k-endomorphisms of E.
n2
2
t 4q
is
Proof. The proof and the explanation how the quantity
n2
deduced can be found in [46].
Now we turn our attention to the definition of the Weil-pairing. Let n
n(Q) = O, divisors nDP and nDQ are principal and there exist rational
en (P, Q) =
fP (DQ )
.
fQ (DP )
2)
3)
4)
5)
6)
In order to compute the Weil pairing we will proceed using the following
three steps:
1. Pick points T , U E such that P + T 6= U, Q + U and T 6= U , Q + U. Let
DP = (P +T )(T ) and DQ = (Q+U)(U). Then DP (P )(O) and DQ
(Q)(O).
Step 2. Use an evaluation algorithm to compute fP (Q+U), fP (U ), fQ (P +T )
and fq (T ) with div(fP ) = nDP and div(fQ ) = nDQ .
Step 3. Compute
en (P, Q) =
fP ((Q + U) (U ))
fP (Q + U)fQ (T )
fP (DQ )
=
=
.
fQ (DP )
fQ ((P + T ) (T ))
fQ (P + T )fP (U)
A crucial part in the evaluation algorithm in Step 2. For each integer m, there
exists a rational function fm such that div(fm ) = m(P +T )m(T )(mP )+
(O).
If m = n, then div(fn ) = n(P +T )n(T )(nP )+(O), and fP = fn . For any
points R, S, let hR,S and hR be linear functions, where hR,S (x, y) = 0 is the
straight line passing through R, S, and hR (x, y) = 0 is the vertical line passing
through R.
Notice that
div(hm1 P,m2 P ) = (m1 P )+(m2 P )+((m1 +m2 )P )3(O)
and
div(h(m1 +m2 )P ) = ((m1 +m2 )P )+((m1 +m2 )P )2(O).
42
Then we have
div(fm1 +m2 ) = (m1 + m2 )(P + T ) (m1 + m2 )(T ) ((m1 + m2 )P ) + (O) =
hP +T
,
hP,T
since div(f1 ) = (P + T ) (T ) (P ) + (O) = (P + T ) + ((P + T )) 2(O)
t
P
i=0
S E.
Output: f = fn (S).
f f1 ; Z P ;
For j t 1, t 2, ..., 1, 0 do
hZ,Z (S)
; Z 2Z;
f f2
h2Z (S)
if bj = 1 then
hZ,P (S)
; Z Z + P;
f f1 f
hZ+P (S)
Endif
Endfor
Return f
In the same article, three refinements to the algorithm are presented and
the interested reader is invited to study them closely. With all the necessary
computational prerequisites in place we are now ready to take a look at the
MOV-reduction.
43
4.1.3
Before looking at the reduction itself however, we need to further explore the
theoretical background:
Theorem 13 If P E(k) is a point of order n, then there exists Q E[n],
such that en (P, Q) is a primitive n-th root of unity.
Proof. Let Q E[n]. From the Weil pairing we have that en (P, Q)n =
R en (R, Q)
is a group isomorphism.
Proof. Clearly f is a homomorphism due to the properties of the Weil
pairing. Suppose that en (R, Q) = en (R0 , Q), then en (R, Q)en (R0 , Q)1 =
1 = en (R, Q)en (R0 , Q) = 1 = en (R R0 , Q) = 1 = R R0 = O =
required.
and en (P, Q) = 1. We can now describe the method for reducing the ECDLP
to the DLP in a finite field in four steps:
44
2)
3)
4)
The authors of the algorithm have presented successful solutions for both
problems for the class of supersingular elliptic curves. But before looking at
the modified algorithm, we have to define supersingularity:
Definition 16 Supersingularity
An elliptic curve E(k) is supersingular if p divides t.
Here p is a characteristic of the field and t is a trace of Frobenius
endomorphism.
45
Determine the smallest integer l such that E[n] E(Fql ) and the
appropriate value of c by using the table from [36].
2)
3)
4)
5)
4.1.5
In the previous subsection we saw how the algorithm was completed for the
class of supersingular elliptic curves. Finding solutions to steps 1) and 2)
of the algorithm is however significantly more dicult when working with
general, non-supersingular curves. For the first problem, the answer can be
found in an article by Balasubramanian and Koblitz [3]. They proved that
if n - (q 1), then E[n] E(Fql ) if and only if l is the minimum integer
such that n | q l 1. Hence by verifying that n does not divide q l 1 for all
integers l [1, c], where c is chosen so that the DLP problem in kc is deemed
The Frey-Ruck attack is quite similar in nature to the MOV attack, but uses
the Tate-Lichtenbaum pairing instead of the Weil pairing. Just like the MOV
attack, the Frey-Ruck attack attempts to reduce the ECDLP to the DLP in
a suitable extension field over which the elliptic curve in question is defined,
47
the field Fql contains the nth roots of unity, i.e. n | ql 1. From now on we
let Fql = K. Let E[n] denote the subgroup of n torsion points in E(K) and
nE(K) = {n(P ) | E(K)}. Notice that nE(K) is a subgroup of E(K), and
hence we can look at the quotient group E(K)/nE(K). We are now going to
define a pairing on E[n] E(K)/nE(K), but we need a place to map to. If
we define the following set, (K )n = {un | u K }, we can form the quotient
K /(K )n , which is a group of exponent n and is isomorphic to n .
a degree zero divisor equivalent to (Q) (O), and such that D is defined
over Fql with disjoint support from div(f ). To do this we can simply choose
a random S E(K) and define D = (Q + S) (S). Since both div(f )
and D are defined over K, the value f (D) K. Since div(f ) and D were
48
2)
Bilinearity: For any integer t, h[t]P, Qi hP, [t]Qi hP, Qit modulo
n-th powers.
For the pourpose of the attack we will use what is referred to as a modified
Tate-Lichtenbaum pairing. We note that the group K /(K )n is isomorphic
to the group of roots of unity n and thus an instance of the ECDLP on
E(K) can be mapped to an instance of the DLP in n . Now we can define
n to be the following bilinear map:
n (, ) : E[n] E(K)/nE(K) n
n (P, Q)
= hP, Qi(q1)/n .
49
Although the setting is exactly the same, the second setup is more desirable
since it will yield a definite answer instead of a coset in K modulo nth
powers. Again, since we are mapping into the group of nth roots of unity,
we are mapping into a suitable extension field K such that n K. Now we
describe the Frey-Ruck algorithm as given in [22]:
Algorithm 20 The Frey-Ruck algorithm
Input: An element P E(k) of order n and Q hP i.
Output: An integer such that Q = P .
1)
2)
3)
4)
5)
6)
4.1.8
From the above considerations, we can measure the eectiveness of the FreyRuck algorithm by the extension degree l, which is the smallest integer such
that n | (ql 1), while we can measure that of MOV algorithm by l, which
is the smallest integer such that E(k)[n] E(Fql ). Although, the conditions
of the extension degree for the Frey-Ruck algorithm is usually weaker than
that for the MOV algorithm, the work of Balasubramanian and Koblitz shows
that the condition n | (q l 1) is equivalent to the condition E(k)[n] E(Fql )
if n - (q 1), i.e. the eectiveness of the MOV algorithm is the same as that
for the Frey-Ruck algorithm if n - (q 1). It was shown in [26] that elliptic
curves of trace 2 are the only case for which this is not true. For these
4.2
In order to avoid the MOV-attack Miyaji [41] proposed the use of anomalous
elliptic curves over Fp which are such that #E(Fp ) = p. However, such
curves are themselves weak. Methods to attack the anomalous curves have
independently been proposed by Smart [55], Satoh and Araki, and Semaev
[49]. We will outline the method proposed by N. Smart. It uses the theory
of elliptic curves defined over the field of padic numbers Qp . Details from
the theory that are important for the attack will be given here.
4.2.1
We introduce here the padic numbers and their basic properties. Let p be
a prime number and a a rational number. The number a can be expressed as
m
a = pr , where r N and m, n Z are not divisible by p. We then define:
n
Definition 21 The norm:
r
p , if a 6= 0.
.
ordp (a) = r and |a|p =
0,
if a = 0.
The function |.|p : Q [0, ) is a norm on Q , i.e.
i)
|a|p = 0 a = 0.
4.2.2
1
1
z
x
so x =
and y =
z = and w =
y
y
w
w
The coordinate z has no connection with the projective coordinate Z. The
point O is now represented as the pair (0, 0) in the (z, w)-plane. The usual
Weierstrass equation for E becomes
w = z 3 +a1 zw+a2 z 2 w+a3 w2 +a4 zw2 +a6 w3 (= f (z, w)).
As the next step, we substitute the equation into itself recursively and obtain
as a power series in z:
w(z) = z 3 + (a1 z + a2 z 2 )w + (a3 + a4 z)w2 + a6 w3
= z 3 + (a1 z + a2 z 2 )[z 3 + (a1 z + a2 z 2 )w + (a3 + a4 z)w2 + a6 w3 ]
+(a3 + a4 z)[z 3 + (a1 z + a2 z 2 )w + (a3 + a4 z)w2 + a6 w3 ]2
+a6 [z 3 + (a1 z + a2 z 2 )w + (a3 + a4 z)w2 + a6 w3 ]3 + ...
= z 3 + a1 z 4 + (a21 + a2 )z 5 + (a31 + 2a1 a2 + a3 )z 6
+(a41 + 3a21 a2 + 3a1 a3 + a22 + a4 )z 7 + ...
= z 3 (1+A1 z+A2 z 2 +...)
where An Z[a1 , ..., a6 ] is a polynomial in the coecients of E. In [52] it is
shown that this recursion converges to a power series. Using the power series
w(z), we find the Laurent series for x and y.
x(z) =
1
a1
z
= 2
a2 a3 z (a4 + a1 a3 )z 2 ...
w(z)
z
z
y(z) =
1 a1 a2
1
= 3 + 2 + +a3 +(a4 +a1 a3 )z+...
w(z)
z z
z
52
Thus, we see that the pair x(z),y(z) yields a solution in the sense of formal
power series, i.e. if we substitute the formal power series x(z), y(z) into the
equation for E, we get the same formal power series on each side. Then, if
we want to produce some points on E(k) using the zcoordinate, we have
to verify that the series x(z), y(z) converge in the field k. In the field Qp , it
is the case if ordp (z) 1, i.e. z pZp and the coecients a1 , a2 , a3 , a4 and
a6 lie in Zp . This gives an injection pZp E(Qp ).
There is an addition law on the formal power series that corresponds to
the addition law on E(k). Let (z1 , w1 ), (z2 , w2 ) two points of E in the (z, w)plane, then the zcoordinate of the sum of these points z3 is obtained as a
power series in z1 and z2
z3 = F (z1 , z2 ) = z1 + z2 a1 z1 z2 a2 (z12 z2 + z1 z22 ) (2a3 z13 z2 (a1 a2
3a3 )z12 z22 +2a3 z1 z23 )+... Z [a1 , ..., a6 ][z1 , z2 ]
The development used to find F is explained in [52].
From now on, we assume that E is defined over Qp . In the following we will
define various groups and isomorphisms.
b
The first group to be defined is E(pZ
p ); it is essentially the set pZp with the
addition law x y = F (x, y) for all x, y pZp , where F is the formal power
Zp
Fp
a0 +a1 p+... a0
e p obtained after reThe reduction of E modulo p is the elliptic curve E/F
ducing the coecients of E modulo p. A point P E can be represented
1
z
,
.
z
w(z) w(z)
b n Zp ) ' En (Qp ).
In general, E(p
logF (z) =
(z) = z +
c1 2 c2 3
z + z + ...
2
3
logF 1
p (P ).
The reduction
e be a curve of trace one defined over a finite field Fp with p prime, i.e.
We let E
e e e
e
F+
p . As usual we are given P , Q E(Fp ) and we want to find , such that Q =
Pe.
Before looking at the reduction itself, we present two isomorphisms that are
of crucial importance for the method:
Theorem 23 Two isomorphisms:
e p ) and E0 (Qp )/E1 (Qp ) ' E1 (Qp )/E2 (Qp ) ' F+
E(Qp )/E1 (Qp ) ' E(F
p.
Proof. In order to prove the first one it suces to consider the reduction
e p ) and its kernel E1 (Qp ). The isomorphism
map modulo p, : E(Qp ) E(F
is given by applying the first isomorphism theorem of the group theory on .
The next step is to multiply both sides of the last expression by p. This gives
[p]Q([p]P ) = [p]R E2 (Qp )
Since [p]P and [p]Q lie in E1 (Qp ), we can apply isomorphism 3 from Definition 22. Then we get
p ([p]Q) p ([p]P ) p2 Zp .
So, this expression can be written in the form
c1 p+c2 p2 +...(d1 p+d2 p2 +...) = b2 p2 +b3 p3 +...
where the c1 s are the coecients of the padic expansion of p ([p]Q) and
the d1 s are the coecients of the padic expansion of p ([p]P ). Finally, we
obtain
=
p ([p]Q)
c1
mod p.
mod p =
p ([p]P )
d1
Px
(mod p2 ).
Py
The algorithm requires O(log p) group operations on E(Qp ) [5]. With probability 1/p the above method will fail to find the required discrete logarithm
as we will obtain p ([p]P ) 0. However, a dierent curve E(Qp ) can then
e p ) modulo p and the method repeated.
be chosen which reduces to E(F
56
5.1
Hyperelliptic curves are a special class of algebraic curves and can be viewed
as generalizations of elliptic curves. There are hyperelliptic curves of every
genus g 1. A hyperelliptic curve of genus g = 1 is an elliptic curve. We
(1)
which simultaneously satisfy the equation y 2 +h(x)y = f (x) and the partial
derivative equations 2y + h(x) = 0 and h0 (x)y f 0 (x) = 0.
A singular point on C is a solution (x, y) k k which simultaneously
satisfies the equation y 2 + h(x)y = f (x) and the partial derivative equations
(or ramified) point. Otherwise the point is called ordinary. The point at
e
infinity O is a special point O = O.
58
P C
P C
over k, it does not mean that each point in the support of D is krational.
A principal divisor is defined over k if and only if it is a divisor of a rational
function that has coecients in k.
P C\O
(1) nP 0.
(2) if P 6= Pe and nP > 0, then nPe = 0.
(3) if P 6= Pe and nP > 0, then nP = 1.
59
P C
P C2
P C0
nP
D1 = D
nP div(u x)
div(u x).
P =(x,y)C2
P =(x,y)C0 2
P
P
ne
(nP nPe )(P ) +
(nP 2 P )(P )
nP (O).
D1 =
2
P C1
P C3
P sup p(D1 )
P
Proof. The proof of both the existence and uniqeness can be found in
[39].
The statement of the last lemma means that each equivalence class contains a unique reduced divisor and the set of reduced divisors of C over k
forms a complete system of representatives for the Jacobian of C over k.
P
P
Each semi-reduced divisor D =
nP (P ) (
nP )O defined over k
P C\O
60
P C\O
a1 a2
d2
s1 a1 b2 + s2 a2 b1 + s3 (b1 b2 + f )
mod a.
b=
d
The complete proof that this part of the algorithm works can be found
in [39].
Algorithm 32 Computation of the reduction
Input: A semi-reduced divisor D = (a, b).
Output: The unique reduced divisor D0 = div(a0 , b0 ) such that D0 D.
1) Set
f bh b2
a =
a
0
and
b0 = (h b) mod a0 .
2) If deg(a0 ) > genus then go to step 1).
3) Make a0 monic.
Once again, the complete proof that this part of the algorithm works can
be found in [39].
62
5.2
We will in the following make a short review of the attacks which are specific
to hyperelliptic curves. The description and analysis of these attacks is not
the objective of this paper and we will limit us to give the expected running
times of the various attacks. The reason to list them is that they are used
in the final stage of the GHS attack on the ECDLP which will be described
in the next subsection. Now we describe the discrete logarithm problem
on hyperelliptic curve or HCDLP. Let C be a hyperelliptic curve of genus
g over k = Fq . The HCDLP is defined as follows: given C, D1 JC (k),
r = ord(D1 ), and D2 hD1 i, find the integer [0, r 1] such that
D2 = D1 .
Since the HCDLP is a generalization of the ECDLP it is no surprise that
all of the known attack on the ECDLP can be extended to an attack on
the HCDLP. This includes the Pohlig and Hellmann, the BSGS, the MOV
and the Frey-Ruck attacks. But just as for the ECDLP, these methods only
have limited success in solving the HCDLP. And again, the first method that
poses a real threat is Pollards method. The expected running time of the
algorithm is O(g 2 qn/2 log2 q/m) [24], where, as before, m denotes the number
of processors involved. However, since the group operations in E(k) can be
performed faster than the group operations in JC (k), it is more ecient to
apply the method directly in E(K).
The other alternative is to use index-calculus algorithms. Adleman, DeMarrais and Huang (ADH) [1] presented the first index-calculus algorithm
for solving the HCDLP. Their algorithm was described for the case q an odd
prime, but this was later extended in [4] to arbitrary q. The algorithm has
an expected running time of Lq2g+1 [c] for g and log q (2g + 1)0,98 ,
where c < 2, 313 and Ln [c] = O(exp((c + o(1)) log n log log n)) [24]. The
algorithm does not assume that the group order #JC (k) is known.
63
This algorithm has an expected running time of Lqg [ 2] = Lq2g+1 [1] bit oper
ations for g/ log q , where Ln [c] = O(exp((c + o(1)) log n log log n)).
Since its running time is subexponential in qg , this algorithm is infeasible
when q g is very large, i.e. q g 21024 [35]. The main reason for the improved running time over the ADH is that the order and structure of JC (k)
is assumed to be known.
5.3
The technique of Weil descent to solve the ECDLP was first proposed by Frey
[13]. This strategy was detailed further by Galbraith and Smart [16]. These
papers were rather general in their scope, but were not detailed enough to
give precise and ecient algorithms to solve the ECDLP for specific curves.
The work of Gaudry, Hess and Smart [19] was less general than the earlier
works but gave much more powerful and ecient techniques. We refer to the
method as the GHS attack. We will in the following give an overview of the
attack. More detailed analyses can be found in papers from the references.
Before describing the method we note that almost all research on Weil
descent has been performed in characteristic 2. The ideas are easily applied
to finite fields Fpn , where p is odd and n < 1, but the results in these cases
are not as strong as in the case of characteristic 2.
We start now the description of the algorithm. Let l and n be positive
64
equations into the equation for our elliptic curve and equating coecients
of i , we obtain WE/k , which is an ndimensional abelian variety defined
over k, the group law on WE/k being given by the group law on E(K). This
process is called Weil descent.
The next step is to intersect WE/k with n1 carefully chosen hyperplanes
to obtain the hyperelliptic curve C. The genus g of C is either 2m1 or
2m1 1, where m = m(b).
phism
: E(K) JC (k).
65
It was argued in [19] that assuming #E(K) = rd, r a prime and d a small
integer, it is highly unlikely that the kernel of will contain the subgroup of
order r of E(K) unless E is defined over a proper subfield of K containing
k. Thus, can be used to reduce instances of the ECDLP to instances of
the HCDLP. Namely, given P and Q hP i, then logP Q = log(P ) (Q).
the smallest values of m > 1 and the elliptic curves which give rise to such
m.
Theorem 33 Let n be an odd prime, t the multiplicative order of 2 modulo
n and s = (n 1)/t.
i) The polynomial xn 1 factors over F2 as (x 1)f1 f2 ...fs , where the
fi s are distinct irreducible polynomials of degree t. For 1 i s
define
i=1..s
Bi is qs(q t 1) + q.
66
then this can be mapped using the GHS method to the discrete logarithm
problem in the Jacobian of a hyperelliptic curve of low genus. Ecient
methods to find the isogenous curve and the isogeny are given in [15], as
well as a study as to how eective this extension to the GHS method is in
practice. This extension to the original attack can still not solve real life
problems, but as it was pointed out in [33], the failure of the GHS method
does not imply a failure of the Weil descent methodology, there may be other
useful curves which lie on the Weil restriction WE/k that are not constructed
by the GHS method.
67
Summary
In this thesis we presented the known algorithms for attacking the discrete logarithm problem over the elliptic curves, the ECDLP. We started by
presenting some basic definitions and facts from the theory of elliptic curves.
We proceeded to describe the generic attacks, i.e. algorithms that may be
used to solve the ECDLP over general elliptic curves. An in depth analysis
of Pollards and algorithms were given. The analysis included both the
original method of Pollard and the improvements given by Teske. In addition we have shown the way to parallelize the algorithms, i.e. how to run
the attack over a number of processors. The parallelized algorithm is the
method of choice when trying to solve the ECDLP in practice. It was used
to solve to ECDLP challenges set by the Certicom company.
We have also presented special algorithms for solving the ECDLP. These
attacks are special in the sense that they are designed to exploit weaknesses
in the structure of some classes of elliptic curves. The algorithms that
were analyzed included the Menezes-Okamoto-Vanstone (MOV) algorithm
based on the Weil pairing, the Frey-Ruck (FR) algorithm based on the TateLichtenbaum pairing, the algorithm of Smart on the anomalous curves and
the relatively new algorithm of Gaudry, Hess and Smart (GHS) based on the
Weil descent methodology. These algorithms are eective in attacking classes
of elliptic curves which they were designed for, but are easily circumvented
in actual implementations.
68
References
47. Rene Schoof: Counting points on elliptic curves over finite fields,
Journal de Theorie des Nombres, tome 7, nr. 1 (1995), p. 219-254
48. V. Schoup: Lower bounds for discrete logarithm and related problems, Advances in Cryptology-EUROCRYPT 97, Springer-Verlag LNCS,
p. 313-328, 1997
49. I. A. Semaev: Evaluation of discrete logarithms in a group of p-torsion
points of an elliptic curve in characteristic p, Mathematics of computation, Vol. 67, No. 221, 1998
50. J. Shikata, Y. Zheng, J. Suzuki, H. Imai: Optimizing the MenezesOkamoto-Vanstone (MOV) algorithm for non-supersingular elliptic curves,
Advances in cryptology-Asiacrypt 99, p. 86-102, 1999
51. J. Shikata, Y. Zheng, J. Suzuki, H. Imai: Realizing the MenezesOkamoto-Vanstone (MOV) reduction for ordinary elliptic curves, 2000
http://www.sis.uncc.edu/yzheng/publications/files/ieiceE83-2k-4.pdf
52. J. H. Silverman: The arithmetic of elliptic curves, GTM 106, SpringerVerlag, 1986
53. J. H. Silverman: Advanced Topics in the Arithmetic of Elliptic Curves,
Springer-Verlag, 1995
54. N.P. Smart: How secure are elliptic curves over composite extension
fields, 2000
http://www.iacr.org/archive/eurocrypt2001/20450030.pdf
55. N. P. Smart: The discrete logarithm problem on elliptic curves of trace
one, Journal of cryptology, Vol. 12, No. 3, 1999
56. Standards for ecient cryptography. SEC2: Recomended elliptic curve
domain parameters. Version 1.0, http://www.secg.org/, 2000
57. M. Stobauer: Ecient algorithms for pairing based cryptosystems,
diploma thesis, Darmstad university of technology, 2004
58. C. Studholme: The discrete logarithm problem, 2001
http://www.cs.toronto.edu/cvs/dlog/research paper.pdf
59. E. Teske: Square-root algorithms for the discrete logarithm problem,
2001
www.math.uwaterloo.ca/eteske/squareroots.ps
73
60. E. Teske: Computing discrete logarithms with the parallelized kangaroo method, 2001
http://www.cacr.math.uwaterloo.ca/techreports/2001/corr2001-01.ps
61. E. Teske: Speeding up Pollards rho method for computing discrete
logarithms, Technical report No. TI-1/98, Technische Hochschule
Darmstadt, 1998
62. E. Teske: On random walks for Pollards rho method, Mathematics
of computation, Vol. 70, p. 809-825, 2001
63. S. Vanstone: ECC Holds Key to Next-Gen Cryptography, Certicom
Corporation, 2004
74