SlideShare a Scribd company logo
1 of 12
Download to read offline
TinyECC: A Configurable Library for Elliptic Curve Cryptography
in Wireless Sensor Networks∗
An Liu
Department of Computer Science
NC State University, Raleigh, NC 27695
email: aliu3@ncsu.edu
Peng Ning
Department of Computer Science
NC State University, Raleigh, NC 27695
email: pning@ncsu.edu
Abstract
Public Key Cryptography (PKC) has been the enabling
technology underlying many security services and proto-
cols in traditional networks such as the Internet. In the
context of wireless sensor networks, elliptic curve cryptog-
raphy (ECC), one of the most efficient types of PKC, is be-
ing investigated to provide PKC support in sensor network
applications so that the existing PKC-based solutions can
be exploited.
This paper presents the design, implementation, and
evaluation of TinyECC, a configurable library for ECC op-
erations in wireless sensor networks. The primary objec-
tive of TinyECC is to provide a ready-to-use, publicly avail-
able software package for ECC-based PKC operations that
can be flexibly configured and integrated into sensor net-
work applications. TinyECC provides a number of opti-
mization switches, which can turn specific optimizations
on or off based on developers’ needs. Different combi-
nations of the optimizations have different execution time
and resource consumptions, giving developers great flexi-
bility in integrating TinyECC into sensor network applica-
tions. This paper also reports the experimental evaluation
of TinyECC on several common sensor platforms, includ-
ing MICAz, Tmote Sky, and Imote2. The evaluation results
show the impacts of individual optimizations on the exe-
cution time and resource consumptions, and give the most
computationallyefficient and the most storage efficient con-
figuration of TinyECC.
1. Introduction
Recent technological advances have made it possible
to develop wireless sensor networks consisting of a large
number of low-cost, low-power, and multi-functional sen-
sor nodes that communicate over short distances through
∗This work is supported by the National Science Foundation under
grants CAREER-0447761 and CNS-0721424, and by the Army Research
Office under grants W911NF-05-1-0247 and W911NF-04-D-0003. The
contents of this paper do not necessarily reflect the position or the policies
of the U.S. Government.
wireless links. Such sensor networks are ideal candidates
for a wide range of applications such as monitoring of crit-
ical infrastructures, data acquisition in hazardous environ-
ments, and military operations. The desirable features of
wireless sensor networks have attracted many researchers
to develop protocols and algorithms that can fulfill the re-
quirements of these applications.
Security services such as authentication and key man-
agement are critical to communication security in wire-
less sensor networks as well as the security of sensor net-
work applications. In traditional networks such as the Inter-
net, Public Key Cryptography (PKC) has been the enabling
technology underlying many security services and proto-
cols (e.g., SSL [3] and IPsec [18]). For example, PKC has
been used to bootstrap symmetric session keys and authen-
ticate messages to multiple receivers. However, in wireless
sensor networks, PKC has not been widely adopted due to
the resource constraints on sensor platforms, particularly
the limited and depleteable battery power.
There has been intensive research aimed at developing
techniques that can bypass PKC operations in sensor net-
work applications. For example, there has been a substan-
tial amount of research on random key pre-distribution for
pairwise key establishment (e.g., [13, 23]) and broadcast
authentication (e.g., [24, 25]). However, these alternative
approaches do not offer the same degree of security or func-
tionality as PKC. For instance, none of the random key
pre-distribution schemes can guarantee key establishment
between any two nodes and tolerate arbitrary node com-
promises at the same time. As another example, the afore-
mentioned broadcast authentication schemes, which are all
based on TESLA [32], require loose time synchronization,
which itself is a challenging task to achieve in wireless
sensor networks. In contrast, PKC can address all these
problems easily. Pairwise key establishment can always be
achieved using, for example, the Diffie-Hellman (DH) key
exchange protocol [12], without suffering from the node
compromise problem. Similarly, broadcast authentication
can be provided with, for example, the ECDSA digital sig-
nature scheme [7], without requiring time synchronization.
Thus, it is desirable to explore the application of PKC on
resource constrained sensor platforms.
There have been a few recent attempts to use PKC in
wireless sensor networks [15, 26, 33], which demonstrate
that it is feasible to perform limited PKC operations on the
current sensor platforms such as MICAz motes [2]. Elliptic
Curve Cryptography (ECC) has been the top choice among
various PKC options due to its fast computation, small
key size, and compact signatures. For example, to provide
equivalent security to 1024-bit RSA, an ECC scheme only
needs 160 bits on various parameters, such as 160-bit finite
field operations and 160-bit key size [8].
Despite the recent progress on ECC implementations
on sensor platforms, all the previous attempts [15, 26, 33]
have limitations. In particular, all these attempts were de-
veloped as independent packages/applications without se-
riously considering the resource demands of sensor net-
work applications. As a result, developers may find it dif-
ficult, and sometimes impossible, to integrate an ECC im-
plementation with the sensor network applications, though
the ECC implementation may be okay on its own. For ex-
ample, an ECC implementation may require so much RAM
that it would be impossible to fit both the sensor network
application and the ECC implementation on the same node.
Moreover, various optimization techniques are available
to speed up the ECC operations. Such optimizations, how-
ever, typically will increase the ROM and RAM consump-
tions, though they may reduce the execution time and en-
ergy consumption. It is not clear what optimizations should
be used and how they should be combined to achieve
the best trade-off among security protection, computation
overheads, and storage requirements. Additional research
is necessary to clarify these issues and facilitate the adop-
tion of ECC-based PKC in wireless sensor networks.
It is certainly possible to have dedicated PKC hardware
included on sensor platforms. However, given that there
is no PKC hardware that is currently available on current
sensor platforms, it is a sensible choice to explore software
approaches for PKC support on sensor platforms.
In this paper, we present the design, implementation,
and evaluation of TinyECC, a configurable library for ECC
operations in wireless sensor networks.1 The primary ob-
jective of TinyECC is to provide a ready-to-use, publicly
available software package for ECC-based PKC operations
that can be flexibly configured and integrated into sensor
network applications.
Targeted at TinyOS [5], TinyECC is written in
nesC [14], with occasional in-line assembly code to achieve
further speedup for popular sensor platforms including MI-
CAz [2], TelosB [4], Tmote Sky [6], and Imote2 [1]. A
1TinyECC 1.0 and its previous versions are publicly available at
http://discovery.csc.ncsu.edu/software/TinyECC/.
unique feature of TinyECC is its configurability. TinyECC
includes almost all known optimizations for ECC opera-
tions. Each optimization is controlled by a software switch,
which can turn the optimization on or off based on devel-
opers’ needs. Different combinations of optimizations have
different ROM/RAM consumption, execution time, and en-
ergy consumption. This gives the developers great flexibil-
ity in integrating TinyECC in their applications.
To provide guidance in using TinyECC, we perform a
series of experiments with different combinations of ac-
tivated optimizations. To understand the impact of each
optimization technique, we compare the execution time,
ROM/RAM consumption, and energy consumption with
and without the given optimization enabled on MICAz [2],
Tmote Sky [6], and Imote2 [1]. In addition, our experi-
ments also present the performance results and the resource
usages for the most computationally efficient configuration
(i.e., fastest execution and least energy consumption) and
the most storage-efficient configuration (i.e., least ROM
and RAM usage) of TinyECC on these common sensor
platforms, respectively.
The contribution of this paper is two-fold: First, we de-
velop TinyECC to allow flexible integration of ECC-based
PKC in sensor network applications. Second, we per-
form a substantial amount of experimental evaluation us-
ing representative sensor platforms, including MICAz [2],
TelosB [4], Tmote Sky [6], and Imote2 [1]. The experi-
mental results provide useful experience and guidance for
developers to choose different TinyECC optimizations for
their needs.
The remainder of this paper is organized as follows.
Section 2 discusses the design principles of TinyECC. Sec-
tion 3 gives background information on ECC. Section 4 de-
scribes the optimization techniques adopted by TinyECC.
Section 5 discusses the implementation of TinyECC. Sec-
tion 6 presents the experimental evaluation of TinyECC on
MICAz, Tmote Sky, and Imote2. Section 7 discusses the
related work, and Section 8 concludes this paper.
2. Design Principles
As mentioned earlier, the primary objective of TinyECC
is to provide a ready-to-use, publicly available software
package for ECC-based PKC operations that can be flexibly
configured and integrated into sensor network applications.
To make sure we achieve this objective, we follow several
principles in the design and development of TinyECC.
Security: TinyECC should provide PKC schemes that
have proven to be secure. To follow this principle,
TinyECC only includes support for the well-studied ECC
schemes such as ECDSA, ECDH, and ECIES, which are
defined in the Standards for Efficient Cryptography [8].
Moreover, TinyECC also includes elliptic curve parame-
ters recommended by SECG (Stands for Efficient Cryp-
2
tography Group), such as secp160k1, secp160r1 and
secp160r2, as defined in [9].
Portability: TinyECC should run on as many sensor
platforms as possible. Due to this reason, we choose to
implement TinyECC on TinyOS [5], which is a popular,
open-source OS for networked sensors. All the TinyECC
components have nesC [14] implementations, though some
modules also include inline assembly code, which can be
turned on for faster execution on some sensor platforms.
This allows TinyECC to be compiled and used on any sen-
sor platform that can run TinyOS. TinyECC has been tested
successfully on MICAz, TelosB, Tmote Sky, and Imote2.
Resource Awareness and Configurability: TinyECC
should accommodate the typical resource constraints on
sensor nodes. Moreover, TinyECC should allow for flex-
ible configuration so that it can take advantage of the avail-
able resources on a wide spectrum of sensor platforms. To
follow this principle, TinyECC is implemented carefully
to avoid unnecessary resource usage. Moreover, TinyECC
uses a set of optimization switches, which can be turned
on or off to achieve different combinations of performance
and resource consumptions.
Efficiency: TinyECC should be computationally effi-
cient to reduce the battery consumption as well as the de-
lay introduced by PKC operations. We make three design
decisions to improve the efficiency of TinyECC. The first
is about the type of finite fields over which the ECC opera-
tions are performed. ECC can be implemented over either
a prime field Fp, where p is a large prime number, or a bi-
nary extension field F2m, where m is an integer. Since arith-
metic operations over F2m are insufficiently supported by
micro-controllers, we choose to support prime fields Fp in
TinyECC. Second, we adopt almost all existing optimiza-
tions for ECC operations in TinyECC. As mentioned ear-
lier, these optimizations can be turned on or off to balance
the efficiency and the resource requirements. Third, we in-
clude inline assembly code in critical parts of TinyECC
for popular sensor platforms, including MICAz, TelosB,
Tmote Sky, and Imote2.
Functionality: TinyECC should support the typical
demands for PKC. To follow this principle, the current
version of TinyECC includes a digital signature scheme
(ECDSA), a key exchange protocol (ECDH), and a pub-
lic key encryption scheme (ECIES). These cover all typical
uses of PKC.
3. Background on ECC
In this and next sections, we give an overview of ECC
and the optimizations adopted by TinyECC as a convenient
reference. The reader can find details in the references.
Elliptic curve cryptography (ECC) is an approach to
public-key cryptography based on the algebraic structure of
elliptic curves over finite fields [16]. Elliptic curves used in
cryptography are typically defined over two types of finite
fields: prime fields Fp, where p is a large prime number,
and binary extension fields F2m. For space reasons, we fo-
cus on elliptic curves over Fp in this paper.
An elliptic curve over Fp is defined by a cubic equation
y2 = x3 + ax + b, where a,b ∈ Fp are constants such that
4a3 + 27b3 = 0 [16]. An elliptic curve over Fp consists of
the set of all pairs of affine coordinates (x,y) for x,y ∈ Fq
that satisfy an equation of the above form and an infinity
point O. The points on an elliptic curve form an abelian
group with O as the additive identity. (The formulas defin-
ing point addition and its special case, point doubling, can
be found in [16].)
For any point G on an elliptic curve, the set
{O,G,2G,3G,...} is a cyclic group [16]. The calcula-
tion of kG, where k is an integer, is called a scalar mul-
tiplication. The problem of finding k given points kG
and G is called the elliptic curve discrete logarithm prob-
lem (ECDLP). It is computationally infeasible to solve
ECDLP for appropriate parameters [16]. The hardness of
ECDLP allows several cryptographic schemes based on el-
liptic curves.
TinyECC includes three well-known ECC schemes:
(1) the Elliptic Curve Diffie-Hellman (ECDH) key agree-
ment scheme, (2) the Elliptic Curve Digital Signature Algo-
rithm (ECDSA), and (3) the Elliptic Curve Integrated En-
cryption Scheme (ECIES). ECDH is a variant of the Diffie-
Hellman key agreement protocol [12] on elliptic curve
groups. ECDSA is a variant of the Digital Signature Al-
gorithm (DSA) [29] that operates on elliptic curve groups.
ECIES is a public-key encryption scheme which provides
semantic security against an adversary who is allowed to
use chosen-plaintext and chosen-ciphertext attacks [16].
ECIES is also known as the Elliptic Curve Augmented En-
cryption Scheme (ECAES) or simply the Elliptic Curve En-
cryption Scheme. These ECC schemes allow smaller key
sizes for similar security level to the alternatives such as the
original DH and DSA schemes. For each of the schemes,
a party that would like to use the scheme needs to agree
on some domain parameters such as the elliptic curve and a
point G on the curve, and must have a key pair consisting of
a private key d and a public key Q = dG. The specification
of ECDH, ECDSA, and ECIES can be found in [8,16].
4. Optimizations Adopted by TinyECC
In this section, we briefly discuss the optimization tech-
niques adopted by TinyECC. We will omit the details, since
the focus of this paper is not these individual optimization
techniques. More information about these techniques can
be found in the relevant references.
3
4.1. Optimizations for Large Integer Operations
Barrett Reduction [28]: A straightforward way to
perform large integer modular reductions is to use divi-
sion [19]. A nice side effect is that it reuses the code of
division, thus resulting in more compact code size.
Barrett Reduction is an alternative method for modular
reduction [28]. It converts the reduction modulo an arbi-
trary integer to two multiplications and a few reductions
modulo integers of the form 2n. When used to reduce a
single number, Barrett reduction is slower than a normal
division algorithm. However, when used to reduce vari-
ous numbers modulo the same number many times, by pre-
computing some value, Barrett reduction can achieve faster
speed than modular reductions obtained by division. De-
tails of Barrett reduction can be found in [28].
In TinyECC, since almost all the modular operations
are modulo the same prime number p, Barrett reduction
can potentially speed up the computation. However, this
requires the implementation of a separate reduction algo-
rithm, which implies larger code size (i.e., greater ROM
requirement) on sensor nodes. In addition, Barrett reduc-
tion also increases RAM use. Assume the target micro-
controller has a w-bit word size. Given a finite field Fp,
where p is a k words long prime number, Barrett reduction
requires the pre-computation of µ = ⌊bk
p ⌋, where b = 2w
(e.g., b = 28 on a 8-bit processor). This number µ has to
be stored and used throughout all the modular reductions.
Thus, to exchange for faster computation, Barrett reduction
requires more ROM and RAM than the traditional division-
based modular reduction.
Hybrid Multiplication and Hybrid Squaring [15]:
Standard large integer multiplication algorithms [19] store
the operands and the product in arrays. When such an al-
gorithm is implemented in a high-level language such as
nesC, the compiler cannot use the registers in the micro-
controller efficiently, and the binary code usually needs
to load the operands from memory to registers multiple
times [15]. Gura et al. [15] proposed a hybrid multipli-
cation algorithm, which was intended for assembly code.
This algorithm can maximize the utilization of registers
and reduce the number of memory operations. TinyECC
adopts this hybrid multiplication algorithm for MICAz [2],
TelosB [4]/Tmote Sky [6], and Imote2 [1]. Indeed, the code
can be used on any sensor platforms that have processors
using the same instruction sets.
In addition to hybrid multiplication, we also customize
the hybrid multiplication algorithm for squaring operations
by using the fact that the two multiplicative operands in
squaring are the same. This further reduces the execution
time for squaring at the cost of larger code size.
4.2. Optimizations for ECC Operations
Projective Coordinate Systems [16]: As discussed ear-
lier, an elliptic curve consists of the infinity point O and the
set of points in the affine coordinates (x,y) for x,y ∈ Fp that
satisfy the defining equation. Alternatively, a point on an
elliptic curve can be represented in a projective coordinate
system in the form of (x,y,z).
Point addition and point doubling are critical operations
in ECC, which are building blocks for scalar multiplica-
tions required by all ECC schemes. These operations in
affine coordinate system require modular inversion oper-
ations, which are much more expensive than other oper-
ations such as modular multiplications. Using a projective
coordinate system [16], modular inversions can be removed
with the compensation of a few modular multiplications
and squares. As a result, the execution times of point ad-
dition and point doubling based on projective coordinate
system are faster than those based on affine coordinate sys-
tem, respectively [16].
TinyECC uses two additional optimizations along with
projective coordinate representation, which can further re-
duce both the execution time and the program size. The
first is a mixed point addition algorithm [16], which adds a
point in projective coordinate and a second point in affine
coordinate. This algorithm can be used in scalar multipli-
cations to further reduce the number of modular multiplica-
tions and squares, leading to smaller and faster code. The
second is repeated Doubling [16] for scalar multiplication.
If consecutive point doublings are to be performed, the re-
peated doubling algorithm may be used to achieve faster
performance than repeated use of the doubling formula. In
m consecutive doublings, this algorithm trades m − 1 field
additions, m − 1 divisions by two, and a multiplication for
two field squarings (in comparison with repeated applica-
tions of the plain point doubling algorithm) [16].
Though reducing the execution time, the projective co-
ordinate representation requires a larger code size (for more
complex formula) and more RAM (for storing additional
variables) than the affine coordinate system.
Sliding Window for Scalar Multiplications [16]:
Scalar multiplication is a basic operation used by all ECC
schemes. It is in the form of kP, where k is an integer and
P is a point on an elliptic curve. In the most straightfor-
ward method to compute kP, k is scanned from the most
significant bit to the least significant bit. When each bit is
scanned, the algorithm needs to compute a point doubling.
When the scanned bit is “1”, the algorithm also needs to
perform a point addition. The sliding window method can
speed up the scalar multiplication by scanning w bits at a
time. Each time when a w-bit window is scanned, the algo-
rithm needs to perform w point doublings. By precomput-
ing 2P, 3P, ..., and (2w − 1)P, the sliding window method
4
only needs to perform 1 point addition every w bits, and
thus has less computational cost.
It is easy to see that the sliding window method will
increase both the ROM (for additional code size) and RAM
(for storing the pre-computed points) consumptions.
Shamir’s Trick [16]: This optimization is only used
for the verification of ECDSA signatures. The verification
of ECDSA signature requires the computation of the form
aP + bQ, where a,b are integers and P,Q are two points
on an elliptic curve. A straightforward implementation
requires two scalar multiplications and a point addition.
However, Shamir’s trick allows us to compute the above
value at a cost close to one scalar multiplication. Specif-
ically, with pre-computed P + Q, we may scan the (same)
bits of a and b from the most significant one to the least
significant one. For each bit, we need double the interme-
diate value, which is initialized as the infinity point. If the
scanned bit positions are ai = 0,bi = 1 , ai = 1,bi = 0 ,
or ai = 1,bi = 1 , we add P, Q, or P + Q to the interme-
diate value. This reduces two scalar multiplications to be a
bit more expensive than one such operation.
Similar to the sliding window method, Shamir’s trick
will increase both the ROM (for additional code size) and
RAM (for storing the pre-computed P+Q) consumptions.
Curve Specific Optimization [15]: A number of el-
liptic curves specified by NIST [30] and SECG [9] use
pseudo-Mersenne primes. A pseudo-Mersenne prime is of
the form p = 2n − c, where c ≪ 2n. Reduction modulo a
pseudo-Mersenne prime can be performed by a few mod-
ular multiplications and additions without any division op-
eration. As a result, the time for modular reduction can
be reduced significantly. Thus, using elliptic curves over
a pseudo-Mersenne prime can achieve additional perfor-
mance gain.
5. Implementation
We implemented TinyECC on TinyOS [5], an open
source operating system designed for wireless embedded
sensor networks. The current version of TinyECC provides
support for ECDSA (digital signatures), ECDH (pairwise
key establishment), and ECIES (PKC-based encryption).
Most of the code was written in nesC [14] for portability
reasons. To best harness the capabilities of the processors
on popular sensor platforms such as MICAz and TelosB,
we also provided inline assembly implementation of some
critical operations, such as large integer multiplications.
To save implementation efforts, we ported the C code of
large integer operations in RSAREF 2.0 [20] to nesC code
on TinyOS. These include modular addition, subtraction,
multiplication, division, inverse, and exponentiation opera-
tions. We then implemented all the elliptic curve operations
and the optimization techniques discussed earlier.
TinyECC has been released publicly at http:
//discovery.csc.ncsu.edu/software/
TinyECC/. Some preliminary versions have been
adopted by other researchers (e.g., [11, 21, 27]). As
discussed earlier, starting from the current version, we
added a set of optimization switches to provide for flexible
configuration of TinyECC so that it can be integrated
into sensor network applications with different resource
consumptions and performance demands.
Table 1 lists the optimization switches available in the
current version of TinyECC. All optimization switches can
be turned on or off by a simple configuration at compile
time, or slight modification in the source code. Moreover,
when the sliding window method is used, an additional pa-
rameter defining the size of the window (e.g., w = 4) needs
to be specified.
6. Evaluation
We performed a series of experiments to evaluate
TinyECC on four representative sensor platforms, includ-
ing MICAz [2], TelosB [4], Tmote Sky [6], and Imote2 [1].
The objective of these experiments is three-fold: First,
we want to measure the performance and resource con-
sumption of TinyECC on a spectrum of sensor platforms,
ranging from the low-end ones (such as MICAz, TelosB,
and Tmote Sky) to high-end ones (such as Imote2). Sec-
ond, we would like to understand the impact of the op-
timizations adopted by TinyECC on performance and re-
source consumption. Finally, we would like to provide de-
tailed performance results and resource demands for com-
monly desirable configurations, including the configuration
that provides the fastest execution time and the configura-
tion that requires the least memory consumption. The for-
mer has the least energy consumption, while the latter is the
easiest one to integrate into sensor network applications.
6.1. Methodology and Experimental Setup
Evaluation Methodology: Given seven optimization
switches, four sensor platforms, where Imote2 has mul-
tiple CPU frequencies due to dynamic voltage scaling,
many possible elliptic curves, and three ECC-based PKC
schemes, there are a large number of experiments to per-
form if we have to observe the performance and resource
consumptions in all cases.
To simplify the scenarios, we adopted the following
methodology in our experiments. For each optimization
switch, we performed two sets of experiments, referred to
as case A and case B, respectively. In case A, for each opti-
mization, we disabled all the other optimizations, and then
obtained the performance and resource consumption met-
rics when the given optimization was enabled and disabled,
respectively. In case B, we enabled all the other optimiza-
tions and obtained the evaluation metrics again when the
given optimization was enabled and disabled, respectively.
5
Table 1. TinyECC Optimization Switches
Method Optimization Switch Category Description
Barrett Reduction BARRETT large number Allow Barrett reduction.
Hybrid Multiplication HYBRID MULT large number Allow hybrid multiplication in inline assembly.
Hybrid Squaring HYBRID SQR large number Allow hybrid squaring in inline assembly.
Projective Coordinate System PROJECTIVE EC Use projective coordinate system along with mixed point addition and repeated doubling.
Sliding Window Method SLIDING WIN EC Use sliding window method for scalar multiplication. A window size (e.g. w = 4) has to be
defined along with this switch.
Shamir’s Trick SHAMIR TRICK EC Allow Shamir’s trick when verifying ECDSA signatures. A window size (e.g. w = 2) has to be
defined along with this switch.
Curve-Specific Optimization CURVE OPT EC Allow curve specification optimization. This has to be used for the curves defined over pseudo-
Mersenne primes [9,30].
The differences in these metrics reflect the impact of the
given optimization technique.
Moreover, as discussed earlier, we also performed ad-
ditional experiments to examine in detail two commonly
desirable configurations: the one that provides the fastest
execution time, and the one that requires the least storage.
Experimental Setup: We evaluated TinyECC on the
latest CVS version of TinyOS 1.x [5]. As discussed ear-
lier, we chose four representative sensor platforms, MI-
CAz, TelosB, Tmote Sky, and Imote2, for the experiments,
since they are popular sensor platforms and cover the 8-bit,
16-bit and 32-bit processors. Other sensor platforms (e.g.,
Mica2, Mica2Dot) are expected to perform similarly to one
of these platforms, due to the use of the same processor.
TelosB and Tmote Sky have almost the same hardware.
The only difference is that TelosB can only run at 4 MHz,
while Tmote Sky can run at 8 MHz when an external resis-
tor is enabled. We configure Tmote Sky to run at 8 MHz in
our experiments. Due to the similarity between TelosB and
Tmote Sky, we only report the results on Tmote Sky in this
paper. The reader may refer to the technical report version
of this paper [22] for experimental results on TelosB.
As a high-end sensor platform, Imote2 uses an XScale
processor and supports dynamic voltage scaling. To ob-
tain a relatively complete view of Imote2, we used four dif-
ferent frequencies on Imote2 in our experiments: 13MHz,
104MHz, 208MHz, and 416MHz.
By default, TinyECC includes all 128-bit, 160-bit and
192-bit ECC parameters recommended by SECG [9]. It
is well-known that 160-bit ECC has the same security
level as 1024-bit RSA. We selected a 160-bit elliptic curve
secp160r1 [9] to evaluate the impact of individual op-
timization techniques. Note that the actual selection of
curves depends on the security needs in the sensor network
applications, and is outside of the scope of this paper.
We used the following evaluation metrics in all ex-
periments: ROM consumption (byte), RAM consumption
(byte), execution time (ms), and energy consumption (mil-
lijoule). We used the check size.pl script in the
TinyOS distribution to obtain the ROM and RAM sizes re-
quired by the TinyECC components. The execution time
was measured directly on the sensor nodes. To get the over-
all performance result, we randomly generated the parame-
ters (e.g., random message, random public and private key
pairs) other than those defining the curves, and obtained
the execution time for each data point by taking the av-
erage of 10 test instances. The energy consumption was
then calculated as U × I × t based on the execution time
(t), the voltage (U), and current draw (I) on these sensor
platforms [1,2,4,6].
6.2. Evaluation Results
Due to the space limit, we can only report a portion of
the evaluation results. Please refer to the full version of this
paper [22] for more details.
6.2.1. Impact of Individual Optimizations
In the following, we use the experimental results for
ECDSA to show the impact of individual optimization
techniques. More results on the impacts of these optimiza-
tions on ECDH and ECIES can be found in [22].
There are three aspects of the execution time for
ECDSA. Figures 1(a) and 1(b) show the initialization time
required to prepare for ECDSA in cases A and B, respec-
tively. Figures 1(c) and 1(d) show the signature generation
time in cases A and B, respectively. Figures 1(e) and 1(f)
show the signature verification time in cases A and B, re-
spectively.
In the initialization of ECDSA, TinyECC needs to pre-
compute µ for Barrett reduction, a few points for the slid-
ing window method, and a few points for Shamir’s trick.
In case A, as Figure 1(a) shows, only these 3 optimiza-
tion techniques have impact on the initialization time. For
MICAz, the initialization of the sliding window method
with window size 4 requires 3,587 ms, which is longer
than Shamir’s trick (1,672 ms for window size 2) and
Barrett reduction (6 ms). The same situation applies to
TelosB/Tmote Sky, and Imote2. If we disable all these
three techniques, the initialization time of ECDSA is close
to 0. In case B, as Figure 1(b) shows, the disabling of se-
lected optimization technique does not reduce the initial-
ization time dramatically, except that the disabling of the
sliding window method reduces the initialization time by
half.
In Figure 1, we can see that PROJECTIVE is the most
6
0.0781
0.0519
0.0281
0.0041
0.0023
0.0023
6.3978
4.0771
0.7864
0.0988
0.0498
0.0271
0.0781
0.0488
0.0278
0.0040
0.0023
0.0023
0.0781
0.0488
0.0284
0.0040
0.0025
0.0023
0.0781
0.0580
0.0277
0.0043
0.0023
0.0023
0.0781
0.0427
0.0282
0.0042
0.0023
0.0020
3586.6933
2465.4326
319.7278
39.9632
19.9811
10.0027
1671.8788
1146.4202
148.8784
18.6104
9.3050
4.6558
0.0001
0.0100
1.0000
100.0000
10000.0000
1000000.0000
MICAz
(8 MHz)
Tmote Sky
(8 MHz)
Imote2
(13 MHz)
Imote2
(104 MHz)
Imote2
(208 MHz)
Imote2
(416 MHz)
Time(ms)
Disable All BARRETT HYBRID_MULT HYBRID_SQR
CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2)
(a) Init. time when all other optimizations are disabled (case A)
3493.36
2545.18
341.25
42.68
21.34
10.74
2544.20
340.46
42.57
21.29
10.71
3772.85
2594.95
360.12
45.01
22.50
11.32
3572.08
2566.90
346.92
43.36
21.68
10.91
3826.72
2934.96
378.47
47.31
23.66
11.85
3292.86
2327.40
300.22
37.53
18.76
9.40
1684.46
1230.10
164.50
20.56
10.28
5.17
3626.14
2641.15
353.18
44.14
22.07
11.11
3486.92
0.0001
0.0100
1.0000
100.0000
10000.0000
1000000.0000
MICAz
(8 MHz)
Tmote Sky
(8 MHz)
Imote2
(13 MHz)
Imote2
(104 MHz)
Imote2
(208 MHz)
Imote2
(416 MHz)
Time(ms)
Enable All BARRETT HYBRID_MULT HYBRID_SQR
CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2)
(b) Init time when all other optimizations are enabled (case B)
30723.00
21284.39
2785.11
348.11
174.06
87.12
31760.27
21779.61
2936.58
367.06
183.53
91.81
30423.74
21220.11
2766.76
345.82
172.91
86.56
30207.65
21196.15
2750.48
343.79
171.89
29591.55
20918.37
2710.26
338.76
169.38
84.81
9086.12
4177.88
891.13
111.39
55.70
28.31
25273.89
17333.41
2270.90
283.84
141.92
71.07
30725.57
21323.55
2785.10
348.11
174.06
87.12
86.04
1
10
100
1000
10000
100000
1000000
MICAz
(8 MHz)
Tmote Sky
(8 MHz)
Imote2
(13 MHz)
Imote2
(104 MHz)
Imote2
(208 MHz)
Imote2
(416 MHz)
Time(ms)
Disable All BARRETT HYBRID_MULT HYBRID_SQR
CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2)
(c) Sig. generation time when all other optimizations are disabled (case A)
2001.62
1580.63
363.98
45.63
22.82
11.80
2007.97
1585.60
364.97
45.86
22.93
11.95
3249.44
1865.71
447.39
55.92
27.93
14.34
2957.78
1894.93
431.97
53.99
27.00
4066.37
3045.78
611.52
76.44
38.21
19.25
23565.96
16777.23
2179.79
272.45
136.20
68.28
2456.95
2041.65
459.20
57.40
28.70
14.78
2001.62
1583.22
365.73
45.72
22.86
11.82
13.91
1
10
100
1000
10000
100000
1000000
MICAz
(8 MHz)
Tmote Sky
(8 MHz)
Imote2
(13 MHz)
Imote2
(104 MHz)
Imote2
(208 MHz)
Imote2
(416 MHz)
Time(ms)
Enable All BARRETT HYBRID_MULT HYBRID_SQR
CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2)
(d) Sig. generation time when all other optimizations are enabled (case B)
61800.34
42886.27
5560.35
694.99
347.49
174.00
63892.90
43841.09
5863.27
732.85
366.43
183.31
61197.70
42724.94
5523.87
690.44
345.22
172.87
60761.77
42675.35
5491.07
686.41
343.17
59517.10
42115.65
5411.92
676.45
338.22
169.55
18294.94
8425.67
1783.73
222.95
111.46
56.19
50807.12
34745.25
4514.04
564.21
282.10
141.20
30484.70
20793.69
2710.03
338.73
169.37
84.77
171.75
1
10
100
1000
10000
100000
1000000
MICAz
(8 MHz)
Tmote Sky
(8 MHz)
Imote2
(13 MHz)
Imote2
(104 MHz)
Imote2
(208 MHz)
Imote2
(416 MHz)
Time(ms)
Disable All BARRETT HYBRID_MULT HYBRID_SQR
CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2)
(e) Sig. verification time when all other optimizations are disabled (case A)
2436.46
2016.02
446.85
56.02
28.01
14.49
2442.09
2020.10
446.29
55.96
27.98
14.49
4108.00
2411.19
557.07
69.63
34.78
17.84
3556.52
2347.82
525.87
65.73
32.87
5048.30
3804.69
754.55
94.31
47.15
23.75
28509.93
20157.31
2606.36
325.77
162.91
81.65
2436.49
2018.40
447.57
55.94
27.97
14.48
4020.43
3175.11
725.52
90.68
45.34
23.38
16.93
1
10
100
1000
10000
100000
1000000
MICAz
(8 MHz)
Tmote Sky
(8 MHz)
Imote2
(13 MHz)
Imote2
(104 MHz)
Imote2
(208 MHz)
Imote2
(416 MHz)
Time(ms)
Enable All BARRETT HYBRID_MULT HYBRID_SQR
CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2)
(f) Sig. verification time when all other optimizations are enabled (case B)
Figure 1. ECDSA timing result (Projective coordinate system is the most effective optimization, while Barrett
reduction does not have obvious impact.)
effective switch to improve the speed of signature genera-
tion and verification. In case A, by enabling the PROJEC-
TIVE switch, the signature generation and verification of all
platforms can speed up by at least 3 times. In case B, if we
disable the PROJECTIVE switch, the signature generation
and verification has at least 6 times slowdown compared
with enabling all optimization techniques.
Although PROJECTIVE is the most efficient switch, it
increases the ROM usage. Figures 2(a) and 2(b) show that
when the PROJECTIVE switch is enabled in case A, the
ROM size is increased by 1,218, 1,326, and 1,752 bytes
for MICAz, TelosB/Tmote Sky, and Imote2, respectively,
while the RAM size does not change at all. In case B,
as Figures 2(c) and 2(d) show, disabling the PROJECTIVE
switch can save 3,816, 3,880, and 4,660 bytes in ROM for
MICAz, TelosB/Tmote Sky, and Imote2, respectively. The
PROJECTIVE switch is the most effective switch to speed
up ECDSA operations, but it also incurs larger ROM con-
sumption than any other optimization technique.
SHAMIR TRICK is also an efficient option to speed up
ECDSA signature verification. From Figure 1(e), we can
see that the verification can speed up by 2 times on all
platforms when enabling SHAMIR TRICK in case A. Both
ROM and RAM sizes are increased. In case A, the RAM
size is increased by 634, 676, and 784 bytes for MICAz,
TelosB/Tmote Sky, and Imote2, respectively. Similarly, the
7
ROM size of MICAz, TelosB/Tmote Sky and Imote2 is in-
creased by 638, 632, and 620 bytes, respectively. In case
B, disabling SHAMIR TRICK makes verification 1.6 times
slower but saves 2,148, 2,068, and 2,208 bytes in ROM for
MICAz, TelosB/Tmote Sky, and Imote2, respectively. The
RAM size does not decrease much because the sliding win-
dow method is used for verification when SHAMIR TRICK
is disabled.
Now let us take a look at the SLIDING WIN option. In
case A, as Figures 1(c), 1(e), 2(a) and 2(b) show, enabling
SLIDING WIN can make signature generation and verifica-
tion 1.2 times faster at the cost of dramatic RAM increase
(1,262, 1,328 and 1,472 bytes for MICAz, TelosB/Tmote
Sky, and Imote2, respectively). In case B, as Figures
1(d), 1(f), 2(c) and 2(d) show, disabling SLIDING WIN
can save 632, 668, and 752 bytes of RAM for MICAz,
TelosB/Tmote Sky, and Imote2 with 1.2 times slower sig-
nature generation and verification. Since MICAz and
TelosB/Tmote Sky are low-end sensor platforms, they have
much smaller RAM (4kB, 10kB) compared with Imote2
(256kB). Before enabling SLIDING WIN, we should be
very careful if the sensing application has large RAM con-
sumption. Since SLIDING WIN is the most RAM consum-
ing switch in TinyECC, application developers may disable
it or reduce the window size to reserve more RAM for the
applications.
Now consider the HYBRID MULT, HYBRID SQR, and
CURVE OPT options. In case A, HYBRID MULT, HY-
BRID SQR and CURVE OPT do not have big impact on
the timing result. However, in case B, HYBRID MULT
can speed up signature generation by 1.6 times for MI-
CAz, 1.2 times for TelosB/Tmote Sky, and 1.2 times for
Imote2. Similarly, it can speed up signature verification
by 1.7 times for MICAz, 1.2 times for TelosB/Tmote Sky,
and 1.2 times for Imote2. HYBRID SQR can speed up sig-
nature generation by 1.5 times for MICAz, 1.2 times for
TelosB/Tmote Sky, and 1.2 times for Imote2, and speed up
signature verification by 1.5 times for MICAz, 1.2 times for
TelosB/Tmote Sky, and 1.2 times for Imote2. CURVE OPT
can speed up signature generation by 2 times for MICAz,
1.9 times for TelosB/Tmote Sky, and 1.7 times for Imote2.
Similarly, it can speed up signature verification by 2.1
times for MICAz, 1.9 times for TelosB/Tmote Sky, and
1.7 times for Imote2. The reason that HYBRID MULT,
HYBRID SQR and CURVE OPT cannot speed up ECDSA
much in case A is that the PROJECTIVE option is disabled
when each of these switches is enabled. Thus, inverse op-
eration is the major computation of signature generation
and verification. In case B, when PROJECTIVE is enabled,
multiplication and squaring become the major computation
in ECDSA.
Based on the timing results obtained for ECDSA, the
effectiveness of these optimization switches in terms of
10,180
8,172
8,644
11,468
9,358
10,048
11,278
8,208
8,696
11,500
8,310
8,824
10,690
8,660
9,232
11,398
9,498
10,396
10,374
8,364
8,896
10,818
8,804
9,264
0
5,000
10,000
15,000
20,000
25,000
MICAz Tmote Sky Imote2
ROMsize(Byte)
Disable All BARRETT HYBRID_MULT HYBRID_SQR
CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2)
(a) ROM size w/ all other optimizations disabled (case A)
152
160
176
244
258
292
152
160
176
152
160
176
152
160
176
152
160
176
1,414
1,488
1,648
786
836
960
0
500
1,000
1,500
2,000
2,500
MICAz Tmote Sky Imote2
RAMsize(Byte)
Disable All BARRETT HYBRID_MULT HYBRID_SQR
CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2)
(b) RAM size w/ all other optimizations disabled (case A)
19,308
14,708
16,352
17,970
13,520
14,940
18,378
14,672
16,300
18,080
14,570
16,172
18,246
13,904
15,452
15,492
10,828
11,692
18,196
13,546
14,972
17,160
12,640
14,144
0
5,000
10,000
15,000
20,000
25,000
MICAz Tmote Sky Imote2
ROMsize(Byte)
Enable All BARRETT HYBRID_MULT HYBRID_SQR
CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2)
(c) ROM size w/ all other optimizations enabled (case B)
1,510
1,602
1,828
1,418
1,504
1,712
1,510
1,602
1,828
1,510
1,602
1,828
1,510
1,602
1,828
1,510
1,602
1,828
878
934
1,076
1,506
1,586
1,764
0
500
1,000
1,500
2,000
2,500
MICAz Tmote Sky Imote2
RAMsize(Byte)
Disable All BARRETT HYBRID_MULT HYBRID_SQR
CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2)
(d) RAM size w/ all other optimizations enabled (case B)
Figure 2. Code size of ECDSA (Sliding window has
the most memory demand, Shamir’s trick ranks the
next, while all the other optimizations have similar
memory demands.)
8
Available ROM (byte) How to Conf. TinyECC’s Switches
[10,180,10,374) disable all
[10,374,11,398) enable SLIDING WIN
[11,398,17,160) enable PROJECTIVE
[17,160,17,970) enable all & disable SHAMIR TRICK
[17,970,19,308) enable all & disable BARRETT
[19,308,+∞) enable all
Table 2. Configuration based on Free ROM for MICAz
Available RAM (byte) How to Conf. TinyECC’s Switches
[152,786) disable all
[786,878) enable SHAMIR TRICK
[878,1,418) enable all & disable SLIDING WIN
[1,418,1,510) enable all & disable BARRETT
[1,510,+∞) enable all
Table 3. Configuration based on Free RAM for MICAz
execution time can be ordered as follows: PROJECTIVE
> CURVE OPT > HYBRID MULT > HYBRID SQR >
SLIDING WIN > SHAMIR TRICK > BARRETT. In terms
of RAM size, the optimization switches can be ordered as
follows: SLIDING WIN > SHAMIR TRICK > BARRETT
> HYBRID MULT = HYBRID SQR = CURVE OPT =
PROJECTIVE.
In terms of ROM size, the optimization switches are or-
dered differently for different platforms. For MICAz, PRO-
JECTIVE > BARRETT ≈ HYBRID SQR > CURVE OPT
≈ SHAMIR TRICK ≈ HYBRID MULT > SLIDING WIN.
For TelosB/Tmote Sky, PROJECTIVE > BARRETT ≈
SHAMIR TRICK > CURVE OPT ≈ SLIDING WIN >
HYBRID SQR > HYBRID MULT. For Imote2, PROJEC-
TIVE > BARRETT > SHAMIR TRICK ≥ CURVE OPT >
SLIDING WIN > HYBRID SQR > HYBRID MULT.
Configuration Guideline: To summarize and assist
users of TinyECC, in Tables 2 and 3, we show how to
choose optimization switches on MICAz motes when the
amount of available ROM and RAM for TinyECC can be
estimated. TinyECC requires at least 10,180 bytes ROM
and 152 bytes RAM to be used on MICAz. As more ROM
and RAM are available, we can gradually enable the opti-
mization switches as indicated in these tables to get better
performance. For example, having a ROM size between
11,398 bytes and 17,160 bytes allows us to enable both
SLIDING WIN and PROJECTIVE switches (but not oth-
ers). Note that an optimization can be enabled if both ROM
and RAM sizes allow it. Optimization switches can be de-
termined for other platforms similarly.
6.2.2. Most Computationally Efficient Configuration
Now consider the most computationally efficient con-
figuration. Apparently, TinyECC provides the most com-
putationally efficient configuration when all the optimiza-
3493.36
2001.62
2436.46
1838.74
3907.46
2632.66
1838.74
2117.43
2545.18
1580.63
2016.02
1319.32
3271.01
2127.77
1319.54
1755.96
341.25
363.98
446.85
178.34
736.97
466.10
179.16
392.12
42.68
45.63
56.02
22.29
92.06
58.15
22.39
49.01
21.34
22.82
28.01
11.15
46.06
29.13
11.20
24.51
10.74
11.80
14.49
5.64
24.26
15.10
5.65
12.89
1
10
100
1000
10000
100000
init
(ECDSA)
sign
(ECDSA)
verify
(ECDSA)
init
(ECIES)
encrypt
(ECIES)
decrypt
(ECIES)
init
(ECDH)
key establish
(ECDH)
Time(ms)
MICAz (8 MHz) Tmote Sky (8 MHz) Imote2 (13 MHz) Imote2 (104 MHz) Imote2 (208 MHz) Imote2 (416 MHz)
Figure 3. Execution time of ECDSA, ECIES, and
ECDH w/ all optimization switches enabled
tion switches are enabled. Figure 3 shows the execution
time required by ECDSA initialization, signature genera-
tion, signature verification; ECIES initialization, encryp-
tion, decryption; ECDH initialization, key establishment.
From figure 3, we can see that enabling all optimiza-
tion switches requires long pre-computation. For exam-
ple, it takes MICAz 3,493, 1,839 and 1,839 ms to do pre-
computation for ECDSA, ECIES and ECDH, respectively.
Most of the pre-computation time is for the sliding win-
dow method and Shamir’s trick (ECDSA only). Tmote Sky
runs slightly faster than MICAz. Running at 13 MHz, the
default CPU frequency for Imote2, Imote2 is faster than
Tmote Sky in all operations. If we set the frequency to
416 MHz, it only takes 12 and 14 ms to generate ECDSA
signature and verify it. Moreover, it can perform ECIES
encryption in 24 ms and decrypt in 15 ms. Finally, ECDH
key establishment only takes 13 ms.
Enabling all optimization switches requires the largest
ROM and RAM consumptions. Figure 4 shows the ROM
and RAM requirements by all schemes. Imote2 has the
largest RAM size due to its word size. MICAz has the
smallest RAM size due to its 8-bit word size, but it has the
largest ROM size because it has additional assembly code
for minimizing memory operation when CURVE OPT op-
tion is enabled.
Now consider the energy consumption of ECDSA,
ECIES and ECDH on the testing platforms. We estimate
energy consumption using W = U × I ×t, where U is the
voltage, I is the current draw in active mode with radio off,
and t is the execution time. We took the voltage and cur-
rent draw (with radio off) from the data sheet of each sensor
platform [1, 2, 4, 6], and used the execution time obtained
in our experiments. Specifically, we chose U as 3v for MI-
CAz and TelosB/Tmote Sky. The current draw for MICAz
and TelosB/Tmote Sky was 8 mA and 1.8 mA, respectively.
For Imote2, U is 0.95v for 13 MHz and 104 MHz [1]. The
Imote2 data sheet [1] does not give the current draw when
the node runs at 104 MHz with radio off. To be conserva-
tive, we use the current draw with radio on in our compu-
tation. That is, we chose 31 mA and 66 mA for Imote2 at
9
20,768
16,018
13,520
15,658
11,396
16,352
17,728
12,852
19,308
0
5,000
10,000
15,000
20,000
25,000
ECDSA ECIES ECDH
ROMsize(byte)
MICAz Tmote Sky Imote2
(a) ROM size
1,774
1,774
1,504
1,816
1,816
1,828
2,064
2,064
1,510
0
500
1,000
1,500
2,000
2,500
ECDSA ECIES ECDH
RAMsize(byte)
MICAz Tmote Sky Imote2
(b) RAM size
Figure 4. Code size of ECDSA, ECIES, and ECDH w/
all optimization switches enabled
83.84
48.04
58.48
44.13
93.78
63.18
44.13
50.82
13.74
8.54
10.89
7.12
17.66
11.49
7.13
9.48
10.05
10.72
13.16
5.25
21.70
13.73
5.28
11.55
2.68
2.86
3.51
1.40
5.77
3.65
1.40
3.07
0
10
20
30
40
50
60
70
80
90
100
init
(ECDSA)
sign
(ECDSA)
verify
(ECDSA)
init
(ECIES)
encrypt
(ECIES)
decrypt
(ECIES)
init
(ECDH)
key establish
(ECDH)
Energyconsumption(mJ)
MICAz (8 MHz) Tmote Sky (8 MHz) Imote2 (13 MHz) Imote2 (104 MHz)
Figure 5. Energy consumption of ECDSA, ECIES,
and ECDH w/ all optimization switches enabled
13 MHz and 104 MHz.
Figure 5 shows the energy consumption required by all
these operations. Imote2 is the most energy efficient plat-
form when it runs at 104 MHz. It needs 2.86 mJ and 3.51
mJ to generate ECDSA signature and verify it; it needs
5.77 mJ and 3.65 mJ to do ECIES encryption and decryp-
tion; and it needs 3.07 mJ for the ECDH key agreement
operation. MICAz is the most energy consuming platform.
TelosB/Tmote Sky is quite efficient at energy consumption
due to its low current draw with radio off.
6.2.3. Most Storage-Efficient Configuration
Many TinyOS applications may use TinyECC for au-
thentication, encryption/decryption, or key establishment.
0.08
30723.00
61800.34
0.08
61401.83
31872.28
0.08
31208.21
0.05
21284.39
42886.27
0.05
42558.09
21415.06
0.04
21151.53
0.03
2785.11
5560.35
0.04
5514.29
2811.87
0.04
2718.31
0.00
348.11
694.99
0.01
689.23
351.45
0.01
339.77
0.00
174.06
347.49
0.00
344.63
175.73
0.00
169.89
0.00
87.12
174.00
0.00
172.42
88.02
0.00
85.05
0.001
0.01
0.1
1
10
100
1000
10000
100000
1000000
init
(ECDSA)
sign
(ECDSA)
verify
(ECDSA)
init
(ECIES)
encrypt
(ECIES)
decrypt
(ECIES)
init
(ECDH)
key establish
(ECDH)
Time(ms)
MICAz (8 MHz) Tmote Sky (8 MHz) Imote2 (13 MHz) Imote2 (104 MHz) Imote2 (208 MHz) Imote2 (416 MHz)
Figure 6. Execution time of ECDSA, ECIES, and
ECDH w/ all optimization switches disabled
Thus it is likely that TinyECC will be loaded on sen-
sor nodes with other applications. Due to the resource
constraint of low-end sensor platforms (e.g., MICAz,
TelosB/Tmote Sky), we may have to reduce ROM and
RAM consumption by disabling some optimizations to re-
serve enough space for the sensing applications.
For example, when all optimizations are enabled,
ECDSA needs 19,308 bytes ROM and 1,510 bytes RAM
on MICAz, as figure 4 shows. Stack overflow may happen
when TinyECC is integrated with other programs such as
TOSBase; the available stack for local variables may not
be large enough due to the limited RAM (4K bytes) on
MICAz. As another example, Tmote Sky only has 48K
bytes ROM. If ECDSA with all optimizations enabled is
integrated with the SurgeTelos, a popular TinyOS applica-
tion [5], the total ROM size would be 40,380 bytes, leaving
little space for other applications.
We can disable all optimizations to show how compact
TinyECC could be. Figure 6 shows the execution time of
ECDSA, ECIES and ECDH when all optimization switches
are disabled. In this case, no pre-computation is needed,
and the initialization time is close to 0. Imote2 running
at 416 MHz is still the fastest one, which MICAz is the
slowest one.
The benefit of disabling all optimizations is the compact
code size. Figure 7 shows the code size of all schemes in
TinyECC when all optimization switches are disabled. Due
to their word size, Imote2 has the largest RAM size, while
MICAz has the smallest RAM size. The code size has been
reduced greatly.
Since the execution time of TinyECC is much longer,
the energy consumption of TinyECC is also increased as
figure 8 shows. In our experiments, the energy cost is in-
creased by 6 to 25.4 times. Please refer to the technical
report version of this paper [22] for detailed discussion.
7. Related Work
A comprehensive guide for elliptic curve cryptography
is given in [16]. Additional documentation on ECC can be
10
12,442
8,634
8,172
10,434
6,950
8,644
10,904
6,876
10,180
0
5,000
10,000
15,000
20,000
25,000
ECDSA ECIES ECDH
ROMsize(byte)
MICAz Tmote Sky Imote2
(a) ROM size
150
150
160
158
158
176
172
172
152
0
500
1,000
1,500
2,000
2,500
ECDSA ECIES ECDH
RAMsize(byte)
MICAz Tmote Sky Imote2
(b) RAM size
Figure 7. Code size of ECDSA, ECIES, and ECDH w/
all optimization switches disabled
0.00
737.35
1483.21
0.00
1473.64
764.93
0.00
749.00
0.00
114.94
231.59
0.00
229.81
115.64
0.00
114.22
0.00
82.02
163.75
0.00
162.40
82.81
0.00
80.05
0.00
21.83
43.58
0.00
43.21
22.04
0.00
21.30
0
400
800
1200
1600
2000
init
(ECDSA)
sign
(ECDSA)
verify
(ECDSA)
init
(ECIES)
encrypt
(ECIES)
decrypt
(ECIES)
init
(ECDH)
key establish
(ECDH)
Energyconsumption(mJ)
MICAz (8 MHz) Tmote Sky (8 MHz) Imote2 (13 MHz) Imote2 (104 MHz)
Figure 8. Energy consumption of ECDSA, ECIES,
and ECDH w/ all optimization switches disabled
found in [7–9]. There have been numerous ECC implemen-
tations in various contexts (e.g., Crypto++ [10]). Most of
these implementations are aimed at traditional computing
platforms such as PCs.
Several recent efforts have focused on sensor platforms,
such as the MICA series of motes. Malan et al. imple-
mented ECC over binary extension fields F2m on TinyOS
for Mica2 [26]. Unfortunately, due to the constraints on
the typical micro-controllers used on sensor platforms, it
is difficult to obtain efficient ECC implementation over
F2m. Gura et al. implemented and compared ECC and
RSA on Atmel ATmega128 in assembly [15]. However,
it is not clear how well their implementation can be inte-
grated into sensor network applications. Wang et al. imple-
mented ECC on specific 160-bit elliptic curves on MICAz
and TelosB running TinyOS [33]. They obtained fast ex-
ecution time by hard-coding all the curve parameters into
assembly code.
A common limitation of all these efforts is that all
these attempts were developed as independent pack-
ages/applications without seriously considering the re-
source demands of sensor network applications. As a re-
sult, developers may find it difficult, and sometimes im-
possible, to integrate an ECC implementation with the
sensor network applications (e.g., not enough ROM or
RAM), though the ECC implementation may be okay on its
own. In contrast, TinyECC provides a set of optimization
switches that allow itself to be configured with different re-
source consumptions. This allows TinyECC to be flexibly
integrated into sensor network applications.
8. Conclusion
In this paper, we presented the design, implementation,
and evaluation of TinyECC. A unique feature of TinyECC
is its configurability. It provides a number of optimization
switches, which can turn specific optimizations on or off
based on developers’ needs. Different combinations of the
optimizations have different execution time and resource
consumptions, and thus give the developers flexibility in
integrating TinyECC into sensor network applications. We
also performed a series of experiments to evaluate the per-
formance and resource consumptions of TinyECC with
different combinations of enabled optimizations, and pro-
vided guidelines for configuring TinyECC for sensor net-
work applications.
As a final note, we would like to point out that PKC
components could become the source of attacks if not prop-
erly used. In particular, developers should pay special at-
tention to Denial of Service (DoS) attacks against PKC.
For example, TinyECC has been used to bootstrap secure
code dissemination in wireless sensor networks [11, 17].
However, if there is no additional protection, an attacker
may repeatedly claim that a new code image is available
and convincing sensor nodes to perform many PKC opera-
tions, eventually exhausting their battery power. Additional
mechanisms such as message specific puzzles [31] is thus
necessary.
Acknowledgment We would like to thank Ben Greenstein
for shepherding our paper. Panos Kampanakis ported an
earlier version of TinyECC to Imote2. We are grateful to
the anonymous reviewers for their helpful comments.
References
[1] Imote2: High-performance wireless sensor network
node. http://www.xbow.com/Products/
Product_pdf_files/Wireless_pdf/Imote2_
Datasheet.pdf.
[2] MICAz: Wireless measurement system. http:
//www.xbow.com/Products/Product_pdf_
11
files/Wireless_pdf/MICAz_Datasheet.pdf.
[3] SSL 3.0 specification. http://wp.netscape.com/
eng/ssl3/.
[4] TelosB mote platform. http://www.xbow.com/
Products/Product_pdf_files/Wireless_
pdf/TelosB_Datasheet.pdf.
[5] TinyOS: An open-source OS for the networked sensor
regime. http://www.tinyos.net/.
[6] Tmote sky: Reliable low-power wireless sensor network-
ing eases development and deployment. http://www.
moteiv.com/products-tmotesky.php.
[7] American Bankers Association. ANSI X9.62-1998: Public
Key Cryptography for the Financial Services Industry: the
Elliptic Curve Digital Signature Algorithm (ECDSA), 1999.
[8] Certicom Research. Standards for efficient cryp-
tography – SEC 1: Elliptic curve cryptography.
http://www.secg.org/download/aid-385/
sec1_final.pdf, September 2000.
[9] Certicom Research. Standards for efficient cryptography
– SEC 2: Recommended elliptic curve domain parame-
ters. http://www.secg.org/collateral/sec2_
final.pdf, September 2000.
[10] W. Dai. Crypto++ library 5.5. http://www.
cryptopp.com/, May 2007.
[11] J. Deng, R. Han, and S. Mishra. Secure code distribution
in dynamically programmable wireless sensor networks. In
Proceedings of the Fifth International Conference on Infor-
mation Processing in Sensor Networks (IPSN ’06), April
2006.
[12] W. Diffie and M.E. Hellman. New directions in cryptogra-
phy. IEEE Transactions on Information Theory, IT-22:644–
654, November 1976.
[13] L. Eschenauer and V. D. Gligor. A key-management scheme
for distributed sensor networks. In Proceedings of the 9th
ACM Conference on Computer and Communications Secu-
rity, pages 41–47, November 2002.
[14] D. Gay, P. Levis, R. von Behren, M. Welsh, E. Brewer, and
D. Culler. The nesC language: A holistic approach to net-
worked embedded systems. In Proceedings of Program-
ming Language Design and Implementation (PLDI ’03),
June 2003.
[15] N. Gura, A. Patel, and A. Wander. Comparing elliptic curve
cryptography and RSA on 8-bit CPUs. In Proceedings of the
2004 Workshop on Cryptographic Hardware and Embedded
Systems (CHES 2004), pages 119–132, August 2004.
[16] D. Hankerson, A. Menezes, and S. Vanstone. Guide to El-
liptic Curve Cryptography. Springer, 2004.
[17] S. Hyun, P. Ning, A. Liu, and W. Du. Seluge: Secure
and dos-resistant code dissemination in wireless sensor net-
works. In Proceedings of the Seventh International Confer-
ence on Information Processing in Sensor Networks (IPSN
’08), April 2008.
[18] S. Kent and R. Atkinson. IP authentication header. IETF
RFC 2402, November 1998.
[19] D.E. Knuth. The Art of Computer Programming, volume 2:
Seminumerical Algorithms. Addison-Wesley, third edition,
1997. ISBN: 0-201-89684-2.
[20] RSA Laboratories. RSAREF: A cryptographic toolkit (ver-
sion 2.0), March 1994.
[21] P.E. Lanigan, R. Gandhi, and P. Narasimhan. Sluice: Se-
cure dissemination of code updates in sensor networks. In
Proceedings of the 26th International Conference on Dis-
tributed Computing Systems (ICDCS ’06), July 2006.
[22] A. Liu and P. Ning. TinyECC: A configurable library for el-
liptic curve cryptography in wireless sensor networks. Tech-
nical Report TR-2007-36, North Carolina State University,
Department of Computer Science, 2007.
[23] D. Liu and P. Ning. Establishing pairwise keys in distributed
sensor networks. In Proceedings of 10th ACM Confer-
ence on Computer and Communications Security (CCS’03),
pages 52–61, October 2003.
[24] D. Liu and P. Ning. Multi-level µTESLA: Broadcast au-
thentication for distributed sensor networks. ACM Transac-
tions in Embedded Computing Systems (TECS), 3(4):800–
836, 2004.
[25] D. Liu, P. Ning, S. Zhu, and S. Jajodia. Practical broad-
cast authentication in sensor networks. In Proceedings of
the 2nd Annual International Conference on Mobile and
Ubiquitous Systems: Networking and Services (MobiQui-
tous 2005), July 2005.
[26] D. Malan, M. Welsh, and M. Smith. A public-key infras-
tructure for key distribution in tinyos based on elliptic curve
cryptography. In Proceedings of IEEE Conference on Sen-
sor and Ad Hoc Communications and Networks (SECON),
pages 71–80, 2004.
[27] K. Malasri and L. Wang. Addressing security in medical
sensor networks. In HealthNet ’07: Proceedings of the 1st
ACM SIGMOBILE international workshop on Systems and
networking support for healthcare and assisted living envi-
ronments, pages 7–12, 2007.
[28] A.J. Menezes, P. C. van Oorschot, and S.A. Vanstone. Hand-
book of Applied Cryptography. CRC Press, 1996. ISBN:
0-8493-8523-7.
[29] National Institute of Standards and Technology. Federal in-
formation processing standard 186: Digital signature stan-
dard. http://csrc.nist.gov/publications/,
1993.
[30] National Institute of Standards and Technology. Recom-
mended elliptic curves for federal government use, August
1999.
[31] P. Ning, A. Liu, and W. Du. Mitigating DoS attacks against
broadcast authentication in wireless sensor networks. ACM
Transactions on Sensor Networks, 4(1), February 2008.
[32] A. Perrig, R. Canetti, D. Song, and D. Tygar. Efficient
authentication and signing of multicast streams over lossy
channels. In Proceedings of the 2000 IEEE Symposium on
Security and Privacy, May 2000.
[33] H. Wang and Q. Li. Efficient implementation of public key
cryptosystems on mote sensors. In Proceedings of Interna-
tional Conference on Information and Communication Se-
curity (ICICS), pages 519–528, Dec. 2006.
12

