«上一篇 下一篇»
  计算机工程  2020, Vol. 46 Issue (10): 112-119  DOI: 10.19678/j.issn.1000-3428.0056281
0

引用本文  

周能, 张敏情, 林文兵. 基于秘密共享的可分离密文域可逆信息隐藏算法[J]. 计算机工程, 2020, 46(10), 112-119. DOI: 10.19678/j.issn.1000-3428.0056281.
ZHOU Neng, ZHANG Minqing, LIN Wenbing. Separable Reversible Information Hiding Algorithm in Encrypted Domain Based on Secret Sharing[J]. Computer Engineering, 2020, 46(10), 112-119. DOI: 10.19678/j.issn.1000-3428.0056281.

基金项目

国家自然科学基金"数字图像隐写检测关键特征的提取和优化理论研究"(61379152);国家自然科学基金"基于加密过程的密文域可逆信息隐藏理论与方法研究"(61872384)

作者简介

周能(1993-), 男, 硕士研究生, 主研方向为密文域可逆信息隐藏;
张敏情, 教授、博士;
林文兵, 硕士研究生

文章历史

收稿日期:2019-10-14
修回日期:2019-11-26
基于秘密共享的可分离密文域可逆信息隐藏算法
周能 , 张敏情 , 林文兵     
武警工程大学 密码工程学院 网络与信息安全武警部队重点实验室, 西安 710086
摘要:为提高密文域可逆信息隐藏的嵌入容量,在秘密共享的基础上,提出一种可分离密文域可逆信息隐藏算法。该算法对原始图像进行位平面分割,并在密文低位平面上利用差值扩展算法嵌入数据,在密文高位平面上通过同态加法嵌入数据。接收者可分别对低位平面和高位平面解密,得到与原始图像近似的解密图像,同时,接收者还可直接在密文低位平面上提取数据,而在高位平面上解密后提取数据,并实现原始图像的可逆恢复。仿真实验结果表明,相比现有可分离算法,该算法具有较高的峰值信噪比,且平均嵌入率达到了0.3 BPP。
关键词信息安全    可逆信息隐藏    密文域    秘密共享    差值扩展    
Separable Reversible Information Hiding Algorithm in Encrypted Domain Based on Secret Sharing
ZHOU Neng , ZHANG Minqing , LIN Wenbing     
Key Laboratory of Network and Information Security Under Chinese People Armed Police Force (PAP), College of Cryptography Engineering, Engineering University of PAP, Xi'an 710086, China
Abstract: In order to improve the embedding capacity of reversible information hiding in encrypted domain, this paper proposes a separable reversible information hiding algorithm in encrypted domain based on secret sharing.Firstly, the original image is segmented according to the bit-planes.Then, the data is embedded into the low bit-planes of the encrypted data by using the Difference Expansion(DE) algorithm, and embedded into the high bit-planes by using homomorphic addition.The receiver decrypts the low bit-planes and high bit-planes respectively to obtain a decrypted image similar to the original image.Also, the receiver can extract data directly in the low bit-planes of the encrypted data, and extract data after the high bit-planes are decrypted, so as to realize the reversible recovery of the original image.Simulation results show that the proposed algorithm has a higher Peak Signal to Noise Ratio(PSNR) than the existing separable algorithms, and its average embedding rate reaches 0.3 BPP.
Key words: information security    reversible information hiding    encrypted domain    secret sharing    Difference Expansion(DE)    
0 概述

密文域可逆信息隐藏是密文域信号处理技术与信息隐藏技术的重要结合点, 其对数据处理过程中的信息安全具有隐私保护与秘密信息传递双重作用, 且主要应用于加密数据的管理与认证以及隐蔽通信领域, 在医学图像、军事图像和云环境下的数据隐私保护上具有很高的应用价值。近年来, 出现了很多密文域可逆信息隐藏算法, 如文献[1]提出一种在密文图像上的可逆信息隐藏算法, 该算法通过将密文图像分成互不重叠的块, 每块有两组, 通过翻转相应组中每个像素的3个最低有效位(Least Significant Bit, LSB)并嵌入1 bit信息, 接收者通过波动函数提取秘密信息, 且分块越小, 错误率越高。文献[2]通过使用能够进行边匹配的波动函数对文献[1]算法进行改进。文献[3]提出可分离的密文域可逆信息隐藏算法, 使得在加密域和明文域中都能提取出秘密信息。上述密文域可逆信息隐藏算法均需要在图像加密后留出空间进行信息隐藏, 导致算法的嵌入率较低, 数据提取过程中的错误率较高。文献[4]提出一种在加密前预留空间的密文域可逆信息隐藏算法。文献[5]利用数据嵌入的预测误差来提高算法的可逆性、嵌入容量和图像质量。此外, 基于压缩的密文域可逆信息隐藏算法也已被提出, 如文献[6]将密文域可逆信息隐藏算法用于JPEG图像, 文献[7]将密文域可逆信息隐藏算法用于绝对矩块截断编码图像。

