[发明专利]一种XIP方式运行Flash中加密程序的方法及系统有效
| 申请号: | 202010398859.8 | 申请日: | 2020-05-12 |
| 公开(公告)号: | CN111709039B | 公开(公告)日: | 2023-04-28 |
| 发明(设计)人: | 范荔峰 | 申请(专利权)人: | 杭州寰星电子科技有限公司 |
| 主分类号: | G06F21/60 | 分类号: | G06F21/60;G06F21/79 |
| 代理公司: | 北京华清迪源知识产权代理有限公司 11577 | 代理人: | 盛明星 |
| 地址: | 311400 浙江省杭州市富阳区银*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 xip 方式 运行 flash 加密 程序 方法 系统 | ||
本发明实施例公开了一种XIP方式运行Flash中加密程序的方法及系统,采用AES CTR模式对Flash中的程序进行加密,提高了加密程序的安全性,可防止主动攻击;XIP方式运行Flash中加密程序,实现实时解密并将解密后的明文指令传送给CPU,该过程不需要多余的时钟周期,提高了CPU使用XIP方式的执行效率。
技术领域
本发明实施例涉及计算机科学技术领域,具体涉及一种XIP方式运行Flash中加密程序的方法及系统。
背景技术
Flash存储器具有体积小、功耗低、可靠稳定、数据保存时间长、可擦写次数高等优点,被广泛应用于嵌入式产品中。为了提高数据的安全,Flash中的应用程序会进行加密存储,一般在XIP(eXecute In Place,即芯片内执行)方式运行Flash中的程序过程中,主要是Cache未命中时消耗较多的时间,如果Flash中的程序是加密的,那解密过程的速度也会影响CPU取指周期,导致消耗多余的时钟周期,CPU的执行效率降低。
发明内容
为此,本发明实施例提供一种XIP方式运行Flash中加密程序的方法及系统,以解决现有的XIP方式运行Flash中加密程序的过程中存在的需要消耗多余的时钟周期,CPU的执行效率低的问题。
为了实现上述目的,本发明实施例提供如下技术方案:
根据本发明实施例的第一方面,提出了一种XIP方式运行Flash中加密程序的方法,所述方法包括:
接收CPU发送的取指令请求;
判断Cache中是否命中,若命中,则直接将命中的内容返回给CPU,若未命中,则根据所述取指令请求,由Flash中相应地址处读取密文指令,其中Flash中的程序是采用AESCTR模式进行分组加密存储的,通过使用密钥对计数器Counter和真随机数Counterbase的组合和/或数学运算值进行加密,然后将加密结果与各分组明文进行异或得到各分组密文;
同时将所述指令的偏移地址和所述真随机数Counterbase的组合和/或数学运算值使用所述密钥进行加密,然后将加密结果与所述密文指令进行异或得到明文指令;
将所述明文指令返回给所述CPU,并同时保存到缓存中。
进一步地,所述方法还包括:
通过控制QSPI接口由Flash中相应地址处读取密文指令。
进一步地,所述方法还包括:
在Flash中的程序进行加密之前,使用真随机数生成器生成所述真随机数Counterbase和密钥。
根据本发明实施例的第二方面,提出了一种XIP方式运行Flash中加密程序的系统,所述系统包括CPU、XIP控制模块和AES CTR加解密模块;
所述CPU用于向XIP控制模块发送取指令请求;
所述XIP控制模块用于接收CPU发送的取指令请求;
判断Cache中是否命中,若命中,则直接将命中的内容返回给CPU,若未命中,则根据所述取指令请求,由Flash中相应地址处读取密文指令,其中Flash中的程序是采用AESCTR模式进行分组加密存储的,通过使用密钥对计数器Counter和真随机数Counterbase的组合和/或数学运算值进行加密,然后将加密结果与各分组明文进行异或得到各分组密文;
同时将所述指令的偏移地址发送至AES CTR加解密模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州寰星电子科技有限公司,未经杭州寰星电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010398859.8/2.html,转载请声明来源钻瓜专利网。





