亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于fpga的硬盤加密、解密系統(tǒng)的制作方法

文檔序號:6623275閱讀:211來源:國知局
一種基于fpga的硬盤加密、解密系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于FPGA的硬盤加密、解密系統(tǒng),加密系統(tǒng)包括FPGA和認(rèn)證輸入模塊,F(xiàn)PGA包括處理器、密鑰解密電路和數(shù)據(jù)加密電路;認(rèn)證輸入模塊用于接收用戶的輸入認(rèn)證;處理器用于將輸入認(rèn)證與存儲的設(shè)定認(rèn)證進行比較,若輸入認(rèn)證與認(rèn)證相匹配,則判斷輸入認(rèn)證通過認(rèn)證,否則密鑰解密電路和數(shù)據(jù)加密電路不工作;密鑰解密電路用于,當(dāng)輸入認(rèn)證通過認(rèn)證后,將存儲的密鑰進行解密得到明文密鑰;數(shù)據(jù)加密電路用于,當(dāng)輸入認(rèn)證通過認(rèn)證后,根據(jù)明文密鑰將從計算機獲得的數(shù)據(jù)進行加密,得到加密后的數(shù)據(jù)存儲到硬盤。本發(fā)明可以提高硬盤的安全性。
【專利說明】-種基于FPGA的硬盤加密、解密系統(tǒng)

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及電子領(lǐng)域,特別是涉及一種基于FPGA的硬盤加密、解密系統(tǒng)。

【背景技術(shù)】
[0002] 隨著信息產(chǎn)業(yè)的飛速發(fā)展,硬盤由于容量大、使用方便,逐漸成為人們存儲信息的 主要介質(zhì),同時也帶來了另外一個重大問題--信息安全。對信息加密有兩種方式,軟件加 密和硬件加密。軟件加密耗費CPU和內(nèi)存,且速度慢、安全性不高;硬件加密速度快、安全性 商。
[0003] 專利CN1924835雖然采用了硬件加密的方式,但是密鑰生成程序需要在主機上運 行,仍然存在軟件加密方案的隱患。
[0004] 專利CN101281503提供了一種完整的硬件加密解決方案,但是其認(rèn)證方式采用普 通的密碼認(rèn)證,安全性能不高;外圍電路十分復(fù)雜,需要很多芯片才能完成加密功能。


【發(fā)明內(nèi)容】