文献[8]提出基于公钥密码的加密信号可逆信息隐藏算法, 该算法将1 bit信息嵌入至一对相邻的加密像素中, 根据Paillier密码体制[9]加密的同态特性, 接收端通过比较所有的解密像素对获得秘密信息, 但存在固有的溢出问题。文献[10-11]通过解决固有的溢出问题, 实现了对文献[8]算法的改进。文献[10]将不可嵌入位置记为边信息, 图像所有者将边信息加密之后发送给数据嵌入者, 这样数据嵌入者在嵌入秘密信息时能够避免溢出, 文献[11]采取信号能量转移的方法, 将图像的像素值分成3个整数来表示, 从而避免溢出。文献[12]提出一种可分离的算法, 该算法将湿纸编码(Wet Paper Code, WPC)[13]和Paillier同态加密特性相结合, 在加密域中利用直方图收缩留出嵌入空间, 并使用WPC嵌入秘密信息。文献[14]提出的算法根据嵌入密钥选取目标像素, 利用差分扩展的方法将目标像素自嵌入至明文图像中, 再利用Paillier加密系统进行加密, 从而得到加密图像。文献[15]采用加密前预留空间的方法, 利用Paillier密码体制的同态和概率特性, 提出一种基于镜像密文组的可分离算法, 该算法的平均嵌入率为0.25比特每像素(Bit Per Pixel, BPP), 但采用的加密前预留空间方法将会增加明文泄露的风险。

在密文域可逆信息隐藏中, 对于流密码加密图像与Paillier密码加密图像, 研究与设计算法的过程都是从不可分离发展到可分离的过程。与上述加密算法不同, 文献[16]利用Shamir(k, n)门限秘密共享设计了密文域可逆信息隐藏算法。该算法利用秘密共享将原始图像加密成n份, 并分别发送给n位不同的数据嵌入者, 数据嵌入者通过在密文上进行差值扩展(Difference Expansion, DE)或者差值直方图平移操作嵌入信息, 接收者得到少于k份无法恢复的原始图像。文献[17]将多秘密共享加法同态的特点与差值扩展算法[18]相结合进行信息嵌入, 该算法将像素值作为多项式的系数, 而不是多项式的常数项, 降低了算法的时间复杂度。

目前, 密文域可逆信息隐藏算法采用的图像加密方式主要包括流密码、Paillier公钥密码与秘密共享3种方式。流密码的密钥流通过伪随机数发生器生成, 流密码具有结构简单、运行速度快以及消耗资源少等优势, 但是也存在扩散程度不足以及保密通信前需要传递密钥等缺点。采用Paillier公钥密码加密图像能够克服流密码加密需要事先传递密钥的缺点, 且能够利用Paillier公钥密码的同态特性在密文域中进行信息的嵌入与提取, 但是公钥密码加解密速度较慢、密钥尺寸大也是不容忽视的问题。

针对上述流密码加密方式和Paillier公钥密码加密方式存在的问题, 本文选择秘密共享加密方式对图像进行加密, 一方面是由于图像所有者不需要向数据嵌入者传递密钥, 仅需要向接收者传递密钥, 另一方面是由于秘密共享的加解密速度比Paillier公钥密码快。在秘密共享的基础上, 本文利用位平面分割技术实现了可分离的密文域可逆信息隐藏算法。

1 相关知识 1.1 秘密共享 1.1.1 Shamir门限秘密共享

Shamir门限秘密共享方案[19]采用的数学原理是拉格朗日插值方程, 且其主要思想是利用秘密共享技术将秘密S分成n份, 并分布于n个不同的存储和处理中心进行保护, 使用其中的k份可以重新还原出秘密S, 如果份数少于k, 则不能还原出秘密S。数据共享份额被分布式存储于不同的物理位置, 这样即使n-k-1个共享被攻击而且已经威胁到系统安全, 数据的机密性仍可以保持且可以重构原始数据, 从而实现抵抗入侵。

假设q是素数的幂, D是有限域G(q)的本原元, 共享的秘密SG(q), 随机选取G(q)上的k-1次多项式f(x), 使得下式成立:

$ f(x) = S + {a_1}x + {a_2}{x^2} + \cdots + {a_{k - 1}}{x^{k - 1}} $ (1)

其中, aiG(q), 1≤ik-1, 且ak-1≠0。对n个互不相同的身份DiG(q), 1≤in, 计算Si=f(Di), 则集合{Si}i=1n构成了(k, n)门限方案。通常Di由种子密钥K通过伪随机数发生器生成, 为了增加安全性, K的长度应为256 bit或者512 bit。

假设n个参与者能够正确提供k个份额{Si}i=1k, 则根据拉格朗日插值方程可得到:

$ f(x) = \sum\limits_{i = 1}^k {{S_i}} \prod\limits_k {\frac{{x - {D_j}}}{{{D_i} - {D_j}}}} $ (2)

f(x)的常数项即秘密S=f(0), 每个参与者Di都可利用其掌握的份额Si来验证所求得的f(x)是否正确, 从而能够发现其他参与者可能存在的欺骗行为。当份额数量r < k时, 需要确定k-1次多项式f(x)中的所有系数, 且必须另外找到k-r个插值点, 这需要在有限域G(q)中穷尽搜索qk-r次, 从而存在qk-r个多项式f(x)满足f(Di)=Si, 1≤ir, 因此确定秘密S的取值是一个难题。

1.1.2 多秘密共享

