硬盘数据管理方法及硬盘与流程

文档序号:17222998发布日期:2019-03-27 12:13阅读:509来源:国知局
硬盘数据管理方法及硬盘与流程

本发明涉及信息安全、信息存储技术领域,特别涉及一种硬盘数据管理方法及硬盘。



背景技术:

信息安全是信息社会的根本性要求,尤其进入21世纪以来,随着互联网金融、移动支付、移动办公、云计算等业务的发展,更加凸显出信息安全的重要性。对敏感信息进行加密是最普遍的保护信息和隐私的技术手段。硬盘是现在最主要的信息存储设备,对硬盘中存储的数据进行加密有着广泛的需求和实际应用。全盘数据加密(fde,fulldiskencryption)或者自加密硬盘(sed,self-encryptingdrive)是现代硬盘所普遍支持的数据加密技术。应用这类技术的硬盘中,所有存储到硬盘中的数据都会先由硬盘控制器进行加密,数据以密文的形式写入到硬盘的存储介质中。随后,当需要读出数据时,再由硬盘控制器将数据进行解密,再返回给电脑主机。

为了能对所有数据进行正确的加解密,硬盘控制器中必须具有完善的密钥管理功能。这里主要需要解决两个问题,一个是密钥生成,即为待加密的数据产生加密密钥;另一个是密钥管理,即对已加密数据维护其密钥信息,以便于解密数据时能够用匹配的密钥正确解密数据(数据加密使用对称加密算法,因此加密密钥和解密密钥必须是相同的。目前支持fde和sed的硬盘中,数据加密算法都是对称加密算法)。

密钥生成一般使用硬盘控制器中集成的物理随机数发生器。物理随机数发生器利用一些具备随机性的物理现象,产生随机比特序列,可以作为密钥使用。有时候也会使用伪随机数发生器,利用算法产生密钥。密钥管理则主要靠硬盘中的固件(firmware)实现,固件会记录下每一笔数据加密所使用密钥,然后在解密时找到这笔数据对应的密钥进行解密。在这种方案中,物理随机数发生器产生的密钥,会被硬盘保存在某一个特殊的存储区域,固件则会记录下保存密钥的地址,这样在解密时根据保存的地址取得对应的密钥进行解密。

现有技术中的方案有一个潜在的危险,即虽然这些密钥一般会采用一些手段进行保护,但所有的密钥都是以明文形式或简单加密的形式保存在存储介质中的,利用现代电子分析仪器和一些旁道攻击技术,是可以被分析和破解的。



技术实现要素:

本发明的主要目的在于提供一种硬盘数据管理方法及硬盘,以提高密钥的安全性,从而加强硬盘数据加密的安全性。

为实现前述发明目的,本发明一实施例提供的技术方案如下:

一种硬盘数据管理方法,所述方法包括:

接收原始数据d1;

根据原始数据d1的属性计算输入挑战数据c1及数据写入地址n1;

将输入挑战数据c1通过物理不可克隆函数puf处理后得到输出响应数据r1;

将输出响应数据r1作为加密密钥,对原始数据d1进行加密,得到加密数据e1;

将加密数据e1存储至数据写入地址n1中。

本发明另一实施例提供的技术方案如下:

一种硬盘数据管理方法,所述方法包括:

接收读取原始数据d2的请求;

根据原始数据d2的属性计算输入挑战数据c2及数据存储地址n2;

将输入挑战数据c2通过物理不可克隆函数puf处理后得到输出响应数据r2;

从数据存储地址n2中读取加密数据e2;

将输出响应数据r2作为解密密钥,对加密数据e2进行解密,得到原始数据d2。

本发明又一实施例提供的技术方案如下:

一种硬盘,所述硬盘包括:

控制单元,用于接收原始数据d1;并根据原始数据d1的属性计算输入挑战数据c1及数据写入地址n1;以及将原始数据用加密密钥进行加密,得到加密数据e1并存储至数据写入地址n1中;

