Cryptology ePrint Archive: Report 2013/375

NaCl on 8-Bit AVR Microcontrollers

Michael Hutter and Peter Schwabe

Abstract: This paper presents first results of the Networking and Cryptography library (NaCl) on the 8-bit AVR family of microcontrollers. We show that NaCl, which has so far been optimized mainly for different desktop and server platforms, is feasible on resource-constrained devices while being very fast and memory efficient. Our implementation shows that encryption using Salsa20 requires 268 cycles/byte, authentication using Poly1305 needs 195 cycles/byte, a Curve25519 scalar multiplication needs 22,791,579 cycles, signing of data using Ed25519 needs 23,216,241 cycles, and verification can be done within 32,634,713 cycles. All implemented primitives provide at least 128-bit security, run in constant time, do not use secret-data-dependent branch conditions, and are open to the public domain (no usage restrictions).

Category / Keywords: implementation / Elliptic-curve cryptography, Edwards curves, Curve25519, Ed25519, Salsa20, Poly1305, AVR, ATmega

Date: received 11 Jun 2013

Contact author: michael hutter at iaik tugraz at

Available format(s): PDF | BibTeX Citation

Version: 20130612:145633 (All versions of this report)

Short URL:

[ Cryptology ePrint archive ]