在(k, n)门限秘密共享中, 如果每次需要共享d个秘密S1, S2, …, Sd, 并且假定攻击者只能得到c(c < k)个秘密份额, 则构成了(c, d, k, n)多秘密共享。文献[20]给出了多秘密共享的形式化定理。

定理1  存在一个(k-d, d, k, n)多秘密共享方案, 能够在n个用户之间共享d个秘密, 其中, dk < n

本文设置参数d=tk=2tn=2t, 且能够提供无条件安全性, 下面介绍多秘密共享的加法同态性质。

1) 加密性质。随机选择riG(q′), 1≤it组成密钥R=(rt, rt-1, …, r1), 且秘密信息P=(pt, pt-1, …, p1)由piG(q′), 1≤it组成, 然后将RP中的元素设置为多项式f(x)的系数, 具体如式(3)所示, 采用公共身份D1, D2, …, Dt计算得到f(D1), f(D2), …, f(Dt)作为密文数据, 并记为(EncR(p1), EncR(p2), …, EncR(pt))。

$ \begin{array}{*{20}{l}} {f(x) = {p_t}{x^{2t - 1}} + {p_{t - 1}}{x^{2t - 2}} + \cdots + {p_1}{x^t} + {r_t}{x^{t - 1}} + }\\ {{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {r_{t - 1}}{x^{t - 2}} + \cdots + {r_1}{x^0}} \end{array} $ (3)

2) 同态加法性质。给定st, st-1, …, s1, 并作为多项式g(x)的前t项系数, 具体如式(4)所示, 同样将D1, D2, …, Dt代入式(4)可得到g(D1), g(D2), …, g(Dt), 然后计算f′(Di)=f(Di)+g(Di), 1≤it, 并将其记为(EncR(p1), EncR(p2), …, EncR(pt))

$ g(x) = {s_t}{x^{2t - 1}} + {s_{t - 1}}{x^{2t - 2}} + \cdots + {s_1}{x^t} $ (4)

3) 解密性质。由同态加法性质得到了t个等式, 如式(5)所示, 由于f′(Di)、Dirt, rt-1, …, r1均为已知, 因此可通过高斯消元法求得zt, zt-1, …, z1, 且满足zi=pi+si, 1≤it

