A PROVABLE SCHEME FOR HOMOMORPHIC OBFUSCATIONS IN SOFTWARE SECURITY

Computer and communication industries develop so rapidly that the demand for software becomes larger and larger and the demand for software protections, such as copyright and anti-tampering defense, are more and more important to software users and developers. There are some technical measures for software protections, such as hardware-based protections, network filters, cryptosystems, etc. Software obfuscation is one of these measures. It protects software from unauthorized modification by making software more obscure so that it is hard for the potential attacker to understand the obfuscated software. In software obfuscation, we can obfuscate the control flow and the data flow of the software. In this paper, we explore an obfuscation based on residue number coding, which is a method widely used in hardware design, high precision integer arithmetic, and cryptography [1]. Recently, it has used as an obfuscation that encoded variables in the original program to hide the true meaning of these variables [2]. There is some discussion about the division of residue numbers in [2], but the technique proposed there is incorrect. In this paper, we establish a provable residue number encoding for software obfuscation, especially a provable algorithm for division by several constants in residue numbers.

[1]  Levent Ertaul,et al.  JHide - A tool kit for code obfuscation , 2004, IASTED Conf. on Software Engineering and Applications.

[2]  Stanley Chow,et al.  Tamper resistant software: extending trust into a hostile environment , 2001, MM&Sec '01.

[3]  Christian S. Collberg,et al.  Watermarking, Tamper-Proofing, and Obfuscation-Tools for Software Protection , 2002, IEEE Trans. Software Eng..

[4]  Atsuko Miyaji,et al.  Java Obfuscation Approaches to Construct Tamper-Resistant Object-Oriented Programs , 2005 .

[5]  Helmut Knebl,et al.  Introduction to Cryptography , 2002, Information Security and Cryptography.

[6]  Fei-Yue Wang,et al.  A Survey of Software Watermarking , 2005, ISI.

[7]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[8]  Dieter Gollmann,et al.  Computer Security , 1979, Lecture Notes in Computer Science.

[9]  Christian S. Collberg,et al.  A Taxonomy of Obfuscating Transformations , 1997 .

[10]  Yuan Xiang Gu,et al.  An Approach to the Obfuscation of Control-Flow of Sequential Computer Programs , 2001, ISC.

[11]  Helmut Knebl,et al.  Introduction to Cryptography , 2002, Information Security and Cryptography.

[12]  Levent Ertaul,et al.  Novel Obfuscation Algorithms for Software Security , 2005, Software Engineering Research and Practice.