软件学报  2018, Vol. 29 Issue (4): 957-972   PDF    
基于同态加密系统的图像鲁棒可逆水印算法
项世军1,2, 杨乐1,2     
1. 暨南大学 信息科学技术学院 电子工程系, 广东 广州 510632;
2. 信息安全国家重点实验室(中国科学院 信息工程研究所), 北京 100093
摘要: 同态加密技术可用于保护数据隐私并允许对密文数据进行算术操作,在云计算安全上有着很好的应用前景.针对云计算中的隐私保护和数据安全等问题,提出了一种基于同态加密系统的图像鲁棒可逆水印算法,主要思想为:(1)对原始图像进行分块和利用Paillier加密系统进行加密得到密文图像;(2)在加密域中,通过模乘法逆元MMI(modular multiple inverse)方法和查询相应的密文映射表得到每个密文分块的统计量,然后利用同态特性对统计量进行直方图平移来嵌入水印信息;(3)在接收方,可从含水印的密文图像的统计量直方图中完整地提取水印,并可通过对统计量进行与嵌入过程相反的直方图平移操作来恢复原始密文图像;(4)含水印的密文图像在直接解密后可从其统计量直方图中完整地提取水印信息和恢复原始图像;(5)解密后的含水印图像在受到一定程度的攻击后(如JPEG/JPEG 2000压缩和叠加高斯噪声等),水印仍能正确提取.该算法实现了在不对原始图像进行预处理的情况下可直接在加密后的密文图像中嵌入水印,并可分别在加密域或明文域提取水印和恢复原始密文图像或原始明文图像,而且嵌入的水印对常见的图像处理操作具有一定的鲁棒性.实验仿真结果验证了该算法的有效性.
关键词: 同态加密     鲁棒可逆水印     隐私保护     数据安全     云计算    
Robust and Reversible Image Watermarking Algorithm in Homomorphic Encrypted Domain
XIANG Shi-Jun1,2, YANG Le1,2     
1. Department of Electronic Engineering, School of Information Science and Technology, Ji'nan University, Guangzhou 510632, China;
2. State Key Laboratory of Information Security(Institute of Information Engineering, The Chinese Academy of Sciences), Beijing 100093, China
Foundation item: National Natural Science Foundation of China (61772234, 61272414); Open Research Fund from the State Key Laboratory of Information Security (2016-MS-07)
Abstract: Homomorphic encryption technique can be used for protection of data privacy, and some algebraic operations can be implemented on the ciphertext data. This is very useful in the field of cloud computing security, such as analyzing and processing the encrypted data in cloud without exposing the content of data. Addressing privacy protection and data security problems in cloud computing, this paper proposes a robust and reversible image watermarking algorithm in homomorphic encrypted domain. The algorithm includes five aspects:(1) The original image is divided into a number of non-overlapping blocks and each pixel in a block is encrypted with Paillier cryptosystem to obtain the encrypted image; (2) The statistical values of the encrypted blocks can be retrieved in encrypted domain by employing modular multiplicative inverse (MMI) method and looking for a mapping table. After that, watermark information can be reversibly embedded into encrypted image by shifting the histogram of the statistical values with the homomorphic property of Paillier cryptosystem; (3) On the receiver side, the marked histogram of the watermarked and encrypted image can be obtained for extraction of the watermark from the marked histogram. The encrypted image can be restored by inverse operations of histogram shifting in the embedding phase; (4) The marked histogram can be obtained from the directly decrypted image. This is followed by the watermark extraction and restoration of original image; (5) The watermark can still be extracted correctly under some attacks (such as JPEG/JPEG2000 compression and additive Gaussian noise) to some extent on the watermarked and decrypted image. The proposed method achieves embedding information bits directly into the encrypted image without preprocessing operations on the original image, and can extract the watermark and restore the encrypted image in encrypted domain or the original image in plaintext domain after decryption. Besides, the watermark is robust to those common image processing operations. The experimental results have shown the validity of the proposed scheme.
Key words: homomorphic encryption     robust and reversible watermarking     privacy protection     data security     cloud computing    

可逆数字水印技术通过利用多媒体信息中存在的冗余, 将水印信息(如载体特征信息、版权信息等)嵌入到数字多媒体载体当中, 并可在接收方完整地提取水印且无损地恢复原始载体[1].该技术可用于媒体的内容标识、完整性认证和版权保护等功能, 已广泛应用于对保密性、安全性以及保真度要求较高的领域, 如军事及医学图像、法律文书图片等[2].基于图像的可逆水印算法主要可以分为以下四大类:无损压缩[3]、差值扩展[4]、直方图平移[5]以及预测误差扩展[6].可逆数字水印技术一般不考虑水印的鲁棒性, 现有的大多数可逆水印算法在受到噪声干扰或经过处理后无法正确地提取嵌入的水印.实际中, 含水印的数字多媒体在网络等信道中传输时, 不可避免地会遭到各种处理或干扰, 所以, 在许多应用场景中希望嵌入的水印具有一定的鲁棒性, 在含水印的载体未受到信号处理或恶意攻击时, 在接收方能够正确地提取水印和无损地恢复原始载体; 而在含水印的载体经过一些信号处理操作时, 在接收端仍然能够正确地提取水印.近几年来, 鲁棒可逆水印技术逐渐成为了信息隐藏领域的一个重要的研究方向, 已取得一些有意义的成果[7-13].

随着互联网技术和云计算技术的快速发展, 用户可通过互联网将资料和数据上传到远程服务器或云端进行存储, 当需要时再下载使用.云存储节省了购买储存设备的开支并提高了获取资源的便利性.另外, 云服务中心的强大计算能力使得用户可以享受到第三方提供的数据处理等服务.然而, 云计算技术在方便人们生活的同时, 也引发了数据安全和隐私保护的问题[14].数据加密作为保护多媒体内容隐私的一种方式, 可以在上传到云端之前先对数据进行加密, 有效地降低内容隐私泄露的风险.为了对云端中海量的加密数据进行有效管理和安全保护, 云端管理者希望将一些用户资料相关的信息嵌入到密文数据中, 并通过提取嵌入的信息来实现密文检索和数据保护.因此, 加密域可逆水印技术成为了近年来大数据云计算背景下信息隐藏领域的研究热点.加密域可逆水印技术结合加密技术和可逆水印技术的优点, 在不暴露明文内容的情况下直接将水印嵌入到密文载体中, 并在解密及信息提取后能无损地恢复原始载体.目前的加密域图像可逆水印算法主要分为两大类:基于对称加密系统的可逆水印算法[15, 16]和基于非对称加密系统的可逆水印算法[17-20].目前, 加密域中的可逆水印算法绝大多数都不具有鲁棒性, 而在一些云计算的应用场景中, 信息隐藏者希望嵌入的水印信息不仅具有可逆性, 而且具有一定的鲁棒性, 以便在解密后图像受到处理或攻击时仍能认证媒体的版权.

与对称加密系统相比, 同态加密系统为非对称加密系统, 安全性更高, 且允许对密文进行算术运算, 更适合用于云计算背景下的第三方数据处理.本文结合同态加密系统和鲁棒可逆水印技术, 提出了一种基于同态加密系统的图像鲁棒可逆水印算法.该算法首先对原始图像进行8×8分块, 并利用Paillier加密系统[21]进行加密得到密文图像.在加密域中, 通过模乘法逆元MMI(modular multiple inverse)方法和查询密文映射表来得到每个密文分块的统计量, 然后利用同态特性对统计量进行直方图平移嵌入水印.在接收方可分别在含水印的密文图像或解密图像中得到统计量直方图并提取水印, 同时, 通过对统计量进行与嵌入过程相反的直方图平移来恢复密文图像或原始图像.另外, 解密后含水印的图像在受到一定程度的图像处理操作(如JPEG/JPEG 2000压缩和叠加高斯噪声等)后仍能正确地提取水印.该算法实现了在不对原始图像进行预处理的情况下可直接在加密后的密文图像中嵌入水印, 并可分别从加密域或明文域提取水印和恢复密文图像或原始图像, 而且嵌入的水印对常见的图像处理操作具有一定的鲁棒性.本文算法嵌入失真较小, 鲁棒性良好, 具有足够的嵌入容量来嵌入加密图像相关标签信息、版权信息或图像特征信息等, 适用于云计算中加密图像的内容标识、完整性认证及版权保护.

