Low-Power, Secure Routing for MICA2 Mote
Breanne Duncan and David Malan
TR-06-04
2004
Computer Science Group
Harvard University
Cambridge, Massachusetts
Low-Power, Secure Routing for MICA2 Mote
Breanne Duncan
David Malan
Harvard University
Harvard University
breanne@eecs.harvard.edu
malan@eecs.harvard.edu
Abstract
Current distributed sensor network platforms lack comprehensive lowpower routing techniques and efficient public key cryptography mechanisms. Reducing power for individual radio transmissions has not been
explored sufficiently. Popular sensor node platforms do not include
a mechanism for distributing and redistributing shared cryptographic
keys among nodes. This paper discusses a technique to tailor node
transmit power to the lowest practical level while maintaining reliable
network links and presents the first known implementation of elliptic
curve cryptography for sensor networks. Results demonstrate that dynamic radio output power scaling is effective in reducing node power
consumption by orders of magnitude in certain scenarios. Analysis suggests that secret-key cryptography is already viable on the UC Berkeley
MICA2 mote and public-key infrastructure may also be tractable despite the device’s limited memory.
1
Introduction
Wireless sensor networks have been proposed for such applications as habitat monitoring [7], structural health monitoring [34],
and vehicular tracking [49]. Of recent interest is their applicability to emergency medical care [65], a domain which demands
of any technology security and longevity alike. Unfortunately,
the state of the art offers weak, if any, guarantees of these needs.
The limited resources of current sensor node implementations
render them ill-suited for the most straightforward implementations of these needs. The UC Berkeley MICA2 mote [13] is
a low-power sensor device whose low cost can be attributed to
its lack of formidable resources. It offers an 8-bit, 7.3828MHz
ATmega 128L processor, 4 kilobytes (KB) of SRAM, 128 KB of
program space, and 512 KB of EEPROM. The Chipcon CC1000
transceiver it employs runs at a default of 433MHz. The baud
rate is 38.4K and the default, per-packet payload under TinyOS
is 29 KB. The mote’s size is dominated by its two AA batteries. These resources seem unfit for computationally expensive
or power-intensive operations. Explicit power saving techniques
are necessary to extend battery life as much as possible. Communication is much more expensive than computation on wireless sensor devices. For instance, the MICA2 radio component
requires 30% more power than the CPU [28]. Low-power radio
operation is necessary to carry out long-term monitoring with
sensor network deployments. If the radio and CPU are constantly active, battery power will be consumed in less than a
week. Device resource constraints often persuade researchers
to rule out public-key cryptography as an infrastructure for authentication, integrity, privacy, and security for sensor networks
[56, 64]. However, little empirical research has been published
on the viability of public-key infrastructure (PKI) for sensor networks.
This work pursues low-power, secure routing for the MICA2
mote. Our implementation of the Elliptic Curve Key Agreement Scheme, Diffie-Hellman 1 (ECKAS-DH1) [46], and an
analysis of another implementation of Public-Key Cryptography
Standard (PKCS) #3: Diffie-Hellman Key-Agreement Standard
[36], argues that public-key cryptography may be tractable on
the MICA2. Instrumentation of TinyOS suggests that secretkey cryptography is already tractable on the device. We also
present a power-saving approach orthogonal to existing energyaware routing techniques that attempt to minimize radio costs
by decreasing network traffic. Variable power radios such as the
Chipcon CC1000 can select a minimum output power level such
that messages are transmitted successfully to their destination,
possibly using less power than the default setting.
This paper explores our implementation of an ECC encryption mechanism and a technique for dynamically scaling radio
transmit power for the MICA2 mote. The first section deals with
low-power communication techniques. Section 2.1 outlines the
idea of adaptive radio power scaling as an energy-saving technique. The following subsection outlines its implementation.
Section 2.3 discusses results from experiments using the algorithm in a real sensor network testbed. The second section discusses public key cryptography on the MICA2 mote. Section
3.1 analyzes TinySec, TinyOS’s existing secret-key infrastructure based on SKIPJACK [10]. Section 3.2 redresses its shortcomings and examines one MICA2 implementation of DiffieHellman, based on the Discrete Logarithm Problem (DLP). Section 3.3 presents our implementation of Diffie-Hellman, based
on the Elliptic Curve Discrete Logarithm Problem (ECDLP).
Section 4 proposes directions for future research, while Section
5 explores related work. Section 6 concludes.
2
Dynamic Radio Power Scaling
Battery-powered wireless sensor devices are inherently constrained in terms of energy use. In many deployment scenarios,
nodes must last months or years without external energy sources
or battery replacement. For example, it is extremely impractical to periodically provide fresh batteries for thousands of environmental monitoring nodes scattered throughout a vast area.
Battery life must be maximized to extend the possible uses of
wireless sensor networks and reduce the burden of manual battery replacement.
The amount of power used for radio communication in wire-
less sensor nodes typically dominates that used in computation [29]. On the MICA2 mote, the Chipcon CC1000 radio
device uses approximately 10mA while transmitting at default
power (27mA at maximum), 11mA when receiving, and 8mA
in idle mode [28]. The 4MHz Atmel microcontroller central to
the processing unit consumes 8mA when active, but less than
15µA in sleep modes [45]. The Mica mote uses more than twice
as much current under radio transmission than when using the
CPU [44]. It is optimal to reduce the time the radio spends in
active mode. Although the ability to use the sleep or idle modes
mode depends on network and application behavior, one can assume that the device does not constantly communicate. MICA2
nodes that constantly run the radio, and thus the CPU for packet
processing, last only five to six days on their power supply.
While decreasing radio duty cycle is invaluable as an energy saving technique, reducing the cost of each transmission is
equally important. There exists a lower bound on the amount of
communication that a given sensor network deployment requires
running a certain application. Further improvement is achieved
only by minimizing the current used to power an active radio.
At the operating system level, strategies must be employed such
that nodes can communicate successfully using the minimum
output power necessary to reach one another.
Using variable power radios, nodes can adjust their power
to the lowest level practical to maintain reliable connections to
their neighbors. Radios with this ability are standard many sensor node devices, such as the Mica mote family. The Chipcon
Ultra Low Power Transceiver on the Mica motes support a wide
range of output power levels for transmission. In sufficiently
dense networks, nodes may be located in close proximity to one
another. This attribute may allow for a large portion of the devices to lower their radio output power and still communicate
effectively with neighboring nodes. The bulk of existing powersaving techniques and protocols do not take variable radio output
power strategies into account.
2.1
Adaptive Radio Power Scaling
The default output power of a given sensor node radio may be
more than necessary to reliably transmit packets to a given destination. A mote can self-configure its radio power based on a
comparison between target link quality and its perceived radio
channel quality to the next-hop packet destination. Under the
assumption that radio output power and link quality are related,
decreasing power will decrease quality and increasing power
will increase quality. A node uses the feedback from periodic
link quality measurements to determine if more modification
is necessary. Frequent link quality updates allow output power
to adapt to changing environmental conditions and node movement.
Link quality can be measured a number of different ways.
Appropriate measurement depends on the traffic characteristics
of a given application under the behavior of a certain network
stack. Signal strength can be used an an implicit indicator of
link quality. Also, nodes can explicitly report to their neighbors
statistics on the number of packets successfully received from
each node in a given time period.
Sensor network operators or application developers may establish a target reliability representing acceptable link quality.
This metric can be in terms of a percentage of packets received
by a single-hop destination node. For example, it may be known
that 30% general packet loss is acceptable and does not adversely effect performance of a given application.
Under the adaptive power scheme, a node changes its radio
power according to observed packet loss. If link quality is higher
than necessary, representing that more packets can be lost before
performance is affected, the radio decreases its power. Under
circumstances in which environmental obstacles and ambient
noise do not heavily impact link quality, this allows link quality
and radio range to decrease to the specified target while saving
power. If packet loss is unacceptably high, the radio increases its
power in attempt to improve link quality and allow for a larger
number of successful transmissions. To prevent heavy oscillations due to frequent increase and decrease in power levels, a
range of acceptable packet loss values can be implemented such
that the node does not adjust its radio power within this range.
Under the adaptive scheme, node-to-node link quality optimally will be comparable to that at the default radio power, but
with reduced energy consumption. Nodes close to their neighbors may lower their power significantly and still maintain as
reliable a connection. Those nodes that have more difficulty
reaching a neighbor with adequate signal strength may boost
their output power above the default in attempt to improve link
quality. Thus overall network link quality may improve, while
the power consumption across the network may be equivalent to
that of a fixed output power scenario.
2.2
Implementation
Ad-hoc, multi-hop routing protocols are well suited for typical
sensor network. The Surge routing protocol [19] included in the
TinyOS package allows sensor nodes to establish contact with
a single base station, or sink node, through multiple hops. The
experimental application paired with Surge transmits to the sink
node light readings taken from a mote’s sensor board every 8
seconds. This implementation provides a good basis for emulating a real data collection network using an ad-hoc routing
protocol. It does not include any optimizations such as data aggregation or computation at intermediary nodes. Because of its
simplicity and focus on transport only, it is an optimal package
with which to test network communication behavior under the
adaptive power scheme.
2.2.1
The Surge Routing Protocol
The Surge algorithm selects routes from a source node to the
base station. The route creation phase forms a spanning tree
rooted at the sink node. Each mote forwards packets only to its
parent in the tree. A parent is selected from neighboring nodes
with which a node is able to communicate, on the basis of link
quality and hop count to the sink node. Parents may change
dynamically over time based on link quality between nodes.
Each mote beacons a link quality metric for each of its neighbors every 20.5 seconds at default. The value transmitted is the
number of packets the node has received, or overheard being
transmitted to another node, from that neighbor. The originating
node compares the number of packets it has sent to the information on packets received by a neighbor to determine packet
receipt ratios. The link quality estimate is directional in that it
represents the condition of the path from the child to the parent
node, but not vice versa.
2.2.2
Self-Configuring Radio Output Power
The adaptive power scaling algorithm is implemented as a code
module in the TinyOS platform, written in the nesC language.
It is situated between the existing Surge routing protocol and
the Chipcon CC1000 radio control stack. Surge uses the adaptive power module API as an interface to lower level radio commands. With a call to the module’s AdjustPower() function,
radio output power is modified according to the current Surge
link quality estimate between a node and its parent. This function is called after an updated link quality estimate is received
from a node’s parent. If a node does not currently have a parent,
it continues broadcasting light reading messages as defined by
the Surge protocol, but does not modify its radio output power.
The implementation uses high and low link quality thresholds to adjust radio output power. These values have been chosen somewhat arbitrarily to designate good packet transmission
rates reasonable for wireless links. Thresholds and other parameters that effect algorithm performance are displayed in Table 2.2.2. When the adaptive power algorithm is used, each node
starts transmission at the default power level (1mW). An initial
wait period is used to allow the network to build a routing tree
to the base station before nodes adjust their radio power. Testing
showed that nodes are likely to find a parent, if they are to find
one under current conditions, before 45 packets are forwarded.
After adjusting its power level, a node may not adjust its power
level for 40 seconds to give time for link quality to react accordingly before making another change. Otherwise a node may
change its power haphazardly based on inaccurate link quality
information.
Parameter
Value
Initial Radio Output Power
Low Link Quality Threshold
High Link Quality Threshold
Initial Wait Period
Post-Adjustment Wait Period
1mW
67%
78%
45 packets
40 sec
Table 1: Adaptive Algorithm Experimental Parameters.
2.3 Results
2.3.1 Testbed
The experimental testbed for this project is “moteLab”, a distributed sensor network testing environment in the Harvard Division of Engineering and Applied Sciences building. Currently
the network consists of 26 MICA2 motes with attached sensor
boards. Each mote is powered by a wall outlet. A node can send
data packets from its UART through the building’s Ethernet to
be collected by a central moteLab server. These packets feed
into an SQL database. Users can program nodes individually
or in groups to run given applications. One can specify packet
formats for the central server to collect.
The MICA2 mote uses the Chipcon SmartRF CC1000 single
chip very low power transceiver, which has 23 different power
levels [8]. Output power ranges from 1µW to 10 mW at the
433MHz frequency setting. However, power levels are not distributed evenly across this range. The default output power is
1mW, level 14. Available power levels are listed in [8].
All experiments were carried out using 17 moteLab MICA2
motes, the maximum number available at some points in the testing period. 12 nodes are on the second floor, 3 on the third, and
2 on the first floor. Each mote ran the Surge light sensing application using the adaptive power component. Test periods lasted
an hour. Mote #4, on the second floor, acted as the Surge base
station node. It was chosen for this role as an arbitrary node on
the physical edge of the network, which is a common location
for the data sink node.
Time scales presented here are in terms of the sequence numbers assigned to packets arriving at the moteLab server. Thus
one unit as displayed on the graph does not correspond exactly
to one unit of physical time, but time progression is preserved.
The power axis in Figures 1 through 2 represents approximate
radio output power at a given time.
2.3.2
Radio Channel Quality
The experimental phase sought to determine radio channel quality between pairs of nodes under the adaptive scheme. For data
collection purposes, a node reports link quality data to the UART
each time it forwards or creates a Surge light reading packet. As
described in Section 2.2.1, this metric represents the percentage
of packets successfully transmitted from a node to its parent.
Analyzing each node’s reported link quality over time shows the
quality of the radio channel in response to changes in source
node’s output power level. Results varied greatly in terms of
number of parent changes and link quality levels across time.
Many nodes adapted their radio output power to a lower level
without compromising connection reliability. Other nodes’ link
quality oscillated greatly over time.
Optimal Response
Some nodes, especially those in close proximity to their chosen
parent, respond well to the adaptive power scaling algorithm.
Such motes can tune their power to a level well below the default without link quality degradation. An example is shown
in Figure 1. Packets are transmitted to the parent node at low
power, but are successfully received due to favorable environmental conditions and parent proximity. For instance, mote #7
uses 8 times and 99 times less power under the adaptive strategy
than under power levels 14 (default) and 4, respectively. However, packet reception rates are excellent in each case. The adaptive technique yields a 91% packet reception rate, while the two
other levels yield 93%, a negligible difference.
Link Quality Oscillations
As certain nodes lower their output power, link quality decreases
sharply as a result. In many cases the packet reception beaconed by a parent node notifies the child of a link quality drop of
greater than 50% as compared with the last broadcast sent. As
shown in Figure 2, the given node cannot respond to the degradation until after it has been reported. Thus it is unable to prevent
a drop of such great magnitude.
Large oscillations in radio channel quality occur as a result
of this process. The child node reacts to the link quality degra-
energy. It was conjectured that perceived drops in link quality were often caused by some link quality beacons simply not
reaching the node. Thus the node would receive a high link quality estimate from its parent and later receive a very low value,
missing those in between that would presumably have intermediary values. To test this theory, nodes beaconed all link quality
estimates at the default power level, but continued to send light
reading packets at the radio power specified by the adaptive algorithm. In theory, link quality values would reach the child
nodes, who could increase their power after a smaller link quality reduction. However, testing proved this method ineffective,
disproving the conjecture.
Figure 1: Optimal Dynamic Power Scaling Behavior. Some nodes
are able to decrease their power use immensely with little or no link
quality degradation.
dation by increasing power sufficiently. Link quality increases
immediately as a result and the node once again calculates that
it may decrease its out power level. Upon decreasing output
power, link quality drops substantially and the process repeats.
In the oscillatory case, radio output power is usually less under the adaptive algorithm than at the default power level. However, if a lower fixed power level is used, approximately the same
amount of power may be consumed while preventing the oscillations that decrease overall link quality across time. For example,
in an adaptive run, node 13 has 67% link quality with its parent.
When using power level 5 constantly, however, it increases its
connection quality by 21% and decreases power use by 12%.
Deep oscillations are not present.
Theoretically, a node may prevent oscillations by keeping its
radio output power above the level that last caused a sharp drop
in link quality. A node can calculate the difference between old
and new link quality beacon values. If the quality has decreased
significantly, a node sets its minimum power level at one above
the current level. In theory this should prevent future oscillations, assuming the node is relatively stationary and environmental conditions do not change drastically. If the node changes
parents under the Surge protocol, the minimum is reset to the
radio’s physical minimum output power and the process repeats.
A node can adapt its minimum power level to each parent. In a
mobile network, the minimum may be reset at intervals to ensure
it is properly configured to current network conditions. In a few
cases, this procedure worked successfully. However, all tests did
not produce favorable results. This may be due to variances in
link quality that occur regardless of a node’s output power level
(see Section 2.3.4).
2.3.3
Base Station Packet Reception
Because the Surge protocol facilitates single base station data
collection, the percentage of packets that arrive at the sink node
gives an indication of network link quality and connectivity. Table 2.3.3 gives numerical data for comparing adaptive algorithm
performance to fixed power runs with similar power use. Tests
were distributed across different times of day during varying human activity levels in the building. Energy statistics given here
represent the summation of radio output power for each packet
transmission. This metric is summed across an intermediary
time interval, 2000≤t≤4000. Omitting an initial time period
helps to assess the adaptive algorithm after setup has occurred.
Nodes use the default power during the startup phase, which increases power use initially, but helps establish a routing table
before nodes adjust their radio power level. Log base 10 is used
for plotting power values.
Figure 2: Link Quality Oscillations. Cycles of link quality degradation and improvement result from the adaptive output power algorithm
for some nodes.
Several techniques may help dampen large link quality oscillations. Nodes can send Surge link quality beacons more frequently. Intermediary link quality estimates may show a more
graceful degradation to which nodes can react earlier, preventing
immense link quality drops. However, transmitting this information more often requires a higher radio duty cycle and thus more
Table 2.3.3 shows that the adaptive algorithm is competitive
with a fixed power level strategy. However, it frequently performs slightly worse as compared to fixed power levels with
nearly equivalent power consumption. Under the current adaptive algorithm implementation, certain internode connections
perform poorly, as discussed in Section 2.3.2. This may hinder sink node packet collection significantly. Whole network
performance, in terms of packets received, drops. Thus measuring adaptive algorithm performance through base station packet
reception for all nodes may be misleading.
Power Level
% Packets Received
Power Use (mW)
3
4
adaptive1
adaptive2
adaptive3
5
adaptive4
adaptive5
adaptive6
6
adaptive7
7
8
adaptive8
adaptive9
9
14
19
0%
55.0%
63.8%
73.2%
74.7%
78.2%
73.0%
63.4%
52.5%
81.6%
74.2%
77.3%
66.5%
75.7%
74.7%
66.5%
78.1%
79.8%
210
376
466
504
570
593
604
696
719
744
773
941
1177
1220
1245
1488
4707
18825
Figure 3: Packet Reception Using Dynamic Power Scaling.
Table 2: Base Station Packet Reception and Power Use for Selected
Output Power Levels and Adaptive Algorithm Tests.
Route-Level Analysis
Viewing connection quality on the level of a mote’s path to the
base station provides better insight to individual node performance. This mid-level approach keeps node performance in
the context of the routing tree, where ancestor link quality determines base station packet reception. The behavior of both
child and parent nodes changing power is taken into account,
while leaving out links completely unrelated to a node’s path to
the base station. However, links on the node-to-sink route that
perform poorly under the adaptive strategy still affect sink node
packet collection.
Figures 3-5 compare route-level performance and power use
under the adaptive power scaling algorithm to a lower, fixed
power level and the default output power. A test run of each
power level performing relatively well was chosen. All nodes
use less power than the default when dynamically scaling their
radio power. However, the base station receives a smaller percentage of packets for some nodes. Motes 1, 2, 13, and 17 fall
in this category. While path quality is degraded slightly, power
savings are obvious for these nodes. The success of mote 14 in
the adaptive graph can be attributed to favorable environmental
conditions allowing the mote to find a parent. When compared
to fixed power level 6, some nodes using the adaptive scheme
expend more power per packet received and some consume less
power. Nodes 2, 7, and 11 have higher base station packet reception per unit of power use in the dynamic power scaling scheme.
However, nodes 1, 5, 12, and 16 benefit from using a fixed low
power under this metric. Under the adaptive technique, more
packets are transmitted successfully from these nodes to the base
station. However, this increased throughput comes at the cost of
significantly more power. If a target link quality is to be met,
however, such a strategy prevails above using a fixed, networkwide, lower power level.
Figure 4: Packet Reception at Power Level 6.
Figure 5: Packet Reception at Default Power.
2.3.4
Variance
Even at a fixed power level, quality of a single radio channel can vary greatly in a stationary, undisturbed network. The
standard deviation of network connectivity was extremely high
across several runs of the Surge application at a constant power
level. During four different hour-long tests at power level 5,
26%, 41%, 48%, 67%, and 78% of packets were delivered to the
base station on each respective run. The 26% and 67% datasets
were gathered at nearly the same time of day. The 41% and 78%
figures were gathered during nighttime testing.
The time at which an experiment runs affects network quality. Daytime experiments are affected by human activity in an
indoor setting and sunlight. Device interference may also affect measurements. Under the dynamic power scaling strategy,
nodes conjunctively delivered an average of 18% more packets
to the base station at night. Like experiments at fixed power level
6 showed that an average of 18% more packets were delivered at
night as well. Three tests were taken during each time period for
each power use strategy. For this study, every effort was made
to run comparative tests at a similar time of day.
We ran several tests to compare the performance of the adaptive algorithm with and without TinySec encryption. Results
were inconclusive, most likely due to the natural variance in radio channel quality.
3
3.1
Public Key Cryptography on the MICA2
SKIPJACK
TinyOS currently offers the MICA2 access control, authentication, integrity, and confidentiality through TinySec, a link-layer
security mechanism based on SKIPJACK in CBC mode. An 80bit symmetric cipher, SKIPJACK is the formerly classified algorithm behind the Clipper chip, approved by the National Institute
for Standards and Technology (NIST) in 1994 for the Escrowed
Encryption Standard [50]. Through use of a shared, group key
does TinySec provide for access control; with message authentication codes does it provide for messages’ authentication and
integrity; and with encryption does it provide for confidentiality.
Unfortunately, TinySec’s reliance on shared keys render the
mechanism particularly vulnerable to attack. After all, the
MICA2 is intended for deployment in sensor networks. For reasons of cost and logistics, long-term physical security of the devices is unlikely. Compromise of the network, therefore, reduces
to compromise of any one node.
But the mechanism is not without value. After all, it does offer an 80-bit key space, known attacks on which involve 279 operations on average (assuming SKIPJACK isn’t reduced from 32
rounds [4]). And, as packets with TinySec include a 4-byte message authentication code (MAC), the probability of blind forgery
is 2−32 . This security comes at a cost of just five bytes: whereas
transmission of some 29-byte plaintext and its cyclic redundancy
check (CRC) requires a packet of 36 bytes, transmission of that
plaintext’s ciphertext and MAC under TinySec requires a packet
of only 41 bytes, as the mechanism borrows TinyOS’s fields for
Group ID (TinyOS’s weak, default mechanism for access control) and CRC for its MAC.
Meanwhile, the impact of TinySec on the MICA2’s performance appears reasonable. On first glance, it would appear
Median
Mean
Standard Deviation
Standard Error
without TinySec
72,904 µs
74,844 µs
24,248 µs
767 µs
with TinySec
74,367 µs
76,088 µs
24,645 µs
779 µs
Difference
1,463 µs
1,244 µs
n/a
1,093 µs
Figure 6: Transmission time for the MICA2, computed
over 1000 trials, where transmission time is defined here
as the time elapsed between SendMsg.send(·,·,·) and
SendMsg.sendDone() for the transmission of a 29-byte,
random payload.
that TinySec adds under 2 ms to a packet’s transmission time,
as per Figure 6, and under 5 ms to a packet’s round-trip time
(for packets echoed back to their source by some neighbor), as
per Figure 7. However, the apparent overhead of TinySec, as
suggested by transmission times, is nearly the data’s root mean
squared. Though the round-trip times exhibit less variance, additional benchmarks seem in order for TinySec’s accurate analysis. Figure 8, then, offers results of yet less variance from finer
instrumentation of TinySec: encryption of a 29-byte, random
payload requires 2,190 µs on average, and computation of that
payload’s MAC requires 3,049 µs on average; overall, TinySec
adds 5, 239 ± 18 µs to a packet’s computational requirements. It
appears, then, that some of those cycles can be subsumed by delays in scheduling and medium access, at least for applications
not already operating at full duty. Figure 9, the results of an
analysis of the MICA2’s maximal throughput, without and with
TinySec enabled, puts the mechanism’s computational overhead
for such applications into perspective: on average, TinySec may
lower maximal throughput of acknowledged packets by only
0.29 packets per second.
Of course, TinySec’s encryption and authentication does
come at an additional cost. Per Figure 13, TinySec adds 3,352
B collectively to an application’s data and text segments, 454 B
to an application’s BSS segment, and 92 B to an application’s
maximal stack size during execution. For applications that don’t
require the entirety of the MICA2’s 128 KB of program memory
and 4 KB of SRAM, then, TinySec seems a viable addition.
Unfortunately, the problem of shared keys remains. Pairwise keys among n nodes would certainly provide some defense
against compromises of individual nodes. But n2 80-bit keys
would more than exhaust a node’s SRAM for n as small as 20.
A more sparing use of shared keys is in order, but secure, dynamic establishment of those keys, particularly for networks in
which the positions of sensors may be transient, requires a chain
or infrastructure of trust. In fact, the very design of TinySec requires as much for rekeying as well. Though TinySec’s 4-byte
initialization vector (IV) allows for secure transmission of some
message 232 times, that bound may be insufficient for embedded
networks whose lifespans require larger IVs. Needless to say,
TinySec’s reliance on a single, shared key prohibits the mechanism from securely rekeying itself.
Fortunately, these problems of shared keys’ distribution and
redistribution are redressed by public-key infrastructure. The
sections that follow thus explore that infrastructure’s design and
implementation on the MICA2.
Figure 9: Actual throughput versus desired throughput for acknowledged (ACKed) and unacknowledged (unACKed) transmissions
between a sender and a receiver, averaged over 1000 trials per level of desired throughput, where desired throughput is the rate at
which calls to SendMsg.send(·,·,·) were scheduled by Timer.start(·,·). ACKed actual throughput is the rate at which 29byte, random payloads from a sender were received and subsequently acknowledged by and an otherwise passive recipient. UnACKed
actual throughput is the rate at which the sender actually sent such packets, acknowledged or not (i.e., the rate at which calls to
SendMsg.send(·,·,·) were actually processed). For clarity, where ACKed and unACKed throughput begins to diverge are points
labelled with values for actual throughput.
Median
Mean
Standard Deviation
Standard Error
without TinySec
145,059 µs
147,044 µs
30,736 µs
972 µs
with TinySec
149,290 µs
152,015 µs
31,466 µs
995 µs
Difference
4,231 µs
4,971 µs
n/a
1,391 µs
Figure 7: Round-trip time for the MICA2, computed
over 1000 trials, where round-trip time is defined here
as the time elapsed between SendMsg.send(·,·,·) and
ReceiveMsg.receive(·) for the transmission of a 29-byte,
random payload and subsequent receipt of the same.
Median
Mean
Standard Deviation
Standard Error
encrypt()
2,189 µs
2,190 µs
3 µs
0 µs
computeMAC()
3,038 µs
3,049 µs
281 µs
9 µs
Sum
5,233 µs
5,239 µs
281 µs
9 µs
Figure 8: Computational overhead of TinySec, computed over
1000 trials, where encrypt() denotes the time required to encrypt a 29-byte, random payload, and computeMAC() denotes
the time required to compute that payload’s MAC.
Memory Overhead of TinySec
ROM
RAM
Stack
without TinySec
9,224 B
384 B
105 B
with TinySec
16,576 B
838 B
197 B
Difference
7,352 B
454 B
92 B
Figure 10: Results from instrumentation of CntToRfm, an application which simply broadcasts a counter’s values over the
MICA2’s radio. Here and hereafter, ROM is defined as application’s data and text segments; RAM is defined here as application’s BSS segment; stack is defined here as the maximum of the
application’s stack size during execution.
3.2
DLP
With the utility of SKIPJACK-based TinySec thus motivated
and the mechanism’s costs exposed, this work turns to DLP, on
which Diffie-Hellman [15] is based, as the foundation for one
possible answer to the MICA2’s problems of shared keys’ distribution and redistribution. DLP typically involves recovery of
a x ∈ Zp , given p, g, and g x (mod p), where p is a prime integer
and g is a generator of Zp . By leveraging the presumed difficultly of DLP, Diffie-Hellman allows two parties to agree, without prior arrangement, upon a shared secret, even in the midst of
eavesdroppers, with perfect forward secrecy. Authenticated exchanges are possible with the station-to-station protocol (STS)
[16], a variant of Diffie-Hellman.
With a form of Diffie-Hellman, then, could two nodes thus establish a shared secret for use as TinySec’s key. At issue, though,
is the cost of such establishment on the MICA2.
Inasmuch as the goal at hand is distribution of 80 bits of security, any mechanism of exchange should provide at least as
much security. According to NIST, then, the MICA2’s implementation of Diffie-Hellman should employ a modulus, p, of at
least 1024 bits and an exponent (i.e., private key), x, of at least
160 bits [52], per Figure 11.
Unfortunately, on an 8-bit architecture, computations with
160-bit and 1024-bit values are not inexpensive. However, modular exponentiation does not appear to be intractable on the
MICA2. Figure 12 offers the results of instrumentation of one
implementation of Diffie-Hellman for the MICA2 [63]: computation of 2x (mod p), where x is a 160-bit integer and p is a
well-known, 768-bit prime, requires 31.0 s on average; computation of the same, where p is a well-known, 1,024-bit prime,
requires 54.9 s. Assuming a node need only be rekeyed, on average, every 232 packets (at which time its initialization vectors
are exhausted), this computation and that for y x (mod p), where
Bits of Security
80
112
128
192
256
Modulus
1024
2048
3072
7680
15360
Exponent
160
224
256
384
512
Figure 11: Strength (i.e., bits of security) of Diffie-Hellman for
various moduli and exponents. [52]
ROM
RAM
Stack
768-Bit Modulus
2186 B
467 B
136 B
1,024-Bit Modulus
2234 B
595 B
136 B
Figure 13: Memory usage of an implementation of modular exponentiation on the MICA2 which computes 2x (mod p), where
x is a 512-bit integer and p is a well-known prime.
Average Current
Total Time
Total CPU Utilization
Total Energy
1,024-Bit Modulus, 160-Bit Exponent
7.3 mA
54.1144 s
3.9897 × 108 cycles
1.185 J
Figure 14: Power consumption of one execution of an implementation of modular exponentiation on the MICA2 which computes 2x (mod p), where x is a 512-bit integer and p is a wellknown prime.
3.3
Figure 12: Time required to compute 2x (mod p), where p is a
well-known prime, on the MICA2.
y is another node’s public key, may be acceptable costs for an
application’s longevity.
Of course, these computations require that the MICA2 operate at full duty cycle, the power requirements of which may
be unacceptable. After all, although the theoretical lifetime of
the MICA2, powered by two AA batteries, is as many as twenty
years at minimal duty cycle (assuming no self-discharge), that
lifetime decreases to just a few days at maximal duty cycle. Figure 14 reveals the power consumption of modular exponentiation
on the MICA2: computation of 2x (mod p) appears to require
1.185 J. Roughly speaking, a mote could devote its lifetime to
51,945 such computations.1
Unfortunately, these computations require not only time but
also memory. Mere storage of a public key requires as many
bits as is the modulus in use. Accordingly, n 1,024-bit keys
would more than exhaust a node’s SRAM for n as small as
32. Although a node is unlikely to have—or, at least, need—
so many neighbors or certificate authorities for whom it needs
public keys, Diffie-Hellman’s relatively large key sizes are unfortunate in the MICA2’s resource-constrained environment.
But, through elliptic curve cryptography (ECC), 80 bits of
security may be available to the MICA2 at a lower price than
1,024 bits: 163 bits. Indeed, elliptic curves are thought to offer computationally equivalent security with remarkably smaller
key sizes insofar as subexponential algorithms exist for DLP
[1, 20, 57, 37], but no such algorithm is known or thought to
exist for ECDLP over certain fields [18, 11].
1 According to [9], Energizer No. E91, an AA battery, offers an average
capacity of 2,850 mAh. It follows that 2 × 2,850 mAh × 3600 s/h ÷ (7.3 mA
× 54.1144 s) ≈ 51,945 modular exponentiations may be possible with two AA
batteries on the MICA2.
ECDLP
Elliptic curves offer an alternative foundation for the exchange
of shared secrets among eavesdroppers with perfect forward secrecy. ECDLP, on which ECC [47, 32] is based, typically involves recovery over some Galois (i.e., finite) field, F, of k ∈ F,
given (at least) k · G, G, and E, where G is a point on an elliptic
curve, E, a smooth curve of the long Weierstrass form
y 2 + a1 xy + a3 y ≡ x3 + a2 x2 + a4 x + a6 ,
(1)
where ai ∈ F. Of particular interest to cryptographers are Fp and
F2p , where p is prime, as neither appears vulnerable to subexponential attack [18]. Though once popular, extension fields of
composite degree over F2 are vulnerable by reduction with Weil
descent [17] of ECDLP to DLP over hyperelliptic curves [18].
But F2p , a binary extension field, remains popular among implementations of ECC, especially those in hardware, inasmuch
as it allows for particularly space- and time-efficient algorithms.
In light of its applications in coding, the field has also received
more attention in the literature than those of other characteristics
[53].
It is with this history in mind that I proceeded with my first,
and, later, second, implementation of ECC over F2p toward an
end of smaller public keys for the MICA2. Background for these
implementations’ designs now precedes their results.
3.3.1
Elliptic Curves over F2p
It turns out that, over F2p , Equation 1 simplifies to
y 2 + xy ≡ x3 + ax2 + b,
where a, b ∈ F2p , upon substitution of a21 x +
a31 y
a21 a4 +a23
a31
(2)
a3
a1
for x and
+
for y, if we consider only nonsupersingular
curves, for which a1 6= 0. It is the set of solutions to Equation 2 and, more generally, Equation 1 (i.e., the points on E),
that actually provides the foundation for smaller public keys
on the MICA2. All that remains is specification of some algebraic structure over that set. An Abelian group suffices but
requires provision of some binary operator offering closure, associativity, identity, inversion, and commutativity. As suggested
by ECDLP’s definition, that operator is to be addition.
The addition of two points on a curve over F2p is defined as
(x1 , y1 ) + (x2 , y2 ) = (x3 , y3 ), where
(x3 , y3 ) = (λ2 + λ + x1 + x2 + a, λ(x1 + x3 ) + x3 + y1 ),
where λ = (y1 + y2 )(x1 + x2 )−1 . However, so that the group is
Abelian, it is necessary to define a “point at infinity,” O, whereby
O + O = O,
(x, y) + O = (x, y), and
(x, y) + (x, −y) = O.
Doubling of some point, meanwhile, is defined as (x1 , y1 ) +
(x1 , y1 ) = (x3 , y3 ), where
(x3 , y3 ) = (λ2 + λ + a, x21 + (λ + 1)x3 ),
where λ = x1 + y1 x1−1 , provided x1 6= 0.
With these primitives is point multiplication also possible
[21]. With an algebraic structure on the points of elliptic curves
over F2p thus defined, implementation of a cryptosystem is now
possible.
3.3.2
ECC over F2p
Implementation of ECC over F2p first requires a choice of basis for points’ representation, insofar as each a ∈ F2p can be
Pm−1
written as a = i=0 ai αi , where ai ∈ {0, 1}. Thus defined, a
can be represented as a binary vector, {a0 , a1 , . . . , ap−1 }, where
{α0 , α1 , . . . , αp−1 } is its basis over F2 . Most common for bases
over F2 are polynomial bases and normal bases, whereby the
former tends to be more efficient in software [3], though dual,
triangular, and other bases exist. Admittedly, polynomial bases
are also simpler conceptually and, thus, daresay, an apt choice
for a first implementation of ECC on the MICA2.
When represented with a polynomial basis, each a ∈ F2p corresponds to a binary polynomial of degree less than p, whereby
a = ap−1 xp−1 + ap−2 xp−2 + · · · + a0 x0 , where, again, ai ∈
{0, 1}. Accordingly, each a ∈ F2p will be represented in the
MICA2’s SRAM as a bit string, ap−1 ap−2 · · · a0 . All operations on these elements are performed modulo an irreducible reduction polynomial, f , of degree p over F2 , such that f (x) =
Pp−1
xp + i=0 fi xi , where fi ∈ {0, 1} for i ∈ {0, 1, . . . , p − 1}.
Typically, if an irreducible trinomial, xp + xk + 1, exists over
F2p , then f (x) is chosen to be that with smallest k; if no
such trinomial exists, then f (x) is chosen to b a pentanomial,
xp + xk3 + xk2 + xk1 + 1, such that k1 is minimal, k2 is minimal
given k1 , and k3 is minimal given k1 and k2 [40].
In polynomial basis, addition of two elements, a and b is defined as a + b = c, where ci ≡ ai + bi (mod 2) (i.e., a sequence
of XORs). Multiplication of a and b, meanwhile, is defined as
Pp−1
Pp−1
a · b = c, where c(x) ≡ ( i=0 ai xi )( i=0 bi xi ) (mod f (x)).
With a polynomial basis selected, all that remains is execution
of this design on the MICA2.
3.3.3
EccM 1.0
Version 1.0 of EccM, my first attempt at an implementation of
ECC on the MICA2 in the form of a TinyOS module, is a partial
success. Designed for execution on a single mote, this version
of EccM first selects a random curve in the form of Equation 2,
such that a = 0 and b ∈ F2p . It next selects from that curve a
random point, G ∈ F2p × F2p . It further selects at random some
k ∈ F2p , the node’s private key. Finally, it computes k · G, the
node’s public key. The running time of these operations is then
transmitted to the node’s UART.
Based upon code by Michael Rosing [58], EccM 1.0 employs
a number of optimizations. Addition of points is implemented
in accordance with [59]; multiplication of points follows [33];
conversion of integers to non-adjacent form is accomplished as
in [62]. Generation of pseudorandom numbers, meanwhile, is
achieved with [42].
On first glance, the results, offered in Figure 15, are encouraging, with 33-bit keys requiring a running time of just 1.776
s. Unfortunately, for larger keys (e.g., 63-bit), the module fails
to produce results, instead causing the mote to reset cyclically.
Though this behavior appears to be undocumented [12], it seems
the result of stack overflow. Although none of EccM’s functions
are recursive, several utilize a good deal of memory for multiword arithmetic. In fact, Figure 16 offers the results of an analysis of EccM 1.0’s usage of SRAM. Unfortunately, for keys of
63 bits or more, EccM 1.0 exhausts the MICA2’s SRAM.
Insofar as optimizations of EccM 1.0 fail to render generation
of 63-bit keys possible, an overhaul of this first implementation
proves necessary. With EccM 2.0 do I achieve my goal of 163bit security.
3.3.4
EccM 2.0
Based upon the design of Dragongate Technologies Limited’s
Java-based jBorZoi 0.9 [39], EccM 2.0 similarly implements
ECC but with greater success than EccM 1.0. Again a TinyOS
module, EccM 2.0 selects for a node at random, using a polynomial basis over F2p , a private key, thereafter computing with a
curve and base point recommended by NIST the node’s public
key, the running time of which is then transmitted to the node’s
UART. In this version, multiplication of points is achieved with
Algorithm IV.1 in [5]. Multiplication of elements in F2p , meanwhile, is implemented as Algorithm 2 in [25], while inversion is
implemented as Algorithm 8 in the same.
Beyond rendering 163-bit keys feasible, EccM 2.0 also redresses another shortcoming in 2.0. Inasmuch as 1.0 selects
curves at random, it risks (albeit with exponentially small probability) selection of supersingular curves which are vulnerable
to sub-exponential attack via MOV reduction [43] with indexcalculus methods [60]. EccM 2.0 thus obeys NIST’s recommendation for ECC over F2p [51].
Unfortunately, although EccM 2.0 employs less memory than
EccM 1.0, per Figure 17, its running time is disappointing. The
time required to generate a private and public key pair with this
module, averaged over 100 trials, is 466.9 s, with a standard
deviation of 16.1 s. Such performance is likely unacceptable
for most applications. Moreover, the module’s consumption of
power is significant, as per Figure 18: generation of the node’s
private key requires approximately 5.7 mJ, whereas computation
of the node’s public key requires approximately 12.6402 J. In
contrast with its calculation of 2x (mod p), it appears the MICA2
could devote its lifetime to, approximately, just 4,868 of these
computations.2
2 This
estimate follows from 2 × 2,850 mAh × 3600 s/h ÷ (8.8 mA ×
ROM
RAM
Stack
163-Bit Key
43,286 B
820 B
81 B
Figure 17: Memory usage of EccM 2.0.
Average Current
Time
CPU Utilization
Energy
Figure 15: Running time for EccM 1.0. Points are labelled with
running times. For larger keys (e.g., 63-bit), the module failed
to produce results.
Figure 16: Memory usage of EccM 1.0. Keys of 63 bits or more
exhaust the MICA2’s 4,096 KB of SRAM.
With ECC thus implemented on the MICA2 in EccM 2.0,
future work nonetheless remains, the most obvious of which is
reduction of this implementation’s running time.
4
Future Work
Future research will expand the cryptographic options and improve upon dynamic power scaling for the MICA2 sensor node.
This work provides the foundation for what will hopefully become TinyCrypt, a cryptographic library for the MICA2 with
support for symmetric and asymmetric keys. Many strategies
may improve the effectiveness of the adaptive power scaling algorithm presented here. A variety of different adaptive algorithms may be useful. Selecting which to employ depends on
the characteristics of the radio channel link between two nodes.
Also, the interaction between the underlying Surge routing protocol and the dynamic output power module needs to be explored. The algorithm may benefit from certain changes of the
Surge protocol.
Nodes react very distinctly under the algorithm depending
on location and environmental characteristics, among other variables. Nodes with different link quality characteristics may need
to use different dynamic output power configuration strategies.
216.597 ms + 8.5 mA × 495.70 s) ≈ 4,868.
Private-Key
8.8 mA
216.597 ms
1.597 × 106 cycles
5.7 mJ
Public-Key
8.5 mA
495.70 s
3.65 × 109 cycles
12.6402 J
Figure 18: Power consumption EccM 2.0’s generation of one
private key and one public key.
Optimally nodes could characterize the observed radio channel
behavior as being a certain type of predefined pattern. Each case
would use a unique adaptive algorithm. For instance, a node
far from its neighbors should not adjust its power in the same
manner as a node with oscillating radio channel quality. A node
unable to find a parent may not benefit from simply constantly
increasing its power level until one is found. Perhaps it will
find a parent after some time by periodically sending out special
beacons at a high power level to probe for available neighbors
without constantly expending power. A node displaying an oscillatory link quality pattern may benefit from certain techniques
in addition to setting a minimum power level after quality drops
significantly. Sending link quality beacons more frequently may
decrease oscillations. This strategy, and the tradeoff between the
resultant link quality improvement and the extra power use, has
not been investigated.
Because the adaptive power scaling algorithm was added to
an existing routing protocol, performance is dependant on the
characteristics of the Surge protocol. Modifying the basic protocol to work efficiently in conjunction with the algorithm may
help improve network communications. In the Surge algorithm,
the number of parent link quality estimates received in a given
time period may have an effect on the link quality metric itself.
If the child receives less than 40% of the beacons, the link quality value is halved. Default adaptive algorithm reaction to this
drop may not be appropriate. Increasing transmit power on the
side of the child node does not improve parent beacon reception.
Perhaps a new parent search should be initiated or power should
be held constant as to not waste power on a link marred by adverse environmental conditions. Moreover, link quality drops
resulting from oscillations or other side effects of the adaptive
algorithm may cause parent changes. More investigation may
show that the parent selection strategy needs to change with the
addition of the adaptive algorithm to Surge.
EccM 3.0 will incorporate a number of optimizations into the
source of EccM 2.0. Perhaps of greatest benefit will be 3.0’s
version’s re-write in AVR assembly of the 2.0’s multi-precision
arithmetic routines, to which many of the module’s other functions ultimately reduce. Like C, NesC hides hardware’s carry
bits and overflow flags and impedes particularly efficient execution of multi-word additions, multiplications, and shifts, all of
which are crucial to ECC’s performance.
Although EccM 1.0 and 2.0 already incorporate a number of
published algorithms, I will return to the literature for alterna-
tives for 3.0’s design. And, perhaps more drastically, I will consider a normal basis for 3.0’s arithmetic, the advantage of which
is its implementation using only ANDs, XORs, and cyclic shifts,
beneficiaries of which are multiplication and squaring. Of value
to 3.0 as well might be a hybrid of polynomial and normal bases,
as such is thought to leverage advantages of each simultaneously
[58].
Of course, I could reconsider 3.0’s choice of fields, opting instead to implement ECC over Fp . Unfortunately, inversion, as
required by point arithmetic in this field, is not inexpensive. But
the operation can be avoided through use of projective (as opposed to affine) coordinates [22]. Although relatively efficient
algorithms exist for modular reduction (e.g., those of Montogomery [48] or Barrett [2]), selection of a generalized Mersene
number for p would also allow modular reduction to be executed
as a more efficient sequence of three additions (mod p) [61].
Contingent on its optimization, EccM 3.0 might incorporate
support for larger keys, particularly those sizes recommended
by NIST [51], as well as pseudorandom generation of curves
and base points in lieu of its reliance on NIST’s samples. If
a success, EccM 3.0 will provide the foundation for TinyCrypt
1.0’s distribution and redistribution of keys.
5
5.1
Related Work
Low-Power Routing
Many strategies for reducing whole network or individual node
power consumption in wireless sensor networks focus on reducing internode communication. Efficient data dissemination, collection, and node coordination is central to the problem. Route
discovery and maintenance algorithms also play an important
role in reducing communications overhead. Both the resultant
routing paths and the messages sent to establish these paths inherently affect network power consumption.
Many wireless routing protocols are designed with basic energy efficiency in mind. Ad-hoc on-demand distance vector
routing (AODV) is a multi-hop protocol oriented towards mobile networks [55]. Because it constructs routes on demand,
it avoids the communication cost of building paths nodes may
never use. Dynamic source routing (DSR) is another popular
multi-hop, on-demand routing protocol [30]. DSR takes specific steps to avoid unnecessary traffic when updating routes.
While AODV and DSR aim for efficient communication, they
are designed for systems using 802.11 wireless components in
which battery life is not largely dependent on communication.
Although both have been ported to the TinyOS platform, their
lack of major power-saving mechanisms undermine their viability in long-term sensor network deployments.
Cluster-based routing protocols such as LEACH [27] attempt
to balance communication load by rotating data collection and
aggregation duties among network nodes. An intermediary sink
node, or cluster head, must keep its radio active a larger portion of the time to receive packets from neighbors. Sharing this
duty prolongs sensor network lifetime by preventing cluster head
burnout. This approach can be used in conjunction with dynamic
radio output power scaling for increased energy savings.
Kubisch et al. define a strategy to select a minimum transmission power for each node in a given distributed sensor net-
work [35]. Network operators define a target number of reachable neighbors for all nodes. A node adjusts its transmit quality according to its current neighbor count. If a node has more
neighbors than necessary, it scales down its transmit power until reaching the target range. If too few neighbors exist, the node
increases its power. This technique is not optimal for data collection networks. It does not take into account node hop distance
from a data sink node when determining routes, which effects
node power consumption. Also, a node may have to increase its
transmission power significantly to acquire enough neighbors.
The target neighbor count may not be appropriate for all nodes
and determining a value for each node individually is difficult.
5.2
ECC
Studied by mathematicians for more than a century, elliptic
curves claim significant coverage in the literature. Similarly has
ECC received much attention since its discovery in 1985.
Woodbury recommends an optimal extension field,
F(28 −17)17 , for low-end, 8-bit processors[67]. In [31], Jung
et al. propose supplementary hardware for AVR implementing
operations over binary fields. In [24], Handschuh and Paillier
propose cryptographic coprocessors for smart cards, whereas
in [68], Woodbury et al. describe ECC for smart cards without
coprocessors. Albeit for a different target, Hasegawa et al. provide in [26] a “small and fast” implementation of ECC in
software over Fp for a 16-bit microcomputer. In [23], Guajardo
et al. describe an implementation of ECC for the 16-bit TI
MSP430x33x family of microcontrollers. Weimerskirch et al.,
meanwhile, offer an implementation of ECC for Palm OS in
[66], and Brown et al. offer the same in [6] for Research In
Motion’s RIM pager. ZigBee [70], on the other hand, shares
this work’s aim of wireless security for sensor networks albeit
not with ECC but with AES-128.
A number of implementations of ECC in software are freely
available, though none are particularly well-suited for the
MICA2, in no small part due to their memory requirements.
Rosing [58] offers his C-based implementation of ECC over F2p
with both polynomial and normal bases. LibTomCrypt [14] offers another C-based implementation with a polynomial basis, as
do MIRACL [41], ECC-LIB [69], and pegwit [54]. Dragongate
Technologies Limited, meanwhile, offers borZoi and jBorZoi
[39], implementations of ECC in C++ and Java, respectively.
Another implementation in C++ is available through libecc [38].
Testament to current interest in ECC, the Workshop on Elliptic Curve Cryptography is now in its eighth year.
6
Conclusion
The MICA2 ECC and dynamic power scaling algorithms presented herein offer valuable progress toward secure, low-power
sensor node communication. Our analysis of the adaptive power
scheme goes beyond simulation to capture real network performance accurately in a typical indoor environment. Despite
claims to the contrary, public-key infrastructure appears viable
on the MICA2. Although the implementations, studied herein,
of modular exponentiation and ECC in 4 KB of primary memory on this 8-bit, 7.3828-MHz device require improvement, this
work’s initial results are promising indeed. AVR assembly alone
offers significant potential for ECC’s enhancement.
The need for PKI’s success on the MICA2 seems clear. TinySec’s shared keys do allow for efficient, secure communications
among nodes. But such devices as those in sensor networks, for
which physical security is unlikely, require some mechanism for
those shared keys’ distribution and redistribution.
In that it offers equivalent security at lower cost to memory
and bandwidth than does Diffie-Hellman based on DLP, publickey infrastructure based on elliptic curves does seem a apt choice
for the MICA2. Ahead now is pursuit of this cryptosystem’s
minimal cost in cycles and power.
Dynamic output power scaling has the potential to maintain
reliable links between nodes while saving power in some scenarios. Analysis of single link radio channel behavior and base station packet reception for node-to-sink routes showed good performance for nodes with certain connectivity characteristics. For
instance, nodes close to their parent node in the routing tree were
able to save several orders of magnitude of power over using the
fixed, default power level. Other pairwise links did not respond
well under dynamic power scaling. Radio channel quality between mid-range nodes fluctuated wildly, generating link quality
oscillations to which the motes could not respond appropriately.
Future work involves modifying the dynamic radio output power
algorithm for better performance under these degenerate cases.
References
[1] L. M. Adleman. A subexponential algorithm for the discrete logarithm problem with applications to cryptography. In Proc. 20th
IEEE Found. Comp. Sci. Symp., pages 55–60, 1979.
[2] P. Barrett. Implementing the rivest shamir and adleman public key
encryption algorithm on a standard digital signal processor. In
A. M. Odlyzko, editor, Advances in Cryptology – CRYPTO ’86,
volume 263, 1987.
[3] G. Barwood. Elliptic curve cryptography faq v1.12 22nd.
http://www.cryptoman.com/elliptic.htm, December 1997.
[4] E. Biham, A. Biryukov, and A. Shamir. Cryptanalysis of Skipjack
reduced to 31 rounds using impossible differentials. Lecture Notes
in Computer Science, 1592:12–23, 1999.
[5] I. Blake, G. Seroussi, and N. Smart. Elliptic curves in cryptography. LMS Lecture Note Series, 265, 1999.
[6] M. Brown, D. Cheung, D. Hankerson, J. L. Hernandez,
M. Kirkup, and A. Menezes. Pgp in constrained wireless devices.
In Proceedings of the 9th USENIX Security Symposium. USENIX
Association, August 2000.
[7] A. Cerpa, J. Elson, D. Estrin, L. Girod, M. Hamilton, and J. Zhao.
Habitat monitoring: Application driver for wireless communications technology, 2001.
[8] Cipcon SmartRF CC1000 Datasheet.
http://www.
chipcon.com/files/CC1000_Data_Sheet_2_1.pdf.
[9] E. B. Company.
Engineering datasheet: Energizer no.
x91.
http://data.energizer.com/datasheets/
library/primary/alkaline/energizer%
/consumer_oem/e91.pdf.
[10] Computer Security Division. SKIPJACK and KEA Algorithm
Specifications. National Institute of Standards and Technology,
May 1988.
[11] C. Corp.
Remarks on the security of the elliptic curve
cryptosystem. http://www.comms.engg.susx.ac.uk/
fft/crypto/EccWhite3.pdf, July 2000.
[12] A. Corporation. ATmega128(L) Preliminary Complete. San Jose,
CA, December 2003.
[13] MICA2:
Wireless Measurement System.
http:
//www.xbow.com/Products/Product_pdf_files/
Wireless_pdf/6020-0042-0%4_A_MICA2.pdf.
[14] T. S. Denis. Libtomcrypt. http://libtomcrypt.org/.
[15] W. Diffie and M. E. Hellman. New directions in cryptography. IEEE Transactions on Information Theory, IT-22(6):644–
654, 1976.
[16] W. Diffie, P. C. van Oorschot, and M. J. Wiener. Authentication
and authenticated key exchanges. Designs, Codes, and Cryptography, 2(2):107–125, 1992.
[17] G. Frey and H. Gangl. How to disguise an elliptic curve (weil
descent). ECC ’98, September 1998.
[18] P. Gaudry, F. Hess, and N. P. Smart. Constructive and destructive
facets of weil descent on elliptic curves. Technical Report CSTR00-016, Department of Computer Science, University of Bristol,
October 2000.
[19] D. Gay, P. Levis, R. von Behren, M. Welsh, E. Brewer, and
D. Culler. The nesC language: A holistic approach to networked
embedded systems. In Proceedings of the ACM SIGPLAN 2003
conference on Programming language design and implementation
(PLDI), June 2003.
[20] D. M. Gordon. Discrete logarithms in gf(p) using the number field
sieve. SIAM J. Discret. Math., 6(1):124–138, 1993.
[21] D. M. Gordon. A survey of fast exponentiation methods. J. Algorithms, 27(1):129–146, 1998.
[22] J. Groβschädl. Implementation options for elliptic curve cryptography. http://www.iaik.tugraz.at/teaching/
02_it-sicherheit/04_vortragsthemen/E%CC.pdf,
April 2003.
[23] J. Guajardo, R. Blümel, U. Krieger, and C. Paar. Efficient implementation of elliptic curve cryptosystems on the ti msp430x33x
family of microcontrollers. In K. Kim, editor, PKC 2001, pages
365–382, Korea, 2001.
[24] H. Handschuh and P. Paillier. Smart card crypto-coprocessors for
public-key cryptography. In J.-J. Quisquater and B. Schneier, editors, Lecture Notes in Computer Science, Smart Card Research
and Applications, pages 386–394. Springer-Verlag, 2000.
[25] D. Hankerson, J. L. Hernandez, and A. Menezes. Software implementation of elliptic curve cryptography over binary fields. Lecture Notes in Computer Science, 1965, 2001.
[26] T. Hasegawa, J. Nakajima, and M. Matsui. A Small and Fast Software Implementation of Elliptic Curve Cryptosystems over GF(p)
on a 16-Bit Microcomputer. IEICE Trans. Fundamentals, E82A(1):98–106, January 1999.
[27] W. R. Heinzelman, A. Chandrakasan, and H. Balakrishnan.
Energy-efficient communication protocols for wireless microsensor networks. In Proceedings of the 33rd Hawaii Internation Conference on Systems Sciences (HICSS), January 2000.
[28] M. Hempstead, V. Shnayder, and B. rong Chen. Power TOSSIM:
Efficient power simulation for TinyOS applications. CS263 final
report.
[29] J. Hill, R. Szewczyk, A. Woo, S. H. D. Culler, and K. Pister. System architecture directions for networked sensors. In Proceedings of the 9th International Conference on Architectural Support
for Programming Languages and Operating Systems (ASPLOS),
November 2000.
[30] D. Johnson, D. Maltz, and J. Broch. Dsr: The dynamic source
routing protocol for multi-hop wireless ad hoc networks. In
C. Perkins, editor, Ad Hoc Networking, pages 139–172. AddisonWesley, 2001.
[31] M. Jung, M. Ernst, F. Madlener, S. Huss, and R. Blümel. A
reconfigurable system on chip implementation for elliptic curve
cryptography over gf(2n ). http://ece.gmu.edu/crypto/
ches02/talks_files/Jung.ppt.
[32] N. Koblitz. Elliptic curve cryptosystems. Mathematics of Computation, 48:203–209, 1987.
[33] N. Koblitz. Cm-curves with good cryptographic properties. In
Advances in Cryptology – CRYPTO ’91, pages 279–287, 1992.
[34] V. A. Kottapalli, A. S. Kiremidjian, J. P. Lynch, E. Carryer, T. W.
Kenny, K. H. Law, and Y. Lei. Two-tiered wireless sensor network
architecture for structural health monitoring, March 2003.
[35] M. Kubisch, H. Karl, A. Wolisz, L. C. Zhong, and J. Rabaey.
Distributed algorithms for transmission power control in wireless
sensor networks. In Proceedings of the 2003 IEEE Wireless Communications and Networking Conference (WCNC), March 2003.
[36] R. Laboratories. Lightweight Security for Wireless Networks
of Embedded Systems. http://www.rsasecurity.com/
rsalabs/pkcs/pkcs-3/, November 1993.
[37] B. A. LaMacchia and A. M. Odlyzko. Computation of discrete
logarithms in prime fields. Lecture Notes in Computer Science,
537:616–618, 1991.
[38] libecc. http://libecc.sourceforge.net/.
[39] D. T. Limited.
jborzoi 0.9.
http://
dragongate-technologies.com/products.html,
August 2003.
[40] J. López and R. Dahab. An overview of elliptic curve cryptography. Technical report, Institute of Computing, Sate University of
Campinas, São Paulo, Brazil, May 2000.
[41] S. S. Ltd. Multiprecision integer and rational arithmetic c/c++
library. http://indigo.ie/˜mscott/#Elliptic.
[42] G. Marsaglia. The mother of all random generators. ftp://
ftp.taygeta.com/pub/c/mother.c, October 1994.
[43] A. Menezes, S. Vanstone, and T. Okamoto. Reducing elliptic
curve logarithms to logarithms in a finite field. In Proceedings
of the twenty-third annual ACM symposium on Theory of computing, pages 80–89. ACM Press, 1991.
[44] Mica wireless measurment system. Crossbow Product Datasheet,
2003.
http://www.xbow.com/Products/Product_
pdf_files/Wireless_pdf/6020-0041-0%1_A_
MICA.pdf.
[45] Mica2 wireless measurment system.
Crossbow Product
Datasheet, 2003.
http://www.xbow.com/Products/
Product_pdf_files/Wireless_pdf/6020-0042-0%
4_A_MICA2.pdf.
[52] N. I. of Standards and Technology. Special Publication 800-57:
Recommendation for Key Management, January 2003.
[53] C. Paar. Implementation options for finite field arithmetic for elliptic curve cryptosystems. Invited presentation at the 3rd Workshop on Elliptic Curve Cryptography (ECC ’99), November 1999.
[54] pegwit. http://groups.yahoo.com/group/pegwit/
files/.
[55] C. Perkins and E. Royer. Ad hoc on-demand distance vector routing. In Proceedings of the 2nd IEEE Workshop on Mobile Computing Systems and Applications (WMCSA), pages 90–100, 1999.
[56] A. Perrig, R. Szewczyk, V. Wen, D. E. Culler, and J. D. Tygar.
SPINS: security protocols for sensor networks. In Mobile Computing and Networking, pages 189–199, 2001.
[57] M. Rabin. Digitalized signatures and public-key functions as intractable as factorization. Technical Report MIT/LCS/TR-212,
MIT, 1979.
[58] M. Rosing. Implementing Elliptic Curve Cryptography. Manning
Publications Co., 1999.
[59] R. Schroeppel, H. Orman, S. O’Malley, and O. Spatscheck. Fast
key exchange with elliptic curve systems. Lecture Notes in Computer Science, 963, 1995.
[60] Silverman and Suzuki. Elliptic curve discrete logarithms and the
index calculus. In ASIACRYPT: Advances in Cryptology – ASIACRYPT: International Conference on the Theory and Application of Cryptology. LNCS, Springer-Verlag, 1998.
[61] J. Solinas. Generalized mersenne numbers, 1999.
[62] J. A. Solinas. An improved algorithm for arithmetic on a family of
elliptic curves. In Advances in Cryptology – CRYPTO ’97, pages
357–371, 1997.
[63] B. Technologies. Diffie-hellman 1, July 2003.
[64] TinySec: Link Layer Security for Tiny Devices. http://www.
cs.berkeley.edu/˜nks/tinysec/.
[65] Vital Dust: Wireless Sensor Networks for Emergency Medical
Care. http://www.eecs.harvard.edu/˜mdw/proj/
vitaldust/.
[66] A. Weimerskirch, C. Paar, and S. C. Shantz. Elliptic curve cryptography on a palm os device. Sydney, Australia, July 2001. The
6th Australasian Conference on Information Security and Privacy.
[67] A. D. Woodbury.
Efficient algorithms for elliptic curve
cryptosystems on embedded systems. http://www.wpi.
edu/Pubs/ETD/Available/etd-1001101-195321/
unrestricted/w%oodbury.pdf, September 2001.
[46] Microprocessor and M. S. Committee. IEEE Standard Specifications for Public-Key Cryptography. IEEE Computer Society,
January 2000.
[68] A. D. Woodbury, D. V. Bailey, and C. Paar. Elliptic curve cryptography on smart cards without coprocessors. ”Bristol, UK”,
September 2000. The Fourth Smart Card Research and Advanced
Applications (CARDIS 2000) Conference.
[47] V. Miller. Uses of elliptic curves in cryptography. In Lecture Notes
in Computer Science 218: Advances in Crytology - CRYPTO ’85,
pages 417–426. Springer-Verlag, Berlin, 1986.
[69] C. Zaroliagis. ECC-LIB: A Library for Elliptic Curve Cryptography. http://www.ceid.upatras.gr/faculty/zaro/
software/ecc-lib/.
[48] P. Montgomery. Modular multiplication without trial division.
Mathematics of Computation, 44(170):519–521, 1985.
[70] Zigbee alliance. http://www.zigbee.org/.
[49] NEST Challenge Architecture, August 2002.
[50] N. I. of Standards and Technology. Federal Information Processing Standards Publication 185: Escrowed Encryption Standard
(EES), February 1994.
[51] N. I. of Standards and Technology. Recommended elliptic curves
for federal government use. http://csrc.nist.gov/
CryptoToolkit/dss/ecdsa/NISTReCur.pdf,
July
1999.