摘 要:为提高无载体信息隐藏的数据嵌入容量和通信效率,注意到半构造式无载体信息隐藏算法所具有的优势,在仔细分析几种社交平台的用户行为习惯后,提出了一种以社交平台的行为习惯为构造原则的半构造式无载体信息隐藏算法. 该算法的具体思想通过构建小图标库中的图标与秘密消息的一一映射关系,将小图标按照一定的原则拼接,完成秘密消息的图像表达,通过传递拼接好的图片,实现秘密消息的传递. 为了提高小图标的识别率和整个隐蔽通信系统的抗干扰能力,算法还引入了卷积神经网络对图标库中的图标进行训练和分类,同时在训练时特意引入经过多种攻击方式处理过的小图标作为干扰样本. 实验和仿真结果表明,该隐藏方法具备良好的抗攻击能力,隐藏容量和通信效率得到了实质性的提高,可用于实际的隐蔽通信系统.
关键词:深度学习;图像分类;社交习惯;隐写;无载体信息隐藏
《计算机科学与探索》是由中国电子科技集团公司主管、华北计算技术研究所主办的国内外公开发行的计算机学报级高级学术期刊,中国计算机学会会刊。
信息隐藏是将秘密信息隐藏于载体信号中,并在需要时将秘密信息提取出来,以实现隐蔽通信和版权保护等目的[1].由于数字图像冗余度大且使用广泛,常被作为信息隐藏载体. 传统的嵌入式信息隐藏方法是通过对载体数据的修改,将秘密消息嵌入载体中,这必然会导致含密载体与原始载体间存在一定的差异,难以抵抗隐写分析检测[2]. 为提高隐蔽通信的安全性,无载体信息隐藏[3]受到了广泛关注.
“无载体”并不是指不需要载体,而是直接以秘密信息为驱动来“生成”或者“获取”含密载体. 从本质上来说,基于图像的无载体信息隐藏是一种图像特征的编码方法. 目前所见的无载体隐藏算法大多都存在数据嵌入容量不高的问题,离实用化还存在一定的距离.
为解决上述问题,本文提出了一种基于社交习惯的半构造式无载体信息隐藏算法[4],其思路是通过挖掘人们的社交行为习惯,以社交行为习惯为构造原则,设计不同的拼接模板,从图标库中选取图标,构造出一幅具有实际意义的图像并在社交平台中传输,达到隐蔽传输秘密消息的目的. 其中,小图标库是在利用深度学习的方法对小图标进行训练、分类和识别的基础上所建立起来的. 具体来讲,是利用卷积神经网络(Convolutional neural network,CNN)[5]提取图像特征并输入到该模型中进行训练,根据图像的高维特征对小图标进行识别和分类,考虑到传输过程中的图像可能会被攻击者攻击,用于训练的图像数据集应含有各种干扰样本. 干扰样本来之于特殊处理过的图像数据,包含有干扰样本的训练集可以保证训练好的CNN网络能够在含密图像遭受攻击后也能对图标内容进行正确分类,确保算法的鲁棒性.
1 利用AlexNet进行迁移学习
1.1 深度卷积神经网络 AlexNet 模型
卷积神经网络具有低网络模型复杂度,可减少权值数目等优点,被广泛用于深度学习. 采用卷积神经网络进行深度学习,将图像直接输入网络,可以避免传统算法中的数据重建和复杂的特征提取过程,能提高算法的运行效率. Krizhevsky等[6]提出的卷积神经网络AlexNet在图像分类和物体检测方面的性能优于传统方法,虽然GoogleNet[7]和VGG[8]的性能相比AlexNet 网络性能更好,但其网络复杂,训练耗时. 综合考虑训练及识别效率等因素,本文选用AlexNet 网络进行图像识别与分类,其网络相对简单且易于训练,可通过修改神经网络中的某些参数提高网络性能. 本文所采用的卷积神经网络AlexNet网络层次结构图如图 1所示.
不计输入层,该模型共8大层,25小层结构,前5层是卷积层,接着3层为全连接层[5],全连接的结果通过Softmax分类器[9]产生1 000个分类输出. 在前5层中,每一层都包含有卷积子层[5],缩写为 Conv1 到 Conv5,每一个卷积操作后紧跟的是激活函数reLu处理. 采用reLu激活函数[10]的作用是使学习周期大大缩短,提高运算速度和效率. Norm1和Norm2表示归一化操作. 最后是池化操作,相比平均池化,该神经网络采用的最大池化(max pooling)[11]可以讓特征参数减少,使更多的纹理特征信息保留下来. Dropout[6]操作是在两个全连接层中,其作用是为了防止训练样本较少的时候模型过拟合,最后通过 Softmax 分类器产生多维分类输出.
1.2 AlexNet结构的修改
由于受时间和设备的计算能力所限,考虑到主要是做模型验证,因此本文在建立图标库时只选择了32种小图标. 为获得较好的分类性能,共享AlexNet的模型训练参数,达到迁移学习的目的[12], 本文改造了部分网络结构:首先冻结AlexNet的前7大层,即前23小层,去掉Layer8并在后面加上自己的网络输出层. 本文在新的Layer8中先加一层输出为64的全连接层,然后接一层relu激活层精简特征参数,再接一层全连接层(Fullconnection)并接上一层softmax分类器和一层分类输出层(Output)共输出32个类别,改造后的网络结构如图2所示.
2 信息隐藏算法
由于受时间和具体计算设备的计算能力所限,为兼顾隐藏容量、误码率、鲁棒性以及拼接图像内容的合理性等要求,同时,本文旨在验证算法的可行性,因此,图标库只构建了32种小图标,每一个图标的类别标签对应一段5 bit的二进制序列.
2.1 题目规则的设计
为了避免被第三方怀疑,在社交网络上传播的含密载体应当符合人们的社交习惯. 为此,利用数据挖掘的方法,对社交平台上的各种数据进行挖掘并进行数据分析以寻求使用较为广泛的大众行为习惯,按照这种行为习惯设计图片的拼接原则和思考题的题目规则. 以将图片处理成一些有趣味性的智力题目为例,目前设计了5种规则拼接生成含密载体图像,如:“算价格”,“分类别”,“编故事”,“找最长”和“找相同”.
2.2 隐藏算法
隐藏秘密信息的流程示意图如图3所示,其具体的实现步骤如下:
步骤 1 输入一段秘密信息S(信息内容可以是中文汉字,英文单词,二进制或者是十进制数,也可以选择生成一段80 bit长度的随机二进制序列,输入类型K用2 bit二进制数表示),将待隐藏的信息转换为二进制序列E,根据O的长度判断需要X张图片将秘密隐藏完全表达. 将X分为若干段,每段计算其长度L作为标志位一,每张图像的顺序序号N作为标志位二,接着选择相应的输入类型K作为标志位三,这样最多可构成一个13 bit的二进制序列作为标志位.
步骤 2 将标志位加在含密序列E的前端,得到最终的含密二进制序列C. 对C进行分段,每5位为一段,每一段根据二进制序列与自建图像库中32种物体标签的映射关系进行查询,映射为相应的类别标签并获得相应的物体图像,按从左至右、从上往下的顺序将这些子图像拼接起来.
步骤 3 拼接图像的大小根据E的长度L相应有2×2、3×3、4×4、5×5、6×6共5种模板. 在每个模板能表达的位数区间内,不足区间上限的补随机数至区间上限值.
步骤 4 对图片内容的题目描述类型目前设计了5种:“算价格”,“分类别”,“编故事”,“找最长”和“找相同”,其中“找相同”只有拼接图片为6×6形式的时候才可能出现,因为图像数据库中一共只有32种不同的类别,而6×6的拼接图片中36张图片必然有相同的类别. 可以自行指定4种题目类型之一,也可以设置为随机选择.