More Related Content

What's hot

Design and implementation of secured agent based NoC using shortest path rout...
Design and implementation of secured agent based NoC using shortest path rout...Design and implementation of secured agent based NoC using shortest path rout...
Design and implementation of secured agent based NoC using shortest path rout...IJECEIAES
 
Random Key Pre-distribution Schemes using Multi-Path in Wireless Sensor Networks
Random Key Pre-distribution Schemes using Multi-Path in Wireless Sensor NetworksRandom Key Pre-distribution Schemes using Multi-Path in Wireless Sensor Networks
Random Key Pre-distribution Schemes using Multi-Path in Wireless Sensor Networksijceronline
 
High-performance AES-128 algorithm implementation by FPGA-based SoC for 5G co...
High-performance AES-128 algorithm implementation by FPGA-based SoC for 5G co...High-performance AES-128 algorithm implementation by FPGA-based SoC for 5G co...
High-performance AES-128 algorithm implementation by FPGA-based SoC for 5G co...IJECEIAES
 
A Test-Bed Implementation for Securing OLSR In Mobile Ad-Hoc Networks
A Test-Bed Implementation for Securing OLSR In Mobile Ad-Hoc Networks A Test-Bed Implementation for Securing OLSR In Mobile Ad-Hoc Networks
A Test-Bed Implementation for Securing OLSR In Mobile Ad-Hoc Networks IJNSA Journal
 