$ \begin{array}{*{20}{l}} {{f^\prime }({D_i}) = z_t^\prime {{({D_i})}^{2t - 1}} + z_{t - 1}^\prime {{({D_i})}^{2t - 2}} + \cdots + z_1^\prime ({D_i})t + }\\ {{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {r_t}{{({D_i})}^{t - 1}} + {r_{t - 1}}{{({D_i})}^{t - 2}} + \cdots + {r_1}{{({D_i})}^0}} \end{array} $ (5)
1.2 图像位平面分割

记8位图像矩阵I的大小为M×N, 图像像素记为Ii, j, 则Ii, j的二进制表示为{bi, j, 7, bi, j, 6, …, bi, j, 0}, 且有:

$ {{b_{i,j,k}} = \left\lfloor {\frac{{{I_{i,j}}}}{{{2^k}}}} \right\rfloor {\rm{mod}}{\kern 1pt} {\kern 1pt} 2,k = 0,1, \cdots ,7} $ (6)
$ {{\mathit{\boldsymbol{I}}_{i,j}} = \sum\limits_{k = 0}^7 {{b_{i,j,k}}} \times {2^k},0 \le {\mathit{\boldsymbol{I}}_{i,j}} \le 255} $ (7)

其中, 1≤iM, 1≤jN, $\left\lfloor \cdot \right\rfloor $表示向下取整。图像可用大小为M×N的矩阵I表示:

$ {\mathit{\boldsymbol{I}}_{M \times N}} = {\left[ {\begin{array}{*{20}{c}} {{I_{1,1}},}&{ \cdots ,}&{{I_{1,j}},}&{ \cdots ,}&{{I_{1,N}}}\\ \vdots &{}& \vdots &{}& \vdots \\ {{I_{i,1}},}&{ \cdots ,}&{{I_{i,j}},}&{ \cdots ,}&{{I_{i,N}}}\\ \vdots &{}& \vdots &{}& \vdots \\ {{I_{M,1}},}&{ \cdots ,}&{{I_{M,j}},}&{ \cdots ,}&{{I_{M,N}}} \end{array}} \right]_{M \times N}} $

图像所有者将图像矩阵I按位的从高到低的顺序分解为高位平面矩阵H和低位平面矩阵L, H由前8-v个比特(bi, j, 7, bi, j, 6, …, bi, j, v)所代表的元素组合而成, L由后v个比特(bi, j, v-1, bi, j, v-2, …, bi, j, 0)所代表的元素组合而成。记hi, jli, j分别表示矩阵HL中的元素, 且满足hi, j∈[0, 28-2v], li, j∈[0, 2v-1], 则有:

$ {{h_{i,j}} = \sum\limits_{k = v}^7 {{b_{i,j,k}}} \times {2^k},{b_{i,j,k}} \in \{ 0,1\} } $ (8)
$ {{l_{i,j}} = \sum\limits_{k = 0}^{v - 1} {{b_{i,j,k}}} \times {2^k},{b_{i,j,k}} \in \{ 0,1\} } $ (9)

高位平面矩阵H和低位平面矩阵L分别为:

$ {\mathit{\boldsymbol{H}}_{M \times N}} = {\left[ {\begin{array}{*{20}{c}} {{h_{1,1}},}&{ \cdots ,}&{{h_{1,j}},}&{ \cdots ,}&{{h_{1,N}}}\\ \vdots &{}& \vdots &{}& \vdots \\ {{h_{i,1}},}&{ \cdots ,}&{{h_{i,j}},}&{ \cdots ,}&{{h_{i,N}}}\\ \vdots &{}& \vdots &{}& \vdots \\ {{h_{M,1}},}&{ \cdots ,}&{{h_{M,j}},}&{ \cdots ,}&{{h_{M,N}}} \end{array}} \right]_{M \times N}} $
$ {\mathit{\boldsymbol{L}}_{M \times N}} = {\left[ {\begin{array}{*{20}{c}} {{l_{1,1}},}&{ \cdots ,}&{{l_{1,j}},}&{ \cdots ,}&{{l_{1,N}}}\\ \vdots &{}& \vdots &{}& \vdots \\ {{l_{i,1}},}&{ \cdots ,}&{{l_{i,j}},}&{ \cdots ,}&{{l_{i,N}}}\\ \vdots &{}& \vdots &{}& \vdots \\ {{l_{M,1}},}&{ \cdots ,}&{{l_{M,j}},}&{ \cdots ,}&{{l_{M,N}}} \end{array}} \right]_{M \times N}} $
2 本文算法 2.1 算法框架

基于秘密共享的可分离密文域可逆信息隐藏算法流程如图 1所示。图像所有者对原始图像进行位平面分割, 选择采用秘密共享体制加密低位平面和多秘密共享体制加密预处理后的高位平面。数据嵌入者在密文低位平面上利用DE算法嵌入秘密信息, 在密文高位平面上通过多秘密共享同态加法嵌入秘密信息, 接收者在加密域和明文域中都能正确提取出秘密信息, 且能够可逆恢复原始图像。

Download:
图 1 本文算法流程 Fig. 1 Procedure of the proposed algorithm
2.2 算法过程 2.2.1 预处理

图像位平面分割后, 对图像的高位平面进行预处理。假设图像的像素对为(x, y), 则DE算法需要先计算该像素对的均值$l=\left\lfloor\frac{x+y}{2}\right\rfloor$与差值d=x-y, 再计算x′=l+d, y′=l-d, 则可在新的像素对(x′, y′)上嵌入信息。此外, 为了秘密共享的安全性, 有限域G(q)和G(q′)的大小应为质数, 有限域大小qq′与图像位平面分割参数v的对应关系如表 1所示。

下载CSV 表 1 本文算法中参数的对应关系 Table 1 Corresponding relation of parameters in the proposed algorithm

本文算法中有两处产生边信息, 以图像位平面分割参数v=5为例说明本文对边信息的处理方法。因为v=5, 所以hi, j∈[0, 224], li, j∈[0, 31], 则分别对应的有限域大小为q′=223和q=31, 且不可嵌入位置有:

1) 差值扩展产生不可嵌入位置:当位平面HL的像素对(x, y)中任一像素的值不在图像灰度值[0, 224]、[0, 31]内时, 则标记为不可嵌入位置。

2) 秘密共享产生不可嵌入位置:有限域的大小为q′=223和q=31, 而图像灰度值分别在[0, 224]和[0, 31]内, 因此在像素对(x, y)加密之前必须除去高位平面H中的2个像素值和低位平面L中的1个像素值。若用rH表示高位平面中可以用多秘密共享加密的像素值, 用rL表示低位平面中可以用秘密共享加密的像素值, 且rH=222, rL=30, 则rHrL分别为rHrL的互斥集合, 且rH=2, rL=1。如果像素对(x, y)中任一像素的值在集合rH, rL中, 则标记为不可嵌入位置。采用位图的方法来标记这些不可嵌入位置, 具体如式(10)所示:

$ {B_m} = \left\{ {\begin{array}{*{20}{l}} {1,x,y \notin [0,224] \cup [0,31] \cup {r_\mathit{\boldsymbol{H}}} \cup {r_\mathit{\boldsymbol{L}}}}\\ {0,{\rm{ otherwise }}} \end{array}} \right. $ (10)

图像中的不可嵌入位置是少数的, 即位图中少数为1, 多数为0, 这样可以将位图利用游程长度编码(Run-Length Coding, RLC)压缩后作为边信息嵌入到图像中。图像所有者按以下步骤对图像进行处理:

步骤1  将图像分为2个部分, 并得到边信息, 记为U

步骤2  利用秘密共享加密图像中的第一部分像素, 并将密文像素最低有效位标记为X

步骤3  将边信息U通过直接替换图像中的第一部分LSB的方式进行嵌入。

步骤4  将X按照本文算法嵌入到图像的第二部分。

数据嵌入者接收到密文图像后, 可得到边信息U, 然后在图像的第二部分嵌入秘密信息m。通常约定图像的第1行嵌入U、第2行和第3行均嵌入X、其他部分均嵌入m, 知道了嵌入的起点和终点, 即完成了边信息的处理。

2.2.2 高位平面

若图像有t个像素, 则可组成t/2个像素对(xi, yi), i∈[1, t/2], 并生成DiG(q′), 1≤it。图像所有者按照以下步骤对高位平面进行处理:

步骤1  密钥生成:随机选择r1, r2, …, rtG(q′)组成密钥R=(rt, rt-1, …, r1), 只需要将密钥R传递给接收者。

步骤2  图像加密:对每个像素对(xi, yi), 先计算其均值$l_{i}=\left\lfloor\frac{x_{i}+y_{i}}{2}\right\rfloor$和差值di=xi-yi, 再计算xi=li+diyi=li-di, 则图像的t个像素(p1, p2, …, pt)=(x1, y1, x2, y2, …, xt/2, yt/2)与密钥R构成多项式f(x)=ptx2t-1+pt-1x2t-2+…+p1xt+rtxt-1+rt-1xt-2+…+r1x0, 然后计算Yi=f(Di)得到密文像素, 并记为EncR(pi)=Yi

步骤3  信息嵌入:若秘密信息m=(m1, m2, …, mt/2), 由于信息只嵌入到像素对的第一个像素中, 因此将秘密信息扩展为s=(s1, s2, …, st)=(m1, 0, m2, 0, …, mt/2, 0)。s作为系数构成多项式g(x)=stx2t-1+st-1x2t-2+…+s1xt, 计算Yis=g(Di)得到密文信息, 记为EncR(si)=Yis, 最终得到携密密文像素EncR(pi)=EncR(pi)+EncR(si)

步骤4  解密并提取信息:若接收者得到密钥R, 则{ri}i=1t和未知数{zi}i=1t构成2t次多项式f′(x)=ztx2t-1+zt-1x2t-2+…+z1xt+rtxt-1+rt-1xt-2+…+r1x0, 向多项式f′(x)中代入{Di, EncR(pi)}i=1t, 可得到多项式EncR(pi)=zt(Di)2t-1+zt-1(Di)2t-2+…+z1(Di)t+rt(Di)t-1+rt-1(Di)t-2+…+r1, 通过高斯消元法解得{zi}i=1t。解密后得到嵌入信息的图像, 将{zi}i=1t分成t/2个像素对(xi, yi), i∈[1, t/2]。若(xi+yi)mod 2=0, 接收者提取mi=0并令xi=xi, yi=yi; 若(xi+yi)mod 2=1, 接收者提取mi=1并令xi=xi-1, yi=yi。接收者先计算$l_{i}=\left\lfloor\frac{x_{i}^{\prime}+y_{i}^{\prime}}{2}\right]$$d_{i}=\frac{x_{i}^{\prime}-y_{i}^{\prime}}{2}$, 再计算$x_{i}=l_{i}+\left\lfloor\frac{d_{i}+1}{2}\right\rfloor$$y_{i}=l_{i}-\left\lfloor\frac{d_{i}}{2}\right\rfloor$即可得到原始像素值。

2.2.3 低位平面

若图像有t个像素, 则可组成t/2个像素对(xi, yi), i∈[1, t/2], 并按以下步骤处理低位平面:

步骤1  密钥生成:用种子密钥K通过伪随机数发生器生成DiG(q), 1≤in, 且只需要将{Di}i=1n传递给接收者。

步骤2  图像加密:对每个像素对(xi, yi), 随机选择ai, biG(q), 1≤ik-1并构成式(11)中的2个多项式, 计算Yi=f1(Di), Yi=f2(Di)得到密文像素, 记为EncK(xi)=Yi, EncK(yi)=Yi

$ \begin{array}{*{20}{l}} {{f_1}(x) = {x_i} + {a_1}x + {a_2}{x^2} + \cdots + {a_{k - 1}}{x^{k - 1}}}\\ {{f_2}(x) = {y_i} + {b_1}x + {b_2}{x^2} + \cdots + {b_{k - 1}}{x^{k - 1}}} \end{array} $ (11)

步骤3  直接在密文上进行信息嵌入:对每一对密文像素(Yi, Yi), 先计算均值$l_{i}=\left\lfloor\frac{Y_{i}+Y_{i}^{\prime}}{2}\right\rfloor$和差值di=Yi-Yi, 再计算xi=li+diyi=li-di。若秘密信息m=(m1, m2, …, mt/2), 由于信息只嵌入到像素对的第一个像素中, 因此同样可将秘密信息m扩展为s=(s1, s2, …, st)=(m1, 0, m2, 0, …, mt/2, 0), 并将s和(Yi, Yi)相加得到携密密文像素对(xi, yi), i∈[1, t/2]。

步骤4  提取信息并解密:若(xi+yi)mod 2=0, 接收者提取mi=0, 并令xi=xi, yi=yi; 若(xi+yi)mod 2=1, 接收者提取mi=1, 并令xi=xi-1, yi=yi。接收者先计算$l_{i}=\left\lfloor\frac{x_{i}^{\prime}+y_{i}^{\prime}}{2}\right]$$d_{i}=\frac{x_{i}^{\prime}-y_{i}^{\prime}}{2}$, 再计算$Y_{i}=l_{i}+\left\lfloor\frac{d_{i}+1}{2}\right\rfloor$$Y_{i}^{\prime}=l_{i}-\left\lfloor\frac{d_{i}}{2}\right\rfloor$即可得到密文像素值(Yi, Yi)。通过计算拉格朗日插值方程$f(x)=\sum\limits_{i=1}^{k} Y_{i} \prod\limits_{k} \frac{x-D_{j}}{D_{i}-D_{j}}$的常数项可得到原始像素值。

