APP下载

基于随机网格的视觉多秘密共享方案

2022-03-09高军涛

电子与信息学报 2022年2期
关键词:透光率份额正确率

高军涛 岳 浩 曹 菁

①(西安电子科技大学通信工程学院 西安 710071)

②(广西密码学与信息安全重点实验室 桂林 541004)

③(中国石油新疆油田分公司勘探开发研究院 克拉玛依 834000)

1 引言

秘密共享技术可以增加密文的鲁棒性。文献[1,2]采用了Shamir-Lagrange方法首次提出了图像秘密共享。目前用于共享秘密图像的技术还有基于布尔运算的图像秘密共享方法[3-5]、基于中国剩余定理的图像秘密共享方案[6-9],以及基于数独等技术设计的图像秘密共享方案[10]。这些方法在恢复图像过程中,通常需要借助一些辅助工具或者是计算器。比如文献[1,11]中的方案在恢复图像时,需要使用Lagrange插值公式,而文献[3-5,12,13]中的方案使用异或运算对不同的份额进行运算。与上面的方案不同,视觉秘密共享(Visual Secret Sharing,VSS)方案可以在用户计算能力很弱或者没有计算能力情况下利用视觉恢复秘密[14-19]。目前的VSS方案主要分为两种:可视加密(Visual Cryptography,VC)和随机网格(Random Grid, RG)。其中VC会导致像素扩展、需要码本等缺点,而RG方案克服了像素扩展和需要码本的问题,但是目前基于RG的方案大多是单个秘密图像的,对于共享多个秘密图像时,门限往往为 2 或者是n。同时随着份额增加,恢复图像的质量也会下降。

本文提出了一种基于随机网格的VSS方案,具有不存在像素扩展、不需要码本等优势。方案不仅继承了一般随机网格方案的优点,同时也克服了可视加密的缺点。本文方案具有如下优势:

(1) 采用拆分关键秘密份额的方法增加了方案的鲁棒性。原方案中共享阶段第 2 步中生成的份额SCk−1如果丢失,会导致无法恢复秘密图像。本文将SCk−1“拆分”为多个份额,允许最多有n−k个份额丢失仍然可以保证图像正确恢复。因此本文方案具有更高的鲁棒性。

(2) 在提高方案鲁棒性的条件下,允许1次对多个秘密图像进行渐进共享,即随着叠加的数量,可以得到更好的视觉质量,同时实现了鲁棒性、渐进性和多秘密3个特性。

(3) 仿真结果表明本文方案和文献[19]中的方案在相同数量的秘密图像和份额下,像素恢复的正确率更高。具体来说,在共享两个尺寸为 256×256的图像时,文献[19]像素的正确率为 0.15,本文方案为 0.35。

2 相关工作

2.1 视觉秘密共享(VSS)

VSS的优势在于无需密码知识和计算设备即可提供解密操作。因此,VSS适用于安全性要求高并且无计算设备的场景。VSS可以分为两种:通过编码矩阵的可视加密(VC)[14]以及随机网格(RG)[15]技术。

VC是一种以安全方式加密秘密图像(Secret Image, SI)的技术。在VC中,原始图像根据规则被加密为不同的且无意义的图像,产生的图像称为份额(share),被分配给不同的用户。任何人无法从单个的份额中得到关于SI的任何信息。但将一定数量的份额堆叠在一起时,就可以恢复出原始图像。VC方案中的共享操作是秘密分发者(dealer)预先设计好一个编码矩阵(也称码本(codebook)),然后根据要共享的秘密像素的不同,选择不同的矩阵中的值。如表1。

对于秘密图像中的像素,如果是白色像素,那么份额A可以有 4 种选择,同时对应的份额B应该和份额A保持一致;如果是黑色像素,那么份额A也有4 种选择,同时对应的份额B应该和份额A恰好相反。

基于VC的VSS方案一般存在如下问题:有像素扩展;需要码本;1次只能编码1个秘密图像;对比度较低等等。文献[20-22]在不同方向针对VC进行了改进。

