Spi存储设备的加密数据读写方法及嵌入式处理器芯片

文档序号:1831525 发布日期:2021-11-12 浏览:19次 >En<

阅读说明:本技术 Spi存储设备的加密数据读写方法及嵌入式处理器芯片 (Encrypted data read-write method of SPI storage equipment and embedded processor chip ) 是由 吴德煌 原顺 于 2021-10-13 设计创作,主要内容包括:本发明实施例公开了SPI存储设备的加密数据读写方法及嵌入式处理器芯片,其中加密数据读取方法包括:响应于CPU将待访问数据地址设置给加解密处理单元,所述加解密处理单元根据所述待访问数据地址计算分组密钥;SPI控制器根据所述待访问数据地址,对SPI存储设备发起数据访问和传输操作;SPI控制器从所述加解密单元读取对应的分组密钥,将所述分组密钥与从所述SPI存储设备接收到的密文数据进行异或运算,得到解密数据;所述CPU从所述SPI控制器接收所述解密数据。本发明实施例实现数据的写入在线加密,读取在线解密;数据的加密和解密过程实时完成,读写速率不受影响。(The embodiment of the invention discloses an encrypted data reading and writing method of SPI storage equipment and an embedded processor chip, wherein the encrypted data reading method comprises the following steps: responding to a CPU to set a data address to be accessed to an encryption and decryption processing unit, and calculating a grouping key by the encryption and decryption processing unit according to the data address to be accessed; the SPI controller initiates data access and transmission operation to the SPI storage device according to the data address to be accessed; the SPI controller reads a corresponding group key from the encryption and decryption unit, and performs exclusive-OR operation on the group key and ciphertext data received from the SPI storage device to obtain decrypted data; the CPU receives the decrypted data from the SPI controller. The embodiment of the invention realizes the write-in online encryption and the read online decryption of data; the encryption and decryption processes of the data are finished in real time, and the read-write speed is not influenced.)

SPI存储设备的加密数据读写方法及嵌入式处理器芯片

技术领域

本发明涉及电子芯片技术领域,特别涉及一种SPI存储设备的加密数据读写方法及嵌入式处理器芯片。

背景技术

SPI 存储设备是指使用 SPI 总线接口的存储设备,常见有 SPI NOR、SPI NAND以及 SPI SRAM 等。通常 SPI 存储设备容量小,成本相对较低,是嵌入式设备中常用的存储设备类型。

SPI 存储设备的在线加密存储是指保存在存储设备上的数据是加密数据,但是CPU 读取到的数据却是明文数据的一种技术。使用该技术,既可以加密保护存储在 SPI 存储设备上的数据,又可以将加密过程隐藏起来,对 CPU 透明,从而让用户的使用更为简单。

参照图1,当前 SPI 存储设备的在线加密存储技术的实现流程如图1所示。系统将SPI 存储上密文相关的数据区域,映射到 CPU 可以读取的地址空间。CPU 读取加密数据时,直接发起对相关地址空间的读操作。读取过程中,加密数据被数据通路上的解密单元进行解密,然后将相关明文数据传送给 Cache,最后通过 Cache 将数据返回给 CPU。

SPI 在线加密存储主要应用在固件加密,数据保护等应用场景。比如固件加密的场景,厂商可以使用该技术对出厂烧录在 SPI 存储设备上的固件进行加密,然后将密钥固化在主控芯片内部,从而将 SPI 存储设备上的固件与主控芯片绑定在一起,防止非法固件被非法复制。

现有的 SPI 存储设备的在线加密保护技术有几个缺点。

参照图2,第一个缺点是,数据传输和加密、解密是串行处理的,效率较低。SPI 存储设备的一个特点是总线传输速率较低,目前的技术方案,一旦启用了数据加密传输,总体的传输速率变得更低。这里有两个原因,一是设计上解密单元与总线传输是串行的;二是加密算法的选择也有影响,有些算法必须等到足够的数据到来,才可以进行解密处理。

第二个缺点是对 SPI NAND 的支持不友好。这是与 SPI NAND 不可随机读取的特性有关。目前的方案通过Cache 映射加密数据区域,Cache 是可以随机读取的,但是 SPINAND 却不可以随机读取。由于两种设备的特性不匹配,导致不能很好的支持 SPI NAND 设备。

