固态硬盘数据加密方法及系统与流程

文档序号:12864124阅读:1735来源:国知局
固态硬盘数据加密方法及系统与流程

本申请涉及固态硬盘数据加密技术领域,尤其涉及一种固态硬盘数据加密方法及系统。



背景技术:

固态硬盘是指用固态电子存储芯片阵列而制成的硬盘。固态硬盘包括控制单元和存储单元,其中,控制单元利用存储单元的接口将数据写入存储介质或从存储介质中读取数据,并面向主机提供数据的输入输出接口。固态硬盘的存储介质为一种在断电后仍能存储数据的非易失性存储器,即nand闪存。作为数据和信息交换的重要载体,固态硬盘在数据存储和信息交换过程中要保证数据的安全性。

为了保证数据存储和信息交换过程中的安全性,现有技术示出了一种硬盘加密方法,该加密方法应用在含有固态硬盘的终端中,通过应用程序对硬盘划分加密区和公开区,在用户终端上显示公开区隐藏加密区,并且通过身份认证程序确定用户是否具有使用加密区的权限,如果有,则通过对应的密钥对硬盘中存储的数据进行加密和解密操作。

由于上述数据加密方法是通过用户终端的应用程序来实现的,如果硬盘在不同的用户终端上使用时,需要重新与用户终端进行初始化配置,并且应用程序本身在进行数据加密和解密过程中也会消耗硬盘的计算资源,降低数据读取和存储效率。另外,该方法不支持加密区和公开区之间进行切换,在需要对已存储在公共区的数据进行加密或不再需要对加密区的数据进行保密时,只能改变数据存储位置,将数据导入对应的分区中,不仅浪费时间,还增加对终端计算资源的占用。



技术实现要素:

本申请提供一种固态硬盘数据加密方法及系统,以解决传统加密方法效率低且不支持分区间快速切换的问题。

第一方面,本申请提供的固态硬盘数据加密方法,包括:

获取pin码,并将所述pin码加密存储在nand闪存中;

根据所述pin码生成介质密钥;

将所述介质密钥配置在加密引擎密钥寄存器中,根据所述介质密钥对用户数据进行加密或解密。

可选地,获取所述pin码,并将所述pin码加密存储在nand闪存中之前还包括:

在固态硬盘连接到主机时,显示公共区,隐藏加密区;

运行置于所述公共区内的加密程序;

所述加密程序设置pin码。

可选地,根据所述pin码生成用户密钥的步骤包括:

当固态硬盘第一次创建分区时,获取用户id并生成随机数;

根据所述pin码,生成用户密钥;根据所述用户id和所述随机数,生成加密密钥;

使用所述用户密钥,对所述加密密钥进行加密,并存储在nand闪存中;

根据所述加密密钥生成介质密钥。

可选地,根据所述pin码生成用户密钥的步骤还包括:

当固态硬盘已创建分区时,加载pin码,并判断执行数据的分区是否为公共区;

如果所述分区为公共区,根据所述pin码,生成用户密钥;

使用所述用户密钥,对所述加密密钥进行解密;

根据所述加密密钥生成介质密钥;

如果所述分区为加密区,校验所述pin码与预存加密值是否一致;一致则根据所述pin码,生成用户密钥,并执行上述步骤生成介质密钥;不一致则无法访问所述加密区。

可选地,所述pin码包括:用户pin码和默认pin码;

所述用户pin码用于在加密区生成用户密钥;

所述默认pin码用于在公共区生成用户密钥。

第二方面,本申请还提供一种固态硬盘数据加密系统,包括:

获取单元,用于获取pin码,并将所述pin码加密存储在nand闪存中;

密钥生成单元,用于根据所述pin生成介质密钥;

加密单元,用于将所述介质密钥配置在加密引擎密钥寄存器中,根据所述介质密钥对用户数据进行加密或解密。

可选地,所述系统还包括:显示处理单元和程序执行单元;

所述显示处理单元,用于在固态硬盘连接到主机时,显示公共区,隐藏加密区;

所述程序执行单元,用于运行置于所述公共区内的加密程序;

所述加密程序设置pin码。

可选地,所述密钥生成单元包括:id获取子单元、加密密钥生成子单元、密钥加密子单元以及介质密钥生成子单元;