2.2 随机网格(RG)

基于随机网格的视觉图像秘密共享(Random Grid based VSS, RGVSS)[15]将黑白二值图像视为具有2维像素阵列的网格,其中每个像素要么透明要么不透明。每一个网格的平均透光率为 0.5。文献[23]对文献[24]的工作进行了改进。将两个秘密图像加密为两个随机网格。在恢复阶段,通过对其中一个随机网格旋转,恢复出秘密图像。文献[25]提出了一种使用多个RG的图像加密新方案。在这个方案中,他提供了一种n ≥2的加密方案。具体地说,图像SI编码为n个RG,在恢复的时候只有当n个份额叠加在一起时,人的视觉系统才能识别秘密图像。文献[16]提出了一种基于随机网格的方案。他可以实现(2,n)或者(n,n)。方案的编码示意图见图1。

图1(a)方案的过程是首先把1个秘密图像通过RGVSS算法生成2个份额,然后将第2个份额作为秘密图像再用RGVSS算法生成两个份额,重复n −1次得到n个份额。在恢复过程中,只需要叠加所有的份额就可以恢复出秘密图像。图1(b)方案的过程是首先把1个秘密图像通过RGVSS算法得到2个份额,然后把目前生成的第2个份额作为下一次RGVSS算法的第1个份额。重复n −1次得到n个份额。在恢复过程中,只需要叠加n个份额中相邻的2个就可以恢复出秘密图像。

Chang等人[26]提出了一种新颖的VSS方案。将两个秘密图像生成2个份额,在恢复时,直接堆叠可以恢复出第1个秘密图像,通过水平移动1个固定的位置,恢复出第 2 个秘密图像。文献[17]首次提出了基于RG的(k,n)门限方案。为了提高图像叠加之后的对比度,文献[18]又提出了“渐进式”的VSS方案,它拥有更好的视觉质量。这种方案的缺点是门限为 2。同时具有渐进效果的方案还有文献[27,28]。Hou等人[29]提出了一种基于RG的视觉友好VSS方案。在此方案中,本文可以生成有意义的和无意义的份额。所提出的技术可以使用不同的封面图像来产生有意义的份额。为了提高视觉友好方案的性能,提出了(k,n)共享方案[30]和使用XOR操作的随机网格方案[31]。2019 年,文献[32]提出了一种RGVSS的数据隐藏方案。产生n个份额,其中1个作为密钥,保留在安全中心,剩余的n −1个份额先用Host图像覆盖一下再分配给参与者,这样可以提高安全性。文献[33]通过对多个像素编码的方法,可以达到减小份额图像的功能,但是可能会导致边界模糊。

表1 扩展为2的VC方案

3 本文方案

本算法分为秘密共享阶段和秘密重建阶段。共享阶段对前k −1个份额中的像素采用一般的随机网格的方法,再对第k −1个像素进一步使用随机化的编码方法,然后一共生成剩余的n −k+2个份额。在恢复秘密图像阶段采用圆柱形的随机网格,通过旋转的方法,便于恢复出秘密图像。共享阶段的示意图如图2所示。

3.1 秘密共享阶段

输入:m个h×w的秘密图像S1,S2,...,Sm,1个阈值参数(k,n)。

输出:n个影子图像SC1,SC2,...,SCn。

步骤1 随机生成k −2个随机网格SC1,SC2,...,SCk−2,计算SC1⊕SC2⊕...⊕SCk−2=SC0。

3.2 秘密重建阶段

当选取所有的(共计k −2个)低透光率的随机网格,和至少两个高透光率的随机网格,就可以通过旋转的方式逐个恢复原始秘密图像,每次的旋转角度为360°/m,这里的m表示秘密图像的个数。同时视觉恢复效果随着高透光率的随机网格的增加而增加。

图1 文献[16]的VSS方案

