如何設(shè)計(jì)基于IP復(fù)用的硬盤(pán)加密卡

基于IP復(fù)用方法實(shí)現(xiàn)的硬盤(pán)加密卡,是一種用于保障數(shù)據(jù)存儲(chǔ)安全的硬件加密裝置。那么基于IP復(fù)用的硬盤(pán)加密卡是如何設(shè)計(jì)的呢?我今天就給大家講一下。

一、硬盤(pán)加密卡總體結(jié)構(gòu)

硬盤(pán)加密卡的總體結(jié)構(gòu)如圖1所示。

如何設(shè)計(jì)基于IP復(fù)用的硬盤(pán)加密卡

硬盤(pán)加密卡由“主加密卡”和“密鑰存儲(chǔ)卡”組成,主加密卡又由核心部件及外圍電路組成。核心部件采用知識(shí)產(chǎn)權(quán)(lntellectual Property,IP)復(fù)用的設(shè)計(jì)方法,由現(xiàn)場(chǎng)可編程門(mén)陣列(Field Pt08rammable Gate Ar-ray,F(xiàn)PGA)實(shí)現(xiàn),主要組成包括:硬盤(pán)控制IP、加解密IP、密鑰管理IP、16_2_n模塊和n_2_16模塊等,其結(jié)構(gòu)如圖2所示。其中16 2 n模塊將16位的IDE數(shù)據(jù)寬度轉(zhuǎn)換為n位加解密IP的數(shù)據(jù)寬度,而n- 2_16模塊實(shí)現(xiàn)相反方向的轉(zhuǎn)換。

如何設(shè)計(jì)基于IP復(fù)用的硬盤(pán)加密卡

外圍電路主要包括:IDE接口電路、密鑰接口電路、驅(qū)動(dòng)電路、外部時(shí)鐘電路等,用以實(shí)現(xiàn)各種協(xié)議間的物理接口、信號(hào)的驅(qū)動(dòng)以及時(shí)鐘的產(chǎn)生。

密鑰存儲(chǔ)卡以智能卡方式實(shí)現(xiàn),除提供正確的加解密密鑰外,還和主加密卡之間進(jìn)行相互認(rèn)證,進(jìn)一步保證密鑰存儲(chǔ)的安全性。

二、核心部件中各IP的設(shè)計(jì)

1、硬盤(pán)控制IP

硬盤(pán)控制IP的主要功能為:接管硬盤(pán)控制器對(duì)硬盤(pán)的操作,實(shí)現(xiàn)對(duì)硬盤(pán)讀寫(xiě)的全面控制;控制加解密IP完成數(shù)據(jù)文件加密和解密操作;控制密鑰管理IP從密鑰存儲(chǔ)卡中獲取加密和解密密鑰。

硬盤(pán)控制IP的外部接口如圖3所示。

如何設(shè)計(jì)基于IP復(fù)用的硬盤(pán)加密卡

_硬盤(pán)控制IP的T作狀態(tài)機(jī)如圖4所示。

如何設(shè)計(jì)基于IP復(fù)用的硬盤(pán)加密卡

上電復(fù)位后,硬盤(pán)控制IP控制密鑰管理IP從密鑰存儲(chǔ)卡中獲取加密和解密密鑰;密鑰成功獲取后,進(jìn)入空閑狀態(tài),等待主機(jī)進(jìn)行讀寫(xiě)操作;當(dāng)主機(jī)發(fā)出寫(xiě)命令時(shí),硬盤(pán)控制IP控制加密和解密IP對(duì)從主機(jī)輸入的待加密數(shù)據(jù)文件加密,并在加密操作完成后,將已加密數(shù)據(jù)文件送人硬盤(pán),然后返回到空閑狀態(tài),等待下一次讀寫(xiě)操作;當(dāng)主機(jī)發(fā)出讀命令時(shí),硬盤(pán)控制IP控制加密和解密IP將從硬盤(pán)中讀出的待解密數(shù)據(jù)文件進(jìn)行解密,并在解密操作完成后,將已解密數(shù)據(jù)送人主機(jī),然后返回到空閑狀態(tài),等待下一輪的讀寫(xiě)操作。

2、加密和解密IP

加密和解密IP中實(shí)現(xiàn)了分組長(zhǎng)度128位、密鑰長(zhǎng)度128位的AES加密算法,以對(duì)在主機(jī)和硬盤(pán)之間傳輸?shù)臄?shù)據(jù)進(jìn)行加密和解密操作,其外部接口如圖5所示。

如何設(shè)計(jì)基于IP復(fù)用的硬盤(pán)加密卡

AES加密算法主要由密鑰擴(kuò)展、加密和解密三部分組成。其實(shí)現(xiàn)結(jié)構(gòu)如圖6所示。

如何設(shè)計(jì)基于IP復(fù)用的硬盤(pán)加密卡

密鑰擴(kuò)展以原始密鑰擴(kuò)展出后續(xù)各輪中密鑰加法運(yùn)算所需的輪密鑰。

加密過(guò)程為:

(1)將明文映射到狀態(tài)矩陣,井進(jìn)行初始的密鑰加法運(yùn)算;