第三个缺点是对写操作支持不友好。即使是对 SPI NOR 设备,当前的方案也不能很好的支持加密写入操作。原因是 SPI NOR 设备可以支持随机读取,但是写入操作却要按照最小数据块的方式,先擦除再写入,这也与 Cache 的特性不匹配。Cache 是支持随机写入的,并且写入操作不需要先进行擦除。由于这个原因,目前的技术方案,通常只看到在线解密读取的功能,不见在线加密写入的功能。

发明内容

本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种SPI存储设备的加密数据读取方法,可以实现数据的写入在线加密,读取在线解密;数据的加密和解密过程实时完成,读写速率不受影响;并且可以支持 SPI NOR、SPI NAND 以及 SPISRAM 等存储设备的读和写操作。

本发明还提出一种SPI存储设备的加密数据写入方法。

本发明还提出一种嵌入式处理器芯片。

根据本发明的第一方面实施例的SPI存储设备的加密数据读取方法,包括以下步骤:响应于CPU将待访问数据地址设置给加解密处理单元,所述加解密处理单元根据所述待访问数据地址计算分组密钥;SPI控制器根据所述待访问数据地址,对SPI存储设备发起数据访问和传输操作;SPI控制器从所述加解密单元读取对应的分组密钥,将所述分组密钥与从所述SPI存储设备接收到的密文数据进行异或运算,得到解密数据;所述CPU从所述SPI控制器接收所述解密数据。

根据本发明实施例的SPI存储设备的加密数据读取方法,至少具有如下有益效果:本发明实施例的方法实现对CPU透明的SPI加密存储,实现在线解密过程实时完成,不影响传输速率。

根据本发明的一些实施例,所述加解密处理单元根据所述待访问数据地址计算分组密钥包括:所述加解密单元采用对称密钥算法,通过与数据位置相关的计数值,计算数据的分组密钥;其中,对称密钥算法包括但不限于AES、DES、TEA 和 SM4。

根据本发明的一些实施例,CPU发起SPI存储器的访问时,向所述加解密单元配置当前传输的密文开始位置和长度;所述加解密单元根据所述密文开始位置和长度,在所述SPI控制器输出有效分组密钥或无效分组密钥。本实施例可以实现明文和密文混合传输,可以有效提高访问效率。

根据本发明的一些实施例,所述SPI控制器在接收所述SPI存储设备传输的数据进行行检测,若访问的物理块为空块,则通过寄存器输出空块信息。本实施例的SPI控制器支持空块检测,该功能可以有效解决启动在线加解密功能后出现的应用不匹配问题。

根据本发明的第二方面实施例的SPI存储设备的加密数据写入方法,包括以下步骤:响应于CPU将待写入数据地址设置给加解密处理单元,所述加解密处理单元根据所述待写入数据地址计算分组密钥;SPI控制器接收待写入数据,并从所述加解密单元读取对应的分组密钥,将所述待写入数据与所述分组密钥进行异或运算,得到加密数据;SPI控制器根据所述待写入数据地址将所述加密数据写入SPI存储设备。

根据本发明实施例的SPI存储设备的加密数据写入方法,至少具有如下有益效果:本发明实施例的方法实现对CPU透明的SPI加密存储,实现在线加密过程实时完成,不影响传输速率。

根据本发明的一些实施例,所述加解密处理单元根据所述待写入数据地址计算分组密钥包括:所述加解密单元采用对称密钥算法,通过与数据位置相关的计数值,计算数据的分组密钥;其中,对称密钥算法包括AES、DES、TEA 和 SM4。

根据本发明的一些实施例,CPU发起SPI存储器的写操作时,向所述加解密单元配置当前传输的密文开始位置和长度;所述加解密单元根据所述密文开始位置和长度,在所述SPI控制器输出有效分组密钥或无效分组密钥。本实施例可以实现明文和密文混合传输,可以有效提高访问效率。

根据本发明的第三方面实施例的嵌入式处理器芯片,包括:CPU,用于发起SPI存储设备读写操作;加解密处理单元,与所述CPU相连,用于根据所述CPU的配置通过对称密钥算法计算分组密钥;SPI控制器,与所述CPU和所述加解密单元相连,用于根据所述加解密单元的分组密钥对SPI存储设备的读写数据进行加解密操作。

