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