2.2.4 算法实例

实验选择参数v=5、q′=223、q=31、k=3、n=5, 像素对为(102, 100)。图像所有者将像素对(102, 100)按位平面分割为H(96, 96)和L(6, 4)。对于H(96, 96), 计算均值l=96和差值d=0, 并得到新的像素对(96, 96), 图像所有者随机选择密钥r1=10, r2=7构成3次多项式f(x)=(96x3+96x2+10x+7)mod 223, 并将公共身份D1=1, D2=2代入多项式得到209和64, 则(209, 64)为H(96, 96)的密文像素; 对于L(6, 4), 假设图像所有者用K通过伪随机数发生器生成{Di}i=15={1, 2, 3, 4, 5}, 随机选择a1=10、a2=7、b1=2、b2=9构成2次多项式f1(x)=(10x2+7x+6)mod 31, f2(x)=(2x2+9x+4)mod 31, 并将公共身份{Di}i=15={1, 2, 3, 4, 5}代入多项式得到L(6, 4)的密文像素分别为(23, 15)、(29, 30)、(24, 18)、(8, 10)与(12, 6)。

数据嵌入者接收到H(96, 96)的密文像素为(209, 64), 并将秘密信息m=1扩展为s=(1, 0), 将D1=1, D2=2代入计算得到y1s=[1(D1)3+0(D1)2]mod 223=1和y1s=[1(D2)3+0(D2)2]mod 223=8, 则携密密文像素为(210, 72)=(209, 64)+(1, 8);数据嵌入者接收到L(6, 4)的密文像素分别为(23, 15)、(29, 30)、(24, 18)、(8, 10)与(12, 6), 分别执行同样的嵌入操作, 以(23, 15)为例, 计算均值l=$\left\lfloor\frac{23+15}{2}\right\rfloor$=19和差值d=23-15=8, 得到新的像素对(l+d, l-d)=(27, 11), 然后在第一个像素上嵌入m=1得到携密密文像素(28, 11), 同样, 得到其他密文像素的携密密文像素分别为(29, 30)、(28, 15)、(8, 11)与(16, 3)。

