Print

发布时间: 2018-08-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.170596
2018 | Volume 23 | Number 8




    图像处理和编码    




  <<上一篇 




  下一篇>> 





结合EMD-cl嵌入的多载体密图分存方法
expand article info 黄燕燕, 邵利平
陕西师范大学计算机科学学院, 西安 710119

摘要

目的 传统误差扩散或恢复函数的多载体密图分存会对嵌密载体视觉质量造成较大影响,同时恢复函数需单独设计,只适用于二值或灰度图像,且通过简单Arnold置乱或异或加密仅能提供有限的安全性。针对此问题,提出结合EMD-cl嵌入的多载体密图分存方法。方法 采用双哈希MD5和SHA-1值产生多组与密图属性和用户密钥有关的置乱参数,驱动2维双尺度矩形映射来改变载体像素对应关系,然后将置乱后载体同位置像素构成向量,按扩展约瑟夫遍历映射分配基向量,通过EMD-cl嵌入秘密像素,从而将密图分存到多张载体中。结果 采用EMD-cl提高了嵌密载体视觉质量且不需额外设计恢复函数,可针对不同分辨率和灰度阶密图分存。所提方法载体像素位置和EMD-cl基向量都与密图MD5和SHA-1值以及用户密钥紧密绑定,仅有正确用户密钥和密图MD5和SHA-1值才能对密图恢复,并可通过第三方公信方托管的参与者分存信息MD5和SHA-1值使得所述策略具备认证能力。所提方法密钥空间为1.193 6×10118,可抵抗暴力破解。实验结果表明,结合EMD-cl,所提方法具有较好的嵌密载体视觉质量,NC趋近于1,对于EMD-3l,嵌密载体PSNR均接近50 dB;对于EMD-5l和EMD-7l,PSNR分别达到45 dB和42 dB,而传统方法,PSNR最好仅为42 dB。所提方法可分存不同分辨率和灰度阶密图,可对参与者密钥分存信息的真实性进行检验且对密图哈希和用户密钥极度敏感。结论 所提方法具有较低复杂度,较高安全性和普适性及认证能力,在整体性能上优于传统误差扩散或恢复函数的多载体密图分存方法,适用于对嵌密载体视觉质量要求高和针对不同分辨率和灰度阶密图分存的安全场景中。

关键词

全方向扩展; 多载体; 图像分存; 2维双尺度矩形映射; 约瑟夫遍历映射; 哈希函数; 误差扩散; 恢复函数

Multi-carrier secret image sharing scheme with EMD-cl embedding
expand article info Huang Yanyan, Shao Liping
School of Computer Science, Shaanxi Normal University, Xi'an 710119, China
Supported by: National Natural Science Foundation of China(61100239)

Abstract

Objective Conventional multi-carrier secret image sharing scheme based on error diffusion and recovery function can be used to hide secret image in multiple same size carriers. In these carriers, the error diffusion method leads to low visual quality and the recovery function is only designed for specific gray scale images, such as 1-bit binary images or 8-bit gray scale images. This scheme can only provide limited security by using simple Arnold scrambling or XOR encryption in which Arnold mapping is usually employed for special resolution images, such as square images. However, the security of Arnold mapping is poor due to its dependence on iteration numbers, and its scrambling coefficients are only 1, 1, 1, 2. In addition, Arnold mapping cannot change its mapping type and form by multiple iterations. To address these problems and further improve the visual qualities of carriers and security, a multi-carrier secret image sharing scheme with EMD-cl embedding is proposed in this study. Method In sharing phase, the double hash function values (MD5 and SHA-1 values) are first used to randomly generate scrambling. Iteration variables of secret images and related user keys are used to change every carrier pixel position by 2D bi-scale rectangular mapping. Vectors composed of same position pixels in scrambled carriers are then randomly allocated to the weights of EMD-cl basis vector using extended Josephus mapping where the start position and count termination value, count gap, and count direction sequences are added to increase the number of permutations and the kinds of variations in Josephus mapping. Afterward, EMD-cl embedding strategy is used to embed secret image pixels into multiple carriers to verify the high visual qualities of stego carriers. Finally, both user keys and the double hash function values of secret image are distributed to N participant sharing information by Lagrange (N, N) under module p, where each participant sharing information is kept by one participant and the MD5 and SHA-1 values of each participant sharing information are known to the third trust party to guarantee that every participant sharing information cannot be faked. In recovering phase, all participant sharing information is verified by checking their MD5 and SHA-1 values known to the third trust party. This information is used to recover the related variables, such as the MD5 and SHA-1 values of secret image and the user keys by Lagrange (N, N) under module p. These related variables are used to generate groups of scrambling and iteration variables of a 2D bi-scale rectangular mapping and variables of extended Josephus mapping. Scrambling and iteration variables are used to find the mapping relationships between each secret pixel and N carrier pixels. Extended Josephus mapping variables are used to find the weights of EMD-cl, and EMD-cl is adopted to embed the secret image pixels. In recovering phase, if all participant sharing information passes the third trust party checking and the related variables are the same as those of the sharing phase, then the secret image can be recovered correctly. Result Unlike in conventional methods, the visual qualities of all stego carriers are enhanced because EMD-cl only makes slight modifications, and the most modification for any non-overflow pixel is only $ \pm \left\lfloor {c/2} \right\rfloor $ . The proposed scheme need not design any recovery function and can be easily applied in different resolutions or gray scale images. The following are the improved securities:1) The proposed strategy uses different 2D bi-scale rectangular mappings to scramble distinct carrier with varying iteration numbers to avoid the fixed relationship of carrier pixels. 2) A 2D bi-scale rectangular mapping can be used to scramble images in different resolution, and its multiple iterations differ in transform type and form, so this mapping is more complex and secure than Arnold mapping. 3) By introducing the double hash function values, that is, the MD5 and SHA-1 values of the secret image, the proposed strategy easily overcomes the conflict brought by the single hash value (MD5 or SHA-1 value). 4) The proposed strategy uses extended Josephus mapping to scramble weights of EMD-cl basis vector, guaranteeing high steganography security. 5) All key variables in the proposed strategy, that is, the MD5 and SHA-1 values of the secret image, and the user keys are closely binded where only the correct user keys and MD5 and SHA-1 values can be used to recover the secret image but not vice versa. 6) To avoid tricks, the MD5 and SHA-1 values of key related variable sharing information are known to the third trusted party to provide authentication. 7) The total key space is 1.193 6×10118, which can resist brute-force attack. Experimental results show that, by EMD-cl embedding, the proposed multi-carrier secret image sharing scheme has enhanced visual qualities in stego carriers. The NC value is close to 1. The PSNR values of all stego carriers are close to 50 dB by EMD-3l embedding strategy. In EMD-5l embedding strategy, the PSNR values of all stego carriers are close to 45 dB, and the PSNR values of all stego carriers are close to 42 dB for the EMD-7l method. However, in conventional multi-carrier secret image sharing schemes, the best results of the PSNR values of all stego carriers are only approximately 42 dB. The proposed strategy can share different resolutions or different gray scale secret images, so it boasts high universality. Everyone can verify the facticity of any key sharing information provided by other participants. Moreover, the strategy is extremely sensitive to any slight modification in the user keys and hash function values:MD5 and SHA-1 or both of them. Therefore, the security of the proposed strategy is higher than that of conventional multi-carrier secret image sharing schemes. Conclusion The proposed method has low complexity and high security and universality, and it provides several authentication capabilities. Thus, the overall performance of the proposed method is superior to that of conventional multi-carrier secret image sharing schemes in terms of error diffusion and recovery function. The proposed method is suitable for multi-carrier secret image sharing schemes that need the high visual qualities of stego carriers and require sharing of secret images in different resolutions or gray scale secret.

Key words

exploiting modification direction; multi-carrier; image sharing; 2D bi-scale rectangular mapping; Josephus mapping; hash function; error diffusion; recovery function

0 引言

针对图像信息安全,已提出多种图像安全保护方法,如将明文转换为密文的数字图像加密[1-2];将秘密信息隐藏于载体的数字图像隐写[3];给图像添加版权标识,对图像真实性、完整性、来源者和使用者进行认证的数字图像水印[4-5];结合现有技术特点对图像真实性和完整性进行甄别的数字图像盲取证[6]以及将机密图像拆分为影子图像,利用部分分发影子图像对重要秘密图像重构的数字图像分存。

传统图像分存通常是将秘密图像转换为无意义影子图像,在公有信道传输时易诱发攻击使分发影子图像遭受破坏,从而降低密图重构的可能性。

为提高分存载体视觉质量,文献[7]对传统LSB(least significant bits)进行改进,通过调整像素第4个低位来减小嵌入信息后像素与原像素差值以获得较好视觉嵌入质量。文献[8]引入像素配对,将分存信息嵌入到分发载体2×2分块中以提高攻击后修复能力。为获得更强攻击后修复能力,文献[9]引入备份图像,将两个8位秘密像素和2个4位备份图像素对应的分存信息和认证信息用LSB嵌入到载体2×4分块的低2位中。

文献[7-9]都是将秘密像素嵌入到载体2×2或2×4分块中或采用4倍密图大小的载体,因此不可避免地导致像素扩张。

为避免像素扩张,文献[10]采用调整差值变换将密图转换为差值图和位置图分别分存。文献[11]给出了一种基于GF(23)的有意义无扩张图像分存和重构方法,引入秘密像素认证策略,将秘密像素及秘密像素认证信息嵌入到与密图等大的载体中。

文献[7-11]都是基于拉格朗日插值的($K$, $N$)分存($K$ 为门限, $N$ 为全部参与者的数量,当实际参与值数量大于等于 $K$ 且提供的都是正确的分发信息,则可对秘密信息进行恢复),为保证密图和分发图等大免扩张,设计得十分复杂,例如文献[10]将密图转换为差值图和位置图分别分存,文献[11]则需GF(23)有限域拉格朗日插值定理来避免素数域模数空间浪费。

同传统图像分存不同,多载体密图分存提供了简单有效的图像分存策略,这类方法通常采用($N$, $N$)门限,将一张密图隐藏于多张与密图等大的载体中,当聚齐所有分发图像,即可对密图进行完整恢复。基于此,文献[12]通过误差扩散来调整载体像素二值化处理结果,使得所分发的二值化载体对应位置像素异或值和二值密图映射位置像素值等价,从而将一张二值图像隐藏于多张与二值图像等大的半色调载体中。同文献[12]相类似,文献[13-14]将多张连续色调图像通过多尺度误差扩散法( ${\rm{MED}}$ )转换为二值半色调图像,使得转换后二值半色调图像对应位置像素模2运算结果与二值秘密半色调图像对应位置像素相等。文献[15]进一步将文献[12]中的二值映射函数推广为基于灰度像素的恢复函数,从而可将一张灰度图像嵌入到多张与密图等大的灰度图像中。由于块截断编码(BTC)可通过二值矩阵和高、低电平量化值对载体小块近似重建,而对二值矩阵像素翻转所造成的误差可通过误差扩散法进行传递,因此结合BTC编码和采用文献[12]类似方法,文献[16]将二值密图隐藏于多张与密图等大的BTC重建灰度载体中。

文献[12-16]都是将密图嵌入到与之等大的载体中,并通过引入误差扩散法来对载体像素值进行调整,将调整产生的误差传递给周围未调整像素,利用载体像素空间分辨率来对载体像素分辨率进行补偿,以抵消由于像素修改所导致的视觉偏差。

但使用误差扩散的多载体密图分存[12-16]都会对载体视觉质量产生较大影响,为避免对载体修改量过大,可采用对载体进行微小修改的嵌入方法。

全方向扩展方法(EMD)是对载体微小调整大容量嵌入的有效方法。文献[17]通过对 $l$ 个载体数据最多加减1个1来嵌入2$l$+1进制数,由于在嵌入时只对 $l$ 个载体数据中的1个进行±1调整,因此具备较高的视觉嵌入质量。结合EMD嵌入方法,文献[18]将一张密图隐藏在两张密图 4倍大小的载体中,其中第1张载体采用传统EMD方法嵌入密图,像素调整量较小,不超过±1,第2张参照第1张分存图像素与载体像素的关系来自适应调整,像素调整量较大,导致第2张载体视觉质量较差。

文献[19]则在文献[17]基础上给出了EMD-2方法,即对 $l$ 个载体数据最多进行2次±1调整嵌入一个更大进制的数。结合文献[17]的工作,文献[20]给出了EMD-3$l$,在具备较大嵌入容量同时对每个载体数据的修改仅为±1,可较大程度地保证嵌密载体视觉质量。文献[21]进一步给出了EMD-$c$$l$,通过约定像素调整方式数 $c$ ,将基向量设置为($c$0, $c$1, …, $c$$l$-1),从而可嵌入一个$c$$l$进制数。文献[22]同文献[21]相类似,只是增加了[0, $c$$l$-1]范围内的偏移量。文献[20-22]的本质是一样的,只是文献[20]将每个载体数据修改量控制为±1和0,对应于3种调整方式,选取的基向量为(30, 31, …, 3$l$-1),而文献[21-22]则选择更大的载体修改量,使得 $c$ ≥3,从而选取的基向量为($c$0, $c$1, …, $c$$l$-1)。

文献[17, 19-21]给出的EMD方法载体向量与基向量元素位置保持固定,安全性较弱。文献[22]尽管相对文献[17, 19-21],增加了[0, $c$$l$-1]范围内的偏移量,其所能提供的安全性十分有限。文献[23]给出的约瑟夫遍历映射可高效地用于1维元素序列排列。为增加约瑟夫遍历映射的变数,文献[24]给出了基于报数起点、报数间隔和报数方向可变的约瑟夫遍历映射。为提高安全性,本文对约瑟夫遍历映射继续扩展,使得报数过程中任一时刻间隔的报数起点、报数间隔、报数终值和报数方向都会发生改变,并将其用于改变载体向量和基向量元素的映射关系以提高EMD-$c$$l$嵌入方法的安全性。

文献[12, 15]选取的置乱方法Arnold变换比较简单,置乱系数仅为1、1、1、2,其安全性仅取决于迭代次数且Arnold变换通常用于正方形图像置乱,适用面和安全性都较窄。文献[12, 15]在置乱时不改变各载体像素映射关系,安全性较低。相对于Arnold变换,2维双尺度矩形映射[25]具有两个尺度,置乱系数不固定,可适用于任意矩形图像快速置乱,并且2维双尺度矩形映射的多次迭代和1次迭代不具有映射形式的等价性,即使2维双尺度矩形映射退化为一般的2维等尺度矩阵变换,通过引入的行列平移量仍可改变映射的种类和形式,使得多次迭代和1次迭代不具有简单的映射等价性。

基于此,本文提出一种基于EMD-$c$$l$的多载体密图分存方法,采用EMD-$c$$l$将任意灰度阶密图分存到多张载体中。所提方法通过密图MD5和SHA-1值以及用户给定的密钥产生多组2维双尺度置乱参数并分别用于不同的公开图像像素位置置乱;然后将置乱后公开图像对应位置像素构成向量,通过EMD-$c$$l$嵌入方法嵌入密图像素并重构公开图像,为增强EMD-$c$$l$嵌入的安全性,EMD-$c$$l$的基向量由与密图MD5和SHA-1值以及用户密钥绑定的扩展约瑟夫遍历映射置乱,从而仅有正确的用户密钥和正确的密图MD5和SHA-1值才能对密图进行恢复,相对于传统多载体密图分存重构方法[12-16],所提方法可针对不同分辨率密图和载体进行分存,视觉嵌入质量较高;同时将映射参数与密图属性及用户密钥绑定,增强了安全性。而这些参数还可进一步通过模 $p$ 拉格朗日分存来产生分存信息并通过分存信息的MD5和SHA-1值向第三方公信方公开来保证每个参与者提供的分存信息都不可伪造,并且任意参与者都可对分发的MD5和SHA-1值的真实性进行检验,从而具备一定的认证能力。

1 传统多载体密图分存方法

基于误差扩散的多载体二值密图分存方案[12]主体思路是通过误差扩散将载体转换为二值半色调图像,使分发的二值半色调图像对应位置像素异或值和二值密图映射位置像素值等价。

记灰度载体为$ {\mathit{\boldsymbol{A}}_k} = {\left( {a_{i, j}^k} \right)_{m \times m}}, k = 0, 1, \cdots , l - 1 $,二值密图为$ \mathit{\boldsymbol{S}} = {\left( {{s_{i, j}}} \right)_{m \times m}} $,文献[12]首先按式(1)将 ${\mathit{\boldsymbol{A}}_k}$ 转换为归一化版本$ {\mathit{\boldsymbol{A'}}_k} = {{{{a'}^k}_{i, j}}_{m \times m}} $,其中 $k$ =0, 1, …, $l$-1。

