Instruction encoding in the x86 architecture provides multiple equivalent representations for semantically identical operations. For example, the instructions “ADC AX,BX”, “ADD AX,BX”, “XOR AX,BX”, “SUB AX,BX”, and “CMP AX,BX” can each be encoded in two different but valid forms (e.g., “ADC AX,BX” as 11D8 or 13C3). This apparent redundancy in opcode encoding raises questions about its cryptographic relevance, including implications for obfuscation, side-channel resistance, and secure compilation. This paper analyzes the dual encodings of arithmetic instructions in the x86 instruction set, explores their applications in cryptographic implementations, and discusses their potential risks and advantages in the field of information security.
Cao et al. (Wed,) studied this question.