[0005] 本發(fā)明主要目的在于提出一種基于FPGA的硬盤加密、解密系統(tǒng),以解決上述現(xiàn)有 技術(shù)存在的外圍電路復(fù)雜,密鑰生成方式及認(rèn)證方式安全性不高的技術(shù)問題。
[0006] 一種基于FPGA的硬盤加密系統(tǒng),包括FPGA和認(rèn)證輸入模塊,所述FPGA包括處理 器、密鑰解密電路和數(shù)據(jù)加密電路;
[0007] 所述認(rèn)證輸入模塊用于接收用戶的輸入認(rèn)證;
[0008] 所述處理器用于將所述輸入認(rèn)證與存儲的設(shè)定認(rèn)證進行比較,若所述輸入認(rèn)證與 所述認(rèn)證相匹配,則判斷所述輸入認(rèn)證通過認(rèn)證,否則所述密鑰解密電路和數(shù)據(jù)加密電路 不工作;
[0009] 所述密鑰解密電路用于,當(dāng)所述輸入認(rèn)證通過認(rèn)證后,將存儲的密鑰進行解密得 到明文密鑰;
[0010] 所述數(shù)據(jù)加密電路用于,當(dāng)所述輸入認(rèn)證通過認(rèn)證后,根據(jù)所述明文密鑰將從計 算機獲得的數(shù)據(jù)進行加密,得到加密后的數(shù)據(jù)存儲到硬盤。
[0011] 優(yōu)選地,所述FPGA還包括邏輯電路,所述邏輯電路用于將從計算機接收到的數(shù)據(jù) 幀進行檢測幀類型,并提取幀內(nèi)信息,若所述幀內(nèi)信息是命令,則將所述幀內(nèi)信息發(fā)送給硬 盤;若所述幀內(nèi)信息是數(shù)據(jù),則將所述幀內(nèi)信息發(fā)送給所述數(shù)據(jù)加密電路進行加密。
[0012] 優(yōu)選地,所述認(rèn)證輸入模塊包括虹膜攝像頭、指紋傳感器和密碼輸入裝置;
[0013] 所述FPGA包括虹膜接口、指紋接口和密碼輸入接口,所述虹膜接口、指紋接口和 密碼輸入接口分別與虹膜攝像頭、指紋傳感器和密碼輸入裝置連接;
[0014] 所述虹膜攝像頭用于獲取用戶的虹膜圖像,所述處理器用于獲取所述虹膜圖像并 提取虹膜圖像特征,將所述虹膜圖像特征與存儲的虹膜特征模板進行比較,若所述虹膜圖 像特征與存儲的虹膜特征模板相匹配,則判斷所述虹膜圖像通過認(rèn)證;其中,所述虹膜特征 模板通過如下步驟得到:注冊時,所述處理器多次獲取用戶的虹膜圖像,并對獲取的多個虹 膜圖像之間進行自匹配,若通過自匹配則選取所述多個虹膜圖像中的一個的虹膜圖像特征 作為所述虹膜特征模板;
[0015] 所述指紋傳感器用于獲取用戶的指紋圖像,所述處理器用于獲取所述指紋圖像并 提取指紋圖像特征,將所述指紋圖像特征與存儲的指紋特征模板進行比較,若所述指紋圖 像特征與存儲的指紋特征模板相匹配,則判斷所述指紋圖像通過認(rèn)證;其中,所述指紋特征 模板通過如下步驟得到:注冊時,所述處理器多次獲取用戶的指紋圖像,并對獲取的多個指 紋圖像之間進行自匹配,若通過自匹配則選取所述多個指紋圖像中的一個的指紋圖像特征 作為所述指紋特征模板;
[0016] 所述密碼輸入裝置用于獲取密碼口令,所述處理器用于將所述密碼口令與存儲的 設(shè)定密碼口令進行比較,若所述密碼口令與設(shè)定密碼口令相匹配,則判斷所述密碼口令通 過認(rèn)證;其中,所述設(shè)定密碼口令通過如下步驟得到:注冊時將用戶輸入的密碼口令作為 設(shè)定密碼口令;
[0017] 若所述認(rèn)證輸入模塊沒有通過認(rèn)證,所述硬盤不允許進行讀寫數(shù)據(jù);
[0018] 所述虹膜圖像通過認(rèn)證,用戶可以獲得最高的硬盤讀寫操作權(quán)限;
[0019] 所述指紋圖像通過認(rèn)證,用戶可以獲得較高的硬盤讀寫操作權(quán)限;
[0020] 所述密碼口令通過認(rèn)證,用戶可以獲得最低的硬盤讀寫操作權(quán)限;
[0021 ] 所述指紋接口和密碼輸入接口是分時復(fù)用的。
[0022] 優(yōu)選地,所述邏輯電路是SATA邏輯電路,還用于將從計算機接收到的數(shù)據(jù)幀進行 解擾、CRC校驗、去除起始幀和結(jié)束幀。
[0023] 優(yōu)選地,所述FPGA通過第一高速串行收發(fā)器接收計算機的數(shù)據(jù),通過第二高速串 行收發(fā)器將所述加密后的數(shù)據(jù)發(fā)送到硬盤。
[0024] 本發(fā)明還提供了一種基于FPGA的硬盤解密系統(tǒng),包括FPGA和認(rèn)證輸入模塊,所述 FPGA包括處理器、密鑰解密電路和數(shù)據(jù)解密電路;
[0025] 所述認(rèn)證輸入模塊用于接收用戶的輸入認(rèn)證;
[0026] 所述處理器用于將所述輸入認(rèn)證與存儲的設(shè)定認(rèn)證進行比較,若所述輸入認(rèn)證與 所述認(rèn)證相匹配,則判斷所述輸入認(rèn)證通過認(rèn)證,否則所述密鑰解密電路和數(shù)據(jù)解密電路 不工作;
[0027] 所述密鑰解密電路用于,當(dāng)所述輸入認(rèn)證通過認(rèn)證后,將存儲的密鑰進行解密得 到明文密鑰;
[0028] 所述數(shù)據(jù)解密電路用于,當(dāng)所述輸入認(rèn)證通過認(rèn)證后,根據(jù)所述明文密鑰將從硬 盤獲得的數(shù)據(jù)進行解密,得到解密后的數(shù)據(jù)發(fā)送到計算機。
[0029] 優(yōu)選地,所述FPGA還包括邏輯電路,所述邏輯電路用于將從硬盤接收到的數(shù)據(jù)幀 進行檢測幀類型,并提取幀內(nèi)信息,若所述幀內(nèi)信息是命令,則將所述幀內(nèi)信息發(fā)送給計算 機;若所述幀內(nèi)信息是數(shù)據(jù),則將所述幀內(nèi)信息發(fā)送給所述數(shù)據(jù)解密電路進行解密。
[0030] 優(yōu)選地,所述認(rèn)證輸入模塊包括虹膜攝像頭、指紋傳感器和密碼輸入裝置;
[0031] 所述FPGA包括虹膜接口、指紋接口和密碼輸入接口,所述虹膜接口、指紋接口和 密碼輸入接口分別與虹膜攝像頭、指紋傳感器和密碼輸入裝置連接;
[0032] 所述虹膜攝像頭用于獲取用戶的虹膜圖像,所述處理器用于獲取所述虹膜圖像并 提取虹膜圖像特征,將所述虹膜圖像特征與存儲的虹膜特征模板進行比較,若所述虹膜圖 像特征與存儲的虹膜特征模板相匹配,則判斷所述虹膜圖像通過認(rèn)證;其中,所述虹膜特征 模板通過如下步驟得到:注冊時,所述處理器多次獲取用戶的虹膜圖像,并對獲取的多個虹 膜圖像之間進行自匹配,若通過自匹配則選取所述多個虹膜圖像中的一個的虹膜圖像特征 作為所述虹膜特征模板;
[0033] 所述指紋傳感器用于獲取用戶的指紋圖像,所述處理器用于獲取所述指紋圖像并 提取指紋圖像特征,將所述指紋圖像特征與存儲的指紋特征模板進行比較,若所述指紋圖 像特征與存儲的指紋特征模板相匹配,則判斷所述指紋圖像通過認(rèn)證;其中,所述指紋特征 模板通過如下步驟得到:注冊時,所述處理器多次獲取用戶的指紋圖像,并對獲取的多個指 紋圖像之間進行自匹配,若通過自匹配則選取所述多個指紋圖像中的一個的指紋圖像特征 作為所述指紋特征模板;
[0034] 所述密碼輸入裝置用于獲取密碼口令,所述處理器用于將所述密碼口令與存儲的 設(shè)定密碼口令進行比較,若所述密碼口令與設(shè)定密碼口令相匹配,則判斷所述密碼口令通 過認(rèn)證;其中,所述設(shè)定密碼口令通過如下步驟得到:注冊時將用戶輸入的密碼口令作為 設(shè)定密碼口令;
[0035] 若所述認(rèn)證輸入模塊沒有通過認(rèn)證,所述硬盤不允許進行讀寫數(shù)據(jù);
[0036] 所述虹膜圖像通過認(rèn)證,用戶可以獲得最高的硬盤讀寫操作權(quán)限;
[0037] 所述指紋圖像通過認(rèn)證,用戶可以獲得較高的硬盤讀寫操作權(quán)限;
[0038] 所述密碼口令通過認(rèn)證,用戶可以獲得最低的硬盤讀寫操作權(quán)限;
[0039] 所述指紋接口和密碼輸入接口是分時復(fù)用的。
[0040] 優(yōu)選地,所述邏輯電路是SATA邏輯電路,還用于將從硬盤接收到的數(shù)據(jù)幀進行解 擾、CRC校驗、去除起始幀和結(jié)束幀。
[0041] 優(yōu)選地,所述FPGA通過第一高速串行收發(fā)器向計算機發(fā)送數(shù)據(jù),通過第二高速串 行收發(fā)器接收硬盤的數(shù)據(jù)。
[0042] 優(yōu)選地,硬盤可以是固態(tài)硬盤。
[0043] 本發(fā)明所公開的加密、解密系統(tǒng)絕大部分功能都集成在單片F(xiàn)PGA中,大大簡化了 外圍電路,縮小了整個系統(tǒng)的體積。
[0044] 優(yōu)選方案中,密鑰生成方式以及認(rèn)證方式的改進,都提高了系統(tǒng)的安全性。
[0045] 另一優(yōu)選方案中,本系統(tǒng)還可以利用系統(tǒng)更新模塊隨時更新,從而具有進一步提 高整個系統(tǒng)的安全性。