(2)進(jìn)行10次輪運(yùn)算,除最后一輪不做列混合外,其余各輪均由字節(jié)替換、行移位、列混合、密鑰添加四個(gè)性換依次對(duì)狀態(tài)矩陣進(jìn)行操作;

(3)把狀態(tài)矩陣映射為密文,完成加密過(guò)程。

解密時(shí),可以用上述四個(gè)置換的逆置換直接生成AES的解密算法。

加密和解密IP的工作狀態(tài)機(jī)如圖7所示。

如何設(shè)計(jì)基于IP復(fù)用的硬盤(pán)加密卡

上電復(fù)位后,加密和解密IP從密鑰管理IP處獲取加密和解密密鑰。并對(duì)其進(jìn)行擴(kuò)展,以得到加密和解密所需的各輪子密鑰,之后進(jìn)入空閑狀態(tài),等待硬盤(pán)控制IP發(fā)出加密和解密命令;硬盤(pán)控制IP發(fā)出加密和解密的過(guò)程中,輸入緩沖區(qū)已經(jīng)被占滿,則保持現(xiàn)有的加密和解密狀態(tài),直到出現(xiàn)可用緩沖后,再繼續(xù)之前中斷的操作;加密和解密過(guò)程完成后,硬盤(pán)控制IP會(huì)將加密和解密IP輸出緩沖區(qū)中的加密和解密結(jié)果全部讀出,之后返回到空閑狀態(tài),等待下一輪解密和解密的開(kāi)始。

3、密鑰管理IP

在現(xiàn)代密碼學(xué)中,加密算法的安全性是基于密鑰的安全性,而不是加密算法的細(xì)節(jié)的安全性。因此,如何保證密鑰的安全性成為設(shè)計(jì)中最為關(guān)鍵的問(wèn)題之一。

主加密卡通過(guò)密鑰管理IP進(jìn)行如下的最終解密和解密密鑰獲取過(guò)程,以保證密鑰存儲(chǔ)的安全性,其中的主要參數(shù)如表1所示:

如何設(shè)計(jì)基于IP復(fù)用的硬盤(pán)加密卡

(1)密鑰存儲(chǔ)卡對(duì)主加密卡的認(rèn)證

密鑰管理IP從密鑰存儲(chǔ)卡獲得一個(gè)隨機(jī)數(shù)Randl:密鑰管理IP用Kauth對(duì)Randl進(jìn)行3DES加密,并將加密結(jié)果Res1返回給密鑰存儲(chǔ)卡;密鑰存儲(chǔ)卡用Kauth對(duì)Randl進(jìn)行相同運(yùn)算,并將運(yùn)算結(jié)果Re2與Res1進(jìn)行比較,如果相同則通過(guò)認(rèn)證,否則,將無(wú)法對(duì)密鑰存儲(chǔ)卡進(jìn)行訪問(wèn)。這一認(rèn)證過(guò)程也稱為外部認(rèn)證。

(2)主加密卡對(duì)密鑰存儲(chǔ)卡的認(rèn)證

密鑰管理IP從密鑰存儲(chǔ)卡獲得一個(gè)隨機(jī)數(shù)Rand2;密鑰存儲(chǔ)卡使用認(rèn)證密鑰Kauth對(duì)Rand2進(jìn)行3DES加密,并將加密結(jié)果Res3送給密鑰管理IP;密鑰管理IP利用Kauth對(duì)Rand2進(jìn)行相同運(yùn)算,并將運(yùn)算結(jié)果Res4與Re83進(jìn)行比較,如果相同則認(rèn)證通過(guò),否則無(wú)法繼續(xù)進(jìn)行后續(xù)操作。這一認(rèn)證過(guò)程也稱為內(nèi)部認(rèn)證。

(3)最終加密和解密密鑰的生成

內(nèi)部認(rèn)證和外部認(rèn)證通過(guò)后,密鑰管理IP從密鑰存儲(chǔ)卡中讀取密鑰素材Kraw,并利用加密密鑰Kenc對(duì)Kraw進(jìn)行3DES加密,生成最終加解密密鑰Kfinal密鑰管理IP的外部接口如圖8所示。

如何設(shè)計(jì)基于IP復(fù)用的硬盤(pán)加密卡

工作狀態(tài)機(jī)如圖9所示。

如何設(shè)計(jì)基于IP復(fù)用的硬盤(pán)加密卡
上電復(fù)位后,如果密鑰管理IP檢測(cè)到有密鑰存儲(chǔ)卡的插入,則立即開(kāi)始進(jìn)行外部認(rèn)證和內(nèi)部認(rèn)證;如果認(rèn)證失敗,則跳轉(zhuǎn)到停止?fàn)顟B(tài),無(wú)法進(jìn)行后續(xù)操作;外部認(rèn)證和內(nèi)部認(rèn)證通過(guò)之后,密鑰管理IP從密鑰存儲(chǔ)卡中讀取密鑰素材Kraw。并以此生成最終的加解密密鑰Kfina。

小知識(shí)之ip復(fù)用

ip復(fù)用就是要使一個(gè)ip地址重復(fù)使用的意思,NAT和PAT就是典型的例子。