图2 基于圆柱形随机网格的视觉秘密共享示意图

4 性能分析

4.1 定义

4.2 性质

证毕

性质3

(1)所提VSS方案中,堆叠任意的少于k个随机网格得到的结果是无意义的,也不能揭示秘密图像。

(2)堆叠后面的n −k+2个随机网格中,就可以渐进地恢复SCk−1。最少的数量是 2 个。

证明:根据性质 1 可知,对于每一个随机网格是无意义的,那么再结合定义 3,堆叠少于k个影子图像产生的图形是无意义的。

在不失一般性的情况下,假设堆叠图像是SCk−1,SCk。具体到一个像素上,假设秘密像素是白色,对应的n −k+2位置上的像素是相同的,那么出现黑色像素的概率是1/n −k+2,出现白色像素的概率是(n −k+1)/(n −k+2)。因此透光率是l[SCk−1(0)⊗SCk(0)] =l[SCk−1(0)]=l[SCk(0)]=(n −k+1)/(n −k+2)。

假设秘密像素是黑色,则把n −k+2个网格上对应的位置的像素编码为一个黑色,n −k+1个白色像素。因此通过性质 2,l[SCk−1(1)⊗SCk(1)]=l[SCk−1(1)]=l[SCk(1)]=(n −k+2−2)/(n −k+2)=(n −k)/(n −k+2)。

综上,可以得到此时恢复的网格图像对应的黑白像素点的概率不再相等,也就是可以 “恢复”出SCk−1,注意这里的SCk−1是前面由SC0和秘密图像Sα得到的那个网格图像,而不是份额SCk−1。

根据分析可以看出,同时随着堆叠数量的增加,恢复的效果渐进地“恢复”出SCk−1。证毕

性质4

堆叠多于或等于k个随机网格就可以通过旋转的方式逐个恢复原始秘密图像。同时视觉恢复效果随着高透光率的随机网格的增加而增加。

分析:如果堆叠k个随机网格,应该堆叠前k −2个低透光率的随机网格SC1,SC2,...,SCk−2和任意两个高透光率的随机网格,才可以恰好恢复秘密图像。恢复的时候首先把他们分别堆叠,即低透光率的随机网格是一组,高透光率的是另一组。然后通过旋转任意一组的结果可以逐个地恢复出秘密图像。

如果再增加随机网格,那么增加的也就是高透光率的随机网格。此时根据性质3可以知道第2组的结果会逐渐地得到完整的SCk−1。那么恢复的视觉质量也会随之提高。

5 仿真结果

本文的仿真环境是:CPU为AMD的Ryzen系列3600,主频为3.6 GHz。RAM为3200 MHz,16 GB。操作系统是Windows10-64 bit。软件是IDEA 2020。语言是JAVA。对方案进行实现,结果如下:

5.1 单秘密的(2,2)方案[15]

本文采用尺寸为256×256大小的二值图像为秘密图像,图3(b)和图3(c)为生成的两个尺寸相同的份额,两个份额均看起来是随机的,没有泄露关于原始秘密图像的任何信息。通过堆叠这两个份额,恢复出秘密图像图3(d)。

5.2 单秘密的(3,3)方案[15]

图4(a)为秘密图像,图4(b)-图4(d)为生成的3个份额。图4(e)-图4(g)为堆叠两个份额所得到的结果。图4(h)为堆叠3个份额所得到的图像,通过人的视觉系统会得到原始秘密图像中的信息。但恢复质量对比5.1节要差一些,说明生成的份额越多,在恢复的时候质量越差。同时还可以看到如果堆叠任意少于3(此时的门限)个数量的份额,不会得到关于原始秘密图像的任何信息。

图3 当2个份额时,对文献[15]的仿真结果

图4 当3个份额时,对文献[15]的仿真结果

5.3 两个秘密图像的(4,4)和(5,5)方案[19]

