CN109803142B - 一种基于邻域预测的加密域图像可逆数据隐藏方法 - Google Patents
一种基于邻域预测的加密域图像可逆数据隐藏方法 Download PDFInfo
- Publication number
- CN109803142B CN109803142B CN201910015867.7A CN201910015867A CN109803142B CN 109803142 B CN109803142 B CN 109803142B CN 201910015867 A CN201910015867 A CN 201910015867A CN 109803142 B CN109803142 B CN 109803142B
- Authority
- CN
- China
- Prior art keywords
- image block
- image
- divided
- block
- size
- 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
Images
Abstract
本发明公开了一种基于邻域预测的加密域图像可逆数据隐藏方法,其包括图像加密、加密域图像可逆数据隐藏、隐秘信息提取三部分,在图像加密部分中先将图像分割成图像块,然后将每个图像块中的每个像素点的像素值与用于加密的随机序列中的一个元素的值相加后对256求模实现加密,使得图像块中满足特定条件的线性预测差值在加密前和加密后保持一致,不仅确保了能在加密后的图像中进行数据隐藏,而且确保了隐秘信息提取与图像解密完全分离,既可以在加密域有效地提取出隐秘信息,也可以在解密域有效地提取出隐秘信息,实用性更强,同时能保证在提取隐秘信息后可无失真地恢复出原始图像。
Description
技术领域
本发明涉及一种图像可逆数据隐藏技术,尤其是涉及一种基于邻域预测的加密域图像可逆数据隐藏方法。
背景技术
云计算平台下,多媒体内容的提供者不必同时是存储者和处理者。在这种工作模式中,用户数据在很大程度上处于“失控”状态。确保多媒体数据安全性的最佳方法之一就是对多媒体数据进行加密处理。用户在上传敏感内容之前首先进行加密,云端所有的处理和计算都在密文域进行,并将处理结果提供给使用者,使用者经过解密方可得到明文数据。
在很多应用场景,某些没有解密权限的云服务管理者需在加密载体中嵌入一些附加消息,如标注或认证数据、作品来源信息、所有者身份信息等,用于管理和认证加密图像数据。同时,在一些重要的应用场合,如医学诊断、法庭认证、军事/航空等敏感领域往往需要在提取附加消息后能精确地恢复原宿主信息。例如,为保护病人隐私,对医学图像等信息进行了加密,数据库管理者会在相应的加密图像中嵌入病人的隐私信息和认证信息。如果在敏感图像数据中嵌入附加消息,则需事先对敏感图像数据解密,这就意味着在敏感图像数据的整个生命周期中,至少有一部分时间是以明文形式存在的,这样会带来严重的隐私问题。此外,为了不影响诊断,授权的医生希望在解密和提取附加信息后,可以完全恢复原始图像内容。加密域可逆数据隐藏技术可以确保数据隐藏者在不解密的前提下,直接对加密图像进行数据的嵌入和提取操作,可以帮助解决图像安全和隐私泄露的担忧。现有的加密域可逆数据隐藏技术可分为三类:第一类是对图像进行加密后寻找数据嵌入空间,这类方法普遍嵌入容量较低,且会发生数据提取出错;第二类是图像加密前预留数据嵌入空间,这类方法嵌入容量大且失真低,但缺点是图像加密者和数据嵌入者之间需要复杂的协议;第三类是利用同态加密实现密文域图像可逆数据隐藏,但是同态加密易造成密文数据膨胀。
发明内容
本发明所要解决的技术问题是提供一种基于邻域预测的加密域图像可逆数据隐藏方法,其能够在加密域图像中进行数据隐藏,并能够保证隐秘信息的提取与解密完全可分离,即隐秘信息在加密域图像和解密域图像中都能有效地被提取出,同时能够保证在提取隐秘信息后可无失真地恢复出原始图像。
本发明解决上述技术问题所采用的技术方案为:一种基于邻域预测的加密域图像可逆数据隐藏方法,其特征在于包括图像加密、加密域图像可逆数据隐藏、隐秘信息提取三部分;
在图像加密部分中,先对图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;然后将图像中尺寸大小为2×2的图像块标识为可嵌入块或不可嵌入块;再利用一个随机序列中的每个元素的值对图像中的每个图像块中的各个像素点进行加密,得到加密域图像,并将随机序列发送到隐秘信息提取端;
在加密域图像可逆数据隐藏部分中,先对加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1,并定义一个大小与加密域图像大小一致的标记矩阵,将标记矩阵中的所有元素的初始值全部设为0;然后计算加密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值等于127或128时将标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值置为1,当预测差值大于0且小于127时执行右移操作,当预测差值大于128且小于255时执行左移操作,当预测差值等于0或255且嵌入信息为“0”时保持像素值不变,当预测差值等于0且嵌入信息为“1”时将像素值加1后对256求模得到的值作为新的像素值,当预测差值等于255且嵌入信息为“1”时将像素值减1后对256求模得到的值作为新的像素值,得到含隐秘信息的加密域图像,并将标记矩阵发送到隐秘信息提取端;
在隐秘信息提取部分中,分两种情况:
第一种情况为在加密域完成隐秘信息提取:先对含隐秘信息的加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;然后计算含隐秘信息的加密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值等于0或255时从像素点中提取出嵌入信息“0”,当预测差值等于1或254时从像素点中提取出嵌入信息“1”,得到已提取隐秘信息的加密域图像;接着对已提取隐秘信息的加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;之后计算已提取隐秘信息的加密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值大于0且小于或等于127、标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值为0时执行左移操作,当预测差值大于或等于128且小于255、标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值为0时执行右移操作,得到已提取隐秘信息并已无损恢复的加密域图像;再对已提取隐秘信息并已无损恢复的加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;最后利用随机序列中的每个元素的值对已提取隐秘信息并已无损恢复的加密域图像中的每个图像块中的各个像素点进行解密,得到原始图像;
第二种情况为在解密域完成隐秘信息提取,并无损恢复原始图像:先对含隐秘信息的加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;然后利用随机序列中的每个元素的值对含隐秘信息的加密域图像中的每个图像块中的各个像素点进行解密,得到含隐秘信息的解密域图像;接着对含隐秘信息的解密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;之后计算含隐秘信息的解密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值等于0或255时从像素点中提取出嵌入信息“0”,当预测差值等于1或254时从像素点中提取出嵌入信息“1”,得到已提取隐秘信息的解密域图像;再对已提取隐秘信息的解密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;最后计算已提取隐秘信息的解密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值大于0且小于或等于127、标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值为0时执行左移操作,当预测差值大于或等于128且小于255、标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值为0时执行右移操作,得到已提取隐秘信息并已无损恢复的解密域图像,即得到原始图像。
所述的图像加密部分的具体步骤为:
步骤①_1、将待加密的宽度为W且高度为H的图像记为Sorg;然后对Sorg进行划分图像块处理,若W和H均能够被2整除,则将Sorg划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Sorg划分成个互不重叠的尺寸大小为2×2的图像块,并将Sorg的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Sorg划分成个互不重叠的尺寸大小为2×2的图像块,并将Sorg的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Sorg划分成个互不重叠的尺寸大小为2×2的图像块,并将Sorg的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
步骤①_2、随意设定一个初始状态值,将初始状态值作为random()函数的输入参数的密钥;然后由random()函数随机产生一个随机序列,随机序列中的每个元素的值在0~255之间,随机序列的长度大于或等于Sorg中包含的图像块的总个数;
步骤①_3、将Sorg中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中取出的第j个元素定义为当前元素;其中,m和j均为正整数,且初始值均为1,1≤m≤M,M表示Sorg中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度;
步骤①_4、如果当前图像块的尺寸大小为2×2,则若当前图像块中的每个像素点的像素值与当前元素的值相加得到的四个和值均大于255或者均小于256,那么将当前图像块标识为可嵌入块,然后执行步骤①_5;否则,将当前图像块标识为不可嵌入块,然后执行步骤①_5;
如果当前图像块的尺寸大小不为2×2,则直接执行步骤①_5;
步骤①_5、利用当前元素对当前图像块中的每个像素点进行加密,对当前图像块中的第i个像素点进行加密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相加后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值;其中,i为正整数,且初始值为1,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为4或2或1;
步骤①_6、令m=m+1,并令j=j+1,将Sorg中下一个待处理的图像块作为当前图像块,将下一个从随机序列中取出的元素作为当前元素,然后返回步骤①_4继续执行,直至Sorg中的所有图像块处理完毕,完成图像加密的过程,得到加密域图像,并将随机序列发送到隐秘信息提取端;其中,m=m+1和j=j+1中的“=”为赋值符号。
所述的加密域图像可逆数据隐藏部分的具体步骤为:
步骤②_1、将宽度为W且高度为H的加密域图像记为Sen;然后对Sen进行划分图像块处理,若W和H均能够被2整除,则将Sen划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Sen划分成个互不重叠的尺寸大小为2×2的图像块,并将Sen的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Sen划分成个互不重叠的尺寸大小为2×2的图像块,并将Sen的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Sen划分成个互不重叠的尺寸大小为2×2的图像块,并将Sen的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
定义一个大小为W×H的标记矩阵,将标记矩阵中的所有元素的初始值全部设为0;
步骤②_3、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤②_4;
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为xm',i';然后计算xm',i'的预测差值,记为em',i',em',i'=(xm',i'-(0.4xm',hor+0.4xm',ver+0.2xm',dia))mod 256;
2)若em',i'等于127或128,则将标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值置为1;
若0<em',i'<127,则执行右移操作,令xm',i'=(xm',i'+1)mod 256;
若128<em',i'<255,则执行左移操作,令xm',i'=(xm',i'-1)mod 256;
若em',i'等于0或255,则从隐秘信息中提取出第k位比特作为当前嵌入信息,当当前嵌入信息为“0”时,保持xm',i'不变,完成隐秘信息嵌入;当当前嵌入信息为“1”且em',i'等于0时,令xm',i'=(xm',i'+1)mod 256,完成隐秘信息嵌入;当当前嵌入信息为“1”且em',i'等于255时,令xm',i'=(xm',i'-1)mod 256,完成隐秘信息嵌入;然后令k=k+1;
若当前图像块为不可嵌入块,则直接执行步骤②_4;
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,xm',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,xm',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,xm',dia表示在当前图像块中第i'个像素点的对角像素点的像素值,xm',i'=(xm',i'+1)mod 256和xm',i'=(xm',i'-1)mod 256中的“=”为赋值符号,k为正整数,且初始值为1,1≤k≤K,K表示隐秘信息的总长度,k=k+1中的“=”为赋值符号;
步骤②_4、令m'=m'+1,将Sen中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤②_3继续执行,直至Sen中的所有尺寸大小为2×2的图像块处理完毕,完成加密域图像可逆数据隐藏的过程,得到含隐秘信息的加密域图像,并将标记矩阵发送到隐秘信息提取端;其中,m'=m'+1中的“=”为赋值符号。
所述的隐秘信息提取在加密域完成,具体步骤为:
步骤③_1_1、将宽度为W且高度为H的含隐秘信息的加密域图像记为Shm-en;然后对Shm-en进行划分图像块处理,若W和H均能够被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
步骤③_1_3、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤③_1_4;
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为ym',i';然后计算ym',i'的预测差值,记为gm',i',gm',i'=(ym',i'-(0.4ym',hor+0.4ym',ver+0.2ym',dia))mod 256;
2)若gm',i'等于0或255,则从当前图像块中的第i'个像素点中提取出嵌入信息“0”,完成隐秘信息提取;若gm',i'等于1或254,则从当前图像块中的第i'个像素点中提取出嵌入信息“1”,完成隐秘信息提取;
若当前图像块为不可嵌入块,则直接执行步骤③_1_4;
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,ym',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,ym',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,ym',dia表示在当前图像块中第i'个像素点的对角像素点的像素值;
步骤③_1_4、令m'=m'+1,将Shm-en中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤③_1_3继续执行,直至Shm-en中的所有尺寸大小为2×2的图像块处理完毕,至此在加密域完成隐秘信息提取的过程,得到已提取隐秘信息的加密域图像;其中,m'=m'+1中的“=”为赋值符号;
步骤③_1_5、将宽度为W且高度为H的已提取隐秘信息的加密域图像记为Snhm-en;然后对Snhm-en进行划分图像块处理,若W和H均能够被2整除,则将Snhm-en划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Snhm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-en的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Snhm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-en的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Snhm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-en的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
步骤③_1_7、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤③_1_8;
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为qm',i';然后计算qm',i'的预测差值,记为vm',i',vm',i'=(qm',i'-(0.4qm',hor+0.4qm',ver+0.2qm',dia))mod 256;
2)若0<vm',i'≤127且标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值为0,则执行左移操作,令qm',i'=(qm',i'-1)mod 256;若128≤vm',i'<255且标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值为0,则执行右移操作,令qm',i'=(qm',i'+1)mod 256;
若当前图像块为不可嵌入块,则直接执行步骤③_1_8;
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,qm',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,qm',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,qm',dia表示在当前图像块中第i'个像素点的对角像素点的像素值,qm',i'=(qm',i'-1)mod 256和qm',i'=(qm',i'+1)mod 256中的“=”为赋值符号;
步骤③_1_8、令m'=m'+1,将Snhm-en中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤③_1_7继续执行,直至Snhm-en中的所有尺寸大小为2×2的图像块处理完毕,得到已提取隐秘信息并已无损恢复的加密域图像;其中,m'=m'+1中的“=”为赋值符号;
步骤③_1_9、将宽度为W且高度为H的已提取隐秘信息并已无损恢复的加密域图像记为Snhm-hf-en;然后对Snhm-hf-en进行解密,具体过程为:
步骤③_1_9a、对Snhm-hf-en进行划分图像块处理,若W和H均能够被2整除,则将Snhm-hf-en划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Snhm-hf-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-hf-en的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Snhm-hf-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-hf-en的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Snhm-hf-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-hf-en的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
步骤③_1_9b、将Snhm-hf-en中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中取出的第j个元素定义为当前元素;其中,m和j均为正整数,且初始值均为1,1≤m≤M,M也表示Snhm-hf-en中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度;
步骤③_1_9c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值;其中,i为正整数,且初始值为1,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为4或2或1;
步骤③_1_9d、令m=m+1,并令j=j+1,将Snhm-hf-en中下一个待处理的图像块作为当前图像块,将下一个从随机序列中取出的元素作为当前元素,然后返回步骤步骤③_1_9c继续执行,直至Snhm-hf-en中的所有图像块处理完毕,完成图像解密的过程,得到原始图像;其中,m=m+1和j=j+1中的“=”为赋值符号。
所述的隐秘信息提取在解密域完成,并无损恢复原始图像,具体步骤为:
步骤③_2_1、将宽度为W且高度为H的含隐秘信息的加密域图像记为Shm-en;然后对Shm-en进行解密,具体过程为:
步骤③_2_1a、对Shm-en进行划分图像块处理,若W和H均能够被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
步骤③_2_1b、将Shm-en中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中取出的第j个元素定义为当前元素;其中,m和j均为正整数,且初始值均为1,1≤m≤M,M也表示Shm-en中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度;
步骤③_2_1c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值;其中,i为正整数,且初始值为1,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为4或2或1;
步骤③_2_1d、令m=m+1,并令j=j+1,将Shm-en中下一个待处理的图像块作为当前图像块,将下一个从随机序列中取出的元素作为当前元素,然后返回步骤③_2_1c继续执行,直至Shm-en中的所有图像块处理完毕,完成图像解密的过程,得到含隐秘信息的解密域图像;其中,m=m+1和j=j+1中的“=”为赋值符号;
步骤③_2_2、将宽度为W且高度为H的含隐秘信息的解密域图像记为Shm-de;然后对Shm-de进行划分图像块处理,若W和H均能够被2整除,则将Shm-de划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Shm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-de的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Shm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-de的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Shm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-de的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
步骤③_2_4、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤③_2_5;
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为zm',i';然后计算zm',i'的预测差值,记为hm',i',hm',i'=(zm',i'-(0.4zm',hor+0.4zm',ver+0.2zm',dia))mod 256;
2)若hm',i'等于0或255,则从当前图像块中的第i'个像素点中提取出嵌入信息“0”,完成隐秘信息提取;若hm',i'等于1或254,则从当前图像块中的第i'个像素点中提取出嵌入信息“1”,完成隐秘信息提取;
若当前图像块为不可嵌入块,则直接执行步骤③_2_5;
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,zm',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,zm',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,zm',dia表示在当前图像块中第i'个像素点的对角像素点的像素值;
步骤③_2_5、令m'=m'+1,将Shm-de中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤③_2_4继续执行,直至Shm-de中的所有尺寸大小为2×2的图像块处理完毕,至此在解密域完成隐秘信息提取的过程,得到已提取隐秘信息的解密域图像;其中,m'=m'+1中的“=”为赋值符号;
步骤③_2_6、将宽度为W且高度为H的已提取隐秘信息的解密域图像记为Snhm-de;然后对Snhm-de进行划分图像块处理,若W和H均能够被2整除,则将Snhm-de划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Snhm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-de的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Snhm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-de的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Snhm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-de的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
步骤③_2_8、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤③_2_9;
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为pm',i';然后计算pm',i'的预测差值,记为um',i',um',i'=(pm',i'-(0.4pm',hor+0.4pm',ver+0.2pm',dia))mod 256;
2)若0<um',i'≤127且标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值为0,则执行左移操作,令pm',i'=(pm',i'-1)mod 256;若128≤um',i'<255且标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值为0,则执行右移操作,令pm',i'=(pm',i'+1)mod 256;
若当前图像块为不可嵌入块,则直接执行步骤③_2_9;
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,pm',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,pm',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,pm',dia表示在当前图像块中第i'个像素点的对角像素点的像素值,pm',i'=(pm',i'-1)mod 256和pm',i'=(pm',i'+1)mod 256中的“=”为赋值符号;
步骤③_2_9、令m'=m'+1,将Snhm-de中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤③_2_8继续执行,直至Snhm-de中的所有尺寸大小为2×2的图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损恢复的解密域图像,即得到原始图像;其中,m'=m'+1中的“=”为赋值符号。
与现有技术相比,本发明的优点在于:
1)本发明方法在加密域图像可逆数据隐藏部分中,利用图像块内循环预测的方式嵌入隐秘信息,与已有的预测方式相比,本发明方法可以得到可嵌入块内的每个像素点的像素值的预测差值;此外,利用尺寸大小为2×2的图像块内的三个相邻像素点的像素值的线性加权对当前的像素点的像素值进行预测,可以提高预测精度,从而能够有效地提高隐秘信息嵌入容量。
2)本发明方法在图像加密部分中采用了特定的加密机制,即先将图像分割成图像块,然后将每个图像块中的每个像素点的像素值与用于加密的随机序列中的一个元素的值相加后对256求模实现加密,这种图像加密方式可以使得图像块中满足特定条件的线性预测差值在加密前和加密后保持一致,不仅确保了能够在加密后的图像中进行数据隐藏,而且确保了隐秘信息提取与图像解密完全分离,既可以在加密域有效地提取出隐秘信息,也可以在解密域有效地提取出隐秘信息,实用性更强,同时能够保证在提取隐秘信息后可无失真地恢复出原始图像。
附图说明
图1为本发明方法的总体实现框图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
实施例一:
本实施例提出的一种基于邻域预测的加密域图像可逆数据隐藏方法,其总体实现框图如图1所示,其包括图像加密、加密域图像可逆数据隐藏、隐秘信息提取三部分。
在图像加密部分中,先对图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;然后将图像中尺寸大小为2×2的图像块标识为可嵌入块或不可嵌入块;再利用一个随机序列中的每个元素的值对图像中的每个图像块中的各个像素点进行加密,得到加密域图像,并将随机序列发送到隐秘信息提取端。
在加密域图像可逆数据隐藏部分中,先对加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1,并定义一个大小与加密域图像大小一致的标记矩阵,将标记矩阵中的所有元素的初始值全部设为0;然后计算加密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值等于127或128时将标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值置为1,当预测差值大于0且小于127时执行右移操作,当预测差值大于128且小于255时执行左移操作,当预测差值等于0或255且嵌入信息为“0”时保持像素值不变,当预测差值等于0且嵌入信息为“1”时将像素值加1后对256求模得到的值作为新的像素值,当预测差值等于255且嵌入信息为“1”时将像素值减1后对256求模得到的值作为新的像素值,得到含隐秘信息的加密域图像,并将标记矩阵发送到隐秘信息提取端。
在隐秘信息提取部分中(在加密域完成隐秘信息提取),先对含隐秘信息的加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;然后计算含隐秘信息的加密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值等于0或255时从像素点中提取出嵌入信息“0”,当预测差值等于1或254时从像素点中提取出嵌入信息“1”,得到已提取隐秘信息的加密域图像;接着对已提取隐秘信息的加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;之后计算已提取隐秘信息的加密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值大于0且小于或等于127、标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值为0时执行左移操作,当预测差值大于或等于128且小于255、标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值为0时执行右移操作,得到已提取隐秘信息并已无损恢复的加密域图像;再对已提取隐秘信息并已无损恢复的加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;最后利用随机序列中的每个元素的值对已提取隐秘信息并已无损恢复的加密域图像中的每个图像块中的各个像素点进行解密,得到原始图像。
优选的方案,图像加密部分的具体步骤为:
步骤①_1、将待加密的宽度为W且高度为H的图像记为Sorg;然后对Sorg进行划分图像块处理,若W和H均能够被2整除,则将Sorg划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Sorg划分成个互不重叠的尺寸大小为2×2的图像块,并将Sorg的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Sorg划分成个互不重叠的尺寸大小为2×2的图像块,并将Sorg的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Sorg划分成个互不重叠的尺寸大小为2×2的图像块,并将Sorg的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号。
步骤①_2、随意设定一个初始状态值,将初始状态值作为random()函数的输入参数的密钥;然后由random()函数随机产生一个随机序列,随机序列中的每个元素的值在0~255之间,随机序列的长度大于或等于Sorg中包含的图像块的总个数;在此,初始状态值实际为一随机数。
步骤①_3、将Sorg中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中取出的第j个元素定义为当前元素;其中,m和j均为正整数,且初始值均为1,1≤m≤M,M表示Sorg中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度。
步骤①_4、如果当前图像块的尺寸大小为2×2,则若当前图像块中的每个像素点的像素值与当前元素的值相加得到的四个和值均大于255或者均小于256,那么将当前图像块标识为可嵌入块,然后执行步骤①_5;否则,将当前图像块标识为不可嵌入块,然后执行步骤①_5。
如果当前图像块的尺寸大小不为2×2,则直接执行步骤①_5。
步骤①_5、利用当前元素对当前图像块中的每个像素点进行加密,对当前图像块中的第i个像素点进行加密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相加后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值;其中,i为正整数,且初始值为1,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为4或2或1。
步骤①_6、令m=m+1,并令j=j+1,将Sorg中下一个待处理的图像块作为当前图像块,将下一个从随机序列中取出的元素作为当前元素,然后返回步骤①_4继续执行,直至Sorg中的所有图像块处理完毕,完成图像加密的过程,得到加密域图像,并将随机序列发送到隐秘信息提取端;其中,m=m+1和j=j+1中的“=”为赋值符号。
优选的方案,加密域图像可逆数据隐藏部分的具体步骤为:
步骤②_1、将宽度为W且高度为H的加密域图像记为Sen;然后对Sen进行划分图像块处理,若W和H均能够被2整除,则将Sen划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Sen划分成个互不重叠的尺寸大小为2×2的图像块,并将Sen的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Sen划分成个互不重叠的尺寸大小为2×2的图像块,并将Sen的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Sen划分成个互不重叠的尺寸大小为2×2的图像块,并将Sen的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号。
定义一个大小为W×H的标记矩阵,将标记矩阵中的所有元素的初始值全部设为0。
步骤②_3、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤②_4。
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为xm',i';然后计算xm',i'的预测差值,记为em',i',em',i'=(xm',i'-(0.4xm',hor+0.4xm',ver+0.2xm',dia))mod 256。
2)若em',i'等于127或128,则将标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值置为1。
若0<em',i'<127,则执行右移操作,令xm',i'=(xm',i'+1)mod 256。
若128<em',i'<255,则执行左移操作,令xm',i'=(xm',i'-1)mod 256。
若em',i'等于0或255,则从隐秘信息中提取出第k位比特作为当前嵌入信息,当当前嵌入信息为“0”时,保持xm',i'不变,完成隐秘信息嵌入;当当前嵌入信息为“1”且em',i'等于0时,令xm',i'=(xm',i'+1)mod 256,完成隐秘信息嵌入;当当前嵌入信息为“1”且em',i'等于255时,令xm',i'=(xm',i'-1)mod 256,完成隐秘信息嵌入;然后令k=k+1。
若当前图像块为不可嵌入块,则直接执行步骤②_4。
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,xm',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,xm',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,xm',dia表示在当前图像块中第i'个像素点的对角像素点的像素值,xm',i'=(xm',i'+1)mod 256和xm',i'=(xm',i'-1)mod 256中的“=”为赋值符号,k为正整数,且初始值为1,1≤k≤K,K表示隐秘信息的总长度,k=k+1中的“=”为赋值符号。
步骤②_4、令m'=m'+1,将Sen中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤②_3继续执行,直至Sen中的所有尺寸大小为2×2的图像块处理完毕,完成加密域图像可逆数据隐藏的过程,得到含隐秘信息的加密域图像,并将标记矩阵发送到隐秘信息提取端;其中,m'=m'+1中的“=”为赋值符号。
优选的方案,隐秘信息提取在加密域完成,具体步骤为:
步骤③_1_1、将宽度为W且高度为H的含隐秘信息的加密域图像记为Shm-en;然后对Shm-en进行划分图像块处理,若W和H均能够被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号。
步骤③_1_3、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤③_1_4。
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为ym',i';然后计算ym',i'的预测差值,记为gm',i',gm',i'=(ym',i'-(0.4ym',hor+0.4ym',ver+0.2ym',dia))mod 256。
2)若gm',i'等于0或255,则从当前图像块中的第i'个像素点中提取出嵌入信息“0”,完成隐秘信息提取;若gm',i'等于1或254,则从当前图像块中的第i'个像素点中提取出嵌入信息“1”,完成隐秘信息提取。
若当前图像块为不可嵌入块,则直接执行步骤③_1_4。
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,ym',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,ym',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,ym',dia表示在当前图像块中第i'个像素点的对角像素点的像素值。
步骤③_1_4、令m'=m'+1,将Shm-en中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤③_1_3继续执行,直至Shm-en中的所有尺寸大小为2×2的图像块处理完毕,至此在加密域完成隐秘信息提取的过程,得到已提取隐秘信息的加密域图像;其中,m'=m'+1中的“=”为赋值符号。
步骤③_1_5、将宽度为W且高度为H的已提取隐秘信息的加密域图像记为Snhm-en;然后对Snhm-en进行划分图像块处理,若W和H均能够被2整除,则将Snhm-en划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Snhm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-en的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Snhm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-en的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Snhm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-en的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号。
步骤③_1_7、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤③_1_8。
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为qm',i';然后计算qm',i'的预测差值,记为vm',i',vm',i'=(qm',i'-(0.4qm',hor+0.4qm',ver+0.2qm',dia))mod 256。
2)若0<vm',i'≤127且标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值为0,则执行左移操作,令qm',i'=(qm',i'-1)mod 256;若128≤vm',i'<255且标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值为0,则执行右移操作,令qm',i'=(qm',i'+1)mod 256。
若当前图像块为不可嵌入块,则直接执行步骤③_1_8。
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,qm',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,qm',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,qm',dia表示在当前图像块中第i'个像素点的对角像素点的像素值,qm',i'=(qm',i'-1)mod 256和qm',i'=(qm',i'+1)mod 256中的“=”为赋值符号。
步骤③_1_8、令m'=m'+1,将Snhm-en中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤③_1_7继续执行,直至Snhm-en中的所有尺寸大小为2×2的图像块处理完毕,得到已提取隐秘信息并已无损恢复的加密域图像;其中,m'=m'+1中的“=”为赋值符号。
步骤③_1_9、将宽度为W且高度为H的已提取隐秘信息并已无损恢复的加密域图像记为Snhm-hf-en;然后对Snhm-hf-en进行解密,具体过程为:
步骤③_1_9a、对Snhm-hf-en进行划分图像块处理,若W和H均能够被2整除,则将Snhm-hf-en划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Snhm-hf-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-hf-en的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Snhm-hf-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-hf-en的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Snhm-hf-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-hf-en的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号。
步骤③_1_9b、将Snhm-hf-en中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中取出的第j个元素定义为当前元素;其中,m和j均为正整数,且初始值均为1,1≤m≤M,M也表示Snhm-hf-en中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度。
步骤③_1_9c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值;其中,i为正整数,且初始值为1,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为4或2或1。
步骤③_1_9d、令m=m+1,并令j=j+1,将Snhm-hf-en中下一个待处理的图像块作为当前图像块,将下一个从随机序列中取出的元素作为当前元素,然后返回步骤步骤③_1_9c继续执行,直至Snhm-hf-en中的所有图像块处理完毕,完成图像解密的过程,得到原始图像;其中,m=m+1和j=j+1中的“=”为赋值符号。
实施例二:
本实施例提出的一种基于邻域预测的加密域图像可逆数据隐藏方法,如图1所示,其图像加密部分与实施例一的图像加密部分的具体步骤相同,其加密域图像可逆数据隐藏部分与实施例一的加密域图像可逆数据隐藏部分的具体步骤相同,不同之处仅在于隐秘信息提取部分,本实施例的隐秘信息提取部分在解密域完成,在解密域完成隐秘信息提取,并无损恢复原始图像:先对含隐秘信息的加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;然后利用随机序列中的每个元素的值对含隐秘信息的加密域图像中的每个图像块中的各个像素点进行解密,得到含隐秘信息的解密域图像;接着对含隐秘信息的解密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;之后计算含隐秘信息的解密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值等于0或255时从像素点中提取出嵌入信息“0”,当预测差值等于1或254时从像素点中提取出嵌入信息“1”,得到已提取隐秘信息的解密域图像;再对已提取隐秘信息的解密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;最后计算已提取隐秘信息的解密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值大于0且小于或等于127、标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值为0时执行左移操作,当预测差值大于或等于128且小于255、标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值为0时执行右移操作,得到已提取隐秘信息并已无损恢复的解密域图像,即得到原始图像。
优选的方案,隐秘信息提取在解密域完成,并无损恢复原始图像,具体步骤为:
步骤③_2_1、将宽度为W且高度为H的含隐秘信息的加密域图像记为Shm-en;然后对Shm-en进行解密,具体过程为:
步骤③_2_1a、对Shm-en进行划分图像块处理,若W和H均能够被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号。
步骤③_2_1b、将Shm-en中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中取出的第j个元素定义为当前元素;其中,m和j均为正整数,且初始值均为1,1≤m≤M,M也表示Shm-en中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度。
步骤③_2_1c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值;其中,i为正整数,且初始值为1,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为4或2或1。
步骤③_2_1d、令m=m+1,并令j=j+1,将Shm-en中下一个待处理的图像块作为当前图像块,将下一个从随机序列中取出的元素作为当前元素,然后返回步骤③_2_1c继续执行,直至Shm-en中的所有图像块处理完毕,完成图像解密的过程,得到含隐秘信息的解密域图像;其中,m=m+1和j=j+1中的“=”为赋值符号。
步骤③_2_2、将宽度为W且高度为H的含隐秘信息的解密域图像记为Shm-de;然后对Shm-de进行划分图像块处理,若W和H均能够被2整除,则将Shm-de划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Shm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-de的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Shm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-de的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Shm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-de的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号。
步骤③_2_4、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤③_2_5。
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为zm',i';然后计算zm',i'的预测差值,记为hm',i',hm',i'=(zm',i'-(0.4zm',hor+0.4zm',ver+0.2zm',dia))mod 256。
2)若hm',i'等于0或255,则从当前图像块中的第i'个像素点中提取出嵌入信息“0”,完成隐秘信息提取;若hm',i'等于1或254,则从当前图像块中的第i'个像素点中提取出嵌入信息“1”,完成隐秘信息提取。
若当前图像块为不可嵌入块,则直接执行步骤③_2_5。
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,zm',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,zm',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,zm',dia表示在当前图像块中第i'个像素点的对角像素点的像素值。
步骤③_2_5、令m'=m'+1,将Shm-de中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤③_2_4继续执行,直至Shm-de中的所有尺寸大小为2×2的图像块处理完毕,至此在解密域完成隐秘信息提取的过程,得到已提取隐秘信息的解密域图像;其中,m'=m'+1中的“=”为赋值符号。
步骤③_2_6、将宽度为W且高度为H的已提取隐秘信息的解密域图像记为Snhm-de;然后对Snhm-de进行划分图像块处理,若W和H均能够被2整除,则将Snhm-de划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Snhm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-de的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Snhm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-de的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Snhm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-de的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号。
步骤③_2_8、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤③_2_9。
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为pm',i';然后计算pm',i'的预测差值,记为um',i',um',i'=(pm',i'-(0.4pm',hor+0.4pm',ver+0.2pm',dia))mod 256。
2)若0<um',i'≤127且标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值为0,则执行左移操作,令pm',i'=(pm',i'-1)mod 256;若128≤um',i'<255且标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值为0,则执行右移操作,令pm',i'=(pm',i'+1)mod 256。
若当前图像块为不可嵌入块,则直接执行步骤③_2_9。
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,pm',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,pm',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,pm',dia表示在当前图像块中第i'个像素点的对角像素点的像素值,pm',i'=(pm',i'-1)mod 256和pm',i'=(pm',i'+1)mod 256中的“=”为赋值符号。
步骤③_2_9、令m'=m'+1,将Snhm-de中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤③_2_8继续执行,直至Snhm-de中的所有尺寸大小为2×2的图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损恢复的解密域图像,即得到原始图像;其中,m'=m'+1中的“=”为赋值符号。
Claims (3)
1.一种基于邻域预测的加密域图像可逆数据隐藏方法,其特征在于包括图像加密、加密域图像可逆数据隐藏、隐秘信息提取三部分;
在图像加密部分中,先对图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;然后将图像中尺寸大小为2×2的图像块标识为可嵌入块或不可嵌入块;再利用一个随机序列中的每个元素的值对图像中的每个图像块中的各个像素点进行加密,得到加密域图像,并将随机序列发送到隐秘信息提取端;
在加密域图像可逆数据隐藏部分中,先对加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1,并定义一个大小与加密域图像大小一致的标记矩阵,将标记矩阵中的所有元素的初始值全部设为0;然后计算加密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值等于127或128时将标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值置为1,当预测差值大于0且小于127时执行右移操作,当预测差值大于128且小于255时执行左移操作,当预测差值等于0或255且嵌入信息为“0”时保持像素值不变,当预测差值等于0且嵌入信息为“1”时将像素值加1后对256求模得到的值作为新的像素值,当预测差值等于255且嵌入信息为“1”时将像素值减1后对256求模得到的值作为新的像素值,得到含隐秘信息的加密域图像,并将标记矩阵发送到隐秘信息提取端;
在隐秘信息提取部分中,分两种情况:
第一种情况为在加密域完成隐秘信息提取:先对含隐秘信息的加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;然后计算含隐秘信息的加密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值等于0或255时从像素点中提取出嵌入信息“0”,当预测差值等于1或254时从像素点中提取出嵌入信息“1”,得到已提取隐秘信息的加密域图像;接着对已提取隐秘信息的加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;之后计算已提取隐秘信息的加密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值大于0且小于或等于127、标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值为0时执行左移操作,当预测差值大于或等于128且小于255、标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值为0时执行右移操作,得到已提取隐秘信息并已无损恢复的加密域图像;再对已提取隐秘信息并已无损恢复的加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;最后利用随机序列中的每个元素的值对已提取隐秘信息并已无损恢复的加密域图像中的每个图像块中的各个像素点进行解密,得到原始图像;
第二种情况为在解密域完成隐秘信息提取,并无损恢复原始图像:先对含隐秘信息的加密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;然后利用随机序列中的每个元素的值对含隐秘信息的加密域图像中的每个图像块中的各个像素点进行解密,得到含隐秘信息的解密域图像;接着对含隐秘信息的解密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;之后计算含隐秘信息的解密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值等于0或255时从像素点中提取出嵌入信息“0”,当预测差值等于1或254时从像素点中提取出嵌入信息“1”,得到已提取隐秘信息的解密域图像;再对已提取隐秘信息的解密域图像进行划分互不重叠的图像块处理,图像块的尺寸大小为2×2或2×1或1×2或1×1;最后计算已提取隐秘信息的解密域图像中的每个可嵌入块中的各个像素点的像素值的预测差值,当预测差值大于0且小于或等于127、标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值为0时执行左移操作,当预测差值大于或等于128且小于255、标记矩阵中位置与预测差值对应的像素点的位置相同的元素的值为0时执行右移操作,得到已提取隐秘信息并已无损恢复的解密域图像,即得到原始图像;
所述的图像加密部分的具体步骤为:
步骤①_1、将待加密的宽度为W且高度为H的图像记为Sorg;然后对Sorg进行划分图像块处理,若W和H均能够被2整除,则将Sorg划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Sorg划分成个互不重叠的尺寸大小为2×2的图像块,并将Sorg的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Sorg划分成个互不重叠的尺寸大小为2×2的图像块,并将Sorg的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Sorg划分成个互不重叠的尺寸大小为2×2的图像块,并将Sorg的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
步骤①_2、随意设定一个初始状态值,将初始状态值作为random()函数的输入参数的密钥;然后由random()函数随机产生一个随机序列,随机序列中的每个元素的值在0~255之间,随机序列的长度大于或等于Sorg中包含的图像块的总个数;
步骤①_3、将Sorg中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中取出的第j个元素定义为当前元素;其中,m和j均为正整数,且初始值均为1,1≤m≤M,M表示Sorg中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度;
步骤①_4、如果当前图像块的尺寸大小为2×2,则若当前图像块中的每个像素点的像素值与当前元素的值相加得到的四个和值均大于255或者均小于256,那么将当前图像块标识为可嵌入块,然后执行步骤①_5;否则,将当前图像块标识为不可嵌入块,然后执行步骤①_5;
如果当前图像块的尺寸大小不为2×2,则直接执行步骤①_5;
步骤①_5、利用当前元素对当前图像块中的每个像素点进行加密,对当前图像块中的第i个像素点进行加密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相加后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值;其中,i为正整数,且初始值为1,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为4或2或1;
步骤①_6、令m=m+1,并令j=j+1,将Sorg中下一个待处理的图像块作为当前图像块,将下一个从随机序列中取出的元素作为当前元素,然后返回步骤①_4继续执行,直至Sorg中的所有图像块处理完毕,完成图像加密的过程,得到加密域图像,并将随机序列发送到隐秘信息提取端;其中,m=m+1和j=j+1中的“=”为赋值符号;
所述的加密域图像可逆数据隐藏部分的具体步骤为:
步骤②_1、将宽度为W且高度为H的加密域图像记为Sen;然后对Sen进行划分图像块处理,若W和H均能够被2整除,则将Sen划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Sen划分成个互不重叠的尺寸大小为2×2的图像块,并将Sen的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Sen划分成个互不重叠的尺寸大小为2×2的图像块,并将Sen的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Sen划分成个互不重叠的尺寸大小为2×2的图像块,并将Sen的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
定义一个大小为W×H的标记矩阵,将标记矩阵中的所有元素的初始值全部设为0;
步骤②_3、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤②_4;
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为xm',i';然后计算xm',i'的预测差值,记为em',i',em',i'=(xm',i'-(0.4xm',hor+0.4xm',ver+0.2xm',dia))mod 256;
2)若em',i'等于127或128,则将标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值置为1;
若0<em',i'<127,则执行右移操作,令xm',i'=(xm',i'+1)mod 256;
若128<em',i'<255,则执行左移操作,令xm',i'=(xm',i'-1)mod 256;
若em',i'等于0或255,则从隐秘信息中提取出第k位比特作为当前嵌入信息,当当前嵌入信息为“0”时,保持xm',i'不变,完成隐秘信息嵌入;当当前嵌入信息为“1”且em',i'等于0时,令xm',i'=(xm',i'+1)mod 256,完成隐秘信息嵌入;当当前嵌入信息为“1”且em',i'等于255时,令xm',i'=(xm',i'-1)mod 256,完成隐秘信息嵌入;然后令k=k+1;
若当前图像块为不可嵌入块,则直接执行步骤②_4;
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,xm',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,xm',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,xm',dia表示在当前图像块中第i'个像素点的对角像素点的像素值,xm',i'=(xm',i'+1)mod 256和xm',i'=(xm',i'-1)mod 256中的“=”为赋值符号,k为正整数,且初始值为1,1≤k≤K,K表示隐秘信息的总长度,k=k+1中的“=”为赋值符号;
步骤②_4、令m'=m'+1,将Sen中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤②_3继续执行,直至Sen中的所有尺寸大小为2×2的图像块处理完毕,完成加密域图像可逆数据隐藏的过程,得到含隐秘信息的加密域图像,并将标记矩阵发送到隐秘信息提取端;其中,m'=m'+1中的“=”为赋值符号。
2.根据权利要求1所述的一种基于邻域预测的加密域图像可逆数据隐藏方法,其特征在于所述的隐秘信息提取在加密域完成,具体步骤为:
步骤③_1_1、将宽度为W且高度为H的含隐秘信息的加密域图像记为Shm-en;然后对Shm-en进行划分图像块处理,若W和H均能够被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
步骤③_1_3、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤③_1_4;
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为ym',i';然后计算ym',i'的预测差值,记为gm',i',gm',i'=(ym',i'-(0.4ym',hor+0.4ym',ver+0.2ym',dia))mod 256;
2)若gm',i'等于0或255,则从当前图像块中的第i'个像素点中提取出嵌入信息“0”,完成隐秘信息提取;若gm',i'等于1或254,则从当前图像块中的第i'个像素点中提取出嵌入信息“1”,完成隐秘信息提取;
若当前图像块为不可嵌入块,则直接执行步骤③_1_4;
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,ym',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,ym',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,ym',dia表示在当前图像块中第i'个像素点的对角像素点的像素值;
步骤③_1_4、令m'=m'+1,将Shm-en中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤③_1_3继续执行,直至Shm-en中的所有尺寸大小为2×2的图像块处理完毕,至此在加密域完成隐秘信息提取的过程,得到已提取隐秘信息的加密域图像;其中,m'=m'+1中的“=”为赋值符号;
步骤③_1_5、将宽度为W且高度为H的已提取隐秘信息的加密域图像记为Snhm-en;然后对Snhm-en进行划分图像块处理,若W和H均能够被2整除,则将Snhm-en划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Snhm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-en的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Snhm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-en的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Snhm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-en的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
步骤③_1_7、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤③_1_8;
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为qm',i';然后计算qm',i'的预测差值,记为vm',i',vm',i'=(qm',i'-(0.4qm',hor+0.4qm',ver+0.2qm',dia))mod 256;
2)若0<vm',i'≤127且标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值为0,则执行左移操作,令qm',i'=(qm',i'-1)mod 256;若128≤vm',i'<255且标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值为0,则执行右移操作,令qm',i'=(qm',i'+1)mod 256;
若当前图像块为不可嵌入块,则直接执行步骤③_1_8;
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,qm',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,qm',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,qm',dia表示在当前图像块中第i'个像素点的对角像素点的像素值,qm',i'=(qm',i'-1)mod 256和qm',i'=(qm',i'+1)mod 256中的“=”为赋值符号;
步骤③_1_8、令m'=m'+1,将Snhm-en中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤③_1_7继续执行,直至Snhm-en中的所有尺寸大小为2×2的图像块处理完毕,得到已提取隐秘信息并已无损恢复的加密域图像;其中,m'=m'+1中的“=”为赋值符号;
步骤③_1_9、将宽度为W且高度为H的已提取隐秘信息并已无损恢复的加密域图像记为Snhm-hf-en;然后对Snhm-hf-en进行解密,具体过程为:
步骤③_1_9a、对Snhm-hf-en进行划分图像块处理,若W和H均能够被2整除,则将Snhm-hf-en划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Snhm-hf-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-hf-en的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Snhm-hf-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-hf-en的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Snhm-hf-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-hf-en的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
步骤③_1_9b、将Snhm-hf-en中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中取出的第j个元素定义为当前元素;其中,m和j均为正整数,且初始值均为1,1≤m≤M,M也表示Snhm-hf-en中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度;
步骤③_1_9c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值;其中,i为正整数,且初始值为1,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为4或2或1;
步骤③_1_9d、令m=m+1,并令j=j+1,将Snhm-hf-en中下一个待处理的图像块作为当前图像块,将下一个从随机序列中取出的元素作为当前元素,然后返回步骤步骤③_1_9c继续执行,直至Snhm-hf-en中的所有图像块处理完毕,完成图像解密的过程,得到原始图像;其中,m=m+1和j=j+1中的“=”为赋值符号。
3.根据权利要求1所述的一种基于邻域预测的加密域图像可逆数据隐藏方法,其特征在于所述的隐秘信息提取在解密域完成,并无损恢复原始图像,具体步骤为:
步骤③_2_1、将宽度为W且高度为H的含隐秘信息的加密域图像记为Shm-en;然后对Shm-en进行解密,具体过程为:
步骤③_2_1a、对Shm-en进行划分图像块处理,若W和H均能够被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Shm-en划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-en的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
步骤③_2_1b、将Shm-en中当前待处理的第m个图像块定义为当前图像块,将当前从随机序列中取出的第j个元素定义为当前元素;其中,m和j均为正整数,且初始值均为1,1≤m≤M,M也表示Shm-en中包含的图像块的总个数,1≤j≤J,J表示随机序列的总长度;
步骤③_2_1c、利用当前元素对当前图像块中的每个像素点进行解密,对当前图像块中的第i个像素点进行解密的过程为:将当前图像块中的第i个像素点的像素值与当前元素的值相减后对256求模,然后将得到的值作为当前图像块中的第i个像素点的像素值;其中,i为正整数,且初始值为1,1≤i≤Icur,Icur表示当前图像块中包含的像素点的总个数,Icur的值为4或2或1;
步骤③_2_1d、令m=m+1,并令j=j+1,将Shm-en中下一个待处理的图像块作为当前图像块,将下一个从随机序列中取出的元素作为当前元素,然后返回步骤③_2_1c继续执行,直至Shm-en中的所有图像块处理完毕,完成图像解密的过程,得到含隐秘信息的解密域图像;其中,m=m+1和j=j+1中的“=”为赋值符号;
步骤③_2_2、将宽度为W且高度为H的含隐秘信息的解密域图像记为Shm-de;然后对Shm-de进行划分图像块处理,若W和H均能够被2整除,则将Shm-de划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Shm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-de的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Shm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-de的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Shm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Shm-de的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
步骤③_2_4、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤③_2_5;
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为zm',i';然后计算zm',i'的预测差值,记为hm',i',hm',i'=(zm',i'-(0.4zm',hor+0.4zm',ver+0.2zm',dia))mod 256;
2)若hm',i'等于0或255,则从当前图像块中的第i'个像素点中提取出嵌入信息“0”,完成隐秘信息提取;若hm',i'等于1或254,则从当前图像块中的第i'个像素点中提取出嵌入信息“1”,完成隐秘信息提取;
若当前图像块为不可嵌入块,则直接执行步骤③_2_5;
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,zm',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,zm',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,zm',dia表示在当前图像块中第i'个像素点的对角像素点的像素值;
步骤③_2_5、令m'=m'+1,将Shm-de中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤③_2_4继续执行,直至Shm-de中的所有尺寸大小为2×2的图像块处理完毕,至此在解密域完成隐秘信息提取的过程,得到已提取隐秘信息的解密域图像;其中,m'=m'+1中的“=”为赋值符号;
步骤③_2_6、将宽度为W且高度为H的已提取隐秘信息的解密域图像记为Snhm-de;然后对Snhm-de进行划分图像块处理,若W和H均能够被2整除,则将Snhm-de划分成个互不重叠的尺寸大小为2×2的图像块;若W能被2整除而H不能被2整除,则将Snhm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-de的下方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W不能被2整除而H能被2整除,则将Snhm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-de的右方尺寸大小不为2×2的块也作为图像块,共有个图像块;若W和H均不能被2整除,则将Snhm-de划分成个互不重叠的尺寸大小为2×2的图像块,并将Snhm-de的右方和下方尺寸大小不为2×2的块也作为图像块,共有个图像块;其中,符号为向下取整运算符号,符号为向上取整运算符号;
步骤③_2_8、若当前图像块为可嵌入块,则对当前图像块中的每个像素点进行如下处理,再执行步骤③_2_9;
1)对于当前图像块中的第i'个像素点,将该像素点的像素值记为pm',i';然后计算pm',i'的预测差值,记为um',i',um',i'=(pm',i'-(0.4pm',hor+0.4pm',ver+0.2pm',dia))mod 256;
2)若0<um',i'≤127且标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值为0,则执行左移操作,令pm',i'=(pm',i'-1)mod 256;若128≤um',i'<255且标记矩阵中位置与当前图像块中的第i'个像素点的位置相同的元素的值为0,则执行右移操作,令pm',i'=(pm',i'+1)mod 256;
若当前图像块为不可嵌入块,则直接执行步骤③_2_9;
其中,i'为正整数,且初始值为1,1≤i'≤4,mod为求模运算符号,pm',hor表示在当前图像块中第i'个像素点的水平相邻像素点的像素值,pm',ver表示在当前图像块中第i'个像素点的垂直相邻像素点的像素值,pm',dia表示在当前图像块中第i'个像素点的对角像素点的像素值,pm',i'=(pm',i'-1)mod 256和pm',i'=(pm',i'+1)mod 256中的“=”为赋值符号;
步骤③_2_9、令m'=m'+1,将Snhm-de中下一个待处理的尺寸大小为2×2的图像块作为当前图像块,然后返回步骤③_2_8继续执行,直至Snhm-de中的所有尺寸大小为2×2的图像块处理完毕,至此完成原始图像无损恢复的过程,得到已提取隐秘信息并已无损恢复的解密域图像,即得到原始图像;其中,m'=m'+1中的“=”为赋值符号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910015867.7A CN109803142B (zh) | 2019-01-08 | 2019-01-08 | 一种基于邻域预测的加密域图像可逆数据隐藏方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910015867.7A CN109803142B (zh) | 2019-01-08 | 2019-01-08 | 一种基于邻域预测的加密域图像可逆数据隐藏方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109803142A CN109803142A (zh) | 2019-05-24 |
CN109803142B true CN109803142B (zh) | 2021-04-13 |
Family
ID=66558678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910015867.7A Active CN109803142B (zh) | 2019-01-08 | 2019-01-08 | 一种基于邻域预测的加密域图像可逆数据隐藏方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109803142B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110753226B (zh) * | 2019-09-25 | 2023-03-14 | 宁波工程学院 | 一种高容量密文域图像可逆数据隐藏方法 |
CN110809192B (zh) * | 2019-10-15 | 2021-07-20 | 华南理工大学 | 一种可搭载隐秘信息的视频加密方法 |
CN110958458B (zh) * | 2019-11-25 | 2022-03-08 | 李小平 | 基于模逆运算的数字图像加密方法和图像解密方法 |
CN112052854B (zh) * | 2020-09-14 | 2023-09-12 | 南京信息工程大学 | 一种实现自适应对比度增强的医疗图像可逆信息隐藏方法 |
CN112437205B (zh) * | 2020-11-18 | 2022-03-15 | 光谷技术有限公司 | 一种视频加密方法及装置 |
CN112738561A (zh) * | 2020-12-03 | 2021-04-30 | 西安慧博文定信息技术有限公司 | 一种基于otp图像加密、验证的方法及设备 |
CN113114869B (zh) * | 2021-03-15 | 2023-02-28 | 宁波工程学院 | 基于msb预测的密文域高容量图像可逆数据隐藏方法 |
CN113382127B (zh) * | 2021-06-10 | 2023-06-20 | 绍兴聚量数据技术有限公司 | 一种弹性选择和游程编码的加密图像可逆信息隐藏方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6654501B1 (en) * | 2000-03-06 | 2003-11-25 | Intel Corporation | Method of integrating a watermark into an image |
CN102036079A (zh) * | 2010-12-16 | 2011-04-27 | 北京航空航天大学 | 一种基于全方向预测误差直方图修改的可逆图像水印算法 |
CN103123720A (zh) * | 2013-03-13 | 2013-05-29 | 中南大学 | 基于差值图像直方图循环平移的无损数据隐藏方法 |
CN103164833A (zh) * | 2011-12-12 | 2013-06-19 | 天津职业技术师范大学 | 基于公钥的可逆数字水印方法 |
CN105872305A (zh) * | 2016-04-13 | 2016-08-17 | 宁波工程学院 | 一种完全可分离的加密域图像可逆数据隐藏方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9639912B2 (en) * | 2014-12-30 | 2017-05-02 | University Of Macau | Method for reversible image data hiding |
CN107809644B (zh) * | 2017-10-26 | 2019-08-20 | 宁波工程学院 | 一种双重加密的加密域图像可逆数据隐藏方法 |
CN109151486B (zh) * | 2018-09-06 | 2020-10-09 | 西南交通大学 | Jpeg图像比特流加密域可逆数据隐藏方法 |
-
2019
- 2019-01-08 CN CN201910015867.7A patent/CN109803142B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6654501B1 (en) * | 2000-03-06 | 2003-11-25 | Intel Corporation | Method of integrating a watermark into an image |
CN102036079A (zh) * | 2010-12-16 | 2011-04-27 | 北京航空航天大学 | 一种基于全方向预测误差直方图修改的可逆图像水印算法 |
CN103164833A (zh) * | 2011-12-12 | 2013-06-19 | 天津职业技术师范大学 | 基于公钥的可逆数字水印方法 |
CN103123720A (zh) * | 2013-03-13 | 2013-05-29 | 中南大学 | 基于差值图像直方图循环平移的无损数据隐藏方法 |
CN105872305A (zh) * | 2016-04-13 | 2016-08-17 | 宁波工程学院 | 一种完全可分离的加密域图像可逆数据隐藏方法 |
Non-Patent Citations (1)
Title |
---|
《An Efficient Reversible Data Hiding Scheme for Encrypted Images》;Kai Chen 等;《International Journal of Digital Crime and Forensics》;20180630;第2部分,第3-11页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109803142A (zh) | 2019-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109803142B (zh) | 一种基于邻域预测的加密域图像可逆数据隐藏方法 | |
Yi et al. | Separable and reversible data hiding in encrypted images using parametric binary tree labeling | |
Puteaux et al. | An efficient MSB prediction-based method for high-capacity reversible data hiding in encrypted images | |
Liu et al. | Reversible data-hiding in encrypted images by redundant space transfer | |
CN110753226B (zh) | 一种高容量密文域图像可逆数据隐藏方法 | |
Zhang et al. | Reversibility improved data hiding in encrypted images | |
Astuti et al. | Simple and secure image steganography using LSB and triple XOR operation on MSB | |
CN109348230B (zh) | 一种密文域高容量图像可逆数据隐藏方法 | |
CN109348228A (zh) | 一种基于图像分割和图像空间相关性的图像加密域可逆信息隐藏系统与方法 | |
CN109800585B (zh) | 一种图像插值空间完全可逆可分离密文域信息隐藏算法 | |
Qian et al. | Block cipher based separable reversible data hiding in encrypted images | |
CN107809644B (zh) | 一种双重加密的加密域图像可逆数据隐藏方法 | |
CN105634732A (zh) | 一种密文域多比特可逆信息隐藏方法 | |
Yi et al. | Parametric reversible data hiding in encrypted images using adaptive bit-level data embedding and checkerboard based prediction | |
CN111861844A (zh) | 一种基于图像分块认证的可逆水印方法 | |
CN113114869B (zh) | 基于msb预测的密文域高容量图像可逆数据隐藏方法 | |
CN107426172A (zh) | 一种身份信息的匹配推送方法及装置 | |
Zhang et al. | Vector-based efficient data hiding in encrypted images via multi-MSB replacement | |
Gao et al. | High-performance reversible data hiding in encrypted images with adaptive Huffman code | |
CN112380404B (zh) | 数据过滤方法、装置及系统 | |
Subhasri et al. | Enhancing the security of dicom content using modified vigenere cipher | |
Abboud | Multifactor authentication for software protection | |
Kaur et al. | XOR-EDGE based video steganography and testing against chi-square steganalysis | |
CN114119332A (zh) | 基于区块链的数字水印写入和读取方法及装置 | |
Yadav et al. | A hybrid approach to metamorphic cryptography using KIMLA and DNA concept |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |