1、收稿日期:。基金项目:国家自然科学基金资助项目()。作者简介:饶攀(),男,硕士生。通信作者:张烨(),男,教授,博士。:。饶攀,张烨基于 编码和混沌系统的语音加密算法南昌大学学报(理科版),():,(),():基于 编码和混沌系统的语音加密算法饶攀,张烨(南昌大学电子信息工程系,江西 南昌 )摘要:提出了一种基于 编码和混沌系统的语音加密算法。该算法首先将原始语音分成两个部分,利用 混沌系统生成的混沌序列,分别对第一部分语音做动态 编码和异或运算,对第二部分语音做异或运算,以实现语音数据的扩散;其次利用 混沌系统生成的混沌序列将扩散后的语音索引置乱,再对置乱后语音的极性置乱,使得样本值的直方
2、图的分布更为均匀。仿真结果和理论分析表明,该加密算法具有密钥空间大、密钥灵敏度高、抗穷举攻击、统计攻击和选择明文攻击能力强等优点。关键词:语音加密;编码;混沌系统;置乱中图分类号:文献标志码:文章编号:(),(,):,:;语音加密是对语音数据进行一种完全可逆的加密运算,加密后的语音对于未经授权的监听者来说,听到的均为噪声,只有使用授权密钥,通过解密算法才能将密文恢复成原始语音。传统密码学手段(如 (高级加密标准)、(数据加密标准)算法)虽具有成熟的密钥空间设计技术,但因明文与密文惟一对应,可能被破译,且执行效率低,难以满足现如今加密要求。混沌系统对初值具有敏感性,同时系统具有不可预测性,非周期
3、性和确定性等天然特性,而这些特性符合密码学要求,所以许多学者将其应用于语音加密。为了扩大置乱和扩散空间,部分学者提第 卷第期 年月南昌大学学报(理科版)()DOI:10.13764/ki.ncdl.2023.01.014出了利用多维混沌序列分别对语音序列进行异或运算或索引置乱,实现语音加密,但是这些算法的加密方式固定,安全性能较低。提出了利用 混沌序列进行升序排列,获取混沌序列的置换方式,实现语音序列的置乱,然后将三维 混沌生成的混沌序列作为掩码,对置乱语音进行数据掩蔽,达到了较好的加密效果。文献 中首先设定阈值,利用混沌序列的伪随机性,对生成的混沌序列值做比较,大于阈值的混沌序列值为,小于阈
4、值的则为,对判定后生成的二进制序列与原始语音序列进行运算,完成加密。通过设置两组系统参数,将两个不同参数的混沌系统生成的混沌序列与语音原始值进行异或运算,实现语音的加密。但是,随着对密码系统要求的提高,直接利用混沌序列进行置乱操作、异或运算的加密算法均存在一定的冗余度,不能够满足加密技术的需求。动态的加密算法,加密方式更多,密钥空间更大,往往比固定的加密模式安全性更高。目前,许多学者提出了构建置换规则,如利用混沌序列随机性,实现语音数值的置换。在文献 中,等提出了 网络的加密方法,该方法在加密之前需构造一个盒(置换表),盒大小为 ,包含了位二进制的所有数。将语音数据进行 位量化,分为前位和后位
5、,然后分别将前后位分为前位和后位,前位代表盒的行数,后位代表盒的列数,根据行列数,分别取出盒中对应的数值,拼接生成对应的置换值,再将置换值与取模混沌值进行 运算,但是加密算法密钥空间较低,抵御穷举能力较弱。文献 通过建立加密语音库,即一种私有编码库,用私有编码生成的二进制数,置换原始语音段样本值,然后利用混沌序列对每一个编码进行置乱,将所有置乱后的编码构成数据库,任何一段语音通过该数据库,立即变成了一段加密语音。该方法在加密前期的工作量是相当巨大的,但是建完数据库后,可直接取数据库对应值,加密速度较快。文献 提出了利用二维混沌序列与 反演编码,构成盒,该方法利用混沌序列生成盒行数,样本值作为盒
6、列数,取出盒中对应位置的值置换该样本值。但是加密算法密钥空间较低,抵御穷举能力较弱,并未对样本点位置进行置乱,置乱空间小。文献 中提出将语音进行分块,通过密钥链迭代的方式生成密钥,计算密钥相关值,作为 编码规则的组号,同时对语音块采用相同的编码规则,进行 运算。然后根据索引序列的奇偶性进行索引置乱,但是编码和解码规则单一。在文献 中,等提出将样本值小数部分取整,每一位作为一个元素,对每个元素进行 编码,同时对伪随机序列的 编码进行编码运算,然后对 位数值进行移位运算,但是编码规则和解码规则单一,且密钥空间不大,抵御穷举攻击能力较弱。部分学者采用语音数据分段加密的方法,增加了算法复杂度,增大了密
7、钥空间,抵御统计攻击能力也得到了提升。文献 采用小波变换,经过次处理得到个高通子带和一个低通子带,分别对个子带进行加密,需要个密钥,增大了密钥空间。文献 中提出了一种基于种混沌系统的加密方法,该方法首先将原始语音采样,然后通过一种混沌系统,对语音序列置乱,然后设置阈值,将样本值分成个区间,对每个区间采用不同的混沌系统,改变样本值,增大了密钥空间,增强了加密算法的安全性,但是加密算法与明文无关,算法无法有效的抵抗选择明文攻击。本文提出了一种基于混沌系统和 编码的语音加密算法。加密算法首先将语音数据分割成两部分,采用 编码与异或运算,对语音数据实现扩散。再利用混沌序列对扩散语音数据进行索引置乱。为
8、了使加密后的语音样本值的统计分布均匀,对索引置乱后的语音再进行极性置乱,随机改变语音数据的正负极性。为了提升加密算法抵御选择明文攻击能力,本文加密算法混沌系统的密钥流与原始语音关联起来。该算法不仅密钥空间大、密钥灵敏性高,还能有效地抵抗选择明文攻击,具有较好的抗穷举攻击、统计攻击能力。编码与混沌系统 编码生物学 中 编 码 含 有 种 碱 基,腺 嘌 呤()、胸腺嘧啶()、胞嘧啶()和鸟嘌呤(),其中 与 和 与 构成碱基对。四种碱基分别用、表示,根据 碱基互补配对原则,可以得到种编码规则,对应的 编码和解码规则如表所示。为实现语音数据的 编码,首先将语音数据转化为二进制数,随机选取一种 编码
9、规则将每两位二进制数编码成一种碱基,然后,随机选取另一种 编码规则解码该碱基,南昌大学学报(理科版)年得到置换后的两位二进制数。例如,十六位量化的语音数据样本值为 ,其二进制序列表示为 ,当二进制序列的长度不足 时,在对应的二进制序列前面添加,使 其 满 足 长 度 为,此 时 为 。假设选用编码规则,则样本值对应的 编码序列为 ,选用编码规则对 序列解码,对应的二进制置换值为 ,即置换后样本值为 。表 编码规则 规则 混沌系统本算法利用 混沌系统和 混沌系统生成的混沌序列对原始语音进行扩散和置乱运算。混沌系统公式如下:()()其中,是混沌系统的参数,是系统的变量。系统参数 ,。在保持,不变的
10、情况下,.时,系统呈混沌状态。混沌系统公式如下:()()其中(,)系统 参 数(,当(.,时,系统呈现混沌状态。语音加密方案设计 混沌序列密钥流生成为提升加密算法抵御选择明文攻击能力,混沌系统的密钥流应与原始语音关联。为此,混沌系统密钥流主要由以下几个步骤生成:步骤:假设语音数据为一维向量(),(),计算向量中所有语音样本值的和 及其平均值 ,即:()()()步骤:为了提高加密算法对原始语音的敏感性,利用下式计算 混沌系统的初始值、与(),)(),)()()其中,为动态密钥,是外部输入密钥。为取余数运算;为取整数运算。步骤:将初始值,作为混沌系统的输入,经过迭代次,分别生成长度为的混沌序列,其
11、中,()。为避免混沌序列的前个值出现暂态效应,舍弃混沌序列的前个值,分别得到长度为的一维混沌序列,。然后利用公式()计算得到混沌序列,。(),)(),)(),)()语音加密过程假设待加密的原始语音的长度为,量化位数为 位,加密方案的流程图如图所示。该方案主要从分段扩散、索引置乱以及极性置乱将语音数据分三个阶段加密。首先将语音分成两段,利用 混沌序列对第一部分语音数据采用动态的 编码与异或运算的方式实现扩散;为保证 非 同 步 性,对 第 二 部 分 语 音 数 据 与 另 一 组 混沌序列直接异或运算实现扩散。然后再利用 混沌序列对扩散后的语音样本点索引置乱,减弱样本点之间的相关性,提升加密效
12、果。最后,设定阈值,比较另一组 混沌序列与阈值的大小,根据比较结果将置乱后的加密语音的极性置乱,使加密语音样本的直方图分布更加均匀分布,进一步提升语音的加密效果。加密具体流程如下:()分段扩散:利用下式计算语音数据的分段点,即 ()()将长度为的语音数据(),()分为两段,得到长度为的一维向量(),第期饶攀等:基于 编码和混沌系统的语音加密算法,(),长度为的一维向量(),()。利用长度为的 混 沌序 列(),(),(),(),(),(),向量和分别做以下处理。首先将混沌序列分为两段,取前个数为,其余部分为。利用生成编码规则序列(),(),即 (,)()图语音加密流程图 根据序列的值,选取表中
13、对应的 编码规则,将中的每个样本值按照对应的 编码规则,将样本值转换成对应的碱基序列。然后,将混沌序列去除前个数得到混沌序列,其长度为,利用生成解码规则序列(),(),即 (,)()根据序列中的值,利用表选取对应的 编码规则,将碱基序列解码,得到。由于 编码和解码在同一个值上可能存在相同的编码规则,此时对应的样本值并未发生改变,因此对再做异或运算,即()()()()其中,是由混沌序列去除最后个数值得到的。将直接与异或运算,得到。()()()()将和拼接为(),(),实现语音数据的扩散。()索引置乱:首先利用扩散后的语音数据生成 混沌系统的初始值,即()()()()()其中,是外部输入密钥。经过
14、迭代次,生成长度为的混沌序列,为 ()()为避免混沌序列的前值出现暂态效应,舍弃混沌序列的前个序列值,得到长度为的混沌 序 列(),(),(),()。对混沌序列按升序排列,根据混沌序列升序排列过程中的索引变换,将按同样的索引变换方 式 进 行 索 引 置 乱,得 到(),(),降低样本点之间的相关性。()极性置乱:为了使加密语音样本的直方图分布更加均匀分布,提升语音的加密效果,对极性置乱。先计算中负数的个数及其与的比值,将该比值设置为阈值。然后比较混沌序列()与的大小,若()大于,()保持不变;反之,()转换成(),即()()()()()()得到最终的加密语音(),()。语音解密过程利用相同的
15、密钥和迭代次数,采用上述加密过程的逆过程,即可将加密语音恢复为原始语音。仿真实验针对本文提出的语音加密算法,为验证其安全性,在 ()()、,专业版的电脑配置下,采用 对加密算法做仿真实验。选取的两个测试语音样本来自于 语音库,测试语 音 的 采 样 频 率 为 ,单 通 道,测 试 语 音 的时长约为 ,测试语音 时长约为 。混沌系统外部密钥为:.,.,.;混沌系南昌大学学报(理科版)年统的外部密钥为:.,.。本文提出的加密算法的仿真结果如图所示:6 0004 0002 0000-2 000幅度值3.53.02.52.01.51.00.504.0()原始语音4 0002 0000-2 000-
16、4 000幅度值3.02.52.01.51.00.503.5()原始语音3.54.0幅度值3.02.52.01.51.00.506 0004 0002 0000-2 000-4 000-6 000()的加密语音6 0004 0002 0000-2 000-4 000-6 000幅度值3.53.02.52.01.51.00.50()的加密语音6 0004 0002 0000-2 000幅度值3.53.02.52.01.51.00.504.0()的解密语音3.54 0002 0000-2 000-4 000幅度值3.02.52.01.51.00.50()的解密语音图语音波形图 从图()()中可以看出,加密语音的波形随机分布,无原始语音的任何特征。由图()()可见解密后的语音波形与原始语音的波形与原始语音一致,加密语音完全覆盖原始语音特征,提出的语音加密方案可行,具有较好的加密效果。安全性分析穷举攻击分析通常语音加密算法应该具有足够大的密钥空间来抵 御 穷 举 攻 击 分 析。在 本 算 法 中,密 钥 包 含 混沌系统的外部密钥,混沌系统外部密钥,此外还有动态的外部密钥,。本文的计算精度是