Michael Hutter

16-bit MSP430 Microcontroller Projects

ECC NIST P-192 on the MSP430

date: 01/09/2012

We present a cryptographic library for MSP430 microcontrollers that implements scalar multiplication using the NIST P-192 elliptic curve, a random number generator, and SHA-1. The implementation was tested on the WISP RFID tag (WISP4.1DL that is equipped with the 16-bit MSP430F2132).

Implementation details can be found in our paper (joint work with Christian Pendl and Markus Pelnar) or in our IGI Global book chapter Elliptic Curve Cryptography on WISPs.

Code size of the ECC library:
MSP430 without HW multiplier: 8,048 bytes
MSP430 with HW multiplier (low area, looping): 7,480 bytes
MSP430 with HW multiplier (high speed, unrolled): 16,060 bytes
SHA-1: 1,012 bytes
Random Number Generation (RNG, Marsaglia): 218 bytes

Operation Cycles
1 Unrolled product-scanning multiplication requires 1,076 bytes (without HW multiplier) and 1,020 bytes (with HW multiplier) of code; Unrolled hybrid multiplication requires 4,236 bytes of code.
2 Unrolled squaring requires 504 bytes (without HW multiplier) and 356 bytes (with HW multiplier) of code.
3 We implemented a 192-bit Montgomery powering ladder.
unrolled product scanning without HW multiplier
unrolled product scanning with HW multiplier
unrolled hybrid multiplication with HW multiplier (d = 2)
192-bit multi-precision multiplication1 25,350 5,046 2,581
192-bit multi-precision squaring2 14,361 3,363 -
192-bit scalar multiplication3 54,630,581 15,761,884 10,289,883