根据本发明实施例的嵌入式处理器芯片,至少具有如下有益效果:本发明实施例通过对称密钥算法和加解密处理单元,实现SPI 实时加密存储功能。本发明实施例可以实现数据的加密和解密处理不导致传输效率的下降,分组密钥计算和数据的传输过程是同时进行的。

根据本发明的一些实施例,所述SPI控制器包括空块检测单元,用于对接收的数据进行行检测。本发明实施例的SPI控制器能够检测空块,从而使得软件应用感觉不到与访问普通 SPI 存储的区别。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1为现有技术 SPI 存储设备的在线加密存储技术的实现流程示意图;

图2为现有技术 SPI 存储设备的在线加密存储技术传输速率示意图;

图3为本发明实施例的嵌入式处理器芯片读写SPI存储设备示意图;

图4为本发明实施例的SPI存储设备的加密数据读取方法的流程示意图;

图5为本发明实施例的SPI存储设备的加密数据写入方法的流程示意图;

图6为本发明实施例的明文和密文混合传输的示意图;

图7为本发明实施例的使用对称密钥算法加解密数据的示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个及两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。

CPU:中央处理器;

SPI:Serial Peripheral Interface,串行外设接口;

NOR:一种非易失性闪存技术,可支持随机读取;

NAND:一种非易失性闪存技术。

参照图3,本发明实施例的嵌入式处理器芯片,包括:CPU,用于发起SPI存储设备读写操作;加解密处理单元,与CPU相连,用于根据CPU的配置通过对称密钥算法计算分组密钥;SPI控制器,与CPU和加解密单元相连,用于根据加解密单元的分组密钥对SPI存储设备的读写数据进行加解密操作。

在一些实施例中,SPI控制器包括空块检测单元,用于对接收的数据进行行检测。

参照图4,本发明实施例的SPI存储设备的加密数据读取方法包括以下步骤:当CPU 需要访问数据加密区域时,首先将需要访问的数据地址设置给加解密处理单元,加解密处理单元立即开始计算对应位置的分组密钥;同时 SPI 控制器按照正常的访问流程,对SPI 存储设备发起数据访问和传输操作;等到数据传输至 SPI 控制器时,从加解密处理单元中读取对应的分组密钥,对接收到的数据进行异或运算,得到解密数据。

在一些实施例中,CPU发起SPI存储器的访问时,向加解密单元配置当前传输的密文开始位置和长度;加解密单元根据密文开始位置和长度,在SPI控制器输出有效分组密钥或无效分组密钥。

在一些实施例中,SPI控制器在接收SPI存储设备传输的数据进行行检测,若访问的物理块为空块,则通过寄存器输出空块信息。SPI NOR 和 SPI NAND 都支持按物理块大小进行擦除操作。擦除后的物理块为空块,每个字节位置的数值默认都为 0xFF。在实际应用中,软件可能需要对物理块进行空块检测。然而使能了 SPI 在线加密功能之后,CPU 读取到的数据是被加解密处理单元处理后的数据,即使所读的物理块为空块,得到的数据却不是 0xFF。这让一些依赖 SPI NOR 和 SPI NAND 的特性进行空块检测的软件模块无法正常检测和判断空块,相关功能无法正常工作,因此空块检测功能十分重要。本实施例的解决方案是在对应的 SPI 控制器内添加空数据检测功能。当SPI 控制器访问的物理块为空块时,所读取的数据全部为 0xFF;SPI 控制器在接收数据过程中可以对其进行检测,并且在数据块接收完时,通过寄存器给出相应的信息,告知 CPU 当前数据块是否为空块。

参照图5,本发明实施例的SPI存储设备的加密数据写入方法包括以下步骤: CPU将待写入数据地址设置给加解密处理单元,加解密处理单元根据待写入数据地址计算分组密钥;SPI控制器接收待写入数据,并从加解密单元读取对应的分组密钥,将待写入数据与所述分组密钥进行异或运算,得到加密数据;SPI控制器根据待写入数据地址将加密数据写入SPI存储设备。

