The method of generation program code with indistinguishable functionality - Mikhail Andreevich Styugin (Безопасность информационных технологий, 2017)
The paper presents an obfuscation problem, in which indistinguishability is considered relatively to programs with distinguishable functionality. The functionality remains undisclosed owing to unknown parameters in the program’s input. An attacker that can run only polynomial time algorithms will not be able to distinguish the program’s functionality without having the input key. Thus, it was named a key obfuscator. The article sets a problem of creating key obfuscators and efficient algorithms for their operation. The obfuscator’s general scheme of operation for logic schemes of any functionality is presented. Proof of a theorem is provided, which states that the obfuscator presented is a key obfuscator. The possibility of finding key obfuscator’s efficient operation algorithms for specific applications is established. Key-based obfuscation enables finding solutions for tasks such as open storage and execution of a program code in an untrusted computational environment and makes it more difficult to carry out injection attacks and analysis of distributed computing. Authentication and confirmation of rights for using software can be another application of key obfuscation, because without the key program code is useless.