CN105872305B - 一种完全可分离的加密域图像可逆数据隐藏方法 - Google Patents
一种完全可分离的加密域图像可逆数据隐藏方法 Download PDFInfo
- Publication number
- CN105872305B CN105872305B CN201610226637.1A CN201610226637A CN105872305B CN 105872305 B CN105872305 B CN 105872305B CN 201610226637 A CN201610226637 A CN 201610226637A CN 105872305 B CN105872305 B CN 105872305B
- Authority
- CN
- China
- Prior art keywords
- current
- combination
- current combination
- information
- secret information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000002441 reversible effect Effects 0.000 title claims abstract description 22
- 238000013075 data extraction Methods 0.000 claims abstract description 9
- 238000000605 extraction Methods 0.000 claims description 294
- 238000011084 recovery Methods 0.000 claims description 21
- 238000004364 calculation method Methods 0.000 claims description 16
- 230000004048 modification Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 6
- 239000003550 marker Substances 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000003745 diagnosis Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007721 medicinal effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32101—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N1/32144—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
- H04N1/32149—Methods relating to embedding, encoding, decoding, detection or retrieval operations
- H04N1/32267—Methods relating to embedding, encoding, decoding, detection or retrieval operations combined with processing of the image
- H04N1/32272—Encryption or ciphering
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种完全可分离的加密域图像可逆数据隐藏方法,其在图像加密部分中先将图像分割成图像块,然后将每个图像块中的每个像素点的像素值与用于加密的随机序列中的一个元素的值相加后对256求模实现加密,这种加密方式可使得图像块中的非中心像素点的像素值与中心像素点的像素值的差值在加密前和加密后保持一致,不仅确保了能够在加密后的图像中进行数据隐藏,而且确保了数据提取与图像解密的完全分离,可在加密域或解密域有效地提取出隐秘数据,同时能保证在提取隐秘信息后可无失真地恢复出原始图像;在加密域图像可逆数据隐藏部分中以组合方式嵌入隐秘信息,出现频率大的组合嵌入隐秘信息的比特位数多,从而有效地提高了数据嵌入容量。
Description
技术领域
本发明涉及一种图像可逆数据隐藏方法,尤其是涉及一种完全可分离的加密域图像可逆数据隐藏方法。
背景技术
为适应云计算的数据安全和隐私保护需求,敏感图像以加密形式存储在云端,这样攻击者即使获得了图像也无法获得其内容,从而保证了图像在云端的安全。例如医疗机构,负有保护患者隐私的义务,但是他们数据处理能力较弱,需要第三方来实现数据处理分析以达到更好的医疗效果或者科研水平,这样他们就需要委托有较强数据处理能力的第三方(云计算中心)实现数据处理,而直接将数据交给第三方是不道德的,也是不被法律所允许的,为此医疗机构可以将加密后的数据发送至云计算中心,云计算中心处理完成后返回给医疗机构。
在很多应用场景,某些没有解密权限的云服务管理者需在加密载体中嵌入一些附加消息,如标注或认证数据、作品来源信息、所有者身份信息等,用于管理和认证加密图像数据。同时,在一些重要的应用场合,如医学诊断、法庭认证、军事/航空等敏感领域往往需要在提取附加消息后能精确地恢复原宿主信息。例如,为保护病人隐私,对医学图像等信息进行了加密,数据库管理者会在相应的加密图像中嵌入病人的隐私信息和认证信息。如果在敏感图像数据中嵌入附加消息,则需事先对敏感图像数据解密,这就意味着在敏感图像数据的整个生命周期中,至少有一部分时间是以明文形式存在的,这样会带来严重的隐私问题。此外,为了不影响诊断,授权的医生希望在解密和提取附加信息后,可以完全恢复原始图像内容。加密域可逆数据隐藏技术可以确保数据隐藏者在不解密的前提下,直接对加密图像进行数据的嵌入和提取操作,可以帮助解决图像安全和隐私泄露的担忧。现有的加密域可逆数据隐藏技术可分为两类:一类是对图像进行加密后寻找数据嵌入空间,这类方法普遍嵌入容量较低,且会发生数据提取出错;另一类是图像加密前预留数据嵌入空间,这类方法嵌入容量大且失真低,但缺点是图像加密者和数据嵌入者之间需要复杂的协议。
发明内容
本发明所要解决的技术问题是提供一种完全可分离的加密域图像可逆数据隐藏方法,其能够在加密后的图像中进行数据隐藏,并能够保证隐秘信息的提取与解密完全可分离,即隐秘信息在加密域图像和解密域图像中都能有效地被提取出,同时能够保证在提取隐秘信息后可无失真地恢复出原始图像。
本发明解决上述技术问题所采用的技术方案为:一种完全可分离的加密域图像可逆数据隐藏方法,其特征在于包括图像加密、加密域图像可逆数据隐藏、隐秘数据提取和原始图像无损恢复三部分;其中,
所述的图像加密部分的处理过程为:
①_1、设定待加密的图像的宽度和高度对应为W和H,如果W×H能够被3×3整除,则将待加密的图像划分成个互不重叠的尺寸大小为3×3的图像块;如果W×H不能够被3×3整除,则将待加密的图像划分成个互不重叠的尺寸大小为3×3的图像块,并将待加密的图像的右方和下方尺寸大小不为3×3的块也作为图像块,共有个图像块,其中,符号为向下取整符号,符号为向上取整符号;
①_2、根据随意设定的一个文本,生成一个作为random()函数的输入参数的密钥;然后由random()函数随机产生一个随机序列,随机序列中的每个元素的值在0~255之间,随机序列的长度远大于待加密的图像中包含的图像块的总个数;
①_3、将待加密的图像中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为1,1≤m≤M,M表示待加密的图像中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度;
①_4、利用当前元素对当前图像块中的每个像素点进行加密,对当前图像块中的第i个像素点进行加密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相加后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1;
①_5、令m=m+1,并令j=j+1,将待加密的图像中下一个待处理的图像块作为当前图像块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步骤①_4继续执行,直至待加密的图像中的所有图像块处理完毕,完成图像加密的过程,得到加密域图像,其中,m=m+1和j=j+1中的“=”为赋值符号;
所述的加密域图像可逆数据隐藏部分的处理过程为:
②_1、将加密域图像划分成个互不重叠的尺寸大小为3×3的图像块,并定义一个第一标记序列和一个第二标记序列,其中,符号为向下取整符号;
②_2、将加密域图像中当前待处理的第m'个图像块定义为当前图像块,其中,m'的初始值为1,
②_3、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模;然后按序查看每个模值,若当前查看的模值为126,则将该模值126的标记设为0,并将标记存入第一标记序列中;若当前查看的模值为127,则将该模值127的标记设为1,并将标记存入第一标记序列中;若当前查看的模值为128,则将该模值128的标记设为1,并将标记存入第一标记序列中;若当前查看的模值为129,则将该模值129的标记设为0,并将标记存入第一标记序列中;接着将模值为127对应的非中心像素点的像素值减1,将模值为128对应的非中心像素点的像素值加1;
②_4、将第i'个非中心像素点对应的模值Mi'与第i'+1个非中心像素点对应的模值Mi'+1配对组成一个组合,记为(Mi',Mi'+1),其中,i'=1,3,5,7;
②_5、令m'=m'+1,将加密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤②_3继续执行,直至加密域图像中的所有图像块处理完毕,共得到个组合,其中,m'=m'+1中的“=”为赋值符号;
②_6、按序遍历个组合,将当前遍历到的组合定义为当前组合;
②_7、如果当前组合为组合(0,125),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(0,126),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(0,125),再执行步骤②_8;如果当前组合为组合(125,0),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(126,0),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(125,0),再执行步骤②_8;
如果当前组合为组合(0,130),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(0,129),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(0,130),再执行步骤②_8;如果当前组合为组合(125,255),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(126,255),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(125,255),再执行步骤②_8;
如果当前组合为组合(130,0),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(129,0),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(130,0),再执行步骤②_8;如果当前组合为组合(255,125),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(255,126),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(255,125),再执行步骤②_8;
如果当前组合为组合(130,255),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(129,255),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(130,255),再执行步骤②_8;如果当前组合为组合(255,130),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(255,129),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(255,130),再执行步骤②_8;
②_8、如果当前组合为组合(0,0),则从隐秘信息中提取出第k位至第k+2位比特信息作为当前嵌入信息,当当前嵌入信息为“000”时,保持当前组合不变,完成隐秘信息嵌入;当当前嵌入信息为“001”时,将当前组合修改为(0,1),完成隐秘信息嵌入;当当前嵌入信息为“010”时,将当前组合修改为(1,0),完成隐秘信息嵌入;当前嵌入信息为“011”时,将当前组合修改为(1,1),完成隐秘信息嵌入;当前嵌入信息为“100”时,将当前组合修改为(0,2),完成隐秘信息嵌入;当前嵌入信息为“101”时,将当前组合修改为(2,0),完成隐秘信息嵌入;当前嵌入信息为“110”时,将当前组合修改为(1,2),完成隐秘信息嵌入;当前嵌入信息为“111”时,将当前组合修改为(2,1),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9;其中,k的初始值为1,k=k+3中的“=”为赋值符号;
如果当前组合为组合(0,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(0,v+2),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(1,v+2),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,1≤v≤127,k的初始值为1,k=k+1中的“=”为赋值符号;
如果当前组合为组合(u,0),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(u+2,0),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(u+2,1),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,1≤u≤127,k的初始值为1,k=k+1中的“=”为赋值符号;
如果当前组合为组合(0,255),则从隐秘信息中提取出第k位至第k+2位比特信息作为当前嵌入信息,当当前嵌入信息为“000”时,保持当前组合不变,完成隐秘信息嵌入;当当前嵌入信息为“001”时,将当前组合修改为(0,254),完成隐秘信息嵌入;当当前嵌入信息为“010”时,将当前组合修改为(1,255),完成隐秘信息嵌入;当前嵌入信息为“011”时,将当前组合修改为(1,254),完成隐秘信息嵌入;当前嵌入信息为“100”时,将当前组合修改为(0,253),完成隐秘信息嵌入;当前嵌入信息为“101”时,将当前组合修改为(2,255),完成隐秘信息嵌入;当前嵌入信息为“110”时,将当前组合修改为(1,253),完成隐秘信息嵌入;当前嵌入信息为“111”时,将当前组合修改为(2,254),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9;其中,k的初始值为1,k=k+3中的“=”为赋值符号;
如果当前组合为组合(0,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(0,v-2),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(1,v-2),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,128≤v≤254,k的初始值为1,k=k+1中的“=”为赋值符号;
如果当前组合为组合(u,255),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(u+2,255),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(u+2,254),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,1≤u≤127,k的初始值为1,k=k+1中的“=”为赋值符号;
如果当前组合为组合(255,0),则从隐秘信息中提取出第k位至第k+2位比特信息作为当前嵌入信息,当当前嵌入信息为“000”时,保持当前组合不变,完成隐秘信息嵌入;当当前嵌入信息为“001”时,将当前组合修改为(255,1),完成隐秘信息嵌入;当当前嵌入信息为“010”时,将当前组合修改为(254,0),完成隐秘信息嵌入;当前嵌入信息为“011”时,将当前组合修改为(254,1),完成隐秘信息嵌入;当前嵌入信息为“100”时,将当前组合修改为(255,2),完成隐秘信息嵌入;当前嵌入信息为“101”时,将当前组合修改为(253,0),完成隐秘信息嵌入;当前嵌入信息为“110”时,将当前组合修改为(254,2),完成隐秘信息嵌入;当前嵌入信息为“111”时,将当前组合修改为(253,1),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9;其中,k的初始值为1,k=k+3中的“=”为赋值符号;
如果当前组合为组合(255,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(255,v+2),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(254,v+2),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,1≤v≤127,k的初始值为1,k=k+1中的“=”为赋值符号;
如果当前组合为组合(u,0),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(u-2,0),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(u-2,1),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,128≤u≤254,k的初始值为1,k=k+1中的“=”为赋值符号;
如果当前组合为组合(255,255),则从隐秘信息中提取出第k位至第k+2位比特信息作为当前嵌入信息,当当前嵌入信息为“000”时,保持当前组合不变,完成隐秘信息嵌入;当当前嵌入信息为“001”时,将当前组合修改为(255,254),完成隐秘信息嵌入;当当前嵌入信息为“010”时,将当前组合修改为(254,255),完成隐秘信息嵌入;当前嵌入信息为“011”时,将当前组合修改为(254,254),完成隐秘信息嵌入;当前嵌入信息为“100”时,将当前组合修改为(255,253),完成隐秘信息嵌入;当前嵌入信息为“101”时,将当前组合修改为(253,255),完成隐秘信息嵌入;当前嵌入信息为“110”时,将当前组合修改为(254,253),完成隐秘信息嵌入;当前嵌入信息为“111”时,将当前组合修改为(253,254),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9;其中,k的初始值为1,k=k+3中的“=”为赋值符号;
如果当前组合为组合(255,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(255,v-2),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(254,v-2),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,128≤v≤254,k的初始值为1,k=k+1中的“=”为赋值符号;
如果当前组合为组合(u,255),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(u-2,255),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(u-2,254),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,128≤u≤254,k的初始值为1,k=k+1中的“=”为赋值符号;
②_9、对当前组合进行移位:若当前组合为(u,v)且1≤u≤127、1≤v≤127,则将当前组合(u,v)修改为(u+1,v+1);若当前组合为(u,v)且1≤u≤127、128≤v≤254,则将当前组合(u,v)修改为(u+1,v-1);若当前组合为(u,v)且128≤u≤254、1≤v≤127,则将当前组合(u,v)修改为(u-1,v+1);若当前组合为(u,v)且128≤u≤254、128≤v≤254,则将当前组合(u,v)修改为(u-1,v-1);
②_10、将下一个遍历到的组合作为当前组合,然后返回步骤②_7继续执行,直至个组合全部处理完毕,完成加密域图像可逆数据隐藏的过程,得到含隐秘信息的加密域图像,并将随机序列、第一标记序列和第二标记序列发送到隐秘数据提取端;
所述的隐秘数据提取和原始图像无损恢复部分中的隐秘数据提取在加密域完成或在解密域完成,在加密域完成隐秘数据提取和原始图像无损恢复的处理过程为:
③_1_1、将含隐秘信息的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块,其中,符号为向下取整符号;
③_1_2、将含隐秘信息的加密域图像中当前待处理的第m'个图像块定义为当前图像块,其中,m'的初始值为1,
③_1_3、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模;
③_1_4、将第i'个非中心像素点对应的模值Mi'与第i'+1个非中心像素点对应的模值Mi'+1配对组成一个组合,记为(Mi',Mi'+1),其中,i'=1,3,5,7;
③_1_5、令m'=m'+1,将含隐秘信息的加密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤③_1_3继续执行,直至含隐秘信息的加密域图像中的所有图像块处理完毕,共得到个组合,其中,m'=m'+1中的“=”为赋值符号;
③_1_6、按序遍历个组合,将当前遍历到的组合定义为当前组合;并按序提取第二标记序列中的每个元素,将当前提取的元素定义为当前第二元素;
③_1_7、如果当前组合为组合(0,0),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(0,1),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(1,0),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(1,1),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(0,2),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(2,0),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(1,2),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(2,1),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;
如果当前组合为组合(0,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(0,v-2),然后执行步骤③_1_8;如果当前组合为组合(1,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(0,v-2),然后执行步骤③_1_8;其中,3≤v≤127;
如果当前组合为组合(u,0),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_1_8;如果当前组合为组合(u,1),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_1_8;其中,3≤u≤127;
如果当前组合为组合(0,255),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(0,254),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(1,255),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(1,254),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(0,253),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(2,255),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(1,253),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(2,254),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;
如果当前组合为组合(0,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(0,v+2),然后执行步骤③_1_8;如果当前组合为组合(1,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(0,v+2),然后执行步骤③_1_8;其中,128≤v≤252;
如果当前组合为组合(u,255),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u-2,255),然后执行步骤③_1_8;如果当前组合为组合(u,254),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u-2,255),然后执行步骤③_1_8;其中,3≤u≤127;
如果当前组合为组合(255,0),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(255,1),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(254,0),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(254,1),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(255,2),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(253,0),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(254,2),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(253,1),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;
如果当前组合为组合(255,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_1_8;如果当前组合为组合(254,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_1_8;其中,3≤v≤127;
如果当前组合为组合(u,0),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_1_8;如果当前组合为组合(u,1),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_1_8;其中,128≤u≤252;
如果当前组合为组合(255,255),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(255,254),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(254,255),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(254,254),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(255,253),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(253,255),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(254,253),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(253,254),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;
如果当前组合为组合(255,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_1_8;如果当前组合为组合(254,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_1_8;其中,128≤v≤252;
如果当前组合为组合(u,255),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u+2,255),然后执行步骤③_1_8;如果当前组合为组合(u,254),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u+2,255),然后执行步骤③_1_8;其中,128≤u≤252;
③_1_8、如果当前组合为(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或(255,125)或(130,255)或(255,130),则当当前第二元素的值为0时,保持当前组合不变,然后将下一个提取的元素作为当前第二元素,再执行步骤③_1_9;当当前第二元素的值为1时,对当前组合进行修改,然后将下一个提取的元素作为当前第二元素,再执行步骤③_1_9,其中修改过程为:若当前组合为(0,125),那么将当前组合修改为(0,126);若当前组合为(125,0),那么将当前组合修改为(126,0);若当前组合为(0,130),那么将当前组合修改为(0,129);若当前组合为(125,255),那么将当前组合修改为(126,255);若当前组合为(130,0),那么将当前组合修改为(129,0);若当前组合为(255,125),那么将当前组合修改为(255,126);若当前组合为(130,255),那么将当前组合修改为(129,255);若当前组合为(255,130),那么将当前组合修改为(255,129);
如果当前组合不为(0,125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、(130,255)、(255,130)中的其中一个,则直接执行步骤③_1_9;
③_1_9、将下一个遍历到的组合作为当前组合,然后返回步骤③_1_7继续执行,直至个组合全部处理完毕,至此在加密域完成隐秘数据提取的过程,得到已提取隐秘信息的加密域图像;
③_1_10、将已提取隐秘信息的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块;
③_1_11、将已提取隐秘信息的加密域图像中当前待处理的第m'个图像块定义为当前图像块;并按序提取第一标记序列中的每个元素,将当前提取的元素定义为当前第一元素,其中,m'的初始值为1,
③_1_12、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模;
③_1_13、按序查看每个模值,将当前查看的模值定义为当前模值;
③_1_14、如果当前模值为126或129,则当当前第一元素的值为0时,保持当前模值不变,然后将下一个提取的元素作为当前第一元素,再执行步骤③_1_15;当当前第一元素的值为1时,对当前模值进行修改,然后将下一个提取的元素作为当前第一元素,再执行步骤③_1_15,其中修改过程为:若当前模值为126,那么将当前模值修改为127;若当前模值为129,那么将当前模值修改为128;
如果当前模值不为126和129,则直接执行步骤③_1_15;
③_1_15、令m'=m'+1,将已提取隐秘信息的加密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤③_1_12继续执行,直至已提取隐秘信息的加密域图像中的所有图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损恢复的加密域图像,其中,m'=m'+1中的“=”为赋值符号;
③_1_16、对已提取隐秘信息并已无损恢复的加密域图像进行解密,具体过程为:
③_1_16a、将已提取隐秘信息并已无损恢复的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块;如果W×H不能够被3×3整除,则将已提取隐秘信息并已无损恢复的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块,并将已提取隐秘信息并已无损恢复的加密域图像的右方和下方尺寸大小不为3×3的块也作为图像块,共有个图像块;
③_1_16b、将已提取隐秘信息并已无损恢复的加密域图像中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为1,1≤m≤M,M表示已提取隐秘信息并已无损恢复的加密域图像中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度;
③_1_16c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1;
③_1_16d、令m=m+1,并令j=j+1,将已提取隐秘信息并已无损恢复的加密域图像中下一个待处理的图像块作为当前图像块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步骤③_1_16c继续执行,直至已提取隐秘信息并已无损恢复的加密域图像中的所有图像块处理完毕,完成图像解密的过程,得到解密域图像,其中,m=m+1和j=j+1中的“=”为赋值符号;
在解密域完成隐秘数据提取和原始图像无损恢复的处理过程为:
③_2_1、对含隐秘信息的加密域图像进行解密,具体过程为:
③_2_1a、将含隐秘信息的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块;如果W×H不能够被3×3整除,则将含隐秘信息的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块,并将含隐秘信息的加密域图像的右方和下方尺寸大小不为3×3的块也作为图像块,共有个图像块;
③_2_1b、将含隐秘信息的加密域图像中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为1,1≤m≤M,M表示含隐秘信息的加密域图像中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度;
③_2_1c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1;
③_2_1d、令m=m+1,并令j=j+1,将含隐秘信息的加密域图像中下一个待处理的图像块作为当前图像块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步骤③_2_1c继续执行,直至含隐秘信息的加密域图像中的所有图像块处理完毕,完成图像解密的过程,得到含隐秘信息的解密域图像,其中,m=m+1和j=j+1中的“=”为赋值符号;
③_2_2、将含隐秘信息的解密域图像划分成个互不重叠的尺寸大小为3×3的图像块,其中,符号为向下取整符号;
③_2_3、将含隐秘信息的解密域图像中当前待处理的第m'个图像块定义为当前图像块,其中,m'的初始值为1,
③_2_4、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模;
③_2_5、将第i'个非中心像素点对应的模值Mi'与第i'+1个非中心像素点对应的模值Mi'+1配对组成一个组合,记为(Mi',Mi'+1),其中,i'=1,3,5,7;
③_2_6、令m'=m'+1,将含隐秘信息的解密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤③_2_4继续执行,直至含隐秘信息的解密域图像中的所有图像块处理完毕,共得到个组合,其中,m'=m'+1中的“=”为赋值符号;
③_2_7、按序遍历个组合,将当前遍历到的组合定义为当前组合;并按序提取第二标记序列中的每个元素,将当前提取的元素定义为当前第二元素;
③_2_8、如果当前组合为组合(0,0),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(0,1),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(1,0),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(1,1),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(0,2),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(2,0),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(1,2),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(2,1),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;
如果当前组合为组合(0,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(0,v-2),然后执行步骤③_2_9;如果当前组合为组合(1,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(0,v-2),然后执行步骤③_2_9;其中,3≤v≤127;
如果当前组合为组合(u,0),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_2_9;如果当前组合为组合(u,1),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_2_9;其中,3≤u≤127;
如果当前组合为组合(0,255),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(0,254),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(1,255),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(1,254),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(0,253),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(2,255),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(1,253),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(2,254),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;
如果当前组合为组合(0,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(0,v+2),然后执行步骤③_2_9;如果当前组合为组合(1,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(0,v+2),然后执行步骤③_2_9;其中,128≤v≤252;
如果当前组合为组合(u,255),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u-2,255),然后执行步骤③_2_9;如果当前组合为组合(u,254),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u-2,255),然后执行步骤③_2_9;其中,3≤u≤127;
如果当前组合为组合(255,0),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(255,1),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(254,0),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(254,1),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(255,2),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(253,0),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(254,2),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(253,1),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;
如果当前组合为组合(255,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_2_9;如果当前组合为组合(254,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_2_9;其中,3≤v≤127;
如果当前组合为组合(u,0),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_2_9;如果当前组合为组合(u,1),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_2_9;其中,128≤u≤252;
如果当前组合为组合(255,255),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(255,254),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(254,255),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(254,254),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(255,253),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(253,255),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(254,253),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(253,254),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;
如果当前组合为组合(255,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_2_9;如果当前组合为组合(254,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_2_9;其中,128≤v≤252;
如果当前组合为组合(u,255),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u+2,255),然后执行步骤③_2_9;如果当前组合为组合(u,254),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u+2,255),然后执行步骤③_2_9;其中,128≤u≤252;
③_2_9、如果当前组合为(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或(255,125)或(130,255)或(255,130),则当当前第二元素的值为0时,保持当前组合不变,然后将下一个提取的元素作为当前第二元素,再执行步骤③_2_10;当当前第二元素的值为1时,对当前组合进行修改,然后将下一个提取的元素作为当前第二元素,再执行步骤③_2_10,其中修改过程为:若当前组合为(0,125),那么将当前组合修改为(0,126);若当前组合为(125,0),那么将当前组合修改为(126,0);若当前组合为(0,130),那么将当前组合修改为(0,129);若当前组合为(125,255),那么将当前组合修改为(126,255);若当前组合为(130,0),那么将当前组合修改为(129,0);若当前组合为(255,125),那么将当前组合修改为(255,126);若当前组合为(130,255),那么将当前组合修改为(129,255);若当前组合为(255,130),那么将当前组合修改为(255,129);
如果当前组合不为(0,125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、(130,255)、(255,130)中的其中一个,则直接执行步骤③_2_10;
③_2_10、将下一个遍历到的组合作为当前组合,然后返回步骤③_2_8继续执行,直至个组合全部处理完毕,至此在解密域完成隐秘数据提取的过程,得到已提取隐秘信息的解密域图像;
③_2_11、将已提取隐秘信息的解密域图像划分成个互不重叠的尺寸大小为3×3的图像块;
③_2_12、将已提取隐秘信息的解密域图像中当前待处理的第m'个图像块定义为当前图像块;并按序提取第一标记序列中的每个元素,将当前提取的元素定义为当前第一元素,其中,m'的初始值为1,
③_2_13、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模;
③_2_14、按序查看每个模值,将当前查看的模值定义为当前模值;
③_2_15、如果当前模值为126或129,则当当前第一元素的值为0时,保持当前模值不变,然后将下一个提取的元素作为当前第一元素,再执行步骤③_2_16;当当前第一元素的值为1时,对当前模值进行修改,然后将下一个提取的元素作为当前第一元素,再执行步骤③_2_16,其中修改过程为:若当前模值为126,那么将当前模值修改为127;若当前模值为129,那么将当前模值修改为128;
如果当前模值不为126和129,则直接执行步骤③_2_16;
③_2_16、令m'=m'+1,将已提取隐秘信息的解密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤③_2_13继续执行,直至已提取隐秘信息的解密域图像中的所有图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损恢复的解密域图像,其中,m'=m'+1中的“=”为赋值符号。
所述的步骤①_2中根据随意设定的一个文本,生成一个作为random()函数的输入参数的密钥的具体过程为:
①_2a、随意设定一个文本,如果文本的长度不能够被8整除,则在文本的末尾补字符“0”,使文本的长度能够被8整除;
①_2b、将文本中的每个字符转化成ASCII码,然后以8个字节为一组将所有ASCII码按序分成多个码组,假设共有N个码组,其中,N>1;
①_2c、将第1个码组与第2个码组中对应的ASCII码两两求和后对256求模,得到第1个新码组;然后将第1个新码组与第3个码组中对应的ASCII码两两求和后对256求模,得到第2个新码组;依次类推,将第N-2个新码组与第N个码组中对应的ASCII码两两求和后对256求模,得到第N-1个新码组,将第N-1个新码组作为random()函数的输入参数的密钥。
与现有技术相比,本发明的优点在于:
1)数据隐藏者利用本发明方法可以直接在加密的图像中嵌入隐秘信息,即使数据隐藏者不知道原始图像内容,可以有效地解决图像内容安全和隐私泄露问题。
2)本发明方法在加密域图像可逆数据隐藏部分中,将每个图像块中顺序上依次相邻的两个非中心像素点对应的模值配对组成一个组合,每个图像块对应四个组合,然后以组合方式嵌入隐秘信息,出现频率大的组合嵌入隐秘信息的比特位数多,从而有效地提高了数据嵌入容量。
3)本发明方法在图像加密部分中采用了特定的加密机制,即先将图像分割成图像块,然后将每个图像块中的每个像素点的像素值与用于加密的随机序列中的一个元素的值相加后对256求模实现加密,这种图像加密方式可以使得图像块中的非中心像素点的像素值与中心像素点的像素值的差值在加密前和加密后保持一致,不仅确保了能够在加密后的图像中进行数据隐藏,而且确保了数据提取与图像解密的完全分离,既可以在加密域有效地提取出隐秘数据,也可以在解密域有效地提取出隐秘数据,实用性更强,同时能够保证在提取隐秘信息后可无失真地恢复出原始图像。
附图说明
图1为本发明方法的总体实现框图;
图2为图像的右方和下方尺寸大小不为3×3的块也作为图像块的分割示意图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
本发明提出的一种完全可分离的加密域图像可逆数据隐藏方法,其总体流程框图如图1所示,其包括图像加密、加密域图像可逆数据隐藏、隐秘数据提取和原始图像无损恢复三部分;其中,
所述的图像加密部分的处理过程为:
①_1、设定待加密的图像的宽度和高度对应为W和H,如果W×H能够被3×3整除,则将待加密的图像划分成个互不重叠的尺寸大小为3×3的图像块;如果W×H不能够被3×3整除,则将待加密的图像划分成个互不重叠的尺寸大小为3×3的图像块,并将待加密的图像的右方和下方尺寸大小不为3×3的块也作为图像块,共有个图像块,如图2所示,其中,符号为向下取整符号,符号为向上取整符号。
①_2、根据随意设定的一个文本,生成一个作为random()函数的输入参数的密钥;然后由random()函数随机产生一个随机序列,随机序列中的每个元素的值在0~255之间,随机序列的长度远大于待加密的图像中包含的图像块的总个数。在此,random()函数为一个现有函数。
在此具体实施例中,步骤①_2中根据随意设定的一个文本,生成一个作为random()函数的输入参数的密钥的具体过程为:
①_2a、随意设定一个文本,如果文本的长度不能够被8整除,则在文本的末尾补字符“0”,使文本的长度能够被8整除。
①_2b、将文本中的每个字符转化成ASCII码,然后以8个字节为一组将所有ASCII码按序分成多个码组,假设共有N个码组,其中,N>1。
①_2c、将第1个码组与第2个码组中对应的ASCII码两两求和后对256求模,得到第1个新码组;然后将第1个新码组与第3个码组中对应的ASCII码两两求和后对256求模,得到第2个新码组;依次类推,将第N-2个新码组与第N个码组中对应的ASCII码两两求和后对256求模,得到第N-1个新码组,将第N-1个新码组作为random()函数的输入参数的密钥。
①_3、将待加密的图像中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为1,1≤m≤M,M表示待加密的图像中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度。
①_4、利用当前元素对当前图像块中的每个像素点进行加密,对当前图像块中的第i个像素点进行加密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相加后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1。
①_5、令m=m+1,并令j=j+1,将待加密的图像中下一个待处理的图像块作为当前图像块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步骤①_4继续执行,直至待加密的图像中的所有图像块处理完毕,完成图像加密的过程,得到加密域图像,其中,m=m+1和j=j+1中的“=”为赋值符号。
所述的加密域图像可逆数据隐藏部分的处理过程为:
②_1、将加密域图像划分成个互不重叠的尺寸大小为3×3的图像块,并定义一个第一标记序列和一个第二标记序列,其中,符号为向下取整符号。
②_2、将加密域图像中当前待处理的第m'个图像块定义为当前图像块,其中,m'的初始值为1,
②_3、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模;然后按序查看每个模值,若当前查看的模值为126,则将该模值126的标记设为0,并将标记存入第一标记序列中;若当前查看的模值为127,则将该模值127的标记设为1,并将标记存入第一标记序列中;若当前查看的模值为128,则将该模值128的标记设为1,并将标记存入第一标记序列中;若当前查看的模值为129,则将该模值129的标记设为0,并将标记存入第一标记序列中;接着将模值为127对应的非中心像素点的像素值减1,将模值为128对应的非中心像素点的像素值加1。
②_4、将第i'个非中心像素点对应的模值Mi'与第i'+1个非中心像素点对应的模值Mi'+1配对组成一个组合,记为(Mi',Mi'+1),其中,i'=1,3,5,7。
②_5、令m'=m'+1,将加密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤②_3继续执行,直至加密域图像中的所有图像块处理完毕,共得到个组合,其中,m'=m'+1中的“=”为赋值符号。
②_6、按序遍历个组合,将当前遍历到的组合定义为当前组合。
②_7、如果当前组合为组合(0,125),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(0,126),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(0,125),再执行步骤②_8;如果当前组合为组合(125,0),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(126,0),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(125,0),再执行步骤②_8。
如果当前组合为组合(0,130),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(0,129),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(0,130),再执行步骤②_8;如果当前组合为组合(125,255),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(126,255),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(125,255),再执行步骤②_8。
如果当前组合为组合(130,0),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(129,0),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(130,0),再执行步骤②_8;如果当前组合为组合(255,125),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(255,126),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(255,125),再执行步骤②_8。
如果当前组合为组合(130,255),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(129,255),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(130,255),再执行步骤②_8;如果当前组合为组合(255,130),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(255,129),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(255,130),再执行步骤②_8。
②_8、如果当前组合为组合(0,0),则从隐秘信息中提取出第k位至第k+2位比特信息作为当前嵌入信息,当当前嵌入信息为“000”时,保持当前组合不变,完成隐秘信息嵌入;当当前嵌入信息为“001”时,将当前组合修改为(0,1),完成隐秘信息嵌入;当当前嵌入信息为“010”时,将当前组合修改为(1,0),完成隐秘信息嵌入;当前嵌入信息为“011”时,将当前组合修改为(1,1),完成隐秘信息嵌入;当前嵌入信息为“100”时,将当前组合修改为(0,2),完成隐秘信息嵌入;当前嵌入信息为“101”时,将当前组合修改为(2,0),完成隐秘信息嵌入;当前嵌入信息为“110”时,将当前组合修改为(1,2),完成隐秘信息嵌入;当前嵌入信息为“111”时,将当前组合修改为(2,1),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9;其中,k的初始值为1,k=k+3中的“=”为赋值符号。
如果当前组合为组合(0,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(0,v+2),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(1,v+2),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,1≤v≤127,k的初始值为1,k=k+1中的“=”为赋值符号。
如果当前组合为组合(u,0),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(u+2,0),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(u+2,1),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,1≤u≤127,k的初始值为1,k=k+1中的“=”为赋值符号。
表1给出了当前组合为组合(0,0)或为组合(0,v)(1≤v≤127)或为组合(u,0)(1≤u≤127)时,隐秘信息的嵌入方式。
表1当前组合为组合(0,0)或为组合(0,v)或为组合(u,0)时隐秘信息的嵌入方式
如果当前组合为组合(0,255),则从隐秘信息中提取出第k位至第k+2位比特信息作为当前嵌入信息,当当前嵌入信息为“000”时,保持当前组合不变,完成隐秘信息嵌入;当当前嵌入信息为“001”时,将当前组合修改为(0,254),完成隐秘信息嵌入;当当前嵌入信息为“010”时,将当前组合修改为(1,255),完成隐秘信息嵌入;当前嵌入信息为“011”时,将当前组合修改为(1,254),完成隐秘信息嵌入;当前嵌入信息为“100”时,将当前组合修改为(0,253),完成隐秘信息嵌入;当前嵌入信息为“101”时,将当前组合修改为(2,255),完成隐秘信息嵌入;当前嵌入信息为“110”时,将当前组合修改为(1,253),完成隐秘信息嵌入;当前嵌入信息为“111”时,将当前组合修改为(2,254),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9;其中,k的初始值为1,k=k+3中的“=”为赋值符号。
如果当前组合为组合(0,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(0,v-2),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(1,v-2),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,128≤v≤254,k的初始值为1,k=k+1中的“=”为赋值符号。
如果当前组合为组合(u,255),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(u+2,255),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(u+2,254),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,1≤u≤127,k的初始值为1,k=k+1中的“=”为赋值符号。
如果当前组合为组合(255,0),则从隐秘信息中提取出第k位至第k+2位比特信息作为当前嵌入信息,当当前嵌入信息为“000”时,保持当前组合不变,完成隐秘信息嵌入;当当前嵌入信息为“001”时,将当前组合修改为(255,1),完成隐秘信息嵌入;当当前嵌入信息为“010”时,将当前组合修改为(254,0),完成隐秘信息嵌入;当前嵌入信息为“011”时,将当前组合修改为(254,1),完成隐秘信息嵌入;当前嵌入信息为“100”时,将当前组合修改为(255,2),完成隐秘信息嵌入;当前嵌入信息为“101”时,将当前组合修改为(253,0),完成隐秘信息嵌入;当前嵌入信息为“110”时,将当前组合修改为(254,2),完成隐秘信息嵌入;当前嵌入信息为“111”时,将当前组合修改为(253,1),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9;其中,k的初始值为1,k=k+3中的“=”为赋值符号。
如果当前组合为组合(255,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(255,v+2),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(254,v+2),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,1≤v≤127,k的初始值为1,k=k+1中的“=”为赋值符号。
如果当前组合为组合(u,0),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(u-2,0),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(u-2,1),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,128≤u≤254,k的初始值为1,k=k+1中的“=”为赋值符号。
如果当前组合为组合(255,255),则从隐秘信息中提取出第k位至第k+2位比特信息作为当前嵌入信息,当当前嵌入信息为“000”时,保持当前组合不变,完成隐秘信息嵌入;当当前嵌入信息为“001”时,将当前组合修改为(255,254),完成隐秘信息嵌入;当当前嵌入信息为“010”时,将当前组合修改为(254,255),完成隐秘信息嵌入;当前嵌入信息为“011”时,将当前组合修改为(254,254),完成隐秘信息嵌入;当前嵌入信息为“100”时,将当前组合修改为(255,253),完成隐秘信息嵌入;当前嵌入信息为“101”时,将当前组合修改为(253,255),完成隐秘信息嵌入;当前嵌入信息为“110”时,将当前组合修改为(254,253),完成隐秘信息嵌入;当前嵌入信息为“111”时,将当前组合修改为(253,254),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9;其中,k的初始值为1,k=k+3中的“=”为赋值符号。
如果当前组合为组合(255,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(255,v-2),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(254,v-2),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,128≤v≤254,k的初始值为1,k=k+1中的“=”为赋值符号。
如果当前组合为组合(u,255),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(u-2,255),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(u-2,254),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,128≤u≤254,k的初始值为1,k=k+1中的“=”为赋值符号。
②_9、对当前组合进行移位:若当前组合为(u,v)且1≤u≤127、1≤v≤127,则将当前组合(u,v)修改为(u+1,v+1);若当前组合为(u,v)且1≤u≤127、128≤v≤254,则将当前组合(u,v)修改为(u+1,v-1);若当前组合为(u,v)且128≤u≤254、1≤v≤127,则将当前组合(u,v)修改为(u-1,v+1);若当前组合为(u,v)且128≤u≤254、128≤v≤254,则将当前组合(u,v)修改为(u-1,v-1)。
②_10、将下一个遍历到的组合作为当前组合,然后返回步骤②_7继续执行,直至个组合全部处理完毕,完成加密域图像可逆数据隐藏的过程,得到含隐秘信息的加密域图像,并将随机序列、第一标记序列和第二标记序列发送到隐秘数据提取端。
所述的隐秘数据提取和原始图像无损恢复部分中的隐秘数据提取在加密域完成或在解密域完成,在加密域完成隐秘数据提取和原始图像无损恢复的处理过程为:
③_1_1、将含隐秘信息的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块,其中,符号为向下取整符号。
③_1_2、将含隐秘信息的加密域图像中当前待处理的第m'个图像块定义为当前图像块,其中,m'的初始值为1,
③_1_3、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模。
③_1_4、将第i'个非中心像素点对应的模值Mi'与第i'+1个非中心像素点对应的模值Mi'+1配对组成一个组合,记为(Mi',Mi'+1),其中,i'=1,3,5,7。
③_1_5、令m'=m'+1,将含隐秘信息的加密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤③_1_3继续执行,直至含隐秘信息的加密域图像中的所有图像块处理完毕,共得到个组合,其中,m'=m'+1中的“=”为赋值符号。
③_1_6、按序遍历个组合,将当前遍历到的组合定义为当前组合;并按序提取第二标记序列中的每个元素,将当前提取的元素定义为当前第二元素。
③_1_7、如果当前组合为组合(0,0),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(0,1),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(1,0),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(1,1),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(0,2),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(2,0),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(1,2),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(2,1),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8。
如果当前组合为组合(0,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(0,v-2),然后执行步骤③_1_8;如果当前组合为组合(1,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(0,v-2),然后执行步骤③_1_8;其中,3≤v≤127。
如果当前组合为组合(u,0),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_1_8;如果当前组合为组合(u,1),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_1_8;其中,3≤u≤127。
如果当前组合为组合(0,255),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(0,254),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(1,255),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(1,254),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(0,253),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(2,255),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(1,253),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(2,254),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8。
如果当前组合为组合(0,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(0,v+2),然后执行步骤③_1_8;如果当前组合为组合(1,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(0,v+2),然后执行步骤③_1_8;其中,128≤v≤252。
如果当前组合为组合(u,255),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u-2,255),然后执行步骤③_1_8;如果当前组合为组合(u,254),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u-2,255),然后执行步骤③_1_8;其中,3≤u≤127。
如果当前组合为组合(255,0),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(255,1),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(254,0),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(254,1),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(255,2),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(253,0),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(254,2),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(253,1),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8。
如果当前组合为组合(255,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_1_8;如果当前组合为组合(254,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_1_8;其中,3≤v≤127。
如果当前组合为组合(u,0),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_1_8;如果当前组合为组合(u,1),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_1_8;其中,128≤u≤252。
如果当前组合为组合(255,255),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(255,254),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(254,255),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(254,254),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(255,253),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(253,255),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(254,253),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(253,254),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8。
如果当前组合为组合(255,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_1_8;如果当前组合为组合(254,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_1_8;其中,128≤v≤252。
如果当前组合为组合(u,255),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u+2,255),然后执行步骤③_1_8;如果当前组合为组合(u,254),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u+2,255),然后执行步骤③_1_8;其中,128≤u≤252。
③_1_8、如果当前组合为(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或(255,125)或(130,255)或(255,130),则当当前第二元素的值为0时,保持当前组合不变,然后将下一个提取的元素作为当前第二元素,再执行步骤③_1_9;当当前第二元素的值为1时,对当前组合进行修改,然后将下一个提取的元素作为当前第二元素,再执行步骤③_1_9,其中修改过程为:若当前组合为(0,125),那么将当前组合修改为(0,126);若当前组合为(125,0),那么将当前组合修改为(126,0);若当前组合为(0,130),那么将当前组合修改为(0,129);若当前组合为(125,255),那么将当前组合修改为(126,255);若当前组合为(130,0),那么将当前组合修改为(129,0);若当前组合为(255,125),那么将当前组合修改为(255,126);若当前组合为(130,255),那么将当前组合修改为(129,255);若当前组合为(255,130),那么将当前组合修改为(255,129)。
如果当前组合不为(0,125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、(130,255)、(255,130)中的其中一个,则直接执行步骤③_1_9。
③_1_9、将下一个遍历到的组合作为当前组合,然后返回步骤③_1_7继续执行,直至个组合全部处理完毕,至此在加密域完成隐秘数据提取的过程,得到已提取隐秘信息的加密域图像。
③_1_10、将已提取隐秘信息的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块。
③_1_11、将已提取隐秘信息的加密域图像中当前待处理的第m'个图像块定义为当前图像块;并按序提取第一标记序列中的每个元素,将当前提取的元素定义为当前第一元素,其中,m'的初始值为1,
③_1_12、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模。
③_1_13、按序查看每个模值,将当前查看的模值定义为当前模值。
③_1_14、如果当前模值为126或129,则当当前第一元素的值为0时,保持当前模值不变,然后将下一个提取的元素作为当前第一元素,再执行步骤③_1_15;当当前第一元素的值为1时,对当前模值进行修改,然后将下一个提取的元素作为当前第一元素,再执行步骤③_1_15,其中修改过程为:若当前模值为126,那么将当前模值修改为127;若当前模值为129,那么将当前模值修改为128。
如果当前模值不为126和129,则直接执行步骤③_1_15。
③_1_15、令m'=m'+1,将已提取隐秘信息的加密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤③_1_12继续执行,直至已提取隐秘信息的加密域图像中的所有图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损恢复的加密域图像,其中,m'=m'+1中的“=”为赋值符号。
③_1_16、对已提取隐秘信息并已无损恢复的加密域图像进行解密,具体过程为:
③_1_16a、将已提取隐秘信息并已无损恢复的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块;如果W×H不能够被3×3整除,则将已提取隐秘信息并已无损恢复的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块,并将已提取隐秘信息并已无损恢复的加密域图像的右方和下方尺寸大小不为3×3的块也作为图像块,共有个图像块,如图2所示。
③_1_16b、将已提取隐秘信息并已无损恢复的加密域图像中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为1,1≤m≤M,M表示已提取隐秘信息并已无损恢复的加密域图像中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度。
③_1_16c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1。
③_1_16d、令m=m+1,并令j=j+1,将已提取隐秘信息并已无损恢复的加密域图像中下一个待处理的图像块作为当前图像块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步骤③_1_16c继续执行,直至已提取隐秘信息并已无损恢复的加密域图像中的所有图像块处理完毕,完成图像解密的过程,得到解密域图像,其中,m=m+1和j=j+1中的“=”为赋值符号。
在解密域完成隐秘数据提取和原始图像无损恢复的处理过程为:
③_2_1、对含隐秘信息的加密域图像进行解密,具体过程为:
③_2_1a、将含隐秘信息的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块;如果W×H不能够被3×3整除,则将含隐秘信息的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块,并将含隐秘信息的加密域图像的右方和下方尺寸大小不为3×3的块也作为图像块,共有个图像块,如图2所示。
③_2_1b、将含隐秘信息的加密域图像中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为1,1≤m≤M,M表示含隐秘信息的加密域图像中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度。
③_2_1c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1。
③_2_1d、令m=m+1,并令j=j+1,将含隐秘信息的加密域图像中下一个待处理的图像块作为当前图像块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步骤③_2_1c继续执行,直至含隐秘信息的加密域图像中的所有图像块处理完毕,完成图像解密的过程,得到含隐秘信息的解密域图像,其中,m=m+1和j=j+1中的“=”为赋值符号。
③_2_2、将含隐秘信息的解密域图像划分成个互不重叠的尺寸大小为3×3的图像块,其中,符号为向下取整符号。
③_2_3、将含隐秘信息的解密域图像中当前待处理的第m'个图像块定义为当前图像块,其中,m'的初始值为1,
③_2_4、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模。
③_2_5、将第i'个非中心像素点对应的模值Mi'与第i'+1个非中心像素点对应的模值Mi'+1配对组成一个组合,记为(Mi',Mi'+1),其中,i'=1,3,5,7。
③_2_6、令m'=m'+1,将含隐秘信息的解密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤③_2_4继续执行,直至含隐秘信息的解密域图像中的所有图像块处理完毕,共得到个组合,其中,m'=m'+1中的“=”为赋值符号。
③_2_7、按序遍历个组合,将当前遍历到的组合定义为当前组合;并按序提取第二标记序列中的每个元素,将当前提取的元素定义为当前第二元素。
③_2_8、如果当前组合为组合(0,0),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(0,1),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(1,0),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(1,1),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(0,2),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(2,0),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(1,2),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(2,1),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9。
如果当前组合为组合(0,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(0,v-2),然后执行步骤③_2_9;如果当前组合为组合(1,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(0,v-2),然后执行步骤③_2_9;其中,3≤v≤127。
如果当前组合为组合(u,0),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_2_9;如果当前组合为组合(u,1),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_2_9;其中,3≤u≤127。
如果当前组合为组合(0,255),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(0,254),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(1,255),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(1,254),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(0,253),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(2,255),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(1,253),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(2,254),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9。
如果当前组合为组合(0,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(0,v+2),然后执行步骤③_2_9;如果当前组合为组合(1,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(0,v+2),然后执行步骤③_2_9;其中,128≤v≤252。
如果当前组合为组合(u,255),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u-2,255),然后执行步骤③_2_9;如果当前组合为组合(u,254),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u-2,255),然后执行步骤③_2_9;其中,3≤u≤127。
如果当前组合为组合(255,0),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(255,1),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(254,0),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(254,1),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(255,2),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(253,0),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(254,2),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(253,1),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9。
如果当前组合为组合(255,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_2_9;如果当前组合为组合(254,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_2_9;其中,3≤v≤127。
如果当前组合为组合(u,0),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_2_9;如果当前组合为组合(u,1),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_2_9;其中,128≤u≤252。
如果当前组合为组合(255,255),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(255,254),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(254,255),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(254,254),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(255,253),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(253,255),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(254,253),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(253,254),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9。
如果当前组合为组合(255,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_2_9;如果当前组合为组合(254,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_2_9;其中,128≤v≤252。
如果当前组合为组合(u,255),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u+2,255),然后执行步骤③_2_9;如果当前组合为组合(u,254),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u+2,255),然后执行步骤③_2_9;其中,128≤u≤252。
③_2_9、如果当前组合为(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或(255,125)或(130,255)或(255,130),则当当前第二元素的值为0时,保持当前组合不变,然后将下一个提取的元素作为当前第二元素,再执行步骤③_2_10;当当前第二元素的值为1时,对当前组合进行修改,然后将下一个提取的元素作为当前第二元素,再执行步骤③_2_10,其中修改过程为:若当前组合为(0,125),那么将当前组合修改为(0,126);若当前组合为(125,0),那么将当前组合修改为(126,0);若当前组合为(0,130),那么将当前组合修改为(0,129);若当前组合为(125,255),那么将当前组合修改为(126,255);若当前组合为(130,0),那么将当前组合修改为(129,0);若当前组合为(255,125),那么将当前组合修改为(255,126);若当前组合为(130,255),那么将当前组合修改为(129,255);若当前组合为(255,130),那么将当前组合修改为(255,129)。
如果当前组合不为(0,125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、(130,255)、(255,130)中的其中一个,则直接执行步骤③_2_10。
③_2_10、将下一个遍历到的组合作为当前组合,然后返回步骤③_2_8继续执行,直至个组合全部处理完毕,至此在解密域完成隐秘数据提取的过程,得到已提取隐秘信息的解密域图像。
③_2_11、将已提取隐秘信息的解密域图像划分成个互不重叠的尺寸大小为3×3的图像块。
③_2_12、将已提取隐秘信息的解密域图像中当前待处理的第m'个图像块定义为当前图像块;并按序提取第一标记序列中的每个元素,将当前提取的元素定义为当前第一元素,其中,m'的初始值为1,
③_2_13、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模。;
③_2_14、按序查看每个模值,将当前查看的模值定义为当前模值。
③_2_15、如果当前模值为126或129,则当当前第一元素的值为0时,保持当前模值不变,然后将下一个提取的元素作为当前第一元素,再执行步骤③_2_16;当当前第一元素的值为1时,对当前模值进行修改,然后将下一个提取的元素作为当前第一元素,再执行步骤③_2_16,其中修改过程为:若当前模值为126,那么将当前模值修改为127;若当前模值为129,那么将当前模值修改为128。
如果当前模值不为126和129,则直接执行步骤③_2_16。
③_2_16、令m'=m'+1,将已提取隐秘信息的解密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤③_2_13继续执行,直至已提取隐秘信息的解密域图像中的所有图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损恢复的解密域图像,其中,m'=m'+1中的“=”为赋值符号。
Claims (2)
1.一种完全可分离的加密域图像可逆数据隐藏方法,其特征在于包括图像加密、加密域图像可逆数据隐藏、隐秘数据提取和原始图像无损恢复三部分;其中,
所述的图像加密部分的处理过程为:
①_1、设定待加密的图像的宽度和高度对应为W和H,如果W×H能够被3×3整除,则将待加密的图像划分成个互不重叠的尺寸大小为3×3的图像块;如果W×H不能够被3×3整除,则将待加密的图像划分成个互不重叠的尺寸大小为3×3的图像块,并将待加密的图像的右方和下方尺寸大小不为3×3的块也作为图像块,共有个图像块,其中,符号为向下取整符号,符号为向上取整符号;
①_2、根据随意设定的一个文本,生成一个作为random()函数的输入参数的密钥;然后由random()函数随机产生一个随机序列,随机序列中的每个元素的值在0~255之间,随机序列的长度远大于待加密的图像中包含的图像块的总个数;
①_3、将待加密的图像中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为1,1≤m≤M,M表示待加密的图像中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度;
①_4、利用当前元素对当前图像块中的每个像素点进行加密,对当前图像块中的第i个像素点进行加密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相加后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1;
①_5、令m=m+1,并令j=j+1,将待加密的图像中下一个待处理的图像块作为当前图像块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步骤①_4继续执行,直至待加密的图像中的所有图像块处理完毕,完成图像加密的过程,得到加密域图像,其中,m=m+1和j=j+1中的“=”为赋值符号;
所述的加密域图像可逆数据隐藏部分的处理过程为:
②_1、将加密域图像划分成个互不重叠的尺寸大小为3×3的图像块,并定义一个第一标记序列和一个第二标记序列,其中,符号为向下取整符号;
②_2、将加密域图像中当前待处理的第m'个图像块定义为当前图像块,其中,m'的初始值为1,
②_3、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模;然后按序查看每个模值,若当前查看的模值为126,则将该模值126的标记设为0,并将标记存入第一标记序列中;若当前查看的模值为127,则将该模值127的标记设为1,并将标记存入第一标记序列中;若当前查看的模值为128,则将该模值128的标记设为1,并将标记存入第一标记序列中;若当前查看的模值为129,则将该模值129的标记设为0,并将标记存入第一标记序列中;接着将模值为127对应的非中心像素点的像素值减1,将模值为128对应的非中心像素点的像素值加1;
②_4、将第i'个非中心像素点对应的模值Mi'与第i'+1个非中心像素点对应的模值Mi'+1配对组成一个组合,记为(Mi',Mi'+1),其中,i'=1,3,5,7;
②_5、令m'=m'+1,将加密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤②_3继续执行,直至加密域图像中的所有图像块处理完毕,共得到个组合,其中,m'=m'+1中的“=”为赋值符号;
②_6、按序遍历个组合,将当前遍历到的组合定义为当前组合;
②_7、如果当前组合为组合(0,125),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(0,126),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(0,125),再执行步骤②_8;如果当前组合为组合(125,0),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(126,0),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(125,0),再执行步骤②_8;
如果当前组合为组合(0,130),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(0,129),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(0,130),再执行步骤②_8;如果当前组合为组合(125,255),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(126,255),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(125,255),再执行步骤②_8;
如果当前组合为组合(130,0),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(129,0),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(130,0),再执行步骤②_8;如果当前组合为组合(255,125),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(255,126),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(255,125),再执行步骤②_8;
如果当前组合为组合(130,255),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(129,255),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(130,255),再执行步骤②_8;如果当前组合为组合(255,130),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤②_8;如果当前组合为组合(255,129),则将当前组合的标记设为1,并将标记存入第二标记序列中,然后将当前组合修改为(255,130),再执行步骤②_8;
②_8、如果当前组合为组合(0,0),则从隐秘信息中提取出第k位至第k+2位比特信息作为当前嵌入信息,当当前嵌入信息为“000”时,保持当前组合不变,完成隐秘信息嵌入;当当前嵌入信息为“001”时,将当前组合修改为(0,1),完成隐秘信息嵌入;当当前嵌入信息为“010”时,将当前组合修改为(1,0),完成隐秘信息嵌入;当前嵌入信息为“011”时,将当前组合修改为(1,1),完成隐秘信息嵌入;当前嵌入信息为“100”时,将当前组合修改为(0,2),完成隐秘信息嵌入;当前嵌入信息为“101”时,将当前组合修改为(2,0),完成隐秘信息嵌入;当前嵌入信息为“110”时,将当前组合修改为(1,2),完成隐秘信息嵌入;当前嵌入信息为“111”时,将当前组合修改为(2,1),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9;其中,k的初始值为1,k=k+3中的“=”为赋值符号;
如果当前组合为组合(0,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(0,v+2),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(1,v+2),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,1≤v≤127,k的初始值为1,k=k+1中的“=”为赋值符号;
如果当前组合为组合(u,0),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(u+2,0),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(u+2,1),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,1≤u≤127,k的初始值为1,k=k+1中的“=”为赋值符号;
如果当前组合为组合(0,255),则从隐秘信息中提取出第k位至第k+2位比特信息作为当前嵌入信息,当当前嵌入信息为“000”时,保持当前组合不变,完成隐秘信息嵌入;当当前嵌入信息为“001”时,将当前组合修改为(0,254),完成隐秘信息嵌入;当当前嵌入信息为“010”时,将当前组合修改为(1,255),完成隐秘信息嵌入;当前嵌入信息为“011”时,将当前组合修改为(1,254),完成隐秘信息嵌入;当前嵌入信息为“100”时,将当前组合修改为(0,253),完成隐秘信息嵌入;当前嵌入信息为“101”时,将当前组合修改为(2,255),完成隐秘信息嵌入;当前嵌入信息为“110”时,将当前组合修改为(1,253),完成隐秘信息嵌入;当前嵌入信息为“111”时,将当前组合修改为(2,254),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9;其中,k的初始值为1,k=k+3中的“=”为赋值符号;
如果当前组合为组合(0,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(0,v-2),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(1,v-2),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,128≤v≤254,k的初始值为1,k=k+1中的“=”为赋值符号;
如果当前组合为组合(u,255),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(u+2,255),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(u+2,254),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,1≤u≤127,k的初始值为1,k=k+1中的“=”为赋值符号;
如果当前组合为组合(255,0),则从隐秘信息中提取出第k位至第k+2位比特信息作为当前嵌入信息,当当前嵌入信息为“000”时,保持当前组合不变,完成隐秘信息嵌入;当当前嵌入信息为“001”时,将当前组合修改为(255,1),完成隐秘信息嵌入;当当前嵌入信息为“010”时,将当前组合修改为(254,0),完成隐秘信息嵌入;当前嵌入信息为“011”时,将当前组合修改为(254,1),完成隐秘信息嵌入;当前嵌入信息为“100”时,将当前组合修改为(255,2),完成隐秘信息嵌入;当前嵌入信息为“101”时,将当前组合修改为(253,0),完成隐秘信息嵌入;当前嵌入信息为“110”时,将当前组合修改为(254,2),完成隐秘信息嵌入;当前嵌入信息为“111”时,将当前组合修改为(253,1),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9;其中,k的初始值为1,k=k+3中的“=”为赋值符号;
如果当前组合为组合(255,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(255,v+2),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(254,v+2),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,1≤v≤127,k的初始值为1,k=k+1中的“=”为赋值符号;
如果当前组合为组合(u,0),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(u-2,0),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(u-2,1),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,128≤u≤254,k的初始值为1,k=k+1中的“=”为赋值符号;
如果当前组合为组合(255,255),则从隐秘信息中提取出第k位至第k+2位比特信息作为当前嵌入信息,当当前嵌入信息为“000”时,保持当前组合不变,完成隐秘信息嵌入;当当前嵌入信息为“001”时,将当前组合修改为(255,254),完成隐秘信息嵌入;当当前嵌入信息为“010”时,将当前组合修改为(254,255),完成隐秘信息嵌入;当前嵌入信息为“011”时,将当前组合修改为(254,254),完成隐秘信息嵌入;当前嵌入信息为“100”时,将当前组合修改为(255,253),完成隐秘信息嵌入;当前嵌入信息为“101”时,将当前组合修改为(253,255),完成隐秘信息嵌入;当前嵌入信息为“110”时,将当前组合修改为(254,253),完成隐秘信息嵌入;当前嵌入信息为“111”时,将当前组合修改为(253,254),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9;其中,k的初始值为1,k=k+3中的“=”为赋值符号;
如果当前组合为组合(255,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(255,v-2),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(254,v-2),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,128≤v≤254,k的初始值为1,k=k+1中的“=”为赋值符号;
如果当前组合为组合(u,255),则从隐秘信息中提取出第k位比特信息作为当前嵌入信息,当当前嵌入信息为“0”时,将当前组合修改为(u-2,255),完成隐秘信息嵌入;当当前嵌入信息为“1”时,将当前组合修改为(u-2,254),完成隐秘信息嵌入;然后令k=k+1;再执行步骤②_9;其中,128≤u≤254,k的初始值为1,k=k+1中的“=”为赋值符号;
②_9、对当前组合进行移位:若当前组合为(u,v)且1≤u≤127、1≤v≤127,则将当前组合(u,v)修改为(u+1,v+1);若当前组合为(u,v)且1≤u≤127、128≤v≤254,则将当前组合(u,v)修改为(u+1,v-1);若当前组合为(u,v)且128≤u≤254、1≤v≤127,则将当前组合(u,v)修改为(u-1,v+1);若当前组合为(u,v)且128≤u≤254、128≤v≤254,则将当前组合(u,v)修改为(u-1,v-1);
②_10、将下一个遍历到的组合作为当前组合,然后返回步骤②_7继续执行,直至个组合全部处理完毕,完成加密域图像可逆数据隐藏的过程,得到含隐秘信息的加密域图像,并将随机序列、第一标记序列和第二标记序列发送到隐秘数据提取端;
所述的隐秘数据提取和原始图像无损恢复部分中的隐秘数据提取在加密域完成或在解密域完成,在加密域完成隐秘数据提取和原始图像无损恢复的处理过程为:
③_1_1、将含隐秘信息的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块,其中,符号为向下取整符号;
③_1_2、将含隐秘信息的加密域图像中当前待处理的第m'个图像块定义为当前图像块,其中,m'的初始值为1,
③_1_3、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模;
③_1_4、将第i'个非中心像素点对应的模值Mi'与第i'+1个非中心像素点对应的模值Mi'+1配对组成一个组合,记为(Mi',Mi'+1),其中,i'=1,3,5,7;
③_1_5、令m'=m'+1,将含隐秘信息的加密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤③_1_3继续执行,直至含隐秘信息的加密域图像中的所有图像块处理完毕,共得到个组合,其中,m'=m'+1中的“=”为赋值符号;
③_1_6、按序遍历个组合,将当前遍历到的组合定义为当前组合;并按序提取第二标记序列中的每个元素,将当前提取的元素定义为当前第二元素;
③_1_7、如果当前组合为组合(0,0),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(0,1),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(1,0),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(1,1),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(0,2),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(2,0),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(1,2),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当前组合为组合(2,1),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;
如果当前组合为组合(0,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(0,v-2),然后执行步骤③_1_8;如果当前组合为组合(1,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(0,v-2),然后执行步骤③_1_8;其中,3≤v≤127;
如果当前组合为组合(u,0),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_1_8;如果当前组合为组合(u,1),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_1_8;其中,3≤u≤127;
如果当前组合为组合(0,255),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(0,254),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(1,255),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(1,254),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(0,253),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(2,255),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(1,253),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当前组合为组合(2,254),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;
如果当前组合为组合(0,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(0,v+2),然后执行步骤③_1_8;如果当前组合为组合(1,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(0,v+2),然后执行步骤③_1_8;其中,128≤v≤252;
如果当前组合为组合(u,255),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u-2,255),然后执行步骤③_1_8;如果当前组合为组合(u,254),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u-2,255),然后执行步骤③_1_8;其中,3≤u≤127;
如果当前组合为组合(255,0),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(255,1),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(254,0),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(254,1),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(255,2),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(253,0),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(254,2),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合(253,1),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;
如果当前组合为组合(255,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_1_8;如果当前组合为组合(254,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_1_8;其中,3≤v≤127;
如果当前组合为组合(u,0),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_1_8;如果当前组合为组合(u,1),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_1_8;其中,128≤u≤252;
如果当前组合为组合(255,255),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(255,254),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(254,255),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(254,254),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(255,253),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(253,255),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(254,253),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(253,254),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;
如果当前组合为组合(255,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_1_8;如果当前组合为组合(254,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_1_8;其中,128≤v≤252;
如果当前组合为组合(u,255),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u+2,255),然后执行步骤③_1_8;如果当前组合为组合(u,254),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u+2,255),然后执行步骤③_1_8;其中,128≤u≤252;
③_1_8、如果当前组合为(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或(255,125)或(130,255)或(255,130),则当当前第二元素的值为0时,保持当前组合不变,然后将下一个提取的元素作为当前第二元素,再执行步骤③_1_9;当当前第二元素的值为1时,对当前组合进行修改,然后将下一个提取的元素作为当前第二元素,再执行步骤③_1_9,其中修改过程为:若当前组合为(0,125),那么将当前组合修改为(0,126);若当前组合为(125,0),那么将当前组合修改为(126,0);若当前组合为(0,130),那么将当前组合修改为(0,129);若当前组合为(125,255),那么将当前组合修改为(126,255);若当前组合为(130,0),那么将当前组合修改为(129,0);若当前组合为(255,125),那么将当前组合修改为(255,126);若当前组合为(130,255),那么将当前组合修改为(129,255);若当前组合为(255,130),那么将当前组合修改为(255,129);
如果当前组合不为(0,125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、(130,255)、(255,130)中的其中一个,则直接执行步骤③_1_9;
③_1_9、将下一个遍历到的组合作为当前组合,然后返回步骤③_1_7继续执行,直至个组合全部处理完毕,至此在加密域完成隐秘数据提取的过程,得到已提取隐秘信息的加密域图像;
③_1_10、将已提取隐秘信息的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块;
③_1_11、将已提取隐秘信息的加密域图像中当前待处理的第m'个图像块定义为当前图像块;并按序提取第一标记序列中的每个元素,将当前提取的元素定义为当前第一元素,其中,m'的初始值为1,
③_1_12、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模;
③_1_13、按序查看每个模值,将当前查看的模值定义为当前模值;
③_1_14、如果当前模值为126或129,则当当前第一元素的值为0时,保持当前模值不变,然后将下一个提取的元素作为当前第一元素,再执行步骤③_1_15;当当前第一元素的值为1时,对当前模值进行修改,然后将下一个提取的元素作为当前第一元素,再执行步骤③_1_15,其中修改过程为:若当前模值为126,那么将当前模值修改为127;若当前模值为129,那么将当前模值修改为128;
如果当前模值不为126和129,则直接执行步骤③_1_15;
③_1_15、令m'=m'+1,将已提取隐秘信息的加密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤③_1_12继续执行,直至已提取隐秘信息的加密域图像中的所有图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损恢复的加密域图像,其中,m'=m'+1中的“=”为赋值符号;
③_1_16、对已提取隐秘信息并已无损恢复的加密域图像进行解密,具体过程为:
③_1_16a、将已提取隐秘信息并已无损恢复的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块;如果W×H不能够被3×3整除,则将已提取隐秘信息并已无损恢复的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块,并将已提取隐秘信息并已无损恢复的加密域图像的右方和下方尺寸大小不为3×3的块也作为图像块,共有个图像块;
③_1_16b、将已提取隐秘信息并已无损恢复的加密域图像中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为1,1≤m≤M,M表示已提取隐秘信息并已无损恢复的加密域图像中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度;
③_1_16c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1;
③_1_16d、令m=m+1,并令j=j+1,将已提取隐秘信息并已无损恢复的加密域图像中下一个待处理的图像块作为当前图像块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步骤③_1_16c继续执行,直至已提取隐秘信息并已无损恢复的加密域图像中的所有图像块处理完毕,完成图像解密的过程,得到解密域图像,其中,m=m+1和j=j+1中的“=”为赋值符号;
在解密域完成隐秘数据提取和原始图像无损恢复的处理过程为:
③_2_1、对含隐秘信息的加密域图像进行解密,具体过程为:
③_2_1a、将含隐秘信息的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块;如果W×H不能够被3×3整除,则将含隐秘信息的加密域图像划分成个互不重叠的尺寸大小为3×3的图像块,并将含隐秘信息的加密域图像的右方和下方尺寸大小不为3×3的块也作为图像块,共有个图像块;
③_2_1b、将含隐秘信息的加密域图像中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为1,1≤m≤M,M表示含隐秘信息的加密域图像中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度;
③_2_1c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1;
③_2_1d、令m=m+1,并令j=j+1,将含隐秘信息的加密域图像中下一个待处理的图像块作为当前图像块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步骤③_2_1c继续执行,直至含隐秘信息的加密域图像中的所有图像块处理完毕,完成图像解密的过程,得到含隐秘信息的解密域图像,其中,m=m+1和j=j+1中的“=”为赋值符号;
③_2_2、将含隐秘信息的解密域图像划分成个互不重叠的尺寸大小为3×3的图像块,其中,符号为向下取整符号;
③_2_3、将含隐秘信息的解密域图像中当前待处理的第m'个图像块定义为当前图像块,其中,m'的初始值为1,
③_2_4、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模;
③_2_5、将第i'个非中心像素点对应的模值Mi'与第i'+1个非中心像素点对应的模值Mi'+1配对组成一个组合,记为(Mi',Mi'+1),其中,i'=1,3,5,7;
③_2_6、令m'=m'+1,将含隐秘信息的解密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤③_2_4继续执行,直至含隐秘信息的解密域图像中的所有图像块处理完毕,共得到个组合,其中,m'=m'+1中的“=”为赋值符号;
③_2_7、按序遍历个组合,将当前遍历到的组合定义为当前组合;并按序提取第二标记序列中的每个元素,将当前提取的元素定义为当前第二元素;
③_2_8、如果当前组合为组合(0,0),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(0,1),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(1,0),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(1,1),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(0,2),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(2,0),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(1,2),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当前组合为组合(2,1),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;
如果当前组合为组合(0,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(0,v-2),然后执行步骤③_2_9;如果当前组合为组合(1,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(0,v-2),然后执行步骤③_2_9;其中,3≤v≤127;
如果当前组合为组合(u,0),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_2_9;如果当前组合为组合(u,1),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_2_9;其中,3≤u≤127;
如果当前组合为组合(0,255),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(0,254),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(1,255),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(1,254),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(0,253),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(2,255),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(1,253),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当前组合为组合(2,254),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;
如果当前组合为组合(0,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(0,v+2),然后执行步骤③_2_9;如果当前组合为组合(1,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(0,v+2),然后执行步骤③_2_9;其中,128≤v≤252;
如果当前组合为组合(u,255),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u-2,255),然后执行步骤③_2_9;如果当前组合为组合(u,254),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u-2,255),然后执行步骤③_2_9;其中,3≤u≤127;
如果当前组合为组合(255,0),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(255,1),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(254,0),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(254,1),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(255,2),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(253,0),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(254,2),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合(253,1),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;
如果当前组合为组合(255,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_2_9;如果当前组合为组合(254,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_2_9;其中,3≤v≤127;
如果当前组合为组合(u,0),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_2_9;如果当前组合为组合(u,1),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_2_9;其中,128≤u≤252;
如果当前组合为组合(255,255),则提取出嵌入比特“000”以完成隐秘信息提取,并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(255,254),则提取出嵌入比特“001”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(254,255),则提取出嵌入比特“010”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(254,254),则提取出嵌入比特“011”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(255,253),则提取出嵌入比特“100”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(253,255),则提取出嵌入比特“101”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(254,253),则提取出嵌入比特“110”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(253,254),则提取出嵌入比特“111”以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;
如果当前组合为组合(255,v),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_2_9;如果当前组合为组合(254,v),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_2_9;其中,128≤v≤252;
如果当前组合为组合(u,255),则提取出嵌入比特“0”以完成隐秘信息提取,并将当前组合修改为(u+2,255),然后执行步骤③_2_9;如果当前组合为组合(u,254),则提取出嵌入比特“1”以完成隐秘信息提取,并将当前组合修改为(u+2,255),然后执行步骤③_2_9;其中,128≤u≤252;
③_2_9、如果当前组合为(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或(255,125)或(130,255)或(255,130),则当当前第二元素的值为0时,保持当前组合不变,然后将下一个提取的元素作为当前第二元素,再执行步骤③_2_10;当当前第二元素的值为1时,对当前组合进行修改,然后将下一个提取的元素作为当前第二元素,再执行步骤③_2_10,其中修改过程为:若当前组合为(0,125),那么将当前组合修改为(0,126);若当前组合为(125,0),那么将当前组合修改为(126,0);若当前组合为(0,130),那么将当前组合修改为(0,129);若当前组合为(125,255),那么将当前组合修改为(126,255);若当前组合为(130,0),那么将当前组合修改为(129,0);若当前组合为(255,125),那么将当前组合修改为(255,126);若当前组合为(130,255),那么将当前组合修改为(129,255);若当前组合为(255,130),那么将当前组合修改为(255,129);
如果当前组合不为(0,125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、(130,255)、(255,130)中的其中一个,则直接执行步骤③_2_10;
③_2_10、将下一个遍历到的组合作为当前组合,然后返回步骤③_2_8继续执行,直至个组合全部处理完毕,至此在解密域完成隐秘数据提取的过程,得到已提取隐秘信息的解密域图像;
③_2_11、将已提取隐秘信息的解密域图像划分成个互不重叠的尺寸大小为3×3的图像块;
③_2_12、将已提取隐秘信息的解密域图像中当前待处理的第m'个图像块定义为当前图像块;并按序提取第一标记序列中的每个元素,将当前提取的元素定义为当前第一元素,其中,m'的初始值为1,
③_2_13、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值求差值后对256求模;
③_2_14、按序查看每个模值,将当前查看的模值定义为当前模值;
③_2_15、如果当前模值为126或129,则当当前第一元素的值为0时,保持当前模值不变,然后将下一个提取的元素作为当前第一元素,再执行步骤③_2_16;当当前第一元素的值为1时,对当前模值进行修改,然后将下一个提取的元素作为当前第一元素,再执行步骤③_2_16,其中修改过程为:若当前模值为126,那么将当前模值修改为127;若当前模值为129,那么将当前模值修改为128;
如果当前模值不为126和129,则直接执行步骤③_2_16;
③_2_16、令m'=m'+1,将已提取隐秘信息的解密域图像中下一个待处理的图像块作为当前图像块,然后返回步骤③_2_13继续执行,直至已提取隐秘信息的解密域图像中的所有图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损恢复的解密域图像,其中,m'=m'+1中的“=”为赋值符号。
2.根据权利要求1所述的一种完全可分离的加密域图像可逆数据隐藏方法,其特征在于所述的步骤①_2中根据随意设定的一个文本,生成一个作为random()函数的输入参数的密钥的具体过程为:
①_2a、随意设定一个文本,如果文本的长度不能够被8整除,则在文本的末尾补字符“0”,使文本的长度能够被8整除;
①_2b、将文本中的每个字符转化成ASCII码,然后以8个字节为一组将所有ASCII码按序分成多个码组,假设共有N个码组,其中,N>1;
①_2c、将第1个码组与第2个码组中对应的ASCII码两两求和后对256求模,得到第1个新码组;然后将第1个新码组与第3个码组中对应的ASCII码两两求和后对256求模,得到第2个新码组;依次类推,将第N-2个新码组与第N个码组中对应的ASCII码两两求和后对256求模,得到第N-1个新码组,将第N-1个新码组作为random()函数的输入参数的密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610226637.1A CN105872305B (zh) | 2016-04-13 | 2016-04-13 | 一种完全可分离的加密域图像可逆数据隐藏方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610226637.1A CN105872305B (zh) | 2016-04-13 | 2016-04-13 | 一种完全可分离的加密域图像可逆数据隐藏方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105872305A CN105872305A (zh) | 2016-08-17 |
CN105872305B true CN105872305B (zh) | 2018-06-05 |
Family
ID=56637111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610226637.1A Active CN105872305B (zh) | 2016-04-13 | 2016-04-13 | 一种完全可分离的加密域图像可逆数据隐藏方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105872305B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107809644B (zh) * | 2017-10-26 | 2019-08-20 | 宁波工程学院 | 一种双重加密的加密域图像可逆数据隐藏方法 |
CN108566500B (zh) * | 2018-03-02 | 2021-02-26 | 西南交通大学 | 基于混合加密机制的自适应图像加密域可逆隐藏方法 |
CN109803142B (zh) * | 2019-01-08 | 2021-04-13 | 宁波工程学院 | 一种基于邻域预测的加密域图像可逆数据隐藏方法 |
CN112597520B (zh) * | 2020-12-28 | 2023-01-17 | 中咨数据有限公司 | 基于数据分割的数据处理系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164831A (zh) * | 2011-12-12 | 2013-06-19 | 天津职业技术师范大学 | 图像认证及篡改定位方法 |
CN103761702A (zh) * | 2014-01-09 | 2014-04-30 | 太原科技大学 | 一种基于秘密共享的图像隐藏和认证方法 |
WO2014075469A1 (zh) * | 2012-11-13 | 2014-05-22 | 中兴通讯股份有限公司 | 一种信息隐藏方法及装置 |
JP2015115921A (ja) * | 2013-12-16 | 2015-06-22 | 満男 江口 | 暗号通信向け画像圧縮伸長方法及び装置、プログラム、並びに記憶媒体 |
-
2016
- 2016-04-13 CN CN201610226637.1A patent/CN105872305B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164831A (zh) * | 2011-12-12 | 2013-06-19 | 天津职业技术师范大学 | 图像认证及篡改定位方法 |
WO2014075469A1 (zh) * | 2012-11-13 | 2014-05-22 | 中兴通讯股份有限公司 | 一种信息隐藏方法及装置 |
JP2015115921A (ja) * | 2013-12-16 | 2015-06-22 | 満男 江口 | 暗号通信向け画像圧縮伸長方法及び装置、プログラム、並びに記憶媒体 |
CN103761702A (zh) * | 2014-01-09 | 2014-04-30 | 太原科技大学 | 一种基于秘密共享的图像隐藏和认证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105872305A (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107809644B (zh) | 一种双重加密的加密域图像可逆数据隐藏方法 | |
CN109803142B (zh) | 一种基于邻域预测的加密域图像可逆数据隐藏方法 | |
Yi et al. | Separable and reversible data hiding in encrypted images using parametric binary tree labeling | |
Chai et al. | TPE-GAN: Thumbnail preserving encryption based on GAN with key | |
CN103761702B (zh) | 一种基于秘密共享的图像隐藏和认证方法 | |
CN110753226B (zh) | 一种高容量密文域图像可逆数据隐藏方法 | |
CN103778590A (zh) | 利用数字图像存储和传输信息的方法和装置 | |
CN105872305B (zh) | 一种完全可分离的加密域图像可逆数据隐藏方法 | |
CN113194213B (zh) | 一种基于秘密共享和混沌映射的png图像信息隐藏和恢复方法 | |
Yi et al. | Parametric reversible data hiding in encrypted images using adaptive bit-level data embedding and checkerboard based prediction | |
CN112040086A (zh) | 一种图像加密、解密方法及装置、设备和可读存储介质 | |
CN104881838B (zh) | 一种基于gf(23)的(k,n)有意义无扩张图像分存和重构方法 | |
CN111970507A (zh) | 基于像素差值编码的密文域图像的可逆数据隐藏方法 | |
Malik et al. | Reversible data hiding with multiple data for multiple users in an encrypted image | |
CN106357608A (zh) | 一种面向个人医疗健康数据的隐私数据加密及解密方法 | |
CN104463767B (zh) | 一种具有伪装图像和篡改认证功能的可视加密及解密方法 | |
CN106157231A (zh) | 一种基于改进Arnold变换和LSB的图像信息加密及解密方法 | |
CN111988639B (zh) | 一种基于国密算法和可逆隐写术的视频加密及解密方法 | |
Abboud | Multifactor authentication for software protection | |
Kaur et al. | XOR-EDGE based video steganography and testing against chi-square steganalysis | |
CN103617589A (zh) | 一种基于局部直方图的信息隐藏方法 | |
Rao et al. | A novel information security scheme using cryptic steganography | |
CN105740659B (zh) | 一种数据隐藏方法、应用程序防篡改方法及相关装置 | |
Thakre et al. | Dual image steganography for communicating high security information | |
Yi et al. | Improved reversible data hiding in encrypted images using histogram modification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 315016 Zhejiang Province, Ningbo city Haishu District cypress Road No. 89 Applicant after: Ningbo University of Technology Address before: The official road, Zhenhai District 315211 Zhejiang city of Ningbo Province Applicant before: Ningbo University of Technology |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |