邹振婉 李明轩 杨慧婷
(国网新疆电力有限公司电力科学研究院 乌鲁木齐 830011)
(1165602476@qq.com)
在数据处理过程中,敏感的重要数据会移交给受信任的第三方.例如,一个组织可能与共享客户数据的其他组织有关联.另一家企业可以将其工作外包给需要向外部公司发送数据的其他公司.在数据流传过程中,往往会因为管理不当造成敏感数据的泄露.因此如何防止敏感数据泄露并保证数据泄露后可以有效溯源成为数据安全研究的焦点.
为解决敏感数据泄露以及溯源追踪的问题,数据水印一直以来备受学术界和企业界的关注.数据水印通过将与数据内容关联的标识信息以直接或间接方式嵌入数据中,且保证并不影响原有信息的使用价值[1].在敏感数据审计过程中,通过提取敏感数据中的水印信息识别出数据泄露情况,并通过水印比对识别出数据泄露者,以达到追踪目的[2].
由于互联网应用带来的多媒体数据广泛应用,基于多媒体数据的敏感数据泄露也层出不穷.常用的图像隐写方法分为基于空间域的方法和基于变换域的方法[3].基于空间域的方法比基于变换域的方法更普遍,包括自适应LSB隐藏方法[4],空间自适应隐写算法HUGO[5],WOW[6],S-UNIWARD[7],HILL-CMD[8]等.变换域方法是在改善前的基础上提高鲁棒性攻击,它包括量化表(QT)[9]、DWT域[10](离散小波变换)、DFT(离散傅里叶变换)域[11]、DCT(离散余弦变换)域[12]和IWT(整数小波变换)[13].
由于嵌入造成的修改会留在被覆盖的图像中,这将使得对隐藏的数字水印无法抵抗基于统计学的分析检测问题.为解决这个问题,提高隐写的鲁棒性,Bilal等人[14]在2013年提出“零隐写”.为提高安全性,Zhou等人[15]于2016年5月提出无载体隐写概念,与传统的图像隐写相比,无载体虽然仍需要载体,但它强调不需要其他载体,而是直接利用数字水印信息作为动力来生成加密载体.图像本身已经包含许多特征信息,如像素亮度值、颜色、纹理、边缘、轮廓和高级语义等.通过适当的特征描述,这些特征信息与隐藏的数字水印信息之间可以产生一定的关系.通过发送与数字水印信息无关的生成图像,可以生成与数字水印相同的信息数据.该方法能有效抵御隐写分析工具的攻击,显著提高秘密信息的安全性.Pan等人[16]提出一种基于GIF (graphics interchange format)图像的无载体隐写方法,该方法嵌入率更大.同时,Zheng等人[17]提出一种新的基于鲁棒图像哈希的无覆盖隐写方法,具有更高的容量、鲁棒性和安全性.Duan等人[18]提出一种基于生成模型的新的无载体隐写方法,可以有效抵抗隐藏分析工具.Hu等人[19]提出一种基于深度卷积生成对抗网络的图像隐写方法,将秘密信息映射为噪声向量,基于噪声向量,利用训练好的发生器神经网络模型生成载体图像.
现有无载体隐写技术为保证快速准确地发送信息,需要事先准备大量自然图像构成图像数据集,而这些图像来源广泛,不能满足理想的情况.自然图像选择的偏差或倒排索引结构建立的不完善都将导致信息传递的不完整或错误.同时,如果图像在传输过程中受到攻击,则会降低精度.因此,本文提出一种基于生成对抗网络的图像数据水印无载体隐写方法.该方法利用生成对抗网络的生成器从随机噪声、图像标签和数字水印信息生成类似于原始图像的伪造图像,生成对抗网络的判别器则负责判别输入图像的真假,并同时提取标签和数字水印信息.通过多轮的对抗训练后,生成器最后输出类似原始图像且含有数字水印的图像数据,同时肉眼无法区分原始图像和生成图像.仿真结果验证本文算法的有效性.
自从Goodfellow[20]提出GAN(generative adversarial network)以来,其已经成为一种最为流行的生成模型.其核心思想来源于博弈论中的零和游戏.主要由1个生成器(G)、1个判别器(D)组成.若干维随机噪声z以先验分布Pz(z)输入生成器(G),并产生PG(z)的样本分布来拟合Pdata(x)真实样本分布.判别器(D)负责判断输入的是真实样本还是G合成的伪造样本,如果是真实数据,则输出1,否则输出0.GAN的优化目标是一个极大极小值问题,即先求价值函数V(D,G) 关于D的极大值,再根据训练生成器G求lg(1-D(G(z)))的极小值.最后,使得G(z)和真实数据x尽可能的接近.从感官上来说就是G生成的图像和数据集的图像x越来越相似.
(1)
标准GAN输入的噪声一般是100维的高斯分布z~N(0,1)或者均匀分布z~U(-1,1),经过G编码后噪声z往往已经高度耦合.所以很难解释为什么不同的z就能生成不同的图像,本文把原来的噪声输入分解成2部分:第1部分是原来的随机噪声z;第2部分是由若干个潜变量拼接而成的潜变量(latent code)c.潜变量c会有一个先验的概率分布,且可以是离散的或连续的,用于代表生成数据的不同特征维度.比如在原InfoGAN论文中mnist数据集的潜变量就由一个取值范围为0~9(one-hot编码)标签和2个连续的随机变量c1,c2(分别用于表示数字类型和倾斜度、粗细度)计算得到.
仅仅增加潜变量是不够的,还必须对其进行约束,本文采用互信息实现约束.变量X,Y的互信息为I(X,Y)=H(X)-H(X|Y).可以理解为知道条件Y后X不确定度的减少量.生成器G输入的是X=G(z,c),输出的变量为Y=c.GAN训练后互信息I(c,G(z,c))能达到最大.从GAN图像生成来说,潜变量c需尽可能控制生成图像的内容;而已知图像时,需尽可能准确地提取出潜变量c,保证信息c不丢失.最终提出带有信息调节项的损失函数:
(2)
计算互信息项时需要计算后验概率p(c|x),本文采用一个近似变分分布Q(c|x)来模拟p(c|x),并根据概率分布计算I(c,G(z,c))的下限表达式:L1(G,Q)=Ec~p(c),x~g(z,c)[lgQ(c|x)]+H(c).所以损失函数重新写作:
(3)
当Q(c|x)=p(c|x)时,L1(G,Q)达到最大化H(c),为一个常数.随机噪声z和潜编码c输入生成器G,产生伪造图像.并从伪造图像和真实图像数据集中随机采样,输入给定D判断真假,并且返回一个0~1之间的实数值,值越大,表明是真实图像的可能性越大.变分分布Q也可以视作一个判别器,输出类别c.Q通常与判别器D共享卷积层,以减少计算花销.
基于上述方法构造的GAN模型,在生成器G输入随机噪声z和潜编码c能够控制图像生成的内容,并且在判别器D中提取出潜编码c的信息.
GAN的训练极为困难,需要精心设计网络结构,并小心协调G和D的训练程度;训练失败无法生成图像;模式崩坏造成生成的图片缺乏多样性等.经过多次尝试,本文采用DCGAN框架实现图像生成.采用32×32和64×64这2种图像分辨率.整体架构如图1所示,由生成器G、判别器D和信息提取器Q构成.输入分为噪声z和潜编码c.其中随机噪声z为100维0~1之间均匀采样的实数,这有助于合成复杂图像.
图1 无线设备身份异常检测系统模型
通过实验发现,当z维度较低时,往往不能表征足够的信息,图像有较大的失真,因此选择100维.潜编码c分为标签信息L和机密信息d这2部分.标签信息采用独热编码(one-hot),可以控制合成图像的属性,标签L表示所选择数据集的标签种类,编号为L.如mnist数据集和cifar-10数据集均为10类,维度就是10.机密信息d采用的是满足n维伯努利分布的0/1比特流,n决定隐藏数字水印的比特数.0/1随机排列,每次迭代时均会产生新的随机0/1比特流.这样能够保证网络学习到编码和解码数字水印的能力,而非简单地记住输入的信息.此处,噪声z和潜编码c的取值都在0~1之间,有助于参数的收敛和图像的合成.
当生成器G收到噪声z、标签L和机密信息d后,将其拼接融合,生成一个维度为(100+L+n)的1维数组.而后,经过2个全连接层进行Linear线性变化,并采用BatchNorm1d和Relu进行规范化和参数限制,简写为Linear-BatchNorm1d-Relu.接着,采用变形操作将其规整为128个原图像大小的1/4特征图,然后采用2次上采样操作(ConvTranspose2d-BatchNorm2d-Relu)将其恢复到原始图像大小.设计的网络结构简单,但是有效,能够生成小尺寸的各类图像.
共享卷积层(S)使用的是2个Conv2d-BatchNorm2d-LeakyReLU和2个Linear-BatchNorm1d-Relu操作,最后输出维度为(1+L+n)的数组.判别器D连接在共享卷积层后,经过sigmoid变换后,输出1个1维的标量,用于判断输入的是真实图像还是伪造图像.网络中所有的卷积核大小为4,步长为2,填充大小为1.信息提取器Q用于提取标签信息L和输入的机密信息d,分别输出维度为l,n的数组.采用wake-sleep交叉优化的方式,即先优化D,再优化G,最后对(G,Q)联合优化.
网络的训练优化过程如下:采用Adam优化器,学习率lr= 0.000 2,参数betas=(0.5,0.999),λ为函数系数.Batch size大小m=128,CE为计算多分类损失的交叉熵,MSE为计算均方根函数.每个批次按照D,G,Q串联组合的参数chain(Q,G)轮流迭代1次.每次x,y分别为读取数据的图像部分和标签,每次数据从先验分布为U(0,1)的随机噪声中采集m个随机噪声样本{z1,z2,…,zm};从真实样本数据集中随机抽取m个真实图像样本{x1,x2,…,xm};从真实样本数据集中读取m个真实图像的标签{y1,y2,…,ym};随机产生m个n维随机0/1比特流{d1,d2,…,dm},d~B(n,0.5).
根据式(4)计算D的梯度,按梯度增加方向,根据Adam规则更新共享卷积层S参数:
lg(1-D(G(zi,yi,di)))].
(4)
根据式(5)计算G的梯度,按照梯度增加方向,用Adam优化器更新参数G:
(5)
将网络G,S部分的参数串联起来并形成一个迭代器chain(G,S),根据式(6)计算chain(G,S)梯度,并用Adam按照梯度下降方向更新G,S所有的参数:
λMSE(diG(zi,yi,di),di),
(6)
判别器D和生成器G的优化采用0-1二分类交叉熵.网络用pytorch实现,使用函数BCELoss.标签损失值的计算使用的是多分类交叉熵函数CrossEntropyLoss.判别器D和信息提取器Q输出的机密信息d均需要经过sigmoid函数规整到0~1之间.机密信息d计算损失值用的是函数MSE,即Q输出的机密数据d和输入G的0/1比特流值间的均方根,并在损失值前乘以系数λ.根据实验经验,在迭代轮数epoch<20时,设置λ=10×1.15epoch,否则λ=165.将λ进行指数增长,逐步增大机密信息d损失,有利于稳定训练和提高机密信息d输出的准确率.但是λ过大会影响图像生成质量,所以设置λ的上限值为165.同时,需要计算机密数据d提取的准确率.方法是将Q输出的机密信息d进行四舍五入规整到0和1,然后在每个批次内计算和输入0/1 比特流之间相等位数的平均值.所有优化器均采用Adam,学习率lr=0.000 2,β参数betas=(0.5,0.999).
实验在pytorch框架上完成,使用的系统是Ubuntu 16.04,计算设备为Nvidia GTX 1080Ti,在mnist,cifar-10,lsun的子集bedroom数据集上进行实验.
mnist数据集为一个手写0~9数字图片数据集,训练集包含6万张灰度图像和6万个0~9的数字便签,测试集包含1万张图像和标签.每张图像大小为28×28(长像素×宽像素).cifar-10是一个包含6万张图片的数据集,其中5万张用于训练,1万张用于测试.每张照片为32×32像素的RGB彩色图像.所有照片分属10个不同的类别,分别是“airplane”“automobile”等.标签值为0~9,分别代表每个不同的类别.lsun数据集子集bedroom包含约300万张彩色jpg图像,以lmdb格式提供.并以质量系数75进行压缩,短边尺寸为256像素.对于不同的数据集,进行构造式隐写实验时设置不同的图像尺寸:mnist数据集为28×28,cifar-10为32×32,lsun-bedroom为32×32以及64×64这2种.之所以没有采用更大尺寸图像,是实验设计的网络在生成高分辨率图像时视觉上比较模糊,达不到图像质量要求.
实验中分别采用mnist,cifar-10,lsun-bedroom数据集进行对照实验:第1次不嵌入任何数字水印,只携带标签:第2次嵌入64 b的信息.结果如图2所示:第1行分别是未加机密信息时用mnist,cifar-10,lsun-bedroom数据集合成的图像.第2行分别是加64 b随机0/1数字的机密信息时所合成的图像.
图2 隐写前后的图像质量对比
从图2可以看出,mnist和cifar-10图像在加入机密信息后,mnist数字图像变得非常怪异,cifar-10图像变得模糊不清.原因可能是加入其中潜变量c影响到生成图像的内容,当加入的是离散的0/1比特流时,就会导致生成的图像连续性比较差.而基于lsun-bedroom数据集生成的图像在进行构造式隐写前后图像质量几乎没有变化,图像质量非常好.说明当图像集很大、很复杂时,可以在较大程度上抵消构造式隐写对图像造成的影响.对于隐写来说,生成的图像质量越好、越自然,安全性就越高.所以,选择lsun-bedroom数据集进行构造式隐写实验,实际效果如图3所示:
图3 lsun-bedroom数据集进行隐写后生成的图像
图3中从左到右分别是不同尺寸图像隐藏不同比特数后的效果:32×32-256 b,32×32-512 b,32×32-1024 b,64×64-1024 b(长像素×宽像素-比特数).从图3可以看出,当隐写比特数增加时,对图像质量几乎没有影响.每张32×32像素大小的图像可以成功隐藏多达1 024 b的信息,而且肉眼完全无法察觉.
与此同时,还需要测试嵌入其中的数字水印提取的准确率,保证准确性.从表1可以看出,当隐写的比特数增加时,信息提取的准确率也在下降,并且要达到较高准确率,网络训练所需时间越来越长.说明当信息隐藏量增加时,给信息的提取造成一定的困难.信息嵌入量和图像质量以及信息提取准确率的关系就像天平的2端,存在此消彼长的关系.虽然信息不能保证100%准确提取,但是可以采用其他方式来保证准确性,比如采用纠错码.
在安全性方面,分别采用1万张32×32大小的imagenet 图像和1亿张32×32由lsun-bedroom数据集合成的含有256 b数字水印的合成图像.采用经典隐写分析工具stegExpose检测发现,自然图像与合成图像的检出率相当,均为0.81.但当合成图像尺寸增加时,检出率显著下降,图像尺寸为64×64时,检出率下降到56%.继续增加尺寸,检出率可以下降到10%以下,与不含数字水印的自然图像集检测率大体相等.同时采用彩色富模型SCRMQ1进行分析,选用1万张由用DCGAN合成的不含秘密卧室图像作为载体图像集,1万张由本网络合成的含256 b的机密信息的卧室图像作为含密图像集.经SCRMQ1提取特征后,送入Ensemble Classifier集成分类器进行分析,检测错误率为 48.5%.说明本文方案的合成图像具有良好的抗隐写分析的能力.
本文设计一种构造式的隐写方案,直接由数字水印合成自然图像,并且准确地提取出隐藏的信息.嵌入容量可以达到 1bpp,准确性最高可达99.5%,并且隐写分析工具无法检测出来.在容量、准确性方面可以媲美传统隐写方式,并在安全性上远远超过它.
构造式隐写是下一代的隐写技术,能够直接合成含有数字水印的图像.合成的图像视觉效果与真实图像完全一致,真假难辨.同时,该方法不进行载体修改,也很难被当前的隐写分析技术发现,从而保证信息的安全性.这是一种安全、准确、大容量的隐写方法,具有重大的研究价值.但是目前本文研究还有待深入,需要解决很多技术难关.下一步需要做的就是合成高清图像,隐藏更多的信息.