Paper 2017/699

Runtime Code Polymorphism as a Protection Against Side Channel Attacks

Damien Couroussé, Thierno Barry, Bruno Robisson, Philippe Jaillon, Olivier Potin, and Jean-Louis Lanet

Abstract

We present a generic framework for runtime code polymorphism, applicable to a broad range of computing platforms including embedded systems with low computing resources (e.g. microcontrollers with few kilo-bytes of memory). Code polymorphism is defined as the ability to change the observable behaviour of a software component without changing its functional properties. In this paper we present the implementation of code polymorphism with runtime code generation, which offers many code transformation possibilities: we describe the use of random register allocation, random instruction selection, instruction shuffling and insertion of noise instructions. We evaluate the effectiveness of our framework against correlation power analysis: as compared to an unprotected implementation of AES where the secret key could be recovered in less than 50 traces in average, in our protected implementation, we increased the number of traces necessary to achieve the same attack by more than 20000x. With regards to the state of the art, our implementation shows a moderate impact in terms of performance overhead.

Metadata
Available format(s)
PDF
Category
Implementation
Publication info
Published elsewhere. 10th WISTP International Conference on Information Security Theory and Practice (WISTP’2016), 2016, pp. 136–152.
Keywords
AESside-channel attackspolymorphismruntime code generationpower analysis
Contact author(s)
damien courousse @ cea fr
History
2017-07-21: received
Short URL
https://ia.cr/2017/699
License
Creative Commons Attribution
CC BY

BibTeX

@misc{cryptoeprint:2017/699,
      author = {Damien Couroussé and Thierno Barry and Bruno Robisson and Philippe Jaillon and Olivier Potin and Jean-Louis Lanet},
      title = {Runtime Code Polymorphism as a Protection Against Side Channel Attacks},
      howpublished = {Cryptology ePrint Archive, Paper 2017/699},
      year = {2017},
      note = {\url{https://eprint.iacr.org/2017/699}},
      url = {https://eprint.iacr.org/2017/699}
}
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.