In 1985, Victor Miller (IBM) and Neil Koblitz (University of Washington) invented elliptic curve cryptography (ECC), which comes under public-key cryptosystem. At the time of its invention, the ECC algorithm provided higher potential security than other cryptographic algorithms. However, the ECC also had a limitation that it required an enormous amount of execution time. In order to improve its performance, Certicom [1] focused and provided efforts on its implementation part. Later on several years of research, the first commercial toolkit was introduced by Certicom to enhance ECC and created it for practical use in a variety of applications. The ECC is a public-key cryptosystem which is basically derived from the algebraic construction of elliptic curves over finite domains. The ECC has many advantages compared to other cryptographic schemes such as RSA, Elgamal and Diffie–Hellman key exchange, etc. One of the major advantages is that it can provide the same degree of protection offered by other cryptography schemes with keys of smaller size. For example, the 160-bit key used in the ECC provides the same level of security as by the RSA with 1024-bit key. Likewise, the ECC with 224-bit key provides the same degree of protection provided by the RSA with 2048-bit key. Because, a small size key is used for proving high-level security in the ECC, it also takes less computation time for performing encryption and decryption operation. Moreover, it would minimize the storage complexity of processing with smaller size key values.
Similar to other public-key cryptosystem such as RSA and Elgamal, in ECC, each user selects a private key within a finite group from which a public key is computed. For computing the public key from private key, each user selects a base point, which is taken from the elliptic curve. The base point is a point in the curve which is similar to the generator used in other public-key cryptosystems such as Diffie–Hellman key exchange and Elgamal. When this base point is added with the private key, it is necessary to perform point addition and when it is multiplied with the private key it would perform point multiplication. Apart from that, in ECC-based algorithms, it is infeasible to recover the discrete logarithm of a random elliptic curve element from a publicly known base point. This problem is predicted as the ‘elliptic curve discrete log problem’ or ECDLP. The total security of ECC depends on the inability to find the multiplicand value from the given original and product points in a point multiplication.
The elliptic curves are described by cubic equations. An elliptic curve is a plane curve and it is defined by the equation as given below:
where a, b are the elliptic curve coefficients and x and y are the values of real numbers. The main characteristics of elliptic curve are summarized as follows:
• Abelian groups: An abelian group is a set, denoted by A, together with an operation denoted by •, any two elements a, b in the set A form another element denoted a • b. The symbol • corresponds to the binary operation. The set and operation, (A, •), require to satisfy the abelian group axioms:
– (A1) Closure: If a, b is in A, then the result of a • b is also in A.
– (A2) Associativity: The equation (a • b) • c = a • (b • c) holds for all a, b, c
A
– (A3) Identity element: For all elements a in A, there exists an element e in A, such that e • a = a • e = a.
– (A4) Inverse element: For each a in A, there exists an inverse element a′ in A such that a • a′ = a′ • a = e, where e is the identity element.
– (A5) Commutativity: a • b = b • a, for all a, b
A.
is acting as the identity element.
The main operations involved in the ECC are point addition and point multiplication. In point addition, the two adding points that lie on an elliptic curve result in a third point on the curve. From this definition, the point addition defines some rules for addition over an elliptic curve.
A group can be described based on the set
for exact values of a and b in the equation
, which makes the following condition is satisfied:
To describe the group, an addition operation must be defined which is denoted as +. The above equation is satisfied for the values of a and b for the set
In geometric terms, the following rules are defined for addition over an elliptic curve.
.
(Existence of an identity element)
where L is the point on the elliptic curve.
on the elliptic curve, then the negative of the point is represented as
If these two points are connected by a vertical line, then
(Existence of inverses)
(Commutativity)
(Associativity)
The point addition is illustrated in Figure 9.1.

Figure 9.1 Illustration of point addition
in the same elliptic curve. Point doubling is illustrated in Figure 9.2. Then

