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