一种usb外设的制作方法

文档序号:6500700阅读:301来源:国知局
一种usb外设的制作方法
【专利摘要】本发明公开了一种USB外设,该USB外设与主机相连,且包括:与主机的USB插座相对应的USB插头;USB从控制器,连接于USB插头,且用于在主机与USB外设之间实现数据转换处理;FPGA,连接于USB从控制器,且用于根据自身的硬件标识对主机所传送的数据进行加/解密,并将加/解密后的数据传送至主机。实施本发明的技术方案,FPGA在对主机所传送的数据进行加/解密时,使用了自身的硬件标识作为密码的一部分,而FPGA的硬件标识具有唯一性,不可复制,所以,即使非法人员破解了加/解密算法,由于无法复制FPGA的硬件标识,依然无法获取加/解密信息,因此,确保了主机的信息安全。而且,使用FPGA来进行数据的加/解密运算,处理数据速度快。
【专利说明】—种USB外设
【技术领域】
[0001]本发明涉及USB应用领域,尤其是涉及一种USB外设。
【背景技术】
[0002]目前,USB外设在作为USBkey使用时,通过对认证信息源进行加密可用于启动带有身份认证的装置。另外,USB外设在作为加密外设使用时,可对电脑主机中的任何文件进行加密或解密。但是,USB外设不管是作为USBkey还是作为加密外设,均很容易被不法人员破解,如采用硬件克隆、Debug工具调试跟踪解密、编写拦截程序修改软件和USB外设之间的通讯等,并不能保证主机的信息安全。

【发明内容】

[0003]本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种不易被破解的USB外设。
[0004]本发明解决其技术问题所采用的技术方案是:构造一种USB外设,与主机相连,所述USB外设包括:
[0005]与所述主机的USB插座相对应的USB插头;
[0006]USB从控制器,连接于所述USB插头,且用于在所述主机与所述USB外设之间实现数据转换处理;
[0007]FPGA,连接于所述USB从控制器,且用于根据自身的硬件标识对所述主机所传送的数据进行加/解密,并将加/解密后的数据传送至所述主机。
[0008]在本发明所述的USB外设中,在所述USB外设的当前状态为key状态时,所述FPGA根据自身的硬件标识及预先存储的主机的硬件标识,对所述主机所传送的认证信息源进行加密以生成认证信息,并传送至所述主机。
[0009]在本发明所述的USB外设中,在所述USB外设的当前状态为加密外设状态时,所述FPGA根据自身的硬件标识及所述主机所传送的用户密码、加/解密指令,对所述主机所传送的文件的进行加/解密以生成加/解密文件,并传送至所述主机。
[0010]在本发明所述的USB外设中,所述USB外设还包括与所述FPGA相连的闪存盘,而且,在所述USB外设的当前状态为U盘状态时,所述FPGA控制所述USB从控制器和所述闪存盘连通。
[0011]在本发明所述的USB外设中,所述FPGA包括:
[0012]数据控制器,连接于所述USB从控制器,且用于在所述USB从控制器与所述FPGA之间实现数据转换处理;
[0013]主状态机,连接于所述数据控制器,且用于识别所述USB外设当前状态;
[0014]加/解密模块,连接于所述主状态机,且用于在当前状态为加密外设状态时,根据自身的硬件标识及所述主机所传送的用户密码、加/解密指令,对所述主机所传送的文件的进行加/解密以生成加/解密文件;[0015]身份认证控制器,连接于所述主状态机,且用于在当前状态为key状态时,根据自身的硬件标识及预先存储的主机的硬件标识,控制所述加密模块对所述主机所传送的认证信息源进行加密,以生成认证信息,并在所述主状态机的控制下,将所述认证信息返回至所述主机;
[0016]选通控制器,连接于所述主状态机,且用于在当前状态为U盘状态时,在所述主状态机的控制下,将所述USB从控制器和所述闪存盘连通。
[0017]在本发明所述的USB外设中,所述加/解密模块为AES加/解密模块。
[0018]在本发明所述的USB外设中,所述认证信息源为预设字节数量的随机数。
[0019]在本发明所述的USB外设中,所述主状态机根据所述主机所传送的数据的字节数量及所传送的数据的地址是否连续来判断当前状态。
[0020]在本发明所述的USB外设中,在所述USB外设的当前状态为key状态时,所述主机为门禁主机或机床主机。
[0021]在本发明所述的USB外设中,在所述USB外设的当前状态为key状态时,所述主机为独立的身份认证装置。
[0022]实施本发明的技术方案,FPGA在对主机所传送的数据(对于USB key,所传送的数据为认证信息源;对于加密外设,所传送的数据为所选择的待加/解密的文件)进行加/解密时,使用了自身的硬件标识作为密码的一部分(对于USB key,密码还包括主机的硬件标识;对于加密外设,密码还包括用户密码),而FPGA的硬件标识具有唯一性,不可复制,所以,即使非法人员破解了加/解密算法,由于无法复制FPGA的硬件标识,依然无法获取加/解密信息,因此,确保了主机的信息安全。而且,使用FPGA来进行数据的加/解密运算,处理数据速度快。
【专利附图】

