Stealthy Opaque Predicates in Hardware - Obfuscating Constant Expressions at Negligible Overhead
DOI:
https://doi.org/10.13154/tches.v2018.i2.277-297Keywords:
Opaque Predicates, Obfuscation, Hardware Reverse Engineering, Hardware AnalysisAbstract
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.
Published
Issue
Section
License
Copyright (c) 2018 Max Hoffmann, Christof Paar
This work is licensed under a Creative Commons Attribution 4.0 International License.