Indistinguishable Executable Code Generation Method

Mikhail Styugin
2016 International Journal of Security and Its Applications  
The classical objective of obfuscation considers indistinguishability of the obtained code in relation to original programs of equal functionality. The present paper reviews another objective of obfuscation, when indistinguishability is considered relatively to programs of different functionality. In this case, an obfuscator is provided with a key at the input. It is nearly impossible to discover the program's functionality without having the key. Hence, that obfuscator type is named a key
more » ... cator. The paper proves existence of a key obfuscator and existence of effective algorithms for its operation demonstrated by recursive functions. The practical relevance of the result obtained by the research is the possibility to store an executable code in an untrusted computational environment and to obstruct injection attacks and distributed computing analysis. RKB-Obfuscator (Recursive Key Blur), an application for obfuscating high-level applications is presented. The presented application matches recursive functions with commands of a high-level programming language. This paper considers the idea of obfuscation from another viewpoint and demonstrates that an indistinguishability requirement for it can be formulated and proved. Let us consider an obfuscator that not only generates output programs having indistinguishable code, but also, a code of unknown functionality. Assume that the program code consists of multiple separate executable modules. Depending on the input parameters, every module uses data in a particular way and transfers control to the next module. The system's output will always be different depending on the input parameters. Here is the system shown in Figure 1 .
doi:10.14257/ijsia.2016.10.8.27 fatcat:qniwbjhgnvemvevpwii7cu4fam