1 Paillier加密系统

Paillier加密系统[21]是一种加性同态公钥加密系统, 这种加密技术已广泛应用于加密信号处理或第三方数据处理领域.其同态特性表现为:在加密后可直接对密文进行相应的算术运算, 其运算结果与明文域中对应的运算结果一致.其概率特性表现为:对于相同的明文, 可通过不同的加密过程得到不同的密文, 从而保证了密文的语义安全.其加密和解密机制如下.

密钥生成:随机选择两个较大的质数pq, 计算它们的乘积N以及p-1、q-1的最小公倍数λ.然后再随机选取一个整数$ g \in Z_{{N^2}}^* $, 且g满足:

$ gcd\left( {L\left( {{g^\lambda }\bmod {N^2}} \right), N} \right) = 1 $ (1)

其中, 函数L(u)=(u–1)/N, 函数gcd(·)用于计算两数的最大公约数, ZN2为小于N2的整数的集合, 而$ Z_{{N^2}}^* $ZN3中与N2互质的整数的集合.(N, g)和λ分别为公钥和私钥.

加密过程:随机选取一个整数$ r \in Z_N^*, $对于任意一个明文mZN, 利用公钥(N, g)加密后得到对应密文c

$ c = E[m, r] = {g^m} \cdot {r^N}\bmod {N^2} $ (2)

根据Paillier加密系统的性质, 密文$ c \in Z_{{N^2}}^* $.利用相同的公钥进行加密时, 由于r的选取是随机的, 对于同一个明文m, 可得到不同的密文c.但是解密后可以还原出相同的明文m, 从而保证了密文的语义安全.

解密过程:利用私钥λ, 对密文c解密后得到对应的明文m:

$ m = D\left[c \right] = \frac{{L\left( {{c^\lambda }\bmod {N^2}} \right)}}{{L\left( {{g^\lambda }\bmod {N^2}} \right)}}\bmod N $ (3)

另外, Paillier加密系统具有两个重要的性质.

定理1.当g满足公式(1)时, 则c=E[m, r]是双射的, 即$ \forall \left( {m, r} \right)|m \in {Z_N}, r \in Z_N^* $都有唯一的$ c = E\left[{m, r} \right] $与之一一对应.也就是说, 对于两个明文$ {m_1}, {m_2} \in ZN $$ \forall {r_1}, {r_2} \in Z_N^* $, 根据公式(2)分别得到对应的密文$ {c_1}, {c_2} \in Z_{{N^2}}^* $, 则当且仅当m1=m2r1=r2时, 等式c1=c2成立.

本文将利用该定理实现查询密文映射表得到密文分块统计量.

同态乘法性质:对于两个明文$ {m_1}, {m_2} \in ZN $$ \forall {r_1}, {r_2} \in Z_N^* $, 对应密文$ {c_1} = E[{m_1}, {r_1}], {c_2} = E[{m_2}, {r_2}] $满足:

$ {c_1} \cdot {c_2} = E[{m_1}, {r_1}] \cdot E[{m_2}, {r_2}] = {g^{{m_1} + {m_2}}} \cdot {\left( {{r_1} \cdot {r_2}} \right)^N}\bmod {N^2} $ (4)

解密后得到:

$ D{\rm{[}}{c_1} \cdot {c_2}{\rm{]}} = D\left[{E\left[{{m_1}, {r_1}} \right] \cdot E\left[{{m_2}, {r_2}} \right]\bmod {N^2}} \right] = {m_1} + {m_2}\bmod N $ (5)

本文将利用该性质对密文分块统计量进行直方图平移, 实现在加密域中嵌入水印信息.

2 同态加密域图像鲁棒可逆水印算法

本文提出的基于同态加密系统的图像鲁棒可逆水印算法框架如下文图 1所示.首先, 数据所有者对原始图像进行8x8分块, 并利用公钥(N, g)、密钥Ks和Paillier加密系统进行加密得到密文图像.信息隐藏者在加密域中利用Ks模乘法逆元MMI方法和查询相应密文映射表得到每个密文分块的统计量, 然后利用嵌入密钥(T, G)对统计量进行直方图平移嵌入水印.在接收方利用与嵌入过程相同的方法, 可在加密域中得到含水印的加密图像的统计量直方图, 然后利用(T, G)提取水印并通过与嵌入过程相反的直方图平移恢复密文图像.在接收方利用私钥l可对含水印的加密图像进行解密并得到统计量直方图, 然后利用(T, G)可从未受到攻击或图像处理的图像中提取水印和恢复原始图像, 或者从受到一定程度攻击的图像中提取水印.

Fig. 1 Sketch of the proposed robust and reversible image watermarking algorithm in encrypted image based on homomorphic cryptosystem 图 1 基于同态加密系统的图像鲁棒可逆水印算法框架

2.1 图像分块加密

数据所有者首先把原始图像I分为若干个互不重叠的大小为8×8的明文分块, 记第k个明文分块为P(k).然后按照第1节Paillier加密系统中描述的加密过程, 随机选取一个整数$ {r_1}(k) \in Z_N^* $, 对P(k)中的每个明文像素值P(k)(i, j)利用公钥(N, g)和r1(k)进行加密得到密文C(k)(i, j):

$ {C^{(k)}}(i, j) = E[{P^{(k)}}(i, j), {r_1}(k)] = {g^{{P^{(k)}}(i, j)}} \cdot {r_1}{(k)^N}\bmod {N^2} $ (6)

其中, $ i \in [1, 8], j \in [1, 8] $, 记P(k)加密后的密文分块为C(k).为了提高下文提出的密文分块统计量的安全性, 数据所有者根据密钥Ks随机选取另外8×8个整数$ {r_{(i, j)}}(k) \in Z_N^* $对0进行同态加密, 记加密过程为$ E[0, {r_{(i, j)}}(k)] $, 并对C(k)中的密文$ {C^{(k)}}(i, j) $进行同态乘法:

