一种完全可分离的加密域图像可逆数据隐藏方法

文档序号:10515940阅读:616来源:国知局
一种完全可分离的加密域图像可逆数据隐藏方法
【专利摘要】本发明公开了一种完全可分离的加密域图像可逆数据隐藏方法,其在图像加密部分中先将图像分割成图像块,然后将每个图像块中的每个像素点的像素值与用于加密的随机序列中的一个元素的值相加后对256求模实现加密,这种加密方式可使得图像块中的非中心像素点的像素值与中心像素点的像素值的差值在加密前和加密后保持一致,不仅确保了能够在加密后的图像中进行数据隐藏,而且确保了数据提取与图像解密的完全分离,可在加密域或解密域有效地提取出隐秘数据,同时能保证在提取隐秘信息后可无失真地恢复出原始图像;在加密域图像可逆数据隐藏部分中以组合方式嵌入隐秘信息,出现频率大的组合嵌入隐秘信息的比特位数多,从而有效地提高了数据嵌入容量。
【专利说明】
-种完全可分离的加密域图像可逆数据隐藏方法
技术领域
[0001] 本发明设及一种图像可逆数据隐藏方法,尤其是设及一种完全可分离的加密域图 像可逆数据隐藏方法。
【背景技术】
[0002] 为适应云计算的数据安全和隐私保护需求,敏感图像W加密形式存储在云端,运 样攻击者即使获得了图像也无法获得其内容,从而保证了图像在云端的安全。例如医疗机 构,负有保护患者隐私的义务,但是他们数据处理能力较弱,需要第Ξ方来实现数据处理分 析W达到更好的医疗效果或者科研水平,运样他们就需要委托有较强数据处理能力的第Ξ 方(云计算中屯、)实现数据处理,而直接将数据交给第Ξ方是不道德的,也是不被法律所允 许的,为此医疗机构可W将加密后的数据发送至云计算中屯、,云计算中屯、处理完成后返回 给医疗机构。
[0003] 在很多应用场景,某些没有解密权限的云服务管理者需在加密载体中嵌入一些附 加消息,如标注或认证数据、作品来源信息、所有者身份信息等,用于管理和认证加密图像 数据。同时,在一些重要的应用场合,如医学诊断、法庭认证、军事/航空等敏感领域往往需 要在提取附加消息后能精确地恢复原宿主信息。例如,为保护病人隐私,对医学图像等信息 进行了加密,数据库管理者会在相应的加密图像中嵌入病人的隐私信息和认证信息。如果 在敏感图像数据中嵌入附加消息,则需事先对敏感图像数据解密,运就意味着在敏感图像 数据的整个生命周期中,至少有一部分时间是W明文形式存在的,运样会带来严重的隐私 问题。此外,为了不影响诊断,授权的医生希望在解密和提取附加信息后,可W完全恢复原 始图像内容。加密域可逆数据隐藏技术可W确保数据隐藏者在不解密的前提下,直接对加 密图像进行数据的嵌入和提取操作,可W帮助解决图像安全和隐私泄露的担忧。现有的加 密域可逆数据隐藏技术可分为两类:一类是对图像进行加密后寻找数据嵌入空间,运类方 法普遍嵌入容量较低,且会发生数据提取出错;另一类是图像加密前预留数据嵌入空间,运 类方法嵌入容量大且失真低,但缺点是图像加密者和数据嵌入者之间需要复杂的协议。

【发明内容】