本文选择两幅尺寸均为256×256的图像作为秘密图像,分别对文献[19]中的(4,4)和(5,5)方案进行代码实现,叠加的结果为图5(c)和图5(d)。可以发现随着份额数量的增加,恢复的质量是逐渐下降的。

通过代码实验,可以计算出此时对于(5,5)方案中恢复出的第1个秘密图像的正确率约为0.15。

5.4 本文的两个秘密图像的(3,5)方案仿真

从仿真结果可以看到(图6)

(1) 存在两种透光率的份额;

(2) 任何一个份额都不泄露关于秘密图像的任何信息;

(3) 随着份额的叠加,恢复质量也在提高;

(4) 同样的份额数量,使用本文的方案所恢复的结果明显优于文献[19]。

通过仿真实验,可以计算出本文方案中堆叠5个份额所得到的图像,即图6(g),正确率为0.35。

5.5 更多的对比图像

为了更详细地说明所提方案的优势,本文选取了一些更一般性的图像和方案[19]进行对比,结论如表2。

如图7,这里的图像从左到右分别是第1组的秘密图像1和秘密图像2;第2组的秘密图像1和秘密图像2;第3组的秘密图像1和秘密图像2。

结论是在同一组的两个秘密图像对比,根据算法生成份额图像,然后叠加得到恢复图像。

在对每一组图像进行多次仿真后,任意选取了对第1张秘密图像的叠加结果如图8所示。

图5 对文献[19]的仿真结果

图6 对本文方案的仿真结果

图7 3组对比图像

表2 (k,n)方案对比

图8 恢复图像

这里的图像从上到下分别是3组实验图像的叠加结果。第1行从左到右的6幅图像分别是采用文献[19]中(3,3)方案、(5,5)方案、本文的(3,3)方案、本文的(3,5)方案堆叠任意3个份额、本文的(3,5)方案堆叠任意4个份额和本文的(3,5)方案堆叠所有5个份额所得到的结果。类似地,第2行和第3行的6幅图像也是对应方案得到的结果。显然,在相同份额下,本文的结果优于对比方案,且恢复秘密图像的视觉质量随着叠加份额数量的增加而提高。

6 结束语

本文提出了一种基于圆柱形随机网格的视觉秘密共享。相比于一般的随机网格方案存在如下优势:(1)更好的安全性,当攻击者对获得的份额数量少于当前的门限值,无法获得关于秘密信息的任何信息;(2)对秘密恢复的渐进性,恢复秘密图像的视觉质量随着叠加份额数量的增加而提高;(3)可以实现多个秘密共享,提高了编码秘密图像的效率。通过对大量图像多次仿真,发现同一组图像随着份额叠加的正确率并不是递增或递减的,即正确率和最终的恢复效果不是完全的正相关。仿真结果还表明本文的方案优于同类的对比方案,正确率在一定条件下可以比同类方案高出 1 倍。由于可视加密中,秘密恢复的好坏是通过视觉观察,在白色透明的区域对于肉眼是无关信息,但是在计算正确率的时候是把这些区域计算进去的,因此导致了正确率和视觉恢复效果不是正相关。下一步的工作主要集中于如何消除份额透光率不一致的问题,即份额的透光率不一致可能导致秘密图像信息泄露问题。虽然攻击者无法从份额获得秘密图像的任何信息,但是通过透光率可以获得该图像可能和秘密图像有关,从而导致秘密图像的 1 bit信息泄露。视觉友好的图像秘密共享或许是解决问题的一种途径。

猜你喜欢

透光率份额正确率
个性化护理干预对提高住院患者留取痰标本正确率的影响
影响煤制乙二醇紫外透光率因素实验分析
不同透光率果袋对黄冠梨鸡爪病发生的影响
光照强度对温室栽培蒲公英风味品质的影响
澳大利亚可再生能源首次实现供给全国负荷的50.4%
门诊分诊服务态度与正确率对护患关系的影响
国外对汽车车窗玻璃遮阳膜是如何规定的
生意
生意
什么是IMF份额