CN109656840A - 一种数据加解密的装置、方法、存储介质、以及数据存储*** - Google Patents
一种数据加解密的装置、方法、存储介质、以及数据存储*** Download PDFInfo
- Publication number
- CN109656840A CN109656840A CN201811573674.5A CN201811573674A CN109656840A CN 109656840 A CN109656840 A CN 109656840A CN 201811573674 A CN201811573674 A CN 201811573674A CN 109656840 A CN109656840 A CN 109656840A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- write
- scrambling
- round
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种数据加解密的装置、方法、存储介质、以及数据存储***。该数据加解密装置包括:对要写入存储器的写数据进行加密的数据加密装置,和对从存储器读出的密文数据进行解密的数据解密装置;其中,数据的加解密采用基于多轮运算的对称算法;数据加密装置包括:写密钥加扰器,基于写地址对写密钥进行加扰计算,生成加扰写密钥;以及写数据加密器,以加扰写密钥为进行第一轮加密的轮密钥,对写数据进行加密运算而生成密文数据;数据解密装置包括:读密钥加扰器,基于读地址对读密钥进行加扰计算,生成加扰读密钥;密钥预处理器,基于加扰读密钥,生成用于进行第一轮解密的轮密钥;以及读数据解密器,利用第一轮解密的轮密钥,对密文数据进行解密运算而生成明文数据。
Description
技术领域
本发明属于集成电路相关的信息安全领域,应用于数据安全存储、数据加密及解密,提供了一种应用于芯片存储数据安全的保护机制。
背景技术
目前,针对例如DRAM存储器数据加密的主流方法是通过固定密钥加扰方式,或采用对称算法CTR模式加密。这两种加密方式的优点是加密速度快,对存储器读写性能几乎没有影响;缺点是加密强度不够,攻击者通过已知明文和获取密文,很容易破解加密方式,达到窃取信息和篡改内容的目的。
数据存储,在向例如DRAM、NVMFlash存储器等进行数据存储时,根据存储器本身的特点,在写操作时,写请求和写数据准备好后,控制器就可以发出存储器写操作命令;在读操作时,读请求发出后,控制器可以发出存储器读命令,若干时钟周期后,存储器返回读数据。在此情况下,由于从存储器读取数据并解密所用时间较长,故导致得到明文数据的整体延时较长。
目前金融支付领域主要是采用AES、SM4算法加密数据,是目前数据安全的主流选择,但这种应用主要用于数据通讯和网络传输应用上,在存储器加密上,仍没有采用对称算法加密的技术,能达到一次一密钥的安全强度的方式更少使用。
发明内容
[发明要解决的课题]
随着信息安全在数据处理、数据存储、云计算等领域和大型数据中心的日益广泛的应用,数据加解密处理和存储加解密处理也备受关注和重视。例如,DDR数据加密,NVMFlash数据加密,这样的加密处理保护了数据安全,免于攻击和破坏。
另外,加密安全强度与实现复杂度有密切关系,例如AES、DES、SM4(原SMS4无线局域网算法标准)等对称算法由于其安全强度较高而得到应用。但另一方面,数据加解密处理对存储器性能提出了挑战,性能损失也成为了使用者是否使用安全功能的权衡点。实现高安全和高性能的数据存储,是本专利的创新点所在。
另外,在采用AES、DES、SM4等实现复杂度较高的对称算法时,密钥生成时间较长,再加上数据存储器读取数据所用的较长时间,会使整个数据读取及解密的过程所用时间进一步加长。缩短解密时间,也是本发明所要解决的技术问题之一。
[用于解决技术课题的技术方案]
本发明涉及一种对要写入存储器的写数据进行加密的数据加密装置,其特征在于,包括:密钥加扰器,基于所述写数据要被写入所述存储器时的写地址,对密钥进行加扰计算,生成用于对所述写数据进行加密的加扰密钥,以及写数据加密器,利用所述密钥加扰器生成的所述加扰密钥,对所述写数据进行加密,生成密文数据;其中,所述写数据加密器采用对称算法对所述写数据进行加密。
在上述数据加密装置中,密钥变化随地址信息变化而不同,做到一个地址一个密钥,这样增大了数据的安全性。
在上述数据加密装置中,也可以是,所述密钥加扰器对所述写地址的地址信息进行散列变换,并与所述密钥一起进行线性变换或非线性变换,从而输出所述加扰密钥。
在上述数据加密装置中,将地址变换后与密钥一起加扰,增加破解难度。
在上述数据加密装置中,也可以是,所述写数据加密器采用的所述对称算法为基于N轮运算的对称算法,以所述密钥加扰器生成的所述加扰密钥为第一轮轮密钥执行所述加密,其中,N是2的整数倍自然数;所述写数据加密器采用具有M级的流水线技术,在每级流水中执行所述对称算法中的N/M轮运算,其中,M是N的约数。
在上述数据加密装置中,所述写数据加密器采用流水线结构,提升数据吞吐率,提高了数据处理效率。
在上述数据加密装置中,也可以是,还包括:写地址加扰器,对所述写地址进行加扰计算,生成加扰写地址,用于使所述密文数据按照该加扰写地址写入所述存储器;所述写地址加扰器对所述写地址的地址信息进行线性变换或非线性变换,来生成所述加扰写地址。
在上述数据加密装置中,对数据写入地址进行加扰,扰乱写入存储器的物理地址,增加攻击难度。
在上述数据加密装置中,也可以是,所述密钥加扰器生成的一组所述加扰密钥可用于不同大小的写数据块的加密;所述写数据块可以是以存储物理单元为单位的数据块,也可以是以功能数据块为单位的数据块。
上述数据加密装置可以对不同大小的数据块进行加密,在进行加密时更加便捷。
本专利涉及一种对从存储器读出的密文数据进行解密的数据解密装置,其特征在于,包括:密钥加扰器,基于用于从所述存储器读出所述密文数据的读地址,对密钥进行加扰计算,生成用于对所述密文数据进行解密的加扰密钥,读数据解密器,基于所述密钥加扰器生成的所述加扰密钥对所述密文数据进行解密,得到明文数据;其中,所述读数据解密器采用对称算法对所述密文数据进行解密。
在上述数据解密装置中,也可以是,所述密钥加扰器对所述读地址的地址信息进行散列变换,并与所述密钥一起进行线性变换或非线性变换,从而输出所述加扰密钥。
在上述数据解密装置中,也可以是,所述密文数据是被通过基于N轮运算的对称算法加密而成的,其中N为2的整数倍自然数;本数据解密装置还具有密钥预处理器,基于所述密钥加扰器生成的所述加扰密钥,生成用于对所述密文数据进行第一轮解密运算的轮密钥;所述读数据解密器利用所述密钥预处理器生成的用于进行第一轮解密运算的轮密钥,执行N轮解密运算后得到所述明文数据。
在上述数据解密装置中,密钥预处理的全部所述N轮运算在读数据返回前完成,不对读延时产生附加影响,提高了解密数据的处理效率。
在上述数据解密装置中,也可以是,所述密钥预处理器采用具有L级的流水线技术,在每级流水中执行N/L轮运算,其中,L是N的约数。
在上述数据解密装置中,也可以是,所述读数据解密器采用具有K级的流水线技术,在每级流水中执行N/K轮运算,其中,K是N的约数。
在上述数据解密装置中,也可以是,还包括:读地址加扰器,对所述读地址进行加扰计算,生成加扰读地址,使得所述密文数据被按照该加扰读地址从所述存储器读出;所述读地址加扰器对所述读地址的地址信息进行线性变换或非线性变换,来生成所述加扰读地址。
在上述数据解密装置中,也可以是,所述密钥预处理器的动作与从所述存储器读出所述密文数据的动作并行执行;所述密钥预处理器在待解密的密文数据被从存储器读出之前或同时,完成所述用于进行第一轮解密运算的轮密钥的生成。
本专利涉及一种数据加解密装置,包括:对要写入存储器的写数据进行加密的数据加密装置,和对从存储器读出的被进行了所述加密的密文数据进行解密的数据解密装置;其中,所述数据加密装置与所述数据解密装置采用基于N轮运算的对称算法,其中,N是2的整数倍自然数;所述数据加密装置包括:写密钥加扰器,基于所述写数据要被写入所述存储器时的写地址,对写密钥进行加扰计算,生成用于对所述写数据进行加密的加扰写密钥,以及写数据加密器,以所述写密钥加扰器生成的所述加扰写密钥为进行第一轮加密的轮密钥,对所述写数据进行N轮加密运算而生成所述密文数据;所述数据解密装置包括:读密钥加扰器,基于用于从所述存储器读出所述密文数据的读地址,对读密钥进行加扰计算,生成用于对所述密文数据进行解密的加扰读密钥,密钥预处理器,基于所述读密钥加扰器生成的所述加扰读密钥,生成用于进行第一轮解密的轮密钥,以及读数据解密器,利用所述密钥预处理器生成的所述用于进行第一轮解密的轮密钥,对所述密文数据进行N轮解密运算而生成解密后的明文数据。
在上述数据加解密装置中,写地址加扰器对数据写入地址进行加扰,扰乱写入存储器的物理地址,增加攻击难度。数据加解密采用流水线结构,提升数据吞吐率,提高了数据处理效率。密钥预处理的全部所述N轮运算在读数据返回前完成,不对读延时产生附加影响,提高了解密数据的处理效率。
在上述数据加解密装置中,也可以是,所述数据加密装置还包括写地址加扰器,对所述写地址进行加扰计算,生成加扰写地址,用于使所述密文数据按照该加扰写地址写入所述存储器;所述写地址加扰器对所述写地址的地址信息进行线性变换或非线性变换,来生成所述加扰写地址;所述数据解密装置还包括读地址加扰器,对所述读地址进行加扰计算,生成加扰读地址,使得所述密文数据被按照该加扰读地址从所述存储器读出;所述读地址加扰器对所述读地址的地址信息进行线性变换或非线性变换,来生成所述加扰读地址。
在上述数据加解密装置中,也可以是,所述密钥预处理器采用具有L级的流水线技术,在每级流水中执行N/L轮运算,其中,L是N的约数;所述写数据加密器采用具有M级的流水线技术,在每级流水中执行N/M轮运算,其中,M是N的约数;所述读数据解密器采用具有K级的流水线技术,在每级流水中执行N/K轮运算,其中,K是N的约数。
本发明涉及一种数据加解密装置,采用基于N轮运算的对称算法,对所输入的明文数据进行加密,或对所输入的密文数据进行解密,其中,N是2的整数倍自然数;该数据加解密装置包括:密钥加扰器,基于***指定的对存储器的访问地址,对密钥进行加扰计算而生成加扰密钥,密钥预处理器,基于所述密钥加扰器生成的所述加扰密钥,生成用于进行第一轮解密运算的轮密钥,以及数据加解密器,基于所述密钥加扰器生成的所述加扰密钥,针对所输入的明文数据执行所述N轮运算,生成所述密文数据,或者基于所述密钥预处理器生成的所述用于进行第一轮解密运算的轮密钥,针对所输入的所述密文数据执行所述N轮运算,生成所述明文数据。
在该数据加解密装置中,数据写入地址进行加扰,扰乱写入存储器的物理地址,增加攻击难度。数据加解密采用流水线结构,提升数据吞吐率,提高了数据处理效率。密钥预处理的全部所述N轮运算在读数据返回前完成,不对读延时产生附加影响,提高了解密数据的处理效率。
在上述数据加解密装置中,也可以是,具有写地址加扰器,对所述访问地址进行加扰计算,生成加扰访问地址,用于按照该地址向所述存储器读写所述密文数据;所述地址加扰器对所述访问地址的地址信息进行线性变换或非线性变换,来生成所述加扰访问地址。
在上述数据加解密装置中,也可以是,所述密钥预处理器采用具有L级的流水线技术,在每级流水中执行N/L轮运算,其中,L是N的约数;所述数据加解密器采用具有M级的流水线技术,在每级流水中执行N/M轮运算,其中,M是N的约数。
在上述数据加解密装置中,也可以是,所述密钥预处理器的动作与从所述存储器读出所述密文数据的动作并行进行;所述密钥预处理器在待解密的密文数据被从存储器读出之前或同时,完成所述用于进行第一轮解密运算的轮密钥的生成。
在上述数据加解密装置中,也可以是,一组所述加扰密钥可用于不同大小的数据块的加密;所述数据块可以是以存储物理单元为单位的数据块,也可以是以功能数据块为单位的数据块。
在上述数据加解密装置中,也可以是,所述对称算法为DES、AES、SM4算法中的任一种。
本发明涉及一种数据存储***,包括:上述任一项所述的数据加解密装置,以及用于向存储器读写所述密文数据的存储控制器。
在上述数据存储***中,也可以是,所述数据加解密装置被内置于所述存储控制器内部,靠近于顶层数据端口,或靠近于底层存储器端口。
在上述数据存储***中,也可以是,对要写入存储器的写数据进行加密的数据加密过程,和对从存储器读出的被进行了所述加密的密文数据进行解密的数据解密过程;其中,所述数据加密过程与所述数据解密过程采用基于N轮运算的对称算法,其中,N是2的整数倍自然数;所述数据加密过程包括:写密钥加扰步骤,基于所述写数据要被写入所述存储器时的写地址,对写密钥进行加扰计算,生成用于对所述写数据进行加密的加扰写密钥,以及写数据加密步骤,以所述加扰写密钥为进行第一轮加密的轮密钥,对所述写数据进行N轮加密运算而生成所述密文数据;所述数据解密过程包括:读密钥加扰步骤,基于用于从所述存储器读出所述密文数据的读地址,对读密钥进行加扰计算,生成用于对所述密文数据进行解密的加扰读密钥,密钥预处理步骤,基于所述加扰读密钥,生成用于进行第一轮解密的轮密钥,以及读数据解密步骤,利用所述用于进行第一轮解密的轮密钥,对所述密文数据进行N轮解密运算而生成解密后的明文数据。
本发明涉及一种存储介质,其记录有如下的数据加解密程序:所述数据加解密程序用于执行对要写入存储器的写数据进行加密的数据加密过程,和对从存储器读出的被进行了所述加密的密文数据进行解密的数据解密过程;其中,所述数据加密过程与所述数据解密过程采用基于N轮运算的对称算法,其中,N是2的整数倍自然数;所述数据加密过程包括:写密钥加扰步骤,基于所述写数据要被写入所述存储器时的写地址,对写密钥进行加扰计算,生成用于对所述写数据进行加密的加扰写密钥,以及写数据加密步骤,以所述加扰写密钥为进行第一轮加密的轮密钥,对所述写数据进行N轮加密运算而生成所述密文数据;所述数据解密过程包括:读密钥加扰步骤,基于用于从所述存储器读出所述密文数据的读地址,对读密钥进行加扰计算,生成用于对所述密文数据进行解密的加扰读密钥,密钥预处理步骤,基于所述加扰读密钥,生成用于进行第一轮解密的轮密钥,以及读数据解密步骤,利用所述用于进行第一轮解密的轮密钥,对所述密文数据进行N轮解密运算而生成解密后的明文数据。
[发明效果]
本发明在每次加密或者解密时都使用不同的密钥,并且该密钥随着存储器读写地址的不同而不同,当采用对称算法加解密数据时,能够进一步提升存储器加解密的安全性。
另外,在本发明的加解密算法的执行过程中采用了流水线技术,大幅提高了数据吞吐率。
另外,本发明采用解密密钥预计算技术,利用向存储器读访问的发起请求到返回数据的时间间隔进行解密密钥的计算,从而减少了数据解密过程中解密密钥的生成所导致的整体时间延迟。
附图说明
图1是示出本发明的数据加密装置和数据解密装置的说明图。
图2是将本发明的数据加密装置与数据解密装置一体化的说明图。
图3是对本发明的加密与解密的运算过程进行说明的图。
图4是对本发明采用的流水线技术进行说明的图。
具体实施方式
在进行具体说明之前,以SM4算法为例,简单对SM4算法进行说明。SM4算法是国内重要的商用密码算法,其中加解密算法和密钥扩展算法都具有多轮非线性迭代计算、例如32轮非线性迭代计算。如图3的(A)与(B)所示,解密算法和加密算法的执行过程类似,只是在解密算法和加密算法中轮密钥的使用顺序相反,即,解密轮密钥是加密轮密钥的逆序。
下面对加解密算法进行简要介绍:
如图3的(A)所示,基于轮密钥rK0...rK31对作为加密对象的一组明文数据(X0,X1,X2,X3)进行32轮迭代运算后,得到数据(X32,X33,X34,X35),经过置换处理后,得到密文数据(Y0,Y1,Y2,Y3),即,(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32)。
另外,如图3的(B)所示,在对该密文数据进行解密时,逆序使用轮密钥,即,将rK31作为解密过程的第一轮轮密钥,逆序地使用轮密钥rk31,rk30,...,rk0对密文数据(Y0,Y1,Y2,Y3)、即(X35,X34,X33,X32)进行32轮迭代运算,得到数据(X3,X2,X1,X0),经过置换处理后,得到明文数据(M0,M1,M2,M3),即,
(M0,M1,M2,M3)=(X3,X2,X1,X0)。
由上可见,解密变换与加密变换过程类似,但解密变换与加密变换的轮密钥的使用顺序不同。在加密时,轮密钥的使用顺序为rk0(轮密钥0),rk1(轮密钥1),...,rk31(轮密钥31);在解密时,轮密钥的使用顺序为rk31(轮密钥31),rk30(轮密钥30),...,rk0(轮密钥0)。
此外,合成置换T是一个可逆变换,由非线性变换τ和线性变换L1复合而成,即T1(.)=L1(τ(.))。非线性变换τ由4个并行的S盒构成,S盒为固定的比特输出的变换,记为Sbox(.)。即,
B=τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3))。
A表示运算输入,对应图3中T变换的输入。B经过L变换后对应图3中T变换的输出。由于该合成变换T的具体内容属于公知技术,故在此省略其详细说明。
下面对轮密钥扩展算法进行简要介绍:
加密算法中的第一轮的轮密钥由加扰密钥通过轮密钥扩展算法生成,而下一轮的轮密钥由上一轮的轮密钥通过轮密钥扩展算法生成;同样地,解密算法中的第一轮的轮密钥实际上是加密算法中的末轮密钥,而下一轮的轮密钥是由上一轮使用的轮密钥通过轮密钥扩展算法生成的。即,在该算法中,轮密钥也是与加密算法的各轮运算同步地计算生成的。由于该轮密钥的运算及生成也属于公知技术,故在此省略其详细说明。
以上是为了更好地理解本发明,以SM4算法为例,对对称算法的加密解密过程进行了简要说明,但该说明并非表示本发明所采用的对称算法限定于SM4算法。AES、DES、SMS4等其它对称算法也包含类似的算法结构,且都属于公知技术,故在此省略详细说明。
下面,参照附图,对本发明的实施方式进行详细说明。
图1是示出本发明实施例的数据加解密装置100的说明图。该数据加解密装置100具有写数据加密装置101和读数据解密装置102。其中,所述写数据加密装置101,对要写入存储器116的写数据进行加密;所述读数据解密装置102,用于对从存储器116读出的密文数据进行解密。
本实施例的所述写数据加密装置101包括:写密钥加扰器103、写地址加扰器107和写数据加密器105。写数据加密装置101有三个输入信号:写数据,即要进行加密的明文数据;写地址,即***指定的要将写数据写入存储器的地址;以及密钥,即***指定的用于对写数据进行加密的密钥。写数据加密装置101有两个输出信号:密文数据,即由写数据加密器对写数据完成加密后的数据;以及加扰写地址,即由写地址加扰器对***指定的写地址按照预定的算法进行加扰后的、密文数据要被实际写入存储器的地址。
所述写密钥加扰器103,基于***指定的要将写数据写入存储器时的写地址,对密钥进行加扰计算,生成新的用于对写数据进行加密的加扰密钥。所述写密钥加扰器103将输入的地址信息进行例如散列变换,再与密钥一起进行线性变换或非线性变换而输出加扰密钥,用于加密写数据。由此,加扰密钥将随地址信息变化而不同,实现一个地址一个密钥。在此,对写密钥进行加扰的算法并不特别限定,可以根据需要采用任意的加扰算法。
所述写数据加密器105,基于写密钥加扰器103生成的加扰密钥,进行预定的变换后或直接作为用于对明文数据进行加密的第一轮轮密钥来使用,对明文数据进行加密,生成密文数据。为了提升加密强度,写数据加密器可采用对称算法如DES/AES/SM4等算法的ECB模式。对称算法结构通常为多轮运算,如DES算法是16轮运算,AES算法为10、12、14轮运算,SM4算法支持32轮运算。另外,为了提升数据吞吐率,在本实施例中写数据加密器采用流水线技术,每个时钟周期,可执行一个分组数据的加密。
此外,为了减小加密运算导致的写入延时,写数据加密器105采用每级流水执行多轮运算的方法。图4是对本发明采用的流水线技术进行说明的图。在图4中,示出了32轮SM4算法、每级流水执行两轮(round)运算的例子。具体来说,在加密运算的第一级流水运算中,***调配相关硬件资源等,使得同时针对使用轮密钥rk0、rk1的前两轮运算进行处理,在第一级流水的运算完成后,触发第一级流水线的触发器,然后针对其运算结果得到的数据,再执行使用轮密钥rk2、rk3的第二级流水运算,以此类推,在第十六级流水线使用轮密钥rk30、rk31进行计算而得到数据输出。实际每级流水执行多少轮运算,本领域技术人员可根据写数据加密器105的工作主频和生产工艺等进行设定,例如在运算资源满足时序要求的前提下,可支持最大轮数计算,即只有一级流水,执行32轮运算,也可以根据需要设定32级流水,每级执行1轮运算。
将以上处理总结为:写数据加密器105采用基于N轮运算的对称算法进行加扰计算,并采用具有M级的流水线技术,在每级中执行N/M轮运算,其中,N是2的整数倍自然数,M是N的约数。
下面参照图3的(A),对所述写数据加密器105的工作过程进行详细说明。图3是以32轮SM4算法为例的。以第一轮运算为例,首先,将待加密的写数据按照事先规定的规则,例如,按照每128bit进行划分,将以128bit为一组划分出的X0、X1、X2、X3四组数据为输入,基于通过对由密钥加扰器加扰后的加扰密钥进行规定的变换得到第一轮的轮密钥rK0(也可不进行变换,直接将加扰密钥作为第一轮的轮密钥rK0)进行第一轮运算。具体来说,将轮密钥rk0与数据X1、X2、X3进行符号“T”表示的非线性运算,将经过该非线性运算得到的结果与X0进行符号“+”所表示的线性运算,得到新的一组数据X4,完成第一轮的运算。然后,再以X1、X2、X3及该数据X4为输入,基于第二轮的轮密钥rk1,继续进行下一轮的运算。具体来说,将轮密钥rk1与数据X2、X3、X4进行符号“T”表示的非线性运算,将经过该非线性运算得到的结果与X1进行符号“+”所表示的线性运算,得到新的一组数据X5,从而完成第二轮的运算。接下来再以X2、X3、X4及该数据X5为输入,基于下一轮的轮密钥rk2,继续进行下一轮的运算。如此迭代运算,直到进行32轮运算后,生成(X32,X33,X34,X35),最后对所生成的(X32,X33,X34,X35)进行置换处理,最终得到用于写入存储器的密文数据(Y0、Y1、Y2、Y3)。
其中,除第一轮的轮密钥rK0外,每一轮的轮密钥都是基于前一轮的轮密钥进行规定的运算而得到的,例如,rK1是由rK0经过规定的运算得到的,rk2是由rK1经过规定运算得到的,……以此类推,末轮密钥rK31是由rK30经过规定的运算得到的。由于以上算法的过程属于公知技术,故在此省略更详细的说明。
此外,所述写地址加扰器107,用于对***指定的写地址的地址信息进行例如线性变换或非线性变换而得到一个新的地址,使得密文数据被按照该新的地址实际写入存储器,从而密文数据实际被写入的地址与***原本指定的写地址不同,扰乱写入存储器的物理地址,增加攻击难度。
通过以上可知,基于写地址对密钥进行加扰而生成新的密钥,从而实现一个地址一个密钥,并且隐藏了实际的密文数据写入地址。由此,大大增强了数据保护的安全强度。另外,本发明的写数据加密装置的写密钥加扰器103所生成的一组加扰密钥可用于保护不同大小的数据块,使得数据保护的灵活性增加。
写数据加密器105输出的密文数据和写地址加扰器输出的加扰写地址被同步输出给存储控制器,按照时序处理,写入存储器。
在此需要说明的是,所述写数据加密装置101即便不具有写地址加扰器107也能够实现数据的加密,故该写地址加扰器107并非本发明的必要技术特征,而是一种优选的实施方式。
以上的写数据加密装置101所具有的写密钥加扰器103、写数据加密器105、写地址加扰器107仅是例示,并不限于文中提到的构成方式及具体算法,本领域技术人员当然可以在理解了本发明的技术思想的情况下根据需要而采用其他的加密算法等来进行加密。
接下来,说明本实施例的读数据解密装置102。读数据解密装置102用于对从存储器116读出的密文数据进行解密。
参照图1,本实施例的读数据解密装置102包括读密钥加扰器104、读密钥预处理器108、读地址加扰器106、读数据解密器110。
读数据解密装置102有三个输入信息:读地址,即***指定的用于从存储器读出待解密的密文数据的地址;密钥,即***指定的用于对读数据进行解密的密钥;以及从存储器读出的待解密的密文数据。
读数据解密装置102有两个输出信息:加扰读地址,即由读地址加扰器对***指定的读地址按照预定的算法进行加扰后的、实际从存储器读出密文数据的地址;以及由读数据解密器解密后的明文数据。
所述读密钥加扰器104基于***提供的读地址,对***提供的密钥进行加扰计算,生成用于对所述密文数据进行解密的加扰密钥。在一个实施例中,读密钥加扰器104可以与前文说明的写密钥加扰器103采用相同的逻辑算法,即,读密钥加扰器104基于与***指定的当初加密存储数据时的写地址相同的读地址的地址信息,按照与写密钥加扰器103相同的逻辑算法,对与加密时使用的密钥相同的密钥进行加扰计算,从而得到与写密钥加扰器103生成的加扰密钥相同的加扰密钥,用于密文数据的解密。通过这样配置,能够使得***对密钥、以及写地址、读地址的管理变得简单,能够节省***资源。
当***采用的N轮运算的对称算法的N为1时,可直接基于读密钥加扰器104输出的加扰密钥进行解密运算。例如所述读数据解密器110利用该加扰密钥,执行与当初加密时的加密相反的逆运算,来对密文数据进行解密。
另外,当***采用例如SM4算法等基于多轮运算的对称算法时,与前述的写数据加密器105对应地,读数据解密器110也采用基于N轮运算的对称算法进行解密计算,但由于读数据解密器110进行解密所使用的第一轮轮密钥实际上对应于加密时的末轮密钥,故需要预先计算出该末轮密钥rK31。当然,该末轮密钥也可以是将数据加密过程中生成的末轮密钥rK31保存后,在解密时直接调取使用的。
在本实施例中,由读密钥预处理器108基于读密钥加扰器104提供的加扰密钥来生成用于第一轮解密运算的轮密钥rK31。
以图3的(B)为例,对读数据解密器110的工作过程进行简单说明。图3是以32轮SM4算法为例的。读密钥预处理器108基于读密钥加扰器104提供的加扰密钥进行32轮运算,得到用于对密文数据进行解密的第一轮密钥rK31。然后,对于按照读地址加扰器106输出的加扰读地址(即,对***指定的读地址进行加扰变换后得到的密文数据在存储器中的实际存储地址)从存储器读出的四组数据X35、X34、X33、X32(即,与当初由写数据加密器105生成的密文数据Y0、Y1、Y2、Y3对应),通过将轮密钥rK31与数据X34、X33、X32进行符号“T”表示的线性运算,然后再将经过该线性运算得到的结果与X35进行“+”所表示的非线性运算,得到数据X31,完成第一轮的运算。然后再以该X31和X34、X33、X32以及rK30为对象继续下一轮的运算。具体来说,将轮密钥rK30与数据X33、X32、X31进行符号“T”表示的线性运算,然后将经过该线性运算得到的结果与X34进行“+”所表示的非线性运算,得到数据X30,从而完成第二轮的运算。然后再以该X30和X33、X32、X31以及rK29为对象继续下一轮的运算。如此迭代计算32轮后,得到数据(X3、X2、X1、X0)。对该数据(X3、X2、X1、X0)进行逆序处理,最终得到明文数据(M0、M1、M2、M3)。
其中,与加密过程类似,除第一轮的轮密钥rK31外,每一轮的轮密钥都是基于前一轮的轮密钥进行规定的运算而得到的,例如,rK30是由rK31经过规定的运算得到的,rk29是由rK30经过规定运算得到的,……以此类推,末轮密钥rK0是由rK1经过规定的运算得到的。由于以上算法的过程属于公知技术,故在此省略更详细的说明。
如上所述,无论是在DES还是在SM4等其他对称算法中,在加密时,从第一轮开始每轮都需要一个用于此轮加密的轮密钥;而当解密时,也是从第一轮开始每轮都需要一个用于此轮解密的轮密钥。以32轮运算的对称算法为例,加密过程中依次使用32个轮密钥rk0-rk31,而在解密过程中逆序使用这些轮密钥,即rk31-rk0,即,与加密过程不同,在解密时需要先计算出相当于加密过程的末轮密钥rK31的密钥,故得到解密所使用的第一轮轮密钥需要一定的时间。尤其在SM4算法等基于多轮运算的对称算法中,由于算法自身的复杂性,生成加密轮密钥需要32周期,而生成解密轮密钥时需要64周期(以每周期计算一轮运算为例),该过程会消耗一定的时间。
此外,以往已知在从存储器116读取数据时也会耗费一定的时间,以往是在读出密文数据后再计算其解密所需的第一轮轮密钥的,则二者所需的时间相加,导致数据解密延时较长。
为提高数据解密的效率,本发明实施例设有读密钥预处理器,在读取密文数据的同时,由该读密钥预处理器计算出数据解密所需的第一轮轮密钥,由此提高解密处理的效率,缩短数据解密的延时。即,读数据解密装置102的读密钥预处理器108所进行的生成轮密钥的动作与从存储器读出密文数据的动作并行进行,优选在从存储器116读取出待解密的密文数据的动作完成之前或同时,读密钥预处理器108完成全部N轮运算,得到用于对密文数据进行解密的第一轮轮密钥。对于DRAM、NandFlash等存储器,读访问返回时间依不同存储器存在差异,只要根据存储器的性能等适当分配读密钥预处理计算所需的硬件资源等,使得其在得到所读取的密文数据前或同时完成用于解密的第一轮轮密钥的计算即可。具体来说,读密钥预处理器基于读密钥加扰器104提供的加扰密钥,按照预定的规则进行变换而得到轮密钥rK0(或者也可以直接将加扰密钥作为轮密钥rK0),然后基于该轮密钥rK0,按照规定的运算得到轮密钥rK1,如此迭代执行32轮后,得到用于进行解密的第一轮轮密钥rK31。读数据解密器110基于该轮密钥rk31进行如前所述的解密运算。由于各轮密钥的计算属于公知技术,故在此不再赘述。
在本实施例中,同前文说明的写数据加密器105一样,在读密钥预处理器108中也可采用流水线技术,支持每周期生成一组解密轮密钥,以提升数据吞吐率,适应一次一密钥的使用要求。即,读密钥预处理器可采用具有K级的流水线技术,在每级中执行N/K轮运算,其中,N是2的整数倍自然数,K是N的约数。此外,读数据解密器亦可采用具有L级的流水线技术,在每级中执行N/L轮运算,其中,N是2的整数倍自然数,L是N的约数。在此,写数据加密器105的流水线级数、读密钥预处理器108的流水线级数、以及读数据解密器110的流水线级数可以相同,也可以不同。优选写数据加密器105的流水线级数与读数据解密器110的流水线级数相同。本领域技术人员可根据读密钥预处理器108、读数据解密器110的工作主频和生产工艺等进行设定,例如在运算资源满足时序要求的前提下,可支持最大轮数计算,即只有一级流水,执行SM4算法的全部32轮运算,也可以根据需要设定32级流水,每级只执行1轮运算。
所述读数据解密器110使用密钥预处理器108生成的轮密钥,对输入的密文状态的密文数据进行如图3的(B)所示的解密运算,输出明文。
另外,读数据解密装置102具有读地址加扰器106,其对***提供的用于读取密文数据的读地址按照规定的算法进行加扰计算,生成加扰读地址,使得按照该加扰读地址实际从存储器116读出密文数据。在一个实施例中,读数据解密装置102的读地址加扰器106的加扰算法可以与写数据加密装置101的写地址加扰器107相同,即,写地址加扰器107按预定算法将***指定的写地址加扰后生成加扰写地址,使得密文数据被按照该加扰写地址实际写入存储器,而在要对该密文数据进行读取并解密时,读地址加扰器106对***指定的与当初加密时的写地址***的读地址,按照与写地址加扰器107相同的算法进行加扰,从而得到与当初密文数据被实际写入存储器时的加扰写地址相同的加扰读地址、即密文数据在存储器中的实际存储地址,由此,能够准确地读出该密文数据。通过这样配置,能够使得***对写地址和读地址的管理变得简单,能够节省***资源。
存储控制器114用于控制对存储器的读写访问,产生针对存储器接口的控制信号等,适配对存储器116的访问。
本发明的数据加解密装置100中的写数据加密装置101和读数据解密装置102采用对称加解密算法,并且不同地址对应不同密钥,由此对DRAM、NandFlash存储器的数据存储实施保护。
在以上说明中,是分别说明写数据加密装置101和读数据解密装置102的,二者可以分别被设置在不同的芯片或设备中,但二者也可以集成为一体,作为一个数据加解密装置来使用。此时,若如前所述使写数据加密装置101中的写密钥加扰器103和读数据解密装置102中的读密钥加扰器104采用相同的加扰算法,则该二者可以分别独立设置,也可以被共用一个器件或模块,例如设置成时分复用的方式。另外,当如前述那样使写地址加扰器107和读地址加扰器106采用相同的加扰算法时,二者可以分别独立设置,也可以被共用一个器件或模块,例如设置成时分复用的方式。
图2示出了这样的数据加解密装置的一个变形例。在图2所示的数据加解密装置200中,将图1中的写密钥加扰器103与读密钥加扰器104共用成为密钥加扰器204,将写地址加扰器107与读地址加扰器106共用成为地址加扰器206,将写数据加密器105与读数据解密器110共用成为数据加解密器210,并且从密钥加扰器204至数据加解密器210有两条连接路径,即,从密钥加扰器204直通至数据加解密器210的第一路径,和从密钥加扰器204连接至密钥预处理器208,再从密钥预处理器208连接至数据加解密器210的第二路径。
在对写数据进行加密时,进行控制使得第一路径有效,密钥加扰器204输出的加扰密钥直接被提供给数据加解密器210,进行如前所述的数据加密处理;而在对从存储器116读出的密文数据进行解密时,进行控制使得第二路径有效,密钥加扰器204输出的加扰密钥被提供给密钥预处理器208,执行如前所述的生成用于解密的第一轮轮密钥的处理,该生成的用于解密的第一轮轮密钥被输出给数据加解密器210,进行如前所述的密文数据解密处理。
在以上变形例中,在密钥加扰器204与数据加解密器210之间设置了两条连接路径,根据加密和解密的过程不同而切换连接路径。在另一个变形例中,也可以仅设置上述的第二路径,但在要进行数据加密时,使密钥预处理器例如执行空处理,即密钥加扰器204输出的加扰密钥不被密钥预处理器208进行任何处理地直接输出至数据加解密器210;另一方面,在要进行密文数据的解密处理时,进行控制使得密钥预处理器208有效工作,执行前述的生成用于解密的第一轮轮密钥的处理。
另外,本发明的实施方式也可以是一种数据加密存储***,其包括:前述的写数据加密装置,以及用于写入被该写数据加密装置加密后的密文数据的存储器。
另外,本发明的实施方式还可以是一种存储数据解密***,其包括:存储有被前述的写数据加密装置加密后的密文数据的存储器,以及前述的读数据解密装置,用于对密文数据进行解密。
另外,本发明的实施方式还可以是一种数据存储***,包括:前述的数据加解密装置,用于存储密文数据的存储器,以及控制该存储器的读写的存储控制器。
另外,本发明的实施方式还可以是一种数据加密方法,对要写入存储器的写数据进行加密,其包括:写密钥加扰步骤,基于要将写数据写入存储器时的写地址,对密钥进行加扰计算,生成新的用于对写数据进行加密的加扰密钥;以及写数据加密步骤,利用加扰密钥,对写数据进行加密,生成密文数据。
另外,本发明的如上所述的数据加密方法,也可以是,还包括:写地址加扰步骤,对写地址进行加扰计算,生成加扰写地址,以及密文数据写入步骤,按照加扰写地址将密文数据写入存储器。
另外,本发明的实施方式还可以是一种数据加解密方法,其包括:对要写入存储器的写数据进行加密的数据加密过程,和对从存储器读出的被进行了所述加密的密文数据进行解密的数据解密过程;其中,所述数据加密过程与所述数据解密过程采用基于N轮运算的对称算法,其中,N是2的整数倍自然数;所述数据加密过程包括:写密钥加扰步骤,基于所述写数据要被写入所述存储器时的写地址,对写密钥进行加扰计算,生成用于对所述写数据进行加密的加扰写密钥,以及写数据加密步骤,以所述加扰写密钥为进行第一轮加密的轮密钥,对所述写数据进行N轮加密运算而生成所述密文数据;所述数据解密过程包括:读密钥加扰步骤,基于用于从所述存储器读出所述密文数据的读地址,对读密钥进行加扰计算,生成用于对所述密文数据进行解密的加扰读密钥,密钥预处理步骤,基于所述加扰读密钥,生成用于进行第一轮解密的轮密钥,以及读数据解密步骤,利用所述用于进行第一轮解密的轮密钥,对所述密文数据进行N轮解密运算而生成解密后的明文数据。
另外,本发明的实施方式还可以是如下的数据解密方法,其用于对被前述数据加密方法加密了的密文数据进行解密,包括:读地址加扰步骤,对与当初加密时的写地址相同的读地址,按照与写地址加扰步骤相同的算法进行加扰计算,生成加扰读地址;密文数据读取步骤,按照加扰读地址从存储器读出密文数据;读密钥加扰步骤,基于读地址,对密钥按照与当初写密钥加扰步骤相同的算法进行计算,生成用于对密文数据进行解密的解密密钥;以及读数据解密步骤,利用解密密钥,对密文数据读取步骤读取出的密文数据执行与当初写数据加密步骤的加密相反的逆运算,来进行解密。
另外,本发明的如上所述的数据解密方法,在所述读数据解密步骤中,可以采用基于N轮运算的对称算法对所述密钥进行加扰,并采用具有L级的流水线技术,在每级中执行N/L轮运算,其中,N是2的整数倍自然数,L是N的约数。
另外,本发明的如上所述的数据解密方法还可以具有密钥预处理步骤,所述密钥预处理步骤与所述密文数据读取步骤是并行进行的,并且在密文数据读取步骤完成之前或同时,读密钥加扰步骤完成全部所述N轮运算,得到用于对密文数据进行解密的第一轮轮密钥。
本专利公开的写数据加密装置、读数据解密装置、以及数据加解密装置、数据加解密方法可用于多种存储器,存储器特点是写访问的写请求和写数据时序紧凑,而读访问读请求和读返回数据有一定时间间隔,通过利用这段时间进行读密钥预处理,可节省从读取密文数据至解密数据所需要的总时间。
本发明涉及的数据加解密装置还可以集成到存储控制器内部,靠近于顶层数据端口,或靠近底层存储器端口,构成数据存储***。另一种方式是,本发明涉及的数据加解密装置还可以设置于存储控制器外部,与存储控制器对接,构成数据存储***。本发明涉及的存储器可以是硬盘、DDR存储器,NVMFlash存储器、DRAM等各种可以应用的存储器。
本发明的数据加解密装置中,加密算法与解密算法适用于所有对称加密算法和解密算法。写数据加密器、读数据解密器、密钥预处理器中采用的流水线技术与算***数差异、工作频率、物理实现不同而有差异,流水线级数例如可以是N、N/2、N/4级数等(N为算***数)。
本发明中的所述读密钥加扰器以及写密钥加扰器所生成的加扰密钥是基于写地址而生成的,可针对不同的写地址采用不同的加扰密钥进行数据保护,一组密钥可用于保护任意大小的数据块。
本发明中的密钥预处理技术可以适用于采用独立模块,在所读取的解密数据到来前,完成第一轮解密轮密钥生成的使用场景。
以上,参照上述实施方式对本发明进行了说明,但本发明不限于上述的各实施方式,对于各实施方式的结构进行适当地组合或置换也包含于本发明之内。另外,基于本领域的知识能够将各实施方式的组合或处理的顺序进行适当地改编的情况或各种的设计变更等的变形追加到各实施方式,被追加这样的变形的实施方式也能够包含于本发明的范围之内。
Claims (25)
1.一种对要写入存储器的写数据进行加密的数据加密装置,其特征在于,包括:
密钥加扰器,基于所述写数据要被写入所述存储器时的写地址,对密钥进行加扰计算,生成用于对所述写数据进行加密的加扰密钥,以及
写数据加密器,利用所述密钥加扰器生成的所述加扰密钥,对所述写数据进行加密,生成密文数据;
其中,所述写数据加密器采用对称算法对所述写数据进行加密。
2.如权利要求1所述的数据加密装置,其特征在于,
所述密钥加扰器对所述写地址的地址信息进行散列变换,并与所述密钥一起进行线性变换或非线性变换,从而输出所述加扰密钥。
3.如权利要求1所述的数据加密装置,其特征在于,
所述写数据加密器采用的所述对称算法为基于N轮运算的对称算法,以所述密钥加扰器生成的所述加扰密钥为第一轮轮密钥执行所述加密,其中,N是2的整数倍自然数;
所述写数据加密器采用具有M级的流水线技术,在每级流水中执行所述对称算法中的N/M轮运算,其中,M是N的约数。
4.如权利要求1所述的数据加密装置,其特征在于,还包括:
写地址加扰器,对所述写地址进行加扰计算,生成加扰写地址,用于使所述密文数据按照该加扰写地址写入所述存储器;
所述写地址加扰器对所述写地址的地址信息进行线性变换或非线性变换,来生成所述加扰写地址。
5.如权利要求1至4的任一项所述的数据加密装置,其特征在于,
所述密钥加扰器生成的一组所述加扰密钥可用于不同大小的写数据块的加密;
所述写数据块可以是以存储物理单元为单位的数据块,也可以是以功能数据块为单位的数据块。
6.一种对从存储器读出的密文数据进行解密的数据解密装置,其特征在于,包括:
密钥加扰器,基于用于从所述存储器读出所述密文数据的读地址,对密钥进行加扰计算,生成用于对所述密文数据进行解密的加扰密钥,
读数据解密器,基于所述密钥加扰器生成的所述加扰密钥对所述密文数据进行解密,得到明文数据;
其中,所述读数据解密器采用对称算法对所述密文数据进行解密。
7.如权利要求6所述的数据解密装置,其特征在于,
所述密钥加扰器对所述读地址的地址信息进行散列变换,并与所述密钥一起进行线性变换或非线性变换,从而输出所述加扰密钥。
8.如权利要求6所述的数据解密装置,其特征在于,
所述密文数据是被通过基于N轮运算的对称算法加密而成的,其中N为2的整数倍自然数;
本数据解密装置还具有密钥预处理器,基于所述密钥加扰器生成的所述加扰密钥,生成用于对所述密文数据进行第一轮解密运算的轮密钥;
所述读数据解密器利用所述密钥预处理器生成的用于进行第一轮解密运算的轮密钥,执行N轮解密运算后得到所述明文数据。
9.如权利要求8所述的数据解密装置,其特征在于,
所述密钥预处理器采用具有L级的流水线技术,在每级流水中执行N/L轮运算,其中,L是N的约数。
10.如权利要求8所述的数据解密装置,其特征在于,
所述读数据解密器采用具有K级的流水线技术,在每级流水中执行N/K轮运算,其中,K是N的约数。
11.如权利要求6所述的数据解密装置,其特征在于,还包括:
读地址加扰器,对所述读地址进行加扰计算,生成加扰读地址,使得所述密文数据被按照该加扰读地址从所述存储器读出;
所述读地址加扰器对所述读地址的地址信息进行线性变换或非线性变换,来生成所述加扰读地址。
12.如权利要求8或11所述的数据解密装置,其特征在于,
所述密钥预处理器的动作与从所述存储器读出所述密文数据的动作并行执行;
所述密钥预处理器在待解密的密文数据被从存储器读出之前或同时,完成所述用于进行第一轮解密运算的轮密钥的生成。
13.一种数据加解密装置,其特征在于,包括:
对要写入存储器的写数据进行加密的数据加密装置,和
对从存储器读出的被进行了所述加密的密文数据进行解密的数据解密装置;
其中,所述数据加密装置与所述数据解密装置采用基于N轮运算的对称算法,其中,N是2的整数倍自然数;
所述数据加密装置包括:
写密钥加扰器,基于所述写数据要被写入所述存储器时的写地址,对写密钥进行加扰计算,生成用于对所述写数据进行加密的加扰写密钥,以及
写数据加密器,以所述写密钥加扰器生成的所述加扰写密钥为进行第一轮加密的轮密钥,对所述写数据进行N轮加密运算而生成所述密文数据;
所述数据解密装置包括:
读密钥加扰器,基于用于从所述存储器读出所述密文数据的读地址,对读密钥进行加扰计算,生成用于对所述密文数据进行解密的加扰读密钥,
密钥预处理器,基于所述读密钥加扰器生成的所述加扰读密钥,生成用于进行第一轮解密的轮密钥,以及
读数据解密器,利用所述密钥预处理器生成的所述用于进行第一轮解密的轮密钥,对所述密文数据进行N轮解密运算而生成解密后的明文数据。
14.如权利要求13所述的数据加解密装置,其特征在于,
所述数据加密装置还包括写地址加扰器,对所述写地址进行加扰计算,生成加扰写地址,用于使所述密文数据按照该加扰写地址写入所述存储器;
所述写地址加扰器对所述写地址的地址信息进行线性变换或非线性变换,来生成所述加扰写地址;
所述数据解密装置还包括读地址加扰器,对所述读地址进行加扰计算,生成加扰读地址,使得所述密文数据被按照该加扰读地址从所述存储器读出;
所述读地址加扰器对所述读地址的地址信息进行线性变换或非线性变换,来生成所述加扰读地址。
15.如权利要求13或14所述的数据加解密装置,其特征在于,
所述密钥预处理器采用具有L级的流水线技术,在每级流水中执行N/L轮运算,其中,L是N的约数;
所述写数据加密器采用具有M级的流水线技术,在每级流水中执行N/M轮运算,其中,M是N的约数;
所述读数据解密器采用具有K级的流水线技术,在每级流水中执行N/K轮运算,其中,K是N的约数。
16.一种数据加解密装置,其特征在于,
采用基于N轮运算的对称算法,对所输入的明文数据进行加密,或对所输入的密文数据进行解密,其中,N是2的整数倍自然数;
该数据加解密装置包括:
密钥加扰器,基于***指定的对存储器的访问地址,对密钥进行加扰计算而生成加扰密钥,
密钥预处理器,基于所述密钥加扰器生成的所述加扰密钥,生成用于进行第一轮解密运算的轮密钥,以及
数据加解密器,基于所述密钥加扰器生成的所述加扰密钥,针对所输入的明文数据执行所述N轮运算,生成所述密文数据,或者基于所述密钥预处理器生成的所述用于进行第一轮解密运算的轮密钥,针对所输入的所述密文数据执行所述N轮运算,生成所述明文数据。
17.如权利要求16所述的数据加解密装置,其特征在于,
写地址加扰器,对所述访问地址进行加扰计算,生成加扰访问地址,用于按照该地址向所述存储器读写所述密文数据;
所述地址加扰器对所述访问地址的地址信息进行线性变换或非线性变换,来生成所述加扰访问地址。
18.如权利要求16或17所述的数据加解密装置,其特征在于,
所述密钥预处理器采用具有L级的流水线技术,在每级流水中执行N/L轮运算,其中,L是N的约数;
所述数据加解密器采用具有M级的流水线技术,在每级流水中执行N/M轮运算,其中,M是N的约数。
19.如权利要求13或16所述的数据加解密装置,其特征在于,
所述密钥预处理器的动作与从所述存储器读出所述密文数据的动作并行进行;
所述密钥预处理器在待解密的密文数据被从存储器读出之前或同时,完成所述用于进行第一轮解密运算的轮密钥的生成。
20.如权利要求13或16所述的数据加解密装置,其特征在于,
一组所述加扰密钥可用于不同大小的数据块的加密;
所述数据块可以是以存储物理单元为单位的数据块,也可以是以功能数据块为单位的数据块。
21.如权利要求13或16所述的数据加解密装置,其特征在于,
所述对称算法为DES、AES、SM4算法中的任一种。
22.一种数据存储***,其特征在于,包括:
如权利要求13至19的任一项所述的数据加解密装置,以及
用于向存储器读写所述密文数据的存储控制器。
23.如权利要求21所述的数据存储***,其特征在于,
所述数据加解密装置被内置于所述存储控制器内部,靠近于顶层数据端口,或靠近于底层存储器端口。
24.一种数据加解密方法,其特征在于,包括:
对要写入存储器的写数据进行加密的数据加密过程,和
对从存储器读出的被进行了所述加密的密文数据进行解密的数据解密过程;
其中,所述数据加密过程与所述数据解密过程采用基于N轮运算的对称算法,其中,N是2的整数倍自然数;
所述数据加密过程包括:
写密钥加扰步骤,基于所述写数据要被写入所述存储器时的写地址,对写密钥进行加扰计算,生成用于对所述写数据进行加密的加扰写密钥,以及
写数据加密步骤,以所述加扰写密钥为进行第一轮加密的轮密钥,对所述写数据进行N轮加密运算而生成所述密文数据;
所述数据解密过程包括:
读密钥加扰步骤,基于用于从所述存储器读出所述密文数据的读地址,对读密钥进行加扰计算,生成用于对所述密文数据进行解密的加扰读密钥,
密钥预处理步骤,基于所述加扰读密钥,生成用于进行第一轮解密的轮密钥,以及
读数据解密步骤,利用所述用于进行第一轮解密的轮密钥,对所述密文数据进行N轮解密运算而生成解密后的明文数据。
25.一种存储介质,其记录有如下的数据加解密程序:
所述数据加解密程序用于执行对要写入存储器的写数据进行加密的数据加密过程,和对从存储器读出的被进行了所述加密的密文数据进行解密的数据解密过程;
其中,所述数据加密过程与所述数据解密过程采用基于N轮运算的对称算法,其中,N是2的整数倍自然数;
所述数据加密过程包括:
写密钥加扰步骤,基于所述写数据要被写入所述存储器时的写地址,对写密钥进行加扰计算,生成用于对所述写数据进行加密的加扰写密钥,以及
写数据加密步骤,以所述加扰写密钥为进行第一轮加密的轮密钥,对所述写数据进行N轮加密运算而生成所述密文数据;
所述数据解密过程包括:
读密钥加扰步骤,基于用于从所述存储器读出所述密文数据的读地址,对读密钥进行加扰计算,生成用于对所述密文数据进行解密的加扰读密钥,
密钥预处理步骤,基于所述加扰读密钥,生成用于进行第一轮解密的轮密钥,以及
读数据解密步骤,利用所述用于进行第一轮解密的轮密钥,对所述密文数据进行N轮解密运算而生成解密后的明文数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811573674.5A CN109656840A (zh) | 2018-12-21 | 2018-12-21 | 一种数据加解密的装置、方法、存储介质、以及数据存储*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811573674.5A CN109656840A (zh) | 2018-12-21 | 2018-12-21 | 一种数据加解密的装置、方法、存储介质、以及数据存储*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109656840A true CN109656840A (zh) | 2019-04-19 |
Family
ID=66115866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811573674.5A Pending CN109656840A (zh) | 2018-12-21 | 2018-12-21 | 一种数据加解密的装置、方法、存储介质、以及数据存储*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109656840A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110071727A (zh) * | 2019-04-26 | 2019-07-30 | 成都海光集成电路设计有限公司 | 编码方法、译码方法、纠错方法及装置 |
CN110287708A (zh) * | 2018-03-19 | 2019-09-27 | 扬智科技股份有限公司 | 一次性可编程加密装置与其加密方法 |
CN110309083A (zh) * | 2019-06-28 | 2019-10-08 | 兆讯恒达微电子技术(北京)有限公司 | 一种存储器数据加扰方法 |
CN110516457A (zh) * | 2019-08-27 | 2019-11-29 | 上海集成电路研发中心有限公司 | 一种数据存储方法及读取方法、存储设备 |
CN110955904A (zh) * | 2019-11-22 | 2020-04-03 | 海光信息技术有限公司 | 一种数据加密方法、数据解密方法、处理器及计算机设备 |
CN111130784A (zh) * | 2019-12-25 | 2020-05-08 | 成都海光集成电路设计有限公司 | 一种密钥生成方法、装置、cpu芯片及服务器 |
CN111510281A (zh) * | 2020-06-29 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 一种同态加密方法及装置 |
CN112350819A (zh) * | 2020-10-23 | 2021-02-09 | 四川九洲电器集团有限责任公司 | 一种全流水线sms4加解密方法及*** |
CN112613053A (zh) * | 2020-12-25 | 2021-04-06 | 北京天融信网络安全技术有限公司 | 一种数据加解密方法及装置 |
CN113434876A (zh) * | 2021-06-22 | 2021-09-24 | 海光信息技术股份有限公司 | 一种数据加密方法、装置、内存控制器、芯片及电子设备 |
CN113449311A (zh) * | 2020-03-25 | 2021-09-28 | 瑞昱半导体股份有限公司 | 数据解密***及数据解密方法 |
CN113642051A (zh) * | 2021-10-13 | 2021-11-12 | 广州匠芯创科技有限公司 | Spi存储设备的加密数据读写方法及嵌入式处理器芯片 |
CN113672946A (zh) * | 2021-07-15 | 2021-11-19 | 平头哥(上海)半导体技术有限公司 | 数据加解密组件、相关装置和方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102204158A (zh) * | 2008-10-30 | 2011-09-28 | 高通股份有限公司 | 低等待时间的分块密码术 |
CN102541762A (zh) * | 2010-12-27 | 2012-07-04 | 北京国睿中数科技股份有限公司 | 用于外部存储器的数据保护器和数据保护方法 |
CN103427981A (zh) * | 2012-05-15 | 2013-12-04 | 北京华虹集成电路设计有限责任公司 | 一种实现加密、解密的方法以及装置 |
CN103516512A (zh) * | 2013-10-21 | 2014-01-15 | 深圳市芯通信息科技有限公司 | 基于aes算法的加解密方法及加解密器 |
CN104704768A (zh) * | 2012-10-04 | 2015-06-10 | 本质Id有限责任公司 | 用于从用作物理不可克隆功能的存储器中生成密码密钥的*** |
CN105162578A (zh) * | 2015-09-23 | 2015-12-16 | 中国电子科技集团公司第五十八研究所 | 应用于通用数字信号处理器的加密电路 |
CN105743652A (zh) * | 2014-12-11 | 2016-07-06 | 上海华虹集成电路有限责任公司 | 基于地址异或的数据总线加密方法 |
US9418246B2 (en) * | 2014-12-15 | 2016-08-16 | Freescale Semiconductor, Inc. | Decryption systems and related methods for on-the-fly decryption within integrated circuits |
CN106383790A (zh) * | 2016-08-26 | 2017-02-08 | 北京智芯微电子科技有限公司 | 一种总线管理单元及高安全***级芯片 |
CN106653094A (zh) * | 2016-08-30 | 2017-05-10 | 北京中电华大电子设计有限责任公司 | 一种非易失存储器耐久力物理数据模型测试方法 |
CN108768620A (zh) * | 2018-03-26 | 2018-11-06 | 海光信息技术有限公司 | 一种数据处理方法及装置 |
-
2018
- 2018-12-21 CN CN201811573674.5A patent/CN109656840A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102204158A (zh) * | 2008-10-30 | 2011-09-28 | 高通股份有限公司 | 低等待时间的分块密码术 |
CN102541762A (zh) * | 2010-12-27 | 2012-07-04 | 北京国睿中数科技股份有限公司 | 用于外部存储器的数据保护器和数据保护方法 |
CN103427981A (zh) * | 2012-05-15 | 2013-12-04 | 北京华虹集成电路设计有限责任公司 | 一种实现加密、解密的方法以及装置 |
CN104704768A (zh) * | 2012-10-04 | 2015-06-10 | 本质Id有限责任公司 | 用于从用作物理不可克隆功能的存储器中生成密码密钥的*** |
CN103516512A (zh) * | 2013-10-21 | 2014-01-15 | 深圳市芯通信息科技有限公司 | 基于aes算法的加解密方法及加解密器 |
CN105743652A (zh) * | 2014-12-11 | 2016-07-06 | 上海华虹集成电路有限责任公司 | 基于地址异或的数据总线加密方法 |
US9418246B2 (en) * | 2014-12-15 | 2016-08-16 | Freescale Semiconductor, Inc. | Decryption systems and related methods for on-the-fly decryption within integrated circuits |
CN105162578A (zh) * | 2015-09-23 | 2015-12-16 | 中国电子科技集团公司第五十八研究所 | 应用于通用数字信号处理器的加密电路 |
CN106383790A (zh) * | 2016-08-26 | 2017-02-08 | 北京智芯微电子科技有限公司 | 一种总线管理单元及高安全***级芯片 |
CN106653094A (zh) * | 2016-08-30 | 2017-05-10 | 北京中电华大电子设计有限责任公司 | 一种非易失存储器耐久力物理数据模型测试方法 |
CN108768620A (zh) * | 2018-03-26 | 2018-11-06 | 海光信息技术有限公司 | 一种数据处理方法及装置 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287708A (zh) * | 2018-03-19 | 2019-09-27 | 扬智科技股份有限公司 | 一次性可编程加密装置与其加密方法 |
CN110287708B (zh) * | 2018-03-19 | 2023-07-04 | 扬智科技股份有限公司 | 一次性可编程加密装置与其加密方法 |
CN110071727A (zh) * | 2019-04-26 | 2019-07-30 | 成都海光集成电路设计有限公司 | 编码方法、译码方法、纠错方法及装置 |
CN110309083A (zh) * | 2019-06-28 | 2019-10-08 | 兆讯恒达微电子技术(北京)有限公司 | 一种存储器数据加扰方法 |
CN110309083B (zh) * | 2019-06-28 | 2021-09-07 | 兆讯恒达科技股份有限公司 | 一种存储器数据加扰方法 |
CN110516457A (zh) * | 2019-08-27 | 2019-11-29 | 上海集成电路研发中心有限公司 | 一种数据存储方法及读取方法、存储设备 |
CN110516457B (zh) * | 2019-08-27 | 2023-03-14 | 上海集成电路研发中心有限公司 | 一种数据存储方法及读取方法、存储设备 |
CN110955904A (zh) * | 2019-11-22 | 2020-04-03 | 海光信息技术有限公司 | 一种数据加密方法、数据解密方法、处理器及计算机设备 |
CN111130784A (zh) * | 2019-12-25 | 2020-05-08 | 成都海光集成电路设计有限公司 | 一种密钥生成方法、装置、cpu芯片及服务器 |
CN111130784B (zh) * | 2019-12-25 | 2023-08-08 | 成都海光集成电路设计有限公司 | 一种密钥生成方法、装置、cpu芯片及服务器 |
CN113449311A (zh) * | 2020-03-25 | 2021-09-28 | 瑞昱半导体股份有限公司 | 数据解密***及数据解密方法 |
CN111510281A (zh) * | 2020-06-29 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 一种同态加密方法及装置 |
CN112350819A (zh) * | 2020-10-23 | 2021-02-09 | 四川九洲电器集团有限责任公司 | 一种全流水线sms4加解密方法及*** |
CN112613053A (zh) * | 2020-12-25 | 2021-04-06 | 北京天融信网络安全技术有限公司 | 一种数据加解密方法及装置 |
CN112613053B (zh) * | 2020-12-25 | 2024-04-23 | 北京天融信网络安全技术有限公司 | 一种数据加解密方法及装置 |
CN113434876A (zh) * | 2021-06-22 | 2021-09-24 | 海光信息技术股份有限公司 | 一种数据加密方法、装置、内存控制器、芯片及电子设备 |
CN113672946A (zh) * | 2021-07-15 | 2021-11-19 | 平头哥(上海)半导体技术有限公司 | 数据加解密组件、相关装置和方法 |
CN113642051A (zh) * | 2021-10-13 | 2021-11-12 | 广州匠芯创科技有限公司 | Spi存储设备的加密数据读写方法及嵌入式处理器芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109656840A (zh) | 一种数据加解密的装置、方法、存储介质、以及数据存储*** | |
CN105490802B (zh) | 基于gpu的改进sm4并行加解密通信方法 | |
CN101350714B (zh) | 采用混合rijndael s-box的有效高级加密标准数据路径 | |
CN101782956B (zh) | 一种基于aes实时加密的数据保护方法及装置 | |
CN102138300B (zh) | 消息认证码预计算在安全存储器中的应用 | |
CN105324956B (zh) | 加密明文数据的方法及设备 | |
US10313128B2 (en) | Address-dependent key generator by XOR tree | |
CN107590402A (zh) | 一种存储数据加解密装置及方法 | |
CN109104724B (zh) | 一种用于设备升级的数据加密方法和装置 | |
CN106688027A (zh) | 依赖puf和地址的数据加密 | |
CN107516047A (zh) | 一种存储数据加解密装置及方法 | |
CN102012993A (zh) | 一种数据选择加密解密方法及装置 | |
US10146701B2 (en) | Address-dependent key generation with a substitution-permutation network | |
US9716586B2 (en) | Precomputing internal AES states in counter mode to protect keys used in AES computations | |
CN102541762A (zh) | 用于外部存储器的数据保护器和数据保护方法 | |
US11429751B2 (en) | Method and apparatus for encrypting and decrypting data on an integrated circuit | |
CN111722831A (zh) | 一种加密***及其实现方法 | |
CN109617671A (zh) | 加解密、扩展方法及装置、加解密***、终端 | |
CN103346878B (zh) | 一种基于fpga高速串行io的保密通信方法 | |
CN102664730B (zh) | 基于高级加密标准aes的128比特位密钥扩展方法 | |
CN103746796A (zh) | 一种实现智能卡sm4密码算法的协处理器 | |
CN103336920B (zh) | 用于无线传感网络soc芯片的安全*** | |
CN104219045B (zh) | Rc4 流密码生成器 | |
CN102567689A (zh) | 基于相变存储器的非易失内存数据机密性保护方法 | |
CN100459493C (zh) | 流密码生成器、随机数生成方法、加密***及加密方法 |
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 |