Bridging the Gap Between Symbolic and Efficient AES Implementations

Andrew Moss, Dan Page. Bridging the Gap Between Symbolic and Efficient AES Implementations. In John P. Gallagher, Janis Voigtländer, editors, Proceedings of the ACM SIGPLAN 2010 Workshop on Partial Evaluation and Program Manipulation. ACM,

Abstract

The Advanced Encryption Standard (AES) is a symmetric block cipher used to encrypt data within many applications. As a result of its standardisation, and subsequent widespread use, a vast range of published techniques exist for efficient software implementations on diverse platforms. The most efficient of these implementations are written using very low-level approaches; platform dependent assembly language is used to schedule instructions, and most of the cipher is pre-computed into constant look-up tables. The need to resort to such a low-level approach can be interpreted as a failure to provide suitable high-level languages to the cryptographic community. This paper investigates the language features necessary to express AES more naturally (i.e., in a form closer to the original specification) as a source program, and the transformations necessary to produce efficient target programs in an automatic and portable manner.