Review and Performance Comparison of Distributed Wireless Reprogramming Proto...
Review and Performance Comparison of Distributed Wireless Reprogramming Proto...Review and Performance Comparison of Distributed Wireless Reprogramming Proto...
Review and Performance Comparison of Distributed Wireless Reprogramming Proto...IOSR Journals
 
NEW ALGORITHM FOR WIRELESS NETWORK COMMUNICATION SECURITY
NEW ALGORITHM FOR WIRELESS NETWORK COMMUNICATION SECURITYNEW ALGORITHM FOR WIRELESS NETWORK COMMUNICATION SECURITY
NEW ALGORITHM FOR WIRELESS NETWORK COMMUNICATION SECURITYijcisjournal
 
International Journal of Engineering Research and Development (IJERD)
 International Journal of Engineering Research and Development (IJERD) International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
Efficient two-stage cryptography scheme for secure distributed data storage i...
Efficient two-stage cryptography scheme for secure distributed data storage i...Efficient two-stage cryptography scheme for secure distributed data storage i...
Efficient two-stage cryptography scheme for secure distributed data storage i...IJECEIAES
 
Hierarchical Key Agreement Protocol for Wireless Sensor Networks
Hierarchical Key Agreement Protocol for Wireless Sensor NetworksHierarchical Key Agreement Protocol for Wireless Sensor Networks
Hierarchical Key Agreement Protocol for Wireless Sensor Networksidescitation
 