【專利附圖】

【附圖說明】
[0046] 圖1是本發(fā)明【具體實施方式】的基于FPGA的硬盤加密/解密框圖;
[0047] 圖2是本發(fā)明【具體實施方式】的FPGA內(nèi)部電路框圖;
[0048] 圖3是本發(fā)明【具體實施方式】的加解密流程圖;
[0049] 圖4是本發(fā)明【具體實施方式】的SATA數(shù)據(jù)流加解密流程圖;
[0050] 圖5是本發(fā)明【具體實施方式】的AES256加密流程圖;
[0051] 圖6是本發(fā)明【具體實施方式】的AES256解密流程圖。
[0052] 101 SATA_D 插座
[0053] 102 SATA_H 插座
[0054] 103 FPGA 芯片
[0055] 104 USB 設(shè)備
[0056] 105只讀存儲器
[0057] 106虹膜攝像頭
[0058] 107指紋傳感器
[0059] 201第一高速串行收發(fā)器
[0060] 202 USB 接口
[0061] 203加解密電路
[0062] 204 SATA邏輯控制器
[0063] 205第二高速串行收發(fā)器
[0064] 206 指紋接口
[0065] 207 ARM 處理器
[0066] 208 虹膜接口

【具體實施方式】
[0067] 下面結(jié)合【具體實施方式】并對照附圖對本發(fā)明作進一步詳細(xì)說明。應(yīng)該強調(diào)的是, 下述說明僅僅是示例性的,而不是為了限制本發(fā)明的范圍及其應(yīng)用。
[0068] 參照以下附圖,將描述非限制性和非排他性的實施例,其中相同的附圖標(biāo)記表示 相同的部件,除非另外特別說明。
[0069] 實施例一:
[0070] 如圖1和2所示,一種基于FPGA的硬盤加密系統(tǒng),用于將從主機(計算機)獲取 的數(shù)據(jù)進行加密,并將加密后的數(shù)據(jù)存儲到硬盤,包括FPGA和認(rèn)證輸入模塊,F(xiàn)PGA包括處 理器、密鑰解密電路和數(shù)據(jù)加密電路。,密鑰解密電路和數(shù)據(jù)加密電路通過IP核或HDL硬件 編程語言描述;基于FPGA的硬盤加密系統(tǒng)還可以包括只讀存儲器R0M,用于存儲系統(tǒng)工作 相關(guān)的數(shù)據(jù)或稱算法。處理器可以是高性能的ARM處理器,ARM處理器的主要職責(zé)有兩個: 一是發(fā)揮主控作用,協(xié)調(diào)整個系統(tǒng)的工作,使系統(tǒng)發(fā)揮最大的性能;二是用于系統(tǒng)的認(rèn)證。
[0071] 所述認(rèn)證輸入模塊用于接收用戶的輸入認(rèn)證;
[0072] 所述處理器用于將所述輸入認(rèn)證與存儲的設(shè)定認(rèn)證進行比較,若所述輸入認(rèn)證與 所述認(rèn)證相匹配,則判斷所述輸入認(rèn)證通過認(rèn)證,否則所述密鑰解密電路和數(shù)據(jù)加密電路 不工作;
[0073] 所述密鑰解密電路用于,當(dāng)所述輸入認(rèn)證通過認(rèn)證后,將存儲的密鑰進行解密得 到明文密鑰;
[0074] 所述數(shù)據(jù)加密電路用于,當(dāng)所述輸入認(rèn)證通過認(rèn)證后,根據(jù)所述明文密鑰將從計 算機獲得的數(shù)據(jù)進行加密,得到加密后的數(shù)據(jù)存儲到硬盤。
[0075] 優(yōu)選地,本發(fā)明基于Xilinx Virtex72000T FPGA實現(xiàn),具體如下:
[0076] 如果認(rèn)證通過,則解密系統(tǒng)中的Encrypted Encryption Key (加密狀態(tài)的密鑰); 如果認(rèn)證失敗,系統(tǒng)無法正常工作。一旦Encrypted Encryption Key被解密為Clear Encryption Key (解密狀態(tài)的密鑰),則該密鑰可用于本系統(tǒng),對固態(tài)硬盤和PC之間的數(shù)據(jù) 流進行正常的加密。
[0077] 在本發(fā)明的一個實施例中,認(rèn)證輸入模塊包括三個認(rèn)證子模塊,分別是:虹膜虹膜 攝像頭、指紋傳感器和密碼輸入裝置,系統(tǒng)上電后由用戶輸入上述三種認(rèn)證方式的一種,系 統(tǒng)根據(jù)用戶輸入的認(rèn)證方式進行相應(yīng)的識別。不同的認(rèn)證有不同的權(quán)限:虹膜認(rèn)證的權(quán)限 最高,可以行使全部的讀寫功能;指紋認(rèn)證其次,可以行使全部的讀功能和部分寫功能,如 可以對固態(tài)硬盤添加新數(shù)據(jù),但是不能對原有的數(shù)據(jù)進行編輯、復(fù)制和更改等操作;口令認(rèn) 證的安全等級最低,通過認(rèn)證的用戶只能行使只讀的權(quán)限。通過對三種認(rèn)證模式優(yōu)先級的 限制可以實現(xiàn)賦予不同用戶不同權(quán)限,從而提高認(rèn)證過程的安全性和可靠性,另外不同權(quán) 限自動對應(yīng)對硬盤數(shù)據(jù)的不同操作,同時也提高了認(rèn)證過程后續(xù)操作的方便性。對三種認(rèn) 證模式具體說明,如下:
[0078] 本設(shè)備上電,虹膜攝像頭(Iris Camera) 107負(fù)責(zé)采集當(dāng)前虹膜圖像,然后通過虹 膜接口(Iris IF)208送入ARM處理器207中,ARM處理器207負(fù)責(zé)提取當(dāng)前圖像特征。在 注冊階段,采集三次虹膜,進行自匹配,如匹配通過,則將其中一個虹膜特征模板存入只讀 存儲器(Read Only Memory,ROM) 105中;在認(rèn)證階段,采集用戶虹膜,ARM處理器207對該 虹膜進行特征提取,并與注冊時的模板匹配,匹配通過,由FPGA芯片103完成加密密鑰初始 化及加密解密過程,匹配不通過,認(rèn)證結(jié)束,硬盤不允許數(shù)據(jù)讀寫。
[0079] 本設(shè)備上電,指紋傳感器(Fingerprint Sensor) 108負(fù)責(zé)采集當(dāng)前指紋圖像,然后 通過指紋接口(Fingerprint IF) 206送入ARM處理器207中,ARM處理器207負(fù)責(zé)提取當(dāng) 前圖像特征。在注冊階段,輸入三次指紋,進行自匹配,如匹配通過,則將其中一個指紋特征 模板存入只讀存儲器105中;在認(rèn)證階段,用戶輸入指紋,ARM處理器207對該指紋進行特 征提取,并與注冊時的模板匹配,匹配通過,由FPGA芯片103完成加密密鑰初始化及加密解 密過程,匹配不通過,認(rèn)證結(jié)束,硬盤不允許數(shù)據(jù)讀寫。
[0080] 本設(shè)備上電,通過上位機⑶I界面輸入密碼口令,然后通過指紋接口 206送入ARM 處理器207中,密碼口令接口和指紋接口是分時復(fù)用的。在注冊階段,用戶輸入密碼口令, 并將該口令存儲到只讀存儲器105中;認(rèn)證階段,用戶輸入口令,ARM處理器207將輸入的 口令和注冊時的口令匹配,匹配通過,由FPGA芯片103完成加密密鑰初始化及加密解密過 程,匹配不通過,認(rèn)證結(jié)束,硬盤不允許數(shù)據(jù)讀寫。
[0081] 另外,為加強系統(tǒng)的安全性,更優(yōu)選地,本系統(tǒng)所用密鑰不在系統(tǒng)制作時預(yù)先制 訂,而是在系統(tǒng)用戶注冊時制訂屬于本用戶和系統(tǒng)的非統(tǒng)一數(shù)據(jù)加密、解密密鑰,以此使每 個系統(tǒng)的加密、解密密鑰都是獨特的,從而防止通過密鑰窮舉破解系統(tǒng)并獲取系統(tǒng)的存儲 內(nèi)容。
[0082] 在本發(fā)明的一個實施例中,F(xiàn)PGA包括第一高速串行收發(fā)器201、第二高速串行收 發(fā)器205,第一高速串行收發(fā)器201和第二高速串行收發(fā)器205可利用FPGA芯片103內(nèi)置的 GTX高速串行收發(fā)器,配置成SATA接口物理層,直接與硬盤和PC互連,省去了專門的SATA 芯片,且GTX還提供了動態(tài)重配置接口,完全可以使本接口兼容SATA3、SATA2、SATA 1通訊速 率,滿足多種設(shè)備的需求。與第一高速串行收發(fā)器201和第二高速串行收發(fā)器205相對應(yīng) 的,在本系統(tǒng)的FPGA芯片103外還有兩個插座:SATA_D插座101和SATA_H插座102, SATA_ D插座101與硬盤接口相連,SATA_H插座102與PC接口相連,通過這兩個接口完成與外部 設(shè)備的數(shù)據(jù)交換,內(nèi)部數(shù)據(jù)交換是通過FPGA芯片103的第一高速串行收發(fā)器201和第二高 速串行收發(fā)器205完成。
[0083] SATA邏輯電路利用FPGA芯片103內(nèi)部的邏輯資源,配置成SATA通訊協(xié)議中的鏈 路層、傳輸層。傳輸層只需要把需要的傳輸數(shù)據(jù)封裝成標(biāo)準(zhǔn)的幀格式,并把接收到的幀解除 封裝,協(xié)議把總共需要傳輸?shù)拿詈蛿?shù)據(jù)分成了八種幀格式,分別用不同的幀號表示。在 SATA邏輯電路中主要實現(xiàn)著兩層的功能。本模塊接收并發(fā)送物理層的信號。對于接收到的 信號,先解擾、CRC校驗,然后去除S0F (起始幀)/EOF (結(jié)束幀),最后提取出幀內(nèi)信息;如果 幀內(nèi)信息是命令,則直接將命令發(fā)送給硬盤,例如獲取硬盤的地址等命令,如果出幀內(nèi)信息 是數(shù)據(jù)則送往加密電路進行加密;然后根據(jù)SATA協(xié)議,重新封裝成幀格式,添加S0F/E0F, 計算CRC,進行加擾,最后發(fā)送出去。
[0084] 在本發(fā)明的一個實施例中,加密電路中的算法采用AES256算法,具有高可靠性, 由于加密完全由硬件完成,不影響正常的通訊速率。AES加密算法即密碼學(xué)中的高級加密 標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),AES運算分組長度固定,數(shù)據(jù)塊的長度為128 位,密鑰的長度可以為128位、192位、256位,密鑰越長加密強度越大,加密算法運算的輪數(shù) 越多,加密的數(shù)據(jù)越安全。
[0085] 請參看附圖3所示為本發(fā)明【具體實施方式】的加解密流程圖,附圖4所示為本發(fā)明

