可证安全隐写:理论、应用与展望
一、什么是可证安全隐写?
对于经验安全的隐写算法,即使其算法设计得相当周密,隐写分析者(攻击者)在观察了足够数量的载密(含有隐写信息的数据)和载体(不含有隐写信息的原始数据)之后,往往能够发现二者之间的统计差异,从而在一定程度上区分它们。这种区分能力通常被称为攻击者的优势。
而可证安全的隐写算法在于确保隐写后的载体(即含有隐藏信息的数据)在统计上与原始载体(不含有隐藏信息的数据)无法被区分。这种技术追求的是在理论上能够证明,即使对于拥有无限计算资源的攻击者,也无法通过分析数据来检测出隐写的存在。
在传统的隐写实践中,由于自然采集的多媒体数据(如图像、音频等)的分布通常是未知且不可控的,因此很难实现可证安全隐写。然而,随着生成式人工智能(如生成对抗网络GAN、变分自编码器VAE等)的快速发展,情况发生了变化。这些生成模型能够学习并生成遵循特定分布的数据,而这个分布是已知且可控的。利用生成模型的这一特性,可证安全隐写开始从理论走向应用。
具体来说,隐写算法可以利用生成模型来创建隐写数据,这些数据在分布上与模型生成的普通数据无法区分。这样,即使攻击者知道隐写算法的存在,也无法仅通过分析数据来确定哪些数据是隐写的,因为隐写数据和普通数据在统计上是一致的。
二、技术路线/发展脉络
1、经典构造方法——基于拒绝采样
1949年,Shannon指出建立隐蔽通信系统理论的困难性。直到二十世纪九十年代,学界开始借鉴可证安全密码的发展思路提出隐写的安全性理论。1998年,Cachin引入相对熵概念定义了隐写的信息论安全,但就像信息论安全的密码一样,实际应用的成本很高。2002年,Hopper等人提出了计算安全隐写定义,同时给出了两个基于拒绝采样的可证安全隐写构造,其安全性分别归约为伪随机函数族的伪随机性和加密算法的安全性。然而,如算法1所示,拒绝采样需要 “载体分布可精确采样”,生成在统计上与原始载体无法区分的载密数据。
显然若是要嵌入的消息,则采样到的样本就表达了消息,接收方将代入判别函数就能提取消息。利用拒绝采样构造计算安全的隐写算法关键是在拒绝采样里面判决函数函数怎么选取。
(1)基于伪随机函数族的构造方法
这种方法使用伪随机函数族来生成载密数据。伪随机函数族在不知道密钥的情况下应该表现得像真正的随机函数。
通俗理解如下
1)伪随机函数族:这是一种特殊的函数集合,它们生成的输出看起来是随机的,但实际上是根据一个密钥确定的。这种函数在密码学中非常重要,因为它们可以用来加密信息。
2)拒绝采样:这是一种生成载密数据(含有隐藏信息的数据)的方法。它通过不断尝试,直到找到一个符合条件的数据样本。
3)算法步骤:
- 加密消息:先把要隐藏的消息用一个安全的算法加密。
- 拒绝采样:然后根据加密后的消息,从载体中挑选出合适的数据,直到找到满足特定条件的数据样本。
- 生成载密数据:找到的这个样本就是载密数据,它包含了加密后的消息。
- 提取消息:接收方收到载密数据后,可以用相同的密钥和算法还原出原始的消息。
4)安全性体现:
- 这种构造的安全性基于伪随机函数族的不可预测性。
- 如果攻击者无法区分伪随机函数的输出和真正随机数,那么他们也就无法确定哪些数据是被隐藏了信息的(载密数据),哪些是没有隐藏信息的(载体数据)。这是因为伪随机函数(在隐写中用于生成载密数据)如果足够好,它的输出看起来就像自然产生的数据一样。
- 而密钥是用于控制伪随机函数的,只有知道密钥的人才能从伪随机函数生成的数据中提取出隐藏的信息。如果攻击者不知道密钥,他们就无法使用伪随机函数的逆过程来获取隐藏的信息,因此他们也就无法区分哪些数据是载密的,哪些不是。这就保护了隐写术的安全性。
5)那么真正的接受者如何获取秘密信息呢?【密钥、纠错码编码译码、伪随机函数】
(2)基于无偏函数的构造方法
这种方法假设存在一个无偏函数,它对所有输入的输出都是等概率的。
通俗解释
1)无偏函数:这是一种特殊函数,无论输入是什么,它的输出都是完全随机的,没有任何偏差。简单来说,就是这个函数对所有可能的结果都是公平的,每个结果出现的机会都一样。
2)算法步骤:
- 加密消息:首先,用一个安全的加密方法(比如一个密码锁)把要隐藏的消息加密,变成一串看起来随机的数字(密文)。
- 使用无偏函数:然后,用这个无偏函数和加密后的消息来生成载密数据(含有隐藏信息的数据)。这个过程中,无偏函数确保每个可能的输出都是随机且等概率的。
- 隐藏信息:这样生成的载密数据就被用来隐藏原始消息,外人很难发现里面隐藏了信息。
3)安全性的体现:如果这个加密方法足够安全,那么即使有人知道使用了无偏函数,他们也无法从载密数据中提取出隐藏的消息,因为加密后的消息本身就是随机的,而且无偏函数的输出也是随机的。
4)那么真正的接受者如何获取秘密信息呢?【密钥、可逆的无偏函数】
2、基于生成式AI的可证安全隐写构造
当前生成式人工智能兴起,可以生成文本、图像、音视频等各种数据。生成数据一般由机器学到的分布产生,由于分布已知或可控,满足了设计可证安全隐写的基本条件,可证安全隐写得以从理论走向应用。2018年,中国科大俞能海、张卫明老师团队最早提出了基于生成式人工智能实现可证安全隐写的思路,并给出了基于图像生成模型的实例(如图1所示),但是由于当时生成式AI的效果并不理想,缺少有影响的应用,所以生成式可证安全隐写并没有被关注。到2021年,生成式人工智能技术及应用爆发,中科大、清华大学、牛津大学、波士顿大学和约翰霍普金斯大学等提出了一系列生成式可证安全隐写方法。典型的构造包括分布分组、区间可逆采样、样本分组、分布耦合和分布副本(如图2-6所示)。
(1)基于图像生成模型的实例
这种方法通过将加密消息映射到与生成模型统计一致的高斯分布向量,并利用模型逆过程生成难以区分的载密数据,实现高度隐蔽的可证安全隐写。
WaveGlow生成模型扮演声码器的角色,是一种可逆生成模型,它在波形层面建模,在声学特征作为辅助条件下实现高斯变量与语音信号的可逆映射:
(2)基于分布分组
- 原理:将高斯分布按照累计分布均匀划分成多个子区域,每个子区域对应一个消息比特。根据消息比特,在相应的子区域内进行随机采样,然后将采样得到的高斯变量输入到生成模型中,生成载密音频。
- 特点:利用生成模型的可逆性,通过控制采样区域来嵌入信息。
- 注:若要扩大信息容量即单个样本点嵌入n比特信息,则将高斯分布按照累计分布均匀划分成个子区域,根据n比特信息选图选择对应子区域采样即可。
(3)基于区间可逆采样
利用生成模型的逆过程,将秘密信息嵌入到特定的数据区间中。这种方法的优点是可以从载密数据中准确地恢复出原始信息,即使在数据经过一定处理后。
- 原理:在生成模型输出当前待生成词的概率分布后,将加密信息转化的随机数掉落在某个概率区间内,完成随机采样过程。落入同一区间内的随机数会采样到相同的词,这些随机数拥有相同的前缀。
- 特点:解决了通道最小熵要求的问题,通过区间可逆性实现隐写。
- 存在问题:基于区间可逆采样的方法未能充分利用生成模型提供分布的信息熵。
基于随机采样过程的区间可逆性,提出了一种类算术编码的可证安全隐写方法。这个方法的简化解释如下:
生成模型和概率分布:使用一个生成模型来生成文本,这个模型会为每个可能生成的词(如“was”)输出一个概率分布。
加密信息的嵌入:将加密后的信息转换成随机数,这些随机数根据概率分布被用来选择具体的词。例如,如果随机数落在“was”这个词的概率区间内,就选择“was”。
区间可逆性:确保同一区间内的随机数总是选择相同的词,这样可以通过词的选择来隐写信息。例如,如果“was”的概率区间内的随机数都以“01”为前缀,那么选择“was”就隐含了这2位信息。
迭代嵌入:在生成文本的过程中,不断地将加密信息嵌入到生成的词中。如果还有信息未嵌入,就在下一轮生成中继续嵌入,直到所有信息都嵌入完毕。
接收方的提取:接收方收到载有隐写信息的文本后,通过重现生成过程和分析词的概率区间,可以提取出加密信息。
解决熵问题:通过动态调整每个生成词携带的信息量,适应生成过程中熵的变化,确保即使在熵较低的情况下也能有效地嵌入信息。
防止随机数重用:每次生成词时都重新加密待嵌入的信息,避免随机数重用,增加隐写的安全性。
这种方法通过精细控制信息嵌入的过程,确保了隐写信息的隐蔽性和安全性,使得攻击者难以检测到隐写的存在。
(4)基于样本分组(不太理解)
- 原理:自适应地将生成模型输出的显式概率分布动态地划分成概率和相等的组,以分组序号表示秘密消息。发送方和接收方需要共享相同的隐写参数。
- 特点:通过分组和递归思想,实现秘密消息的嵌入和提取。
- 存在问题:基于样本空间分组的方法需要对离散概率分布分布进行均匀划分,这个条件在具体应用中难以严格实现。
清华大学团队提出的这种方法具体是这样工作的:
确定分组数目:首先,使用一个生成模型来预测可能出现的数据(比如文本中的下一个词)及其概率。然后,基于这些概率的分布特性,决定将数据分成多少组。这就像把一堆不同颜色的球分成几个桶,每个桶里的球颜色都差不多。
分组和填充:接下来,使用一种查找算法,根据概率的大小,找到最接近的词来填充每个分组。这就像是根据球的大小,将它们放入相应的桶中。
选择和归一化:利用秘密消息(比如一个随机生成的数字序列),选择一个特定的分组。然后,对这个分组内的数据进行处理,使得它们在统计上看起来是均匀分布的。这就像是在选定的桶中,将球重新排列,使得它们看起来没有规律。
采样和嵌入:最后,使用一个普通的采样器,从选定的分组中随机选择一个词。这个被选中的词就包含了秘密信息,就像是在桶中随机挑选一个球,这个球就代表了隐藏的信息。
提高嵌入容量和效率:为了在有限的数据中隐藏更多的信息,或者加快信息隐藏的速度,可能会采用一些优化技术,比如递归嵌入和剪枝策略。这就像是找到更巧妙的方法来在桶中放入更多的球,或者更快地挑选出代表秘密信息的球。
这种方法的关键在于,它确保了隐藏信息的过程在统计上与自然生成的数据无法区分,因此很难被检测到。
(5)基于分布耦合
将秘密信息的分布与生成模型的输出分布进行耦合,通过控制信息的嵌入过程来确保载密数据与原始数据在统计上不可区分。
- 原理:将隐写过程视为由消息分布和信道条件分布建立的一种耦合,通过均匀分布的消息通过耦合控制对信道条件分布的采样,从而将消息映射成服从载体分布的样本。
- 特点:利用最小熵耦合策略,构建出在概率的平均意义下最优的隐写方案
- 存在问题:基于最小熵耦合的隐写构造存在密文消息不能正确提取信息的情况,并且嵌入速度慢。
基本概念
消息分布和信道条件分布:消息分布指的是隐写时要隐藏的信息的分布。信道条件分布指的是用于隐藏信息的载体数据的分布。
耦合(Coupling):耦合是将两个概率分布(消息分布和信道条件分布)结合起来,形成一个联合分布的过程。这种联合分布用于控制从信道条件分布中采样的过程。
耦合的构建
分布耦合:分布耦合是一种将信息隐藏技术与数据生成过程相结合的方法。它通过将信息嵌入到数据生成模型的输出中,使得隐藏信息后的载密数据在统计特性上与原始数据保持一致。
最小熵耦合(MEC, Minimum Entropy Coupling):最小熵耦合是一种特殊的耦合方式,它通过最小化联合分布的信息熵来构建最优的隐写方案。信息熵是衡量随机性的一个指标,最小化熵意味着使得耦合后的分布尽可能地接近原始分布。
迭代最小熵耦合(iMEC):迭代最小熵耦合是一种实现最小熵耦合的方法,它通过迭代过程不断优化耦合,直到达到信息熵的最小值。这个过程包括:
- 将采样结果反馈,更新消息后验分布。
- 根据消息控制从信道条件分布中采样。
- 耦合当前的消息后验分布与信道条件分布。
隐写过程
消息嵌入:在消息嵌入过程中,使用耦合来控制从信道条件分布中采样,从而将消息映射成服从载体分布的样本。
消息提取:接收方通过逆向操作,从载密数据中提取出隐藏的信息。这通常涉及到对耦合过程的逆过程。
通过这种方法,可以实现在不损害数据质量的前提下,将秘密信息安全地隐藏在载体数据中,同时确保信息的隐蔽性和安全性。
(6)基于分布副本
为给定的概率分布创建多个副本,然后使用这些副本的索引值来表示秘密信息。这种方法可以充分利用生成模型提供的概率分布信息,提高信息隐藏的效率和安全性。
- 原理:利用生成模型生成多个副本或变体的数据,通过在这些副本中嵌入不同的秘密信息或进行微小的修改,使得每个副本都看似独立且自然,但实则都含有隐写信息。
- 特点:通过增加数据的多样性来增强隐写的隐蔽性。
这种方法通过创建多个分布副本来实现,每个副本都是原始概率分布的一个变体。下面将解释这个过程:
原始概率分布:假设有一个概率分布,它定义了生成数据(如文本、图像或语音)的各种可能方式。
创建分布副本:为了隐藏信息,我们创建多个分布副本。每个副本都是原始分布的一个“复制”,但通过某种方式(如循环移位)进行了修改,使得每个副本在统计特性上与原始分布相同,但具体实现细节不同。
信息嵌入:将秘密信息(例如,二进制消息“0”或“1”)映射到不同的分布副本上。例如,如果信息是“0”,则可能选择“copy 0”,如果信息是“1”,则选择“copy 1”。
随机采样:从选定的分布副本中进行随机采样以生成载密数据。这个过程模拟了自然数据的生成过程,但嵌入了秘密信息。
载密数据的生成:载密数据生成后,它包含了隐藏的信息,但在感官上与未隐写的数据无法区分。
信息提取:接收方知道如何从载密数据中提取信息,因为他们知道分布副本的构造和秘密信息对应的副本。
循环移位示例:图中的“rotate left by 0.5”和“copy 0”、“copy 1”可能表示了循环移位的过程,其中分布的区间被向左移动了0.5个单位,创建了两个不同的副本。
索引值:图中的“”和“”可能表示了在特定时间步骤中,根据分布副本的索引值选择的采样结果。
这种方法的关键在于,它允许在不显著改变数据外观的情况下嵌入信息,同时确保了只有知道正确分布副本构造的接收方才能提取出隐藏的信息。这种方法提供了一种在理论上可证明安全的隐写手段,使得即使在攻击者拥有强大计算资源的情况下,也无法检测到隐写信息的存在。
对基于生成模型的可证隐写方法理解的不是很透彻,详细还得细读论文内容。后续学习过程中,有新的理解会继续完善、改正。