一種usb外設(shè)的制作方法
【專利摘要】本發(fā)明公開了一種USB外設(shè),該USB外設(shè)與主機(jī)相連,且包括:與主機(jī)的USB插座相對(duì)應(yīng)的USB插頭;USB從控制器,連接于USB插頭,且用于在主機(jī)與USB外設(shè)之間實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換處理;FPGA,連接于USB從控制器,且用于根據(jù)自身的硬件標(biāo)識(shí)對(duì)主機(jī)所傳送的數(shù)據(jù)進(jìn)行加/解密,并將加/解密后的數(shù)據(jù)傳送至主機(jī)。實(shí)施本發(fā)明的技術(shù)方案,F(xiàn)PGA在對(duì)主機(jī)所傳送的數(shù)據(jù)進(jìn)行加/解密時(shí),使用了自身的硬件標(biāo)識(shí)作為密碼的一部分,而FPGA的硬件標(biāo)識(shí)具有唯一性,不可復(fù)制,所以,即使非法人員破解了加/解密算法,由于無(wú)法復(fù)制FPGA的硬件標(biāo)識(shí),依然無(wú)法獲取加/解密信息,因此,確保了主機(jī)的信息安全。而且,使用FPGA來(lái)進(jìn)行數(shù)據(jù)的加/解密運(yùn)算,處理數(shù)據(jù)速度快。
【專利說(shuō)明】—種USB外設(shè)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及USB應(yīng)用領(lǐng)域,尤其是涉及一種USB外設(shè)。
【背景技術(shù)】
[0002]目前,USB外設(shè)在作為USBkey使用時(shí),通過(guò)對(duì)認(rèn)證信息源進(jìn)行加密可用于啟動(dòng)帶有身份認(rèn)證的裝置。另外,USB外設(shè)在作為加密外設(shè)使用時(shí),可對(duì)電腦主機(jī)中的任何文件進(jìn)行加密或解密。但是,USB外設(shè)不管是作為USBkey還是作為加密外設(shè),均很容易被不法人員破解,如采用硬件克隆、Debug工具調(diào)試跟蹤解密、編寫攔截程序修改軟件和USB外設(shè)之間的通訊等,并不能保證主機(jī)的信息安全。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術(shù)問(wèn)題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種不易被破解的USB外設(shè)。
[0004]本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:構(gòu)造一種USB外設(shè),與主機(jī)相連,所述USB外設(shè)包括:
[0005]與所述主機(jī)的USB插座相對(duì)應(yīng)的USB插頭;
[0006]USB從控制器,連接于所述USB插頭,且用于在所述主機(jī)與所述USB外設(shè)之間實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換處理;
[0007]FPGA,連接于所述USB從控制器,且用于根據(jù)自身的硬件標(biāo)識(shí)對(duì)所述主機(jī)所傳送的數(shù)據(jù)進(jìn)行加/解密,并將加/解密后的數(shù)據(jù)傳送至所述主機(jī)。
[0008]在本發(fā)明所述的USB外設(shè)中,在所述USB外設(shè)的當(dāng)前狀態(tài)為key狀態(tài)時(shí),所述FPGA根據(jù)自身的硬件標(biāo)識(shí)及預(yù)先存儲(chǔ)的主機(jī)的硬件標(biāo)識(shí),對(duì)所述主機(jī)所傳送的認(rèn)證信息源進(jìn)行加密以生成認(rèn)證信息,并傳送至所述主機(jī)。
[0009]在本發(fā)明所述的USB外設(shè)中,在所述USB外設(shè)的當(dāng)前狀態(tài)為加密外設(shè)狀態(tài)時(shí),所述FPGA根據(jù)自身的硬件標(biāo)識(shí)及所述主機(jī)所傳送的用戶密碼、加/解密指令,對(duì)所述主機(jī)所傳送的文件的進(jìn)行加/解密以生成加/解密文件,并傳送至所述主機(jī)。
[0010]在本發(fā)明所述的USB外設(shè)中,所述USB外設(shè)還包括與所述FPGA相連的閃存盤,而且,在所述USB外設(shè)的當(dāng)前狀態(tài)為U盤狀態(tài)時(shí),所述FPGA控制所述USB從控制器和所述閃存盤連通。
[0011]在本發(fā)明所述的USB外設(shè)中,所述FPGA包括:
[0012]數(shù)據(jù)控制器,連接于所述USB從控制器,且用于在所述USB從控制器與所述FPGA之間實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換處理;
[0013]主狀態(tài)機(jī),連接于所述數(shù)據(jù)控制器,且用于識(shí)別所述USB外設(shè)當(dāng)前狀態(tài);
[0014]加/解密模塊,連接于所述主狀態(tài)機(jī),且用于在當(dāng)前狀態(tài)為加密外設(shè)狀態(tài)時(shí),根據(jù)自身的硬件標(biāo)識(shí)及所述主機(jī)所傳送的用戶密碼、加/解密指令,對(duì)所述主機(jī)所傳送的文件的進(jìn)行加/解密以生成加/解密文件;[0015]身份認(rèn)證控制器,連接于所述主狀態(tài)機(jī),且用于在當(dāng)前狀態(tài)為key狀態(tài)時(shí),根據(jù)自身的硬件標(biāo)識(shí)及預(yù)先存儲(chǔ)的主機(jī)的硬件標(biāo)識(shí),控制所述加密模塊對(duì)所述主機(jī)所傳送的認(rèn)證信息源進(jìn)行加密,以生成認(rèn)證信息,并在所述主狀態(tài)機(jī)的控制下,將所述認(rèn)證信息返回至所述主機(jī);
[0016]選通控制器,連接于所述主狀態(tài)機(jī),且用于在當(dāng)前狀態(tài)為U盤狀態(tài)時(shí),在所述主狀態(tài)機(jī)的控制下,將所述USB從控制器和所述閃存盤連通。
[0017]在本發(fā)明所述的USB外設(shè)中,所述加/解密模塊為AES加/解密模塊。
[0018]在本發(fā)明所述的USB外設(shè)中,所述認(rèn)證信息源為預(yù)設(shè)字節(jié)數(shù)量的隨機(jī)數(shù)。
[0019]在本發(fā)明所述的USB外設(shè)中,所述主狀態(tài)機(jī)根據(jù)所述主機(jī)所傳送的數(shù)據(jù)的字節(jié)數(shù)量及所傳送的數(shù)據(jù)的地址是否連續(xù)來(lái)判斷當(dāng)前狀態(tài)。
[0020]在本發(fā)明所述的USB外設(shè)中,在所述USB外設(shè)的當(dāng)前狀態(tài)為key狀態(tài)時(shí),所述主機(jī)為門禁主機(jī)或機(jī)床主機(jī)。
[0021]在本發(fā)明所述的USB外設(shè)中,在所述USB外設(shè)的當(dāng)前狀態(tài)為key狀態(tài)時(shí),所述主機(jī)為獨(dú)立的身份認(rèn)證裝置。
[0022]實(shí)施本發(fā)明的技術(shù)方案,F(xiàn)PGA在對(duì)主機(jī)所傳送的數(shù)據(jù)(對(duì)于USB key,所傳送的數(shù)據(jù)為認(rèn)證信息源;對(duì)于加密外設(shè),所傳送的數(shù)據(jù)為所選擇的待加/解密的文件)進(jìn)行加/解密時(shí),使用了自身的硬件標(biāo)識(shí)作為密碼的一部分(對(duì)于USB key,密碼還包括主機(jī)的硬件標(biāo)識(shí);對(duì)于加密外設(shè),密碼還包括用戶密碼),而FPGA的硬件標(biāo)識(shí)具有唯一性,不可復(fù)制,所以,即使非法人員破解了加/解密算法,由于無(wú)法復(fù)制FPGA的硬件標(biāo)識(shí),依然無(wú)法獲取加/解密信息,因此,確保了主機(jī)的信息安全。而且,使用FPGA來(lái)進(jìn)行數(shù)據(jù)的加/解密運(yùn)算,處理數(shù)據(jù)速度快。
【專利附圖】
【附圖說(shuō)明】
[0023]下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明,附圖中:
[0024]圖1是本發(fā)明USB外設(shè)實(shí)施例一的邏輯圖;
[0025]圖2是本發(fā)明USB外設(shè)實(shí)施例二的邏輯圖;
[0026]圖3是本發(fā)明USB外設(shè)實(shí)施例三的邏輯圖。
【具體實(shí)施方式】
[0027]如圖1所示的本發(fā)明USB外設(shè)實(shí)施例一的邏輯圖,該USB外設(shè)包括依次連接的USB插頭10、USB從控制器20和FPGA30,其中,USB插頭10與主機(jī)的USB插座相對(duì)應(yīng),且在使用時(shí),與USB插座連接。USB從控制器20用于在主機(jī)與USB外設(shè)之間實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換處理,即,進(jìn)行協(xié)議的轉(zhuǎn)換。FPGA30用于根據(jù)自身的硬件標(biāo)識(shí)對(duì)主機(jī)所傳送的數(shù)據(jù)進(jìn)行加/解密,并將加/解密后的數(shù)據(jù)傳送至主機(jī),FPGA自身的硬件表示為FPGA的DNA序列號(hào),是每一片F(xiàn)PGA獨(dú)有的型號(hào),且不可改變。例如,在該USB外設(shè)作為USB key使用時(shí),即USB外設(shè)的當(dāng)前狀態(tài)為key狀態(tài)時(shí),F(xiàn)PGA30根據(jù)自身的硬件標(biāo)識(shí)及預(yù)先存儲(chǔ)的主機(jī)的硬件標(biāo)識(shí),對(duì)主機(jī)所傳送的認(rèn)證信息源進(jìn)行加密以生成認(rèn)證信息,并傳送至主機(jī)。在該USB外設(shè)作為加密外設(shè)使用時(shí),即USB外設(shè)的當(dāng)前狀態(tài)為加密外設(shè)狀態(tài)時(shí),F(xiàn)PGA30根據(jù)自身的硬件標(biāo)識(shí)及主機(jī)所傳送的用戶密碼、加/解密指令,對(duì)主機(jī)所傳送的文件的進(jìn)行加/解密以生成加/解密文件,并傳送至主機(jī)。
[0028]通過(guò)實(shí)施該實(shí)施例的技術(shù)方案,F(xiàn)PGA在對(duì)主機(jī)所傳送的數(shù)據(jù)(對(duì)于USBkey,所傳送的數(shù)據(jù)為認(rèn)證信息源;對(duì)于加密外設(shè),所傳送的數(shù)據(jù)為所選擇的待加/解密的文件)進(jìn)行加/解密時(shí),使用了自身的硬件標(biāo)識(shí)作為密碼的一部分(對(duì)于USB key,密碼還包括主機(jī)的硬件標(biāo)識(shí);對(duì)于加密外設(shè),密碼還包括用戶密碼),而FPGA的硬件標(biāo)識(shí)具有唯一性,不可復(fù)制,所以,即使非法人員破解了加/解密算法,由于無(wú)法復(fù)制FPGA的硬件標(biāo)識(shí),依然無(wú)法獲取加/解密信息,因此,確保了主機(jī)的信息安全。而且,使用FPGA來(lái)進(jìn)行數(shù)據(jù)的加/解密運(yùn)算,處理數(shù)據(jù)速度快。
[0029]圖2是本發(fā)明USB外設(shè)實(shí)施例二的邏輯圖,該實(shí)施例的USB外設(shè)相比圖1所示的USB外設(shè),所不同的僅是,該實(shí)施例的USB外設(shè)還包括閃存盤40,該閃存盤40與FPGA相連,而且,在該USB外設(shè)的當(dāng)前狀態(tài)為U盤狀態(tài)時(shí),F(xiàn)PGA30控制USB從控制器20和閃存盤40連通。此時(shí),用戶可方便的存儲(chǔ)自己的數(shù)據(jù),而且,由于該閃存盤40是掛在FPGA30下的,因?yàn)樵揢SB外設(shè)在作為U盤時(shí)也具備安全性。
[0030]圖3是本發(fā)明USB外設(shè)實(shí)施例三的邏輯圖,該USB外設(shè)包括USB插頭10、USB從控制器20、FPGA30、閃存盤40、晶振50、SPI FLASH60和JTAG接口 70。其中,USB插頭10、USB從控制器20、FPGA30依次連接,閃存盤40、晶振50、SPI FLASH60和JTAG接口 70分別與FPGA30連接。FPGA30具體包括數(shù)據(jù)控制器31、主狀態(tài)機(jī)32、加/解密模塊33、身份認(rèn)證控制器34和選通控制器35,而且,數(shù)據(jù)控制器31、加/解密模塊33、身份認(rèn)證控制器34和選通控制器35分別與主狀態(tài)機(jī)32連接。其中,數(shù)據(jù)控制器31用于在USB從控制器20與FPGA30之間實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換處理,例如,將從USB從控制器20傳送到FPGA30的數(shù)據(jù)由串行轉(zhuǎn)成并行,將從FPGA30傳送到USB從控制器20的數(shù)據(jù)由并行轉(zhuǎn)成串行。主狀態(tài)機(jī)32用于識(shí)別USB外設(shè)當(dāng)前狀態(tài)。加/解密模塊33用于在當(dāng)前狀態(tài)為加密外設(shè)狀態(tài)時(shí),根據(jù)自身的硬件標(biāo)識(shí)及主機(jī)所傳送的用戶密碼、加/解密指令,對(duì)主機(jī)所傳送的文件的進(jìn)行加/解密以生成加/解密文件,然后等待主機(jī)讀取。身份認(rèn)證控制器34用于在當(dāng)前狀態(tài)為key狀態(tài)時(shí),根據(jù)自身的硬件標(biāo)識(shí)及預(yù)先存儲(chǔ)的主機(jī)的硬件標(biāo)識(shí),控制加密模塊33對(duì)主機(jī)所傳送的認(rèn)證信息源進(jìn)行加密,以生成認(rèn)證信息,并在主狀態(tài)機(jī)的控制下,將認(rèn)證信息返回至主機(jī)。選通控制器35用于在當(dāng)前狀態(tài)為U盤狀態(tài)時(shí),在主狀態(tài)機(jī)的控制下,將USB從控制器20和閃存盤40連通。另外,晶振50為FPGA的運(yùn)行提供時(shí)鐘信號(hào),SPI FLASH60存儲(chǔ)有FPGA的硬件配置信息和軟件信息,JTAG接口 70為測(cè)試接口。
[0031]在本發(fā)明USB外設(shè)的一個(gè)優(yōu)選實(shí)施例中,上述加/解密模塊33優(yōu)選為AES加/解密模塊,當(dāng)然也可選用其它自定義算法的加/解密模塊。
[0032]在本發(fā)明USB外設(shè)的另一個(gè)優(yōu)選實(shí)施例中,主狀態(tài)機(jī)32根據(jù)主機(jī)所傳送的數(shù)據(jù)的字節(jié)數(shù)量及所傳送的數(shù)據(jù)的地址是否連續(xù)來(lái)判斷當(dāng)前狀態(tài)。例如,具體為:在USB外設(shè)為key狀態(tài)時(shí),主機(jī)所傳送的認(rèn)證信息源為預(yù)設(shè)字節(jié)數(shù)量的隨機(jī)數(shù),例如為四字節(jié)的隨機(jī)數(shù)。當(dāng)主狀態(tài)機(jī)32在判斷該USB外設(shè)的當(dāng)前狀態(tài)時(shí),首先判斷所接收的來(lái)自主機(jī)的數(shù)據(jù)的字節(jié)數(shù)量是否為四個(gè)字節(jié),如果是四個(gè)字節(jié),則認(rèn)為當(dāng)前狀態(tài)為key狀態(tài)。如果超過(guò)四個(gè)字節(jié)(一般是512個(gè)字節(jié)或512倍數(shù)個(gè)字節(jié),主機(jī)為USB外設(shè)的操作是以一個(gè)扇區(qū)作為基本操作,而一個(gè)扇區(qū)就是512個(gè)字節(jié)),則主狀態(tài)機(jī)32將會(huì)跳轉(zhuǎn)去檢查這些數(shù)據(jù)的地址是否連續(xù),如果地址是連續(xù)的,則認(rèn)為當(dāng)前狀態(tài)為U盤狀態(tài),啟動(dòng)U盤功能。如果地址是相同的,則認(rèn)為當(dāng)前狀態(tài)為加密外設(shè)狀態(tài),啟動(dòng)加密外設(shè)功能。
[0033]在本發(fā)明USB外設(shè)作為USB key使用時(shí),該USB key可用于多種認(rèn)證系統(tǒng),例如,門禁系統(tǒng)、機(jī)床系統(tǒng)、電腦系統(tǒng)。門禁系統(tǒng)可用在公司或者政府機(jī)構(gòu)的文案管理室或者檔案柜,只有帶有本USB key的用戶才能通過(guò)門禁主機(jī)的身份認(rèn)證,進(jìn)而才能開啟門禁。機(jī)床系統(tǒng)與門禁系統(tǒng)類似,只有帶有本USBkey的用戶才能通過(guò)機(jī)床主機(jī)的身份認(rèn)證,進(jìn)而才能開啟機(jī)床。在電腦系統(tǒng)中,必須使用USB key對(duì)硬盤進(jìn)行身份認(rèn)證后,才允許電腦對(duì)硬盤里的數(shù)據(jù)進(jìn)行讀寫,此時(shí),主機(jī)可以是一個(gè)獨(dú)立的身份認(rèn)證裝置,也可以集成在電腦里。
[0034]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改、組合和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求范圍之內(nèi)。
【權(quán)利要求】
1.一種USB外設(shè),與主機(jī)相連,其特征在于,所述USB外設(shè)包括: 與所述主機(jī)的USB插座相對(duì)應(yīng)的USB插頭; USB從控制器,連接于所述USB插頭,且用于在所述主機(jī)與所述USB外設(shè)之間實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換處理; FPGA,連接于所述USB從控制器,且用于根據(jù)自身的硬件標(biāo)識(shí)對(duì)所述主機(jī)所傳送的數(shù)據(jù)進(jìn)行加/解密,并將加/解密后的數(shù)據(jù)傳送至所述主機(jī)。
2.根據(jù)權(quán)利要求1所述的USB外設(shè),其特征在于,在所述USB外設(shè)的當(dāng)前狀態(tài)為key狀態(tài)時(shí),所述FPGA根據(jù)自身的硬件標(biāo)識(shí)及預(yù)先存儲(chǔ)的主機(jī)的硬件標(biāo)識(shí),對(duì)所述主機(jī)所傳送的認(rèn)證信息源進(jìn)行加密以生成認(rèn)證信息,并傳送至所述主機(jī)。
3.根據(jù)權(quán)利要求1所述的USB外設(shè),其特征在于,在所述USB外設(shè)的當(dāng)前狀態(tài)為加密外設(shè)狀態(tài)時(shí),所述FPGA根據(jù)自身的硬件標(biāo)識(shí)及所述主機(jī)所傳送的用戶密碼、加/解密指令,對(duì)所述主機(jī)所傳送的文件的進(jìn)行加/解密以生成加/解密文件,并傳送至所述主機(jī)。
4.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的USB外設(shè),其特征在于,所述USB外設(shè)還包括與所述FPGA相連的閃存盤,而且,在所述USB外設(shè)的當(dāng)前狀態(tài)為U盤狀態(tài)時(shí),所述FPGA控制所述USB從控制器和所述閃存盤連通。
5.根據(jù)權(quán)利要求4所述的USB外設(shè),其特征在于,所述FPGA包括: 數(shù)據(jù)控制器,連接于所述USB從控制器,且用于在所述USB從控制器與所述FPGA之間實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換處理; 主狀態(tài)機(jī),連接于所述數(shù)據(jù)控制器,且用于識(shí)別所述USB外設(shè)當(dāng)前狀態(tài); 加/解密模塊,連接于所述主狀態(tài)機(jī),且用于在當(dāng)前狀態(tài)為加密外設(shè)狀態(tài)時(shí),根據(jù)自身的硬件標(biāo)識(shí)及所述主機(jī)所傳送的用戶密碼、加/解密指令,對(duì)所述主機(jī)所傳送的文件的進(jìn)行加/解密以生成加/解密文件; 身份認(rèn)證控制器,連接于所述主狀態(tài)機(jī),且用于在當(dāng)前狀態(tài)為key狀態(tài)時(shí),根據(jù)自身的硬件標(biāo)識(shí)及預(yù)先存儲(chǔ)的主機(jī)的硬件標(biāo)識(shí),控制所述加密模塊對(duì)所述主機(jī)所傳送的認(rèn)證信息源進(jìn)行加密,以生成認(rèn)證信息,并在所述主狀態(tài)機(jī)的控制下,將所述認(rèn)證信息返回至所述主機(jī); 選通控制器,連接于所述主狀態(tài)機(jī),且用于在當(dāng)前狀態(tài)為U盤狀態(tài)時(shí),在所述主狀態(tài)機(jī)的控制下,將所述USB從控制器和所述閃存盤連通。
6.根據(jù)權(quán)利要求5所述的USB外設(shè),其特征在于,所述加/解密模塊為AES加/解密模塊。
7.根據(jù)權(quán)利要求5所述的USB外設(shè),其特征在于,所述認(rèn)證信息源為預(yù)設(shè)字節(jié)數(shù)量的隨機(jī)數(shù)。
8.根據(jù)權(quán)利要求7所述的USB外設(shè),其特征在于,所述主狀態(tài)機(jī)根據(jù)所述主機(jī)所傳送的數(shù)據(jù)的字節(jié)數(shù)量及所傳送的數(shù)據(jù)的地址是否連續(xù)來(lái)判斷當(dāng)前狀態(tài)。
9.根據(jù)權(quán)利要求5所述的USB外設(shè),其特征在于,在所述USB外設(shè)的當(dāng)前狀態(tài)為key狀態(tài)時(shí),所述主機(jī)為門禁主機(jī)或機(jī)床主機(jī)。
10.根據(jù)權(quán)利要求5所述的USB外設(shè),其特征在于,在所述USB外設(shè)的當(dāng)前狀態(tài)為key狀態(tài)時(shí),所述主機(jī)為獨(dú)立的身份認(rèn)證裝置。
【文檔編號(hào)】G06F21/34GK103577741SQ201310080044
【公開日】2014年2月12日 申請(qǐng)日期:2013年3月13日 優(yōu)先權(quán)日:2013年3月13日
【發(fā)明者】馮雁軍, 張建國(guó), 徐淵, 易子林, 羅凱, 朱明程 申請(qǐng)人:深圳市振華微電子有限公司, 中國(guó)振華(集團(tuán))科技股份有限公司