COMPARATIVE ANALYSIS OF DIFFERENT ENCRYPTION TECHNIQUES IN MOBILE AD HOC NETW...
COMPARATIVE ANALYSIS OF DIFFERENT ENCRYPTION TECHNIQUES IN MOBILE AD HOC NETW...COMPARATIVE ANALYSIS OF DIFFERENT ENCRYPTION TECHNIQUES IN MOBILE AD HOC NETW...
COMPARATIVE ANALYSIS OF DIFFERENT ENCRYPTION TECHNIQUES IN MOBILE AD HOC NETW...IJCNCJournal
 
A hybrid security and compressive sensing based sensor data gathering scheme
A hybrid security and compressive sensing based sensor data gathering schemeA hybrid security and compressive sensing based sensor data gathering scheme
A hybrid security and compressive sensing based sensor data gathering schemeredpel dot com
 
First phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANCE...
First phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANCE...First phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANCE...
First phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANCE...Nikhil Jain
 
IEEE 2014 DOTNET PARALLEL DISTRIBUTED PROJECTS Secure and efficient data tran...
IEEE 2014 DOTNET PARALLEL DISTRIBUTED PROJECTS Secure and efficient data tran...IEEE 2014 DOTNET PARALLEL DISTRIBUTED PROJECTS Secure and efficient data tran...
IEEE 2014 DOTNET PARALLEL DISTRIBUTED PROJECTS Secure and efficient data tran...IEEEMEMTECHSTUDENTPROJECTS
 
Quantum Key Distribution (QKD) and Commodity Security Protocols: Introduction...
Quantum Key Distribution (QKD) and Commodity Security Protocols: Introduction...Quantum Key Distribution (QKD) and Commodity Security Protocols: Introduction...
Quantum Key Distribution (QKD) and Commodity Security Protocols: Introduction...IJNSA Journal
 
Second phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANC...
Second phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANC...Second phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANC...
Second phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANC...Nikhil Jain
 
Network security ppt
Network security pptNetwork security ppt
Network security pptvidyapol01
 

What's hot (20)

Ijcnc050210
Ijcnc050210Ijcnc050210
Ijcnc050210
 
Ip sec technote-en
Ip sec technote-enIp sec technote-en
Ip sec technote-en
 
Design and implementation of secured agent based NoC using shortest path rout...
Design and implementation of secured agent based NoC using shortest path rout...Design and implementation of secured agent based NoC using shortest path rout...
Design and implementation of secured agent based NoC using shortest path rout...
 
Futex ppt
Futex  pptFutex  ppt
Futex ppt
 
Random Key Pre-distribution Schemes using Multi-Path in Wireless Sensor Networks
Random Key Pre-distribution Schemes using Multi-Path in Wireless Sensor NetworksRandom Key Pre-distribution Schemes using Multi-Path in Wireless Sensor Networks
Random Key Pre-distribution Schemes using Multi-Path in Wireless Sensor Networks
 
High-performance AES-128 algorithm implementation by FPGA-based SoC for 5G co...
High-performance AES-128 algorithm implementation by FPGA-based SoC for 5G co...High-performance AES-128 algorithm implementation by FPGA-based SoC for 5G co...
High-performance AES-128 algorithm implementation by FPGA-based SoC for 5G co...
 
A Test-Bed Implementation for Securing OLSR In Mobile Ad-Hoc Networks
A Test-Bed Implementation for Securing OLSR In Mobile Ad-Hoc Networks A Test-Bed Implementation for Securing OLSR In Mobile Ad-Hoc Networks
A Test-Bed Implementation for Securing OLSR In Mobile Ad-Hoc Networks
 
Review and Performance Comparison of Distributed Wireless Reprogramming Proto...
Review and Performance Comparison of Distributed Wireless Reprogramming Proto...Review and Performance Comparison of Distributed Wireless Reprogramming Proto...
Review and Performance Comparison of Distributed Wireless Reprogramming Proto...
 
NEW ALGORITHM FOR WIRELESS NETWORK COMMUNICATION SECURITY
NEW ALGORITHM FOR WIRELESS NETWORK COMMUNICATION SECURITYNEW ALGORITHM FOR WIRELESS NETWORK COMMUNICATION SECURITY
NEW ALGORITHM FOR WIRELESS NETWORK COMMUNICATION SECURITY
 
International Journal of Engineering Research and Development (IJERD)
 International Journal of Engineering Research and Development (IJERD) International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
 
Ijcnc050208
Ijcnc050208Ijcnc050208
Ijcnc050208
 
Efficient two-stage cryptography scheme for secure distributed data storage i...
Efficient two-stage cryptography scheme for secure distributed data storage i...Efficient two-stage cryptography scheme for secure distributed data storage i...
Efficient two-stage cryptography scheme for secure distributed data storage i...
 
Hierarchical Key Agreement Protocol for Wireless Sensor Networks
Hierarchical Key Agreement Protocol for Wireless Sensor NetworksHierarchical Key Agreement Protocol for Wireless Sensor Networks
Hierarchical Key Agreement Protocol for Wireless Sensor Networks
 
COMPARATIVE ANALYSIS OF DIFFERENT ENCRYPTION TECHNIQUES IN MOBILE AD HOC NETW...
COMPARATIVE ANALYSIS OF DIFFERENT ENCRYPTION TECHNIQUES IN MOBILE AD HOC NETW...COMPARATIVE ANALYSIS OF DIFFERENT ENCRYPTION TECHNIQUES IN MOBILE AD HOC NETW...
COMPARATIVE ANALYSIS OF DIFFERENT ENCRYPTION TECHNIQUES IN MOBILE AD HOC NETW...
 
A hybrid security and compressive sensing based sensor data gathering scheme
A hybrid security and compressive sensing based sensor data gathering schemeA hybrid security and compressive sensing based sensor data gathering scheme
A hybrid security and compressive sensing based sensor data gathering scheme
 
First phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANCE...
First phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANCE...First phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANCE...
First phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANCE...
 
IEEE 2014 DOTNET PARALLEL DISTRIBUTED PROJECTS Secure and efficient data tran...
IEEE 2014 DOTNET PARALLEL DISTRIBUTED PROJECTS Secure and efficient data tran...IEEE 2014 DOTNET PARALLEL DISTRIBUTED PROJECTS Secure and efficient data tran...
IEEE 2014 DOTNET PARALLEL DISTRIBUTED PROJECTS Secure and efficient data tran...
 
Quantum Key Distribution (QKD) and Commodity Security Protocols: Introduction...
Quantum Key Distribution (QKD) and Commodity Security Protocols: Introduction...Quantum Key Distribution (QKD) and Commodity Security Protocols: Introduction...
Quantum Key Distribution (QKD) and Commodity Security Protocols: Introduction...
 
Second phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANC...
Second phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANC...Second phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANC...
Second phase slide presentation on "ANALYZING THE EFFECTIVENESS OF THE ADVANC...
 
Network security ppt
Network security pptNetwork security ppt
Network security ppt
 

Similar to Ipsn08 tiny ecc-ieee

Remote temperature and humidity monitoring system using wireless sensor networks
Remote temperature and humidity monitoring system using wireless sensor networksRemote temperature and humidity monitoring system using wireless sensor networks
Remote temperature and humidity monitoring system using wireless sensor networkseSAT Journals
 
Conference Paper: Formal Verification of the Security for Dual Connectivity i...
Conference Paper: Formal Verification of the Security for Dual Connectivity i...Conference Paper: Formal Verification of the Security for Dual Connectivity i...
Conference Paper: Formal Verification of the Security for Dual Connectivity i...Ericsson
 
Network on Chip Architecture and Routing Techniques: A survey
Network on Chip Architecture and Routing Techniques: A surveyNetwork on Chip Architecture and Routing Techniques: A survey
Network on Chip Architecture and Routing Techniques: A surveyIJRES Journal
 
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLIMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLhiij
 
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLIMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLijccsa
 
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLIMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLijccsa
 
Improved Secure Cloud Transmission Protocol
Improved Secure Cloud Transmission ProtocolImproved Secure Cloud Transmission Protocol
Improved Secure Cloud Transmission Protocolneirew J
 
Coding openflow enable network
Coding openflow enable networkCoding openflow enable network
Coding openflow enable networkIJCNCJournal
 
AN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKS
AN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKSAN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKS
AN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKScsandit
 
EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...
EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...
EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...IJNSA Journal
 
Wireless body area network
Wireless body area network Wireless body area network
Wireless body area network subhradeep mitra
 
2.espk external agent authentication and session key establishment using publ...
2.espk external agent authentication and session key establishment using publ...2.espk external agent authentication and session key establishment using publ...
2.espk external agent authentication and session key establishment using publ...EditorJST
 
A SURVEY ON AUTHENTICATION AND KEY AGREEMENT PROTOCOLS IN HETEROGENEOUS NETWORKS
A SURVEY ON AUTHENTICATION AND KEY AGREEMENT PROTOCOLS IN HETEROGENEOUS NETWORKSA SURVEY ON AUTHENTICATION AND KEY AGREEMENT PROTOCOLS IN HETEROGENEOUS NETWORKS
A SURVEY ON AUTHENTICATION AND KEY AGREEMENT PROTOCOLS IN HETEROGENEOUS NETWORKSIJNSA Journal
 
An octa core processor with shared memory and message-passing
An octa core processor with shared memory and message-passingAn octa core processor with shared memory and message-passing
An octa core processor with shared memory and message-passingeSAT Journals
 
Application Layer Security for IoT: The Case Study of a Smart Home
Application Layer Security for IoT: The Case Study of a Smart HomeApplication Layer Security for IoT: The Case Study of a Smart Home
Application Layer Security for IoT: The Case Study of a Smart HomeIRJET Journal
 
A SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKS
A SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKSA SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKS
A SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKSIAEME Publication
 
A SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKS
A SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKSA SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKS
A SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKSIAEME Publication
 
Design of Tele command SOC-IP by AES Cryptographic Method Using VHDL
Design of Tele command SOC-IP by AES Cryptographic Method Using VHDLDesign of Tele command SOC-IP by AES Cryptographic Method Using VHDL
Design of Tele command SOC-IP by AES Cryptographic Method Using VHDLdbpublications
 
Performance of State-of-the-Art Cryptography on ARM-based Microprocessors
Performance of State-of-the-Art Cryptography on ARM-based MicroprocessorsPerformance of State-of-the-Art Cryptography on ARM-based Microprocessors
Performance of State-of-the-Art Cryptography on ARM-based MicroprocessorsHannes Tschofenig
 

Similar to Ipsn08 tiny ecc-ieee (20)

Remote temperature and humidity monitoring system using wireless sensor networks
Remote temperature and humidity monitoring system using wireless sensor networksRemote temperature and humidity monitoring system using wireless sensor networks
Remote temperature and humidity monitoring system using wireless sensor networks
 
Conference Paper: Formal Verification of the Security for Dual Connectivity i...
Conference Paper: Formal Verification of the Security for Dual Connectivity i...Conference Paper: Formal Verification of the Security for Dual Connectivity i...
Conference Paper: Formal Verification of the Security for Dual Connectivity i...
 
Network on Chip Architecture and Routing Techniques: A survey
Network on Chip Architecture and Routing Techniques: A surveyNetwork on Chip Architecture and Routing Techniques: A survey
Network on Chip Architecture and Routing Techniques: A survey
 
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLIMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
 
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLIMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
 
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOLIMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
IMPROVED SECURE CLOUD TRANSMISSION PROTOCOL
 
Improved Secure Cloud Transmission Protocol
Improved Secure Cloud Transmission ProtocolImproved Secure Cloud Transmission Protocol
Improved Secure Cloud Transmission Protocol
 
