软件学报  2016, Vol. 27 Issue (6): 1592-1601   PDF    
同态公钥加密系统的图像可逆信息隐藏算法
项世军, 罗欣荣     
暨南大学 信息科学技术学院 电子工程系, 广东 广州 510632
摘要: 同态加密技术在加密信息、对信息进行隐私保护的同时,还允许密文数据进行相应的算术运算(如云端可直接对同态加密后的企业经营数据进行统计分析),已成为云计算领域的研究热点之一.然而,由于云存在多种安全威胁,加密后信息的安全保护和完整性认证问题仍然突出.另外,信息在加密后丢失了很多特性,密文检索成为了云计算需要攻克的关键技术.为了实现对加密图像的有效管理及其安全保护,提出了一种基于同态加密系统的图像可逆信息隐藏算法.该算法首先在加密前根据密钥选择目标像素,并利用差分扩展DE(difference expansion)的方法将目标像素的各比特数据嵌入到其他像素中.然后,利用Paillier同态加密系统对图像进行加密得到密文图像.在加密域中,利用待嵌入信息组成伪像素,加密后替换目标像素,完成额外信息的嵌入.当拥有相应的密钥时,接收方可以分别在密文图像或明文图像中提取出已嵌入的信息.当图像解密后,通过提取出自嵌入目标像素的各比特数据来恢复原始图像.仿真实验结果表明,该算法能够在数据量保持不变的前提下完成同态加密域中额外信息的嵌入,信息嵌入快速高效,并可分别从加密域和明文域中提取出嵌入的信息.
关键词: 可逆信息隐藏     图像加密     同态加密系统     图像安全保护     云计算    
Reversible Data Hiding in Encrypted Image Based on Homomorphic Public Key Cryptosystem
XIANG Shi-Jun, LUO Xin-Rong     
Department of Electronic Engineering, School of Information Science and Technology, Ji'nan University, Guangzhou 510632, China
Foundation item: National Natural Science Foundation of China (61272414)
Abstract: Homomorphic encryption, which protects privacy effectively and allows algebraic operations directly in the ciphertext, has been a active topic in the study of cloud computing. Due to security threats in cloud computing, the security protection and integrity authentication of encrypted data remain critical problems. The challenge lies in how to retrieve the encrypted data. To achieve more effective management and security protection of encrypted images on-line, this paper proposes a reversible data hiding scheme for ciphertext based on the public key cryptosystems with homomorphic and probabilistic properties. In the proposed scheme, partial pixels are selected as target pixels by a secret key and all bits of the target pixels are embedded into the other pixels with difference expansion (DE) to vacate room before encryption. As a bonus, secret data can be embedded directly in homomorphic encrypted domain by altering the target pixels with the fake pixels which are comprised of secret data. With the legal key, the receiver can extract the embedded data from the encrypted image and the directly decrypted image. Furthermore, user can accurately recover the original image after decryption and data extraction. Finally, experimental results show that extra data can be embedded more efficiently in homomorphic encrypted domain while keeping the quantity of data unchanged. Besides, the embedded data can be extracted in both ciphertext and plaintext.
Key words: reversible data-hiding     image encryption     homomorphic cryptosystem     image security protection     cloud computing    

随着互联网技术及云计算技术的快速发展,人们将更多的资料和数据上传到远程服务器或者云端进行存储,从而节省了购买实际物理储存设备的开支[1, 2, 3].用户可随时随地通过联网下载已上传的资料、利用网络中的其他资源以及享受第三方提供的数据处理等服务[4].这些技术在方便人们生活的同时,也引发了数据安全和隐私保护的问题.上传的数据可能涉及用户的隐私内容,如个人照片、企业的用户资料、电子票据等,用户应先对数据进行加密后再上传,以降低内容泄露的风险[5].然而,数据在加密后失去了许多的特性,随着用户和上传数据量的爆炸式增长,海量密文数据的检索及管理成为了急需攻克的关键技术[6].另外,由于存在安全漏洞或内部人员的非法操作,密文被非法访问后会受到篡改、替换等攻击,用户加密数据的完整性、可靠性保护尤为重要.

加密域中的可逆信息隐藏技术是在不知道明文内容的情况下,直接将额外信息嵌入到密文载体中,并在解密及信息提取后能够百分之百地恢复出原始载体的技术.该技术有着很好的应用前景,例如,患者的医学图像加密后上传到医院的服务器或云中[7],管理者可将图像的相关信息,如所有者信息、拍摄时间、拍摄部位等嵌入到对应的密文中,通过提取嵌入信息和比对相应的关键词,可实现对密文图像的快速检索;再有,设计师将作品加密后上传到数据库,再通过嵌入与密文相关的特征信息及版权信息,从而实现对加密数据的完整性认证和版权保护[8].加密域中的可逆信息隐藏技术较好地解决了密文检索及其安全保护的问题,并可在解密及数据提取后,恢复原始载体,近年来已成为了信息安全领域的一个研究热点.文献[7]提出一种基于流密码的可逆信息隐藏算法,该算法对图像进行分块后,通过翻转每个图像块中相应的LSB(least significant bit)来嵌入1比特数据,并在解密后利用相邻像素的相关性恢复出原始图像.随后,Hong等人通过改进平滑函数[9]及非均匀翻转的方法[10]对文献[7]中的方法进行改进,减少了图像恢复时的错误率,提高了算法的嵌入率.文献[7, 9, 10]的算法中,信息提取及原图像恢复只能在解密后同时进行.因此,Zhang提出了一种可分离的可逆信息隐藏算法[11],以实现加密域中的信息提取.该算法利用边信息及信源编码对加密图像的低几位数据进行压缩,以腾出额外信息的嵌入空间.为实现更好的性能,Ma等人提出了一种加密前预留空间的算法[12],其核心思想是利用明文域的可逆信息隐藏算法将部分信息自嵌入到其他部分,该算法具有较大的嵌入容量及低失真的特点.

上述算法使用对称加密系统,密钥管理难度较大,利用流密码进行加密,不能对密文进行处理.而同态公钥加密系统为非对称加密系统,安全性更高,明文值与密文值一一对应,且允许对密文进行算术运算,更适用于云计算等第三方数据处理,如云端可直接计算出利用加性同态系统加密的企业经营数据、个人账单等数据的差E[xi-xj]、和E[∑xi](解密后除以数据x的个数n,可得到均值),从而为用户提供数据的统计分析服务.因此,Chen等人提出了一种基于同态公钥加密系 统的可逆信息隐藏算法[13].该算法先将明文图像中的每个像素分成两部分:LSB和其余的整数部分,并用Paillier加密系统[14]进行加密.然后利用加密系统的同态特性,通过改变相邻两像素LSB的相对大小嵌入1比特数据.在接收端,解密后通过比较两相邻LSB的相对大小提取出嵌入信息.该算法将数据分成两部分后再加密,使得数据量成倍增长,且只能在解密后提取嵌入信息.2015年,Zhang等人提出了能分别在加密域及明文域中提取嵌入信息的可逆信息隐藏算法[15].该算法首先对明文进行直方图平移,对明文进行约束,再结合纠错码及密文域像素值平移的方法嵌入额外信息,使得嵌入的信息能够在明文域中提取出来;根据同态加密特性,利用WPC(wet paper code)[16],将信息无损地嵌入到加密图像中,使得嵌入信息能够在密文域中提取.由于该算法利用WPC进行嵌入,信息隐藏者需要利用高斯消元法求解一个含有k个未知数的线性方程组,其中,k为嵌入容量,该算法的计算复杂度为O(k3).对于大嵌入容量的情况如k=105,该算法嵌入过程耗时较长,不适用于云中加密图像的实时处理.针对上述算法的不足,本文提出了一种新的图像可逆信息隐藏算法,该算法首先根据密钥选出目标像素,并利用DE算法将目标像素嵌入到其他像素中,加密自嵌入后的图像得到加密图像,嵌入过程并没有造成数据量的增大.在加密域中,根据嵌入密钥将待嵌入的额外信息组成伪像素,加密后替换目标像素,实现信息嵌入的快速嵌入.只要拥有相应的密钥,接收者可计算出伪像素值的范围及其对应的密文,通过比对相应的密文,得到相应伪像素的值,完成加密域中的信息提取.此外,接收者还可以在解密后,提取自嵌入的目标像素的数据,重组目标像素,从而恢复原图像,实现加密域中的可逆信息隐藏.本文算法传输数据量较小,计算复杂度较低,且具有足够的嵌入容量来嵌入加密图像相关标签信息、版权信息或图像特征信息等,更适用于云中加密图像的快速检索、版权保护及完整性认证.

