1.一种基于码分复用及值扩展的同态加密域可逆信息隐藏方法,其特征在于,包括如下步骤:步骤一、预处理:假设原图像的像素为N1×N2,N1和N2分别为所述原图像像素的长和宽,N1、N2均为正整数;所述原图像的像素值记作pi∈[0,255],1≤i≤N1*N2,码片序列长度为l,l为2的幂次方,扩展倍数为2k这里k∈{1,2},则所述原图像的像素值表示为下式(1)所示:pi=a1i+a2i+…+ali+ti (1)
式(1)中a1i=a2i=…=ali=(pi-ti)/2l,ti=pi mod 2l,并令Vi=[a1i,a2i,…,ali];
设秘密信息为wσ=[w1,w2,…,wn](wz∈{0,1},z∈{1,2,…n}),采用下式(2)将所述秘密信息wz转化为码片序列系数bz:设哈达马变换矩阵为Hμ,μ为变换矩阵的大小,则μ=log2l,码片序列为S1,…,Sq,q为正整数;并舍弃所述哈达马变换矩阵Hμ中不满足码片序列选择要求的第一行或第一列,使得q=l-1;
使用码分复用在Vi中嵌入秘密信息,设嵌入后对应向量为Vi′,则嵌入公式为:V′i=Vi+b1S1+b2S2+…+bqSq
=[a1i′,a2i′,…,ali′] (3)
由于任一码片序列的元素之和为0,所以有:
a1i′+a2i′+…+ali′=a1i+a2i+…+ali (4)设嵌入后对应值为t′i,则嵌入公式为:
式(5)中,由于ti∈[0,2l-1],因此嵌入前后ti′-ti的最大变化为Rmax,这里同时采用下式(6)将ti转换为tsi:
由于tsi∈(2l-2Rmax-1,2l-Rmax-1]是重叠的,将对应所述原图像中区域的tsi记为0,而将缩减区域的tsi记为1,并保存在标记数组,将标记数组以及Rmax作为附加信息嵌入到原图像,记处理后的信号为[Vi,tsi];
步骤二、生成密钥对:接收方采用如下步骤生成一对密钥(pk,sk):
11)选择两个素数d和e,分别通过N=d*e和λ=lcm(d-1,e-1)计算N和λ;
12)选择一个数g,这里g满足
13)生成公钥pk=(g,N)以及私钥sk=(d,e,λ);
步骤三、宿主信号加密和嵌入数据加密:
21)所述原图像的拥有者使用公钥pk对[a1i,...,ali,tsi]进行加密,得到相应的[EVi,Epk(tsi)]=[Epk。(a1i),…,Epk(ali),Epk(tsi)];
22)数据隐藏者加密嵌入数据,假设由q个秘密信息组合的值为Ci,且Ci=b(i-1)×q+1S1+b(i-1)×q+2S2+…+bi×qSq,使用公钥pk对向量Ci的l个元素加密,得到ECi且ECi=(Epk(Ci(1)),Epk(Ci(2)),…,Epk(Ci(l)));
23)对于使用值扩展嵌入的数据,由于步骤AB中码分复用嵌入数据的个数为N1×N2×q,根据值扩展的倍数2k,假设k个二进制比特流为将其转换为十进制表示并记为Di,且 使用公钥pk对其加密,生成Epk(Di);
步骤四、数据嵌入:数据隐藏者首先使用码分复用的方法将ECi嵌入EVi中,得到包含秘密信息的加密向量为EVi′,然后使用值扩展的方法将Epk(Di)嵌入Epk(tsi)中,得到包含秘密信息的信号为Epk(tsi′),则具体步骤如下:
31)基于码分复用的数据嵌入:根据Paillier加密加法同态的性质采用下式(7)进行数据的嵌入:
32)基于值扩展的数据嵌入:嵌入方式如下式(8)所示:步骤五、数据提取以及图像还原:
41)使用密钥sk对(EVi′,Epk(ti′))进行解密,得到[Vi′,ti′]=[a′1i,a′2i,…,a′li,ti′];
42)分别在Vi′以及ti′提取数据以及恢复图像,且bz=sign(Vi′·SiT),则根据公式(2)可以获得秘密信息wz,其具体步骤如下:对于共有8位二进制比特位的像素tsi′,首先,提取其最低的k个二进制有效位,从而获得每个然后,通过 计算出tsi,若步骤一种未进行ti缩减,则可直恢复原图像;若步骤一中进行了ti缩减,则根据定位过程即可恢复原图像。