[发明专利]一种SPIFLASH加密接口及加密数据的读写方法有效
申请号: | 201510094016.8 | 申请日: | 2015-03-03 |
公开(公告)号: | CN104657288B | 公开(公告)日: | 2017-11-10 |
发明(设计)人: | 王运哲;姚香君;孙玉玺;孙晓宁;赵阳;刘大铕;刘奇浩 | 申请(专利权)人: | 山东华芯半导体有限公司 |
主分类号: | G06F12/14 | 分类号: | G06F12/14;G06F13/16 |
代理公司: | 济南舜源专利事务所有限公司37205 | 代理人: | 李舜江 |
地址: | 250101 山东省*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 spi flash 加密 接口 数据 读写 方法 | ||
技术领域
本发明属于电子芯片技术领域,涉及一种电子芯片的加密设备及方法,尤其是一种针对SPI FLASH的加密接口及读写方法;采用该加密接口及读写方法,能够实现对SPI FLASH的按字节读写,以及按字节加密,提高了系统访问SPI FLASH的效率。
背景技术
在一个加密主控芯片系统中,通常需要将启动程序部分的数据置于跟主控芯片一体封装的SPI NORFLASH中,以提高系统的安全系数。上述启动程序的数据在写入SPI FLASH之前必然需要对其进行加密处理,所以当读出上述数据后必然要进行反向的解密操作才能得到真实的数据。
现有技术中的加密算法,是针对整个字进行的加密运算,使得加密后的数据与其存储地址以及同一字内的位于不同字节的位有相关性。虽然SPI FLASH的接口标准支持按字节写的命令,但是采用上述按字加密的方式使得同一字内的不同字节之间产生依赖关系,丧失了按字节写的灵活性。
此外,由于FLASH的操作特性是先擦后写,而且擦除单位通常为一个扇区,如果只能按字写入的话,软件在要写入一个字节之前首先要判断该字节所在的字的所有字节是否有数据,如果没有数据可以直接写该字,如果任何一个字节有数据,都需要先将该字所在的扇区读出到缓存,将需要写的相应字节位置替换成新字节,然后进行擦除操作,然后再按照需要将整个扇区重新写入FLASH。该种方式不仅降低系统效率而且对软件有极高的要求,使得对SPI FLASH按字节写入加密数据的操作成本提高。此为现有技术的不足之处。
因此,提供设计一种新型的针对SPI FLASH的加密接口及读写方法,以提高系统访问SPI FLASH的效率是非常有必要的。
发明内容
本发明的目的在于,针对上述现有技术中存在的缺陷,提供设计一种针对SPI FLASH的加密接口及读写方法,以解决上述技术问题,在保持算法复杂度的同时,减少软件工作量,并提高系统访问SPI FLASH的效率。
为实现上述目的,本发明给出以下技术方案:
一种SPI FLASH加密接口,包括命令模块、数据模块、加密模块、解密模块、状态机模块以及协议转换模块;其特征在于:
所述命令模块与系统总线相连,用于寄存来自系统总线的地址、读写信息、数据块大小及传输类型,并将系统总线的读写需求传递至数据模块和状态机模块,将状态机模块的当前操作状态反馈至系统总线;
所述数据模块与系统总线、命令模块、加密模块以及解密模块相连,数据模块用于寄存系统总线要写入SPI FLASH的字节数据以及从SPI FLASH中读取的字节数据;
所述加密模块与数据模块、命令模块以及状态机模块相连,用于将写入SPI FLASH的字节数据按照特定的加密算法转换成密文;
所述解密模块与数据模块、状态机模块相连,用于将从FLASH内读出的字节数据按照特定的解密算法转换成明文;
所述状态机模块与命令模块、加密模块、解密模块以及协议转换模块相连,用于解析来自命令模块的数据,以实现对SPI FLASH读写擦状态的转换控制,并反馈FLASH的状态信息至命令模块;
所述协议转换模块与状态机模块、SPI FLASH相连,实现SPI协议转换,即将命令和数据按照SPI协议组成相应的串行命令序列格式转送至片外的SPI FLASH,或者将从SPI FLASH串行读入的数据寄存重新组成字节或者字的数据格式。
优选地,所述数据模块内设置有读数据缓存单元和写数据缓存单元。
一种SPI FLASH加密数据的写入方法,包括如下步骤:
S1:系统总线将写命令发送至命令模块,将字节写数据发送至数据模块;
S2:命令模块接收到写命令后,判断写命令中的地址是否在数据模块的写数据缓存单元中命中,如果命中,则将缓存数据更新,并转到S7,否则转到S3;
S3:命令模块将写命令传递至状态机模块,状态机模块对写命令进行状态转换;
S4:通过加密模块对数据模块中的字节写数据进行加密处理;
S5:将写命令以及经加密模块加密处理后的字节写数据依次传递至协议转换模块;
S6:协议转换模块按顺序将命令序列输出至SPI FLASH内;
S7:完成本次写操作。
优选地,所述步骤S4中包括如下步骤:
S401:对字节0的加密算法,如下:
wr_data_enc[0] = wr_data[0] ^ wr_data[2] ^ wr_addr[2];
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东华芯半导体有限公司,未经山东华芯半导体有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510094016.8/2.html,转载请声明来源钻瓜专利网。