[发明专利]用于指令级软件加密的方法和设备有效
申请号: | 200910252802.0 | 申请日: | 2009-12-01 |
公开(公告)号: | CN101751243A | 公开(公告)日: | 2010-06-23 |
发明(设计)人: | 斯蒂芬·昂奴;穆罕默德·卡若米;安东尼·蒙西弗罗特 | 申请(专利权)人: | 汤姆森许可贸易公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38;G06F21/22 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 王波波 |
地址: | 法国布洛涅*** | 国省代码: | 法国;FR |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 指令 软件加密 方法 设备 | ||
1.一种对编译的计算机代码指令的集合进行加密以获得编译的 计算机代码指令的加密集合的方法,所述加密集合预期在执行期间逐 条指令地进行解密,所述编译的计算机代码指令的集合包括多个分支 指令(I5、I7)以及标记指令(I8),其中,所述编译的计算机代码指令 的集合的执行能够从所述多个分支指令中的每一个(I5、I7)直接继续 至所述标记指令(I8),所述方法包括在设备(410)处执行的以下步 骤:
使用链式加密函数对所述标记指令(I8)进行加密,使得加密的 标记指令({Instr.8})至少依赖于所述标记指令(I8)的值和所述多个 分支指令中所选的一个分支指令的值;以及
将所述多个分支指令中除了所选的一个分支指令之外的至少一 个分支指令(I5、I7)中的每一个与补偿器值(C5、C7)相关联,所述 补偿器值(C5、C7)要用于调整对所述加密的标记指令({Instr.8}) 的解密,使得不管紧接在所述标记指令(I8)之前执行所述多个分支 指令(I5、I7)中的哪一个,在执行期间都产生相同的结果。
2.根据权利要求1所述的方法,其中,对所述标记指令(I8)的 加密还依赖于与所述标记指令(I8)相关联的伪随机数。
3.根据权利要求2所述的方法,还包括以下步骤:作为代码密钥 和所述伪随机数的生成所针对的指令的偏移的函数,来生成所述伪随 机数。
4.根据权利要求1所述的方法,其中,所述标记指令(I8)的值 和所述多个分支指令(I5、I7)中所选的一个分支指令的值分别是相应 的操作码部分的值。
5.根据权利要求1所述的方法,其中,所述加密是通过对所述标 记指令(I8)的值与所述多个分支指令(I5、I7)中所选的一个分支指 令的值进行异或来执行的。
6.一种对使用链式加密函数加密的编译的计算机代码指令的集 合进行解密的方法,所述方法包括在所述编译的计算机代码指令的执 行期间在设备(420)处执行以下步骤:
获得针对所执行的函数(I5、I7)的补偿器值(C5、C7),
获得后续加密的函数({Instr.8}),在所述编译的计算机代码指令 的执行期间,所述后续加密的函数跟随在所执行的函数(I5、I7)之后;
获得针对所述后续加密的函数({Instr.8})的伪随机数;以及
使用与所述链式加密函数相对应的解密函数来对所述后续加密 的函数({Instr.8})进行解密,所述解密函数至少根据所述后续加密 的函数({Instr.8})、所执行的函数、所述伪随机数和所述补偿器值来 生成后续函数(I8)。
7.根据权利要求6所述的方法,还包括以下步骤:作为代码密钥 和所述后续加密的函数({Instr.8})的偏移的函数,来生成所述伪随 机数。
8.根据权利要求6所述的方法,其中,加密的函数包括加密的操 作码,如果存在未加密的参数,还包括未加密的参数,并且,只有所 执行的函数(I5、I7)和所述后续加密的函数({Instr.8})的操作码部 分用于解密。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于汤姆森许可贸易公司,未经汤姆森许可贸易公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910252802.0/1.html,转载请声明来源钻瓜专利网。