在一些实施例中,CPU发起SPI存储器的写操作时,向加解密单元配置当前传输的密文开始位置和长度;加解密单元根据密文开始位置和长度,在所述SPI控制器输出有效分组密钥或无效分组密钥。本实施例中,采用明文和密文混合传输。参照图6,一次典型的写入传输包括命令、地址及数据。SPI 存储的访问是通过 SPI 总线上发送命令来实现的,因此不能对总线上传输的所有数据进行加密处理。因为诸如命令、地址等信息被加密处理,SPI存储设备无法正常工作。一种可行的方式是将不加密的数据和加密的数据分开传输,比如先以不加密的方式传输上图中的命令和地址,再以加密的方式传输数据部分。为了有更好的传输效率,本实施例所提供的方案可以通过配置加解密处理单元,实现明文数据和密文数据的混合传输,具体方法如下:对于每次传输,可以向加解密处理单元配置当前传输的密文开始位置和长度;加解密处理单元在输出分组密钥时,明文区域输出无效的分组密钥,密文区域输出有效的分组密钥。

参照图7,在一些实施例中,加解密单元采用对称密钥算法,通过与数据位置相关的计数值,计算数据的分组密钥;其中,对称密钥算法包括AES、DES、TEA 和 SM4等。算法和模式的选择会对加解密处理单元的实现有较大的影响,有些算法和模式的数据处理,需要等到与足够的数据才可以启动,有些算法和模式则不需要等待数据。相比非对称密钥算法,对称密钥算法更适合处理数据量较大的应用场景,因此本发明的方案中,对数据的加密和解密处理,使用对称密钥算法。常见的对称密钥算法包括 AES、DES、TEA 和 SM4 等。计数器模式(Counter Mode)是对称密钥算法的应用模式,该模式的特点是使用与数据位置相关的计数值(Counter)计算数据的分组密钥,然后再使用该分组密钥与数据进行异或运算,从而对数据进行加密和解密。该模式的优点是只需要知道数据的位置,不需要等待数据传输完毕,即可以计算其对应的分组密钥。使用分组密钥对数据进行加密、解密的处理过程是异或运算,是一个极为简单的硬件处理过程,不会引起传输延时。计数器模式还是一个流式的数据加解密模式,不要求处理的数据按一定的字节长度对齐,可以处理任意字节长度的数据。同时计数器模式中,加密和解密的处理流程完全一致,硬件实现简单。

本实施例中,通过使用对称密钥算法和计数器模式,可以实现下面的功能:CPU 只要给定需要访问(读、写)的数据位置,加解密处理单元即可开始计算分组密钥;加解密处理单元计算分组密钥的过程,与数据在 SPI 总线上的传输过程可以并行处理;可以对任意长度的数据进行加密、解密。

相对现有的技术,本发明所提出的 SPI 存储实时加解密技术最大的特点是数据的加密和解密处理并不会导致传输效率的下降,其分组密钥计算和数据的传输过程是同时进行的;另外一个显著特点是可以支持 SPI NOR、SPI NAND 等各种存储设备的在线读写加解密;并且在使能了在线加解密功能之后,仍然能够体现闪存的特性,比如能够检测空块,从而使得软件应用感觉不到与访问普通 SPI 存储的区别。

尽管本文描述了具体实施方案,但是本领域中的普通技术人员将认识到,许多其它修改或另选的实施方案同样处于本公开的范围内。例如,结合特定设备或组件描述的功能和/或处理能力中的任一项可以由任何其它设备或部件来执行。另外,虽然已根据本公开的实施方案描述了各种例示性具体实施和架构,但是本领域中的普通技术人员将认识到,对本文所述的例示性具体实施和架构的许多其它修改也处于本公开的范围内。

上文参考根据示例性实施方案所述的系统、方法、系统和/或计算机程序产品的框图和流程图描述了本公开的某些方面。应当理解,框图和流程图中的一个或多个块以及框图和流程图中的块的组合可分别通过执行计算机可执行程序指令来实现。同样,根据一些实施方案,框图和流程图中的一些块可能无需按示出的顺序执行,或者可以无需全部执行。另外,超出框图和流程图中的块所示的那些部件和/或操作以外的附加部件和/或操作可存在于某些实施方案中。

因此,框图和流程图中的块支持用于执行指定功能的装置的组合、用于执行指定功能的元件或步骤的组合以及用于执行指定功能的程序指令装置。还应当理解,框图和流程图中的每个块以及框图和流程图中的块的组合可以由执行特定功能、元件或步骤的专用硬件计算机系统或者专用硬件和计算机指令的组合来实现。

上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种适用于计算机信息安全防护的方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类