Stealthy Opaque Predicates in Hardware - Obfuscating Constant Expressions at Negligible Overhead

Opaque predicates are a well-established fundamental building block for software obfuscation. Simplified, an opaque predicate implements an expression that provides constant Boolean output, but appears to have dynamic behavior for static analysis. Even though there has been extensive research regard...

Full description

Saved in:
Bibliographic Details
Published inIACR transactions on cryptographic hardware and embedded systems Vol. 2018; no. 2
Main Authors Max Hoffmann, Christof Paar
Format Journal Article
LanguageEnglish
Published Ruhr-Universität Bochum 01.05.2018
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:Opaque predicates are a well-established fundamental building block for software obfuscation. Simplified, an opaque predicate implements an expression that provides constant Boolean output, but appears to have dynamic behavior for static analysis. Even though there has been extensive research regarding opaque predicates in software, techniques for opaque predicates in hardware are barely explored. In this work, we propose a novel technique to instantiate opaque predicates in hardware, such that they (1) are resource-efficient, and (2) are challenging to reverse engineer even with dynamic analysis capabilities. We demonstrate the applicability of opaque predicates in hardware for both, protection of intellectual property and obfuscation of cryptographic hardware Trojans. Our results show that we are able to implement stealthy opaque predicates in hardware with minimal overhead in area and no impact on latency.
ISSN:2569-2925
DOI:10.13154/tches.v2018.i2.277-297