Patent ID: 8135963
Filing Date: 2012-03-13
Classification: G06F

Abstract:
1. A system comprising a program conversion device for generating, from one original program, one distribution program that is executable on a plurality of program execution devices having different security levels, and a program execution device that operates in accordance with the distribution program, wherein the program conversion device comprises: a storage unit for storing an original program composed of a plurality of computer instructions; an obfuscation unit for obfuscating the original program to generate an obfuscated program; a generating unit for generating conversion information that indicates conversion to be applied to the obfuscated program so as to alter an obfuscation level correspondingly to one of the security levels; and an output unit for outputting a distribution program that is composed of the obfuscated program and the conversion information, and wherein the program execution device comprises: a storage unit for storing the distribution program generated by the program conversion device for generating, from one original program, the one distribution program that is executable on the plurality of program execution devices having different security levels; an acquiring unit for searching the distribution program to acquire conversion information corresponding to a security level of the program execution device from the distribution program; a converting unit, if the conversion information is successfully acquired, for converting the obfuscated program that is included in the distribution program to alter the obfuscation level in accordance with the conversion information, so that a unique program that corresponds to the security level of the program execution device is generated; and a processor for executing the unique program, wherein the generating unit generates the conversion information that indicates conversion to be applied to the obfuscated program to lower the obfuscation level, the converting unit converts the obfuscated program to lower the obfuscation level, and the original program stored in the storage unit includes a sub-program composed of one or more instructions, and the obfuscation unit includes: a dividing sub-unit for dividing the sub-program into a plurality of partial programs; and an obfuscating sub-unit for obfuscating the plurality of partial programs to generate a plurality of obfuscated partial programs that together constitute the obfuscated program, wherein the generating unit encrypts integration information so that the encrypted integration information is generated, the integration information indicating which of the partial programs are to be integrated, and the output unit outputs the distribution program that includes the plurality of obfuscated partial programs and the encrypted integration information, and wherein the acquiring unit decrypts the encrypted integration information acquired as the conversion information, the converting unit, if the encrypted integration information is successfully decrypted, decrypts a plurality of encrypted programs indicated by the decrypted integration information, so that a plurality of partial programs of the unique program are generated, and the processor executes the plurality of partial programs generated, and wherein the generating unit encrypts the integration information by using a conversion information key, and the acquiring unit decrypts the encrypted integration information by using the conversion information key.