【具體實施方式】的SATA數(shù)據(jù)流加解密流程圖。在這里用到了物理層、鏈路層和傳輸層。
[0086] 物理層發(fā)送器可提供一個100歐姆的差分匹配終端;可為鏈路層提供40路的輸 入;接收器提供100歐姆的差分匹配終端;從串行碼流中提取數(shù)據(jù)或時鐘;對串行碼流解 串;可檢測K28. 5逗號字符;提供確定的00B信號發(fā)送和檢測機制;可使用00B信號協(xié)議初 始化SATA接口,并使用00B序列進行速率匹配。
[0087] 當(dāng)傳輸層請求發(fā)送幀時,鏈路層實現(xiàn)如下功能:與對等鏈路層協(xié)商,避免主機和設(shè) 備同時請求發(fā)送數(shù)據(jù);從傳輸層接收數(shù)據(jù);計算數(shù)據(jù)CRC,進行擾碼、編碼;添加幀頭、幀尾 等信息;發(fā)送幀,進行流量控制;接收對等鏈路層的幀接收信息,向傳輸層報告?zhèn)鬏斖瓿苫?鏈路層、物理層錯誤。當(dāng)物理層接收到幀時,實現(xiàn)如下功能:移除幀頭、幀尾和校驗信息;對 數(shù)據(jù)進行解碼、解擾、計算CRC ;向?qū)Φ孺溌穼禹憫?yīng)幀接收信息,向傳輸層報告接收正確或 鏈路層、物理層錯誤。
[0088] 當(dāng)需要發(fā)送FIS幀時,傳輸層完成以下功能:根據(jù)FIS請求組建幀;將FIS按照正 確的順序擺放;接收鏈路層的幀傳輸請求,將FIS發(fā)往鏈路層;接收來自鏈路層的幀應(yīng)答; 對上層請求發(fā)送的幀,返回完成或錯誤狀態(tài)。當(dāng)接收到FIS時,傳輸層提供以下功能:接收 來自FIS的幀;檢測FIS類型;根據(jù)FIS類型分開FIS內(nèi)容;對于上層請求發(fā)送的幀,返回 完成或錯誤狀態(tài)。
[0089] 下面對加密過程簡要敘述:數(shù)據(jù)流通過SATA_H插座102、第一高速串行收發(fā)器 201,完成數(shù)據(jù)流的串并轉(zhuǎn)換、8B/10B解碼、時鐘恢復(fù)、上電初始化,變成SATA協(xié)議中標(biāo)準(zhǔn)的 32位并行數(shù)據(jù);之后送入SATA邏輯電路,根據(jù)ΑΤΑ指令集,對于接收到的數(shù)據(jù),先解擾、CRC 校驗,然后去除S0F/E0F ;最后檢測幀類型,提取出幀內(nèi)信息。如果幀內(nèi)信息是命令直接發(fā) 送給硬盤,如果幀內(nèi)信息是數(shù)據(jù)則送往加解密電路中。
[0090] 在加解密電路中,加密過程經(jīng)過S盒變換SubBytes、行移位變換ShiftRows、列混 淆變換MixColumns和輪密鑰加變換AddRoundKey,過程如圖5所示為本發(fā)明【具體實施方式】 的AES256加密流程圖。SubBytes變換是AES算法中唯一的非線性字節(jié)變換碼,起到混亂的 作用,決定AES算法安全性的關(guān)鍵,S盒變換處理單位為字節(jié);ShiftRows變換是AES算法的 線性運算,它對中間狀態(tài)進行循環(huán)右移位操作,中間狀態(tài)矩陣行數(shù)移位量與密鑰長度有關(guān); MixColumns變換是AES算法的線性變換,處理單位為狀態(tài)矩陣的一列;AddRoundKey變換使 用中間狀態(tài)與輪密鑰進行異或運算,數(shù)據(jù)塊的長度與輪密鑰的長度相同。經(jīng)過這四個變換, 從PC上寫入的明文轉(zhuǎn)變成了密文。
[0091] 已加密數(shù)據(jù)被送回到數(shù)據(jù)交換模塊中的SATA邏輯電路,根據(jù)SATA協(xié)議,對加密過 的數(shù)據(jù)重新封裝成幀格式,添加S0F/E0F,計算CRC,進行加擾;然后數(shù)據(jù)送入第二高速串行 收發(fā)器205,完成數(shù)據(jù)流的8B/10B編碼、串并轉(zhuǎn)換,變成串行數(shù)據(jù)流之后送入SATA_D插座 101,并發(fā)送到硬盤上。
[0092] 經(jīng)過加密過程,存儲在PC上的明文被轉(zhuǎn)換成密文寫入到硬盤上。
[0093] 下面對解密過程簡要敘述:數(shù)據(jù)流通過SATA_D插座101、第二高速串行收發(fā)器 205,完成數(shù)據(jù)流的串并轉(zhuǎn)換、8B/10B解碼、時鐘恢復(fù)、上電初始化,變成SATA協(xié)議中標(biāo)準(zhǔn)的 32位并行數(shù)據(jù);之后送入SATA邏輯器,根據(jù)ΑΤΑ指令集,對于接收到的數(shù)據(jù),先解擾、CRC校 驗,然后去除S0F/E0F ;最后檢測幀類型,提取出幀內(nèi)信息;如果幀內(nèi)信息是命令直接發(fā)送 給計算機,如果幀內(nèi)信息是數(shù)據(jù)則送往加解密電路中,進行解密。
[0094] 解密算法是加密算法的逆過程,算法結(jié)構(gòu)與加密算法相似。在加解密電路中, 解密過程經(jīng)過逆S盒變換InvSubBytes、逆行移位變換InvShiftRows、逆列混淆變換 InvMixColumns和輪密鑰加變換AddRoundKey,過程如圖6所示為本發(fā)明【具體實施方式】 的AES256解密流程圖。InvShiftRows是ShiftRows的逆過程,對中間狀態(tài)進行行移位; InvSubBytes是SubBytes逆過程,先對字節(jié)的值進行逆仿射變換,然后在進行乘法逆替換; AddRoundKey使用中間狀態(tài)和輪密鑰進行異或運算;InvMixColumns是MixColumns的逆過 程,處理單位為狀態(tài)矩陣的一列。經(jīng)過解密過程,從硬盤上讀出的密文轉(zhuǎn)變成明文。
[0095] 已解密數(shù)據(jù)被送回到數(shù)據(jù)交換模塊中的SATA邏輯電路,根據(jù)SATA協(xié)議,對解密過 的數(shù)據(jù)重新封裝成幀格式,添加S0F/E0F,計算CRC,進行加擾;然后數(shù)據(jù)送入第一高速串行 收發(fā)器201,完成數(shù)據(jù)流的8B/10B編碼、串并轉(zhuǎn)換,變成串行數(shù)據(jù)流之后送入SATA_H插座 102。
[0096] 經(jīng)過解密過程,存儲在硬盤上的密文被轉(zhuǎn)換成明文讀出到PC上。
[0097] 本發(fā)明所公開的加解密系統(tǒng)絕大部分功能都集成在單片F(xiàn)PGA中,大大簡化了外 圍電路,縮小了整個系統(tǒng)的體積;另外,認(rèn)證時采用三種優(yōu)先級不同的認(rèn)證方式,可以賦予 不同用戶不同權(quán)限,從而提高認(rèn)證過程的安全性和可靠性,另外不同權(quán)限自動對應(yīng)對硬盤 數(shù)據(jù)的不同操作,同時也提高了認(rèn)證過程后續(xù)操作的方便性;再者,本系統(tǒng)所用密鑰不在系 統(tǒng)制作時預(yù)先制訂,而是在系統(tǒng)用戶注冊時制訂屬于本用戶和系統(tǒng)的獨一無二的加解密密 鑰,進一步加強系統(tǒng)的安全性。
[0098] 實施例二:
[0099] 信息時代技術(shù)飛速發(fā)展,電子產(chǎn)品的更新日新月異,加解密算法、指紋識別等軟件 需要不斷更新,以適應(yīng)新的需求和挑戰(zhàn),從而得到最高的安全性,所以加解密系統(tǒng)還需要實 時更新。本系統(tǒng)還包括系統(tǒng)更新模塊,系統(tǒng)更新模塊也集成在FPGA芯片103中實現(xiàn),通過 系統(tǒng)更新模塊更新最新的固件而不用更換整個硬件系統(tǒng),大大節(jié)省了成本。在本發(fā)明的一 個實施例中,系統(tǒng)更新模塊采用USB接口 202, USB接口 202用于整個系統(tǒng)的固件更新。此 接口也無需專用的USB接口芯片,F(xiàn)PGA中有豐富的邏輯資源,應(yīng)用HDL硬件編程語言完全 可以在內(nèi)部實現(xiàn)USB功能。
[0100] 通過標(biāo)準(zhǔn)的USB接口 202完成設(shè)備固件的更新,過程如下:
[0101] (1) PC從USB設(shè)備104獲取配置信息,并設(shè)置設(shè)備的配置值。此階段的數(shù)據(jù)交換包 含了 SETUP令牌封包、緊隨其后的數(shù)據(jù)封包以及ACK握手封包;
[0102] (2)數(shù)據(jù)傳輸階段用來傳輸主機與設(shè)備之間的數(shù)據(jù),也就是固件信息的更新,即將 最新的固件從PC中通過USB接口 202更新到只讀存儲器105中。對每一個數(shù)據(jù)信息包而 言,主機將會送出一個OUT令牌信息包,表示數(shù)據(jù)要送出去。緊接著,主機將數(shù)據(jù)通過數(shù)據(jù) 信息包傳遞給USB設(shè)備104。如果數(shù)據(jù)已經(jīng)正確接收,設(shè)備送出ACK令牌信息包;
[0103] (3)當(dāng)固件已經(jīng)成功更新到只讀存儲器105中,主機會送出IN令牌封包,然后設(shè)備 送出設(shè)備完成狀態(tài)階段的〇長度的數(shù)據(jù)封包,主機再做出相應(yīng)的動作。
[0104] 至此,這個固件更新過程結(jié)束。
[0105] 通過標(biāo)準(zhǔn)的USB接口實時更新最新的固件而不用更換整個硬件系統(tǒng),大大節(jié)省了 成本,提高整個設(shè)備的安全性,以獲得最新的客戶體驗。
[0106] 實施例三:
[0107] 本發(fā)明實施例還提供了一種基于FPGA的固態(tài)硬盤加解密方法,用于對主機和硬 盤之間傳輸?shù)臄?shù)據(jù)進行加解密,系統(tǒng)所涉及的認(rèn)證、數(shù)據(jù)交換和加解密全部都集成在一塊 FPGA芯片上完成,各模塊通過IP核或HDL硬件編程語言描述。具體如下:
[0108] S101、認(rèn)證,對用戶進行權(quán)限認(rèn)證,若所述權(quán)限認(rèn)證通過,解密密鑰用于加解使 用;
[0109] 如果認(rèn)證通過,則解密系統(tǒng)中的Encrypted Encryption Key (加密狀態(tài)的密鑰); 如果認(rèn)證失敗,系統(tǒng)無法正常工作。一旦Encrypted Encryption Key被解密為Clear Encryption Key (解密狀態(tài)的密鑰),則該密鑰可用于本系統(tǒng),對固態(tài)硬盤和PC之間的數(shù)據(jù) 流進行正常的加解密。
[0110] 在本發(fā)明的一個實施例中,認(rèn)證包括三種認(rèn)證方式,分別是:虹膜認(rèn)證、指紋認(rèn)證 和口令認(rèn)證,系統(tǒng)上電后由用戶輸入上述三種認(rèn)證方式的一種,系統(tǒng)根據(jù)用戶輸入的認(rèn)證 方式進行相應(yīng)的識別。不同的認(rèn)證有不同的權(quán)限:虹膜認(rèn)證的權(quán)限最高,可以行使全部的讀 寫功能;指紋認(rèn)證其次,可以行使全部的讀功能和部分寫功能,如可以對固態(tài)硬盤添加新數(shù) 據(jù),但是不能對原有的數(shù)據(jù)進行編輯、復(fù)制和更改等操作;口令認(rèn)證的安全等級最低,通過 認(rèn)證的用戶只能行使只讀的權(quán)限。通過對三種認(rèn)證模式優(yōu)先級的限制可以實現(xiàn)賦予不同用 戶不同權(quán)限,從而提高認(rèn)證過程的安全性和可靠性,另外不同權(quán)限自動對應(yīng)對硬盤數(shù)據(jù)的 不同操作,同時也提高了認(rèn)證過程后續(xù)操作的方便性。
[0111] 另外,為加強系統(tǒng)的安全性,更優(yōu)選地,本系統(tǒng)所用密鑰不在系統(tǒng)制作時預(yù)先制 訂,而是在系統(tǒng)用戶注冊時制訂屬于本用戶和系統(tǒng)的非統(tǒng)一數(shù)據(jù)加解密密鑰,以此使每個 系統(tǒng)的加解密密鑰都是獨特的,從而防止通過密鑰窮舉破解系統(tǒng)并獲取系統(tǒng)的存儲內(nèi)容。
[0112] S102、數(shù)據(jù)交換,用于所述主機和所述硬盤之間交換數(shù)據(jù);
[0113] PC主機和硬盤之間的數(shù)據(jù)通過SATA協(xié)議進行交換,SATA協(xié)議是以連續(xù)串行的方 式傳送數(shù)據(jù)。本步驟就是將PC機和硬盤之間交換的數(shù)據(jù)按照SATA協(xié)議規(guī)定的格式進行串 并行轉(zhuǎn)換,對于待加解密的信號,進行解擾、CRC校驗、去除S0F/E0F-系列操作,最后提取 出幀內(nèi)信息,對于已加解密的信號,重新封裝成幀格式,進行添加S0F/E0F、計算CRC、加擾 一系列操作,最后發(fā)送出去。
[0114] S103、加解密,對所述交換數(shù)據(jù)進行加解密;
[0115] 在本發(fā)明的一個實施例中,加解算法采用AES256算法。
[0116] 作為一種更優(yōu)選的實施方式,本方法還包括系統(tǒng)更新,系統(tǒng)更新也集成在FPGA芯 片103中實現(xiàn),應(yīng)用HDL硬件編程語言在FPGA芯片內(nèi)部實現(xiàn)。一個實施例中,系統(tǒng)更新采 用USB接口的方式實現(xiàn),通過USB接口更新最新的固件而不用更換整個硬件系統(tǒng),大大節(jié)省 了成本。
[0117] 需要說明的是,上述各步驟之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明產(chǎn)品 實施例基于同一構(gòu)思,其帶來的技術(shù)效果與本發(fā)明產(chǎn)品實施例相同,具體內(nèi)容可參見本發(fā) 明產(chǎn)品實施例中的敘述,此處不再贅述。
[0118] 以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細(xì)說明,不能認(rèn)定 本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在 不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明由 所提交的權(quán)利要求書確定的專利保護范圍。
【權(quán)利要求】
1. 一種基于FPGA的硬盤加密系統(tǒng),其特征是,包括FPGA和認(rèn)證輸入模塊,所述FPGA包 括處理器、密鑰解密電路和數(shù)據(jù)加密電路; 所述認(rèn)證輸入模塊用于接收用戶的輸入認(rèn)證; 所述處理器用于將所述輸入認(rèn)證與存儲的設(shè)定認(rèn)證進行比較,若所述輸入認(rèn)證與所述 認(rèn)證相匹配,則判斷所述輸入認(rèn)證通過認(rèn)證,否則所述密鑰解密電路和數(shù)據(jù)加密電路不工 作; 所述密鑰解密電路用于,當(dāng)所述輸入認(rèn)證通過認(rèn)證后,將存儲的密鑰進行解密得到明 文密鑰; 所述數(shù)據(jù)加密電路用于,當(dāng)所述輸入認(rèn)證通過認(rèn)證后,根據(jù)所述明文密鑰將從計算機 獲得的數(shù)據(jù)進行加密,得到加密后的數(shù)據(jù)存儲到硬盤。
2. 如權(quán)利要求1所述的基于FPGA的硬盤加密系統(tǒng),其特征是,所述FPGA還包括邏輯電 路,所述邏輯電路用于將從計算機接收到的數(shù)據(jù)幀進行檢測幀類型,并提取幀內(nèi)信息,若所 述幀內(nèi)信息是命令,則將所述幀內(nèi)信息發(fā)送給硬盤;若所述幀內(nèi)信息是數(shù)據(jù),則將所述幀內(nèi) 信息發(fā)送給所述數(shù)據(jù)加密電路進行加密。
3. 如權(quán)利要求1所述的基于FPGA的硬盤加密系統(tǒng),其特征是,所述認(rèn)證輸入模塊包括 虹膜攝像頭、指紋傳感器和密碼輸入裝置; 所述FPGA包括虹膜接口、指紋接口和密碼輸入接口,所述虹膜接口、指紋接口和密碼 輸入接口分別與虹膜攝像頭、指紋傳感器和密碼輸入裝置連接; 所述虹膜攝像頭用于獲取用戶的虹膜圖像,所述處理器用于獲取所述虹膜圖像并提取 虹膜圖像特征,將所述虹膜圖像特征與存儲的虹膜特征模板進行比較,若所述虹膜圖像特 征與存儲的虹膜特征模板相匹配,則判斷所述虹膜圖像通過認(rèn)證;其中,所述虹膜特征模板 通過如下步驟得到:注冊時,所述處理器多次獲取用戶的虹膜圖像,并對獲取的多個虹膜圖 像之間進行自匹配,若通過自匹配則選取所述多個虹膜圖像中的一個的虹膜圖像特征作為 所述虹膜特征模板; 所述指紋傳感器用于獲取用戶的指紋圖像,所述處理器用于獲取所述指紋圖像并提取 指紋圖像特征,將所述指紋圖像特征與存儲的指紋特征模板進行比較,若所述指紋圖像特 征與存儲的指紋特征模板相匹配,則判斷所述指紋圖像通過認(rèn)證;其中,所述指紋特征模板 通過如下步驟得到:注冊時,所述處理器多次獲取用戶的指紋圖像,并對獲取的多個指紋圖 像之間進行自匹配,若通過自匹配則選取所述多個指紋圖像中的一個的指紋圖像特征作為 所述指紋特征模板; 所述密碼輸入裝置用于獲取密碼口令,所述處理器用于將所述密碼口令與存儲的設(shè)定 密碼口令進行比較,若所述密碼口令與設(shè)定密碼口令相匹配,則判斷所述密碼口令通過認(rèn) 證;其中,所述設(shè)定密碼口令通過如下步驟得到:注冊時將用戶輸入的密碼口令作為設(shè)定 密碼口令; 若所述認(rèn)證輸入模塊沒有通過認(rèn)證,所述硬盤不允許進行讀寫數(shù)據(jù); 所述虹膜圖像通過認(rèn)證,用戶可以獲得最高的硬盤讀寫操作權(quán)限; 所述指紋圖像通過認(rèn)證,用戶可以獲得較高的硬盤讀寫操作權(quán)限; 所述密碼口令通過認(rèn)證,用戶可以獲得最低的硬盤讀寫操作權(quán)限; 所述指紋接口和密碼輸入接口是分時復(fù)用的。
4. 如權(quán)利要求3所述的基于FPGA的硬盤加密系統(tǒng),其特征是,所述邏輯電路是SATA邏 輯電路,還用于將從計算機接收到的數(shù)據(jù)幀進行解擾、CRC校驗、去除起始幀和結(jié)束幀。
5. 如權(quán)利要求2所述的基于FPGA的硬盤加密系統(tǒng),其特征是,所述FPGA通過第一高 速串行收發(fā)器接收計算機的數(shù)據(jù),通過第二高速串行收發(fā)器將所述加密后的數(shù)據(jù)發(fā)送到硬 盤。
6. -種基于FPGA的硬盤解密系統(tǒng),其特征是,包括FPGA和認(rèn)證輸入模塊,所述FPGA包 括處理器、密鑰解密電路和數(shù)據(jù)解密電路; 所述認(rèn)證輸入模塊用于接收用戶的輸入認(rèn)證; 所述處理器用于將所述輸入認(rèn)證與存儲的設(shè)定認(rèn)證進行比較,若所述輸入認(rèn)證與所述 認(rèn)證相匹配,則判斷所述輸入認(rèn)證通過認(rèn)證,否則所述密鑰解密電路和數(shù)據(jù)解密電路不工 作; 所述密鑰解密電路用于,當(dāng)所述輸入認(rèn)證通過認(rèn)證后,將存儲的密鑰進行解密得到明 文密鑰; 所述數(shù)據(jù)解密電路用于,當(dāng)所述輸入認(rèn)證通過認(rèn)證后,根據(jù)所述明文密鑰將從硬盤獲 得的數(shù)據(jù)進行解密,得到解密后的數(shù)據(jù)發(fā)送到計算機。
7. 如權(quán)利要求6所述的基于FPGA的硬盤解密系統(tǒng),其特征是,所述FPGA還包括邏輯電 路,所述邏輯電路用于將從硬盤接收到的數(shù)據(jù)幀進行檢測幀類型,并提取幀內(nèi)信息,若所述 幀內(nèi)信息是命令,則將所述幀內(nèi)信息發(fā)送給計算機;若所述幀內(nèi)信息是數(shù)據(jù),則將所述幀內(nèi) 信息發(fā)送給所述數(shù)據(jù)解密電路進行解密。
8. 如權(quán)利要求6所述的基于FPGA的硬盤解密系統(tǒng),其特征是,所述認(rèn)證輸入模塊包括 虹膜攝像頭、指紋傳感器和密碼輸入裝置; 所述FPGA包括虹膜接口、指紋接口和密碼輸入接口,所述虹膜接口、指紋接口和密碼 輸入接口分別與虹膜攝像頭、指紋傳感器和密碼輸入裝置連接; 所述虹膜攝像頭用于獲取用戶的虹膜圖像,所述處理器用于獲取所述虹膜圖像并提取 虹膜圖像特征,將所述虹膜圖像特征與存儲的虹膜特征模板進行比較,若所述虹膜圖像特 征與存儲的虹膜特征模板相匹配,則判斷所述虹膜圖像通過認(rèn)證;其中,所述虹膜特征模板 通過如下步驟得到:注冊時,所述處理器多次獲取用戶的虹膜圖像,并對獲取的多個虹膜圖 像之間進行自匹配,若通過自匹配則選取所述多個虹膜圖像中的一個的虹膜圖像特征作為 所述虹膜特征模板; 所述指紋傳感器用于獲取用戶的指紋圖像,所述處理器用于獲取所述指紋圖像并提取 指紋圖像特征,將所述指紋圖像特征與存儲的指紋特征模板進行比較,若所述指紋圖像特 征與存儲的指紋特征模板相匹配,則判斷所述指紋圖像通過認(rèn)證;其中,所述指紋特征模板 通過如下步驟得到:注冊時,所述處理器多次獲取用戶的指紋圖像,并對獲取的多個指紋圖 像之間進行自匹配,若通過自匹配則選取所述多個指紋圖像中的一個的指紋圖像特征作為 所述指紋特征模板; 所述密碼輸入裝置用于獲取密碼口令,所述處理器用于將所述密碼口令與存儲的設(shè)定 密碼口令進行比較,若所述密碼口令與設(shè)定密碼口令相匹配,則判斷所述密碼口令通過認(rèn) 證;其中,所述設(shè)定密碼口令通過如下步驟得到:注冊時將用戶輸入的密碼口令作為設(shè)定 密碼口令; 若所述認(rèn)證輸入模塊沒有通過認(rèn)證,所述硬盤不允許進行讀寫數(shù)據(jù); 所述虹膜圖像通過認(rèn)證,用戶可以獲得最高的硬盤讀寫操作權(quán)限; 所述指紋圖像通過認(rèn)證,用戶可以獲得較高的硬盤讀寫操作權(quán)限; 所述密碼口令通過認(rèn)證,用戶可以獲得最低的硬盤讀寫操作權(quán)限; 所述指紋接口和密碼輸入接口是分時復(fù)用的。
9. 如權(quán)利要求8所述的基于FPGA的硬盤解密系統(tǒng),其特征是,所述邏輯電路是SATA邏 輯電路,還用于將從硬盤接收到的數(shù)據(jù)幀進行解擾、CRC校驗、去除起始幀和結(jié)束幀。
10. 如權(quán)利要求6所述的基于FPGA的硬盤解密系統(tǒng),其特征是,所述FPGA通過第一高 速串行收發(fā)器向計算機發(fā)送數(shù)據(jù),通過第二高速串行收發(fā)器接收硬盤的數(shù)據(jù)。
【文檔編號】G06F21/80GK104156677SQ201410395387
【公開日】2014年11月19日 申請日期:2014年8月12日 優(yōu)先權(quán)日:2014年8月12日
【發(fā)明者】馬建設(shè), 張琛, 程雪岷, 林家用 申請人:清華大學(xué)深圳研究生院
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1