基于MEMS強(qiáng)鏈和FPGA的USB移動(dòng)硬盤數(shù)據(jù)加解密系統(tǒng)
圖 3 中的全局控制狀態(tài)機(jī)負(fù)責(zé)整個(gè)系統(tǒng)的控制和協(xié)調(diào),它實(shí)時(shí)的監(jiān)測(cè)PIO 寫入命令,并在恰當(dāng)?shù)臅r(shí)機(jī)把IDE 總線控制權(quán)切換給加密流水線或解密流水線。當(dāng)加解密流水線執(zhí)行完一次 DMA 傳輸命令后,總線控制權(quán)會(huì)重新交還給全局控制狀態(tài)機(jī)。
5. AES 加密模塊的實(shí)現(xiàn)
AES 的設(shè)計(jì)原理可參考文獻(xiàn)[1],下面只簡(jiǎn)單介紹算法過程。AES 是一個(gè)迭代的分組密碼, 每一輪迭代稱為一個(gè)輪變換,包括一個(gè)混合和三個(gè)代換:
?。?)字節(jié)代換(SubBytes):利用S 盒對(duì)狀態(tài)的每一個(gè)字節(jié)進(jìn)行非線性變換。
?。?)行移位(ShiftRow):對(duì)狀態(tài)的每一行,按不同的位移量進(jìn)行行移位。
(3)列混合(MixColumn):對(duì)狀態(tài)中的每一列并行應(yīng)用列混合,在最后一輪省略該步。
?。?)擴(kuò)展密鑰加(AddRoundKey):與擴(kuò)展密鑰異或。 加密算法的流程如圖4 所示。
相應(yīng)的,解密算法使用逆序的擴(kuò)展密鑰,輪變換分別為InvSubByte,InvShiftRow, InvMixColumn,數(shù)據(jù)流程稍有不同。
我們?cè)O(shè)計(jì)的AES 加密運(yùn)算模塊以128 位為一個(gè)分組,完成一個(gè)分組的運(yùn)算需要11 個(gè)時(shí)鐘 周期。第1 個(gè)時(shí)鐘周期,密鑰擴(kuò)展模塊輸出第1 個(gè)擴(kuò)展密碼,也就是初始密碼本身;同時(shí)初始 變換模塊用這個(gè)擴(kuò)展密碼對(duì)128 位明文作AddRoundKey 操作。
第2 個(gè)到第11 個(gè)時(shí)鐘周期,密 鑰擴(kuò)展模塊依次生成10 個(gè)擴(kuò)展密碼,同時(shí),輪變換模塊利用這些擴(kuò)展密碼對(duì)輸入密文作10 個(gè) 輪次的輪變換,其中最后一輪缺少列混合操作,然后輸出最終的密文,結(jié)束一個(gè)分組的運(yùn)算。
6. 數(shù)據(jù)吞吐率分析
Ultra DMA 在模式2 下的數(shù)據(jù)傳輸率為33.33MB/s。由于FPGA 全局時(shí)鐘頻率為100MHz, 所以加解密一個(gè)128 位分組需要110ns。加上數(shù)據(jù)的輸入和輸出階段各占用一個(gè)時(shí)鐘周期,總共 需要130ns。所以加解密模塊的數(shù)據(jù)處理速率約為61.54MB/s,完全能夠達(dá)到實(shí)時(shí)處理的要求。
7. 結(jié)束語(yǔ)
本文提出了一種安全高效的USB 移動(dòng)硬盤數(shù)據(jù)加解密系統(tǒng)。其中,MEMS 強(qiáng)鏈的應(yīng)用開辟 了系統(tǒng)物理認(rèn)證的新方向;Ultra DMA 協(xié)議接口的FPGA 實(shí)現(xiàn)大大提高了硬盤讀寫的吞吐率,同時(shí)AES 加解模塊的處理速率又能完全滿足Ultra DMA 傳輸帶寬,兩者的有機(jī)協(xié)作使得一種高 效的硬件加解密流水線得以實(shí)現(xiàn)。
評(píng)論