$ {C'^{(k)}}(i, j) = {C^{(k)}}(i, j) \cdot E[0, {r_{(i, j)}}(k)] = {g^{{P^{(k)}}(i, j)}} \cdot {({r_1}(k) \cdot {r_{(i, j)}}(k))^N}\bmod {N^2} $ (7)

记改变后的密文为$ {C'^{(k)}}(i, j) $, 密文分块为$ {C'^{(k)}} $, 记$ D[{C'^{(k)}}(i, j)] $$ {C'^{(k)}}(i, j) $解密后的结果, 根据式(4)和式(5), $ D[{C'^{(k)}}(i, j)] $满足:

$ D[{C'^{(k)}}(i, j)] = {P^{(k)}}(i, j)\bmod N $ (8)

因此, $ {C'^{(k)}} $中的密文$ {C'^{(k)}}(i, j) $仍然是明文像素值$ {P^{(k)}}(i, j) $的一种加密结果, $ {C'^{(k)}}(i, j) $分别由不同的$ {r_1}(k) \cdot {r_{(i, j)}}(k) $加密而成.在没有密钥Ks的情况下, 将不能得到下文提出的密文分块统计量.记加密后的图像为E[I].

2.2 信息嵌入 2.2.1 模乘法逆元

Zheng[22]提出了模乘法逆元MMI方法.对于两个互质的整数yz, 存在整数θ满足:

$ \theta \cdot y = 1\bmod z $ (9)

θy的模乘法逆元, θ可根据扩展欧几里德算法[23]求得.利用MMI方法可以实现模运算中的除法.设另一个整数x, v是对xy的乘积进行模z运算的结果:

$ v = x \cdot y\bmod z $ (10)

y已知时, 利用MMI方法可从v中求出x:

$ v \cdot \theta = x \cdot y \cdot \theta = x\bmod z $ (11)

信息隐藏者接收到加密图像E[I]后, 首先把E[I]分为若干个互不重叠的大小为8×8的密文分块, 则第k个密文分块为$ {C'^{(k)}} $.然后利用密钥Ks和MMI方法将$ {C'^{(k)}} $中的密文$ {C'^{(k)}}(i, j) $恢复为$ {C^{(k)}}(i, j) $.具体方法如下所述:由第1节可知密文$ c \in Z_{{N^2}}^* $, 即$ E[0, {r_{(i, j)}}(k)], {C^{(k)}}(i, j) $都与N2互质, 则可根据扩展欧几里德算法求得$ E[0, {r_{(i, j)}}(k)] $的模乘法逆元$ {\theta _{Er}}(k), {\theta _{Er}}(k) $满足:

$ {\theta _{Er}}(k) \cdot E[0, {r_{(i, j)}}(k)] = 1\bmod {N^2} $ (12)

由于$ {C'^{(k)}}(i, j) $$ {C^{(k)}}(i, j) $$ E[0, {r_{(i, j)}}(k)] $的乘积, 可通过$ {C'^{(k)}}(i, j) $$ {\theta _{Er}}(k) $求得$ {C^{(k)}}(i, j) $:

$ {C'^{(k)}}(i, j) \cdot {\theta _{Er}}(k) = {C^{(k)}}(i, j) \cdot E[0, {r_{(i, j)}}(k)] \cdot {\theta _{Er}}(k) = {C^{(k)}}(i, j)\bmod {N^2} $ (13)

其中, $ i \in [1, 8], j \in [1, 8] $.密文恢复为$ {C^{(k)}}(i, j) $后得到原密文分块C(k).

2.2.2 密文分块统计量

Zeng[11]提出了一种图像分块的统计量, 首先把图像分为若干个互不重叠的大小为m×n的明文分块, 然后定义一个大小为m×n的矩阵M:

$ M(i, j) = \left\{ \begin{array}{l} 1, {\rm{ }}\bmod {\rm{ }}(i, 2) = \bmod {\rm{ }}(j, 2)\\ - 1, {\rm{ }}\bmod {\rm{ }}(i, 2) \ne \bmod {\rm{ }}(j, 2) \end{array} \right. $ (14)

其中, $ i \in [1, m], j \in [1, n], \bmod {\rm{ }}(x, 2) $是模2运算的函数.例如, 大小为2×2的矩阵M图 2所示.

Fig. 2 Block M sized 2×2 图 2 2×2矩阵M示意图

d(k)为第k个明文分块P(k)的统计量, P(k)(i, j)为P(k)中点(i, j)位置上的明文值, 则d(k)

$ {d^{(k)}} = \sum\limits_{i = 1}^m {\sum\limits_{j = 1}^n {({P^{(k)}}(i, j) \times M(i, j))} } $ (15)

在加密域中, 信息隐藏者在不具有私钥λ的情况下不能将密文解密得到相应的明文, 无法直接进行明文值的运算得到统计量d(k).因此, 本文利用MMI方法和查询相应密文映射表得到密文分块统计量, 其值与对应的明文分块统计量相同.记密文分块统计量为d, d(k)是第k个密文分块C(k)的统计量.首先, 根据扩展欧几里德算法求出密文分块C(k)中密文C(k)(i, j)的模乘法逆元$ {\theta _{{C^{(k)}}(i, j)}}, {\theta _{{C^{(k)}}(i, j)}} $满足:

$ {\theta _{{C^{(k)}}(i, j)}} \cdot {C^{(k)}}(i, j) = 1\bmod {N^2} $ (16)

之后定义大小为8×8的矩阵M1M2, 第k个矩阵$ {M_1}^{(k)} $$ {M_2}^{(k)} $满足:

$ {M_1}^{(k)}(i, j) = \left\{ \begin{array}{l} {C^{(k)}}(i, j), {\rm{ if }}\bmod {\rm{ }}(i, 2) = \bmod {\rm{ }}(j, 2)\\ {\theta _{{C^{(k)}}(i, j)}}, \;\;\;{\rm{ if }}\bmod {\rm{ }}(i, 2) \ne \bmod {\rm{ }}(j, 2) \end{array} \right. $ (17)
$ {M_2}^{(k)}(i, j) = \left\{ \begin{array}{l} {\theta _{{C^{(k)}}(i, j)}}, \;\;{\rm{ if }}\bmod {\rm{ }}(i, 2) = \bmod {\rm{ }}(j, 2)\\ {C^{(k)}}(i, j), {\rm{ if }}\bmod {\rm{ }}(i, 2) \ne \bmod {\rm{ }}(j, 2) \end{array} \right. $ (18)

其中, $ i \in [1, 8], j \in [1, 8] $.利用$ {M_1}^{(k)} $$ {M_2}^{(k)} $可以计算出C(k)的密文形式的统计量$ {c_{d1}}(k) $$ {c_{d2}}(k) $:

$ \left\{ \begin{array}{l} {c_{d1}}\left( k \right) = \prod\limits_{i = 1}^m {\prod\limits_{j = 1}^n {{M_1}^{(k)}(i, j)\bmod {N^2}} } \\ {c_{d2}}\left( k \right) = \prod\limits_{i = 1}^m {\prod\limits_{j = 1}^n {{M_2}^{(k)}(i, j)\bmod {N^2}} } \end{array} \right. $ (19)

然后通过密文形式的统计量cd1(k)和cd2(k)便可在密文映射表中查询出对应的统计量d(k).下面是相应的公式推导和证明.为了方便理解, 以分块大小为2×2的密文分块加以举例证明.分块大小为2×2的第k个密文分块C(k)图 3所示.

Fig. 3 Cipher block C(k) sized 2×2 图 3 2×2密文分块C(k)示意图

其中, $ i \in [1, 2], j \in [1, 2] $, c1(k), c2(k), c3(k), c4(k)分别是密文分块C(k)在点(i, j)位置上的密文C(k)(i, j).设c1(k), c2(k), c3(k), c4(k)分别是由明文P1(k), P2(k), P3(k), P4(k)加密而成, 并且对应的模乘法逆元为θ1(k), θ2(k), θ3(k), θ4(k), 它们满足:

$ \left\{ \begin{array}{l} {\theta _1}(k) \cdot {c_1}(k) = {\theta _1}(k) \cdot {g^{{P_1}(k)}} \cdot {r_1}{(k)^N} = 1\bmod {N^2}\\ {\theta _2}(k) \cdot {c_2}(k) = {\theta _2}(k) \cdot {g^{{P_2}(k)}} \cdot {r_1}{(k)^N} = 1\bmod {N^2}\\ {\theta _3}(k) \cdot {c_3}(k) = {\theta _3}(k) \cdot {g^{{P_3}(k)}} \cdot {r_1}{(k)^N} = 1\bmod {N^2}\\ {\theta _4}(k) \cdot {c_4}(k) = {\theta _4}(k) \cdot {g^{{P_4}(k)}} \cdot {r_1}{(k)^N} = 1\bmod {N^2} \end{array} \right. $ (20)

则密文分块C(k)的密文形式的统计量cd1(k)和cd2(k)为

$ \left\{ \begin{array}{l} {c_{d1}}(k) = \prod\limits_{i = 1}^2 {\prod\limits_{j = 1}^2 {{M_1}(i, j)} = {c_1}(k)} \cdot {\theta _2}(k) \cdot {\theta _3}(k) \cdot {c_4}(k) = {g^{{P_1}(k) + {P_4}(k)}} \cdot {r_1}{(k)^{2N}} \cdot {\theta _2}(k) \cdot {\theta _3}(k)\bmod {N^2}\\ {c_{d2}}(k) = \prod\limits_{i = 1}^2 {\prod\limits_{j = 1}^2 {{M_2}(i, j)} = {\theta _1}(k) \cdot {c_2}} (k) \cdot {c_3}(k) \cdot {\theta _4}(k) = {g^{{P_2}(k) + {P_3}(k)}} \cdot {r_1}{(k)^{2N}} \cdot {\theta _1}(k) \cdot {\theta _4}(k)\bmod {N^2} \end{array} \right. $ (21)

根据Carmichael理论[21], 对于$ \forall a \in Z_{{N^2}}^* $有:

$ {a^{N\lambda }} = 1\bmod {N^2} $ (22)

因此, 按照第1节Paillier加密系统的描述, 对于$ g \in Z_{{N^2}}^* $$ {r_1}(k) \in Z_N^* $满足:

$ \left\{ \begin{array}{l} {g^{N\lambda }} = 1\bmod {N^2}\\ {r_1}{(k)^{N\lambda }} = 1\bmod {N^2} \end{array} \right. $ (23)

并且,

$ {g^{N\lambda }} \cdot {r_1}{(k)^{N\lambda }} = 1\bmod {N^2} $ (24)

根据式(20)和式(24), 可以推导出模乘法逆元的表达式:

$ \left\{ \begin{array}{l} {\theta _1}(k) = {g^{N\lambda - {P_1}(k)}} \cdot {r_1}{(k)^{N(\lambda - 1)}}\bmod {N^2}\\ {\theta _2}(k) = {g^{N\lambda - {P_2}(k)}} \cdot {r_1}{(k)^{N(\lambda - 1)}}\bmod {N^2}\\ {\theta _3}(k) = {g^{N\lambda - {P_3}(k)}} \cdot {r_1}{(k)^{N(\lambda - 1)}}\bmod {N^2}\\ {\theta _4}(k) = {g^{N\lambda - {P_4}(k)}} \cdot {r_1}{(k)^{N(\lambda - 1)}}\bmod {N^2} \end{array} \right. $ (25)

根据式(23)和式(25)中模乘法逆元的表达式, 并考虑到统计量d(k)可能的取值, 公式(21)可以化简为

$ {d^{(k)}} \ge 0 $时,

$ \left\{ \begin{array}{l} {c_{d1}}(k) = {g^{{P_1} - {P_2} + {P_4} - {P_3}}}\bmod {N^2}\\ {c_{d2}}(k) = {g^{2N\lambda + {P_2} - {P_1} + {P_3} - {P_4}}}\bmod {N^2} \end{array} \right. $ (26)

否则,

$ \left\{ \begin{array}{l} {c_{d1}}(k) = {g^{2N\lambda + {P_2} - {P_1} + {P_3} - {P_4}}}\bmod {N^2}\\ {c_{d2}}(k) = {g^{{P_1} - {P_2} + {P_4} - {P_3}}}\bmod {N^2} \end{array} \right. $ (27)

由于灰度图像中两个像素值差值的绝对值的取值范围为0~255, 则对于每个2×2分块的统计量d(k)的绝对值的取值范围为0~$255 \times \frac{{2 \times 2}}{2} $由于图像像素之间存在相关性, d(k)通常是一个较小的值(在本文实验中, 对于8×8分块d(k)的值均小于500).另外, 在下文中对统计量进行直方图平移嵌入水印时, 会使d(k)产生大小为T+G的改变, 记统计量可能取值的绝对值为dp, 则$ {d_p} \in \left[{0, 255 \times \frac{{2 \times 2}}{2} + T + G} \right] $.利用公钥(N, g), 当$ {d_p} \in {Z_N} $时可以加密得到:

$ {c_{{d_p}}} = {g^{{d_p}}}\bmod {N^2}, {d_p} = 0, 1, ..., 255 \times \frac{{2 \times 2}}{2} + T + G $ (28)

创建一个与dp一一对应的密文映射表cdp图 4所示.

Fig. 4 Mapping table cdp of dp 图 4 dp的密文映射表cdp

其中, 密文映射表cdp就是对所有统计量可能取值的绝对值dp进行加密后得到的所有密文值的集合.当$ {c_{d1}}(k) $与密文映射表cdp中的值$ {c_{{d_p}}}[x] $匹配时, 则表明$ {d^{(k)}} \ge 0 $, 得到$ {d^{(k)}} = {d_p}[x] $.当$ {c_{d2}}(k) $与密文映射表中的值cdp匹配时, 则表明$ {d^{(k)}} < 0 $, 得到$ {d^{(k)}} = - {d_p}[x] $.其中, $ x \in \left[{0, 255 \times \frac{{2 \times 2}}{2} + T + G} \right] $, 代表在密文映射表中的第x个值.因此, 信息隐藏者可以在没有私钥l的情况下在加密图像中得到分块统计量d(k).

利用MMI方法和查询密文映射表的策略, 对大小为512×512的Lena灰度图像进行8×8分块和加密后得到的密文分块统计量d的直方图分布如图 5所示.

Fig. 5 Histogram of statistical values of the encrypted Lena image blocks 图 5 Lena图像分块在加密后的统计量直方图

2.2.3 统计量直方图平移

信息隐藏者首先分别选取两个正整数TG作为嵌入密钥(T, G), 其中, Tdmax, dmax是统计量d中绝对值最大的数, 通常, TG取为(8×8)/2的倍数.然后计算得到嵌入系数B:

$ B = \left\lceil {\frac{{(T + G) \times 2}}{{8 \times 8}}} \right\rceil $ (29)

其中, 函数$ \left\lceil \cdot \right\rceil $为向上取整.通过对统计量d进行直方图平移, 可以把水印嵌入到加密图像E[I]中, 每个8×8密文分块C(k)可以嵌入1比特水印, 记嵌入水印后的密文分块为矩阵$ C_w^{(k)} $.当嵌入比特为0时, 不需要对C(k)进行处理, 即$ C_w^{(k)} = {C^{(k)}} $.当嵌入比特为1时, 对C(k)中的密文$ {C^{(k)}}(i, j) $进行处理得到$ C_w^{(k)}(i, j) $:

$ C_w^{(k)}(i, j) = \left\{ \begin{array}{l} {C^{(k)}}(i, j) \cdot {g^B} =\\ {g^{{P^{(k)}}(i, j) + B}} \cdot {r_1}{(k)^N}\bmod {N^2}, {\rm{ if }}\;{d^{(k)}} \in [0, T){\rm{ and}}\bmod {\rm{ }}(i, 2) = \bmod {\rm{ }}(j, 2)\\ {C^{(k)}}(i, j) \cdot {g^B} =\\ {g^{{P^{(k)}}(i, j) + B}} \cdot {r_1}{(k)^N}\bmod {N^2}, {\rm{ if }}\;{d^{(k)}} \in (- T, 0){\rm{ and}}\bmod {\rm{ }}(i, 2) \ne \bmod {\rm{ }}(j, 2)\\ {C^{(k)}}(i, j), \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{ else}} \end{array} \right. $ (30)

其中, $ i \in [1, 8], j \in [1, 8], C_w^{(k)}(i, j) $为嵌入水印后的密文.记$ P_w^{(k)}(i, j) $$ C_w^{(k)}(i, j) $解密后的明文值, 加密域中的处理相当于在明文域中使明文像素值$ {P^{(k)}}(i, j) $变为$ {P_w}^{(k)}(i, j) $:

$ P_w^{(k)}(i, j) = \left\{ \begin{array}{l} {P^{(k)}}(i, j) + B, {\rm{if }}\;{\rm{ }}{d^{(k)}} \in [0, T){\rm{ and}}\bmod {\rm{ }}(i, 2) = \bmod {\rm{ }}(j, 2)\\ {P^{(k)}}(i, j) + B, {\rm{if }}\;{\rm{ }}{d^{(k)}} \in (- T, 0){\rm{ and}}\bmod {\rm{ }}(i, 2) \ne \bmod {\rm{ }}(j, 2)\\ {P^{(k)}}(i, j), \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{ else }} \end{array} \right. $ (31)

记嵌入水印后的密文分块Cw(k)的统计量为dw(k)嵌入比特0后, dw(k)在范围(-T, T)内, 因此, 称(-T, T)为比特0区; 嵌入比特1后, d(k)发生大小为平移量T+G的改变, 使dw(k)在范围$ [- 2T- G, - T - G) $$ [T + G, 2T + G) $内, 因此, 称$ [- 2T- G, - T - G) $$ [T + G, 2T + G) $为比特1区.同样, 为了提高统计量的安全性, 利用密钥Ks对含Cw(k)中的密文按照公式(7)与$ E[0, {r_{(i, j)}}(k)] $进行同态乘法得到矩阵$ C_w^{'\left( k \right)} $.最终, 得到含有水印的密文图像$ E[{I_w}] $.例如, 图 5所示Lena图像在加密后进行8×8分块的dmax为114, 选取T=128, G=64, 嵌入4 096比特水印后统计量dw的直方图分布如图 6所示.

Fig. 6 Histogram of statistical values of the encrypted and watermarked Lena image blocks 图 6 Lena图像在加密和嵌入水印后的分块统计量直方图

2.3 信息提取 2.3.1 加密域提取水印和恢复加密图像

与嵌入过程相同, 接收者首先对含有水印的密文图像$ E[{I_w}] $进行8×8分块, 并利用密钥Ks和MMI方法按照公式(13)把$ C_w^{'\left( k \right)} $恢复为$ C_w^{(k)} $, 然后再按照第2.3.2节描述的模乘法逆元MMI方法和查询密文映射表得到$ C_w^{(k)} $的统计量$ d_w^{(k)} $通过嵌入密钥(T, G)可以得到嵌入系数B, 则$ C_w^{(k)} $中提取的水印w(k)

$ {w^{(k)}} = \left\{ {\begin{array}{*{20}{l}} {0,{\rm{if}}\;d_w^{(k)} \in ( - T,T)}\\ {1,\;\;{\rm{else}}} \end{array}} \right. $ (32)

通过对统计量dw进行与嵌入过程相反的直方图平移, 可以恢复原加密图像, 方法如下所述.首先根据扩展欧几里德算法求出gB的模乘法逆元$ {\theta _{{g^B}}}, {\theta _{{g^B}}} $满足:

$ {\theta _{{g^B}}} \cdot {g^B} = 1\bmod {N^2} $ (33)

$ C_w^{(k)} $中的密文$ C_w^{(k)}(i, j) $进行处理得到C(k)(i, j):

$ {C^{(k)}}(i,j) = \left\{ {\begin{array}{*{20}{l}} \begin{array}{l} C_w^{(k)}(i,j) \cdot {\theta _{{g^B}}} = {C^{(k)}}(i,j) \cdot {g^B} \cdot {\theta _{{g^B}}}\;\,\bmod \,\;{N^2},\\ {\rm{if}}\;d_w^{(k)} \in [T + G,2T + G)\;{\rm{and}}\;\,\bmod \,\;(i,2) = \,\bmod \,(j,2) \end{array}\\ \begin{array}{l} C_w^{(k)}(i,j) \cdot {\theta _{{g^B}}} = {C^{(k)}}(i,j) \cdot {g^B} \cdot {\theta _{{g^B}}}\;\,\bmod \,\;{N^2},\\ {\rm{if}}\;d_w^{(k)} \in [ - 2T - G, - T - G)\;{\rm{and}}\;\,\bmod \,{\kern 1pt} (i,2) \ne \;\,\bmod \,\;(j,2) \end{array}\\ {C_w^{(k)}(i,j),\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{if}}\;d_w^{(k)} \in ( - T,T)} \end{array}} \right. $ (34)

其中, $ i \in [1, 8], j \in [1, 8] $, 加密域中的处理相当于在明文域中使明文值$ P_w^{(k)}(i, j) $变为P(k)(i, j):

$ {P^{(k)}}(i,j) = \left\{ {\begin{array}{*{20}{l}} {P_w^{(k)}(i,j) - B,{\rm{if}}\;{d^{(k)}} \in [T + G,2T + G)\;{\rm{and}}\,\bmod \;\,(i,2) = \,\bmod \,(j,2)}\\ {P_w^{(k)}(i,j) - B,{\rm{if}}\;{d^{(k)}} \in [ - 2T - G, - T - G)\;{\rm{and}}\,\bmod \;\,(i,2) \ne \,\bmod \,(j,2)}\\ {P_w^{(k)}(i,j),\;\;\;\;\;\;{\rm{if}}\;{d^{(k)}} \in ( - T,T)} \end{array}} \right. $ (35)

处理的结果使统计量$ d_w^{(k)} $恢复为d(k).同样, 为了提高统计量的安全性, 利用密钥KsC(k)中的密文按照公式(7)与$ E[0, {r_{(i, j)}}(k)] $进行同态乘法得到$ {C'^{(k)}} $.最终, 恢复出原密文图像E[I].

2.3.2 解密后提取水印和恢复原始图像

接收者在有私钥λ和嵌入密钥(T, G)的情况下, 可以对含有水印的密文图像E[Iw]进行解密后提取水印和恢复原始图像.利用λE[Iw]进行解密, 解密的过程如第1节所述, 记解密后的结果为Iw.首先对Iw进行8×8分块, 则第k个8×8的含水印的明文分块为$ P_w^{(k)} $.通过嵌入密钥(T, G)可以得到嵌入系数B, 根据公式(15)得到$ P_w^{(k)} $的统计量$ d_w^{(k)} $.水印w(k)可根据公式(32)来提取.原始图像的恢复可以通过对$ P_w^{(k)} $中的明文像素值按照公式(35)进行处理, 处理的结果使统计量$ d_w^{(k)} $恢复为d(k), 并且$ P_w^{(k)} $中的明文像素值$ P_w^{(k)}(i, j) $恢复为$ {P^{(k)}}(i, j) $得到原明文分块P(k), 最终恢复出原始图像I.

2.3.3 在攻击或图像处理后提取水印

解密后含水印的图像在传递过程中可能会受到图像处理或干扰.通过将水印嵌入到分块的统计直方图, 水印算法对常见的图像处理操作(JPEG/JPEG 2000压缩和高斯噪声等)具有一定的鲁棒性.如图 6所示, 比特0区和比特1区间隔着大小为G的鲁棒区间.因此, 当解密后含水印的图像受到一定程度的图像处理或操作后, 虽然造成了分块统计量d小范围的变动但在未进入错误区间时, 接收方仍能正确提取水印.为了提高水印图像在遭受干扰或处理后提取水印的正确率, 参照文献[11, 24]的算法思路, 本文采用3种提取方案和多数投票系统策略来最终判定提取的水印比特.

提取方案 1.

$ {w_1}^{(k)} = \left\{ \begin{array}{l} 0, {\rm{ if }}\;{d_w}^{(k)} \in ( - T, T)\\ 1, {\rm{ otherwise}} \end{array} \right. $ (36)

提取方案 2.重新定义比特0区为$ ( - T - G/3, T + G/3) $则水印提取为

$ {w_2}^{(k)} = \left\{ \begin{array}{l} 0, \;\;{\rm{ if }}\;{d_w}^{(k)} \in ( - T - G/3, T + G/3)\\ 1, \;\;{\rm{ otherwise}} \end{array} \right. $ (37)

提取方案 3.利用k-means聚类[12]来提取水印比特.图 7为经过JPEG 2000压缩后分块统计量的直方图分布, 可以看出, 图像处理后分块统计量的分布大致分为3类, 分别为class 1、class 2和class 3, 则水印的提取为

$ {w_3}^{(k)} = \left\{ {\begin{array}{*{20}{c}} {0, {\rm{ }}\;{\rm{if}}\;{d_w}^{(k)} \in class\;2\;\;\;\;\;\;\;\;\;\;\;\;\;\;}\\ {1, {\rm{ }}\;{\rm{if}}\;{d_w}^{(k)} \in \;class\;1\;{\rm{or}}\;class\;3\;} \end{array}} \right. $ (38)
Fig. 7 Histogram of statistical values of the watermarked blocks under JPEG 2000 compression 图 7 经过JPEG 2000压缩后分块统计量的直方图

最终通过多数投票系统来判决提取的水印比特, 多数投票判决为

$ {w^{(k)}} = \left\{ {\begin{array}{*{20}{c}} {{w_1}^{(k)}, \;{\rm{ if}}\;{w_1}^{(k)} = {w_2}^{(k)}\;{\rm{and}}\;{w_1}^{(k)} = {w_3}^{(k)}}\\ {{w_1}^{(k)}, \;{\rm{ if}}\;{w_1}^{(k)} = {w_2}^{(k)}\;{\rm{and}}\;{w_1}^{(k)} \ne {w_3}^{(k)}}\\ {{w_2}^{(k)}, \;{\rm{ if}}\;{w_1}^{(k)} \ne {w_2}^{(k)}\;{\rm{and}}\;{w_2}^{(k)} = {w_3}^{(k)}}\\ {{w_3}^{(k)}, \;{\rm{ if}}\;{w_1}^{(k)} \ne {w_2}^{(k)}\;{\rm{and}}\;{w_1}^{(k)} = {w_3}^{(k)}} \end{array}} \right. $ (39)

在图像未受到干扰或处理的情况下, 公式(32)和3种提取投票系统的方案均可无损地提取水印.而在图像受到干扰或处理的情况下, 3种提取投票系统提取水印的准确率更高.因此, 本文采用3种提取方案和多数投票系统作为水印提取的方案.

2.4 溢出处理

在加密域中嵌入水印后, 密文值的改变相当于其相应的明文值加上了一个大小为嵌入系数B的值, 改变后的明文值可能会超出灰度图像中像素值的范围[0, 255], 则解密后可能会出现溢出问题.E[Iw]解密后的结果Iw中值的分布有3种类型:类型1, 值在范围[0, 255]内; 类型2, 值在范围[B, 255+B]内; 类型3, 值在范围[0, 255+B]内.类型1没有溢出问题, 而类型2和类型3出现了溢出问题, 本文参照文献[11]中的算法思路, 做出相应处理.

分块统计量具有特殊性, 对于任意一个分块中的所有值加上或减去一个值, 分块统计量的值不变.因此, 对于类型2, 可以将Iw$ d_w^{(k)} $在比特1区分块中的所有值减去B, $ d_w^{(k)} $的值不变, Iw由类型2转换为类型1得到$ {I'_w} $.在接收端, 将$ {I'_w} $$ d_w^{(k)} $在比特1区分块中的所有值加上B可恢复出Iw.

对于类型3, 首先统计Iw中的值属于范围[0, B]和[255, 255+B]的数量.如果值属于范围[0, B]的数量少于[255, 255+B]的数量, 则把这种类型记为类型3.1.然后把值属于范围[0, B]的位置信息标记下来, 并将全部标记位置上的值加上B, 则类型3.1转换为类型2, 然后可以再转换为类型1.最后用一种低失真的可逆水印的方案将这些标记位置信息作为附加信息嵌入图像当中得到$ {I'_w} $.在接收方, 首先从$ {I'_w} $提取嵌入的附加信息, 然后将类型1恢复为类型2, 最后将标记位置上的所有值减去B则可恢复为类型3.1, 即$ {I'_w} $恢复为Iw; 如果值属于范围[255, 255+B]的数量少于[0, B]的数量, 则把这种类型记为类型3.2.然后把值属于范围[255, 255+B]的位置信息标记下来, 并将全部标记位置上的值减去B, 则类型3.2转换为类型1.最后用一种低失真的可逆水印的方案将这些标记位置信息作为附加信息嵌入图像当中得到$ {I'_w} $.在接收方, 首先从$ {I'_w} $提取嵌入的附加信息, 然后将标记位置上的所有值加上B则可恢复为类型3.2, 即$ {I'_w} $恢复为Iw.

对于自然图像, 像素的灰度值集中于[25, 230]的范围内, 所以在一般情况下, 只要嵌入系数B的取值适当, 图像在嵌入水印后很少会出现溢出问题, 并且在绝大多数情况下不会出现类型3.根据本文的溢出处理方案, 有效地解决了可能发生的溢出情况.

3 实验结果及分析

实验中首先给出以Lena图像作为载体的实验结果来验证本文算法的可行性.本文采用峰值信噪比PSNR(peak signal to noise ratio)来衡量解密后含水印的图像质量, 其值越高, 则表示嵌入水印的不可感知性越强, 图像的质量越好.假设I代表原始图像, I'代表解密后含水印的图像, (i, j)表示图像像素坐标, 则PSNR的计算公式为

$ PSNR = 10 \times \lg \frac{{h \times w \times {{255}^2}}}{{\sum\limits_{i = 1}^h {\sum\limits_{j = 1}^w {{{[I(i, j)-I'(i, j)]}^2}} } }} $ (40)

其中, hw代表图像的尺寸, $ i \in [1, h], j \in [1, w] $.另外, 本文采用比特误差率BER(bit error rate)来衡量提取水印的正确性, 其值越低, 表明提取水印的正确性越高.实验中选取大小为512×512的8比特的Lena灰度图像(如图 8(a)所示)作为测试图像, 嵌入的水印是一段4 096比特的伪随机序列, 采用Paillier加密系统的参数设置为p=61, q=67, 其可加密的明文的上限值N=p·q=4087.具体的实验结果如图 8所示.首先对图 8(a)所示的原始图像进行8×8分块并利用公钥(N, g)和密钥Ks进行加密得到密文图像(如图 8(b)所示), 然后利用嵌入密钥(T=128, G=64)嵌入水印得到含水印的密文图像(如图 8(c)所示).其中, 图 8(b)图 8(c)皆为归一化后的密文图像, 目的是显示图像加密后的效果.通过私钥λ图 8(c)进行解密得到直接解密后的图像(如图 8(d)所示), 该图像的PSNR为38.53dB.最后通过嵌入密钥(T=128, G=64)提取嵌入的水印和恢复图像(如图 8(e)所示), 该图像的PSNR为+∞, 表明恢复出来的图像与原始图像完全相同, 图 8(f)表明对所有水印比特完成了正确提取.实验结果说明, 本文算法实现了加密域中水印的可逆嵌入和提取以及原始图像的恢复.

Fig. 8 Watermark embedding and extraction testing results with Lena 图 8 以Lena图像为载体的水印嵌入和提取测试

为了更进一步地评估本文算法的性能, 实验选取了如图 9所示的8幅大小为512×512的8比特灰度图像作为载体进行测试.实验中对8幅载体图像进行8×8分块, 嵌入的水印信息为4 096比特的伪随机系列.加密域嵌入水印后, 密文值的改变相当于其相应的明文值加上了一个大小为嵌入系数B的值, 因此, B直接影响到解密后图像的质量.随着B的增大, 相应的失真就越大, 导致PSNR降低.经过测试, 当8幅图像以相同的B嵌入水印时, 解密后图像的PSNR值基本相同, 嵌入系数B和PSNR值的关系如图 10所示.由图 10可知, 当B为16时, 图像的PSNR略大于30dB, 基于不可觉察度的考虑, 为了获得较好的图像质量, 本文设定最大嵌入系数Bmax=16, 即B的值不能超过16.

Fig. 9 Eight standard example images 图 9 8幅标准测试图像

Fig. 10 Relationship between embedding strength B and PSNR value 图 10 嵌入强度B和PSNR值的关系

图 6可知, 比特0区和比特1区间隔着大小为G的鲁棒区间, G越大, 则鲁棒性越强.但是, G越大会使嵌入系数B随之增大, 导致PSNR值有所降低.因此, 实际中可根据需要调节阈值G, 若需要更强的鲁棒性, 可以选择较大的阈值G; 若需要水印图像质量更好, 则可选择较小的阈值G.在JPEG压缩鲁棒性实验中, 我们采用了ACDsee 14.0软件对解密后含水印的图像进行JPEG压缩.如图 11所示, 随着压缩质量因子数值的降低(表示压缩强度逐渐增大), 提取水印的比特误差率BER逐渐升高.在同样的压缩强度下, BER随着阈值G的增大而降低, 说明随着阈值G的增大, 嵌入强度增加, 水印对JPEG压缩的鲁棒性增强.

Fig. 11 Effection of the value G on the robustness to JPEG compression 图 11 阈值G对水印抗JPEG压缩的影响

我们采用ACDsee 14.0软件对解密后的水印图像进行JPEG 2000压缩, 采用存活率(surviving bit rate)来衡量水印算法对JPEG 2000压缩的鲁棒性.存活率与最大压缩率的关系为:存活率=8/最大压缩率, 即存活率越小, 其压缩倍数越大, 鲁棒性越强.图 12所示为在不同阈值G下能够正确提取水印的最小存活率, 即在该阈值下, 若存活率高于对应的存活率, 即当压缩率更低时, 能够完全正确地提取水印.由图 12可知, 随着阈值G的增大, 最小存活率减小, 即水印对抗JPEG 2000压缩的鲁棒性增强.

Fig. 12 Effection of the value G on the robustness to JPEG 2000 compression 图 12 阈值G对水印抗JPEG 2000压缩的影响

为了测试本文算法对其他图像处理操作的鲁棒性, 本文采用MATLAB软件来对水印图像添加高斯噪声和椒盐噪声.表 1给出了8幅测试图像在设定的参数下, 嵌入4 096比特水印后的解密图像在受到不同图像处理操作后提取水印的比特误差率(BER)(%).嵌入系数B设定为16.从表 1可以看出, 对于质量因子为25的JPEG压缩, 除了Baboon图像外, BER均小于1%;对于存活率为0.67bpp的JPEG 2000压缩, 除了Baboon和Barbara图像外, BER均小于1%;对于方差为0.005的高斯噪声, 除了Baboon图像外, BER均约为5%;对于方差为0.01的椒盐噪声, 除了Baboon图像外, BER均小于5%.与其他测试图像相比, 水印以Baboon图像为载体性能较差的主要原因是Baboon图像的纹理比较复杂, 8×8分块后的dmax=388, 需要设定T=416, 即使设定G=0都会使嵌入系数B=13, 因此图像的失真较大.在本文设定的最大嵌入系数Bmax=16条件下, G最大只能取为96, 因此鲁棒性较差.由此可知, 本文算法对于比较平滑的图像有较好的性能.

Table 1 Robustness of the proposed method against several image processing operations 表 1 本文水印算法在几种常见图像处理操作下的鲁棒性

由于每个密文分块都可以嵌入1比特水印, 所以图像进行分块的尺寸越小, 则嵌入容量越大.对于大小为h×w的图像并且分块大小为m×n的最大嵌入容量为[h/w]×[w/n].其中, 函数$ \left\lfloor \cdot \right\rfloor $为向下取整.但是, 通常进行小尺寸分块的嵌入系数B会比较大, 导致PSNR降低.以Lena图像为例, 当分块尺寸为4×4时, 它的dmax为120, 这就意味着:

$ B = \left\lceil {\frac{{(T + G) \times 2}}{{m \times n}}} \right\rceil \ge \left\lceil {\frac{{(128 + G) \times 2}}{{4 \times 4}}} \right\rceil \ge 16 $ (41)

T为128, 只有当G取0时, B=16才能满足本文设定的Bmax=16.为了衡量嵌入容量和图像失真以及鲁棒性的关系, 给出Lena图像以不同分块尺寸嵌入最大嵌入容量的性能, 见表 2.在不超出最大嵌入系数Bmax=16的情况下, 除分块尺寸为4×4在JPEG压缩因子为100时提取水印BER=4.52%、存活率为4时提取水印BER=3.89%, 其他分块尺寸下的JPEG压缩因子和存活率都是在给定参数下能够正确地提取水印的最小JPEG压缩因子和存活率, 并且G是能正确提取水印的最小阈值.由表 2可知, 若分块尺寸越大, 则最大嵌入容量越小, 并且图像的失真越小, 鲁棒性越强.经过实验测试, 其结果表明, 8×8分块在嵌入容量、图像失真和鲁棒性之间有较好的平衡性.

Table 2 The performance of Lena image in different block sizes 表 2 Lena图像不同分块尺寸的性能

目前, 在文献中尚未有有效的加密域图像鲁棒可逆水印算法的报道, 因此无法将本文提出的同态加密域图像鲁棒可逆水印算法与前人的研究结果进行公平对比.为了进一步说明本文算法的鲁棒性, 我们与前期具有代表性的一种明文域图像鲁棒可逆水印算法[10]进行了性能比较.测试中, 使用相同的载体进行8×8分块嵌入相同的水印容量, 本文算法与文献[10]中Ni算法的鲁棒性比较见表 3.由表 3可知, 除了Baboon图像以外, 本文算法的图像质量和鲁棒性都优于文献[10].值得一提的是, 本文算法是在加密域中嵌入水印, 可以更好地在云端保护用户的数据隐私, 相比文献[10]以及其他在明文域嵌入鲁棒可逆水印的方案, 本文算法更加适用于当下大数据背景下的云计算安全领域.

Table 3 Performance comparison of the proposed method against the Ni's method in Ref.[10] 表 3 与文献[10]中Ni算法的鲁棒性能比较

4 结论

加密域鲁棒可逆水印技术通过加密手段来保护数据在云端的隐私, 通过可逆水印来实现对敏感载体的完整性认证并通过鲁棒水印来进行保护数据在解密后的版权.通过结合Paillier加密系统、构造统计量和直方图平移技术, 本文提出了一种新的同态加密域图像鲁棒可逆水印算法.为了保护数据在云端的隐私并允许对密文数据进行算术操作, 数据在上传云端之前进行同态加密.为了能在云端的加密数据中嵌入水印, 对图像采用了分块加密和在加密域中构造分块统计量, 并结合Paillier加密系统的同态特性来实现基于统计量直方图平移的水印嵌入.算法的关键在于密文分块统计量的构造、模乘法逆元MMI方法的运用、利用同态特性构建密文映射表和嵌入水印, 使得在加密域中可以获得统计量直方图进行水印嵌入.

在本文中, 我们对水印算法在加密域和明文域的提取和图像的恢复进行了详细分析, 并对可能出现的溢出情况给出了处理方案.最后在实验部分, 我们选择一些标准的例子图像来测试算法的可逆性和鲁棒性.实验结果表明:(1)水印算法的嵌入失真较小, 具有良好的保真性; (2)水印算法是可逆的, 在未受到攻击的情况下水印能分别在加密域和明文域提取并且原始密文图像或原始明文图像能够无损恢复; (3)水印具有良好的鲁棒性, 解密后的含水印图像在经受一定的图像处理操作下仍能正确地提取水印.在云计算大数据背景下, 由于同态加密域鲁棒可逆水印技术在隐私保护和数据安全上的潜在应用前景, 本文算法具有很好的理论研究意义和实用

参考文献
[1]
Honsinger CW, Jones P, Rabbani M, Stoffel JC. Lossless recovery of an original image containing embedded data. Int'l Cl: G06K 9/00 US 6278791 B1, 2001-08-21.
[2]
Feng JB, Lin IC, Tsai CS, Chu YP. Reversible watermarking:current status and key issues. Int'l Journal of Network Security, 2006, 2(3): 161–171. http://dblp.uni-trier.de/db/journals/ijnsec/ijnsec2.html#FengLTC06
[3]
Celik MU, Sharma G, Tekalp AM, Saber E. Lossless generalized-LSB data embedding. IEEE Trans. on Image Processing, 2005, 14(2): 253–266. [doi:10.1109/TIP.2004.840686]
[4]
Tian J. Reversible data embedding using a difference expansion. IEEE Trans. on Circuits and Systems for Video Technology, 2003, 13(8): 890–896. [doi:10.1109/TCSVT.2003.815962]
[5]
Ni ZC, Shi YQ, Ansari N, Su W. Reversible data hiding. IEEE Trans. on Circuits and Systems for Video Technology, 2006, 16(3): 354–362. [doi:10.1109/TCSVT.2006.869964]
[6]
Li XL, Yang B, Zeng TY. Efficient reversible watermarking based on adaptive prediction-error expansion and pixel selection. IEEE Trans. on Image Processing, 2011, 20(12): 3524–3533. [doi:10.1109/TIP.2011.2150233]
[7]
Vleeschouwer CD, Delaigle JE, Macq B. Circular interpretation of histogram for reversible watermarking. In: Proc. of the IEEE Workshop of Multimedia Signal Process. 2001. 345-350. [doi: 10.1109/MMSP.2001.962758]
[8]
Vleeschouwer CD, Delaigle JE, Macq B. Circular interpretation of bijective transformations in lossless watermarking for media asset management. IEEE Trans. on Multimedia, 2003, 5(1): 97–105. [doi:10.1109/TMM.2003.809729]
[9]
Zou D, Shi YQ, Ni Z, Su W. A semi-fragile lossless digital watermarking scheme based on integer wavelet transform. IEEE Trans. on Circuits and Systems for Video Technology, 2006, 16(10): 1294–1300. [doi:10.1109/TCSVT.2006.881857]
[10]
Ni Z, Shi YQ, Ansari N, Su W, Sun Q, Lin X. Robust lossless image data hiding designed for semi-fragile image authentication. IEEE Trans. on Circuits and Systems for Video Technology, 2008, 18(4): 890–896. [doi:10.1109/TCSVT.2008.918761]
[11]
Zeng XT, Ping LD, Pan XZ. A lossless robust data hiding scheme. Pattern Recognition, 2010, 43(4): 1656–1667. [doi:10.1016/j.patcog.2009.09.016]
[12]
An L, Gao X, Li X, Tao D, Deng C, Li J. Robust reversible watermarking via clustering and enhanced pixel-wise masking. IEEE Trans. on Image Processing, 2012, 21(8): 3598–3611. [doi:10.1109/TIP.2012.2191564]
[13]
Thabit R, Khoo BE. Capacity improved robust lossless image watermarking. IET Image Processing, 2014, 8(11): 662–670. [doi:10.1049/iet-ipr.2013.0862]
[14]
Feng DG, Zhang M, Zhang Y, Xu Z. Study on cloud computing security. Ruan Jian Xue Bao/Journal of Software, 2011, 22(1): 71-83(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/3958.htm[doi: 10.3724/SP.J.1001.2011.03958]
[15]
Zhang XP. Reversible data hiding in encrypted image. IEEE Signal Processing Letters, 2011, 18(4): 255–258. [doi:10.1109/LSP.2011.2114651]
[16]
Zhang XP. Separable reversible data hiding in encrypted image. IEEE Trans. on Information Forensics and Security, 2012, 7(2): 826–832. [doi:10.1109/TIFS.2011.2176120]
[17]
Chen YC, Shiu CW, Horng G. Encrypted signal-based reversible data hiding with public key cryptosystem. Journal of Visual Communication and Image Representation, 2014, 25: 1164–1170. [doi:10.1016/j.jvcir.2014.04.003]
[18]
Zhang XP, Long J, Wang Z, Cheng H. Lossless and reversible data hiding in encrypted images with public key cryptography. IEEE Trans. on Circuits and Systems for Video Technology, 2016, 26(9): 1622–1631. [doi:10.1109/TCSVT.2015.2433194]
[19]
Xiang SJ, Luo XR, Shi SX. A novel reversible image watermarking algorithm in homomorphic encrypted domain. Chinese Journal of Computers, 2016, 39(3): 571–581(in Chinese with English abstract). [doi:10.11897/SP.J.1016.2016.00571]
[20]
Xiang SJ, Luo XR. Reversible data hiding in encrypted image based on homomorphic public key cryptosystem. Ruan Jian Xue Bao/Journal of Software, 2016, 27(6): 1592-1601(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/5007.htm[doi: 10.13328/j.cnki.jos.005007]
[21]
Paillier P. Public-Key cryptosystems based on composite degree residuosity classes. In: Proc. of the Int'l Conf. on the Theory and Application of Cryptographic Techniques Prague. 1999. 233-238. [doi: 10.1007/3-540-48910-X_16]
[22]
Zheng PJ, Huang JW. Discrete wavelet transform and data expansion reduction in homomorphic encrypted domain. IEEE Trans. on Image Processing, 2013, 22(6): 2455–2468. [doi:10.1109/TIP.2013.2253474]
[23]
Donald K. The Art of Computer Programming, Volume 2. 3rd ed.. Addison-Wesley, 1997: 325–515. https://www.bibsonomy.org/bibtex/2ee3f7d70febf87bc4d3b49640d9baa20/eutrimer
[24]
Xiang SJ, Yang L, Wang Y. Robust and reversible audio watermarking by modifying statistical features in time domain. Advances in Multimedia, 2017, 2017(3): 1–10. [doi:10.1155/2017/8492672]
[14]
冯登国, 张敏, 张研, 徐震. 云计算安全研究. 软件学报, 2011, 22(1): 71-83. http://www.jos.org.cn/1000-9825/3958.htm[doi: 10.3724/SP.J.1001.2011.03958]
[19]
项世军, 罗欣荣, 石书协. 一种同态加密域图像可逆水印算法. 计算机学报, 2016, 39(3): 571–581. [doi:10.11897/SP.J.1016.2016.00571]
[20]
项世军, 罗欣荣. 基于同态公钥加密系统的图像可逆信息隐藏算法. 软件学报, 2016, 27(6): 1592-1601. http://www.jos.org.cn/1000-9825/5007.htm[doi: 10.13328/j.cnki.jos.005007]