[发明专利]流水线指令流加解密方法有效
申请号: | 201811440890.2 | 申请日: | 2018-11-29 |
公开(公告)号: | CN109583238B | 公开(公告)日: | 2023-03-28 |
发明(设计)人: | 郭庆隆 | 申请(专利权)人: | 中国电子科技集团公司第四十七研究所 |
主分类号: | G06F21/72 | 分类号: | G06F21/72;G06F9/30;G06F9/38 |
代理公司: | 沈阳科苑专利商标代理有限公司 21002 | 代理人: | 王倩 |
地址: | 110032 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 流水线 指令 解密 方法 | ||
本发明涉及流水线指令流加解密方法,该方法提出使用可配置的密钥,通过多条连续特殊加密指令来打开、关闭内核的加解密模块。获取指令码后,通过对指令流的加密判定,确定是否需要解密,然后再进行指令解码,指令执行,最后回写到通用寄存器中。该方法可以实现通过动态配置密钥、使用特殊的指令流控制CPU内核的加解密组件,来实现加密和解密控制。
技术领域
本发明属于CPU内核设计领域,具体说是流水线指令流加解密方法。
背景技术
在软件技术上,加解密算法的研究已经非常丰富;通过软硬件结合的方式进行加解密,也有了一定的研究。
目前的加密技术,是通过专用加密芯片,将把加密芯片信息、专有钥匙信息、硬盘信息进行对应并做加密运算,同时写入硬盘的主分区表。但是,这虽然在一定程度上保护了硬盘,但是需要额外的加密芯片,且成本较高、仍然有被破解的风险;如果使用单一的一条指令,或者通过写寄存器的简单方式作为加解密的开关,仍然很容易被破解。
由于系统的加密算法是固定的,所以无法进行实时调整,也无法在线、动态地打开与关闭加解密开关,更不能实时开启、关闭加解密。
发明内容
本发明目的是提供一种流水线指令流加解密方法,以克服传统的软件加密方法的缺陷。本方法深入到CPU内核、在指令级进行加解密进行研究,并且使用指令流的方式作为加解密的判定。
本发明为实现上述目的所采用的技术方案是:流水线指令流加解密方法,获取指令码后,通过对指令流的加密判定,确定是否需要解密,然后再进行指令解码,指令执行,最后回写到寄存器中。
流水线指令流加解密方法,包括以下步骤:
1)获取指令码;
2)对获取到的指令码进行加密判定:通过查询目标指令表、历史指令表得出判定结果,同时记录当条指令;
3)如果判定结果是解密开启,则进行解密;
如果判定结果是解密关闭,则不进行解密,直接进入下一步骤;
4)将上一步骤得到的指令进行指令执行和指令回写。
所述对获取到的指令码进行加密判定具体如下:
(1)查询历史指令表,得到历史指令序列,即过去若干条指令的SNCODE值组成的序列;
(2)查询目标指令表,得到目标指令序列,即当前指令的SNCODE值;
(3)如果当前是解密开启状态,则通过将历史指令序列与目标指令表的对比查询是否满足关闭条件;若满足,则判定结果为解密关闭;否则,维持当前状态不变;
如果当前是解密关闭状态,则通过将历史指令序列与目标指令表的对比查询查询是否满足开启条件;若满足,则判定结果为解密开启;否则,维持当前状态不变;
(4)记录当条指令。
通过将历史指令序列与目标指令表的对比查询是否满足关闭条件开启/关闭条件,具体如下:
将历史指令序列的SNCODE值依次排序,查找目标指令表中SNCODE值所对应的解密开启条件和解密关闭条件;
若历史指令序列的SNCODE值排序与目标指令表中解密开启条件、解密关闭条件中任一个条件中的SNCODE值排序相同,则目标指令表中该SNCODE值排序所对应的条件即为当前指令流满足的条件,也表示当前指令流的状态。
所述目标指令表包括SNCODE值域段以及对应的解密开启条件和解密关闭条件;所述解密开启条件和解密关闭条件均包括设定的SNCODE值排序。
通过在线配置目标指令表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第四十七研究所,未经中国电子科技集团公司第四十七研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811440890.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种安全的网间文件交换方法、客户端及服务器
- 下一篇:半导体装置