基于Nios II的语音加密传输系统设计
2.1.3 AES加解密模块
G.729A的语音编码帧为80 bit/10 ms,根据对语音进行分帧编码和传输的特点,在利用该声码器构造语音保密通信时选用分组密码。本文采用高级加密标准AES完成数字语音信号的加解密,为了提高AES加解密速度,将AES加解密过程设计成Nios II的一条自定义指令。
(1)AES算法及硬件实现
AES加密模块工作原理如下:在运算控制模块(Control) 控制下,待加密明文与初始圈密钥进行异或(AddRoundKey),接着进行Nr次圈迭代变换,除最后一圈(第Nr圈)省略列混合变换处,每圈包含字节代替变换(ByteSub)、行移位变换(ShiftRow)、列混合变换(MixColumn)和圈密钥加法(AddRoundKey)四步变换。
解密工作过程与加密相类似,待脱密的密文与初始圈密钥进行异或(AddRoundKey),然后进行Nr圈迭代运算,除最后一圈(第Nr圈)省略逆列混合变换外,每圈包含逆字节代替变换(InvByteSub)、逆行移位变换(InvShiftRow)、逆列混合变换 (InvMixColumn)、圈密钥加(AddRoundKey)四步变换。
G.729A的语音编码帧为80 bit/10 ms,每秒所需加密的数据约为8 Kbit,因此,在满足语音加密的情况下,本文采用循环方式实现AES,节省硬件资源。其硬件加解密结构及其相关控制信号如图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控制系统的命令,来实现通信双方的互连通信。
评论