puf实例单元,与控制单元相连,用于将输入挑战数据c1通过物理不可克隆函数puf处理后得到输出响应数据r1,并将输出响应数据r1作为加密密钥,返回给控制单元;

存储单元,与控制单元相连,用于存储加密数据e1。

本发明再一实施例提供的技术方案如下:

一种硬盘,所述硬盘包括:

控制单元,用于接收读取原始数据d2的请求;并根据原始数据d2的属性计算输入挑战数据c2及数据存储地址n2;以及从数据存储地址n2中读取加密数据e2;并利用解密密钥对加密数据e2进行解密;

puf实例单元,与控制单元相连,用于将输入挑战数据c2通过物理不可克隆函数puf处理后得到输出响应数据r2;并将输出响应数据r2作为解密密钥,返回给控制单元;

存储单元,与控制单元相连,用于存储加密数据e2。

以上实施例中,为了保证经过加密的数据能够被正确解密,需要保证如果d2和d1的数据属性相同(比如两者的数据逻辑块地址相同),则两者经过计算得到的c1和c2也相同,因此可以恢复出相同的解密密钥。

本发明使用物理不可克隆函数(physicalunclonablefunction,puf)的输出响应数据作为密钥,因此无须存储密钥,且密钥具有唯一性和物理不可复制性,提高了密钥的安全性,从而加强了硬盘数据加密的安全性。

附图说明

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

图1是本发明中puf的输入-输出关系示意图;

图2是本发明实施例1中硬盘数据管理(数据写入/加密)方法的具体流程图;

图3是本发明实施例2中硬盘数据管理(数据读取/解密)方法的具体流程图;

图4是本发明实施例3中硬盘的模块示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本发明公开了一种硬盘数据管理方法,该方法为硬盘数据的加密方法,包括:接收原始数据d1;

根据原始数据d1的属性计算输入挑战数据c1及数据写入地址n1;

将输入挑战数据c1通过物理不可克隆函数puf处理后得到输出响应数据r1;

将输出响应数据r1作为加密密钥,对原始数据d1进行加密,得到加密数据e1;

将加密数据e1存储至数据写入地址n1中。

相应地,本发明还公开了一种硬盘,该硬盘包括:控制单元,用于接收原始数据d1;并根据原始数据d1的属性计算输入挑战数据c1及数据写入地址n1;以及将原始数据用加密密钥进行加密,得到加密数据e1并存储至数据写入地址n1中;

puf实例单元,与控制单元相连,用于将输入挑战数据c1通过物理不可克隆函数puf处理后得到输出响应数据r1,并将输出响应数据r1作为加密密钥,返回给控制单元;

存储单元,与控制单元相连,用于存储加密数据e1。

本发明还公开了一种硬盘数据管理方法,该方法为硬盘数据的解密方法,包括:

接收读取原始数据d2的请求;

根据原始数据d2的属性计算输入挑战数据c2及数据存储地址n2;

将输入挑战数据c2通过物理不可克隆函数puf处理后得到输出响应数据r2;

从数据存储地址n2中读取加密数据e2;

将输出响应数据r2作为解密密钥,对加密数据e2进行解密,得到原始数据d2。

相应地,本发明还公开了一种硬盘,该硬盘包括:控制单元,用于接收读取原始数据d2的请求;并根据原始数据d2的属性计算输入挑战数据c2及数据存储地址n2;以及从数据存储地址n2中读取加密数据e2;并利用解密密钥对加密数据e2进行解密;

puf实例单元,与控制单元相连,用于将输入挑战数据c2通过物理不可克隆函数puf处理后得到输出响应数据r2;并将输出响应数据r2作为解密密钥,返回给控制单元;

存储单元,与控制单元相连,用于存储加密数据e2。

物理不可克隆函数(puf,physicalunclonablefunction)是一种新型的信息安全元器件。puf是物理不可克隆的,即任何一个puf实例都是独一无二的,没有任何两个puf实例是相同的。利用这个特性,可以使得搭载puf的设备具备唯一性和不可复制性。