Figure 9.2 Illustration of point doubling
Let us consider two distinct points
and
on the elliptic curve. The straight line
between them touches the third point
on the same elliptic curve. The reflection of
denoted as
along the x-axis provides the result of
. The slope of the line
can be calculated as given below:
Therefore,
where,
If the given two points are same
, then point doubling operation will be performed. The addition of two same points is called point doubling. For performing the point doubling operation,
, the following equations are used. In the following equations, a new point
is computed based on calculating
and
values.
where,
Point multiplication is performed by using both point addition and point doubling. In point addition, two distinct points are added to get a result of another point in the same elliptic curve. In point doubling, the same point is added to itself to get a result of another point in the same elliptic curve. In point multiplication, a scalar multiplication is performed between a value and a point. Let us consider a scalar value
which is multiplied with the base point
in the elliptic curve to get a new point
on the same curve, i.e. to find
For example, If
, then
In this case, rather than multiplying the scalar value n with the base point
, point doubling and point addition operations are performed. In order to do that, the scalar value 23 is splitted into multiples of 2 to perform point doubling operation as shown below:
In the above example, point addition and point doubling are used to get the result of point multiplication
. The ECC is divided into two types, namely, prime curves and binary curves. Prime curves
are very much useful for software-oriented applications, because it does not require extended bit-fiddling operation. Binary curves (GF(2n)) are more suitable for hardware application because it uses extended bit-fiddling operation. In this book, we have discussed about the prime curves (Zp)-based ECC.
In ECC, the variables and coefficients of elliptic curve are limited to a finite field
. For example, let us assume the elliptic curve
where
. In this curve, if
and
.Therefore, the curve becomes
. In order to perform algebraic addition over the given elliptic curve that belongs to
, let us consider two points on the elliptic curve
. The algebraic addition rules for elliptic curve over
are summarized as follows:
,
and
,
Then
,
and
,
then
,
can be calculated as
where
.Example 9.1:
Let consider two different points
and
from the elliptic curve y2 = x3 + x + 1 mod 23. Perform the point addition between the two points
and
Solution
The slope between the two points can be calculated as
Let us consider
, then
Therefore,
.
Suppose, If
, then
. In this case, point doubling operation as shown below:
Therefore,
,
.
Example 9.2:
Let consider the elliptic curve
. Hence, this is the group which belongs to
. Find the discrete logarithm
for the equation
where
and
.
Solution
Let us assume that the intruder knows the values of
and
. Then, the intruder performs the brute-force method until the value of
is reached to find the value of
. The point addition and point doubling operations are used to perform brute-force method in the following manner.
Here
. Therefore, the value of the discrete logarithm
is 9. The brute force is infeasible to perform, if the value of
is so large.
The ECC is applied to Diffie–Hellman key exchange to resolve the vulnerability in key exchange problem. The following subsection gives an overall idea about Diffie–Hellman key exchange using elliptic curves.
Step 1: Initially, Alice and Bob select an elliptic curve
with parameters
for a large prime number
.
Step 2: Alice and Bob also select a base point P = (x, y) on the elliptic curve of order c such that
Here, c is the small positive integer. The value of
is known to all users in the system.
Step 3: Suppose Alice and Bob want to share a secret key. Alice selects a random integer
less than c which is considered as Alice’s private key. Alice does not disclose it to anyone. From this private key, Alice computes public key.
Step 4: Similarly, Bob selects a random integer
less than c independently which is Bob’s private key and does not disclose to anyone. Based on this, Bob also computes his public key.
Step 5: These computed public key values are exchanged to each other. Alice transmits
to Bob and Bob transmits
to Alice. Notice that the adversary Eve tries to view the values of
and
, since they are exchanged over the insecure communication channel.
Step 6: From the public value (
received from Bob, Alice can generate the shared secret key by using the following equation:
Step 7: Bob can also generate the shared secret key from
The values
and
generated by Alice and Bob are really identical. This can be proved as given below:
(by the rules of modular arithmetic)
=
Figure 9.3 shows the diagrammatic representation of ECC-based Diffie–Hellman key exchange. Alice wishes to establish a secure communication link with Bob. Then, Alice and Bob choose distinct one-time private keys
and then calculate
respectively. Alice sends
to Bob and Bob sends
to Alice. Both Alice and Bob can calculate the shared secret key for communication. The summary of Diffie–Hellman key exchange using elliptic curves algorithm is shown in Table 9.1.

Figure 9.3 Diffie–Hellman key exchange using elliptic curves
Table 9.1 Summary of Diffie–Hellman key exchange algorithm using elliptic curves

The ECC-based Elgamal cryptosystem was described by Taher Elgamal in 1985. This cryptosystem is developed based on the ECC-based Diffie–Hellman key exchange algorithm. The ECC is applied to Elgamal cryptosystem to make the cryptosystem strong from vulnerabilities. This is consided to be strong because for larger key values it is infeasible to attack. ECC is also effective due to its shorter key length and higher efficiency on encryption and decryption [2]. The following subsection gives an overall idea about Elgamal cryptosystem using elliptic curves.
Step 1: Alice and Bob want to make secure communications with each other. Alice selects a message m to be communicated with Bob.
Step 2: Bob selects an elliptic curve
, where
is a large prime number. In addition, Bob selects a base point
on the elliptic curve and a private key
and then computes,
Step 3: Bob places
and
in the public directory and keeps the value
as secret.
Step 4: Now, Alice selects a random integer
and then computes
Step 5: Now, the pair
is sent to Bob. Bob decrypts the message
by computing
Proof of correctness:

(Since,
)
(Since,
)
(Since
)
The steps involved in Elgamal cryptosystem which is based on the use of elliptic curves are depicted in Figure 9.4.

Figure 9.4 ECC-based Elgamal cryptosystem
Example 9.3:
Bob chooses an elliptic curve
and
. He also chooses
and then computes
and publishes
and
in the public directory. Alice desires to send the message
to Bob. Then Alice selects a random integer 3 and computes
Now, the pair
is sent to Bob. Bob decrypts the message m by computing
The following subsection describes an overall idea about Elgamal digital signature using elliptic curves.
Step 1: Alice and Bob want to make communications with each other. Alice desires to send a message m to Bob and assumes that
is an integer.
Step 2: Alice selects an elliptic curve
, where
is a large prime number. If
is not a large prime number, then
, where
is the number of points on the elliptic curve E. Along with that, Alice selects a point
on the elliptic curve and a private key
and then computes
Step 3: Alice place G, H, x and the curve E in the public directory and keeps the value
as secret.
Step 4: Now, Alice wants to sign a message m. In order to do that, Alice selects a random integer a such that
. After that, Alice computes the signature
and
as given below:
Step 5: Now, the signed message
is sent to Bob. Bob verifies the signature S in the following way:
Proof of correctness:
where,
and
Therefore,
Since,
Bob declares the signature as a valid signature.
Abelian group
Elliptic curve cryptography
Elliptic curves
Point addition
Point doubling
Point multiplication
.