[0004] 本发明所要解决的技术问题是提供一种完全可分离的加密域图像可逆数据隐藏 方法,其能够在加密后的图像中进行数据隐藏,并能够保证隐秘信息的提取与解密完全可 分离,即隐秘信息在加密域图像和解密域图像中都能有效地被提取出,同时能够保证在提 取隐秘信息后可无失真地恢复出原始图像。
[0005] 本发明解决上述技术问题所采用的技术方案为:一种完全可分离的加密域图像可 逆数据隐藏方法,其特征在于包括图像加密、加密域图像可逆数据隐藏、隐秘数据提取和原 始图像无损恢复Ξ部分;其中,
[0006] 所述的图像加密部分的处理过程为:
[0007] @_1、设定待加密的图像的宽度和高度对应为W和Η,如果W X Η能够被3 X 3整除,贝U 将待加密的图像划分成个互不重叠的尺寸大小为3X3的图像块;如果WXH不能够被 3. 3 3X3整除,则将待加密的图像划分成^ X 个互不重叠的尺寸大小为3X3的图像块, 并将待加密的图像的右方和下方尺寸大小不为3X3的块也作为图像块,共有^ X 个 图像块,其中,符号"L」"为向下取整符号,符号"「1"为向上取整符号;
[000引 @_2、根据随意设定的一个文本,生成一个作为randomO函数的输入参数的密钥; 然后由randomO函数随机产生一个随机序列,随机序列中的每个元素的值在0~255之间, 随机序列的长度远大于待加密的图像中包含的图像块的总个数;
[0009] @_3、将待加密的图像中当前待处理的第m个图像块定义为当前图像块,将当前从 随机序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为1,1含m含Μ,Μ表 示待加密的图像中包含的图像块的总个数,1含j含J,J表示随机序列的总长度;
[0010] @_4、利用当前元素对当前图像块中的每个像素点进行加密,对当前图像块中的 第i个像素点进行加密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值 相加后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1 < i Ucur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1;
[0011] @_5、令m=m+l,并令j = j+l,将待加密的图像中下一个待处理的图像块作为当前 图像块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步骤①_4继续执行, 直至待加密的图像中的所有图像块处理完毕,完成图像加密的过程,得到加密域图像,其 中,m=m+l和j = j+1中的为赋值符号;
[0012] 所述的加密域图像可逆数据隐藏部分的处理过程为:
[0013] 這)_1、将加密域图像划分成^ X ^个互不重叠的尺寸大小为3X3的图像块,并 _ 3」L _ 定义一个第一标记序列和一个第二标记序列,其中,符号AL」"为向下取整符号;
[0014] (D_2、将加密域图像中当前待处理的第m'个图像块定义为当前图像块,其中,m'的 初始值为1,1如?!'言X ^ ;
[001引 @_3、对当前图像块中周围的8个非中屯、像素点的像素值各自与中屯、像素点的像 素值求差值后对256求模;然后按序查看每个模值,若当前查看的模值为126,则将该模值 126的标记设为0,并将标记存入第一标记序列中;若当前查看的模值为127,则将该模值127 的标记设为1,并将标记存入第一标记序列中;若当前查看的模值为128,则将该模值128的 标记设为1,并将标记存入第一标记序列中;若当前查看的模值为129,则将该模值129的标 记设为0,并将标记存入第一标记序列中;接着将模值为127对应的非中屯、像素点的像素值 减1,将模值为128对应的非中屯、像素点的像素值加1;
[0016] (D_4、将第i'个非中屯、像素点对应的模值Ml'与第i'+l个非中屯、像素点对应的模值 Mi'+i配对组成一个组合,记为(1^,1^+1),其中,1' = 1,3,5,7;
[0017] (D_5、令111'=111' + 1,将加密域图像中下一个待处理的图像块作为当前图像块,然后 返回步骤②_3继续执行,直至加密域图像中的所有图像块处理完毕,共得到X x4 个组合,其中,m ' =m '+1中的为赋值符号;
[001引這)_6、按序遍历X X4个组合,将当前遍历到的组合定义为当前组合;
[0019] 這)_7、如果当前组合为组合(0,125),则将当前组合的标记设为0,并将标记存入第 二标记序列中,再执行步骤@_8;如果当前组合为组合(0,126),则将当前组合的标记设为 1,并将标记存入第二标记序列中,然后将当前组合修改为(0,125),再执行步骤②_8;如果 当前组合为组合(125,0),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执 行步骤(D_8;如果当前组合为组合(126,0),则将当前组合的标记设为1,并将标记存入第二 标记序列中,然后将当前组合修改为(125,0),再执行步骤②_8;
[0020] 如果当前组合为组合(0,130),则将当前组合的标记设为0,并将标记存入第二标 记序列中,再执行步骤@_8;如果当前组合为组合(0,129),则将当前组合的标记设为1,并 将标记存入第二标记序列中,然后将当前组合修改为(0,130),再执行步骤②_8;如果当前 组合为组合(125,255),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行 步骤②_8;如果当前组合为组合(126,255),则将当前组合的标记设为1,并将标记存入第二 标记序列中,然后将当前组合修改为(125,255),再执行步骤②_8;
[0021] 如果当前组合为组合(130,0),则将当前组合的标记设为0,并将标记存入第二标 记序列中,再执行步骤@_8;如果当前组合为组合(129,0),则将当前组合的标记设为1,并 将标记存入第二标记序列中,然后将当前组合修改为(130,0),再执行步骤②_8;如果当前 组合为组合(255,125),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行 步骤②_8;如果当前组合为组合(255,126),则将当前组合的标记设为1,并将标记存入第二 标记序列中,然后将当前组合修改为(255,125),再执行步骤②_8;
[0022] 如果当前组合为组合(130,255),则将当前组合的标记设为0,并将标记存入第二 标记序列中,再执行步骤@_8;如果当前组合为组合(129,255),则将当前组合的标记设为 1,并将标记存入第二标记序列中,然后将当前组合修改为(130,255),再执行步骤②_8;如 果当前组合为组合(255,130),则将当前组合的标记设为0,并将标记存入第二标记序列中, 再执行步骤②_8;如果当前组合为组合(255,129),则将当前组合的标记设为1,并将标记存 入第二标记序列中,然后将当前组合修改为(255,130),再执行步骤②_8;
[0023] 這)_8、如果当前组合为组合(0,0),则从隐秘信息中提取出第k位至第k巧位比特信 息作为当前嵌入信息,当当前嵌入信息为"000"时,保持当前组合不变,完成隐秘信息嵌入; 当当前嵌入信息为"00Γ时,将当前组合修改为(〇,1),完成隐秘信息嵌入;当当前嵌入信息 为"010"时,将当前组合修改为(1,〇),完成隐秘信息嵌入;当前嵌入信息为"01Γ时,将当前 组合修改为(1,1),完成隐秘信息嵌入;当前嵌入信息为"100"时,将当前组合修改为(〇,2), 完成隐秘信息嵌入;当前嵌入信息为"10Γ时,将当前组合修改为(2,0),完成隐秘信息嵌 入;当前嵌入信息为"110"时,将当前组合修改为(1,2),完成隐秘信息嵌入;当前嵌入信息 为"11Γ时,将当前组合修改为(2,1),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9; 其中,k的初始值化,k=k+3中的为赋值符号;
[0024] 如果当前组合为组合(0,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入 信息,当当前嵌入信息为"ο"时,将当前组合修改为(〇,v+2),完成隐秘信息嵌入;当当前嵌 入信息为"Γ时,将当前组合修改为(l,v+2),完成隐秘信息嵌入;然后令k = k+l;再执行步 骤②_9;其中,1含V。27,k的初始值化,k=k+1中的为赋值符号;
[0025]如果当前组合为组合(u,0),则从隐秘信息中提取出第k位比特信息作为当前嵌入 信息,当当前嵌入信息为"0"时,将当前组合修改为(u+2,0),完成隐秘信息嵌入;当当前嵌 入信息为"Γ时,将当前组合修改为(u+2,l),完成隐秘信息嵌入;然后令k = k+l;再执行步 骤②_9;其中,1 ^。27,k的初始值化,k = k+1中的为赋值符号;
[00%]如果当前组合为组合(0,255),则从隐秘信息中提取出第k位至第k+2位比特信息 作为当前嵌入信息,当当前嵌入信息为"000"时,保持当前组合不变,完成隐秘信息嵌入;当 当前嵌入信息为"00Γ时,将当前组合修改为(〇,254),完成隐秘信息嵌入;当当前嵌入信息 为"010"时,将当前组合修改为(1,255),完成隐秘信息嵌入;当前嵌入信息为"01Γ时,将当 前组合修改为(1,254),完成隐秘信息嵌入;当前嵌入信息为"100"时,将当前组合修改为 (0,253),完成隐秘信息嵌入;当前嵌入信息为"10Γ时,将当前组合修改为(2,255),完成隐 秘信息嵌入;当前嵌入信息为"110"时,将当前组合修改为(1,253),完成隐秘信息嵌入;当 前嵌入信息为"11Γ时,将当前组合修改为(2,254),完成隐秘信息嵌入;然后令4 = 4+3;再 执行步骤②_9;其中,k的初始值为1,k=k+3中的为赋值符号;
[0027] 如果当前组合为组合(0,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入 信息,当当前嵌入信息为"0"时,将当前组合修改为(〇,v-2),完成隐秘信息嵌入;当当前嵌 入信息为"Γ时,将当前组合修改为(l,v-2),完成隐秘信息嵌入;然后令k = k+l;再执行步 骤②_9;其中,128含V。54,k的初始值化,k = k+l中的为赋值符号;
[0028] 如果当前组合为组合(u,255),则从隐秘信息中提取出第k位比特信息作为当前嵌 入信息,当当前嵌入信息为"0"时,将当前组合修改为(u+2,255),完成隐秘信息嵌入;当当 前嵌入信息为"Γ时,将当前组合修改为(u+2,254),完成隐秘信息嵌入;然后令k = k+l;再 执行步骤②_9;其中,1 < U < 127,k的初始值为1,k = k+l中的为赋值符号;
[0029] 如果当前组合为组合(255,0),则从隐秘信息中提取出第k位至第k+2位比特信息 作为当前嵌入信息,当当前嵌入信息为"000"时,保持当前组合不变,完成隐秘信息嵌入;当 当前嵌入信息为"00Γ时,将当前组合修改为(255,1),完成隐秘信息嵌入;当当前嵌入信息 为"010"时,将当前组合修改为(254,0),完成隐秘信息嵌入;当前嵌入信息为"01Γ时,将当 前组合修改为(254,1),完成隐秘信息嵌入;当前嵌入信息为"100"时,将当前组合修改为 (255,2),完成隐秘信息嵌入;当前嵌入信息为"101"时,将当前组合修改为(253,0),完成隐 秘信息嵌入;当前嵌入信息为"110"时,将当前组合修改为(254,2),完成隐秘信息嵌入;当 前嵌入信息为"11Γ时,将当前组合修改为(253,1),完成隐秘信息嵌入;然后令k = k+3;再 执行步骤②_9;其中,k的初始值为1,k = k+3中的为赋值符号;
[0030] 如果当前组合为组合(255,v),则从隐秘信息中提取出第k位比特信息作为当前嵌 入信息,当当前嵌入信息为"0"时,将当前组合修改为(255,v+2),完成隐秘信息嵌入;当当 前嵌入信息为"Γ时,将当前组合修改为(254,v+2),完成隐秘信息嵌入;然后令k = k+l;再 执行步骤②_9;其中,1 < V < 127,k的初始值为1,k = k+l中的为赋值符号;
[0031] 如果当前组合为组合(u,0),则从隐秘信息中提取出第k位比特信息作为当前嵌入 信息,当当前嵌入信息为"0"时,将当前组合修改为(u-2,0),完成隐秘信息嵌入;当当前嵌 入信息为"Γ时,将当前组合修改为(U-2,1),完成隐秘信息嵌入;然后令k = k+l;再执行步 骤②_9;其中,128 ^。54,k的初始值化,k = k+l中的为赋值符号;
[0032] 如果当前组合为组合(255,255),则从隐秘信息中提取出第k位至第k+2位比特信 息作为当前嵌入信息,当当前嵌入信息为"000"时,保持当前组合不变,完成隐秘信息嵌入; 当当前嵌入信息为"00Γ时,将当前组合修改为(255,254),完成隐秘信息嵌入;当当前嵌入 信息为"010"时,将当前组合修改为(254,255),完成隐秘信息嵌入;当前嵌入信息为"01Γ 时,将当前组合修改为(254,254),完成隐秘信息嵌入;当前嵌入信息为"100"时,将当前组 合修改为(255,253),完成隐秘信息嵌入;当前嵌入信息为"10Γ时,将当前组合修改为 (253,255),完成隐秘信息嵌入;当前嵌入信息为"110"时,将当前组合修改为(254,253),完 成隐秘信息嵌入;当前嵌入信息为"11Γ时,将当前组合修改为(253,254),完成隐秘信息嵌 入;然后令k = k+3;再执行步骤②_9;其中,k的初始值为l,k = k+3中的为赋值符号;
[0033] 如果当前组合为组合(255,v),则从隐秘信息中提取出第k位比特信息作为当前嵌 入信息,当当前嵌入信息为"0"时,将当前组合修改为(255,v-2),完成隐秘信息嵌入;当当 前嵌入信息为"Γ时,将当前组合修改为(254,v-2),完成隐秘信息嵌入;然后令k = k+l;再 执行步骤②_9;其中,128 < V < 254,k的初始值为1,k = k+l中的为赋值符号;
[0034] 如果当前组合为组合(u,255),则从隐秘信息中提取出第k位比特信息作为当前嵌 入信息,当当前嵌入信息为"0"时,将当前组合修改为(u-2,255),完成隐秘信息嵌入;当当 前嵌入信息为"Γ时,将当前组合修改为(u-2,254),完成隐秘信息嵌入;然后令k = k+l;再 执行步骤②_9;其中,128 < U < 254,k的初始值为1,k = k+l中的为赋值符号;
[0035] 這)_9、对当前组合进行移位:若当前组合为(u,v)且1 <u< 127、1 < v< 127,则将当 前组合(u,v)修改为(u+l,v+l);若当前组合为(u,v)且1含11。27、128< v^54,则将当前 组合(u,v)修改为(U+1,v-l);若当前组合为(U,V)且128 < U < 254、1 < V < 127,则将当前组 合(u,v)修改为(U-1,v+l);若当前组合为(u,v)且128 < U < 254、128 < V < 254,则将当前组 合(u,v)修改为(U-1,V-1);
[0036] @_10、将下一个遍历到的组合作为当前组合,然后返回步骤②_7继续执行,直至 ^ X x4个组合全部处理完毕,完成加密域图像可逆数据隐藏的过程,得到含隐秘信 息的加密域图像,并将随机序列、第一标记序列和第二标记序列发送到隐秘数据提取端;
[0037] 所述的隐秘数据提取和原始图像无损恢复部分中的隐秘数据提取在加密域完成 或在解密域完成,在加密域完成隐秘数据提取和原始图像无损恢复的处理过程为:
[0038] ③_1_1、将含隐秘信息的加密域图像划分成^ ^个互不重叠的尺寸大小为 3X3的图像块,其中,符号"L」"为向下取整符号;
[0039] ③_1_2、将含隐秘信息的加密域图像中当前待处理的第m'个图像块定义为当前图 像块,其中,m'的初始值为^ X ;
[0040] ③_1_3、对当前图像块中周围的8个非中屯、像素点的像素值各自与中屯、像素点的 像素值求差值后对256求模;
[0041] ③_1_4、将第i'个非中屯、像素点对应的模值Ml'与第i' + l个非中屯、像素点对应的模 值Mi'+i配对组成一个组合,记为(1^,1^+1),其中,1' = 1,3,5,7;
[0042] ③_1_5、令111'=111'+1,将含隐秘信息的加密域图像中下一个待处理的图像块作为 当前图像块,然后返回步骤③_1_3继续执行,直至含隐秘信息的加密域图像中的所有图像 块处理完毕,共得到^ X x4个组合,其中,m'=m'+l中的为赋值符号;
[0043] ③_1_6、按序遍历^ X x4个组合,将当前遍历到的组合定义为当前组合;并 按序提取第二标记序列中的每个元素,将当前提取的元素定义为当前第二元素;
[0044] ③_1_7、如果当前组合为组合(0,0),则提取出嵌入比特"000" W完成隐秘信息提 取,并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(0,1),则提取出嵌入 比特"OOrW完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当 前组合为组合(1,〇),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前组合修改为 (〇,〇),然后执行步骤③_1_8;如果当前组合为组合(1,1),则提取出嵌入比特"OirW完成 隐秘信息提取,并将当前组合修改为(〇,〇),然后执行步骤③_1_8;如果当前组合为组合(0, 2),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步 骤③_1_8;如果当前组合为组合(2,0),则提取出嵌入比特"lOrW完成隐秘信息提取,并将 当前组合修改为(〇,〇),然后执行步骤③_1_8;如果当前组合为组合(1,2),则提取出嵌入比 特"110" W完成隐秘信息提取,并将当前组合修改为(〇,〇),然后执行步骤③_1_8;如果当前 组合为组合(2,1),则提取出嵌入比特"lirW完成隐秘信息提取,并将当前组合修改为(0, 0),然后执行步骤③_1_8;
[0045] 如果当前组合为组合(0,v),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(〇,v-2),然后执行步骤③_1_8;如果当前组合为组合(l,v),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(〇,v-2),然后执行步骤③_1_8;其中,1< v< 127;
[0046] 如果当前组合为组合(u,0),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(u-2,0),然后执行步骤③_1_8;如果当前组合为组合(u,l),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_1_8;其中,1< u< 127;
[0047] 如果当前组合为组合(0,255),则提取出嵌入比特"000" W完成隐秘信息提取,并 保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(0,254),则提取出嵌入比 特"OOrW完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当 前组合为组合(1,255),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前组合修改 为(〇,255),然后执行步骤③_1_8;如果当前组合为组合(1,254),则提取出嵌入比特"01Γ W完成隐秘信息提取,并将当前组合修改为(〇,255),然后执行步骤③_1_8;如果当前组合 为组合(0,253),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前组合修改为(0, 255),然后执行步骤③_1_8;如果当前组合为组合(2,255),则提取出嵌入比特"101"^完成 隐秘信息提取,并将当前组合修改为(〇,255),然后执行步骤③_1_8;如果当前组合为组合 (1,253),则提取出嵌入比特"110" W完成隐秘信息提取,并将当前组合修改为(0,255),然 后执行步骤③_1_8;如果当前组合为组合(2,254),则提取出嵌入比特"lirW完成隐秘信 息提取,并将当前组合修改为(〇,255),然后执行步骤③_1_8;
[004引如果当前组合为组合(0,v),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(0,v+2),然后执行步骤③_1_8;如果当前组合为组合(l,v),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(0,v+2),然后执行步骤③_1_8;其中,128 < v< 254;
[0049] 如果当前组合为组合(u,255),则提取出嵌入比特"0"W完成隐秘信息提取,并将 当前组合修改为(u-2,255),然后执行步骤③_1_8;如果当前组合为组合(u,254),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(11-2,255),然后执行步骤③_1_8; 其中,1 <u< 127;
[0050] 如果当前组合为组合(255,0),则提取出嵌入比特"000" W完成隐秘信息提取,并 保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(255,1),则提取出嵌入比 特"OOrW完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当 前组合为组合(254,0),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前组合修改 为(255,0),然后执行步骤③_1_8;如果当前组合为组合(254,1),则提取出嵌入比特"01Γ W完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合 为组合(255,2),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前组合修改为(255, 0),然后执行步骤③_1_8;如果当前组合为组合(253,0),则提取出嵌入比特"lOrW完成隐 秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合 (254,2),则提取出嵌入比特"110" W完成隐秘信息提取,并将当前组合修改为(255,0),然 后执行步骤③_1_8;如果当前组合为组合(253,1),则提取出嵌入比特"lirW完成隐秘信 息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;
[0051] 如果当前组合为组合(255,v),则提取出嵌入比特"0"w完成隐秘信息提取,并将 当前组合修改为(255,v-2),然后执行步骤③_1_8;如果当前组合为组合(254,v),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_1_8; 其中,1 < v< 127;
[0052] 如果当前组合为组合(u,0),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(U巧,0),然后执行步骤③_1_8;如果当前组合为组合(u,l),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_1_8;其中,128 <u< 254;
[0053] 如果当前组合为组合(255,255),则提取出嵌入比特"000" W完成隐秘信息提取, 并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(255,254),则提取出嵌 入比特"OOrW完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8; 如果当前组合为组合(254,255),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前 组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(254,254),则提取出嵌 入比特"OirW完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8; 如果当前组合为组合(255,253),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前 组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(253,255),则提取出嵌 入比特"lOrW完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8; 如果当前组合为组合(254,253),则提取出嵌入比特"110" W完成隐秘信息提取,并将当前 组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(253,254),则提取出嵌 入比特"lirW完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;
[0054] 如果当前组合为组合(255,v),则提取出嵌入比特"0"W完成隐秘信息提取,并将 当前组合修改为(255,v+2),然后执行步骤③_1_8;如果当前组合为组合(254,v),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_1_8; 其中,128< v< 254;
[0055] 如果当前组合为组合(u,255),则提取出嵌入比特"0"W完成隐秘信息提取,并将 当前组合修改为(u+2,255),然后执行步骤③_1_8;如果当前组合为组合(u,254),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(11+2,255),然后执行步骤③_1_8; 其中,128<u< 254;
[0056] ③ _1_8、如果当前组合为(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或 (255.125) 或(130,255)或(255,130),则当当前第二元素的值为加寸,保持当前组合不变,然 后将下一个提取的元素作为当前第二元素,再执行步骤③_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);
[0057] 如果当前组合不为(0,125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、 (130,255)、(255,130)中的其中一个,则直接执行步骤③_1_9;
[005引③_1_9、将下一个遍历到的组合作为当前组合,然后返回步骤③_1_7继续执行,直 至f X f x4个组合全部处理完毕,至此在加密域完成隐秘数据提取的过程,得到已提 取隐秘信息的加密域图像;
[0化9]③_1_10、将已提取隐秘信息的加密域图像划分成^ X ^个互不重叠的尺寸 大小为3X3的图像块;
[0060]③将已提取隐秘信息的加密域图像中当前待处理的第m'个图像块定义为 当前图像块;并按序提取第一标记序列中的每个元素,将当前提取的元素定义为当前第一 元素,其中,111'的初始值为1,1《游'< Y ;
[0061 ]③_1_12、对当前图像块中周围的8个非中屯、像素点的像素值各自与中屯、像素点的 像素值求差值后对256求模;
[0062] ③_1_13、按序查看每个模值,将当前查看的模值定义为当前模值;
[0063] ③_1_14、如果当前模值为126或129,则当当前第一元素的值为0时,保持当前模值 不变,然后将下一个提取的元素作为当前第一元素,再执行步骤③当当前第一元素 的值为1时,对当前模值进行修改,然后将下一个提取的元素作为当前第一元素,再执行步 骤③其中修改过程为:若当前模值为126,那么将当前模值修改为127;若当前模值为 129,那么将当前模值修改为128;
[0064] 如果当前模值不为126和129,则直接执行步骤③
[0065] ③_1_15、令111'=111' + 1,将已提取隐秘信息的加密域图像中下一个待处理的图像块 作为当前图像块,然后返回步骤③_1_12继续执行,直至已提取隐秘信息的加密域图像中的 所有图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损 恢复的加密域图像,其中,m'=m'+l中的为赋值符号;
[0066] ③_1_16、对已提取隐秘信息并已无损恢复的加密域图像进行解密,具体过程为:
[0067] ③_l_16a、将已提取隐秘信息并已无损恢复的加密域图像划分成个互不重 叠的尺寸大小为3X3的图像块;如果WXH不能够被3X3整除,则将已提取隐秘信息并已无 损恢复的加密域图像划分成^ X 个互不重叠的尺寸大小为3X3的图像块,并将已提 取隐秘信息并已无损恢复的加密域图像的右方和下方尺寸大小不为3X3的块也作为图像 块,共有y X y个图像块;
[0068] ③_1_1化、将已提取隐秘信息并已无损恢复的加密域图像中当前待处理的第m个 图像块定义为当前图像块,将当前从随机序列中提取出的第j个元素定义为当前元素,其 中,m和j的初始值均为1,1含m含M,M表示已提取隐秘信息并已无损恢复的加密域图像中包 含的图像块的总个数,1 < j < JJ表示随机序列的总长度;
[0069] ③_l_16c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块 中的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素 的值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中, 1 y Ucur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1;
[0070] ③_l_16d、令m=m+l,并令j = j+l,将已提取隐秘信息并已无损恢复的加密域图像 中下一个待处理的图像块作为当前图像块,将下一个从随机序列中提取出的元素作为当前 元素,然后返回步骤③_l_16c继续执行,直至已提取隐秘信息并已无损恢复的加密域图像 中的所有图像块处理完毕,完成图像解密的过程,得到解密域图像,其中,m = m+l和j = j+l 中的为赋值符号;
[0071] 在解密域完成隐秘数据提取和原始图像无损恢复的处理过程为:
[0072] ③_2_1、对含隐秘信息的加密域图像进行解密,具体过程为:
[0073] ③_2_la、将含隐秘信息的加密域图像划分成个互不重叠的尺寸大小为3X 3的图像块;如果WXH不能够被3X3整除,则将含隐秘信息的加密域图像划分成^ X ^ 个互不重叠的尺寸大小为3X3的图像块,并将含隐秘信息的加密域图像的右方和下方尺寸 大小不为3X3的块也作为图像块,共有X ^个图像块;
[0074] ③_2_化、将含隐秘信息的加密域图像中当前待处理的第m个图像块定义为当前图 像块,将当前从随机序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为 1,1 <m含M,M表示含隐秘信息的加密域图像中包含的图像块的总个数,1 < j y,J表示随机 序列的总长度;
[0075] ③_2_lc、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中 的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的 值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1 y Ucur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或域域1;
[0076] ③_2_1 d、令m = m+1,并令j = j+1,将含隐秘信息的加密域图像中下一个待处理的 图像块作为当前图像块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步 骤③_2_lc继续执行,直至含隐秘信息的加密域图像中的所有图像块处理完毕,完成图像解 密的过程,得到含隐秘信息的解密域图像,其中,m=m+l和j = j+l中的为赋值符号;
[0077] ③_2_2、将含隐秘信息的解密域图像划分成^ X ^个互不重叠的尺寸大小为3 X3的图像块,其中,符号"L」"为向下取整符号;
[0078] ③_2_3、将含隐秘信息的解密域图像中当前待处理的第m'个图像块定义为当前图 像块,其中,m'的初始值为1,1全所'《等X等·;
[0079] ③_2_4、对当前图像块中周围的8个非中屯、像素点的像素值各自与中屯、像素点的 像素值求差值后对256求模;
[0080] ③_2_5、将第i'个非中屯、像素点对应的模值Ml'与第i' + l个非中屯、像素点对应的模 值Mi'+i配对组成一个组合,记为(1^,1^+1),其中,1' = 1,3,5,7;
[0081] ③_2_6、令111'=111'+1,将含隐秘信息的解密域图像中下一个待处理的图像块作为 当前图像块,然后返回步骤③_2_4继续执行,直至含隐秘信息的解密域图像中的所有图像 块处理完毕,共得到X ^ x4个组合,其中,m'=m'+l中的为赋值符号;
[0082] ③_2_7、按序遍历X 个组合,将当前遍历到的组合定义为当前组合;并 按序提取第二标记序列中的每个元素,将当前提取的元素定义为当前第二元素;
[0083] ③_2_8、如果当前组合为组合(0,0),则提取出嵌入比特"000" W完成隐秘信息提 取,并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(0,1),则提取出嵌入 比特"OOrW完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当 前组合为组合(1,〇),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前组合修改为 (〇,〇),然后执行步骤③_2_9;如果当前组合为组合(1,1),则提取出嵌入比特"OirW完成 隐秘信息提取,并将当前组合修改为(〇,〇),然后执行步骤③_2_9;如果当前组合为组合(0, 2),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步 骤③_2_9;如果当前组合为组合(2,0),则提取出嵌入比特"lOrW完成隐秘信息提取,并将 当前组合修改为(〇,〇),然后执行步骤③_2_9;如果当前组合为组合(1,2),则提取出嵌入比 特"110" W完成隐秘信息提取,并将当前组合修改为(〇,〇),然后执行步骤③_2_9;如果当前 组合为组合(2,1),则提取出嵌入比特"lirW完成隐秘信息提取,并将当前组合修改为(0, 0),然后执行步骤③_2_9;
[0084] 如果当前组合为组合(0,v),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(〇,v-2),然后执行步骤③_2_9;如果当前组合为组合(l,v),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(〇,v-2),然后执行步骤③_2_9;其中,1< v< 127;
[0085] 如果当前组合为组合(u,0),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(u-2,0),然后执行步骤③_2_9;如果当前组合为组合(u,l),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_2_9;其中,1< u< 127;
[0086] 如果当前组合为组合(0,255),则提取出嵌入比特"000" W完成隐秘信息提取,并 保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(0,254),则提取出嵌入比 特"OOrW完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当 前组合为组合(1,255),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前组合修改 为(〇,255),然后执行步骤③_2_9;如果当前组合为组合(1,254),则提取出嵌入比特"01Γ W完成隐秘信息提取,并将当前组合修改为(〇,255),然后执行步骤③_2_9;如果当前组合 为组合(0,253),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前组合修改为(0, 255),然后执行步骤③_2_9;如果当前组合为组合(2,255),贝順取出嵌入比特"101"^完成 隐秘信息提取,并将当前组合修改为(〇,255),然后执行步骤③_2_9;如果当前组合为组合 (1,253),则提取出嵌入比特"110" W完成隐秘信息提取,并将当前组合修改为(0,255),然 后执行步骤③_2_9;如果当前组合为组合(2,254),则提取出嵌入比特"111"^完成隐秘信 息提取,并将当前组合修改为(〇,255),然后执行步骤③_2_9;
[0087] 如果当前组合为组合(0,v),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(〇,v+2),然后执行步骤③_2_9;如果当前组合为组合(l,v),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(〇,v+2),然后执行步骤③_2_9;其中,128 < v< 254;
[008引如果当前组合为组合(u,255),则提取出嵌入比特"0"W完成隐秘信息提取,并将 当前组合修改为(u-2,255),然后执行步骤③_2_9;如果当前组合为组合(u,254),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(11-2,255),然后执行步骤③_2_9; 其中,1 <u< 127;
[0089]如果当前组合为组合(255,0),则提取出嵌入比特"000" W完成隐秘信息提取,并 保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(255,1),则提取出嵌入比 特"OOrW完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当 前组合为组合(254,0),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前组合修改 为(255,0),然后执行步骤③_2_9;如果当前组合为组合(254,1),则提取出嵌入比特"01Γ W完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合 为组合(255,2),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前组合修改为(255, 0),然后执行步骤③_2_9;如果当前组合为组合(253,0),贝順取出嵌入比特"lOrW完成隐 秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合 (254,2),则提取出嵌入比特"110" W完成隐秘信息提取,并将当前组合修改为(255,0),然 后执行步骤③_2_9;如果当前组合为组合(253,1),则提取出嵌入比特"lirW完成隐秘信 息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;
[0090] 如果当前组合为组合(255,v),则提取出嵌入比特"0"w完成隐秘信息提取,并将 当前组合修改为(255,v-2),然后执行步骤③_2_9;如果当前组合为组合(254,v),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_2_9; 其中,1 < v< 127;
[0091] 如果当前组合为组合(u,0),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(U巧,0),然后执行步骤③_2_9;如果当前组合为组合(u,l),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_2_9;其中,128 <u< 254;
[0092] 如果当前组合为组合(255,255),则提取出嵌入比特"000" W完成隐秘信息提取, 并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(255,254),则提取出嵌 入比特"OOrW完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9; 如果当前组合为组合(254,255),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前 组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(254,254),则提取出嵌 入比特"OirW完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9; 如果当前组合为组合(255,253),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前 组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(253,255),则提取出嵌 入比特"lOrW完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9; 如果当前组合为组合(254,253),则提取出嵌入比特"110" W完成隐秘信息提取,并将当前 组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(253,254),则提取出嵌 入比特"lirW完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;
[0093] 如果当前组合为组合(255,v),则提取出嵌入比特"0"W完成隐秘信息提取,并将 当前组合修改为(255,v+2),然后执行步骤③_2_9;如果当前组合为组合(254,v),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_2_9; 其中,128< v< 254;
[0094] 如果当前组合为组合(u,255),则提取出嵌入比特"0"W完成隐秘信息提取,并将 当前组合修改为(u+2,255),然后执行步骤③_2_9;如果当前组合为组合(u,254),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(U巧,255),然后执行步骤③_2_9; 其中,128<u< 254;
[00M]③ _2_9、如果当前组合为(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或 (255,125)或(130,255)或(255,130),则当当前第二元素的值为加寸,保持当前组合不变,然 后将下一个提取的元素作为当前第二元素,再执行步骤③_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);
[0096] 如果当前组合不为(0,125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、 (130,255)、( 255,130)中的其中一个,则直接执行步骤③_2_10;
[0097] ③_2_10、将下一个遍历到的组合作为当前组合,然后返回步骤③_2_8继续执行, 直至? X f X4个组合全部处理完毕,至此在解密域完成隐秘数据提取的过程,得到已 提取隐秘信息的解密域图像;
[0098] ③_2_11、将已提取隐秘信息的解密域图像划分成X 个互不重叠的尺寸大 小为3X3的图像块;
[0099] ③_2_12、将已提取隐秘信息的解密域图像中当前待处理的第m'个图像块定义为 当前图像块;并按序提取第一标记序列中的每个元素,将当前提取的元素定义为当前第一 元素,其中,m'的初始值为1,1<附'《^ X ;
[0100] ③_2_13、对当前图像块中周围的8个非中屯、像素点的像素值各自与中屯、像素点的 像素值求差值后对256求模;
[0101] ③_2_14、按序查看每个模值,将当前查看的模值定义为当前模值;
[0102] ③_2_15、如果当前模值为126或129,则当当前第一元素的值为0时,保持当前模值 不变,然后将下一个提取的元素作为当前第一元素,再执行步骤③_2_16;当当前第一元素 的值为1时,对当前模值进行修改,然后将下一个提取的元素作为当前第一元素,再执行步 骤③_2_16,其中修改过程为:若当前模值为126,那么将当前模值修改为127;若当前模值为 129,那么将当前模值修改为128;
[0103] 如果当前模值不为126和129,则直接执行步骤③_2_16;
[0104] ③_2_16、令111'=111' + 1,将已提取隐秘信息的解密域图像中下一个待处理的图像块 作为当前图像块,然后返回步骤③_2_13继续执行,直至已提取隐秘信息的解密域图像中的 所有图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损 恢复的解密域图像,其中,m'=m'+l中的为赋值符号。
[0105] 所述的步骤①_2中根据随意设定的一个文本,生成一个作为randomO函数的输入 参数的密钥的具体过程为:
[0106] @_2a、随意设定一个文本,如果文本的长度不能够被8整除,则在文本的末尾补字 符"0",使文本的长度能够被8整除;
[0107] @_2b、将文本中的每个字符转化成ASCII码,然后W8个字节为一组将所有ASCII 码按序分成多个码组,假设共有N个码组,其中,N〉l;
[0108] @_2c、将第1个码组与第2个码组中对应的ASCII码两两求和后对256求模,得到第 1个新码组;然后将第1个新码组与第3个码组中对应的ASCII码两两求和后对256求模,得到 第2个新码组;依次类推,将第N-2个新码组与第N个码组中对应的ASCn码两两求和后对256 求模,得到第N-1个新码组,将第N-1个新码组作为random()函数的输入参数的密钥。
[0109] 与现有技术相比,本发明的优点在于:
[0110] 1)数据隐藏者利用本发明方法可W直接在加密的图像中嵌入隐秘信息,即使数据 隐藏者不知道原始图像内容,可W有效地解决图像内容安全和隐私泄露问题。
[0111] 2)本发明方法在加密域图像可逆数据隐藏部分中,将每个图像块中顺序上依次相 邻的两个非中屯、像素点对应的模值配对组成一个组合,每个图像块对应四个组合,然后W 组合方式嵌入隐秘信息,出现频率大的组合嵌入隐秘信息的比特位数多,从而有效地提高 了数据嵌入容量。
[0112] 3)本发明方法在图像加密部分中采用了特定的加密机制,即先将图像分割成图像 块,然后将每个图像块中的每个像素点的像素值与用于加密的随机序列中的一个元素的值 相加后对256求模实现加密,运种图像加密方式可W使得图像块中的非中屯、像素点的像素 值与中屯、像素点的像素值的差值在加密前和加密后保持一致,不仅确保了能够在加密后的 图像中进行数据隐藏,而且确保了数据提取与图像解密的完全分离,既可W在加密域有效 地提取出隐秘数据,也可W在解密域有效地提取出隐秘数据,实用性更强,同时能够保证在 提取隐秘信息后可无失真地恢复出原始图像。
【附图说明】
[0113] 图1为本发明方法的总体实现框图;
[0114] 图2为图像的右方和下方尺寸大小不为3X3的块也作为图像块的分割示意图。
【具体实施方式】
[0115] W下结合附图实施例对本发明作进一步详细描述。
[0116] 本发明提出的一种完全可分离的加密域图像可逆数据隐藏方法,其总体流程框图 如图1所示,其包括图像加密、加密域图像可逆数据隐藏、隐秘数据提取和原始图像无损恢 复Ξ部分;其中,
[0117] 所述的图像加密部分的处理过程为:
[0118] @_1、设定待加密的图像的宽度和高度对应为W和Η,如果WX Η能够被3 X 3整除,贝U 将待加密的图像划分成个互不重叠的尺寸大小为3X3的图像块;如果WXH不能够被 3X3整除,则将待加密的图像划分成^ X 个互不重叠的尺寸大小为3X3的图像块, 并将待加密的图像的右方和下方尺寸大小不为3X3的块也作为图像块,共有^ X ^个 图像块,如图2所示,其中,符号'1」"为向下取整符号,符号"「1"为向上取整符号。
[0119] @_2、根据随意设定的一个文本,生成一个作为randomO函数的输入参数的密钥; 然后由randomO函数随机产生一个随机序列,随机序列中的每个元素的值在0~255之间, 随机序列的长度远大于待加密的图像中包含的图像块的总个数。在此,randomO函数为一 个现有函数。
[0120] 在此具体实施例中,步骤中根据随意设定的一个文本,生成一个作为random 0函数的输入参数的密钥的具体过程为:
[0121 ] @_2a、随意设定一个文本,如果文本的长度不能够被8整除,则在文本的末尾补字 符"0",使文本的长度能够被8整除。
[0122] @_2b、将文本中的每个字符转化成ASCII码,然后W8个字节为一组将所有ASCII 码按序分成多个码组,假设共有N个码组,其中,N〉l。
[0123] @_2c、将第1个码组与第2个码组中对应的ASCII码两两求和后对256求模,得到第 1个新码组;然后将第1个新码组与第3个码组中对应的ASCII码两两求和后对256求模,得到 第2个新码组;依次类推,将第N-2个新码组与第N个码组中对应的ASCn码两两求和后对256 求模,得到第N-1个新码组,将第N-1个新码组作为random()函数的输入参数的密钥。
[0124] @_3、将待加密的图像中当前待处理的第m个图像块定义为当前图像块,将当前从 随机序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为1,1含m含M,M表 示待加密的图像中包含的图像块的总个数,1含j含JJ表示随机序列的总长度。
[0125] @_4、利用当前元素对当前图像块中的每个像素点进行加密,对当前图像块中的 第i个像素点进行加密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值 相加后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1 < i Ucur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1。
[01%] @_5、令m=m+l,并令j = j+1,将待加密的图像中下一个待处理的图像块作为当前 图像块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步骤①_4继续执行, 直至待加密的图像中的所有图像块处理完毕,完成图像加密的过程,得到加密域图像,其 中,m=m+l和j = j+1中的为赋值符号。
[0127] 所述的加密域图像可逆数据隐藏部分的处理过程为:
[0128] @_1、将加密域图像划分成^ X ^个互不重叠的尺寸大小为3X3的图像块, 并定义一个第一标记序列和一个第二标记序列,其中,符号"L」"为向下取整符号。
[0129] (D_2、将加密域图像中当前待处理的第m'个图像块定义为当前图像块,其中,m'的 初始值为1,1如'違等X寻。
[0130] @_3、对当前图像块中周围的8个非中屯、像素点的像素值各自与中屯、像素点的像 素值求差值后对256求模;然后按序查看每个模值,若当前查看的模值为126,则将该模值 126的标记设为0,并将标记存入第一标记序列中;若当前查看的模值为127,则将该模值127 的标记设为1,并将标记存入第一标记序列中;若当前查看的模值为128,则将该模值128的 标记设为1,并将标记存入第一标记序列中;若当前查看的模值为129,则将该模值129的标 记设为0,并将标记存入第一标记序列中;接着将模值为127对应的非中屯、像素点的像素值 减1,将模值为128对应的非中屯、像素点的像素值加1。
[0131] (D_4、将第i'个非中屯、像素点对应的模值Ml'与第i'+l个非中屯、像素点对应的模值 Mi'+i配对组成一个组合,记为(1^,1^+1),其中,1' = 1,3,5,7。
[0132] 這)_5、令111'=111' + 1,将加密域图像中下一个待处理的图像块作为当前图像块,然后 返回步骤②_3继续执行,直至加密域图像中的所有图像块处理完毕,共得到^ X x4 个组合,其中,m ' =m '+1中的"="为赋值符号。
[0133] 這)_6、按序遍历^ X |^><4个组合,将当前遍历到的组合定义为当前组合。
[0134] 這)_7、如果当前组合为组合(0,125),则将当前组合的标记设为0,并将标记存入第 二标记序列中,再执行步骤@_8;如果当前组合为组合(0,126),则将当前组合的标记设为 1,并将标记存入第二标记序列中,然后将当前组合修改为(0,125),再执行步骤②_8;如果 当前组合为组合(125,0),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执 行步骤(D_8;如果当前组合为组合(126,0),则将当前组合的标记设为1,并将标记存入第二 标记序列中,然后将当前组合修改为(125,0),再执行步骤②_8。
[0135] 如果当前组合为组合(0,130),则将当前组合的标记设为0,并将标记存入第二标 记序列中,再执行步骤@_8;如果当前组合为组合(0,129),则将当前组合的标记设为1,并 将标记存入第二标记序列中,然后将当前组合修改为(0,130),再执行步骤②_8;如果当前 组合为组合(125,255),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行 步骤②_8;如果当前组合为组合(126,255),则将当前组合的标记设为1,并将标记存入第二 标记序列中,然后将当前组合修改为(125,255),再执行步骤②_8。
[0136] 如果当前组合为组合(130,0),则将当前组合的标记设为0,并将标记存入第二标 记序列中,再执行步骤@_8;如果当前组合为组合(129,0),则将当前组合的标记设为1,并 将标记存入第二标记序列中,然后将当前组合修改为(130,0),再执行步骤②_8;如果当前 组合为组合(255,125),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行 步骤②_8;如果当前组合为组合(255,126),则将当前组合的标记设为1,并将标记存入第二 标记序列中,然后将当前组合修改为(255,125),再执行步骤②_8。
[0137] 如果当前组合为组合(130,255),则将当前组合的标记设为0,并将标记存入第二 标记序列中,再执行步骤@_8;如果当前组合为组合(129,255),则将当前组合的标记设为 1,并将标记存入第二标记序列中,然后将当前组合修改为(130,255),再执行步骤②_8;如 果当前组合为组合(255,130),则将当前组合的标记设为0,并将标记存入第二标记序列中, 再执行步骤②_8;如果当前组合为组合(255,129),则将当前组合的标记设为1,并将标记存 入第二标记序列中,然后将当前组合修改为(255,130),再执行步骤②_8。
[0138] 這)_8、如果当前组合为组合(0,0),则从隐秘信息中提取出第k位至第k巧位比特信 息作为当前嵌入信息,当当前嵌入信息为"000"时,保持当前组合不变,完成隐秘信息嵌入; 当当前嵌入信息为"00Γ时,将当前组合修改为(〇,1),完成隐秘信息嵌入;当当前嵌入信息 为"010"时,将当前组合修改为(1,〇),完成隐秘信息嵌入;当前嵌入信息为"01Γ时,将当前 组合修改为(1,1),完成隐秘信息嵌入;当前嵌入信息为"100"时,将当前组合修改为(〇,2), 完成隐秘信息嵌入;当前嵌入信息为"10Γ时,将当前组合修改为(2,0),完成隐秘信息嵌 入;当前嵌入信息为"110"时,将当前组合修改为(1,2),完成隐秘信息嵌入;当前嵌入信息 为"11Γ时,将当前组合修改为(2,1),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9; 其中,k的初始值化,k=k+3中的为赋值符号。
[0139] 如果当前组合为组合(0,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入 信息,当当前嵌入信息为"0"时,将当前组合修改为(〇,v+2),完成隐秘信息嵌入;当当前嵌 入信息为"Γ时,将当前组合修改为(l,v+2),完成隐秘信息嵌入;然后令k = k+l;再执行步 骤②_9;其中,1含V。27,k的初始值化,k = k+1中的"="为赋值符号。
[0140] 如果当前组合为组合(u,0),则从隐秘信息中提取出第k位比特信息作为当前嵌入 信息,当当前嵌入信息为"0"时,将当前组合修改为(u+2,0),完成隐秘信息嵌入;当当前嵌 入信息为"Γ时,将当前组合修改为(u+2,l),完成隐秘信息嵌入;然后令k = k+l;再执行步 骤②_9;其中,1 ^。27,k的初始值化,k = k+1中的为赋值符号。
[0141] 表1给出了当前组合为组合(0,0)或为组合(0,v)(l<v<127)或为组合(u,0)(l< u< 127)时,隐秘信息的嵌入方式。
[0142] 表1当前组合为组合(0,0)或为组合(0,v)或为组合(u,0)时隐秘信息的嵌入方式
[0143]
[0144] 如果当前组合为组合(0,255),则从隐秘信息中提取出第k位至第k+2位比特信息 作为当前嵌入信息,当当前嵌入信息为"000"时,保持当前组合不变,完成隐秘信息嵌入;当 当前嵌入信息为"00Γ时,将当前组合修改为(〇,254),完成隐秘信息嵌入;当当前嵌入信息 为"010"时,将当前组合修改为(1,255),完成隐秘信息嵌入;当前嵌入信息为"01Γ时,将当 前组合修改为(1,254),完成隐秘信息嵌入;当前嵌入信息为"100"时,将当前组合修改为 (0,253),完成隐秘信息嵌入;当前嵌入信息为"10Γ时,将当前组合修改为(2,255),完成隐 秘信息嵌入;当前嵌入信息为"110"时,将当前组合修改为(1,253),完成隐秘信息嵌入;当 前嵌入信息为"11Γ时,将当前组合修改为(2,254),完成隐秘信息嵌入;然后令k = k+3;再 执行步骤②_9;其中,k的初始值为l,k=k+3中的为赋值符号。
[0145] 如果当前组合为组合(0,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入 信息,当当前嵌入信息为"0"时,将当前组合修改为(〇,v-2),完成隐秘信息嵌入;当当前嵌 入信息为"Γ时,将当前组合修改为(l,v-2),完成隐秘信息嵌入;然后令k = k+l;再执行步 骤②_9;其中,128含V。54,k的初始值为1,k = k+l中的为赋值符号。
[0146] 如果当前组合为组合(u,255),则从隐秘信息中提取出第k位比特信息作为当前嵌 入信息,当当前嵌入信息为"0"时,将当前组合修改为(u+2,255),完成隐秘信息嵌入;当当 前嵌入信息为"Γ时,将当前组合修改为(u+2,254),完成隐秘信息嵌入;然后令k = k+l;再 执行步骤②_9;其中,1 ^。27,k的初始值化,k = k+l中的为赋值符号。
[0147] 如果当前组合为组合(255,0),则从隐秘信息中提取出第k位至第k+2位比特信息 作为当前嵌入信息,当当前嵌入信息为"000"时,保持当前组合不变,完成隐秘信息嵌入;当 当前嵌入信息为"00Γ时,将当前组合修改为(255,1),完成隐秘信息嵌入;当当前嵌入信息 为"010"时,将当前组合修改为(254,0),完成隐秘信息嵌入;当前嵌入信息为"01Γ时,将当 前组合修改为(254,1),完成隐秘信息嵌入;当前嵌入信息为"100"时,将当前组合修改为 (255,2),完成隐秘信息嵌入;当前嵌入信息为"101"时,将当前组合修改为(253,0),完成隐 秘信息嵌入;当前嵌入信息为"110"时,将当前组合修改为(254,2),完成隐秘信息嵌入;当 前嵌入信息为"11Γ时,将当前组合修改为(253,1),完成隐秘信息嵌入;然后令k = k+3;再 执行步骤②_9;其中,k的初始值为l,k = k+3中的为赋值符号。
[0148] 如果当前组合为组合(255,v),则从隐秘信息中提取出第k位比特信息作为当前嵌 入信息,当当前嵌入信息为"0"时,将当前组合修改为(255,v+2),完成隐秘信息嵌入;当当 前嵌入信息为"Γ时,将当前组合修改为(254,v+2),完成隐秘信息嵌入;然后令k = k+l;再 执行步骤②_9;其中,1 < V < 127,k的初始值为1,k = k+l中的为赋值符号。
[0149] 如果当前组合为组合(u,0),则从隐秘信息中提取出第k位比特信息作为当前嵌入 信息,当当前嵌入信息为"0"时,将当前组合修改为(u-2,0),完成隐秘信息嵌入;当当前嵌 入信息为"Γ时,将当前组合修改为(u-2,l),完成隐秘信息嵌入;然后令k = k+l;再执行步 骤②_9;其中,128 ^。54,k的初始值为1,k = k+l中的为赋值符号。
[0150] 如果当前组合为组合(255,255),则从隐秘信息中提取出第k位至第k+2位比特信 息作为当前嵌入信息,当当前嵌入信息为"000"时,保持当前组合不变,完成隐秘信息嵌入; 当当前嵌入信息为"00Γ时,将当前组合修改为(255,254),完成隐秘信息嵌入;当当前嵌入 信息为"010"时,将当前组合修改为(254,255),完成隐秘信息嵌入;当前嵌入信息为"01Γ 时,将当前组合修改为(254,254),完成隐秘信息嵌入;当前嵌入信息为"100"时,将当前组 合修改为(255,253),完成隐秘信息嵌入;当前嵌入信息为"10Γ时,将当前组合修改为 (253,255),完成隐秘信息嵌入;当前嵌入信息为"110"时,将当前组合修改为(254,253),完 成隐秘信息嵌入;当前嵌入信息为"11Γ时,将当前组合修改为(253,254),完成隐秘信息嵌 入;然后令k = k+3;再执行步骤②_9;其中,k的初始值为l,k = k+3中的为赋值符号。
[0151] 如果当前组合为组合(255,v),则从隐秘信息中提取出第k位比特信息作为当前嵌 入信息,当当前嵌入信息为"0"时,将当前组合修改为(255,v-2),完成隐秘信息嵌入;当当 前嵌入信息为"Γ时,将当前组合修改为(254,v-2),完成隐秘信息嵌入;然后令k = k+l;再 执行步骤②_9;其中,128 < V < 254,k的初始值为1,k = k+l中的"="为赋值符号。
[0152] 如果当前组合为组合(u,255),则从隐秘信息中提取出第k位比特信息作为当前嵌 入信息,当当前嵌入信息为"0"时,将当前组合修改为(u-2,255),完成隐秘信息嵌入;当当 前嵌入信息为"Γ时,将当前组合修改为(u-2,254),完成隐秘信息嵌入;然后令k = k+l;再 执行步骤②_9;其中,128 < U < 254,k的初始值为1,k = k+l中的为赋值符号。
[0153] 這)_9、对当前组合进行移位:若当前组合为(u,v)且1 <u< 127、1 < v< 127,则将当 前组合(u,v)修改为(u+l,v+l);若当前组合为(u,v)且1含11。27、128< v^54,则将当前 组合(u,v)修改为(U+1,v-l);若当前组合为(U,V)且128 < U < 254、1 < V < 127,则将当前组 合(u,v)修改为(U-1,v+l);若当前组合为(u,v)且128 < U < 254、128 < V < 254,则将当前组 合(u,v)修改为(U-1,V-1)。
[0154] @_10、将下一个遍历到的组合作为当前组合,然后返回步骤②_7继续执行,直至 ^ X x4个组合全部处理完毕,完成加密域图像可逆数据隐藏的过程,得到含隐秘信 息的加密域图像,并将随机序列、第一标记序列和第二标记序列发送到隐秘数据提取端。
[0155] 所述的隐秘数据提取和原始图像无损恢复部分中的隐秘数据提取在加密域完成 或在解密域完成,在加密域完成隐秘数据提取和原始图像无损恢复的处理过程为:
[0156] ③_1_1、将含隐秘信息的加密域图像划分成^ X 个互不重叠的尺寸大小为 3 X 3的图像块,其中,符号W L」"为向下取整符号。
[0157] ③_1_2、将含隐秘信息的加密域图像中当前待处理的第m'个图像块定义为当前图 像块,其中,111'的初始值为1,1空说'< y。
[015引③_1_3、对当前图像块中周围的8个非中屯、像素点的像素值各自与中屯、像素点的 像素值求差值后对256求模。
[0159] ③_1_4、将第i'个非中屯、像素点对应的模值Ml'与第i' + l个非中屯、像素点对应的模 值Mi'+i配对组成一个组合,记为(1^,1川),其中,1' = 1,3,5,7。
[0160] ③_1_5、令111'=111'+1,将含隐秘信息的加密域图像中下一个待处理的图像块作为 当前图像块,然后返回步骤③_1_3继续执行,直至含隐秘信息的加密域图像中的所有图像 块处理完毕,共得到^ X x4个组合,其中,m'=m'+l中的为赋值符号。
[0161] ③_1_6、按序遍历X ^ x4个组合,将当前遍历到的组合定义为当前组合;并 按序提取第二标记序列中的每个元素,将当前提取的元素定义为当前第二元素。
[0162] ③_1_7、如果当前组合为组合(0,0),则提取出嵌入比特"000" W完成隐秘信息提 取,并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(0,1),则提取出嵌入 比特"OOrW完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_1_8;如果当 前组合为组合(1,〇),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前组合修改为 (〇,〇),然后执行步骤③_1_8;如果当前组合为组合(1,1),则提取出嵌入比特"OirW完成 隐秘信息提取,并将当前组合修改为(〇,〇),然后执行步骤③_1_8;如果当前组合为组合(0, 2),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步 骤③_1_8;如果当前组合为组合(2,0),则提取出嵌入比特"lOrW完成隐秘信息提取,并将 当前组合修改为(〇,〇),然后执行步骤③_1_8;如果当前组合为组合(1,2),则提取出嵌入比 特"110" W完成隐秘信息提取,并将当前组合修改为(〇,〇),然后执行步骤③_1_8;如果当前 组合为组合(2,1),则提取出嵌入比特"lirW完成隐秘信息提取,并将当前组合修改为(0, 0),然后执行步骤③_1_8。
[0163] 如果当前组合为组合(0,v),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(〇,v-2),然后执行步骤③_1_8;如果当前组合为组合(l,v),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(〇,v-2),然后执行步骤③_1_8;其中,1< v< 127〇
[0164] 如果当前组合为组合(u,0),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(u-2,0),然后执行步骤③_1_8;如果当前组合为组合(u,l),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_1_8;其中,1< u< 127〇
[0165] 如果当前组合为组合(0,255),则提取出嵌入比特"000" W完成隐秘信息提取,并 保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(0,254),则提取出嵌入比 特"OOrW完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_1_8;如果当 前组合为组合(1,255),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前组合修改 为(〇,255),然后执行步骤③_1_8;如果当前组合为组合(1,254),则提取出嵌入比特"01Γ W完成隐秘信息提取,并将当前组合修改为(〇,255),然后执行步骤③_1_8;如果当前组合 为组合(0,253),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前组合修改为(0, 255),然后执行步骤③_1_8;如果当前组合为组合(2,255),则提取出嵌入比特"101"^完成 隐秘信息提取,并将当前组合修改为(〇,255),然后执行步骤③_1_8;如果当前组合为组合 (1,253),则提取出嵌入比特"110" W完成隐秘信息提取,并将当前组合修改为(0,255),然 后执行步骤③_1_8;如果当前组合为组合(2,254),则提取出嵌入比特"111"^完成隐秘信 息提取,并将当前组合修改为(〇,255),然后执行步骤③_1_8。
[0166] 如果当前组合为组合(0,v),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(〇,v+2),然后执行步骤③_1_8;如果当前组合为组合(l,v),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(〇,v+2),然后执行步骤③_1_8;其中,128 < v< 254。
[0167] 如果当前组合为组合(u,255),则提取出嵌入比特"0"W完成隐秘信息提取,并将 当前组合修改为(u-2,255),然后执行步骤③_1_8;如果当前组合为组合(u,254),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(11-2,255),然后执行步骤③_1_8; 其中,1 <u< 127。
[0168] 如果当前组合为组合(255,0),则提取出嵌入比特"000" W完成隐秘信息提取,并 保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(255,1),则提取出嵌入比 特"OOrW完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当 前组合为组合(254,0),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前组合修改 为(255,0),然后执行步骤③_1_8;如果当前组合为组合(254,1),则提取出嵌入比特"ΟΙΓ W完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合 为组合(255,2),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前组合修改为(255, 0),然后执行步骤③_1_8;如果当前组合为组合(253,0),则提取出嵌入比特"lOrW完成隐 秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8;如果当前组合为组合 (254,2),则提取出嵌入比特"110" W完成隐秘信息提取,并将当前组合修改为(255,0),然 后执行步骤③_1_8;如果当前组合为组合(253,1),则提取出嵌入比特"lirW完成隐秘信 息提取,并将当前组合修改为(255,0),然后执行步骤③_1_8。
[0169] 如果当前组合为组合(255,v),则提取出嵌入比特"0"W完成隐秘信息提取,并将 当前组合修改为(255,v-2),然后执行步骤③_1_8;如果当前组合为组合(254,v),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_1_8; 其中,1 < v< 127。
[0170] 如果当前组合为组合(u,0),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(U巧,0),然后执行步骤③_1_8;如果当前组合为组合(u,l),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_1_8;其中,128 <u< 254。
[0171] 如果当前组合为组合(255,255),则提取出嵌入比特"000" W完成隐秘信息提取, 并保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(255,254),则提取出嵌 入比特"OOrW完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8; 如果当前组合为组合(254,255),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前 组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(254,254),则提取出嵌 入比特"OirW完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8; 如果当前组合为组合(255,253),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前 组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(253,255),则提取出嵌 入比特"lOrW完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8; 如果当前组合为组合(254,253),则提取出嵌入比特"110" W完成隐秘信息提取,并将当前 组合修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(253,254),则提取出嵌 入比特"11Γ W完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8。
[0172] 如果当前组合为组合(255,v),则提取出嵌入比特"0"W完成隐秘信息提取,并将 当前组合修改为(255,v+2),然后执行步骤③_1_8;如果当前组合为组合(254,v),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_1_8; 其中,128< v< 254。
[0173] 如果当前组合为组合(u,255),则提取出嵌入比特"0"W完成隐秘信息提取,并将 当前组合修改为(u+2,255),然后执行步骤③_1_8;如果当前组合为组合(u,254),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(11+2,255),然后执行步骤③_1_8; 其中,128<u< 254。
[0174] ③ _1_8、如果当前组合为(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或 (255,125)或(130,255)或(255,130),则当当前第二元素的值为加寸,保持当前组合不变,然 后将下一个提取的元素作为当前第二元素,再执行步骤③_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)。
[01 巧]如果当前组合不为(0,125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、 (130,255)、(255,130)中的其中一个,则直接执行步骤③_1_9。
[0176] ③_1_9、将下一个遍历到的组合作为当前组合,然后返回步骤③_1_7继续执行,直 至X ^ x4个组合全部处理完毕,至此在加密域完成隐秘数据提取的过程,得到已提 取隐秘信息的加密域图像。
[0177] ③_1_10、将已提取隐秘信息的加密域图像划分成^ X 个互不重叠的尺寸大 小为3X3的图像块。
[0178] ③将已提取隐秘信息的加密域图像中当前待处理的第m'个图像块定义为 当前图像块;并按序提取第一标记序列中的每个元素,将当前提取的元素定义为当前第一 元素,其中,111'的初始值为1,1聋於< y。
[0179] ③_1_12、对当前图像块中周围的8个非中屯、像素点的像素值各自与中屯、像素点的 像素值求差值后对256求模。
[0180] ③_1_13、按序查看每个模值,将当前查看的模值定义为当前模值。
[0181] ③_1_14、如果当前模值为126或129,则当当前第一元素的值为0时,保持当前模值 不变,然后将下一个提取的元素作为当前第一元素,再执行步骤③当当前第一元素 的值为1时,对当前模值进行修改,然后将下一个提取的元素作为当前第一元素,再执行步 骤③其中修改过程为:若当前模值为126,那么将当前模值修改为127;若当前模值为 129,那么将当前模值修改为128。
[0182] 如果当前模值不为126和129,则直接执行步骤③_1_15。
[0183] ③_1_15、令111'=111' + 1,将已提取隐秘信息的加密域图像中下一个待处理的图像块 作为当前图像块,然后返回步骤③_1_12继续执行,直至已提取隐秘信息的加密域图像中的 所有图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损 恢复的加密域图像,其中,m'=m'+l中的为赋值符号。
[0184] ③_1_16、对已提取隐秘信息并已无损恢复的加密域图像进行解密,具体过程为:
[0185] ③_l_16a、将已提取隐秘信息并已无损恢复的加密域图像划分成个互不重 叠的尺寸大小为3X3的图像块;如果WXH不能够被3X3整除,则将已提取隐秘信息并已无 损恢复的加密域图像划分成^ X 个互不重叠的尺寸大小为3X3的图像块,并将已提 取隐秘信息并已无损恢复的加密域图像的右方和下方尺寸大小不为3X3的块也作为图像 块,共有^ X f个图像块,如图2所示。
[0186] ③_1_1化、将已提取隐秘信息并已无损恢复的加密域图像中当前待处理的第m个 图像块定义为当前图像块,将当前从随机序列中提取出的第j个元素定义为当前元素,其 中,m和j的初始值均为1,1含m含M,M表示已提取隐秘信息并已无损恢复的加密域图像中包 含的图像块的总个数,1 < j < JJ表示随机序列的总长度。
[0187] ③_l_16c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块 中的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素 的值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中, 1 y Ucur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1。
[0188] ③_l_16d、令m=m+l,并令j = j+l,将已提取隐秘信息并已无损恢复的加密域图像 中下一个待处理的图像块作为当前图像块,将下一个从随机序列中提取出的元素作为当前 元素,然后返回步骤③_l_16c继续执行,直至已提取隐秘信息并已无损恢复的加密域图像 中的所有图像块处理完毕,完成图像解密的过程,得到解密域图像,其中,m = m+l和j = j+l 中的为赋值符号。
[0189] 在解密域完成隐秘数据提取和原始图像无损恢复的处理过程为:
[0190] ③_2_1、对含隐秘信息的加密域图像进行解密,具体过程为:
[0191] ③_2_la、将含隐秘信息的加密域图像划分成罩个互不重叠的尺寸大小为3 X 3 3 3的图像块;如果WXH不能够被3X3整除,则将含隐秘信息的加密域图像划分成^ X 个互不重叠的尺寸大小为3X3的图像块,并将含隐秘信息的加密域图像的右方和下方尺寸 大小不为3X3的块也作为图像块,共有X 个图像块,如图2所示。
[0192] ③_2_化、将含隐秘信息的加密域图像中当前待处理的第m个图像块定义为当前图 像块,将当前从随机序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为 1,1 <m<M,M表示含隐秘信息的加密域图像中包含的图像块的总个数,1 < j < JJ表示随机 序列的总长度。
[0193] ③_2_lc、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中 的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的 值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1 y Ucur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1。
[0194] ③_2_ld、令m = m+l,并令j = j+l,将含隐秘信息的加密域图像中下一个待处理的 图像块作为当前图像块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步 骤③_2_lc继续执行,直至含隐秘信息的加密域图像中的所有图像块处理完毕,完成图像解 密的过程,得到含隐秘信息的解密域图像,其中,m=m+l和j = j+l中的为赋值符号。
[01M]③_2_2、将含隐秘信息的解密域图像划分成^ X: 个互不重叠的尺寸大小为 3X3的图像块,其中,符号"L」"为向下取整符号。
[0196] ③_2_3、将含隐秘信息的解密域图像中当前待处理的第m'个图像块定义为当前图 像块,其中,m'的初始值为^ X 。
[0197] ③_2_4、对当前图像块中周围的8个非中屯、像素点的像素值各自与中屯、像素点的 像素值求差值后对256求模。
[0198] ③_2_5、将第i'个非中屯、像素点对应的模值Ml'与第i' + l个非中屯、像素点对应的模 值Mi'+i配对组成一个组合,记为(1^,1川),其中,1' = 1,3,5,7。
[0199] ③_2_6、令111'=111'+1,将含隐秘信息的解密域图像中下一个待处理的图像块作为 当前图像块,然后返回步骤③_2_4继续执行,直至含隐秘信息的解密域图像中的所有图像 块处理完毕,共得到^ X X4个组合,其中,m'=m'+l中的为赋值符号。 W Η
[0200] ③_2_7、按序遍历y X y x4个组合,将当前遍历到的组合定义为当前组合;并 按序提取第二标记序列中的每个元素,将当前提取的元素定义为当前第二元素。
[0201] ③_2_8、如果当前组合为组合(0,0),则提取出嵌入比特"000" W完成隐秘信息提 取,并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(0,1),则提取出嵌入 比特"OOrW完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步骤③_2_9;如果当 前组合为组合(1,〇),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前组合修改为 (〇,〇),然后执行步骤③_2_9;如果当前组合为组合(1,1),则提取出嵌入比特"OirW完成 隐秘信息提取,并将当前组合修改为(〇,〇),然后执行步骤③_2_9;如果当前组合为组合(0, 2),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前组合修改为(0,0),然后执行步 骤③_2_9;如果当前组合为组合(2,0),则提取出嵌入比特"lOrW完成隐秘信息提取,并将 当前组合修改为(〇,〇),然后执行步骤③_2_9;如果当前组合为组合(1,2),则提取出嵌入比 特"110" W完成隐秘信息提取,并将当前组合修改为(〇,〇),然后执行步骤③_2_9;如果当前 组合为组合(2,1),则提取出嵌入比特"lirW完成隐秘信息提取,并将当前组合修改为(0, 0),然后执行步骤③_2_9。
[0202] 如果当前组合为组合(0,v),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(〇,v-2),然后执行步骤③_2_9;如果当前组合为组合(l,v),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(〇,v-2),然后执行步骤③_2_9;其中,1< v< 127〇
[0203] 如果当前组合为组合(u,0),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(u-2,0),然后执行步骤③_2_9;如果当前组合为组合(u,l),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_2_9;其中,1<
[0204] 如果当前组合为组合(0,255),则提取出嵌入比特"000" W完成隐秘信息提取,并 保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(0,254),则提取出嵌入比 特"OOrW完成隐秘信息提取,并将当前组合修改为(0,255),然后执行步骤③_2_9;如果当 前组合为组合(1,255),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前组合修改 为(〇,255),然后执行步骤③_2_9;如果当前组合为组合(1,254),则提取出嵌入比特"01Γ W完成隐秘信息提取,并将当前组合修改为(〇,255),然后执行步骤③_2_9;如果当前组合 为组合(0,253),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前组合修改为(0, 255),然后执行步骤③_2_9;如果当前组合为组合(2,255),贝順取出嵌入比特"101"^完成 隐秘信息提取,并将当前组合修改为(〇,255),然后执行步骤③_2_9;如果当前组合为组合 (1,253),则提取出嵌入比特"110" W完成隐秘信息提取,并将当前组合修改为(0,255),然 后执行步骤③_2_9;如果当前组合为组合(2,254),则提取出嵌入比特"111"^完成隐秘信 息提取,并将当前组合修改为(〇,255),然后执行步骤③_2_9。
[0205] 如果当前组合为组合(0,v),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(〇,v+2),然后执行步骤③_2_9;如果当前组合为组合(l,v),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(〇,v+2),然后执行步骤③_2_9;其中,128 < v< 254。
[0206] 如果当前组合为组合(u,255),则提取出嵌入比特"0"W完成隐秘信息提取,并将 当前组合修改为(u-2,255),然后执行步骤③_2_9;如果当前组合为组合(u,254),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(11-2,255),然后执行步骤③_2_9; 其中,1 <u< 127。
[0207] 如果当前组合为组合(255,0),则提取出嵌入比特"000" W完成隐秘信息提取,并 保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(255,1),则提取出嵌入比 特"OOrW完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当 前组合为组合(254,0),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前组合修改 为(255,0),然后执行步骤③_2_9;如果当前组合为组合(254,1),则提取出嵌入比特"01Γ W完成隐秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合 为组合(255,2),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前组合修改为(255, 0),然后执行步骤③_2_9;如果当前组合为组合(253,0),贝順取出嵌入比特"lOrW完成隐 秘信息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9;如果当前组合为组合 (254,2),则提取出嵌入比特"110" W完成隐秘信息提取,并将当前组合修改为(255,0),然 后执行步骤③_2_9;如果当前组合为组合(253,1),则提取出嵌入比特"lirW完成隐秘信 息提取,并将当前组合修改为(255,0),然后执行步骤③_2_9。
[0208] 如果当前组合为组合(255,v),则提取出嵌入比特"0"W完成隐秘信息提取,并将 当前组合修改为(255,v-2),然后执行步骤③_2_9;如果当前组合为组合(254,v),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_2_9; 其中,1 < v< 127。
[0209] 如果当前组合为组合(u,0),则提取出嵌入比特"0"W完成隐秘信息提取,并将当 前组合修改为(U巧,0),然后执行步骤③_2_9;如果当前组合为组合(u,l),则提取出嵌入比 特"rW完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_2_9;其中,128 <u< 254。
[0210] 如果当前组合为组合(255,255),则提取出嵌入比特"000" W完成隐秘信息提取, 并保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(255,254),则提取出嵌 入比特"oorw完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9; 如果当前组合为组合(254,255),则提取出嵌入比特"010" W完成隐秘信息提取,并将当前 组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(254,254),则提取出嵌 入比特"OirW完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9; 如果当前组合为组合(255,253),则提取出嵌入比特"100" W完成隐秘信息提取,并将当前 组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(253,255),则提取出嵌 入比特"lOrW完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9; 如果当前组合为组合(254,253),则提取出嵌入比特"110" W完成隐秘信息提取,并将当前 组合修改为(255,255),然后执行步骤③_2_9;如果当前组合为组合(253,254),则提取出嵌 入比特"11Γ W完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9。 [021。 如果当前组合为组合(255,v),贝順取出嵌入比特"0"W完成隐秘信息提取,并将 当前组合修改为(255,v+2),然后执行步骤③_2_9;如果当前组合为组合(254,v),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_2_9; 其中,128< v< 254。
[0212] 如果当前组合为组合(u,255),贝順取出嵌入比特"0"W完成隐秘信息提取,并将 当前组合修改为(u+2,255),然后执行步骤③_2_9;如果当前组合为组合(u,254),则提取出 嵌入比特"rW完成隐秘信息提取,并将当前组合修改为(U巧,255),然后执行步骤③_2_9; 其中,128<u< 254。
[0213] ③ _2_9、如果当前组合为(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或 (255,125)或(130,255)或(255,130),则当当前第二元素的值为加寸,保持当前组合不变,然 后将下一个提取的元素作为当前第二元素,再执行步骤③_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)。
[0214] 如果当前组合不为(0,125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、 (130,255)、( 255,130)中的其中一个,则直接执行步骤③_2_10。
[0215] ③_2_10、将下一个遍历到的组合作为当前组合,然后返回步骤③_2_8继续执行, 直至"f X f x4个组合全部处理完毕,至此在解密域完成隐秘数据提取的过程,得到已 提取隐秘信息的解密域图像。
[0216] ③_2_11、将已提取隐秘信息的解密域图像划分成^ X 个互不重叠的尺寸大 小为3X3的图像块。
[0217] ③_2_12、将已提取隐秘信息的解密域图像中当前待处理的第m'个图像块定义为 当前图像块;并按序提取第一标记序列中的每个元素,将当前提取的元素定义为当前第一 元素,其中,m'的初始值为^ X ^。 >3 >3
[0218] ③_2_13、对当前图像块中周围的8个非中屯、像素点的像素值各自与中屯、像素点的 像素值求差值后对256求模。;
[0219] ③_2_14、按序查看每个模值,将当前查看的模值定义为当前模值。
[0220] ③_2_15、如果当前模值为126或129,则当当前第一元素的值为0时,保持当前模值 不变,然后将下一个提取的元素作为当前第一元素,再执行步骤③_2_16;当当前第一元素 的值为1时,对当前模值进行修改,然后将下一个提取的元素作为当前第一元素,再执行步 骤③_2_16,其中修改过程为:若当前模值为126,那么将当前模值修改为127;若当前模值为 129,那么将当前模值修改为128。
[0221] 如果当前模值不为126和129,则直接执行步骤③_2_16。
[0222] ③_2_16、令111'=111' + 1,将已提取隐秘信息的解密域图像中下一个待处理的图像块 作为当前图像块,然后返回步骤③_2_13继续执行,直至已提取隐秘信息的解密域图像中的 所有图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损 恢复的解密域图像,其中,m'=m'+l中的为赋值符号。
【主权项】
1. 一种完全可分离的加密域图像可逆数据隐藏方法,其特征在于包括图像加密、加密 域图像可逆数据隐藏、隐秘数据提取和原始图像无损恢复三部分;其中, 所述的图像加密部分的处理过程为: ① 」、设定待加密的图像的宽度和高度对应为W和Η,如果W X Η能够被3 X 3整除,则将待 加密的图像划分成^X ^个互不重叠的尺寸大小为3 X 3的图像块;如果WX Η不能够被3 X 3 整除,则将待加密的图像划分成f X f个互不重叠的尺寸大小为3X3的图像块,并将 待加密的图像的右方和下方尺寸大小不为3X3的块也作为图像块,共有f f个图像 块,其中,符号'1」"为向下取整符号,符号"「1"为向上取整符号; Φ_2、根据随意设定的一个文本,生成一个作为random()函数的输入参数的密钥;然后 由random()函数随机产生一个随机序列,随机序列中的每个元素的值在0~255之间,随机 序列的长度远大于待加密的图像中包含的图像块的总个数; Φ_3、将待加密的图像中当前待处理的第m个图像块定义为当前图像块,将当前从随机 序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为1,Km <M,M表示待 加密的图像中包含的图像块的总个数,1 < j <J,J表示随机序列的总长度; Φ_4、利用当前元素对当前图像块中的每个像素点进行加密,对当前图像块中的第i个 像素点进行加密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相加 后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1 < i < I cur,I cur表示当前图像块中包含的像素点的总个数,I cur的值为9或6或4或3或2或1; φ_5、令m=m+l,并令j = j+Ι,将待加密的图像中下一个待处理的图像块作为当前图像 块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步骤①_4继续执行,直至 待加密的图像中的所有图像块处理完毕,完成图像加密的过程,得到加密域图像,其中,m = m+1和j = j+1中的"="为赋值符号; 所述的加密域图像可逆数据隐藏部分的处理过程为: ② 」、将加密域图像划分成f X f个互不重叠的尺寸大小为3X3的图像块,并定义 一个第一标记序列和一个第二标记序列,其中,符号" 1_」"为向下取整符号; ?_2、将加密域图像中当前待处理的第m'个图像块定义为当前图像块,其中,m'的初始 …r , W Η 值为1,1玄w $ j x 了; _ i」L 3 _ ?_3、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素值 求差值后对256求模;然后按序查看每个模值,若当前查看的模值为126,则将该模值126的 标记设为0,并将标记存入第一标记序列中;若当前查看的模值为127,则将该模值127的标 记设为1,并将标记存入第一标记序列中;若当前查看的模值为128,则将该模值128的标记 设为1,并将标记存入第一标记序列中;若当前查看的模值为129,则将该模值129的标记设 为〇,并将标记存入第一标记序列中;接着将模值为127对应的非中心像素点的像素值减1, 将模值为128对应的非中心像素点的像素值加1; @_4、将第i '个非中心像素点对应的模值Mi,与第i ' +1个非中心像素点对应的模值Mi,+1 配对组成一个组合,记为(1^,1^,+1),其中,1'=1,3,5,7; ②_5、令"1'="1'+1,将加密域图像中下一个待处理的图像块作为当前图像块,然后返回 步骤②_3继续执行,直至加密域图像中的所有图像块处理完毕,共得到f X f x4个组 合,其中,m'=m'+l中的"="为赋值符号; (D_6、按序遍历f X f x4个组合,将当前遍历到的组合定义为当前组合; ?_7、如果当前组合为组合(0,125),则将当前组合的标记设为0,并将标记存入第二标 记序列中,再执行步骤?_8;如果当前组合为组合(0,126),则将当前组合的标记设为1,并 将标记存入第二标记序列中,然后将当前组合修改为(0,125),再执行步骤②_8;如果当前 组合为组合(125,0),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步 骤②_8;如果当前组合为组合(126,0),则将当前组合的标记设为1,并将标记存入第二标记 序列中,然后将当前组合修改为(125,0),再执行步骤②_8; 如果当前组合为组合(0,130),则将当前组合的标记设为0,并将标记存入第二标记序 列中,再执行步骤(D_8;如果当前组合为组合(0,129),则将当前组合的标记设为1,并将标 记存入第二标记序列中,然后将当前组合修改为(0,130),再执行步骤②_8;如果当前组合 为组合(125,255),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤 (D_8;如果当前组合为组合(126,255),则将当前组合的标记设为1,并将标记存入第二标记 序列中,然后将当前组合修改为(125,255),再执行步骤②_8; 如果当前组合为组合(130,0),则将当前组合的标记设为0,并将标记存入第二标记序 列中,再执行步骤(D_8;如果当前组合为组合(129,0),则将当前组合的标记设为1,并将标 记存入第二标记序列中,然后将当前组合修改为(130,0),再执行步骤②_8;如果当前组合 为组合(255,125),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执行步骤 (D_8;如果当前组合为组合(255,126),则将当前组合的标记设为1,并将标记存入第二标记 序列中,然后将当前组合修改为(255,125),再执行步骤②_8; 如果当前组合为组合(130,255),则将当前组合的标记设为0,并将标记存入第二标记 序列中,再执行步骤?_8;如果当前组合为组合(129,255),则将当前组合的标记设为1,并 将标记存入第二标记序列中,然后将当前组合修改为(130,255),再执行步骤②_8;如果当 前组合为组合(255,130),则将当前组合的标记设为0,并将标记存入第二标记序列中,再执 行步骤(D_8;如果当前组合为组合(255,129),则将当前组合的标记设为1,并将标记存入第 二标记序列中,然后将当前组合修改为(255,130),再执行步骤②_8; ?_8、如果当前组合为组合(0,0),则从隐秘信息中提取出第k位至第k+2位比特信息作 为当前嵌入信息,当当前嵌入信息为"〇〇〇"时,保持当前组合不变,完成隐秘信息嵌入;当当 前嵌入信息为"001"时,将当前组合修改为(〇,1),完成隐秘信息嵌入;当当前嵌入信息为 "010"时,将当前组合修改为(1,0),完成隐秘信息嵌入;当前嵌入信息为"011"时,将当前组 合修改为(1,1),完成隐秘信息嵌入;当前嵌入信息为"100"时,将当前组合修改为(〇,2),完 成隐秘信息嵌入;当前嵌入信息为"101"时,将当前组合修改为(2,0),完成隐秘信息嵌入; 当前嵌入信息为"110"时,将当前组合修改为(1,2),完成隐秘信息嵌入;当前嵌入信息为 "111"时,将当前组合修改为(2,1),完成隐秘信息嵌入;然后令k=k+3;再执行步骤②_9;其 中,k的初始值为l,k=k+3中的"="为赋值符号; 如果当前组合为组合(〇,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入信 息,当当前嵌入信息为"〇"时,将当前组合修改为(〇,v+2),完成隐秘信息嵌入;当当前嵌入 信息为"Γ时,将当前组合修改为(l,v+2),完成隐秘信息嵌入;然后令k=k+l;再执行步骤 (D_9;其中,1 <以127,k的初始值为1,k=k+l中的"="为赋值符号; 如果当前组合为组合(u,0),则从隐秘信息中提取出第k位比特信息作为当前嵌入信 息,当当前嵌入信息为"〇"时,将当前组合修改为(u+2,0),完成隐秘信息嵌入;当当前嵌入 信息为"Γ时,将当前组合修改为(u+2,l),完成隐秘信息嵌入;然后令k=k+l;再执行步骤 (D_9;其中,1 < u < 127,k的初始值为1,k = k+l中的"="为赋值符号; 如果当前组合为组合(〇,255),则从隐秘信息中提取出第k位至第k+2位比特信息作为 当前嵌入信息,当当前嵌入信息为"〇〇〇"时,保持当前组合不变,完成隐秘信息嵌入;当当前 嵌入信息为"001"时,将当前组合修改为(〇,254),完成隐秘信息嵌入;当当前嵌入信息为 "010"时,将当前组合修改为(1,255),完成隐秘信息嵌入;当前嵌入信息为"01Γ时,将当前 组合修改为(1,254),完成隐秘信息嵌入;当前嵌入信息为"100"时,将当前组合修改为(0, 253),完成隐秘信息嵌入;当前嵌入信息为"101"时,将当前组合修改为(2,255),完成隐秘 信息嵌入;当前嵌入信息为"110"时,将当前组合修改为(1,253),完成隐秘信息嵌入;当前 嵌入信息为"111"时,将当前组合修改为(2,254),完成隐秘信息嵌入;然后令1^ = 1^3;再执 行步骤(D_9;其中,k的初始值为1,k = k+3中的"="为赋值符号; 如果当前组合为组合(〇,v),则从隐秘信息中提取出第k位比特信息作为当前嵌入信 息,当当前嵌入信息为"〇"时,将当前组合修改为(〇,v-2),完成隐秘信息嵌入;当当前嵌入 信息为"Γ时,将当前组合修改为(l,v-2),完成隐秘信息嵌入;然后令k=k+l;再执行步骤 (D_9;其中,128 <以254,k的初始值为1,k = k+l中的"="为赋值符号; 如果当前组合为组合(u,255),则从隐秘信息中提取出第k位比特信息作为当前嵌入信 息,当当前嵌入信息为"〇"时,将当前组合修改为(u+2,255),完成隐秘信息嵌入;当当前嵌 入信息为"Γ时,将当前组合修改为(u+2,254),完成隐秘信息嵌入;然后令k = k+l;再执行 步骤②_9;其中,1 < u < 127,k的初始值为1,k = k+l中的"="为赋值符号; 如果当前组合为组合(255,0),则从隐秘信息中提取出第k位至第k+2位比特信息作为 当前嵌入信息,当当前嵌入信息为"〇〇〇"时,保持当前组合不变,完成隐秘信息嵌入;当当前 嵌入信息为"001"时,将当前组合修改为(255,1),完成隐秘信息嵌入;当当前嵌入信息为 "010"时,将当前组合修改为(254,0 ),完成隐秘信息嵌入;当前嵌入信息为"01Γ时,将当前 组合修改为(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位比特信息作为当前嵌入信 息,当当前嵌入信息为"〇"时,将当前组合修改为(255,v+2),完成隐秘信息嵌入;当当前嵌 入信息为"Γ时,将当前组合修改为(254,v+2),完成隐秘信息嵌入;然后令k = k+l;再执行 步骤②_9;其中,1 < v < 127,k的初始值为1,k = k+l中的"="为赋值符号; 如果当前组合为组合(u,0),则从隐秘信息中提取出第k位比特信息作为当前嵌入信 息,当当前嵌入信息为"〇"时,将当前组合修改为(u-2,0),完成隐秘信息嵌入;当当前嵌入 信息为"Γ时,将当前组合修改为(u-2,l),完成隐秘信息嵌入;然后令k = k+l;再执行步骤 (D_9;其中,128 < u < 254,k的初始值为1,k = k+l中的"="为赋值符号; 如果当前组合为组合(255,255),则从隐秘信息中提取出第1^位至第1^2位比特信息作 为当前嵌入信息,当当前嵌入信息为"〇〇〇"时,保持当前组合不变,完成隐秘信息嵌入;当当 前嵌入信息为"001"时,将当前组合修改为(255,254),完成隐秘信息嵌入;当当前嵌入信息 为"010"时,将当前组合修改为(254,255),完成隐秘信息嵌入;当前嵌入信息为"01Γ时,将 当前组合修改为(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位比特信息作为当前嵌入信 息,当当前嵌入信息为"〇"时,将当前组合修改为(255,v-2),完成隐秘信息嵌入;当当前嵌 入信息为"Γ时,将当前组合修改为(254,v-2),完成隐秘信息嵌入;然后令k = k+l;再执行 步骤②_9;其中,128 < v < 254,k的初始值为1,k = k+l中的"="为赋值符号; 如果当前组合为组合(u,255),则从隐秘信息中提取出第k位比特信息作为当前嵌入信 息,当当前嵌入信息为"〇"时,将当前组合修改为(u-2,255),完成隐秘信息嵌入;当当前嵌 入信息为"Γ时,将当前组合修改为(u-2,254),完成隐秘信息嵌入;然后令k = k+l;再执行 步骤②_9;其中,128 < u < 254,k的初始值为1,k = k+l中的"="为赋值符号; @_9、对当前组合进行移位:若当前组合为(u,v)且1 < u < 127、1 < v < 127,则将当前组 合(u,v)修改为(u+l,v+l);若当前组合为(u,v)且1^11<127、128<以254,则将当前组合 (u,V)修改为(u+l,V-l);若当前组合为(u,V)且128<u< 254、l<V<127,则将当前组合(u, v)修改为(u-l,v+l);若当前组合为(u,v)且128<u< 254、128<v< 254,则将当前组合(u, v)修改为(u-1 ,ν-l); @_10、将下一个遍历到的组合作为当前组合,然后返回步骤②_7继续执行,直至 f X f 个组合全部处理完毕,完成加密域图像可逆数据隐藏的过程,得到含隐秘信 息的加密域图像,并将随机序列、第一标记序列和第二标记序列发送到隐秘数据提取端; 所述的隐秘数据提取和原始图像无损恢复部分中的隐秘数据提取在加密域完成或在 解密域完成,在加密域完成隐秘数据提取和原始图像无损恢复的处理过程为: W Η ③jj、将含隐秘信息的加密域图像划分成y x y个互不重叠的尺寸大小为3X3 的图像块,其中,符号'1」"为向下取整符号; ③_1_2、将含隐秘信息的加密域图像中当前待处理的第m'个图像块定义为当前图像 块,其中,m,的初始值为要x I 3 [_ 3 _ ③_1_3、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素 值求差值后对256求模; ?j_4、将第i'个非中心像素点对应的模值Mr与第i'+l个非中心像素点对应的模值 Mi,+1配对组成一个组合,记为(1^,,1^+1),其中,1' = 1,3,5,7; ③^_5、令"1'="1' + 1,将含隐秘信息的加密域图像中下一个待处理的图像块作为当前 图像块,然后返回步骤③_1_3继续执行,直至含隐秘信息的加密域图像中的所有图像块处 理完毕,共得到f X 4 x4个组合,其中,m'=m'+l中的"="为赋值符号; ③_1_6、按序遍历f X f x4个组合,将当前遍历到的组合定义为当前组合;并按序 提取第二标记序列中的每个元素,将当前提取的元素定义为当前第二元素; ③_1_7、如果当前组合为组合(0,0),则提取出嵌入比特"000"以完成隐秘信息提取,并 保持当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(0,1),则提取出嵌入比特 "001"以完成隐秘信息提取,并将当前组合修改为(〇,〇),然后执行步骤③_1_8;如果当前组 合为组合(1,〇),则提取出嵌入比特"010"以完成隐秘信息提取,并将当前组合修改为(0, 〇),然后执行步骤③_1_8;如果当前组合为组合(1,1),则提取出嵌入比特"011"以完成隐秘 信息提取,并将当前组合修改为(〇,〇),然后执行步骤③_1_8;如果当前组合为组合(0,2), 则提取出嵌入比特"100"以完成隐秘信息提取,并将当前组合修改为(〇,〇),然后执行步骤 ③_1_8;如果当前组合为组合(2,0),则提取出嵌入比特"101"以完成隐秘信息提取,并将当 前组合修改为(〇,〇),然后执行步骤③_1_8;如果当前组合为组合(1,2),则提取出嵌入比特 "110"以完成隐秘信息提取,并将当前组合修改为(〇,〇),然后执行步骤③_1_8;如果当前组 合为组合(2,1),则提取出嵌入比特"111"以完成隐秘信息提取,并将当前组合修改为(0, 〇),然后执行步骤③_1_8; 如果当前组合为组合(〇,ν),则提取出嵌入比特"0"以完成隐秘信息提取,并将当前组 合修改为(〇,ν-2),然后执行步骤如果当前组合为组合(1,ν),则提取出嵌入比特 "Γ以完成隐秘信息提取,并将当前组合修改为(〇,ν-2),然后执行步骤③_1_8;其中,1<ν < 127; 如果当前组合为组合(u,0),则提取出嵌入比特"0"以完成隐秘信息提取,并将当前组 合修改为(u-2,0),然后执行步骤如果当前组合为组合(u,l),则提取出嵌入比特 "Γ以完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_1_8;其中,l<u < 127; 如果当前组合为组合(〇,255),则提取出嵌入比特"000"以完成隐秘信息提取,并保持 当前组合不变,然后执行步骤③_1_8;如果当前组合为组合(0,254),则提取出嵌入比特 "001"以完成隐秘信息提取,并将当前组合修改为(〇,255),然后执行步骤③_1_8;如果当前 组合为组合(1,255),则提取出嵌入比特"010"以完成隐秘信息提取,并将当前组合修改为 (0,255),然后执行步骤@_1_8;如果当前组合为组合(1,254),则提取出嵌入比特"011"以 完成隐秘信息提取,并将当前组合修改为(〇,255),然后执行步骤③_1_8;如果当前组合为 组合(Ο,253),则提取出嵌入比特"100"以完成隐秘信息提取,并将当前组合修改为(Ο, 255),然后执行步骤③_1_8;如果当前组合为组合(2,255),则提取出嵌入比特"101"以完成 隐秘信息提取,并将当前组合修改为(〇,255),然后执行步骤③_1_8;如果当前组合为组合 (1,253),则提取出嵌入比特"110"以完成隐秘信息提取,并将当前组合修改为(0,255),然 后执行步骤③_1_8;如果当前组合为组合(2,254),则提取出嵌入比特"111"以完成隐秘信 息提取,并将当前组合修改为(〇,255),然后执行步骤③_1_8; 如果当前组合为组合(〇,ν),则提取出嵌入比特"0"以完成隐秘信息提取,并将当前组 合修改为(〇,ν+2),然后执行步骤如果当前组合为组合(1,ν),则提取出嵌入比特 "Γ以完成隐秘信息提取,并将当前组合修改为(〇,ν+2),然后执行步骤③_1_8;其中,128 < ν< 254; 如果当前组合为组合(u,255),则提取出嵌入比特"0"以完成隐秘信息提取,并将当前 组合修改为(u-2,255),然后执行步骤③_1_8;如果当前组合为组合(u,254),则提取出嵌入 比特"Γ以完成隐秘信息提取,并将当前组合修改为(u-2,255),然后执行步骤其 中,1 <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, 〇),然后执行步骤③_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),则提取出嵌入 比特"Γ以完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤其 中,1 < v< 127; 如果当前组合为组合(u,0),则提取出嵌入比特"0"以完成隐秘信息提取,并将当前组 合修改为(u+2,0),然后执行步骤如果当前组合为组合(u,l),则提取出嵌入比特 "Γ以完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_1_8;其中,128 < u< 254; 如果当前组合为组合(255,255),则提取出嵌入比特"000"以完成隐秘信息提取,并保 持当前组合不变,然后执行步骤③j_8;如果当前组合为组合(255,254),则提取出嵌入比 特"001"以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果 当前组合为组合(254,255),则提取出嵌入比特"010"以完成隐秘信息提取,并将当前组合 修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(254,254),则提取出嵌入比 特"oil"以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_1_8;如果 当前组合为组合(255,253),则提取出嵌入比特"100"以完成隐秘信息提取,并将当前组合 修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(253,255),则提取出嵌入比 特"101"以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤(1)_1_8;如果 当前组合为组合(254,253),则提取出嵌入比特"110"以完成隐秘信息提取,并将当前组合 修改为(255,255),然后执行步骤③_1_8;如果当前组合为组合(253,254),则提取出嵌入比 特"111"以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤(1)_1_8; 如果当前组合为组合(255,v),则提取出嵌入比特"0"以完成隐秘信息提取,并将当前 组合修改为(255,v+2),然后执行步骤③_1_8;如果当前组合为组合(254,v),则提取出嵌入 比特"Γ以完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤其 中,128< v< 254; 如果当前组合为组合(u,255),则提取出嵌入比特"0"以完成隐秘信息提取,并将当前 组合修改为(u+2,255),然后执行步骤③_1_8;如果当前组合为组合(u,254),则提取出嵌入 比特"Γ以完成隐秘信息提取,并将当前组合修改为(u+2,255),然后执行步骤其 中,128<u< 254; ③ _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); 如果当前组合不为(〇, 125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、(130, 255)、(255,130)中的其中一个,则直接执行步骤③_1_9; ③_1_9、将下一个遍历到的组合作为当前组合,然后返回步骤③_1_7继续执行,直至 X 4 x4个组合全部处理完毕,至此在加密域完成隐秘数据提取的过程,得到已提取 _ J5 _ 隐秘信息的加密域图像; ③_1_10、将已提取隐秘信息的加密域图像划分成f X #个互不重叠的尺寸大小为 _ .3」[_ 3 _ 3X3的图像块; ③」jl、将已提取隐秘信息的加密域图像中当前待处理的第m'个图像块定义为当前 图像块;并按序提取第一标记序列中的每个元素,将当前提取的元素定义为当前第一元素, 其中,m'的初始值为1,1?< f X f ; ③_1_12、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素 值求差值后对256求模; ③_1_13、按序查看每个模值,将当前查看的模值定义为当前模值; ③如果当前模值为126或129,则当当前第一元素的值为0时,保持当前模值不 变,然后将下一个提取的元素作为当前第一元素,再执行步骤当当前第一元素的 值为1时,对当前模值进行修改,然后将下一个提取的元素作为当前第一元素,再执行步骤 ③其中修改过程为:若当前模值为126,那么将当前模值修改为127;若当前模值为 129,那么将当前模值修改为128; 如果当前模值不为126和129,则直接执行步骤③_1_15; ③_1_15、令!11'=111'+1,将已提取隐秘信息的加密域图像中下一个待处理的图像块作为 当前图像块,然后返回步骤③_1_12继续执行,直至已提取隐秘信息的加密域图像中的所有 图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损恢复 的加密域图像,其中,m'=m'+l中的"="为赋值符号; ③_1_16、对已提取隐秘信息并已无损恢复的加密域图像进行解密,具体过程为: ③_l_16a、将已提取隐秘信息并已无损恢复的加密域图像划分成个互不重叠的 尺寸大小为3X3的图像块;如果WXH不能够被3X3整除,则将已提取隐秘信息并已无损恢 复的加密域图像划分成f X f个互不重叠的尺寸大小为3X3的图像块,并将已提取隐 秘信息并已无损恢复的加密域图像的右方和下方尺寸大小不为3X3的块也作为图像块,共 Γιτ?「好.? 有Τ χ I个图像块; ?_lj6b、将已提取隐秘信息并已无损恢复的加密域图像中当前待处理的第m个图像 块定义为当前图像块,将当前从随机序列中提取出的第j个元素定义为当前元素,其中,m和 j的初始值均为l,l<m<M,M表示已提取隐秘信息并已无损恢复的加密域图像中包含的图 像块的总个数,1 < j < J,J表示随机序列的总长度; ?_lj6c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中的 第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值 相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中,1 < i < I⑶r,Icur表示当前图像块中包含的像素点的总个数,Icur的值为9或6或4或3或2或1; ③_l_16d、令m=m+l,并令j = j+l,将已提取隐秘信息并已无损恢复的加密域图像中下 一个待处理的图像块作为当前图像块,将下一个从随机序列中提取出的元素作为当前元 素,然后返回步骤③_l_16c继续执行,直至已提取隐秘信息并已无损恢复的加密域图像中 的所有图像块处理完毕,完成图像解密的过程,得到解密域图像,其中,m = m+l和j = j + l中 的"="为赋值符号; 在解密域完成隐秘数据提取和原始图像无损恢复的处理过程为: ③_2_1、对含隐秘信息的加密域图像进行解密,具体过程为: @_2ja、将含隐秘信息的加密域图像划分成个互不重叠的尺寸大小为3X3的 3 〇 图像块;如果WXH不能够被3X3整除,则将含隐秘信息的加密域图像划分成f x #个互 _ 3 J _ _ 不重叠的尺寸大小为3X3的图像块,并将含隐秘信息的加密域图像的右方和下方尺寸大小 不为3X3的块也作为图像块,共有f X f个图像块; ③_2_lb、将含隐秘信息的加密域图像中当前待处理的第m个图像块定义为当前图像 块,将当前从随机序列中提取出的第j个元素定义为当前元素,其中,m和j的初始值均为1,1 <π^Μ,Μ表示含隐秘信息的加密域图像中包含的图像块的总个数,1 < j < J,J表示随机序 列的总长度; ③_2_lc、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中的第 i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相 减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值,其中, I cur,I cur表示当前图像块中包含的像素点的总个数,I cur的值为9或6或4或3或2或1; ③_2_ld、令m=m+l,并令j = j + Ι,将含隐秘信息的加密域图像中下一个待处理的图像 块作为当前图像块,将下一个从随机序列中提取出的元素作为当前元素,然后返回步骤③_ 2_lc继续执行,直至含隐秘信息的加密域图像中的所有图像块处理完毕,完成图像解密的 过程,得到含隐秘信息的解密域图像,其中,m=m+l和j = j+l中的"="为赋值符号; ③_2_2、将含隐秘信息的解密域图像划分成f X |个互不重叠的尺寸大小为3X3 的图像块,其中,符号"1」"为向下取整符号; ③_2_3、将含隐秘信息的解密域图像中当前待处理的第m'个图像块定义为当前图像 块,其中,m,的初始值为譬X警; ③_2_4、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素 值求差值后对256求模; ③_2_5、将第i '个非中心像素点对应的模值Mi,与第i ' +1个非中心像素点对应的模值 Mi,+1配对组成一个组合,记为(1^,,1^+1),其中,1' = 1,3,5,7; ③_2_6、令!11'=111' + 1,将含隐秘信息的解密域图像中下一个待处理的图像块作为当前 图像块,然后返回步骤③_2_4继续执行,直至含隐秘信息的解密域图像中的所有图像块处 理完毕,共得到f X f x4个组合,其中,m'=m'+l中的"="为赋值符号; ③_2_7、按序遍历f X f 个组合,将当前遍历到的组合定义为当前组合;并按序 提取第二标记序列中的每个元素,将当前提取的元素定义为当前第二元素; ③_2_8、如果当前组合为组合(0,0),则提取出嵌入比特"000"以完成隐秘信息提取,并 保持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(0,1),则提取出嵌入比特 "001"以完成隐秘信息提取,并将当前组合修改为(〇,〇),然后执行步骤③_2_9;如果当前组 合为组合(1,〇),则提取出嵌入比特"010"以完成隐秘信息提取,并将当前组合修改为(0, 〇),然后执行步骤③_2_9;如果当前组合为组合(1,1),则提取出嵌入比特"Oil"以完成隐秘 信息提取,并将当前组合修改为(〇,〇),然后执行步骤③_2_9;如果当前组合为组合(0,2), 则提取出嵌入比特"100"以完成隐秘信息提取,并将当前组合修改为(〇,〇),然后执行步骤 ③_2_9;如果当前组合为组合(2,0),则提取出嵌入比特"101"以完成隐秘信息提取,并将当 前组合修改为(〇,〇),然后执行步骤③_2_9;如果当前组合为组合(1,2),则提取出嵌入比特 "110"以完成隐秘信息提取,并将当前组合修改为(〇,〇),然后执行步骤③_2_9;如果当前组 合为组合(2,1),则提取出嵌入比特"111"以完成隐秘信息提取,并将当前组合修改为(0, 〇),然后执行步骤③_2_9; 如果当前组合为组合(〇,v),则提取出嵌入比特"0"以完成隐秘信息提取,并将当前组 合修改为(〇,v-2),然后执行步骤③_2_9;如果当前组合为组合(l,v),则提取出嵌入比特 "Γ以完成隐秘信息提取,并将当前组合修改为(〇,v-2),然后执行步骤③_2_9;其中,1<ν < 127; 如果当前组合为组合(u,0),则提取出嵌入比特"0"以完成隐秘信息提取,并将当前组 合修改为(u-2,0),然后执行步骤③_2_9;如果当前组合为组合(u,l),则提取出嵌入比特 "Γ以完成隐秘信息提取,并将当前组合修改为(u-2,0),然后执行步骤③_2_9;其中,l<u < 127; 如果当前组合为组合(〇,255),则提取出嵌入比特"000"以完成隐秘信息提取,并保持 当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(0,254),则提取出嵌入比特 "001"以完成隐秘信息提取,并将当前组合修改为(〇,255),然后执行步骤③_2_9;如果当前 组合为组合(1,255),则提取出嵌入比特"010"以完成隐秘信息提取,并将当前组合修改为 (0,255),然后执行步骤@_2_9;如果当前组合为组合(1,254),则提取出嵌入比特"011"以 完成隐秘信息提取,并将当前组合修改为(〇,255),然后执行步骤③_2_9;如果当前组合为 组合(0,253),则提取出嵌入比特"100"以完成隐秘信息提取,并将当前组合修改为(0, 255),然后执行步骤③_2_9;如果当前组合为组合(2,255),则提取出嵌入比特"101"以完成 隐秘信息提取,并将当前组合修改为(〇,255),然后执行步骤③_2_9;如果当前组合为组合 (1,253),则提取出嵌入比特"110"以完成隐秘信息提取,并将当前组合修改为(0,255),然 后执行步骤③_2_9;如果当前组合为组合(2,254),则提取出嵌入比特"111"以完成隐秘信 息提取,并将当前组合修改为(〇,255),然后执行步骤③_2_9; 如果当前组合为组合(〇,v),则提取出嵌入比特"0"以完成隐秘信息提取,并将当前组 合修改为(〇,v+2),然后执行步骤③_2_9;如果当前组合为组合(l,v),则提取出嵌入比特 "Γ以完成隐秘信息提取,并将当前组合修改为(〇,v+2),然后执行步骤③_2_9;其中,128 < v< 254; 如果当前组合为组合(u,255),则提取出嵌入比特"0"以完成隐秘信息提取,并将当前 组合修改为(u-2,255),然后执行步骤③_2_9;如果当前组合为组合(u,254),则提取出嵌入 比特"Γ以完成隐秘信息提取,并将当前组合修改为(u-2,255),然后执行步骤③_2_9;其 中,1 <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, 〇),然后执行步骤③_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),则提取出嵌入 比特"Γ以完成隐秘信息提取,并将当前组合修改为(255,v-2),然后执行步骤③_2_9;其 中,1 < v< 127; 如果当前组合为组合(u,0),则提取出嵌入比特"0"以完成隐秘信息提取,并将当前组 合修改为(u+2,0),然后执行步骤③_2_9;如果当前组合为组合(u,l),则提取出嵌入比特 "Γ以完成隐秘信息提取,并将当前组合修改为(u+2,0),然后执行步骤③_2_9;其中,128 < u< 254; 如果当前组合为组合(255,255),则提取出嵌入比特"000"以完成隐秘信息提取,并保 持当前组合不变,然后执行步骤③_2_9;如果当前组合为组合(255,254),则提取出嵌入比 特"001"以完成隐秘信息提取,并将当前组合修改为(255,255),然后执行步骤③_2_9;如果 当前组合为组合(254,255),则提取出嵌入比特"010"以完成隐秘信息提取,并将当前组合 修改为(255,255),然后执行步骤@_2_9;如果当前组合为组合(254,254),则提取出嵌入比 特"01Γ以完成隐秘信息提取,并将当前组合修改为(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),则提取出嵌入比 特"11Γ以完成隐秘信息提取,并将当前组合修改为(255,255 ),然后执行步骤③_2_9; 如果当前组合为组合(255,v),则提取出嵌入比特"0"以完成隐秘信息提取,并将当前 组合修改为(255,v+2),然后执行步骤③_2_9;如果当前组合为组合(254,v),则提取出嵌入 比特"Γ以完成隐秘信息提取,并将当前组合修改为(255,v+2),然后执行步骤③_2_9;其 中,128< v< 254; 如果当前组合为组合(u,255),则提取出嵌入比特"0"以完成隐秘信息提取,并将当前 组合修改为(u+2,255),然后执行步骤③_2_9;如果当前组合为组合(u,254),则提取出嵌入 比特"Γ以完成隐秘信息提取,并将当前组合修改为(u+2,255),然后执行步骤③_2_9;其 中,128<u< 254; ③ _2_9、如果当前组合为(0,125)或(125,0)或(0,130)或(125,255)或(130,0)或(255, 125)或(130,255)或(255,130),则当当前第二元素的值为0时,保持当前组合不变,然后将 下一个提取的元素作为当前第二元素,再执行步骤③_2_10;当当前第二元素的值为1时,对 当前组合进行修改,然后将下一个提取的元素作为当前第二元素,再执行步骤@_2j0,其 中修改过程为:若当前组合为(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); 如果当前组合不为(〇, 125)、(125,0)、(0,130)、(125,255)、(130,0)、(255,125)、(130, 255)、( 255,130)中的其中一个,则直接执行步骤③_2_10; @_2j0、将下一个遍历到的组合作为当前组合,然后返回步骤③_2_8继续执行,直至 f x f x4个组合全部处理完毕,至此在解密域完成隐秘数据提取的过程,得到已提取 隐秘信息的解密域图像; ③_2_11、将已提取隐秘信息的解密域图像划分成f X f个互不重叠的尺寸大小为 3X3的图像块; ?_2j2、将已提取隐秘信息的解密域图像中当前待处理的第m'个图像块定义为当前 图像块;并按序提取第一标记序列中的每个元素,将当前提取的元素定义为当前第一元素, 其中,m,的初始值为1,1?玄| X吾; ③_2_13、对当前图像块中周围的8个非中心像素点的像素值各自与中心像素点的像素 值求差值后对256求模; ③_2_14、按序查看每个模值,将当前查看的模值定义为当前模值; ?_2j5、如果当前模值为126或129,则当当前第一元素的值为0时,保持当前模值不 变,然后将下一个提取的元素作为当前第一元素,再执行步骤③_2_16;当当前第一元素的 值为1时,对当前模值进行修改,然后将下一个提取的元素作为当前第一元素,再执行步骤 6,其中修改过程为:若当前模值为126,那么将当前模值修改为127;若当前模值为 129,那么将当前模值修改为128; 如果当前模值不为126和129,则直接执行步骤③_2_16; ③_2_16、令!11'=111'+1,将已提取隐秘信息的解密域图像中下一个待处理的图像块作为 当前图像块,然后返回步骤③_2_13继续执行,直至已提取隐秘信息的解密域图像中的所有 图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损恢复 的解密域图像,其中,m'=m'+l中的"="为赋值符号。2.根据权利要求1所述的一种完全可分离的加密域图像可逆数据隐藏方法,其特征在 于所述的步骤Φ_2中根据随意设定的一个文本,生成一个作为randomO函数的输入参数的 密钥的具体过程为: ?_2a、随意设定一个文本,如果文本的长度不能够被8整除,则在文本的末尾补字符 "〇",使文本的长度能够被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()函数的输入参数的密钥。
【文档编号】H04N1/32GK105872305SQ201610226637
【公开日】2016年8月17日
【申请日】2016年4月13日
【发明人】徐达文, 陈凯
【申请人】宁波工程学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1