计算机硬盘数据加密方法及其装置的制作方法

文档序号:6391695阅读:298来源:国知局
专利名称:计算机硬盘数据加密方法及其装置的制作方法
技术领域
本发明涉及一种计算机硬盘数据加密方法及其装置,属于信息安全加密技术。
背景技术
在计算机硬盘加密芯片方面的研究已经取得了一定的成果,也已经有相应的产品面世,但在这些产品中,IBM公司在中国申请的专利(公告号1294457),“用不可访问的唯一密钥对储存的数据进行加密/解密”。提出通过嵌入于计算机不可拆卸硬件或者从该计算机系统不可拆卸硬件的标识号产生的、对计算机系统而言是唯一的不可复制的密钥来实现对数据的加密和解密。
专利申请号为99224818的文献中,公开了“一种计算机硬盘加密装置”,提出了一种对硬盘数据进行加密的方法。它对硬盘中的数据进行了选择性加密,其实现的方法是通过一个继电器进行的,速度比较慢。
专利申请号为92102980.2“计算机硬盘数据屏蔽保护系统”,和专利申请号为“微机硬盘读写控制器”的两项专利文献中,均提供了一种硬盘数据的保护方法,这种保护方法并没有对硬盘上的数据进行加密存储,而是通过访问控制的方式来防止非授权用户对硬盘数据进行访问的。在这种情况下一旦硬盘被盗,访问控制就失去了作用,硬盘中的重要数据就会轻易地被窃取。
“从此高枕无忧-D-LOCK内置硬盘加密锁实测”是一篇从Internet中检索出的密切相关文献(http://hard.zol.com.cn/labs/2003/0220/55310.shtml)。该文献介绍了台湾某公司生产的D-LOCK内接式硬盘加密卡,该产品可选择DES和3DES两种加密算法来对数据进行加密。

发明内容
为避免现有技术的缺陷,本发明提出了一种计算机硬盘数据加密方法及其装置,支持多种对称加密算法的基于IDE接口的计算机硬盘数据加密装置,在常规计算机的基础上,通过控制芯片和加解密芯片及其外围电路组成的硬盘数据加密装置,对计算机的硬盘和主机之间传输的数据进行加密,从而达到硬盘数据硬加密的目标。因为加解密芯片采用NIST认证的加密算法或者我国自主开发的强加密算法对计算机硬盘的全部数据进行加密,这样即使非法得到硬盘,如果没有密钥,也无法得到硬盘中原始的明文数据;亦由于硬盘上的操作系统也被加密,破解者误认为得到的硬盘是一块没有被格式化的空盘,信息隐藏级别高,更加增强了计算机的保密性。本发明可广泛应用于国防、党政机关、企业与公司、财务管理部门等涉密单位的计算机保密系统中,将常规计算机改装成保密计算机。
本发明的技术方案是,加密系统放置在硬盘与主机之间,对计算机的硬盘和主机之间传输的数据进行加密,其特征在于控制模块对主机和硬盘之间的所有控制信号和应答信号进行接管,从而控制对硬盘实际数据流的加解密进程和加解密操作,是整个系统的神经中枢。控制模块截获主机和硬盘之间原有的控制信号,加解密模块截获主机和硬盘之间的数据流,密钥管理模块用来存储加解密模块所需的密钥;当主机向硬盘写数据时,数据流被加解密模块所截获,控制模块发出控制信号控制加解密模块,从从密钥管理模块中读取加密过程中所需要的密钥,对数据流进行加密处理,加密过程结束后,由控制模块发出写信号,将已加密的数据写入到硬盘中;当主机从硬盘读数据时,数据流被加解密模块所截获,控制模块发出控制信号控制加解密模块,从从密钥管理模块中读取加密过程中所需要的密钥,对数据流进行解密处理,解密过程结束后,由控制模块发出写信号,将已解密的数据送到硬盘中。
所述的加解密模块在控制模块的协调下,对主机和硬盘之间的实际数据流以硬件方式进行加解密。加解密模块由加解密器和两个双端口缓冲器构成,是实现硬盘数据加密的核心部件。数据流进入加解密模块后,由双端口缓冲器1将多组16位的硬盘数据转换为一组64位或128位等适合加解密器中加解密算法的长度,然后由加解密器实现对数据的加解密过程后,经过双端口缓冲器2,将64位或128位加解密器输出数据转化为多组16位的适合硬盘读取的数据。
一种实现上述计算机硬盘数据加密方法的装置,是一种直插型硬盘加密卡,可以直接插入普通桌面电脑的PCI插槽中,但没有定义PCI电气特性。其特征在于该装置包括控制单元,加解密单元、外围电路;控制单元截获由主机或硬盘发出的原始控制信号,控制主机和硬盘之间的读、写等控制信号;当主机给硬盘发送的写信号被控制单元截获时,启动加解密单元的加密过程,并在加密完成后,产生新的写信号发送给硬盘,完成数据的加密写过程;当主机给硬盘发送的读信号被控制单元截获时,启动加解密单元的解密过程,并在解密完成后,产生新的读信号发送给主机,完成数据的解密写过程。
加解密单元截获主机和硬盘之间传输的有效数据,接受控制单元发送的启动信号,对数据总线上流动的有效数据进行加解密操作,加解密完成后,通知控制单元并由控制单元将数据从加解密单元中读出,完成一次加解密过程。
外围电路这一部分包括驱动电路1、驱动电路2、配置电路、电源时钟、同步模块、密钥管理,实现控制、数据信号的信号增强,加电配置信息,时钟信号的产生,控制单元与加解密单元的同步,密钥的管理与读取等相应功能。
所述的控制单元包括控制逻辑器、比较逻辑器、信号产生器和外部驱动电路控制器;控制逻辑器对读/写硬盘寄存器的IDE命令进行计数存储和控制处理,并产生加/解密选择信号、加解密使能信号以及与加解密芯片的交互信号。控制逻辑器是硬盘控制模块的核心部分,它的作用是双重的从主机角度来看,控制逻辑器可模拟硬盘驱动器产生的IDE接口信号,这使得硬盘控制模块看起来就像是一个虚拟的硬盘;从硬盘角度来看,控制逻辑器可模拟主机产生的IDE接口信号,这使得硬盘控制模块看起来就像是一个虚拟的主机。
比较逻辑器IDE接口将通过相应的IDE命令去读取由硬盘制造商在硬盘制造时就固化入硬盘内部的参数,并对这些参数进行过滤。硬盘本身有一些参数是由硬盘制造商在硬盘制造时就固化入硬盘内部的,IDE接口将通过相应的IDE命令去读取这些参数。如果硬盘在读出这些参数时,我们对这些命令进行加密处理,则主机就不能正确对硬盘进行启动和识别,因此对于这类命令必须进行过滤。
信号产生器利用计数器电路,模拟产生主机读写信号和硬盘应答响应信号以及与加解密芯片的交互信号,从而保证硬盘控制信号的时序完整性。
外部驱动电路控制器产生控制外部驱动电路和缓冲电路的使能与方向信号,对经过加密卡后在强度上会有很大的衰减的IDE信号进行加强。
所述的加解密单元包括数据缓存器1、数据缓存器2、16×data移位寄存器组、data×16移位寄存器组、加解密器、密钥读取和控制器以及交互信号产生器,其中data为加解密器每次处理数据的位数。
数据缓存器116位数据进入FPGA后,经过数据缓存器1进行缓存,使16×data位移位寄存器组留有足够的时间完成16位到加解密算法所需长度的转换;数据缓存器2将data×16移位寄存器的转换结果缓存输出,,保持时序逻辑的完整性;16×data移位寄存器组将16位的硬盘数据长度转化为适合特定对称加解密算法的数据长度;
16×data移位寄存器组将特定对称加解密算法的加解密结果转化为适合硬盘读取的16位数据长度;加解密器根据需要,选取加解密芯片实现加解密算法;密钥读取和控制器提供64位的密钥输入总线端口,利用两个交互信号Krdy和Key_Rd,与“密钥生成管理模块”进行通信;交互信号产生器产生主要用来与“控制芯片”进行通信的信号busy和ready。
所述的交互信号Krdy是“密钥生成管理模块”发送给“密钥读取和控制单元”的信号,表示密钥已经生成,可以读出;Key Rd是“数据加解密模块”发送给“密钥生成管理模块”的信号,表示数据加解密模块已准备好,可以读入密钥。
所述的busy和ready两个信号的组合使用规则为busy=0 and ready=0表示加/解密正在进行,busy=0 and ready=1表示加/解密完成,但数据结果还没有被取出,busy=1 and ready=0表示目前加解密模块空闲,busy=1 and ready=1没有定义。
本发明所设计的硬盘加密系统在使用过程中可对包括硬盘分区信息、操作系统在内的所有数据进行加密,且加密速度快。
本发明所设计的硬盘加密系统对存储在硬盘中的所有数据都进行了加密,这样即使硬盘被盗,如果盗窃者得不到加密秘钥,那么依然可以保证机密数据不被窃取。
发明所设计的硬盘加密系统除了可提供DES和3DES两种加密算法外,还可以支持目前最先进的分组加密算法-AES算法,以及用户自主开发的各种对称加密算法。


图1硬盘数据加密系统原理2直插型硬盘加密卡结构框3控制模块内部示意4加解密单元实施例内部示意5加解密单元实施例内部示意6a合法用户访问IDE硬盘
b非法用户访问IDE硬盘
具体实施例方式现结合附图对本发明作进一步描述本实施例是一种直插型硬盘加密卡,其结构图如图2所示。“直插型”是相对“外设设备互连(Peripheral Component Interconnection,PCI)型”而言,这种加密卡可以直接插入普通桌面电脑的PCI插槽中,但没有定义PCI电气特性。
IDE硬盘的40个信号可以划分为四大类硬盘控制信号、地址信号、数据总线和其它信号(上述三种信号外的所有信号)。
硬盘控制信号决定了数据在加密卡中的流动时序。因为要对主机和硬盘之间的数据流进行加解密,所以我们需要截获由主机或硬盘发出的原始控制信号。以加密过程为例当主机给硬盘发送写信号时,这个信号由控制模块截获,控制信号启动加密过程,对要写入硬盘的数据进行加密,加密完成后,由控制模块产生新的写信号发送给硬盘,完成数据的加密写过程。
地址信号决定了主机当前所访问的寄存器的内容。对于加密卡来说,不是所有在主机和硬盘之间传递的数据都需要被加密。对于硬盘的一些固有信息,如磁头数、柱面数、磁盘容量等,这些信息都是在硬盘出厂之前由生产厂家固化在硬盘内部的。如果对这些数据也进行加解密,则会引起硬盘识别错误,因此在控制模块中,要依据地址信号的内容来判断是否应该对主机和硬盘之间当前传递的数据进行加解密操作。
数据总线的宽度为16位,总线上有时传送应用数据,有时则传送如硬盘容量之类的“硬盘控制信息”。因此我们必须用控制芯片对此进行分别处理当数据线中传输的是控制信号时则直通放过,而当数据线中传输的是应用数据时则将它们引入到加解密芯片中进行加密,这就能实现硬盘数据加密。
其它信号的产生与传递不会对硬盘的加解密过程产生影响,因此将其通过驱动电路驱动后直接在主机和硬盘之间传输。
图3为本发明控制单元的内部示意图。控制单元由控制逻辑器、比较逻辑器、信号产生器和外部驱动电路控制器等4个部分组成。这4个部分都是在硬件描述语言(HardwareDescription Language,HDL)编译软件中采用原理图输入(.gdf)的方式编辑,然后组合成一张大型原理图,接着进行编译、前仿真、逻辑综合,最后下载到Altera公司的EP20K200EFC-484-2x及其配置芯片中实现的。
加解密单元由数据缓存器、16×data移位寄存器组、data×16移位寄存器组、加解密器、密钥读取和控制器以及交互信号产生器等6个单元构成。其中,data为加解密器每次处理数据的位数。加解密器可以由已获认证的加密芯片来实现。这6个单元的设计都是在HDL编译软件中编写极高速集成电路硬件描述语言(Very High Speed Integrated Circuits HDL,VHDL)代码程序(.vhd)的方式编辑,然后综合成一个程序文件,接着进行编译、前仿真、逻辑综合,最后下载到Altera公司的EP20K200EFC-484-2x及其配置芯片中实现的。
将加解密单元中的加解密器用Ai-DES-1芯片来替换,可以得到如图4所示的加解密单元的内部示意图。
数据缓存器用VHDL代码设计很简单只需要描述两个74F245(高速八总线收发器)芯片即可,总线收发器的使能信号和方向控制信号是由控制模块产生的。
所述加解密器采用Ai-DES-1芯片时,移位寄存器组(1)采用16×64位移位寄存器组,移位寄存器组(2)采用64×16位移位寄存器组。
DES算法加密明文或解密密文的输入都是64位,而目前PC机硬盘数据总线一次传输16位数据(另外一种短模式是传输8位数据),因此有必要设计一个16×64位移位寄存器组,将硬盘最近连续4次传输的数据进行移位寄存,从而实现16位数据到64位数据的转换。
64×16位移位寄存器组正好同16×64位移位寄存器组的作用互补,因为DES算法加密或解密后的输出结果是64位数据,因此64×16位移位寄存器组的作用是将这64位数据转换成16位数据,并送到数据缓存单元中进行缓存。然后每当有一次读信号IOW,就读取一次数据缓存单元中的16位数据,分4次将这64位输出结果传送到加密卡的驱动电路单元。
当加解密器采用CAST-AES芯片时,16×data移位寄存器组采用16×128位移位寄存器组,data×16移位寄存器组采用128×16位移位寄存器组。
密钥读取和控制器的功能一是提供64位的密钥输入总线端口,二是利用两个交互信号Krdy和Key_Rd,与“密钥生成管理模块”进行通信。Krdy是“密钥生成管理模块”(归属于外围电路)发送给“密钥读取和控制单元”的信号,表示密钥已经生成,可以读出;Key_Rd是“数据加解密模块”发送给“密钥生成管理模块”的信号,表示数据加解密模块已准备好,可以读入密钥。两个信号的交互作用保证了“密钥生成管理模块”和“数据加解密模块”的同步。
“交互信号产生器”和“密钥读取与控制器”有许多类似的地方,不过它产生的信号主要用来与“控制芯片”进行通信,这个单元产生了busy和ready信号,这两个信号将会组合起来使用①busy=0 and ready=0表示加/解密正在进行;②busy=0 and ready=1表示加/解密完成,但数据结果还没有被取出;③busy=1 and ready=0表示目前加解密模块空闲;④busy=1 and ready=1目前还没有定义;通过这两个信号的高低组合,完成了控制芯片与加解密芯片之间的通信。
我们选用这种解决方案和具有可编程逻辑功能的FPGA芯片,使得本发明具有通用性我们只需修改或增加“加解密模块”中算法的VHDL实现代码,同时更改移位寄存器组的大小,就可以支持经过认证的各种加解密算法。例如将加解密器用CAST-AES芯片来替换,可以得到如图5所示的加解密单元的内部示意图。其结构与图4所示结构基本相似。
图2中的其它部分,包括驱动电路1、驱动电路2、配置电路、电源时钟、同步模块、密钥管理等均被统称为外围电路。这6个模块的设计都是在Protel电路设计软件下采用.sch原理图输入方式设计实现的,然后用Candence工具将它们与两个FPGA芯片布线到一个印刷电路板PCB上,以形成最终的硬盘加密卡。
将本发明应用到计算机硬盘和主机之间进行硬盘数据加密●在主板的PCI插槽上插好加密卡后,首先我们对硬盘进行分区和格式化(硬盘和CPU之间使用加密板),然后对硬盘进行数据读写操作,测试结果如图a所示,数据读写完全正确,无误码情况。
●在不插入智能卡或把加密板去掉,硬盘直接和主机进行联接的情况下启动计算机。测试结果如图6所示,无法找到硬盘上的操作系统和分区信息——硬盘数据被加密。
●再次把加密卡插入硬盘和主机之间,并将智能卡正确插入,主机又可以正常启动并能看到所写入硬盘的数据,测试结果与图6完全相同。
实验结果表明,该加密卡的对DES加密算法的加密速率(吞吐量)为200Mb/s,符合计算机硬盘数据加密的要求。
本发明的积极效果在于(1)由于采用FPGA芯片和图1的硬盘加密解决方案图,我们已成功开发出一种直插型硬盘加密卡,对硬盘上的操作系统和用户数据一起被加密,加密算法有DES、3DES、AES以及用户自主开发的对称加密算法。其中,DES算法的密钥为56位,3DES算法的密钥为112位,AES算法的密钥为128位,用户自主开发的对称加密算法的密钥长度按用户要求设定。该加密系统对DES加密算法的加密速率(吞吐量)为200Mb/s,符合计算机硬盘数据加密的要求。
(2)本发明在硬件系统层,即主板与硬盘之间增加了一个硬盘加密卡,该卡可以实现DES、3DES、AES加密算法,或者用户自主开发的对称加密算法,以对硬盘中文件和数据进行加密保护。这种硬件加密方法是在硬件层处理,不占用系统资源,对系统整体影响微乎其微;另一方面,硬盘上的操作系统和用户数据一起被加密,破解者误认为是一块没有被格式化的空盘,信息隐藏级别高。同时,由于操作系统被加密,因此加密卡对操作系统是是透明的,支持多种操作系统下的IDE硬盘数据加密。
(3)在加密卡上有一个IC卡读写口,只有持有合法的IC卡的用户将IC卡插入这个读写口,IC卡上的密钥才能正确解密计算机硬盘上的数据,这种密钥管理方法既可以做到用户不需要费神记忆自己输入的私人密钥,又可以保证密钥的安全性。
这种数据流硬加密体系结构具有良好的可扩展性,它可以升级并应用到不同的数据安全传输领域。可广泛应用于国防、军事、党政机关、企业或公司、财务管理部门等涉密单位对计算机硬盘信息保密要求高的部门之中。
权利要求
1.一种计算机硬盘数据加密方法,加密系统放置在硬盘与主机之间,对计算机的硬盘和主机之间传输的数据进行加密,其特征在于控制模块截获主机和硬盘之间原有的控制信号,加解密模块截获主机和硬盘之间的数据流,密钥管理模块用来存储加解密模块所需的密钥;当主机向硬盘写数据时,数据流被加解密模块所截获,控制模块发出控制信号控制加解密模块,从密钥管理模块中读取加密过程中所需要的密钥,对数据流进行加密处理,加密过程结束后,由控制模块发出写信号,将已加密的数据写入到硬盘中;当主机从硬盘读数据时,数据流被加解密模块所截获,控制模块发出控制信号控制加解密模块,从密钥管理模块中读取解密过程中所需要的密钥,对数据流进行解密处理,解密过程结束后,由控制模块发出写信号,将已解密的数据送到硬盘中。
2.根据权利要求1所述的计算机硬盘数据加密方法,其特征在于所述的加解密模块包括加解密器和两个双端口缓冲器;数据流进入加解密模块后,由双端口缓冲器(1)将多组16位的硬盘数据转换为一组64位或128位等适合加解密器中加解密算法的长度,然后由加解密器实现对数据的加解密过程后,经过双端口缓冲器(2),将64位或128位加解密器输出数据转化为多组16位的适合硬盘读取的数据。
3.一种实现上述计算机硬盘数据加解密方法的装置,其特征在于该装置包括控制单元,加解密单元、外围电路;控制单元截获由主机或硬盘发出的原始控制信号,控制主机和硬盘之间的读、写等控制信号;当主机给硬盘发送的写信号被控制单元截获时,启动加解密单元的加密过程,并在加密完成后,产生新的写信号发送给硬盘,完成数据的加密写过程;当主机给硬盘发送的读信号被控制单元截获时,启动加解密单元的解密过程,并在解密完成后,产生新的读信号发送给主机,完成数据的解密写过程。加解密单元截获主机和硬盘之间传输的有效数据,接受控制单元发送的启动信号,对数据总线上流动的有效数据进行加解密操作,加解密完成后,通知控制单元并由控制单元将数据从加解密单元中读出,完成一次加解密过程。外围电路这一部分包括驱动电路1、驱动电路2、配置电路、电源时钟、同步模块、密钥管理,分别实现控制、数据信号的信号增强,加电配置信息,时钟信号的产生,控制单元与加解密单元的同步,密钥的管理与读取等相应功能。
4.根据权利要求3所述的装置,其特征在于所述的控制单元包括控制逻辑器、比较逻辑器、信号产生器和外部驱动电路控制器;控制逻辑器对读/写硬盘寄存器的IDE命令进行计数存储和控制处理,并产生加/解密选择信号、加解密使能信号以及与加解密芯片的交互信号;比较逻辑器IDE接口将通过相应的IDE命令去读取由硬盘制造商在硬盘制造时就固化入硬盘内部的参数,并对这些参数进行过滤;信号产生器利用计数器电路,模拟产生主机读写信号和硬盘应答响应信号以及与加解密芯片的交互信号,从而保证硬盘控制信号的时序完整性;外部驱动电路控制器产生控制外部驱动电路和缓冲电路的使能及方向信号,对经过加密卡后在强度上会有很大的衰减的IDE信号进行加强。
5.根据权利要求3所述的装置,其特征在于所述的加解密单元包括数据缓存器(1)、数据缓存器(2)、16×data移位寄存器组、data×16移位寄存器组、加解密器、密钥读取和控制器以及交互信号产生器,其中data为加解密器每次处理数据的位数;数据缓存器(1)16位数据进入FPGA后,经过数据缓存器(1)进行缓存,使16×data移位寄存器组留有足够的时间完成16位到加解密算法所需长度的转换;数据缓存器(2)将data×16移位寄存器的转换结果缓存输出,保持时序逻辑的完整性;16×data移位寄存器组将16位的硬盘数据长度转化为适合特定对称加解密算法的数据长度;data×16移位寄存器组将特定对称加解密算法的加解密结果转化为适合硬盘读取的16位数据长度;加解密器根据需要,选取加解密芯片实现加解密算法;密钥读取和控制器提供64位的密钥输入总线端口,利用两个交互信号Krdy和Key_Rd,与“密钥生成管理模块”进行通信;交互信号产生器主要产生用来与“控制芯片”进行通信的信号busy和ready。
6.根据权利要求5所述的装置,其特征在于所述加解密器采用Ai-DES-1芯片时,16×data移位寄存器组采用16×64位移位寄存器组,data×16移位寄存器组采用64×16位移位寄存器组。
7.根据权利要求5所述的装置,其特征在于所述加解密器采用CAST-AES芯片时,16×data移位寄存器组采用16×128位移位寄存器组,data×16移位寄存器组采用128×16位移位寄存器组。
8.根据权利要求5所述的装置,其特征在于所述的交互信号Krdy是“密钥生成管理模块”发送给“密钥读取和控制单元”的信号,表示密钥已经生成,可以读出;Key_Rd是“数据加解密模块”发送给“密钥生成管理模块”的信号,表示数据加解密模块已准备好,可以读入密钥。
9.根据权利要求5所述的装置,其特征在于所述的busy和ready两个信号的组合使用规则为busy=0 and ready=0表示加/解密正在进行,busy=0 and ready=1表示加/解密完成,但数据结果还没有被取出,busy=1 and ready=0表示目前加解密模块空闲,busy=1 and ready=1没有定义。
全文摘要
本发明涉及一种计算机硬盘数据加密方法及其装置,支持多种对称加密算法的基于IDE接口的计算机硬盘数据加密装置,在常规计算机的基础上,通过控制芯片和加解密芯片及其外围电路组成的硬盘数据加密装置,对计算机的硬盘和主机之间传输的数据进行加密,从而达到硬盘数据硬加密的目标。因为加解密芯片采用NIST认证的加密算法或者我国自主开发的强加密算法对计算机硬盘的全部数据进行加密,这样即使非法得到硬盘,如果没有密钥,也无法得到硬盘中原始的明文数据;亦由于硬盘上的操作系统也被加密,破解者误认为得到的硬盘是一块没有被格式化的空盘,信息隐藏级别高,更加增强了计算机的保密性,把常规计算机改造成加密计算机,可广泛应用于涉密单位的计算机保密系统中。
文档编号G06F1/00GK1641522SQ20041002582
公开日2005年7月20日 申请日期2004年1月16日 优先权日2004年1月16日
发明者戴冠中 申请人:西北工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1