CN109471809A - 一种芯片的flash加密保护方法、装置、flash控制器及芯片 - Google Patents

一种芯片的flash加密保护方法、装置、flash控制器及芯片 Download PDF

Info

Publication number
CN109471809A
CN109471809A CN201811147926.8A CN201811147926A CN109471809A CN 109471809 A CN109471809 A CN 109471809A CN 201811147926 A CN201811147926 A CN 201811147926A CN 109471809 A CN109471809 A CN 109471809A
Authority
CN
China
Prior art keywords
page
key
flash
chip
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811147926.8A
Other languages
English (en)
Other versions
CN109471809B (zh
Inventor
陈诚
赵启山
陈光胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Eastsoft Microelectronics Co Ltd
Original Assignee
Shanghai Eastsoft Microelectronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Eastsoft Microelectronics Co Ltd filed Critical Shanghai Eastsoft Microelectronics Co Ltd
Priority to CN201811147926.8A priority Critical patent/CN109471809B/zh
Publication of CN109471809A publication Critical patent/CN109471809A/zh
Application granted granted Critical
Publication of CN109471809B publication Critical patent/CN109471809B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种芯片的FLASH加密保护方法、装置、FLASH控制器及芯片,所述FLASH加密保护方法包括如下步骤:在所述芯片上电或复位后,为FLASH的存储区内的每一存储页均生成页密钥,其中,不同存储页的页密钥相互独立;利用每一存储页的页密钥对写入相应存储页的数据进行加密。本发明技术方案可以有效提高芯片的FLASH中存储数据的安全性。

Description

一种芯片的FLASH加密保护方法、装置、FLASH控制器及芯片
技术领域
本发明涉及集成电路技术领域,尤其涉及一种芯片的FLASH加密保护方法、装置、FLASH控制器及芯片。
背景技术
芯片的内部核心电路通常包括非易失性程序存储器FLASH。FLASH不仅具备电子可擦除可编程的性能,在断电时也不会丢失数据。在使用芯片时,通常利用编程工具将应用程序下载到芯片的FLASH中,每次在芯片上电后便可以运行FLASH中的程序。随着技术的发展,芯片的应用领域越来越广泛,同时也对芯片中FLASH的保密性能提出了更高的要求。
现有技术中通常采用通用加密算法对FLASH存储的数据进行加密,但通用加密算法计算复杂、成本高、加密和解密速度缓慢,很难满足对读写速度要求较高的场合。另外,利用现有技术中的加密方式生成密钥之后,并不能再对密钥进行更新,很容易造成密钥被恶意程序窃取,导致FLASH存储的数据被破解,甚至会造成重大财产损失。
发明内容
本发明解决的技术问题是如何提高在芯片的FLASH中存储数据的安全性。
为解决上述技术问题,本发明实施例提供了一种芯片的FLASH加密保护方法,包括如下步骤:在所述芯片上电或复位后,为FLASH的存储区内的每一存储页均生成页密钥,其中,不同存储页的所述页密钥相互独立;利用所述每一存储页的所述页密钥对写入相应存储页的数据进行加密。
可选的,所述为FLASH的存储区内的每一存储页均生成页密钥包括:对于每一存储页,根据该存储页的页相关信息生成页密钥,其中,所述存储页的页相关信息选自以下一项或多项:所述存储页的页码序号、所述存储页的页擦除次数。
可选的,所述为FLASH的存储区内的每一存储页均生成页密钥还包括:对于每一存储页,根据所述芯片的芯片相关信息生成页密钥,所述芯片相关信息选自以下一项或多项:所述芯片序列号、所述芯片的硬件逻辑组合信息。
可选的,所述芯片的FLASH加密保护方法还包括:将所述页密钥存入密钥存储寄存器,所述密钥存储寄存器在所述芯片掉电、复位或异常时被清除,且所述密钥存储寄存器仅对所述页密钥可见。
可选的,所述利用每一存储页的页密钥对写入相应存储页的所述数据进行加密包括:对于写入每一存储页的数据,进行以下操作的一种或多种:移位、映射、逻辑运算,从而得到加密数据。
可选的,所述芯片的FLASH加密保护方法还包括:将所述FLASH的存储区内的存储页的页码转换为逻辑页的页码,所述逻辑页用于外部访问。
为解决上述技术问题,本发明实施例还提供了一种芯片的FLASH加密保护装置,包括:密钥生成管理模块,适于在所述芯片上电或复位后,为FLASH的存储区内的每一存储页均生成页密钥,其中,不同存储页的页密钥相互独立;数据安全处理模块,适于利用每一存储页的页密钥对写入相应存储页的数据进行加密。
可选的,所述密钥生成管理模块包括:第一密钥映射子模块,对于每一存储页,至少根据该存储页的页相关信息生成页密钥,其中,所述页相关信息选自以下一项或多项:存储页的页码序号、存储页的页擦除次数。
可选的,所述密钥生成管理模块还包括:第二密钥映射子模块,对于每一存储页,根据所述芯片的芯片相关信息生成页密钥,所述芯片相关信息选自以下一项或多项:芯片序列号、芯片的硬件逻辑组合信息。
可选的,所述密钥生成管理模块包括:密钥存储子模块,适于将所述页密钥存入密钥存储寄存器,所述密钥存储寄存器仅对所述页密钥可见;清除子模块,适于在所述芯片掉电、复位或异常时清除所述密钥存储寄存器。
可选的,所述数据安全处理模块包括:数据加密子模块,适于对写入每一存储页的数据,进行移位、映射、逻辑运算的一种或多种操作,以得到加密数据。
可选的,所述装置还包括:地址重映射模块,将所述FLASH的存储区内的存储页的页码转换为逻辑页的页码,所述逻辑页用于外部访问。
为解决上述技术问题,本发明实施例还提供了一种FLASH控制器,包括:系统总线接口模块、FLASH接口控制模块,以及所述芯片的FLASH加密保护装置;其中,所述系统总线接口模块适于接收操作指令,并发送所述操作指令至所述FLASH加密保护装置;所述FLASH接口控制模块适于接收所述FLASH加密保护装置发送的加密后的数据以及所述操作指令,并产生与所述FLASH匹配的接口访问信号。
为解决上述技术问题,本发明实施例还提供了一种芯片,包括:FLASH,以及所述的FLASH加密保护装置。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明技术方案在所述芯片上电或复位后,为FLASH的存储区内的每一存储页均生成页密钥,其中,不同存储页的页密钥相互独立;利用每一存储页的页密钥对写入相应存储页的数据进行加密。由此,每一存储页都具有独立的页密钥,全部存储页的页密钥都被破解的难度将大大增加,有效提高了芯片的FLASH中存储数据的安全性。
进一步,本发明技术方案可以将所述页密钥存入寄存器,所述寄存器在芯片掉电、复位或异常时被清除,在所述芯片恢复工作后,重新为FLASH的存储区内的每一存储页生成页密钥。由此,可以有效防止页密钥在芯片不工作时被恶意程序窃取,进一步提高了芯片的FLASH中存储数据的安全性。
进一步,本发明技术方案中根据相关页密钥对要写入的数据进行多次移位,并利用非线性数据转换表对数据进行转换,以及将数据与页密钥的至少一部分按位进行逻辑运算,以得到加密数据。由此,不仅满足了数据安全加密的需求,而且对数据加密和解密的计算速度快,能够适用于对数据读写速度要求较高的场合。
附图说明
图1是本发明实施例一种芯片的FLASH加密保护方法的流程图;
图2是图1中步骤S12的一种具体实施方式的流程图;
图3是本发明实施例一种芯片的FLASH加密保护装置的结构示意图;
图4是图3中密钥生成管理模块的结构示意图;
图5是图3中数据安全处理模块中的数据加密子模块的结构示意图;
图6是图3中地址重映射模块的结构示意图;
图7是本发明实施例一种FLASH控制器的结构示意图。
具体实施方式
本领域技术人员可以理解,现有技术中通常采用通用加密算法对FLASH存储的数据进行加密,但通用加密算法计算复杂、成本高、加密和解密速度缓慢,很难满足对读写速度要求较高的场合。另外,利用现有技术中的加密方式生成密钥之后,并不能再对密钥进行更新,很容易造成密钥被恶意程序窃取,导致FLASH存储的数据被破解,甚至会造成重大财产损失。
本发明实施例在所述芯片上电或复位后,为FLASH的存储区内的每一存储页均生成页密钥,其中,不同存储页的页密钥相互独立;利用每一存储页的页密钥对写入相应存储页的数据进行加密。由此,每一存储页都具有独立的页密钥,全部存储页的页密钥都被破解的难度将大大增加,有效提高了芯片的FLASH中存储数据的安全性。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
图1是本发明实施例一种芯片的FLASH加密保护方法的流程图。
请参考图1,所述芯片的FLASH加密保护方法可以包括如下步骤:
步骤S11:在所述芯片上电或复位后,为FLASH的存储区内的每一存储页均生成页密钥,其中,不同存储页的所述页密钥相互独立;
步骤S12:利用所述每一存储页的所述页密钥对写入相应存储页的数据进行加密。
本实施例中,所述芯片可以是MCU芯片、SOC芯片、MS卡(Memory Stick Card),MM卡(Multi Media Card)、SM卡(Smart Media Card)、TF卡(Trans Flash Card)、SD卡(SecureDigital Card)、CF卡(Compact Flash Card)等。
本领域技术人员可以理解,本发明实施例中所述的FLASH加密保护方法可以适用于各种类型的存储芯片,并能够起到有效保护数据的作用,本发明实施例对芯片的种类和型号不做限制。
本实施例中,所述芯片的FLASH可以包括存储区和信息区,所述存储区可以用来存储数据和程序,所述存储区可以用于存储芯片的配置信息,例如芯片中各个模拟模块的参数配置信息。其中,所述存储区允许用户的读取和写入;所述信息区可以包括仅允许用户读取而不允许用户写入的部分信息区,以及可以允许用户读取和写入的部分信息区。
在具体实施中,所述芯片的FLASH也可以仅包含存储区,也即FLASH的全部存储空间都可以被写入和读取。
具体实施步骤S12时,所述写入相应存储页的数据可以是指芯片内的处理器CPU通过系统总线向FLASH写入的数据。
进一步地,为FLASH的存储区内的每一存储页均生成页密钥可以包括:对于每一存储页,根据该存储页的页相关信息生成页密钥,其中,所述页相关信息可以选自以下一项或多项:存储页的页码序号、存储页的页擦除次数。例如,所述页密钥的生成过程可以仅依据所述存储页的页相关信息完成。
本实施例中,所述存储页是指可以存放数据的FLASH的存储区中擦除数据的最小单位。也就是说,在向FLASH擦除数据时,是以整页为单位进行擦除的,但读数据是没有限制,可任意读取字或字节。所述页码序号即为前述存储页的编号,以区分不同的存储页。
在一个非限制性的实施例中,所述页码序号可以是阿拉伯数字的序列,例如:所述页码序号可以依次编写为:1、2、3、4、5、6……。
在另一个非限制性的实施例中,所述页码序号可以是英文字母的序列,例如:所述页码序号可以依次编写为:A、B、C、D、E……。
需要说明的是,在编写页码序号时可以根据设计者的编写习惯、FLASH中存储区具体的页数或者具体应用场合而选择合适的序号形式,例如,若FLASH中存储区的页数较少,则可以选择英文字母的序列,若FLASH中存储区的页数较多,则选择阿拉伯数字的序列更为合适。本发明实施例对编写页码序号的形式不做限制。
本实施例中,在向存储页写入新数据时,需要擦除所述存储页前一次保存的数据。在向存储页第一次写入数据之后,后续每一次写入之前,会产生相应的擦除操作,而每次擦除操作便会被记录下来,形成所述页擦除次数,以用于更新所述页密钥。
所述页擦除次数可以被保存在芯片的FLASH的信息区中,并且保存有所述页擦除次数的信息区可以不对芯片的处理器CPU和/或其他外部接口开放。其中,所述页擦除次数是可以不断累计的。
进一步地,为了增加页密钥破解的难度,也可以根据所述芯片的芯片相关信息生成页密钥,所述芯片相关信息可以选自以下一项或多项:芯片序列号、芯片的硬件逻辑组合信息。
具体地,所述芯片序列号可以是芯片对外的唯一物理标识,芯片的硬件逻辑组合信息可以代表芯片内部电路器件的布局信息。另外,芯片封测完成后,便会生成固定不变的芯片序列号以及芯片的硬件逻辑组合信息,如芯片的批次号、所在晶圆的坐标信息等。
进一步地,可以利用密钥生成函数为FLASH的存储区内的每一存储页均生成页密钥,所述密钥生成函数可以采用杂凑算法(例如:SHA256算法或者SM3算法)对输入的页相关信息以及所述芯片的芯片相关信息进行处理,生成并输出所述页密钥。所述杂凑算法可以保证生成的页密钥具有随机性。
本发明实施例在芯片完成上电或复位后,为FLASH的存储区内的每一存储页均生成页密钥,其中,不同存储页的页密钥相互独立。由此,每一存储页都具有独立的页密钥,全部存储页的页密钥都被破解的难度将大大增加,有效提高了芯片的FLASH中存储数据的安全性。
进一步地,所述芯片的FLASH加密保护方法还可以包括:将所述页密钥存入密钥存储寄存器,所述寄存器在芯片掉电、复位或异常时被清除,且所述密钥存储寄存器仅对页密钥可见。也即,密钥存储寄存器在整个芯片内部的物理位置可以是随机的,并且不接入系统总线及各种外设接口,也就是说,所述密钥存储寄存器不对所述芯片的处理器CPU以及外设接口开放。同时,芯片处于掉电、复位、异常状态时,FLASH相关电路采用掉电处理。由此,可以有效防止在芯片不工作时,所述页密钥被恶意程序窃取,程序、数据也无法被读取,进一步提高了存储数据的安全性。
进一步地,在所述芯片恢复工作后,重新为FLASH的存储区内的每一存储页生成页密钥。重新生成页密钥时,依赖的信息(例如,页相关信息和芯片相关信息)以及生成算法保持不变。由于生成所述页密钥的相关信息并没有发生变化,此时再次生成的页密钥和前次被清除的页密钥相同。由此,在所述芯片恢复工作后,可以利用再次生成的页密钥对所述数据进行解密和读取。
进一步地,在计算得到所述页密钥后,执行步骤S12,即可以利用所述每一存储页的页密钥对写入相应存储页的所述数据进行加密。
具体地,对于写入每一存储页的数据,进行以下操作的一种或多种:移位、映射、逻辑运算,从而得到加密数据。
请参考图2,图2是图1中步骤S12的一种具体实施方式的流程图。
作为一个非限制性的实施方式,所述对写入相应存储页的数据进行加密可以包括如下步骤:
步骤S21:对于写入每一存储页的数据,将所述数据循环左移n位,得到第一过程数据,其中,n为所述页密钥低i位对应的数值,i都为正整数且i不大于所述页密钥的总位数;
步骤S22:利用第一数据转换表将所述第一过程数据映射为第二过程数据;
步骤S23:将所述第二过程数据循环左移m位,得到第三过程数据,其中,m为所述页密钥高j位对应的数值,j都为正整数且j不大于所述页密钥的总位数;
步骤S24:将所述第三过程数据与所述页密钥的至少一部分按位进行逻辑运算,得到加密数据。
具体地,所述逻辑运算可以为逻辑加法运算、逻辑乘法运算、逻辑否定运算或逻辑异或运算。本领域技术人员可以根据具体需求而适应性选择逻辑运算方式,本发明实施例对此不做限制。
进一步地,所述第一数据转换表可以为线性数据转换表或者非线性数据转换表。
在一个具体应用场景中,例如:所述页密钥key的长度为32位,利用所述页密钥对32位数据进行加密。
首先,可以将所述32位数据循环左移位,移位的次数为页密钥key的低5位所代表的值,即key[4:0]代表的值,以得到第一过程数据。所述第一过程数据为32位。
接下来,可以利用第一数据转换表将所述第一过程数据映射为第二过程数据。
具体地,所述第一数据转换表可以是一张字节到字节,或者半字到半字的转换表。所述第一数据转换表可以将输入转换表的字节转换为另外的字节,或者将输入转换表的半字转换为另外的半字,其中,所述输入的数据与输出的数据是一一对应的。
作为一个非限制性的实施方式,所述第一数据转换表可以为如下形式:
上述的第一数据转换表可以实现字节到字节的转换。由于一个字节是8位数据,因此,可以将所述转换表的第一行对应一个字节的前4位,可以将所述转换表的第一列对应同一个字节的后4位。所述前4位可以用二进制表示为0000、0001、0010、0011……1111,即十进制的0-15,也就是上述第一数据转换表的行中的0-f;同样的,所述后4位也可以用二进制表示为0000、0001、0010、0011……1111,即十进制的0-15,也就是上述第一数据转换表的列中的0-f。
具体地,如果输入的字节为“ef”,则经过所述第一数据转换表之后,输出的值为转换表中第e行第f列对应的值,也就是表中的“b8”;如果输入的字节为“7b”则经过第一数据转换表之后,输出的值为转换表中第7行第b列对应的值,也就是表中的“56”。
按照上述第一数据转换表的转换方式,可以将所述的第一过程数据转换为所述第二过程数据。其中,所述第二过程数据为32位。
接下来,将所述第二过程数据循环左移位,移位的次数为页密钥key的高5位所代表的值,即key[31:27]代表的值,以得到第三过程数据。其中,所述第三过程数据为32位。
最后,将32位的第三过程数据与32位的页密钥按位进行逻辑异或运算,以得到加密数据。
上述数据加密过程对应的代码可以表示为:
CRYPTO=KEY[ad*32+31:ad*32]^(Trans(PLAIN<<<n)<<<m);
其中,CRYPTO表示加密数据;PLAIN<<<n表示将所述32位数据循环左移n位,以得到第一过程数据,在该具体应用场景中,n为页密钥key的低5位所代表的值;Trans(PLAIN<<<n)表示利用Trans函数将第一过程数据映射为第二过程数据,所述第一数据转换表执行所述Trans函数;Trans(PLAIN<<<n)<<<m表示将所述第二过程数据循环左移m位,以得到第三过程数据,在该具体应用场景中,m为页密钥key的高5位所代表的值;KEY[ad*32+31:ad*32]^(Trans(PLAIN<<<n)<<<m)表示将所述第三过程数据与所述页密钥的至少一部分按位进行逻辑运算,得到加密数据,在该具体应用场景中,所述加密数据是由32位的第三过程数据与32位的页密钥按位进行逻辑异或运算得到的。
在读取数据的时候,需要对数据进行解密,所述解密的过程是加密的反操作。下面,对所述一个具体应用场景中加密后的数据进行解密的过程进行详细说明。
首先,读取FLASH的存储区的加密后的32位数据,并可以将32位的加密数据与32位的页密钥按位进行逻辑异或运算,得到第四过程数据。
接下来,可以将所述第四过程数据循环右移位,移位的次数为页密钥key的高5位所代表的值,即key[31:27]代表的值,以得到第五过程数据。其中,所述第五过程数据为32位。
接下来,可以利用反数据转换表将所述第五过程数据转换为第六过程数据。其中,所述反数据转换表是与所述第一数据转换表相对应的用于数据反转换的数据表。
最后,可以将所述第六过程数据循环右移位,移位的次数为页密钥key的低5位所代表的值,即key[4:0]代表的值,以得到加密前的数据。
在另一个具体应用场景中,例如:所述页密钥key的长度为128位,利用所述页密钥对32位数据进行加密。
首先,可以将所述32位数据循环左移位,移位的次数为页密钥key的低6位所代表的值,即key[5:0]代表的值,以得到第一过程数据。所述第一过程数据为32位。
接下来,可以利用第一数据转换表将所述第一过程数据映射为第二过程数据。其中,所述第二过程数据为32位。
具体地,所述第一数据转换表可以是一张字节到字节,或者半字到半字的转换表。所述第一数据转换表可以将输入转换表的字节转换为另外的字节,或者将输入转换表的半字转换为另外的半字,其中,所述输入的数据与输出的数据是一一对应的。
在所述另一个具体应用场景中,所述第一数据转换表以及利用所述第一数据转换表转换数据的方式可以参照前一个应用场景。当然,本领域技术人员也可以适应性的选择其他的数据转换表,本发明实施例对此不做限制。
接下来,将所述第二过程数据循环左移位,移位的次数为页密钥key的高6位所代表的值,即key[127:122]代表的值,以得到第三过程数据。其中,所述第三过程数据为32位。
最后,将32位的第三过程数据与所述页密钥中的部分数据按位进行逻辑异或运算,以得到加密数据。
在具体实施时,可以把128位的页密钥对应的数据分为4个数据块,每个数据块均包括32位的数据,并将所述4个数据块存放的地址依次编号为00、01、10、11。此时,将4个数据块存放的地址编号分别与32位数据所存放地址的最后两位进行比较。例如,若32位数据所存放地址的最后两位为10,则将前述经过移位得到的第三过程数据与地址编号为10的数据块所代表的页密钥的部分数据进行逻辑异或运算,以得到加密数据。
上述数据加密过程对应的代码可以表示为:
CRYPTO=KEY[ad*32+31:ad*32]^(Trans(PLAIN<<<n)<<<m);
其中,CRYPTO表示加密数据;PLAIN<<<n表示将所述32位数据循环左移n位,以得到第一过程数据,在该具体应用场景中,n为页密钥key的低6位所代表的值;Trans(PLAIN<<<n)表示利用Trans函数将第一过程数据映射为第二过程数据,所述第一数据转换表执行所述Trans函数;Trans(PLAIN<<<n)<<<m表示将所述第二过程数据循环左移m位,以得到第三过程数据,在该具体应用场景中,m为页密钥key的高6位所代表的值;KEY[ad*32+31:ad*32]^(Trans(PLAIN<<<n)<<<m)表示将所述第三过程数据与所述页密钥的至少一部分按位进行逻辑运算,得到加密数据,在该具体应用场景中,所述加密数据是由32位的第三过程数据与128位页密钥中的32位数据按位进行逻辑异或运算得到的。
在读取数据的时候,需要对数据进行解密,所述解密的过程是加密的反操作。下面,对所述另一个具体应用场景中加密后的数据进行解密的过程进行详细说明。
首先,读取FLASH的存储区的加密后的32位数据,并可以将32位的加密数据与所述页密钥中的部分数据按位进行逻辑异或运算,以得到第四过程数据。其中,数据解密时使用的所述页密钥的部分数据与在加密过程中采用的页密钥的部分数据一致。
接下来,可以将所述第四过程数据循环右移位,移位的次数为页密钥key的高6位所代表的值,即key[127:122]代表的值,以得到第五过程数据。其中,所述第五过程数据为32位。
接下来,可以利用反数据转换表将所述第五过程数据转换为第六过程数据。其中,所述反数据转换表是与所述第一数据转换表相对应的用于数据反转换的数据表。
最后,可以将所述第六过程数据循环右移位,移位的次数为页密钥key的低6位所代表的值,即key[5:0]代表的值,以得到加密前的数据。
本发明实施例根据相关页密钥对要写入的数据进行多次移位,并利用第一数据转换表对数据进行转换,以及将数据与页密钥的至少一部分按位进行逻辑运算,以得到加密数据。由此,不仅满足了数据安全加密的需求,而且对数据加密和解密的计算速度快,能够适用于对数据读写速度要求较高的场合。
进一步地,所述芯片的FLASH加密保护方法还可以包括:将所述FLASH的存储区内的存储页的页码转换为逻辑页的页码,所述逻辑页用于外部访问。
具体地,所述存储页是FLASH内部物理上实际存放数据的页,因此,所述存储页也可以被称作物理页。更具体而言,外部设备在访问FLASH时,使用的是逻辑页的页码而非物理页的页码。通常,物理页的页码对于外部设备也是不可见的。
本发明实施例可以利用映射函数将所述存储页转换为逻辑页,从而可以将存储页的页码序号打乱,可以有效防止数据被恶意程序读取。
进一步地,将所述FLASH的存储区内的存储页的页码转换为逻辑页的页码可以包括:将所述存储页的页码经过第二数据转换表映射为过程页码;将所述过程页码与预设偏移值相加,以得到所述逻辑页的页码。
进一步地,所述第二数据转换表可以为线性数据转换表或者非线性数据转换表。
在一个非限制性的实施例中,可以将页码为1的存储页转换为页码为6的逻辑页,可以将页码为13的存储页转换为页码为1的逻辑页。当芯片遇到恶意程序攻击时,从页码为1的逻辑页取出的数据并不是真正的页码为1的存储页所存放的数据,由此,可以有效保护数据安全。
进一步地,在实际读取FLASH的存储区内的数据时,可以根据预先定义的逻辑页到存储页的对应关系,将逻辑页转换为实际的存储页,进而响应芯片的处理器发出的读取指令,对FLASH的存储区内的数据进行读取操作。
具体实施时,将逻辑页转换为实际的存储页可以包括如下步骤:将所述逻辑页的页码与重映射偏移值进行累加,然后利用反向转换表将累加之后的结果映射为所述存储页的页码。其中,所述重映射偏移值是所述预设偏移值的负值,所述反向转换表是与所述第二数据转换表相对应的用于数据反转换的数据表。
进一步地,本发明实施例还公开了一种芯片的FLASH加密保护装置。请参考图3,所述FLASH加密保护装置1可以包括:密钥生成管理模块2,适于在所述芯片上电或复位后,为FLASH的存储区内的每一存储页均生成页密钥,其中,不同存储页的页密钥相互独立;数据安全处理模块3,适于利用每一存储页的页密钥对写入相应存储页的数据进行加密。
本发明实施例通过密钥生成管理模块2以及数据安全处理模块3的配合工作,可以为每一存储页都生成独立的页密钥,全部存储页的页密钥都被破解的难度将大大增加,有效提高了芯片的FLASH中存储数据的安全性。
请同时参考图3、图4。其中,图4是图3中密钥生成管理模块的结构示意图。
所述密钥生成管理模块2可以包括:第一密钥映射子模块21,对于每一存储页,至少根据该存储页的页相关信息生成页密钥,其中,所述页相关信息选自以下一项或多项:存储页的页码序号、存储页的页擦除次数。
进一步地,所述密钥生成管理模块2还可以包括:第二密钥映射子模块22,对于每一存储页,根据所述芯片的芯片相关信息生成页密钥,所述芯片相关信息选自以下一项或多项:芯片序列号、芯片的硬件逻辑组合信息。
进一步地,所述密钥生成管理模块2还可以包括:密钥存储子模块23,适于将所述页密钥存入密钥存储寄存器,所述密钥存储寄存器仅对所述页密钥可见;清除子模块24,适于在所述芯片掉电、复位或异常时清除所述密钥存储寄存器。
请同时参考图3、图5。其中,图5是图3中数据安全处理模块中的数据加密子模块的结构示意图。
具体地,所述数据安全处理模块3可以包括:数据加密子模块30,所述数据加密子模块30适于对写入每一存储页的数据,进行移位、映射、逻辑运算的一种或多种操作,以得到加密数据。
进一步地,所述数据加密子模块30可以包括:第一移位单元31,对于写入每一存储页的数据,将所述数据循环左移n位,得到第一过程数据,其中,n为所述页密钥低i位对应的数值,i都为正整数且i不大于所述页密钥的总位数;数据转换单元32,适于利用第一数据转换表将所述第一过程数据映射为第二过程数据;第二移位单元33,适于将所述第二过程数据循环左移m位,得到第三过程数据,其中,m为所述页密钥高j位对应的数值,j都为正整数且j不大于所述页密钥的总位数;逻辑运算单元34,适于将所述第三过程数据与所述页密钥的至少一部分按位进行逻辑运算,得到加密数据。
进一步地,所述第一数据转换表可以为线性数据转换表或者非线性数据转换表。
请同时参考图3、图6。其中,图6是图3中地址重映射模块4的结构示意图。
所述地址重映射模块4可以将所述FLASH的存储区内的存储页的页码转换为逻辑页的页码,所述逻辑页用于外部访问。
进一步地,所述地址重映射模块4可以包括:页码映射子模块41,适于将所述存储页的页码经过第二数据转换表映射为过程页码;累加子模块42,适于将所述过程页码与预设偏移值相加,得到所述逻辑页的页码。
进一步地,所述第二数据转换表可以为线性数据转换表或者非线性数据转换表。
请参考图7,图7是本发明实施例一种FLASH控制器的结构示意图。
所述FLASH控制器5可以包括:系统总线接口模块51、FLASH接口控制模块52,以及所述芯片的FLASH加密保护装置1;其中,所述系统总线接口模块51适于接收操作指令,并发送所述操作指令至所述FLASH加密保护装置1;所述FLASH接口控制模块52适于接收所述FLASH加密保护装置1发送的加密后的数据以及所述操作指令,并产生与FLASH匹配的接口访问信号。
进一步地,所述操作指令可以来自于所述芯片的处理器CPU或者芯片的外部控制器。
具体地,所述操作指令可以包括读数据指令或写数据指令。
进一步地,本发明实施例还公开了一种芯片,所述芯片可以包括:FLASH,以及所述的芯片的FLASH加密保护装置。
所述FLASH加密保护装置1的具体实施过程可以参见上述图1-2所示实施例中的芯片中的FLASH加密保护方法的实施过程,在此不再赘述。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (14)

1.一种芯片的FLASH加密保护方法,其特征在于,包括如下步骤:
在所述芯片上电或复位后,为FLASH的存储区内的每一存储页均生成页密钥,其中,不同存储页的所述页密钥相互独立;
利用所述每一存储页的所述页密钥对写入相应存储页的数据进行加密。
2.根据权利要求1所述芯片的FLASH加密保护方法,其特征在于,所述为FLASH的存储区内的每一存储页均生成页密钥包括:
对于每一存储页,根据该存储页的页相关信息生成页密钥,其中,所述存储页的页相关信息选自以下一项或多项:所述存储页的页码序号、所述存储页的页擦除次数。
3.根据权利要求2所述芯片的FLASH加密保护方法,其特征在于,所述为FLASH的存储区内的每一存储页均生成页密钥还包括:
对于每一存储页,根据所述芯片的芯片相关信息生成页密钥,所述芯片相关信息选自以下一项或多项:所述芯片序列号、所述芯片的硬件逻辑组合信息。
4.根据权利要求1所述芯片的FLASH加密保护方法,其特征在于,还包括:将所述页密钥存入密钥存储寄存器,所述密钥存储寄存器在所述芯片掉电、复位或异常时被清除,且所述密钥存储寄存器仅对所述页密钥可见。
5.根据权利要求1所述芯片的FLASH加密保护方法,其特征在于,所述利用每一存储页的页密钥对写入相应存储页的所述数据进行加密包括:
对于写入每一存储页的数据,进行以下操作的一种或多种:移位、映射、逻辑运算,从而得到加密数据。
6.根据权利要求1所述芯片的FLASH加密保护方法,其特征在于,还包括:将所述FLASH的存储区内的存储页的页码转换为逻辑页的页码,所述逻辑页用于外部访问。
7.一种芯片的FLASH加密保护装置,其特征在于,包括:
密钥生成管理模块,适于在所述芯片上电或复位后,为FLASH的存储区内的每一存储页均生成页密钥,其中,不同存储页的页密钥相互独立;
数据安全处理模块,适于利用每一存储页的页密钥对写入相应存储页的数据进行加密。
8.根据权利要求7所述芯片的FLASH加密保护装置,其特征在于,所述密钥生成管理模块包括:
第一密钥映射子模块,对于每一存储页,至少根据该存储页的页相关信息生成页密钥,其中,所述页相关信息选自以下一项或多项:存储页的页码序号、存储页的页擦除次数。
9.根据权利要求8所述芯片的FLASH加密保护装置,其特征在于,所述密钥生成管理模块还包括:
第二密钥映射子模块,对于每一存储页,根据所述芯片的芯片相关信息生成页密钥,所述芯片相关信息选自以下一项或多项:芯片序列号、芯片的硬件逻辑组合信息。
10.根据权利要求7~9任一项所述芯片的FLASH加密保护装置,其特征在于,所述密钥生成管理模块包括:
密钥存储子模块,适于将所述页密钥存入密钥存储寄存器,所述密钥存储寄存器仅对所述页密钥可见;
清除子模块,适于在所述芯片掉电、复位或异常时清除所述密钥存储寄存器。
11.根据权利要求7所述芯片的FLASH加密保护装置,其特征在于,所述数据安全处理模块包括:
数据加密子模块,适于对写入每一存储页的数据,进行移位、映射、逻辑运算的一种或多种操作,以得到加密数据。
12.根据权利要求7所述芯片的FLASH加密保护装置,其特征在于,还包括:地址重映射模块,将所述FLASH的存储区内的存储页的页码转换为逻辑页的页码,所述逻辑页用于外部访问。
13.一种FLASH控制器,其特征在于,包括:系统总线接口模块、FLASH接口控制模块,以及权利要求8-12任一项所述芯片的FLASH加密保护装置;
其中,所述系统总线接口模块适于接收操作指令,并发送所述操作指令至所述FLASH加密保护装置;所述FLASH接口控制模块适于接收所述FLASH加密保护装置发送的加密后的数据以及所述操作指令,并产生与所述FLASH匹配的接口访问信号。
14.一种芯片,其特征在于,包括:FLASH,以及权利要求8至12任一项所述的FLASH加密保护装置。
CN201811147926.8A 2018-09-29 2018-09-29 一种芯片的flash加密保护方法、装置、flash控制器及芯片 Active CN109471809B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811147926.8A CN109471809B (zh) 2018-09-29 2018-09-29 一种芯片的flash加密保护方法、装置、flash控制器及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811147926.8A CN109471809B (zh) 2018-09-29 2018-09-29 一种芯片的flash加密保护方法、装置、flash控制器及芯片

Publications (2)

Publication Number Publication Date
CN109471809A true CN109471809A (zh) 2019-03-15
CN109471809B CN109471809B (zh) 2021-07-27

Family

ID=65663208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811147926.8A Active CN109471809B (zh) 2018-09-29 2018-09-29 一种芯片的flash加密保护方法、装置、flash控制器及芯片

Country Status (1)

Country Link
CN (1) CN109471809B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116126753A (zh) * 2022-12-28 2023-05-16 江苏都万电子科技有限公司 一种防护存储器及存储方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1764920A (zh) * 2003-01-24 2006-04-26 埃塞博斯有限公司 存储器访问受保护的智能卡
US20060265563A1 (en) * 2003-09-30 2006-11-23 Infineon Technologies Ag Word-individual key generation
CN103458023A (zh) * 2013-08-30 2013-12-18 清华大学 分布式闪存存储系统
CN106570427A (zh) * 2016-11-08 2017-04-19 深圳市新国都支付技术有限公司 一种Flash加密存储方法及装置
CN107563226A (zh) * 2017-08-04 2018-01-09 致象尔微电子科技(上海)有限公司 一种存储器控制器、处理器模块及密钥更新方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1764920A (zh) * 2003-01-24 2006-04-26 埃塞博斯有限公司 存储器访问受保护的智能卡
US20060265563A1 (en) * 2003-09-30 2006-11-23 Infineon Technologies Ag Word-individual key generation
CN103458023A (zh) * 2013-08-30 2013-12-18 清华大学 分布式闪存存储系统
CN106570427A (zh) * 2016-11-08 2017-04-19 深圳市新国都支付技术有限公司 一种Flash加密存储方法及装置
CN107563226A (zh) * 2017-08-04 2018-01-09 致象尔微电子科技(上海)有限公司 一种存储器控制器、处理器模块及密钥更新方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116126753A (zh) * 2022-12-28 2023-05-16 江苏都万电子科技有限公司 一种防护存储器及存储方法
CN116126753B (zh) * 2022-12-28 2024-02-02 江苏都万电子科技有限公司 一种防护存储器及存储方法

Also Published As

Publication number Publication date
CN109471809B (zh) 2021-07-27

Similar Documents

Publication Publication Date Title
CN105607865B (zh) 安全数据储存装置、系统及其数据写入与读取方法
CN101040306B (zh) 伪随机数生成装置
CN202650015U (zh) 用于经加密存储器存取的系统
US10698840B2 (en) Method and apparatus to generate zero content over garbage data when encryption parameters are changed
KR20090080032A (ko) 저장 장치들에 대한 보안을 제공하는 방법 및 시스템
CN102419807A (zh) 固态非挥发性内存装置的安全抹除系统
CN101120349A (zh) 带有流中数据加密/解密的存储器系统
US9323943B2 (en) Decrypt and encrypt data of storage device
CN108229215A (zh) 一种地址加扰的存储装置及方法
JP2020529758A (ja) 記憶データの暗号化及び復号の機器及び方法
CN104732159A (zh) 一种文件处理方法及装置
CN109522758B (zh) 硬盘数据管理方法及硬盘
CN107579813A (zh) 信息加密、解密方法及装置
CN108351833A (zh) 用来压缩密码元数据以用于存储器加密的技术
CN108573176B (zh) 一种密钥派生加密的移动终端数据安全删除的方法及系统
CN114221766B (zh) 数据加密方法、解密方法及装置
CN104298926A (zh) 一种运行加密文件的方法和装置
CN102737270A (zh) 一种基于国产算法的银行智能卡芯片安全协处理器
TW201918923A (zh) 安全邏輯系統及操作安全邏輯系統的方法
CN103257938A (zh) 数据保护方法、存储器控制器与存储器储存装置
CN103746796A (zh) 一种实现智能卡sm4密码算法的协处理器
CN105472602A (zh) 一种加密装置及加密方法
US11017128B2 (en) Data security using bit transposition during memory accesses
CN109471809A (zh) 一种芯片的flash加密保护方法、装置、flash控制器及芯片
CN213876729U (zh) 一种ssd主控芯片随机缓存保密电路

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant