CN117272350B - 数据加密密钥管理方法、装置、存储控制卡及存储介质 - Google Patents

数据加密密钥管理方法、装置、存储控制卡及存储介质 Download PDF

Info

Publication number
CN117272350B
CN117272350B CN202311526848.3A CN202311526848A CN117272350B CN 117272350 B CN117272350 B CN 117272350B CN 202311526848 A CN202311526848 A CN 202311526848A CN 117272350 B CN117272350 B CN 117272350B
Authority
CN
China
Prior art keywords
key
encrypted
target
password
encryption
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.)
Active
Application number
CN202311526848.3A
Other languages
English (en)
Other versions
CN117272350A (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.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology 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 Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311526848.3A priority Critical patent/CN117272350B/zh
Publication of CN117272350A publication Critical patent/CN117272350A/zh
Application granted granted Critical
Publication of CN117272350B publication Critical patent/CN117272350B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及数据加密技术领域,公开了一种数据加密密钥管理方法、装置、存储控制卡及存储介质。获取第一用户输入的目标密钥组对应的待校验密码;对待校验密码进行校验;当待校验密码校验成功时,获取第一用户输入的输入输出请求,根据密钥组标识和密钥标签,查找与密钥组标识和密钥标签对应的加密目标数据加密密钥;利用加密目标数据加密密钥,针对目标数据完成输入输出请求。实现了每笔输入输出请求都可以通过指定密钥标签和密钥组标识从多个数据加密密钥中查找到目标数据加密密钥,从而针对目标数据完成输入输出请求。实现了较细颗粒度数据单独隔离加解密,不影响存储空间下通过其他密钥标签对应的数据加密密钥加密的数据。

Description

数据加密密钥管理方法、装置、存储控制卡及存储介质
技术领域
本发明涉及数据加密领域,具体涉及数据加密密钥管理方法、装置、存储控制卡及存储介质。
背景技术
随着科技的发展,数据安全越来越重要,数据加密技术也越来越成熟。
目前,主流的数据加密技术通过自加密盘(SED)实现。在自加密盘内建用于数据加解密的硬件或软件模块,将用于数据加密的密钥(已加密)存储在自加密盘上的非易失磁盘阵列,每次上电后主机侧都需要提供一个预设的密码,并通过这个密码对整盘数据对应的密钥进行加解密。
上述方法,通过密码对整盘数据对应的密钥进行加解密,不能实现对整盘数据中的部分数据进行单独隔离的加解密,因此数据加解密的灵活性较差。
发明内容
有鉴于此,本发明提供了一种数据加密密钥管理方法、装置、存储控制卡及存储介质,以解决现有技术中,通过密码对整盘数据对应的密钥进行加解密,不能实现对整盘数据中的部分数据进行单独隔离的加解密,因此数据加解密的灵活性较差的问题。
第一方面,本发明提供了一种数据加密密钥管理方法,方法包括:
获取第一用户通过主机输入的目标密钥组对应的待校验密码;目标密钥组包括多个加密数据加密密钥;
对待校验密码进行校验;
当待校验密码校验成功时,获取第一用户通过主机输入的输入输出请求,输入输出请求中包括目标密钥组对应的密钥组标识以及目标密钥组中目标数据加密密钥对应的密钥标签;
根据密钥组标识和密钥标签,查找与密钥组标识和密钥标签对应的加密目标数据加密密钥;
利用加密目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。
本申请实施例提供的数据加密密钥管理方法,获取第一用户通过主机输入的目标密钥组对应的待校验密码,说明了待校验密码与目标密钥组一一对应,而不是待校验密码用于对整盘数据进行加密,因此,用户可以按照较小的颗粒度(密钥组为单位)灵活设定、更改待校验密码。对待校验密码进行校验,当待校验密码校验成功时,获取第一用户通过主机输入的输入输出请求。初步保证了数据安全,避免了第一用户通过主机输入的待校验密码错误的情况下,获取输入输出请求,并对输入输出请求进行处理导致数据丢失等问题。根据密钥组标识和密钥标签,查找与密钥组标识和密钥标签对应的加密目标数据加密密钥,保证了查找到的加密目标数据加密密钥与密钥组标识和密钥标签一一对应。然后,利用加密目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求,实现了每笔输入输出请求都可以通过指定密钥标签和密钥组标识,从多个加密数据加密密钥中查找到加密目标数据加密密钥,从而针对目标数据完成输入输出请求。因此,可以实现较细颗粒度数据单独隔离加解密,而不影响该统一存储空间下通过其他密钥标签对应的数据加密密钥加密的数据。
在一种可选的实施方式中,对待校验密码进行校验,包括:
利用第一加密引擎对待校验密码进行加密,生成待校验密码对应的第一身份密钥;
利用第一身份密钥,对待校验密码进行校验。
本申请实施例提供的数据加密密钥管理方法,利用第一加密引擎对待校验密码进行加密,生成待校验密码对应的第一身份密钥,保证了生成的第一身份密钥的准确性,且可以避免第一用户通过主机输入的待校验密码为弱口令造成加密强度低的问题。然后,利用第一身份密钥,对待校验密码进行校验,保证了得到的校验结果的准确性。
在一种可选的实施方式中,利用第一身份密钥,对待校验密码进行校验,包括:
从磁盘阵列中获取目标密钥组对应的加密盐;
基于第一身份密钥,利用第二解密引擎对加密盐进行解密,得到解密盐;
将解密盐和待校验密码作为输入,利用第一加密引擎对解密盐和待校验密码进行加密,生成加密待校验密码;
根据加密待校验密码,对待校验密码进行校验。
本申请实施例提供的数据加密密钥管理方法,从磁盘阵列中获取目标密钥组对应的加密盐,基于第一身份密钥,利用第二解密引擎对加密盐进行解密,得到解密盐,将解密盐和待校验密码作为输入,利用第一加密引擎对解密盐和待校验密码进行加密,生成加密待校验密码,可以防止彩虹表攻击问题,进而可以保证对待校验密码进行校验的准确性。根据加密待校验密码,对待校验密码进行校验,可以保证得到的校验结果的准确性。
在一种可选的实施方式中,根据加密待校验密码,对待校验密码进行校验,包括:
从磁盘阵列中获取目标密钥组对应的加密初设密码;
将加密待校验密码和加密初设密码进行对比;
当加密待校验密码和加密初设密码相同时,确定待校验密码校验成功。
本申请实施例提供的数据加密密钥管理方法,从磁盘阵列中获取目标密钥组对应的加密初设密码;将加密待校验密码和加密初设密码进行对比;当加密待校验密码和加密初设密码相同时,确定待校验密码校验成功,保证了确定待校验密码校验成功的结果的准确性。
在一种可选的实施方式中,利用第一身份密钥,对待校验密码进行校验之前,方法还包括:
获取第二用户通过主机输入的目标密钥组对应的初设密码;
利用第一加密引擎对初设密码进行加密,生成第二身份密钥;
基于第二身份密钥,生成加密盐;
基于第二身份密钥,生成加密初设密码;
根据目标密钥组对应的密钥组标识,将加密盐和加密初设密码存储至磁盘阵列中的预设位置。
本申请实施例提供的数据加密密钥管理方法,获取第二用户通过主机输入的目标密钥组对应的初设密码。初设密码与目标密钥组一一对应,初设密码并不是用于对整盘数据对应的数据加密密钥进行加密。此外,第一用户可以按照较小的颗粒度(密钥组为单位)灵活设定、更改管理各个密钥组对应的初设密码。利用第一加密引擎对初设密码进行加密,生成第二身份密钥,保证了生成的第二身份密钥的准确性,且实现了对初设密码进行加密,可以避免第二用户通过主机输入的初设密码为弱口令造成加密强度低的问题。基于第二身份密钥,生成加密盐,可以有效解决彩虹表攻击问题。基于第二身份密钥,生成加密初设密码,保证了生成的加密初设密码的准确性。根据目标密钥组对应的密钥组标识,将加密盐和加密初设密码存储至磁盘阵列中的预设位置。将加密盐和加密初设密码存储至磁盘阵列中,而不是在存储控制卡的本地存储空间,可以保证如果存储控制卡故障后更换同类型的存储控制卡,不会导致无法对待校验密码进行校验,进而导致已加密数据无法读写而造成数据丢失。
在一种可选的实施方式中,基于第二身份密钥,生成加密盐,包括:
利用真随机数发生器生成初始盐;
利用第二加密引擎对第二身份密钥和初始盐进行加密,生成加密盐。
本申请实施例提供的数据加密密钥管理方法,利用真随机数发生器生成初始盐,保证了生成的初始盐随机且保密。然后,利用第二加密引擎对第二身份密钥和初始盐进行加密,生成加密盐,可以有效解决彩虹表攻击问题。
在一种可选的实施方式中,基于第二身份密钥,生成加密初设密码,包括:
利用真随机数发生器生成初始盐;
将初始盐和初设密码作为输入,利用第一加密引擎对初始盐和初设密码进行加密,生成加密初设密码。
本申请实施例提供的数据加密密钥管理方法,利用真随机数发生器生成初始盐,保证了生成的初始盐随机且保密。然后,将初始盐和初设密码作为输入,利用第一加密引擎对初始盐和初设密码进行加密,生成加密初设密码,保证了生成的加密初设密码准确,且加密性和安全性好。
在一种可选的实施方式中,根据目标密钥组对应的密钥组标识,将加密盐和加密初设密码存储至磁盘阵列中的预设位置之后,方法还包括:
接收第二用户通过主机针对目标密钥组输入的密钥标签;
利用真随机数发生器生成目标数据加密密钥,并将目标数据加密密钥与密钥标签进行绑定;
利用第二加密引擎对第二身份密钥和目标数据加密密钥进行加密,生成加密目标数据加密密钥;
根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密目标数据加密密钥进行存储。
本申请实施例提供的数据加密密钥管理方法,接收第二用户通过主机针对目标密钥组输入的密钥标签,因此实现了第二用户可以指定密钥标签。利用真随机数发生器生成目标数据加密密钥,并将目标数据加密密钥与密钥标签进行绑定。保证了生成的目标数据加密密钥的随机性和安全性,且实现了存储控制卡可以根据第二用户通过主机输入的目标密钥组对应的初设密码自行初始化生成若干个数据加密密钥,且可以保证数据加密密钥和第二用户通过主机输入的密钥标签之间的一一映射绑定。然后,利用第二加密引擎对第二身份密钥和目标数据加密密钥进行加密,生成加密目标数据加密密钥,保证了生成的加密目标数据加密密钥的准确性,且保证了目标数据加密密钥的安全性。根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密目标数据加密密钥进行存储。将目标数据加密密钥存储在存储控制卡的易失性存储空间中,下电后丢失。上述方法,将加密目标数据加密密钥在磁盘阵列中存储,而不是在存储控制卡的本地存储空间,可以保证如果存储控制卡故障后更换同类型的存储控制卡,不会导致已加密数据无法读写而造成数据丢失。
在一种可选的实施方式中,根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密目标数据加密密钥进行存储,包括:
根据密钥标签和目标密钥组对应的密钥组标识,通过二维数组在磁盘阵列中的预设位置对加密目标数据加密密钥进行存储。
本申请实施例提供的数据加密密钥管理方法,根据密钥标签和目标密钥组对应的密钥组标识,通过二维数组在磁盘阵列中的预设位置对加密目标数据加密密钥进行存储,保证了对加密目标数据加密密钥进行存储的准确性。
在一种可选的实施方式中,方法还包括:
获取第二用户通过主机输入的与密钥标签具有绑定关系的初始应用标签;
将初始应用标签和目标数据加密密钥进行绑定;
利用第二加密引擎对第二身份密钥和初始应用标签进行加密,生成加密初始应用标签;
根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密初始应用标签进行存储。
本申请实施例提供的数据加密密钥管理方法,获取第二用户通过主机输入的与密钥标签具有绑定关系的初始应用标签,将初始应用标签和目标数据加密密钥进行绑定。实现了初始应用标签、密钥标签以及目标数据加密密钥之间的一一映射绑定关系。利用第二加密引擎对第二身份密钥和初始应用标签进行加密,生成加密初始应用标签,保证了生成的加密初始应用标签的准确性,且保证了初始应用标签的安全性。根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密初始应用标签进行存储,而不是在存储控制卡的本地存储空间,可以保证如果存储控制卡故障后更换同类型的存储控制卡,不会导致已加密数据无法读写而造成数据丢失。
在一种可选的实施方式中,根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密初始应用标签进行存储,包括:
根据密钥标签和目标密钥组对应的密钥组标识,通过二维数组在磁盘阵列中的预设位置对加密初始应用标签进行存储。
本申请实施例提供的数据加密密钥管理方法,根据密钥标签和目标密钥组对应的密钥组标识,通过二维数组在磁盘阵列中的预设位置对加密初始应用标签进行存储,保证了对加密初始应用标签进行存储的准确性。
在一种可选的实施方式中,输入输出请求中还包括待验证应用标签;利用目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求之前,该方法包括:
对输入输出请求进行读取,获取待验证应用标签;
从磁盘阵列中获取加密初始应用标签;
基于第一身份密钥,利用第二解密引擎对加密初始应用标签进行解密,得到初始应用标签;
将待验证应用标签和初始应用标签进行对比;
当待验证应用标签和初始应用标签一致时,利用目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。
本申请实施例提供的数据加密密钥管理方法,对输入输出请求进行读取,获取待验证应用标签;从磁盘阵列中获取加密初始应用标签;基于第一身份密钥,利用第二解密引擎对加密初始应用标签进行解密,得到初始应用标签;将待验证应用标签和初始应用标签进行对比;当待验证应用标签和初始应用标签一致时,利用目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。将待验证应用标签和初始应用标签进行对比,增加一道安全栅栏,防止应用程序使用错误的数据加密密钥进行数据的加解密处理,从而一定程度上保证了应用程序对多个数据加密密钥的正确使用。
在一种可选的实施方式中,该方法还包括:
当待验证应用标签和初始应用标签不一致时,中止输入输出请求执行,并向第一用户做错误应答。
本申请实施例提供的数据加密密钥管理方法,当待验证应用标签和初始应用标签不一致时,中止输入输出请求执行,并向第一用户做错误应答,防止了应用程序使用错误的数据加密密钥进行数据的加解密处理,从而一定程度上保证了应用程序对多个数据加密密钥的正确使用。
在一种可选的实施方式中,利用加密目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求,包括:
利用第二解密引擎对加密目标数据加密密钥进行解密,得到目标数据加密密钥;
利用目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。
本申请实施例提供的数据加密密钥管理方法,利用第二解密引擎对加密目标数据加密密钥进行解密,得到目标数据加密密钥,保证了得到的目标数据加密密钥的准确性。利用目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。上述方法,针对目标数据完成输入输出请求,可以便捷的实现以密钥标签为颗粒度的快速安全数据擦除功能,而不影响统一存储空间下通过其他密钥标签对应的数据加密密钥加密的数据,进而可以保证其他数据的安全。实现了用户可以按照极细的颗粒度(输入输出为单位)指定每笔输入输出请求的数据加密密钥,从而给予用户以密钥标签为基础的应用灵活度。
在一种可选的实施方式中,当输入输出请求为写输入输出请求时,利用目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求,包括:
利用目标数据加密密钥对第一用户待写入的目标数据进行数据加密,生成第一加密数据;
根据第一加密数据,计算第一加密数据对应的第一校验数据;
利用第一加密数据和第一校验数据,分别替换目标硬盘中存储的第一加密数据对应的第二加密数据和第一校验数据对应的第二校验数据。
本申请实施例提供的数据加密密钥管理方法,利用目标数据加密密钥对第一用户待写入的目标数据进行数据加密,生成第一加密数据,保证了生成的第一加密数据的准确性。根据第一加密数据,计算第一加密数据对应的第一校验数据,保证了计算得到的第一校验数据的准确性。然后,利用第一加密数据和第一校验数据,分别替换目标硬盘中存储的第一加密数据对应的第二加密数据和第一校验数据对应的第二校验数据,完成了对目标数据的写输入输出请求。
在一种可选的实施方式中,利用第一加密数据和第一校验数据,分别替换第一加密数据对应的第二加密数据和第一校验数据对应的第二校验数据,包括:
将第一加密数据覆盖写入至本地第一磁盘阵列;
将第一校验数据存储至本地第二磁盘阵列;
从目标硬盘中读取第一加密数据对应的需要被覆盖的第二加密数据以及第二加密数据对应的第二校验数据,并将第二加密数据存储至本地第三磁盘阵列,将第二校验数据存储至本地第四磁盘阵列;
将本地第一磁盘阵列中的第一加密数据和本地第二磁盘阵列中的第一校验数据写入目标硬盘,完成落盘。
本申请实施例提供的数据加密密钥管理方法,将第一加密数据覆盖写入至本地第一磁盘阵列;将第一校验数据存储至本地第二磁盘阵列;从目标硬盘中读取第一加密数据对应的需要被覆盖的第二加密数据以及第二加密数据对应的第二校验数据,并将第二加密数据存储至本地第三磁盘阵列,将第二校验数据存储至本地第四磁盘阵列;将本地第一磁盘阵列中的第一加密数据和本地第二磁盘阵列中的第一校验数据写入目标硬盘,完成落盘,完成了对目标数据的写输入输出请求,实现了数据更新。
在一种可选的实施方式中,当输入输出请求为读输入输出请求时,利用目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求,包括:
将目标硬盘中处于加密状态的目标数据读取到本地第五磁盘阵列;
利用目标数据加密密钥,对本地第五磁盘阵列中目标数据进行数据解密,生成第一解密数据,并将解密后的第一解密数据存储至本地第五磁盘阵列;
将第一解密数据返回给第一用户。
本申请实施例提供的数据加密密钥管理方法,将目标硬盘中处于加密状态的目标数据读取到本地第五磁盘阵列;利用目标数据加密密钥,对本地第五磁盘阵列中目标数据进行数据解密,生成第一解密数据,保证了生成的第一解密数据的准确性。并将解密后的第一解密数据存储至本地第五磁盘阵列;将第一解密数据返回给第一用户,完成了对目标数据的读输入输出请求。
第二方面,本发明提供了一种数据加密密钥管理装置,该装置包括:
第一获取模块,用于获取第一用户通过主机输入的目标密钥组对应的待校验密码;目标密钥组包括多个加密数据加密密钥;
校验模块,用于对待校验密码进行校验;
第二获取模块,用于当待校验密码校验成功时,获取第一用户通过主机输入的输入输出请求,输入输出请求中包括目标密钥组对应的密钥组标识以及目标密钥组中目标数据加密密钥对应的密钥标签;
查找模块,用于根据密钥组标识和密钥标签,查找与密钥组标识和密钥标签对应的加密目标数据加密密钥;
完成模块,用于利用加密目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。
本申请实施例提供的数据加密密钥管理装置,获取第一用户通过主机输入的目标密钥组对应的待校验密码,说明了待校验密码与目标密钥组一一对应,而不是待校验密码用于对整盘数据进行加密,因此,用户可以按照较小的颗粒度(密钥组为单位)灵活设定、更改待校验密码。对待校验密码进行校验,当待校验密码校验成功时,获取第一用户通过主机输入的输入输出请求。初步保证了数据安全,避免了第一用户通过主机输入的待校验密码错误的情况下,获取输入输出请求,并对输入输出请求进行处理导致数据丢失等问题。根据密钥组标识和密钥标签,查找与密钥组标识和密钥标签对应的加密目标数据加密密钥,保证了查找到的加密目标数据加密密钥与密钥组标识和密钥标签一一对应。然后,利用加密目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求,实现了每笔输入输出请求都可以通过指定密钥标签和密钥组标识,从多个加密数据加密密钥中查找到加密目标数据加密密钥,从而针对目标数据完成输入输出请求。因此,可以实现较细颗粒度数据单独隔离加解密,而不影响该统一存储空间下通过其他密钥标签对应的数据加密密钥加密的数据。
第三方面,本发明提供了一种存储控制卡,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的数据加密密钥管理方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的数据加密密钥管理方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的相关技术的数据加密方法的流程示意图;
图2是根据本发明实施例的每输入输出密钥(Key Per 输入输出)概念对应的密钥管理方案流程图;
图3是根据本发明实施例的数据加密密钥管理方法的流程示意图;
图4是根据本发明实施例的另一数据加密密钥管理方法的流程示意图;
图5是根据本发明实施例的又一数据加密密钥管理方法的流程示意图;
图6是根据本发明实施例的完成写输入输出请求的流程示意图;
图7是根据本发明实施例的完成读输入输出请求的流程示意图;
图8是根据本发明实施例的再一数据加密密钥管理方法的流程示意图;
图9是根据本发明实施例的对数据加密密钥进行初始化管理的流程示意图;
图10是根据本发明实施例的对待校验密码进行校验及目标数据加密密钥恢复的流程示意图;
图11是根据本发明实施例的数据加密密钥管理装置的结构框图;
图12是根据本发明实施例的又一数据加密密钥管理装置的结构框图;
图13是根据本发明实施例的再一数据加密密钥管理装置的结构框图;
图14是根据本发明实施例的另一数据加密密钥管理装置的结构框图;
图15是根据本发明实施例的又一数据加密密钥管理装置的结构框图;
图16是根据本发明实施例的再一数据加密密钥管理装置的结构框图;
图17是本发明实施例的存储控制卡的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着科技的发展,数据安全越来越重要,数据加密技术也越来越成熟。目前,主流的数据加密技术通过自加密盘(SED)实现,其密钥管理方案如下图1所示。在自加密盘内建用于数据加解密的硬件或软件模块,用于数据加密的密钥(已加密)存储在自加密盘上的非易失磁盘阵列,每次上电后主机侧都需要提供一个预设的密码,并通过这个密码对整盘数据对应的密钥进行加解密。
上述方法,通过密码对整盘数据对应的密钥进行加解密,不能实现对整盘数据中的部分数据进行单独隔离的加解密,因此数据加解密的灵活性较差。
随着技术的不断进步,每输入输出密钥(Key Per IO)的概念被提出,可以实现极细颗粒度的密钥管理,即每笔输入输出可以使用不同的数据加密密钥对数据进行加密和解密操作,其密钥管理方案如下图2所示。主机上不同租户、对象或者文件可以被分配一个或者多个密钥标签,从而通过使用不同的数据密钥实现了同一个存储空间的下的数据安全隔离。在密钥的管理上,由主机负责数据密钥的全生命周期,硬盘在上电后由主机负责初始化生成数据密钥并绑定一个密钥标签,再将其注入硬盘,硬盘将数据密钥存储到本地的易失性存储(下电后丢失)。主机向硬盘下发的每笔输入输出均需携带相应的密钥标签指定需要使用的数据密钥,硬盘依据输入输出中的密钥标签,调用对应的数据密钥对数据进行加解密操作。主机需要确保正确的数据密钥和密钥标签的绑定关系,并保证每笔输入输出都使用正确的密钥标签。
但是,当前上述每输入输出密钥只是停留在概念阶段,并没有真实的实现方案。基于此,本申请实施例提供了一种数据加密密钥管理方法。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供的数据加密密钥管理方法,可用于存储控制卡,该存储控制卡可以安装在移动终端,也可以安装在服务器,移动终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
图3是根据本发明实施例的数据加密密钥管理方法的流程图,如图3所示,该流程包括如下步骤:
步骤S101,获取第一用户通过主机输入的目标密钥组对应的待校验密码。
其中,目标密钥组包括多个加密数据加密密钥。
具体地,第一用户可以基于主机的输入组件,向主机中的存储控制卡输入目标密钥组对应的待校验密码,从而使得存储控制卡可以获取到第一用户通过主机输入的目标密钥组对应的待校验密码。
其中,存储控制卡可以安装在主机内部,该主机可以是终端设备,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
其中,待校验密码可以是PIN码,PIN码可以由一定长度的若干ASCII字符组成,待校验密码可以是由其他数字、字母、符号等字符组成的一段字符串,本申请实施例对待校验密码不做具体限定。
步骤S102,对待校验密码进行校验。
具体地,存储控制卡可以获取待校验密码对应的初设密码,然后将待校验密码与初设密码进行对比,根据对比结果对待校验密码进行校验。其中,初设密码可以是之前第二用户针对目标密钥组初步设定的密码,第二用户和第一用户可以是同一用户,也可以是不同用户。
当待校验密码与初设密码一致时,确定待校验密码校验成功;当待校验密码与初设密码不一致时,确定待校验密码校验失败。
关于该步骤将在下文进行详细介绍。
步骤S103,当待校验密码校验成功时,获取第一用户通过主机输入的输入输出请求。
其中,输入输出请求中包括目标密钥组对应的密钥组标识以及目标密钥组中目标数据加密密钥对应的密钥标签。
具体地,当待校验密码校验成功时,存储控制卡接收第一用户基于主机的输入组件输入的输入输出请求;当待校验密码校验失败时,存储控制卡向第一用户反馈校验失败的信息。
步骤S104,根据密钥组标识和密钥标签,查找与密钥组标识和密钥标签对应的加密目标数据加密密钥。
具体地,存储控制卡获取到第一用户通过主机输入的输入输出请求之后,读取输入输出请求中包括的目标密钥组对应的密钥组标识以及目标密钥组中目标数据加密密钥对应的密钥标签,然后根据密钥组标识和密钥标签与加密目标数据加密密钥之间的一一映射绑定关系,查找与密钥组标识和密钥标签对应的加密目标数据加密密钥。
步骤S105,利用加密目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。
具体地,存储控制卡可以对加密目标数据加密密钥进行解密,得到目标数据加密密钥。然后,利用目标数据加密密钥对目标数据完成输入输出请求。
关于该步骤将在下文进行详细介绍。
本申请实施例提供的数据加密密钥管理方法,获取第一用户通过主机输入的目标密钥组对应的待校验密码,说明了待校验密码与目标密钥组一一对应,而不是待校验密码用于对整盘数据进行加密,因此,用户可以按照较小的颗粒度(密钥组为单位)灵活设定、更改待校验密码。对待校验密码进行校验,当待校验密码校验成功时,获取第一用户通过主机输入的输入输出请求。初步保证了数据安全,避免了第一用户通过主机输入的待校验密码错误的情况下,获取输入输出请求,并对输入输出请求进行处理导致数据丢失等问题。根据密钥组标识和密钥标签,查找与密钥组标识和密钥标签对应的加密目标数据加密密钥,保证了查找到的加密目标数据加密密钥与密钥组标识和密钥标签一一对应。然后,利用加密目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求,实现了每笔输入输出请求都可以通过指定密钥标签和密钥组标识,从多个加密数据加密密钥中查找到加密目标数据加密密钥,从而针对目标数据完成输入输出请求。因此,可以实现较细颗粒度数据单独隔离加解密,而不影响该统一存储空间下通过其他密钥标签对应的数据加密密钥加密的数据。
图4是根据本发明实施例的数据加密密钥管理方法的流程图,如图4所示,该流程包括如下步骤:
步骤S201,获取第一用户通过主机输入的目标密钥组对应的待校验密码。
其中,目标密钥组包括多个加密数据加密密钥。
详细请参见图3所示实施例的步骤S101,在此不再赘述。
步骤S202,对待校验密码进行校验。
具体地,上述步骤S202包括:
步骤S2021,利用第一加密引擎对待校验密码进行加密,生成待校验密码对应的第一身份密钥。
具体地,存储控制卡可以利用第一加密引擎对待校验密码进行加密,生成待校验密码对应的第一身份密钥。
其中,第一加密引擎可以支持哈希散列算法,典型的有SHA-1,SHA-2, SM3, MD5等,还可以支持上述多种加密算法的多重组合。
步骤S2022,利用第一身份密钥,对待校验密码进行校验。
可选的,存储控制卡可以获取初设密码对应的第二身份密钥,然后将第一身份密钥和第二身份密钥进行对比,根据对比结果对待校验密码进行校验。
当第一身份密钥和第二身份密钥一致时,确定待校验密码校验成功;当第一身份密钥和第二身份密钥不一致时,确定待校验密码校验失败。
在一些可选的实施方式中,上述步骤S2022包括:
步骤a1,从磁盘阵列中获取目标密钥组对应的加密盐。
具体地,存储控制卡可以根据目标密钥组对应的密钥组标识,从磁盘阵列中查找目标密钥组对应的加密盐。
其中,加密盐存储至磁盘阵列的过程将在下文进行详细介绍。
步骤a2,基于第一身份密钥,利用第二解密引擎对加密盐进行解密,得到解密盐。
具体地,存储控制卡可以利用第一身份密钥和第二解密引擎对加密盐进行解密,得到解密盐。
其中,第二解密引擎可以支持对称加密算法,例如,典型的有DES、3DES、IDEA、AES、SM1、SM4等,或者是它们的多重组合实现。
步骤a3,将解密盐和待校验密码作为输入,利用第一加密引擎对解密盐和待校验密码进行加密,生成加密待校验密码。
然后,存储控制卡将解密得到的解密盐与待校验密码作为输入,利用第一加密引擎对解密盐和待校验密码进行加密,生成加密待校验密码。
其中,第一加密引擎可以支持哈希散列算法,典型的有SHA-1,SHA-2, SM3, MD5等,还可以支持上述多种加密算法的多重组合。
步骤a4,根据加密待校验密码,对待校验密码进行校验。
在一些可选的实施方式中,上述步骤a4包括:
步骤a41,从磁盘阵列中获取目标密钥组对应的加密初设密码;
步骤a42,将加密待校验密码和加密初设密码进行对比;
步骤a43,当加密待校验密码和加密初设密码相同时,确定待校验密码校验成功。
具体地,存储控制卡可以从磁盘阵列中获取目标密钥组对应的加密初设密码。其中,加密初设密码生成以及存储至磁盘阵列的过程将在下文进行详细介绍。
然后,将加密待校验密码和加密初设密码进行对比,当加密待校验密码和加密初设密码相同时,确定待校验密码校验成功。当加密待校验密码和加密初设密码不相同时,确定待校验密码校验失败,并向第一用户反馈待校验密码验证失败的信息。
步骤S203,当待校验密码校验成功时,获取第一用户通过主机输入的输入输出请求。
其中,输入输出请求中包括目标密钥组对应的密钥组标识以及目标密钥组中目标数据加密密钥对应的密钥标签。
关于该步骤请参见图3所示实施例的步骤S103,在此不再赘述。
步骤S204,根据密钥组标识和密钥标签,查找与密钥组标识和密钥标签对应的加密目标数据加密密钥。
关于该步骤请参见图3所示实施例的步骤S104,在此不再赘述。
步骤S205,利用加密目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。
关于该步骤请参见图3所示实施例的步骤S105,在此不再赘述。
本申请实施例提供的数据加密密钥管理方法,利用第一加密引擎对待校验密码进行加密,生成待校验密码对应的第一身份密钥,保证了生成的第一身份密钥的准确性,且可以避免第一用户通过主机输入的待校验密码为弱口令造成加密强度低的问题。从磁盘阵列中获取目标密钥组对应的加密盐,基于第一身份密钥,利用第二解密引擎对加密盐进行解密,得到解密盐,将解密盐和待校验密码作为输入,利用第一加密引擎对解密盐和待校验密码进行加密,生成加密待校验密码,可以防止彩虹表攻击问题,进而可以保证对待校验密码进行校验的准确性。从磁盘阵列中获取目标密钥组对应的加密初设密码;将加密待校验密码和加密初设密码进行对比;当加密待校验密码和加密初设密码相同时,确定待校验密码校验成功,保证了确定待校验密码校验成功的结果的准确性。进而可以保证数据安全,避免数据丢失。
在本实施例中提供了一种数据加密密钥管理方法,图5是根据本发明实施例的数据加密密钥管理方法的流程图,如图5所示,该流程包括如下步骤:
步骤S301,获取第二用户通过主机输入的目标密钥组对应的初设密码。
具体地,第二用户可以基于主机的输入组件,向存储控制卡输入目标密钥组对应的初设密码,从而使得存储控制卡可以获取到第二用户通过主机输入的目标密钥组对应的初设密码。
其中,存储控制卡可以安装在主机内部,该主机可以是终端设备,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
其中,初设密码用于表征第二用户针对目标密钥组初步设定的密码。初设密码可以是PIN码,PIN码可以由一定长度的若干ASCII字符组成,待校验密码可以是由其他数字、字母、符号等字符组成的一段字符串,本申请实施例对初设密码不做具体限定。
其中,第二用户和第一用户可以是同一用户,也可以是不同用户,初设密码和待校验密码可能相同,也可能不同。
步骤S302,利用第一加密引擎对初设密码进行加密,生成第二身份密钥。
具体地,存储控制卡可以利用第一加密引擎对初设密码进行加密,生成第二身份密钥。
其中,第一加密引擎可以支持哈希散列算法,典型的有SHA-1,SHA-2, SM3, MD5等,还可以支持上述多种加密算法的多重组合。
步骤S303,基于第二身份密钥,生成加密盐。
具体地,上述步骤S303包括:
步骤S3031,利用真随机数发生器生成初始盐。
具体地,存储控制卡可以利用真随机数发生器随机生成一个真随机数,称之为初始盐。
步骤S3032,利用第二加密引擎对第二身份密钥和初始盐进行加密,生成加密盐。
具体地,存储控制卡利用述第二加密引擎对第二身份密钥和初始盐进行加密,生成加密盐。
其中,第二加密引擎可以支持对称加密算法,例如,典型的有DES、3DES、IDEA、AES、SM1、SM4等,或者是它们的多重组合实现。
步骤S304,基于第二身份密钥,生成加密初设密码。
具体地,上述步骤S304包括:
步骤S3041,利用真随机数发生器生成初始盐。
具体地,存储控制卡可以利用真随机数发生器随机生成一个真随机数,称之为初始盐。
步骤S3042,将初始盐和初设密码作为输入,利用第一加密引擎对初始盐和初设密码进行加密,生成加密初设密码。
具体地,存储控制卡将初始盐和初设密码作为输入,利用第一加密引擎对初始盐和初设密码进行加密,生成加密初设密码。
其中,第一加密引擎可以支持哈希散列算法,典型的有SHA-1,SHA-2, SM3, MD5等,还可以支持上述多种加密算法的多重组合。
步骤S305,根据目标密钥组对应的密钥组标识,将加密盐和加密初设密码存储至磁盘阵列中的预设位置。
具体地,存储控制卡在生成目标密钥组对应的加密盐和加密初设密码之后,可以根据目标密钥组对应的密钥组标识,将加密盐和加密初设密码存储至磁盘阵列中的预设位置。
步骤S306,接收第二用户通过主机针对目标密钥组输入的密钥标签。
具体地,第二用户可以基于主机的输入组件,向存储控制卡输入针对目标密钥组指定的密钥标签,从而使得存储控制卡可以接收第二用户针对目标密钥组输入的密钥标签。
步骤S307,利用真随机数发生器生成目标数据加密密钥,并将目标数据加密密钥与密钥标签进行绑定。
具体地,存储控制卡可以利用真随机数发生器随机生成一定位宽的真随机数,称之为目标数据加密密钥,并将目标数据加密密钥与密钥标签进行绑定,从而使得密钥标签成为目标数据加密密钥的标识信息,且第二用户只知道密钥标签的内容,并不知道目标数据加密密钥的内容,只能通过密钥标签查找目标数据加密密钥,保证了目标数据加密密钥的安全性。
步骤S308,利用第二加密引擎对第二身份密钥和目标数据加密密钥进行加密,生成加密目标数据加密密钥。
具体地,存储控制卡可以利用第二加密引擎对第二身份密钥和目标数据加密密钥进行加密,生成加密目标数据加密密钥,进一步保证了目标数据加密密钥的安全性。
其中,第二加密引擎可以支持对称加密算法,例如,典型的有DES、3DES、IDEA、AES、SM1、SM4等,或者是它们的多重组合实现。
步骤S309,根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密目标数据加密密钥进行存储。
在本申请一种可选的实施方式中,上述步骤S309,可以包括如下内容:
根据密钥标签和目标密钥组对应的密钥组标识,通过二维数组在磁盘阵列中的预设位置对加密目标数据加密密钥进行存储。
具体地,存储控制卡根据密钥标签、密钥组标识以及目标数据加密密钥之间的一一映射绑定关系,确定加密目标数据加密密钥在[密钥组标识][密钥标签]二维数组的对应位置,然后,在磁盘阵列中的预设位置对加密目标数据加密密钥进行存储。
步骤S310,获取第一用户通过主机输入的目标密钥组对应的待校验密码。
其中,目标密钥组包括多个加密数据加密密钥。
关于该步骤请参见图4所示实施例的步骤S201,在此不再赘述。
步骤S311,对待校验密码进行校验。
关于该步骤请参见图4所示实施例的步骤S202,在此不再赘述。
步骤S312,当待校验密码校验成功时,获取第一用户通过主机输入的输入输出请求。
其中,输入输出请求中包括目标密钥组对应的密钥组标识以及目标密钥组中目标数据加密密钥对应的密钥标签。
关于该步骤请参见图4所示实施例的步骤S203,在此不再赘述。
步骤S313,根据密钥组标识和密钥标签,查找与密钥组标识和密钥标签对应的加密目标数据加密密钥。
关于该步骤请参见图4所示实施例的步骤S204,在此不再赘述。
在本申请一种可选的实施方式中,当第一用户通过主机输入多个输入输出请求时,当待校验密码校验成功后,存储控制卡可以获取第一用户通过主机输入的多个输入输出请求,并获取到多个输入输出请求分别对应的密钥组标识、密钥标签以及与密钥组标识和密钥标签对应的加密目标数据加密密钥。
步骤S314,利用加密目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。
具体地,步骤S314可以包括如下步骤:
步骤S3141,利用第二解密引擎对加密目标数据加密密钥进行解密,得到目标数据加密密钥。
具体地,存储控制卡可以利用第二解密引擎对加密目标数据加密密钥进行解密,得到目标数据加密密钥。
其中,第二解密引擎可以支持对称加密算法,例如,典型的有DES、3DES、IDEA、AES、SM1、SM4等,或者是它们的多重组合实现。
步骤S3142,利用目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。
可选的,当输入输出请求为写输入输出请求时,上述步骤S3142可以包括如下步骤:
步骤b1,利用目标数据加密密钥对第一用户待写入的目标数据进行数据加密,生成第一加密数据。
具体地,存储控制卡在获取到目标数据加密密钥之后,利用目标数据加密密钥对第一用户待对应的写入的目标数据进行数据加密,生成第一加密数据。
步骤b2,根据第一加密数据,计算第一加密数据对应的第一校验数据。
具体地,在生成第一加密数据之后,存储控制卡可以利用预设校验算法计算第一加密数据对应的第一校验数据。
其中,预设校验算法可以是md5算法或者des算法,也可以是其他校验算法。
步骤b3,利用第一加密数据和第一校验数据,分别替换目标硬盘中存储的第一加密数据对应的第二加密数据和第一校验数据对应的第二校验数据。
可选的,存储控制卡可以直接在目标硬盘中利用第一加密数据覆盖第二加密数据,利用第一校验数据覆盖第二加密数据对应的第二校验数据。
具体地,上述步骤步骤b3,可以包括如下步骤
步骤b31,将第一加密数据覆盖写入至本地第一存储空间。
步骤b32,将第一校验数据存储至本地第二存储空间。
步骤b33,从目标硬盘中读取第一加密数据对应的需要被覆盖的第二加密数据以及第二加密数据对应的第二校验数据,并将第二加密数据存储至本地第三存储空间,将第二校验数据存储至本地第四存储空间。
步骤b34,将本地第一存储空间中的第一加密数据和本地第二存储空间中的第一校验数据写入目标硬盘,完成落盘。
具体地,存储控制卡可以将第一加密数据覆盖写入至本地第一存储空间,将第一校验数据存储至本地第二存储空间。然后,从目标硬盘中读取第一加密数据对应的需要被覆盖的第二加密数据以及第二加密数据对应的第二校验数据,并将第二加密数据存储至本地第三存储空间,将第二校验数据存储至本地第四存储空间。
然后,将本地第一存储空间中的第一加密数据和本地第二存储空间中的第一校验数据写入目标硬盘,完成落盘。
示例性的,如图6所示,存储控制卡选择密钥标签所对应的目标数据加密密钥对第一用户对应的待写入的目标数据进行数据加密,并将结果覆盖写入第一存储空间。然后,存储控制卡从目标硬盘上读取要覆盖的旧的第二加密数据到第三存储空间,和第二加密数据对应的待更新的第二校验数据到第四存储空间。
存储控制卡通过RAID计算模块,生成第一加密数据对应的新的第一校验数据,并将其存入第四存储空间。然后,将第一存储空间中的第一加密数据和第四存储空间中的第一校验数据写入硬盘,完成落盘操作。
可选的,当输入输出请求为读输入输出请求时,上述步骤S3142可以包括如下步骤:
步骤c1,将目标硬盘中处于加密状态的目标数据读取到本地第五存储空间;
步骤c2,利用目标数据加密密钥,对本地第五存储空间中目标数据进行数据解密,生成第一解密数据,并将解密后的第一解密数据存储至本地第五存储空间;
步骤c3,将第一解密数据返回给第一用户。
示例性的,如图7所示,存储控制卡可以根据输入输出请求在目标硬盘中查找到处于加密状态的目标数据,然后,存储控制卡向对应的目标硬盘发送读指令,将处于加密状态的目标数据读取到本地存储空间中。然后,利用目标数据加密密钥,对本地存储空间中目标数据进行数据解密,生成第一解密数据,并将解密后的第一解密数据存储至本地本地存储空间。然后,将解密后的第一解密数据返回主机并完成应答。
本申请实施例提供的数据加密密钥管理方法,获取第二用户通过主机输入的目标密钥组对应的初设密码。初设密码与目标密钥组一一对应,初设密码并不是用于对整盘数据对应的数据加密密钥进行加密。此外,第一用户可以按照较小的颗粒度(密钥组为单位)灵活设定、更改管理各个密钥组对应的初设密码。利用第一加密引擎对初设密码进行加密,生成第二身份密钥,保证了生成的第二身份密钥的准确性,且实现了对初设密码进行加密,可以避免第二用户通过主机输入的初设密码为弱口令造成加密强度低的问题。基于第二身份密钥,生成加密盐,可以有效解决彩虹表攻击问题。基于第二身份密钥,生成加密初设密码,保证了生成的加密初设密码的准确性。根据目标密钥组对应的密钥组标识,将加密盐和加密初设密码存储至磁盘阵列中的预设位置。将加密盐和加密初设密码存储至磁盘阵列中,而不是在存储控制卡的本地存储空间,可以保证如果存储控制卡故障后更换同类型的存储控制卡,不会导致无法对待校验密码进行校验,进而导致已加密数据无法读写而造成数据丢失。
然后,接收第二用户通过主机针对目标密钥组输入的密钥标签,因此实现了第二用户可以指定密钥标签。利用真随机数发生器生成目标数据加密密钥,并将目标数据加密密钥与密钥标签进行绑定。保证了生成的目标数据加密密钥的随机性和安全性,且实现了存储控制卡可以根据第二用户通过主机输入的目标密钥组对应的初设密码自行初始化生成若干个数据加密密钥,且可以保证数据加密密钥和第二用户通过主机输入的密钥标签之间的一一映射绑定。然后,利用第二加密引擎对第二身份密钥和目标数据加密密钥进行加密,生成加密目标数据加密密钥,保证了生成的加密目标数据加密密钥的准确性,且保证了目标数据加密密钥的安全性。根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密目标数据加密密钥进行存储。将目标数据加密密钥存储在存储控制卡的易失性存储空间中,下电后丢失。上述方法,将加密目标数据加密密钥在磁盘阵列中存储,而不是在存储控制卡的本地存储空间,可以保证如果存储控制卡故障后更换同类型的存储控制卡,不会导致已加密数据无法读写而造成数据丢失。
在本申请一种可选的实施方式中,输入输出请求中还包括待验证应用标签;图8是根据本发明实施例的数据加密密钥管理方法的流程图,如图8所示,该流程包括如下步骤:
步骤S401,获取第二用户通过主机输入的目标密钥组对应的初设密码。
关于该步骤请参见图5实施方式中的S301,在此不再赘述。
步骤S402,利用第一加密引擎对初设密码进行加密,生成第二身份密钥。
关于该步骤请参见图5实施方式中的S302,在此不再赘述。
步骤S403,基于第二身份密钥,生成加密盐。
关于该步骤请参见图5实施方式中的S303,在此不再赘述。
步骤S404,基于第二身份密钥,生成加密初设密码。
关于该步骤请参见图5实施方式中的S304,在此不再赘述。
步骤S405,根据目标密钥组对应的密钥组标识,将加密盐和加密初设密码存储至磁盘阵列中的预设位置。
关于该步骤请参见图5实施方式中的S305,在此不再赘述。
步骤S406,接收第二用户通过主机针对目标密钥组输入的密钥标签。
关于该步骤请参见图5实施方式中的S306,在此不再赘述。
步骤S407,利用真随机数发生器生成目标数据加密密钥,并将目标数据加密密钥与密钥标签进行绑定。
关于该步骤请参见图5实施方式中的S307,在此不再赘述。
步骤S408,利用第二加密引擎对第二身份密钥和目标数据加密密钥进行加密,生成加密目标数据加密密钥。
关于该步骤请参见图5实施方式中的S308,在此不再赘述。
步骤S409,根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密目标数据加密密钥进行存储。
关于该步骤请参见图5实施方式中的S309,在此不再赘述。
步骤S410,获取第二用户通过主机输入的与密钥标签具有绑定关系的初始应用标签。
具体地,第二用户可以基于主机的输入组件,输入与密钥标签具有绑定关系的初始应用标签,从而使得存储控制卡可以获取到与密钥标签具有绑定关系的初始应用标签。
步骤S411,将初始应用标签和目标数据加密密钥进行绑定。
具体地,接收到初始应用标签之后,存储控制卡将初始应用标签与真随机数发生器生成的目标数据加密密钥进行绑定。
步骤S412,利用第二加密引擎对第二身份密钥和初始应用标签进行加密,生成加密初始应用标签。
具体地,存储控制卡利用第二加密引擎对第二身份密钥和初始应用标签进行加密,生成加密初始应用标签。
其中,第二加密引擎可以支持对称加密算法,例如,典型的有DES、3DES、IDEA、AES、SM1、SM4等,或者是它们的多重组合实现。
步骤S413,根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密初始应用标签进行存储。
在本申请一种可选的实施方式中,存储控制卡根据密钥标签和目标密钥组对应的密钥组标识,通过二维数组在磁盘阵列中的预设位置对加密初始应用标签进行存储。
在本本申请另一种可选的实施方式中,存储控制卡根据密钥标签和目标密钥组对应的密钥组标识,通过HASH散列映射的方式在磁盘阵列中的预设位置对加密初始应用标签进行存储。
步骤S414,获取第一用户通过主机输入的目标密钥组对应的待校验密码。
其中,目标密钥组包括多个加密数据加密密钥。
关于该步骤请参见图5所示实施例的步骤S310,在此不再赘述。
步骤S415,对待校验密码进行校验。
关于该步骤请参见图5所示实施例的步骤S311,在此不再赘述。
步骤S416,当待校验密码校验成功时,获取第一用户通过主机输入的输入输出请求。
其中,输入输出请求中包括目标密钥组对应的密钥组标识以及目标密钥组中目标数据加密密钥对应的密钥标签。
关于该步骤请参见图5所示实施例的步骤S312,在此不再赘述。
步骤S417,根据密钥组标识和密钥标签,查找与密钥组标识和密钥标签对应的加密目标数据加密密钥。
关于该步骤请参见图5所示实施例的步骤S313,在此不再赘述。
在本申请一种可选的实施方式中,当第一用户通过主机输入多个输入输出请求时,当待校验密码校验成功后,存储控制卡可以获取第一用户通过主机输入的多个输入输出请求,并获取到多个输入输出请求分别对应的密钥组标识、密钥标签、以及与密钥组标识和密钥标签对应的加密目标数据加密密钥和加密初始应用标签。
步骤S418,对输入输出请求进行读取,获取待验证应用标签。
具体地,存储控制卡可以对输入输出请求进行读取,获取输入输出请求中包括的待验证应用标签。
步骤S419,从磁盘阵列中获取加密初始应用标签。
具体地,存储控制卡根据输入输出请求中包括的密钥组标识和密钥标签,从磁盘阵列中查找加密初始应用标签。
步骤S420,基于第一身份密钥,利用第二解密引擎对加密初始应用标签进行解密,得到初始应用标签。
具体地,存储控制卡基于第一身份密钥,利用第二解密引擎对加密初始应用标签进行解密,得到初始应用标签。
其中,第二解密引擎可以支持对称加密算法,例如,典型的有DES、3DES、IDEA、AES、SM1、SM4等,或者是它们的多重组合实现。
步骤S421,将待验证应用标签和初始应用标签进行对比。
步骤S422,当待验证应用标签和初始应用标签一致时,利用目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。
可选的,当待验证应用标签和初始应用标签不一致时,中止输入输出请求执行,并向第一用户做错误应答。
具体地,存储控制卡将待验证应用标签和解密得到的初始应用标签进行对比,当待验证应用标签和初始应用标签不一致时,中止输入输出请求执行,并向第一用户做错误应答。
当待验证应用标签和初始应用标签一致时,利用目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。
步骤S423,利用加密目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。
关于该步骤请参见图5所示实施例的步骤S314,在此不再赘述。
本申请实施例提供的数据加密密钥管理方法,获取第二用户通过主机输入的与密钥标签具有绑定关系的初始应用标签,将初始应用标签和目标数据加密密钥进行绑定。实现了初始应用标签、密钥标签以及目标数据加密密钥之间的一一映射绑定关系。利用第二加密引擎对第二身份密钥和初始应用标签进行加密,生成加密初始应用标签,保证了生成的加密初始应用标签的准确性,且保证了初始应用标签的安全性。根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密初始应用标签进行存储,而不是在存储控制卡的本地存储空间,可以保证如果存储控制卡故障后更换同类型的存储控制卡,不会导致已加密数据无法读写而造成数据丢失。
此外,对输入输出请求进行读取,获取待验证应用标签;从磁盘阵列中获取加密初始应用标签;基于第一身份密钥,利用第二解密引擎对加密初始应用标签进行解密,得到初始应用标签;将待验证应用标签和初始应用标签进行对比;当待验证应用标签和初始应用标签一致时,利用目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。将待验证应用标签和初始应用标签进行对比,增加一道安全栅栏,防止应用程序使用错误的数据加密密钥进行数据的加解密处理,从而一定程度上保证了应用程序对多个数据加密密钥的正确使用。
在本申请一种可选的实施方式中,方法还包括:
呈现标准NVMe(target)目标设备接口,通过预留的CDW2/3进行密钥标签和应用标签的输入输出请求扩展支持。
具体地,存储控制卡可以呈现标准的NVMe目标设备接口,以NVMe标准1.4版本协议规定的提交队列(Submiss输入输出n Queue)命令格式(64字节)为基础,通过预留的CDW2/CDW3进行密钥标签KID和ATag的相关的扩展支持定义,需要扩展该字段的命令包括 Read(读)、Write(写)、Compare(比较)、Copy(拷贝)、Verify(验证)、Write Zeros(写0)和ZoneAppend(区域附加)。命令字号表可以如下表1所示:
表1命令字号表
本申请实施例提供的数据加密密钥管理方法,呈现标准NVMe(target)目标设备接口,通过预留的CDW2/3进行密钥标签和应用标签的输入输出请求扩展支持,从而实现了不同接口(SATA/SAS/NVMe)和存储介质的普通硬盘都可以实现面向应用的细颗粒度的数据加密功能。
为了更好地介绍本申请实施例提供的数据加密密钥管理方法,本申请实施例提供了一种数据加密密钥管理的具体实施方式:
步骤S501,获取第二用户通过主机输入的目标密钥组对应的初设密码。
步骤S502,利用第一加密引擎对初设密码进行加密,生成第二身份密钥。
步骤S503,利用真随机数发生器生成初始盐。
步骤S504,利用第二加密引擎对第二身份密钥和初始盐进行加密,生成加密盐。
步骤S505,将初始盐和初设密码作为输入,利用第一加密引擎对初始盐和初设密码进行加密,生成加密初设密码。
步骤S506,根据目标密钥组对应的密钥组标识,将加密盐和加密初设密码存储至磁盘阵列中的预设位置。
步骤S507,接收第二用户通过主机针对目标密钥组输入的密钥标签。
步骤S508,利用真随机数发生器生成目标数据加密密钥,并将目标数据加密密钥与密钥标签进行绑定。
步骤S509,利用第二加密引擎对第二身份密钥和目标数据加密密钥进行加密,生成加密目标数据加密密钥。
步骤S510,根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密目标数据加密密钥进行存储。
步骤S511,获取第二用户通过主机输入的与密钥标签具有绑定关系的初始应用标签。
步骤S512,将初始应用标签和目标数据加密密钥进行绑定。
步骤S513,利用第二加密引擎对第二身份密钥和初始应用标签进行加密,生成加密初始应用标签。
步骤S514,根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密初始应用标签进行存储。
步骤S515,获取第一用户通过主机输入的目标密钥组对应的待校验密码。
步骤S516,利用第一加密引擎对待校验密码进行加密,生成待校验密码对应的第一身份密钥。
步骤S517,从磁盘阵列中获取目标密钥组对应的加密盐。
步骤S518,基于第一身份密钥,利用第二解密引擎对加密盐进行解密,得到解密盐。
步骤S519,将解密盐和待校验密码作为输入,利用第一加密引擎对解密盐和待校验密码进行加密,生成加密待校验密码。
步骤S520,从磁盘阵列中获取目标密钥组对应的加密初设密码。
步骤S521,将加密待校验密码和加密初设密码进行对比。
步骤S522,当加密待校验密码和加密初设密码相同时,确定待校验密码校验成功。
步骤S523,当待校验密码校验成功时,获取第一用户通过主机输入的输入输出请求。
步骤S524,根据密钥组标识和密钥标签,查找与密钥组标识和密钥标签对应的加密目标数据加密密钥。
步骤S525,对输入输出请求进行读取,获取待验证应用标签。
步骤S526,从磁盘阵列中获取加密初始应用标签。
步骤S527,基于第一身份密钥,利用第二解密引擎对加密初始应用标签进行解密,得到初始应用标签。
步骤S528,将待验证应用标签和初始应用标签进行对比。
步骤S529,当待验证应用标签和初始应用标签一致时,当输入输出请求为写输入输出请求时,利用目标数据加密密钥对第一用户待写入的目标数据进行数据加密,生成第一加密数据。
步骤S530,根据第一加密数据,计算第一加密数据对应的第一校验数据。
步骤S531,将第一加密数据覆盖写入至本地第一存储空间。
步骤S532,将第一校验数据存储至本地第二存储空间。
步骤S533,从目标硬盘中读取第一加密数据对应的需要被覆盖的第二加密数据以及第二加密数据对应的第二校验数据,并将第二加密数据存储至本地第三存储空间,将第二校验数据存储至本地第四存储空间。
步骤S534,将本地第一存储空间中的第一加密数据和本地第二存储空间中的第一校验数据写入目标硬盘,完成落盘。
步骤S535,当输入输出请求为读输入输出请求时,将目标硬盘中处于加密状态的目标数据读取到本地第五存储空间。
步骤S536,利用目标数据加密密钥,对本地第五存储空间中目标数据进行数据解密,生成第一解密数据,并将解密后的第一解密数据存储至本地第五存储空间。
步骤S537,将第一解密数据返回给第一用户。
示例性的,如图9所示,存储控制卡对数据加密密钥进行初始化管理的步骤如下:
(1)存储控制卡接收第二用户通过主机输入的对给定的目标密钥组(KG)初始设定初设密码PIN码1,PIN码1由一定长度的若干ASCII字符组成。
(2)存储控制卡通过第一加密引擎对PIN码1进行密钥派生,生成第二身份密钥AK2,可以避免PIN码1的弱口令造成加密强度低的问题。
(3)真随机数发生器随机生成一个真随机数,称之为初始盐(Salt1)。
(4)PIN码1和Salt1作为输入,通过第一加密引擎生成加密初设密码ePin1,Salt1在此处的作用可以解决常见的彩虹表攻击问题。
(5)使用AK2,通过第二加密引擎对Salt1进行加密,生成加密盐eSalt。
(6)存储控制卡接收第二用户通过主机输入的目标密钥组对应的一个密钥标签KID和其绑定的初始应用标签ATag1(可选)。
(7)真随机数发生器随机生成一定位宽的真随机数目标数据加密密钥DEK,并将DEK绑定到第二用户通过主机输入的密钥标签KID以及初始应用标签ATag1上(可选)。
(8)存储控制卡使用AK2,通过第二加密引擎对(7)生成的DEK进行加密,生成加密目标数据加密密钥eDEK,并存入对应eDEK[KGID][KID]二维数组的对应位置。
(9)存储控制卡使用AK2,通过第二加密引擎对(6)第二用户通过主机输入的ATag1进行加密,生成加密初始应用标签eATag1,并存入对应eATag1[KGID][KID]二维数组的对应位置。
重复步骤(6)至(9),直至所有指定密钥标签KID的DEK在存储控制卡内初始化完成。
(10)更新RAID组各个成员盘上的配置区,将新生成的加密初设密码ePin1,加密盐eSalt,加密目标数据加密密钥eDEK和加密初始应用标签eATag1以KG和密钥标签KID为管理单位,在每个成员盘上进行相同备份的下刷。
如图10所示,每次开机或上电后,第一用户需要输入PIN码2进行校验后才可以正常访问硬盘上的数据,这个PIN码2校验及DEK恢复处理流程如下,
(1)第一用户在需要通过读取数据时,先需要输入所需访问KG的PIN码2进行校验。(需要说明的是,第一用户输入的PIN码2和第二用户输入的PIN码1可能相同,也可能不同。)
(2)存储控制卡内部通过第一加密引擎对该PIN码2进行密钥派生,生成第一身份密钥AK1。(需要说明的是,当PIN码2和PIN码1不同时,AK1和AK2也不同。)
(3)存储控制卡从RAID组成员盘的配置区读取对应KG的加密盐eSalt,并使用AK1通过第二解密引擎对其进行解密得到解密盐Salt2。(AK1和AK2不同时,对加密盐eSalt进行解密得到的解密盐Salt2和初始盐Salt1也不同。)
(4)PIN2码和Salt2作为输入,通过第一加密引擎生成加密待校验密码ePin2。
(5)将新生成的加密待校验密码ePin2同从RAID组成员盘的配置区读取对应KG的加密初设密码ePin1进行比较,如果相同则认证通过继续进行(6)步操作,如果不同则认证失败并回馈主机侧。
(6)从RAID组成员盘的配置区读取对应目标密钥组KG下某一个密钥标签KID对应的加密目标数据加密密钥eDEK,并使用AK1通过第二解密引擎对其进行解密得到目标数据加密密钥DEK,并将得到的目标数据加密密钥DEK存储于存储卡上的易失性存储介质,存储卡下电后DEK数据丢失。
(7)可选的,从RAID组成员盘的配置区读取对应KG下某一个KID的加密初始应用标签eATag,并使用AK1通过第二解密引擎对其进行解密得到初始应用标签ATag1,并将得到的初始应用标签ATag1存储于存储卡上的易失性存储介质,存储卡下电后ATag1数据丢失。
重复步骤(6)~(7)直至所有有效的密钥标签KID对应的DEK和ATag恢复完成。
(8)根据主机输入输出请求中的KGID和KID信息,使用对应的DEK通过第二数据加密引擎对主机输入输出数据进行加密(写)和解密(读)处理。可选的,如果使能了应用标签校验功能,在响应主机输入输出请求之前需要将输入输出请求所携带的ATag2同密钥创建时所指定的ATag1进行比较,如果相同则执行输入输出请求;否则中止输入输出请求执行,并向主机做错误应答。其中,应用标签ATag的引入,增加一道安全栅栏,防止应用程序使用错误的密钥进行数据的加解密处理。
在本实施例中还提供了一种数据加密密钥管理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种数据加密密钥管理装置,如图11所示,包括:
第一获取模块601,用于获取第一用户通过主机输入的目标密钥组对应的待校验密码;目标密钥组包括多个加密数据加密密钥;
校验模块602,用于对待校验密码进行校验;
第二获取模块603,用于当待校验密码校验成功时,获取第一用户通过主机输入的输入输出请求,输入输出请求中包括目标密钥组对应的密钥组标识以及目标密钥组中目标数据加密密钥对应的密钥标签;
查找模块604,用于根据密钥组标识和密钥标签,查找与密钥组标识和密钥标签对应的加密目标数据加密密钥;
完成模块605,用于利用加密目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。
在一些可选的实施方式中,校验模块602,具体用于利用第一加密引擎对待校验密码进行加密,生成待校验密码对应的第一身份密钥;利用第一身份密钥,对待校验密码进行校验。
在一些可选的实施方式中,校验模块602,具体用于从磁盘阵列中获取目标密钥组对应的加密盐;基于第一身份密钥,利用第二解密引擎对加密盐进行解密,得到解密盐;将解密盐和待校验密码作为输入,利用第一加密引擎对解密盐和待校验密码进行加密,生成加密待校验密码;根据加密待校验密码,对待校验密码进行校验。
在一些可选的实施方式中,校验模块602,具体用于从磁盘阵列中获取目标密钥组对应的加密初设密码;将加密待校验密码和加密初设密码进行对比;当加密待校验密码和加密初设密码相同时,确定待校验密码校验成功。
如图12所示,本实施例提供的数据加密密钥管理装置,还包括:
第三获取模块606,用于获取第二用户通过主机输入的目标密钥组对应的初设密码;
第一加密模块607,用于利用第一加密引擎对初设密码进行加密,生成第二身份密钥;
第一生成模块608,用于基于第二身份密钥,生成加密盐;
第二生成模块609,用于基于第二身份密钥,生成加密初设密码;
第一存储模块610,用于根据目标密钥组对应的密钥组标识,将加密盐和加密初设密码存储至磁盘阵列中的预设位置。
在一些可选的实施方式中,上述第一生成模块608,具体用于利用真随机数发生器生成初始盐;利用第二加密引擎对第二身份密钥和初始盐进行加密,生成加密盐。
在一些可选的实施方式中,上述第二生成模块609,具体用于利用真随机数发生器生成初始盐;将初始盐和初设密码作为输入,利用第一加密引擎对初始盐和初设密码进行加密,生成加密初设密码。
如图13所示,本实施例提供的数据加密密钥管理装置,还包括:
第一接收模块611,用于接收第二用户通过主机针对目标密钥组输入的密钥标签;
第一绑定模块612,用于利用真随机数发生器生成目标数据加密密钥,并将目标数据加密密钥与密钥标签进行绑定;
第二加密模块613,用于利用第二加密引擎对第二身份密钥和目标数据加密密钥进行加密,生成加密目标数据加密密钥;
第二存储模块614,用于根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密目标数据加密密钥进行存储。
在一些可选的实施方式中,上述第二存储模块614,具体用于根据密钥标签和目标密钥组对应的密钥组标识,通过二维数组在磁盘阵列中的预设位置对加密目标数据加密密钥进行存储。
如图14所示,本实施例提供的数据加密密钥管理装置,还包括:
第四获取模块615,用于获取第二用户通过主机输入的与密钥标签具有绑定关系的初始应用标签;
第二绑定模块616,用于将初始应用标签和目标数据加密密钥进行绑定;
第三绑定模块617,用于利用第二加密引擎对第二身份密钥和初始应用标签进行加密,生成加密初始应用标签;
第三存储模块618,用于根据密钥标签和目标密钥组对应的密钥组标识,在磁盘阵列中的预设位置对加密初始应用标签进行存储。
在一些可选的实施方式中,上述第三存储模块618,具体用于根据密钥标签和目标密钥组对应的密钥组标识,通过二维数组在磁盘阵列中的预设位置对加密初始应用标签进行存储。
如图15所示,在一些可选的实施方式中,输入输出请求中还包括待验证应用标签,本实施例提供的数据加密密钥管理装置,还包括:
第五获取模块619,用于对输入输出请求进行读取,获取待验证应用标签;
第六获取模块620,用于从磁盘阵列中获取加密初始应用标签;
第一解密模块621,用于基于第一身份密钥,利用第二解密引擎对加密初始应用标签进行解密,得到初始应用标签;
对比模块622,用于将待验证应用标签和初始应用标签进行对比;当待验证应用标签和初始应用标签一致时,利用目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。
如图16所示,本实施例提供的数据加密密钥管理装置,还包括:
中止模块623,还用于当待验证应用标签和初始应用标签不一致时,中止输入输出请求执行,并向第一用户做错误应答。
在一些可选的实施方式中,上述完成模块605,具体用于利用第二解密引擎对加密目标数据加密密钥进行解密,得到目标数据加密密钥;利用目标数据加密密钥,针对加密目标数据加密密钥对应的目标数据完成输入输出请求。
在一些可选的实施方式中,当输入输出请求为写输入输出请求时,上述完成模块605,具体用于利用目标数据加密密钥对第一用户待写入的目标数据进行数据加密,生成第一加密数据;根据第一加密数据,计算第一加密数据对应的第一校验数据;利用第一加密数据和第一校验数据,分别替换目标硬盘中存储的第一加密数据对应的第二加密数据和第一校验数据对应的第二校验数据。
在一些可选的实施方式中,上述完成模块605,具体用于将第一加密数据覆盖写入至本地第一存储空间;将第一校验数据存储至本地第二存储空间;从目标硬盘中读取第一加密数据对应的需要被覆盖的第二加密数据以及第二加密数据对应的第二校验数据,并将第二加密数据存储至本地第三存储空间,将第二校验数据存储至本地第四存储空间;将本地第一存储空间中的第一加密数据和本地第二存储空间中的第一校验数据写入目标硬盘,完成落盘。
在一些可选的实施方式中,当输入输出请求为读输入输出请求时,上述完成模块605,具体用于将目标硬盘中处于加密状态的目标数据读取到本地第五存储空间;利用目标数据加密密钥,对本地第五存储空间中目标数据进行数据解密,生成第一解密数据,并将解密后的第一解密数据存储至本地第五存储空间;将第一解密数据返回给第一用户。
本实施例中的数据加密密钥管理装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种存储控制卡,具有上述图11-图16所示的数据加密密钥管理装置。
请参阅图17,图17是本发明可选实施例提供的一种存储控制卡的结构示意图,如图17所示,该存储控制卡包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在存储控制卡内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个存储控制卡,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图17中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的存储控制卡的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该存储控制卡。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图17中以通过总线连接为例。
输入装置30可接收输入的数字或字符信息,以及产生与该计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
本发明实施例还提供了一种电子设备,该电子设备中包括上述图12实施例提供的一种存储控制卡。该电子设备可以是移动终端,也可以安装在服务器,移动终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (20)

1.一种数据加密密钥管理方法,其特征在于,应用于存储控制卡,所述方法包括:
获取第一用户通过主机输入的目标密钥组对应的待校验密码;所述目标密钥组包括多个加密数据加密密钥;
对所述待校验密码进行校验;
当所述待校验密码校验成功时,获取所述第一用户通过主机输入的输入输出请求,所述输入输出请求中包括所述目标密钥组对应的密钥组标识以及所述目标密钥组中目标数据加密密钥对应的密钥标签;
根据所述密钥组标识和所述密钥标签,查找与所述密钥组标识和所述密钥标签对应的加密目标数据加密密钥;
利用所述加密目标数据加密密钥,针对所述加密目标数据加密密钥对应的目标数据完成所述输入输出请求。
2.根据权利要求1所述的方法,其特征在于,所述对所述待校验密码进行校验,包括:
利用第一加密引擎对所述待校验密码进行加密,生成所述待校验密码对应的第一身份密钥;
利用所述第一身份密钥,对所述待校验密码进行校验。
3.根据权利要求2所述的方法,其特征在于,所述利用所述第一身份密钥,对所述待校验密码进行校验,包括:
从磁盘阵列中获取所述目标密钥组对应的加密盐;
基于所述第一身份密钥,利用第二解密引擎对所述加密盐进行解密,得到解密盐;
将所述解密盐和所述待校验密码作为输入,利用所述第一加密引擎对所述解密盐和所述待校验密码进行加密,生成加密待校验密码;
根据所述加密待校验密码,对所述待校验密码进行校验。
4.根据权利要求3所述的方法,其特征在于,所述根据所述加密待校验密码,对所述待校验密码进行校验,包括:
从所述磁盘阵列中获取所述目标密钥组对应的加密初设密码;
将所述加密待校验密码和所述加密初设密码进行对比;
当所述加密待校验密码和所述加密初设密码相同时,确定所述待校验密码校验成功。
5.根据权利要求4所述的方法,其特征在于,所述利用所述第一身份密钥,对所述待校验密码进行校验之前,所述方法还包括:
获取第二用户通过所述主机输入的所述目标密钥组对应的初设密码;
利用所述第一加密引擎对所述初设密码进行加密,生成第二身份密钥;
基于所述第二身份密钥,生成所述加密盐;
基于所述第二身份密钥,生成所述加密初设密码;
根据所述目标密钥组对应的密钥组标识,将所述加密盐和所述加密初设密码存储至所述磁盘阵列中的预设位置。
6.根据权利要求5所述的方法,其特征在于,所述基于所述第二身份密钥,生成所述加密盐,包括:
利用真随机数发生器生成初始盐;
利用第二加密引擎对所述第二身份密钥和所述初始盐进行加密,生成所述加密盐。
7.根据权利要求5所述的方法,其特征在于,所述基于所述第二身份密钥,生成所述加密初设密码,包括:
利用真随机数发生器生成初始盐;
将所述初始盐和所述初设密码作为输入,利用所述第一加密引擎对所述初始盐和所述初设密码进行加密,生成所述加密初设密码。
8.根据权利要求5所述的方法,其特征在于,所述根据所述目标密钥组对应的密钥组标识,将所述加密盐和所述加密初设密码存储至所述磁盘阵列中的预设位置之后,所述方法还包括:
接收所述第二用户通过所述主机针对所述目标密钥组输入的密钥标签;
利用真随机数发生器生成目标数据加密密钥,并将所述目标数据加密密钥与所述密钥标签进行绑定;
利用第二加密引擎对所述第二身份密钥和所述目标数据加密密钥进行加密,生成所述加密目标数据加密密钥;
根据所述密钥标签和所述目标密钥组对应的所述密钥组标识,在所述磁盘阵列中的预设位置对所述加密目标数据加密密钥进行存储。
9.根据权利要求8所述的方法,其特征在于,所述根据所述密钥标签和所述目标密钥组对应的所述密钥组标识,在所述磁盘阵列中的预设位置对所述加密目标数据加密密钥进行存储,包括:
根据所述密钥标签和所述目标密钥组对应的所述密钥组标识,通过二维数组在所述磁盘阵列中的预设位置对所述加密目标数据加密密钥进行存储。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
获取所述第二用户通过所述主机输入的与所述密钥标签具有绑定关系的初始应用标签;
将所述初始应用标签和所述目标数据加密密钥进行绑定;
利用所述第二加密引擎对所述第二身份密钥和所述初始应用标签进行加密,生成加密初始应用标签;
根据所述密钥标签和所述目标密钥组对应的所述密钥组标识,在所述磁盘阵列中的预设位置对所述加密初始应用标签进行存储。
11.根据权利要求10所述的方法,其特征在于,所述根据所述密钥标签和所述目标密钥组对应的所述密钥组标识,在所述磁盘阵列中的预设位置对所述加密初始应用标签进行存储,包括:
根据所述密钥标签和所述目标密钥组对应的所述密钥组标识,通过二维数组在所述磁盘阵列中的预设位置对所述加密初始应用标签进行存储。
12.根据权利要求11所述的方法,其特征在于,所述输入输出请求中还包括待验证应用标签;所述利用所述目标数据加密密钥,针对所述加密目标数据加密密钥对应的目标数据完成所述输入输出请求之前,所述方法包括:
对所述输入输出请求进行读取,获取所述待验证应用标签;
从磁盘阵列中获取所述加密初始应用标签;
基于所述第一身份密钥,利用所述第二解密引擎对所述加密初始应用标签进行解密,得到所述初始应用标签;
将所述待验证应用标签和所述初始应用标签进行对比;
当所述待验证应用标签和所述初始应用标签一致时,利用所述目标数据加密密钥,针对所述加密目标数据加密密钥对应的所述目标数据完成所述输入输出请求。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
当所述待验证应用标签和所述初始应用标签不一致时,中止所述输入输出请求执行,并向所述第一用户做错误应答。
14.根据权利要求1所述的方法,其特征在于,所述利用所述加密目标数据加密密钥,针对所述加密目标数据加密密钥对应的目标数据完成所述输入输出请求,包括:
利用第二解密引擎对所述加密目标数据加密密钥进行解密,得到目标数据加密密钥;
利用所述目标数据加密密钥,针对所述加密目标数据加密密钥对应的目标数据完成所述输入输出请求。
15.根据权利要求14所述的方法,其特征在于,当所述输入输出请求为写输入输出请求时,所述利用所述目标数据加密密钥,针对所述加密目标数据加密密钥对应的目标数据完成所述输入输出请求,包括:
利用所述目标数据加密密钥对所述第一用户待写入的所述目标数据进行数据加密,生成第一加密数据;
根据所述第一加密数据,计算所述第一加密数据对应的第一校验数据;
利用所述第一加密数据和所述第一校验数据,分别替换目标硬盘中存储的所述第一加密数据对应的第二加密数据和所述第一校验数据对应的第二校验数据。
16.根据权利要求15所述的方法,其特征在于,所述利用所述第一加密数据和所述第一校验数据,分别替换所述第一加密数据对应的第二加密数据和所述第一校验数据对应的第二校验数据,包括:
将所述第一加密数据覆盖写入至本地第一存储空间;
将所述第一校验数据存储至本地第二存储空间;
从所述目标硬盘中读取所述第一加密数据对应的需要被覆盖的所述第二加密数据以及所述第二加密数据对应的所述第二校验数据,并将所述第二加密数据存储至本地第三存储空间,将所述第二校验数据存储至本地第四存储空间;
将所述本地第一存储空间中的所述第一加密数据和所述本地第二存储空间中的所述第一校验数据写入所述目标硬盘,完成落盘。
17.根据权利要求14所述的方法,其特征在于,当所述输入输出请求为读输入输出请求时,所述利用所述目标数据加密密钥,针对所述加密目标数据加密密钥对应的目标数据完成所述输入输出请求,包括:
将目标硬盘中处于加密状态的所述目标数据读取到本地第五存储空间;
利用所述目标数据加密密钥,对所述本地第五存储空间中所述目标数据进行数据解密,生成第一解密数据,并将解密后的所述第一解密数据存储至所述本地第五存储空间;
将所述第一解密数据返回给所述第一用户。
18.一种数据加密密钥管理装置,其特征在于,所述装置包括:
第一获取模块,用于获取第一用户通过主机输入的目标密钥组对应的待校验密码;所述目标密钥组包括多个加密数据加密密钥;
校验模块,用于对所述待校验密码进行校验;
第二获取模块,用于当所述待校验密码校验成功时,获取所述第一用户通过主机输入的输入输出请求,所述输入输出请求中包括所述目标密钥组对应的密钥组标识以及所述目标密钥组中目标数据加密密钥对应的密钥标签;
查找模块,用于根据所述密钥组标识和所述密钥标签,查找与所述密钥组标识和所述密钥标签对应的加密目标数据加密密钥;
完成模块,用于利用所述加密目标数据加密密钥,针对所述加密目标数据加密密钥对应的目标数据完成所述输入输出请求。
19.一种存储控制卡,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至17中任一项所述的数据加密密钥管理方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至17中任一项所述的数据加密密钥管理方法。
CN202311526848.3A 2023-11-16 2023-11-16 数据加密密钥管理方法、装置、存储控制卡及存储介质 Active CN117272350B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311526848.3A CN117272350B (zh) 2023-11-16 2023-11-16 数据加密密钥管理方法、装置、存储控制卡及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311526848.3A CN117272350B (zh) 2023-11-16 2023-11-16 数据加密密钥管理方法、装置、存储控制卡及存储介质

Publications (2)

Publication Number Publication Date
CN117272350A CN117272350A (zh) 2023-12-22
CN117272350B true CN117272350B (zh) 2024-02-13

Family

ID=89216245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311526848.3A Active CN117272350B (zh) 2023-11-16 2023-11-16 数据加密密钥管理方法、装置、存储控制卡及存储介质

Country Status (1)

Country Link
CN (1) CN117272350B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109428853A (zh) * 2017-08-21 2019-03-05 华为技术有限公司 一种通信方法和相关设备
CN111353158A (zh) * 2018-12-20 2020-06-30 英特尔公司 信任域架构与多密钥总存储器加密技术在服务器中的共存
WO2022135394A1 (zh) * 2020-12-26 2022-06-30 西安西电捷通无线网络通信股份有限公司 身份鉴别方法、装置、存储介质、程序、及程序产品
CN116070241A (zh) * 2023-02-09 2023-05-05 深圳市结客盟科技有限公司 一种移动硬盘加密控制方法
CN116601915A (zh) * 2020-12-15 2023-08-15 国际商业机器公司 经由内部动作加密擦除存储在支持Key per IO的设备中的数据
CN116996327A (zh) * 2023-09-25 2023-11-03 苏州元脑智能科技有限公司 一种基于分组密码的加密方法、解密方法以及产品

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109428853A (zh) * 2017-08-21 2019-03-05 华为技术有限公司 一种通信方法和相关设备
CN111353158A (zh) * 2018-12-20 2020-06-30 英特尔公司 信任域架构与多密钥总存储器加密技术在服务器中的共存
CN116601915A (zh) * 2020-12-15 2023-08-15 国际商业机器公司 经由内部动作加密擦除存储在支持Key per IO的设备中的数据
WO2022135394A1 (zh) * 2020-12-26 2022-06-30 西安西电捷通无线网络通信股份有限公司 身份鉴别方法、装置、存储介质、程序、及程序产品
CN116070241A (zh) * 2023-02-09 2023-05-05 深圳市结客盟科技有限公司 一种移动硬盘加密控制方法
CN116996327A (zh) * 2023-09-25 2023-11-03 苏州元脑智能科技有限公司 一种基于分组密码的加密方法、解密方法以及产品

Also Published As

Publication number Publication date
CN117272350A (zh) 2023-12-22

Similar Documents

Publication Publication Date Title
US9467288B2 (en) Encryption key destruction for secure data erasure
EP2335181B1 (en) External encryption and recovery management with hardware encrypted storage devices
JP5640845B2 (ja) ストレージシステム、ストレージ制御装置およびストレージ制御方法
TWI436372B (zh) 快閃記憶體儲存系統及其控制器與防資料竄改方法
TWI479359B (zh) 指令執行方法、記憶體控制器與記憶體儲存裝置
TWI447583B (zh) 資料保護方法、記憶體控制器與記憶體儲存裝置
US20100058073A1 (en) Storage system, controller, and data protection method thereof
US11507284B2 (en) Storage device and control method
US11681637B2 (en) Memory controller, storage device including the same, and operating method of the memory controller
CN101276389B (zh) 单个物理可信平台模块内的多个逻辑可信平台模块的分离
CN109656750B (zh) 用于在安全闪存装置上数据恢复的基于puf的引导加载
CN110851886B (zh) 存储装置
US20100250934A1 (en) Content protection device and content protection method
TW201207862A (en) Memory identification code generating method, management method, controller and storage system
US8898807B2 (en) Data protecting method, mobile communication device, and memory storage device
CN103257938A (zh) 数据保护方法、存储器控制器与存储器储存装置
CN112749383A (zh) 软件认证方法和相关产品
CN103593301A (zh) 坏块管理方法及系统
US8190813B2 (en) Terminal apparatus with restricted non-volatile storage medium
CN117272350B (zh) 数据加密密钥管理方法、装置、存储控制卡及存储介质
US11468159B2 (en) Memory system
CN102148054A (zh) 闪存储存系统及其控制器与防数据篡改方法
JP2000250818A (ja) 記憶システム、記憶装置及び記憶データ保護方法
CN117235772B (zh) 数据处理方法、装置、计算机设备及介质
CN105069375A (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
GR01 Patent grant
GR01 Patent grant