puf元件有一个独特的特性是,如果给某一个puf元件,记为pufi,输入一个输入挑战数据ci,pufi元件可以返回一个随机输出响应数据ri,且同一批次的n个puf实例,如果给每一个puf(分别记为puf1,puf2,…,pufn)实例都输入相同的c,则它们所返回的n个随机输出数据r,记为r1,r2,…,rn,它们都是随机的且各不相同。这就是puf实例的不可克隆特性的体现,即每一个puf实例,针对同一个输入挑战,可以输出不同的、独一无二的输出响应。

另外,同一个puf实例,如果给予不同的输入,记为cx,cy,cz等,则其输出rx,ry,rz也都是不同的。也就是说,同一个puf实例,对于不同的输入,其输出也是不同的。这样puf就可以根据多个不同的输入挑战数据,得到多个不同的输出响应数据。

参图1所示为本发明中所使用的puf的输入-输出关系示意图。本发明并不限定所使用的puf的物理实现方案,只需保证提供puf的基本功能特性。

其中,pufm和pufn分别是puf的两个实例。当它们分别给予不同的输入挑战数据cx和cy时,pufm的对应输出响应数据分别是rmx和rmy,pufn的对应输出响应数据分别是rnx和rny。需要注意,rmx和rmy是不同的,rnx和rny也是不同的,这说明,同一个puf实例,针对不同的输入挑战数据cx和cy,分别得到不同的输出响应数据。此外,还需注意到,rnx和rmx是不同的,rny和rmy也是不同的,这说明,同一个输入挑战数据,分别输入给不同的puf元件实例pufm和pufn时,得到的输出响应数据也是不同的。还需指出,rmx,rmy,rnx,rny都是物理随机数,由puf元件的物理随机性因素产生,无法被预测。

利用puf的以上特性,可以为硬盘数据加密提供更便捷安全的加密密钥,同时还可以避免传统方案中必须将密钥进行明文存储的薄弱点,不需明文存储密钥,因此密钥不会被攻击者盗取。

由于puf的物理不可复制特性,每一个硬盘中的puf实例都是独一无二的,因此硬盘中的数据,即使其使用相同的输入挑战数据从puf得到密钥进行数据加密,其密钥也是不同的。也就是说每一个硬盘中即使相同的数据(这里的相同一般指的是数据的逻辑块地址相同),也是用不同的密钥加密的,攻击者要破解硬盘中的数据,必须得到或破解硬盘中的puf实例。而且,即使破解了一个硬盘中的puf实例,由于puf的每一个实例都是不同的,要破解其他硬盘中的puf实例,也需要付出相同数量的工作量。

以下结合具体实施例对本发明作进一步说明。

实施例1:

参图2所示,本实施例中的硬盘数据管理方法为硬盘数据的加密方法,数据写入/加密过程具体步骤包括:

s11、控制单元从主机接收到一组原始数据d1;

s12、控制单元根据原始数据d1的属性计算输入挑战数据c1及数据写入地址n1;

s13、控制单元将输入挑战数据c1输入到硬盘中内置的puf单元中,puf单元通过物理不可克隆函数puf处理后得到输出响应数据r1,并将输出响应数据r1该回传给控制单元;

s14、控制单元将输出响应数据r1作为加密密钥,对原始数据d1进行加密,得到加密数据e1;

s15、控制单元将加密数据e1存储至存储单元的数据写入地址n1中。

其中,本实施例中的原始数据d1为一个或多个逻辑块,每个逻辑块是512byte或4kb或系统设定的其他大小。原始数据d1的属性可以为逻辑块的地址信息l1、数据分类信息或其他数据属性中的至少一种。

