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