专利名称:硬盘数据写入、读取方法及装置的制作方法
硬盘数据写入、读取方法及装置技术领域
本发明实施例涉及一种硬盘数据写入、读取方法及装置,属于存储技术领域。
背景技术:
由于硬盘具有读写性能高、容量大等等优势,而被广泛应用在军工、工控、监控等领域。硬盘作为支撑现在海量数据存储的介质,其上的数据一旦泄露会对个人或企业客户造成不可估量的损失。为了保证硬盘上数据的可靠性,需要对硬盘上的数据进行加密。
图I为现有技术的一种硬盘数据加密技术的示意图。如图I所示,将硬盘划分为两个部分数据区与密钥区,其中加密后的密文数据存放在数据区,而密钥同时存放在硬盘之上的密钥区内,加密区的大小视加密算法的强度而定。图2为图I所示加密技术中加密过程的示意图。如图2所示,明文数据在主机软件侧进行加密,将加密后得到的密文数据以及密钥分别写入硬盘的数据区以及密钥区。图3为图I所示加密技术中解密过程的示意图。如图2所示,主机软件从硬盘的数据区和密钥区分别读取密文以及密钥,进行解密得到明文数据。
然而,上述现有技术中将硬盘的可用区域分为数据区与密钥区,相当于减少了硬盘实际可存储的数据容量。而且随着加密算法强度的增加,数据区的容量会进一步减少。并且,由于硬盘上的密文数据和密钥都是存储在硬盘的可用区域,假使出现硬盘被窃取等情况,很容易被人读取造成信息的泄密。发明内容
本发明实施例提供一种硬盘数据写入、读取方法及装置,用以解决现有的硬盘数据加密导致减少硬盘的实际可存储数据容量以及易泄密的问题。
本发明实施例的第一个方面是提供一种硬盘数据写入方法,包括
获取明文数据;
利用加密密钥对所述明文数据进行加密,得到密文数据和解密密钥;
将所述密文数据写入硬盘的可用区域,将所述解密密钥写入所述硬盘的保留区。
在第一个方面的第一种可能的实现方式中,所述利用加密密钥对所述明文数据进行加密,得到密文数据之前还包括
将所述明文数据分解为多个明文数据块;
所述利用加密密钥对所述明文数据进行加密,得到密文数据具体包括
利用加密密钥对所述多个明文数据块分别进行加密,得到多个密文数据块和各密文数据块对应的解密密钥;
所述将所述密文数据写入硬盘的可用区域,将所述解密密钥写入所述硬盘的保留区具体包括
将所述多个密文数据块写入所述硬盘的可用区域,将各密文数据块对应的解密密钥写入所述硬盘的保留区。CN 102930224 A书明说2/9页
结合第一个方面的第一种可能的实现方式,在第一个方面的第二种可能的实现方式中,每个密文数据块的大小不超过所述硬盘上每个扇区的数据区容量大小;
所述将所述多个密文数据块写入所述硬盘的可用区域具体包括
将所述多个密文数据块一一对应地写入多个扇区的数据区;
所述将各密文数据块对应的解密密钥写入所述硬盘的保留区具体包括
将各密文数据块对应的解密密钥分别对应地写入各密文数据块所在扇区的保留区。
结合第一个方面或第一个方面的上述几种可能的实现方式,在第一个方面的第三种可能的实现方式中,将所述解密密钥写入所述硬盘的保留区具体包括
使用小型计算机系统接口 SCSI WRITE LONG命令将所述解密密钥写入所述硬盘的保留区。
本发明实施例的第二个方面是提供一种硬盘数据读取方法,包括
从硬盘的可用区域读取密文数据,从所述硬盘的保留区读取解密密钥;
利用所述解密密钥对所述密文数据进行解密,得到明文数据。
在第二个方面的第一种可能的实现方式中,所述从硬盘的可用区域读取密文数据,从所述硬盘的保留区读取解密密钥具体包括
从硬盘的可用区域读取多个密文数据块,从所述硬盘的保留区读取各密文数据块对应的解密密钥;
所述利用所述解密密钥对所述密文数据进行解密,得到明文数据具体包括
利用各密文数据块对应的解密密钥分别对所述多个密文数据块进行解密,得到多个明文数据块;
所述利用所述解密密钥对所述密文数据进行解密,得到明文数据之后还包括
将所述多个明文数据块进行合并,得到所述明文数据。
结合第二个方面的第一种可能的实现方式,在第二个方面的第二种可能的实现方式中,各密文数据块的大小均不超过所述硬盘上每个扇区的数据区容量大小,各密文数据块一一对应地保存在所述硬盘的一个扇区的数据区中;
所述从硬盘的可用区域读取多个密文数据块具体包括
从所述硬盘的多个扇区的数据区分别读取所述多个密文数据块;
所述从所述硬盘的保留区读取各密文数据块对应的密钥具体包括
从所述保存有各密文数据块的扇区的保留区中分别读取各密文数据块对应的解密密钥。
结合第二个方面或第二个方面的上述几种可能的实现方式,在第二个方面的第三种可能的实现方式中,所述从所述硬盘的保留区读取解密密钥具体包括
使用小型计算机系统接口 SCSI READ LONG命令从所述硬盘的保留区读取所述解密密钥。
本发明实施例的第三个方面是提供一种硬盘数据写入装置,包括
获取模块,用于获取明文数据;
加密模块,用于利用加密密钥对所述获取模块获取的明文数据进行加密,得到密文数据和解密密钥;6
写入模块,用于将所述加密模块得到的所述密文数据写入硬盘的可用区域,将所述加密模块得到的所述解密密钥写入所述硬盘的保留区。
在第三个方面的第一种可能的实现方式中,还包括
分解模块,用于件所述获取模块获取的所述明文数据分解为多个明文数据块;
所述加密模块具体用于利用加密密钥对所述分解模块分解得到的所述多个明文数据块分别进行加密,得到多个密文数据块和各密文数据块对应的解密密钥;
所述写入模块具体用于将所述加密模块得到的所述多个密文数据块写入所述硬盘的可用区域,将所述加密模块得到的各密文数据块对应的解密密钥写入所述硬盘的保留区。
结合第三个方面或第三个方面的第一种可能的实现方式,在第三个方面的第二种可能的实现方式中,每个密文数据块的大小不超过所述硬盘上每个扇区的数据区容量大
所述写入模块具体用于
将所述加密模块得到的所述多个密文数据块一一对应地写入多个扇区的数据区, 将所述加密模块得到的各密文数据块对应的解密密钥分别对应地写入各密文数据块所在扇区的保留区。
结合第三个方面的上述几种可能的实现方式,在第三个方面的第三种可能的实现方式中,所述写入模块具体用于
使用小型计算机系统接口 SCSI WRITE LONG命令将所述加密模块得到的所述解密密钥写入所述硬盘的保留区。
本发明实施例的第四个方面是提供一种硬盘数据读取装置,包括
读取模块,用于从硬盘的可用区域读取密文数据,从所述硬盘的保留区读取解密密钥;
解密模块,用于利用所述读取模块读取到的所述解密密钥对所述读取模块读取到的密文数据进行解密,得到明文数据。
在第四个方面的第一种可能的实现方式中,所述读取模块具体用于
从硬盘的可用区域读取多个密文数据块,从所述硬盘的保留区读取各密文数据块对应的解密密钥;
所述解密模块具体用于
利用所述读取模块读取到的各密文数据块对应的解密密钥分别对所述读取模块读取到的所述多个密文数据块进行解密,得到多个明文数据块;
还包括
合并模块,用于将所述解密模块得到的所述多个明文数据块进行合并,得到所述明文数据。
结合第四个方面的第一种可能的实现方式,在第四个方面的第二种可能的实现方式中,各密文数据块的大小均不超过所述硬盘上每个扇区的数据区容量大小,各密文数据块一一对应地保存在所述硬盘的一个扇区的数据区中;
所述读取模块具体用于
从所述硬盘的多个扇区的数据区分别读取所述多个密文数据块,从所述保存有各密文数据块的扇区的保留区中分别读取各密文数据块对应的解密密钥。
结合第四个方面或第四个方面的上述几种可能的实现方式,在第四个方面的第三种可能的实现方式中,所述读取模块具体用于使用小型计算机系统接口 SCSI READ LONG 命令从所述硬盘的保留区读取所述解密密钥。
以上多个技术方案中的多个具有如下优点或有益效果
本发明实施例通过将解密密钥保存在硬盘的保留区,不占用硬盘的可用区域,节省存储资源,且由于保留区中的数据无法通过常规命令读取,使得解密密钥无法被窃取,提高了数据加密的可靠性,解决了现有的硬盘数据加密导致减少硬盘的实际可存储数据容量以及易泄密的问题。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图I为现有技术的一种硬盘数据加密技术的示意图2为图I所示加密技术中加密过程的示意图3为图I所示加密技术中解密过程的示意图4为本发明实施例提供的一种硬盘数据写入方法的流程示意图5为本发明实施例提供的一种硬盘数据读取方法的流程示意图6为本发明实施例提供的一种硬盘数据写入装置的结构示意图7为本发明实施例提供的又一种硬盘数据写入装置的结构示意图8为本发明实施例提供的一种硬盘数据读取装置的结构示意图9为本发明实施例提供的又一种硬盘数据读取装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图4为本发明实施例提供的一种硬盘数据写入方法的流程示意图。如图4所示, 包括
401、获取明文数据。
举例来说,本发明实施例提供的硬盘数据写入装置获取明文数据。具体地,硬盘数据写入装置通过主机软件实现,通常,主机软件包括驱动层、操作系统层和应用层,应用层可以与用户直接交互,操作系统层负责整个主机的调度,操作系统层设置有文件系统,文件系统用于管理主机硬盘中的数据,驱动层可以与主机硬盘上的主控单元通过小型计算机系统接口(SmallComputer System Interface,简称 SCSI)协议通信。
402、利用加密密钥对所述明文数据进行加密,得到密文数据和解密密钥。
这里的加密密钥可以是预先设置好的。具体地,可以采用现有的加密算法进行加密,本发明实施例对此不进行限定。解密密钥是与加密密钥和加密算法对应的,举例来说, 当采用对称密钥加密算法时,解密密钥与加密密钥相同。
403、将所述密文数据写入硬盘的可用区域,将所述加密密钥写入所述硬盘的保留区。
具体地,硬盘的可用区域为对用户可见的区域,即常规可访问的区域,保留区 (Reserved)为非常规可访问的区域。这里的常规可访问是指通过常规的读写命令可以访问,常规的读命令如 SCSI 块命令(Block Command) READ 10, READ12、READ 16, READ32 等,常规的写命令如 WRITE10、WRITE12、WRITE16、WRITE32 等。
具体地,本发明实施例中可以利用SCSI特殊数据写命令,WRITE LONG命令将所述密钥写入所述硬盘的保留区。
本施例中,应用层获取明文数据,将明文数据传递给操作系统层的文件系统,文件系统确定该明文数据在硬盘中的存储位置,并将明文数据传递给驱动层,驱动层对明文数据进行加密后将得到的密文数据和解密密钥存储在硬盘中文件系统指定的存储位置。由于是在驱动层进行加密,密文数据不以文件的形式存在、对于用户不可见,相比于现有技术中在应用层进行加密、密文数据作为一个文件对用户可见来说,提高了数据的安全性。
若应用层生成的明文数据较大,操作系统层的文件系统会将明文数据分为多个明文数据块, 驱动层对多个明文数据块分别进行加密,相比于现有在应用层对整个明文数据进行加密,进一步提高了加密的速度。对应地,401和402之间还包括
将所述明文数据分解为多个明文数据块;
402具体包括
利用加密密钥对所述多个明文数据块分别进行加密,得到多个密文数据块和各密文数据块对应的解密密钥;
403具体包括
将所述多个密文数据块写入所述硬盘的可用区域,将各密文数据块对应的解密密钥写入所述硬盘的保留区。
具体地,是否需要分解明文数据以及分解成多少个明文数据块,由文件系统根据明文数据的大小决定,本实施例对此不进行限定。
需要说明的是,若各密文数据块对应的解密密钥不同,则需要将各密文数据块对应的解密密钥分别写入保留区中对应的存储位置;若各密文数据块对应的解密密钥相同, 可以在保留区内仅写入一个解密密钥,进一步地,还可以将一个解密密钥的数据分割成多份,每份存放在保留区的不同空间内,比如存放不同的扇区中的保留区内,这样可以极大扩展本发明实施例使用的加解密算法的种类、强度等等。
进一步地,为了优化硬盘上的存储空间、减少硬盘碎片,可在硬盘上以扇区 (Sector)为单位保存密文数据块。对应地,每个密文数据块的大小不超过所述硬盘上每个扇区的数据区容量大小;
所述将所述多个密文数据块写入所述硬盘的可用区域具体包括
将所述多个密文数据块一一对应地写入多个扇区的数据区;
所述将各密文数据块对应的解密密钥写入所述硬盘的保留区具体包括
将各密文数据块对应的解密密钥分别对应写入各密文数据块所在扇区的保留区。
具体地,硬盘中的每个扇区均由数据区和保留区组成。通常,每个扇区中数据区的容量为512字节,保留区的容量大于100字节。将哪个密文数据块写入哪个扇区, 可以由操作系统层中的文件系统指定,具体地可以在WRITE LONG命令的参数,逻辑块地址(LOGICAL BLOCK ADDRESS)中指定,举例来说,若要将密文数据写入O扇区,则LOGICAL BL0CKADDRESS=0,若要将密文数据写入 10000 扇区,LOGICAL BL0CKADDRESS=10000。
进一步地,为了提高加密的可靠性,可以针对各明文数据块使用不同的加密密钥和加密算法进行加密,本实施例对此不进行限定。
本发明实施例通过将解密密钥保存在硬盘的保留区,不占用硬盘的可用区域,节省存储资源,且由于保留区中的数据无法通过常规命令读取,使得解密密钥无法被窃取,提高了数据加密的可靠性,解决了现有的硬盘数据加密导致减少硬盘的实际可存储数据容量以及易泄密的问题。进一步地,通过文件系统将大的明文数据分解成小的明文数据块后再在驱动层分别进行加密,提高了加密的效率。
图5为本发明实施例提供的一种硬盘数据读取方法的流程示意图。如图5所示, 包括
501、从硬盘的可用区域读取密文数据,从所述硬盘的保留区读取解密密钥。
举例来说,本发明实施例提供的硬盘数据读取装置从硬盘的可用区域读取密文数据,从所 述硬盘的保留区读取解密密钥。具体地,硬盘数据读取装置可以通过主机软件实现。
具体地,本发明实施例中可以利用SCSI特殊数据读命令,READ LONG命令从所述硬盘的保留区读取解密密钥。
502、利用所述解密密钥对所述密文数据进行解密,得到明文数据。
具体地,采用解密密钥和与得到所述密文数据的加密算法对应的解密算法进行解密,本发明实施例对此不进行限定。
本施例中,硬盘数据读取装置在驱动层执行501和502,之后驱动层可以将得到的明文数据通过文件系统传递给应用层。需要说明的是,501中从硬盘的什么存储位置读取密文数据和解密密钥,是由文件系统指定的。
若要读取的明文数据在之前写入到硬盘中先由文件系统分解成了多个明文数据块,并在驱动层分别进行了加密,则相应地在读取时,驱动层读取对应的多个密文数据块并分别解密得到多个明文数据块后,文件系统再将解密得到的多个明文数据块进行合并,得到明文数据。对应地,501具体包括
从硬盘的可用区域读取多个密文数据块,从所述硬盘的保留区读取各密文数据块对应的解密密钥;
502具体包括
利用各密文数据块对应的解密密钥分别对所述多个密文数据块进行解密,得到多个明文数据块;
502之后还包括
将所述多个明文数据块进行合并,得到所述明文数据。
需要说明的是,若各密文数据块对应的解密密钥相同,可以仅读取一个解密密钥,若各密文数据块对应的解密密钥不同,则需要将保留区中对应的存储位置分别读取各密文数据块对应的解密密钥。进一步地,各密文数据块对应的解密算法可以相同,也可以不同。
进一步地,若每个密文数据块的大小不超过所述硬盘上每个扇区的数据区容量大小,各密文数据块一一对应地保存在所述硬盘的一个扇区的数据区中,则所述从硬盘的可用区域读取多个密文数据块具体包括
从所述硬盘的多个扇区的数据区分别读取所述多个密文数据块;
所述从所述硬盘的保留区读取各密文数据块对应的密钥具体包括
从所述保存有各密文数据块的扇区的保留区中分别读取各密文数据块对应的解密密钥。
通常,从哪个扇区读取密文数据块,可以由操作系统层中的文件系统指定。具体地,可以在WRITE READ命令的参数,逻辑块地址(L0GICALBL0CK ADDRESS)中指定,举例来说,若要读取O扇区内的数据,L0GICALBL0CK ADDRESS=0,若要读取10000扇区内的数据,logical blockaddress=i0000。
本发明实施例通过将保存在硬盘的保留区中的解密密钥读出,并对从硬盘的可用区域读取的密文数据进行解密,得 到明文数据,解密密钥不占用硬盘的可用区域,节省存储资源,且由于保留区中的数据无法通过常规命令读取,使得解密密钥无法被窃取,提高了数据加密的可靠性,解决了现有的硬盘数据加密导致减少硬盘的实际可存储数据容量以及易泄密的问题。进一步地,通过在驱动层将小的各密文数据块分别解密后再由文件系统进行合并,相比于现有技术中在应用层对整个密文数据进行解密,提高了解密的效率。
本领域普通技术人员可以理解实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图6为本发明实施例提供的一种硬盘数据写入装置的结构示意图。如图6所示, 所述装置包括
获取模块61,用于获取明文数据;
加密模块62,用于利用加密密钥对获取模块61获取的明文数据进行加密,得到密文数据和解密密钥;
写入模块63,用于将加密模块62得到的所述密文数据写入硬盘的可用区域,将加密模块62得到的所述解密密钥写入所述硬盘的保留区。
可选地,写入模块63具体用于
使用SCSI WRITE LONG命令将所述加密模块得到的所述解密密钥写入所述硬盘的保留区。
图7为本发明实施例提供的又一种硬盘数据写入装置的结构示意图。如图7所示, 在图6所示实施例的基础上,所述装置还包括
分解模块64,用于件获取模块61获取的所述明文数据分解为多个明文数据块;
加密模块62具体用于利用加密密钥对分解模块64分解得到的所述多个明文数据块分别进行加密,得到多个密文数据块和各密文数据块对应的解密密钥;
写入模块63具体用于将加密模块62得到的所述多个密文数据块写入所述硬盘的可用区域,将加密模块62得到的各密文数据块对应的解密密钥写入所述硬盘的保留区。
进一步地,若每个密文数据块的大小不超过所述硬盘上每个扇区的数据区容量大小,则写入模块63具体可以用于
将加密模块62得到的所述多个密文数据块一一对应地写入多个扇区的数据区, 将加密模块62得到的各密文数据块对应的解密密钥分别对应地写入各密文数据块所在扇区的保留区。
需要说明的是,本实施例提供的硬盘数据写入装置可以通过主机软件实现,具体地,获取模块61可以位于主机软件的应用层,加密模块62和写入模块63可以位于主机软件的驱动层,分解模块64可以位于主机软件的操作系统层,进一步地位于操作系统层的文件系统中。
本实施例的具体实现参照本发明实施例提供给的一种硬盘数据写入方法。本发明实施例通过将解密密钥保存在硬盘的保留区,不占用硬盘的可用区域,节省存储资源,且由于保留区中的数据无法通过常规命令读取,使得解密密钥无法被窃取,提高了数据加密的可靠性,解决了现有的硬盘数据加密导致减少硬盘的实际可存储数据容量以及易泄密的问题。进一步地,通过文件系统将大的明文数据分解成小的明文数据块后再在驱动层分别进行加密,提高了加密的效率。
图8为本发明实施例提供的一种硬盘数据读取装置的结构示意图。如图8所示, 所述装置包括
读取模块81,用于从硬盘的可用区域读取密文数据,从所述硬盘的保留区读取解密密钥;
解密模块82,用于利用读取模块81读取到的所述解密密钥对所述读取模块读取到的密文数据进行解密,得到明文数据。
可选地,读取模块81具体用于使用SCSI READ LONG命令从所述硬盘的保留区读取所述解密密钥。
图9为本发明实施例提供的又一种硬盘数据读取装置的结构示意图。如图9所示, 在图8所示实施例的基础上,读取模块81具体用于
从硬盘的可用区域读取多个密文数据块,从所述硬盘的保留区读取各密文数据块对应的解密密钥;
解密模块82具体用于
利用读取模块81读取到的各密文数据块对应的解密密钥分别对读取模块81读取到的所述多个密文数据块进行解密,得到多个明文数据块;
所述装置还包括
合并模块83,用于将解密模块82得到的所述多个明文数据块进行合并,得到所述明文数据。
进一步地,若各密文数据块的大小均不超过所述硬盘上每个扇区的数据区容量大小,各密文数据块一一对应地保存在所述硬盘的一个扇区的数据区中,则读取模块81具体可以用于
从所述硬盘的多个扇区的数据区分别读取所述多个密文数据块,从所述保存有各密文数据块的扇区的保留区中分别读取各密文数据块对应的解密密钥。
需要说明的是,本实施例提供的硬盘数据读取装置可以通过主机软件实现,具体地,读取模块81和解密模块82可以位于主机软件的驱动层,合并模块83可以位于主机软件的操作系统层,进一步地位于操作系统层的文件系统中。
本实施例的具体实现参照本发明实施例提供给的一种硬盘数据读取方法。本发明实施例通过将保存在硬盘的保留区中的解密密钥读出,并对从硬盘的可用区域读取的密文数据进行解密,得到明文数据,解密密钥不占用硬盘的可用区域,节省存储资源,且由于保留区中的数据无法通过常规命令读取,使得解密密钥无法被窃取,提高了数据加密的可靠性,解决了现有的硬盘数据加密导致减少硬盘的实际可存储数据容量以及易泄密的问题。 进一步地,通过在驱动层将小的各密文数据块分别解密后再由文件系统进行合并,相比于现有技术中在应用层对整个密文数据进行解密,提高了解密的效率。
最后应说明的是以上各实施例仅用以说明本发明的技术方案,而非对其限制; 尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
权利要求
1.一种硬盘数据写入方法,其特征在于,包括获取明文数据;利用加密密钥对所述明文数据进行加密,得到密文数据和解密密钥;将所述密文数据写入硬盘的可用区域,将所述解密密钥写入所述硬盘的保留区。
2.根据权利要求I所述的方法,其特征在于,所述利用加密密钥对所述明文数据进行加密,得到密文数据之前还包括将所述明文数据分解为多个明文数据块;所述利用加密密钥对所述明文数据进行加密,得到密文数据具体包括利用加密密钥对所述多个明文数据块分别进行加密,得到多个密文数据块和各密文数据块对应的解密密钥;所述将所述密文数据写入硬盘的可用区域,将所述解密密钥写入所述硬盘的保留区具体包括将所述多个密文数据块写入所述硬盘的可用区域,将各密文数据块对应的解密密钥写入所述硬盘的保留区。
3.根据权利要求2所述的方法,其特征在于,每个密文数据块的大小不超过所述硬盘上每个扇区的数据区容量大小;所述将所述多个密文数据块写入所述硬盘的可用区域具体包括将所述多个密文数据块一一对应地写入多个扇区的数据区;所述将各密文数据块对应的解密密钥写入所述硬盘的保留区具体包括将各密文数据块对应的解密密钥分别对应地写入各密文数据块所在扇区的保留区。
4.根据权利要求1-3中任一项所述的方法,其特征在于,将所述解密密钥写入所述硬盘的保留区具体包括使用小型计算机系统接口 SCSI WRITE LONG命令将所述解密密钥写入所述硬盘的保留区。
5.一种硬盘数据读取方法,其特征在于,包括从硬盘的可用区域读取密文数据,从所述硬盘的保留区读取解密密钥;利用所述解密密钥对所述密文数据进行解密,得到明文数据。
6.根据权利要求5所述的方法,其特征在于,所述从硬盘的可用区域读取密文数据,从所述硬盘的保留区读取解密密钥具体包括从硬盘的可用区域读取多个密文数据块,从所述硬盘的保留区读取各密文数据块对应的解密密钥;所述利用所述解密密钥对所述密文数据进行解密,得到明文数据具体包括利用各密文数据块对应的解密密钥分别对所述多个密文数据块进行解密,得到多个明文数据块;所述利用所述解密密钥对所述密文数据进行解密,得到明文数据之后还包括将所述多个明文数据块进行合并,得到所述明文数据。
7.根据权利要求6所述的方法,其特征在于,各密文数据块的大小均不超过所述硬盘上每个扇区的数据区容量大小,各密文数据块一一对应地保存在所述硬盘的一个扇区的数据区中;所述从硬盘的可用区域读取多个密文数据块具体包括从所述硬盘的多个扇区的数据区分别读取所述多个密文数据块;所述从所述硬盘的保留区读取各密文数据块对应的密钥具体包括从所述保存有各密文数据块的扇区的保留区中分别读取各密文数据块对应的解密密钥。
8.根据权利要求5-7中任一项所述的方法,其特征在于,所述从所述硬盘的保留区读取解密密钥具体包括使用小型计算机系统接口 SCSI READ LONG命令从所述硬盘的保留区读取所述解密密钥。
9.一种硬盘数据写入装置,其特征在于,包括获取模块,用于获取明文数据;加密模块,用于利用加密密钥对所述获取模块获取的明文数据进行加密,得到密文数据和解密密钥;写入模块,用于将所述加密模块得到的所述密文数据写入硬盘的可用区域,将所述加密模块得到的所述解密密钥写入所述硬盘的保留区。
10.根据权利要求9所述的装置,其特征在于,还包括分解模块,用于件所述获取模块获取的所述明文数据分解为多个明文数据块;所述加密模块具体用于利用加密密钥对所述分解模块分解得到的所述多个明文数据块分别进行加密,得到多个密文数据块和各密文数据块对应的解密密钥;所述写入模块具体用于将所述加密模块得到的所述多个密文数据块写入所述硬盘的可用区域,将所述加密模块得到的各密文数据块对应的解密密钥写入所述硬盘的保留区。
11.根据权利要求10所述的装置,其特征在于,每个密文数据块的大小不超过所述硬盘上每个扇区的数据区容量大小;所述写入模块具体用于将所述加密模块得到的所述多个密文数据块一一对应地写入多个扇区的数据区,将所述加密模块得到的各密文数据块对应的解密密钥分别对应地写入各密文数据块所在扇区的保留区。
12.根据权利要求9-11中任一项所述的装置,其特征在于,所述写入模块具体用于 使用小型计算机系统接口 SCSI WRITE LONG命令将所述加密模块得到的所述解密密钥写入所述硬盘的保留区。
13.—种硬盘数据读取装置,其特征在于,包括读取模块,用于从硬盘的可用区域读取密文数据,从所述硬盘的保留区读取解密密钥;解密模块,用于利用所述读取模块读取到的所述解密密钥对所述读取模块读取到的密文数据进行解密,得到明文数据。
14.根据权利要求13所述的装置,其特征在于,所述读取模块具体用于从硬盘的可用区域读取多个密文数据块,从所述硬盘的保留区读取各密文数据块对应的解密密钥;所述解密模块具体用于利用所述读取模块读取到的各密文数据块对应的解密密钥分别对所述读取模块读取到的所述多个密文数据块进行解密,得到多个明文数据块;还包括合并模块,用于将所述解密模块得到的所述多个明文数据块进行合并,得到所述明文数据。
15.根据权利要求14所述的装置,其特征在于,各密文数据块的大小均不超过所述硬盘上每个扇区的数据区容量大小,各密文数据块一一对应地保存在所述硬盘的一个扇区的数据区中;所述读取模块具体用于从所述硬盘的多个扇区的数据区分别读取所述多个密文数据块,从所述保存有各密文数据块的扇区的保留区中分别读取各密文数据块对应的解密密钥。
16.根据权利要求13-15中任一项所述的装置,其特征在于,所述读取模块具体用于 使用小型计算机系统接口 SCSI READ LONG命令从所述硬盘的保留区读取所述解密密钥。
全文摘要
本发明实施例提供一种硬盘数据写入、读取方法及装置。写入方法包括获取明文数据;利用加密密钥对所述明文数据进行加密,得到密文数据和解密密钥;将所述密文数据写入硬盘的可用区域,将所述解密密钥写入所述硬盘的保留区。本发明实施例通过将解密密钥保存在硬盘的保留区,不占用硬盘的可用区域,节省存储资源,且由于保留区中的数据无法通过常规命令读取,使得解密密钥无法被窃取,提高了数据加密的可靠性,解决了现有的硬盘数据加密导致减少硬盘的实际可存储数据容量以及易泄密的问题。
文档编号G06F21/62GK102930224SQ201210400819
公开日2013年2月13日 申请日期2012年10月19日 优先权日2012年10月19日
发明者钱岩 申请人:华为技术有限公司