文献标识码:A
DOI:10.16157/j.issn.0258-7998.183193
中文引用格式:单慧琳,张银胜. 基于改进DEA算法的声波加密传输系统[J].电子技术应用,2019,45(4):104-108.
英文引用格式:Shan Huilin,Zhang Yinsheng. The acoustic encryption transmission system based on improved DEA[J]. Application of Electronic Technique,2019,45(4):104-108.
0 引言
声波传输的研究由来已久,1948年,SUN OIL公司首先提出通过声波进行数据实时传输[1];1972年,BARNES T等人首次分析了在钻柱等特定环境下声波传输特性[2];近年来MASHSA M提出基正交频分复用的多载波调制的声波传输模型等[3]。以上研究表明声波具有抗干扰能力强、设备简单、成本低廉等特点,其应用越来越广泛[4]。声波信号与成熟的算法相结合,能够极大地提高信息传输的精确度。
本文研制一种近距离声波加密传输系统,该系统采用硬件加密,发送端由CPLD构建加密系统[5-6],一个密钥对应一种系统,信息经过加密系统后生成加密信息。输出端也由CPLD构建解密系统,解密系统通过密钥匹配,是发送端的逆系统,输出端将接收到的信号通过此解密系统得到原信号。DEA算法加密效率高且非常实用,其中含有大量的置换运算,非常适合硬件实现[7]。本系统基于一种改进的DEA加密算法,能极大地降低数据加密的成本,DEA加密和解密系统大致相同,只有子密钥放置顺序不同,只需一套系统,可同时实现加密解密两个功能。
1 算法分析
1.1 理论基础
本系统主要测量声波的物理量有位移量X和声压级LP。声波是一种机械波,位移X表示震源或介质离开静止位置的距离,如式(1)所示:
其中,A表示振幅,f表示声音的频率,频率范围为16 Hz~20 000 Hz,θ表示初相角。
声压级LP表征声音的强度,如式(2)所示:
其中,P表示声压,单位为帕斯卡(Pa),P0为常数2×10-5Pa。本系统中控制声压在0.02 Pa~0.2 Pa之间,声压过小会增加接收和处理的难度,声压过大将失去本系统的实用性。
系统采用分组密码,将明文划分成固定位数的字符分组,一组一组地进行加密,安全性高,易于标准化,加密与解密速度快,应用非常广泛[8]。
1.2 改进型DEA加密算法
加密算法采用改进的DEA加密算法,从节省资源角度,本系统采用10 bit密钥,每8 bit为一个加密/解密块对数据进行加密或解密,明文和密文长度都为8 bit。
1.2.1 改进型DEA加密过程
初始置换通过固定的置换IP重新排列8 bit明文的各个比特,将明码顺序打乱,如:初始置换使第2位明文置换到第1位,第4位明文置换到第2位。初始IP置换如表1所示。
改进的DEA算法从简化和安全两方面考虑,其核心是两轮迭代运算,每轮迭代的运算结构相同,每轮迭代以用户密钥和上一轮迭代结果作为迭代函数的输入量。将8 bit明文分割成低4位L1-4和高4位H5-8,每一轮迭代运算的低4位变为上一轮迭代结果的高4位,而高4位等于上一轮迭代结果的高4位经过一个与密钥相关的函数f后与上一轮迭代结果的低4位相异或。最后一轮迭代后将低4位和高4位互换。高表示第n轮迭代的高4位,表示第n+1轮迭代的高4位,K表示密钥。第n轮迭代过程用式(3)、式(4)表示。
为保证安全性,函数f(M,N)为非线性函数,输入为长度为4 bit的二进制数字,函数f(M,N)的执行过程可分为4个步骤,即扩展置换、与子密钥异或、S盒代换和P盒置换。
1.2.2 改进型DEA解密过程
DEA解密和加密过程基本相同,只是子密钥使用顺序不同,加密过程中第一轮迭代使用子密钥K1,第二轮迭代使用子密钥K2,而解密过程中第一轮迭代使用K2,第二轮迭代使用子密钥K1。子密钥是由用户输入的密钥生成的,本系统用户输入的密钥为10 bit二进制代码。子密钥的生成过程分为以下4个步骤。
(1)10 bit的密钥经过一次置换,将原来的10 bit二进制序列变成新的10 bit二进制序列。
(2)将置换后的10 bit二进制密钥分成两个等长度的两个小组,分别为低5位L1-5和高5位H6-10。
(3)将每个分组的二进制数分别左移一位,将两组左移后的密钥连接起来,原来低位还在低位,高位还在高位。
(4)将第(3)步获得的10 bit二进制数置换成8 bit二进制代码,即子密钥。而子密钥K2的生成过程与K1生成过程除了第(3)步左移位数不一样外,其他完全相同,密钥K2的生成过程的第(3)步向左移3位。
1.3 RS编码
RS编码是一种前向纠错的信道编码,声波采用RS编码能有效纠错降低误码率[8]。RS码字多项式的n-1次到n-k次的系数就是信息位,p式为本原多项式,式(5)生成矩阵左边部分IK是一个k×k阶的单位矩阵。
多项式(6)、式(7)相乘时,结合MATLAB,RS编码的实现步骤如下:(1)将所有的寄存器清零;(2)将多项式A(x)最高次系数ak存入寄存器第一级,同时乘法器输出乘积的最高次项系数;(3)将多项式A(x)的第二个系数ak-1送入寄存器的第一级,而之前存入寄存器的最高次系数ak由寄存器的第一级进入第二级,同时第二级系数ak-1与br-1相乘,乘积xk+r-1的系数等于多项式A(x)第二级系数乘多项式B(x)的第一级系数加上多项式A(x)第一级系数乘以多项式B(x)的第二级系数;(4)重复第(3)步过程,直到k+r+1次移位后,乘法器输出多项式A(x)的常数项与多项式B(x)的常数项的乘积。
多项式相除的具体步骤和相乘类似。g(x)为RS码的生成多项式,m(x)·xn-k表示在信息组的后面插入n-k个监督码。
1.4 RS译码
RS译码过程分为5个步骤,具体过程如下。
(1)由接收码字多项式R(x)求得伴随多项式S,ST为S的变换矩阵,α为接收码矩阵的元素,n为分组长度,H为商式,公式如下:
(2)由S求错误位置多项式Δ(x)。
其中为错误位置数对应的错误值。
(3)由Δ(x)解出错误多项式的根,从而确定错误位置。具体如下:首先检验初始位置数x0位置是否有错误,如果把x=1/α0=αn代入错误位置多项式Δ(x)结果与0不相等,则可以验证第一个码元为正确的;反之则有错误,以此方法依次检验其余各位是否有错误。
(4)由错误位置数和所得错误值得到错误图样,相关参数为,根据接收码多项式的错误多项式的根r和错误图样关系r-完成纠错,得到最可能发送的码字,从而完成译码。
2 硬件电路设计
2.1 系统总体设计
发送端由主控器、加密系统、RS编码器、DDS模块、扬声器等部件组成。其硬件原理框图如图1所示,发送端主控器采用TI的MSP430F149,通过4×4的矩阵键盘与主控器连接,实现基本的控制和数据输入。显示部分用LCD12864液晶屏,可以显示8×4个汉字。主控器与CPLD构建的加密系统之间由8位数据输入端和10位密码输入端相连接,用于与加密系统之间的数据传输。加密系统采用Altera公司的CPLD芯片EPM570T100C5N。DDS与主控器连接,主控器将加密信息通过频率调制加载到一定频率的正弦波信号中,DDS发送正弦信号,DDS采用AD9850芯片,DDS输出端接功率放大器,最终输出至扬声器。
接收端由主控器、滤波器、电压比较器、解密系统、RS译码器等部件组成,其原理框图如图2所示。接收端通过麦克风采集声波信号,麦克风与滤波器相连,滤波器过滤杂波后提取出有用信号。滤波器与滞回电压比较器相连,用于将正弦波信号转换成同频率的方波信号,滞回电压比较器由555定时器实现。滞回电压比较器将生成的方波信号输入给主控器处理。主控器与基于CPLD芯片的加密系统之间有8 bit数据输入和10 bit密码输入,加密系统的8 bit数据输出回送给主控器。
本系统中声波信号传输采用十六进制,频率范围为1 400 Hz~4 400 Hz,相邻频率间隔为200 Hz。采用十六进制有利于提高信息传输速率。
2.2 滤波器设计
本系统需要两类滤波器:带通滤波器和低通滤波器。
带通滤波器设计主要基于声波频率在1 400 Hz~4 400 Hz之间,该滤波器可设计为两个单独的滤波器,其中低通滤波器的截止频率等于4 400 Hz,高通滤波器的截止频率等于1 400 Hz,将二者级联可得到。
低通滤波器设计主要目是消除高频杂音,一般低通滤波器对大于4 600 Hz而小于20 kHz的噪声过滤效果不明显,甚至只有1 dB的衰减。综合考虑,设计有源低通滤波器在频率4 600 Hz处衰减小于0.1 dB,在20 kHz处衰减大于15 dB。其陡度系数AS为:
根据切比雪夫滤波器衰减特性图可知,通带波纹0.1 dB的切比雪夫滤波器在4.347 8 rad/s处有超过15 dB的阻带衰减至少需要二阶滤波器,本设计采用二阶切比雪夫低通滤波器,在截止频率附近的截止特性最好,幅频特性曲线最陡。根据通带波纹0.1 dB等波纹切比雪夫滤波器极点位置表,获得归一化二阶0.1 dB切比雪夫滤波器极点位置为λ=0.610 4,ψ=0.710 6。
低通滤波器或者高通滤波器以3 dB点作为参考频率,频率变化系数计算得FSF=2π×fc=2π×4 600=28 902.65,滤波器中的电抗性元件的值除以频率变化系数FSF是滤波器归一化的基础。
低通滤波器采用状态变量全极点低通滤波器电路结构,该结构能够通过状态变量逼近,独立调整极点和零点坐标的特性,克服一般有源低通滤波器不能有效调整极点和零点位置的缺陷。λ和ψ为极点位置的实部和虚部。本滤波器电容值C选择0.01 μF,基准电阻R值选择10 kΩ,其余电阻R1~R4为外接电阻,调整后的实部λ′和虚部ψ′计算得到:
图3是Filter Solutions软件设计的有源低通滤波器和幅频特性曲线,图中电阻R12和R17可改为可变电阻,实现通过可变电阻在一定程度上改变电路属性。本系统采用高精度的电阻和电容,克服电阻电容精度不高带来的失真。
高通滤波器的作用主要消除以人声为主的中低频杂音信号,常人说话声音频率为200 Hz~800 Hz。高通滤波器设计满足以下要求,在频率1 200 Hz处衰减小于0.1 dB,在200 Hz处衰减大于12 dB。本系统中的高通滤波器采用有源切比雪夫高通滤波器设计,高通滤波器设计过程与低通滤波器基本相同,图4为高通滤波器及其幅频特性图。
2.3 系统资源分配
系统4×4矩阵键盘接主控器P2口,DDS模块采用并行数据输入方式,DDS模块数据输入接P6口,DDS模块控制端接P1.5、P1.6、P1.7口,显示模块接P4口和P5口;P3口为8位二进制数据输出,用于向CPLD构建的加密系统输入待加密的数据;P6口为8位二进制数据输入,用于接收加密后的数据信息。数据输入输出采用并行方式,基于CPLD的加密系统采用10 bit二进制密钥输入,主控器剩余P1.1~P1.7口,5 bit密钥输入采取分组输入,分成两组,每组5 bit二进制分别通过P1.3~P1.7输入到加密系统。
2.4 DEA加密算法实现
DEA加解密算法大量使用置换运算,按照一定的规则打乱原二进制各位的顺序。使用CPLD构建硬件DEA加密系统执行置换运算只需要改变接线方法即可,执行置换运算不需要时间,如8 bit二进制输入为a1a2a3a4a5a6a7a8,经初始置换IP将变成a2a6a3a1a4a8a5a7。在CPLD中实质上就是将一号输入脚连接到四号位置,二号输入脚连接到一号位置,以此类推,可以完成加密算法中的所有置换运算。根据真值表得出函数表达式,最终可采用基于CPLD芯片的八选一选择器实现时间S盒置换功能。
3 软件设计
3.1 发送端软件设计
首先进行系统的初始化,包括关闭看门狗、定时器初始化、各端口的初始化、液晶显示屏初始化等。然后程序进入循环以等待键盘选择系统的工作模式,通过键盘选择工作模式后,跳出循环执行对应的工作流程。
3.2 接收端软件设计
该部分首先进行系统的初始化,之后进入循环等待键盘选择系统的工作模式,以便跳出循环执行对应的工作流程。
发送端系统初始化后,提示输入密码和待发送的数据,将数据输入到加密系统的密码输入端,加密系统分次完成数据加密,DDS将加密后信息发送。接收端系统在初始化后提示输入密码,等待发送端发送信号,将接收到的信号进行显示。实验数据测得本系统错误率约为0.1%,系统相对稳定,有一定的实用价值,同时存在一定的误差,主要原因是信道干扰和时序出错。
4 结论
本声波信号加密传输系统稳定安全,达到了预期的目标,系统传输出错率较低,信息加密后传输,在一定程度上保证了信息的安全性,其硬件加密系统与软件加密系统相比有其固有的优势。本系统也存在着数据速度较慢的缺点,但在一些不需要大量数据传输场合,例如无线支付领域只需要传输简单的控制信号,一般只有几字节,目前智能手机的type-C接口为拓展硬件加密模块创造了条件,这些便利条件使该系统的推广成为可能。
参考文献
[1] COX W H,CHANEY P E.Telemetry system,U.S.Patent No.4293936[P].1981.
[2] BARNES T G,KIRKWOOD B R.Passbands for acoustic transmission in an ideanlized drill string[J].Journal of the Acoustical Society of America,1972,51(5):1606-1608.
[3] MAHSA M.Optimal borehole communication using multicarrier modulation[D].Houston:Rice University,2007.
[4] 马东,师帅兵.随钻数据声波NC-OFDM传输及噪声抑制的研究[J].仪器仪表学报,2017,38(1):8-17.
[5] 姜宇程,关添,王佳飞.窄带噪声主动控制系统的FPGA实现[J].电子技术应用,2009,43(9):61-63.
[6] 张捍东,朱明慧.基于FPGA的改进DES算法的实现[J].电子技术应用,2011,37(4):138-141.
[7] 于敬超,杨昌盛,严迎建,等.DES算法差分电磁攻击及区分函数的选择[J].电子技术应用,2014,40(3):48-51.
[8] 王平,曾伟涛,陈健,等.一种利用本原元的快速RS码盲识别算法[J].西安电子科技大学学报,2013,40(1):105-110.
作者信息:
单慧琳,张银胜
(南京信息工程大学,江苏 南京210044)