所述id获取子单元,用于当固态硬盘第一次创建分区时,获取用户id并生成随机数;

所述加密密钥生成子单元,用于根据所述pin码,生成用户密钥;根据所述用户id和所述随机数,生成加密密钥;

所述密钥加密子单元,用于使用所述用户密钥,对所述加密密钥进行加密,并存储在nand闪存中;

所述介质密钥生成子单元,用于根据所述加密密钥生成介质密钥。

可选地,所述密钥生成单元还包括:分区判断子单元、用户密钥生成子单元、密钥解密子单元、介质密钥生成子单元以及编码校验子单元;

所述分区判断子单元,用于当固态硬盘已创建分区时,加载pin码,并判断执行数据的分区是否为公共区;

所述用户密钥生成子单元,用于如果所述分区为公共区,根据所述pin码,生成用户密钥;

所述密钥解密子单元,用于使用所述用户密钥,对所述加密密钥进行解密;

所述介质密钥生成子单元,用于根据所述加密密钥生成介质密钥;

所述编码校验子单元,用于如果所述分区为加密区,校验所述pin码与预存加密值是否一致;一致则根据所述pin码,生成用户密钥,并执行上述步骤生成介质密钥;不一致则无法访问所述加密区。。

本申请提供的固态硬盘数据加密方法,先在固态硬盘中划分公共区和加密区,当硬盘连接到主机时,显示公共区隐藏加密区,再运行储存在公共区中的加密程序,通过获取pin码,并根据所述pin码生成介质密钥,将所述介质密钥配置在加密引擎密钥寄存器中,根据所述介质密钥对用户数据进行加密或解密。所述方法通过硬件加密避免硬盘在多个主机间切换接入时,因重新配置加密程序而造成的对硬盘计算资源的占用,且通过用户pin码以及默认pin码,分别针对加密区和公共区生成用户密钥,当需要切换分区属性时,只需要通过不同的pin码生成对应用户密钥,即可实现加密区与公共区之间的快速切换,因此解决了传统加密方法效率低且不支持分区间快速切换的问题。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一种固态硬盘数据加密方法的流程示意图;

图2为首次分区处理的流程示意图;

图3为已分区处理的流程示意图;

图4为一种固态硬盘数据加密系统的结构示意图;

图5为系统中一个实施例的结构示意图。

具体实施方式

这里将详细地对本申请实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本发明相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的装置和方法的示例。

参见图1,为一种固态硬盘数据加密方法的流程示意图。本申请提供的固态硬盘数据加密方法包括以下步骤:

s101:获取pin码,并将所述pin码加密存储在nand闪存中。

具体地,本实施例中,用户在将固态硬盘接入主机后,会自动隐藏加密区,只显示公共区。固态硬盘的公共区内置加密程序,当固态硬盘接入主机时,运行所述加密程序,加密程序在获取到pin码,并加密存储在nand闪存中。所述pin码包括两种形式,一种是由用户输入的用户pin码(即用户口令),一种是硬盘控制单元中存储的默认pin码(即默认口令)。为了增加安全性,应对pin码进行非可逆加密处理后,将pin码密文存储到对应的nand闪存中,存储的pin码用于解密加密区进行校验,由于只存储pin码密文,无法获取pin码明文,因此解密时应与用户pin码再次加密后的值进行比较。

进一步地,当所述固态硬盘存在多个分区时,每个分区对应的nand闪存都储存有各自的pin码,根据用户数据存放位置不同,通过分区地址使用不同分区的pin码进行加密或者解密。

另外,所述固态硬盘接入的主机不同,可以选择是否运行所述加密程序,或者在固态硬盘的控制单元中设置相应的加密程序运行的触发条件,当主机系统环境符合触发条件时,运行加密程序,当主机系统环境不符合触发条件时,直接不运行相应的加密程序,避免通过破解加密程序来解密数据。

s102:根据所述pin码生成介质密钥。

为了清楚地表达本申请的技术方案,下面通过以下实施例具体说明根据所述pin码生成介质密钥的实施方式。

在一种技术方案中,如图2所示,在固态硬盘第一次接入主机时,判断固态硬盘是否已经创建分区,当所述固态硬盘未创建分区时,创建公共区和加密区,具体执行以下步骤:

s201:获取用户id并生成随机数;

s202:根据所述pin码,生成用户密钥;根据所述用户id和所述随机数,生成加密

密钥;

s203:使用所述用户密钥,对所述加密密钥进行加密,并存储在nand闪存中;

s204:根据所述加密密钥生成介质密钥。

由以上实施步骤可知,在第一次创建公共区和加密区时,在获取pin码的同时还应获取用户id,所述用户id是指每个主控芯片在出厂时自带的id编号。当获取到pin码以及用户id后,生成一组随机数,并且分别根据所述pin码,生成用户密钥(userkey),根据所述用户id和所述随机数,生成加密密钥。再使用所述用户密钥,对所述加密密钥进行加密,并存储在nand闪存中,根据所述加密密钥生成介质密钥。

进一步地,为了提高对所述密文的破解难度,在上述步骤中,可以生成多级加密密钥,即:

根据所述用户id和所述随机数,生成一级加密密钥;

使用所述用户密钥,对所述加密密钥进行加密,并存储在nand闪存中;

根据随机数生成二级加密密钥;

使用所述一级加密密钥,对所述二级加密密钥进行加密,并存储在nand闪存中;

根据所述二级加密密钥生成介质密钥。

显然,生成的加密密钥级数越多,越难破解数据,相应的安全性越高,但随着加密密钥的级数的增多,其数据解密的步骤增多,延长了数据解密的时间。

在一种技术方案中,如图3所示,当固态硬盘已创建公共区和加密区时,执行以下步骤:

s301:加载pin码,并判断执行数据的分区是否为公共区;

s302:如果所述分区为公共区,根据所述pin码,生成用户密钥;

s303:使用所述用户密钥,对所述加密密钥进行解密;

s304:根据所述加密密钥生成介质密钥;

s305:如果所述分区为加密区,校验所述pin码与预存加密值是否一致;一致则根据所述pin码,生成用户密钥,并执行上述步骤生成介质密钥;不一致则无法访问所述加密区。

由以上技术方案可知,本实施例中,如果固态硬盘已创建公共区和加密区,则加载存储在对应分区nand闪存内的pin码,并判断数据执行位置是处于公共区还是加密区,如果执行数据的分区为公共区,则根据pin码生成用户密钥,通过以上实施例可知,公共区对应的pin码为默认pin码,因此在公共区,可直接生成用户密钥,进而对加密密钥进行解密,生成介质密钥。

s103:将所述介质密钥配置在加密引擎密钥寄存器中,根据所述介质密钥对用户数据进行加密或解密。

在此步骤中,如需要解密用户数据,则通过固件的加密引擎,将读取存储在nand闪存中的数据,并将加密后的用户数据,转换为数据明文显示在用户主机或者执行相应的文件传输操作。同理,用户数据的加密过程与解密过程相反,通过主机内存传送至所述固态硬盘的用户数据通过主控芯片后,根据所述介质密钥进行加密,将用户数据转换成数据密文,并存储到nand闪存中。用户数据通过主控芯片及加密引擎实现数据加密和解密,整个过程由硬件完成,避免了软件加密过程在切换接入主机时所必须的配置过程,提高数据加密速度,并且减少对计算资源的占用。

进一步地,本申请提供的固态硬盘数据加密方法,可支持灵活划分多个公共区和多个加密区,可以针对每个公共区和加密区分别进行分区管理。例如,对于分区1,相应的nand闪存中存储用于分区1的pin码,以及加密密钥(包括一级加密密钥和二级加密密钥),并根据加密密钥生成介质密钥,并在加密引擎中配置分区1的逻辑区块地址(lba)的起始地址和介质密钥,当访问地址落在分区1的lba范围内时,使用分区1的介质密钥对数据进行加密或解密操作。对于其他分区,其数据处理方式与分区1相同,只需使用对应分区下的pin码即可。

