CN104156677B - 一种基于fpga的硬盘加密、解密*** - Google Patents
一种基于fpga的硬盘加密、解密*** Download PDFInfo
- Publication number
- CN104156677B CN104156677B CN201410395387.5A CN201410395387A CN104156677B CN 104156677 B CN104156677 B CN 104156677B CN 201410395387 A CN201410395387 A CN 201410395387A CN 104156677 B CN104156677 B CN 104156677B
- Authority
- CN
- China
- Prior art keywords
- iris
- certification
- fingerprint
- data
- fpga
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000000284 extract Substances 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 8
- 230000004913 activation Effects 0.000 claims description 3
- 210000000554 iris Anatomy 0.000 description 50
- 238000000034 method Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 26
- 230000006870 function Effects 0.000 description 14
- 238000006243 chemical reaction Methods 0.000 description 13
- 210000003128 head Anatomy 0.000 description 11
- 239000007787 solid Substances 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000009432 framing Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000005728 strengthening Methods 0.000 description 3
- 241000385223 Villosa iris Species 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 238000005336 cracking Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/32—User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于FPGA的硬盘加密、解密***,加密***包括FPGA和认证输入模块,FPGA包括处理器、密钥解密电路和数据加密电路;认证输入模块用于接收用户的输入认证;处理器用于将输入认证与存储的设定认证进行比较,若输入认证与认证相匹配,则判断输入认证通过认证,否则密钥解密电路和数据加密电路不工作;密钥解密电路用于,当输入认证通过认证后,将存储的密钥进行解密得到明文密钥;数据加密电路用于,当输入认证通过认证后,根据明文密钥将从计算机获得的数据进行加密,得到加密后的数据存储到硬盘。本发明可以提高硬盘的安全性。
Description
技术领域
本发明涉及电子领域,特别是涉及一种基于FPGA的硬盘加密、解密***。
背景技术
随着信息产业的飞速发展,硬盘由于容量大、使用方便,逐渐成为人们存储信息的主要介质,同时也带来了另外一个重大问题——信息安全。对信息加密有两种方式,软件加密和硬件加密。软件加密耗费CPU和内存,且速度慢、安全性不高;硬件加密速度快、安全性高。
专利CN1924835虽然采用了硬件加密的方式,但是密钥生成程序需要在主机上运行,仍然存在软件加密方案的隐患。
专利CN101281503提供了一种完整的硬件加密解决方案,但是其认证方式采用普通的密码认证,安全性能不高;***电路十分复杂,需要很多芯片才能完成加密功能。
发明内容
本发明主要目的在于提出一种基于FPGA的硬盘加密、解密***,以解决上述现有技术存在的***电路复杂,密钥生成方式及认证方式安全性不高的技术问题。
一种基于FPGA的硬盘加密***,包括FPGA和认证输入模块,所述FPGA包括处理器、密钥解密电路和数据加密电路;
所述认证输入模块用于接收用户的输入认证;
所述处理器用于将所述输入认证与存储的设定认证进行比较,若所述输入认证与所述认证相匹配,则判断所述输入认证通过认证,否则所述密钥解密电路和数据加密电路不工作;
所述密钥解密电路用于,当所述输入认证通过认证后,将存储的密钥进行解密得到明文密钥;
所述数据加密电路用于,当所述输入认证通过认证后,根据所述明文密钥将从计算机获得的数据进行加密,得到加密后的数据存储到硬盘。
优选地,所述FPGA还包括逻辑电路,所述逻辑电路用于将从计算机接收到的数据帧进行检测帧类型,并提取帧内信息,若所述帧内信息是命令,则将所述帧内信息发送给硬盘;若所述帧内信息是数据,则将所述帧内信息发送给所述数据加密电路进行加密。
优选地,所述认证输入模块包括虹膜摄像头、指纹传感器和密码输入装置;
所述FPGA包括虹膜接口、指纹接口和密码输入接口,所述虹膜接口、指纹接口和密码输入接口分别与虹膜摄像头、指纹传感器和密码输入装置连接;
所述虹膜摄像头用于获取用户的虹膜图像,所述处理器用于获取所述虹膜图像并提取虹膜图像特征,将所述虹膜图像特征与存储的虹膜特征模板进行比较,若所述虹膜图像特征与存储的虹膜特征模板相匹配,则判断所述虹膜图像通过认证;其中,所述虹膜特征模板通过如下步骤得到:注册时,所述处理器多次获取用户的虹膜图像,并对获取的多个虹膜图像之间进行自匹配,若通过自匹配则选取所述多个虹膜图像中的一个的虹膜图像特征作为所述虹膜特征模板;
所述指纹传感器用于获取用户的指纹图像,所述处理器用于获取所述指纹图像并提取指纹图像特征,将所述指纹图像特征与存储的指纹特征模板进行比较,若所述指纹图像特征与存储的指纹特征模板相匹配,则判断所述指纹图像通过认证;其中,所述指纹特征模板通过如下步骤得到:注册时,所述处理器多次获取用户的指纹图像,并对获取的多个指纹图像之间进行自匹配,若通过自匹配则选取所述多个指纹图像中的一个的指纹图像特征作为所述指纹特征模板;
所述密码输入装置用于获取密码口令,所述处理器用于将所述密码口令与存储的设定密码口令进行比较,若所述密码口令与设定密码口令相匹配,则判断所述密码口令通过认证;其中,所述设定密码口令通过如下步骤得到:注册时将用户输入的密码口令作为设定密码口令;
若所述认证输入模块没有通过认证,所述硬盘不允许进行读写数据;
所述虹膜图像通过认证,用户可以获得最高的硬盘读写操作权限;
所述指纹图像通过认证,用户可以获得较高的硬盘读写操作权限;
所述密码口令通过认证,用户可以获得最低的硬盘读写操作权限;
所述指纹接口和密码输入接口是分时复用的。
优选地,所述逻辑电路是SATA逻辑电路,还用于将从计算机接收到的数据帧进行解扰、CRC校验、去除起始帧和结束帧。
优选地,所述FPGA通过第一高速串行收发器接收计算机的数据,通过第二高速串行收发器将所述加密后的数据发送到硬盘。
本发明还提供了一种基于FPGA的硬盘解密***,包括FPGA和认证输入模块,所述FPGA包括处理器、密钥解密电路和数据解密电路;
所述认证输入模块用于接收用户的输入认证;
所述处理器用于将所述输入认证与存储的设定认证进行比较,若所述输入认证与所述认证相匹配,则判断所述输入认证通过认证,否则所述密钥解密电路和数据解密电路不工作;
所述密钥解密电路用于,当所述输入认证通过认证后,将存储的密钥进行解密得到明文密钥;
所述数据解密电路用于,当所述输入认证通过认证后,根据所述明文密钥将从硬盘获得的数据进行解密,得到解密后的数据发送到计算机。
优选地,所述FPGA还包括逻辑电路,所述逻辑电路用于将从硬盘接收到的数据帧进行检测帧类型,并提取帧内信息,若所述帧内信息是命令,则将所述帧内信息发送给计算机;若所述帧内信息是数据,则将所述帧内信息发送给所述数据解密电路进行解密。
优选地,所述认证输入模块包括虹膜摄像头、指纹传感器和密码输入装置;
所述FPGA包括虹膜接口、指纹接口和密码输入接口,所述虹膜接口、指纹接口和密码输入接口分别与虹膜摄像头、指纹传感器和密码输入装置连接;
所述虹膜摄像头用于获取用户的虹膜图像,所述处理器用于获取所述虹膜图像并提取虹膜图像特征,将所述虹膜图像特征与存储的虹膜特征模板进行比较,若所述虹膜图像特征与存储的虹膜特征模板相匹配,则判断所述虹膜图像通过认证;其中,所述虹膜特征模板通过如下步骤得到:注册时,所述处理器多次获取用户的虹膜图像,并对获取的多个虹膜图像之间进行自匹配,若通过自匹配则选取所述多个虹膜图像中的一个的虹膜图像特征作为所述虹膜特征模板;
所述指纹传感器用于获取用户的指纹图像,所述处理器用于获取所述指纹图像并提取指纹图像特征,将所述指纹图像特征与存储的指纹特征模板进行比较,若所述指纹图像特征与存储的指纹特征模板相匹配,则判断所述指纹图像通过认证;其中,所述指纹特征模板通过如下步骤得到:注册时,所述处理器多次获取用户的指纹图像,并对获取的多个指纹图像之间进行自匹配,若通过自匹配则选取所述多个指纹图像中的一个的指纹图像特征作为所述指纹特征模板;
所述密码输入装置用于获取密码口令,所述处理器用于将所述密码口令与存储的设定密码口令进行比较,若所述密码口令与设定密码口令相匹配,则判断所述密码口令通过认证;其中,所述设定密码口令通过如下步骤得到:注册时将用户输入的密码口令作为设定密码口令;
若所述认证输入模块没有通过认证,所述硬盘不允许进行读写数据;
所述虹膜图像通过认证,用户可以获得最高的硬盘读写操作权限;
所述指纹图像通过认证,用户可以获得较高的硬盘读写操作权限;
所述密码口令通过认证,用户可以获得最低的硬盘读写操作权限;
所述指纹接口和密码输入接口是分时复用的。
优选地,所述逻辑电路是SATA逻辑电路,还用于将从硬盘接收到的数据帧进行解扰、CRC校验、去除起始帧和结束帧。
优选地,所述FPGA通过第一高速串行收发器向计算机发送数据,通过第二高速串行收发器接收硬盘的数据。
优选地,硬盘可以是固态硬盘。
本发明所公开的加密、解密***绝大部分功能都集成在单片FPGA中,大大简化了***电路,缩小了整个***的体积。
优选方案中,密钥生成方式以及认证方式的改进,都提高了***的安全性。
另一优选方案中,本***还可以利用***更新模块随时更新,从而具有进一步提高整个***的安全性。
附图说明
图1是本发明具体实施方式的基于FPGA的硬盘加密/解密框图;
图2是本发明具体实施方式的FPGA内部电路框图;
图3是本发明具体实施方式的加解密流程图;
图4是本发明具体实施方式的SATA数据流加解密流程图;
图5是本发明具体实施方式的AES256加密流程图;
图6是本发明具体实施方式的AES256解密流程图。
101 SATA_D插座
102 SATA_H插座
103 FPGA芯片
104 USB设备
105 只读存储器
106 虹膜摄像头
107 指纹传感器
201 第一高速串行收发器
202 USB接口
203 加解密电路
204 SATA逻辑控制器
205 第二高速串行收发器
206 指纹接口
207 ARM处理器
208 虹膜接口
具体实施方式
下面结合具体实施方式并对照附图对本发明作进一步详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
参照以下附图,将描述非限制性和非排他性的实施例,其中相同的附图标记表示相同的部件,除非另外特别说明。
实施例一:
如图1和2所示,一种基于FPGA的硬盘加密***,用于将从主机(计算机)获取的数据进行加密,并将加密后的数据存储到硬盘,包括FPGA和认证输入模块,FPGA包括处理器、密钥解密电路和数据加密电路。,密钥解密电路和数据加密电路通过IP核或HDL硬件编程语言描述;基于FPGA的硬盘加密***还可以包括只读存储器ROM,用于存储***工作相关的数据或称算法。处理器可以是高性能的ARM处理器,ARM处理器的主要职责有两个:一是发挥主控作用,协调整个***的工作,使***发挥最大的性能;二是用于***的认证。
所述认证输入模块用于接收用户的输入认证;
所述处理器用于将所述输入认证与存储的设定认证进行比较,若所述输入认证与所述认证相匹配,则判断所述输入认证通过认证,否则所述密钥解密电路和数据加密电路不工作;
所述密钥解密电路用于,当所述输入认证通过认证后,将存储的密钥进行解密得到明文密钥;
所述数据加密电路用于,当所述输入认证通过认证后,根据所述明文密钥将从计算机获得的数据进行加密,得到加密后的数据存储到硬盘。
优选地,本发明基于Xilinx Virtex72000T FPGA实现,具体如下:
如果认证通过,则解密***中的Encrypted Encryption Key(加密状态的密钥);如果认证失败,***无法正常工作。一旦Encrypted Encryption Key被解密为ClearEncryption Key(解密状态的密钥),则该密钥可用于本***,对固态硬盘和PC之间的数据流进行正常的加密。
在本发明的一个实施例中,认证输入模块包括三个认证子模块,分别是:虹膜虹膜摄像头、指纹传感器和密码输入装置,***上电后由用户输入上述三种认证方式的一种,***根据用户输入的认证方式进行相应的识别。不同的认证有不同的权限:虹膜认证的权限最高,可以行使全部的读写功能;指纹认证其次,可以行使全部的读功能和部分写功能,如可以对固态硬盘添加新数据,但是不能对原有的数据进行编辑、复制和更改等操作;口令认证的安全等级最低,通过认证的用户只能行使只读的权限。通过对三种认证模式优先级的限制可以实现赋予不同用户不同权限,从而提高认证过程的安全性和可靠性,另外不同权限自动对应对硬盘数据的不同操作,同时也提高了认证过程后续操作的方便性。对三种认证模式具体说明,如下:
本设备上电,虹膜摄像头(Iris Camera)107负责采集当前虹膜图像,然后通过虹膜接口(Iris IF)208送入ARM处理器207中,ARM处理器207负责提取当前图像特征。在注册阶段,采集三次虹膜,进行自匹配,如匹配通过,则将其中一个虹膜特征模板存入只读存储器(Read Only Memory,ROM)105中;在认证阶段,采集用户虹膜,ARM处理器207对该虹膜进行特征提取,并与注册时的模板匹配,匹配通过,由FPGA芯片103完成加密密钥初始化及加密解密过程,匹配不通过,认证结束,硬盘不允许数据读写。
本设备上电,指纹传感器(Fingerprint Sensor)108负责采集当前指纹图像,然后通过指纹接口(Fingerprint IF)206送入ARM处理器207中,ARM处理器207负责提取当前图像特征。在注册阶段,输入三次指纹,进行自匹配,如匹配通过,则将其中一个指纹特征模板存入只读存储器105中;在认证阶段,用户输入指纹,ARM处理器207对该指纹进行特征提取,并与注册时的模板匹配,匹配通过,由FPGA芯片103完成加密密钥初始化及加密解密过程,匹配不通过,认证结束,硬盘不允许数据读写。
本设备上电,通过上位机GUI界面输入密码口令,然后通过指纹接口206送入ARM处理器207中,密码口令接口和指纹接口是分时复用的。在注册阶段,用户输入密码口令,并将该口令存储到只读存储器105中;认证阶段,用户输入口令,ARM处理器207将输入的口令和注册时的口令匹配,匹配通过,由FPGA芯片103完成加密密钥初始化及加密解密过程,匹配不通过,认证结束,硬盘不允许数据读写。
另外,为加强***的安全性,更优选地,本***所用密钥不在***制作时预先制订,而是在***用户注册时制订属于本用户和***的非统一数据加密、解密密钥,以此使每个***的加密、解密密钥都是独特的,从而防止通过密钥穷举破解***并获取***的存储内容。
在本发明的一个实施例中,FPGA包括第一高速串行收发器201、第二高速串行收发器205,第一高速串行收发器201和第二高速串行收发器205可利用FPGA芯片103内置的GTX高速串行收发器,配置成SATA接口物理层,直接与硬盘和PC互连,省去了专门的SATA芯片,且GTX还提供了动态重配置接口,完全可以使本接口兼容SATA3、SATA2、SATA1通讯速率,满足多种设备的需求。与第一高速串行收发器201和第二高速串行收发器205相对应的,在本***的FPGA芯片103外还有两个插座:SATA_D插座101和SATA_H插座102,SATA_D插座101与硬盘接口相连,SATA_H插座102与PC接口相连,通过这两个接口完成与外部设备的数据交换,内部数据交换是通过FPGA芯片103的第一高速串行收发器201和第二高速串行收发器205完成。
SATA逻辑电路利用FPGA芯片103内部的逻辑资源,配置成SATA通讯协议中的链路层、传输层。传输层只需要把需要的传输数据封装成标准的帧格式,并把接收到的帧解除封装,协议把总共需要传输的命令和数据分成了八种帧格式,分别用不同的帧号表示。在SATA逻辑电路中主要实现着两层的功能。本模块接收并发送物理层的信号。对于接收到的信号,先解扰、CRC校验,然后去除SOF(起始帧)/EOF(结束帧),最后提取出帧内信息;如果帧内信息是命令,则直接将命令发送给硬盘,例如获取硬盘的地址等命令,如果出帧内信息是数据则送往加密电路进行加密;然后根据SATA协议,重新封装成帧格式,添加SOF/EOF,计算CRC,进行加扰,最后发送出去。
在本发明的一个实施例中,加密电路中的算法采用AES256算法,具有高可靠性,由于加密完全由硬件完成,不影响正常的通讯速率。AES加密算法即密码学中的高级加密标准(Advanced Encryption Standard,AES),AES运算分组长度固定,数据块的长度为128位,密钥的长度可以为128位、192位、256位,密钥越长加密强度越大,加密算法运算的轮数越多,加密的数据越安全。
请参看附图3所示为本发明具体实施方式的加解密流程图,附图4所示为本发明具体实施方式的SATA数据流加解密流程图。在这里用到了物理层、链路层和传输层。
物理层发送器可提供一个100欧姆的差分匹配终端;可为链路层提供40路的输入;接收器提供100欧姆的差分匹配终端;从串行码流中提取数据或时钟;对串行码流解串;可检测K28.5逗号字符;提供确定的OOB信号发送和检测机制;可使用OOB信号协议初始化SATA接口,并使用OOB序列进行速率匹配。
当传输层请求发送帧时,链路层实现如下功能:与对等链路层协商,避免主机和设备同时请求发送数据;从传输层接收数据;计算数据CRC,进行扰码、编码;添加帧头、帧尾等信息;发送帧,进行流量控制;接收对等链路层的帧接收信息,向传输层报告传输完成或链路层、物理层错误。当物理层接收到帧时,实现如下功能:移除帧头、帧尾和校验信息;对数据进行解码、解扰、计算CRC;向对等链路层响应帧接收信息,向传输层报告接收正确或链路层、物理层错误。
当需要发送FIS帧时,传输层完成以下功能:根据FIS请求组建帧;将FIS按照正确的顺序摆放;接收链路层的帧传输请求,将FIS发往链路层;接收来自链路层的帧应答;对上层请求发送的帧,返回完成或错误状态。当接收到FIS时,传输层提供以下功能:接收来自FIS的帧;检测FIS类型;根据FIS类型分开FIS内容;对于上层请求发送的帧,返回完成或错误状态。
下面对加密过程简要叙述:数据流通过SATA_H插座102、第一高速串行收发器201,完成数据流的串并转换、8B/10B解码、时钟恢复、上电初始化,变成SATA协议中标准的32位并行数据;之后送入SATA逻辑电路,根据ATA指令集,对于接收到的数据,先解扰、CRC校验,然后去除SOF/EOF;最后检测帧类型,提取出帧内信息。如果帧内信息是命令直接发送给硬盘,如果帧内信息是数据则送往加解密电路中。
在加解密电路中,加密过程经过S盒变换SubBytes、行移位变换ShiftRows、列混淆变换MixColumns和轮密钥加变换AddRoundKey,过程如图5所示为本发明具体实施方式的AES256加密流程图。SubBytes变换是AES算法中唯一的非线性字节变换码,起到混乱的作用,决定AES算法安全性的关键,S盒变换处理单位为字节;ShiftRows变换是AES算法的线性运算,它对中间状态进行循环右移位操作,中间状态矩阵行数移位量与密钥长度有关;MixColumns变换是AES算法的线性变换,处理单位为状态矩阵的一列;AddRoundKey变换使用中间状态与轮密钥进行异或运算,数据块的长度与轮密钥的长度相同。经过这四个变换,从PC上写入的明文转变成了密文。
已加密数据被送回到数据交换模块中的SATA逻辑电路,根据SATA协议,对加密过的数据重新封装成帧格式,添加SOF/EOF,计算CRC,进行加扰;然后数据送入第二高速串行收发器205,完成数据流的8B/10B编码、串并转换,变成串行数据流之后送入SATA_D插座101,并发送到硬盘上。
经过加密过程,存储在PC上的明文被转换成密文写入到硬盘上。
下面对解密过程简要叙述:数据流通过SATA_D插座101、第二高速串行收发器205,完成数据流的串并转换、8B/10B解码、时钟恢复、上电初始化,变成SATA协议中标准的32位并行数据;之后送入SATA逻辑器,根据ATA指令集,对于接收到的数据,先解扰、CRC校验,然后去除SOF/EOF;最后检测帧类型,提取出帧内信息;如果帧内信息是命令直接发送给计算机,如果帧内信息是数据则送往加解密电路中,进行解密。
解密算法是加密算法的逆过程,算法结构与加密算法相似。在加解密电路中,解密过程经过逆S盒变换InvSubBytes、逆行移位变换InvShiftRows、逆列混淆变换InvMixColumns和轮密钥加变换AddRoundKey,过程如图6所示为本发明具体实施方式的AES256解密流程图。InvShiftRows是ShiftRows的逆过程,对中间状态进行行移位;InvSubBytes是SubBytes逆过程,先对字节的值进行逆仿射变换,然后在进行乘法逆替换;AddRoundKey使用中间状态和轮密钥进行异或运算;InvMixColumns是MixColumns的逆过程,处理单位为状态矩阵的一列。经过解密过程,从硬盘上读出的密文转变成明文。
已解密数据被送回到数据交换模块中的SATA逻辑电路,根据SATA协议,对解密过的数据重新封装成帧格式,添加SOF/EOF,计算CRC,进行加扰;然后数据送入第一高速串行收发器201,完成数据流的8B/10B编码、串并转换,变成串行数据流之后送入SATA_H插座102。
经过解密过程,存储在硬盘上的密文被转换成明文读出到PC上。
本发明所公开的加解密***绝大部分功能都集成在单片FPGA中,大大简化了***电路,缩小了整个***的体积;另外,认证时采用三种优先级不同的认证方式,可以赋予不同用户不同权限,从而提高认证过程的安全性和可靠性,另外不同权限自动对应对硬盘数据的不同操作,同时也提高了认证过程后续操作的方便性;再者,本***所用密钥不在***制作时预先制订,而是在***用户注册时制订属于本用户和***的独一无二的加解密密钥,进一步加强***的安全性。
实施例二:
信息时代技术飞速发展,电子产品的更新日新月异,加解密算法、指纹识别等软件需要不断更新,以适应新的需求和挑战,从而得到最高的安全性,所以加解密***还需要实时更新。本***还包括***更新模块,***更新模块也集成在FPGA芯片103中实现,通过***更新模块更新最新的固件而不用更换整个硬件***,大大节省了成本。在本发明的一个实施例中,***更新模块采用USB接口202,USB接口202用于整个***的固件更新。此接口也无需专用的USB接口芯片,FPGA中有丰富的逻辑资源,应用HDL硬件编程语言完全可以在内部实现USB功能。
通过标准的USB接口202完成设备固件的更新,过程如下:
(1)PC从USB设备104获取配置信息,并设置设备的配置值。此阶段的数据交换包含了SETUP令牌封包、紧随其后的数据封包以及ACK握手封包;
(2)数据传输阶段用来传输主机与设备之间的数据,也就是固件信息的更新,即将最新的固件从PC中通过USB接口202更新到只读存储器105中。对每一个数据信息包而言,主机将会送出一个OUT令牌信息包,表示数据要送出去。紧接着,主机将数据通过数据信息包传递给USB设备104。如果数据已经正确接收,设备送出ACK令牌信息包;
(3)当固件已经成功更新到只读存储器105中,主机会送出IN令牌封包,然后设备送出设备完成状态阶段的0长度的数据封包,主机再做出相应的动作。
至此,这个固件更新过程结束。
通过标准的USB接口实时更新最新的固件而不用更换整个硬件***,大大节省了成本,提高整个设备的安全性,以获得最新的客户体验。
实施例三:
本发明实施例还提供了一种基于FPGA的固态硬盘加解密方法,用于对主机和硬盘之间传输的数据进行加解密,***所涉及的认证、数据交换和加解密全部都集成在一块FPGA芯片上完成,各模块通过IP核或HDL硬件编程语言描述。具体如下:
S101、认证,对用户进行权限认证,若所述权限认证通过,解密密钥用于加解使用;
如果认证通过,则解密***中的Encrypted Encryption Key(加密状态的密钥);如果认证失败,***无法正常工作。一旦Encrypted Encryption Key被解密为ClearEncryption Key(解密状态的密钥),则该密钥可用于本***,对固态硬盘和PC之间的数据流进行正常的加解密。
在本发明的一个实施例中,认证包括三种认证方式,分别是:虹膜认证、指纹认证和口令认证,***上电后由用户输入上述三种认证方式的一种,***根据用户输入的认证方式进行相应的识别。不同的认证有不同的权限:虹膜认证的权限最高,可以行使全部的读写功能;指纹认证其次,可以行使全部的读功能和部分写功能,如可以对固态硬盘添加新数据,但是不能对原有的数据进行编辑、复制和更改等操作;口令认证的安全等级最低,通过认证的用户只能行使只读的权限。通过对三种认证模式优先级的限制可以实现赋予不同用户不同权限,从而提高认证过程的安全性和可靠性,另外不同权限自动对应对硬盘数据的不同操作,同时也提高了认证过程后续操作的方便性。
另外,为加强***的安全性,更优选地,本***所用密钥不在***制作时预先制订,而是在***用户注册时制订属于本用户和***的非统一数据加解密密钥,以此使每个***的加解密密钥都是独特的,从而防止通过密钥穷举破解***并获取***的存储内容。
S102、数据交换,用于所述主机和所述硬盘之间交换数据;
PC主机和硬盘之间的数据通过SATA协议进行交换,SATA协议是以连续串行的方式传送数据。本步骤就是将PC机和硬盘之间交换的数据按照SATA协议规定的格式进行串并行转换,对于待加解密的信号,进行解扰、CRC校验、去除SOF/EOF一系列操作,最后提取出帧内信息,对于已加解密的信号,重新封装成帧格式,进行添加SOF/EOF、计算CRC、加扰一系列操作,最后发送出去。
S103、加解密,对所述交换数据进行加解密;
在本发明的一个实施例中,加解算法采用AES256算法。
作为一种更优选的实施方式,本方法还包括***更新,***更新也集成在FPGA芯片103中实现,应用HDL硬件编程语言在FPGA芯片内部实现。一个实施例中,***更新采用USB接口的方式实现,通过USB接口更新最新的固件而不用更换整个硬件***,大大节省了成本。
需要说明的是,上述各步骤之间的信息交互、执行过程等内容,由于与本发明产品实施例基于同一构思,其带来的技术效果与本发明产品实施例相同,具体内容可参见本发明产品实施例中的叙述,此处不再赘述。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明由所提交的权利要求书确定的专利保护范围。
Claims (4)
1.一种基于FPGA的硬盘加密***,其特征是,包括FPGA和认证输入模块,所述FPGA包括处理器、密钥解密电路和数据加密电路;
所述认证输入模块用于接收用户的输入认证;
所述处理器用于将所述输入认证与存储的设定认证进行比较,若所述输入认证与所述认证相匹配,则判断所述输入认证通过认证,否则所述密钥解密电路和数据加密电路不工作;
所述密钥解密电路用于,当所述输入认证通过认证后,将存储的密钥进行解密得到明文密钥;
所述数据加密电路用于,当所述输入认证通过认证后,根据所述明文密钥将从计算机获得的数据进行加密,得到加密后的数据存储到硬盘;
所述FPGA还包括逻辑电路,所述逻辑电路用于将从计算机接收到的数据帧进行检测帧类型,并提取帧内信息,若所述帧内信息是命令,则将所述帧内信息发送给硬盘;若所述帧内信息是数据,则将所述帧内信息发送给所述数据加密电路进行加密;
所述认证输入模块包括虹膜摄像头、指纹传感器;
所述FPGA包括虹膜接口、指纹接口,所述虹膜接口、指纹接口分别与虹膜摄像头、指纹传感器连接;
所述虹膜摄像头用于获取用户的虹膜图像,所述处理器用于获取所述虹膜图像并提取虹膜图像特征,将所述虹膜图像特征与存储的虹膜特征模板进行比较,若所述虹膜图像特征与存储的虹膜特征模板相匹配,则判断所述虹膜图像通过认证;其中,所述虹膜特征模板通过如下步骤得到:注册时,所述处理器多次获取用户的虹膜图像,并对获取的多个虹膜图像之间进行自匹配,若通过自匹配则选取所述多个虹膜图像中的一个的虹膜图像特征作为所述虹膜特征模板;
所述指纹传感器用于获取用户的指纹图像,所述处理器用于获取所述指纹图像并提取指纹图像特征,将所述指纹图像特征与存储的指纹特征模板进行比较,若所述指纹图像特征与存储的指纹特征模板相匹配,则判断所述指纹图像通过认证;其中,所述指纹特征模板通过如下步骤得到:注册时,所述处理器多次获取用户的指纹图像,并对获取的多个指纹图像之间进行自匹配,若通过自匹配则选取所述多个指纹图像中的一个的指纹图像特征作为所述指纹特征模板;
若所述认证输入模块没有通过认证,所述硬盘不允许进行读写数据;
所述虹膜图像通过认证,用户可以获得最高的硬盘读写操作权限;
所述指纹图像通过认证,用户可以获得较高的硬盘读写操作权限;
所述FPGA通过第一高速串行收发器、第二高速串行收发器配置成SATA接口物理层,直接与硬盘和PC互连。
2.如权利要求1所述的基于FPGA的硬盘加密***,其特征是,所述逻辑电路是SATA逻辑电路,还用于将从计算机接收到的数据帧进行解扰、CRC校验、去除起始帧和结束帧。
3.一种基于FPGA的硬盘解密***,其特征是,包括FPGA和认证输入模块,所述FPGA包括处理器、密钥解密电路和数据解密电路;
所述认证输入模块用于接收用户的输入认证;
所述处理器用于将所述输入认证与存储的设定认证进行比较,若所述输入认证与所述认证相匹配,则判断所述输入认证通过认证,否则所述密钥解密电路和数据解密电路不工作;
所述密钥解密电路用于,当所述输入认证通过认证后,将存储的密钥进行解密得到明文密钥;
所述数据解密电路用于,当所述输入认证通过认证后,根据所述明文密钥将从硬盘获得的数据进行解密,得到解密后的数据发送到计算机;
所述FPGA还包括逻辑电路,所述逻辑电路用于将从硬盘接收到的数据帧进行检测帧类型,并提取帧内信息,若所述帧内信息是命令,则将所述帧内信息发送给计算机;若所述帧内信息是数据,则将所述帧内信息发送给所述数据解密电路进行解密;
所述认证输入模块包括虹膜摄像头、指纹传感器;
所述FPGA包括虹膜接口、指纹接口,所述虹膜接口、指纹接口分别与虹膜摄像头、指纹传感器连接;
所述虹膜摄像头用于获取用户的虹膜图像,所述处理器用于获取所述虹膜图像并提取虹膜图像特征,将所述虹膜图像特征与存储的虹膜特征模板进行比较,若所述虹膜图像特征与存储的虹膜特征模板相匹配,则判断所述虹膜图像通过认证;其中,所述虹膜特征模板通过如下步骤得到:注册时,所述处理器多次获取用户的虹膜图像,并对获取的多个虹膜图像之间进行自匹配,若通过自匹配则选取所述多个虹膜图像中的一个的虹膜图像特征作为所述虹膜特征模板;
所述指纹传感器用于获取用户的指纹图像,所述处理器用于获取所述指纹图像并提取指纹图像特征,将所述指纹图像特征与存储的指纹特征模板进行比较,若所述指纹图像特征与存储的指纹特征模板相匹配,则判断所述指纹图像通过认证;其中,所述指纹特征模板通过如下步骤得到:注册时,所述处理器多次获取用户的指纹图像,并对获取的多个指纹图像之间进行自匹配,若通过自匹配则选取所述多个指纹图像中的一个的指纹图像特征作为所述指纹特征模板;
若所述认证输入模块没有通过认证,所述硬盘不允许进行读写数据;
所述虹膜图像通过认证,用户可以获得最高的硬盘读写操作权限;
所述指纹图像通过认证,用户可以获得较高的硬盘读写操作权限;
所述FPGA通过第一高速串行收发器、第二高速串行收发器配置成SATA接口物理层,直接与硬盘和PC互连。
4.如权利要求3所述的基于FPGA的硬盘解密***,其特征是,所述逻辑电路是SATA逻辑电路,还用于将从硬盘接收到的数据帧进行解扰、CRC校验、去除起始帧和结束帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410395387.5A CN104156677B (zh) | 2014-08-12 | 2014-08-12 | 一种基于fpga的硬盘加密、解密*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410395387.5A CN104156677B (zh) | 2014-08-12 | 2014-08-12 | 一种基于fpga的硬盘加密、解密*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104156677A CN104156677A (zh) | 2014-11-19 |
CN104156677B true CN104156677B (zh) | 2017-02-15 |
Family
ID=51882174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410395387.5A Expired - Fee Related CN104156677B (zh) | 2014-08-12 | 2014-08-12 | 一种基于fpga的硬盘加密、解密*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104156677B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104486069A (zh) * | 2014-12-23 | 2015-04-01 | 天津光电通信技术有限公司 | 一种基于fpga实现的gost加解密设备及其方法 |
CN105068955B (zh) * | 2015-07-20 | 2018-04-03 | 北京广利核***工程有限公司 | 一种局部总线结构及数据交互方法 |
CN105205416A (zh) * | 2015-08-25 | 2015-12-30 | 浪潮集团有限公司 | 一种移动硬盘密码模块 |
EP3412016B1 (en) * | 2016-02-01 | 2020-01-22 | Qualcomm Incorporated | Scalable, high-efficiency, high-speed serialized interconnect |
CN106961323B (zh) * | 2017-05-18 | 2022-12-09 | 桀安信息安全技术(上海)有限公司 | 一种密钥解密板卡、装置、***及处理方法 |
CN107704843A (zh) * | 2017-10-26 | 2018-02-16 | 上海爱优威软件开发有限公司 | 一种单眼虹膜验证方法及*** |
CN109190416A (zh) * | 2018-08-07 | 2019-01-11 | 山东华芯半导体有限公司 | 一种优盘数据加密摆渡机及摆渡方法 |
CN112149167B (zh) * | 2020-09-29 | 2024-03-15 | 北京计算机技术及应用研究所 | 一种基于主从***的数据存储加密方法及装置 |
CN112699356A (zh) * | 2020-12-28 | 2021-04-23 | 北京工商大学 | 一种计算机机械硬盘用加密*** |
CN117349815A (zh) * | 2023-10-18 | 2024-01-05 | 汇钜存储科技(东莞)有限公司 | 固态硬盘及介质访问管理*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101687B (zh) * | 2006-07-05 | 2010-09-01 | 山谷科技有限责任公司 | 用生物特征进行身份认证的方法、设备、服务器和*** |
CN101202619A (zh) * | 2006-12-15 | 2008-06-18 | 阿里巴巴公司 | 一种口令认证方法及认证装置 |
WO2009015384A1 (en) * | 2007-07-26 | 2009-01-29 | University Of Rochester | Nucleic acid binding compounds and methods of use |
CN101582109A (zh) * | 2009-06-10 | 2009-11-18 | 成都市华为赛门铁克科技有限公司 | 数据加密方法及装置、数据解密方法及装置、固态硬盘 |
CN203720848U (zh) * | 2014-03-07 | 2014-07-16 | 山东超越数控电子有限公司 | 一种基于aes算法的硬盘加密设备 |
CN103870738A (zh) * | 2014-04-10 | 2014-06-18 | 宫雅卓 | 基于虹膜识别的可穿戴式身份认证装置 |
-
2014
- 2014-08-12 CN CN201410395387.5A patent/CN104156677B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN104156677A (zh) | 2014-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104156677B (zh) | 一种基于fpga的硬盘加密、解密*** | |
US12051064B2 (en) | Transaction messaging | |
CN106527673A (zh) | 绑定可穿戴设备的方法和装置、电子支付方法和装置 | |
US10943020B2 (en) | Data communication system with hierarchical bus encryption system | |
CN108075882A (zh) | 密码卡及其加解密方法 | |
CN108345806A (zh) | 一种硬件加密卡和加密方法 | |
CN104902138B (zh) | 加密/解密***及其控制方法 | |
CN112329038B (zh) | 一种基于usb接口的数据加密控制***及芯片 | |
CN206712810U (zh) | 一种基于pci‑e总线的高速密码卡 | |
US20110016310A1 (en) | Secure serial interface with trusted platform module | |
CN102081713B (zh) | 一种用于防止数据泄密的办公*** | |
CN101561751A (zh) | 一种usb加解密桥接芯片 | |
US8275129B2 (en) | Data scrambling, descrambling, and data processing method, and controller and storage system using the same | |
CN104182674A (zh) | 一种固态硬盘的保护装置 | |
CN103034801A (zh) | 基于模式的安全微控制器 | |
US7805611B1 (en) | Method for secure communication from chip card and system for performing the same | |
JP5704951B2 (ja) | 情報処理装置、情報処理方法及びコンピュータプログラム | |
JP2003018151A (ja) | 外部記憶装置とシステム装置との間でなされる認証方法、認証システム、コンピュータ装置、システム装置、および外部記憶装置 | |
CN105516210B (zh) | 终端安全接入认证的***及方法 | |
CN101883357A (zh) | 一种终端与智能卡之间的相互认证方法、装置及*** | |
US11797717B2 (en) | Bus encryption for non-volatile memories | |
KR101043255B1 (ko) | Usb 허브 보안 장치 및 이를 이용한 데이터 보안 방법 | |
CN115913577B (zh) | 一种基于轻量级spongent哈希算法的抗物理克隆设备认证***及方法 | |
KR101070766B1 (ko) | 메모리 기능과 보안토큰 기능을 구비한 usb 복합장치 | |
CN113158203B (zh) | 一种soc芯片、电路和soc芯片的外部数据读写方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170215 |