$ a{'}_{i,j}^k = a_{i,j}^k/255 $ (1)

然后多次迭代式(2):Arnold映射,将 $\mathit{\boldsymbol{S}}$ 置乱为$ \mathit{\boldsymbol{S'}} = {\left( {{{s'}_{i, j}}} \right)_{m \times m}} $并按式(3)计算 ${\mathit{\boldsymbol{A'}}_k}$ 上像素 ${{{a'}^k}_{i, j}}$ 的异或结果,即

$ \left[ {\begin{array}{*{20}{c}} x\\ y \end{array}} \right] = \left( {\left[ {\begin{array}{*{20}{c}} 1&1\\ 1&2 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} x\\ y \end{array}} \right]} \right)\bmod m $ (2)

$ \begin{array}{*{20}{c}} {{f_{i,j}} = {\rm{bin}}\left( {a{'}_{i,j}^0} \right) \oplus {\rm{bin}}\left( {a{'}_{i,j}^1} \right) \oplus \cdots \oplus }\\ {{\rm{bin}}\left( {a{'}_{i,j}^k} \right) \oplus \cdots \oplus {\rm{bin}}\left( {a{'}_{i,j}^{l - 1}} \right)} \end{array} $ (3)

式中, ${\rm{bin}}\left( {} \right)$ 为二值处理函数,执行的功能为

$ {\rm{bin}}\left( {a{'}_{i,j}^k} \right) = \left\{ \begin{array}{l} 0\;\;\;v_{i,j}^k < {Q_{i,j}}\\ 1\;\;\;\;其他 \end{array} \right. $ (4)

式中,$ v_{i, j}^k $$ {{{a'}^k}_{i, j}} $ ${\mathit{\boldsymbol{A'}}_k}$ 已处理像素扩散给$ {{{a'}^k}_{i, j}} $的误差之和, ${Q_{i, j}}$ 为动态阈值,由$ {{{a'}^k}_{i, j}} $邻域像素设定。

$f$$i$, $j$$s$$i$, $j$不相等,则按式(5)从$ v_{i, j}^0, v_{i, j}^1, \cdots , v_{i, j}^{l - 1} $中选取一个同 ${Q_{i, j}}$ 最接近 $v_{i, j}^{k}$ 按式(6)进行反方向二值调整, $b_{i, j}^{k}$ 为对应的二值调整结果,即

$ \hat k = \mathop {\arg \min }\limits_{k \in \left\{ {0,1, \cdots ,l - 1} \right\}} \left| {v_{i,j}^k - {Q_{i,j}}} \right| $ (5)

$ b_{i,j}^k = \left\{ \begin{array}{l} \overline {{\rm{bin}}\left( {a{'}_{i,j}^{\hat k}} \right)} \;\;\;\;k = \hat k\\ {\rm{bin}}\left( {a{'}_{i,j}^k} \right)\;\;\;\;其他 \end{array} \right. $ (6)

最后按误差扩散法将$ {{a'}^0}_{i, j}, {{a'}^1}_{i, j}, \cdots , {{a'}^{l - 1}}_{i, j} $转换为$ b_{i, j}^0, b_{i, j}^1, \cdots , b_{i, j}^{l - 1} $产生的误差传递给周围未处理像素,从而将$ {\mathit{\boldsymbol{A}}_k} = {\left( {a_{i, j}^k} \right)_{m \times m}} $转换为二值半色调图像 ${\mathit{\boldsymbol{B}}_k} = {\left( {b_{i, j}^k} \right)_{m \times m}}$ ,其中 $k$ =0, 1, …, $l$-1。在恢复时,仅需按式(7)恢复出 $\mathit{\boldsymbol{S}}$′,从而按式(2)逆映射恢复出二值密图 $\mathit{\boldsymbol{S}}$

$ \mathit{\boldsymbol{S'}} = {\left( {{{s'}_{i,j}} = b_{i,j}^0 \oplus b_{i,j}^1 \oplus \cdots \oplus b_{i,j}^{l - 1}} \right)_{m \times m}} $ (7)

式中,若$ b_{i, j}^0, b_{i, j}^1, \cdots , b_{i, j}^{l - 1} $存在奇数个1,则可得到 $s$$i$, $j$'=1,反之则可得到 $s$$i$, $j$'=0。

文献[12]采用式(6)进行调整的目的是使所有归一化载体像素$ {{a'}^0}_{i, j}, {{a'}^1}_{i, j}, \cdots , {{a'}^{l - 1}}_{i, j} $按式(3)计算得到的映射值 $f$$i$, $j$和置乱后秘密像素 ${{s'}_{i, j}}$ 一致。但式(3)针对的是二值图像分存,其适用面较窄。

同文献[12]相类似, ${\rm{MED}}$ 多载体二值密图分存[13-14]也是将灰度阶载体 ${\mathit{\boldsymbol{A}}_k} = {\left( {a_{i, j}^k} \right)_{m \times m}}$ 转换为二值半色调图像 ${\mathit{\boldsymbol{B}}_k} = {\left( {b_{i, j}^k} \right)_{m \times m}}$ ,其中 $k$ =0, 1, …, $l$-1,然后获得二值密图 ${\mathit{\boldsymbol{S}}} = {\left( {s_{i, j}} \right)_{m \times m}}$ ,即

$ \mathit{\boldsymbol{S}} = {\left( {{s_{i,j}} = \left( {b_{i,j}^0 + b_{i,j}^1 + \cdots + b_{i,j}^{l - 1}} \right)\bmod 2} \right)_{m \times m}} $ (8)

式中,若$ b_{i, j}^0, b_{i, j}^1, \cdots , b_{i, j}^{l - 1} $存在奇数个1,则可得到 ${s_{i, j}}$ =1,反之则可得到 ${s_{i, j}}$ =0,式(8)和式(7)本质是等价的,只是式(8)缺少了对密图像素的置乱过程。

由于 ${\rm{MED}}$ [13-14]在计算过程中涉及多个分辨率不同的中间图像计算,时空复杂度较高,导致 ${\rm{MED}}$ 多载体密图分存方法计算过程非常烦琐。 ${\rm{MED}}$ 计算过程涉及的中间图像有:1)初始化全0的二值半色调图像 ${\mathit{\boldsymbol{B}}} = {\left( {b_{i, j}} \right)_{m \times m}}$ ;2)$r$+1个误差图像$ {\mathit{\boldsymbol{X}}_k} = \left( {x_{{i_k}, {j_k}}^k} \right), k \in \left\{ {0, 1, \cdots , r} \right\} $,其中$r$=log2 $m$,即要求 $m$ 为2的整数幂次( ${\rm{MED}}$ 亦可适用于分辨率为$m$×$n$的矩形图像,但 $m$ $n$ 必须是2的整数幂次), ${\mathit{\boldsymbol{X}}_r}$ 由原图像 ${\mathit{\boldsymbol{A}}} = {\left( {a_{i, j}^k} \right)_{m \times m}}$ 按式(1)归一化得到, ${\mathit{\boldsymbol{X}}_k}$ ${\mathit{\boldsymbol{X}}_{k+1}}$ 之间的约束关系满足式(9),其中 $x_{{i_k}, {j_k}}^k$ ${\mathit{\boldsymbol{X}}_{k+1}}$ 中坐标值为($2{i_k} + i, 2{j_k} + j$)对应位置小块4个像素累计得到,因此 ${\mathit{\boldsymbol{X}}_k}$ 中像素数量是 ${\mathit{\boldsymbol{X}}_{k+1}}$ 中像素数量的1/4。

$ x_{{i_k},{j_k}}^k = \sum\limits_{i = 0}^1 {\sum\limits_{j = 0}^1 {x_{2{i_k} + i,2{j_k} + j}^{k + 1}} } $ (9)

${\rm{MED}}$ 所涉及的具体计算过程是:

1) 由 ${\mathit{\boldsymbol{X}}_k}$ 当前强度最大的像素找 ${\mathit{\boldsymbol{X}}_{k+1}}$ 对应小块强度最大的像素直至找到 ${\mathit{\boldsymbol{X}}_r}$ 上当前强度最大像素所在位置,其中 $k$ =0, …, $r$-1;

2) 记 ${\mathit{\boldsymbol{X}}_r}$ 当前强度最大像素所在位置为$ \left( {{{\hat i}_r}, {{\hat j}_r}} \right) $,将b $ {b_{{{\hat i}_r}, {{\hat j}_r}}} $置为1,置$ x_{{{\hat i}_r}, {{\hat j}_r}}^r = 1 - x_{{{\hat i}_r}, {{\hat j}_r}}^r $,然后将$ x_{{{\hat i}_r}, {{\hat j}_r}}^r $向周围像素扩散,例如与 $x_{{{\hat i}_r}, {{\hat j}_r}}^r$ 相邻的8个像素$ x_{{{\hat i}_r} - 1, {{\hat j}_r} - 1}^r, x_{{{\hat i}_r} - 1, {{\hat j}_r}}^r, x_{{{\hat i}_r} - 1, {{\hat j}_r} + 1}^r, x_{{{\hat i}_r}, {{\hat j}_r} - 1}^r $, $ x_{{{\hat i}_r}, {{\hat j}_r} + 1}^r, x_{{{\hat i}_r} + 1, {{\hat j}_r} - 1}^r, x_{{{\hat i}_r} + 1, {{\hat j}_r}}^r, x_{{{\hat i}_r} + 1, {{\hat j}_r} + 1}^r $(若存在);

3) 然后自底向上对 $\mathit{\boldsymbol{X}}$$r$-1, …, $\mathit{\boldsymbol{X}}$0更新;

4) 反复执行步骤1)—3),直至 $\mathit{\boldsymbol{X}}$0上最大像素(若原图像分辨率为$m$×$m$,则对应1个像素,反之则对应多个像素)小于等于0.5, 将 $\mathit{\boldsymbol{B}}$ 输出作为二值半色调图像。

本文将 ${\rm{MED}}$ 简记为

$ \mathit{\boldsymbol{B'}} = {\rm{MED}}\left( {{\mathit{\boldsymbol{X}}_r},\mathit{\boldsymbol{B}}} \right) $ (10)

式中, ${\mathit{\boldsymbol{X}}_r}$ 是原图 $\mathit{\boldsymbol{A}}$ 经式(1)归一化得到的误差图像, $\mathit{\boldsymbol{B}}$ 为初始化全0的二值半色调图像, $\mathit{\boldsymbol{B}}$ ′为二值半色调图像,由于 ${\rm{MED}}$ 是按最大强度引导,即始终对找到的最大像素 $b_{{{\hat i}_r}, {{\hat j}_r}}^{}$ 标记1,然后才对 ${\mathit{\boldsymbol{X}}_r}$ 进行误差扩散。为使式(8)能重构密图同时减少视觉质量损失,文献[13-14]的策略是:

1) 根据 ${\mathit{\boldsymbol{S}}}$ 上为1的像素$s$$i$, $j$找到其对应位置($i$, $j$),然后从多张灰度载体的($i$, $j$)位置选取最大像素$ a_{i, k}^{\hat k}, \hat k \in \left\{ {0, 1, \cdots , l - 1} \right\} $

2) 对$ {\mathit{\boldsymbol{B}}_{\hat k}} $ $b_{i, k}^{\hat k}$ 置1并初始化 ${\mathit{\boldsymbol{B}}_{\hat k}}$ ,使得初始化 ${\mathit{\boldsymbol{B}}_{k}}$ , $k$=0, 1, …, $l$-1可按式(8)恢复出 $\mathit{\boldsymbol{S}}$ ,将误差在 $\mathit{\boldsymbol{X}}_r^{\hat k}$ 上标记、传递并自底向上进行误差图像更新,其中$i$, $j$∈{0, 1, …, $m$-1};

3) 将步骤1)和2)得到的$ {\mathit{\boldsymbol{B}}_k}, X_k^r, k = 0, 1, \cdots , l - 1 $代入式(10)进行 ${\rm{MED}}$ 半色调掩盖,使得输出的$ {{\mathit{\boldsymbol{B'}}}_k} \approx {\mathit{\boldsymbol{A}}_k}, k = 0, 1, \cdots , l - 1 $,但按式(10) ${\rm{MED}}$ 处理时,只能按最大强度引导原则对 ${\mathit{\boldsymbol{B}}_k}$ 上某个像素执行置1操作,然后将对应误差在 $\mathit{\boldsymbol{X}}_k^r$ 上标记并传递给 $\mathit{\boldsymbol{X}}_k^r$ 周围像素,会导致直接按式(10)得到的结果不满足式(8)约束,因此文献[13-14]定义了3个调整规则来解决冲突,其中规则1处理仅存在1个初始二值图像$ {\mathit{\boldsymbol{B}}_{p0}}, {p_0} \in \left\{ {0, 1, \cdots , l - 1} \right\} $在($i$, $j$)位置像素为1的情况,此时若需将二值图像$ {\mathit{\boldsymbol{B}}_{p1}}, {p_1} \in \left\{ {0, 1, \cdots , l - 1} \right\} $, $p$1$p$0在($i$, $j$)位置的像素由0置为1,则需将 ${\mathit{\boldsymbol{B}}_{p0}}$ 在($i$, $j$)位置的像素由1置为0,并在相应误差图像上进行自底向上的误差更新;规则2处理的是 ${\mathit{\boldsymbol{B}}_{k}}$ , $k$=0, 1, …, $l$-1在($i$, $j$)位置像素全为0的情况,此时若将 ${\mathit{\boldsymbol{B}}_{p0}}, {p_0} \in \left\{ {0, 1, \cdots , l - 1} \right\}$ 在($i$, $j$)位置像素由0置为1,则需同时将另一张二值图像 ${\mathit{\boldsymbol{B}}_{p1}}, {p_1} \in \left\{ {0, 1, \cdots , l - 1} \right\}$ , $p$1$p$0在($i$, $j$)位置像素由0置为1,并在相应误差图像上进行自底向上的误差更新;规则三处理的是初始 ${\mathit{\boldsymbol{B}}_{k}}$ , $k$=0, 1, …, $l$-1在($i$, $j$)位置像素全为0且已经有$l$-1张二值图像调整为1并且处于满足式(8)的平衡状态,若还要将剩余的最后1张二值图像在($i$, $j$)位置像素由0调整为1,为满足式(8),只能放弃对最后一张二值图像($i$, $j$)位置像素修改,但需进行对应的标记和误差更新。

文献[13-14]尽管借助 ${\rm{MED}}$ 实现了多载体密图分存,但由于 ${\rm{MED}}$ 在计算过程中涉及多个不同分辨率的中间图像计算,时空复杂性高,计算过程十分烦琐,同时 ${\rm{MED}}$ 对图像分辨率要求十分严格,仅适用于分辨率为2的幂次的特殊图像且同文献[12]一样,仅适用于二值图像分存,适用面较窄。

针对灰度图像分存,文献[15]将式(3)推广为基于模运算的恢复函数,给出了两种模运算的恢复函数,其中第1种针对的是(2, 2)分存,用于二载体密图分存,即

$ {f_{i,j}} = \left( {16a_{i,j}^0 + a_{i,j}^1} \right)\bmod 256 $ (11)

第2种针对的是(3, 3)分存,用于三载体密图分存,即

$ {f_{i,j}} = \left( {{7^2}a_{i,j}^0 + 7a_{i,j}^1 + a_{i,j}^2} \right)\bmod 256 $ (12)

文献[15]和文献[12]思路相类似,若$f$$i$, $j$和密图置乱位置像素值 ${{s'}_{i, j}}$ 相等,则不做调整,反之则对第 $k$ 个载体像素 $a_{i, j}^k$ 进行调整量为Δ$k$的调整,将误差传递给周围未调整像素,其中$k$=0, 1, …, $l$-1。

对于式(11),Δ0, Δ1∈{-15, -14, …, 0, …, 14, 15},原因是16Δ01∈[-255, 255]范围内整数,因此对 $a_{i, j}^0$ $a_{i, j}^1$ 进行Δ0, Δ1∈{-15, -14, …, 0, …, 14, 15}范围的调整,总能使调整后的$f$$i$, $j$ ${{s'}_{i, j}}$ 相等。同样对于式(12),当Δ0, Δ1, Δ2∈{-6, -5, …, 0, …, 5, 6}时,49Δ0+7Δ12∈[-342, 342],其调整范围比[-255, 255]略大,但经过模256以后,其取值范围依然在[-255, 255]之间,因此同样可使调整后的$f$$i$, $j$ ${{s'}_{i, j}}$ 相等。为提高安全性,文献[15]进一步引入了模256互质参数来保证恢复函数的安全性,例如,对式(11)引入256互质参数95可得

$ {f_{i,j}} = 95 \cdot \left( {16a_{i,j}^0 + 16a_{i,j}^1} \right)\bmod 256 $ (13)

文献[15]尽管可对灰度图像分存,但式(11)载体像素的调整量Δ0, Δ1∈{-15, -14, …, 0, …, 14, 15},式(12)对载体像素的调整量Δ0, Δ1, Δ2∈{-6, -5, …, 0, …, 5, 6}会对嵌入载体视觉质量造成较大影响。

结合文献[12],文献[16]给出了基于BTC编码和误差扩散的多载体密图分存方法。其思路是:首先将二值秘密图像$ \mathit{\boldsymbol{S}} = {\left( {{s_{i, j}}} \right)_{m \times m}} $按式(14)加密为$ \mathit{\boldsymbol{S}}' = {\left( {{{s'}_{i, j}}} \right)_{m \times m}} $,其中 $\mathit{\boldsymbol{RM}}$ =($rm$)$m$×$m$为二值随机图像,其生成密钥由所有参与者的随机参与值来共同确定,即

$ {{s'}_{i,j}} = {s_{i,j}} \oplus r{m_{i,j}} $ (14)

式中,“⊕”是异或运算;

将灰度载体 $\mathit{\boldsymbol{A}}_k$ , $k$=0, 1, …, $l$-1划分为不重叠的等大矩阵小块,对小块进行BTC编码转换为二值矩阵和高、低电平量化值。记$ {\mathit{\boldsymbol{B}}_k} = {\left( {b_{u, v}^k} \right)_{w \times w}} $为第$k$=0, 1, …, $l$-1张载体划分的同一位置矩阵小块,与之对应的秘密图像$ \left( {\mathit{\boldsymbol{S'}} = {{\left( {{{s'}_{i.j}}} \right)}_{m \times m}}} \right) $矩阵小块记为$ \mathit{\boldsymbol{BS}} = {\left( {b{s_{u, v}}} \right)_{w \times w}}, v_{u, v}^k $为原始像素值 $b_{u, v}^k$ 与邻域像素误差扩散的误差值之和,对 ${\mathit{\boldsymbol{B}}_k}$ 通过BTC编码转换为二值矩阵 ${{\mathit{\boldsymbol{B}}'}_k}$ 具体方法如式(15)所示,获得$ {{b'}^k}_{u, v} $对应量化值 $Q_{u, v}^k$ 的具体方法为