接收者拥有密钥r1=10, r2=7, 对H(96, 96)的携密密文像素(210, 72), 利用高斯消元法求解方程组$\left\{\begin{array}{l}210=\left(p_{1}+p_{2}+10+7\right) \bmod 223 \\ 72=\left(8 p_{1}+4 p_{2}+20+7\right) \bmod 223\end{array}\right.$得到(97, 96), 因为(97+96)mod 2=1, 所以提取m=1并恢复原始像素对(96, 96);对L(6, 4)的携密密文像素(28, 11)、(29, 30)、(28, 15)、(8, 11)与(16, 3), 以(28, 11)为例, 因为(28+11)mod 2=1, 所以提取m=1并得到(27, 11), 计算均值$l=\left\lfloor\frac{27+11}{2}\right\rfloor=19$和差值$d=\frac{27-11}{2}=8$, 得到密文像素对$\left(l+\left\lfloor\frac{d+1}{2}\right\rfloor, l-\left\lfloor\frac{d}{2}\right\rfloor\right)$=(23, 15), 同样可得到另外的密文像素对(29, 30)、(24, 18)、(8, 10)与(12, 6), 根据Shamir(3, 5)门限秘密共享, 得到任意3个密文即可恢复原始像素值。若D1=1, D3=3, D5=5想要恢复原始像素值, 则计算拉格朗日插值方程:

$ \begin{array}{*{20}{l}} {f(x) = 23\frac{{(x - 3)(x - 5)}}{{(1 - 3)(1 - 5)}} + 24\frac{{(x - 1)(x - 5)}}{{(3 - 1)(3 - 5)}} + }\\ {{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} 12\frac{{(x - 1)(x - 3)}}{{(5 - 1)(5 - 3)}} = \frac{{ - 13{x^2} + 56x + 141}}{8}\,{\rm{mod}}\,31} \end{array} $

f(x)的常数项f(0)=6, 同样计算另一个拉格朗日插值方程可得到f(0)=4, 因此得到原始像素对为(6, 4)。

3 仿真实验与结果分析

为测试本文算法的性能, 本文选用USC-SIPI图像库中大小为512×512的256级灰度图像进行实验, 实验环境为CPU为Intel CoreTM i7-5500U @ 2.40 GHz, RAM为4 GB, OS为Windows 10, Programming为MATLAB R2015b。

本文算法对Lena图像的实验过程如图 2所示。

Download:
图 2 本文算法对Lena图像的实验过程(v=5) Fig. 2 The experimental process of Lena image by the proposed algorithm(v=5)
3.1 嵌入率与峰值信噪比分析

可逆信息隐藏通常采用峰值信噪比(Peak Signal to Noise Ratio, PSNR)[21]评价直接解密图像的质量或失真情况, PSNR的计算方法为:

$ {\rm{PSNR}} = 10 \times {\rm{lg}}\left( {\frac{{{{255}^2}}}{{{\rm{MSE}}}}} \right) $ (12)

其中, MSE(Mean Square Error)是原始图像和嵌入信息后图像之间的均方根误差, MSE的计算方法为:

$ {\rm{MSE}} = \frac{1}{{M \times N}}\sum\limits_{i = 0}^{M - 1} {\mathop \sum \limits_{j = 0}^{N - 1} } {[{\mathit{\boldsymbol{I}}_{i,j}} - {\mathit{\boldsymbol{C}}_{i,j}}]^2} $ (13)

其中, M×N是图像大小, Ii, j是原图像的像素值, Ci, j是嵌入信息后图像的像素值。

本文算法对Lena图像和Man图像的嵌入率实验数据如表 2表 3所示。从表 2表 3可以看出, 在相同的嵌入容量下, 参数v的大小对嵌入率影响较大, 这是由于参数v的变化导致图像中不可嵌入像素的个数发生变化, 当v=5时, 本文算法的嵌入率最高。为了更加直观地展现在相同嵌入率下, 直接解密图像的PSNR性能, 图 3图 4分别给出了图像Lena和图像Man的PSNR值曲线。从图 3图 4可以看出, 当参数v=5时, 图像的PSNR性能最好, 因此本文算法的最优参数为v=5。为了更好地分析本文算法性能, 选择在最优参数条件下的实验数据与其他算法进行对比, 本文算法与文献[3, 15, 17]算法在图像Lena和图像Man上的实验数据对比结果如图 5图 6所示。从图 5图 6可以看出, 当嵌入率相同时, 本文算法的PSNR值比文献[3]高, 这是因为文献[3]采用流密码加密图像后只是压缩图像的最低有效位, 算法的嵌入率完全取决于压缩效率, 而且对图像造成的失真也较大。文献[15]采用加密前预留空间的方法, 将部分位平面数据通过可逆信息隐藏算法自嵌入到图像的其他部分中, 从而转化为密文域中的嵌入容量, 有效降低了直接解密图像的失真情况, 因此文献[15]算法的PSNR性能比本文算法好。然而, 文献[15]利用Paillier公钥密码加密图像, 算法的时间复杂度比本文算法高。虽然文献[17]的算法PSNR性能比本文算法好, 但文献[17]仅利用多秘密共享加密图像, 不能直接从密文域中提取信息, 没有实现算法的可分离。

下载CSV 表 2 本文算法对Lena图像的实验数据比较 Table 2 Experimental data comparison of Lena images by the proposed algorithm
下载CSV 表 3 本文算法对Man图像的实验数据比较 Table 3 Experimental data comparison of Man images by the proposed algorithm
Download:
图 3 不同参数下Lena图像的PSNR性能对比 Fig. 3 Comparison of PSNR performance of Lena images with different parameters
Download:
图 4 不同参数下Man图像的PSNR性能对比 Fig. 4 Comparison of PSNR performance of Man images with different parameters
Download:
图 5 4种算法对Lena图像的PSNR性能对比 Fig. 5 PSNR performance comparison of four algorithms for Lena image
Download:
图 6 4种算法对Man图像的PSNR性能对比 Fig. 6 PSNR performance comparison of four algorithms for Man image
3.2 算法综合性能分析

密文域可逆信息隐藏算法多数采用流密码和Paillier公钥密码加密图像, 而本文算法采用秘密共享以及多秘密共享加密图像, 下面将对这三类算法进行详细的对比分析。

1) 时间复杂度。文献[3]利用流密码加密和解密一个像素的时间复杂度是O(1), 文献[15]利用Paillier公钥密码加密和解密一个像素的时间复杂度是O(n3), 本文算法利用秘密共享加密和解密一个像素的时间复杂度分别为O(n)和O(nlb n)。

2) 数据扩展率。数据扩展是指原始图像在利用密码算法加密后有较大的密文扩展, 而数据扩展率(Data Expansion Rate, DER)可以用来定量描述密文扩展的大小, DER的计算方法为:

$ {\rm{DER}} = \frac{{{A_o}}}{{{A_e}}} $ (14)

其中, Ao表示原始图像的所有比特数, Ae表示密文图像的所有比特数。

当采用如文献[3]中的流密码算法时没有数据扩展, 因此DER为1;当采用如文献[15]中的Paillier公钥密码算法时, 其数据扩展较大, 灰度图像的像素值为8 bit, 如果使用512 bit的密钥, 密文像素值为1 024 bit, 因此DER为128;虽然文献[17]采用的是多秘密共享加密, 但是将8 bit的灰度图像仍然加密为8 bit的密文图像, 因此DER同样为1。本文算法利用秘密共享加密低位平面与多秘密共享加密高位平面, 将1个像素加密为n个密文像素, 因此DER为n。本文算法与文献[3, 15, 17]算法的特征比较如表 4所示。

下载CSV 表 4 本文算法与文献[3, 15, 17]算法的特征比较 Table 4 Comparison of the characteristics between the proposed algorithm and those in references[3, 15, 17]
4 结束语