1 Paillier 同态加密系统

同态加密系统首先由Rivest等人提出[17].在同态加密系统中,可直接对密文进行算术运算,得到的结果与明文域中对应运算的结果一致.为实现语义安全,Goldwasser等人提出了一种具有概率特性的公钥加密系统[18].该系统的概率特性为:对于相同的明文,可通过不同的加密过程得到不同的密文,因此,加密密钥可以是公开的.同时具有同态特性和概率特性的加密技术已广泛应用于加密信号处理或第三方数据处理领域当中[19, 20, 21],如Paillier加密技术.Paillier加密系统[14]是一种加性同态公钥加密系统,其加密和解密机制如下:

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

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

其中,函数$L\left( u \right) = \left( {u - 1} \right)/N,$ $Z_{{N^2}}^*$为${Z_{{N^2}}}$中与N2互质的整数的集合,而ZN2为小于N2的整数的集合.(N,g)和l分别为公钥和私钥.

加密过程.再随机选取一个整数$r \in Z_N^*,$对于明文mZN,可通过公式(1)得到对应的密文c:

$c = {g^m} \cdot {r^N}{\rm{ mod }}{N^2}$ (2)

其中,$c \in Z_{{N^2}}^*,$记公式(2)为c=E[m,r].因此,利用相同的公钥进行加密时,由于r的选取是随机的,对于同一个明文m,可得到不同的密文c,从而保证了密文的语义安全.

解密过程.对密文c的解密过程为

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

另外,文献[14]给出了定理1.

定理1 . 若g的阶为N的非零整数倍,则c=E[m,r]是双射的.

即当g满足上述要求时,$\forall \left( {m,r} \right)|m \in {Z_N},r \in Z_N^*$都有唯一的c=E[m,r]与之一一对应.本文算法将利用该定理实现在加密域中嵌入信息的提取.

2 基于同态加密的图像可逆信息隐藏算法

本文提出的图像可逆信息隐藏算法的框架如图 1所示.

Fig. 1 Sketch of the reversible data hiding scheme in encrypted image based on homomorphic cryptosystem 图 1 基于同态加密系统的图像可逆信息隐藏算法框架

内容所有者首先根据密钥选取目标像素,并利用DE算法将目标像素的每一比特数据嵌入到其他像素中,预留出嵌入空间.然后将完成自嵌入的图像加密后传递给信息隐藏者.信息隐藏者将待嵌入的额外信息组成伪像素,加密后替换目标像素,完成加密域中的信息嵌入.接收方拥有相应的密钥时,可分别在加密域和明文域中完成信息的提取:(1) 从加密图像中提取加密后的伪像素,根据密钥计算出伪像素可能取值与对应密文的映射表,通过查表的方法确定伪像素的值,再提取出额外信息;(2) 根据密钥直接从解密后的图像中提取伪像素原值,提取出嵌入信息.此外,接收者对图像进行解密后,提取出自嵌入数据,重组目标像素,可百分之百地恢复出原图像.

2.1 预留嵌入空间

1) 图像的分块和分组.首先将原始图像I分成大小为l×l的图像块,不妨设I的大小为M×N,MN都是l的整数倍.然后以每4个像素为一组将图像块分成多个T型像素组.每个像素组由一个中心像素R和3个边缘像素s组成.图 2l=8时图像块分组示意图.

Fig. 2 Patch division for a pixel block sized 8×8 图 2 8×8图像块的分组示意图

2) 目标像素自嵌入.内容所有者利用自嵌入密钥kse1,选取部分边缘像素作为目标像素,记为$S_{i,j}^T.$取出$S_{i,j}^T$的各比特数据$b = \left\{ {{b_{i,j}}\left( k \right)|i,j \in I,k = 0,1,...,7} \right\},$其中,

${b_{i,j}}\left( k \right) = \left\lfloor {{{S_{i,j}^T} \over {{2^k}}}} \right\rfloor {\rm{ mod }}2,\;k = 0,1,2,...,7$ (4)