Coding openflow enable network
Coding openflow enable networkCoding openflow enable network
Coding openflow enable network
 
AN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKS
AN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKSAN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKS
AN ANTI-CLONE ATTACK KEY MANAGEMENT SCHEME FOR WIRELESS SENSOR NETWORKS
 
EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...
EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...
EVALUATING GALOIS COUNTER MODE IN LINK LAYER SECURITY ARCHITECTURE FOR WIRELE...
 
Wireless body area network
Wireless body area network Wireless body area network
Wireless body area network
 
Nano rk rtss_05
Nano rk rtss_05Nano rk rtss_05
Nano rk rtss_05
 
2.espk external agent authentication and session key establishment using publ...
2.espk external agent authentication and session key establishment using publ...2.espk external agent authentication and session key establishment using publ...
2.espk external agent authentication and session key establishment using publ...
 
A SURVEY ON AUTHENTICATION AND KEY AGREEMENT PROTOCOLS IN HETEROGENEOUS NETWORKS
A SURVEY ON AUTHENTICATION AND KEY AGREEMENT PROTOCOLS IN HETEROGENEOUS NETWORKSA SURVEY ON AUTHENTICATION AND KEY AGREEMENT PROTOCOLS IN HETEROGENEOUS NETWORKS
A SURVEY ON AUTHENTICATION AND KEY AGREEMENT PROTOCOLS IN HETEROGENEOUS NETWORKS
 
An octa core processor with shared memory and message-passing
An octa core processor with shared memory and message-passingAn octa core processor with shared memory and message-passing
An octa core processor with shared memory and message-passing
 
Application Layer Security for IoT: The Case Study of a Smart Home
Application Layer Security for IoT: The Case Study of a Smart HomeApplication Layer Security for IoT: The Case Study of a Smart Home
Application Layer Security for IoT: The Case Study of a Smart Home
 
A SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKS
A SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKSA SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKS
A SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKS
 
A SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKS
A SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKSA SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKS
A SECURITY PROTOCOL FOR WIRELESS SENSOR NETWORKS
 
Design of Tele command SOC-IP by AES Cryptographic Method Using VHDL
Design of Tele command SOC-IP by AES Cryptographic Method Using VHDLDesign of Tele command SOC-IP by AES Cryptographic Method Using VHDL
Design of Tele command SOC-IP by AES Cryptographic Method Using VHDL
 
Performance of State-of-the-Art Cryptography on ARM-based Microprocessors
Performance of State-of-the-Art Cryptography on ARM-based MicroprocessorsPerformance of State-of-the-Art Cryptography on ARM-based Microprocessors
Performance of State-of-the-Art Cryptography on ARM-based Microprocessors
 

More from Selva Raj

Hop by hop message authentication chapter 1
Hop by hop message authentication chapter 1Hop by hop message authentication chapter 1
Hop by hop message authentication chapter 1Selva Raj
 
Message authentication between the nodes
Message authentication between the nodesMessage authentication between the nodes
Message authentication between the nodesSelva Raj
 
Info mimi-hop-by-hop authentication-copy
Info mimi-hop-by-hop authentication-copyInfo mimi-hop-by-hop authentication-copy
Info mimi-hop-by-hop authentication-copySelva Raj
 
Info mimi-hop-by-hop authentication
Info mimi-hop-by-hop authenticationInfo mimi-hop-by-hop authentication
Info mimi-hop-by-hop authenticationSelva Raj
 
Ijretm 2014-sp-043
Ijretm 2014-sp-043Ijretm 2014-sp-043
Ijretm 2014-sp-043Selva Raj
 
Ijctt v17 p128-copy-copy
Ijctt v17 p128-copy-copyIjctt v17 p128-copy-copy
Ijctt v17 p128-copy-copySelva Raj
 
Hop by-hop message authentication and source privacy in wire-copy-copy
Hop by-hop message authentication and source privacy in wire-copy-copyHop by-hop message authentication and source privacy in wire-copy-copy
Hop by-hop message authentication and source privacy in wire-copy-copySelva Raj
 
Hop by-hop message authentication and source privacy in wire
Hop by-hop message authentication and source privacy in wireHop by-hop message authentication and source privacy in wire
Hop by-hop message authentication and source privacy in wireSelva Raj
 
Basic concepts
Basic conceptsBasic concepts
Basic conceptsSelva Raj
 

More from Selva Raj (11)

Hop by hop message authentication chapter 1
Hop by hop message authentication chapter 1Hop by hop message authentication chapter 1
Hop by hop message authentication chapter 1
 
Paper copy
Paper   copyPaper   copy
Paper copy
 
Message authentication between the nodes
Message authentication between the nodesMessage authentication between the nodes
Message authentication between the nodes
 
Info mimi-hop-by-hop authentication-copy
Info mimi-hop-by-hop authentication-copyInfo mimi-hop-by-hop authentication-copy
Info mimi-hop-by-hop authentication-copy
 
Info mimi-hop-by-hop authentication
Info mimi-hop-by-hop authenticationInfo mimi-hop-by-hop authentication
Info mimi-hop-by-hop authentication
 
Ijretm 2014-sp-043
Ijretm 2014-sp-043Ijretm 2014-sp-043
Ijretm 2014-sp-043
 
Ijctt v17 p128-copy-copy
Ijctt v17 p128-copy-copyIjctt v17 p128-copy-copy
Ijctt v17 p128-copy-copy
 
I1086066
I1086066I1086066
I1086066
 
Hop by-hop message authentication and source privacy in wire-copy-copy
Hop by-hop message authentication and source privacy in wire-copy-copyHop by-hop message authentication and source privacy in wire-copy-copy
Hop by-hop message authentication and source privacy in wire-copy-copy
 
Hop by-hop message authentication and source privacy in wire
Hop by-hop message authentication and source privacy in wireHop by-hop message authentication and source privacy in wire
Hop by-hop message authentication and source privacy in wire
 
Basic concepts
Basic conceptsBasic concepts
Basic concepts
 

Recently uploaded

Low Rate Call Girls Bikaner Anika 8250192130 Independent Escort Service Bikaner
Low Rate Call Girls Bikaner Anika 8250192130 Independent Escort Service BikanerLow Rate Call Girls Bikaner Anika 8250192130 Independent Escort Service Bikaner
Low Rate Call Girls Bikaner Anika 8250192130 Independent Escort Service BikanerSuhani Kapoor
 
VIP Call Girls Saharanpur Aaradhya 8250192130 Independent Escort Service Saha...
VIP Call Girls Saharanpur Aaradhya 8250192130 Independent Escort Service Saha...VIP Call Girls Saharanpur Aaradhya 8250192130 Independent Escort Service Saha...
VIP Call Girls Saharanpur Aaradhya 8250192130 Independent Escort Service Saha...Suhani Kapoor
 
(ANIKA) Call Girls Wagholi ( 7001035870 ) HI-Fi Pune Escorts Service
(ANIKA) Call Girls Wagholi ( 7001035870 ) HI-Fi Pune Escorts Service(ANIKA) Call Girls Wagholi ( 7001035870 ) HI-Fi Pune Escorts Service
(ANIKA) Call Girls Wagholi ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
Call Girls In Okhla DELHI ~9654467111~ Short 1500 Night 6000
Call Girls In Okhla DELHI ~9654467111~ Short 1500 Night 6000Call Girls In Okhla DELHI ~9654467111~ Short 1500 Night 6000
Call Girls In Okhla DELHI ~9654467111~ Short 1500 Night 6000Sapana Sha
 
Sustainable Clothing Strategies and Challenges
Sustainable Clothing Strategies and ChallengesSustainable Clothing Strategies and Challenges
Sustainable Clothing Strategies and ChallengesDr. Salem Baidas
 
Freegle User Survey as visual display - BH
Freegle User Survey as visual display - BHFreegle User Survey as visual display - BH
Freegle User Survey as visual display - BHbill846304
 
Mumbai Call Girls, 💞 Prity 9892124323, Navi Mumbai Call girls
Mumbai Call Girls, 💞  Prity 9892124323, Navi Mumbai Call girlsMumbai Call Girls, 💞  Prity 9892124323, Navi Mumbai Call girls
Mumbai Call Girls, 💞 Prity 9892124323, Navi Mumbai Call girlsPooja Nehwal
 
VIP Kolkata Call Girl Kalighat 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kalighat 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kalighat 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kalighat 👉 8250192130 Available With Roomdivyansh0kumar0
 
(PARI) Viman Nagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune ...
(PARI) Viman Nagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune ...(PARI) Viman Nagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune ...
(PARI) Viman Nagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune ...ranjana rawat
 
VIP Call Girls Service Chaitanyapuri Hyderabad Call +91-8250192130
VIP Call Girls Service Chaitanyapuri Hyderabad Call +91-8250192130VIP Call Girls Service Chaitanyapuri Hyderabad Call +91-8250192130
VIP Call Girls Service Chaitanyapuri Hyderabad Call +91-8250192130Suhani Kapoor
 
Call Girl Nagpur Roshni Call 7001035870 Meet With Nagpur Escorts
Call Girl Nagpur Roshni Call 7001035870 Meet With Nagpur EscortsCall Girl Nagpur Roshni Call 7001035870 Meet With Nagpur Escorts
Call Girl Nagpur Roshni Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Call Girls In Faridabad(Ballabgarh) Book ☎ 8168257667, @4999
Call Girls In Faridabad(Ballabgarh) Book ☎ 8168257667, @4999Call Girls In Faridabad(Ballabgarh) Book ☎ 8168257667, @4999
Call Girls In Faridabad(Ballabgarh) Book ☎ 8168257667, @4999Tina Ji
 
VIP Call Girls Moti Ganpur ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With R...
VIP Call Girls Moti Ganpur ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With R...VIP Call Girls Moti Ganpur ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With R...
VIP Call Girls Moti Ganpur ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With R...Suhani Kapoor
 
VIP Call Girl Gorakhpur Aashi 8250192130 Independent Escort Service Gorakhpur
VIP Call Girl Gorakhpur Aashi 8250192130 Independent Escort Service GorakhpurVIP Call Girl Gorakhpur Aashi 8250192130 Independent Escort Service Gorakhpur
VIP Call Girl Gorakhpur Aashi 8250192130 Independent Escort Service GorakhpurSuhani Kapoor
 
Call Girls Budhwar Peth Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Budhwar Peth Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Budhwar Peth Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Budhwar Peth Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
Booking open Available Pune Call Girls Parvati Darshan 6297143586 Call Hot I...
Booking open Available Pune Call Girls Parvati Darshan  6297143586 Call Hot I...Booking open Available Pune Call Girls Parvati Darshan  6297143586 Call Hot I...
Booking open Available Pune Call Girls Parvati Darshan 6297143586 Call Hot I...Call Girls in Nagpur High Profile
 

Recently uploaded (20)

Sustainable Packaging
Sustainable PackagingSustainable Packaging
Sustainable Packaging
 
Gandhi Nagar (Delhi) 9953330565 Escorts, Call Girls Services
Gandhi Nagar (Delhi) 9953330565 Escorts, Call Girls ServicesGandhi Nagar (Delhi) 9953330565 Escorts, Call Girls Services
Gandhi Nagar (Delhi) 9953330565 Escorts, Call Girls Services
 
Low Rate Call Girls Bikaner Anika 8250192130 Independent Escort Service Bikaner
Low Rate Call Girls Bikaner Anika 8250192130 Independent Escort Service BikanerLow Rate Call Girls Bikaner Anika 8250192130 Independent Escort Service Bikaner
Low Rate Call Girls Bikaner Anika 8250192130 Independent Escort Service Bikaner
 
VIP Call Girls Saharanpur Aaradhya 8250192130 Independent Escort Service Saha...
VIP Call Girls Saharanpur Aaradhya 8250192130 Independent Escort Service Saha...VIP Call Girls Saharanpur Aaradhya 8250192130 Independent Escort Service Saha...
VIP Call Girls Saharanpur Aaradhya 8250192130 Independent Escort Service Saha...
 
(ANIKA) Call Girls Wagholi ( 7001035870 ) HI-Fi Pune Escorts Service
(ANIKA) Call Girls Wagholi ( 7001035870 ) HI-Fi Pune Escorts Service(ANIKA) Call Girls Wagholi ( 7001035870 ) HI-Fi Pune Escorts Service
(ANIKA) Call Girls Wagholi ( 7001035870 ) HI-Fi Pune Escorts Service
 
Call Girls In Okhla DELHI ~9654467111~ Short 1500 Night 6000
Call Girls In Okhla DELHI ~9654467111~ Short 1500 Night 6000Call Girls In Okhla DELHI ~9654467111~ Short 1500 Night 6000
Call Girls In Okhla DELHI ~9654467111~ Short 1500 Night 6000
 
Sustainable Clothing Strategies and Challenges
Sustainable Clothing Strategies and ChallengesSustainable Clothing Strategies and Challenges
Sustainable Clothing Strategies and Challenges
 
Call Girls In Dhaula Kuan꧁❤ 🔝 9953056974🔝❤꧂ Escort ServiCe
Call Girls In Dhaula Kuan꧁❤ 🔝 9953056974🔝❤꧂ Escort ServiCeCall Girls In Dhaula Kuan꧁❤ 🔝 9953056974🔝❤꧂ Escort ServiCe
Call Girls In Dhaula Kuan꧁❤ 🔝 9953056974🔝❤꧂ Escort ServiCe
 
Freegle User Survey as visual display - BH
Freegle User Survey as visual display - BHFreegle User Survey as visual display - BH
Freegle User Survey as visual display - BH
 
Mumbai Call Girls, 💞 Prity 9892124323, Navi Mumbai Call girls
Mumbai Call Girls, 💞  Prity 9892124323, Navi Mumbai Call girlsMumbai Call Girls, 💞  Prity 9892124323, Navi Mumbai Call girls
Mumbai Call Girls, 💞 Prity 9892124323, Navi Mumbai Call girls
 
Call Girls In Pratap Nagar꧁❤ 🔝 9953056974🔝❤꧂ Escort ServiCe
Call Girls In Pratap Nagar꧁❤ 🔝 9953056974🔝❤꧂ Escort ServiCeCall Girls In Pratap Nagar꧁❤ 🔝 9953056974🔝❤꧂ Escort ServiCe
Call Girls In Pratap Nagar꧁❤ 🔝 9953056974🔝❤꧂ Escort ServiCe
 
VIP Kolkata Call Girl Kalighat 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kalighat 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kalighat 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kalighat 👉 8250192130 Available With Room
 
(PARI) Viman Nagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune ...
(PARI) Viman Nagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune ...(PARI) Viman Nagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune ...
(PARI) Viman Nagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune ...
 
VIP Call Girls Service Chaitanyapuri Hyderabad Call +91-8250192130
VIP Call Girls Service Chaitanyapuri Hyderabad Call +91-8250192130VIP Call Girls Service Chaitanyapuri Hyderabad Call +91-8250192130
VIP Call Girls Service Chaitanyapuri Hyderabad Call +91-8250192130
 
Call Girl Nagpur Roshni Call 7001035870 Meet With Nagpur Escorts
Call Girl Nagpur Roshni Call 7001035870 Meet With Nagpur EscortsCall Girl Nagpur Roshni Call 7001035870 Meet With Nagpur Escorts
Call Girl Nagpur Roshni Call 7001035870 Meet With Nagpur Escorts
 
Call Girls In Faridabad(Ballabgarh) Book ☎ 8168257667, @4999
Call Girls In Faridabad(Ballabgarh) Book ☎ 8168257667, @4999Call Girls In Faridabad(Ballabgarh) Book ☎ 8168257667, @4999
Call Girls In Faridabad(Ballabgarh) Book ☎ 8168257667, @4999
 
VIP Call Girls Moti Ganpur ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With R...
VIP Call Girls Moti Ganpur ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With R...VIP Call Girls Moti Ganpur ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With R...
VIP Call Girls Moti Ganpur ( Hyderabad ) Phone 8250192130 | ₹5k To 25k With R...
 
VIP Call Girl Gorakhpur Aashi 8250192130 Independent Escort Service Gorakhpur
VIP Call Girl Gorakhpur Aashi 8250192130 Independent Escort Service GorakhpurVIP Call Girl Gorakhpur Aashi 8250192130 Independent Escort Service Gorakhpur
VIP Call Girl Gorakhpur Aashi 8250192130 Independent Escort Service Gorakhpur
 
Call Girls Budhwar Peth Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Budhwar Peth Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Budhwar Peth Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Budhwar Peth Call Me 7737669865 Budget Friendly No Advance Booking
 
Booking open Available Pune Call Girls Parvati Darshan 6297143586 Call Hot I...
Booking open Available Pune Call Girls Parvati Darshan  6297143586 Call Hot I...Booking open Available Pune Call Girls Parvati Darshan  6297143586 Call Hot I...
Booking open Available Pune Call Girls Parvati Darshan 6297143586 Call Hot I...
 

