Paper 2016/931

Feeding Two Cats with One Bowl: On Designing a Fault and Side-Channel Resistant Software Encoding Scheme (Extended Version)

Jakub Breier and Xiaolu Hou

Abstract

When it comes to side-channel countermeasures, software encoding schemes are becoming popular and provide a good level of security for general-purpose microcontrollers. However, these schemes are not designed to be fault resistant, and this property is discussed very rarely. Therefore, implementers have to pile up two different countermeasures in order to protect the algorithm against these two popular classes of attacks. In our paper, we discuss the fault resistance properties of encoding schemes in general. We define theoretical bounds that clearly show the possibilities and limitations of encoding-based countermeasures, together with trade-offs between side-channel and fault resistance. Moreover, we simulate several codes with respect to most popular fault models, using a general-purpose microcontroller assembly implementation. Our algorithm shows how to implement fault resistance to an encoding scheme that currently has the best side-channel resistant capabilities. As a result, we are able to design a code by using automated methods, that can provide the optimal trade-off between side-channel and fault resistance.

Metadata
Available format(s)
PDF
Category
Implementation
Publication info
Published elsewhere. Minor revision. Accepted to CT-RSA 2017
Keywords
software encoding schemesside-channel attacksfault attackscountermeasures
Contact author(s)
jbreier @ ntu edu sg
History
2017-03-09: last of 4 revisions
2016-09-27: received
See all versions
Short URL
https://ia.cr/2016/931
License
Creative Commons Attribution
CC BY

BibTeX

@misc{cryptoeprint:2016/931,
      author = {Jakub Breier and Xiaolu Hou},
      title = {Feeding Two Cats with One Bowl: On Designing a Fault and Side-Channel Resistant Software Encoding Scheme (Extended Version)},
      howpublished = {Cryptology ePrint Archive, Paper 2016/931},
      year = {2016},
      note = {\url{https://eprint.iacr.org/2016/931}},
      url = {https://eprint.iacr.org/2016/931}
}
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.