(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210687686.0 (22)申请日 2022.06.16 (71)申请人 中国科学院信息 工程研究所 地址 100093 北京市海淀区闵庄路甲89号 (72)发明人 贾晓启 黄庆佳 陈家宇 宋振宇  杜海超 周梦婷 王睿怡 解亚敏  张伟娟 唐静  (74)专利代理 机构 北京君尚知识产权代理有限 公司 11200 专利代理师 余长江 (51)Int.Cl. G06F 21/60(2013.01) G06F 21/46(2013.01) G06F 21/62(2013.01) (54)发明名称 基于可变窗口的细粒度代码加密方法及其 代码的运行方法 (57)摘要 本发明提供了一种基于可变窗口的细粒度 代码加密方法及其代码的运行方法, 所述细粒度 代码加密方法包括: 基于目标程序中指令语句的 机器码长度, 设置窗口大小; 针对窗口Pi中每一 指令语句的机器码, 使用密钥Ki进行加密, 并根 据窗口Pi中指令语句的机器码长度以及所述指 令语句的类型, 将所述窗口Pi滑动至一新窗口; 直至对所述目标程序处理完毕之后, 得到初始加 密程序; 将解释器植入初始加密程序, 并适应性 修改所述初始加密程序的元数据之后, 得到所述 目标程序的加密程序。 本发明利用可变窗口机制 保证了数据的机密性, 有效提高了攻击者的分析 成本。 权利要求书2页 说明书7页 附图4页 CN 115270143 A 2022.11.01 CN 115270143 A 1.一种基于可变窗口 的细粒度代码加密方法, 所述方法包括: 基于目标程序中指令语句的机器码长度, 设置窗口大小; 针对窗口Pi中每一指令语句的机器码, 使用密钥Ki进行加密, 并根据窗口Pi中指令语句 的机器码长度以及所述指令语句的类型, 将所述窗口Pi滑动至一新窗口, 其中i为窗口序 号; 直至对所述目标程序处 理完毕之后, 得到初始加密程序; 将解释器植入初始加密程序, 并适应性修改所述初始加密程序的元数据之后, 得到所 述目标程序的加密程序, 其中, 所述 解释器的内容包括: 所诉窗口大小和所述密钥Ki。 2.如权利要求1所述的方法, 其特征在于, 所述根据窗口Pi中指令语句的机器码长度以 及所述指令语句的类型, 将所述窗口Pi滑动至一 新窗口, 包括: 针对窗口Pi, 获取每一所述 提取到的指令语句的机器码数量; 将各所述提取到的指令语句的机器码数量相加, 得到数值m; 若所述窗口中指令语句的类型不包 含跳转语句, 则将所述窗口Pi滑动m步, 得到新窗口; 或, 针对窗口Pi, 获取每一所述 提取到的指令语句的机器码数量; 将各所述提取到的指令语句的机器码数量相加, 得到数值m; 若所述窗口中指令语句的类型包含跳转语句, 则获取所述跳转语句的目标语句, 将所 述目标语句的首个机器码作为 新窗口的首个机器码, 且结合所述数值m, 以构建新窗口; 将所述窗口Pi滑动至新窗口。 3.如权利要求1所述的方法, 其特征在于, 所述元数据包括: 程序镜像大小和入口点地 址。 4.一种面向权利要求1 ‑3中任一加密程序的代码运行 方法, 所述方法包括: 基于所述 解释器, 提取 所述窗口大小; 执行窗口Pi中的机器码时, 分别提取指令语句以及 基于所述解释器提取所述密钥Ki, 并 使用所述密钥Ki对该提取到的指令语句中的每一机器码解密; 基于解密后的机器码执行所述指令语句之后, 使用所述密钥 Ki对该提取到的指令语句 中的每一机器码加密后, 根据所述指令语句的指令, 将所述窗口Pi滑动至一 新窗口; 直至所述加密程序执 行完毕, 得到代码运行 结果。 5.如权利要求4所述的方法, 其特征在于, 基于解密后的机器码执行所述指令语句之 后, 使用所述密钥Ki对该提取到 的指令语句中的每一机器码加密后, 根据所述指令语句的 指令, 将所述窗口Pi滑动至一 新窗口, 包括: 基于解密后的机器码, 依次执 行窗口Pi内所有的指令语句; 使用所述密钥Ki对该提取到的指令语句中的每一机器码加密; 根据窗口Pi中指令语句的机器码长度, 将所述窗口Pi滑动至新窗口; 或, 基于解密后的机器码, 依次执 行窗口Pi内的指令语句, 直至执 行完跳转语句; 使用所述密钥Ki对窗口Pi中每一提取到的指令语句中的机器码加密; 获取所述跳转语句的目标语句, 将所述目标语句的首个机器码作为新 窗口的首个机器 码, 并结合所述窗口大小, 构建新窗口;权 利 要 求 书 1/2 页 2 CN 115270143 A 2将所述窗口Pi滑动至所述 新窗口。 6.一种基于可变窗口 的细粒度代码加密装置, 包括: 窗口大小设置模块, 用于基于目标程序中指令语句的机器码长度, 设置窗口大小; 窗口加密模块, 用于针对窗口Pi中每一指令语句的机器码, 使用密钥Ki进行加密, 并根 据窗口Pi中指令语句的机器码长度以及所述指令语句的类型, 将所述窗口Pi滑动至一新窗 口, 其中i 为窗口序号; 直至对所述目标程序处 理完毕之后, 得到初始加密程序; 程序生成模块, 用于将解释器植入初始加密程序, 并适应性修改所述初始加密程序的 元数据之后, 得到所述 目标程序的加密程序, 其中, 所述解释器的内容包括: 所诉窗口大小 和所述密钥Ki。 7.一种基于可变窗口 的细粒度代码运行装置, 包括: 窗口大小提取模块, 用于基于所述 解释器, 提取 所述窗口大小; 窗口解密模块, 用于 执行窗口Pi中的机器码时, 分别提取指令语句以及基于 所述解释器 提取所述密钥Ki, 并使用所述密钥Ki对该提取到的指令语句中的每一机器码解密; 加密与滑动模块, 用于基于解密后的机器码执行所述指令语句之后, 使用所述密钥Ki对 该提取到 的指令语句中的每一机器码加密后, 根据所述指令语句的指令, 将所述窗口Pi滑 动至一新窗口; 结果生成模块, 用于直至所述加密程序执 行完毕, 得到代码运行 结果。 8.一种计算机可读存储介质, 其上存储有计算机程序, 所述计算机程序被处理器执行 时实现如权利要求1 ‑5中的任一方法。 9.一种计算机设备, 所述计算机设备包括存储器和处理器, 所述存储器中存储有计算 机程序, 所述计算机程序由所述处 理器加载并执 行, 以实现如权利要求1 ‑5中的任一方法。 10.一种计算机程序产品, 当所述计算机程序产品在计算机设备上运行时, 使得计算机 设备执行如权利要求1 ‑5中的任一方法。权 利 要 求 书 2/2 页 3 CN 115270143 A 3

PDF文档 专利 基于可变窗口的细粒度代码加密方法及其代码的运行方法

文档预览
中文文档 14 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共14页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 基于可变窗口的细粒度代码加密方法及其代码的运行方法 第 1 页 专利 基于可变窗口的细粒度代码加密方法及其代码的运行方法 第 2 页 专利 基于可变窗口的细粒度代码加密方法及其代码的运行方法 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-07 12:38:39上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。