[发明专利]一种基于硬件的嵌入式系统机密性保护方法有效
| 申请号: | 201810762746.4 | 申请日: | 2018-07-12 |
| 公开(公告)号: | CN108959129B | 公开(公告)日: | 2021-08-24 |
| 发明(设计)人: | 王翔;王维克;郝强;张准;徐斌;张晓冰;田运通;杜培 | 申请(专利权)人: | 北京航空航天大学 |
| 主分类号: | G06F12/14 | 分类号: | G06F12/14 |
| 代理公司: | 北京慧泉知识产权代理有限公司 11232 | 代理人: | 王顺荣;唐爱华 |
| 地址: | 100191*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 硬件 嵌入式 系统 机密性 保护 方法 | ||
1.一种基于硬件的嵌入式系统机密性保护方法,其特征在于:该方法包括以下步骤:
步骤1,根据选用的嵌入式处理器,选择对应的编译、链接工具链,将用户源程序经编译、链接生成嵌入式系统目标代码;
步骤2,在上位机对目标代码进行预处理,将目标代码进行加密,并将加密后的目标代码下载到嵌入式系统的非易失存储器中;
步骤3,对嵌入式系统进行上电复位,嵌入式系统开始进行初始化,处理器将自动从非易失存储器中存储的目标代码的系统复位地址处开始执行嵌入式程序;
步骤4,嵌入式处理器进入运行状态,执行后续嵌入式程序,如果指令Cache及数据Cache中的任意一个发生失靶、及数据Cache向外部存储器进行回写操作两种情况中的一种情况发生,则执行步骤5;否则,则按照步骤4的方法继续执行后续的嵌入式程序,直到程序执行完毕;
步骤5,如果数据Cache需要进行对外部存储器的回写操作、及嵌入式处理器访问数据Cache失靶且对应Cache行处于脏状态即dirty两种情况中的一种情况发生时,此时嵌入式处理器需要向外部存储器中写入数据,则执行步骤6;否则,即嵌入式处理器对于指令及数据的读取操作发生Cache失靶、及对于数据的写出操作发生数据Cache失靶且需要将写出地址对应的Cache行先读入数据Cache两种情况中的一种情况发生时,此时嵌入式处理器需要从外部存储器中读出数据,则执行步骤8;
步骤6,以指令Cache及数据Cache中的一行为粒度,将Cache行对应的物理地址进行截断、填充,并使用硬件实现的加密逻辑进行加密生成密码序列即pad,将pad异或Cache行的数据产生密文;
步骤7,将产生的密文根据嵌入式处理器计算出的存储地址,写入外部存储器中,然后按照步骤4的方法继续执行后续的嵌入式程序;
步骤8,以指令Cache数据Cache中的一行为粒度,将Cache行对应的物理地址进行截断、填充,并使用硬件实现的加密逻辑进行加密生成pad,与此同时从外部存储器中读取出密文,然后将pad异或读取到的密文,得到嵌入式处理器需要的指令及数据;
步骤9,将解密后的指令及数据送入嵌入式处理器,并写入到对应片上Cache的一行中,然后按照步骤4的方法继续执行后续的嵌入式程序;
在步骤2中所述的“在上位机对目标代码进行预处理,将目标代码进行加密,并将加密后的目标代码下载到嵌入式系统的非易失存储器中”,其作法如下:将目标代码中的代码段和数据段,按照指令Cache和数据Cache中的一行为单位,将其存放的物理地址进行截断、填充,然后采用选用的加密算法进行加密生成pad,然后将pad异或对应的Cache行产生密文,实现将目标代码进行加密;在生成pad过程中使用的加密算法和密钥,与步骤6、步骤7中使用的加密算法和密钥一致,以确保加密后的目标代码在嵌入式系统运行过程中可以被解密和使用,然后通过嵌入式系统中的JTAG即一种国际标准测试协议接口将加密后的目标代码下载到嵌入式系统中的非易失存储器中;
在步骤3中所述的“非易失存储器中存储的目标代码的系统复位地址”是指嵌入式系统上电后嵌入式处理器读取第一条指令的地址,该地址在嵌入式处理器和嵌入式系统设计完成后是一个固定的地址;
在步骤4中所述的“指令Cache和数据Cache中的任意一个发生失靶、及数据Cache向外部存储器进行回写操作”,包括以下几种情况:读指令Cache失靶;读数据Cache失靶,且对应的Cache行状态为干净即clean;读数据Cache失靶,且对应的Cache行状态为dirty;写指令Cache失靶,且对应的Cache行状态为clean;写指令Cache失靶,且对应的Cache行状态为dirty;指令控制数据Cache进行回写操作;
在步骤6和步骤8中所述的“将Cache行对应的物理地址进行截断、填充”的方法是,不同容量的Cache所对应的Cache中一行数据的字节宽度是不同的,根据一行数据中的字节宽度,截断、舍弃掉该行数据对应物理地址中的无效的较低几位,然后将剩余的有效物理地址进行填充,使其数据宽度满足所选用的加密算法需要的数据宽度;填充的方法能选用固定的字节进行填充,也能根据需要生成计数值及偏移向量进行物理地址的填充;
在步骤6和步骤8中所述的“使用硬件实现的加密逻辑进行加密”的过程中,所使用的硬件实现的加密逻辑是在嵌入式处理器芯片内部硬件实现的密码加密算法引擎,该密码引擎在嵌入式处理器芯片的连接位置是在Cache与系统总线之间,当嵌入式系统存在复数个外部存储器时也无需将密码引擎实例多份;在对进出外部存储器的代码及数据进行加密和解密时,利用了异或操作三个操作数能任意交换的特性,使用了流密码的方式;因此在硬件实现时,只需要实现所选用密码算法的加密逻辑,而不需要实现解密逻辑电路,减少了实现代价;
在步骤8中所述的“使用硬件实现的加密逻辑进行加密生成pad,与此同时从外部存储器中读取出密文”的过程中,使用硬件加密逻辑进行加密运算和从外部存储器中读取出密文的过程是同步并行进行的,这有效的降低了嵌入式系统在引入机密性保护机制后造成的性能损失。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810762746.4/1.html,转载请声明来源钻瓜专利网。





