CN115865448A - 一种数据自加密装置和方法 - Google Patents
一种数据自加密装置和方法 Download PDFInfo
- Publication number
- CN115865448A CN115865448A CN202211479805.XA CN202211479805A CN115865448A CN 115865448 A CN115865448 A CN 115865448A CN 202211479805 A CN202211479805 A CN 202211479805A CN 115865448 A CN115865448 A CN 115865448A
- Authority
- CN
- China
- Prior art keywords
- data
- key information
- key
- encryption
- information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000003860 storage Methods 0.000 claims abstract description 80
- 238000012545 processing Methods 0.000 claims abstract description 53
- 238000013500 data storage Methods 0.000 claims abstract description 47
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 40
- 238000005192 partition Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 abstract description 21
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供了一种数据自加密方法和装置,装置包括第一存储单元、第二存储单元、加解密模块、密钥处理模块和密钥生成模块;第二存储单元包括数据存储区和密钥存储区。当接收到主机端的数据读取指令后,密钥处理模块从密钥存储区中获取第二密钥信息,采用第一密钥信息对第二密钥信息进行解密,得到初始密钥信息;加解密模块用于从数据存储区中获取待读取的加密数据以及从密钥处理模块获取初始密钥信息,根据选定的加解密算法采用初始密钥信息对待读取的加密数据进行解密后输出给主机端。通过上述方案,数据存储区中是数据始终以加密的方式存储,当需要读取时需要通过多层密钥解密,整个解密过程都在装置内部进行,有效提升了数据存储的安全性。
Description
技术领域
本发明涉及数据加解密领域,尤其涉及一种数据自加密方法和装置。
背景技术
目前,存储单元中的数据一般以明文存储没有得到有效的身份认证保护,而即便存在身份认证,也多是针对访问存储单元中某一存储区域的身份认证,一旦加密的存储区被破译,不法分子可以随意浏览、篡改加密的存储区内的数据,导致数据安全性不高,容易因数据泄露造成极大损失。
发明内容
为此,需要提供一种数据自加密的技术方案,用于解决当前存储单元存在的加密方式数据安全性差的问题。
为满足上述需求,在第一方面,本发明提供了一种数据自加密装置,该装置包括第一存储单元、第二存储单元、加解密模块、密钥处理模块和密钥生成模块;第二存储单元包括数据存储区和密钥存储区;
密钥生成模块用于生成第一密钥信息,并将第一密钥信息存储于第一存储单元中;
密钥处理模块用于获取初始密钥信息,采用第一密钥信息对初始密钥信息进行加密,得到第二密钥信息,并将第二密钥信息存储于密钥存储区中;
当接收到主机端的数据读取指令后,密钥处理模块用于从密钥存储区中获取第二密钥信息,采用第一密钥信息对第二密钥信息进行解密,得到初始密钥信息;加解密模块用于从数据存储区中获取待读取的加密数据以及从密钥处理模块获取初始密钥信息,根据选定的加解密算法采用初始密钥信息对待读取的加密数据进行解密后输出给主机端。
作为一种可选的实施例,当接收到主机端的数据写入指令后,密钥处理模块用于从密钥存储区中获取第二密钥信息,采用第一密钥信息对第二密钥信息进行解密,得到初始密钥信息;加解密模块用于从主机端获取待写入的明文数据以及从密钥处理模块获取初始密钥信息,根据选定的加解密算法采用初始密钥信息对待写入的明文数据进行加密后存储至数据存储区中。
作为一种可选的实施例,密钥生成模块包括哈希运算模块;
哈希运算模块用于获取用户认证信息和/或装置标识信息,对用户认证信息和/或装置标识信息进行哈希运算,得到第一密钥信息,并将第一密钥信息存储至第一存储单元中。
作为一种可选的实施例,装置还包括随机数发生器;
对用户认证信息和/或装置标识信息进行哈希运算,得到第一密钥信息包括:
哈希运算模块用于获取随机数发生器生成的至少一个随机数,对至少一个随机数、用户认证信息和装置标识信息进行哈希运算,生成第一密钥信息。
作为一种可选的实施例,装置还包括OTP存储单元,OTP存储单元用于存储芯片指纹信息;密钥生成模块还包括逻辑运算模块;
哈希运算模块用于对用户认证信息和/或装置标识信息进行哈希运算,得到第一哈希运算结果;
逻辑运算模块用于从OTP存储单元中获取芯片指纹信息,对第一哈希运算结果和芯片指纹信息进行预设逻辑运算,得到第一密钥信息。
作为一种可选的实施例,装置还包括随机数发生器和寄存器;
当接收到加密分区创建指令时,随机数发生器用于随机生成一个随机数,并将生成的随机数存储于寄存器中;初始密钥信息为随机生成的随机数。
作为一种可选的实施例,加解密模块中存储有至少一种加解密算法,加解密算法包括SM4解密算法;
加解密模块用于将待读取的加密数据分割为若干个数据块,并采用SM4解密算法对各个数据块单独进行解密操作。
作为一种可选的实施例,第一存储单元为SRAM和/或第二存储单元为闪存单元。
在第二方面,本发明提供了一种数据自加密方法,方法应用于如本发明第一方面的数据自加密装置;
该方法包括以下步骤:
密钥生成模块生成第一密钥信息,并将第一密钥信息存储于第一存储单元中;
密钥处理模块获取初始密钥信息,采用第一密钥信息对初始密钥信息进行加密,得到第二密钥信息,并将第二密钥信息存储于密钥存储区中;
当接收到主机端的数据写入指令后,密钥处理模块从密钥存储区中获取第二密钥信息,采用第一密钥信息对第二密钥信息进行解密,得到初始密钥信息;
加解密模块从主机端获取待写入的明文数据以及从密钥处理模块获取初始密钥信息,根据选定的加解密算法采用初始密钥信息对待写入的明文数据进行加密后存储至数据存储区中。
作为一种可选的实施例,方法还包括以下步骤:
当接收到主机端的数据读取指令后,密钥处理模块从密钥存储区中获取第二密钥信息,采用第一密钥信息对第二密钥信息进行解密,得到初始密钥信息;加解密模块从数据存储区中获取待读取的加密数据以及从密钥处理模块获取初始密钥信息,根据选定的加解密算法采用初始密钥信息对待读取的加密数据进行解密后输出给主机端。
区别于现有技术,本发明提供了一种数据自加密方法和装置,装置包括第一存储单元、第二存储单元、加解密模块、密钥处理模块和密钥生成模块;第二存储单元包括数据存储区和密钥存储区。当接收到主机端的数据读取指令后,密钥处理模块从密钥存储区中获取第二密钥信息,采用第一密钥信息对第二密钥信息进行解密,得到初始密钥信息;加解密模块用于从数据存储区中获取待读取的加密数据以及从密钥处理模块获取初始密钥信息,根据选定的加解密算法采用初始密钥信息对待读取的加密数据进行解密后输出给主机端。通过上述方案,数据存储区中是数据始终以加密的方式存储,当需要读取时需要通过多层密钥解密,整个解密过程都在装置内部进行,有效提升了数据存储的安全性。
附图说明
图1为本发明一实施方式涉及的数据自加密装置的模块示意图;
图2为本发明一实施方式涉及的第一密钥信息生成过程的原理示意图;
图3为本发明一实施方式涉及的第二密钥信息生成过程的原理示意图;
图4为本发明一实施方式涉及的数据加解密过程的原理示意图;
图5为本发明一实施方式涉及的数据自加密方法的流程示意图;
图6为本发明另一实施方式涉及的数据自加密方法的流程示意图;
附图标记:
10、数据自加密装置;
101、加解密模块;
102、第二存储单元;
1021、数据存储区;
1022、密钥存储区;
103、密钥处理模块;
104、密钥生成模块;
1041、哈希运算模块;
1042、逻辑运算模块;
105、第一存储单元;
106、随机数发生器;
107、寄存器;
108、OTP存储单元;
20、主机端。
具体实施方式
为详细说明本申请可能的应用场景,技术原理,可实施的具体方案,能实现目的与效果等,以下结合所列举的具体实施例并配合附图详予说明。本文所记载的实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中各个位置出现的“实施例”一词并不一定指代相同的实施例,亦不特别限定其与其它实施例之间的独立性或关联性。原则上,在本申请中,只要不存在技术矛盾或冲突,各实施例中所提到的各项技术特征均可以以任意方式进行组合,以形成相应的可实施的技术方案。
除非另有定义,本文所使用的技术术语的含义与本申请所属技术领域的技术人员通常理解的含义相同;本文中对相关术语的使用只是为了描述具体的实施例,而不是旨在限制本申请。
在本申请的描述中,用语“和/或”是一种用于描述对象之间逻辑关系的表述,表示可以存在三种关系,例如A和/或B,表示:存在A,存在B,以及同时存在A和B这三种情况。另外,本文中字符“/”一般表示前后关联对象是一种“或”的逻辑关系。
在本申请中,诸如“第一”和“第二”之类的用语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何实际的数量、主次或顺序等关系。
在没有更多限制的情况下,在本申请中,语句中所使用的“包括”、“包含”、“具有”或者其他类似的表述,意在涵盖非排他性的包含,这些表述并不排除在包括要素的过程、方法或者产品中还可以存在另外的要素,从而使得包括一系列要素的过程、方法或者产品中不仅可以包括那些限定的要素,而且还可以包括没有明确列出的其他要素,或者还包括为这种过程、方法或者产品所固有的要素。
与《审查指南》中的理解相同,在本申请中,“大于”、“小于”、“超过”等表述理解为不包括本数;“以上”、“以下”、“以内”等表述理解为包括本数。此外,在本申请实施例的描述中“多个”的含义是两个以上(包括两个),与之类似的与“多”相关的表述亦做此类理解,例如“多组”、“多次”等,除非另有明确具体的限定。
如图1所示,在第一方面,本发明提供了一种数据自加密装置10,该装置包括第一存储单元105、第二存储单元102、加解密模块101、密钥处理模块103和密钥生成模块104;第二存储单元102包括数据存储区1021和密钥存储区1022;
密钥生成模块104用于生成第一密钥信息,并将第一密钥信息存储于第一存储单元105中;
密钥处理模块103用于获取初始密钥信息,采用第一密钥信息对初始密钥信息进行加密,得到第二密钥信息,并将第二密钥信息存储于密钥存储区1022中;
当接收到主机端20的数据读取指令后,密钥处理模块103用于从密钥存储区1022中获取第二密钥信息,采用第一密钥信息对第二密钥信息进行解密,得到初始密钥信息;加解密模块101用于从数据存储区1021中获取待读取的加密数据以及从密钥处理模块103获取初始密钥信息,根据选定的加解密算法采用初始密钥信息对待读取的加密数据进行解密后输出给主机端20。
在本实施例中,第一存储单元为易失性存储器,这样可以使得第一存储单元断电或者主机端关机时,存储于第一存储单元中的第一密钥信息也随之消失,有效提升了数据安全性。易失性存储器可以为DRAM缓存单元、SRAM缓存单元等。优选的,第一存储单元为SRAM(Static Random-Access Memory,静态随机存取存储器)。第二存储单元为闪存单元,闪存单元又称快闪存储器(flash memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器。通过将第二存储单元设置为只读存储器,可以保证数据存储区内数据的安全性。
在本实施例中,第二密钥信息是指加密后的密钥信息,初始密钥信息是原始密钥,即用于加密或解密数据的密钥,第一密钥信息是指密钥的密钥,即对于初始密钥信息进行加密时需要用到的密钥。优选的,第一密钥信息、第二密钥信息、初始密钥信息分别被存储于不同的存储单元中,可以有效增大密钥被破译的难度,提升数据的安全性。
在本实施例中,主机端20为计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等。数据自加密装置10可以作为主机端20的一部分置于主机端20内,也可以是独立与主机端20通信连接。
当数据自加密装置10接收到主机端20的数据读取指令后,密钥处理模块103从密钥存储区1022中获取第二密钥信息,采用第一密钥信息对第二密钥信息进行解密,得到初始密钥信息;加解密模块101从数据存储区1021中获取待读取的加密数据以及从密钥处理模块103获取初始密钥信息,根据选定的加解密算法采用初始密钥信息对待读取的加密数据进行解密后输出给主机端20。由于在数据读出之前通过密钥信息对于当前用户的读取权限进行认证,且认证过程中使用到的第一密钥信息、第二密钥信息、初始密钥信息始终在数据自加密装置10内部进行传递,可以有效提升数据读取的安全性。
在某些实施例中,当接收到主机端20的数据写入指令后,密钥处理模块103用于从密钥存储区1022中获取第二密钥信息,采用第一密钥信息对第二密钥信息进行解密,得到初始密钥信息;加解密模块101用于从主机端20获取待写入的明文数据以及从密钥处理模块获取初始密钥信息,根据选定的加解密算法采用初始密钥信息对待写入的明文数据进行加密后存储至数据存储区1021中。
简言之,无论是数据写入还是读取,都需要经过密钥验证通过后才可执行对应操作,而密钥认证的触发可以在用户身份信息认证通过后执行。用户身份信息可以是人脸信息、指纹信息、声纹信息等。写入数据存储区1021中的数据或待从数据存储区1021中读取的数据始终以加密的形式进行存储,,有效保证了数据存储的安全性。
如图1所示,在某些实施例中,密钥生成模块104包括哈希运算模块1041。哈希运算模块1041用于获取用户认证信息和/或装置标识信息,对用户认证信息和/或装置标识信息进行哈希运算,得到第一密钥信息,并将第一密钥信息存储至第一存储单元105中。用户认证信息是指用户预先设置的用于数据读写认证的身份信息,如人脸信息、指纹信息、文字密码等。装置标识信息是指当前数据自加密装置10对应的标识信息,可以是字符、文字、数字等组合,例如可以是一串字符串,通常由厂家出厂时设置完成。
哈希运算可以通过哈希函数来完成,哈希函数可以是MD4、MD5、SHS等。哈希值的计算原理是可以累积的块运算(任意大的数据都可以会被分割为多个小块数据来执行运算),所以每次运算需要一个哈希初始值和待运算数据,第一次进行小块运算时候可以将哈希初始值置零,在第一次运算完毕后,将得到的哈希值迭代更新作为第二小块数据执行运算的哈希初始值,然后再与第二小块待运算数据进行运算得到新的哈希值,以此类推一直到结束为止。原始应用程序信息作为待运算的数据,在经过哈希运算后可以得到特定长度(如256比特)的摘要值,即第一密钥信息。
哈希运算模块1041通过对用户认证信息和/或装置标识信息进行哈希运算得到第一密钥信息,可以保证第一密钥信息的唯一性,进而提升数据加解密的安全性。
在某些实施例中,装置还包括随机数发生器106。对用户认证信息和/或装置标识信息进行哈希运算,得到第一密钥信息包括:哈希运算模块用于获取随机数发生器生成的至少一个随机数,对至少一个随机数、用户认证信息和装置标识信息进行哈希运算,生成第一密钥信息。在实际应用过程中,数据存储区1021和密钥存储区1022的数量可以为多个,为了提升不同数据存储区1021中数据的安全性,需要将不同数据存储区1021中的加密密钥设置为不同,为了实现这一方案,本申请在数据自加密装置10中引入随机数发生器106,对于不同数据存储区1021对应的第一密钥信息都引入了随机数发生器106随机生成的一个随机数参与哈希计算得到,从而有效保证了不同数据分区存储的加密密钥的不同,进一步提升了数据分区的安全性。
优选的,对于不同的数据存储区1021还可以设定不同的安全等级,安全等级越高的参与生成第一密钥信息的随机数的数量越多,即生成第一密钥信息所使用的随机数数量与数据存储区的安全等级存在映射关系,以满足实际应用需求。
如图1所示,在某些实施例中,装置还包括OTP存储单元108,OTP存储单元108用于存储芯片指纹信息;密钥生成模块104还包括逻辑运算模块1042。哈希运算模块1041用于对用户认证信息和/或装置标识信息进行哈希运算,得到第一哈希运算结果;逻辑运算模块1042用于从OTP存储单元中获取芯片指纹信息,对第一哈希运算结果和芯片指纹信息进行预设逻辑运算,得到第一密钥信息。芯片指纹信息是指存储在OTP存储单元中,由真随机数发生器在芯片出厂或者第一次使用时生成的字符串。优选的,芯片指纹信息与第一哈希运算结果的位数可以相同,若两者不同则可以对其中一者的高位或低位进行补零处理。逻辑运算包括与运算、或运算、与非运算、或非运算等等。通过引入芯片指纹信息参与第一密钥信息生成的哈希运算,使得第一密钥信息更具唯一性。通过将芯片指纹信息存储于OTP存储单元(即一次性可编程单元),这样可以有效防止芯片指纹信息被篡改。
在某些实施例中,装置还包括随机数发生器106和寄存器107。当接收到加密分区创建指令时,随机数发生器106用于随机生成一个随机数,并将生成的随机数存储于寄存器107中;初始密钥信息为随机生成的随机数。加密分区是指前文描述的数据存储区1021,数据存储区在创建过程中,需要为每个数据存储区1021中的数据读写配置一个唯一的密钥,该密钥通过随机数发生器来生成,可以保证密钥的随机性,提升数据的安全性。
在某些实施例中,加解密模块101中存储有至少一种加解密算法,加解密算法包括SM4解密算法;加解密模块101用于将待读取的加密数据分割为若干个数据块,并采用SM4解密算法对各个数据块单独进行解密操作。
通常,密码算法采取高级加密标准AES(Advanced Encryption Standard),AES通过密钥来加密、解密信息,并且加密和解密过程使用的密钥完全相同,加密过程和解密过程具有一定的对称性,因此AES属于密码学中的对称密钥算法(symmetric-key algorithm)。AES的内部结构由多个层(Layer)构成,每一层都是对整个处理块16字节的操作,并且循环多轮进行处理,加密算法涉及4种操作:字节替代(SubBytes)、行移位(ShiftRows)、列混(MixColumns)和轮密钥加(AddRoundKey)。
SM4加解密算法与AES算法的特点对比如下方表1所示:
表1
在本实施例中,数据自加密装置为NVMe固态控制器芯片,通过在NVMe固态控制器芯片中引入了国密算法相关技术和标准,即支持国家密码管理局审定批准的GM/T 0002-2012《SM4分组密码算法》,保证了数据整体的安全性。
加解密模块为SM4加解密模块,整个SM4加解密模块分为独立运行的加密通道和解密通道,两个通道共享密钥扩展模块。当写数据或者读数据进入本模块的时候,会有相应的加密命令请求或者解密命令请求到来,此时加密/解密命令分配模块会向密钥扩展模块请求进行密钥扩展操作并且向其传递密钥的索引信息;随后,密钥扩展模块根据密钥索引信息从对称密钥存储SRAM获得密钥;加密/解密命令分配模块等待密钥扩展完成后,启动相应的SM4加密/解密核组;SM4算法把明文形式的用户数据切割为多个比特数据小块,每个数据块独立地进行SM4加密或者解密操作。
此外,SM4加解密模块还提供自检模式,在该模式下,模块会以随机数据、随机配置的形式进行压力测试,加密路径的输出结果会直接送到解密路径进行解密,然后在加密路径地输入端和解密路径的输出端进行原始明文和解密明文的比较。通过硬件级别的自检模式,确保数据能被高速地正确加密和恢复,一旦发现数据比对不正确,会向上报告错误,通知软件进行后续处理。
本发明的装置通过将国密算法和高速数据存储应用的紧密结合,以底层PCIe逻辑接口和NVMe逻辑接口协议为根基,可以为用户提供灵活高效的权限管理和分区加密功能,并且具备高带宽和低延迟优势,其中用户数据的加解密基于SM4分组密码算法。
同时,为了兼顾安全性和灵活性,并且不影响SSD固态硬盘控制器的高速低延迟特性,本发明基于加密固态存储控制器芯片内部含有基于SM4块加解密模块等硬件模块,可以与固件代码相配合以保证数据加解密等功能的高效率处理。
如图5所示,在第二方面,本发明还提供了一种数据自加密方法,方法应用于如本发明第一方面的数据自加密装置;
该方法包括以下步骤:
首先进入步骤S501密钥生成模块生成第一密钥信息,并将第一密钥信息存储于第一存储单元中;
而后进入步骤S502密钥处理模块获取初始密钥信息,采用第一密钥信息对初始密钥信息进行加密,得到第二密钥信息,并将第二密钥信息存储于密钥存储区中;
而后进入步骤S503当接收到主机端的数据写入指令后,密钥处理模块从密钥存储区中获取第二密钥信息,采用第一密钥信息对第二密钥信息进行解密,得到初始密钥信息;
而后进入步骤S504加解密模块从主机端获取待写入的明文数据以及从密钥处理模块获取初始密钥信息,根据选定的加解密算法采用初始密钥信息对待写入的明文数据进行加密后存储至数据存储区中。
通过上述方法,当数据自加密装置接收到主机端的数据读取指令后,密钥处理模块从密钥存储区中获取第二密钥信息,采用第一密钥信息对第二密钥信息进行解密,得到初始密钥信息;加解密模块从数据存储区中获取待读取的加密数据以及从密钥处理模块获取初始密钥信息,根据选定的加解密算法采用初始密钥信息对待读取的加密数据进行解密后输出给主机端。由于在数据读出之前通过密钥信息对于当前用户的读取权限进行认证,且认证过程中使用到的第一密钥信息、第二密钥信息、初始密钥信息始终在数据自加密装置内部进行传递,可以有效提升数据读取的安全性。
如图6所示,在某些实施例中,该方法还包括以下步骤:
首先进入步骤S601当接收到主机端的数据读取指令后,密钥处理模块从密钥存储区中获取第二密钥信息,采用第一密钥信息对第二密钥信息进行解密,得到初始密钥信息;
而后进入步骤S602加解密模块从数据存储区中获取待读取的加密数据以及从密钥处理模块获取初始密钥信息,根据选定的加解密算法采用初始密钥信息对待读取的加密数据进行解密后输出给主机端。
简言之,无论是数据写入还是读取,都需要经过密钥验证通过后才可执行对应操作,而密钥认证的触发可以在用户身份信息认证通过后执行。用户身份信息可以是人脸信息、指纹信息、声纹信息等。写入数据存储区中的数据或待从数据存储区中读取的数据始终以加密的形式进行存储,,有效保证了数据存储的安全性。
如图2-图4所示,本发明的密钥(Media Encryption Key,MEK数据加密密钥)本身也以加密的形式存储在NAND的SRB区域,并且始终只在硬盘内使用、无法被外部操作系统直接读取。用来加密MEK的是名为Key Encryption Key(KEK,密钥加密密钥)的另一组密码,它是由用户输入的密码(用户认证)经过处理产生的。电子设备开机时通过KEK解密数据加密密钥MEK,得到的真实数据加密密钥MEK,完成硬盘解锁。MEK只存储在易失性存储器(如DRAM缓存、SRAM缓存)当中,一旦电子设备关机或硬盘断电,MEK也就随之消失,所以本发明加密后的硬盘会随着关机而重新进入锁定状态。具体实现如下:
如图2所示,为密钥对应的加密密钥(即第一密钥信息,KEK)生成过程的示意图,具体步骤如下:
1.主机数据在SRAM中准备完毕;
2.使用SM3哈希引擎(即哈希运算模块)计算KEK。具体计算公式为:KEK=Hash(256比特随机数Nonce+Hash(用户PIN)+用户ID+芯片ID+“KEK”)^芯片指纹。其中,芯片指纹是存储在OTP存储单元中,由真随机数发生器在芯片出厂或者第一次使用时生成;
3.用户认证成功(即接收的用户身份信息通过认证)后,(256比特Nonce+用户ID+芯片ID)组合会存到闪存的SRB区域;
4.KEK暂存在SRAM留待下一步操作。
如图3所示,为MEK(即第二密钥信息)生成过程的示意图,具体步骤如下:
1.当一个加密分区创建的时候,真随机发生器产生256位随机数用做Flat-MEK;
2.MEK存储在安全子系统内部256比特寄存器中;
3.使用密钥包装/解包硬件模块(即密钥处理模块,KeyWrap/Unwrap)并基于KEK对flat-MEK进行加密,得到加密形式的MEK;
4.将MEK密文(Wrapped-MEK)存储在闪存的SRB中,便于下次重新上电的时候恢复MEK。
如图4所示,为本发明一实施方式涉及的数据加解密过程的原理示意图,即通过配置密钥MEK实现数据加密的过程,具体步骤如下:
1.从SRB中读取wrapped-MEK,存放在SRAM中;
2.调用密钥包装/解包硬件模块(即密钥处理模块,KeyWrap/Unwrap)并基于KEK对wrapped-MEK进行解包运算,得到flat-MEK(即初始密钥信息,KEK在用户认证通过的时候实时生成);
3.硬件可以将flat-MEK自动传送到MEK-SRAM;
4.启动SM4块加密模块,配置好加解密模式,SM4块加密模块将会使用MEK-SRAM中的密钥开始对用户数据进行加解密操作。
本发明提供了一种数据自加密方法和装置,装置包括第一存储单元、第二存储单元、加解密模块、密钥处理模块和密钥生成模块;第二存储单元包括数据存储区和密钥存储区。当接收到主机端的数据读取指令后,密钥处理模块从密钥存储区中获取第二密钥信息,采用第一密钥信息对第二密钥信息进行解密,得到初始密钥信息;加解密模块用于从数据存储区中获取待读取的加密数据以及从密钥处理模块获取初始密钥信息,根据选定的加解密算法采用初始密钥信息对待读取的加密数据进行解密后输出给主机端。通过上述方案,数据存储区中是数据始终以加密的方式存储,当需要读取时需要通过多层密钥解密,整个解密过程都在装置内部进行,有效提升了数据存储的安全性。
本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法的全部或部分步骤。
上述各实施例是参照根据实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。
Claims (10)
1.一种数据自加密装置,其特征在于,所述装置包括第一存储单元、第二存储单元、加解密模块、密钥处理模块和密钥生成模块;所述第二存储单元包括数据存储区和密钥存储区;
所述密钥生成模块用于生成第一密钥信息,并将所述第一密钥信息存储于第一存储单元中;
所述密钥处理模块用于获取初始密钥信息,采用所述第一密钥信息对所述初始密钥信息进行加密,得到第二密钥信息,并将所述第二密钥信息存储于密钥存储区中;
当接收到主机端的数据读取指令后,所述密钥处理模块用于从密钥存储区中获取第二密钥信息,采用所述第一密钥信息对所述第二密钥信息进行解密,得到初始密钥信息;所述加解密模块用于从所述数据存储区中获取待读取的加密数据以及从所述密钥处理模块获取初始密钥信息,根据选定的加解密算法采用所述初始密钥信息对所述待读取的加密数据进行解密后输出给主机端。
2.如权利要求1所述的数据自加密装置,其特征在于,
当接收到主机端的数据写入指令后,所述密钥处理模块用于从密钥存储区中获取第二密钥信息,采用所述第一密钥信息对所述第二密钥信息进行解密,得到初始密钥信息;所述加解密模块用于从所述主机端获取待写入的明文数据以及从所述密钥处理模块获取初始密钥信息,根据选定的加解密算法采用所述初始密钥信息对所述待写入的明文数据进行加密后存储至所述数据存储区中。
3.如权利要求1所述的数据自加密装置,其特征在于,所述密钥生成模块包括哈希运算模块;
所述哈希运算模块用于获取用户认证信息和/或装置标识信息,对所述用户认证信息和/或装置标识信息进行哈希运算,得到第一密钥信息,并将所述第一密钥信息存储至所述第一存储单元中。
4.如权利要求3所述的数据自加密装置,其特征在于,所述装置还包括随机数发生器;
对所述用户认证信息和/或装置标识信息进行哈希运算,得到第一密钥信息包括:
所述哈希运算模块用于获取所述随机数发生器生成的至少一个随机数,对所述至少一个随机数、所述用户认证信息和所述装置标识信息进行哈希运算,生成所述第一密钥信息。
5.如权利要求3或4所述的数据自加密装置,其特征在于,所述装置还包括OTP存储单元,所述OTP存储单元用于存储芯片指纹信息;所述密钥生成模块还包括逻辑运算模块;
所述哈希运算模块用于对所述用户认证信息和/或装置标识信息进行哈希运算,得到第一哈希运算结果;
所述逻辑运算模块用于从所述OTP存储单元中获取芯片指纹信息,对所述第一哈希运算结果和所述芯片指纹信息进行预设逻辑运算,得到所述第一密钥信息。
6.如权利要求1所述的数据自加密装置,其特征在于,所述装置还包括随机数发生器和寄存器;
当接收到加密分区创建指令时,所述随机数发生器用于随机生成一个随机数,并将生成的随机数存储于寄存器中;所述初始密钥信息为随机生成的所述随机数。
7.如权利要求1所述的数据自加密装置,其特征在于,所述加解密模块中存储有至少一种加解密算法,所述加解密算法包括SM4解密算法;
所述加解密模块用于将待读取的加密数据分割为若干个数据块,并采用SM4解密算法对各个数据块单独进行解密操作。
8.如权利要求1至7任一项所述的数据自加密装置,其特征在于,所述第一存储单元为SRAM和/或所述第二存储单元为闪存单元。
9.一种数据自加密方法,其特征在于,所述方法应用于如权利要求1至8任一项所述的数据自加密装置;
所述方法包括以下步骤:
密钥生成模块生成第一密钥信息,并将所述第一密钥信息存储于第一存储单元中;
密钥处理模块获取初始密钥信息,采用所述第一密钥信息对所述初始密钥信息进行加密,得到第二密钥信息,并将所述第二密钥信息存储于密钥存储区中;
当接收到主机端的数据写入指令后,密钥处理模块从密钥存储区中获取第二密钥信息,采用所述第一密钥信息对所述第二密钥信息进行解密,得到初始密钥信息;
加解密模块从所述主机端获取待写入的明文数据以及从所述密钥处理模块获取初始密钥信息,根据选定的加解密算法采用所述初始密钥信息对所述待写入的明文数据进行加密后存储至数据存储区中。
10.如权利要求9所述的数据自加密方法,其特征在于,所述方法还包括以下步骤:
当接收到主机端的数据读取指令后,密钥处理模块从密钥存储区中获取第二密钥信息,采用所述第一密钥信息对所述第二密钥信息进行解密,得到初始密钥信息;所述加解密模块从所述数据存储区中获取待读取的加密数据以及从所述密钥处理模块获取初始密钥信息,根据选定的加解密算法采用所述初始密钥信息对所述待读取的加密数据进行解密后输出给主机端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211479805.XA CN115865448A (zh) | 2022-11-24 | 2022-11-24 | 一种数据自加密装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211479805.XA CN115865448A (zh) | 2022-11-24 | 2022-11-24 | 一种数据自加密装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115865448A true CN115865448A (zh) | 2023-03-28 |
Family
ID=85665661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211479805.XA Pending CN115865448A (zh) | 2022-11-24 | 2022-11-24 | 一种数据自加密装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115865448A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881934A (zh) * | 2023-06-05 | 2023-10-13 | 珠海妙存科技有限公司 | 一种数据的加解密方法、系统、装置及存储介质 |
CN118132490A (zh) * | 2024-05-08 | 2024-06-04 | 北京傲星科技有限公司 | 一种安全实时总线(srb)的加固整机数据存储系统 |
-
2022
- 2022-11-24 CN CN202211479805.XA patent/CN115865448A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881934A (zh) * | 2023-06-05 | 2023-10-13 | 珠海妙存科技有限公司 | 一种数据的加解密方法、系统、装置及存储介质 |
CN116881934B (zh) * | 2023-06-05 | 2024-02-23 | 珠海妙存科技有限公司 | 一种数据的加解密方法、系统、装置及存储介质 |
CN118132490A (zh) * | 2024-05-08 | 2024-06-04 | 北京傲星科技有限公司 | 一种安全实时总线(srb)的加固整机数据存储系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102138300B (zh) | 消息认证码预计算在安全存储器中的应用 | |
US11184164B2 (en) | Secure crypto system attributes | |
CN101291224B (zh) | 在通信系统中处理数据的方法和系统 | |
US8462955B2 (en) | Key protectors based on online keys | |
CN113691502B (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
CN109543434B (zh) | 区块链信息加密方法、解密方法、存储方法及装置 | |
US11308241B2 (en) | Security data generation based upon software unreadable registers | |
CN110443049B (zh) | 一种安全数据存储管理的方法、系统及安全存储管理模块 | |
CN115865448A (zh) | 一种数据自加密装置和方法 | |
CN101582109A (zh) | 数据加密方法及装置、数据解密方法及装置、固态硬盘 | |
US9917695B2 (en) | Authenticated encryption method using working blocks | |
CN110889123B (zh) | 一种认证方法及密钥对的处理方法、装置与可读存储介质 | |
CN103701757A (zh) | 业务接入的身份认证方法与系统 | |
US20100061550A1 (en) | Data processing apparatus | |
US11405202B2 (en) | Key processing method and apparatus | |
CN115499118A (zh) | 报文密钥生成、文件加密、解密方法、装置、设备和介质 | |
CN109766731A (zh) | 基于固态硬盘的加密数据处理方法、装置和计算机设备 | |
JP2024511236A (ja) | コンピュータファイルのセキュリティ暗号化方法、復号化方法および読み取り可能な記憶媒体 | |
CN115150180A (zh) | 存储设备管理方法、存储设备、管理设备及存储介质 | |
CN114553557B (zh) | 密钥调用方法、装置、计算机设备和存储介质 | |
US11743044B2 (en) | Password-less authentication using key agreement and multi-party computation (MPC) | |
WO2022091544A1 (ja) | 情報検証装置、電子制御装置、及び情報検証方法 | |
CN111651788B (zh) | 一种基于格密码的终端访问控制系统及方法 | |
CN114936380A (zh) | 基于变色龙哈希的区块链隐私数据共享方法及系统 | |
CN114430321A (zh) | 基于dfa自适应安全的黑盒可追踪密钥属性加密方法及装置 |
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 |