发明名称 用于指令级软件加密的方法和设备
摘要 本发明提供一种对要在执行期间逐条指令地进行解密的编译的计算机代码指令进行加密的方法。使用链式处理模式对所述计算机代码指令进行加密,使得加密的指令({Instr.8})依赖于指令(I<sub>8</sub>)的值、先前指令(I<sub>5</sub>、I<sub>7</sub>)的值和伪随机数。由于可能发生可以从多于一个先前指令(I<sub>5</sub>、I<sub>7</sub>)到达指令的情况,先前指令(I<sub>5</sub>、I<sub>7</sub>)中的至少一个与随机数补偿器相关联,所述随机数补偿器在加密的指令的解密期间使用,使得不管先前指令是哪个指令,对加密的指令的解密都产生相同的结果。本发明还提供了一种加密设备、解密设备和方法、以及存储加密的编译的计算机代码指令的数字支持介质。
申请公布号 CN101751243B 申请公布日期 2015.02.18
申请号 CN200910252802.0 申请日期 2009.12.01
申请人 汤姆森许可贸易公司 发明人 斯蒂芬·昂奴;穆罕默德·卡若米;安东尼·蒙西弗罗特
分类号 G06F9/30(2006.01)I;G06F21/52(2013.01)I 主分类号 G06F9/30(2006.01)I
代理机构 中科专利商标代理有限责任公司 11021 代理人 王波波
主权项 一种对编译的计算机代码指令的集合进行加密以获得编译的计算机代码指令的加密集合的方法,所述加密集合预期在执行期间逐条指令地进行解密,所述编译的计算机代码指令的集合包括多个分支指令(I<sub>5</sub>、I<sub>7</sub>)以及标记指令(I<sub>8</sub>),其中,所述编译的计算机代码指令的集合的执行能够从所述多个分支指令中的每一个(I<sub>5</sub>、I<sub>7</sub>)直接继续至所述标记指令(I<sub>8</sub>),所述方法包括在设备(410)处执行的以下步骤:使用链式加密函数对所述标记指令(I<sub>8</sub>)进行加密,使得加密的标记指令({Instr.8})至少依赖于所述标记指令(I<sub>8</sub>)的值和所述多个分支指令中所选的一个分支指令的值;以及将所述多个分支指令中除了所选的一个分支指令之外的至少一个分支指令(I<sub>5</sub>、I<sub>7</sub>)中的每一个与补偿器值(C<sub>5</sub>、C<sub>7</sub>)相关联,所述补偿器值(C<sub>5</sub>、C<sub>7</sub>)要用于调整对所述加密的标记指令({Instr.8})的解密,使得不管紧接在所述标记指令(I<sub>8</sub>)之前执行所述多个分支指令(I<sub>5</sub>、I<sub>7</sub>)中的哪一个,在执行期间都产生相同的结果。
地址 法国布洛涅-比郎库尔