基于Nios II的語音加密傳輸系統(tǒng)設計
2.1.3 AES加解密模塊
G.729A的語音編碼幀為80 bit/10 ms,根據對語音進行分幀編碼和傳輸的特點,在利用該聲碼器構造語音保密通信時選用分組密碼。本文采用高級加密標準AES完成數字語音信號的加解密,為了提高AES加解密速度,將AES加解密過程設計成Nios II的一條自定義指令。
(1)AES算法及硬件實現
AES加密模塊工作原理如下:在運算控制模塊(Control) 控制下,待加密明文與初始圈密鑰進行異或(AddRoundKey),接著進行Nr次圈迭代變換,除最后一圈(第Nr圈)省略列混合變換處,每圈包含字節(jié)代替變換(ByteSub)、行移位變換(ShiftRow)、列混合變換(MixColumn)和圈密鑰加法(AddRoundKey)四步變換。
解密工作過程與加密相類似,待脫密的密文與初始圈密鑰進行異或(AddRoundKey),然后進行Nr圈迭代運算,除最后一圈(第Nr圈)省略逆列混合變換外,每圈包含逆字節(jié)代替變換(InvByteSub)、逆行移位變換(InvShiftRow)、逆列混合變換 (InvMixColumn)、圈密鑰加(AddRoundKey)四步變換。
G.729A的語音編碼幀為80 bit/10 ms,每秒所需加密的數據約為8 Kbit,因此,在滿足語音加密的情況下,本文采用循環(huán)方式實現AES,節(jié)省硬件資源。其硬件加解密結構及其相關控制信號如圖5所示。
AES硬件加解密結構
圖5 AES硬件加解密結構
(2)自定義指令邏輯
Nios II自定制AES加密指令的內部硬件結構如圖6所示。從圖6可以看到用戶自定義邏輯功能(AES)連接到了ALU的2個輸入端以及ALU的輸出端,當使用 Nios II的自定義指令時,Nios II內部的ALU操作將被放棄,以用戶自定義邏輯的輸出結果作為有效結果。
Nios自定義邏輯指令
圖6 Nios自定義邏輯指令
AES加解密模塊設計得到的自定義邏輯在多個時鐘周期完成,采用多周期自定義指令結構。涉及的信號線在dataa、datab、result 的基礎上增加了clk、clk_en、reset、start 4個信號。其指令結構如圖7所示。
AES自定義指令結構
圖7 AES自定義指令結構
2.1.4 通信傳輸模塊
通信傳輸模塊利用MODEM在公共電話網PSTN上實現通信。PSTN網絡覆蓋面廣,用戶通過MODEM就可以方便地完成對接,實現通信,這在現有條件下非常實用。
MODEM通過RS232接口與DE1相連,通過RJ45與PSTN網絡相連,解析來自Nios II控制系統(tǒng)的命令,來實現通信雙方的互連通信。
評論