The current state of art in program obfuscations:definitions of obfuscation security

Program obfuscation is a semantic-preserving transformation aimed at bringing a program into such a form, which impedes the understanding of its algorithm and data structures or prevents extracting of some valuable information from the text of a program. Since obfuscation could find wide use in comp...

Full description

Saved in:
Bibliographic Details
Published in:Trudy Instituta sistemnogo programmirovaniâ Vol. 26; no. 3; pp. 167 - 198
Main Authors: Varnovsky, N.P., Zakharov, V.A., Kuzurin, N.N., Shokurov, V.A.
Format: Journal Article
Language:English
Published: Russian Academy of Sciences, Ivannikov Institute for System Programming 01.10.2018
Subjects:
ISSN:2079-8156, 2220-6426
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Program obfuscation is a semantic-preserving transformation aimed at bringing a program into such a form, which impedes the understanding of its algorithm and data structures or prevents extracting of some valuable information from the text of a program. Since obfuscation could find wide use in computer security, information hiding and cryptography, security requirements to program obfuscators became a major focus of interests for pioneers of theory of software obfuscation. In this paper we give a survey of various definitions of obfuscation security and main results that establish possibility or impossibility of secure program obfuscation under certain cryptographic assumptions. We begin with a short retrospective survey on the origin and development of program obfuscation concept in software engineering and mathematical cryptography. In the introduction we also point out on the main difficulties in the development of practical and secure obfuscation techniques. In the next section we discuss the main line of research in the application of program obfuscation to the solution of various problems in system programming and software security. Finally, in section 3 we present and discuss a compendium of formal definitions of the program obfuscation concept developed so far in mathematical cryptography - black-box obfuscation, gray-box obfuscation, the best possible obfuscation, obfuscation with auxiliary inputs, etc.. We also make a comparative analysis of these definitions and present the main results on the (im)possibility of secure program obfuscation w.r.t. every such definition.
ISSN:2079-8156
2220-6426
DOI:10.15514/ISPRAS-2014-26(3)-9