專利名稱:基于mems強(qiáng)鏈和fpga技術(shù)的移動硬盤加密系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種基于微機(jī)電系統(tǒng)技術(shù)領(lǐng)域的系統(tǒng),具體的說,涉及的是
一種基于MEMS (微機(jī)電系統(tǒng))強(qiáng)鏈和FPGA (現(xiàn)場可編程門陣列)技術(shù)的移動硬 盤加密系統(tǒng)。
背景技術(shù):
信息安全對于企業(yè)、政府、國防等部門有著重要的意義。 一般現(xiàn)有的移動硬 盤加密方法都通過存儲介質(zhì)保存密鑰,使用比較器比對輸入密鑰正確與否,此方 法保密性差,易于破解。除此之外,大多移動硬盤加密系統(tǒng)認(rèn)證功能的安全性能 都比較低,能夠進(jìn)入系統(tǒng)的非法用戶還是可以讀取硬盤信息,系統(tǒng)的安全保密作 用大大降低。
經(jīng)對現(xiàn)有技術(shù)的文獻(xiàn)檢索發(fā)現(xiàn),中國專利"一種計算機(jī)硬盤加密裝置",專 利號99113164.9,授權(quán)公告日2003年2月5日,通過加密芯片而組成的加密電 路,加密芯片是由控制單元電路、加解密單元電路,MM存儲器及控制開關(guān)K組 成,對進(jìn)出硬盤的數(shù)據(jù)流選擇性的硬件加密,從而實(shí)現(xiàn)介質(zhì)加密。但此專利中使 用用戶輸入信息的方式作為硬盤加密的密鑰,并通過密鑰比對器判定密鑰是否正 確。這種通過存儲器保存密鑰的方法易于被非法用戶破解,保密性差。但是作為 移動硬盤來說,由于硬件加密的芯片主頻不夠高,加密后的傳輸速率會大打折扣。 檢索中還發(fā)現(xiàn),中國專利"計算機(jī)硬盤數(shù)據(jù)加密方法及其裝置",公開號CN 1641522A,
公開日2005年7月20日,加密系統(tǒng)放置在硬盤與主機(jī)之間,對計算 機(jī)的硬盤和主機(jī)之間傳輸數(shù)據(jù)進(jìn)行加密,當(dāng)主機(jī)向硬盤寫數(shù)據(jù)時,數(shù)據(jù)流被加解 密模塊所截獲,從密鑰管理模塊中讀取加密過程中所需要的密鑰,對數(shù)據(jù)流進(jìn)行 加密處理。此加密系統(tǒng)密鑰存儲在密鑰管理器中,并且由此密鑰直接參與硬盤數(shù) 據(jù)加密,這種方式一方面密鑰容易被破解,另一方面用戶不需進(jìn)行認(rèn)證即可啟動 加密解密模塊,只要進(jìn)入系統(tǒng)還是可以讀取硬盤信息。同時,從檢索的文獻(xiàn)中還 可以看到,上述兩個專利不能對移動硬盤信息進(jìn)行加密/解密處理。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中存在的不足,提供一種基于MEMS強(qiáng)鏈和 FPGA技術(shù)的移動硬盤加密系統(tǒng),使其達(dá)到通過物理機(jī)械方法產(chǎn)生密鑰來加密移 動硬盤數(shù)據(jù)信息的目的。本發(fā)明結(jié)合MEMS強(qiáng)鏈和基于FPGA芯片的移動硬盤加密 卡,組成基于MEMS強(qiáng)鏈和FPGA技術(shù)的移動硬盤加密系統(tǒng)。在MEMS強(qiáng)鏈中機(jī)械 固化了密碼,以此作為移動硬盤數(shù)據(jù)加密/解密模塊的密鑰,只容許合法用戶通 過身份認(rèn)證后讀取該移動硬盤的加密數(shù)據(jù)資料。
本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的-
本發(fā)明包括基于FPGA芯片的移動硬盤加密卡、移動硬盤加密卡驅(qū)動及身 份認(rèn)證模塊、MEMS強(qiáng)鏈。
其中所述FPGA移動硬盤加密卡包括USB接口控制器,1/0信號擴(kuò)展接口, MEMS強(qiáng)鏈驅(qū)動電路,密鑰處理模塊,數(shù)據(jù)、控制信號分流模塊,數(shù)據(jù)加密/解密 模塊。
其中,移動硬盤加密卡驅(qū)動模塊及身份認(rèn)證模塊通過USB接口控制器與FPGA 移動硬盤加密卡內(nèi)部的數(shù)據(jù)、控制信號分流模塊進(jìn)行通訊,所有讀寫移動硬盤數(shù) 據(jù)產(chǎn)生的控制信號和數(shù)據(jù)信號,都按照USB協(xié)議在主機(jī)和USB移動硬盤之間進(jìn)行 傳輸,數(shù)據(jù)、控制信號分流模塊將接收到的身份認(rèn)證指令,轉(zhuǎn)為MEMS強(qiáng)鏈控制 信號,通過I/O信號擴(kuò)展接口輸出到MEMS強(qiáng)鏈驅(qū)動電路,控制MEMS強(qiáng)鏈進(jìn)行解 碼動作,解碼的同時,MEMS強(qiáng)鏈產(chǎn)生密鑰信號,發(fā)送到蜜鑰處理模塊,判斷正 確碼或錯誤碼;
若取得正確碼,密鑰處理模塊傳輸密鑰到數(shù)據(jù)加密/解密模塊,并向主機(jī)的 身份認(rèn)證模塊返回強(qiáng)鏈正常運(yùn)行信號,確認(rèn)身份認(rèn)證成功,主機(jī)識別出移動硬盤, 然后主機(jī)與移動硬盤之間通訊的所有信息,通過數(shù)據(jù)、控制信號分流模塊進(jìn)行分 流傳輸,控制信號通過PIO方式直接傳輸,數(shù)據(jù)信號經(jīng)數(shù)據(jù)加密/解密模塊通過 DMA方式傳輸;
若判斷錯誤碼來臨,密鑰處理模塊通過I/0信號擴(kuò)展接口,發(fā)出復(fù)位相位到 MEMS強(qiáng)鏈驅(qū)動電路,停止MEMS強(qiáng)鏈運(yùn)行,開始復(fù)位動作,同時向主機(jī)的身份認(rèn) 證模塊返回強(qiáng)鏈異常運(yùn)行信號,確認(rèn)身份認(rèn)證失敗,主機(jī)請求繼續(xù)身份認(rèn)證。
所述的USB接口控制器由移動硬盤加密卡的FPGA芯片直接控制,是連接主機(jī)USB接口與USB移動硬盤的橋梁, 一端通過USB連線與主機(jī)相連, 一端通過內(nèi) 部總線與移動硬盤加密卡的FPGA芯片相連。讀寫移動硬盤產(chǎn)生的控制信號和數(shù) 據(jù)信號,以及身份認(rèn)證信號,通過USB協(xié)議傳輸方式在主機(jī)和USB移動硬盤之間 進(jìn)行通訊。
所述的I/O信號擴(kuò)展接口由移動硬盤加密卡的FPGA芯片直接控制,用于移 動硬盤加密卡內(nèi)部FPGA芯片與MEMS強(qiáng)鏈進(jìn)行通信,提供48位I/O信號來控制 MEMS強(qiáng)鏈驅(qū)動電路,負(fù)責(zé)傳送MEMS強(qiáng)鏈運(yùn)行的控制信號以及接收MEMS強(qiáng)鏈返 回的信號。
所述的MEMS強(qiáng)鏈驅(qū)動電路由移動硬盤加密卡的FPGA芯片控制,接收從I/O 信號擴(kuò)展接口傳送過來的信號,用于驅(qū)動微電機(jī),使得MEMS強(qiáng)鏈能夠正常工作。 該驅(qū)動電路由4塊L6234電機(jī)驅(qū)動芯片組成,每塊L6234芯片驅(qū)動一個微電機(jī)。
所述的密鑰處理模塊由移動硬盤加密卡內(nèi)部的FPGA芯片進(jìn)行控制,用于比 對從工作在主機(jī)上的身份認(rèn)證模塊傳送過來的密鑰和固化在MEMS強(qiáng)鏈機(jī)械結(jié)構(gòu) 中的密鑰。其一端與MEMS強(qiáng)鏈密鑰輸出線相連,用于接收MEMS強(qiáng)鏈發(fā)出的密鑰 反饋信號; 一端與USB接口控制器相連,用于接收從工作在主機(jī)上的身份認(rèn)證模 塊傳送過來的身份認(rèn)證信號,并向主機(jī)返回認(rèn)證是否成功的信號; 一端與加密/ 解密模塊相連,當(dāng)密鑰全部接收到后,向加密/解密模塊發(fā)送密鑰;另一端連接 1/0信號擴(kuò)展接口,用于在MEMS強(qiáng)鏈發(fā)生死鎖時,輸出控制MEMS強(qiáng)鏈復(fù)位的信號。
所述的移動硬盤數(shù)據(jù)、控制信號分流模塊,由移動硬盤加密卡內(nèi)部的FPGA 芯片進(jìn)行控制。主機(jī)在進(jìn)行硬盤讀寫時,數(shù)據(jù)信號通過DMA方式傳輸,控制信號 通過PIO方式傳輸。FPGA芯片根據(jù)ATA總線協(xié)議規(guī)定的這兩種不同傳輸方式的 命令格式,在主機(jī)對移動硬盤進(jìn)行讀寫時,對產(chǎn)生的數(shù)據(jù)信號和控制信號進(jìn)行分 流。數(shù)據(jù)信號流經(jīng)過加密/解密模塊的處理之后,再傳輸?shù)接脖P存儲介質(zhì);而控 制信號流則不經(jīng)過加密/解密模塊,直接傳輸給IDE硬盤。
所述的FPGA移動硬盤數(shù)據(jù)加密/解密模塊,由移動硬盤加密卡內(nèi)部的FPGA 芯片進(jìn)行控制,以MEMS強(qiáng)鏈機(jī)械結(jié)構(gòu)產(chǎn)生的密鑰,采用經(jīng)典的AES-128加密算 法,對主機(jī)在讀寫移動硬盤數(shù)據(jù)傳輸時的數(shù)據(jù)信號流,進(jìn)行加密/解密處理;對 于主機(jī)在讀寫移動硬盤數(shù)據(jù)傳輸時的控制信號流,不對其進(jìn)行加密/解密處理。所述的MEMS強(qiáng)鏈?zhǔn)且环N物理加密裝置,它以反干涉齒輪集固化32位二元密 碼。在兩個鑒碼電機(jī)的軸上,都裝有耦合機(jī)構(gòu)。其耦合盤上設(shè)計了與硬盤加密系 統(tǒng)密鑰對應(yīng)的缺口。在其解碼過程中,耦合機(jī)構(gòu)產(chǎn)生一串信號,以這種物理的方 式產(chǎn)生的信號作為硬盤加密系統(tǒng)的密鑰。
所述的移動硬盤加密卡驅(qū)動及身份認(rèn)證模塊,包括驅(qū)動模塊和身份認(rèn)證模 塊,驅(qū)動模塊基于傳統(tǒng)的USB移動硬盤的驅(qū)動程序改寫,無須用戶另外安裝驅(qū)動 程序,即插即用,用于在非加密硬盤的操作系統(tǒng)環(huán)境下驅(qū)動USB移動硬盤接口芯 片。移動硬盤初次連接到未安裝驅(qū)動的操作系統(tǒng)環(huán)境下,安裝此加密卡驅(qū)動后, 操作系統(tǒng)無法識別移動硬盤且無法枚舉出移動硬盤的盤符,必須等到身份認(rèn)證通 過之后才能夠枚舉出移動硬盤。身份認(rèn)證模塊是裝載在非加密硬盤操作系統(tǒng)環(huán)境 下的一個身份認(rèn)證程序,提供MEMS強(qiáng)鏈移動硬盤加密系統(tǒng)的身份認(rèn)證功能運(yùn)行 身份認(rèn)證模塊后,系統(tǒng)等待用戶輸入身份認(rèn)證信息。用戶輸入認(rèn)證信息之后,該 模塊通過USB接口將此信息發(fā)送到加密卡芯片,進(jìn)行身份認(rèn)證過程。如果身份認(rèn) 證通過,則數(shù)據(jù)加密/解密模塊以強(qiáng)鏈密鑰信號對數(shù)據(jù)進(jìn)行加密、解密操作,主 機(jī)識別出此USB移動硬盤,可以讀取存儲在此移動硬盤上的加密信息。如果身份 認(rèn)證失敗,主機(jī)無法識別出此USB移動硬盤,同時復(fù)位MEMS強(qiáng)鏈到初始位置, 繼續(xù)下一次身份認(rèn)證。
本發(fā)明使用MEMS強(qiáng)鏈特有的機(jī)械結(jié)構(gòu),來產(chǎn)生用于移動硬盤數(shù)據(jù)加密使用 的密鑰,用此密鑰參與移動硬盤加密系統(tǒng)和身份認(rèn)證。正常使用的計算機(jī)中裝有 一塊硬盤,直接與主板的IDE口 (或SATA口)相連,其中裝有操作系統(tǒng),數(shù)據(jù) 不做加密處理,可以直接讀取。在需要對數(shù)據(jù)進(jìn)行加密操作時,直接利用USB接 口 ,掛載基于MEMS強(qiáng)鏈和FPGA技術(shù)的USB移動硬盤加密系統(tǒng)。此移動硬盤需要 通過MEMS強(qiáng)鏈的身份認(rèn)證,如果身份認(rèn)證通過,MEMS強(qiáng)鏈通過其機(jī)械結(jié)構(gòu)產(chǎn)生 一串合法密鑰,利用此密鑰參與加密系統(tǒng),就可以對掛載在主機(jī)上的USB移動硬 盤內(nèi)的加密數(shù)據(jù)進(jìn)行任意地讀寫操作。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是把安全性能極高的MEMS強(qiáng)鏈與移 動硬盤加密系統(tǒng)緊密結(jié)合在一起,大大提高了數(shù)據(jù)的安全強(qiáng)度。同時該移動硬盤 加密系統(tǒng),利用USB接口的即插即用功能,大大提高了數(shù)據(jù)的可靠性,減少了安 裝驅(qū)動的繁瑣程序也提高了使用的便利性。其中MEMS強(qiáng)鏈采用特殊的物理密碼,破解的概率大約只有二千萬分之一;同時物理密碼固化在MEMS強(qiáng)鏈精密的微型 機(jī)械結(jié)構(gòu)中,再次大大增加破解的難度。移動硬盤加密系統(tǒng)利用此密鑰,使用經(jīng) 典的AES-128加密算法對所有扇區(qū)數(shù)據(jù)進(jìn)行介質(zhì)加密,即使把移動硬盤單獨(dú)偷 走,在其他機(jī)器上也只能被操作系統(tǒng)認(rèn)為是一塊未格式化的硬盤,無法讀出其中 的正確信息。
圖l為本發(fā)明的結(jié)構(gòu)框圖
具體實(shí)施例方式
下面結(jié)合附圖對本發(fā)明的實(shí)施例作詳細(xì)說明本實(shí)施例在以本發(fā)明技術(shù)方案 為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù) 范圍不限于下述的實(shí)施例。
如圖1所示,本實(shí)施例包括基于FPGA芯片的移動硬盤加密卡、移動硬盤 加密卡驅(qū)動及身份認(rèn)證模塊以及MEMS強(qiáng)鏈。其中基于FPGA芯片的移動硬盤加密 卡包括USB接口控制器,1/0信號擴(kuò)展接口, MEMS強(qiáng)鏈驅(qū)動電路,密鑰處理模 塊,數(shù)據(jù)和控制信號分流模塊,數(shù)據(jù)加密/解密模塊。
所述的USB接口控制器由移動硬盤加密卡的FPGA芯片直接控制,是連接主 機(jī)USB接口與USB移動硬盤的橋梁, 一端通過USB連線與主機(jī)相連, 一端通過內(nèi) 部總線與移動硬盤加密卡的FPGA芯片相連。基于FPGA芯片的移動硬盤加密卡, 以傳統(tǒng)的USB接口協(xié)議通訊方式與主機(jī)上的身份認(rèn)證模塊進(jìn)行通訊。同時,所有 讀寫移動硬盤產(chǎn)生的控制信號和數(shù)據(jù)信號,以及身份認(rèn)證信號,都通過USB協(xié)議 傳輸方式在主機(jī)和USB移動硬盤之間進(jìn)行通訊。移動硬盤加密卡內(nèi)部的FPGA芯 片配置USB接口控制器正確工作,把主機(jī)從USB總線上的指令轉(zhuǎn)化為移動硬盤加 密卡的內(nèi)部總線指令,再由1/0信號擴(kuò)展接口輸出控制字到MEMS強(qiáng)鏈驅(qū)動電路, 驅(qū)動MEMS強(qiáng)鏈進(jìn)行解碼。解碼的同時,MEMS強(qiáng)鏈產(chǎn)生密鑰信號。密鑰處理模塊 讀取MEMS強(qiáng)鏈發(fā)來的密鑰信號,判斷正確碼或是錯誤碼的來臨。若取得32位正 確碼,密鑰處理模塊發(fā)送密鑰到FPGA移動硬盤數(shù)據(jù)加密/解密模塊,并通過USB 接口控制器向主機(jī)返回強(qiáng)鏈正常運(yùn)行的信號,確認(rèn)身份認(rèn)證成功,主機(jī)識別出該 USB設(shè)備為移動硬盤。主機(jī)與移動硬盤之間通訊的所有信息(包括控制信號和數(shù) 據(jù)信號),通過數(shù)據(jù)、控制信號分流模塊進(jìn)行分流,控制信號通過PIO方式直接傳輸,數(shù)據(jù)信號經(jīng)數(shù)據(jù)加密/解密模塊通過D區(qū)方式傳輸,從而能夠正確讀寫存 儲在移動硬盤內(nèi)的信息,識別出移動硬盤基本信息,在操作系統(tǒng)上枚舉出該移動
硬盤的盤符。若判斷錯誤碼來臨,密鑰處理模塊發(fā)送復(fù)位相位到i/o信號擴(kuò)展接
口 ,停止MEMS強(qiáng)鏈的運(yùn)行,開始執(zhí)行MEMS強(qiáng)鏈復(fù)位動作,并通過USB接口控制 器向主機(jī)返回強(qiáng)鏈運(yùn)行異常的信號,身份認(rèn)證失敗,要求再次進(jìn)行身份認(rèn)證。
所述的1/0信號擴(kuò)展接口由移動硬盤加密卡直接控制,用于移動硬盤加密卡 內(nèi)部FPGA芯片與MEMS強(qiáng)鏈進(jìn)行通信,提供48位I/O信號給MEMS強(qiáng)鏈驅(qū)動電路, 負(fù)責(zé)傳送MEMS強(qiáng)鏈運(yùn)行的控制信號以及接收MEMS強(qiáng)鏈返回的信號。
所述的MEMS強(qiáng)鏈驅(qū)動電路由移動硬盤加密卡的FPGA芯片控制,接收從I/O 信號擴(kuò)展接口傳送過來的信號,用于驅(qū)動微電機(jī),使得MEMS強(qiáng)鏈能夠正常工作。 該驅(qū)動電路由4塊L6234電機(jī)驅(qū)動芯片組成,每塊L6234芯片驅(qū)動一個微電機(jī)。
所述的密鑰處理模塊由移動硬盤加密卡內(nèi)部的FPGA芯片進(jìn)行控制,用于比 對從工作在主機(jī)上的身份認(rèn)證模塊傳送過來的密鑰和固化在MEMS強(qiáng)鏈機(jī)械結(jié)構(gòu) 中的密鑰。其一端與MEMS強(qiáng)鏈密鑰輸出線相連,用于接收MEMS強(qiáng)鏈發(fā)出的密鑰 反饋信號; 一端與USB接口控制器相連,用于接收從工作在主機(jī)上的身份認(rèn)證模 塊傳送過來的身份認(rèn)證信號,并向主機(jī)返回認(rèn)證是否成功的信號; 一端與加密/ 解密模塊相連,當(dāng)密鑰全部接收到后,向加密/解密模塊發(fā)送密鑰;另一端連接 1/0信號擴(kuò)展接口,用于在MEMS強(qiáng)鏈發(fā)生死鎖時,輸出控制MEMS強(qiáng)鏈復(fù)位的信號。
所述的移動硬盤數(shù)據(jù)、控制信號分流模塊,由移動硬盤加密卡內(nèi)部的FPGA 芯片進(jìn)行控制。從USB接口控制器端接收數(shù)據(jù),對其進(jìn)行分析后,將信號進(jìn)行分 流。按照IDE協(xié)議,主機(jī)在對移動硬盤進(jìn)行讀寫操作,在對大塊數(shù)據(jù)操作時是以 扇區(qū)為單位通過DMA方式傳輸,而讀寫操作中的控制信號則是以字節(jié)為單位通過 PIO方式傳輸。根據(jù)這兩種不同傳輸方式的命令格式,將主機(jī)在讀寫移動硬盤時 產(chǎn)生的數(shù)據(jù)信號和控制信號進(jìn)行分流。數(shù)據(jù)信號流經(jīng)過加密/解密模塊的處理之 后,再傳輸?shù)接脖P存儲介質(zhì);而控制信號流則不經(jīng)過加密/解密模塊,直接傳輸 給IDE硬盤。
所述的FPGA移動硬盤數(shù)據(jù)加密/解密模塊,由移動硬盤加密卡內(nèi)部的FPGA 芯片進(jìn)行控制,以MEMS強(qiáng)鏈機(jī)械結(jié)構(gòu)產(chǎn)生的密鑰,采用經(jīng)典的AES-128加密算法,對主機(jī)在讀寫移動硬盤時數(shù)據(jù)傳輸?shù)臄?shù)據(jù)信號流,進(jìn)行加密/解密處理。在 對移動硬盤執(zhí)行寫操作時,主機(jī)通過USB接口控制器傳送的信號,首先經(jīng)過數(shù)據(jù) 和控制信號分流模塊分流之后,傳給加密模塊的數(shù)據(jù)是未經(jīng)過加密的明文數(shù)據(jù), 通過AES-128加密算法對其加密后,存儲在移動硬盤上的是密文數(shù)據(jù)。而在對移 動硬盤執(zhí)行讀操作時,存儲在移動硬盤上的密文數(shù)據(jù),首先通過AES-128算法對 其解密,再通過USB接口控制器傳送給主機(jī),此時得到的數(shù)據(jù)是經(jīng)過解密后的明 文數(shù)據(jù)。主機(jī)端的數(shù)據(jù)流始終都是明文數(shù)據(jù),因此數(shù)據(jù)加密/解密模塊對于主機(jī) 而言是透明的。
所述的MEMS強(qiáng)鏈?zhǔn)且环N物理加密裝置,它以反干涉齒輪集固化32位二元密 碼。在兩個鑒碼電機(jī)的軸上,都裝有耦合機(jī)構(gòu)。其耦合盤上設(shè)計了與硬盤加密系 統(tǒng)密鑰對應(yīng)的缺口。在其解碼過程中,耦合機(jī)構(gòu)產(chǎn)生一串信號,以這種物理的方 式產(chǎn)生的信號作為硬盤加密系統(tǒng)的密鑰。
所述的基于FPGA芯片的移動硬盤加密卡驅(qū)動模塊,基于傳統(tǒng)的USB移動硬 盤的驅(qū)動程序改寫,無須用戶另外安裝驅(qū)動程序,即插即用,用于在非加密硬盤 的操作系統(tǒng)環(huán)境下驅(qū)動USB移動硬盤接口芯片。移動硬盤初次連接到未安裝驅(qū)動 的操作系統(tǒng)環(huán)境下,安裝此加密卡驅(qū)動后,操作系統(tǒng)無法識別移動硬盤且無法枚 舉出移動硬盤的盤符,必須等到身份認(rèn)證通過之后才能夠枚舉出移動硬盤。
所述的身份認(rèn)證模塊,是裝載在非加密硬盤操作系統(tǒng)環(huán)境下的一個身份認(rèn)證 程序,提供MEMS強(qiáng)鏈移動硬盤加密系統(tǒng)的身份認(rèn)證功能。該模塊采用0++語言, 在VC環(huán)境下按照USB接口的傳輸協(xié)議編寫,適用于所有Windows平臺的操作系 統(tǒng);功能是與移動硬盤加密卡進(jìn)行身份認(rèn)證。運(yùn)行主機(jī)上的身份認(rèn)證模塊后,系 統(tǒng)等待用戶輸入身份認(rèn)證信息。用戶輸入的密鑰通過USB總線經(jīng)USB接口控制器 傳輸給移動硬盤加密卡內(nèi)部的FPGA芯片,轉(zhuǎn)化為其內(nèi)部總線指令,再通過I/O 信號擴(kuò)展接口把控制字輸出到MEMS強(qiáng)鏈驅(qū)動電路,驅(qū)動MEMS強(qiáng)鏈進(jìn)行解碼操作, 解碼的同時由MEMS強(qiáng)鏈機(jī)械結(jié)構(gòu)產(chǎn)生密鑰信號。此時,再由密鑰處理模塊讀取 MEMS強(qiáng)鏈發(fā)來的密鑰信號,判斷正確碼或是錯誤碼的來臨。若取得32位正確碼, 密鑰處理模塊發(fā)送密鑰到數(shù)據(jù)加密/解密模塊,并通過USB接口控制器向主機(jī)的 身份認(rèn)證模塊返回強(qiáng)鏈運(yùn)行正常的信號,確認(rèn)身份認(rèn)證成功。此時,主機(jī)通過重 枚舉重新識別出該USB設(shè)備為USB移動硬盤,用戶在資源管理器中看到該移動硬盤的盤符,并能夠正確讀寫存儲在該移動硬盤內(nèi)的加密數(shù)據(jù)信息。若判斷錯誤碼 來臨,密鑰處理模塊通過I/O信號擴(kuò)展接口 ,向MEMS強(qiáng)鏈驅(qū)動模塊發(fā)送MEMS強(qiáng) 鏈的復(fù)位相位,來停止MEMS強(qiáng)鏈的運(yùn)行,開始執(zhí)行MEMS強(qiáng)鏈復(fù)位動作,并通過 USB接口控制器向主機(jī)的身份認(rèn)證模塊返回強(qiáng)鏈運(yùn)行異常的信號。身份認(rèn)證宣告 失敗,主機(jī)無法識別出此USB設(shè)備為USB移動硬盤,同時要求繼續(xù)進(jìn)行身份認(rèn)證。
上述系統(tǒng)工作時,編寫基于FPGA芯片的移動硬盤加密卡驅(qū)動及其身份認(rèn)證 模塊,在非加密硬盤操作系統(tǒng)環(huán)境下加載。FPGA移動硬盤加密卡驅(qū)動,采用傳 統(tǒng)的USB移動硬盤驅(qū)動改寫,符合即插即用特性,無須另外安裝。當(dāng)需要使用基 于MEMS強(qiáng)鏈和FPGA技術(shù)的移動硬盤加密系統(tǒng)時,首先將其與主機(jī)通過USB接口 連接。在進(jìn)行身份認(rèn)證之前,移動硬盤的盤符是不可見的,主機(jī)識別出的USB設(shè) 備為USB移動硬盤加密卡。只有通過身份認(rèn)證程序成功認(rèn)證之后,主機(jī)才能識別 出經(jīng)過加密的USB移動硬盤,并在資源管理器中看到此加密移動硬盤的盤符,并 對其中的加密資料數(shù)據(jù)進(jìn)行正確讀寫。
通過USB接口,掛載好該移動硬盤加密系統(tǒng)后,運(yùn)行裝載在主機(jī)上的身份認(rèn) 證程序,首先彈出窗口,要求用戶輸入身份認(rèn)證密碼。輸入密碼確認(rèn)后,F(xiàn)PGA 移動硬盤加密卡驅(qū)動及身份認(rèn)證模塊以USB總線通訊方式,與移動硬盤加密卡內(nèi) 部的FPGA芯片進(jìn)行通訊,F(xiàn)PGA芯片配置USB接口控制器正確工作,將USB總線 上指令轉(zhuǎn)化為一系列內(nèi)部總線上的指令,再通過1/0信號擴(kuò)展接口輸出控制指令 到MEMS強(qiáng)鏈驅(qū)動電路,從而來驅(qū)動MEMS強(qiáng)鏈執(zhí)行解碼動作。
在解碼的同時,由MEMS強(qiáng)鏈機(jī)械結(jié)構(gòu)產(chǎn)生一系列的密鑰信號,并傳輸至密 鑰處理模塊。密鑰處理模塊在接收到一個密鑰信號時,就保存此密鑰,并且計數(shù) 器從零開始計數(shù),到下一個密鑰信號來臨時清零,并將密鑰信號與前幾個密鑰一 起保存起來,然后再重新開始計數(shù),這里保存的密鑰與MEMS強(qiáng)鏈的走碼位一致。 一旦計數(shù)器超時,則說明MEMS強(qiáng)鏈運(yùn)行遇到錯位碼,此時可以根據(jù)所記錄的密 鑰,使MEMS強(qiáng)鏈復(fù)位到初始位置。在密鑰處理模塊接收到32位密碼后,說明得 到的密鑰是正確的。此時,密鑰處理模塊首先把正確密鑰傳輸至移動硬盤數(shù)據(jù)加 密/解密模塊,并通過USB接口控制器向主機(jī)的身份認(rèn)證模塊返回強(qiáng)鏈運(yùn)行正常 的信號,確認(rèn)身份認(rèn)證成功。主機(jī)接收到身份認(rèn)證成功信號,重新進(jìn)行USB設(shè)備 枚舉識別出該設(shè)備為MEMS強(qiáng)鏈移動硬盤加密系統(tǒng)。同時移動硬盤數(shù)據(jù)加密/解密模塊則根據(jù)密鑰處理模塊傳來的正確密鑰,利用經(jīng)典的AES-128加密算法,對移 動硬盤內(nèi)的數(shù)據(jù)信息進(jìn)行加密/解密操作,使主機(jī)能夠正確讀取存儲在MEMS強(qiáng)鏈 移動硬盤加密系統(tǒng)內(nèi)經(jīng)過加密的內(nèi)容,并正確寫入數(shù)據(jù)信息。
當(dāng)計數(shù)器計數(shù)超出設(shè)定的最大值,還沒有接收到下一個來臨的密鑰信號,說 明MEMS強(qiáng)鏈執(zhí)行解碼操作遇到錯位碼而發(fā)生死鎖,這時MEMS強(qiáng)鏈需要停止運(yùn)行, 并進(jìn)行復(fù)位操作。同時通過USB接口控制器向主機(jī)的身份認(rèn)證模塊返回強(qiáng)鏈運(yùn)行 異常的信號。身份認(rèn)證宣告失敗,主機(jī)無法識別出此USB設(shè)備為USB移動硬盤, 提示需要再次輸入密碼,要求重新進(jìn)行身份認(rèn)證。然后,密鑰處理模塊根據(jù)所記 錄的密碼走位,通過I/O信號擴(kuò)展接口輸出復(fù)位信號到MEMS強(qiáng)鏈驅(qū)動電路,控 制MEMS強(qiáng)鏈反向走碼復(fù)位到初始相位。
主機(jī)通過身份認(rèn)證之后,就可以對該加密移動硬盤上的信息進(jìn)行正確的讀 寫。主機(jī)發(fā)起的讀寫命令信號,通過USB接口控制器傳輸給FPGA芯片,然后由 FPGA數(shù)據(jù)和控制信號分流模塊不經(jīng)過加密模塊,直接傳輸給IDE硬盤。在主機(jī) 通過USB接口控制器傳輸?shù)紽PGA數(shù)據(jù)分流模塊之間的數(shù)據(jù),都是未經(jīng)過加密(或 已經(jīng)過解密)的明文數(shù)據(jù)。而在FPGA加密/解密模塊與IDE硬盤之間傳輸?shù)臄?shù)據(jù), 都是巳經(jīng)過加密(或未經(jīng)過解密)的密文數(shù)據(jù),也就是說存儲在IDE硬盤內(nèi)的數(shù) 據(jù)信息,都是經(jīng)過AES-128加密算法加密過的信息。
另外,基于MEMS強(qiáng)鏈和FPGA技術(shù)的移動硬盤加密系統(tǒng)在首次使用時,通過 身份認(rèn)證之后還需要在非加密硬盤的操作系統(tǒng)環(huán)境下,對其進(jìn)行重新分區(qū)并格式 化硬盤,使其分區(qū)表信息也經(jīng)過AES-128加密算法的加密處理,這樣才能夠正確 的讀寫移動硬盤內(nèi)的加密信息。分區(qū)表信息經(jīng)過加密處理,同時也能夠保證,即 使把移動硬盤單獨(dú)偷走,在其他機(jī)器上也只能被操作系統(tǒng)認(rèn)為是一塊未格式化的 硬盤,而無法讀出其中的正確信息。
權(quán)利要求
1. 一種基于MEMS強(qiáng)鏈和FPGA技術(shù)的移動硬盤加密系統(tǒng),包括基于FPGA芯片的移動硬盤加密卡、移動硬盤加密卡驅(qū)動及身份認(rèn)證模塊、MEMS強(qiáng)鏈,其特征在于,所述基于FPGA芯片的移動硬盤加密卡包括USB接口控制器,I/O信號擴(kuò)展接口,MEMS強(qiáng)鏈驅(qū)動電路,密鑰處理模塊,數(shù)據(jù)、控制信號分流模塊,數(shù)據(jù)加密/解密模塊,其中,移動硬盤加密卡驅(qū)動模塊及身份認(rèn)證模塊通過USB接口控制器與FPGA移動硬盤加密卡內(nèi)部的數(shù)據(jù)、控制信號分流模塊進(jìn)行通訊,所有讀寫移動硬盤數(shù)據(jù)產(chǎn)生的控制信號和數(shù)據(jù)信號,都按照USB協(xié)議在主機(jī)和USB移動硬盤之間進(jìn)行傳輸,數(shù)據(jù)、控制信號分流模塊將接收到的身份認(rèn)證指令,轉(zhuǎn)為MEMS強(qiáng)鏈控制信號,通過I/O信號擴(kuò)展接口輸出到MEMS強(qiáng)鏈驅(qū)動電路,控制MEMS強(qiáng)鏈進(jìn)行解碼動作,解碼的同時,MEMS強(qiáng)鏈產(chǎn)生密鑰信號,發(fā)送到蜜鑰處理模塊,判斷正確碼或錯誤碼;若取得正確碼,密鑰處理模塊傳輸密鑰到數(shù)據(jù)加密/解密模塊,并向主機(jī)的身份認(rèn)證模塊返回強(qiáng)鏈正常運(yùn)行信號,確認(rèn)身份認(rèn)證成功,主機(jī)識別出移動硬盤,然后主機(jī)與移動硬盤之間通訊的所有信息,通過數(shù)據(jù)、控制信號分流模塊進(jìn)行分流傳輸,控制信號通過PIO方式直接傳輸,數(shù)據(jù)信號經(jīng)數(shù)據(jù)加密/解密模塊通過DMA方式傳輸;若判斷錯誤碼來臨,密鑰處理模塊通過I/O信號擴(kuò)展接口,發(fā)出復(fù)位相位到MEMS強(qiáng)鏈驅(qū)動電路,停止MEMS強(qiáng)鏈運(yùn)行,開始復(fù)位動作,同時向主機(jī)的身份認(rèn)證模塊返回強(qiáng)鏈異常運(yùn)行信號,確認(rèn)身份認(rèn)證失敗,主機(jī)請求繼續(xù)身份認(rèn)證。
2、 根據(jù)權(quán)利要求1所述的基于MEMS強(qiáng)鏈和FPGA技術(shù)的移動硬盤加密系統(tǒng), 其特征是,所述的I/O信號擴(kuò)展接口由移動硬盤加密卡的FPGA芯片進(jìn)行控制, 用于FPGA芯片與MEMS強(qiáng)鏈進(jìn)行通信,提供48位I/O信號控制MEMS強(qiáng)鏈驅(qū)動電 路,負(fù)責(zé)傳送MEMS強(qiáng)鏈運(yùn)行的控制信號以及接收MEMS強(qiáng)鏈返回的信號。
3、 根據(jù)權(quán)利要求1或2所述的基于MEMS強(qiáng)鏈和FPGA技術(shù)的移動硬盤加密 系統(tǒng),其特征是,所述的MEMS強(qiáng)鏈驅(qū)動電路由移動硬盤加密卡的FPGA芯片進(jìn)行控制,接收從1/0信號擴(kuò)展接口傳送過來的信號,用于驅(qū)動微電機(jī),使得MEMS 強(qiáng)鏈能夠正常工作。
4、 根據(jù)權(quán)利要求1所述的基于MEMS強(qiáng)鏈和FPGA技術(shù)的移動硬盤加密系統(tǒng), 其特征是,所述的密鑰處理模塊由移動硬盤加密卡內(nèi)部的FPGA芯片進(jìn)行控制, 用于比對從工作在主機(jī)上的身份認(rèn)證模塊傳送過來的密鑰和固化在MEMS強(qiáng)鏈機(jī) 械結(jié)構(gòu)中的密鑰,其一端與MEMS強(qiáng)鏈密鑰輸出線相連,用于接收MEMS強(qiáng)鏈發(fā)出 的密鑰反饋信號; 一端與USB接口控制器相連,用于接收從工作在主機(jī)上的身份 認(rèn)證模塊傳送過來的身份認(rèn)證信號; 一端與加密/解密模塊相連,在密鑰全部接 收到后,向加密/解密模塊發(fā)送密鑰;另一端連接1/0信號擴(kuò)展接口,用于在MEMS 強(qiáng)鏈發(fā)生死鎖時,輸出控制MEMS強(qiáng)鏈復(fù)位的信號。
5、 根據(jù)權(quán)利要求1所述的基于MEMS強(qiáng)鏈和FPGA技術(shù)的移動硬盤加密系統(tǒng), 其特征是,所述的數(shù)據(jù)、控制信號分流模塊,由移動硬盤加密卡的FPGA芯片進(jìn) 行控制。主機(jī)在進(jìn)行硬盤讀寫時,數(shù)據(jù)信號通過DMA方式傳輸,控制信號通過 PIO方式傳輸,F(xiàn)PGA芯片根據(jù)ATA總線協(xié)議規(guī)定的這兩種傳輸方式的命令格式, 在主機(jī)對移動硬盤進(jìn)行讀寫時,對產(chǎn)生的數(shù)據(jù)信號和控制信號進(jìn)行分流,數(shù)據(jù)信 號流經(jīng)過加密/解密模塊的處理之后,再傳輸?shù)接脖P存儲介質(zhì),而控制信號流則 不經(jīng)過加密/解密模塊,直接傳輸給IDE硬盤。
6、 根據(jù)權(quán)利要求1或5所述的基于MEMS強(qiáng)鏈和FPGA技術(shù)的移動硬盤加密 系統(tǒng),其特征是,所述的數(shù)據(jù)加密/解密模塊,由移動硬盤加密卡的FPGA芯片進(jìn) 行控制,以MEMS強(qiáng)鏈機(jī)械結(jié)構(gòu)產(chǎn)生的密鑰,采用加密算法,對主機(jī)在讀寫移動 硬盤時傳輸?shù)臄?shù)據(jù)信號流,進(jìn)行加密/解密處理。
7、 根據(jù)權(quán)利要求1所述的基于MEMS強(qiáng)鏈和FPGA技術(shù)的移動硬盤加密系統(tǒng), 其特征是,所述的移動硬盤加密卡驅(qū)動及身份認(rèn)證模塊,包括驅(qū)動模塊和身份認(rèn) 證模塊,驅(qū)動模塊基于傳統(tǒng)的USB移動硬盤的驅(qū)動程序改寫,用于在非加密硬盤 的操作系統(tǒng)環(huán)境下驅(qū)動USB移動硬盤接口芯片,移動硬盤初次連接到未安裝驅(qū)動 的操作系統(tǒng)環(huán)境下,安裝此加密卡驅(qū)動后,操作系統(tǒng)無法識別移動硬盤且無法枚 舉出移動硬盤的盤符,必須等到身份認(rèn)證通過之后才能夠枚舉出移動硬盤;身份 認(rèn)證模塊是裝載在非加密硬盤操作系統(tǒng)環(huán)境下的一個身份認(rèn)證程序,提供MEMS 強(qiáng)鏈移動硬盤加密系統(tǒng)的身份認(rèn)證功能運(yùn)行身份認(rèn)證模塊后,系統(tǒng)等待用戶輸入身份認(rèn)證信息,用戶輸入認(rèn)證信息之后,該模塊通過USB接口將此信息發(fā)送到加 密卡芯片,進(jìn)行身份認(rèn)證過程,如果身份認(rèn)證通過,則數(shù)據(jù)加密/解密模塊以強(qiáng) 鏈密鑰信號對數(shù)據(jù)進(jìn)行加密、解密操作,主機(jī)識別出此USB移動硬盤,可以讀取 存儲在此移動硬盤上的加密信息,如果身份認(rèn)證失敗,主機(jī)無法識別出此USB移 動硬盤,同時復(fù)位MEMS強(qiáng)鏈到初始位置,繼續(xù)下一次身份認(rèn)證。
全文摘要
一種微機(jī)電系統(tǒng)技術(shù)領(lǐng)域的基于MEMS強(qiáng)鏈和FPGA技術(shù)的移動硬盤加密系統(tǒng)。本發(fā)明中,移動硬盤加密卡與身份認(rèn)證模塊進(jìn)行USB通訊,將認(rèn)證密碼通過I/O接口輸出到驅(qū)動電路,驅(qū)動強(qiáng)鏈進(jìn)行解碼。同時,強(qiáng)鏈產(chǎn)生密鑰信號,密鑰處理模塊讀取密鑰,判斷正確碼或錯誤碼。若為正確碼,密鑰處理模塊發(fā)送密鑰到數(shù)據(jù)加密/解密模塊,并返回正常運(yùn)行信號到主機(jī),身份認(rèn)證成功。此時,主機(jī)識別出該移動硬盤。若為錯誤碼,密鑰處理模塊發(fā)送復(fù)位相位到I/O接口,控制強(qiáng)鏈復(fù)位,并返回運(yùn)行異常信號到主機(jī),身份認(rèn)證失敗,需繼續(xù)認(rèn)證。本發(fā)明達(dá)到通過物理機(jī)械式的方法產(chǎn)生密鑰,來加密移動硬盤數(shù)據(jù)信息的目的,安全性能高,使用簡便。
文檔編號G06F3/06GK101281501SQ200810038180
公開日2008年10月8日 申請日期2008年5月29日 優(yōu)先權(quán)日2008年5月29日
發(fā)明者張衛(wèi)平, 李怡斌, 堅(jiān) 湯, 鵬 許, 陳文元 申請人:上海交通大學(xué)