根据自嵌入密钥kse2,在每个图像块中选取另外的边缘像素用于b的自嵌入,记为嵌入像素$S_{i,j}^e.$对于每个像素组,保持中心像素R的值不变,对$S_{i,j}^e$进行差分扩展DE,得到扩展后的嵌入像素$S_{i,j}^E.$

$S_{i,j}^E = R + \left( {S_{i,j}^e - R} \right) \times 2$ (5)

然而,差分扩展及信息嵌入后可能会引起数据的溢出,即$S_{i,j}^E = R + \left( {S_{i,j}^e - R} \right) \times 2$满足:

$\left\{ \matrix{ S_{i,j}^E + 1 \ge 255 \hfill \cr S_{i,j}^E \le 0 \hfill \cr} \right.$ (6)

当公式(7)成立,称对应的$S_{i,j}^E$为溢出像素,用辅助信息ao记录溢出的部分:

${a_o}{\rm{ = }}\left\{ \matrix{ S_{i,j}^E - 254,\;{\rm{if}}\;S_{i,j}^E + 1 \ge 255 \hfill \cr 0 - S_{i,j}^E,{\rm{ if}}\;S_{i,j}^E \le 0 \hfill \cr} \right.$ (7)

ao中的最大值max(ao),并将其转换成二进制数表示,记该二进制数的最小长度为L1,然后将ao的每个数据转换成长度为L1的二进制数,得到a.

然后对扩展后的像素$S_{i,j}^E$进行修正,得到修正后的扩展像素$S_{i,j}^M.$

$S_{i,j}^M = \left\{ \matrix{ 255,{\rm{ if}}\;S_{i,j}^E + 1 \ge 255 \hfill \cr 0,{\rm{ if}}\;S_{i,j}^E \le 0 \hfill \cr S_{i,j}^E,{\rm{ else}} \hfill \cr} \right.$ (8)

为了保证原图像能够无损恢复,目标像素数据b和辅助信息a都要自嵌入到图像中,记w0={a,b},则自嵌入过程为

$S_{i,j}^{\sim }~=\left\{ \begin{align} & S_{i,j}^{M},\text{if}\ S_{i,j}^{M}=0\text{or}\ S_{i,j}^{M}=255 \\ & S_{i,j}^{M}+{{w}_{0}},\text{else} \\ \end{align} \right.$ (9)

其中,$S_{i,j}^{\sim }~$为自嵌入后的像素值,这样就完成的目标像素的自嵌入,除此之外,其他像素保持不变,得到自嵌入后的图像I`

2.2 图像加密

在完成自嵌入后,内容所有者按照第1节Paillier加密系统中描述的加密过程,对I~中的每个像素值m随机选取一个整数${r_m} \in Z_n^*,$记${{r}_{0}}=\left\{ {{r}_{m}}|{{r}_{m}}\in Z_{n}^{*},m\in {{I}^{\sim }}~ \right\},$再利用公钥(N,g)进行加密,加密过程记为E[⋅],则有:

$c = E\left[{m,{r_m}} \right] = {g^m} \cdot r_m^N{\rm{ mod }}{N^2}$ (10)

其中,c为密文数据.内容所有者将加密后的图像及自嵌入密钥kse1传递给信息隐藏者,将自嵌入密钥kse1kse2L1传递给接收者.

2.3 信息嵌入

由于目标像素的数据已自嵌入到图像中,可直接用待嵌入数据组成伪像素,加密后替换目标像素完成嵌入.考虑到直接解密后图像的质量,需要限制伪像素的值的范围.图像的质量用PSNR(peak signal to noise ratio)来衡量,其计算公式为

$PSNR = 10\lg {{Num \times {{255}^2}} \over {\sum\limits_{m = 1}^{Num1} {{{\left( {S_m^T - F} \right)}^2} + \sum\limits_{n = 1}^{Num2} {{{\left( {S_n^e - S_n^E} \right)}^2}} } }}$ (11)

其中,Num为像素的总的个数,Num1为目标像素ST的个数,Num2为嵌入像素的Se个数,F为伪像素.对于自然图像,像素的灰度值集中于 [25,230] 的范围内.为了提高PSNR,本文把F的均值定为128.信息隐藏者将待嵌入数据d按每n比特为一组进行分组(n=1,2,…,8),分别为${d_0},...,{d_{n - 1}},$按公式(11)计算得到F1,再加上相应的偏移量得到伪像素F.

${F_1} = \sum\limits_{m = 0}^{n - 1} {{2^m}} \cdot {d_m}$ (12)
$F = {F_1} + 128 - {2^{n - 1}}$ (13)

因此,F的取值范围为[128-2n-1,128+2n-1-1]与F1的值[0,2n-1]一一对应.

信息隐藏者选取一个整数${r_1} \in Z_N^*,$根据第1节提及的加密过程,利用公钥(N,g)对伪像素进行加密,得到E[F,r1],再利用自嵌入密钥kse1,确定目标像素的位置,用加密后的伪像素替换目标像素,完成加密域中的信息嵌入.这里,(r1,n)为信息隐藏密钥.

2.4 信息提取 2.4.1 加密域中的信息提取

当拥有公钥(N,g)、自嵌入密钥kse1和信息隐藏密钥(r1,n)时,接收者可根据以下5个步骤,直接从密文图像中直接提取已嵌入的信息.

第1步.首先利用自嵌入密钥kse1,提取出加密后的伪像素E[F,r1].

第2步.根据n,求得伪像素的取值范围:[128-2n-1,128+2n-1-1].

第3步.利用公钥(N,g)和r1,求得伪像素的每一个可能值Fp=128-2n-1,…,0,…,128+2n-1-1对应的密文E[F,r1],由第1节定理1可知,$\forall \left( {m,r} \right)|m \in {Z_N},r \in Z_N^*$都有唯一的c=E[m,r]与之对应.FpE[Fp,r1]的映射表如图 3所示.

Fig. 3 One-to-One match between Fp and E[Fp,r1] 图 3 FpE[Fp,r1]的映射表

第4步.因为伪像素的值只能为Fp,则对应的密文只能取E[Fp,r1]的值.因此,伪像素E[F,r1]与E[Fp,r1]进行比对,再通过上述映射表得到的Fp,即为伪像素的原值F(可先对E[Fp,r1]进行排序,再利用二分查找等方法进行快速查找),然后减去相应的偏移量128-2n-1,得到由额外信息组成的F1.

第5步.通过公式(14)取出F1的低n位数据${d_0},...,{d_{n - 1}},$提取出嵌入的信息.

${d_m} = \left\lfloor {{{{F_1}} \over {{2^m}}}} \right\rfloor {\rm{ mod }}2,m = 0,1,...,n - 1$ (14)
2.4.2 明文域中的信息提取

当拥有自嵌入密钥kse1、信息隐藏密钥n以及私钥l时,接收者可从含额外信息的明文图像中提取出嵌入的额外信息.接收者首先根据第1节提及的加密过程,利用私钥l对密文图像进行解密,得到已嵌入信息的明文图像.然后利用自嵌入密钥kse1取出伪像素F,直接减去相应的偏移量128-2n-1,得到由额外信息组成的F1.最后按照公式(14)提取出嵌入的信息.

2.5 原图像恢复

图像恢复的具体步骤如下:

1) 图像解密.首先利用私钥λ,根据第1节中的解密过程对图像进行解密.

2) 图像分块和分组.按照与发送端同样的方式对图像进行分块和分组.

3) 自嵌入信息提取.根据自嵌入密钥kse2,找到自嵌入像素$S_{i,j}^ \sim $,对于$S_{i,j}^ \sim $,满足[1, 254],可取出对应自嵌入信息w0.

${{w}_{0}}=\left( S_{i,j}^{\sim }-R \right)\text{mod}2$ (15)

其中,R为$所在像素组的中心像素.

4) 自嵌入像素恢复.接收者统计溢出像素$S_{i,j}^{\sim }~\in \left\{ 0,255 \right\}$的个数Num3,计算出a的长度L2=L1xNum3,根据L1,L2w0中提取出ab,并对a进行分组,每组有L1比特.利用形如公式(18)的方式,重组ao,从而计算出溢出像素对应的扩展后的值$S_{i,j}^E.$

$S_{i,j}^{E}=\left\{ \begin{align} & S_{i,j}^{\sim }~+{{a}_{o}},S_{i,j}^{\sim }~=255 \\ & -{{a}_{o}}, S_{i,j}^{\sim }~=0 \\ \end{align} \right.$ (16)

接收者可根据公式(17)恢复出自嵌入像素的原值Si,j

${{s}_{i,j}}=\left\{ \begin{align} & \left\lfloor \frac{S_{i,j}^{E}+R}{2} \right\rfloor ,\text{if}\ S_{i,j}^{\sim }~=0\ \text{or}\ 255 \\ & \left\lfloor \frac{S_{i,j}^{\sim }~+R}{2} \right\rfloor ,\text{else} \\ \end{align} \right.$ (17)

5) 目标像素恢复.接收者将b进行分组,每8比特为一组,记为${b_0},{b_1},...,{b_7}.$按公式(18)重组目标像素Si,jT

$S_{i,j}^T = \sum\limits_{k = 0}^7 {{b_k}} \cdot {2^k}$ (18)

最后根据嵌入密钥kse1,按顺序将由上式求得的Si,jT替换伪像素,实现原图像的恢复.

3 实验结果及分析

本文首先给出以Lena为载体的实验结果,验证本文算法的可行性.该实验选取8比特灰度图像,图像大小为512×512,取分块大小l=32,每个伪像素嵌入比特数n=4,即在每个大小为32×32的图像块中选择一个目标像素,用一个含4比特额外信息伪像素替换该目标像素进行嵌入,具体实验结果如图 4所示.内容所有者根据自嵌入密钥,从原始图像图 4(a)中选取目标像素,并将目标像素的各比特信息嵌入到其他边缘像素,得到自嵌入后的图像图 4(b),该图像的PSNR为42.9dB.然后,利用Paillier加密系统对图 4(b)进行加密,得到加密图像.信息隐藏者根据信息隐藏密钥将1 024比特额外信息直接嵌入到加密图像中,得到含额外信息的加密图像,其对应的直接解密后的图像如图 4(c)所示,其PSNR为40.61dB,图像质量较好.而在接收端,接收者可根据相应的密钥对图像解密,然后提取出自嵌入的目标像素的数据,得到恢复后的图像如图 4(d)所示.该图像对应的PSNR为+∞,表明恢复出来的图像与原图像完全相同,恢复了原始图像,实现了加密域中的可逆信息隐藏.

Fig. 4 Experiment results with cover Lena 图 4 以Lena为对象的实验结果

然后以Man等8幅灰度图像为载体,对本文算法进行的性能测试,在不同的分块大小l及每个伪像素嵌入信息的比特数n下,PSNR值及其对应嵌入容量见表 1.当l=32时,嵌入512、1 024、1 536、1 792、2 048比特额外信息时,对应于在每个大小为32×32的图像块中选取一个目标像素,每个目标像素嵌入分别嵌入n=2,4,6,7,8比特.由表 1可知,当n≤6时,对应的PSNR相差不大,但n=7,8时,PSNR值分别出现约1dB、3dB的衰减.而随着l的减小,保持每个块中选取一个目标像素,需要进行扩展、用于目标像素自嵌入的边缘像素增加,伪像素的个数也随之增加,使得对应的PSNR明显下降.

Table 1 Embedding rate-PSNR performance of the proposed scheme on different cover images (dB) 表 1 不同嵌入容量下的PSNR值(dB)

图 5为以Lena和Man两幅标准测试图像为载体,本文算法与文献[7, 9]在PSNR及嵌入容量两方面的性能对比.文献[7, 9]均采用流密码进行加密,在保持数据量不变的前提下直接对加密图像嵌入额外信息,计算复杂度较低.如图所示,在相同的嵌入率下,本文算法的PSNR值要比文献[7, 9]的高.这是因为Lena和Man两幅图像相对平滑,且灰度值相对较集中于[92,160],使得差分扩展及信息嵌入对图像质量的影响变小,因而算法性能较优,而对于纹理较丰富的图像如Baboon,或灰度值并不集中于128的图像如Lake,算法性能会有所下降.对于嵌入容量,由于要利用像素间的相关性无损恢复图像,文献[7, 9]中算法的嵌入容量较低,对于上述两幅图像,最大嵌入率仅为0.003 9bpp和0.006 9bpp,在直接解密图像的PSNR为32dB的情况下,本文算法的嵌入率可达0.015 6bpp,容量相对较大.此外,本文利用同态加密系统进行加密,更适用于云计算等第三方信号处理领域,扩展性好、实用价值高.

Fig. 5 Comparision of embedding rate-PSNR with previous methods encrypted by stream cipher 图 5 与经典流加密算法的嵌入容量-PSNR性能比较

文献[13, 15]是两个典型的同态加密域中的图像可逆信息隐藏算法,且具有较大的嵌入容量及较好的图像质量.表 2为本文算法与文献[13, 15]在数据量、信息提取对象及计算复杂度的对比.

Table 2 Comparision of data quantity,object of data extraction and computation complexty with previous methods using homomorphic cryptosystem 表 2 与现有同态加密算法的数据量、数据提取对象及计算复杂度对比

文献[13]中,内容所有者将明文像素值分成LSB和余下的整数,加密后需要将这两路数据传给信息隐藏者,因此,传输的数据为原加密图像的两倍.另外,信息隐藏者利用同态特性改变相邻LSB的相对大小来嵌入信息,而利用同态加密系统加密后的数据无法判别对应明文的大小,因此只能从解密图像中提取信息;该算法的计算复杂度为O(k),其中k为嵌入容量.而文献[15]首先对明文像素值进行约束,加密后通过两次嵌入确保嵌入信息能够在嵌入后的加密图像和直接解密图像进行提取:(1) 利用WPC进行嵌入,使得信息可在加密域中提取; (2) 利用直方图平移嵌入信息,使得信息可在明文域提取.该算法传输的数据量保持不变,但由于利用WPC,该算法在嵌入时需要求解含k个未知数的线性方程,计算复杂度为O(k3),对于容量较高如k=105,计算耗时过长,并不适用于云中存储的对加密图像进行实时处理.而本文算法首先将目标像素嵌入到原图像中,加密后利用由额外信息组成的伪像素替换目标像素完成信息的嵌入.伪像素的值的范围受限于嵌入密钥,接收者可在加密域或明文域中,根据密钥求出伪像素的可能值,通过比对便可提取信息.因此,相比文献[13, 15],本文算法所要传输的数据量较低,计算复杂度仅为O(k),能够快速地嵌入和提取信息,且能够在加密域和明文域中完成信息的提取,更适用于云中加密图像的快速检索、完整性认证等.虽然,本文算法相对于文献[13, 15]嵌入容量较低,但对于大小为512×512的图像,PSNR为32dB时,嵌入容量为7 168比特,这对于在云中进行图像相关关键词索引、特性信息等嵌入操作来说,是足够的.

4 总 结

本文提出了一种基于同态公钥加密系统的图像可逆信息隐藏算法,该算法首先根据嵌入密钥选取目标像素,然后利用DE算法将目标像素嵌入到明文图像中,再利用Paillier加密系统进行加密,得到加密图像.信息隐藏者利用待嵌入信息组成伪像素,加密后替换目标像素完成信息嵌入.在接收端,可根据密钥计算出伪像素的明文值范围与其密文值的映射表,从密文图像中提取出加密后的伪像素后,通过比对和查表,得到伪像素的值,或在解密后根据密钥提取伪像素,最后从伪像素中提取已嵌入的信息.此外,接收者在解密后提取出自嵌入信息,恢复自嵌入像素和目标像素,从而恢复出原始图像.本文算法能够在数据量保持不变的前提下完成同态加密域中额外信息的嵌入;计算复杂度较低,信息的嵌入和提取快速高效,并可分别从加密域和明文域中提取出嵌入的信息.利用本文算法,管理者可向云或服务器中的加密图像嵌入相应的标签、版权信息或图像的特征信息,实现对加密图像的快速检索、版权认证及内容安全保护.因此,本文所提出的同态加密域信息隐藏算法对云计算中加密图像的管理和保护具有重要意义.

参考文献
[1] Hsu CY, Lu CS, Pei SC. Image feature extraction in encrypted domain with privacy-preserving SIFT. IEEE Trans. on Image Processing, 2012, 2,21 (11) :4593–4607 . [doi:10.1109/TIP.2012.2204272]
[2] Creeger M. Cloud computing: An overview. ACM Queue, 2009, 7 (5) :1–5 . [doi:10.1145/1551644.1551646]
[3] Hurwitz J, Bloor R, Kaufman M, Halper F. Cloud Computing for Dummies. Wiley Publishing Inc, 2009 .
[4] Chow R, Golle P, Jakobsson M, Shi E, Staddon.J, Masuoka R, Molina J. Controlling data in the cloud: Outsourcing computation without outsourcing control. In: Proc. of the 2009 ACM Workshop on Cloud Computing Security (CCSW 2009). 2009. 85-90. [doi:10.1145/1655008.1655020]
[5] Lagendijk RL, Zekeriya E, Barni M. Encrypted signal processing for privacy protection: Conveying the utility of homomorphic encryption and multiparty computation. IEEE Signal Processing, 2013, 30 (1) :82–105 . [doi:10.1109/MSP.2012.2219653]
[6] Feng DG, Zhang M, Zhang Y, Xu Z. Study on cloud computing security. Ruan Jian Xue Bao/Journal of Software (in Chinese with English abstract), 2011, 22 (1) :71–83 . [doi:10.3724/SP.J.1001.2011.03958]
[7] Zhang XP. Reversible data hiding in encrypted image. IEEE Signal Processing Letters, 2011, 18 (4) :255–258 . [doi:10.1109/LSP.2011.2114651]
[8] Zheng HY, Gao Z, Xiao D. Novel reversible data embedding algorithm for encrypted image. Computer Engineering and Applications, 2014, 50 (7) :186–189 .
[9] Hong W, Chen TS, Wu HY. An improved reversible data hiding in encrypted image using side match. IEEE Signal Processing Letters, 2012, 19 (4) :199–202 . [doi:10.1109/LSP.2012.2187334]
[10] Hong W, Chen TS, Kao YH. Reversible data embedment for encrypted cartoon images using unbalanced bit flipping. Advances on Swarm Intelligence Lecture Notes in Computer Science, 2013, 7929 :208–214 . [doi:10.1007/978-3-642-38715-9_25]
[11] 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]
[12] Ma KD, Zhang WM, Zhao XF, Yu NH, Li FH. Reversible data hiding in encrypted images by reserving room before encryption. IEEE Trans. on Information Forensics and Security, 2013, 8 (3) :553–562 . [doi:10.1109/TIFS.2013.2248725]
[13] 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]
[14] 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. Czech Republic, 1999. 223-238. [doi:10.1007/3-540-48910-X_16]
[15] Zhang XP, Loong 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, . [doi:10.1109/TCSVT.2015.2433194]
[16] Fridrich J, Goljan M, Lisonek P, Soukal D. Writing on wet paper. IEEE Trans. on Signal Processing, 2005, 53 (10) :3923–3935 . [doi:10.1109/TSP.2005.855393]
[17] Rivest R, Adleman L, Dertouzos M. On data banks and privacy homomorphisms. In: Foundations of Secure Computation. Cambridge: MIT Press, 1978. 169-178.
[18] Goldwasser S, Micali S. Probabilistic encryption. Journal of Computer and System Sciences, 1984, 28 (2) :270–299 . [doi:10.1016/0022-0000(84)90070-9]
[19] Bianchi T, Piva A, Barni M. On the implementation of the discrete Fourier transform in the encrypted domain. IEEE Trans. on Information Forensics and Security, 2009, 4 (1) :86–97 . [doi:10.1109/TIFS.2008.2011087]
[20] Bianchi T, Piva A, Barni M. Composite signal representation for fast and storage-efficient processing of encrypted signals. IEEE Trans. on Information Forensics and Security, 2010, 5 (1) :180–187 . [doi:10.1109/TIFS.2009.2036230]
[21] 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]
[6] 冯登国, 张敏, 张妍, 徐震, 云计算安全研究, 软件学报, 2011, 22(1):71-83. 云计算安全研究. 软件学报, 2011,22 (1) :71–83. [doi:10.3724/SP.J.1001.2011.03958]
[8] 郑洪英, 高真, 肖迪. 密文图像中的可逆信息隐藏算法. 计算机工程与应用, 2014,50 (7) :186–189.