$ b{'}_{u,v}^k = \left\{ \begin{array}{l} 0\;\;\;v_{u,v}^k < {b_{{\rm{mean}}}}\\ 1\;\;\;其他 \end{array} \right. $ (15)

$ \begin{array}{l} {b_{{\rm{mean}}}} = \frac{1}{{{w^2}}}\sum\limits_{u = 0}^{w - 1} {\sum\limits_{v = 0}^{w - 1} {b_{u,v}^k} } \\ Q_{u,v}^k = \left\{ \begin{array}{l} \max \left( {{\mathit{\boldsymbol{B}}_k}} \right)\;\;\;\;b{'}_{u,v}^k = 1\\ \min \left( {{\mathit{\boldsymbol{B}}_k}} \right)\;\;\;\;b{'}_{u,v}^k = 0 \end{array} \right. \end{array} $ (16)

矩阵小块对应像素值异或结果的计算公式为

$ {f_{u,v}} = b{'}_{u,v}^0 \oplus b{'}_{u,v}^1 \oplus \cdots \oplus b{'}_{u,v}^{l - 1} $ (17)

式(17)和式(3)相类似,若$ {f_{u, v}} $ ${{bs}_{u, v}}$ 相等则不做调整,反之则按式(18)选择1个$ {{b'}^{\hat k}}_{u, v}, \hat k \in \left\{ {0, 1, \cdots , l - 1} \right\} $进行翻转,使得$ {f_{u, v}} $= ${{bs}_{u, v}}$

$ \hat k = \mathop {\arg \min }\limits_{k \in \left\{ {0,1, \cdots ,l - 1} \right\}} \left| {v_{u,v}^k - Q_{u,v}^k} \right| $ (18)

最后对载体进行BTC重建,按误差扩散法将$ b_{u, v}^0, b_{u, v}^1, \cdots , b_{u, v}^{l - 1} $转换为$ \tilde b_{u, v}^0, \tilde b_{u, v}^1, \cdots , \tilde b_{u, v}^{l - 1} $过程中产生的误差传递给周围未处理的像素,从而可将一幅二值秘密图像隐藏于多张与之等大的灰度载体中,具体公式为

$ \tilde b_{u,v}^k = \left\{ \begin{array}{l} \min \left( {{\mathit{\boldsymbol{B}}_k}} \right)\;\;\;\;\;b{'}_{u,v}^k = 0\\ \max \left( {{\mathit{\boldsymbol{B}}_k}} \right)\;\;\;\;其他 \end{array} \right. $ (19)

以上文献[12-16]都是通过误差扩散法来对载体像素值进行调整,将调整产生的误差传递给周围未调整像素,利用载体像素空间分辨率来对载体像素分辨率进行补偿,以抵消由于像素修改所导致的视觉偏差,但此类方法对嵌入载体修改量较大,会对嵌入载体视觉质量造成较大影响。

同时文献[12-14, 16]所给出的多载体分存针对的是二值密图分存,适用面较窄,文献[16]采用BTC编码对载体进行近似灰度重建,尽管相对文献[12]提高了载体视觉重建质量,但依然会对载体视觉质量产生较大影响。文献[15]尽管针对的是灰度图像分存,但对每个载体像素的修改量较大,对于(2, 2)门限,每个载体像素需在[-15, 15]范围内修改,而对于(3, 3)门限,每个载体像素修改范围为[-6, 6],同样会对嵌入载体视觉质量造成较大影响。

文献[12, 15]都是对密图像素采用简单Arnold变换进行位置置乱,Arnold变换的置乱参数仅为1,1,1,2,其安全性仅取决于迭代次数,同时Arnold变换的多次迭代不改变映射形式,等价为选取另一个2维等尺度矩阵变换的1次迭代,仅有4个可供选择的变换系数,安全性十分有限,同时Arnold变换所针对的是正方形图像,其实际应用面较窄。

文献[16]尽管通过由所有参与者随机参与值相关的二值随机矩阵来对二值秘密图像进行异或加密,但异或加密仅能改变像素值而不能改变像素位置关系。文献[12, 15-16]在对秘密图像进行简单加密的同时并不能改变各载体像素空间位置映射关系,使得不同载体上同一位置像素和密图像素映射值一一对应,难以保证足够安全性。同时以上文献所给出的加密策略仅与密钥参数有关,而与密图属性无关,从而难以抵抗选择明文攻击。

同以上文献不同,本文给出了一种基于EMD-${c^l}$的多载体密图分存方法,采用EMD-${c^l}$将任意灰度阶密图分存在多张载体中。所提方法通过密图MD5和SHA-1值以及用户给定的密钥产生多组2维双尺度置乱和迭代参数并分别用于不同公开图像像素位置置乱;然后将置乱后公开图像对应位置像素构成向量,通过EMD-${c^l}$嵌入方法嵌入密图像素并重构公开图像。为增强EMD-${c^l}$嵌入的安全性,EMD-${c^l}$的基向量由与密图MD5和SHA-1值以及用户给定的密钥绑定的随机参数进行扩展约瑟夫遍历映射置乱,从而仅有正确的用户密钥和正确的密图MD5和SHA-1值才能对密图进行恢复,且通过第三方托管的MD5和SHA-1值使得所述策略具备一定的认证能力。本文所述方法在不溢出情况下对载体像素修改范围为±|$c$/2|,若 $c$ 控制得比较小,则可使嵌密载体具备较高的视觉质量,同时所给出的多载体密图分存方法可针对不同分辨率密图和载体进行分存,因此相对于传统多载体密图分存方法[12-16]具备更高的安全性和更好的嵌密视觉质量。

2 本文方法

本文所给出的多载体密图分存方法如图 1所示,其中虚线框表示处理集合,点划线框表示映射过程中用到的参数来源,箭头表示输入和输出。

图 1 基于EMD-${c^l}$的多载体密图分存框图
Fig. 1 The diagram of multi-carrier secret image sharing scheme based on EMD-${c^l}$ embedding

图 1主要包括3个策略:1)基于2维双尺度矩形映射的载体置乱策略;2)结合EMD-${c^l}$和扩展约瑟夫遍历映射的嵌密策略和3)与密图MD5、SHA-1和用户密钥相关的映射参数生成策略,其中1)主要用于改变多张载体像素位置的对应关系,使得不同载体不同位置像素与密图像素一一对应;2)主要用于添加与密图MD5、SHA-1属性以及用户密钥密切相关的EMD-${c^l}$的基向量置乱环节,使得EMD-${c^l}$嵌密环节完全依赖于密图属性和用户密钥;3)主要用于通过密图MD5和SHA-1和用户密钥来产生1)和2)的中间参数以及解决对密图MD5和SHA-1和用户密钥的托管和认证问题。

2.1 载体置乱策略

文献[12, 15]都是对密图使用简单的Arnold映射置乱,但Arnold映射存在的问题是:1) Arnold映射的多次迭代并不改变映射的种类和形式,如式(2)的 $t$ > 0次迭代式等价为

$ \begin{array}{*{20}{c}} {\left[ {\begin{array}{*{20}{c}} {x'}\\ {y'} \end{array}} \right] = \left( {\left[ {\begin{array}{*{20}{c}} {\tilde a}&{\tilde b}\\ {\tilde c}&{\tilde d} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} x\\ y \end{array}} \right]} \right)\bmod m}\\ {\left[ {\begin{array}{*{20}{c}} {\tilde a}&{\tilde b}\\ {\tilde c}&{\tilde d} \end{array}} \right] = \left( {{{\left[ {\begin{array}{*{20}{c}} 1&1\\ 1&2 \end{array}} \right]}^t}} \right)\bmod m} \end{array} $ (20)

因此所能起到的安全性十分有限;2) Arnold变换针对的是正方形图像,实际实用面较窄。

同文献[12, 15]不同,本文采用同Arnold映射类似,但更为安全的2维双尺度矩形映射来改变载体与密图像素之间的映射关系,2维双尺度矩形映射具有两个同余模数,可用于矩形图像快速置乱,并且2维双尺度矩形映射的多次迭代并不等同于该映射的1次迭代,具有不同的变换形式和种类,因而相对于传统Arnold映射具备更高的安全性。

$m$=$pz$1, $n$=$pz$2$p$=$Gcd$($m$, $n$),若式(21)中 $a, b, c, d$ 满足式(22),则对应2维双尺度矩形映射[25],其中$Gcd$()为最大公因子计算函数。

$ \left[ {\begin{array}{*{20}{c}} {x'}\\ {y'} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} a&b\\ c&d \end{array}} \right]\left[ {\begin{array}{*{20}{c}} x\\ y \end{array}} \right]\bmod \left[ {\begin{array}{*{20}{c}} m\\ n \end{array}} \right] $ (21)

$ \left\{ \begin{array}{l} Gcd\left( {ad - bc,p} \right) = 1\\ Gcd\left( {a,{z_1}} \right) = 1\\ Gcd\left( {a,{z_2}} \right) = 1\\ \left( {b\bmod {z_1}} \right) = 0\left| {\left( {c\bmod {z_2}} \right) = 0} \right. \end{array} \right. $ (22)

对式(21)可添加行列平移量$e$∈{0, 1, …, $m$-1}, $f$∈{0, 1, …, $n$-1},从而将式(21)修正为

$ \left[ {\begin{array}{*{20}{c}} {x'}\\ {y'} \end{array}} \right] = \left( {\left[ {\begin{array}{*{20}{c}} a&b\\ c&d \end{array}} \right]\left[ {\begin{array}{*{20}{c}} x\\ y \end{array}} \right] + \left[ {\begin{array}{*{20}{c}} e\\ f \end{array}} \right]} \right)\bmod \left[ {\begin{array}{*{20}{c}} m\\ n \end{array}} \right] $ (23)

尽管式(23)和式(20)的映射形式类似且都是一一映射,但式(23)的$t$($t$ > 0)次迭代式并不等价于使用另一变换阵的2维双尺度矩形映射,例如

$ \left[ {\begin{array}{*{20}{c}} {x'}\\ {y'} \end{array}} \right] = \left( {\left[ {\begin{array}{*{20}{c}} {\tilde a}&{\tilde b}\\ {\tilde c}&{\tilde d} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} x\\ y \end{array}} \right] + \left[ {\begin{array}{*{20}{c}} {\tilde e}\\ {\tilde f} \end{array}} \right]} \right)\bmod \left[ {\begin{array}{*{20}{c}} m\\ n \end{array}} \right] $ (24)

其原因是:1)2维双尺度矩形映射具有两个模数,且不同模数下的余数映射并不总是满足可交换性,例如$ \left( {x\;\bmod \;m} \right)\bmod \;n $并不总是等价为 $\left( {x\;\bmod \;n} \right)\bmod \;m$ ;2) $ \left( {a\left( {x\;\bmod \;m} \right)} \right)\bmod \;n $也并不总是等价为$ \left( {\left( {ax} \right)\bmod \;m} \right)\bmod \;n $。由此导致2维双尺度矩形映射的变换式异常复杂,对应为不同的变换形式和种类。

即使将式(23)应用于正方形图像置乱,退化为一般的2维等尺度矩阵变换如式(25)所示,由于引入行列平移量也使得式(25)的 $t$ > 0次迭代式相对于式(2)更为复杂,安全性也更高,如

$ \left[ {\begin{array}{*{20}{c}} {x'}\\ {y'} \end{array}} \right] = \left( {\left[ {\begin{array}{*{20}{c}} a&b\\ c&d \end{array}} \right]\left[ {\begin{array}{*{20}{c}} x\\ y \end{array}} \right] + \left[ {\begin{array}{*{20}{c}} e\\ f \end{array}} \right]} \right)\bmod m $ (25)

$ \left[ {\begin{array}{*{20}{c}} {x'}\\ {y'} \end{array}} \right] = \left( {{{\left[ {\begin{array}{*{20}{c}} a&b\\ c&d \end{array}} \right]}^t}\left[ {\begin{array}{*{20}{c}} x\\ y \end{array}} \right] + \sum\limits_{i = 0}^{t - 1} {{{\left[ {\begin{array}{*{20}{c}} a&b\\ c&d \end{array}} \right]}^i}\left[ {\begin{array}{*{20}{c}} e\\ f \end{array}} \right]} } \right)\bmod m $ (26)

除了Arnold映射本身存在的安全问题以外,文献[12, 15]都是对密图直接置乱而不改变各载体同一位置像素的对应关系,使得不同载体同一位置像素直接对应为同一密图像素,难以提供足够的安全性。

在本文中是将对密图像素的置乱转换为对载体像素的置乱,使得不同载体不同位置像素与密图像素一一对应,即对每张载体$ {\mathit{\boldsymbol{A}}_k} = {\left( {a_{i, j}^k} \right)_{m \times n}}, a_{i, j}^k \in \left\{ {0, 1, \cdots , {2^{p - 1}} - 1} \right\} $使用不同的置乱参数$ {a_k}, {b_k}, {c_k}, {d_k}, {e_k}, {f_k} $和迭代次数 ${t_k}$ 按式(23)置乱,从而将每张载体 ${\mathit{\boldsymbol{A}}_k} = {\left( {a_{i, j}^k} \right)_{m \times n}}$ 置乱为$ {{\mathit{\boldsymbol{A'}}}_k} = {{{{a'}^k}_{i, j}}_{m \times n}} $,其中$k$=0, 1, …, $l$-1,并进一步由$ {{a'}^0}_{i, j}, {{a'}^1}_{i, j}, \cdots , {{a'}^{l - 1}}_{i, j} $来构成长度为 $l$ 的向量$ {\mathit{\boldsymbol{S}}_{i, j}} = \left( {{{a'}^0}_{i, j}, {{a'}^1}_{i, j}, \cdots , {{a'}^{l - 1}}_{i, j}} \right) $,使 ${\mathit{\boldsymbol{S}}_{i, j}}$ 和密图像素 ${s_{i, j}}$ 一一对应并通过EMD-${c^l}$ ${s_{i, j}}$ 嵌入到 ${\mathit{\boldsymbol{S}}_{i, j}}$ 中,然后按式(23)的逆置乱式对嵌密后载体$ {{\mathit{\boldsymbol{A''}}}_k} = {\left( {{{a''}^k}_{i, j}} \right)_{m \times n}} $进行恢复。

文献[25]给出的2维双尺度矩形映射逆变换式非常复杂,这里采用更简洁的方式对式(23)进行恢复,即首先获取载体 ${{\mathit{\boldsymbol{A}}}_k}$ 的置乱参数 ${a_k}, {b_k}, {c_k}, {d_k}, {e_k}, {f_k}$ 和迭代次数 ${t_k}$ ,然后将 ${a_k}, {b_k}, {c_k}, {d_k}, {e_k}, {f_k}$ 代入式(23)并迭代 ${t_k}$ 次,以此找到映射前坐标 $(x, y)$ 和映射后坐标 $(x', y')$ 的对应关系,将$ {{a''}^k}_{x', y'} $ $(x', y')$ 位置移动到 $(x, y)$ 位置,从而将置乱后嵌密载体 ${{\mathit{\boldsymbol{A''}}}_k}$ 恢复为 ${{\mathit{\boldsymbol{A''}}}_k}$ ,因此式(23)的逆置乱式同式(23)一样,只是将坐标映射方向由 $(x, y)$ $(x', y')$ 修改为 $(x', y')$ $(x, y)$

在本文中,置乱 ${{\mathit{\boldsymbol{A}}}_k}$ 的置乱参数 ${a_k}, {b_k}, {c_k}, {d_k}, {e_k}, {f_k}$ 和迭代次数 ${t_k}$ 是由密图 ${\mathit{\boldsymbol{S}}}$ 的MD5和SHA-1值以及用户给定的密钥映射得到,将在2.3节中具体给出。

2.2 嵌密策略

文献[10-11]为保证密图和分发图等大,免膨胀率,算法设计得十分复杂。文献[12-16]是通过误差扩散来对载体像素进行调整,通过载体像素空间分辨率来对载体像素分辨率进行补偿以抵消像素修改所导致的视觉偏差。但无论是采用LSB法对密图嵌入的传统图像分存方法[7-11],还是使用基于误差扩散的多载体密图分存方法[12-16]都会对载体视觉质量产生较大影响,为避免载体修改量过大,必须采用对载体微小修改和大容量嵌入的EMD嵌入方法。

为减少对嵌密载体视觉质量影响和提高嵌密过程安全性,本文主要通过EMD-${c^l}$ ${S_{i, j}}$ 中嵌入秘密像素 ${s_{i, j}}$ ,并进一步通过对约瑟夫遍历映射在报数起点、报数终值序列、报数间隔序列和报数方向序列上进行扩展来对EMD-${c^l}$的基向量进行置乱,以保证嵌入信息的安全性。其中图 2给出了结合EMD-${c^l}$和扩展约瑟夫遍历映射的嵌密框图。

图 2 结合EMD-${c^l}$和扩展约瑟夫遍历映射的嵌密框图
Fig. 2 The embedding secret diagram based on EMD-${c^l}$ embedding and extended Josephus mapping

$ \mathit{\boldsymbol{R}} = {\left( {{r_i}} \right)_l} $为长度为 $l$ 的待嵌密载体元素序列,秘密值为 $s$ ,EMD-${c^l}$的基本思路是(约定 $c$ 为奇数):

求映射值 ${V_{{\rm{map}}}}$ ${V_{{\rm{diff}}}}$ ,即

$ {V_{{\rm{map}}}} = \left( {\sum\limits_{i = 0}^{l - 1} {\left( {{r_i} \times {c^i}} \right)} } \right)\bmod {c^l} $ (27)

$ {V_{{\rm{diff}}}} \left( {s - {V_{{\rm{map}}}}} \right)\bmod {c^l} $ (28)

${V_{{\rm{diff}}}}$=0,则嵌密结束,即式(27)映射的结果就是 $s$ ,反之则需对 ${V_{{\rm{diff}}}}$进行调整,将 ${V_{{\rm{diff}}}}$按式(29)从映射区间[-${c^l}$+1, ${c^l}$-1]调整到$ \left[ { - \left\lfloor {{c^l}/2} \right\rfloor , \left\lfloor {{c^l}/2} \right\rfloor } \right] $,然后按式(30)将$ \mathit{\boldsymbol{R}} = {\left( {{r_i}} \right)_l} $更新为 ${{\mathit{\boldsymbol{R}}}'} = {\left( {{{r'}_i}} \right)_l}$ 从而使得 ${{\mathit{\boldsymbol{R}}}'} = {\left( {{{r'}_i}} \right)_l}$ 按式(27)计算出的结果与 $s$ 相等。

$ {V_{{\rm{diff}}}} = \left\{ \begin{array}{l} {V_{{\rm{diff}}}} + {c^l}\;\;\;\;\;\;\;\;{V_{{\rm{diff}}}} < - \left\lfloor {{c^l}/2} \right\rfloor \\ {V_{{\rm{diff}}}}\;\;\;\;\;\;\;\;\;\;\;\;\;\; - \left\lfloor {{c^l}/2} \right\rfloor \le \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{V_{{\rm{diff}}}} \le \left\lfloor {{c^l}/2} \right\rfloor \\ {V_{{\rm{diff}}}} - {c^l}\;\;\;\;\;\;\;\;{V_{{\rm{diff}}}} > \left\lfloor {{c^l}/2} \right\rfloor \end{array} \right. $ (29)

$ \begin{array}{l} {{r'}_i} = \\ \left\{ \begin{array}{l} \left( {{\lambda _i}/{c^i}} \right)\bmod c + {r_i}\;\;\;\;\;\;\;\;\;\; - \left\lfloor {c/2} \right\rfloor \le \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\left( {{\lambda _i}/{c^i}} \right)\bmod c \le \left\lfloor {c/2} \right\rfloor \\ \left( {{\lambda _i}/{c^i}} \right)\bmod c - c + {r_i}\;\;\;\;\;\left( {{\lambda _i}/{c^i}} \right)\bmod c > \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\left\lfloor {c/2} \right\rfloor \\ \left( {{\lambda _i}/{c^i}} \right)\bmod c + c + {r_i}\;\;\;\;\;\left( {{\lambda _i}/{c^i}} \right)\bmod c < \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; - \left\lfloor {c/2} \right\rfloor \end{array} \right. \end{array} $ (30)

式中, ${\lambda _i}$ 按式(31)确定,其中$i$=0, 1, …, $l$-1。

$ {\lambda _i} = {V_{{\rm{diff}}}} - \sum\limits_{u = 0}^{i - 1} {\left( {\left( {{{r'}_u} - {r_u}} \right) \times {c^u}} \right)} $ (31)

这里引入式(30)的目的是将 ${V_{{\rm{diff}}}}$转换为 $l$ $c$ 进制数,借助 $l$ $c$ 进制数来对 $s$ 进行表达,但由式(27)知:EMD-${c^l}$的基向量被固定为($c$0, $c$1, …$c$$l$-1),其所能起到的安全性十分有限,文献[22]尽管进一步引入了安全偏移量 ${d_{{\rm{off}}}}$ ∈[0, ${c^l}$-1],即将式(27)修正为式(32),其所能起到的安全性也十分有限。

$ \begin{array}{*{20}{c}} {{V_{{\rm{map}}}} = \left( {\sum\limits_{i = 0}^{l - 1} {\left( {{r_i} \times {c^i}} \right)} + {d_{{\rm{off}}}}} \right)\bmod {c^l}}\\ {{d_{{\rm{off}}}} \in \left[ {0,{c^l} - 1} \right]} \end{array} $ (32)

在本文中式(27)对应的基向量元素索引是由扩展约瑟夫遍历映射置乱得到,使得EMD-${c^l}$的提取过程与扩展约瑟夫遍历映射参数息息相关,从而只有提供正确的密钥参数才能对秘密信息正确提取,反之则无法提取,因此本文实际使用的EMD-${c^l}$是将式(27)(30)(31)修正为

$ {V_{{\rm{map}}}} = \left( {\sum\limits_{i = 0}^{l - 1} {\left( {{r_i} \times {c^{in{d_i}}}} \right)} } \right)\bmod {c^l} $ (33)

$ \begin{array}{*{20}{c}} {{{r'}_i} = }\\ {\left\{ \begin{array}{l} \left( {{\lambda _i}/{c^{in{d_i}}}} \right)\bmod c + {r_i}\\ \;\;\;\;\;\;\; - \left\lfloor {c/2} \right\rfloor \le \left( {{\lambda _i}/{c^{in{d_i}}}} \right)\bmod c \le \left\lfloor {c/2} \right\rfloor \\ \left( {{\lambda _i}/{c^{in{d_i}}}} \right)\bmod c - c + {r_i}\\ \;\;\;\;\;\;\;\left( {{\lambda _i}/{c^{in{d_i}}}} \right)\bmod c > \left\lfloor {c/2} \right\rfloor \\ \left( {{\lambda _i}/{c^{in{d_i}}}} \right)\bmod c + c + {r_i}\\ \;\;\;\;\;\;\;\left( {{\lambda _i}/{c^{in{d_i}}}} \right)\bmod c < - \left\lfloor {c/2} \right\rfloor \end{array} \right.} \end{array} $ (34)

$ {\lambda _i} = {V_{{\rm{diff}}}} - \sum\limits_{u = 0}^{i - 1} {\left( {{{r'}_u} - {r_u}} \right)} \times {c^{in{d_u}}} $ (35)

式中, $in{d_u}$ ∈{0, 1, …, $l$-1}是扩展约瑟夫遍历映射产生的索引序列$ {S_{{\rm{index}}}} = \left( {in{d_0}, in{d_1}, \cdots , in{d_{l - 1}}} \right) $中的元素。

在采用EMD-${c^l}$嵌密时,若载体像素发生溢出,则按式(36)调整像素值,然后在调整后像素基础上继续使用EMD-${c^l}$嵌入方法嵌入密图像素

$ a{'}_{i,j}^k = \left\{ \begin{array}{l} a_{i,j}^k - \left\lfloor {c/2} \right\rfloor \;\;\;\;\;a_{i,j}^k \ge 255\\ a_{i,j}^k + \left\lfloor {c/2} \right\rfloor \;\;\;\;\;a_{i,j}^k \le 0 \end{array} \right. $ (36)

本文所采用的扩展约瑟夫遍历映射最早来源于 $l$ 个人生存博弈的游戏,即 $l$ 个人围成一圈,从第1个人开始报数,不断淘汰第 $M$ 个人,直至剩下一人,由约瑟夫遍历映射可产生{0, 1, …, $l$-1}上的排列。标准的约瑟夫遍历映射可抽象为$ {f_{{\rm{Josephu}}{{\rm{s}}_{\rm{0}}}}}\left( {l, M} \right) $,其中 $M$ 为报数终止值,其所提供的排列数量十分有限。文献[23]为约瑟夫遍历映射添加了报数起点位置Start,从而将 ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{0}}}}}\left( {l, M} \right)$ 修正为 ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{1}}}}}\left( {l, Start, M} \right)$ ,文献[24]进一步对 ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{1}}}}}\left( {l, Start, M} \right)$ 添加了报数间隔 $Gap$ 和报数方向 $D$ ,从而得到了 ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{2}}}}}\left( {l, Start, Gap, M, D} \right)$ ,其中$D$ ≥ 0表示顺时针方向报数,而 $D<0$ 表示逆时针报数,而 $Gap>=0$ 则表示跳过的人数。

为提高EMD-${c^l}$的安全性和扩展约瑟遍历映射产生{0, 1, …, $l$-1}上的排列数量和变数,本文将 ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{2}}}}}\left( {l, Start, Gap, M, D} \right)$ 进一步拓展为 ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{3}}}}}\left( {l, Start, Gap, M, D} \right)$ ,其中报数间隔 $Gap$ 、报数终止值 $M$ 以及报数方向 $D$ 都被拓展为长度为 $l$ 的序列 $Gap, M, D$ ,从而对每次淘汰1人的约瑟夫遍历映射进行随机扰动。相对于 ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{0}}}}}$ , ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{1}}}}}$ , ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{2}}}}}$ ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{3}}}}}$ 添加的随机扰动因素更多,产生的排列数量也更多。

以长度为4,初始位置为2的约瑟夫遍历映射生成排列为例:约瑟夫遍历映射[24] ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{2}}}}}$ (4, 2, 2, 3, 1)产生的排列为(3, 0, 1, 2);而在同样长度和同样起始位置并结合下列的参数设定条件:

1) ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{3}}}}}\left( {4, 2, Gap \in \left( {1, 3, 0, 2} \right), M \in \left( {3, 0, 1, 2} \right), D \in \left( {1, - 1, - 1, 1} \right)} \right)$

2) ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{3}}}}}\left( {4, 2, Gap \in \left( {2, 3, 0, 2} \right), M \in \left( {3, 0, 1, 2} \right), D \in \left( {1, - 1, - 1, 1} \right)} \right)$

3) ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{3}}}}}\left( {4, 2, Gap \in \left( {1, 3, 0, 2} \right), M \in \left( {1, 0, 1, 2} \right), D \in \left( {1, - 1, - 1, 1} \right)} \right)$

4) ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{3}}}}}\left( {4, 2, Gap \in \left( {1, 3, 0, 2} \right), M \in \left( {3, 0, 1, 2} \right), D \in \left( {1, 1, - 1, 1} \right)} \right)$

5) ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{3}}}}}\left( {4, 2, Gap \in \left( {1, 1, 0, 2} \right), M \in \left( {3, 0, 1, 2} \right), D \in \left( {1, - 1, - 1, 1} \right)} \right)$

6) ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{3}}}}}\left( {4, 2, Gap \in \left( {1, 3, 0, 2} \right), M \in \left( {3, 2, 1, 2} \right), D \in \left( {1, - 1, - 1, 1} \right)} \right)$

7) ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{3}}}}}\left( {4, 2, Gap \in \left( {1, 3, 0, 2} \right), M \in \left( {3, 0, 1, 2} \right), D \in \left( {- 1, - 1, - 1, 1} \right)} \right)$

8) ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{3}}}}}\left( {4, 2, Gap \in \left( {1, 2, 0, 2} \right), M \in \left( {3, 0, 1, 2} \right), D \in \left( {1, 1, - 1, 1} \right)} \right)$

本文约瑟夫遍历映射 ${f_{{\rm{Josephu}}{{\rm{s}}_{\rm{3}}}}}\left( {l, Start, Gap, M, D} \right)$ 产生的排列依次为(1, 0, 2, 3)、(3, 1, 0, 2)、(1, 3, 2, 0)、(1, 0, 2, 3)、(1, 3, 0, 2)、(1, 0, 3, 2)、(1, 2, 0, 3)和(1, 2, 3, 0)。

因此相对于传统约瑟夫遍历映射[23-24],本文约瑟夫遍历映射在不同参数设置条件下,产生的不同排列数量也更多,从而可通过基向量随机排列来对EMD-${c^l}$施加更为安全可靠的保护,相对于文献[22]仅提供[0, ${c^l}$-1]范围的偏移量具备更高的安全性。

为便于后文描述,这里将扩展约瑟夫遍历映射产生索引序列$ {\mathit{\boldsymbol{S}}_{{\rm{index}}}} = \left( {in{d_0}, in{d_1}, \cdots , in{d_{l - 1}}} \right) $的过程记为

$ \mathit{\boldsymbol{S}}_{{\rm{index}}}^{i,j} = {f_{{\rm{josephu}}{{\rm{s}}_3}}}\left( {l,Star{t_{i,j}},\mathit{\boldsymbol{Ga}}{\mathit{\boldsymbol{p}}_{i,j}},{\mathit{\boldsymbol{M}}_{i,j}},{\mathit{\boldsymbol{D}}_{i,j}}} \right) $ (37)

通过$ \mathit{\boldsymbol{S}}_{{\rm{index}}}^{i, j} $对基向量置乱的EMD-${c^l}$嵌密过程记为

