NEON crypto

  • Authors:
  • Daniel J. Bernstein;Peter Schwabe

  • Affiliations:
  • Department of Computer Science, University of Illinois at Chicago, Chicago, IL;Research Center for Information Technology Innovation and Institute of Information Science, Academia Sinica, Taipei, Taiwan

  • Venue:
  • CHES'12 Proceedings of the 14th international conference on Cryptographic Hardware and Embedded Systems
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

NEON is a vector instruction set included in a large fraction of new ARM-based tablets and smartphones. This paper shows that NEON supports high-security cryptography at surprisingly high speeds; normally data arrives at lower speeds, giving the CPU time to handle tasks other than cryptography. In particular, this paper explains how to use a single 800MHz Cortex A8 core to compute the existing NaCl suite of high-security cryptographic primitives at the following speeds: 5.60 cycles per byte (1.14 Gbps) to encrypt using a shared secret key, 2.30 cycles per byte (2.78 Gbps) to authenticate using a shared secret key, 527102 cycles (1517/second) to compute a shared secret key for a new public key, 624846 cycles (1280/second) to verify a signature, and 244655 cycles (3269/second) to sign a message. These speeds make no use of secret branches and no use of secret memory addresses.