Independent High-Capacity Halftone Image Information Hiding Algorithm
In order to solve the problem of Shamir(t, n) threshold scheme not fully utilizing polynomial coefficients and shared shares during secret sharing, an independent high-capacity halftone image information hiding algorithm was designed in this paper. Using the constant term and first-order coefficient of polynomials to hide secret images, sharing shares to hide individual shared share information, such as share numbers or user information. Using quadratic coefficients to hide copyright or anti-counterfeiting information. Single shared shares and multiple shared shares that reach the threshold can be authenticated. Experiments have shown that this algorithm can separate secret images and information from multiple shared shares, achieve reversible hiding of multiple types of information, and utilize a single share to hide unique information of a single share. This algorithm increases the variety and embedding capacity of information. For Shamir(3, 5) threshold sharing, the embedding rate can reach 3.5 bpp.
Shamir(t
随着互联网的发展,越来越多的公司注重数据的安全。通常只会采用加密的方式保护数据,但是并没有密钥进行保护。因此,可以采取秘密共享的方式保护密钥安全。Shamir
周能等
文献
基于以上出现的只将信息隐藏在了多项式的常数项,或者隐藏在了全部系数但并未利用共享份额,只利用了常数项和共享份额隐藏数据等问题,本文提出了一个基于Shamir(t, n)门限方案的可逆信息隐藏方案。本文算法既能利用多项式的全部系数,同时又能利用秘密共享生成的份额隐藏秘密信息,并且秘密图像和秘密信息的独立性强,无需其他额外数据就能恢复出秘密图像和秘密信息。
1979年,Shamir
(1)
其中,st−1不为0, , 。利用多项式生成n个不同的有效(x, y)的分发n个成员。恢复秘密s的时候,从n个成员中任意选取t个成员,从中得到对应的(x, y)对。利用拉格朗日多项式进行恢复,公式如公式(2)所示:
(2)
令x = 0,可以恢复出秘密s,也即s = f(0)。当选取的成员数量m小于t时,需要假设出t − m的插值点,也即需要穷举pt−m种情况。所以恢复s变成了一个计算上的困难问题。
这里先定义一个函数,用于计算长度为8的二进制字符串中1个的个数,函数名为countBits,输入是二进制字符串,输出是二进制字符串中1的个数。
Ding
例如,多项式取y = s(x) = x2,素数p取17。当x = 0时,s(0) = 0。x对应的4位二进制数为(0000)2,s(0)对应的4位二进制数为(0000)2。两个4位二进制数拼接之后的结果为(0000 0000)2。拼接之后的二进制字符串的中1,含有的个数为0。规定含有1的个数为偶数隐藏0,含有1的个数为奇数则隐藏0,公式如公式(3)所示。公式(3)中的res表示x、y对应的两个二进制数拼接之后的结果。例如x = 0和s(0) = 0组成的份额,能隐藏0。通过这种方式隐藏额外数据,最终需要生成4张共享图像。因此,对于多项式s(x) = x2找到至少4个能隐藏0的份额和4个能隐藏1的份额,从而能保证最终4张共享图像同时隐藏0或者同时隐藏1。
(3)
秘密恢复从4张共享图像中任意选取3张,从3张共享图像中对应位置选取3个共享份额,利用公式(1)得到原始的多项式,令x = 0,即可得到秘密f(0)。对所有位置的份额进行同样操作,就可以恢复出秘密图像。额外信息通过对共享份额图中的份额,依次提取信息进行恢复。
王泽曦等
秘密像素恢复只需要任选3个携密密文像素对,并利用公式(2)恢复。秘密信息同样是任选3个携密密文像素对,并利用公式(2)进行恢复。
本章节用于介绍独立高容量半色调图像信息隐藏算法中涉及的重难点核心模块。
本算法使用Shamir(t, n)做秘密共享,并在秘密共享的同时,隐藏额外信息。公式如公式(4)所示:
(4)
其中,p是素数,x,y, , 。
数据集的筛选需要进行用到具体的值。因此,这里素数p取17。
1) 秘密共享份额预处理
初步处理秘密共享份额的数据范围,以便进行下一步的处理。由于x、y作为秘密共享份额,需要被保存到图像中。s是选取相邻的4个比特数据作为秘密。为了保持与s的取值范围一致,x、y、b、c舍弃16,也即x,y,b, 。
2) 筛选条件
秘密图像隐藏在多项式b、c位置。除了秘密图像的信息之外的数据称为额外信息。额外信息根据隐藏的位置不同,又分为额外数据1和额外数据2。额外数据1利用x与y的关系隐藏数据。额外数据2利用a与7的大小关系隐藏数据。基于Shamir(t, n)和3个隐藏位置,可以得到对于每一对确定(b, c)有2个筛选条件。2个筛选条件分别针对二次项系数和共享份额。
筛选条件1,将a划分成两部分 和 用于隐藏额外数据1,如公式(5)所示,其中invalid表示无效。每一部分分别利用筛选条件2进行筛选,筛选出至少1个满足条件的a。
(5)
筛选条件2,则是利用x与y的关系隐藏额外数据2。x与y组合之后的z转化为8位二进制数的1个数,用bitCount表示。将z转换为8位二进制数利用公式(3)信息数据。利用Shamir(t, n)共享时,为保证n个秘密共享份额不同,bitCount为奇偶的个数分别要大于等于n。x、y和z的关系如公式(6)所示:
(6)
对a的处理,以
为例,从256对(b, c)对中,依次选取(b, c)对。256对(b, c)对的具体数据如
序号 | b | c |
1 | 0 | 0 |
2 | 0 | 1 |
… | … | … |
255 | 15 | 14 |
256 | 15 | 15 |
以(b, c)对(0, 0),
为例,筛选出的a为1。数据集用a、b、c做索引存放(x, y)对。在数据集存放的数据形式如
偶数 | 奇数 | ||||
1 | 0000 | 0000 | 1 | 0101 | 1000 |
2 | 0001 | 0001 | 2 | 0110 | 0010 |
3 | 0010 | 0100 | 3 | 0111 | 1111 |
4 | 0011 | 1001 | 4 | 1001 | 1101 |
5 | 1000 | 1101 | 5 | 1100 | 1000 |
6 | 1010 | 1111 | 6 | 1110 | 1001 |
7 | 1011 | 0010 | 7 | 1111 | 0100 |
3) 结果
利用筛选条件1和2,对256对不同的(b, c)对进行筛选,最终得到数据集。
独立高容量半色调图像信息隐藏算法的设计思路是先读取秘密图像和作为额外信息的图像,接着处理原始数据,然后利用这里的份额共享秘密图像和隐藏额外信息的图像,最后保存图像数据。算法秘密共享与信息隐藏的整体框图如
读取的数据按隐藏位置分为三大类,分别是秘密图像、额外数据1和额外数据2。额外数据1和秘密数据2以下统称为秘密信息,简称为信息。
1) 秘密图像
秘密图像采用大小为W × H的二值图,其中W和H都为4的倍数。其数据隐藏在多项式的b、c系数中。将图像分成两部分,前W/2列数据用s1表示,后W/2列数据用s2表示。
2) 额外数据1
额外数据1存放用户信息,采用n张不同的大小为(W/4) × (H/2)的二值图。也可以使用完全相同的n张二值图。n张二值图分别用ei表示,i取1,2,……,n。
3) 额外数据2
额外数据2存放版权信息,采用1张大小为(W/4) × (H/2)的二值图,用e'表示。
1) 对读取的数据进行处理
由公式(7)得到d的取值范围, 。秘密图像s1和s2的数据利用公式(7)处理之后进行共享。
(7)
2) 对秘密共享份额进行处理
秘密图像s1和秘密图像s2的大小相同,在使用公式(7)处理之后,将对应位置的数据当成一组数据,用g表示。gi则表示第i组数据。例如s1和s2最开始的4个比特数据分别是(0001)2、(0010)2,则g1= [1, 2]。
秘密共享采用二次多项式,结构如公式(4)所示。二次多项式根据当前的gi确定。将当前正在进行共享的gi的2个元素分别放在b、c的位置。确定了b、c,接着只需确定a的系数,就能得到所需的多项式。
额外信息2也即e'利用了二次项的系数隐藏数据。因此,a至少有两个,并且至少有一个 和至少有一个 。为了简化处理,这里只取两个a。两个范围分别取a1和a2。其中 , 。a1和a2的产生过程相同。
a1的选取需要满足1个条件,也即筛选条件2。从a1的范围中选取一个值,二次多项式的系数a、b、c都已经确定。根据 ,计算对应的y。对于y等于16的情况,直接舍弃。对于有效的(x, y)对,利用公式(6)转换成对应的z。统计所有z的bitCount (2.2节中有定义)。bitCount为奇数的个数和为偶数的个数都要大于等于n才满足要求。筛选出了合适的a1之后,按照同样的步骤筛选出a2。gi的组合最多256种,对于每一种都进行类似的处理。将所有的情况的结果存放到数据集中。具体系数选取处理在第2节的数据集的筛选。
信息隐藏在秘密共享份额选取的同时进行。数据的隐藏位置如
在共享秘密图像和隐藏额外数据时,需要先确定当前第i组的gi,再获取到对应的e',对应的e'为0,则 ,e'为1,则 。对应e1为0,则选取的(x, y)对的bitCount为偶数,对应e1为0,则选取的x、y的bitCount为奇数。对应的 操作与对e1的操作一样。经过上述操作,可以得到n组(x, y)对。处理所有的g之后,可以得到n组的(x, y)对集合,将其保存到图像中,存放位置同gi的位置相对应。最终得到n张大小为m × m的共享份额二值图像。 分别隐藏在共享图像1,共享图像2,……,共享图像n中。
秘密图像的恢复过程,额外数据1的提取和额外数据2的提取过程都是相互独立。数据的提取均按照从左往右、从上往下的顺序提取。秘密信息和额外数据1恢复的框图如
1) 秘密图像的恢复
任意选取t张共享图像恢复秘密图像。每一个秘密,需要t个(x, y)对才能恢复出来。对t张共享图像,对应位置依次取8比特数据,得到t个(x, y)对。利用拉格朗日多项式的公式,求出f(x)的表达式。利用一次项系数和常数项系数,恢复出s1和s2。s1和s2拼接恢复出s。
2) 额外数据1的提取
额外数据 的恢复方式一致。以e1的恢复为例,选取共享图像1,按照顺序提取8比特数据,统计1的个数。个数为奇数,则隐藏的数据为1;个数为偶数,则隐藏的数据为0。最后得到所有数据后,按照提取的顺序和位置得到一张大小为128 × 256的二值图。
3) 额外数据2的提取
任意选取t张共享图像,并在对应位置依次取8比特数据,得到t个(x, y)对。额外数据2的提取同样要用到拉格朗日多项式。利用t个(x, y)对之后得到f(x)。f(x)的二次项系数小于7,则隐藏的数据是0,大于7,则是1。最终按照提取顺序恢复,得到一张大小为(W/4) × (H/2)的二值图,如
在Windows 11专业版系统上利用MATLAB R2020b进行实验。实验数据采用1张大小为512 × 512的二值图,5张大小为128 × 256的二值图。
图7. 秘密图像和版权信息
图8. 用户信息1~4
用一个例子说明秘密共享和信息隐藏的细节,如
对于秘密图像的恢复,从共享的份额中任选3个。这里选取(0000 0000)2、(1010 1111)2和(0101 1000)2三个份额。先利用公式(7)转换为(x, y)对,(0, 0)、(10, 15)和(5, 8)。再利用公式(2)恢复多项式 。接着从恢复的多项式根据隐藏的位置可以得到版权信息是0,秘密图像s1和s2是0、0。根据三个份额,计算出bitCount分别是偶数、偶数和奇数。因此,隐藏的数据分别是0、0和1。对共享份额的所有数据进行同样的操作,就能得到秘密图像、版权信息和用户信息。
图10. 共享图像1~4
图11. 恢复出的秘密图像和版权信息
图12. 恢复出的用户信息1~4
信息嵌入率采用文献
(8)
根据公式(8)可以推得以下公式:
(9)
以Shamir(3, 3)门限共享为例,t = 3,n = 3。计算出嵌入率ER为3。(t, n)共享方案嵌入率对比结果如
(t, n)门限分享 | (3, 3) | (3, 4) | (3, 5) |
文献
|
- | 1 | - |
文献
|
- | - | 0.49 |
文献
|
5.33 | 4 | 3.2 |
文献
|
2 | 2.25 | 2.5 |
本文 | 3 | 3.25 | 3.5 |
结果表明,本文相较于文献
针对Shamir(t, n)门限方案在秘密共享时,未能充分利用多项式系数和共享份额的问题,本文的秘密图像采用Shamir秘密共享进行共享,并分发给服务器保存,可以提高安全性,同时不失容灾能力。在秘密共享的同时,利用共享份额的关系隐藏版权信息,从而增加嵌入容量。并可以在每一张共享图像中隐藏用户信息,从而具有一定的检验份额真假的能力。当共享图像数量达到门限时,就可以提取出另一种隐藏的信息,从而对多张共享图像具有一定的检验版权能力。并且秘密图像、版权信息和用户信息的提取无需其他数据,各自的提取都可以单独进行。嵌入率在t保持不变的情况,随着n的变化,n越大,嵌入率就越大。对于Shamir(3, 5)门限共享,嵌入率可以达到3.5 bpp。
本方案仍有不足之处,由于信息隐藏的方式较多,导致满足条件的共享份额会很少。因此,能够生成的共享图像数量也会受到限制。未来计划修改信息隐藏的方式,从而在保证嵌入容量不减小的情况下,增加最终的共享图像的数量。
国家自然科学基金(61370188);北京市教委科研计划(KM202010015009);北京市教委科研计划资助(No. KM202110015004);北京印刷学院博士启动金项目(27170120003/020);北京印刷学院科研创新团队项目(Eb202101);北京印刷学院校内学科建设项目(21090121021);北京印刷学院重点教改项目(22150121033/009);北京印刷学院科研基础研究一般项目(Ec202201);北京印刷学院博士启动金项目(27170122006);北京印刷学院基础研究一般项目(Ec202201);北京市高等教育学会2022年立项面上课题(MS2022093);北京市教育委员会科学研究计划项目资助(KM202310015002)。