Ipsn08 tiny ecc-ieee

  • 1. TinyECC: A Configurable Library for Elliptic Curve Cryptography in Wireless Sensor Networks∗ An Liu Department of Computer Science NC State University, Raleigh, NC 27695 email: aliu3@ncsu.edu Peng Ning Department of Computer Science NC State University, Raleigh, NC 27695 email: pning@ncsu.edu Abstract Public Key Cryptography (PKC) has been the enabling technology underlying many security services and proto- cols in traditional networks such as the Internet. In the context of wireless sensor networks, elliptic curve cryptog- raphy (ECC), one of the most efficient types of PKC, is be- ing investigated to provide PKC support in sensor network applications so that the existing PKC-based solutions can be exploited. This paper presents the design, implementation, and evaluation of TinyECC, a configurable library for ECC op- erations in wireless sensor networks. The primary objec- tive of TinyECC is to provide a ready-to-use, publicly avail- able software package for ECC-based PKC operations that can be flexibly configured and integrated into sensor net- work applications. TinyECC provides a number of opti- mization switches, which can turn specific optimizations on or off based on developers’ needs. Different combi- nations of the optimizations have different execution time and resource consumptions, giving developers great flexi- bility in integrating TinyECC into sensor network applica- tions. This paper also reports the experimental evaluation of TinyECC on several common sensor platforms, includ- ing MICAz, Tmote Sky, and Imote2. The evaluation results show the impacts of individual optimizations on the exe- cution time and resource consumptions, and give the most computationallyefficient and the most storage efficient con- figuration of TinyECC. 1. Introduction Recent technological advances have made it possible to develop wireless sensor networks consisting of a large number of low-cost, low-power, and multi-functional sen- sor nodes that communicate over short distances through ∗This work is supported by the National Science Foundation under grants CAREER-0447761 and CNS-0721424, and by the Army Research Office under grants W911NF-05-1-0247 and W911NF-04-D-0003. The contents of this paper do not necessarily reflect the position or the policies of the U.S. Government. wireless links. Such sensor networks are ideal candidates for a wide range of applications such as monitoring of crit- ical infrastructures, data acquisition in hazardous environ- ments, and military operations. The desirable features of wireless sensor networks have attracted many researchers to develop protocols and algorithms that can fulfill the re- quirements of these applications. Security services such as authentication and key man- agement are critical to communication security in wire- less sensor networks as well as the security of sensor net- work applications. In traditional networks such as the Inter- net, Public Key Cryptography (PKC) has been the enabling technology underlying many security services and proto- cols (e.g., SSL [3] and IPsec [18]). For example, PKC has been used to bootstrap symmetric session keys and authen- ticate messages to multiple receivers. However, in wireless sensor networks, PKC has not been widely adopted due to the resource constraints on sensor platforms, particularly the limited and depleteable battery power. There has been intensive research aimed at developing techniques that can bypass PKC operations in sensor net- work applications. For example, there has been a substan- tial amount of research on random key pre-distribution for pairwise key establishment (e.g., [13, 23]) and broadcast authentication (e.g., [24, 25]). However, these alternative approaches do not offer the same degree of security or func- tionality as PKC. For instance, none of the random key pre-distribution schemes can guarantee key establishment between any two nodes and tolerate arbitrary node com- promises at the same time. As another example, the afore- mentioned broadcast authentication schemes, which are all based on TESLA [32], require loose time synchronization, which itself is a challenging task to achieve in wireless sensor networks. In contrast, PKC can address all these problems easily. Pairwise key establishment can always be achieved using, for example, the Diffie-Hellman (DH) key exchange protocol [12], without suffering from the node compromise problem. Similarly, broadcast authentication can be provided with, for example, the ECDSA digital sig-
  • 2. nature scheme [7], without requiring time synchronization. Thus, it is desirable to explore the application of PKC on resource constrained sensor platforms. There have been a few recent attempts to use PKC in wireless sensor networks [15, 26, 33], which demonstrate that it is feasible to perform limited PKC operations on the current sensor platforms such as MICAz motes [2]. Elliptic Curve Cryptography (ECC) has been the top choice among various PKC options due to its fast computation, small key size, and compact signatures. For example, to provide equivalent security to 1024-bit RSA, an ECC scheme only needs 160 bits on various parameters, such as 160-bit finite field operations and 160-bit key size [8]. Despite the recent progress on ECC implementations on sensor platforms, all the previous attempts [15, 26, 33] have limitations. In particular, all these attempts were de- veloped as independent packages/applications without se- riously considering the resource demands of sensor net- work applications. As a result, developers may find it dif- ficult, and sometimes impossible, to integrate an ECC im- plementation with the sensor network applications, though the ECC implementation may be okay on its own. For ex- ample, an ECC implementation may require so much RAM that it would be impossible to fit both the sensor network application and the ECC implementation on the same node. Moreover, various optimization techniques are available to speed up the ECC operations. Such optimizations, how- ever, typically will increase the ROM and RAM consump- tions, though they may reduce the execution time and en- ergy consumption. It is not clear what optimizations should be used and how they should be combined to achieve the best trade-off among security protection, computation overheads, and storage requirements. Additional research is necessary to clarify these issues and facilitate the adop- tion of ECC-based PKC in wireless sensor networks. It is certainly possible to have dedicated PKC hardware included on sensor platforms. However, given that there is no PKC hardware that is currently available on current sensor platforms, it is a sensible choice to explore software approaches for PKC support on sensor platforms. In this paper, we present the design, implementation, and evaluation of TinyECC, a configurable library for ECC operations in wireless sensor networks.1 The primary ob- jective of TinyECC is to provide a ready-to-use, publicly available software package for ECC-based PKC operations that can be flexibly configured and integrated into sensor network applications. Targeted at TinyOS [5], TinyECC is written in nesC [14], with occasional in-line assembly code to achieve further speedup for popular sensor platforms including MI- CAz [2], TelosB [4], Tmote Sky [6], and Imote2 [1]. A 1TinyECC 1.0 and its previous versions are publicly available at http://discovery.csc.ncsu.edu/software/TinyECC/. unique feature of TinyECC is its configurability. TinyECC includes almost all known optimizations for ECC opera- tions. Each optimization is controlled by a software switch, which can turn the optimization on or off based on devel- opers’ needs. Different combinations of optimizations have different ROM/RAM consumption, execution time, and en- ergy consumption. This gives the developers great flexibil- ity in integrating TinyECC in their applications. To provide guidance in using TinyECC, we perform a series of experiments with different combinations of ac- tivated optimizations. To understand the impact of each optimization technique, we compare the execution time, ROM/RAM consumption, and energy consumption with and without the given optimization enabled on MICAz [2], Tmote Sky [6], and Imote2 [1]. In addition, our experi- ments also present the performance results and the resource usages for the most computationally efficient configuration (i.e., fastest execution and least energy consumption) and the most storage-efficient configuration (i.e., least ROM and RAM usage) of TinyECC on these common sensor platforms, respectively. The contribution of this paper is two-fold: First, we de- velop TinyECC to allow flexible integration of ECC-based PKC in sensor network applications. Second, we per- form a substantial amount of experimental evaluation us- ing representative sensor platforms, including MICAz [2], TelosB [4], Tmote Sky [6], and Imote2 [1]. The experi- mental results provide useful experience and guidance for developers to choose different TinyECC optimizations for their needs. The remainder of this paper is organized as follows. Section 2 discusses the design principles of TinyECC. Sec- tion 3 gives background information on ECC. Section 4 de- scribes the optimization techniques adopted by TinyECC. Section 5 discusses the implementation of TinyECC. Sec- tion 6 presents the experimental evaluation of TinyECC on MICAz, Tmote Sky, and Imote2. Section 7 discusses the related work, and Section 8 concludes this paper. 2. Design Principles As mentioned earlier, the primary objective of TinyECC is to provide a ready-to-use, publicly available software package for ECC-based PKC operations that can be flexibly configured and integrated into sensor network applications. To make sure we achieve this objective, we follow several principles in the design and development of TinyECC. Security: TinyECC should provide PKC schemes that have proven to be secure. To follow this principle, TinyECC only includes support for the well-studied ECC schemes such as ECDSA, ECDH, and ECIES, which are defined in the Standards for Efficient Cryptography [8]. Moreover, TinyECC also includes elliptic curve parame- ters recommended by SECG (Stands for Efficient Cryp- 2
  • 3. tography Group), such as secp160k1, secp160r1 and secp160r2, as defined in [9]. Portability: TinyECC should run on as many sensor platforms as possible. Due to this reason, we choose to implement TinyECC on TinyOS [5], which is a popular, open-source OS for networked sensors. All the TinyECC components have nesC [14] implementations, though some modules also include inline assembly code, which can be turned on for faster execution on some sensor platforms. This allows TinyECC to be compiled and used on any sen- sor platform that can run TinyOS. TinyECC has been tested successfully on MICAz, TelosB, Tmote Sky, and Imote2. Resource Awareness and Configurability: TinyECC should accommodate the typical resource constraints on sensor nodes. Moreover, TinyECC should allow for flex- ible configuration so that it can take advantage of the avail- able resources on a wide spectrum of sensor platforms. To follow this principle, TinyECC is implemented carefully to avoid unnecessary resource usage. Moreover, TinyECC uses a set of optimization switches, which can be turned on or off to achieve different combinations of performance and resource consumptions. Efficiency: TinyECC should be computationally effi- cient to reduce the battery consumption as well as the de- lay introduced by PKC operations. We make three design decisions to improve the efficiency of TinyECC. The first is about the type of finite fields over which the ECC opera- tions are performed. ECC can be implemented over either a prime field Fp, where p is a large prime number, or a bi- nary extension field F2m, where m is an integer. Since arith- metic operations over F2m are insufficiently supported by micro-controllers, we choose to support prime fields Fp in TinyECC. Second, we adopt almost all existing optimiza- tions for ECC operations in TinyECC. As mentioned ear- lier, these optimizations can be turned on or off to balance the efficiency and the resource requirements. Third, we in- clude inline assembly code in critical parts of TinyECC for popular sensor platforms, including MICAz, TelosB, Tmote Sky, and Imote2. Functionality: TinyECC should support the typical demands for PKC. To follow this principle, the current version of TinyECC includes a digital signature scheme (ECDSA), a key exchange protocol (ECDH), and a pub- lic key encryption scheme (ECIES). These cover all typical uses of PKC. 3. Background on ECC In this and next sections, we give an overview of ECC and the optimizations adopted by TinyECC as a convenient reference. The reader can find details in the references. Elliptic curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields [16]. Elliptic curves used in cryptography are typically defined over two types of finite fields: prime fields Fp, where p is a large prime number, and binary extension fields F2m. For space reasons, we fo- cus on elliptic curves over Fp in this paper. An elliptic curve over Fp is defined by a cubic equation y2 = x3 + ax + b, where a,b ∈ Fp are constants such that 4a3 + 27b3 = 0 [16]. An elliptic curve over Fp consists of the set of all pairs of affine coordinates (x,y) for x,y ∈ Fq that satisfy an equation of the above form and an infinity point O. The points on an elliptic curve form an abelian group with O as the additive identity. (The formulas defin- ing point addition and its special case, point doubling, can be found in [16].) For any point G on an elliptic curve, the set {O,G,2G,3G,...} is a cyclic group [16]. The calcula- tion of kG, where k is an integer, is called a scalar mul- tiplication. The problem of finding k given points kG and G is called the elliptic curve discrete logarithm prob- lem (ECDLP). It is computationally infeasible to solve ECDLP for appropriate parameters [16]. The hardness of ECDLP allows several cryptographic schemes based on el- liptic curves. TinyECC includes three well-known ECC schemes: (1) the Elliptic Curve Diffie-Hellman (ECDH) key agree- ment scheme, (2) the Elliptic Curve Digital Signature Algo- rithm (ECDSA), and (3) the Elliptic Curve Integrated En- cryption Scheme (ECIES). ECDH is a variant of the Diffie- Hellman key agreement protocol [12] on elliptic curve groups. ECDSA is a variant of the Digital Signature Al- gorithm (DSA) [29] that operates on elliptic curve groups. ECIES is a public-key encryption scheme which provides semantic security against an adversary who is allowed to use chosen-plaintext and chosen-ciphertext attacks [16]. ECIES is also known as the Elliptic Curve Augmented En- cryption Scheme (ECAES) or simply the Elliptic Curve En- cryption Scheme. These ECC schemes allow smaller key sizes for similar security level to the alternatives such as the original DH and DSA schemes. For each of the schemes, a party that would like to use the scheme needs to agree on some domain parameters such as the elliptic curve and a point G on the curve, and must have a key pair consisting of a private key d and a public key Q = dG. The specification of ECDH, ECDSA, and ECIES can be found in [8,16]. 4. Optimizations Adopted by TinyECC In this section, we briefly discuss the optimization tech- niques adopted by TinyECC. We will omit the details, since the focus of this paper is not these individual optimization techniques. More information about these techniques can be found in the relevant references. 3
  • 4. 4.1. Optimizations for Large Integer Operations Barrett Reduction [28]: A straightforward way to perform large integer modular reductions is to use divi- sion [19]. A nice side effect is that it reuses the code of division, thus resulting in more compact code size. Barrett Reduction is an alternative method for modular reduction [28]. It converts the reduction modulo an arbi- trary integer to two multiplications and a few reductions modulo integers of the form 2n. When used to reduce a single number, Barrett reduction is slower than a normal division algorithm. However, when used to reduce vari- ous numbers modulo the same number many times, by pre- computing some value, Barrett reduction can achieve faster speed than modular reductions obtained by division. De- tails of Barrett reduction can be found in [28]. In TinyECC, since almost all the modular operations are modulo the same prime number p, Barrett reduction can potentially speed up the computation. However, this requires the implementation of a separate reduction algo- rithm, which implies larger code size (i.e., greater ROM requirement) on sensor nodes. In addition, Barrett reduc- tion also increases RAM use. Assume the target micro- controller has a w-bit word size. Given a finite field Fp, where p is a k words long prime number, Barrett reduction requires the pre-computation of µ = ⌊bk p ⌋, where b = 2w (e.g., b = 28 on a 8-bit processor). This number µ has to be stored and used throughout all the modular reductions. Thus, to exchange for faster computation, Barrett reduction requires more ROM and RAM than the traditional division- based modular reduction. Hybrid Multiplication and Hybrid Squaring [15]: Standard large integer multiplication algorithms [19] store the operands and the product in arrays. When such an al- gorithm is implemented in a high-level language such as nesC, the compiler cannot use the registers in the micro- controller efficiently, and the binary code usually needs to load the operands from memory to registers multiple times [15]. Gura et al. [15] proposed a hybrid multipli- cation algorithm, which was intended for assembly code. This algorithm can maximize the utilization of registers and reduce the number of memory operations. TinyECC adopts this hybrid multiplication algorithm for MICAz [2], TelosB [4]/Tmote Sky [6], and Imote2 [1]. Indeed, the code can be used on any sensor platforms that have processors using the same instruction sets. In addition to hybrid multiplication, we also customize the hybrid multiplication algorithm for squaring operations by using the fact that the two multiplicative operands in squaring are the same. This further reduces the execution time for squaring at the cost of larger code size. 4.2. Optimizations for ECC Operations Projective Coordinate Systems [16]: As discussed ear- lier, an elliptic curve consists of the infinity point O and the set of points in the affine coordinates (x,y) for x,y ∈ Fp that satisfy the defining equation. Alternatively, a point on an elliptic curve can be represented in a projective coordinate system in the form of (x,y,z). Point addition and point doubling are critical operations in ECC, which are building blocks for scalar multiplica- tions required by all ECC schemes. These operations in affine coordinate system require modular inversion oper- ations, which are much more expensive than other oper- ations such as modular multiplications. Using a projective coordinate system [16], modular inversions can be removed with the compensation of a few modular multiplications and squares. As a result, the execution times of point ad- dition and point doubling based on projective coordinate system are faster than those based on affine coordinate sys- tem, respectively [16]. TinyECC uses two additional optimizations along with projective coordinate representation, which can further re- duce both the execution time and the program size. The first is a mixed point addition algorithm [16], which adds a point in projective coordinate and a second point in affine coordinate. This algorithm can be used in scalar multipli- cations to further reduce the number of modular multiplica- tions and squares, leading to smaller and faster code. The second is repeated Doubling [16] for scalar multiplication. If consecutive point doublings are to be performed, the re- peated doubling algorithm may be used to achieve faster performance than repeated use of the doubling formula. In m consecutive doublings, this algorithm trades m − 1 field additions, m − 1 divisions by two, and a multiplication for two field squarings (in comparison with repeated applica- tions of the plain point doubling algorithm) [16]. Though reducing the execution time, the projective co- ordinate representation requires a larger code size (for more complex formula) and more RAM (for storing additional variables) than the affine coordinate system. Sliding Window for Scalar Multiplications [16]: Scalar multiplication is a basic operation used by all ECC schemes. It is in the form of kP, where k is an integer and P is a point on an elliptic curve. In the most straightfor- ward method to compute kP, k is scanned from the most significant bit to the least significant bit. When each bit is scanned, the algorithm needs to compute a point doubling. When the scanned bit is “1”, the algorithm also needs to perform a point addition. The sliding window method can speed up the scalar multiplication by scanning w bits at a time. Each time when a w-bit window is scanned, the algo- rithm needs to perform w point doublings. By precomput- ing 2P, 3P, ..., and (2w − 1)P, the sliding window method 4
  • 5. only needs to perform 1 point addition every w bits, and thus has less computational cost. It is easy to see that the sliding window method will increase both the ROM (for additional code size) and RAM (for storing the pre-computed points) consumptions. Shamir’s Trick [16]: This optimization is only used for the verification of ECDSA signatures. The verification of ECDSA signature requires the computation of the form aP + bQ, where a,b are integers and P,Q are two points on an elliptic curve. A straightforward implementation requires two scalar multiplications and a point addition. However, Shamir’s trick allows us to compute the above value at a cost close to one scalar multiplication. Specif- ically, with pre-computed P + Q, we may scan the (same) bits of a and b from the most significant one to the least significant one. For each bit, we need double the interme- diate value, which is initialized as the infinity point. If the scanned bit positions are ai = 0,bi = 1 , ai = 1,bi = 0 , or ai = 1,bi = 1 , we add P, Q, or P + Q to the interme- diate value. This reduces two scalar multiplications to be a bit more expensive than one such operation. Similar to the sliding window method, Shamir’s trick will increase both the ROM (for additional code size) and RAM (for storing the pre-computed P+Q) consumptions. Curve Specific Optimization [15]: A number of el- liptic curves specified by NIST [30] and SECG [9] use pseudo-Mersenne primes. A pseudo-Mersenne prime is of the form p = 2n − c, where c ≪ 2n. Reduction modulo a pseudo-Mersenne prime can be performed by a few mod- ular multiplications and additions without any division op- eration. As a result, the time for modular reduction can be reduced significantly. Thus, using elliptic curves over a pseudo-Mersenne prime can achieve additional perfor- mance gain. 5. Implementation We implemented TinyECC on TinyOS [5], an open source operating system designed for wireless embedded sensor networks. The current version of TinyECC provides support for ECDSA (digital signatures), ECDH (pairwise key establishment), and ECIES (PKC-based encryption). Most of the code was written in nesC [14] for portability reasons. To best harness the capabilities of the processors on popular sensor platforms such as MICAz and TelosB, we also provided inline assembly implementation of some critical operations, such as large integer multiplications. To save implementation efforts, we ported the C code of large integer operations in RSAREF 2.0 [20] to nesC code on TinyOS. These include modular addition, subtraction, multiplication, division, inverse, and exponentiation opera- tions. We then implemented all the elliptic curve operations and the optimization techniques discussed earlier. TinyECC has been released publicly at http: //discovery.csc.ncsu.edu/software/ TinyECC/. Some preliminary versions have been adopted by other researchers (e.g., [11, 21, 27]). As discussed earlier, starting from the current version, we added a set of optimization switches to provide for flexible configuration of TinyECC so that it can be integrated into sensor network applications with different resource consumptions and performance demands. Table 1 lists the optimization switches available in the current version of TinyECC. All optimization switches can be turned on or off by a simple configuration at compile time, or slight modification in the source code. Moreover, when the sliding window method is used, an additional pa- rameter defining the size of the window (e.g., w = 4) needs to be specified. 6. Evaluation We performed a series of experiments to evaluate TinyECC on four representative sensor platforms, includ- ing MICAz [2], TelosB [4], Tmote Sky [6], and Imote2 [1]. The objective of these experiments is three-fold: First, we want to measure the performance and resource con- sumption of TinyECC on a spectrum of sensor platforms, ranging from the low-end ones (such as MICAz, TelosB, and Tmote Sky) to high-end ones (such as Imote2). Sec- ond, we would like to understand the impact of the op- timizations adopted by TinyECC on performance and re- source consumption. Finally, we would like to provide de- tailed performance results and resource demands for com- monly desirable configurations, including the configuration that provides the fastest execution time and the configura- tion that requires the least memory consumption. The for- mer has the least energy consumption, while the latter is the easiest one to integrate into sensor network applications. 6.1. Methodology and Experimental Setup Evaluation Methodology: Given seven optimization switches, four sensor platforms, where Imote2 has mul- tiple CPU frequencies due to dynamic voltage scaling, many possible elliptic curves, and three ECC-based PKC schemes, there are a large number of experiments to per- form if we have to observe the performance and resource consumptions in all cases. To simplify the scenarios, we adopted the following methodology in our experiments. For each optimization switch, we performed two sets of experiments, referred to as case A and case B, respectively. In case A, for each opti- mization, we disabled all the other optimizations, and then obtained the performance and resource consumption met- rics when the given optimization was enabled and disabled, respectively. In case B, we enabled all the other optimiza- tions and obtained the evaluation metrics again when the given optimization was enabled and disabled, respectively. 5
  • 6. Table 1. TinyECC Optimization Switches Method Optimization Switch Category Description Barrett Reduction BARRETT large number Allow Barrett reduction. Hybrid Multiplication HYBRID MULT large number Allow hybrid multiplication in inline assembly. Hybrid Squaring HYBRID SQR large number Allow hybrid squaring in inline assembly. Projective Coordinate System PROJECTIVE EC Use projective coordinate system along with mixed point addition and repeated doubling. Sliding Window Method SLIDING WIN EC Use sliding window method for scalar multiplication. A window size (e.g. w = 4) has to be defined along with this switch. Shamir’s Trick SHAMIR TRICK EC Allow Shamir’s trick when verifying ECDSA signatures. A window size (e.g. w = 2) has to be defined along with this switch. Curve-Specific Optimization CURVE OPT EC Allow curve specification optimization. This has to be used for the curves defined over pseudo- Mersenne primes [9,30]. The differences in these metrics reflect the impact of the given optimization technique. Moreover, as discussed earlier, we also performed ad- ditional experiments to examine in detail two commonly desirable configurations: the one that provides the fastest execution time, and the one that requires the least storage. Experimental Setup: We evaluated TinyECC on the latest CVS version of TinyOS 1.x [5]. As discussed ear- lier, we chose four representative sensor platforms, MI- CAz, TelosB, Tmote Sky, and Imote2, for the experiments, since they are popular sensor platforms and cover the 8-bit, 16-bit and 32-bit processors. Other sensor platforms (e.g., Mica2, Mica2Dot) are expected to perform similarly to one of these platforms, due to the use of the same processor. TelosB and Tmote Sky have almost the same hardware. The only difference is that TelosB can only run at 4 MHz, while Tmote Sky can run at 8 MHz when an external resis- tor is enabled. We configure Tmote Sky to run at 8 MHz in our experiments. Due to the similarity between TelosB and Tmote Sky, we only report the results on Tmote Sky in this paper. The reader may refer to the technical report version of this paper [22] for experimental results on TelosB. As a high-end sensor platform, Imote2 uses an XScale processor and supports dynamic voltage scaling. To ob- tain a relatively complete view of Imote2, we used four dif- ferent frequencies on Imote2 in our experiments: 13MHz, 104MHz, 208MHz, and 416MHz. By default, TinyECC includes all 128-bit, 160-bit and 192-bit ECC parameters recommended by SECG [9]. It is well-known that 160-bit ECC has the same security level as 1024-bit RSA. We selected a 160-bit elliptic curve secp160r1 [9] to evaluate the impact of individual op- timization techniques. Note that the actual selection of curves depends on the security needs in the sensor network applications, and is outside of the scope of this paper. We used the following evaluation metrics in all ex- periments: ROM consumption (byte), RAM consumption (byte), execution time (ms), and energy consumption (mil- lijoule). We used the check size.pl script in the TinyOS distribution to obtain the ROM and RAM sizes re- quired by the TinyECC components. The execution time was measured directly on the sensor nodes. To get the over- all performance result, we randomly generated the parame- ters (e.g., random message, random public and private key pairs) other than those defining the curves, and obtained the execution time for each data point by taking the av- erage of 10 test instances. The energy consumption was then calculated as U × I × t based on the execution time (t), the voltage (U), and current draw (I) on these sensor platforms [1,2,4,6]. 6.2. Evaluation Results Due to the space limit, we can only report a portion of the evaluation results. Please refer to the full version of this paper [22] for more details. 6.2.1. Impact of Individual Optimizations In the following, we use the experimental results for ECDSA to show the impact of individual optimization techniques. More results on the impacts of these optimiza- tions on ECDH and ECIES can be found in [22]. There are three aspects of the execution time for ECDSA. Figures 1(a) and 1(b) show the initialization time required to prepare for ECDSA in cases A and B, respec- tively. Figures 1(c) and 1(d) show the signature generation time in cases A and B, respectively. Figures 1(e) and 1(f) show the signature verification time in cases A and B, re- spectively. In the initialization of ECDSA, TinyECC needs to pre- compute µ for Barrett reduction, a few points for the slid- ing window method, and a few points for Shamir’s trick. In case A, as Figure 1(a) shows, only these 3 optimiza- tion techniques have impact on the initialization time. For MICAz, the initialization of the sliding window method with window size 4 requires 3,587 ms, which is longer than Shamir’s trick (1,672 ms for window size 2) and Barrett reduction (6 ms). The same situation applies to TelosB/Tmote Sky, and Imote2. If we disable all these three techniques, the initialization time of ECDSA is close to 0. In case B, as Figure 1(b) shows, the disabling of se- lected optimization technique does not reduce the initial- ization time dramatically, except that the disabling of the sliding window method reduces the initialization time by half. In Figure 1, we can see that PROJECTIVE is the most 6
  • 7. 0.0781 0.0519 0.0281 0.0041 0.0023 0.0023 6.3978 4.0771 0.7864 0.0988 0.0498 0.0271 0.0781 0.0488 0.0278 0.0040 0.0023 0.0023 0.0781 0.0488 0.0284 0.0040 0.0025 0.0023 0.0781 0.0580 0.0277 0.0043 0.0023 0.0023 0.0781 0.0427 0.0282 0.0042 0.0023 0.0020 3586.6933 2465.4326 319.7278 39.9632 19.9811 10.0027 1671.8788 1146.4202 148.8784 18.6104 9.3050 4.6558 0.0001 0.0100 1.0000 100.0000 10000.0000 1000000.0000 MICAz (8 MHz) Tmote Sky (8 MHz) Imote2 (13 MHz) Imote2 (104 MHz) Imote2 (208 MHz) Imote2 (416 MHz) Time(ms) Disable All BARRETT HYBRID_MULT HYBRID_SQR CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2) (a) Init. time when all other optimizations are disabled (case A) 3493.36 2545.18 341.25 42.68 21.34 10.74 2544.20 340.46 42.57 21.29 10.71 3772.85 2594.95 360.12 45.01 22.50 11.32 3572.08 2566.90 346.92 43.36 21.68 10.91 3826.72 2934.96 378.47 47.31 23.66 11.85 3292.86 2327.40 300.22 37.53 18.76 9.40 1684.46 1230.10 164.50 20.56 10.28 5.17 3626.14 2641.15 353.18 44.14 22.07 11.11 3486.92 0.0001 0.0100 1.0000 100.0000 10000.0000 1000000.0000 MICAz (8 MHz) Tmote Sky (8 MHz) Imote2 (13 MHz) Imote2 (104 MHz) Imote2 (208 MHz) Imote2 (416 MHz) Time(ms) Enable All BARRETT HYBRID_MULT HYBRID_SQR CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2) (b) Init time when all other optimizations are enabled (case B) 30723.00 21284.39 2785.11 348.11 174.06 87.12 31760.27 21779.61 2936.58 367.06 183.53 91.81 30423.74 21220.11 2766.76 345.82 172.91 86.56 30207.65 21196.15 2750.48 343.79 171.89 29591.55 20918.37 2710.26 338.76 169.38 84.81 9086.12 4177.88 891.13 111.39 55.70 28.31 25273.89 17333.41 2270.90 283.84 141.92 71.07 30725.57 21323.55 2785.10 348.11 174.06 87.12 86.04 1 10 100 1000 10000 100000 1000000 MICAz (8 MHz) Tmote Sky (8 MHz) Imote2 (13 MHz) Imote2 (104 MHz) Imote2 (208 MHz) Imote2 (416 MHz) Time(ms) Disable All BARRETT HYBRID_MULT HYBRID_SQR CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2) (c) Sig. generation time when all other optimizations are disabled (case A) 2001.62 1580.63 363.98 45.63 22.82 11.80 2007.97 1585.60 364.97 45.86 22.93 11.95 3249.44 1865.71 447.39 55.92 27.93 14.34 2957.78 1894.93 431.97 53.99 27.00 4066.37 3045.78 611.52 76.44 38.21 19.25 23565.96 16777.23 2179.79 272.45 136.20 68.28 2456.95 2041.65 459.20 57.40 28.70 14.78 2001.62 1583.22 365.73 45.72 22.86 11.82 13.91 1 10 100 1000 10000 100000 1000000 MICAz (8 MHz) Tmote Sky (8 MHz) Imote2 (13 MHz) Imote2 (104 MHz) Imote2 (208 MHz) Imote2 (416 MHz) Time(ms) Enable All BARRETT HYBRID_MULT HYBRID_SQR CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2) (d) Sig. generation time when all other optimizations are enabled (case B) 61800.34 42886.27 5560.35 694.99 347.49 174.00 63892.90 43841.09 5863.27 732.85 366.43 183.31 61197.70 42724.94 5523.87 690.44 345.22 172.87 60761.77 42675.35 5491.07 686.41 343.17 59517.10 42115.65 5411.92 676.45 338.22 169.55 18294.94 8425.67 1783.73 222.95 111.46 56.19 50807.12 34745.25 4514.04 564.21 282.10 141.20 30484.70 20793.69 2710.03 338.73 169.37 84.77 171.75 1 10 100 1000 10000 100000 1000000 MICAz (8 MHz) Tmote Sky (8 MHz) Imote2 (13 MHz) Imote2 (104 MHz) Imote2 (208 MHz) Imote2 (416 MHz) Time(ms) Disable All BARRETT HYBRID_MULT HYBRID_SQR CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2) (e) Sig. verification time when all other optimizations are disabled (case A) 2436.46 2016.02 446.85 56.02 28.01 14.49 2442.09 2020.10 446.29 55.96 27.98 14.49 4108.00 2411.19 557.07 69.63 34.78 17.84 3556.52 2347.82 525.87 65.73 32.87 5048.30 3804.69 754.55 94.31 47.15 23.75 28509.93 20157.31 2606.36 325.77 162.91 81.65 2436.49 2018.40 447.57 55.94 27.97 14.48 4020.43 3175.11 725.52 90.68 45.34 23.38 16.93 1 10 100 1000 10000 100000 1000000 MICAz (8 MHz) Tmote Sky (8 MHz) Imote2 (13 MHz) Imote2 (104 MHz) Imote2 (208 MHz) Imote2 (416 MHz) Time(ms) Enable All BARRETT HYBRID_MULT HYBRID_SQR CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2) (f) Sig. verification time when all other optimizations are enabled (case B) Figure 1. ECDSA timing result (Projective coordinate system is the most effective optimization, while Barrett reduction does not have obvious impact.) effective switch to improve the speed of signature genera- tion and verification. In case A, by enabling the PROJEC- TIVE switch, the signature generation and verification of all platforms can speed up by at least 3 times. In case B, if we disable the PROJECTIVE switch, the signature generation and verification has at least 6 times slowdown compared with enabling all optimization techniques. Although PROJECTIVE is the most efficient switch, it increases the ROM usage. Figures 2(a) and 2(b) show that when the PROJECTIVE switch is enabled in case A, the ROM size is increased by 1,218, 1,326, and 1,752 bytes for MICAz, TelosB/Tmote Sky, and Imote2, respectively, while the RAM size does not change at all. In case B, as Figures 2(c) and 2(d) show, disabling the PROJECTIVE switch can save 3,816, 3,880, and 4,660 bytes in ROM for MICAz, TelosB/Tmote Sky, and Imote2, respectively. The PROJECTIVE switch is the most effective switch to speed up ECDSA operations, but it also incurs larger ROM con- sumption than any other optimization technique. SHAMIR TRICK is also an efficient option to speed up ECDSA signature verification. From Figure 1(e), we can see that the verification can speed up by 2 times on all platforms when enabling SHAMIR TRICK in case A. Both ROM and RAM sizes are increased. In case A, the RAM size is increased by 634, 676, and 784 bytes for MICAz, TelosB/Tmote Sky, and Imote2, respectively. Similarly, the 7
  • 8. ROM size of MICAz, TelosB/Tmote Sky and Imote2 is in- creased by 638, 632, and 620 bytes, respectively. In case B, disabling SHAMIR TRICK makes verification 1.6 times slower but saves 2,148, 2,068, and 2,208 bytes in ROM for MICAz, TelosB/Tmote Sky, and Imote2, respectively. The RAM size does not decrease much because the sliding win- dow method is used for verification when SHAMIR TRICK is disabled. Now let us take a look at the SLIDING WIN option. In case A, as Figures 1(c), 1(e), 2(a) and 2(b) show, enabling SLIDING WIN can make signature generation and verifica- tion 1.2 times faster at the cost of dramatic RAM increase (1,262, 1,328 and 1,472 bytes for MICAz, TelosB/Tmote Sky, and Imote2, respectively). In case B, as Figures 1(d), 1(f), 2(c) and 2(d) show, disabling SLIDING WIN can save 632, 668, and 752 bytes of RAM for MICAz, TelosB/Tmote Sky, and Imote2 with 1.2 times slower sig- nature generation and verification. Since MICAz and TelosB/Tmote Sky are low-end sensor platforms, they have much smaller RAM (4kB, 10kB) compared with Imote2 (256kB). Before enabling SLIDING WIN, we should be very careful if the sensing application has large RAM con- sumption. Since SLIDING WIN is the most RAM consum- ing switch in TinyECC, application developers may disable it or reduce the window size to reserve more RAM for the applications. Now consider the HYBRID MULT, HYBRID SQR, and CURVE OPT options. In case A, HYBRID MULT, HY- BRID SQR and CURVE OPT do not have big impact on the timing result. However, in case B, HYBRID MULT can speed up signature generation by 1.6 times for MI- CAz, 1.2 times for TelosB/Tmote Sky, and 1.2 times for Imote2. Similarly, it can speed up signature verification by 1.7 times for MICAz, 1.2 times for TelosB/Tmote Sky, and 1.2 times for Imote2. HYBRID SQR can speed up sig- nature generation by 1.5 times for MICAz, 1.2 times for TelosB/Tmote Sky, and 1.2 times for Imote2, and speed up signature verification by 1.5 times for MICAz, 1.2 times for TelosB/Tmote Sky, and 1.2 times for Imote2. CURVE OPT can speed up signature generation by 2 times for MICAz, 1.9 times for TelosB/Tmote Sky, and 1.7 times for Imote2. Similarly, it can speed up signature verification by 2.1 times for MICAz, 1.9 times for TelosB/Tmote Sky, and 1.7 times for Imote2. The reason that HYBRID MULT, HYBRID SQR and CURVE OPT cannot speed up ECDSA much in case A is that the PROJECTIVE option is disabled when each of these switches is enabled. Thus, inverse op- eration is the major computation of signature generation and verification. In case B, when PROJECTIVE is enabled, multiplication and squaring become the major computation in ECDSA. Based on the timing results obtained for ECDSA, the effectiveness of these optimization switches in terms of 10,180 8,172 8,644 11,468 9,358 10,048 11,278 8,208 8,696 11,500 8,310 8,824 10,690 8,660 9,232 11,398 9,498 10,396 10,374 8,364 8,896 10,818 8,804 9,264 0 5,000 10,000 15,000 20,000 25,000 MICAz Tmote Sky Imote2 ROMsize(Byte) Disable All BARRETT HYBRID_MULT HYBRID_SQR CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2) (a) ROM size w/ all other optimizations disabled (case A) 152 160 176 244 258 292 152 160 176 152 160 176 152 160 176 152 160 176 1,414 1,488 1,648 786 836 960 0 500 1,000 1,500 2,000 2,500 MICAz Tmote Sky Imote2 RAMsize(Byte) Disable All BARRETT HYBRID_MULT HYBRID_SQR CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2) (b) RAM size w/ all other optimizations disabled (case A) 19,308 14,708 16,352 17,970 13,520 14,940 18,378 14,672 16,300 18,080 14,570 16,172 18,246 13,904 15,452 15,492 10,828 11,692 18,196 13,546 14,972 17,160 12,640 14,144 0 5,000 10,000 15,000 20,000 25,000 MICAz Tmote Sky Imote2 ROMsize(Byte) Enable All BARRETT HYBRID_MULT HYBRID_SQR CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2) (c) ROM size w/ all other optimizations enabled (case B) 1,510 1,602 1,828 1,418 1,504 1,712 1,510 1,602 1,828 1,510 1,602 1,828 1,510 1,602 1,828 1,510 1,602 1,828 878 934 1,076 1,506 1,586 1,764 0 500 1,000 1,500 2,000 2,500 MICAz Tmote Sky Imote2 RAMsize(Byte) Disable All BARRETT HYBRID_MULT HYBRID_SQR CURVE_OPT PROJECTIVE SLIDING_WIN(w=4) SHAMIR_TRICK(w=2) (d) RAM size w/ all other optimizations enabled (case B) Figure 2. Code size of ECDSA (Sliding window has the most memory demand, Shamir’s trick ranks the next, while all the other optimizations have similar memory demands.) 8
  • 9. Available ROM (byte) How to Conf. TinyECC’s Switches [10,180,10,374) disable all [10,374,11,398) enable SLIDING WIN [11,398,17,160) enable PROJECTIVE [17,160,17,970) enable all & disable SHAMIR TRICK [17,970,19,308) enable all & disable BARRETT [19,308,+∞) enable all Table 2. Configuration based on Free ROM for MICAz Available RAM (byte) How to Conf. TinyECC’s Switches [152,786) disable all [786,878) enable SHAMIR TRICK [878,1,418) enable all & disable SLIDING WIN [1,418,1,510) enable all & disable BARRETT [1,510,+∞) enable all Table 3. Configuration based on Free RAM for MICAz execution time can be ordered as follows: PROJECTIVE > CURVE OPT > HYBRID MULT > HYBRID SQR > SLIDING WIN > SHAMIR TRICK > BARRETT. In terms of RAM size, the optimization switches can be ordered as follows: SLIDING WIN > SHAMIR TRICK > BARRETT > HYBRID MULT = HYBRID SQR = CURVE OPT = PROJECTIVE. In terms of ROM size, the optimization switches are or- dered differently for different platforms. For MICAz, PRO- JECTIVE > BARRETT ≈ HYBRID SQR > CURVE OPT ≈ SHAMIR TRICK ≈ HYBRID MULT > SLIDING WIN. For TelosB/Tmote Sky, PROJECTIVE > BARRETT ≈ SHAMIR TRICK > CURVE OPT ≈ SLIDING WIN > HYBRID SQR > HYBRID MULT. For Imote2, PROJEC- TIVE > BARRETT > SHAMIR TRICK ≥ CURVE OPT > SLIDING WIN > HYBRID SQR > HYBRID MULT. Configuration Guideline: To summarize and assist users of TinyECC, in Tables 2 and 3, we show how to choose optimization switches on MICAz motes when the amount of available ROM and RAM for TinyECC can be estimated. TinyECC requires at least 10,180 bytes ROM and 152 bytes RAM to be used on MICAz. As more ROM and RAM are available, we can gradually enable the opti- mization switches as indicated in these tables to get better performance. For example, having a ROM size between 11,398 bytes and 17,160 bytes allows us to enable both SLIDING WIN and PROJECTIVE switches (but not oth- ers). Note that an optimization can be enabled if both ROM and RAM sizes allow it. Optimization switches can be de- termined for other platforms similarly. 6.2.2. Most Computationally Efficient Configuration Now consider the most computationally efficient con- figuration. Apparently, TinyECC provides the most com- putationally efficient configuration when all the optimiza- 3493.36 2001.62 2436.46 1838.74 3907.46 2632.66 1838.74 2117.43 2545.18 1580.63 2016.02 1319.32 3271.01 2127.77 1319.54 1755.96 341.25 363.98 446.85 178.34 736.97 466.10 179.16 392.12 42.68 45.63 56.02 22.29 92.06 58.15 22.39 49.01 21.34 22.82 28.01 11.15 46.06 29.13 11.20 24.51 10.74 11.80 14.49 5.64 24.26 15.10 5.65 12.89 1 10 100 1000 10000 100000 init (ECDSA) sign (ECDSA) verify (ECDSA) init (ECIES) encrypt (ECIES) decrypt (ECIES) init (ECDH) key establish (ECDH) Time(ms) MICAz (8 MHz) Tmote Sky (8 MHz) Imote2 (13 MHz) Imote2 (104 MHz) Imote2 (208 MHz) Imote2 (416 MHz) Figure 3. Execution time of ECDSA, ECIES, and ECDH w/ all optimization switches enabled tion switches are enabled. Figure 3 shows the execution time required by ECDSA initialization, signature genera- tion, signature verification; ECIES initialization, encryp- tion, decryption; ECDH initialization, key establishment. From figure 3, we can see that enabling all optimiza- tion switches requires long pre-computation. For exam- ple, it takes MICAz 3,493, 1,839 and 1,839 ms to do pre- computation for ECDSA, ECIES and ECDH, respectively. Most of the pre-computation time is for the sliding win- dow method and Shamir’s trick (ECDSA only). Tmote Sky runs slightly faster than MICAz. Running at 13 MHz, the default CPU frequency for Imote2, Imote2 is faster than Tmote Sky in all operations. If we set the frequency to 416 MHz, it only takes 12 and 14 ms to generate ECDSA signature and verify it. Moreover, it can perform ECIES encryption in 24 ms and decrypt in 15 ms. Finally, ECDH key establishment only takes 13 ms. Enabling all optimization switches requires the largest ROM and RAM consumptions. Figure 4 shows the ROM and RAM requirements by all schemes. Imote2 has the largest RAM size due to its word size. MICAz has the smallest RAM size due to its 8-bit word size, but it has the largest ROM size because it has additional assembly code for minimizing memory operation when CURVE OPT op- tion is enabled. Now consider the energy consumption of ECDSA, ECIES and ECDH on the testing platforms. We estimate energy consumption using W = U × I ×t, where U is the voltage, I is the current draw in active mode with radio off, and t is the execution time. We took the voltage and cur- rent draw (with radio off) from the data sheet of each sensor platform [1, 2, 4, 6], and used the execution time obtained in our experiments. Specifically, we chose U as 3v for MI- CAz and TelosB/Tmote Sky. The current draw for MICAz and TelosB/Tmote Sky was 8 mA and 1.8 mA, respectively. For Imote2, U is 0.95v for 13 MHz and 104 MHz [1]. The Imote2 data sheet [1] does not give the current draw when the node runs at 104 MHz with radio off. To be conserva- tive, we use the current draw with radio on in our compu- tation. That is, we chose 31 mA and 66 mA for Imote2 at 9
  • 10. 20,768 16,018 13,520 15,658 11,396 16,352 17,728 12,852 19,308 0 5,000 10,000 15,000 20,000 25,000 ECDSA ECIES ECDH ROMsize(byte) MICAz Tmote Sky Imote2 (a) ROM size 1,774 1,774 1,504 1,816 1,816 1,828 2,064 2,064 1,510 0 500 1,000 1,500 2,000 2,500 ECDSA ECIES ECDH RAMsize(byte) MICAz Tmote Sky Imote2 (b) RAM size Figure 4. Code size of ECDSA, ECIES, and ECDH w/ all optimization switches enabled 83.84 48.04 58.48 44.13 93.78 63.18 44.13 50.82 13.74 8.54 10.89 7.12 17.66 11.49 7.13 9.48 10.05 10.72 13.16 5.25 21.70 13.73 5.28 11.55 2.68 2.86 3.51 1.40 5.77 3.65 1.40 3.07 0 10 20 30 40 50 60 70 80 90 100 init (ECDSA) sign (ECDSA) verify (ECDSA) init (ECIES) encrypt (ECIES) decrypt (ECIES) init (ECDH) key establish (ECDH) Energyconsumption(mJ) MICAz (8 MHz) Tmote Sky (8 MHz) Imote2 (13 MHz) Imote2 (104 MHz) Figure 5. Energy consumption of ECDSA, ECIES, and ECDH w/ all optimization switches enabled 13 MHz and 104 MHz. Figure 5 shows the energy consumption required by all these operations. Imote2 is the most energy efficient plat- form when it runs at 104 MHz. It needs 2.86 mJ and 3.51 mJ to generate ECDSA signature and verify it; it needs 5.77 mJ and 3.65 mJ to do ECIES encryption and decryp- tion; and it needs 3.07 mJ for the ECDH key agreement operation. MICAz is the most energy consuming platform. TelosB/Tmote Sky is quite efficient at energy consumption due to its low current draw with radio off. 6.2.3. Most Storage-Efficient Configuration Many TinyOS applications may use TinyECC for au- thentication, encryption/decryption, or key establishment. 0.08 30723.00 61800.34 0.08 61401.83 31872.28 0.08 31208.21 0.05 21284.39 42886.27 0.05 42558.09 21415.06 0.04 21151.53 0.03 2785.11 5560.35 0.04 5514.29 2811.87 0.04 2718.31 0.00 348.11 694.99 0.01 689.23 351.45 0.01 339.77 0.00 174.06 347.49 0.00 344.63 175.73 0.00 169.89 0.00 87.12 174.00 0.00 172.42 88.02 0.00 85.05 0.001 0.01 0.1 1 10 100 1000 10000 100000 1000000 init (ECDSA) sign (ECDSA) verify (ECDSA) init (ECIES) encrypt (ECIES) decrypt (ECIES) init (ECDH) key establish (ECDH) Time(ms) MICAz (8 MHz) Tmote Sky (8 MHz) Imote2 (13 MHz) Imote2 (104 MHz) Imote2 (208 MHz) Imote2 (416 MHz) Figure 6. Execution time of ECDSA, ECIES, and ECDH w/ all optimization switches disabled Thus it is likely that TinyECC will be loaded on sen- sor nodes with other applications. Due to the resource constraint of low-end sensor platforms (e.g., MICAz, TelosB/Tmote Sky), we may have to reduce ROM and RAM consumption by disabling some optimizations to re- serve enough space for the sensing applications. For example, when all optimizations are enabled, ECDSA needs 19,308 bytes ROM and 1,510 bytes RAM on MICAz, as figure 4 shows. Stack overflow may happen when TinyECC is integrated with other programs such as TOSBase; the available stack for local variables may not be large enough due to the limited RAM (4K bytes) on MICAz. As another example, Tmote Sky only has 48K bytes ROM. If ECDSA with all optimizations enabled is integrated with the SurgeTelos, a popular TinyOS applica- tion [5], the total ROM size would be 40,380 bytes, leaving little space for other applications. We can disable all optimizations to show how compact TinyECC could be. Figure 6 shows the execution time of ECDSA, ECIES and ECDH when all optimization switches are disabled. In this case, no pre-computation is needed, and the initialization time is close to 0. Imote2 running at 416 MHz is still the fastest one, which MICAz is the slowest one. The benefit of disabling all optimizations is the compact code size. Figure 7 shows the code size of all schemes in TinyECC when all optimization switches are disabled. Due to their word size, Imote2 has the largest RAM size, while MICAz has the smallest RAM size. The code size has been reduced greatly. Since the execution time of TinyECC is much longer, the energy consumption of TinyECC is also increased as figure 8 shows. In our experiments, the energy cost is in- creased by 6 to 25.4 times. Please refer to the technical report version of this paper [22] for detailed discussion. 7. Related Work A comprehensive guide for elliptic curve cryptography is given in [16]. Additional documentation on ECC can be 10
  • 11. 12,442 8,634 8,172 10,434 6,950 8,644 10,904 6,876 10,180 0 5,000 10,000 15,000 20,000 25,000 ECDSA ECIES ECDH ROMsize(byte) MICAz Tmote Sky Imote2 (a) ROM size 150 150 160 158 158 176 172 172 152 0 500 1,000 1,500 2,000 2,500 ECDSA ECIES ECDH RAMsize(byte) MICAz Tmote Sky Imote2 (b) RAM size Figure 7. Code size of ECDSA, ECIES, and ECDH w/ all optimization switches disabled 0.00 737.35 1483.21 0.00 1473.64 764.93 0.00 749.00 0.00 114.94 231.59 0.00 229.81 115.64 0.00 114.22 0.00 82.02 163.75 0.00 162.40 82.81 0.00 80.05 0.00 21.83 43.58 0.00 43.21 22.04 0.00 21.30 0 400 800 1200 1600 2000 init (ECDSA) sign (ECDSA) verify (ECDSA) init (ECIES) encrypt (ECIES) decrypt (ECIES) init (ECDH) key establish (ECDH) Energyconsumption(mJ) MICAz (8 MHz) Tmote Sky (8 MHz) Imote2 (13 MHz) Imote2 (104 MHz) Figure 8. Energy consumption of ECDSA, ECIES, and ECDH w/ all optimization switches disabled found in [7–9]. There have been numerous ECC implemen- tations in various contexts (e.g., Crypto++ [10]). Most of these implementations are aimed at traditional computing platforms such as PCs. Several recent efforts have focused on sensor platforms, such as the MICA series of motes. Malan et al. imple- mented ECC over binary extension fields F2m on TinyOS for Mica2 [26]. Unfortunately, due to the constraints on the typical micro-controllers used on sensor platforms, it is difficult to obtain efficient ECC implementation over F2m. Gura et al. implemented and compared ECC and RSA on Atmel ATmega128 in assembly [15]. However, it is not clear how well their implementation can be inte- grated into sensor network applications. Wang et al. imple- mented ECC on specific 160-bit elliptic curves on MICAz and TelosB running TinyOS [33]. They obtained fast ex- ecution time by hard-coding all the curve parameters into assembly code. A common limitation of all these efforts is that all these attempts were developed as independent pack- ages/applications without seriously considering the re- source demands of sensor network applications. As a re- sult, developers may find it difficult, and sometimes im- possible, to integrate an ECC implementation with the sensor network applications (e.g., not enough ROM or RAM), though the ECC implementation may be okay on its own. In contrast, TinyECC provides a set of optimization switches that allow itself to be configured with different re- source consumptions. This allows TinyECC to be flexibly integrated into sensor network applications. 8. Conclusion In this paper, we presented the design, implementation, and evaluation of TinyECC. A unique feature of TinyECC is its configurability. It provides a number of optimization switches, which can turn specific optimizations on or off based on developers’ needs. Different combinations of the optimizations have different execution time and resource consumptions, and thus give the developers flexibility in integrating TinyECC into sensor network applications. We also performed a series of experiments to evaluate the per- formance and resource consumptions of TinyECC with different combinations of enabled optimizations, and pro- vided guidelines for configuring TinyECC for sensor net- work applications. As a final note, we would like to point out that PKC components could become the source of attacks if not prop- erly used. In particular, developers should pay special at- tention to Denial of Service (DoS) attacks against PKC. For example, TinyECC has been used to bootstrap secure code dissemination in wireless sensor networks [11, 17]. However, if there is no additional protection, an attacker may repeatedly claim that a new code image is available and convincing sensor nodes to perform many PKC opera- tions, eventually exhausting their battery power. Additional mechanisms such as message specific puzzles [31] is thus necessary. Acknowledgment We would like to thank Ben Greenstein for shepherding our paper. Panos Kampanakis ported an earlier version of TinyECC to Imote2. We are grateful to the anonymous reviewers for their helpful comments. References [1] Imote2: High-performance wireless sensor network node. http://www.xbow.com/Products/ Product_pdf_files/Wireless_pdf/Imote2_ Datasheet.pdf. [2] MICAz: Wireless measurement system. http: //www.xbow.com/Products/Product_pdf_ 11
  • 12. files/Wireless_pdf/MICAz_Datasheet.pdf. [3] SSL 3.0 specification. http://wp.netscape.com/ eng/ssl3/. [4] TelosB mote platform. http://www.xbow.com/ Products/Product_pdf_files/Wireless_ pdf/TelosB_Datasheet.pdf. [5] TinyOS: An open-source OS for the networked sensor regime. http://www.tinyos.net/. [6] Tmote sky: Reliable low-power wireless sensor network- ing eases development and deployment. http://www. moteiv.com/products-tmotesky.php. [7] American Bankers Association. ANSI X9.62-1998: Public Key Cryptography for the Financial Services Industry: the Elliptic Curve Digital Signature Algorithm (ECDSA), 1999. [8] Certicom Research. Standards for efficient cryp- tography – SEC 1: Elliptic curve cryptography. http://www.secg.org/download/aid-385/ sec1_final.pdf, September 2000. [9] Certicom Research. Standards for efficient cryptography – SEC 2: Recommended elliptic curve domain parame- ters. http://www.secg.org/collateral/sec2_ final.pdf, September 2000. [10] W. Dai. Crypto++ library 5.5. http://www. cryptopp.com/, May 2007. [11] J. Deng, R. Han, and S. Mishra. Secure code distribution in dynamically programmable wireless sensor networks. In Proceedings of the Fifth International Conference on Infor- mation Processing in Sensor Networks (IPSN ’06), April 2006. [12] W. Diffie and M.E. Hellman. New directions in cryptogra- phy. IEEE Transactions on Information Theory, IT-22:644– 654, November 1976. [13] L. Eschenauer and V. D. Gligor. A key-management scheme for distributed sensor networks. In Proceedings of the 9th ACM Conference on Computer and Communications Secu- rity, pages 41–47, November 2002. [14] D. Gay, P. Levis, R. von Behren, M. Welsh, E. Brewer, and D. Culler. The nesC language: A holistic approach to net- worked embedded systems. In Proceedings of Program- ming Language Design and Implementation (PLDI ’03), June 2003. [15] N. Gura, A. Patel, and A. Wander. Comparing elliptic curve cryptography and RSA on 8-bit CPUs. In Proceedings of the 2004 Workshop on Cryptographic Hardware and Embedded Systems (CHES 2004), pages 119–132, August 2004. [16] D. Hankerson, A. Menezes, and S. Vanstone. Guide to El- liptic Curve Cryptography. Springer, 2004. [17] S. Hyun, P. Ning, A. Liu, and W. Du. Seluge: Secure and dos-resistant code dissemination in wireless sensor net- works. In Proceedings of the Seventh International Confer- ence on Information Processing in Sensor Networks (IPSN ’08), April 2008. [18] S. Kent and R. Atkinson. IP authentication header. IETF RFC 2402, November 1998. [19] D.E. Knuth. The Art of Computer Programming, volume 2: Seminumerical Algorithms. Addison-Wesley, third edition, 1997. ISBN: 0-201-89684-2. [20] RSA Laboratories. RSAREF: A cryptographic toolkit (ver- sion 2.0), March 1994. [21] P.E. Lanigan, R. Gandhi, and P. Narasimhan. Sluice: Se- cure dissemination of code updates in sensor networks. In Proceedings of the 26th International Conference on Dis- tributed Computing Systems (ICDCS ’06), July 2006. [22] A. Liu and P. Ning. TinyECC: A configurable library for el- liptic curve cryptography in wireless sensor networks. Tech- nical Report TR-2007-36, North Carolina State University, Department of Computer Science, 2007. [23] D. Liu and P. Ning. Establishing pairwise keys in distributed sensor networks. In Proceedings of 10th ACM Confer- ence on Computer and Communications Security (CCS’03), pages 52–61, October 2003. [24] D. Liu and P. Ning. Multi-level µTESLA: Broadcast au- thentication for distributed sensor networks. ACM Transac- tions in Embedded Computing Systems (TECS), 3(4):800– 836, 2004. [25] D. Liu, P. Ning, S. Zhu, and S. Jajodia. Practical broad- cast authentication in sensor networks. In Proceedings of the 2nd Annual International Conference on Mobile and Ubiquitous Systems: Networking and Services (MobiQui- tous 2005), July 2005. [26] D. Malan, M. Welsh, and M. Smith. A public-key infras- tructure for key distribution in tinyos based on elliptic curve cryptography. In Proceedings of IEEE Conference on Sen- sor and Ad Hoc Communications and Networks (SECON), pages 71–80, 2004. [27] K. Malasri and L. Wang. Addressing security in medical sensor networks. In HealthNet ’07: Proceedings of the 1st ACM SIGMOBILE international workshop on Systems and networking support for healthcare and assisted living envi- ronments, pages 7–12, 2007. [28] A.J. Menezes, P. C. van Oorschot, and S.A. Vanstone. Hand- book of Applied Cryptography. CRC Press, 1996. ISBN: 0-8493-8523-7. [29] National Institute of Standards and Technology. Federal in- formation processing standard 186: Digital signature stan- dard. http://csrc.nist.gov/publications/, 1993. [30] National Institute of Standards and Technology. Recom- mended elliptic curves for federal government use, August 1999. [31] P. Ning, A. Liu, and W. Du. Mitigating DoS attacks against broadcast authentication in wireless sensor networks. ACM Transactions on Sensor Networks, 4(1), February 2008. [32] A. Perrig, R. Canetti, D. Song, and D. Tygar. Efficient authentication and signing of multicast streams over lossy channels. In Proceedings of the 2000 IEEE Symposium on Security and Privacy, May 2000. [33] H. Wang and Q. Li. Efficient implementation of public key cryptosystems on mote sensors. In Proceedings of Interna- tional Conference on Information and Communication Se- curity (ICICS), pages 519–528, Dec. 2006. 12