进一步地,本申请提供的固态硬盘数据加密方法,还支持多个分区之间进行切换。由于每个分区存储各自的pin码,公共区存储的pin码为默认pin码,加密区存储的pin码为用户pin码,由用户输入。根据用户数据存储位置的不同,通过确认分区地址,使用不同分区的口令进行数据的加密和解密。由于加密区和公共区在存储用户数据时,都通过介质密钥进行数据的加密,所以每个分区介质密钥都是在分区建立时就已经确定,与该分区是公共区还是加密区无关。因此,只需要根据不同的pin码生成的介质密钥即可实现分区之间的切换。分区切换的流程如下:

当公共区转为加密区时:

从nand闪存中加载加密密钥的密文;

使用默认pin码生成用户密钥对加密密钥的密文进行解密,获得加密密钥的明文;

使用用户pin码生成用户密钥对加密密钥的明文进行加密,并将nand闪存中的加密密钥进行替换。

同理,当加密区转换为公共区时:

从nand闪存中加载用户pin码存储值以及加密密钥的密文;

使用校验通过的用户pin码生成用户密钥对加密密钥的密文进行解密,获得加密密钥的明文;

使用默认pin码生成用户密钥对加密密钥的明文进行加密,并将nand闪存中的加密密钥进行替换。

基于上述固态硬盘数据加密方法,本申请还提供一种固态硬盘数据加密系统,如图4所示,图4为一种固态硬盘数据加密系统的结构示意图,所述系统包括:获取单元、密钥生成单元以及加密单元;

所述获取单元,用于获取pin码,并将所述pin码加密存储在nand闪存中;

所述密钥生成单元,用于根据所述pin生成介质密钥;

所述加密单元,用于将所述介质密钥配置在加密引擎密钥寄存器中,根据所述介质密钥对用户数据进行加密或解密。

在一种技术方案中,如图5所示,所述系统还包括:显示处理单元和程序执行单元;

所述显示处理单元,用于在固态硬盘连接到主机时,显示公共区,隐藏加密区;

所述程序执行单元,用于运行置于所述公共区内的加密程序;

所述加密程序获取pin码,并加密存储在nand闪存中。

在一种技术方案中,如图5所示,所述密钥生成单元包括:id获取子单元、加密密钥生成子单元、密钥加密子单元以及介质密钥生成子单元;

所述id获取子单元,用于当固态硬盘第一次创建分区时,获取用户id并生成随机数;

所述加密密钥生成子单元,用于根据所述pin码,生成用户密钥;根据所述用户id和所述随机数,生成加密密钥;

所述密钥加密子单元,用于使用所述用户密钥,对所述加密密钥进行加密,并存储在nand闪存中;

所述介质密钥生成子单元,用于根据所述加密密钥生成介质密钥。

在一种技术方案中,所述密钥生成单元还包括:分区判断子单元、用户密钥生成子单元、密钥解密子单元、介质密钥生成子单元以及编码校验子单元;

所述分区判断子单元,用于当固态硬盘已创建分区时,加载pin码,并判断执行数据的分区是否为公共区;

所述用户密钥生成子单元,用于如果所述分区为公共区,根据所述pin码,生成用户密钥;

所述密钥解密子单元,用于使用所述用户密钥,对所述加密密钥进行解密;

所述介质密钥生成子单元,用于根据所述加密密钥生成介质密钥;

所述编码校验子单元,用于如果所述分区为加密区,校验所述pin码与预存加密值是否一致;一致则根据所述pin码,生成用户密钥,并执行上述步骤生成介质密钥;不一致则无法访问所述加密区。

由以上技术方案可知,本申请提供的固态硬盘数据加密方法,先在固态硬盘中划分公共区和加密区,当硬盘连接到主机时,显示公共区隐藏加密区,再运行储存在公共区中的加密程序,通过获取pin码,并根据所述pin生成介质密钥,将所述介质密钥配置在加密引擎密钥寄存器中,根据所述介质密钥对用户数据进行加密或解密。所述方法通过硬件加密避免硬盘在多个主机间切换接入时,因重新配置加密程序而造成的对硬盘计算资源的占用,且通过用户pin码以及默认pin码,分别针对加密区和公共区生成用户密钥,当需要在加密区和公共区之间进行切换时,只需要通过不同的pin码生成对应用户密钥,并通过用户密钥对加密密钥重新加密即可,因此解决了传统加密方法效率低且不支持分区间快速切换的问题。

本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本发明总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下,依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1