基于秘密共享的可分离密文域, 本文提出一种可逆信息隐藏算法, 并结合秘密共享方案和位平面分割技术, 达到了分散风险和抵抗入侵的目的, 同时, 分别在高位平面与低位平面上嵌入信息, 从而提高算法的嵌入容量。实验结果表明, 与其他可分离算法相比, 本文算法在较低嵌入容量时有较高的PSNR值, 但是随着嵌入容量的增加, PSNR值下降较快, 这是由低位平面造成的失真越来越大引起的。下一步将利用中国剩余定理对图像进行加密, 以解决失真问题, 提升高嵌入容量时的PSNR值。

参考文献
[1]
ZHANG Xinpeng. Reversible data hiding in encrypted image[J]. IEEE Signal Processing Letters, 2011, 18(4): 255-258. DOI:10.1109/LSP.2011.2114651
[2]
HONG W, CHEN T S, WU H Y. An improved reversible data hiding in encrypted images using side match[J]. IEEE Signal Processing Letters, 2012, 19(4): 199-202. DOI:10.1109/LSP.2012.2187334
[3]
ZHANG Xinpeng. Separable reversible data hiding in encrypted image[J]. IEEE Transactions on Information Forensics and Security, 2012, 7(2): 826-832. DOI:10.1109/TIFS.2011.2176120
[4]
MA Kede, ZHANG Weiming, ZHAO Xianfeng, et al. Reversible data hiding in encrypted images by reserving room before encryption[J]. IEEE Transactions on Information Forensics and Security, 2013, 8(3): 553-562. DOI:10.1109/TIFS.2013.2248725
[5]
ZHANG Weiming, MA Kede, YU Nenghai. Reversibility improved data hiding in encrypted images[J]. Signal Processing, 2014, 94: 118-127. DOI:10.1016/j.sigpro.2013.06.023
[6]
QIAN Zhenxing, ZHANG Xinpeng, WANG Shouzhong. Reversible data hiding in encrypted JPEC bitstream[J]. IEEE Transactions on Multimedia, 2014, 16(5): 1486-1491. DOI:10.1109/TMM.2014.2316154
[7]
NIU Xuejing, YIN Zhaoxia, ZHANG Xinpeng, et al. Reversible data hiding in encrypted AMBTC images[J]. Multimedia Tools and Applications, 2018, 77(14): 18067-18083. DOI:10.1007/s11042-017-4957-6
[8]
CHEN Y C, SHIU C W, HORNG G. Encrypted signal-based reversible data hiding with public key cryptosystem[J]. Journal of Visual Communication and Image Representation, 2014, 25(5): 1164-1170. DOI:10.1016/j.jvcir.2014.04.003
[9]
PAILLIER P.Public-key cryptosystems based on composite degree residuosity classes[C]//Proceedings of International Conference on the Theory and Applications of Cryptographic Techniques.Berlin, Germany: Springer, 1999: 223-238.
[10]
SHIU C W, CHEN Y C, HONG W. Encrypted image-based reversible data hiding with public key cryptography from difference expansion[J]. Signal Processing:Image Communication, 2015, 39: 226-233. DOI:10.1016/j.image.2015.09.014
[11]
WU Xiaotian, CHEN Bing, WENG Jian. Reversible data hiding for encrypted signals by homomorphic encryption and signal energy transfer[J]. Journal of Visual Communication and Image Representation, 2016, 41: 58-64.
[12]
ZHANG Xinpeng, LONG Jing, WANG Zichi, et al. Lossless and reversible data hiding in encrypted images with public-key cryptography[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2016, 26(9): 1622-1631. DOI:10.1109/TCSVT.2015.2433194
[13]
FRIDRICH J, GOLJAN M, LISONĚK P, et al. Writing on wet paper[J]. IEEE Transactions on Signal Processing, 2005, 53(10): 3923-3935. DOI:10.1109/TSP.2005.855393
[14]
XIANG Shijun, LUO Xinrong. Reversible data hiding in encrypted image based on homomorphic public key cryptosystem[J]. Journal of Software, 2016, 27(6): 1592-1601.
[15]
XIANG Shijun, LUO Xinrong. Reversible data hiding in homomorphic encrypted domain by mirroring ciphertext group[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2018, 28(11): 3099-3110. DOI:10.1109/TCSVT.2017.2742023
[16]
WU Xiaotian, WENG Jian, YAN Weiqi. Adopting secret sharing for reversible data hiding in encrypted images[J]. Signal Processing, 2018, 143(1): 269-281.
[17]
CHEN Y C, HUNG T H, HSIEH S H, et al. A new reversible data hiding in encrypted image based on multi-secret sharing and lightweight cryptographic algorithms[J]. IEEE Tran-sactions on Information Forensics and Security, 2019, 14(12): 3332-3343. DOI:10.1109/TIFS.2019.2914557
[18]
TIAN Jun. Reversible data embedding using a difference expansion[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2003, 13(8): 890-896. DOI:10.1109/TCSVT.2003.815962
[19]
SHAMIR A. How to share a secret[J]. Communications of the Association for Computing Machinery, 1979, 22(11): 612-613. DOI:10.1145/359168.359176
[20]
FRANKLIN M, YUNG M.Communication complexity of secure computation (extended abstract)[C]//Proceedings of the 24th Annual ACM Symposium on Theory of Computing.New York, USA: ACM Press, 1992: 699-710.
[21]
WANG Z, BOVIK A C. A universal image quality index[J]. IEEE Signal Processing Letters, 2002, 9(1): 81-84.