Cryptography Reference
In-Depth Information
overall performance of the ECC applications. Later, it was shown that using projective
or mixed coordinates rather than affine coordinates could avoid expensive inversions.
In addition, ECC primitives were accelerated using efficient point multiplication algo-
rithms proposed in Wang et al. (2006) and Liu and Ping (2008).
ECC implementation proposed in Wang et al. (2006) chose a prime field as the base
finite field, and the experiments were carried out on a 16-bit TelosB platform involving
an MSP430 microprocessor used in Tmote Sky nodes. The suite of integer arithmetic
operations implemented in this operation included addition, subtraction, shift, multi-
plication, division, and modular reduction. The entire implementation scheme was
based on an SECG-recommended 160-bit elliptic curve secp160r1 (Certicom 2000).
A hybrid multiplication scheme proposed in Gura et al. (2004) was used in realizing
the multiplication operation and implemented in assembly language. Random point
multiplication was computed in 3.51 seconds, and fixed point multiplication was com-
puted in 3.13 seconds. Program space utilization was at 17.9 KB, and data storage was
at 1.6 KB.
In addition to the arithmetic operations, the ECDSA was also implemented. The
time taken to generate ECDSA was 3.35 seconds, and the verification of the digital
signature was at 6.78 seconds.
9.3 Design Principles
In general, any implementation on a sensor network platform should follow basic design
principles that take into account portability, performance, security, and versatility.
Portability: Any library should ideally be compatible with a broad range of existing sen-
sor platforms and can be easily ported to other 8-, 16-, and 32-bit constrained devices.
Most of the procedures can use any high-level language, such as standard C, which
favors speed and permits re-use of the code on numerous other WSN platforms. Even
though some functions use inline assembly, the code-development process should be as
portable as possible. Assembler routines should be generated automatically by a special
utility program from user-defined macros. As a result, appropriate assembler code can
be quickly developed for new platforms and processors that are not yet supported.
Performance: Any library should be optimized for speed and energy efficiency. Memory
usage is a secondary concern, as optimizing for code size lowers the functionality
and portability of the library. The memory footprint of a library can be reduced after
achieving satisfactory performance by deleting unnecessary functions. To speed up
the execution of particularly time-critical arithmetic routines, any high-level language
code, such as the standard C code, can be replaced with assembly language specific for
each platform. High performance can also be achieved through many different optimi-
zations for elliptic curve operations.
Security: High levels of security in ECC systems can only be achieved through care-
ful selection of algorithms and domain parameters. Section 9.4 provides details about
Search WWH ::




Custom Search