專利名稱:一種用于usb儲(chǔ)存設(shè)備中加密數(shù)據(jù)的解密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于USB儲(chǔ)存設(shè)備中加密數(shù)據(jù)的解密方法,屬于安全存儲(chǔ)應(yīng)用 領(lǐng)域。
背景技術(shù):
目前,U盤存儲(chǔ)設(shè)備被廣泛使用,為了數(shù)據(jù)安全,往往在U盤存儲(chǔ)設(shè)備內(nèi)儲(chǔ)存 加密的數(shù)據(jù),以有效保障數(shù)字資產(chǎn)信息的安全,使其不被非法用戶獲取。因此,將原文 數(shù)據(jù)高速加密保存到U盤存儲(chǔ)設(shè)備被廣泛應(yīng)用于各種信息安全領(lǐng)域。
目前,為了對U盤存儲(chǔ)設(shè)備中保存的加密數(shù)據(jù)進(jìn)行解密,采取的措施是在普通 移動(dòng)存儲(chǔ)設(shè)備中增加一解密模塊。但是,目前的設(shè)計(jì)普遍存在數(shù)據(jù)解密速度慢問題。
隨著U盤存儲(chǔ)設(shè)備大容量移動(dòng)存儲(chǔ)設(shè)備的廣泛應(yīng)用,這些設(shè)備上所存儲(chǔ)的加密 數(shù)據(jù)量越來越大。因此如何提高解密效率成為本領(lǐng)域技術(shù)人員努力的方向。發(fā)明內(nèi)容
本發(fā)明目的是提供一種用于USB儲(chǔ)存設(shè)備中加密數(shù)據(jù)的解密方法,該方法實(shí)現(xiàn) 了密文數(shù)據(jù)、明文數(shù)據(jù)和解密算法的分離,且提高了主機(jī)與移動(dòng)存儲(chǔ)設(shè)備之間數(shù)據(jù)解密 速度。
為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是1. 一種用于USB儲(chǔ)存設(shè)備中加密數(shù)據(jù)的解密方法,包括以下步驟 步驟1.將轉(zhuǎn)接裝置設(shè)置于主機(jī)與U盤之間,此轉(zhuǎn)接裝置的從端口與主機(jī)的主端口 連接,轉(zhuǎn)接裝置的主端口與U盤的端口連接,轉(zhuǎn)接裝置的解密模塊用于解密主機(jī)與U盤 之間的傳輸數(shù)據(jù),此轉(zhuǎn)接裝置內(nèi)設(shè)置有四個(gè)數(shù)據(jù)緩存區(qū),且其第一數(shù)據(jù)存儲(chǔ)區(qū)、第二數(shù) 據(jù)存儲(chǔ)區(qū)、第三數(shù)據(jù)存儲(chǔ)區(qū)和第四數(shù)據(jù)存儲(chǔ)區(qū)沿順時(shí)針方向排列;步驟2.轉(zhuǎn)接裝置的從端口收到來自主機(jī)的讀指令和數(shù)據(jù)單元長度,并將此讀指令和 數(shù)據(jù)單元長度轉(zhuǎn)發(fā)給U盤;步驟3.配置主機(jī)指針、U盤指針和解密指針,所述主機(jī)指針,用于標(biāo)識主機(jī)讀取 數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)區(qū)的地址,所述U盤指針,用于標(biāo)識接受來自U盤的數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)區(qū) 的地址,所述加密指針,用于標(biāo)識解密模塊待處理數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)區(qū)的地址;步驟4.初始化時(shí)將U盤指針指向第二數(shù)據(jù)緩存區(qū),主機(jī)指針和加密指針指向第一 數(shù)據(jù)緩存區(qū);步驟5.轉(zhuǎn)接裝置主端口向U盤指針?biāo)傅漠?dāng)前數(shù)據(jù)緩沖區(qū)傳送一個(gè)單元密文數(shù)據(jù);步驟6.如果所述轉(zhuǎn)接裝置主端口為“空閑”狀態(tài),并且當(dāng)U盤指針指向的當(dāng)前數(shù) 據(jù)緩存區(qū)沿順時(shí)針方向地下一數(shù)據(jù)緩存區(qū)狀態(tài)為“空”,則U盤指針沿順時(shí)針方向指向 下一個(gè)數(shù)據(jù)緩存區(qū),同時(shí),加密指針沿順時(shí)針方向指向下一個(gè)數(shù)據(jù)緩存區(qū);步驟7.轉(zhuǎn)接裝置主端口向U盤指針?biāo)傅臄?shù)據(jù)緩沖區(qū)傳送下一個(gè)單元密文數(shù)據(jù),解密模塊將解密指針?biāo)傅臄?shù)據(jù)緩沖區(qū)數(shù)據(jù)進(jìn)行解密處理;
步驟8. U盤指針沿順時(shí)針方向指向下一個(gè)數(shù)據(jù)緩存區(qū),同時(shí),解密指針沿順時(shí)針方 向指向下一個(gè)數(shù)據(jù)緩存區(qū),同時(shí),主機(jī)指針沿順時(shí)針方向指向下一個(gè)數(shù)據(jù)緩存區(qū);
步驟9.轉(zhuǎn)接裝置主端口向U盤指針?biāo)傅臄?shù)據(jù)緩沖區(qū)傳送下一個(gè)單元密文數(shù)據(jù), 解密模塊將解密指針?biāo)傅臄?shù)據(jù)緩沖區(qū)數(shù)據(jù)進(jìn)行解密處理,轉(zhuǎn)接裝置從端口將主機(jī)指針 所指的數(shù)據(jù)緩沖區(qū)內(nèi)數(shù)據(jù)傳輸給主機(jī)。上述技術(shù)方案中的有關(guān)內(nèi)容解釋如下
1、上述方案中,所述數(shù)據(jù)緩存區(qū)的存儲(chǔ)空間與所述數(shù)據(jù)單元長度相等,所述四個(gè)數(shù) 據(jù)緩存區(qū)在地址上為連續(xù)的四個(gè)數(shù)據(jù)緩存區(qū)。2、上述方案中,還包括一個(gè)記錄解密數(shù)據(jù)的單元數(shù)的長度計(jì)數(shù)器,在進(jìn)行所述 轉(zhuǎn)接裝置主端口向U盤指針?biāo)傅漠?dāng)前數(shù)據(jù)緩沖區(qū)傳送一個(gè)單元密文數(shù)據(jù)操作后,所述 長度數(shù)器的計(jì)數(shù)值減1,當(dāng)長度計(jì)數(shù)器等于0,并且主機(jī)指針等于U盤指針,結(jié)束本次數(shù) 據(jù)解密過程。3、上述方案中,所述解密模塊中設(shè)置至少三種解密算法。由于上述技術(shù)方案運(yùn)用,本發(fā)明與現(xiàn)有技術(shù)相比具有下列優(yōu)點(diǎn)和效果
本發(fā)明使得整個(gè)U盤移動(dòng)儲(chǔ)存設(shè)備解密流轉(zhuǎn)接裝置在工作過程中,數(shù)據(jù)傳輸速度得 到提升。使用讀速度在10ΜΒΛ以下的移動(dòng)存儲(chǔ)設(shè)備時(shí),基本可做到寫速度無損;在使 用速度在30ΜΒΛ的移動(dòng)存儲(chǔ)設(shè)備時(shí),通過加密轉(zhuǎn)接裝置寫的速度可在25ΜΒΛ以上;其 次,實(shí)現(xiàn)了明文數(shù)據(jù)、密文數(shù)據(jù)和加密算法的分離,大大提高了數(shù)據(jù)的安全性;再次, 解密過程對于普通用戶是透明的,使用方便。
附圖1為本發(fā)明轉(zhuǎn)接裝置結(jié)構(gòu)示意圖; 附圖2為本發(fā)明流程示意附圖3為本發(fā)明轉(zhuǎn)接裝置硬件示意附圖4為本發(fā)明軟件結(jié)構(gòu)示意附圖5為本發(fā)明數(shù)據(jù)并行示意附圖6為計(jì)算機(jī)從移動(dòng)存儲(chǔ)設(shè)備讀數(shù)據(jù)的時(shí)間流程圖。
具體實(shí)施例方式下面結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步描述
實(shí)施例一種用于USB儲(chǔ)存設(shè)備中加密數(shù)據(jù)的解密方法,包括以下步驟 步驟1.將轉(zhuǎn)接裝置設(shè)置于主機(jī)與U盤之間,此轉(zhuǎn)接裝置的從端口 USB Dev與主機(jī) 的主端口連接,轉(zhuǎn)接裝置的主端口 USB Dev與U盤的從端口連接,轉(zhuǎn)接裝置的解密模塊 用于解密主機(jī)與U盤之間的傳輸數(shù)據(jù),此轉(zhuǎn)接裝置內(nèi)設(shè)置有四個(gè)數(shù)據(jù)緩存區(qū),且其第一 數(shù)據(jù)存儲(chǔ)區(qū)、第二數(shù)據(jù)存儲(chǔ)區(qū)、第三數(shù)據(jù)存儲(chǔ)區(qū)和第四數(shù)據(jù)存儲(chǔ)區(qū)沿順時(shí)針方向排列;
步驟2.轉(zhuǎn)接裝置的從端口收到來自主機(jī)的 讀指令和數(shù)據(jù)單元長度,并將此讀指令和 數(shù)據(jù)單元長度轉(zhuǎn)發(fā)給U盤;
步驟3. 配置主機(jī)指針usbDevicePos、U盤指針usbHostPos和解密指針encrPos,所述主機(jī)指針usbDevicePos,用于標(biāo)識主機(jī)讀取數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)區(qū)的地址,所述U盤 指針usbHostPos,用于標(biāo)識接收來自U盤的數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)區(qū)的地址,所述加密指針 encrPos,用于標(biāo)識解密模塊待處理數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)區(qū)的地址;
步驟4.初始化時(shí)將U盤指針usbHostPos指向第二數(shù)據(jù)緩存區(qū)FIF02,主機(jī)指針 usbDevicePos和加密指針encrPos指向第一數(shù)據(jù)緩存區(qū)FIFOl ;
步驟5.轉(zhuǎn)接裝置主端口向U盤指針usbHostPos所指的當(dāng)前數(shù)據(jù)緩沖區(qū)傳送一個(gè)單 元密文數(shù)據(jù);
步驟6.如果所述轉(zhuǎn)接裝置主端口為“空閑”狀態(tài)flgH0StTXRXD0ne==l,并且當(dāng)U 盤指針usbHostPos指向的當(dāng)前數(shù)據(jù)緩存區(qū)FIFO沿順時(shí)針方向地下一數(shù)據(jù)緩存區(qū)FIFO, (usbHostPos+1)&0χ03狀態(tài)為“空”,則U盤指針usbHostPos沿順時(shí)針方向指向下一個(gè) 數(shù)據(jù)緩存區(qū)FIFO,同時(shí),加密指針encrPos沿順時(shí)針方向指向下一個(gè)數(shù)據(jù)緩存區(qū)FIFO;
步驟7.轉(zhuǎn)接裝置主端口向U盤指針?biāo)傅臄?shù)據(jù)緩沖區(qū)傳送下一個(gè)單元密文數(shù)據(jù), 解密模塊將解密指針?biāo)傅臄?shù)據(jù)緩沖區(qū)數(shù)據(jù)進(jìn)行解密處理;
步驟8. U盤指針usbHostPos沿順時(shí)針方向指向下一個(gè)數(shù)據(jù)緩存區(qū)FIFO,同時(shí),加 密指針encrPos沿順時(shí)針方向指向下一個(gè)數(shù)據(jù)緩存區(qū)FIFO,同時(shí),主機(jī)指針usbDevicePos 沿順時(shí)針方向指向下一個(gè)數(shù)據(jù)緩存區(qū)FIFO ;
步驟9.轉(zhuǎn)接裝置主端口向U盤指針?biāo)傅臄?shù)據(jù)緩沖區(qū)傳送下一個(gè)單元密文數(shù)據(jù), 解密模塊將解密指針?biāo)傅臄?shù)據(jù)緩沖區(qū)數(shù)據(jù)進(jìn)行解密處理,轉(zhuǎn)接裝置從端口將主機(jī)指針 usbDevicePos所指的數(shù)據(jù)緩沖區(qū)內(nèi)數(shù)據(jù)傳輸給主機(jī)。所述數(shù)據(jù)緩存區(qū)的存儲(chǔ)空間與所述數(shù)據(jù)單元長度相等,所述四個(gè)數(shù)據(jù)緩存區(qū)在 地址上為連續(xù)的四個(gè)數(shù)據(jù)緩存區(qū)。還包括一個(gè)記錄解密數(shù)據(jù)的單元數(shù)的長度數(shù)器,在進(jìn)行所述轉(zhuǎn)接裝置主端口 向U盤指針usbHostPos所指的當(dāng)前數(shù)據(jù)緩沖區(qū)傳送一個(gè)單元密文數(shù)據(jù)操作后,所述長 度數(shù)器的計(jì)數(shù)值減1,當(dāng)長度計(jì)數(shù)器等于0,并且主機(jī)指針usbDevicePos等于U盤指針 usbHostPos,結(jié)束本次數(shù)據(jù)解密過程。所述解密模塊中設(shè)置至少三種解密算法。本實(shí)施例上述內(nèi)容具體工作過程如下。在本實(shí)施列的USB儲(chǔ)存設(shè)備中,有三種類型的數(shù)據(jù)在轉(zhuǎn)接裝置的主端口 USB Host和轉(zhuǎn)接裝置的從端口 USB Dev之間傳送USB命令塊包CBW、USB狀態(tài)CSW和普 通數(shù)據(jù)DATA。USB命令塊包CBW是主機(jī)的主端口發(fā)送到轉(zhuǎn)接裝置的從端口 USB Dev 的命令,命令格式遵從SCSI傳輸命令集,轉(zhuǎn)接裝置需將SCSI命令從命令塊包CBW中提 取出來,執(zhí)行對應(yīng)命令,并把此CBW命令包,通過轉(zhuǎn)接裝置的主端口 USB Host轉(zhuǎn)發(fā)到 U盤。USB狀態(tài)包CSW反映當(dāng)前命令塊包執(zhí)行的狀態(tài),是U盤發(fā)送到轉(zhuǎn)接裝置的主端 口 USB Host,轉(zhuǎn)接裝置通過從端口 USB Dev轉(zhuǎn)發(fā)到主機(jī)的主端口。硬件模塊說明
(1)、數(shù)據(jù)緩存區(qū)FIFO (2K):大小為2K字節(jié),USB數(shù)據(jù)流存儲(chǔ)專用。由于 USB2.0數(shù)據(jù)包大小為512字節(jié),因此,2K字節(jié)的FIFO劃分為4塊,每塊大小為512字 節(jié)。(2)、轉(zhuǎn)接裝置的主端口 USBHost:轉(zhuǎn)接裝置硬件模塊,支持USB1.1和USB2.0協(xié)議,可通過Host端口接收U盤的數(shù)據(jù)到FIFO,或通過Host端口發(fā)送FIFO內(nèi)
的數(shù)據(jù)到U盤。 (3)、轉(zhuǎn)接裝置的從端口 USBDev:轉(zhuǎn)接裝置硬件模塊,支持USB1.1和 USB2.0協(xié)議,可通過Device端口接收來自主機(jī)的數(shù)據(jù)到FIFO,或通過Device端口發(fā)送 FIFO內(nèi)的數(shù)據(jù)到主機(jī)。(4)、解密模塊ENCR 解密控制模塊,通過調(diào)用SM1,SM4,DES等算法,
對數(shù)據(jù)緩沖區(qū)FIFO內(nèi)的數(shù)據(jù)進(jìn)行加解密。(5)、SMl 加解密算法模塊,受解密模塊ENCR調(diào)度。(6)、SM4 加解密算法模塊,受解密模塊ENCR調(diào)度。(7)、DES 加解密算法模塊,受解密模塊ENCR調(diào)度。設(shè)計(jì)結(jié)構(gòu)如下
(1)、USBHost 中斷服務(wù)函數(shù)USBHost_ISR O 轉(zhuǎn)接裝置的主端口 USB Host模塊完成一次數(shù)據(jù)傳輸(發(fā)送或接收512字節(jié)),則會(huì) 產(chǎn)生一次中斷,對應(yīng)中斷服務(wù)函數(shù)中,會(huì)配置本模塊狀態(tài)標(biāo)記。(2)、USBDev 中斷服務(wù)函數(shù)USBDev_ISR O
轉(zhuǎn)接裝置的從端口 USB Dev模塊完成一次數(shù)據(jù)傳輸(發(fā)送或接收512字節(jié)),則會(huì)產(chǎn) 生一次中斷,對應(yīng)中斷服務(wù)函數(shù)中,會(huì)配置本模塊狀態(tài)標(biāo)記。(3)、ENCR 中斷服務(wù)函數(shù)Encr_ISR O
解密模塊ENCR模塊完成一次解密(解密512字節(jié)),則會(huì)產(chǎn)生一次中斷,對應(yīng)中斷 服務(wù)函數(shù)中,會(huì)配置本模塊狀態(tài)標(biāo)記。(4)、轉(zhuǎn)接裝置的主端口1^3110^狀態(tài)標(biāo)記:(^1103叮乂1^00朋 標(biāo)記USB Host模塊忙碌或空閑。AgHostTxRxDone 等于 0,USB Host 忙碌; AgHostTxRxDone 等于 1,USB Host 空閑;
(5)、轉(zhuǎn)接裝置的從端口113306丫狀態(tài)標(biāo)記:(^06¥^^^1^001^ 標(biāo)記USB Dev模塊忙碌或空閑。flgDeviceTxRxDone 等于 0,USB Dev 忙碌; AgDeviceTxRxDone 等于 1,USB Dev 空閑;
(6)、解密模塊ENCR狀態(tài)標(biāo)記flgSecurityDone 標(biāo)記解密模塊ENCR模塊忙碌或空閑。flgSecurityDone 等于 0,ENCR 忙碌; flgSecurityDone 等于 1,ENCR 空閑;
(7)、U盤指針usbHostPos
當(dāng)前USB Host操作的FIFO起始地址。USB Host收到或發(fā)送一個(gè)數(shù)據(jù)包后,指針指 向下一個(gè) FIFO,順序?yàn)镕IFOO — FIFOl — FIF02 — FIF03 — FIFOO。usbHostPos 等于 0,USB Host 當(dāng)前操作的為 FIFOO ; usbHostPos 等于 1,USB Host 當(dāng)前操作的為 FIFOl ; usbHostPos 等于 2,USB Host 當(dāng)前操作的為 FIF02 ; usbHostPos 等于 3,USB Host 當(dāng)前操作的為 FIF03 ;(8)、主機(jī)指針usbDevicePos當(dāng)前USB Dev操作的FIFO起始地址。USB Dev收到或發(fā)送一個(gè)數(shù)據(jù)包后,指針指 向下一個(gè) FIFO,順序?yàn)镕IFOO — FIFOl — FIF02 — FIF03 — FIFOO。
usbDevicePos 等于 0,USB Host 當(dāng)前操作的為 FIFOO ; usbDevicePos 等于 1,USB Host 當(dāng)前操作的為 FIFOl ; usbDevicePos 等于 2,USB Host 當(dāng)前操作的為 FIF02 ; usbDevicePos 等于 3,USB Host 當(dāng)前操作的為 FIF03 ;(9)、解密指針encrPos當(dāng)前ENCR操作的FIFO起始地址。ENCR解密一個(gè)數(shù)據(jù)包后,指針指向下一個(gè) FIFO,順序?yàn)镕IFOO — FIFOl — FIF02 — FIF03 — FIFOO。
encrPos 等于 0,USB Host 當(dāng)前操作的為 FIFOO ; encrPos等于1,USB Host當(dāng)前操作的為FIFOl ; encrPos等于2,USB Host當(dāng)前操作的為FIF02 ; encrPos等于3,USB Host當(dāng)前操作的為FIF03 ;(10)、數(shù)據(jù)緩存區(qū)FIFO狀態(tài)標(biāo)記FIFO分為三種狀態(tài)FIFO空、FIFO數(shù)據(jù)滿、FIFO數(shù)據(jù)已加解或解密。
FIFO狀態(tài)等于0,F(xiàn)IFO為空; FIFO狀態(tài)等于1,F(xiàn)IFO數(shù)據(jù)滿;FIFO狀態(tài)等于2,F(xiàn)IFO數(shù)據(jù)已加密或解密;(11)、USB數(shù)據(jù)流傳輸管理和模塊調(diào)度程序負(fù)責(zé)USB Host、USB Dev和ENCR三個(gè)硬件模塊的調(diào)度,管理數(shù)據(jù)流讀寫過程。
讀流程(PC機(jī)從U盤讀數(shù)據(jù)工作流程)U 盤一USB Host — ENCR 解密一USB Dev — PC 機(jī)PC機(jī)從U盤讀取數(shù)據(jù)詳細(xì)步驟1、收到PC機(jī)發(fā)出CBW包(讀取數(shù)據(jù)命令包);2、從CBW包中獲取待傳輸數(shù)據(jù)長度,如果待傳輸數(shù)據(jù)長度等于零,跳轉(zhuǎn)到10;3、USBHost向U盤發(fā)送此CBW包;4、模塊指針初始化,配置UsbHostPos= 1,UsbDevicePos=O, encrPos=0 ;5、配置USBHost模塊接收數(shù)據(jù)指針指向FIFOl (UsbHostPos=I),U盤發(fā)送Data In 請求,配置 USB Host 模塊“忙碌” AgHostTxRxDone = = O;6、如果USB Host 模塊“空閑” flgHostTxRxDone = = 1,并且 USB Host 指針 usbHostPos指向的當(dāng)前FIFO位置正向循環(huán)加一位置(usbHostPos +1)&0χ03的FIFO狀態(tài) 為“空”設(shè)置當(dāng)前FIFO,usttiostPos指向的FIFO,狀態(tài)為“數(shù)據(jù)滿”; 配置USB Host指針指向下一個(gè)數(shù)據(jù)緩沖區(qū)FIFO正向循環(huán)加一 usbHostPos = (usbHostPos+l)&0x03 ;配置USB Host模塊接收數(shù)據(jù)FIFO為USB Host指針指向的FIFO (usbHostPos);傳輸數(shù)據(jù)單元數(shù)=傳輸數(shù)據(jù)單元數(shù)一 1 ;如果傳輸數(shù)據(jù)單元數(shù)大于零,USB Host向存儲(chǔ)設(shè)備發(fā)送Data In請求,接收數(shù)據(jù)包; 置 USB Host 模塊為“忙碌” (flgHostTxRxDone = 0);
7、如果ENCR模塊當(dāng)前狀態(tài)為“空閑”(flgSecurityD0ne = =l),并且解密指針指 向的當(dāng)前FIFO位置encrPos正向循環(huán)加一位置(encrPos+1) &0x03的FIFO狀態(tài)為“數(shù)據(jù) 滿”,則
配置解密指針指向的當(dāng)前FIFO狀態(tài)為“數(shù)據(jù)已加密或解密”; 解密指針指向下一個(gè) FIFO (encrPos = (encrPos +1) &0x03); 配置ENCR模塊解密數(shù)據(jù)FIFO為ENCR指針指向的FIFO (encrPos ); 配置 ENCR 模塊為“忙碌” (flgSecurityDone = 0); 啟動(dòng)ENCR模塊,對數(shù)據(jù)進(jìn)行解密;
8、如果USBDev模塊當(dāng)前狀態(tài)為“空閑”(flgDeviceTxRxDone == 1),并且USB Dev 當(dāng)前 FIFO 位置 usbDevicePos 正向循環(huán)加一位置((usbDevicePos+1) &0x03)的 FIFO 狀態(tài)為“數(shù)據(jù)已解密”,則
配置U盤指針指向的當(dāng)前FIFO狀態(tài)為“空”;
U盤指針指向下一個(gè)FIFO (正向循環(huán)加一)usbDevicePos = (usbDevicePos +1)&0χ03 ;
配置USB Dev模塊發(fā)送數(shù)據(jù)FIFO為當(dāng)前U盤指針指向的FIFOusbDevicePos ; 配置 USB Dev 模塊為“忙碌” flgDeviceTxRxDone = 0 ;
發(fā)送數(shù)據(jù)包給PC機(jī);
9、如果此時(shí)數(shù)據(jù)傳輸單元數(shù)不等于零,或者usbDevicePos+1)&0χ03不等于 usbHostPos,則跳轉(zhuǎn)到步驟6 ;
10、USBHost向存儲(chǔ)設(shè)備發(fā)送Data In請求,獲取CSW包;
11、等待USBHost指令完成;
12、USBHost 讀取 CSW 包;
13、等待USBDev空閑;
14、USBDev發(fā)送CSW包給PC主機(jī);
15、退出。注其中,USB Host模塊、USB Dev模塊和ENCR模塊在完成一次操作后,將 觸發(fā)本模塊的中斷,打斷程序循環(huán),中斷服務(wù)函數(shù)USBH0St_ISR()、USBDev_ISR()和 ENCR_ISR()將執(zhí)行,分別會(huì)配置模塊狀態(tài)變量flgHostTxRxDone、flgSecurityDone和 flgDeviceTxRxDone。如附圖5所示,
圖5中(1)表示,轉(zhuǎn)接裝置的主端口 USB Host接收第一包,轉(zhuǎn)接裝置的解密模塊 Encr空閑,轉(zhuǎn)接裝置的從端口模塊USB Dev空閑;
圖5中(2)表示,Host接收完第一包,Encr空閑,Dev空閑; 圖5中(3)表示,Host接收第二包,Encr解密第一包,Dev空閑; 圖5中(4)表示,Host接收第二包,Encr解密完第一包,Dev空閑; 圖5中(5)表示,Host接收完第二包,Encr空閑,Dev空閑; 圖5中(6)表示,Host接收第三包,Encr解密第二包,Dev發(fā)送第一包;圖5中(7)表示,Host接收第四包,Encr解密第三包,Dev發(fā)送第二包; 圖5中(8)表示,Host接收第五包,Encr解密第四包,Dev發(fā)送第三包。如附圖6所示,對加 密轉(zhuǎn)接裝置最大傳輸性能進(jìn)行評估,評估基準(zhǔn)如下USB 高速傳輸模式,每次都以批量傳輸所支持的最大包數(shù)(128個(gè))進(jìn)行傳輸,USB接口傳 輸時(shí)間是理論時(shí)間,而非接入移動(dòng)存儲(chǔ)設(shè)備后的時(shí)間,系統(tǒng)時(shí)鐘80MHZ,USB接口傳輸 一個(gè)數(shù)據(jù)包(512B)時(shí)間是13us,USB接口傳輸一個(gè)命令包或狀態(tài)包時(shí)間是7.5us,加 密/解密一個(gè)數(shù)據(jù)包時(shí)間是6us。性能如下傳輸128個(gè)數(shù)據(jù)包(64KB)所需理論時(shí)間為128* (Tcpu2+Tdd) + Tcpul+ (Tcbw+Tcpu2) + (Thd+Tcpu2) + (Tdec+Tcpu2) + (Tcsw+Tcpu2) = 128* (2+13) +3+ (7.5 +2) + (13+2) + (6+2) + (7.5+2) =1963us 讀的傳輸速率為 64KB/1963us=31.8MB/s。上述實(shí)施例只為說明本發(fā)明的技術(shù)構(gòu)思及特點(diǎn),其目的在于讓熟悉此項(xiàng)技術(shù)的 人士能夠了解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,并不能以此限制本發(fā)明的保護(hù)范圍。凡根據(jù)本 發(fā)明精神實(shí)質(zhì)所作的等效變化或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種用于USB儲(chǔ)存設(shè)備中加密數(shù)據(jù)的解密方法,其特征在于包括以下步驟 步驟1.將轉(zhuǎn)接裝置設(shè)置于主機(jī)與U盤之間,此轉(zhuǎn)接裝置的從端口(USBDev)與主機(jī)的主端口連接,轉(zhuǎn)接裝置的主端口(USBHost)與U盤的端口連接,轉(zhuǎn)接裝置的解 密模塊用于解密主機(jī)與U盤之間的傳輸數(shù)據(jù),此轉(zhuǎn)接裝置內(nèi)設(shè)置有四個(gè)數(shù)據(jù)緩存區(qū),且 其第一數(shù)據(jù)存儲(chǔ)區(qū)、第二數(shù)據(jù)存儲(chǔ)區(qū)、第三數(shù)據(jù)存儲(chǔ)區(qū)和第四數(shù)據(jù)存儲(chǔ)區(qū)沿順時(shí)針方向 排列;步驟2.轉(zhuǎn)接裝置的從端口收到來自主機(jī)的讀指令和數(shù)據(jù)單元長度,并將此讀指令和 數(shù)據(jù)單元長度轉(zhuǎn)發(fā)給U盤;步驟3. 配置主機(jī)指針(usbDevicePos)、U盤指針(usbHostPos)和解密指針 (encrPos),所述主機(jī)指針(usbDevicePos),用于標(biāo)識主機(jī)讀取數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)區(qū)的 地址,所述U盤指針(usbHostPos),用于標(biāo)識接收來自U盤的數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)區(qū)的地 址,所述加密指針(encrPos),用于標(biāo)識解密模塊待處理數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)區(qū)的地址;步驟4. 初始化時(shí)將U盤指針(usbHostPos)指向第二數(shù)據(jù)緩存區(qū)(第二 FIF02),主機(jī)指針(usbDevicePos)和加密指針(encrPos)指向第一數(shù)據(jù)緩存區(qū)(第一 FIF01);步驟5.轉(zhuǎn)接裝置主端口向U盤指針(usbHostPos)所指的當(dāng)前數(shù)據(jù)緩沖區(qū)傳送一 個(gè)單元密文數(shù)據(jù);步驟6.如果所述轉(zhuǎn)接裝置主端口為“空閑”狀態(tài)(flgH0StTxRxD0ne==l),并且 當(dāng)U盤指針(usbHostPos)指向的當(dāng)前數(shù)據(jù)緩存區(qū)(FIFO)沿順時(shí)針方向地下一數(shù)據(jù)緩 存區(qū)(FIFO) ((usbHostPos+1)&0χ03)狀態(tài)為“空”,則 U 盤指針(usbHostPos)沿 順時(shí)針方向指向下一個(gè)數(shù)據(jù)緩存區(qū)(FIFO),同時(shí),解密指針(encrPos)沿順時(shí)針方向 指向下一個(gè)數(shù)據(jù)緩存區(qū)(FIFO);步驟7.轉(zhuǎn)接裝置主端口向U盤指針?biāo)傅臄?shù)據(jù)緩沖區(qū)傳送下一個(gè)單元密文數(shù)據(jù), 解密模塊將解密指針?biāo)傅臄?shù)據(jù)緩沖區(qū)數(shù)據(jù)進(jìn)行解密處理;步驟8. U盤指針(usbHostPos)沿順時(shí)針方向指向下一個(gè)數(shù)據(jù)緩存區(qū)(FIFO), 同時(shí),加密指針(encrPos)沿順時(shí)針方向指向下一個(gè)數(shù)據(jù)緩存區(qū)(FIFO),同時(shí),主機(jī) 指針(usbDevicePos)沿順時(shí)針方向指向下一個(gè)數(shù)據(jù)緩存區(qū)(FIFO);步驟9.轉(zhuǎn)接裝置主端口向U盤指針?biāo)傅臄?shù)據(jù)緩沖區(qū)傳送下一個(gè)單元密文數(shù)據(jù), 解密模塊將解密指針?biāo)傅臄?shù)據(jù)緩沖區(qū)數(shù)據(jù)進(jìn)行解密處理,轉(zhuǎn)接裝置從端口將主機(jī)指針 (usbDevicePos )所指的數(shù)據(jù)緩沖區(qū)內(nèi)數(shù)據(jù)傳輸給主機(jī)。
2.根據(jù)權(quán)利要求1所述的解密方法,其特征在于所述數(shù)據(jù)緩存區(qū)的存儲(chǔ)空間與所 述數(shù)據(jù)單元長度相等,所述四個(gè)數(shù)據(jù)緩存區(qū)在地址上為連續(xù)的四個(gè)數(shù)據(jù)緩存區(qū)。
3.根據(jù)權(quán)利要求1所述的解密方法,其特征在于還包括一個(gè)記錄解密數(shù)據(jù)的單元 數(shù)的長度計(jì)數(shù)器,在進(jìn)行所述轉(zhuǎn)接裝置主端口向U盤指針(usbHostPos)所指的當(dāng)前數(shù) 據(jù)緩沖區(qū)傳送一個(gè)單元密文數(shù)據(jù)操作后,所述長度數(shù)器的計(jì)數(shù)值減1,長度計(jì)數(shù)器等于 0,并且主機(jī)指針(usbDevicePos)等于U盤指針(usbHostPos),結(jié)束本次數(shù)據(jù)解密過 程。
4.根據(jù)權(quán)利要求1所述的解密方法,其特征在于所述解密模塊中設(shè)置至少三種解密算法。
全文摘要
一種用于USB儲(chǔ)存設(shè)備中加密數(shù)據(jù)的解密方法,將轉(zhuǎn)接裝置設(shè)置于主機(jī)與U盤之間,其第一數(shù)據(jù)存儲(chǔ)區(qū)、第二數(shù)據(jù)存儲(chǔ)區(qū)、第三數(shù)據(jù)存儲(chǔ)區(qū)和第四數(shù)據(jù)存儲(chǔ)區(qū)沿順時(shí)針方向排列;配置主機(jī)指針、U盤指針和解密指針,所述主機(jī)指針;U盤指針沿順時(shí)針方向指向下一個(gè)數(shù)據(jù)緩存區(qū),同時(shí),加密指針沿順時(shí)針方向指向下一個(gè)數(shù)據(jù)緩存區(qū),同時(shí),主機(jī)指針沿順時(shí)針方向指向下一個(gè)數(shù)據(jù)緩存區(qū);轉(zhuǎn)接裝置主端口向U盤指針?biāo)傅臄?shù)據(jù)緩沖區(qū)傳送下一個(gè)單元密文數(shù)據(jù),解密模塊將解密指針?biāo)傅臄?shù)據(jù)緩沖區(qū)數(shù)據(jù)進(jìn)行解密處理,轉(zhuǎn)接裝置從端口將主機(jī)指針?biāo)傅臄?shù)據(jù)緩沖區(qū)內(nèi)數(shù)據(jù)傳輸給主機(jī)。本發(fā)明實(shí)現(xiàn)了明文數(shù)據(jù)、密文數(shù)據(jù)和加密算法的分離,且提高了主機(jī)與移動(dòng)存儲(chǔ)設(shè)備之間數(shù)據(jù)解密速度。
文檔編號G06F12/14GK102023936SQ20101055124
公開日2011年4月20日 申請日期2010年11月19日 優(yōu)先權(quán)日2010年11月19日
發(fā)明者匡啟和, 尤國芳, 王廷平, 肖佐楠, 鄭茳 申請人:蘇州國芯科技有限公司