Patent ID: 8225077

Claim:
An obfuscation device which generates a set of obfuscated instructions by obfuscating a set of original process instructions, the set of obfuscated instructions being executed by an execution device, said obfuscation device comprising: a storage unit configured to store the set of original process instructions including a first set of instructions and a second set of instructions, the first set of instructions being for performing a first process, and the second set of instructions being for performing a second process and the second set of instructions including a loop instruction for repeatedly performing at least a part of the second process; a dividing unit configured to respectively divide the first set of instructions and the second set of instructions into a plurality of instruction blocks; an assigning unit configured to assign identification information to each of the plurality of instruction blocks; a first instruction generating unit configured, for each of the first process and the second process, to generate an initialization instruction, the initialization instruction being for securing a management area in said execution device, the management area being for managing the identification information indicating an instruction block that should be executed next to each of the first process and the second process, and to store the initialization instruction in said storage unit; a second instruction generating unit configured to generate a selection instruction (i) to make a first selection from the first process and the second process selecting from a process that should be proceeded, (ii) to make a second selection for selecting an instruction block indicated by the identification information managed in the management area, as an instruction block that should be executed for proceeding with one of the first process and the second process selected by the first selection, and (iii) to generate selection instruction for causing the execution device to execute the instruction block selected by the second selection, and store the selection instruction in said storage unit; a third instruction generating unit configured to generate an updating instruction for updating, when the second process is selected by the first selection, and when the loop instruction included in the second process is executed, the identification information regarding the first process managed in the management area to identification information indicating an instruction block to be executed next to the first process which is selected by the first selection, and to store the updating instruction in said storage unit; and a set of instruction generating unit configured to generate the set of obfuscated instructions based on the initialization instruction, the selection instruction, the updating instruction, and the plurality of instruction blocks assigned with the identification information and to store the set of obfuscated instructions in said storage unit.