專(zhuān)利名稱(chēng):實(shí)時(shí)加密u盤(pán)及高速加解密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種實(shí)時(shí)加密U盤(pán)及高速加解密方法,特別涉及U盤(pán)內(nèi)加解 密芯片的設(shè)計(jì)以及提高芯片數(shù)據(jù)加解密速度的方法,屬于信息安全加密技術(shù) 領(lǐng)域。
背景技術(shù):
如今移動(dòng)存儲(chǔ)設(shè)備被廣泛使用,u盤(pán)以其便攜的特點(diǎn)在涉密系統(tǒng)中也有
普遍使用。對(duì)移動(dòng)存儲(chǔ)設(shè)備的數(shù)據(jù)進(jìn)行加密可以有效保障數(shù)字資產(chǎn)信息的安 全,使其不被非法用戶(hù)獲取,這已經(jīng)成為共識(shí)。
如今,隨著需要處理的數(shù)據(jù)量的指數(shù)級(jí)增加,u盤(pán)上需要存儲(chǔ)的數(shù)據(jù)量 也在同比增長(zhǎng),這一方面對(duì)u盤(pán)的加密手段和方式提出更高要求,同時(shí)也對(duì) u盤(pán)的加解密速度提出了嚴(yán)峻挑戰(zhàn)。目前,u盤(pán)數(shù)據(jù)加密速度慢的原因主要 在于,現(xiàn)有u盤(pán)加密在系統(tǒng)結(jié)構(gòu)上沒(méi)有做到數(shù)據(jù)流讀寫(xiě)過(guò)程與加解密過(guò)程的 并行處理,因此在u盤(pán)閃存的數(shù)據(jù)線(xiàn)上體現(xiàn)為數(shù)據(jù)流有"斷流"的情況。在
加密方式和手段上,現(xiàn)有數(shù)據(jù)加密方法多偏重于軟件管理方法,軟件管理方 法的缺點(diǎn)在于保存在u盤(pán)閃存上的數(shù)據(jù)并未真正加密或只是經(jīng)過(guò)簡(jiǎn)單加密,
一旦u盤(pán)閃存被從u盤(pán)中取出,可以通過(guò)技術(shù)方法讀取或破解上面的數(shù)據(jù)內(nèi)容。
以上問(wèn)題對(duì)于要將大數(shù)據(jù)量存儲(chǔ)到u盤(pán)、需要更多加密手段和更靈活方 式的現(xiàn)實(shí)需求來(lái)說(shuō),對(duì)加密u盤(pán)的數(shù)據(jù)加解密傳輸速度、加密手段和方式都
提出了更高的要求。
發(fā)明內(nèi)容
本發(fā)明提供一種實(shí)時(shí)加密u盤(pán)及高速加解密方法,目的旨在解決現(xiàn)有u 盤(pán)設(shè)備數(shù)據(jù)加解密速度慢、數(shù)據(jù)加密方式簡(jiǎn)單、加密手段有限等技術(shù)缺陷。
為達(dá)到上述目的,本發(fā)明實(shí)時(shí)加密U盤(pán)采用的技術(shù)方案是 一種實(shí)時(shí)加 密U盤(pán),包括
USB接口 ,該接口為用于連接主機(jī)的USB接口 ,實(shí)現(xiàn)從主機(jī)讀出數(shù)據(jù)或 向主機(jī)寫(xiě)入數(shù)據(jù);
閃存,用于存儲(chǔ)數(shù)據(jù);
閃存控制器,用于控制閃存的接口信號(hào),實(shí)現(xiàn)從閃存讀出數(shù)據(jù)或向閃存 寫(xiě)入數(shù)據(jù);
內(nèi)部存儲(chǔ)器,用于存儲(chǔ)所述實(shí)時(shí)加密U盤(pán)的固件或開(kāi)機(jī)引導(dǎo)程序
6(BootLoader);
CPU,用于執(zhí)行存儲(chǔ)于內(nèi)部存儲(chǔ)器上的固件輸入的指令,完成對(duì)所述實(shí) 時(shí)加密U盤(pán)的控制和管理;
加密算法模塊,用于加密從主機(jī)讀出的原文數(shù)據(jù)以及解密從閃存讀出的 密文數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)流的高速加解密;
FIFO緩存器,該緩存器具有第一FIFO緩存區(qū)、第二FIFO緩存區(qū)和第三 FIFO緩存區(qū),在所述實(shí)時(shí)加密U盤(pán)初始化時(shí),USB接口的邏輯地址分配給 第一FIFO緩存區(qū),加密算法模塊的邏輯地址分配給第二FIFO緩存區(qū),閃存 控制器的邏輯地址分配給第三FIFO緩存區(qū);
FIFO控制器,由寄存器構(gòu)成,該寄存器設(shè)有三個(gè)控制位,其中,第一控 制位使能后使得USB接口的邏輯地址與閃存控制器的邏輯地址進(jìn)行交換,第 二控制位使能后使得USB接口的邏輯地址與加密算法模塊的邏輯地址進(jìn)行 交換,第三控制位使能后使得閃存控制器的邏輯地址與加密算法模塊的邏輯 地址進(jìn)4于交換;
CPU分別與加密算法模塊、FIFO控制器、內(nèi)部存儲(chǔ)器、FIFO緩存器、 USB接口和閃存控制器通過(guò)總線(xiàn)連接。
為達(dá)到上述目的,本發(fā)明高速加解密方法采用的技術(shù)方案是 一種實(shí)時(shí) 加密U盤(pán)的高速加解密方法,在主機(jī)向閃存進(jìn)行寫(xiě)操作或讀操作過(guò)程中,利 用FIFO控制器中第二控制位和第三控制位的交替使能來(lái)切換USB接口、加 密算法模塊和閃存控制器的邏輯地址,與第一FIFO緩存區(qū)、第二FIFO緩存 區(qū)和第三FIFO緩存區(qū)的物理地址之間的映射關(guān)系,使第一FIFO緩存區(qū)、第 二 FIFO緩存區(qū)和第三FIFO緩存區(qū)輪流跟隨USB接口 、加密算法模塊和閃 存控制器并行工作,在主機(jī)與閃存之間傳遞數(shù)據(jù)批次,其中,寫(xiě)操作時(shí)所述 第二控制位和第三控制位的交替使能從第二控制位開(kāi)始,讀操作時(shí)所述第二 控制位和第三控制位的交替使能從第三控制位開(kāi)始。
上述技術(shù)方案中的有關(guān)內(nèi)容解釋如下
1 、上述方案中,所述"USB接口 "為USB接口 。 USB的全稱(chēng)是Universal Serial Bus, USB支持熱插拔,即插即用的優(yōu)點(diǎn),所以USB接口已經(jīng)成為一 種標(biāo)準(zhǔn)的接口方式。USB有兩個(gè)規(guī)范,即USB1.1和USB2.0。 USB1.1是目 前較為普遍的USB規(guī)范,USB2.0規(guī)范是由USB1.1規(guī)范演變而來(lái)的。它的 傳輸速率達(dá)到了 480Mbps,折算為MB為60MB/s,足以滿(mǎn)足大多數(shù)外設(shè)的 速率要求。在本發(fā)明中,USB接口用于連接主機(jī),USB接口選擇USBl.l或USB2.0均可以使用,其中USB2.0更好。
2、 上述方案中,所述"一種實(shí)時(shí)加密U盤(pán)"還可以設(shè)有通訊I/0才莫塊, 通訊I/O才莫塊通過(guò)總線(xiàn)與所述CPU雙向連接,外部通訊設(shè)備可以通過(guò)通訊I/O 模塊與實(shí)時(shí)加密U盤(pán)雙向連接。實(shí)時(shí)加解密過(guò)程完全可以根據(jù)實(shí)際應(yīng)用的要 求,由保存在內(nèi)部存儲(chǔ)器中的信息或由外部通訊設(shè)備通過(guò)通訊I/O模塊進(jìn)行 控制,內(nèi)部存儲(chǔ)器中的信息可由外部通訊設(shè)備通過(guò)通訊I/O才莫塊進(jìn)行更新, 實(shí)現(xiàn)了多種且靈活的加密手段。
3、 上述方案中,所述"FIFO緩存器"是一種數(shù)據(jù)存儲(chǔ)器,用于存儲(chǔ)數(shù)據(jù)。 FIFO是英文First In First Out的縮寫(xiě),是一種先進(jìn)先出的數(shù)據(jù)緩存器,它與 普通存儲(chǔ)器的區(qū)別是沒(méi)有外部讀寫(xiě)地址線(xiàn),這樣使用起來(lái)非常簡(jiǎn)單,但缺點(diǎn) 就是只能順序?qū)懭霐?shù)據(jù),順序的讀出數(shù)據(jù),其數(shù)據(jù)地址由內(nèi)部讀寫(xiě)指針自動(dòng) 加1完成,不能像普通存儲(chǔ)器那樣可以由地址線(xiàn)決定讀取或?qū)懭肽硞€(gè)指定的 地址。
4、 上述方案中,所述"固件"(Firmware)就是寫(xiě)入E2ROM或E2pROM(可 編程只讀存儲(chǔ)器)中的程序,通俗的理解就是"固化的軟件"。與普通軟件完 全不同,它是固化在集成電路內(nèi)部的程序代碼,負(fù)責(zé)控制和協(xié)調(diào)集成電路的 功能。
5、 上述方案中,所述"FIFO控制器,,是用于管理USB接口、加密算法 管模塊和閃存控制器所對(duì)應(yīng)的FIFO緩存器,即FIFO緩存器中的第一 FIFO 緩存區(qū)、第二 FIFO緩存區(qū)和第三FIFO緩存區(qū),完成數(shù)據(jù)的轉(zhuǎn)移。FIFO控 制器中設(shè)有三個(gè)控制位,第一控制位用于主機(jī)與閃存之間透明操作,即使能 該控制位后主機(jī)與閃存之間的數(shù)據(jù)流操作不經(jīng)過(guò)加密或解密,而是直接將主 機(jī)中的數(shù)據(jù)寫(xiě)入閃存,或直接從閃存中讀出數(shù)據(jù)。這個(gè)控制位一般在不需要 對(duì)數(shù)據(jù)進(jìn)行加密的情況下使用。在需要對(duì)主機(jī)與閃存之間傳輸?shù)臄?shù)據(jù)進(jìn)行加 密或解密時(shí)需要使用第二控制位和第三控制位。
6、 上述方案中,所述"加密算法模塊,,是用于加密原文數(shù)據(jù)或解密密文 數(shù)據(jù)的模塊。加密算法模塊采用的算法可包括RSA、 DES、 3DES、 SHA等 或自定義的編解碼方式。加密算法還可以通過(guò)通訊1/0模塊從外部來(lái)補(bǔ)充。
總之,本發(fā)明實(shí)時(shí)加密U盤(pán)釆用硬件加密算法模塊對(duì)數(shù)據(jù)流進(jìn)行加密, 保證了密匙與存儲(chǔ)數(shù)據(jù)的空間隔離和對(duì)閃存內(nèi)數(shù)據(jù)的完全加密;同時(shí)采用 FIFO控制器切換USB接口 、加密算法模塊和閃存控制器的邏輯地址,與第 一 FIFO緩存區(qū)、第二 FIFO緩存區(qū)和第三FIFO緩存區(qū)的物理地址之間的映射關(guān)系,達(dá)到USB接口、加密算法模塊、閃存控制器數(shù)據(jù)流的并行處理。當(dāng)
數(shù)據(jù)需要從主機(jī)寫(xiě)到閃存時(shí),進(jìn)行實(shí)時(shí)加密,并將加密后的數(shù)據(jù)寫(xiě)入閃存的
存儲(chǔ)區(qū)中;當(dāng)數(shù)據(jù)需要被讀取或使用的時(shí)候,將根據(jù)配置調(diào)用相應(yīng)的解密算 法模塊對(duì)需要讀取的數(shù)據(jù)進(jìn)行實(shí)時(shí)解密,然后傳送給主機(jī)端使用。
由于上述技術(shù)方案運(yùn)用,本發(fā)明與現(xiàn)有技術(shù)相比具有下列優(yōu)點(diǎn)和效果
1、 本發(fā)明克服了現(xiàn)有主機(jī)與U盤(pán)之間數(shù)據(jù)加解密速度慢、數(shù)據(jù)加密方式 簡(jiǎn)單、加密手段有限等技術(shù)缺陷。特別是本發(fā)明在實(shí)時(shí)加密U盤(pán)中利用FIFO 控制器中第二控制位和第三控制位的交替使能來(lái)切換USB接口 、加密算法模 塊和閃存控制器的邏輯地址,與第一FIFO緩存區(qū)、第二FIFO緩存區(qū)和第三 FIFO緩存區(qū)的物理地址之間的映射關(guān)系,使第一FIFO緩存區(qū)、第二FIFO 緩存區(qū)和第三FIFO緩存區(qū)輪流跟隨USB接口 、加密算法模塊和閃存控制器 并行工作,在主機(jī)與閃存之間傳遞數(shù)據(jù)批次,從而提高了數(shù)據(jù)的加解密速度。
2、 本發(fā)明在保證數(shù)據(jù)加解密速度的同時(shí),還可以建立兩道安全屏障,其 一由于閃存的操作系統(tǒng)也被加密,得到實(shí)時(shí)加密U盤(pán)者會(huì)誤認(rèn)為U盤(pán)是空盤(pán), 存入信息可以隱藏;其二,即使非法得到實(shí)時(shí)加密U盤(pán),如果沒(méi)有密鑰也無(wú) 法讀取U盤(pán)中的明文數(shù)據(jù)。
3、 由于本發(fā)明實(shí)時(shí)加密U盤(pán)增加了通訊I/C^莫塊可以與外部設(shè)備進(jìn)行通 訊,進(jìn)而為實(shí)時(shí)加密U盤(pán)的安全處理方式提供了多種可能,增強(qiáng)了數(shù)據(jù)信息 的保密性。
附圖1為本發(fā)明實(shí)時(shí)加密U盤(pán)的系統(tǒng)原理方框附圖2為本發(fā)明FIFO控制器的寄存器原理示意附圖3為本發(fā)明實(shí)時(shí)加密U盤(pán)中的數(shù)據(jù)流向閃存寫(xiě)入時(shí),第一 FIFO緩存 區(qū)、第二 FIFO緩存區(qū)和第三FIFO緩存區(qū)輪流跟隨USB接口、加密算法模 塊和閃存控制器并行工作示意附圖4為本發(fā)明實(shí)時(shí)加密U盤(pán)中的數(shù)據(jù)流從閃存讀出時(shí),第一FIFO緩存 區(qū)、第二 FIFO緩存區(qū)和第三FIFO緩存區(qū)輪流跟隨USB接口、加密算法模 塊和閃存控制器并行工作示意圖。
以上附圖中10、實(shí)時(shí)加密U盤(pán);20、主機(jī);30、外部通訊i殳備;101、 FIFO控制器;102、加密算法模塊;103、內(nèi)部存儲(chǔ)器;104、 CPU; 105、通 訊I/0模塊;106、 USB接口; 107、閃存控制器;108、閃存;109、第一FIFO 緩存區(qū);110、第二FIFO緩存區(qū);111、第三FIFO緩存區(qū);201、第一控制203、第三控制位。
具體實(shí)施例方式
下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述 實(shí)施例 一種實(shí)時(shí)加密U盤(pán)
當(dāng)主機(jī)20向?qū)崟r(shí)加密U盤(pán)10寫(xiě)入數(shù)據(jù)是加密過(guò)程,從實(shí)時(shí)加密U盤(pán)10 讀出數(shù)據(jù)是解密過(guò)程。具體的加解密過(guò)程完全可以根據(jù)實(shí)際應(yīng)用的要求,由 保存在內(nèi)部存儲(chǔ)器103中的固件或由外部通訊設(shè)備30進(jìn)行控制。
圖1為本發(fā)明實(shí)時(shí)加密U盤(pán)的系統(tǒng)原理方框圖。從圖l可以看出,本發(fā) 明實(shí)時(shí)加密U盤(pán)由USB接口 106、閃存控制器107、加密算法4莫塊102、內(nèi) 部存儲(chǔ)器103、 CPU 104、 FIFO緩存器、FIFO控制器101和通訊I/O模塊105 組成,CPU 104分別與加密算法模塊102、 FIFO控制器101、內(nèi)部存儲(chǔ)器 103、 FIFO緩存器、USB接口 106、閃存控制器107和通訊I/O模塊105通 過(guò)總線(xiàn)連接。其中
USB接口 106用于連接主機(jī)20,實(shí)現(xiàn)/人主才幾20讀出數(shù)據(jù)或向主機(jī)20寫(xiě) 入數(shù)據(jù)。USB接口 106相對(duì)主機(jī)20為從設(shè),可選擇USB1.1接口或USB2.0 接口,但為了適應(yīng)高速加解密釆用USB2.0接口更好。
閃存控制器107用于控制閃存108的接口信號(hào),實(shí)現(xiàn)從閃存108讀出數(shù) 據(jù)或向閃存108寫(xiě)入數(shù)據(jù)。
加密算法模塊102用于加密從主機(jī)20讀出的原文數(shù)據(jù)以及解密從閃存 108讀出的密文數(shù)據(jù)。這部分內(nèi)容可以采用現(xiàn)有技術(shù),比如本實(shí)施例中,加 密算法模塊102包括
1) 算法模塊組。該算法模塊組由至少一種算法模塊組成,各算法模塊用 于對(duì)數(shù)據(jù)進(jìn)行不同算法的加解密運(yùn)算,其中算法可包括RSA、 DES、 3DES、 SHA等或自定義的編解碼方式。
2) 控制/狀態(tài)寄存器組。該控制/狀態(tài)寄存器組由控制寄存器和狀態(tài)寄存 器組成,狀態(tài)寄存器用于反映加密算法模塊102的狀態(tài)信息;控制寄存器用 于定義以下內(nèi)容
A、 定義選擇何種算法模塊來(lái)進(jìn)行加解密運(yùn)算;
B、 定義加解密數(shù)據(jù)量;
C、 設(shè)置中斷配置;
D、 定義啟動(dòng)算法模塊進(jìn)行加密解運(yùn)算的使能。
3) 算法模塊控制器。該算法模塊控制器用于控制被選擇算法模塊的加解
10密過(guò)程以及控制數(shù)據(jù)讀寫(xiě)操作,在完成數(shù)據(jù)加解密之后,將中斷信號(hào)傳送給 中斷控制器。所述算法模塊控制器分別與算法模塊組和控制/狀態(tài)寄存器組雙 向連接,控制/狀態(tài)寄存器組與系統(tǒng)總線(xiàn)或外圍總線(xiàn)雙向連接。
內(nèi)部存儲(chǔ)器103用于存儲(chǔ)所述實(shí)時(shí)加密U盤(pán)10的固件或開(kāi)機(jī)引導(dǎo)程序 (BootLoader )。
CPU 105作為嵌入式中央處理器用于執(zhí)行存儲(chǔ)于內(nèi)部存儲(chǔ)器103上的固 件或執(zhí)行從通訊I/O模塊105輸入的指令,完成對(duì)實(shí)時(shí)加密U盤(pán)10的控制 和管理。
FIFO緩存器為對(duì)應(yīng)USB接口 106、閃存控制器107和加密算法模塊102 所設(shè)的數(shù)據(jù)存儲(chǔ)器用于存儲(chǔ)數(shù)據(jù),F(xiàn)IFO是從一個(gè)固定地址讀寫(xiě)的數(shù)據(jù)存儲(chǔ) 器。本發(fā)明中FIFO緩存器具有第一 FIFO緩存區(qū)109、第二FIFO緩存區(qū)110 和第三FIFO緩存區(qū)111。在實(shí)時(shí)加密U盤(pán)10初始化時(shí),USB接口 106的邏 輯地址分配給第一FIFO緩存區(qū)109,加密算法模塊102的邏輯地址分配給第 二FIFO緩存區(qū)110,閃存控制器107的邏輯地址分配給第三FIFO緩存區(qū)111。
FIFO控制器101用于管理USB接口 106、閃存控制器107和加密算法模 塊102所對(duì)應(yīng)的FIFO緩存器,即FIFO緩存器中的第一 FIFO緩存區(qū)109、 第二FIFO緩存區(qū)110和第三FIFO緩存區(qū)111,完成數(shù)據(jù)的轉(zhuǎn)移。FIFO控制 器101由寄存器構(gòu)成,參見(jiàn)圖2所示,該寄存器設(shè)有三個(gè)控制位,其中,第 一控制位201使能后使得USB接口 106的邏輯地址與閃存控制器107的邏輯 地址進(jìn)行交換,第二控制位202使能后使得USB接口 106的邏輯地址與加密 算法模塊102的邏輯地址進(jìn)行交換,第三控制位203使能后使得閃存控制器 107的邏輯地址與加密算法模塊102的邏輯地址進(jìn)行交換。第一控制位201 用于主機(jī)20與閃存108之間透明操作,即使能第一控制位201后主機(jī)20與 閃存108之間的數(shù)據(jù)流搡作不經(jīng)過(guò)加密或解密,而是直接將主機(jī)20中的數(shù) 據(jù)寫(xiě)入閃存108,或直接從閃存108中讀出數(shù)據(jù)。這個(gè)控制位一般在不需要 對(duì)數(shù)據(jù)進(jìn)行加密的情況下使用。在需要對(duì)主機(jī)20與閃存108之間傳輸?shù)臄?shù) 據(jù)進(jìn)行加密或解密時(shí)需要使用第二控制位202和第三控制位203。
通訊I/O模塊107用于與外部通訊設(shè)備30的通訊,實(shí)現(xiàn)從外部通訊設(shè)備 30上獲取指令或下載數(shù)據(jù)。
本實(shí)施例實(shí)時(shí)加密U盤(pán)的高速加解密方法是在主機(jī)20向閃存108進(jìn)行 寫(xiě)才喿作或讀^燥作過(guò)程中,利用FIFO控制器101中第二控制位202和第三控 制位203的交替使能來(lái)切換USB接口 106、加密算法模塊102和閃存控制器107的邏輯地址,與第一 FIFO緩存區(qū)109、第二 FIFO緩存區(qū)110和第三FIFO 緩存區(qū)111的物理地址之間的映射關(guān)系,使第一FIFO緩存區(qū)109、第二 FIFO 緩存區(qū)110和第三FIFO緩存區(qū)lll輪流跟隨USB接口 106、加密算法模塊 102和閃存控制器107并行工作,在主機(jī)20與閃存108之間傳遞數(shù)據(jù)批次, 其中,寫(xiě)操作時(shí)所述第二控制位202和第三控制位203的交替使能從第二控 制位202開(kāi)始,讀操作時(shí)所述第二控制位202和第三控制位203的交替使能 從第三控制位203開(kāi)始。
圖3和圖4分別給出數(shù)據(jù)流寫(xiě)入和讀出時(shí)第一 FIFO緩存區(qū)109 、第二 FIFO 緩存區(qū)110和第三FIFO緩存區(qū)lll輪流跟隨USB接口 106、加密算法模塊 102和閃存控制器107并行工作示意圖。下面將對(duì)圖3和圖4分別進(jìn)行描述
如圖3所示,在實(shí)時(shí)加密U盤(pán)10初始化時(shí),第一 FIFO緩存區(qū)109指向 USB接口 106的邏輯地址,第二FIFO緩存區(qū)110指向加密算法模塊102的 邏輯地址,第三FIFO緩存區(qū)111指向閃存控制器107的邏輯地址。第一FIFO 緩存區(qū)109、第二FIFO緩存區(qū)110和第三FIFO緩存區(qū)111都為空(圖中分 別用"空白"表示)。
當(dāng)主機(jī)20向?qū)崟r(shí)加密U盤(pán)10進(jìn)行寫(xiě)操作時(shí)按以下步驟進(jìn)行工作
步驟一主機(jī)20通過(guò)USB接口 106向第一 FIFO緩存區(qū)109輸入第一批 原文數(shù)據(jù)(圖中第一 FIFO緩存區(qū)109由"空白,,變?yōu)?填充斜線(xiàn),,);加密 算法模塊102不操作,第二FIFO緩存區(qū)IIO為空(圖中用"空白,,表示); 閃存控制器107不操作,第三FIFO緩存區(qū)111為空(圖中用"空白,,表示)。
步驟二第二控制位202使能,使得USB接口 106的邏輯地址與加密算 法模塊102的邏輯地址進(jìn)行交換,此時(shí),第一 FIFO緩存區(qū)109指向加密算 法模塊102,第二 FIFO緩存區(qū)110指向USB接口 106,然后主機(jī)20通過(guò) USB接口 106向第二 FIFO緩存區(qū)110輸入第二批原文數(shù)據(jù)(圖中第二 FIFO 緩存區(qū)110由"空白,,變?yōu)?填充斜線(xiàn),,),同時(shí)加密算法模塊102對(duì)第一 FIFO 緩存區(qū)109中的第一批原文數(shù)據(jù)進(jìn)行加密得到第一批密文數(shù)據(jù)(圖中第一 FIFO緩存區(qū)109由"填充斜線(xiàn)"變?yōu)?填充黑色")。閃存控制器107不操作, 第三FIFO緩存區(qū)111為空(圖中用"空白,,表示)。
步驟三第三控制位203先使能,使得閃存控制器107的邏輯地址與加 密算法模塊102的邏輯地址進(jìn)行交換,接著第二控制位202再使能,使得 USB接口 106的邏輯地址與加密算法模塊102的邏輯地址進(jìn)行交換,此時(shí), 第一FIFO緩存區(qū)109指向閃存控制器107,第二FIFO緩存區(qū)110指向加密
12算法模塊102,第三FIFO緩存區(qū)111指向USB接口 106,然后主機(jī)20通過(guò) USB接口 106向第三FIFO緩存區(qū)111輸入第三批原文數(shù)據(jù)(圖中第三FIFO 緩存區(qū)111由"空白,,變?yōu)?填充斜線(xiàn)"),加密算法模塊102對(duì)第二 FIFO 緩存區(qū)110中的第二批原文數(shù)據(jù)進(jìn)行加密得到第二批密文^:據(jù)(圖中第二 FIFO緩存區(qū)110由"填充斜線(xiàn)"變?yōu)?填充黑色"),同時(shí)第一FIFO緩存區(qū) 109通過(guò)閃存控制器107向閃存108輸出第一批密文數(shù)據(jù)(圖中第一FIFO緩 存區(qū)109由"填充黑色"變?yōu)?空白")。
步驟四第三控制位203先使能,使得閃存控制器107的邏輯地址與加 密算法模塊102的邏輯地址進(jìn)行交換,接著第二控制位202再使能,使得 USB接口 106的邏輯地址與加密算法模塊102的邏輯地址進(jìn)行交換,此時(shí), 第一FIFO緩存區(qū)109指向USB接口 106,第二FIFO緩存區(qū)110指向閃存 控制器107,第三FIFO緩存區(qū)111指向加密算法才莫塊102,然后主機(jī)20通 過(guò)USB接口 106向第一FIFO緩存區(qū)109輸入第四批原文數(shù)據(jù)(圖中第一FIFO 緩存區(qū)109由"空白,,變?yōu)?填充斜線(xiàn),,),加密算法模塊102對(duì)第三FIFO 緩存區(qū)111中的第三批原文數(shù)據(jù)進(jìn)行加密得到第三批密文數(shù)據(jù)(圖中第三 FIFO緩存區(qū)111由"填充斜線(xiàn)"變?yōu)?填充黑色"),同時(shí)第二FIFO緩存區(qū) 110通過(guò)閃存控制器107向閃存108輸出第二批密文數(shù)據(jù)(圖中第二 FIFO緩 存區(qū)110由"填充黑色"變?yōu)?空白")。
步驟五第三控制位203先使能,使得閃存控制器107的邏輯地址與加 密算法模塊102的邏輯地址進(jìn)行交換,接著第二控制位202再使能,使得 USB接口 106的邏輯地址與加密算法模塊102的邏輯地址進(jìn)行交換,此時(shí), 第一 FIFO緩存區(qū)109指向加密算法模塊102,第二 FIFO緩存區(qū)110指向 USB接口 106,第三FIFO緩存區(qū)111指向閃存控制器107,然后主機(jī)20通 過(guò)USB接口 106向第二FIFO緩存區(qū)110輸入第五批原文數(shù)據(jù)(圖中第二FIFO 緩存區(qū)110由"空白"變?yōu)?填充斜線(xiàn),,),加密算法模塊102對(duì)第一 FIFO 緩存區(qū)109中的第四批原文數(shù)據(jù)進(jìn)行加密得到第四批密文數(shù)據(jù)(圖中第一 FIFO緩存區(qū)109由"填充斜線(xiàn)"變?yōu)?填充黑色,,),同時(shí)第三FIFO緩存區(qū) 111通過(guò)閃存控制器107向閃存108輸出第三批密文數(shù)據(jù)(圖中第三FIFO緩 存區(qū)111由"填充黑色,,變?yōu)?空白");然后返回到步驟三,以此構(gòu)成循環(huán), 直到最后 一批密文數(shù)據(jù)輸出為止。
如圖4所示,在實(shí)時(shí)加密U盤(pán)10初始化時(shí),第一 FIFO緩存區(qū)109指向 USB接口 106的邏輯地址,第二 FIFO緩存區(qū)110指向加密算法模塊102的
13邏輯地址,第三FIFO緩存區(qū)111指向閃存控制器107的邏輯地址。第一FIFO 緩存區(qū)109、第二FIFO緩存區(qū)110和第三FIFO緩存區(qū)111都為空(圖中分 別用"空白"表示)。
當(dāng)主機(jī)20向?qū)崟r(shí)加密U盤(pán)10進(jìn)行讀操作時(shí)按以下步驟進(jìn)行工作
步驟一閃存108通過(guò)閃存控制器107向第三FIFO緩存區(qū)111輸入第一 批密文數(shù)據(jù)(圖中第三FIFO緩存區(qū)111由"空白"變?yōu)?填充黑色,,);加 密算法模塊102不操作,第二FIFO緩存區(qū)110為空(圖中用"空白"表示); USB接口 106不操作,第一 FIFO緩存區(qū)109為空(圖中用"空白"表示)。
步驟二第三控制位203使能,使得閃存控制器107的邏輯地址與加密 算法模塊102的邏輯地址進(jìn)行交換,此時(shí),第二 FIFO緩存區(qū)110指向閃存 控制器107,第三FIFO緩存區(qū)111指向加密算法模塊102,然后閃存108通 過(guò)閃存控制器107向第二 FIFO緩存區(qū)110輸入第二批密文^t據(jù)(圖中第二 FIFO緩存區(qū)110由"空白"變?yōu)?填充黑色"),同時(shí)加密算法模塊102對(duì)第 三FIFO緩存區(qū)111中的第一批密文數(shù)據(jù)進(jìn)行解密得到第一批原文數(shù)據(jù)(圖 中第三FIFO緩存區(qū)111由"填充黑色"變?yōu)?填充斜線(xiàn),,)。USB接口 106 不操作,第一FIFO緩存區(qū)109為空(圖中用"空白"表示)。
步驟三第二控制位202先使能,使得USB接口 106的邏輯地址與加密 算法模塊102的邏輯地址進(jìn)行交換,接著第三控制位203再使能,使得閃存 控制器107的邏輯地址與加密算法模塊102的邏輯地址進(jìn)行交換,此時(shí),第 一FIFO緩存區(qū)109指向閃存控制器107,第二FIFO緩存區(qū)110指向加密算 法模塊102,第三FIFO緩存區(qū)111指向USB接口 106,然后閃存108通過(guò) 閃存控制器107向第一FIFO緩存區(qū)109輸入第三批密文凄t據(jù)(圖中第一FIFO 緩存區(qū)109由"空白"變?yōu)?填充黑色,,),加密算法模塊102對(duì)第二 FIFO 緩存區(qū)110中的第二批密文數(shù)據(jù)進(jìn)行解密得到第二批原文數(shù)據(jù)(圖中第二 FIFO緩存區(qū)110由"填充黑色"變?yōu)?填充斜線(xiàn),,),同時(shí)第三FIFO緩存區(qū) 111通過(guò)USB接口 106向主機(jī)20輸出第 一批原文數(shù)據(jù)(圖中第三FIFO緩存 區(qū)111由"填充斜線(xiàn)"變?yōu)?空白")。
步驟四第二控制位202先使能,使得USB接口 106的邏輯地址與加密 算法模塊102的邏輯地址進(jìn)行交換,接著第三控制位203再使能,使得閃存 控制器107的邏輯地址與加密算法模塊102的邏輯地址進(jìn)行交換,第一 FIFO 緩存區(qū)109指向加密算法模塊102,第二FIFO緩存區(qū)110指向USB接口 106, 第三FIFO緩存區(qū)111指向閃存控制器107,然后閃存108通過(guò)閃存控制器107向第三FIFO緩存區(qū)111輸入第四批密文數(shù)據(jù)(圖中第三FIFO緩存區(qū)111 由"空白,,變?yōu)?填充黑色"),加密算法才莫塊102對(duì)第一 FIFO緩存區(qū)109 中的第三批密文數(shù)據(jù)進(jìn)行解密得到第三批原文數(shù)據(jù)(圖中第一 FIFO緩存區(qū) 109由"填充黑色,,變?yōu)?填充斜線(xiàn)"),同時(shí)第二FIFO緩存區(qū)110通過(guò)USB 接口 106向主機(jī)20輸出第二批原文數(shù)據(jù)(圖中第二FIFO緩存區(qū)110由"填 充斜線(xiàn)"變?yōu)?空白")。
步驟五第二控制位202先使能,使得USB接口 106的邏輯地址與加密 算法模塊102的邏輯地址進(jìn)行交換,接著第三控制位203再使能,使得閃存 控制器107的邏輯地址與加密算法模塊102的邏輯地址進(jìn)行交換,此時(shí),第 一FIFO緩存區(qū)109指向USB接口 106,第二FIFO緩存區(qū)IIO指向閃存控 制器107,第三FIFO緩存區(qū)111指向加密算法模塊102,然后閃存108通過(guò) 閃存控制器107向第二FIFO緩存區(qū)110輸入第五批密文數(shù)據(jù)(圖中第二FIFO 緩存區(qū)110由"空白,,變?yōu)?填充黑色,,),加密算法模塊102對(duì)第三FIFO 緩存區(qū)111中的第四批密文數(shù)據(jù)進(jìn)行解密得到第四批原文數(shù)據(jù)(圖中第三 FIFO緩存區(qū)111由"填充黑色"變?yōu)?填充斜線(xiàn)"),同時(shí)第一FIFO緩存區(qū) 109通過(guò)USB接口 106向主機(jī)20輸出第三批原文數(shù)據(jù)(圖中第一 FIFO緩存 區(qū)109由"填充斜線(xiàn),,變?yōu)?空白");然后返回到步驟三,以此構(gòu)成循環(huán), 直到最后 一批原文數(shù)據(jù)輸出為止。
上述實(shí)施例只為說(shuō)明本發(fā)明的技術(shù)構(gòu)思及特點(diǎn),其目的在于讓熟悉此項(xiàng) 技術(shù)的人士能夠了解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,并不能以此限制本發(fā)明的保 護(hù)范圍。凡根據(jù)本發(fā)明精神實(shí)質(zhì)所作的等效變化或^'務(wù)飾,都應(yīng)涵蓋在本發(fā)明 的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種實(shí)時(shí)加密U盤(pán),包括USB接口(106),該接口為用于連接主機(jī)(20)的USB接口,實(shí)現(xiàn)從主機(jī)(20)讀出數(shù)據(jù)或向主機(jī)(20)寫(xiě)入數(shù)據(jù);閃存(108),用于存儲(chǔ)數(shù)據(jù);閃存控制器(107),用于控制閃存(108)的接口信號(hào),實(shí)現(xiàn)從閃存(108)讀出數(shù)據(jù)或向閃存(108)寫(xiě)入數(shù)據(jù);內(nèi)部存儲(chǔ)器(103),用于存儲(chǔ)所述實(shí)時(shí)加密U盤(pán)(10)的固件或開(kāi)機(jī)引導(dǎo)程序(BootLoader);CPU(104),用于執(zhí)行存儲(chǔ)于內(nèi)部存儲(chǔ)器(103)上的固件輸入的指令,完成對(duì)所述實(shí)時(shí)加密U盤(pán)(10)的控制和管理;其特征在于還包括加密算法模塊(102),用于加密從主機(jī)(20)讀出的原文數(shù)據(jù)以及解密從閃存(108)讀出的密文數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)流的高速加解密;FIFO緩存器,該緩存器具有第一FIFO緩存區(qū)(109)、第二FIFO緩存區(qū)(110)和第三FIFO緩存區(qū)(111),在所述實(shí)時(shí)加密U盤(pán)(10)初始化時(shí),USB接口(106)的邏輯地址分配給第一FIFO緩存區(qū)(109),加密算法模塊(102)的邏輯地址分配給第二FIFO緩存區(qū)(110),閃存控制器(107)的邏輯地址分配給第三FIFO緩存區(qū)(111);FIFO控制器(101),由寄存器構(gòu)成,該寄存器設(shè)有三個(gè)控制位,其中,第一控制位(201)使能后使得USB接口(106)的邏輯地址與閃存控制器(107)的邏輯地址進(jìn)行交換,第二控制位(202)使能后使得USB接口(106)的邏輯地址與加密算法模塊(102)的邏輯地址進(jìn)行交換,第三控制位(203)使能后使得閃存控制器(107)的邏輯地址與加密算法模塊(102)的邏輯地址進(jìn)行交換;CPU(104)分別與加密算法模塊(102)、FIFO控制器(101)、內(nèi)部存儲(chǔ)器(103)、FIFO緩存器、USB接口(106)和閃存控制器(107)通過(guò)總線(xiàn)連接。
2、 根據(jù)權(quán)利要求1所述的實(shí)時(shí)加密U盤(pán),其特征在于還包括通訊I/O模 塊(105),通訊I/0模塊(105)通過(guò)總線(xiàn)與所述CPU (104)連接。
3、 根據(jù)權(quán)利要求1所述實(shí)時(shí)加密U盤(pán)的高速加解密方法,其特征在于 在主機(jī)(20)向閃存(108)進(jìn)行寫(xiě)4喿作或讀才喿作過(guò)程中,利用FIFO控制器(101 )中第二控制位(202)和第三控制位(203 )的交替使能來(lái)切換USB接口 (106)、加密算法模塊(102)和閃存控制器(107)的邏輯地址,與第一 FIFO緩存區(qū)(109)、第二FIFO緩存區(qū)(110)和第三FIFO緩存區(qū)(111)的 物理地址之間的映射關(guān)系,使第一 FIFO緩存區(qū)(109 )、第二 FIFO緩存區(qū)(110 ) 和第三FIFO緩存區(qū)(111)輪流跟隨USB接口 (106)、加密算法模塊(102) 和閃存控制器(107)并行工作,在主機(jī)(20)與閃存(108)之間傳遞數(shù)據(jù)批 次,其中,寫(xiě)操作時(shí)所述第二控制位(202)和第三控制位(203 )的交替使能 從第二控制位(202 )開(kāi)始,讀操作時(shí)所述第二控制位(202 )和第三控制位(203 ) 的交替使能從第三控制位(203 )開(kāi)始。
4、根據(jù)權(quán)利要求3所述的高速加解密方法,其特征在于 在所述實(shí)時(shí)加密U盤(pán)(10)初始化時(shí),第一 FIFO緩存區(qū)(109)、第二FIFO 緩存區(qū)(110)和第三FIFO緩存區(qū)(111 )都為空;當(dāng)主機(jī)(20)向閃存(108)進(jìn)行寫(xiě)操作時(shí)按以下步驟進(jìn)行工作 步驟一主機(jī)(20)通過(guò)USB接口 (106)向第一FIFO緩存區(qū)(109)輸 入第一批原文數(shù)據(jù);步驟二第二控制位(202)使能,使得USB接口 (106)的邏輯地址與加 密算法模塊(102 )的邏輯地址進(jìn)行交換,然后主機(jī)(20 )通過(guò)USB接口 ( 106 ) 向第二FIFO緩存區(qū)(110)輸入第二批原文數(shù)據(jù),同時(shí)加密算法模塊(102) 對(duì)第一 FIFO緩存區(qū)(109)中的第一批原文數(shù)據(jù)進(jìn)行加密得到第一批密文數(shù) 據(jù);步驟三第三控制位(203 )先使能,使得閃存控制器(107)的邏輯地址 與加密算法模塊(102 )的邏輯地址進(jìn)行交換,接著第二控制位(202 )再使能, 使得USB接口 (106)的邏輯地址與加密算法^^塊(102)的邏輯地址進(jìn)行交 換,然后主機(jī)(20)通過(guò)USB接口 (106)向第三FIFO緩存區(qū)(111)輸入第 三批原文數(shù)據(jù),加密算法模塊(102)對(duì)第二FIFO緩存區(qū)(110)中的第二批 原文數(shù)據(jù)進(jìn)行加密得到第二批密文數(shù)據(jù),同時(shí)第一 FIFO緩存區(qū)(109)通過(guò) 閃存控制器(107)向閃存(108)輸出第一批密文數(shù)據(jù);步驟四第三控制位(203 )先使能,使得閃存控制器(107)的邏輯地址 與加密算法模塊(102 )的邏輯地址進(jìn)行交換,接著第二控制位(202 )再使能, 使得USB接口 (106)的邏輯地址與加密算法模塊(102)的邏輯地址進(jìn)行交 換,然后主機(jī)(20)通過(guò)USB接口 (106)向第一 FIFO緩存區(qū)(109)輸入 第四批原文數(shù)據(jù),加密算法模塊(102)對(duì)第三FIFO緩存區(qū)(111)中的第三 批原文數(shù)據(jù)進(jìn)行加密得到第三批密文數(shù)據(jù),同時(shí)第二 FIFO緩存區(qū)(110)通過(guò)閃存控制器(107)向閃存(108)輸出第二批密文數(shù)據(jù);步驟五第三控制位(203 )先使能,使得閃存控制器(107)的邏輯地址 與加密算法模塊(102 )的邏輯地址進(jìn)行交換,接著第二控制位(202 )再使能, 使得USB接口 (106)的邏輯地址與加密算法模塊(102)的邏輯地址進(jìn)行交 換,然后主機(jī)(20)通過(guò)USB接口 ( 106)向第二 FIFO緩存區(qū)(110)輸入第 五批原文數(shù)據(jù),加密算法模塊(102)對(duì)第一FIFO緩存區(qū)(109)中的第四批 原文數(shù)據(jù)進(jìn)行加密得到第四批密文數(shù)據(jù),同時(shí)第三FIFO緩存區(qū)(111 )通過(guò)閃 存控制器(107)向閃存(108)輸出第三批密文數(shù)據(jù);然后返回到步驟三,以 此構(gòu)成循環(huán),直到最后一批密文數(shù)據(jù)輸出為止;當(dāng)主機(jī)(20)向閃存(108)進(jìn)行讀操作時(shí)按以下步驟進(jìn)行工作 步驟一閃存(108)通過(guò)閃存控制器(107)向第三FIFO緩存區(qū)(111) 輸入第一批密文數(shù)據(jù);步驟二第三控制位(203 )使能,使得閃存控制器(107)的邏輯地址與 加密算法模塊(102)的邏輯地址進(jìn)行交換,然后閃存(108)通過(guò)閃存控制器 (107)向第二FIFO緩存區(qū)(110)輸入第二批密文數(shù)據(jù),同時(shí)加密算法才莫塊 (102)對(duì)第三FIFO緩存區(qū)(111)中的第一批密文數(shù)據(jù)進(jìn)行解密得到第一批 原文數(shù)據(jù);步驟三第二控制位(202)先使能,使得USB接口 (106)的邏輯地址與 加密算法模塊(102)的邏輯地址進(jìn)行交換,接著第三控制位(203 )再使能, 使得閃存控制器(107)的邏輯地址與加密算法模塊(102)的邏輯地址進(jìn)行交 換,然后閃存(108)通過(guò)閃存控制器(107)向第一 FIFO緩存區(qū)(109)輸 入第三批密文數(shù)據(jù),加密算法模塊(102)對(duì)第二FIFO緩存區(qū)(110)中的第 二批密文數(shù)據(jù)進(jìn)行解密得到第二批原文數(shù)據(jù),同時(shí)第三FIFO緩存區(qū)(111 )通 過(guò)USB接口 (106)向主機(jī)(20)輸出第一批原文數(shù)據(jù);步驟四第二控制位(202)先使能,使得USB接口 (106)的邏輯地址與 加密算法模塊(102)的邏輯地址進(jìn)行交換,接著第三控制位(203 )再使能, 使得閃存控制器(107)的邏輯地址與加密算法模塊(102)的邏輯地址進(jìn)行交 換,然后閃存(108)通過(guò)閃存控制器(107)向第三FIFO緩存區(qū)(111)輸入 第四批密文數(shù)據(jù),加密算法模塊(102)對(duì)第一FIFO緩存區(qū)(109)中的第三 批密文數(shù)據(jù)進(jìn)行解密得到第三批原文數(shù)據(jù),同時(shí)第二 FIFO緩存區(qū)(110)通 過(guò)USB接口 (106)向主機(jī)(20)輸出第二批原文數(shù)據(jù);步驟五第二控制位(202)先使能,使得USB接口 (106)的邏輯地址與加密算法模塊(102)的邏輯地址進(jìn)行交換,接著第三控制位(203 )再使能, 使得閃存控制器(107)的邏輯地址與加密算法模塊(102)的邏輯地址進(jìn)行交 換,然后閃存(108)通過(guò)閃存控制器(107)向第二 FIFO緩存區(qū)(110)輸 入第五批密文數(shù)據(jù),加密算法模塊(102)對(duì)第三FIFO緩存區(qū)(111)中的第 四批密文數(shù)據(jù)進(jìn)行解密得到第四批原文數(shù)據(jù),同時(shí)第一 FIFO緩存區(qū)(109) 通過(guò)USB接口 (106)向主機(jī)(20)輸出第三批原文數(shù)據(jù);然后返回到步驟三, 以此構(gòu)成循環(huán),直到最后一批原文數(shù)據(jù)輸出為止。
全文摘要
一種實(shí)時(shí)加密U盤(pán)及高速加解密方法,包括USB接口(106)、閃存(108)、閃存控制器(107)、加密算法模塊(102)、內(nèi)部存儲(chǔ)器(103)、CPU(104)、FIFO緩存器、FIFO控制器(101)。本發(fā)明利用FIFO控制器(101)中第二控制位(202)和第三控制位(203)的交替使能來(lái)切換USB接口(106)、加密算法模塊(102)和閃存控制器(107)的邏輯地址,與第一FIFO緩存區(qū)(109)、第二FIFO緩存區(qū)(110)和第三FIFO緩存區(qū)(111)的物理地址之間的映射關(guān)系,使第一FIFO緩存區(qū)(109)、第二FIFO緩存區(qū)(110)和第三FIFO緩存區(qū)(111)輪流跟隨USB接口(106)、加密算法模塊(102)和閃存控制器(107)并行工作,在主機(jī)(20)與閃存(108)之間傳遞數(shù)據(jù)批次,從而提高了數(shù)據(jù)的加解密速度。
文檔編號(hào)G11C7/10GK101540191SQ20091003068
公開(kāi)日2009年9月23日 申請(qǐng)日期2009年4月21日 優(yōu)先權(quán)日2009年4月21日
發(fā)明者林雄鑫, 王忠海, 肖佐楠, 茳 鄭 申請(qǐng)人:蘇州國(guó)芯科技有限公司