$ {{\mathit{\boldsymbol{S'}}}_{i,j}} = {\rm{EMD}} - {c^l}\left( {{\mathit{\boldsymbol{S}}_{i,j}},{s_{i,j}},\mathit{\boldsymbol{S}}_{{\rm{index}}}^{i,j}} \right) $ (38)

之对应的EMD-${c^l}$提取策略记为

$ {{s'}_{i,j}} = {\rm{EMD'}} - {c^l}\left( {{{\mathit{\boldsymbol{S'}}}_{i,j}},\mathit{\boldsymbol{S}}_{{\rm{index}}}^{i,j}} \right) $ (39)

式中,$ Star{t_{i, j}}, \mathit{\boldsymbol{Ga}}{\mathit{\boldsymbol{p}}_{i, j}}, {\mathit{\boldsymbol{M}}_{i, j}}, {\mathit{\boldsymbol{D}}_{i, j}} $是对 ${\mathit{\boldsymbol{S}}_{i, j}}$ 嵌密的扩展约瑟夫遍历映射参数,用于产生在 ${\mathit{\boldsymbol{S}}_{i, j}}$ 中进行EMD-${c^l}$嵌密的索引序列 $\mathit{\boldsymbol{S}}_{{\rm{index}}}^{i, j}$ $Star{t_{i, j}}, \mathit{\boldsymbol{Ga}}{\mathit{\boldsymbol{p}}_{i, j}}, {\mathit{\boldsymbol{M}}_{i, j}}, {\mathit{\boldsymbol{D}}_{i, j}}$ 由密图 $\mathit{\boldsymbol{S}}$ 的MD5和SHA-1值以及用户给定的密钥映射得到,将在2.3节中具体给出。

2.3 映射参数生成策略

在第2.1节主要涉及的变换参数有: ${a_k}, {b_k}, {c_k}, {d_k}, {e_k}, {f_k}$ 和迭代次数 ${t_k}$ ,其中$k$=0, 1, …, $l$-1;在第2.2节主要涉及的变换参数为: $Star{t_{i, j}}, \mathit{\boldsymbol{Ga}}{\mathit{\boldsymbol{p}}_{i, j}}, {\mathit{\boldsymbol{M}}_{i, j}}, {\mathit{\boldsymbol{D}}_{i, j}}$ ,其中$i$=0, 1, …, $m$-1,$j$=0, 1, …, $n$-1。

为保证这些重要参数的安全性,本文的主体思路是将密图MD5和SHA-1值映射为中间密钥参数$G$0∈[3.57, 4]和$G$2∈(0, 1),从而使密图MD5和SHA-1值与$G$0$G$2紧密绑定;然后由用户给定密钥$G$1∈(0, 1), $G$3∈(3.57, 4)分别结合$G$0, $G$2驱动logistic混沌映射产生这些参数,使得这些参数的生成过程既与密图MD5和SHA-1值紧密绑定,又与用户密钥息息相关,使得不同密图MD5和SHA-1值以及用户密钥都对应于不同的分存和恢复过程,从而只有提供正确密钥,密图MD5和SHA-1值才能对嵌入密图进行正确恢复,反之则无法提取。图 3给出了参数映射关系框图。

图 3 参数映射关系框图
Fig. 3 The relationship diagram of parameters mapping

$\mathit{\boldsymbol{S}}$ 的MD5和SHA-1值分别为16进制数序列$ {\mathit{\boldsymbol{S}}_{{\rm{MD5}}}} = \left\langle {{m_0}, {m_1}, \cdots {m_{31}}} \right\rangle $ ${\mathit{\boldsymbol{S}}_{{\rm{SHA-1}}}} = \left\langle {{s_0}, {s_1}, \cdots {s_{39}}} \right\rangle $ ,本文将密图MD5值和SHA-1值映射为中间密钥参数$G$0∈[3.57, 4]和$G$2∈(0, 1)的具体过程是:

1) 将 ${\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}$ ${\mathit{\boldsymbol{S}}_{{\rm{SHA-1}}}}$ 奇数和偶数位置元素映射为16进制序列 ${\mathit{\boldsymbol{S}}_{{\rm{ms}}}} = \left\langle {{{ms}_0}, {{ms}_1}, \cdots {{ms}_{71}}} \right\rangle $ ,具体公式为

$ \begin{array}{*{20}{c}} {{\mathit{\boldsymbol{S}}_{ms}} = odd\left( {{\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}} \right)\left\| {even\left( {{\mathit{\boldsymbol{S}}_{{\rm{SHA - 1}}}}} \right)} \right\|odd\left\| {\left( {{\mathit{\boldsymbol{S}}_{{\rm{SHA - 1}}}}} \right)} \right\|}\\ {even\left( {{\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}} \right) = {{\left\langle {s{m_i}} \right\rangle }_{72}}} \end{array} $ (40)

式中,“‖”是比特位串联运算符,函数$odd$()和$even$()分别用于得到输入序列的奇数和偶数位置元素。

这里通过 ${\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}$ ${\mathit{\boldsymbol{S}}_{{\rm{SHA-1}}}}$ 产生 ${\mathit{\boldsymbol{S}}_{{\rm{ms}}}}$ 的目的是通过双哈希来提高单哈希MD5和SHA-1抗冲撞能力,但依然保留 ${\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}$ , ${\mathit{\boldsymbol{S}}_{{\rm{SHA-1}}}}$ 对密图像素改变的敏感性。

2) 从 ${\mathit{\boldsymbol{S}}_{{\rm{ms}}}}$ 中抽取 $It$ 个元素作为序列$ {\mathit{\boldsymbol{S}}_{\rm{h}}} = \left( {{h_0}, {h_1}, \cdots , {h_{It - 1}}} \right) $$It$∈[24, 70]且 $It$ 为偶数,具体公式为

$ {\mathit{\boldsymbol{S}}_{\rm{h}}} = Draw\left( {{\mathit{\boldsymbol{S}}_{\rm{ms}}},{\mathit{\boldsymbol{S}}_{\rm{x}}}} \right) $ (41)

式中,$Draw$()为序列抽取函数,功能是以$ {\mathit{\boldsymbol{S}}_{\rm{x}}} = \left\langle {{x_0}, {x_1}, \cdots , {x_{It - 1}}} \right\rangle $中的元素为索引,将 ${\mathit{\boldsymbol{S}}_{\rm{ms}}}$ 的第 ${x_i}$ 个元素$ m{s_{{x_i}}} $作为 ${\mathit{\boldsymbol{S}}_{\rm{h}}}$ 的第 $i$ 个元素 ${h_i}$ ,其中$i$=0, 1, …, $It$-1。

${\mathit{\boldsymbol{S}}_{\rm{h}}}$ 的目的是产生中间密钥参数$G$0$G$2,为保证 ${\mathit{\boldsymbol{S}}_{\rm{h}}}$ ${\mathit{\boldsymbol{S}}_{\rm{ms}}}$ , ${\mathit{\boldsymbol{S}}_{\rm{MD5}}}$ , ${\mathit{\boldsymbol{S}}_{\rm{SHA-1}}}$ 紧密耦合且生成索引分布均衡,这里首先将 ${\mathit{\boldsymbol{S}}_{\rm{ms}}}$ , ${\mathit{\boldsymbol{S}}_{\rm{MD5}}}$ , ${\mathit{\boldsymbol{S}}_{\rm{SHA-1}}}$ 按式(42)—(43)映射为变换参数 ${a_{\rm{init}}}$ , ${b_{\rm{init}}}$ ,然后将0, 1, …, $It$-1依次代入式(44)来产生元素索引标记序列 ${\mathit{\boldsymbol{S}}_{x}}$

$ \begin{array}{*{20}{c}} {{a_{{\rm{init}}}} = }\\ {{\rm{adjust}}\left( {\sum\limits_{i = 0}^{15} {\left( {m_{2i}^{{m_{2i + 1}}} + m_{2i + 1}^{{m_{2i}}}} \right)\bmod len\left( {{\mathit{\boldsymbol{S}}_{{\rm{ms}}}}} \right)} } \right)} \end{array} $ (42)

$ {b_{{\rm{init}}}} = \sum\limits_{i = 0}^{19} {\left( {s_{2i}^{{s_{2i + 1}}} \cdot s_{2i + 1}^{{s_{2i}}}} \right)\bmod len\left( {{\mathit{\boldsymbol{S}}_{{\rm{ms}}}}} \right)} $ (43)

式中,函数 $adjust$ ()用于将输入整数调整为(0, $len$( ${\mathit{\boldsymbol{S}}_{\rm{ms}}}$ ))范围内且满足$ {\rm{Gcd}}\left( {{a_{{\rm{init}}}}, len\left( {{\mathit{\boldsymbol{S}}_{{\rm{ms}}}}} \right)} \right) = 1 $,使得式(44)为一一映射。

$ {x_{n + 1}} = \left( {{a_{{\rm{init}}}}{x_n} + {b_{{\rm{init}}}}} \right)\bmod len\left( {{\mathit{\boldsymbol{S}}_{{\rm{ms}}}}} \right) $ (44)

3) 将 ${{\mathit{\boldsymbol{S}}_{{\rm{h}}}}}$ 按式(45)划分为奇数序列 ${{\mathit{\boldsymbol{S}}_{{\rm{odd}}}}}$ 和偶数序列 ${{\mathit{\boldsymbol{S}}_{{\rm{even}}}}}$ ,并进一步按式(46)转换为$G$0∈[3.57, 4]和$G$2∈(0, 1),其中“\”表示整数除法。

$ \begin{array}{*{20}{c}} {{\mathit{\boldsymbol{S}}_{{\rm{odd}}}} = \left\langle {{o_0}, \cdots ,{o_{It\backslash 2 - 1}}} \right\rangle ,{o_i} = {h_{2i + 1}}}\\ {{\mathit{\boldsymbol{S}}_{{\rm{even}}}} = \left\langle {{e_0}, \cdots ,{e_{It\backslash 2 - 1}}} \right\rangle ,{e_i} = {h_{2i}}} \end{array} $ (45)

$ \begin{array}{*{20}{c}} {{G_0} = 3.57 + 0.43 \times \left( {\left( {\sum\limits_{i = 0}^{It\backslash 2 - 1} {\sqrt {o_i^{{e_i}}} } } \right)\bmod 1} \right)}\\ {{G_2} = \left( {\sum\limits_{i = 0}^{It\backslash 2 - 1} {\sqrt {e_i^{{o_i}}} } } \right)\bmod 1} \end{array} $ (46)

$G$0$G$1可产生2维双尺度矩形映射的置乱参数和迭代次数,其具体过程为:

1) 将$G$0$G$1分别作为 $\mu $ $x$0,迭代式(47)产生随机数,将前$IT$($IT$ > 0)次结果抛弃以消除暂态。

$ {x_{n + 1}} = \mu {x_n}\left( {1 - {x_n}} \right) $ (47)

2) 将式(47)迭代产生的7个连续随机数依次记为$l$0, $l$1, $l$2, $l$3, $l$4, $l$5, $l$6∈(0, 1),按式(48)转换为[0, $m$)范围内的整数 $a, b, e$ 和[0, $n$)范围内的整数 $c, d, f$ 以及[0, min$(m, n)$)范围的迭代次数 $t$

$ \begin{array}{l} a = \left\lfloor {\left( {{l_0}{l_1} + {l_1}{l_2} + {l_2}{l_3}} \right) \cdot {{10}^{15}}} \right\rfloor \bmod m\\ b = \left\lfloor {\sqrt[3]{{{l_1}{l_2}{l_3}}} \cdot {{10}^{15}}} \right\rfloor \bmod m\\ e = \left\lfloor {\left( {{l_0} + {l_1} + {l_2}} \right) \cdot {{10}^{15}}} \right\rfloor \bmod m\\ c = \left\lfloor {\left( {{l_3}{l_4} + {l_4}{l_5} + {l_3}{l_5}} \right) \cdot {{10}^{15}}} \right\rfloor \bmod n\\ d = \left\lfloor {\sqrt[3]{{{l_3}{l_4}{l_5}}} \cdot {{10}^{15}}} \right\rfloor \bmod n\\ f = \left\lfloor {\left( {{l_3} + {l_4} + {l_5}} \right) \cdot {{10}^{15}}} \right\rfloor \bmod n\\ t = \left\lfloor {\left( {{l_1}{l_2} + {l_2}{l_3} + {l_3}{l_4} + {l_5}{l_6}} \right) \cdot {{10}^{15}}} \right\rfloor \bmod \min \left( {m,n} \right) \end{array} $ (48)

3) 反复执行2),直至产生 $l$ 组满足式(22)对应条件的置乱参数 $a, b, c, d, e, f, t$ ,将这 $l$ 组参数依次记为 ${a_k}, {b_k}, {c_k}, {d_k}, {e_k}, {f_k}, {t_k}$ , $k$=0, 1, …, $l$-1。

这里生成 $l$ 组参数的目的是使每一张载体对应的2维双尺度矩形映射参数都随机产生,且与密图MD5,SHA-1值和用户密钥$G$1紧密绑定。

结合$G$2和用户给定密钥$G$3可产生生成 $\mathit{\boldsymbol{S}}_{{\rm{index}}}^{i, j}$ , $i$=0, 1, …, $m$-1, $j$=0, 1, …, $n$-1的扩展约瑟夫遍历映射参数,其具体过程是:

1) 将$G$2$G$3分别作为$x$0 $\mu $ ,代入式(47)迭代产生随机矩阵$ \mathit{\boldsymbol{Ra}} = {\left( {r{a_{i, j}}} \right)_{m \times n}} $ $r{a_{i,j}} \in \left( {0,1} \right)$ ,在迭代时,将前$IT$($IT$ > 0)次结果抛弃以消除暂态。

这里生成 $\mathit{\boldsymbol{Ra}}$ 的目的是将 $\mathit{\boldsymbol{Ra}}$ 中的元素 ${r{a_{i, j}}}$ 作为随机起始值,并将该随机起始值同嵌密载体($i$, $j$)位置绑定从而对索引序列 $\mathit{\boldsymbol{S}}_{{\rm{index}}}^{i, j}$ 生成过程施加扰动。

2) 将 ${r{a_{i, j}}}$ $G$0分别作为$x$0 $\mu $ ,代入式(47)迭代产生9个随机数$rr$0, $rr$1, …, $rr$8,在迭代时,将前$IT$($IT$ > 0)次结果抛弃以消除暂态。

3) 计算 ${{Start}_{i, j}}$ ,具体公式为

$ \begin{array}{*{20}{c}} {Star{t_{i,j}} = }\\ {\left\{ {\sum\limits_{u = 0}^8 {\sum\limits_{v = 9}^{17} {\left[ {{{\left( {ms_u^{r{r_{v - 9}}} - r{r_{v - 9}}^{m{s_u}}} \right)}^2} \times {{10}^{m{s_u}}}} \right]} } } \right\}\bmod l} \end{array} $ (49)

4) 将 ${r{a_{i, j}}}$ $G$3分别作为$x$0 $\mu $ ,代入式(47)产生3l个随机数:$RR$0, $RR$1, …, $RR$3$l$-1,在迭代时,将式(47)迭代的前 $IT$ 次结果抛弃,然后将前 $l$ 个随机数按式(50)进行量化作为报数间隔序列$ \mathit{\boldsymbol{Ga}}{\mathit{\boldsymbol{p}}_{i, j}} = \left\langle {G{a_0}, G{a_1}, \cdots , G{a_{l - 1}}} \right\rangle $,中间 $l$ 个随机数按式(51)进行量化作为报数终值序列$ {\mathit{\boldsymbol{M}}_{i, j}} = \left\langle {m{m_0}, m{m_1}, \cdots , m{m_{l - 1}}} \right\rangle $,最后 $l$ 个随机数作为报数方向序列 ${\mathit{\boldsymbol{D}}_{i, j}} = \left\langle {{D_0}, {D_1}, \cdots , {D_{l - 1}}} \right\rangle $ ,其中 ${D_u}$ ≥0.5为顺时针,反之为逆时针。

$ G{a_u} = \left( {\sum\limits_{v = 0}^8 {\left[ {rr_v^{R{R_u}} \times {{10}^{15}}} \right]} } \right)\bmod l $ (50)

$ m{m_u} = \left( {\sum\limits_{v = 0}^8 {\left[ {RR_u^{r{r_v}} \times {{10}^{15}}} \right]} } \right)\bmod l $ (51)

式中,“[]”是四舍五入取整函数。

