本发明属于数据加密领域,尤其涉及一种基于sata的数据加密方法、解密方法、加解密设备及系统。
背景技术:
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
sata是serialata的缩写,即串行ata,它是一种电脑总线,主要功能是用作主板和大量存储设备(如硬盘及光盘驱动器)之间的数据传输之用。
发明人发现,现有的数据加密方法均是通过串联在sata主设备与sata从设备之间的桥进行数据加密,而且需要安装驱动程序才能实现数据加解密,存在操作复杂且数据加解密速度慢的问题。
技术实现要素:
为了解决上述问题,本发明的第一方面提供一种基于sata的数据加密方法,其操作方便且不需要在主机端安装任何的驱动程序,只需要主机端具有串行ata操作程序即可实现对各种数据的高效加密。
为了实现上述目的,本发明采用如下技术方案:
本发明的一种基于sata的数据加密方法,该方法在加解密设备中完成,包括:
接收从主机硬盘中读取且经主机端ahci驱动传送的待加密文件明文数据;
通过设备端的sata驱动接收待加密文件明文数据并传送至加解密设备内置的加解密引擎,启动加密;
加密结束后,将加密后的密文数据放至加解密设备内存中,等待主机端读取;
接到主机端发送的读取命令,再通过设备端的sata驱动向主机端发送加密完的密文数据,由主机端的ahci驱动接收密文数据并存至主机端内存中,最后将密文数据写回至主机硬盘。
本发明的另一种基于sata的数据加密方法,该方法在加解密设备和主机端中完成,包括:
主机端从主机硬盘中读取待加密文件明文数据,并经主机端ahci驱动传送至设备端;
加解密设备通过设备端的sata驱动接收待加密文件明文数据并传送至加解密设备内置的加解密引擎,启动加密;
加密结束后,将加密后的密文数据放至加解密设备内存中,等待主机端读取;
主机端向设备端发送读取命令,加解密设备通过设备端的sata驱动将加密完的密文数据发送至主机端;
主机端的ahci驱动接收密文数据并存至主机端内存中,最后主机端将密文数据从主机端内存写回至主机硬盘。
为了解决上述问题,本发明的第二方面提供一种基于sata的数据解密方法,其操作方便且不需要在主机端安装任何的驱动程序,只需要主机端具有串行ata操作程序即可实现对各种数据的高效解密。
为了实现上述目的,本发明采用如下技术方案:
本发明的一种基于sata的数据解密方法,该方法在加解密设备中完成,包括:
接收从主机硬盘中读取且经主机端ahci驱动传送的已加密文件密文数据;
通过设备端的sata驱动接收已加密文件密文数据并传送至加解密设备内置的加解密引擎,启动解密;
解密结束后,将解密后的明文数据放至加解密设备内存中,等待主机端读取;
接到主机端发送的读取命令,再通过设备端的sata驱动向主机端发送解密完的明文数据,由主机端的ahci驱动接收明文数据并存至主机端内存中,最后将明文数据写回至主机硬盘。
本发明的另一种基于sata的数据解密方法,该方法在加解密设备和主机端中完成,包括:
主机端从主机硬盘中读取已加密文件密文数据,并经主机端ahci驱动传送至设备端;
加解密设备通过设备端的sata驱动接收已加密文件密文数据并传送至加解密设备内置的加解密引擎,启动解密;
解密结束后,将解密后的明文数据放至加解密设备内存中,等待主机端读取;
主机端向设备端发送读取命令,加解密设备通过设备端的sata驱动将解密后的明文数据发送至主机端;
主机端的ahci驱动接收明文数据并存至主机端内存中,最后主机端将明文数据从主机端内存写回至主机硬盘。
为了解决上述问题,本发明的第三方面提供一种加解密设备,其操作方便且不需要在主机端安装任何的驱动程序,只需要主机端具有串行ata操作程序即可实现对各种数据的高效加解密。
为了实现上述目的,本发明采用如下技术方案:
一种加解密设备,包括:
sata驱动,其用于接收从主机硬盘中读取且经主机端ahci驱动传送的待加密文件明文数据/已加密文件密文数据,并传送至内置的加解密引擎;
内置的加解密引擎,其用于启动加密/解密,结束后得到加密后的密文数据/解密后的明文数据;
加解密设备内存,其用于存储加密后的密文数据/解密后的明文数据,等待主机端读取。
为了解决上述问题,本发明的第四方面提供一种基于sata的数据加解密系统,其操作方便且不需要在主机端安装任何的驱动程序,只需要主机端具有串行ata操作程序即可实现对各种数据的高效加解密。
为了实现上述目的,本发明采用如下技术方案:
一种基于sata的数据加解密系统,包括:
主机端,其用于从主机硬盘中读取待加密文件明文数据/已加密文件密文数据,并经主机端ahci驱动传送至设备端;
加解密设备,其用于通过设备端的sata驱动接收待加密文件明文数据/已加密文件密文数据并传送至加解密设备内置的加解密引擎,启动加密/解密;
在加密/解密结束后,将加密后的密文数据/解密后的明文数据放至加解密设备内存中,等待主机端读取;
所述主机端,还用于向设备端发送读取命令;
所述加解密设备,还用于通过设备端的sata驱动将加密后的密文数据/解密后的明文数据发送至主机端;
所述主机端的ahci驱动接收明文数据并存至主机端内存中,最后主机端将明文数据从主机端内存写回至主机硬盘。
本发明的有益效果是:
(1)本发明利用加解密设备直接插到主机的sata接口上,在主机端会显示出一个新的硬盘设备,与其他正常的sata设备是并列的关系;而且使用方便,不需要安装在sata主从设备之间,对于支持热插拔的电脑主机,可以随时插上使用或者拔出,加解密操作方便。
(2)本发明能够加密多个硬盘内的数据,可将加解密设备插到任意一个主机上,直接就可以使用主机端的应用软件进行操作,不需要安装驱动程序只需要主机端具有串行ata操作程序即可实现对各种数据的高效加解密。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明实施例的一种基于sata的数据加密方法原理图;
图2是本发明实施例的一种基于sata的数据解密方法原理图;
图3是本发明实施例的一种加解密设备结构示意图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
术语解释:
ahcidriver:ahci驱动;
其中,ahci,advancedhostcontrollerinterface,高级主机控制器接口,是一种由英特尔制定的技术标准,它允许软件与sata存储设备沟通的硬件机制,可让sata存储设备激活高级sata功能,例如原生指令队列及热插拔。ahci详细定义一个存储器架构规范给予硬件制造商,规范如何在系统存储器与sata存储设备间传输数据。
satadriver:sata驱动;
其中,sata(serialadvancedtechnologyattachment,串行高级技术附件)是一种基于行业标准的串行硬件驱动器接口,是由intel、ibm、dell、apt、maxtor和seagate公司共同提出的硬盘接口规范。
实施例一
本实施例从加解密设备端出发,来详细说明基于sata的数据加密方法的具体流程:
如图1所示,本实施例的基于sata的数据加密方法,包括:
步骤s101:接收从主机硬盘中读取且经主机端ahci驱动(ahcidriver)传送的待加密文件明文数据。
在图1中,host为主机端;device为设备端。
在主机端中app为主机端操作系统软件,是现有的程序,包括读操作和写操作函数。图1中箭头显示的为数据流方向,1→2→3→4合起来构成一个主机端对设备端的写操作;5→6→7合起来构成一个主机端对设备端的读操作。写操作的数据为待加密的明文,读操作的数据为加密完的密文。
步骤s102:通过设备端的sata驱动(satadriver)接收待加密文件明文数据并传送至加解密设备内置的加解密引擎(cryptoengine),启动加密。
其中,加解密设备内置的加解密引擎,采用对称加密算法对流经的数据进行加解密,且内部随机产生加密密钥。
在图1中,cryptoengine为加解密引擎,其可以采用aes、sm1、sm4等任意对称加密算法对流经的数据进行加解密。密钥管理方面,即可以内部随机产生加密密钥,也可以通过rsa、sm2等非对称算法协商产生密钥,也可以采用任意其他可以接受的密钥管理方式。
步骤s103:加密结束后,将加密后的密文数据放至加解密设备内存buffer中,等待主机端读取。
步骤s104:接到主机端发送的读取命令,再通过设备端的sata驱动向主机端发送加密完的密文数据,由主机端的ahci驱动接收密文数据并存至主机端内存buffer中,最后将密文数据写回至主机硬盘。
在其他实施例中,当接到主机端一次性发送至少两条读取命令时,解析完当前读取命令后,向主机端发送当前读取命令相匹配的密文数据的同时,解析下一条读取命令,以提高数据加密速度。
具体地,上述步骤s101~步骤s104为单笔数据加密过程,其中,多笔数据加解密流程与单笔数据类似。
例如:主机端支持sata3.0接口时,多笔数据可以充分利用sata3.0的ncq命令管理模式,来达到数据的高效加解密。在ncq模式下,主机端可以一次性发送多条读写命令,设备在解析完第一条命令后,进行第一条命令的数据传输时,可以同时解析第二条命令,来达到资源的充分利用,从而达到高速的数据加解密。
实施例二
结合图1,本实施例从加解密设备和主机端混合侧来说明基于sata的数据加密方法的具体实施过程,具体包括:
步骤s201:主机端从主机硬盘中读取待加密文件明文数据,并经主机端ahci驱动传送至设备端;
步骤s202:加解密设备通过设备端的sata驱动接收待加密文件明文数据并传送至加解密设备内置的加解密引擎,启动加密;
在图1中,cryptoengine为加解密引擎,其可以采用aes、sm1、sm4等任意对称加密算法对流经的数据进行加解密。密钥管理方面,即可以内部随机产生加密密钥,也可以通过rsa、sm2等非对称算法协商产生密钥,也可以采用任意其他可以接受的密钥管理方式。
步骤s203:加密结束后,将加密后的密文数据放至加解密设备内存中,等待主机端读取;
步骤s204:主机端向设备端发送读取命令,加解密设备通过设备端的sata驱动将加密完的密文数据发送至主机端;
步骤s205:主机端的ahci驱动接收密文数据并存至主机端内存中,最后主机端将密文数据从主机端内存写回至主机硬盘。
在其他实施例中,主机端一次性向设备端发送至少两条读取命令,加解密设备解析完当前读取命令后,向主机端发送当前读取命令相匹配的密文数据的同时,解析下一条读取命令,以提高数据加密速度。
实施例三
本实施例从加解密设备出发,来说明基于sata的数据解密方法的具体实施过程。
如图2所示,本实施例的一种基于sata的数据解密方法,包括:
步骤s301:接收从主机硬盘中读取且经主机端ahci驱动传送的已加密文件密文数据;
在图2中,host为主机端;device为设备端。
在主机端中app为主机端操作系统软件,是现有的程序,包括读操作和写操作函数。
图2中箭头显示的为数据流方向,1’→2’→3’→4’合起来构成一个主机端对设备端的写操作;5’→6’→7’合起来构成一个主机端对设备端的读操作。写操作的数据为已加密文件密文数据,读操作的数据为解密完的明文。
步骤s302:通过设备端的sata驱动(satadriver)接收已加密文件密文数据并传送至加解密设备内置的加解密引擎(cryptoengine),启动解密;
其中,加解密设备内置的加解密引擎,采用对称加密算法对流经的数据进行加解密,且内部随机产生加密密钥。
在图2中,cryptoengine为加解密引擎,其可以采用aes、sm1、sm4等任意对称加密算法对流经的数据进行加解密。密钥管理方面,即可以内部随机产生加密密钥,也可以通过rsa、sm2等非对称算法协商产生密钥,也可以采用任意其他可以接受的密钥管理方式。
步骤s303:解密结束后,将解密后的明文数据放至加解密设备内存中,等待主机端读取;
步骤s304:接到主机端发送的读取命令,再通过设备端的sata驱动向主机端发送解密完的明文数据,由主机端的ahci驱动接收明文数据并存至主机端内存中,最后将明文数据写回至主机硬盘。
在其他实施例中,当接到主机端一次性发送至少两条读取命令时,解析完当前读取命令后,向主机端发送当前读取命令相匹配的明文数据的同时,解析下一条读取命令,以提高数据解密速度。
实施例四
下面结合图2,从加解密设备和主机端中混合侧,来说明本实施例的基于sata的数据解密方法的具体实施过程,具体包括:
步骤s401:主机端从主机硬盘中读取已加密文件密文数据,并经主机端ahci驱动传送至设备端;
步骤s402:加解密设备通过设备端的sata驱动接收已加密文件密文数据并传送至加解密设备内置的加解密引擎,启动解密;
其中,加解密设备内置的加解密引擎,采用对称加密算法对流经的数据进行加解密,且内部随机产生加密密钥。
在图2中,cryptoengine为加解密引擎,其可以采用aes、sm1、sm4等任意对称加密算法对流经的数据进行加解密。密钥管理方面,即可以内部随机产生加密密钥,也可以通过rsa、sm2等非对称算法协商产生密钥,也可以采用任意其他可以接受的密钥管理方式。
步骤s403:解密结束后,将解密后的明文数据放至加解密设备内存中,等待主机端读取;
步骤s404:主机端向设备端发送读取命令,加解密设备通过设备端的sata驱动将解密后的明文数据发送至主机端;
步骤s405:主机端的ahci驱动接收明文数据并存至主机端内存中,最后主机端将明文数据从主机端内存写回至主机硬盘。
在其他实施例中,主机端一次性向设备端发送至少两条读取命令,加解密设备解析完当前读取命令后,向主机端发送当前读取命令相匹配的明文数据的同时,解析下一条读取命令,以提高数据解密速度。
实施例五
本实施例提供了一种加解密设备,其操作方便且不需要在主机端安装任何的驱动程序,只需要主机端具有串行ata操作程序即可实现对各种数据的高效加解密。
如图3所示,本实施例的一种加解密设备,包括:
(1)sata驱动,其用于接收从主机硬盘中读取且经主机端ahci驱动传送的待加密文件明文数据/已加密文件密文数据,并传送至内置的加解密引擎;
(2)内置的加解密引擎,其用于启动加密/解密,结束后得到加密后的密文数据/解密后的明文数据;
加解密引擎可以采用aes、sm1、sm4等任意对称加密算法对流经的数据进行加解密。密钥管理方面,即可以内部随机产生加密密钥,也可以通过rsa、sm2等非对称算法协商产生密钥,也可以采用任意其他可以接受的密钥管理方式。
(3)加解密设备内存,其用于存储加密后的密文数据/解密后的明文数据,等待主机端读取。
本实施例的加解密设备直接插到主机的sata接口上,在主机端会显示出一个新的硬盘设备,与其他正常的sata设备是并列的关系;而且使用方便,不需要安装在sata主从设备之间,对于支持热插拔的电脑主机,可以随时插上使用或者拔出,加解密操作方便。
本实施例的加解密设备能够加密多个硬盘内的数据,可将加解密设备插到任意一个主机上,直接就可以使用主机端的应用软件进行操作,不需要安装驱动程序只需要主机端具有串行ata操作程序即可实现对各种数据的高效加解密。
实施例六
本实施例提供了一种基于sata的数据加解密系统,包括主机端和加解密设备。
具体地,主机端,用于从主机硬盘中读取待加密文件明文数据/已加密文件密文数据,并经主机端ahci驱动传送至设备端;
加解密设备,其用于通过设备端的sata驱动接收待加密文件明文数据/已加密文件密文数据并传送至加解密设备内置的加解密引擎,启动加密/解密;
在加密/解密结束后,将加密后的密文数据/解密后的明文数据放至加解密设备内存中,等待主机端读取;
所述主机端,还用于向设备端发送读取命令;
所述加解密设备,还用于通过设备端的sata驱动将加密后的密文数据/解密后的明文数据发送至主机端;
所述主机端的ahci驱动接收明文数据并存至主机端内存中,最后主机端将明文数据从主机端内存写回至主机硬盘。
具体地,加解密设备需内置加解密引擎可以采用aes、sm1、sm4等任意对称加密算法对流经的数据进行加解密。密钥管理方面,即可以内部随机产生加密密钥,也可以通过rsa、sm2等非对称算法协商产生密钥,也可以采用任意其他可以接受的密钥管理方式。
当加解密设备插入主机的sata接口后,会被主机识别为一个未初始化的磁盘,主机端软件不需要安装任何驱动即可以访问该设备,实现数据加解密。
其中,sata接口是一种基于行业标准的串行硬件驱动器接口,例如:目前sata3.0接口的最大理论传输速度可以达到6gbps,而且支持ncq指令管理功能。
目前主流的电脑都已经支持sata3.0接口,例如:通过sata3.0接口模拟一个硬盘,然后通过与此硬盘的数据交互,来实现对数据的高效加解密。
本实施例的加解密设备,对外表现即为一个sata硬盘,可以直接安装在电脑的机箱中,安装方面,而且便于隐藏;使用起来也十分简单方便,不需要在主机端安装任何的驱动,只需要编写操作sata硬盘的主机端程序即可实现对各种数据的高效加解密。
本实施例利用加解密设备直接插到主机的sata接口上,在主机端会显示出一个新的硬盘设备,与其他正常的sata设备是并列的关系;而且使用方便,不需要安装在sata主从设备之间,对于支持热插拔的电脑主机,可以随时插上使用或者拔出,加解密操作方便。
本实施例利用加解密设备能够加密多个硬盘内的数据,可将加解密设备插到任意一个主机上,直接就可以使用主机端的应用软件进行操作,不需要安装驱动程序只需要主机端具有串行ata操作程序即可实现对各种数据的高效加解密。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。