基于CNN的自适应音频隐写方法和秘密信息提取方法与流程
本发明涉及音频加密领域,特别涉及一种基于cnn的自适应音频隐写方法和秘密信息提取方法。
背景技术:
数字隐写术被广泛应用于信息安全领域,是一项将秘密信息以不可见的方式隐藏在数字载体(例如,文本、语音、图像等)中,再通过公开的信道发送给接收者的技术。隐写术注重不可见性,它的优势在于隐藏秘密信息后,不容易引起第三方的注意力。传统的隐写术将秘密信息隐藏在数字载体的感知冗余部分。更为先进的自适应隐写术是通过设计失真代价函数,配合卷积编码达到高隐蔽性的隐写效果。
最新的隐写术发展趋势是结合深度学习技术来实现自动隐写。hayes在文献“generatingsteganographicimagesviaadversarialtraining,advancesinneuralinformationprocessingsystems,pp.1954-1963,2017”首次提出在gan框架下,以编码网络、解码网络和隐写分析网络作为组件构成端到端的隐写框架。编码网络以载体图像与秘密信息作为输入,输出隐写图像。解码网络接收到隐写图像后能够提取其中的秘密信息。隐写分析网络则以对手的身份提高隐写的隐蔽性。zhu在文献“hidden:hidingdatawithdeepnetworks,”inproceedingsoftheeuropeanconferenceoncomputervision,pp.657-672,2018.”中通过加入噪声模拟层极大的提高了隐写的鲁棒性,该方法可以抵御如jpeg压缩、噪声污染等攻击。zhang在文献“steganogan:highcapacityimagesteganographywithgans,”arxivpreprintarxiv:1901.03892,2019”中更进一步通过改造神经网络的结构,加入densenet模块实现了比前两者方法更大的隐写容量。
现有的技术如上述三篇文献都是应用于数字图像领域中,且hayes和zhu在文献中考虑到秘密信息与图像的二维特性,在编码网络中使用了全连接层,但由于音频的一维的时序特性,全连接层会需要大量的内存消耗,因而上述方法并不适用于音频载体;其次,为了提高隐写的隐蔽性,上述三篇文献都加入了隐写分析网络来对与编码网络进行对抗训练,但他们框架中所使用的隐写分析网络能力较弱,无法真正做到指导编码网络的训练,因此使用上述文献所生成的隐写音频会产生较强的扰动,无法保证隐写后的音频质量,易被人耳所感知。
技术实现要素:
本发明所要解决的技术问题是针对现有技术的现状,提供一种基于cnn的自适应音频隐写方法和秘密信息提取方法,该方法在保证秘密信息提取的情况下减少了隐写音频所产生的扰动,保证了隐写后的音频质量,且提高了音频的不可感知性。
本发明解决上述技术问题所采用的技术方案为:一种基于cnn的自适应音频隐写方法和秘密信息提取方法,其特征在于:包括以下步骤:
步骤1、构建训练集和测试集:将音频样本库中的音频信号裁剪成长度一致的音频段,每个音频段中设有m个采样值;并在音频样本库中选取部分音频段构建成训练集,剩余的音频段构建成测试集;m为正整数;
步骤2、在训练集中任意选取n个音频段,将其构成一个训练样本,并对该训练样本进行预处理,得到m*n的音频信号x;n为正整数;预处理的具体步骤为:
步骤2-1、对训练样本中每个音频段的m个采样值均进行归一化处理,使每个音频段中m个采样值均归一化到[-1,1]内;
步骤2-2、将每个音频段中m个归一化之后的采样值分别经过高阶滤波器处理,得到高阶滤波之后的采样值,并将其构建成m*n的音频信号x;
步骤3、随机生成n个长度为m的秘密信息比特流,并将其构建成m*n的秘密信息y;
步骤4、将步骤2中m*n的音频信号x和步骤3中m*n的秘密信息y进行维度叠加,得到m*2n的矩阵;
步骤5、将m*2n的矩阵作为输入数据,并将其输入到初始化的编码网络中,得到m*n的采样点修改向量e;其中,该编码网络为卷积神经网络;
步骤6、根据步骤5中得到的m*n的采样点修改向量e与步骤2中m*n的音频信号x得到隐写音频s;计算公式为:
s=x+e*α;
其中,α为预设的系数;
步骤7、将隐写音频s输入到初始化的解码网络中,得到解码后m*n的秘密信息y′;其中,该解码网络为卷积神经网络;
步骤8、计算解码网络中的损失函数ld,并根据该损失函数ld更新解码网络中的参数;解码网络中的损失函数ld的计算公式为:
其中,yij为秘密信息y中第i行第j列对应的数值,y′ij为解码后的秘密信息y′中第i行第j列对应的数值;
步骤9、计算编码网络中的损失函数le,并根据该损失函数le更新编码网络中的参数;解码网络中的损失函数le的计算公式为:
其中,β和γ分别为控制自适应损失函数le和解码损失函数ld权重的经验系数,xj为音频信号x中第j列所有行对应的数值,其为m*1的矩阵,
步骤10、重新在训练集中构建多个训练样本,并依次将每个训练样本采用步骤2~步骤9中相同的方法对上述更新后的编码网络和解码网络继续进行训练,直至训练集中的所有训练样本按预设的训练圈数对编码网络和解码网络的训练后,得到训练完成的编码网络和解码网络;
步骤11、将需要发送的秘密信息转换成二进制比特流,并将其构建成m*k的秘密信息y″,并在测试集中任意选取k个音频段,将其构建成m*k的测试样本x″;最后,将测试样本x″和秘密信息y″按照步骤2~步骤4中的处理后,则输入到训练完成的编码网络中,并根据步骤6中的计算后得到隐写音频s″,k为正整数;
步骤12、将步骤11中得到的隐写音频s″输入到训练完成的解码网络中,即得到从隐写音频s″中提取出的秘密信息。
作为改进,所述步骤5中的编码网络包括依次连接的n个卷积块层、1个卷积层和第一激活函数,所述每个卷积块层中包括依次连接的卷积层、归一化层和第二激活函数,n为正整数。
作为优选,n=7。
在本方案中,所述第一激活函数采用tanh激活函数;所述第二激活函数采用relu激活函数。
进一步的,所述步骤7中的解码网络包括依次连接的m个卷积块层和1个卷积层,所述每个卷积块层中包括依次连接的卷积层和第三激活函数,m为正整数。
作为优选,m=7。
在本方案中,所述第三激活函数采用relu激活函数。
与现有技术相比,本发明的优点在于:通过生成采样点修改向量,可以对秘密信息嵌入后的扰动进行约束,减少所产生的扰动,另外在编码网络的训练过程中通过对自适应损失函数进行优化,会使秘密信息嵌入在音频难以感知的区域,用于保证隐写后的音频质量,提高隐写后音频的不可感知性;且该方法中采用卷积神经网络进行编码和解码,当网络框架训练完成后即可直接用于音频隐写和秘密信息提取,提高了音频隐写和秘密信息提取的效率,使用更加方便。
附图说明
图1为本发明实施例中音频隐写方法和秘密信息提取方法的网络框架图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
如图1所示,一种基于cnn的自适应音频隐写方法和秘密信息提取方法,包括以下步骤:
步骤1、构建训练集和测试集:将音频样本库中的音频信号裁剪成长度一致的音频段,每个音频段中设有m个采样值;并在音频样本库中选取部分音频段构建成训练集,剩余的音频段构建成测试集;m为正整数;其中,训练集中的音频段个数远大于测试集中的音频段个数;训练集中的音频段个数与测试集中的音频段个数之间的比例可以采用现有深度学习技术中训练集与测试集构建时常用的比例;
步骤2、在训练集中任意选取n个音频段,将其构成一个训练样本;并对该训练样本进行预处理,得到m*n的音频信号x;n为正整数;预处理的具体步骤为:
步骤2-1、对训练样本中每个音频段的m个采样值均进行归一化处理,使每个音频段中m个采样值均归一化到[-1,1]内;
步骤2-2、将每个音频段中m个归一化之后的采样值分别经过高阶滤波器处理,得到高阶滤波之后的采样值,并将其构建成m*n的音频信号x;
步骤3、随机生成n个长度为m的秘密信息比特流,并将其构建成m*n的秘密信息y;
步骤4、将步骤2中m*n的音频信号x和步骤3中m*n的秘密信息y进行维度叠加,得到m*2n的矩阵,本实施例中,m*2n的矩阵可以为[x,y],也可以为[y,x];
步骤5、将m*2n的矩阵作为输入数据,并将其输入到初始化的编码网络中,得到m*n的采样点修改向量e;其中,该编码网络为卷积神经网络;
该编码网络对应的卷积神经网络包括依次连接的n个卷积块层、1个卷积层和第一激活函数,每个卷积块层中包括依次连接的卷积层、归一化层和第二激活函数,n为正整数;其中,卷积层为现有卷积神经网络中的卷积层;本实施例中,通过实验确定出的n=7,第一激活函数采用tanh激活函数;第二激活函数采用relu激活函数;
步骤6、根据步骤5中得到的m*n的采样点修改向量e与步骤2中m*n的音频信号x得到隐写音频s;计算公式为:
s=x+e*α;
其中,α为预设的系数;本实施例中,α=200;
步骤7、将隐写音频s输入到初始化的解码网络中,得到解码后m*n的秘密信息y′;其中,该解码网络为卷积神经网络;
其中,解码网络对应的卷积神经网络包括依次连接的m个卷积块层和1个卷积层,所述每个卷积块层中包括依次相连接的卷积层和第三激活函数,m为正整数,其中,卷积层为现有卷积神经网络中的卷积层;实施例中,通过实验确定出的m=7,第三激活函数采用relu激活函数;
步骤8、计算解码网络中的损失函数ld,并根据该损失函数ld更新解码网络中的参数;
对于解码网络,其唯一的任务是从接收到的隐写音频中提取出原始的秘密信息,本实施例中,使用二元交叉熵函数作为损失函数,用以衡量秘密信息提取时的失真,解码网络中的损失函数ld的计算公式为:
其中,yij为秘密信息y中第i行第j列对应的数值,y′ij为解码后的秘密信息y′中第i行第j列对应的数值;
步骤9、计算编码网络中的损失函数le,并根据该损失函数le更新编码网络中的参数;
对于编码网络,编码网络的目标是以产生尽可能小的扰动将秘密信息嵌入到原始音频信号中,同时,秘密信息嵌入的位置被期望于在音频的难以感知部分,本实施例中,引入了drf失真代价函数作为损失函数,指导编码网络的训练,drf失真代价函数的定义赋予了音频复杂区域与采样点幅值大的区域更多的失真,该部分计算得到自适应损失函数le;除此之外,编码网络中还应该考虑到解码网络提取的准确率,这是因为,如果编码网络不考虑解码环节,那么容易出现所产生的采样点修改向量e非常轻微,导致解码网络无法准确提取。因而除了自适应损失函数le以外,编码网络还将解码网络对应的损失ld作为优化目标之一;
因此,解码网络中的损失函数le的计算公式为:
其中,β和γ分别为控制自适应损失函数le和解码损失函数ld权重的经验系数,xj为音频信号x中第j列所有行对应的数值,其为m*1的矩阵,
步骤10、重新在训练集中构建多个训练样本,并依次将每个训练样本采用步骤2~步骤9中相同的方法对上述更新后的编码网络和解码网络继续进行训练,直至训练集中的所有训练样本按预设的训练圈数对编码网络和解码网络的训练后,得到训练完成的编码网络和解码网络;
步骤11、将需要发送的秘密信息转换成二进制比特流,并将其构建成m*k的秘密信息y″,并在测试集中任意选取k个音频段,将其构建成m*k的测试样本x″;最后,将测试样本x″和秘密信息y″按照步骤2~步骤4中的处理后,则输入到训练完成的编码网络中,并根据步骤6中的计算后得到隐写音频s″,k为正整数;本实施例中,在测试时,k可以为1,当然,也可以为大于1的正整数;
步骤12、将步骤11中得到的隐写音频s″输入到训练完成的解码网络中,即得到从隐写音频s″中提取出的秘密信息。
本发明中通过上述步骤得到训练完成的编码网络和解码网络,在使用过程中,隐写者首先将需要发送的秘密信息转化为二进制的比特信息,并使用编码网络对讲一个音频样本与秘密信息进行处理,构造得到隐写音频,并通过公开的信道将隐写音频发送给接收者。接收者方拥有所对应的解码网络,即可从接收到的隐写音频中提取秘密信息。因此该音频隐写方法通过深度学习技术,当网络框架训练完成即可直接用于音频的隐写与秘密信息的提取,提高了隐藏信息的效率。同时,通过优化自适应损失函数可以以较低的扰动生成比现有的基于深度学习的方法更高质量的隐写音频,并通过生成音频采样点修改向量,极大的减少了隐写后所产生的扰动,提高了音频的隐藏性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除