基于混沌纠错交织编码的语音隐藏技术研究
2020-09-22席青云
席青云
摘 要:对于秘密语音,先进行Logistic混沌映射,再执行BCH编码纠错,最后执行交织量化处理.在语音接收端通过相应的逆变换、BCH解码、解交织等处理获得秘密语音信息.然后,展开有关混沌纠错交织编码语音信息隐藏方法的实验研究,明确此方法加密流程和解密流程的具体操作步骤,对此方法的基本加密性能、抗噪声攻击能力、抗伪密钥破译能力进行实验验证.实验结果表明,本文的加密方法具有良好的加密性能、抗噪声攻击能力和抗破译能力.
关键词:语音信息隐藏;BCH纠错编码;Logistic混沌映射;噪声攻击
中图分类号:TN912 文献标识码:A 文章编号:1673-260X(2020)06-0068-06
1 基于混沌纠错交织编码的语音隐藏方法
1.1 混沌加密解密
1.1.1 混沌概念与特点
混沌理论最初被提出是用于气象领域.经过50多年的发展,混沌理论在数学领域、物理学领域、信息科学领域和电子学领域都得到了深入发展和应用.有学者指出,因为混沌信号可以各态遍历性、表现出非周期特征,其频谱宽带区域的连续性,都使得其特别容易应用于信息隐藏.
最早应用于信息隐藏的混沌方法,是基于Logistic混沌映射的变形方法,这也促成了混沌流密码技术的诞生.
将混沌理论应用于语音隐藏,不但有利于保障语音通信过程的抗攻击性,也极大地增强了秘密语音安全到达接收端的可靠性.混沌映射便于实现,还可以为用户提供多样化的密钥选择,已经成为包括语音加密在内的各种信息加密技术的最佳备选方案.
混沌理论之所以适合于语音加密领域,这是原自混沌现象的共性特征.混沌现象不仅对于初值敏感,对于系统内参数的微小变化也具有敏感性.因此,只要攻击者提供的密钥等信息和真实密钥等信息有微小的不同,也会远远地偏离正确语音信息的破译,从而达到良好的保密效果.
同其他理论相比,混沌理论具有如下特点:
(1)混沌系统敏感于初始条件,微小的初值差异会导致混沌系统长期行为的巨大不一致性.
(2)混沌系统表现出非线性系统的确定性,长期行为的类随机以及无法准确预测性,同时其宽带频谱区域连续.
(3)混沌系统无论自相关性还是互相关性都非常优秀,通过微调初值或增加混沌迭代次数,就可以实现周期码字的不同长度变化.
(4)混沌系统非常近似于随机过程,即便获取了足够长的一段混沌序列,也无法实现对整个序列的判断,其保密性能出色.
1.1.2 混沌映射选取
在本文的语音信息隐藏中,我们也选用了Logistic混沌映射,其数学形式如公式(1)所示.
xn+1=1-?滋xn2. (1)
这里,x∈[-1,1]、?滋∈[0,2],只要?滋出现在1.40115到2的范围内,整个系统就会表现出混沌状态.Logistic混沌系统的特征是,其所有序列都表现出零均值、基于?啄相似性的自相关和互相关特性.Logistic混沌系统产生的混沌序列{xk}既不收敛也不符合周期变化规律,并且对于初始状态非常敏感.经过实验发现,即便给定差异仅为0.001的两个初始值,Logistic混沌系统仅需要几次迭代就会马上分开,最终呈现出毫不相关的情形.
为了适合数字语音信號的处理,可以将Logistic混沌序列转换为二值序列,这样的方法很多,常见的有:阈值转换法和量化转换法.在本文中,选择了量化转换法来实现混沌序列的二值化.
采用L位二进制数来实现0到1区间上的数,先将混沌序列中的每一个数据取绝对值,这个序列表示为{zk,k=0,1,2,…,-1 z=av2-(v+1),a=0 or 1. (2) 用量化变换法处理时,选取前L位来表示z,其余各位均放弃,即有: z=av2-(v+1) =-2-Lav2-(L-1)-v =2-LZ. (3) 到这里,混沌序列zk中的每一个值都可以实现L位二进制数的表示. 1.1.3 混沌加密解密处理 对语音信息进行混沌加密处理,首先要根据密钥生成混沌序列,进而和要被加密的语音信息进行逻辑运算,从而生成密文信息,整个执行的逻辑框架图如图1所示. 如果用mi表示明文语音信息,用ci表示密文语音信息,用ki表示混沌序列,则语音的加密过程可以用如下的数学公式来描述: ci=mi?茌ki. (4) 相应的,为了求解明文语音信息,就要执行基于混沌序列的解密过程,如数学公式(5)所示. mi=ci?茌ki. (5) 1.2 纠错编码解码 在语音信息隐藏的整个流程中,语音信息经过信道进行传输是其中一个重要的环节.为了保证语音数据传输的可靠性,一般需要采用纠错编码技术. 语音信息在信道传输中,会受到各种可能噪声的干扰,从而使得接收端获得的语音信息中含有一些随机错误.这时,可以在传输信息码中增加一些约束码,从而增强信息码的抗干扰能力. 在接收端,利用这些约束码可以提高对于语音信息的纠错能力,但是约束码占据了信息码单元,会导致传输数据信息量的下降.所以,约束码的选择必须要平衡可靠性和信息量两个指标. 1.2.1 纠错编码 在本文中,为了保证语音信息在通信信道传输中的可靠性,采取了BCH编码作为纠错码. 这里的BCH编码采用的是(15,7)BCH码制式.首先,将语音信息进行信息码分组处理,每7个bit作为一个分组,每个分组都执行(15,7)BCH编码,即可以纠正不超过2位的错误,执行纠错处理后生成的多项式g(D)如公式(6)所示. g(D)=LCM[m1(D)m3(D)] =D8+D7+D6+D4+1. (6) 这里,m1(D)、m3(D)表示的都是最小多项式,其计算模型如下所示. m1(D)=D4+D+1, (7) m3(D)=D4+D3+D2+D+1. (8) 根据上述三个公式,可以进一步构成生成矩阵G,如公式(9)所示. G=, (9) 将要处理的语音信息和生成矩阵进行相乘运算,就获得了BCH编码. 1.2.2 纠错解码 在语音信道的接收端,每15个bit进行一个分组,对每个分组分别执行BCH解码.BCH解码过程要采用一个监督矩阵H,它可以根据生成矩阵G进行计算,二者之间的关系如公式(10)所示. G=[I,Q],H=[QT,I]. (10) 下一步工作就是根据监督矩阵H计算校正因子,如下述公式: S=RHT. (11) 这里,R就表示接收端接收到的语音信息,S表示一个1×8的矩阵,校正因子和误码出现位置的对应关系如表1所示. 在本文的语音信道接收端,采取BCH纠错处理时,如果仅发生了1位错误,则可以根据表1中的数据进行查表获得,如果发生了2位错误,需要进行如下的运算: S=Si?茌Sj. (12) 这里,利用Si和Sj表示表1中的两个错误信息,通过执行这个取模运算,就可以确定2位错误发生的位置. 1.3 交织量化处理 1.3.1 交织处理 语音信息在实际传输的过程中,有时会受到非常严重的突发干扰,这些连续出现的突发错误,仅仅凭借BCH编码的1位或者2位纠错能力难以实现纠正处理.所谓交织处理,就是在信号进入信道传输之前,按照一定的规律对语音信息进行位置上的调换,对应接收端再按照这个规律反向调换回来.交织处理和解交织处理如图2所示. 在语音信息的发送端,将N个bit的信息进行交织分组.首先把M组N个bit语音信息单元存入到一个M行N列的交织器中,然后按照行排列的顺序存入寄存器,即A11、A12、A13、……、A1N、A21、A22、A23、……、A2N、……、AM1、AM2、……、AMN.存储完毕后,发送时按照列排列的顺序取出,即A11、A21、A31、……、AM1、A12、A22、A32、……、AM2、……、A1N、A2N、……、AMN. 在语音信息的接收端,解交织的过程恰好相反,先按照列排列的顺序存入寄存器,即A11、A21、A31、……、AM1、A12、A22、A32、……、AM2、……、A1N、A2N、……、AMN,再按照行排列的顺序取出,即A11、A12、A13、……、A1N、A21、A22、A23、……、A2N、……、AM1、AM2、……、AMN. 通过交织处理,连续错误信息被自然分开,从而使得错误信息在一个组内的位数降低,就可以采用纠错编码技术进行纠错了. 1.3.2 量化处理 在本文的语音隐藏过程中,秘密语音信息的嵌入,实际上是通过对使用变换的变换域系数进行量化来实现的.为此,假定原来变换域的系数可以用g来表示,则执行变换后的系数变为g'.量化步长采取?驻来表示,这个步长越大,则抗攻击能力好,但是量化对于原始语音信息的影响比较大;这个步长越小,量化精度会提高,但是抗攻击能力会削弱.因此,选择合理的量化步长是本文在量化处理工作中的难点.为此,本文采取如下的量化过程: (1)对变换域的系数g沿轴线进行分割,效果如图3所示.经过这一步处理,g轴被划分成A、B区域间隔的形状. (2)当执行计算操作时,坐标轴上的坐标就代表真实的数据;当执行语音信息隐藏时,A、B区域内的坐标就代表隐藏处理后的二进制序列. (3)量化操作的具体数学公式如下所示: n=gmod?驻,r=r-n?驻. (13) 这里,n和r分别代表模和余数. (4)二进制秘密语音信息执行嵌入处理的时候,其bit信息w要和g共同作为参考,使得量化结果尽可能接近A、B两个区域的中心点数值,这又分为以下4种情况. (a)当g≥0并且w=1的时候,按照下面的公式处理: 2 仿真实验与测试 2.1 实验流程设计 前面提出了一种基于混沌纠错交织编码的语音隐藏方法.为了验证这种方法的性能,下面展开测试性实验.在实验中,载体语音是一段单声道的流行音乐,其采样频率为44kHz,并经过16bit量化;秘密语音也是单声道语音信息,采样频率为1kHz,也经过16bit量化.下面,按照基于混沌纠错交织编码的语音隐藏方法,分别给出语音的嵌入流程和提取流程. 2.1.1 语音嵌入流程设计 语音嵌入流程共分为9个步骤,具体操作如下: 第一步,執行离散小波变换处理.采用db1作为小波变换的基函数,对载体语音信息执行3个层次的小波分解处理,这样可以得到表征细节的小波信息CD1、CD2、CD3以及原始语音信息的近似表征分量信息CA3,然后把这些信息放在集合E中进行排队处理,其数学形式如公式(18)所示. E=CA3?茌CD3?茌CD2?茌CD1. (18) 第二步,执行离散余弦变换处理.这里,对于第3层的小波变换系数中的低频信息CA3执行此操作,其数学形式如公式(219)所示. CA3dct=DCT(CA3). (19) 第三步,执行混沌加密处理.这一操作是针对秘密语音展开的,这里采用的混沌映射是Logistic混沌映射,混沌初始状态给定x0=0.7和?滋=2. 第四步,执行纠错编码处理.这里采用BCH码,并和其他两种编码进行比较,处理对象是经过混沌映射变换的秘密语音信息. 第五步,执行交织处理.这里交织的深度为3,处理对象是经过纠错编码处理的秘密语音信息. 第六步,执行量化嵌入处理.这里采用的是双极性嵌入,量化步长选择?驻=0.0005,量化后的秘密语音信息变换为CA3'dct. 第七步,执行离散余弦变换的反变换处理.这一步处理的对象,主要是针对量化后秘密语音信息CA3'dct,其数学描述如公式(20)所示. CA3'=IDCT(CA3dct). (20) 第八步,执行小波重构处理.这一步的操作相当于用CA3'代替CA3.执行重构后的小波全新表达如公式(21)所示. E=CA3'?茌CD3?茌CD2?茌CD1. (21) 第九步,执行离散小波反变换处理.通过这一步处理,可以获得含有秘密语音信息的公开语音信息,其数学形式如公式(22)所示. S'=IDWT(E). (22) 2.1.2 语音提取流程设计 语音嵌入流程共分为6个步骤,具体操作如下: 第一步,执行离散小波变换处理.仍然选择db1作为小波变换的基函数,这一波的操作对象是含有秘密语音信息并通过通信信道传输过来的公开语音信息S'. 第二步,执行离散余弦变换处理.这里针对CA3执行离散余弦变换处理,相应的数学描述如公式(23)所示. CA3dct=DCT(CA3). (23) 第三步,执行量化提取的操作.这里要根据量化操作时的基本方法,位于A区域的,表明其隐藏信息为1;位于B区域的,表明其隐藏信息为0. 第四步,执行解交织处理.根据解交织的过程执行相应处理,最终用于恢复出执行交织前的信息. 第五步,执行纠错编码的解码处理.此步骤用于检测出现误码的位置,并对误码进行纠错处理. 第六步,执行混沌解密处理.通过将混沌映射和第五步得到的数据进行异或处理,从而得到秘密语音信息. 2.2 实验结果与分析 2.2.1 基本测试实验 基本测试实验的结果如图4、图5、图6、图7所示.从图4和图5的比对结果来看,嵌入秘密语音的公开语音和载体语音波形几乎没有差别.从图6和图7的比对结果来看,秘密语音能比较准确地提取. 2.2.2 鲁棒性测试实验 为了验证本文设计的加密方法对于攻击的抵御能力,以普遍存在的噪声影响测试其鲁棒性.分别用s和s'表达没有噪声干扰的公开语音信息和经过噪声干扰的公开语音信息,同时用p表达噪声强度,用z表示噪声信息,则经过噪声干扰的公开语音信息如公式(24)所示. s'=s+p×z. (24) 在测试实验中,给定噪声强度为0.01,噪声为随机噪声,其均值为0. 如图8所示,是没有经过纠错编码提取的秘密语音信息;如图9所示,是经过BCH纠错编码和交织处理提取的秘密语音信息. 从两组图像的对比结果可以看出,没有经过纠错编码提取的秘密语音和真实秘密语音相比,波形上出现很多毛刺.而经过BCH纠错编码提取的秘密语音,这种错误则很少.进一步计算两种情况的误码率,不经纠错编码直接提取秘密语音的误码率为0.091%,经纠错编码提取秘密语音的误码率为0.008%.实际上,我们还比对了其他编码技术的纠错能力,对于本文的实验语音数据,汉明码纠错的误码率为0.021%,格雷码的误码率为0.017%.从这几种方法之间的比对可以看出,本文采用的BCH纠错编码性能最佳. 2.2.3 安全性测试实验 隐藏语音对于秘钥的敏感性,能在很大程度上反映出语音加密方法的安全性能.在本文的隐藏方法中,采用了初始状态为x0=0.7和?滋=2Logistic混沌映射.只有在解密端采用和加密端完全相同的密鑰,才能获得准确的秘密语音信息. 为了测试本文方法的安全性,测试密钥信息发生微小改变是对解密造成的影响.如图10所示,是密钥信息完全正确时的解密结果;如图11所示,是密钥信息发生微小错误(即合真实密钥相差0.001)时的解密结果. 从图10和图11的比较结果可以看出,虽然密钥仅仅存在0.001的差异,仍然无法在接收端获得准确的秘密语音信息,这充分验证了本文方法的保密性能,即便密钥信息有微小错误也不能获得正确的解密结果.这表明,本文构建的基于混沌纠错交织的语音隐藏技术具有极高的安全性. 以上对基于混沌纠错交织编码的语音隐藏方法进行了性能测试.首先,设计了详细的语音信息嵌入和语音提取流程.之后,分别针对具体的秘密语音和载体语音,执行基本的性能测试实验、鲁棒性测试实验和安全性测试实验.实验结果证实了本文方法有效. 3 结论 语音信息隐藏技术,是语音通信领域的重要研究课题.对现有语音隐藏方法进行改进,进一步改善语音信息隐藏的效果,增强语音信息文件反破解和防攻击的能力,对于语音信息隐藏技术在网络信息通信、网络安全保护、国防军事信息安全等领域都具有重要的理论意义和实用价值. 本文以混沌纠错交织编码语音信息隐藏技术为核心研究内容,取得的主要研究成果如下: (1)分析了语音信息的基本参数、数字化处理、存取方式和常见的时域、频域分析方法;信息隐藏技术的基本属性、时域分析方法和频域分析方法,尤其重点研究了最小有效位法和回声法;深入分析了信息隐藏效果的定性评价方法和定量评价方法. (2)提出一种基于混沌纠错交织编码的语音信息隐藏方法.此方法分别对载体语音和秘密语音进行变换加密处理,对于载体语音,分别执行离散小波变换和离散余弦变换;对于秘密语音,分别执行Logistic混沌映射、BCH编码纠错、交织和量化处理. (3)对基于混沌纠错交织编码的语音信息隐藏方法进行实验验证.实验结果表明此方法加密和解密流程可行,具有高抗噪能力的鲁棒性和安全性,当密钥仅仅有0.001的变化时也无法破译加密的语音信息. 参考文献: 〔1〕张敏瑞,易克初.倒谱域音频与图像水印算法[J].西安电子科技大学学报:自然科学版,2010,30(06):730-733. 〔2〕赵艳明,黄永峰.基于VoIP隐蔽通信的实现方法[J].数据通信,2009,30(06):16-19. 〔3〕贾艳阳,杨震.语音信息隐藏技术及应用[J].南京邮电学院学报,2004,6(02):53-56. 〔4〕胡金艳,张太锚,陆从德,等.一种基于神经网络的小波域音频水印算法[J].西安交通大学学报,2013,37(04):355-356. 〔5〕同鸣,郝重阳,刘晓军,等.一种基于固定附加相位修正的音频信息隐藏方法[J].计算机工程,2012,32(01):213-214. 〔6〕殷雄,张晓明.回声隐藏技术的应用研究[J].北京石油化工学院学报,2005,13(04):61-64. 〔7〕王秋生,孙圣和.一种在数字音频信号中嵌入水印的新算法[J].聲学学报,2011,26(05):37-42. 〔8〕陈琦,王炳锡.一种用于版权保护的音频数字算法[J].电声技术,2002,36(01):48-50. 〔9〕孙锐,孙洪,姚天任.基于量化的小波域数字音频水印算法[J].华中科技大学学报(自然科学报),2012,30(05):48-49. 〔10〕尹忠,段柳云,王莹,宗节宝,成鸿飞.语音通信中传输隐藏数据的技术研究与系统设计[J].电子设计工程,2010,18(07):4-7.