本实施例对输入挑战数据c1的计算方法和含义不做限定,但需保证每一个写入的原始数据d1都有唯一的输入挑战数据c1与之对应,由该输入挑战数据c1可以通过puf得到密钥。还需保证,当以后需要从硬盘中读取该原始数据d1时,硬盘控制器计算出的输入挑战数据c与本次写入时的输入挑战数据c1是相同的。支持fde/sed的硬盘需要对数据进行加密后才写入存储介质。而对数据加密需要先确定加密密钥。现代硬盘中的数据加密算法都是对称加密算法,其加密密钥和解密密钥相同,本实施例硬盘中的数据加密都使用对称加密。

本实施例中,原始数据d1与输入挑战数据c1具有确定的函数关系,即输入挑战数据c1由原始数据d1的属性唯一确定,如果有另一个原始数据dx其用于计算输入挑战数据cx的属性与原始数据d1用于计算输入挑战数据c1的属性相同,则原始数据dx对应的输入挑战数据cx也与输入挑战数据c1相同。

本实施例中,从puf得到的密钥是由puf通过对输入挑战数据的响应而实时在线计算得到的,而非以明文或加密密文的形式存储在某种存储介质中,因此可以抵抗针对存储在存储介质中的密钥而进行物理分析、电学分析、结构分析等攻击方法。

参考上述对puf元件的输入-输出关系的论述,本实施例中的加密密钥具有唯一性和物理不可复制性,表现为:

针对同一个物理不可克隆函数puf,不同的输入挑战数据c1计算得到的输出响应数据r1不同,即加密密钥不同;

针对相同的输入挑战数据c1,不同的物理不可克隆函数puf实例计算得到的输出响应数据r1不同,即加密密钥不同。

实施例2:

参图3所示,本实施例中的硬盘数据管理方法为硬盘数据的解密方法,数据读出/解密过程具体步骤包括:

s21、控制单元从主机接收到读取一组原始数据d2的请求;

s22、控制单元根据原始数据d2的属性计算输入挑战数据c2及数据存储地址n2;

s23、控制单元将输入挑战数据c2输入到硬盘中内置的puf单元中,puf单元通过物理不可克隆函数puf处理后得到输出响应数据r2,并将输出响应数据r2该回传给控制单元;

s24、控制单元从存储单元的数据存储地址n2中读取加密数据e2;

s25、控制单元将输出响应数据r2作为解密密钥,对加密数据e2进行解密,得到原始数据d2;

s26、控制单元将主机要求读取的原始数据d2返回给主机。

其中,本实施例中的原始数据d2为一个或多个逻辑块,每个逻辑块是512byte或4kb或系统设定的其他大小。原始数据d2的属性可以为逻辑块的地址信息l2、数据分类信息或其他数据属性中的至少一种。

本实施例中输入挑战数据c2和数据存储地址n2的计算方法与实施例1中输入挑战数据c1和数据写入地址n1的计算方法相同,这样才能保证正确解密,此处不再进行赘述。

本实施例中,原始数据d2与输入挑战数据c2具有确定的函数关系,即输入挑战数据c2由原始数据d2的属性唯一确定,如果有另一个原始数据dy其用于计算输入挑战数据cy的属性与原始数据d2用于计算输入挑战数据c2的属性相同,则dy对应的输入挑战数据cy也与输入挑战数据c2相同。

参考上述对puf元件的输入-输出关系的论述,本实施例中的解密密钥同样具有唯一性和物理不可复制性,表现为:

针对同一个物理不可克隆函数puf实例,不同的输入挑战数据c2计算得到的输出响应数据r2不同,即解密密钥不同;

针对相同的输入挑战数据c2,不同的物理不可克隆函数puf实例计算得到的输出响应数据r2不同,即解密密钥不同。

上述实施例1和实施例2的硬盘数据管理方法分别硬盘数据的加密和解密方法,每个硬盘配置一个puf实例元件,并且利用puf的随机性输出响应数据作为密钥,进行数据加解密。在这种情况下,硬盘的数据安全性得到了很大提高,主要原因在于:

密钥是由puf元件在工作中实时运行得到的,是一个动态产生的密钥,而不是像传统方案中那样,是保存在存储介质的某个位置。这大大提高了密钥的安全性,常见的针对存储密钥的攻击方法,比如物理分析、电学分析、结构分析等,将不再有效。而且,puf必须要在正常工作状态才能产生正确的密钥,如果攻击者破坏了puf的工作环境,就无法得到正确的密钥,这使得硬盘具备了防入侵特性;

每个加密密钥不仅与数据的属性(比如逻辑块地址等)有关,而且与在这个硬盘上的puf实例元件的特性相关(因为每个密钥都是由puf实例实时运行得到),从而实现了密钥和物理设备的绑定。这样,攻击者要破解数据时,对不同的硬盘必须单独进行破解,因为每一个硬盘的密钥都是与该硬盘puf实例相关的,是独一无二的。

实施例3:

参图4所示,本实施例中的硬盘包括:

控制单元10,该控制单元可以为硬盘控制器,负责从主机接收指令,执行各种实现硬盘功能所必须的软件程序,包括数据的加解密程序,以及对puf元件的操作程序,并控制硬盘内部的读写机构对存储介质进行读写操作。

puf单元20,puf单元是一种具备puf功能的元件,本发明不对该puf元件的具体物理实现形式做限定,只需能够实现基本的puf功能。该元件接收硬盘控制器的控制,针对硬盘控制器发送过来的输入挑战信号进行实时运算,得到输出响应数据,并将该输出响应数据返回给硬盘控制器。puf元件的输入-输出关系应满足前文介绍的puf元件的基本功能。

存储单元30,包括存储介质,存储介质是硬盘用于存储数据的物理载体。本发明不对存储介质做任何限定,即现有硬盘中的存储介质,包括磁介质,nandflash闪存,还是相变存储,以及未来的其他存储介质,都可以应用于本发明。

其中,在数据写入/加密过程中:控制单元10,用于接收原始数据d1;并根据原始数据d1的属性计算输入挑战数据c1及数据写入地址n1;以及将原始数据用加密密钥进行加密,得到加密数据e1并存储至数据写入地址n1中;

puf实例单元20,与控制单元相连,用于将输入挑战数据c1通过物理不可克隆函数puf处理后得到输出响应数据r1,并将输出响应数据r1作为加密密钥,返回给控制单元;

存储单元30,与控制单元相连,用于存储加密数据e1。在数据读取/解密过程中:

控制单元10,用于接收读取原始数据d2的请求;并根据原始数据d2的属性计算输入挑战数据c2及数据存储地址n2;以及从数据存储地址n2中读取加密数据e2;并利用解密密钥对加密数据e2进行解密;

puf实例单元20,与控制单元相连,用于将输入挑战数据c2通过物理不可克隆函数puf处理后得到输出响应数据r2;并将输出响应数据r2作为解密密钥,返回给控制单元;

存储单元30,与控制单元相连,用于存储加密数据e2。

本实施例中的每个硬盘包含的puf实例都是不同的,对于多个不同硬盘中的puf实例,即使向它们提供相同的输入挑战数据,得到的输出响应数据也是不同的。因此,不同的硬盘,若其对某一数据的加密使用了相同的输入挑战数据来从puf得到密钥,则其加密密钥是不同的。

另外,每个硬盘包含的puf实例都是物理不可复制的,每个硬盘中的puf实例,针对相同的输入挑战数据,其得到的输出响应数据是不同的。若要解密某个硬盘中的加密数据,必须使用该硬盘中的puf来产生解密的密钥。攻击者无法复制该puf,从而无法得到解密密钥。因此本发明得到的密钥具有唯一性和物理不可复制性,即该硬盘中的加密数据离开了该硬盘中的puf实例将无法被解密。

与现有技术相比,本发明使用物理不可克隆函数(physicalunclonablefunction,puf)的输出响应数据作为密钥,密钥具有唯一性和物理不可复制性,提高了密钥的安全性,从而加强了硬盘数据加密的安全性。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同/相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书一个或多个实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书一个或多个实施例的实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

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