Paper 2016/517
Towards Practical Tools for Side Channel Aware Software Engineering: `Grey Box' Modelling for Instruction Leakages
David McCann, Elisabeth Oswald, and Carolyn Whitnall
Abstract
Power (along with EM, cache and timing) leaks are of considerable concern for developers who have to deal with cryptographic components as part of their overall software implementation, in particular in the context of embedded devices. Whilst there exist some compiler tools to detect timing leaks, similar progress towards pinpointing power and EM leaks has been hampered by limits on the amount of information available about the physical components from which such leaks originate. We suggest a novel modelling technique capable of producing high-quality instruction-level power (and/or EM) models without requiring a detailed hardware description of a processor nor information about the used process technology (access to both of which is typically restricted). We show that our methodology is effective at capturing differential data-dependent effects as neighbouring instructions in a sequence vary. We also explore register effects, and verify our models across several measurement boards to comment on board effects and portability. We confirm its versatility by demonstrating the basic technique on two processors (the ARM Cortex-M0 and M4), and use the M0 models to develop ELMO, the first leakage simulator for the ARM Cortex M0.
Note: Updated version of paper.
Metadata
- Available format(s)
- Publication info
- Published elsewhere. USENIX Security Symposium 2017
- Keywords
- leakageevaluationside-channelembedded systems
- Contact author(s)
- carolyn whitnall @ bristol ac uk
- History
- 2017-07-18: last of 4 revisions
- 2016-05-29: received
- See all versions
- Short URL
- https://ia.cr/2016/517
- License
-
CC BY
BibTeX
@misc{cryptoeprint:2016/517, author = {David McCann and Elisabeth Oswald and Carolyn Whitnall}, title = {Towards Practical Tools for Side Channel Aware Software Engineering: `Grey Box' Modelling for Instruction Leakages}, howpublished = {Cryptology {ePrint} Archive, Paper 2016/517}, year = {2016}, url = {https://eprint.iacr.org/2016/517} }