【附图说明】
[0023]下面将结合附图及实施例对本发明作进一步说明,附图中:
[0024]图1是本发明USB外设实施例一的逻辑图;
[0025]图2是本发明USB外设实施例二的逻辑图;
[0026]图3是本发明USB外设实施例三的逻辑图。
【具体实施方式】
[0027]如图1所示的本发明USB外设实施例一的逻辑图,该USB外设包括依次连接的USB插头10、USB从控制器20和FPGA30,其中,USB插头10与主机的USB插座相对应,且在使用时,与USB插座连接。USB从控制器20用于在主机与USB外设之间实现数据转换处理,即,进行协议的转换。FPGA30用于根据自身的硬件标识对主机所传送的数据进行加/解密,并将加/解密后的数据传送至主机,FPGA自身的硬件表示为FPGA的DNA序列号,是每一片FPGA独有的型号,且不可改变。例如,在该USB外设作为USB key使用时,即USB外设的当前状态为key状态时,FPGA30根据自身的硬件标识及预先存储的主机的硬件标识,对主机所传送的认证信息源进行加密以生成认证信息,并传送至主机。在该USB外设作为加密外设使用时,即USB外设的当前状态为加密外设状态时,FPGA30根据自身的硬件标识及主机所传送的用户密码、加/解密指令,对主机所传送的文件的进行加/解密以生成加/解密文件,并传送至主机。
[0028]通过实施该实施例的技术方案,FPGA在对主机所传送的数据(对于USBkey,所传送的数据为认证信息源;对于加密外设,所传送的数据为所选择的待加/解密的文件)进行加/解密时,使用了自身的硬件标识作为密码的一部分(对于USB key,密码还包括主机的硬件标识;对于加密外设,密码还包括用户密码),而FPGA的硬件标识具有唯一性,不可复制,所以,即使非法人员破解了加/解密算法,由于无法复制FPGA的硬件标识,依然无法获取加/解密信息,因此,确保了主机的信息安全。而且,使用FPGA来进行数据的加/解密运算,处理数据速度快。
[0029]图2是本发明USB外设实施例二的逻辑图,该实施例的USB外设相比图1所示的USB外设,所不同的仅是,该实施例的USB外设还包括闪存盘40,该闪存盘40与FPGA相连,而且,在该USB外设的当前状态为U盘状态时,FPGA30控制USB从控制器20和闪存盘40连通。此时,用户可方便的存储自己的数据,而且,由于该闪存盘40是挂在FPGA30下的,因为该USB外设在作为U盘时也具备安全性。
[0030]图3是本发明USB外设实施例三的逻辑图,该USB外设包括USB插头10、USB从控制器20、FPGA30、闪存盘40、晶振50、SPI FLASH60和JTAG接口 70。其中,USB插头10、USB从控制器20、FPGA30依次连接,闪存盘40、晶振50、SPI FLASH60和JTAG接口 70分别与FPGA30连接。FPGA30具体包括数据控制器31、主状态机32、加/解密模块33、身份认证控制器34和选通控制器35,而且,数据控制器31、加/解密模块33、身份认证控制器34和选通控制器35分别与主状态机32连接。其中,数据控制器31用于在USB从控制器20与FPGA30之间实现数据转换处理,例如,将从USB从控制器20传送到FPGA30的数据由串行转成并行,将从FPGA30传送到USB从控制器20的数据由并行转成串行。主状态机32用于识别USB外设当前状态。加/解密模块33用于在当前状态为加密外设状态时,根据自身的硬件标识及主机所传送的用户密码、加/解密指令,对主机所传送的文件的进行加/解密以生成加/解密文件,然后等待主机读取。身份认证控制器34用于在当前状态为key状态时,根据自身的硬件标识及预先存储的主机的硬件标识,控制加密模块33对主机所传送的认证信息源进行加密,以生成认证信息,并在主状态机的控制下,将认证信息返回至主机。选通控制器35用于在当前状态为U盘状态时,在主状态机的控制下,将USB从控制器20和闪存盘40连通。另外,晶振50为FPGA的运行提供时钟信号,SPI FLASH60存储有FPGA的硬件配置信息和软件信息,JTAG接口 70为测试接口。
[0031]在本发明USB外设的一个优选实施例中,上述加/解密模块33优选为AES加/解密模块,当然也可选用其它自定义算法的加/解密模块。
[0032]在本发明USB外设的另一个优选实施例中,主状态机32根据主机所传送的数据的字节数量及所传送的数据的地址是否连续来判断当前状态。例如,具体为:在USB外设为key状态时,主机所传送的认证信息源为预设字节数量的随机数,例如为四字节的随机数。当主状态机32在判断该USB外设的当前状态时,首先判断所接收的来自主机的数据的字节数量是否为四个字节,如果是四个字节,则认为当前状态为key状态。如果超过四个字节(一般是512个字节或512倍数个字节,主机为USB外设的操作是以一个扇区作为基本操作,而一个扇区就是512个字节),则主状态机32将会跳转去检查这些数据的地址是否连续,如果地址是连续的,则认为当前状态为U盘状态,启动U盘功能。如果地址是相同的,则认为当前状态为加密外设状态,启动加密外设功能。
[0033]在本发明USB外设作为USB key使用时,该USB key可用于多种认证系统,例如,门禁系统、机床系统、电脑系统。门禁系统可用在公司或者政府机构的文案管理室或者档案柜,只有带有本USB key的用户才能通过门禁主机的身份认证,进而才能开启门禁。机床系统与门禁系统类似,只有带有本USBkey的用户才能通过机床主机的身份认证,进而才能开启机床。在电脑系统中,必须使用USB key对硬盘进行身份认证后,才允许电脑对硬盘里的数据进行读写,此时,主机可以是一个独立的身份认证装置,也可以集成在电脑里。
[0034]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改、组合和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
【权利要求】
1.一种USB外设,与主机相连,其特征在于,所述USB外设包括: 与所述主机的USB插座相对应的USB插头; USB从控制器,连接于所述USB插头,且用于在所述主机与所述USB外设之间实现数据转换处理; FPGA,连接于所述USB从控制器,且用于根据自身的硬件标识对所述主机所传送的数据进行加/解密,并将加/解密后的数据传送至所述主机。
2.根据权利要求1所述的USB外设,其特征在于,在所述USB外设的当前状态为key状态时,所述FPGA根据自身的硬件标识及预先存储的主机的硬件标识,对所述主机所传送的认证信息源进行加密以生成认证信息,并传送至所述主机。
3.根据权利要求1所述的USB外设,其特征在于,在所述USB外设的当前状态为加密外设状态时,所述FPGA根据自身的硬件标识及所述主机所传送的用户密码、加/解密指令,对所述主机所传送的文件的进行加/解密以生成加/解密文件,并传送至所述主机。
4.根据权利要求1-3任一项所述的USB外设,其特征在于,所述USB外设还包括与所述FPGA相连的闪存盘,而且,在所述USB外设的当前状态为U盘状态时,所述FPGA控制所述USB从控制器和所述闪存盘连通。
5.根据权利要求4所述的USB外设,其特征在于,所述FPGA包括: 数据控制器,连接于所述USB从控制器,且用于在所述USB从控制器与所述FPGA之间实现数据转换处理; 主状态机,连接于所述数据控制器,且用于识别所述USB外设当前状态; 加/解密模块,连接于所述主状态机,且用于在当前状态为加密外设状态时,根据自身的硬件标识及所述主机所传送的用户密码、加/解密指令,对所述主机所传送的文件的进行加/解密以生成加/解密文件; 身份认证控制器,连接于所述主状态机,且用于在当前状态为key状态时,根据自身的硬件标识及预先存储的主机的硬件标识,控制所述加密模块对所述主机所传送的认证信息源进行加密,以生成认证信息,并在所述主状态机的控制下,将所述认证信息返回至所述主机; 选通控制器,连接于所述主状态机,且用于在当前状态为U盘状态时,在所述主状态机的控制下,将所述USB从控制器和所述闪存盘连通。
6.根据权利要求5所述的USB外设,其特征在于,所述加/解密模块为AES加/解密模块。
7.根据权利要求5所述的USB外设,其特征在于,所述认证信息源为预设字节数量的随机数。
8.根据权利要求7所述的USB外设,其特征在于,所述主状态机根据所述主机所传送的数据的字节数量及所传送的数据的地址是否连续来判断当前状态。
9.根据权利要求5所述的USB外设,其特征在于,在所述USB外设的当前状态为key状态时,所述主机为门禁主机或机床主机。
10.根据权利要求5所述的USB外设,其特征在于,在所述USB外设的当前状态为key状态时,所述主机为独立的身份认证装置。
【文档编号】G06F21/34GK103577741SQ201310080044
【公开日】2014年2月12日 申请日期:2013年3月13日 优先权日:2013年3月13日
【发明者】冯雁军, 张建国, 徐渊, 易子林, 罗凯, 朱明程 申请人:深圳市振华微电子有限公司, 中国振华(集团)科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1