本发明属于信息隐藏领域,尤其涉及一种基于深度判别器的无载体隐蔽通信方法及系统。
背景技术:
随着互联网和数字多媒体处理技术的飞速发展,图像、音视频等多媒体内容已经成为人们沟通交流的重要媒介。但与此同时,对传输信息的攻击和截获也变得更为容易,一旦用户的重要信息被监听或破坏,将会带来不可估量的损失。传统的密码学算法可以将重要信息加密,从而保证网络中信息的安全传输。但是加密后的信息往往以乱码形式存在,在某些情况下,该种形式更容易引起攻击者的怀疑和注意。
为了实现更高级别的安全通信,在特定的环境下可以采取隐蔽通信技术。隐蔽通信技术是一种可以使人们在不安全信道上实现安全通信的技术。相比于加密的通信方式,隐蔽通信还可以实现对通信行为本身的隐藏,因此较加密而言拥有更加广阔的应用前景。
一般的隐蔽通信方案是通过将秘密信息以第三方不可感知的方式隐藏在载体中,并将载体以公开的信道进行传输或者发布。但是这种隐藏方式需要修改载体信息,修改的痕迹很容易被专用的隐写检测手段检测出来,因此安全的隐蔽通信面临着巨大挑战。无载体的信息隐藏方案由此逐渐获得人们的重视。无载体隐藏方案无需修改载体,通过利用载体本身所具有的某些特性来代表信息。由于不会对载体进行修改,从而很好的解决了传统信息隐藏方案易被隐写分析检测的问题。
由于数字图像在生活中有着广泛的应用,而且其中存在着冗余部分。所以目前多数隐蔽通信系统都将数字图像作为载体。
中国专利申请cn201710123804.4公开了一种基于gif属性区间划分映射编码的无载体隐蔽通信方法。该方法为:1)从gif图像的属性中选取n个属性;2)将选取的每个属性的属性值域划分出多个区间;然后将得到的属性划分区间进行组合,得到多个n维区间;其中,每个n维区间均有一gif图像对应且该gif图像的与所选取属性对应的属性值处于该n维区间中;3)对该n维区间进行映射编码生成发送方、接收方共享的编码表;4)发送方需要将一段信息传递给接收方时,首先将该段信息转换成二进制编码,再按照该编码表选择gif图像发送至接收方;5)接收方对收到的gif图像按序对照该编码表翻译出二进制编码,获得发送方传递的该段信息。但是该方法无法避免搜索大量图像的问题,此外在建立多维区间的计算问题上仍然存在着大量的计算资源消耗。
由张翔等人在2019年发表的文章《robustcoverlessimagesteganographybasedondctandldatopicclassification》中首次介绍了一种基于dct和lda的鲁棒无载体图像隐写算法。该技术是目前最为普遍的关系映射的图像搜索式方法的一种实现。其技术实现是首先,运用lda主题模型对图像集进行主题归类。然后,随机选择一种主题下的图像,进行8×8块dct变换,通过相邻块dc系数的关系生成鲁棒特征序列。最后,建立包含特征序列和位置坐标的三级倒排索引。为了实现图像隐写,将隐秘信息转换成二进制后切分成信息段,根据索引选择具有与隐秘信息相同特征序列的图像作为载体图像传递给接收端。在整个过程中,原始图像未经过任何修改。此方法虽然在鲁棒性上有所提升,但是仍然无法避免为了构造完备图像集合而进行大量非启发、无结果保证的搜索问题。
中国专利申请cn111416683a公开了一种基于构造式对抗样本的隐蔽通信方法,其将不含秘密信息的对抗样本与秘密信息的映射关系隐藏于公有神经网络,达到隐蔽通信的目的,但该申请需要构造专门的对抗样本图像。该类图像不是自然界中真实存在图像,本质是人为根据一定规律和特殊分布生成的噪声图像。鉴于自然图像与对抗样本图像分布规律存在本质的不同,因此理论上存在对应的隐写分析器可以将这对抗样本图像识别出来,而本发明提出的方法不对自然图像进行修改,无法被检测。所以,cn111416683a专利提出的方法安全性低于本专利。
综上所述,现有的基于图像的无载体隐蔽通信方案存在着以下缺点:
1.每张图像的传输容量过小,图像搜索式方法在每张图像中只能传输十几bit信息,导致本类方法容量较低。
2.由于传统方法的覆盖率过低,进行隐蔽通信之前都需要搜索大规模的图像,实际中往往需要搜索十万甚至百万级别的图像才有几率构建一个完整的载体库。
3.鲁棒性较差,当图像受到网络中的噪声攻击时候会导致接收方解码得到错误信息。
4.存在不确定性,即使搜索大量图像也不一定找到完备集合,而且搜索过程没有规律可循。
5.需要人工设计载体与秘密消息的对应关系,安全性以及实用性依赖于人类知识。
技术实现要素:
为了解决上述问题,本发明提出了一种基于深度判别器的无载体隐蔽通信方法及系统,保证隐蔽通信方案的快速构建,同时实现秘密消息与载体对应关系的自动学习。
本发明的技术方案包括:
一种基于深度判别器的无载体隐蔽通信方法,适用于由发送方与接收方组成的系统,其步骤包括:
1)构建码表,收集若干图像,并根据码表向各图像分配长度为p的码字,构建载体库;
2)通过学习各图像与相应码字的映射关系,构建映射模型,并将映射模型发送至接收方;
3)将秘密消息转化为二进制码,并将所述二进制码按设定长度p分割为若干比特段,其中p=p*t,t为自然数;
4)在载体库中查询各比特段对应的图像,将形成载密图像序列发送至接收方,以使接收方依据所述载密图像序列与映射模型,恢复所述秘密消息。
进一步地,所述码表覆盖p位长度的二进制编码中全0到全1的所有码字。
进一步地,通过以下策略向各图像分配码字:
1)每个码字都至少有一个图像对应;
2)载体库中的每一图像只能映射到一个码字。
进一步地,通过倒排索引方法,构建载体库。
进一步地,将各图像与相应码字输入神经网络之前,对各图像进行预处理;所述预处理包括:
1)获取图像的多种版本;
2)调整图像的大小。
其中,通过以下策略获取图像的多种版本:
a)从四个角裁剪图像;
b)从中心裁剪图像;
c)对图像进行翻转。
进一步地,采用最近邻线性插值方法,调整图像的大小。
进一步地,构建映射模型的方法包括:机器学习、深度学习或强化学习;机器学习的算法包括:决策树算法、随机森林算法、梯度提升决策树算法、朴素贝叶斯算法、逻辑斯坦回归算法、k近邻算法或神经网络。
进一步地,神经网络的损失函数
进一步地,通过以下步骤恢复所述秘密消息:
1)将所述载密图像序列输入映射模型,得到比特段序列;
2)依据比特段序列,恢复所述秘密消息。
一种基于深度判别器的无载体隐蔽通信系统,包括:
发送方,用以构建码表,收集若干图像,并根据码表向各图像分配长度为p的码字,构建载体库;通过学习各图像与相应码字的映射关系,构建映射模型,并将映射模型发送至接收方;将秘密消息转化为二进制码,并将所述二进制码按设定长度p分割为若干比特段,其中p=p*t,t为自然数;在载体库中查询各比特段对应的图像,将形成载密图像序列发送至接收方。
接收方,用以接收所述载密图像序列与映射模型;恢复所述秘密消息。
与现有技术相比,本发明的有益效果如下:
本发明从实际需求和应用的角度出发,根据已有的图像库,基于深度神经网络,设计出了一种基于深度判别器的无载体隐蔽通信方案。为了解决上述现有方案的各种问题,本发明通过构建码表、训练可自动学习的深度模型实现基于图像的隐蔽通信。
针对基于gif属性区间划分映射编码的无载体隐蔽通信方法和基于dct和lda的鲁棒无载体图像隐写算法需要基于人工特征提取并且需要进行大量搜索来构建合适的图像库等缺点,本发明实现了自动化模型构建,同时解决了大量图像数据查找困难的问题。
附图说明
图1基于深度判别器的无载体隐蔽通信方案流程图。
图2码表倒序索引示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术核心作进一步详细的说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明的流程图如图1所示。首先,进行的是协商过程:发送方收集一定数量的图像构成图像库,发送方和接收方需要根据规则构建一套码表,码表包含了每个码字与载密图像的对应规则。码表可以使发送方和接收方就每张图像代表的秘密消息达成共识,防止出现歧义,由发送方根据码表中图像与码字对应关系,训练一个神经网络模型。该模型的训练目标是将给定的输入图像输出为指定的码字,达到训练目标后,发送方将网络的权重参数通过安全方式与接收方进行共享,接收方根据权重参数初始化自己的网络结构,从而得到一个完整的神经网络模型用于解码。至此双方协商过程完成。
双方完成协商之后是隐蔽通信的过程:当有发送秘密消息的需求时,发送方首先将秘密消息转换、切分为等长的二进制码段;发送方根据索引为每个码段找到对应的图像,形成一串包含秘密消息的图像序列;发送方将图像序列发送到接收方,图像传输过程中,会受到攻击方的噪声攻击或隐写分析等信道攻击;接收方收到图像后,利用神经网络模型恢复秘密消息段;接收方将秘密消息段合并解码为可读消息。至此隐蔽通信完成。
步骤一,收集载体图像
发送方将首先收集一定数量的图像构造载体图像库。在本方法中收集的图像数量m应该满足m≥2n,其中n为正整数。n表示每张载体图像需传输的bit数。
步骤二,构建码表
在利用神经网络搜索映射关系之前,应首先向图像分配码字。图像码表是图像与码字之间的映射关系表。图像码表的建立是为了方便神经网络进行有监督的学习。为了充分利用图像库的编码潜力,所以本方法所提出的自动分配算法遵循以下原则:1)每个码字都至少有一个图像对应;2)每一图像只能映射到一个码字。当出现图像数量m大于2n情况时,可以将多出的(m-2n)张图像随机分配到n个码字中。这样我们就可以最高效地挖掘已有图像库的编码潜力。
在分配码字时候,首先发送者应该根据图像的数量定义码字的范围:假设我们有m张图像,每张载体图像需传输的bit数为n,,那么n和m满足如下关系:
例如,如果我们只有m=300个图像,根据公式我们最多可以为这些图像分配长度为n=8的编码(00000000-11111111)。其次,发送方应保证从0到2n-1的每个码字都至少映射到一个图像。本方法所用的码字分配算法为:,首先对图像进行随机排序,然后按顺序向每个图像分配一个对应码字,最后多余的图像从2n个码字中随机选择并与之对应。分配完码字之后我们会得到一个码表。其内容包括码字,以及该码字对应的图像。该码表方便发送方训练模型以及在发送秘密消息时能快速检索到相应的图像。
本方法构造的码表如图2所示,码字长度为8,码表总长度为256,每个码字可以描述为8位的二进制字符串{00000000,…,11111111}。lena图像被分配的码字是“10001000”,那么该图像被放置到码表“10001000”对应的位置。其余所有图像按照相同的步骤填入码表,在保证每个码字都至少有一张对应图像,此时形成一个倒排索引。倒排索引方便发送秘密消息时快速找到秘密消息段对应的图像。例如当发送消息包含码字“10001000”时,可以选择发送一张lena图像。
步骤三,数据预处理与模型训练
由于深度学习需要大量的数据进行学习,因此要准备充分的数据对模型进行训练。但是,根据编码规则,有时只有一个图像被分配给一个码字,因此需要一些数据增强方法来提高模型的学习能力。在实验中,我们采用了如下的图像预处理方法:首先分别从四个角和中心裁剪给定的图像,加上这些图像的翻转版本(使用水平翻转)。这样,一个原始样本图像可以处理成10个样本。
由于大图像会大大增加模型训练的时间,因此本方法采用最近邻线性插值的方法将图像大小调整到合适的尺寸,以加速训练过程。神经网络的损失函数采用了经典的softmax函数,该损失函数定义如公式(2)。
在公式(2)中,针对某张输入神经网络的图像mj,zi表示针对这张图像经过神经网络全连接层输出的大小为[1,2n]矩阵,k表示码表中码字的数量(如n=8的话,k为256),σ(z)i表示该张图像被映射到为码字i的概率。
在完成码字分配任务后,每个图像都有对应的码字。码字类似于图像分类中的标签。然后,将已经指定好码字的所有图像输入神经网络进行训练。输入为图像,输出为预测的码字。将预测码字与分配码字进行对比,并求损失函数以及反向传播,以使得神经网络的输出尽量靠近给定的码字,直到能够将所有给定的m张图像的模型输出全部等于指定码字分为止。其过程类似于训练一个过拟合的图像分类器。最终实现输入每张图像,预测输出与分配的码字相同时,视为训练完成。训练完成后,模型的权重参数被共享给接收方,接收方用得到的参数初始化模型。
步骤四,载密图像序列生成
建立码表与训练模型完成后,现在可以开始载密图像序列构建的过程,在该过程不需要修改图像内容。当发送方有发送秘密消息的需求时,首先将秘密消息转化为二进制码流然后按照一定长度(即每张载体图像需传输的bit数n或者n的倍数)将比特流划分为比特段。得到二进制码段后,可以通过检索图像码表,根据构建的倒排索引找到每个比特段对应的图像。例如某比特段为0100100110001000,可以选取索引结构中“01001001”和“10001000”位置对应的图像来代表秘密信息。依此规则得到一串图像序列。此时秘密消息已经隐藏在图像序列中,发送方只需将图像序列发送给接收方。
步骤五,隐蔽通信与第三方攻击
步骤五,隐蔽通信与第三方攻击
载密图像序列构建完成后,发送方把图像序列发送给接收方。图像序列在信道中传输会遭遇到第三方的攻击和信道噪声的干扰。常见的攻击和噪声干扰包括图像压缩,缩放,裁剪,滤波器攻击,高斯噪声干扰以及隐写分析等。
一个安全的隐蔽通信模型在面对攻击的时候要求具有:1)抗检测性:攻击方只有50%几率可以正确判断图像是否含有秘密消息;2)鲁棒性:接收方收到被干扰后的图像仍然能正确恢复出秘密消息。由于本发明不会修改图像本身,所以在面对基于图像内容的检测方法时可以保证绝对安全。神经网络可以抽取图像高层语义特征,从而使本方法有着较高的鲁棒性。当图像受到信道噪声干扰后,接收方依然可以进行解码率。
步骤六,抽取秘密消息
接收方收到包含秘密消息的图像序列后,需要进行秘密消息的抽取。此时所有秘密消息都存在于载密图像中。神经网络模型是由双方共享,其中包含图像到码字的映射规则。因此接收方也可以使用相同的深度模型进行秘密消息抽取:在本方法中,接收方收到一系列载密图像后利用神经网络将图像翻译成二进制码段。接收方将所有二进制秘密消息段拼接起来后得到一个完整的二进制秘密消息。最后将整个二进制串秘密消息解密为可读的秘密消息,完成秘密消息的提取过程。至此,接收方完成秘密消息的抽取,整个隐蔽通信的流程结束
以上所述实施仅表达了本发明的实施方式,其描述较为具体,但并不能因此理解为对本发明专利范围的限制。应当指出,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应当以所附权利要求为准。
1.一种基于深度判别器的无载体隐蔽通信方法,适用于由发送方与接收方组成的系统,其步骤包括:
1)构建码表,收集若干图像,并根据码表向各图像分配长度为p的码字,构建载体库;
2)通过学习各图像与相应码字的映射关系,构建映射模型,并将映射模型发送至接收方;
3)将秘密消息转化为二进制码,并将所述二进制码按设定长度p分割为若干比特段,其中p=p*t,t为自然数;
4)在载体库中查询各比特段对应的图像,将形成载密图像序列发送至接收方,以使接收方依据所述载密图像序列与映射模型,恢复所述秘密消息。
2.如权利要求1所述的方法,其特征在于,所述码表覆盖p位长度的二进制编码中全0到全1的所有码字。
3.如权利要求1所述的方法,其特征在于,通过以下策略向各图像分配码字:
1)每个码字都至少有一个图像对应;
2)载体库中的每一图像只能映射到一个码字。
4.如权利要求1所述的方法,其特征在于,通过倒排索引方法,构建载体库。
5.如权利要求1所述的方法,其特征在于,将各图像与相应码字输入神经网络之前,对各图像进行预处理;所述预处理包括:
1)获取图像的多种版本;
2)调整图像的大小。
其中,通过以下策略获取图像的多种版本:
a)从四个角裁剪图像;
b)从中心裁剪图像;
c)对图像进行翻转。
6.如权利要求5所述的方法,其特征在于,采用最近邻线性插值方法,调整图像的大小。
7.如权利要求1所述的方法,其特征在于,构建映射模型的方法包括:机器学习、深度学习或强化学习;机器学习的算法包括:决策树算法、随机森林算法、梯度提升决策树算法、朴素贝叶斯算法、逻辑斯坦回归算法、k近邻算法或神经网络。
8.如权利要求7所述的方法,其特征在于,神经网络的损失函数
9.如权利要求1所述的方法,其特征在于,通过以下步骤恢复所述秘密消息:
1)将所述载密图像序列输入映射模型,得到比特段序列;
2)依据比特段序列,恢复所述秘密消息。
10.一种基于深度判别器的无载体隐蔽通信系统,包括:
发送方,用以构建码表,收集若干图像,并根据码表向各图像分配长度为p的码字,构建载体库;通过学习各图像与相应码字的映射关系,构建映射模型,并将映射模型发送至接收方;将秘密消息转化为二进制码,并将所述二进制码按设定长度p分割为若干比特段,其中p=p*t,t为自然数;在载体库中查询各比特段对应的图像,将形成载密图像序列发送至接收方。
接收方,用以接收所述载密图像序列与映射模型;恢复所述秘密消息。
技术总结