在以上所给出的参数映射过程中,2维双尺度矩形映射的置乱参数和迭代次数是由$G$0, $G$1产生;扩展约瑟夫遍历映射参数是由$G$2, $G$3产生,并且 $Star{t_{i, j}}$ 的生成过程还进一步用到了 ${\mathit{\boldsymbol{S}}_{{\rm{ms}}}}$ $G$1, $G$3是由用户指定,而$G$0, $G$2则同 ${\mathit{\boldsymbol{S}}_{{\rm{ms}}}}$ 紧密绑定并进一步取决于 ${\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}$ ${\mathit{\boldsymbol{S}}_{{\rm{SHA-1}}}}$ ,即密图 $\mathit{\boldsymbol{S}}$ 的MD5和SHA-1值,从而使得所述策略既与密图MD5,SHA-1值紧密绑定,又与用户密钥息息相关,使得不同密图MD5,SHA-1值以及用户密钥都对应于不同的分存和恢复过程,从而只有提供正确密钥,密图MD5值和SHA-1值才能对嵌入的密图进行正确重构,反之则无法提取。而双哈希的引入也进一步避免了直接使用MD5和SHA-1值所带来的冲撞性。而这些参数与用户指定密钥以及密图 $\mathit{\boldsymbol{S}}$ 的MD5和SHA-1值紧密绑定,也使得本文所给出的多载体密图分存方法所涉及的2维双尺度矩形映射置乱环节以及EMD-${c^l}$的嵌密过程更为安全和可靠,因此相对于传统多载体密图分存方法[12-16]在安全性上有了很大提高。

由于 ${\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}$ , ${\mathit{\boldsymbol{S}}_{{\rm{SHA-1}}}}$ , $G$1, $G$3, $It$, $IT$非常重要,这里可进一步将 ${\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}$ ${\mathit{\boldsymbol{S}}_{{\rm{SHA-1}}}}$ $G$1$G$3$It$$IT$通过模 $p$ 下的拉格朗日 $(N, N)$ 分存产生分存信息并将分存信息的MD5值和SHA-1值向第三方公信方公开,从而保证每个参与者提供的分存信息都不可伪造,任意参与者都可对分发的MD5和SHA-1值真实性进行检验,从而使得本文策略具备一定认证能力。

2.4 结合EMD-${c^l}$嵌入的多载体密图分存和恢复算法

结合2.1节~2.3节所完成的工作,可给出完整的结合EMD-${c^l}$嵌入的多载体密图分存算法,记为算法1:

1) 输入待嵌入的 $p$ 比特公开图像$ {\mathit{\boldsymbol{A}}_k} = {\left( {a_{i, j}^k} \right)_{m \times n}} $, $ a_{i, j}^k \in \left\{ {0, 1, \cdots , {2^{p - 1}} - 1} \right\} $, $k$=0, 1, …, $l$-1和待隐藏的 $q$ 比特密图$ \mathit{\boldsymbol{S}} = {\left( {{S_{i, j}}} \right)_{m \times n}}, {s_{i, j}} \in \left\{ {0, 1, \cdots , {2^{q - 1}} - 1} \right\} $且满足$ l \ge {l_{\min }}, {l_{\min }} = \left\lceil {q{{\log }_c}2} \right\rceil $,输入抽取元素数$It$∈[24, 70]且 $It$ 为偶数,消除暂态效应的滤除迭代次数 $IT>0$ ,其中${l_{\min }}$是嵌入 $q$ 比特密图所需要的最少载体数量;

2) 由 ${\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}$ ${\mathit{\boldsymbol{S}}_{{\rm{SHA-1}}}}$ 构造 ${\mathit{\boldsymbol{S}}_{{\rm{ms}}}}$ ,并从 ${\mathit{\boldsymbol{S}}_{{\rm{ms}}}}$ 抽取出$It$个元素构成 ${\mathit{\boldsymbol{S}}_{{\rm{h}}}}$

3) 将 ${\mathit{\boldsymbol{S}}_{{\rm{h}}}}$ 划分为 ${\mathit{\boldsymbol{S}}_{{\rm{odd}}}}$ ${\mathit{\boldsymbol{S}}_{{\rm{even}}}}$ ,然后将 ${\mathit{\boldsymbol{S}}_{{\rm{odd}}}}$ ${\mathit{\boldsymbol{S}}_{{\rm{even}}}}$ 映射为$G$0∈[3.57, 4]和$G$2∈(0, 1);

4) 由$G$0$G$1∈(0, 1)产生l组置乱参数$ {a_k}, {b_k}, {c_k}, {d_k}, {e_k}, {f_k}, {t_k} $,将$ {\mathit{\boldsymbol{A}}_k} = {\left( {a_{i, j}^k} \right)_{m \times n}} $置乱为$ {{\mathit{\boldsymbol{A'}}}_k} = {{{{a'}^k}_{i, j}}_{m \times n}} $,并进一步将$ {{a'}^0}_{i, j}, {{a'}^1}_{i, j}, \cdots , {{a'}^{l - 1}}_{i, j} $构成长度为 $l$ 的向量$ {\mathit{\boldsymbol{S}}_{i, j}} = \left( {{{a'}^0}_{i, j}, {{a'}^1}_{i, j}, \cdots , {{a'}^{l - 1}}_{i, j}} \right) $,其中$k$=0, 1, …, $l$-1,$i$=0, 1, …, $m$-1,$j$=0, 1, …, $n$-1;

5) 由$G$2$G$3∈[3.57, 4]产生 $mn$ 组扩展约瑟夫遍历映射参数$ Star{t_{i, j}}, \mathit{\boldsymbol{Ga}}{\mathit{\boldsymbol{p}}_{i, j}}, {\mathit{\boldsymbol{M}}_{i, j}} $ ${\mathit{\boldsymbol{D}}_{i, j}}$ ,其中$i$=0, 1, …, $m$-1,$j$=0, 1, …, $n$-1;

6) 对$ Star{t_{i, j}}, \mathit{\boldsymbol{Ga}}{\mathit{\boldsymbol{p}}_{i, j}}, {\mathit{\boldsymbol{M}}_{i, j}} $ ${\mathit{\boldsymbol{D}}_{i, j}}$ 按式(37)进行扩展约瑟夫遍历映射,从而生成$ \mathit{\boldsymbol{S}}_{{\rm{index}}}^{i, j} $;将$ {\mathit{\boldsymbol{S}}_{i, j}}\mathit{\boldsymbol{, }}{s_{i, j}}\mathit{\boldsymbol{, S}}_{{\rm{index}}}^{i, j} $代入式(38)进行EMD-${c^l}$密写得到$ {{\mathit{\boldsymbol{S'}}}_{i, j}} = \left( {{{a''}^0}_{i, j}, {{a''}^1}_{i, j}, \cdots , {{a''}^{j - 1}}_{i, j}} \right) $,将$ {{{a''}^0}_{i, j}, {{a''}^1}_{i, j}, \cdots , {{a''}^{l - 1}}_{i, j}} $分别作为嵌密载体 ${{\mathit{\boldsymbol{A''}}}_0}, {{\mathit{\boldsymbol{A''}}}_1}, \cdots , {{\mathit{\boldsymbol{A''}}}_{l - 1}}$ 对应位置元素,其中$i$=0, 1, …, $m$-1,$j$=0, 1, …, $n$-1;

7) 利用 ${a_k}, {b_k}, {c_k}, {d_k}, {e_k}, {f_k}, {t_k}$ ${{\mathit{\boldsymbol{A''}}}_k}$ 逆置乱为 ${{\mathit{\boldsymbol{A'''}}}_k}$ ,将 ${{\mathit{\boldsymbol{A'''}}}_k}$ 输出作为嵌密后载体,其中$k$=0, 1, …, $l$-1;

8) 将 ${\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}$ ${\mathit{\boldsymbol{S}}_{{\rm{SHA-1}}}}$ $G$1$G$3$It$$IT$通过模 $p$ 下的拉格朗日 $(N, N)$ 分存产生分存信息并将新生成分存信息的MD5值和SHA-1值向第三方公信方公开,从而保证每个参与者提供的分存信息都不可伪造。

与之对应的多载体密图恢复算法,记为算法2:

1) 由用户输入嵌密后载体$ {{A'''}_k} = {\left( {{{a'''}^k}_{i, j}} \right)_{m \times n}} $$k$=0, 1, …, $l$-1且$ l \ge {l_{\min }}, {l_{\min }} = \left\lceil {q{{\log }_c}2} \right\rceil $,然后所有用户通过拉格朗日插值重构 ${\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}$ ${\mathit{\boldsymbol{S}}_{{\rm{SHA-1}}}}$ $G$1$G$3$It$$IT$,并从中提取出密图 $\mathit{\boldsymbol{S}}$ 对应的MD5值 ${\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}$ ,SHA-1值 ${\mathit{\boldsymbol{S}}_{{\rm{SHA-1}}}}$ ,抽取元素数$It$,用户密钥$G$1∈(0, 1),用户参数$G$3∈[3.57, 4]以及消除暂态效应的滤除迭代次数 $IT>0$ ,其中 $q$ 为密图灰度阶;

2) 由算法1步骤2)3)计算$G$0∈[3.57, 4]和$G$2∈(0, 1);

3) 由算法1步骤4)产生 $l$ 组置乱参数 ${a_k}, {b_k}, {c_k}, {d_k}, {e_k}, {f_k}, {t_k}$ ,将 ${{A'''}_k} = {\left( {{{a'''}^k}_{i, j}} \right)_{m \times n}}$ 置乱为 ${{A''}_k} = {\left( {{{a''}^k}_{i, j}} \right)_{m \times n}}$ 并将($i$, $j$)位置元素构造向量$ {{\mathit{\boldsymbol{S'}}}_{i, j}} = \left( {{{a''}^0}_{i, j}, {{a''}^1}_{i, j}, \cdots , {{a''}^{l - 1}}_{i, j}} \right) $,其中$k$=0, 1, …, $l$-1,$i$=0, 1, …, $m$-1,$j$=0, 1, …, $n$-1;

4) 由算法1步骤5)产生 $mn$ 组扩展约瑟夫遍历映射参数$ Star{t_{i, j}}, \mathit{\boldsymbol{Ga}}{\mathit{\boldsymbol{p}}_{i, j}}, {\mathit{\boldsymbol{M}}_{i, j}} $ ${\mathit{\boldsymbol{D}}_{i, j}}$ ,其中$i$=0, 1, …, $m$-1,$j$=0, 1, …, $n$-1;

5) 将$ Star{t_{i, j}}, \mathit{\boldsymbol{Ga}}{\mathit{\boldsymbol{p}}_{i, j}}, {\mathit{\boldsymbol{M}}_{i, j}} $ ${\mathit{\boldsymbol{D}}_{i, j}}$ 按式(37)进行扩展约瑟夫遍历映射产生$ \mathit{\boldsymbol{S}}_{{\rm{index}}}^{i, j} $,然后按式(39)恢复出秘密像素值 ${{s'}_{i, k}}$ ,其中$i$=0, 1, …, $m$-1, $j$=0, 1, …, $n$-1;

6) 将$ \mathit{\boldsymbol{S'}} = {\left( {{{s'}_{i, j}}} \right)_{m \times n}} $输出作为恢复出的密图。

同传统分存方法[7-9]相比,所提方法避免了像素膨胀,也避免了文献[10-11]为保证嵌密载体免膨胀所构造的复杂优化策略。同传统基于误差扩散的多载体密图分存方法[12-16]相比,所提方法使用EMD-${c^l}$分存密图,避免了误差扩散法所导致的嵌入载体视觉质量损失,可适用于任意灰度阶和任意分辨率的密图分存,而不仅仅局限于正方形[12, 15]或满足特定约束条件的正方形或矩形图像[13-14]以及灰度阶为1的二值图像[12-14, 16]或灰度阶为8的灰度图像[15]

文献[12, 15]所提策略仅使用简单的Arnold置乱且仅有1个迭代控制参数。文献[12-16]将不同载体同一位置像素直接对应为同一个密图像素,难以提供足够的安全性。而本文所提算法则从以下7个方面增强了安全性:

1) 由2维双尺度矩形映射对载体多次迭代置乱取代对密图的直接Arnold置乱,使得密图像素和载体同一位置像素不一一对应;

2) 2维双尺度矩形映射可用于置乱任意空间分辨率图像且多次迭代与1次迭代不具有同样的变换形式和种类,即使退变为2维等尺度矩阵变换也相对于Arnold变换更为复杂,安全性也更高;

3) 所提方法引入了密图双哈希:MD5和SHA-1值来提高单哈希:MD5或SHA-1值的抗冲撞性;

4) 通过引入扩展约瑟夫遍历映射来对EMD-${c^l}$的基向量进行置乱,提高了密写的安全性;

5) 所提方法所有中间密钥参数均与密图MD5,SHA-1值,用户密钥进行紧密绑定,从而只有提供正确密钥,密图MD5和SHA-1值才能对嵌入的密图进行正确重构,反之则无法提取;

6) 在以上所给出的算法中,涉及的密钥主要有:密图MD5值,SHA-1值,用户密钥$G$1∈(0, 1),用户参数$G$3∈[3.57, 4],抽取元素数$It$∈[24, 70]且$It$为偶数。其中MD5值的密钥空间为2128,SHA-1值的密钥空间为2160,用户指定的密钥$G$1$G$3按1015进行量化估计,抽取元素数$It$总共有24种选择,则总的密钥空间为:2128×2160×1030×24=1.193 6×10118,如此巨大的密钥空间可抵抗暴力破解攻击;

7) 本策略可进一步将 ${\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}$ ${\mathit{\boldsymbol{S}}_{{\rm{SHA-1}}}}$ $G$1$G$3$It$$IT$通过模 $p$ 拉格朗日分存产生分存信息并将新生成分存信息的MD5和SHA-1值向第三方公信方公开,从而保证参与者提供的分存信息不可伪造,而所有参与者都可对其他参与者提供的密钥分存信息的真实性进行检验,使得所述策略具备一定的认证能力。

因此本文所述方法在安全性上相对于既有多载体密图分存方法[12-16]有了很大提高。

3 实验

测试环境为Windows 10操作系统,CPU为Intel(R) Core(TM) i5-6600,主频为3.31 GHz,内存为8.00 GB,实验编码语言为JAVA jdk1.8.0 _65,选取密钥参数$It$=24, $G$1=0.837 809 912 546 124 7, $G$3=3.959 034 310 780 014 2和$IT$=1 000。采用的测试图样如图 4所示,分别为分辨率为256×144的8位灰度图像grassland、sky、lighthouse、grove、lake、cottage、cloud和分辨率为256×256的8位灰度图像sailboat、baboon、man、road、Lena以及对图 4(l)按误差扩散法得到的分辨率为256×256的1位、4位、6位和7位灰度阶半色调图像(图 4(m)(p))。表 1给出了图 4部分图像对应的MD5和SHA-1值,这些图像将作为密图用于对所提方法的普适性进行检验。

图 4 实验测试图像
Fig. 4 The experimental images
((a) grassland; (b) sky; (c) lighthouse; (d) grove; (e) lake; (f) cottage; (g) cloud; (h) sailboat; (i) baboon; (j) man; (k) road; (l) Lena; (m) 1-bit Lena; (n) 4-bit Lena; (o) 6-bit Lena; (p) 7-bit Lena)

表 1 秘密图像哈希值
Table 1 The hash value of secret images

下载CSV
密图 哈希类型 哈希值
图 4(g) MD5 0x1988c9dbcfac52ce308d3a32286d4d22
SHA-1 0x9b6f25bb3e75d9356320090b5c9bcb1 aced39587
图 4(m) MD5 0xa493c49781cf9985c52f5b30bd189837
SHA-1 0xbd8239e330abf950f3a20ea9107a5e 324321a003
图 4(n) MD5 0x331e1f60e954187e16f6ca48f20273f7
SHA-1 0xeb2c2dcaf43525c5e1babaf1999412f6a 9903151
图 4(o) MD5 0xe25ce2b1a15b47fda624267220903ee0
SHA-1 0x60052e88eab8d66acae2b9f22619dacf17e8dff1
图 4(p) MD5 0xb241988c23e3e35a1eeed1b3c084f4d4
SHA-1 0xb6616c13389911f8db1bb58b24b4334 d0123151a

使用峰值信噪比(${\rm{PSNR}}$),归一化相关参数(${\rm{NC}}$)来对密图和嵌密载体视觉质量进行衡量,通过均方差(${\rm{MSE}}$)对密图恢复质量进行评价,所有计算结果均保留小数点后4位有效数字。${\rm{NC}}$ ${\rm{MSE}}$ ${\rm{PSNR}}$的计算式为

$ {\rm{NC}} = \frac{{\sum\limits_{i = 0}^{m - 1} {\sum\limits_{j = 0}^{n - 1} {\neg {p_{i,j}} \oplus {{p'}_{i,j}}} } }}{{\sum\limits_{i = 0}^{m - 1} {\sum\limits_{j = 0}^{n - 1} {\neg {p_{i,j}} \oplus {p_{i,j}}} } }} $ (52)

$ {\rm{MSE}} = \frac{{\sum\limits_{i = 0}^{m - 1} {\sum\limits_{j = 0}^{n - 1} {{{\left( {{p_{i,j}} - {{p'}_{i,j}}} \right)}^2}} } }}{{m \times n}} $ (53)

式中,$ {p_{i, j}}, {{p'}_{i, j}} $为待比较图像像素值,“¬”为逐位取反运算符,$m$×$n$为图像分辨率。

$ {\rm{PSNR}} = 10\log \frac{{{{255}^2}}}{{{\rm{MSE}}}} $ (54)

式(54)针对的是8位灰度图像,为客观比较和保持实验结果一致性,对于其他灰度阶图像,本文按同等视觉质量的8位灰度图像来计算PSNR。

3.1 正确性验证实验

为验证正确性,选取载体图 4(a)(f),密图图 4(g),按算法1分存并按算法2提取密图。图 5图 6分别给出了正确性验证实验的嵌密载体和重构密图,与之对应的实验参数如表 2所示,表 3对嵌密载体、密图视觉质量以及密图恢复质量进行了衡量。

图 5 正确性验证实验嵌密图样
Fig. 5 The stego images of the correctness verification experiment
((a) stego carrier in group 1(EMD-3$l$); (b) stego carrier in group 2(EMD-5$l$); (c) stego carrier in group 3(EMD-7$l$))
图 6 正确性验证实验重构密图图样
Fig. 6 The recovered secret images of the correctness verification experiment
((a) recovered secret image 1; (b) recovered secret image 2; (c) recovered secret image 3)

表 2 正确性验证实验实验参数
Table 2 The variables of the correctness verification experiment

下载CSV
编号 策略 载体1:图 4(a) 载体2:图 4(b) 载体3:图 4(c) 载体4:图 4(d) 载体5:图 4(e) 载体6:图 4(f) 密图:图 4(g)
嵌密图 1 嵌密图 2 嵌密图 3 嵌密图 4 嵌密图 5 嵌密图 6 恢复
1 EMD-3$l$ 图 5(a1) 图 5(a2) 图 5(a3) 图 5(a4) 图 5(a5) 图 5(a6) 图 6(a)
2 EMD-5$l$ 图 5(b1) 图 5(b2) 图 5(b3) 图 5(b4) - - 图 6(b)
3 EMD-7$l$ 图 5(c1) 图 5(c2) 图 5(c3) 图 5(c4) - - 图 6(c)
注:“-”表示不存在。

对于8位灰度密图,采用EMD-3$l$、EMD-5$l$和EMD-7$l$对应的最少分存载体数量依次为${l_{\min }}$=6、${l_{\min }}$=4和${l_{\min }}$=3,当载体数量$l$${l_{\min }}$,则可按算法1嵌密并按算法2恢复密图。表 2中EMD-3$l$对应的载体为图 4(a)(f),用以验证$l$=${l_{\min }}$,EMD-5$l$和EMD-7$l$对应载体为图 4(a)(d),用以验证$l$=${l_{\min }}$$l$ > ${l_{\min }}$

表 2表 3图 5可看出,对于不同的嵌密策略,算法1均能正确嵌密,嵌密载体视觉质量较好。对于EMD-3$l$,嵌密载体PSNR均接近50 dB;对于EMD-5$l$,PSNR均达到45 dB;对于EMD-7$l$,PSNR均达到42 dB,原因是上述嵌密策略在不溢出的情况下对单个像素修改幅度较小,分别为±1, ±2和±3,因此对载体视觉质量影响较小。从表 2表 3图 6可看出,密图可完整恢复,故正确性得以验证。

表 3 正确性验证实验视觉和恢复质量
Table 3 The visual and recovery quality of the correctness verification experiment

下载CSV
编号 评价参数 嵌密图 1 嵌密图 2 嵌密图 3 嵌密图 4 嵌密图 5 嵌密图 6 密图
PSNR/dB NC MSE
1 PSNR/dB 49.891 9 49.861 5 49.858 3 49.913 0 49.773 6 49.718 7 无穷 1.000 0 0
NC 0.980 2 0.978 8 0.981 2 0.979 7 0.982 3 0.984 1
2 PSNR/dB 45.104 6 45.068 4 45.068 8 45.122 3 - - 无穷 1.000 0 0
NC 0.967 6 0.965 1 0.968 9 0.966 9 - -
3 PSNR/dB 42.082 1 42.102 7 42.051 8 42.119 3 - - 无穷 1.000 0 0
NC 0.956 4 0.954 1 0.958 5 0.953 6 - -
注:“-”表示不存在。

3.2 密钥敏感性验证实验

为验证密钥敏感性,选取嵌密载体图 5(a),正确密图图 4(g)。按表 4表 5对密图MD5和SHA-1值以及密钥参数$G$1$G$3$It$进行微小调整,然后按算法2进行密图重构。其中,表 4表 5分别是针对单个和多个密钥参数进行微小调整的密钥敏感性验证实验参数,“-”表示未修改。图 7给出了密图重构结果。注:本文是将 ${\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}$ ${\mathit{\boldsymbol{S}}_{{\rm{SHA-1}}}}$ $G$1$G$3$It$$IT$通过模 $p$ 拉格朗日分存产生分存信息,并将分存信息对应的MD5和SHA-1值向第三方公信方公开,从而保证每个参与者提供的分存信息都不可伪造,且引入的双哈希使得修改 ${\mathit{\boldsymbol{S}}_{{\rm{MD5}}}}$ , ${\mathit{\boldsymbol{S}}_{{\rm{SHA-1}}}}$ , $G$1, $G$3, $It$能准确重构密图成为极小概率事件,但作为分存策略不可或缺的加密环节,应保证其对密钥参数的敏感性。

表 4 修改单个密钥参数的密钥敏感性验证实验参数
Table 4 The single key modification experiment variables of the key sensitivity verification experiment

下载CSV
编号 载体图像 修改密钥或参数(每次仅对其中一个值修改) 提取密图 密图
名称 修改方法 原值 修改值 PSNR/dB NC MSE
1 图 5(a) MD5 最后一位调整为1 0x1988…4d22 0x1988…4d21 图 7(a) 8.047 2 0.507 4 10 194.448 4
2 图 5(a) SHA-1 最后一位调整为8 0x9b6f…9587 0x9b6f…9588 图 7(b) 8.057 6 0.507 3 10 170.041 4
3 图 5(a) $G$1 最后一位调整为6 0.8378099125461247 0.8378099125461246 图 7(c) 8.096 6 0.510 1 10 079.090 8
4 图 5(a) $G$3 最后一位调整为3 3.9590343107800142 3.9590343107800143 图 7(d) 8.050 5 0.506 8 10 186.674 6
5 图 5(a) $It$ 向下调整1 24 23 图 7(e) 8.034 6 0.505 3 10 224.025 3

表 5 修改多个密钥参数的密钥敏感性验证实验参数
Table 5 The multiple keys modification experiment variables of the key sensitivity verification experiment

下载CSV
编号 密钥参数 MD5值 SHA-1值 $G$1 $G$3 $It$ 提取密图 PSNR/dB NC MSE
原始值 0x1988…4d22 0x9b6f…9587 0.8378…1247 3.9590…0142 24
6 修改值 0x1988…4d21 0x9b6f…9586 - - - 图 7(f) 8.092 9 0.508 0 10 087.805 3
7 修改值 0x1988…4d23 0x9b6f…9588 0.8378…1248 - - 图 7(g) 8.105 3 0.510 1 10 058.935 2
8 修改值 0x1988…4d23 0x9b6f…9588 0.8378…1246 3.9590…0143 - 图 7(h) 8.031 3 0.505 6 10 231.860 6
9 修改值 0x1988…4d21 0x9b6f…9586 0.8378…1248 3.9590…0141 25 图 7(i) 8.065 4 0.506 8 10 151.789 0
图 7 密钥敏感性验证实验重构密图
Fig. 7 The recovered secret images of the key sensitivity verification experiment
((a) recovered secret image 1; (b) recovered secret image 2; (c) recovered secret image 3; (d) recovered secret image 4; (e) recovered secret image 5; (f) recovered secret image 6; (g) recovered secret image 7; (h) recovered secret image 8; (i) recovered secret image 9)

表 4表 5可看出,无论对单个还是多个密钥参数进行微小调整,提取出的密图相对于原密图的NC值均为0.5左右,说明提取出的密图和原密图不相关,由MSE和PSNR可知,提取出的密图与原密图像素差异度普遍较大,PSNR仅有8 dB左右,说明恢复出的密图视觉质量极低。

图 7可看出,所有重构密图均为无意义随机图像,说明当密钥参数微小改变时,本文所述策略的密图根本无法提取,因此本文所述策略的加密环节对密钥微小改变极度敏感。

3.3 抗攻击实验

为验证抗攻击能力,按图 8攻击模板对图 5(a)嵌密载体进行随机组合攻击,然后按算法2密图重构,其中图 8(a)(c)为几何剪裁攻击,图 8(d)(f)为随机涂鸦攻击,图 8(g)(i)为椒盐噪声攻击,对应的噪声强度分别为8%,20%和50%。图 9图 10分别给出了载体攻击图样和与之对应的重构密图。具体的实验参数如表 6所示,其中表 7对嵌密载体攻击程度以及重构密图恢复质量进行了测试。

图 8 攻击模板
Fig. 8 The attack templates
((a) triangular cropping; (b) square cropping; (c) pentagram cropping; (d) graffiti 1; (e) graffiti 2; (f) graffiti 3;(g) 8% salt pepper noise; (h) 20% salt pepper noise; (i) 50% salt pepper noise)
图 9 抗攻击实验嵌密载体攻击图样
Fig. 9 The attacked stego images of anti-attack experiment
((a)attacked carriers in group 1; (b)attacked carriers in group 2; (c)attacked carriers in group 3; (d)attacked carriers in group 4; (e)attacked carriers in group 5; (f)attacked carriers in group 6)
图 10 抗攻击实验恢复密图图样
Fig. 10 The recovered secret images of anti-attack experiment
((a) recovered secret image 1; (b) recovered secret image 2; (c) recovered secret image 3; (d) recovered secret image 4; (e) recovered secret image 5; (f) recovered secret image 6)

表 6 抗攻击实验的实验参数
Table 6 The experiment variables of anti-attack experiment

下载CSV

表 7 抗攻击实验嵌密载体攻击程度和密图恢复质量测试结果
Table 7 The attacked range of cover image and recovery quality of secret image in anti-attack experiment

下载CSV
编号 评价参数 攻击载体1 攻击载体2 攻击载体3 攻击载体4 攻击载体5 攻击载体6 密图
PSNR/dB NC MSE
1 PSNR/dB 16.292 0 15.015 9 49.858 3 49.913 0 49.773 6 49.718 7 15.363 6 0.903 7 1 891.160 0
NC 0.939 5 0.911 0 0.981 2 0.979 7 0.982 3 0.984 1
2 PSNR/dB 49.891 9 49.861 5 21.512 3 11.768 1 49.773 6 49.718 7 12.615 3 0.829 1 3 560.862 1
NC 0.980 2 0.978 8 0.956 5 0.871 6 0.982 3 0.984 1
3 PSNR/dB 49.891 9 49.861 5 49.858 3 49.913 0 20.243 9 7.275 4 14.084 8 0.882 7 2 538.657 9
NC 0.980 2 0.978 8 0.981 2 0.979 7 0.967 8 0.732 0
4 PSNR/dB 16.292 0 19.058 9 7.799 0 49.913 0 49.773 6 49.718 7 10.654 4 0.722 5 5 592.979 4
NC 0.939 5 0.961 4 0.739 4 0.979 7 0.982 3 0.984 1
5 PSNR/dB 49.891 9 49.861 5 49.858 3 13.187 7 17.899 5 11.514 2 13.781 7 0.870 3 2 722.177 5
NC 0.980 2 0.978 8 0.981 2 0.913 2 0.939 5 0.888 4
6 PSNR/dB 16.162 7 49.861 5 18.161 7 49.913 0 49.773 6 15.361 1 14.726 2 0.883 9 2 190.112 3
NC 0.930 7 0.978 8 0.954 0 0.979 7 0.982 3 0.944 9

表 6表 7图 9图 10可看出,对分发载体的剪裁、涂鸦和随机噪声攻击尽管可导致重构密图视觉质量下降,对应的PSNR位于10.654 4 dB~15.363 6 dB,而MSE保持在1 891.160 0~5 592.979 4,但所提策略可通过2维双尺度矩形映射来改变载体像素位置的对应关系,从而将载体攻击分散得比较均匀,重构密图NC值保持在0.722 5~0.903 7,趋近于1,说明重构密图与原密图足够相似,提取密图可基本保持原貌。说明所提策略对剪裁、涂鸦和随机噪声攻击具有较强的攻击容忍能力。

3.4 普适性验证实验

为验证所提策略的普适性,选取图 4(h)(k)为待嵌密载体(由于图 5图 6已经给出了针对矩形图像的测试结果,这里选取正方形图像进行测试),图 4(m)(p)为秘密图像,按算法1进行多载体密图分存,然后按算法2进行密图提取,算法1和算法2中的嵌密策略被设定为EMD-5$l$。其中,图 4(m)(p)对应的密图分别为1位、4位、6位、7位灰度级半色调图像,与之对应的${l_{\min }}$依次为${l_{\min }}$=1、${l_{\min }}$=2、${l_{\min }}$=3和${l_{\min }}$=4,这里为便于组织实验数据,将分存载体数量l统一为4。具体的实验图样如图 11图 12所示,与之对应的实验参数和实验结果如表 8表 9所示。

图 11 普适性验证实验实验图样
Fig. 11 The experimental images of the universal verification experiment
((a) stego carriers of 1-bit secret image; (b) stego carriers of 4-bit secret image; (c) stego carriers of 6-bit secret image; (d) stego carriers of 7-bit secret image)
图 12 普适性验证实验密图重构图样
Fig. 12 The recovered secret images of the universal verification experiment
((a) recovered secret image 1; (b) recovered secret image 2; (c) recovered secret image 3; (d) recovered secret image 4)

表 8 普适性验证实验实验参数
Table 8 The experimental variables of the universal verification experiment

下载CSV
编号 策略 密图灰度级 载体1 载体2 载体3 载体4 重构密图
原图 嵌密图 原图 嵌密图 原图 嵌密图 原图 嵌密图 原图 恢复图
1 EMD-5$l$ 1阶 图 4(h) 图 11(a1) 图 4(i) 图 11(a2) 图 4(j) 图 11(a3) 图 4(k) 图 11(a4) 图 4(m) 图 12(a)
2 EMD-5$l$ 4阶 图 4(h) 图 11(b1) 图 4(i) 图 11(b2) 图 4(j) 图 11(b3) 图 4(k) 图 11(b4) 图 4(n) 图 12(b)
3 EMD-5$l$ 6阶 图 4(h) 图 11(c1) 图 4(i) 图 11(c2) 图 4(j) 图 11(c3) 图 4(k) 图 11(c4) 图 4(o) 图 12(c)
4 EMD-5$l$ 7阶 图 4(h) 图 11(d1) 图 4(i) 图 11(d2) 图 4(j) 图 11(d3) 图 4(k) 图 11(d4) 图 4(p) 图 12(d)

表 9 普适性验证实验实验视觉和恢复质量
Table 9 The visual and recovery quality of the universal verification experiment

下载CSV
编号 载体1 载体2 载体3 载体4 重构密图
PSNR/dB NC PSNR/dB NC PSNR/dB NC PSNR/dB NC PSNR/dB NC MSE
1 45.135 1 0.973 2 45.157 2 0.964 6 45.119 8 0.966 8 45.086 5 0.964 6 无穷 1.000 0 0
2 45.139 2 0.969 6 45.133 8 0.964 3 45.103 5 0.967 3 45.093 1 0.964 7 无穷 1.000 0 0
3 45.129 0 0.969 2 45.121 7 0.964 3 45.141 6 0.966 5 45.071 5 0.964 8 无穷 1.000 0 0
4 45.124 6 0.969 8 45.120 7 0.964 0 45.119 0 0.967 2 45.085 2 0.964 2 无穷 1.000 0 0

表 8表 9图 11图 12可看出,采用EMD-5$l$可嵌入不同灰度阶密图,嵌密载体PSNR均在45 dB左右,从NC值趋近于1可看出,嵌密后载体与原载体足够相似,因此嵌密载体视觉质量较高。重构后密图NC值为1、MSE为0和PSNR值为无穷大说明密图均能正确重构。因此相对于文献[12-14, 16]只能嵌入二值密图,文献[15]只能嵌入灰度密图,本文策略可在保证嵌密载体较高视觉质量基础上,嵌入不同灰度阶密图。

图 5图 6图 11图 12的实验结果可看出,所提策略可针对任意分辨率的图像进行分存,而不只局限于正方形图像[12, 15]

因此相对于传统多载体分存方法[12-16],所提出的基于EMD-${c^l}$嵌密策略的多载体密图分存方法具有较高的普适性。

3.5 与相关文献的对比实验

以下将本文策略与文献[12-16]进行对比,为保证公平性,所有策略均采用(3, 3)分存,选取图 4(h)(j)为待嵌密载体,图 4(m)为秘密图像(即二值图像,原因是文献[12-14, 16]只能嵌入二值密图),分别按文献[12-16]中的算法和本文策略进行多载体密图分存,然后进行密图重构,并从以下5个方面进行对比:1)嵌密载体视觉质量;2)密图和载体图分辨率;3)可分存密图的灰度阶;4)安全性和5)认证能力。其中,算法1和算法2嵌密策略设定为EMD-7$l$,需满足嵌密载体数量$l$${l_{\min }}$=3。图 13给出了具体的实验结果,表 10对不同方案的嵌密载体及密图重构视觉质量进行了测试,表 11给出了测试结果。

图 13 本文和文献[12-16]的嵌密载体和重构密图
Fig. 13 The stego carriers and recovered secret images in reference[12-16] and the proposed method
((a) reference [11]; (b) reference [13-14]; (c) reference [15]; (d) reference [16]; (e) ours(EMD-7$l$))

表 10 与同类文献对比的实验视觉和恢复质量
Table 10 The visual and recovery quality of silmar works

下载CSV
编号 方案 评价参数 载体1 载体2 载体3 密图
1 文献[12] 原图 图 4(h) 图 4(i) 图 4(j) 图 4(m)
嵌密图 图 13(a1) 图 13(a2) 图 13(a3) -
恢复图 - - - 图 13(a4)
PSNR/dB 7.881 6 7.707 9 7.855 0 无穷
NC 0.836 5 0.829 9 0.835 5 1.000 0
2 文献[13-14] 原图 图 4(h) 图 4(i) 图 4(j) 图 4(m)
嵌密图 图 13(b1) 图 13(b2) 图 13(b3) -
恢复图 - - - 图 13(b4)
PSNR/dB 4.206 5 5.224 8 8.010 3 无穷
NC 0.870 4 0.824 3 0.810 5 1.000 0
3 文献[15] 原图 图 4(h) 图 4(i) 图 4(j) 图 4(m)
嵌密图 图 13(c1) 图 13(c2) 图 13(c3) -
恢复图 - - - 图 13(c4)
PSNR/dB 40.019 5 40.779 7 42.233 6 无穷
NC 0.955 4 0.947 3 0.960 1 1.000 0
4 文献[16] 原图 图 4(h) 图 4(i) 图 4(j) 图 4(m)
嵌密图 图 13(d1) 图 13(d2) 图 13(d3) -
恢复图 - - - 图 13(d4)
PSNR/dB 21.425 6 19.773 7 25.484 8 无穷
NC 0.831 5 0.737 6 0.866 1 1.000 0
5 本文方法 原图 图 4(h) 图 4(i) 图 4(j) 图 4(m)
嵌密图 图 13(e1) 图 13(e2) 图 13(e3) -
恢复图 - - - 图 13(e4)
PSNR/dB 42.114 7 42.121 4 42.096 4 无穷
NC 0.958 6 0.951 5 0.955 6 1.000 0
注:“-”表示不存在。

表 11 相关文献的性能对比结果
Table 11 The experimental results of silmar works

下载CSV
编号 方法 图像大小 密图灰度级 安全性 认证能力
1 文献[12] 正方形 二值
2 文献[13-14] 2的幂次 二值
3 文献[15] 正方形 灰度
4 文献[16] 任意 二值
5 本文 任意 任意 极强

表 10表 11图 13可看出:1)在嵌密载体视觉质量上:文献[12]嵌密载体PSNR为7.8 dB左右,NC在0.83左右,文献[13-14]嵌密载体PSNR为5.8 dB左右,NC和文献[12]相差不大,文献[12-14]嵌密载体视觉质量较差,原因是文献[12-14]在嵌密分存前都对载体进行了二值半色调化,导致嵌密载体的视觉质量损失较大;文献[15]嵌密载体PSNR略高于40 dB,NC在0.95左右,视觉质量相对较好;文献[16]嵌密载体PSNR为20 dB左右,NC在0.8左右,嵌密载体视觉质量较差;本文使用的EMD-${c^l}$嵌密策略在不溢出情况下对载体像素调整量仅为$ \pm \left\lfloor {c/2} \right\rfloor $,相对于既有方法[12-16]对嵌密载体视觉质量影响最小,嵌密载体PSNR达到42 dB,NC高于0.95,具有最好的嵌密载体视觉质量。

2) 在密图和载体图分辨率上,文献[12, 15]由于采用Arnold对密图置乱,故载体图和密图只能选取正方形图像;文献[13-14]在嵌密过程中需将载体进行逐层金字塔分解,因此载体图和密图大小限定为2的整数幂次;文献[16]未限制载体和密图大小;而本文选取的2维双尺度矩形映射适用于任意矩形图像,因此可针对任意分辨率的载体图和密图。

3) 在可分存密图的灰度阶上,文献[12]采用误差扩散法将灰度载体图转换为二值半色调图像,然后基于异或策略分存密图,故只能分存二值密图;文献[13-14]采用多尺度误差扩散法将灰度载体图转换为半色调图以嵌入密图,故只能分存二值密图;文献[15]针对不同的载体数量需单独设计恢复函数,并且所设计的恢复函数只能针对灰度密图;文献[16]采用BTC编码将灰度载体图转换为二值半色调图像,并通过翻转此半色调图像像素嵌入二值密图,故只能分存二值密图;本文策略基于EMD-${c^l}$嵌入策略可对任意灰度阶密图进行分存。

4) 在安全性上,文献[12, 15]仅对密图进行简单的Arnold置乱,置乱参数仅为1,1,1,2,其安全性仅取决于迭代次数,同时Arnold变换的多次迭代不改变映射形式,等价为选取另一2维等尺度矩阵变换的1次迭代,仅有4个可供选择的变换参数,安全性较弱;文献[13-14]未针对密图与载体添加任何安全策略;文献[16]加密策略仅有密图和与其等大的随机图像异或加密,未改变密图像素位置相关性,因而安全性较弱;本文策略对每张载体图使用不同的2维双尺度矩形映射参数和迭代次数进行置乱,并采用扩展约瑟夫遍历映射对EMD-${c^l}$嵌密策略的基向量进行置乱,所使用的加密参数与密图属性紧密关联,相对于传统方法[12-16],具有较高的安全性。

5) 在认证能力上,文献[12-15]未对嵌密后载体进行认证,文献[16]基于RSA公钥加密算法和哈希函数对嵌密分存图进行认证,具备一定的认证能力。本文策略将文中所涉及密钥通过模 $p$ 下的拉格朗日分存产生分存信息,然后将新生成分存信息的MD5值和SHA-1值向第三方公信方公开,可对其他参与者提供的密钥分存信息的真实性进行检验,从而使本文策略具备一定的认证能力。

综上所述,本文方法相对于既有文献[12-16]具有较好的嵌密载体视觉质量,可用于任意灰度阶和任意分辨率秘密图像分存且在分存过程中与密图MD5,SHA-1值以及用户密钥紧密绑定使得所述策略具备较高的安全性,并可通过第三方公信方托管密钥参数分存信息的MD5和SHA-1值,使得所有参与者都可对其他参与者提供的密钥分存信息的真实性进行检验,使得所述策略具备一定的认证能力。

4 结论

以上,传统多载体密图分存方法采用误差扩散法会对嵌入载体视觉质量[12-16]造成较大影响,同时恢复函数需单独设计[15],只适用于二值[12-14, 16]或灰度图像分存[15]且通过简单Arnold置乱[12, 15]或异或加密[15],仅能提供有限的安全性。针对以上问题,提出一种基于EMD-${c^l}$的多载体密图分存方法,采用EMD-${c^l}$嵌入方法将任意灰度阶密图分存到多张载体中。所提方法通过密图MD5和SHA-1值以及用户给定的密钥产生多组2维双尺度置乱参数并分别用于不同的公开图像像素位置置乱,然后对多张载体同一位置像素构成的向量采用EMD-${c^l}$嵌入密图像素并重构公开图像,其中EMD-${c^l}$的基向量被与密图MD5和SHA-1值以及用户给定密钥绑定的扩展约瑟夫遍历映射随机置乱,从而仅有正确的用户密钥和正确的密图MD5和SHA-1值才能对密图恢复并可通过第三方公信方托管的密钥参数分存信息的MD5和SHA-1值使得所述策略具有一定的认证能力。

参考文献

  • [1] Tang Z J, Wang F, Zhang X Q. Image encryption based on random projection partition and chaotic system[J]. Multimedia Tools and Applications, 2017, 76(6): 8257–8283. [DOI:10.1007/s11042-016-3476-1]
  • [2] Li Y P, Wang C H, Chen H. A hyper-chaos-based image encryption algorithm using pixel-level permutation and bit-level permutation[J]. Optics and Lasers in Engineering, 2017, 90: 238–246. [DOI:10.1016/j.optlaseng.2016.10.020]
  • [3] Sharif A, Mollaeefar M, Nazari M. A novel method for digital image steganography based on a new three-dimensional chaotic map[J]. Multimedia Tools and Applications, 2017, 76(6): 7849–7867. [DOI:10.1007/s11042-016-3398-y]
  • [4] Khanna A K, Roy N R, Verma B. Digital image watermarking and its optimization using genetic algorithm[C]//International Conference on Computing, Communication and Automation. Noida, India: IEEE, 2017: 1140-1144. [DOI:10.1109/ccaa.2016.7813888]
  • [5] Munib S, Khan A. Robust image watermarking technique using triangular regions and Zernike moments for quantization based embedding[J]. Multimedia Tools and Applications, 2017, 76(6): 8695–8710. [DOI:10.1007/s11042-016-3485-0]
  • [6] Vidyadharan D S, Thampi S M. Digital image forgery detection using compact multi-texture representation[J]. Journal of Intelligent & Fuzzy Systems, 2017, 32(4): 3177–3188. [DOI:10.3233/JIFS-169261]
  • [7] Wu C C, Kao S J, Hwang M S. A high quality image sharing with steganography and adaptive authentication scheme[J]. Journal of Systems and Software, 2011, 84(12): 2196–2207. [DOI:10.1016/j.jss.2011.06.021]
  • [8] Chang C C, Chen Y H, Wang H C. Meaningful secret sharing technique with authentication and remedy abilities[J]. Information Sciences, 2011, 181(14): 3073–3084. [DOI:10.1016/j.ins.2011.03.002]
  • [9] Wu X T, Sun W. Secret image sharing scheme with authentication and remedy abilities based on cellular automata and discrete wavelet transform[J]. Journal of Systems and Software, 2013, 86(4): 1068–1088. [DOI:10.1016/j.jss.2012.11.021]
  • [10] Ouyang X B, Shao L P, Chen W X. Meaningful (K, N) image sharing scheme combined with the adjusting difference transformation[J]. Journal of Image and Graphics, 2015, 20(5): 633–642. [欧阳显斌, 邵利平, 陈文鑫. 结合调整差值变换的(K, N)有意义图像分存方案[J]. 中国图象图形学报, 2015, 20(5): 633–642. ] [DOI:10.11834/jig.20150506]
  • [11] Ouyang X B, Shao L P. Meaningful (K, N) free expansion image sharing scheme based on GF(23)[J]. Computer Science, 2015, 42(12): 251–256. [欧阳显斌, 邵利平. 一种基于GF(23)的(K, N)有意义无扩张图像分存方案[J]. 计算机科学, 2015, 42(12): 251–256. ] [DOI:10.11896/j.issn.1002-137X.2015.12.054]
  • [12] Wu X T, Sun W. Image sharing scheme based on error diffusion[J]. Journal of Computer Applications, 2011, 31(1): 74–77, 81. [吴小天, 孙伟. 基于误差扩散的图像分存方案[J]. 计算机应用, 2011, 31(1): 74–77, 81. ] [DOI:10.3724/SP.J.1087.2011.00074]
  • [13] Tsai T F, Su P C. An information sharing scheme in halftone images based on multi-scale error diffusion[C]//Proceedings of 2015 International Carnahan Conference on Security Technology. Taipei, Taiwan, China: IEEE, 2015: 369-372. [DOI:10.1109/ccst.2015.7389712]
  • [14] Su P C, Tsai T F, Chien Y C. Visual secret sharing in halftone images by multi-scale error diffusion[J]. Multimedia Tools and Applications, 2018, 77(10): 12111–12138. [DOI:10.1007/s11042-017-4861-0]
  • [15] Ou D H, Wu X T, Sun W, et al. Secret gray-level image sharing scheme based on recovery function and error diffusion[J]. Computer Science, 2013, 40(2): 112–116. [欧锻灏, 吴小天, 孙伟, 等. 基于恢复函数和误差扩散的灰度图像分存方案[J]. 计算机科学, 2013, 40(2): 112–116. ] [DOI:10.3969/j.issn.1002-137X.2013.02.025]
  • [16] Ou D H, Ye L L, Sun W. User-friendly secret image sharing scheme with verification ability based on block truncation coding and error diffusion[J]. Journal of Visual Communication and Image Representation, 2015, 29: 46–60. [DOI:10.1016/j.jvcir.2015.01.017]
  • [17] Zhang X P, Wang S Z. Efficient steganographic embedding by exploiting modification direction[J]. IEEE Communications Letters, 2006, 10(11): 781–783. [DOI:10.1109/LCOMM.2006.060863]
  • [18] Qin C, Chang C C, Hsu T J. Reversible data hiding scheme based on exploiting modification direction with two steganographic images[J]. Multimedia Tools and Applications, 2015, 74(15): 5861–5872. [DOI:10.1007/s11042-014-1894-5]
  • [19] Kim H J, Kim C, Choi Y, et al. Improved modification direction methods[J]. Computers & Mathematics with Applications, 2010, 60(2): 319–325. [DOI:10.1016/j.camwa.2010.01.006]
  • [20] Niu X J, Ma M, Tang R, et al. Image steganography via fully exploiting modification direction[J]. International Journal of Security and Its Applications, 2015, 9(5): 243–254. [DOI:10.14257/ijsia.2015.9.5.24]
  • [21] Lee C F, Chang C C, Pai P Y, et al. Adjustment hiding method based on exploiting modification direction[J]. International Journal of Network Security, 2015, 17(5): 607–618. [DOI:10.6633/IJNS.201509.17(5).12]
  • [22] Liao Q N, Sun X B, Pan R D. Secure steganography by n-dimensional hypercube modulo mapping[J]. Acta Electronica Sinica, 2016, 44(1): 160–167. [廖琪男, 孙宪波, 潘瑞冬. n维超立方体模映射安全隐写算法[J]. 电子学报, 2016, 44(1): 160–167. ] [DOI:10.3969/j.issn.0372-2112.2016.01.024]
  • [23] Xiang D S, Xiong Y S. Digital image scrambling based on Josephus traversing[J]. Computer Engineering and Applications, 2005, 41(10): 44–46. [向德生, 熊岳山. 基于约瑟夫遍历的数字图像置乱算法[J]. 计算机工程与应用, 2005, 41(10): 44–46. ] [DOI:10.3321/j.issn:1002-8331.2005.10.014]
  • [24] Guo Y, Shao L P, Yang L. Bit-level image encryption algorithm based on Josephus and Henon chaotic map[J]. Application Research of Computers, 2015, 32(4): 1131–1137. [郭毅, 邵利平, 杨璐. 基于约瑟夫和Henon映射的比特位图像加密算法[J]. 计算机应用研究, 2015, 32(4): 1131–1137. ] [DOI:10.3969/j.issn.1001-3695.2015.04.041]
  • [25] Shao L P, Qin Z, Liu B, et al. 2D bi-scale rectangular mapping and its application in image scrambling[J]. Journal of Computer-Aided Design & Computer Graphics, 2009, 21(7): 1025–1034. [邵利平, 覃征, 刘波, 等. 二维双尺度矩形映射及其在图像置乱上的应用[J]. 计算机辅助设计与图形学学报, 2009, 21(7): 1025–1034. ]