CN114567711A - 一种基于块容量标签的大容量加密图像信息隐藏方法 - Google Patents

一种基于块容量标签的大容量加密图像信息隐藏方法 Download PDF

Info

Publication number
CN114567711A
CN114567711A CN202210066640.7A CN202210066640A CN114567711A CN 114567711 A CN114567711 A CN 114567711A CN 202210066640 A CN202210066640 A CN 202210066640A CN 114567711 A CN114567711 A CN 114567711A
Authority
CN
China
Prior art keywords
image
pixel
value
sequence
block
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.)
Withdrawn
Application number
CN202210066640.7A
Other languages
English (en)
Inventor
金丹
徐达文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ningbo University of Technology
Original Assignee
Ningbo University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ningbo University of Technology filed Critical Ningbo University of Technology
Priority to CN202210066640.7A priority Critical patent/CN114567711A/zh
Publication of CN114567711A publication Critical patent/CN114567711A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N1/32144Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
    • H04N1/32149Methods relating to embedding, encoding, decoding, detection or retrieval operations
    • H04N1/32267Methods relating to embedding, encoding, decoding, detection or retrieval operations combined with processing of the image
    • H04N1/32272Encryption or ciphering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N1/32144Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
    • H04N1/32149Methods relating to embedding, encoding, decoding, detection or retrieval operations
    • H04N1/32347Reversible embedding, i.e. lossless, invertible, erasable, removable or distorsion-free embedding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

本发明公开了一种基于块容量标签的大容量加密图像信息隐藏方法,其在秘密数据隐藏阶段,对原始图像中的预测像素点进行处理,内容所有者先对由所有预测像素点构成的区域进行分块,并置乱所有图像块,获取置乱后的每个图像块的块容量标签;然后对置乱后的每个图像块中的每个预测像素点的预测误差值的绝对值进行修正,再进行加密;根据块容量标签在加密图像中嵌入第一附加信息和第二附加信息;数据隐藏者在嵌有附加信息的加密图像中提取出标签原值序列,根据标签原值序列嵌入秘密数据;在秘密数据提取和图像还原阶段,接收者提取出第一附加信息、第二附加信息、秘密数据,并恢复图像;优点是其在获得更大的嵌入容量的同时,可以无损地恢复原始图像。

Description

一种基于块容量标签的大容量加密图像信息隐藏方法
技术领域
本发明涉及一种图像信息隐藏技术,尤其是涉及一种基于块容量标签的大容量加密图像信息隐藏方法。
背景技术
随着网络通信技术和数字图像处理技术的快速发展,图像的传输和交换比以往更加方便,但随之而来的安全问题也越来越多。当信息(如数字图像)在互联网上传输时,存在隐私泄露、信息篡改、信息伪造等重大安全风险,比如:当发送方将消息发出后,不法分子通过技术手段获取通信内容,或者对消息进行恶意篡改后再发送给接收方,使得接收方得到错误的信息而造成巨大的损失。因此,用户的图像数据的安全问题已成为学术界和业界的一个重要问题。
初级阶段,研究人员使用加密技术将原始信息打乱成无实际意义的乱码,从而保护信息不会受到未经授权的用户或者攻击者的访问和攻击。随着云存储与大数据技术的兴起,许多用户会将图像上传到云服务器,出于对于服务商的不信任,会在上传之前对图像进行加密,然后再上传到云服务器,因此云服务器需要具备对加密信号进行变换、压缩、特征提取、数据隐藏等所需计算的能力,这也称为“加密域信号处理”。而云存储服务提供商则希望在图像中嵌入附加信息以便于实现图像管理、图像检索、版权保护等需求。针对云端应用,密文图像的可逆信息隐藏技术引起了大量研究人员的关注,希望将信息嵌入密文图像中进行传输,这样在保证嵌入信息安全的同时也可以较好地保护载体图像。因此,各种为实现不同目的的密文图像信息隐藏方法值得研究。
发明内容
本发明所要解决的技术问题是提供一种基于块容量标签的大容量加密图像信息隐藏方法,其在获得更大的嵌入容量的同时,可以无损地恢复原始图像。
本发明解决上述技术问题所采用的技术方案为:一种基于块容量标签的大容量加密图像信息隐藏方法,其特征在于包括秘密数据隐藏、秘密数据提取和图像还原两部分;
所述的秘密数据隐藏的具体过程为:
步骤1_1:内容所有者将原始图像中的所有像素点分为参考像素点和预测像素点两类,原始图像中的第1列像素点和第1行像素点为参考像素点、而其余所有像素点为预测像素点;然后将原始图像输入到MED预测器中,MED预测器输出原始图像中的每个预测像素点的预测值;再计算原始图像中的每个预测像素点的预测误差值的绝对值,将原始图像中坐标位置为(i,j)的预测像素点的预测误差值的绝对值记为|e(i,j)|,
Figure BDA0003480515450000021
其中,2≤i≤M,2≤j≤N,M表示原始图像的宽度,N表示原始图像的高度,e(i,j)表示原始图像中坐标位置为(i,j)的预测像素点的预测误差值,符号“| |”为取绝对值符号,p(i,j)表示原始图像中坐标位置为(i,j)的预测像素点的像素值,
Figure BDA0003480515450000022
表示原始图像中坐标位置为(i,j)的预测像素点的预测值;
步骤1_2:将原始图像中由所有预测像素点构成的区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块;然后使用一个置乱密钥Kscr生成一个长度为Numblock的第一置乱随机序列,第一置乱随机序列中的随机数为1到Numblock之间的正整数且不重复;再根据第一置乱随机序列置乱原始图像中的所有图像块,得到置乱图像;其中,
Figure BDA0003480515450000023
符号“
Figure BDA0003480515450000024
”为向下取整运算符号,m×n为2×2或3×3或4×4或5×5,置乱密钥Kscr为一个随机正整数,置乱图像的宽度为M且高度为N;
步骤1_3:在置乱图像中的每个图像块中的所有预测像素点的预测误差值的绝对值中找出最大值,将在置乱图像中的第k个图像块中的所有预测像素点的预测误差值的绝对值中找出的最大值记为|ek,max|;然后根据在置乱图像中的每个图像块中的所有预测像素点的预测误差值的绝对值中找出的最大值,计算置乱图像中的每个图像块的块容量标签,将置乱图像中的第k个图像块的块容量标签记为Lk
Figure BDA0003480515450000031
α为在取值区间[0,7]内满足|ek,max|<2α条件的最小整数;其中,1≤k≤Numblock,α为引入的中间变量;
步骤1_4:根据置乱图像中的每个图像块的块容量标签及每个图像块中的每个预测像素点的预测误差值的符号对置乱图像中的每个图像块中的每个预测像素点的预测误差值的绝对值进行修正,得到修正图像,具体过程为:对于置乱图像中的第k个图像块中坐标位置为(a,b)的预测像素点,将该预测像素点的预测误差值ek(a,b)的绝对值|ek(a,b)|转化成8位二进制形式,若该预测像素点的预测误差值ek(a,b)的符号为正号,则将该预测像素点的预测误差值ek(a,b)的绝对值|ek(a,b)|的8位二进制形式中从左到右且从1开始计数的第Lk+1位二进制数修改为0后,作为修正图像中的第k个图像块中坐标位置为(a,b)的像素点的像素值的8位二进制形式;若该预测像素点的预测误差值ek(a,b)的符号为负号,则将该预测像素点的预测误差值ek(a,b)的绝对值|ek(a,b)|的8位二进制形式中从左到右且从1开始计数的第Lk+1位二进制数修改为1后,作为修正图像中的第k个图像块中坐标位置为(a,b)的像素点的像素值的8位二进制形式;其中,(a,b)表示图像块中的像素点在块内的坐标位置,1≤a≤m,1≤b≤n,修正图像的宽度为M且高度为N;
步骤1_5:使用一个第一加密密钥Kenc1生成一个维数为M×N的伪随机矩阵作为第一流密码;然后利用第一流密码对修正图像中的每个像素点进行加密,得到加密图像,将加密图像中坐标位置为(i',j')的像素点的像素值记为
Figure BDA0003480515450000032
Figure BDA0003480515450000033
其中,第一加密密钥Kenc1为一个随机正整数,Kenc1与Kscr的值相同,1≤i'≤M,1≤j'≤N,
Figure BDA0003480515450000034
表示修正图像中坐标位置为(i',j')的像素点的像素值,符号“
Figure BDA0003480515450000035
”表示异或操作符号,S(i',j')表示第一流密码中下标位置为(i',j')的元素的值;
步骤1_6:利用算术编码将置乱图像中的所有图像块的块容量标签按图像块的块索引号的先后顺序排列构成的标签序列转换为标签二进制序列;然后将标签二进制序列的长度表示成长度二进制序列,该长度二进制序列包含log2(M×N)位二进制数;接着将长度二进制序列与标签二进制序列按先后顺序联合起来构成的二进制序列作为第一附加信息;
步骤1_7:将加密图像中与原始图像中的所有图像块构成的区域对应的区域作为嵌入区域,将嵌入区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块,将置乱图像中的每个图像块的块容量标签作为加密图像中对应图像块的块容量标签;并将第一附加信息从左到右依次划分成Numf1个8位的第一子信息,将第一附加信息在第一子信息划分完毕后多出的二进制位构成末子信息;然后按Z字型扫描方式的顺序对嵌入区域中的每个图像块进行块索引号标记;接着按块索引号从小到大的顺序,并按Z字型扫描方式的顺序对每个图像块中的所有像素点进行先后排序,将嵌入区域中的所有图像块中的所有像素点排列构成第一像素集合,第一像素集合中包含有Numblock×m×n个像素点;其中,Numf1>1,末子信息包含的二进制位的总个数小于8,块索引号按序从1至Numblock进行标记;
步骤1_8:按先后顺序依次遍历第一像素集合中的前Numf1+1个像素点中的每个像素点,设定当前遍历的像素点所在的图像块为加密图像中的第k个图像块,那么当Lk不为8时提取出当前遍历的像素点的像素值的8位二进制形式中从左到右且从1开始计数的第Lk+1位至第8位,并按从左到右的顺序存储到第二附加信息中;然后将Numf1个第一子信息一一对应嵌入第一像素集合中的第1个至第Numf1个像素点中,将末子信息嵌入第一像素集合中的第Numf1+1个像素点中;其中,第二附加信息的初始值为空;
步骤1_9:从第一像素集合中的第Numf1+2个像素点开始按先后顺序依次遍历后续像素点,并按从左到右的顺序依次从第二附加信息中提取连续的二进制位,判断当前遍历的像素点所在的图像块的块容量标签是否为0,如果是,则对当前遍历的像素点不进行处理,继续遍历下一个像素点;否则,根据当前遍历的像素点所在的图像块的块容量标签,确定当前需从第二附加信息中提取连续的二进制位的位数Lf2,若第二附加信息中未被提取的二进制位的位数大于Lf2,那么从第二附加信息中提取出连续的Lf2位二进制位并嵌入当前遍历的像素点中,再继续遍历下一个像素点;若第二附加信息中未被提取的二进制位的位数等于Lf2,那么从第二附加信息中提取出连续的Lf2位二进制位并嵌入当前遍历的像素点中,再执行步骤1_10;若第二附加信息中未被提取的二进制位的位数小于Lf2,那么从第二附加信息中提取出未被提取的二进制位全部嵌入当前遍历的像素点中,再执行步骤1_10;其中,Lf2的值与当前遍历的像素点所在的图像块的块容量标签的值相同;
步骤1_10:在步骤1_9执行完毕后得到嵌有附加信息的加密图像,然后判断第一像素集合中的第Numf1+2个像素点开始的所有像素点是否已全部处理完毕,如果是,则结束秘密数据隐藏过程以及不执行秘密数据提取和图像还原过程;否则,执行步骤1_11;
步骤1_11:数据隐藏者生成一个一维的伪随机二进制序列作为秘密数据,并使用一个第二加密密钥Kenc2生成一个与秘密数据相同长度的伪随机二进制序列作为第二流密码;然后利用第二流密码对秘密数据进行按位异或加密,得到加密秘密数据;其中,第二加密密钥为一个正整数;
步骤1_12:将嵌有附加信息的加密图像中与加密图像中的嵌入区域相对应的区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块;然后按Z字型扫描方式的顺序对该区域中的每个图像块进行块索引号标记;接着按块索引号从小到大的顺序,并按Z字型扫描方式的顺序对每个图像块中的所有像素点进行先后排序,将该区域中的所有图像块中的所有像素点排列构成第二像素集合,第二像素集合中包含有Numblock×m×n个像素点;再从第二像素集合中的所有像素点的像素值的8位二进制形式构成的序列中提取出前log2(M×N)位二进制数,并转换为一个正整数,该正整数作为待提取的标签二进制序列的长度,记为length1;之后从第二像素集合中的所有像素点的像素值的8位二进制形式构成的序列中自第log2(M×N)+1位二进制数开始提取出length1位二进制数,将提取出的length1位二进制数构成的二进制序列作为提取的标签二进制序列;最后利用算术编码将提取的标签二进制序列恢复成标签原值序列;其中,块索引号按序从1至Numblock进行标记;
步骤1_13:在步骤1_12的基础上,将第二像素集合中的第Numf1+2+length2个像素点作为第一起始像素点,设定第一起始像素点所在的图像块为嵌有附加信息的加密图像中的第k个图像块,将标签原值序列中从左到右且从1开始计数的第k个标签原值作为第一起始标签原值,从第一起始标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为0,若为0,则对第二像素集合中从第一起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为0,则将第二像素集合中从第一起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,同时从加密秘密数据中未被提取过的数据中按从左到右的顺序依次提取出连续的Lcur位二进制数并嵌入当前遍历的像素点中,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至从第一起始像素点开始的所有像素点处理完毕或标签原值序列中的所有标签原值遍历完毕,结束加密秘密数据的嵌入过程,得到嵌有秘密数据的加密图像;其中,length2为引入的长度变量,length2=8×Numlabel-Sumlabel,Numlabel表示标签原值序列中值不为8的标签原值的个数,Sumlabel表示标签原值序列中值不为8的标签原值的值之和,Lcur表示当前遍历的标签原值的值;
所述的秘密数据提取和图像还原的具体过程为:
步骤2_1:接收者将嵌有秘密数据的加密图像中与原始图像中的所有图像块构成的区域相对应的区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块;然后按Z字型扫描方式的顺序对该区域中的每个图像块进行块索引号标记;接着按块索引号从小到大的顺序,并按Z字型扫描方式的顺序对每个图像块中的所有像素点进行先后排序,将该区域中的所有图像块中的所有像素点排列构成第三像素集合,第三像素集合中包含有Numblock×m×n个像素点;再从第三像素集合中的所有像素点的像素值的8位二进制形式构成的序列中提取出前log2(M×N)位二进制数,并转换为一个正整数,该正整数作为待提取的标签二进制序列的长度,记为length1;之后从第三像素集合中的所有像素点的像素值的8位二进制形式构成的序列中自第log2(M×N)+1位二进制数开始提取出length1位二进制数,将提取出的length1位二进制数构成的二进制序列作为提取的标签二进制序列,并将标签二进制序列中的最后一位二进制数对应的像素点的下一个像素点作为第二起始像素点;最后将提取的log2(M×N)位二进制数和提取的标签二进制序列按先后顺序联合起来构成提取端第一附加信息;其中,块索引号按序从1至Numblock进行标记;
步骤2_2:利用算术编码将提取的标签二进制序列恢复成标签原值序列;然后根据标签原值序列计算待提取的第二附加信息的长度,记为length4,length4=8×Numlabel-Sumlabel;接着设定第二起始像素点所在的图像块为嵌有秘密数据的加密图像中的第k个图像块,将标签原值序列中从左到右且从1开始计数的第k个标签原值作为第二起始标签原值,从第二起始标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为0,若为0,则对第三像素集合中从第二起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为0,则将第三像素集合中从第二起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,从当前遍历的像素点的像素值的8位二进制形式中从左到右提取出第1位至第Lcur位二进制数,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至共提取得到length4位二进制数,将提取得到的length4位二进制数按像素点的先后顺序排列构成的序列作为提取端第二附加信息,并将提取端第二附加信息中的最后一位二进制数对应的像素点的下一个像素点作为第三起始像素点;其中,1≤k≤Numblock,Numlabel表示标签原值序列中值不为8的标签原值的个数,Sumlabel表示标签原值序列中值不为8的标签原值的值之和,Lcur表示当前遍历的标签原值的值;
步骤2_3:设定第三起始像素点所在的图像块为嵌有秘密数据的加密图像中的第k个图像块,将标签原值序列中从左到右且从1开始计数的第k个标签原值作为第三起始标签原值,从第三起始标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为0,若为0,则对第三像素集合中从第三起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为0,则将第三像素集合中从第三起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,从当前遍历的像素点的像素值的8位二进制形式中从左到右提取出第1位至第Lcur位二进制数,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至从第三起始像素点开始的所有像素点处理完毕或标签原值序列中的所有标签原值遍历完毕,将提取的二进制数按像素点的先后顺序排列构成的序列作为提取端加密秘密数据;
步骤2_4:使用第二加密密钥Kenc2生成一个与提取端加密秘密数据相同长度的伪随机二进制序列作为第三流密码;然后利用第三流密码对提取端加密秘密数据进行按位异或解密,得到解密秘密数据,实现了秘密数据提取;
步骤2_5:在标签原值序列中从左到右的第1个标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为8,若为8,则对第三像素集合中属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为8,则将第三像素集合中属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,同时从提取端第二附加信息中未被提取过的二进制数中从左到右依次提取出8-Lcur位二进制数嵌入到当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位到8位中,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至提取端第二附加信息中的所有二进制数嵌入完毕,得到提取端加密图像;其中,Lcur表示当前遍历的标签原值的值;
步骤2_6:使用第一加密密钥Kenc1生成一个维数为M×N的伪随机矩阵作为第四流密码;然后利用第四流密码对提取端加密图像中的每个像素点进行解密,得到提取端修正图像,将提取端修正图像中坐标位置为(i',j')的像素点的像素值记为
Figure BDA0003480515450000091
Figure BDA0003480515450000092
其中,1≤i'≤M,1≤j'≤N,
Figure BDA0003480515450000093
表示提取端加密图像中坐标位置为(i',j')的像素点的像素值,符号“
Figure BDA0003480515450000094
”表示异或操作符号,R(i',j')表示第四流密码中下标位置为(i',j')的元素的值;
步骤2_7:将提取端修正图像中与原始图像中的所有图像块构成的区域相对应的区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块;然后按Z字型扫描方式的顺序对该区域中的每个图像块进行块索引号标记;接着按块索引号从小到大的顺序,并按Z字型扫描方式的顺序对每个图像块中的所有像素点进行先后排序,将该区域中的所有图像块中的所有像素点排列构成第四像素集合,第四像素集合中包含有Numblock×m×n个像素点;
步骤2_8:在标签原值序列中从左到右的第1个标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为8,若为8,则对第四像素集合中属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为8,则将第四像素集合中属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,若当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位为0,那么认为当前遍历的像素点的预测误差值为正数,若当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位为1,那么将当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位修改为0,使当前遍历的像素点的预测误差值为负数,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至标签原值序列中的所有标签原值遍历完毕,得到提取端预测误差图,提取端预测误差图中的预测误差值带有正负号;
步骤2_9:将提取端预测误差图中与原始图像中的所有图像块构成的区域相对应的区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块;然后使用置乱密钥Kscr生成一个长度为Numblock的第二置乱随机序列,第二置乱随机序列中的随机数为1到Numblock之间的正整数且不重复;再根据第二置乱随机序列置乱提取端预测误差图中的所有图像块,得到步骤1_2中的置乱图像对应的恢复图像;其中,第二置乱随机序列与第一置乱随机序列一致;
步骤2_10:将步骤1_2中的置乱图像对应的恢复图像输入到MED预测器中,MED预测器输出步骤1_1中的原始图像对应的恢复图像,实现了图像还原。
所述的步骤1_2中,置乱图像的获取过程为:按Z字型扫描方式的顺序对原始图像中的每个图像块进行块索引号标记;然后遍历第一置乱随数序列中的每个随机数,对于第一置乱随数序列中的第k个随机数,设定该随机数的值为τ,那么将原始图像中块索引号为k的图像块作为置乱图像中块索引号为τ的图像块;其中,块索引号按序从1至Numblock进行标记,k∈[1,Numblock],τ∈[1,Numblock]。
所述的步骤1_8中,将Numf1个第一子信息一一对应嵌入像素集合中的第1个至第Numf1个像素点中的具体过程为:对于像素集合中的第f1个像素点,将第f1个第一子信息替换该像素点的像素值的8位二进制形式;其中,f1∈[1,Numf1];
将末子信息嵌入像素集合中的第Numf1+1个像素点中的具体过程为:将末子信息替换像素集合中的第Numf1+1个像素点的像素值的8位二进制形式中从左开始的与末子信息同长度的若干位二进制位。
所述的步骤1_9中,将第二附加信息中提取出的连续的Lf2位二进制位嵌入当前遍历的像素点中的具体过程为:将第二附加信息中提取出的连续的Lf2位二进制位替换当前遍历的像素点的像素值的8位二进制形式中从左开始的Lf2位二进制位;
将第二附加信息中提取出的未被提取的二进制位全部嵌入当前遍历的像素点中的具体过程为:将第二附加信息中提取出的二进制位替换当前遍历的像素点的像素值的8位二进制形式中从左开始的相同位数的二进制位。
所述的步骤1_13中,从加密秘密数据中未被提取过的数据中按从左到右的顺序依次提取出连续的Lcur位二进制数并嵌入当前遍历的像素点中的具体过程为:从加密秘密数据中未被提取过的数据中按从左到右的顺序依次提取出连续的Lcur位二进制数替换当前遍历的像素点的像素值的8位二进制形式中从左开始的Lcur位二进制位。
所述的步骤2_5中,从提取的第二附加信息中未被提取过的二进制数中从左到右依次提取出8-Lcur位二进制数嵌入到当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位到8位中的具体过程为:从提取的第二附加信息中未被提取过的二进制数中从左到右依次提取出8-Lcur位二进制数替换当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位到8位。
所述的步骤2_9中,步骤1_2中的置乱图像对应的恢复图像的获取过程为:按Z字型扫描方式的顺序对提取端预测误差图中的每个图像块进行块索引号标记;然后遍历第二置乱随数序列中的每个随机数,对于第二置乱随数序列中的第ν个随机数,设定该随机数的值为γ,那么将提取端预测误差图中块索引号为γ的图像块作为恢复图像中块索引号为ν的图像块;其中,块索引号按序从1至Numblock进行标记,ν∈[1,Numblock],γ∈[1,Numblock]。
与现有技术相比,本发明的优点在于:
1)在秘密数据隐藏阶段,采用自适应的块容量标签,减少了第一附加信息和第二附加信息的嵌入数量,从而实现了较高的秘密数据嵌入容量。
2)在秘密数据隐藏阶段,采用流密码和块置乱双层加密机制,提高了秘密数据隐藏的安全性。
3)在秘密数据提取和图像还原阶段,可以无错误地将秘密数据提取出来,并且能够实现图像的完美重建。
4)在秘密数据隐藏阶段,在使用MED预测器进行预测之后,将作为参考像素点的第一列和第一行保持不变,将剩下的预测像素点进行分块,这样在保证完全可逆性的同时,可实现高嵌入容量。
附图说明
图1为本发明方法中的秘密数据隐藏部分的总体实现框图;
图2为本发明方法中的秘密数据提取和图像还原部分的总体实现框图;
图3a为“Airplane”图像;
图3b为“Baboon”图像;
图3c为“Jetplane”图像;
图3d为“Lena”图像;
图3e为“Man”图像;
图3f为“Tiffany”图像;
图4a为“Lena”图像;
图4b为利用本发时方法对图4a所示的图像进行处理得到的加密图像;
图4c为利用本发时方法对图4a所示的图像进行处理得到的嵌有秘密数据的加密图像;
图4d为利用本发时方法对图4a所示的图像进行处理得到的恢复图像。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
本发明提出的一种基于块容量标签的大容量加密图像信息隐藏方法,其包括秘密数据隐藏、秘密数据提取和图像还原两部分。
如图1所示,所述的秘密数据隐藏的具体过程为:
步骤1_1:内容所有者将原始图像中的所有像素点分为参考像素点和预测像素点两类,原始图像中的第1列像素点(最左侧一列像素点)和第1行像素点(最上方一行像素点)为参考像素点、而其余所有像素点为预测像素点;然后将原始图像输入到MED(Median EdgeDetection,中值边缘检测器)预测器中,MED预测器输出原始图像中的每个预测像素点的预测值;再计算原始图像中的每个预测像素点的预测误差值的绝对值,将原始图像中坐标位置为(i,j)的预测像素点的预测误差值的绝对值记为|e(i,j)|,
Figure BDA0003480515450000121
其中,2≤i≤M,2≤j≤N,M表示原始图像的宽度,N表示原始图像的高度,e(i,j)表示原始图像中坐标位置为(i,j)的预测像素点的预测误差值,符号“| |”为取绝对值符号,p(i,j)表示原始图像中坐标位置为(i,j)的预测像素点的像素值,
Figure BDA0003480515450000131
表示原始图像中坐标位置为(i,j)的预测像素点的预测值。
步骤1_2:将原始图像中由所有预测像素点构成的区域(即坐标范围为2≤i≤M,2≤j≤N构成的区域)划分成Numblock个尺寸大小为m×n的互不重叠的图像块,若区域右侧和下方有多出的预测像素点则不进行处理;然后利用Matlab中的randperm函数使用一个置乱密钥Kscr生成一个长度为Numblock的第一置乱随机序列,第一置乱随机序列中的随机数为1到Numblock之间的正整数且不重复;再根据第一置乱随机序列置乱原始图像中的所有图像块,得到置乱图像;其中,
Figure BDA0003480515450000132
符号“
Figure BDA0003480515450000133
”为向下取整运算符号,m×n为2×2或3×3或4×4或5×5,置乱密钥Kscr为一个随机正整数,置乱图像的宽度为M且高度为N,原始图像中的参考像素点的像素值保留于置乱图像中,原始图像中未构成图像块的预测像素点也保留于置乱图像中。
在本实施例中,步骤1_2中,置乱图像的获取过程为:按Z字型扫描方式的顺序对原始图像中的每个图像块进行块索引号标记;然后按先后顺序依次遍历第一置乱随数序列中的每个随机数,对于第一置乱随数序列中的第k个随机数,设定该随机数的值为τ,那么将原始图像中块索引号为k的图像块作为置乱图像中块索引号为τ的图像块;其中,块索引号按序从1至Numblock进行标记,k∈[1,Numblock],τ∈[1,Numblock]。
步骤1_3:在置乱图像中的每个图像块中的所有预测像素点的预测误差值的绝对值中找出最大值,将在置乱图像中的第k个图像块中的所有预测像素点的预测误差值的绝对值中找出的最大值记为|ek,max|;然后根据在置乱图像中的每个图像块中的所有预测像素点的预测误差值的绝对值中找出的最大值,计算置乱图像中的每个图像块的块容量标签,将置乱图像中的第k个图像块的块容量标签记为Lk
Figure BDA0003480515450000134
α为在取值区间[0,7]内满足|ek,max|<2α条件的最小整数;其中,1≤k≤Numblock,α为引入的中间变量,由于第k个图像块中的任一个预测像素点的预测误差值的绝对值都不会大于|ek,max|,因此Lk是第k个图像块中的所有预测像素点可以嵌入秘密数据的最大容量。
步骤1_4:根据置乱图像中的每个图像块的块容量标签及每个图像块中的每个预测像素点的预测误差值的符号对置乱图像中的每个图像块中的每个预测像素点的预测误差值的绝对值进行修正,得到修正图像,具体过程为:对于置乱图像中的第k个图像块中坐标位置为(a,b)的预测像素点,将该预测像素点的预测误差值ek(a,b)的绝对值|ek(a,b)|转化成8位二进制形式,若该预测像素点的预测误差值ek(a,b)的符号为正号,则将该预测像素点的预测误差值ek(a,b)的绝对值|ek(a,b)|的8位二进制形式中从左到右且从1开始计数的第Lk+1位二进制数修改为0后,作为修正图像中的第k个图像块中坐标位置为(a,b)的像素点的像素值的8位二进制形式;若该预测像素点的预测误差值ek(a,b)的符号为负号,则将该预测像素点的预测误差值ek(a,b)的绝对值|ek(a,b)|的8位二进制形式中从左到右且从1开始计数的第Lk+1位二进制数修改为1后,作为修正图像中的第k个图像块中坐标位置为(a,b)的像素点的像素值的8位二进制形式;其中,(a,b)表示图像块中的像素点在块内的坐标位置,1≤a≤m,1≤b≤n,修正图像的宽度为M且高度为N,原始图像中的参考像素点的像素值保留于修正图像中,原始图像中未构成图像块的预测像素点的像素值也保留于修正图像中。
步骤1_5:利用Matlab中的round函数使用一个第一加密密钥Kenc1生成一个维数为M×N的伪随机矩阵作为第一流密码;然后利用第一流密码对修正图像中的每个像素点进行加密,得到加密图像,将加密图像中坐标位置为(i',j')的像素点的像素值记为
Figure BDA0003480515450000141
其中,第一加密密钥Kenc1为一个随机正整数,Kenc1与Kscr的值相同,1≤i'≤M,1≤j'≤N,
Figure BDA0003480515450000142
表示修正图像中坐标位置为(i',j')的像素点的像素值,符号“
Figure BDA0003480515450000143
”表示异或操作符号,S(i',j')表示第一流密码中下标位置为(i',j')的元素的值。
步骤1_6:利用算术编码将置乱图像中的所有图像块的块容量标签按图像块的块索引号的先后顺序排列构成的标签序列转换为标签二进制序列,如第1个图像块至第5个图像块的块容量标签依次为2、5、8、3、1,那么将标签序列“25831”转换为标签二进制序列;然后将标签二进制序列的长度表示成长度二进制序列,该长度二进制序列包含log2(M×N)位二进制数,实际中标签二进制序列的长度转化成二进制数时不足log2(M×N)位,在前面补0达到log2(M×N)位;接着将长度二进制序列与标签二进制序列按先后顺序联合起来构成的二进制序列作为第一附加信息。
步骤1_7:将加密图像中与原始图像中的所有图像块构成的区域对应的区域作为嵌入区域,将嵌入区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块,将置乱图像中的每个图像块的块容量标签作为加密图像中对应图像块的块容量标签;并将第一附加信息从左到右依次划分成Numf1个8位的第一子信息,将第一附加信息在第一子信息划分完毕后多出的二进制位构成末子信息;然后按Z字型扫描方式的顺序对嵌入区域中的每个图像块进行块索引号标记;接着按块索引号从小到大的顺序,并按Z字型扫描方式的顺序对每个图像块中的所有像素点进行先后排序,将嵌入区域中的所有图像块中的所有像素点排列构成第一像素集合,第一像素集合中包含有Numblock×m×n个像素点;其中,Numf1>1,末子信息包含的二进制位的总个数小于8,第一像素集合中的前m×n个像素点为第1个图像块中的所有像素点,依次类推,块索引号按序从1至Numblock进行标记。
步骤1_8:按先后顺序依次遍历第一像素集合中的前Numf1+1个像素点中的每个像素点,设定当前遍历的像素点所在的图像块为加密图像中的第k个图像块,那么当Lk不为8时提取出当前遍历的像素点的像素值的8位二进制形式中从左到右且从1开始计数的第Lk+1位至第8位,并按从左到右的顺序存储到第二附加信息中;然后将Numf1个第一子信息一一对应嵌入第一像素集合中的第1个至第Numf1个像素点中,将末子信息嵌入第一像素集合中的第Numf1+1个像素点中;其中,第二附加信息的初始值为空。
在本实施例中,步骤1_8中,将Numf1个第一子信息一一对应嵌入像素集合中的第1个至第Numf1个像素点中的具体过程为:对于像素集合中的第f1个像素点,将第f1个第一子信息替换该像素点的像素值的8位二进制形式;其中,f1∈[1,Numf1];将末子信息嵌入像素集合中的第Numf1+1个像素点中的具体过程为:将末子信息替换像素集合中的第Numf1+1个像素点的像素值的8位二进制形式中从左开始的与末子信息同长度的若干位二进制位。
步骤1_9:从第一像素集合中的第Numf1+2个像素点开始按先后顺序依次遍历后续像素点,并按从左到右的顺序依次从第二附加信息中提取连续的二进制位,判断当前遍历的像素点所在的图像块的块容量标签是否为0,如果是,则对当前遍历的像素点不进行处理,继续遍历下一个像素点;否则,即其所在的图像块的块容量标签为1或2或3或4或5或6或8,根据当前遍历的像素点所在的图像块的块容量标签,确定当前需从第二附加信息中提取连续的二进制位的位数Lf2,若第二附加信息中未被提取的二进制位的位数大于Lf2,那么从第二附加信息中提取出连续的Lf2位二进制位并嵌入当前遍历的像素点中,再继续遍历下一个像素点;若第二附加信息中未被提取的二进制位的位数等于Lf2,那么从第二附加信息中提取出连续的Lf2位二进制位并嵌入当前遍历的像素点中,再执行步骤1_10;若第二附加信息中未被提取的二进制位的位数小于Lf2,那么从第二附加信息中提取出未被提取的二进制位全部嵌入当前遍历的像素点中,再执行步骤1_10;其中,Lf2的值与当前遍历的像素点所在的图像块的块容量标签的值相同。
在本实施例中,步骤1_9中,将第二附加信息中提取出的连续的Lf2位二进制位嵌入当前遍历的像素点中的具体过程为:将第二附加信息中提取出的连续的Lf2位二进制位替换当前遍历的像素点的像素值的8位二进制形式中从左开始的Lf2位二进制位;将第二附加信息中提取出的未被提取的二进制位全部嵌入当前遍历的像素点中的具体过程为:将第二附加信息中提取出的二进制位替换当前遍历的像素点的像素值的8位二进制形式中从左开始的相同位数的二进制位,比如:第二附加信息中提取出的二进制位有3位,而当前遍历的像素点所在的图像块的块容量标签为6,那么只嵌入3位,将第二附加信息中提取出的3位二进制位替换当前遍历的像素点的像素值的8位二进制形式中从左开始的3位二进制位。
步骤1_10:在步骤1_9执行完毕后得到嵌有附加信息的加密图像,然后判断第一像素集合中的第Numf1+2个像素点开始的所有像素点是否已全部处理完毕,如果是,则结束秘密数据隐藏过程以及不执行秘密数据提取和图像还原过程;否则,执行步骤1_11;加密图像中位于嵌入区域外的像素点的像素值保留于嵌有附加信息的加密图像中,加密图像中的图像块中未嵌入第一附加信息和未嵌入第二附加信息的像素点的像素值也保留于嵌有附加信息的加密图像中。
一般情况下,在第二附加信息嵌入完毕后第一像素集合中还有剩余像素点未被嵌入过附加信息,即继续执行步骤1_11。
步骤1_11:数据隐藏者利用Matlab中的round函数生成一个一维的伪随机二进制序列作为秘密数据,并利用Matlab中的round函数使用一个第二加密密钥Kenc2生成一个与秘密数据相同长度的伪随机二进制序列作为第二流密码;然后利用第二流密码对秘密数据进行按位异或加密,得到加密秘密数据;其中,第二加密密钥为一个正整数,由于第二流密码的长度与秘密数据的长度相同,因此第二流密码中的每位比特位与秘密数据中对应的比特位进行异或可实现加密。
步骤1_12:将嵌有附加信息的加密图像中与加密图像中的嵌入区域相对应的区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块;然后按Z字型扫描方式的顺序对该区域中的每个图像块进行块索引号标记;接着按块索引号从小到大的顺序,并按Z字型扫描方式的顺序对每个图像块中的所有像素点进行先后排序,将该区域中的所有图像块中的所有像素点排列构成第二像素集合,第二像素集合中包含有Numblock×m×n个像素点;再从第二像素集合中的所有像素点的像素值的8位二进制形式构成的序列中提取出前log2(M×N)位二进制数,并转换为一个正整数,该正整数作为待提取的标签二进制序列的长度,记为length1;之后从第二像素集合中的所有像素点的像素值的8位二进制形式构成的序列中自第log2(M×N)+1位二进制数开始提取出length1位二进制数,将提取出的length1位二进制数构成的二进制序列作为提取的标签二进制序列;最后利用算术编码将提取的标签二进制序列恢复成标签原值序列;其中,块索引号按序从1至Numblock进行标记。
步骤1_13:在步骤1_12的基础上,将第二像素集合中的第Numf1+2+length2个像素点作为第一起始像素点,设定第一起始像素点所在的图像块为嵌有附加信息的加密图像中的第k个图像块,将标签原值序列中从左到右且从1开始计数的第k个标签原值作为第一起始标签原值,从第一起始标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为0,若为0,则对第二像素集合中从第一起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为0,则将第二像素集合中从第一起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,同时从加密秘密数据中未被提取过的数据中按从左到右的顺序依次提取出连续的Lcur位二进制数并嵌入当前遍历的像素点中,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至从第一起始像素点开始的所有像素点处理完毕或标签原值序列中的所有标签原值遍历完毕,结束加密秘密数据的嵌入过程,得到嵌有秘密数据的加密图像;其中,length2为引入的长度变量,length2=8×Numlabel-Sumlabel,Numlabel表示标签原值序列中值不为8的标签原值的个数,Sumlabel表示标签原值序列中值不为8的标签原值的值之和,Lcur表示当前遍历的标签原值的值。
在本实施例中,步骤1_13中,从加密秘密数据中未被提取过的数据中按从左到右的顺序依次提取出连续的Lcur位二进制数并嵌入当前遍历的像素点中的具体过程为:从加密秘密数据中未被提取过的数据中按从左到右的顺序依次提取出连续的Lcur位二进制数替换当前遍历的像素点的像素值的8位二进制形式中从左开始的Lcur位二进制位。
如图2所示,所述的秘密数据提取和图像还原的具体过程为:
步骤2_1:接收者将嵌有秘密数据的加密图像中与原始图像中的所有图像块构成的区域相对应的区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块;然后按Z字型扫描方式的顺序对该区域中的每个图像块进行块索引号标记;接着按块索引号从小到大的顺序,并按Z字型扫描方式的顺序对每个图像块中的所有像素点进行先后排序,将该区域中的所有图像块中的所有像素点排列构成第三像素集合,第三像素集合中包含有Numblock×m×n个像素点;再从第三像素集合中的所有像素点的像素值的8位二进制形式构成的序列中提取出前log2(M×N)位二进制数,并转换为一个正整数,该正整数作为待提取的标签二进制序列的长度,记为length1;之后从第三像素集合中的所有像素点的像素值的8位二进制形式构成的序列中自第log2(M×N)+1位二进制数开始提取出length1位二进制数,将提取出的length1位二进制数构成的二进制序列作为提取的标签二进制序列,并将标签二进制序列中的最后一位二进制数对应的像素点的下一个像素点作为第二起始像素点;最后将提取的log2(M×N)位二进制数和提取的标签二进制序列按先后顺序联合起来构成提取端第一附加信息;其中,块索引号按序从1至Numblock进行标记。
步骤2_2:利用算术编码将提取的标签二进制序列恢复成标签原值序列;然后根据标签原值序列计算待提取的第二附加信息的长度,记为length4,length4=8×Numlabel-Sumlabel;接着设定第二起始像素点所在的图像块为嵌有秘密数据的加密图像中的第k个图像块,将标签原值序列中从左到右且从1开始计数的第k个标签原值作为第二起始标签原值,从第二起始标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为0,若为0,则对第三像素集合中从第二起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为0,则将第三像素集合中从第二起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,从当前遍历的像素点的像素值的8位二进制形式中从左到右提取出第1位至第Lcur位二进制数,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至共提取得到length4位二进制数,将提取得到的length4位二进制数按像素点的先后顺序排列构成的序列作为提取端第二附加信息,并将提取端第二附加信息中的最后一位二进制数对应的像素点的下一个像素点作为第三起始像素点;其中,1≤k≤Numblock,Numlabel表示标签原值序列中值不为8的标签原值的个数,Sumlabel表示标签原值序列中值不为8的标签原值的值之和,Lcur表示当前遍历的标签原值的值。
步骤2_3:设定第三起始像素点所在的图像块为嵌有秘密数据的加密图像中的第k个图像块,将标签原值序列中从左到右且从1开始计数的第k个标签原值作为第三起始标签原值,从第三起始标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为0,若为0,则对第三像素集合中从第三起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为0,则将第三像素集合中从第三起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,从当前遍历的像素点的像素值的8位二进制形式中从左到右提取出第1位至第Lcur位二进制数,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至从第三起始像素点开始的所有像素点处理完毕或标签原值序列中的所有标签原值遍历完毕,将提取的二进制数按像素点的先后顺序排列构成的序列作为提取端加密秘密数据。
步骤2_4:使用第二加密密钥Kenc2生成一个与提取端加密秘密数据相同长度的伪随机二进制序列作为第三流密码;然后利用第三流密码对提取端加密秘密数据进行按位异或解密,得到解密秘密数据,实现了秘密数据提取;由于步骤1_11中的加密秘密数据可能没有全部嵌入完,因此得到的解密秘密数据的长度可能小于步骤1_11中的加密秘密数据的长度。
步骤2_5:在标签原值序列中从左到右的第1个标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为8,若为8,则对第三像素集合中属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为8,则将第三像素集合中属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,同时从提取端第二附加信息中未被提取过的二进制数中从左到右依次提取出8-Lcur位二进制数嵌入到当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位到8位中,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至提取端第二附加信息中的所有二进制数嵌入完毕,得到提取端加密图像;其中,Lcur表示当前遍历的标签原值的值。
在本实施例中,步骤2_5中,从提取的第二附加信息中未被提取过的二进制数中从左到右依次提取出8-Lcur位二进制数嵌入到当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位到8位中的具体过程为:从提取的第二附加信息中未被提取过的二进制数中从左到右依次提取出8-Lcur位二进制数替换当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位到8位。
步骤2_6:使用第一加密密钥Kenc1生成一个维数为M×N的伪随机矩阵作为第四流密码;然后利用第四流密码对提取端加密图像中的每个像素点进行解密,得到提取端修正图像,将提取端修正图像中坐标位置为(i',j')的像素点的像素值记为
Figure BDA0003480515450000211
Figure BDA0003480515450000212
其中,1≤i'≤M,1≤j'≤N,
Figure BDA0003480515450000213
表示提取端加密图像中坐标位置为(i',j')的像素点的像素值,符号“
Figure BDA0003480515450000214
”表示异或操作符号,R(i',j')表示第四流密码中下标位置为(i',j')的元素的值;实际上第四流密码与第一流密码一致。
步骤2_7:将提取端修正图像中与原始图像中的所有图像块构成的区域相对应的区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块;然后按Z字型扫描方式的顺序对该区域中的每个图像块进行块索引号标记;接着按块索引号从小到大的顺序,并按Z字型扫描方式的顺序对每个图像块中的所有像素点进行先后排序,将该区域中的所有图像块中的所有像素点排列构成第四像素集合,第四像素集合中包含有Numblock×m×n个像素点。
步骤2_8:在标签原值序列中从左到右的第1个标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为8,若为8,则对第四像素集合中属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为8,则将第四像素集合中属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,若当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位为0,那么认为当前遍历的像素点的预测误差值为正数,若当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位为1,那么将当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位修改为0,使当前遍历的像素点的预测误差值为负数,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至标签原值序列中的所有标签原值遍历完毕,得到提取端预测误差图,提取端预测误差图中的预测误差值带有正负号。
步骤2_9:将提取端预测误差图中与原始图像中的所有图像块构成的区域相对应的区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块;然后使用置乱密钥Kscr生成一个长度为Numblock的第二置乱随机序列,第二置乱随机序列中的随机数为1到Numblock之间的正整数且不重复;再根据第二置乱随机序列置乱提取端预测误差图中的所有图像块,得到步骤1_2中的置乱图像对应的恢复图像;其中,第二置乱随机序列与第一置乱随机序列一致。
在本实施例中,步骤2_9中,步骤1_2中的置乱图像对应的恢复图像的获取过程为:按Z字型扫描方式的顺序对提取端预测误差图中的每个图像块进行块索引号标记;然后按先后顺序依次遍历第二置乱随数序列中的每个随机数,对于第二置乱随数序列中的第ν个随机数,设定该随机数的值为γ,那么将提取端预测误差图中块索引号为γ的图像块作为恢复图像中块索引号为ν的图像块;其中,块索引号按序从1至Numblock进行标记,ν∈[1,Numblock],γ∈[1,Numblock]。
步骤2_10:将步骤1_2中的置乱图像对应的恢复图像输入到MED预测器中,MED预测器输出步骤1_1中的原始图像对应的恢复图像,实现了图像还原。
为了进一步说明本发明方法的性能,对本发明方法进行测试。
选取Matlab2014作为实验测试平台,选取6幅实验图像作为实验对象,6幅实验图像分别为“Airplane”、“Baboon”、“Jetplane”、“Lena”、“Man”、“Tiffany”图像,对应如图3a、图3b、图3c、图3d、图3e、图3f所示。选择Wu等人提出的方法、Mohammadi等人提出的方法和Yu等人提出的方法共三种方法作为对比方法,与本发明方法进行性能比较,Wu等人提出的方法为Wu Y Q,Xiang Y Z,Guo Y T et al.2020.An improved reversible data hiding inencrypted images using parametric binary tree labeling.IEEE Transactions onMultimedia,22(8):1929-1938.[DOI:10.1109/TMM.2019.2952979](一种改进的基于参数二叉树标记的加密图像中的可逆数据隐藏方法,IEEE多媒体汇刊),Mohammadi等人提出的方法为Mohammadi A,Nakhkash M and Akhaee M A.2020.A High-Capacity reversibledata hiding in encrypted images employing Local Difference Predictor.IEEETransactions on Circuits and Systems for Video Technology,30(8):2366-2376.[DOI:10.1109/TCSVT.2020.2990952](一种利用局部差异预测器在加密图像中隐藏的大容量可逆数据。IEEE视频技术电路与系统汇刊),Yu等人提出的方法为Yu C Q,Zhang X Q,Zhang X P et al.2021.Reversible data hiding with hierarchical embedding forencrypted images.IEEE Transactions on Circuits and Systems for VideoTechnology(Early Access)1-1.[DOI:10.1109/TCSVT.2021.3062947](可逆数据隐藏与分层嵌入加密图像。IEEE视频技术电路与系统汇刊)。
计算利用本发明方法对“Airplane”、“Baboon”、“Jetplane”、“Lena”、“Man”、“Tiffany”图像进行处理在不同分块情况下的嵌入率,
Figure BDA0003480515450000231
表1列出了利用本发明方法对“Airplane”、“Baboon”、“Jetplane”、“Lena”、“Man”、“Tiffany”图像进行处理在不同分块情况下的嵌入率。
表1利用本发明方法对“Airplane”、“Baboon”、“Jetplane”、“Lena”、“Man”、“Tiffany”图像进行处理在不同分块情况下的嵌入率
Figure BDA0003480515450000232
从表1中可以看出,本发明方法在“Airplane”、“Baboon”、“Jetplane”、“Lena”、“Man”、“Tiffany”图像上在分块大小为2×2的情况下嵌入率最高,因此针对“Airplane”、“Baboon”、“Jetplane”、“Lena”、“Man”、“Tiffany”图像本发明方法中分块大小可选择2×2,能够获得更大的嵌入容量。
表2列出了分别利用Wu等人提出的方法、Mohammadi等人提出的方法和Yu等人提出的方法及本发明方法对“Airplane”、“Baboon”、“Jetplane”、“Lena”、“Man”、“Tiffany”图像进行处理在分块大小为2×2情况下的嵌入率。
表2分别利用Wu等人提出的方法、Mohammadi等人提出的方法和Yu等人提出的方法及本发明方法对“Airplane”、“Baboon”、“Jetplane”、“Lena”、“Man”、“Tiffany”
图像进行处理在分块大小为2×2情况下的嵌入率
Figure BDA0003480515450000241
从表2中可以看出,在分块大小为2×2情况下,相对于三种对比方法,本发明方法在“Airplane”、“Baboon”、“Jetplane”、“Lena”、“Tiffany”图像上的嵌入率最高,嵌入容量更大。
图4a给出了“Lena”图像,图4b给出了利用本发时方法对图4a所示的图像进行处理得到的加密图像,图4c给出了利用本发时方法对图4a所示的图像进行处理得到的嵌有秘密数据的加密图像,图4d给出了利用本发时方法对图4a所示的图像进行处理得到的恢复图像。比对图4a和图4d,从视觉效果上两者并无差别,说明本发明方法能够无损地恢复原始图像。

Claims (7)

1.一种基于块容量标签的大容量加密图像信息隐藏方法,其特征在于包括秘密数据隐藏、秘密数据提取和图像还原两部分;
所述的秘密数据隐藏的具体过程为:
步骤1_1:内容所有者将原始图像中的所有像素点分为参考像素点和预测像素点两类,原始图像中的第1列像素点和第1行像素点为参考像素点、而其余所有像素点为预测像素点;然后将原始图像输入到MED预测器中,MED预测器输出原始图像中的每个预测像素点的预测值;再计算原始图像中的每个预测像素点的预测误差值的绝对值,将原始图像中坐标位置为(i,j)的预测像素点的预测误差值的绝对值记为|e(i,j)|,
Figure FDA0003480515440000011
其中,2≤i≤M,2≤j≤N,M表示原始图像的宽度,N表示原始图像的高度,e(i,j)表示原始图像中坐标位置为(i,j)的预测像素点的预测误差值,符号“| |”为取绝对值符号,p(i,j)表示原始图像中坐标位置为(i,j)的预测像素点的像素值,
Figure FDA0003480515440000012
表示原始图像中坐标位置为(i,j)的预测像素点的预测值;
步骤1_2:将原始图像中由所有预测像素点构成的区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块;然后使用一个置乱密钥Kscr生成一个长度为Numblock的第一置乱随机序列,第一置乱随机序列中的随机数为1到Numblock之间的正整数且不重复;再根据第一置乱随机序列置乱原始图像中的所有图像块,得到置乱图像;其中,
Figure FDA0003480515440000013
符号
Figure FDA0003480515440000014
为向下取整运算符号,m×n为2×2或3×3或4×4或5×5,置乱密钥Kscr为一个随机正整数,置乱图像的宽度为M且高度为N;
步骤1_3:在置乱图像中的每个图像块中的所有预测像素点的预测误差值的绝对值中找出最大值,将在置乱图像中的第k个图像块中的所有预测像素点的预测误差值的绝对值中找出的最大值记为|ek,max|;然后根据在置乱图像中的每个图像块中的所有预测像素点的预测误差值的绝对值中找出的最大值,计算置乱图像中的每个图像块的块容量标签,将置乱图像中的第k个图像块的块容量标签记为Lk
Figure FDA0003480515440000021
α为在取值区间[0,7]内满足|ek,max|<2α条件的最小整数;其中,1≤k≤Numblock,α为引入的中间变量;
步骤1_4:根据置乱图像中的每个图像块的块容量标签及每个图像块中的每个预测像素点的预测误差值的符号对置乱图像中的每个图像块中的每个预测像素点的预测误差值的绝对值进行修正,得到修正图像,具体过程为:对于置乱图像中的第k个图像块中坐标位置为(a,b)的预测像素点,将该预测像素点的预测误差值ek(a,b)的绝对值|ek(a,b)|转化成8位二进制形式,若该预测像素点的预测误差值ek(a,b)的符号为正号,则将该预测像素点的预测误差值ek(a,b)的绝对值|ek(a,b)|的8位二进制形式中从左到右且从1开始计数的第Lk+1位二进制数修改为0后,作为修正图像中的第k个图像块中坐标位置为(a,b)的像素点的像素值的8位二进制形式;若该预测像素点的预测误差值ek(a,b)的符号为负号,则将该预测像素点的预测误差值ek(a,b)的绝对值|ek(a,b)|的8位二进制形式中从左到右且从1开始计数的第Lk+1位二进制数修改为1后,作为修正图像中的第k个图像块中坐标位置为(a,b)的像素点的像素值的8位二进制形式;其中,(a,b)表示图像块中的像素点在块内的坐标位置,1≤a≤m,1≤b≤n,修正图像的宽度为M且高度为N;
步骤1_5:使用一个第一加密密钥Kenc1生成一个维数为M×N的伪随机矩阵作为第一流密码;然后利用第一流密码对修正图像中的每个像素点进行加密,得到加密图像,将加密图像中坐标位置为(i',j')的像素点的像素值记为
Figure FDA0003480515440000022
Figure FDA0003480515440000023
其中,第一加密密钥Kenc1为一个随机正整数,Kenc1与Kscr的值相同,1≤i'≤M,1≤j'≤N,
Figure FDA0003480515440000024
表示修正图像中坐标位置为(i',j')的像素点的像素值,符号
Figure FDA0003480515440000025
表示异或操作符号,S(i',j')表示第一流密码中下标位置为(i',j')的元素的值;
步骤1_6:利用算术编码将置乱图像中的所有图像块的块容量标签按图像块的块索引号的先后顺序排列构成的标签序列转换为标签二进制序列;然后将标签二进制序列的长度表示成长度二进制序列,该长度二进制序列包含log2(M×N)位二进制数;接着将长度二进制序列与标签二进制序列按先后顺序联合起来构成的二进制序列作为第一附加信息;
步骤1_7:将加密图像中与原始图像中的所有图像块构成的区域对应的区域作为嵌入区域,将嵌入区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块,将置乱图像中的每个图像块的块容量标签作为加密图像中对应图像块的块容量标签;并将第一附加信息从左到右依次划分成Numf1个8位的第一子信息,将第一附加信息在第一子信息划分完毕后多出的二进制位构成末子信息;然后按Z字型扫描方式的顺序对嵌入区域中的每个图像块进行块索引号标记;接着按块索引号从小到大的顺序,并按Z字型扫描方式的顺序对每个图像块中的所有像素点进行先后排序,将嵌入区域中的所有图像块中的所有像素点排列构成第一像素集合,第一像素集合中包含有Numblock×m×n个像素点;其中,Numf1>1,末子信息包含的二进制位的总个数小于8,块索引号按序从1至Numblock进行标记;
步骤1_8:按先后顺序依次遍历第一像素集合中的前Numf1+1个像素点中的每个像素点,设定当前遍历的像素点所在的图像块为加密图像中的第k个图像块,那么当Lk不为8时提取出当前遍历的像素点的像素值的8位二进制形式中从左到右且从1开始计数的第Lk+1位至第8位,并按从左到右的顺序存储到第二附加信息中;然后将Numf1个第一子信息一一对应嵌入第一像素集合中的第1个至第Numf1个像素点中,将末子信息嵌入第一像素集合中的第Numf1+1个像素点中;其中,第二附加信息的初始值为空;
步骤1_9:从第一像素集合中的第Numf1+2个像素点开始按先后顺序依次遍历后续像素点,并按从左到右的顺序依次从第二附加信息中提取连续的二进制位,判断当前遍历的像素点所在的图像块的块容量标签是否为0,如果是,则对当前遍历的像素点不进行处理,继续遍历下一个像素点;否则,根据当前遍历的像素点所在的图像块的块容量标签,确定当前需从第二附加信息中提取连续的二进制位的位数Lf2,若第二附加信息中未被提取的二进制位的位数大于Lf2,那么从第二附加信息中提取出连续的Lf2位二进制位并嵌入当前遍历的像素点中,再继续遍历下一个像素点;若第二附加信息中未被提取的二进制位的位数等于Lf2,那么从第二附加信息中提取出连续的Lf2位二进制位并嵌入当前遍历的像素点中,再执行步骤1_10;若第二附加信息中未被提取的二进制位的位数小于Lf2,那么从第二附加信息中提取出未被提取的二进制位全部嵌入当前遍历的像素点中,再执行步骤1_10;其中,Lf2的值与当前遍历的像素点所在的图像块的块容量标签的值相同;
步骤1_10:在步骤1_9执行完毕后得到嵌有附加信息的加密图像,然后判断第一像素集合中的第Numf1+2个像素点开始的所有像素点是否已全部处理完毕,如果是,则结束秘密数据隐藏过程以及不执行秘密数据提取和图像还原过程;否则,执行步骤1_11;
步骤1_11:数据隐藏者生成一个一维的伪随机二进制序列作为秘密数据,并使用一个第二加密密钥Kenc2生成一个与秘密数据相同长度的伪随机二进制序列作为第二流密码;然后利用第二流密码对秘密数据进行按位异或加密,得到加密秘密数据;其中,第二加密密钥为一个正整数;
步骤1_12:将嵌有附加信息的加密图像中与加密图像中的嵌入区域相对应的区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块;然后按Z字型扫描方式的顺序对该区域中的每个图像块进行块索引号标记;接着按块索引号从小到大的顺序,并按Z字型扫描方式的顺序对每个图像块中的所有像素点进行先后排序,将该区域中的所有图像块中的所有像素点排列构成第二像素集合,第二像素集合中包含有Numblock×m×n个像素点;再从第二像素集合中的所有像素点的像素值的8位二进制形式构成的序列中提取出前log2(M×N)位二进制数,并转换为一个正整数,该正整数作为待提取的标签二进制序列的长度,记为length1;之后从第二像素集合中的所有像素点的像素值的8位二进制形式构成的序列中自第log2(M×N)+1位二进制数开始提取出length1位二进制数,将提取出的length1位二进制数构成的二进制序列作为提取的标签二进制序列;最后利用算术编码将提取的标签二进制序列恢复成标签原值序列;其中,块索引号按序从1至Numblock进行标记;
步骤1_13:在步骤1_12的基础上,将第二像素集合中的第Numf1+2+length2个像素点作为第一起始像素点,设定第一起始像素点所在的图像块为嵌有附加信息的加密图像中的第k个图像块,将标签原值序列中从左到右且从1开始计数的第k个标签原值作为第一起始标签原值,从第一起始标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为0,若为0,则对第二像素集合中从第一起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为0,则将第二像素集合中从第一起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,同时从加密秘密数据中未被提取过的数据中按从左到右的顺序依次提取出连续的Lcur位二进制数并嵌入当前遍历的像素点中,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至从第一起始像素点开始的所有像素点处理完毕或标签原值序列中的所有标签原值遍历完毕,结束加密秘密数据的嵌入过程,得到嵌有秘密数据的加密图像;其中,length2为引入的长度变量,length2=8×Numlabel-Sumlabel,Numlabel表示标签原值序列中值不为8的标签原值的个数,Sumlabel表示标签原值序列中值不为8的标签原值的值之和,Lcur表示当前遍历的标签原值的值;
所述的秘密数据提取和图像还原的具体过程为:
步骤2_1:接收者将嵌有秘密数据的加密图像中与原始图像中的所有图像块构成的区域相对应的区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块;然后按Z字型扫描方式的顺序对该区域中的每个图像块进行块索引号标记;接着按块索引号从小到大的顺序,并按Z字型扫描方式的顺序对每个图像块中的所有像素点进行先后排序,将该区域中的所有图像块中的所有像素点排列构成第三像素集合,第三像素集合中包含有Numblock×m×n个像素点;再从第三像素集合中的所有像素点的像素值的8位二进制形式构成的序列中提取出前log2(M×N)位二进制数,并转换为一个正整数,该正整数作为待提取的标签二进制序列的长度,记为length1;之后从第三像素集合中的所有像素点的像素值的8位二进制形式构成的序列中自第log2(M×N)+1位二进制数开始提取出length1位二进制数,将提取出的length1位二进制数构成的二进制序列作为提取的标签二进制序列,并将标签二进制序列中的最后一位二进制数对应的像素点的下一个像素点作为第二起始像素点;最后将提取的log2(M×N)位二进制数和提取的标签二进制序列按先后顺序联合起来构成提取端第一附加信息;其中,块索引号按序从1至Numblock进行标记;
步骤2_2:利用算术编码将提取的标签二进制序列恢复成标签原值序列;然后根据标签原值序列计算待提取的第二附加信息的长度,记为length4,length4=8×Numlabel-Sumlabel;接着设定第二起始像素点所在的图像块为嵌有秘密数据的加密图像中的第k个图像块,将标签原值序列中从左到右且从1开始计数的第k个标签原值作为第二起始标签原值,从第二起始标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为0,若为0,则对第三像素集合中从第二起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为0,则将第三像素集合中从第二起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,从当前遍历的像素点的像素值的8位二进制形式中从左到右提取出第1位至第Lcur位二进制数,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至共提取得到length4位二进制数,将提取得到的length4位二进制数按像素点的先后顺序排列构成的序列作为提取端第二附加信息,并将提取端第二附加信息中的最后一位二进制数对应的像素点的下一个像素点作为第三起始像素点;其中,1≤k≤Numblock,Numlabel表示标签原值序列中值不为8的标签原值的个数,Sumlabel表示标签原值序列中值不为8的标签原值的值之和,Lcur表示当前遍历的标签原值的值;
步骤2_3:设定第三起始像素点所在的图像块为嵌有秘密数据的加密图像中的第k个图像块,将标签原值序列中从左到右且从1开始计数的第k个标签原值作为第三起始标签原值,从第三起始标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为0,若为0,则对第三像素集合中从第三起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为0,则将第三像素集合中从第三起始像素点开始的属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,从当前遍历的像素点的像素值的8位二进制形式中从左到右提取出第1位至第Lcur位二进制数,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至从第三起始像素点开始的所有像素点处理完毕或标签原值序列中的所有标签原值遍历完毕,将提取的二进制数按像素点的先后顺序排列构成的序列作为提取端加密秘密数据;
步骤2_4:使用第二加密密钥Kenc2生成一个与提取端加密秘密数据相同长度的伪随机二进制序列作为第三流密码;然后利用第三流密码对提取端加密秘密数据进行按位异或解密,得到解密秘密数据,实现了秘密数据提取;
步骤2_5:在标签原值序列中从左到右的第1个标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为8,若为8,则对第三像素集合中属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为8,则将第三像素集合中属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,同时从提取端第二附加信息中未被提取过的二进制数中从左到右依次提取出8-Lcur位二进制数嵌入到当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位到8位中,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至提取端第二附加信息中的所有二进制数嵌入完毕,得到提取端加密图像;其中,Lcur表示当前遍历的标签原值的值;
步骤2_6:使用第一加密密钥Kenc1生成一个维数为M×N的伪随机矩阵作为第四流密码;然后利用第四流密码对提取端加密图像中的每个像素点进行解密,得到提取端修正图像,将提取端修正图像中坐标位置为(i',j')的像素点的像素值记为
Figure FDA0003480515440000081
Figure FDA0003480515440000082
其中,1≤i'≤M,1≤j'≤N,
Figure FDA0003480515440000083
表示提取端加密图像中坐标位置为(i',j')的像素点的像素值,符号
Figure FDA0003480515440000084
表示异或操作符号,R(i',j')表示第四流密码中下标位置为(i',j')的元素的值;
步骤2_7:将提取端修正图像中与原始图像中的所有图像块构成的区域相对应的区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块;然后按Z字型扫描方式的顺序对该区域中的每个图像块进行块索引号标记;接着按块索引号从小到大的顺序,并按Z字型扫描方式的顺序对每个图像块中的所有像素点进行先后排序,将该区域中的所有图像块中的所有像素点排列构成第四像素集合,第四像素集合中包含有Numblock×m×n个像素点;
步骤2_8:在标签原值序列中从左到右的第1个标签原值开始按先后顺序依次遍历后续标签原值,判断当前遍历的标签原值是否为8,若为8,则对第四像素集合中属于当前遍历的标签原值所对应的图像块的像素点不进行处理,继续遍历下一个标签原值;若不为8,则将第四像素集合中属于当前遍历的标签原值所对应的图像块的像素点提取出构成一个子集,按先后顺序依次遍历该子集中的每个像素点,若当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位为0,那么认为当前遍历的像素点的预测误差值为正数,若当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位为1,那么将当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位修改为0,使当前遍历的像素点的预测误差值为负数,在该子集中的所有像素点全部处理完毕之后,继续遍历下一个标签原值;直至标签原值序列中的所有标签原值遍历完毕,得到提取端预测误差图,提取端预测误差图中的预测误差值带有正负号;
步骤2_9:将提取端预测误差图中与原始图像中的所有图像块构成的区域相对应的区域划分成Numblock个尺寸大小为m×n的互不重叠的图像块;然后使用置乱密钥Kscr生成一个长度为Numblock的第二置乱随机序列,第二置乱随机序列中的随机数为1到Numblock之间的正整数且不重复;再根据第二置乱随机序列置乱提取端预测误差图中的所有图像块,得到步骤1_2中的置乱图像对应的恢复图像;其中,第二置乱随机序列与第一置乱随机序列一致;
步骤2_10:将步骤1_2中的置乱图像对应的恢复图像输入到MED预测器中,MED预测器输出步骤1_1中的原始图像对应的恢复图像,实现了图像还原。
2.根据权利要求1所述的一种基于块容量标签的大容量加密图像信息隐藏方法,其特征在于所述的步骤1_2中,置乱图像的获取过程为:按Z字型扫描方式的顺序对原始图像中的每个图像块进行块索引号标记;然后遍历第一置乱随数序列中的每个随机数,对于第一置乱随数序列中的第k个随机数,设定该随机数的值为τ,那么将原始图像中块索引号为k的图像块作为置乱图像中块索引号为τ的图像块;其中,块索引号按序从1至Numblock进行标记,k∈[1,Numblock],τ∈[1,Numblock]。
3.根据权利要求1或2所述的一种基于块容量标签的大容量加密图像信息隐藏方法,其特征在于所述的步骤1_8中,将Numf1个第一子信息一一对应嵌入像素集合中的第1个至第Numf1个像素点中的具体过程为:对于像素集合中的第f1个像素点,将第f1个第一子信息替换该像素点的像素值的8位二进制形式;其中,f1∈[1,Numf1];
将末子信息嵌入像素集合中的第Numf1+1个像素点中的具体过程为:将末子信息替换像素集合中的第Numf1+1个像素点的像素值的8位二进制形式中从左开始的与末子信息同长度的若干位二进制位。
4.根据权利要求3所述的一种基于块容量标签的大容量加密图像信息隐藏方法,其特征在于所述的步骤1_9中,将第二附加信息中提取出的连续的Lf2位二进制位嵌入当前遍历的像素点中的具体过程为:将第二附加信息中提取出的连续的Lf2位二进制位替换当前遍历的像素点的像素值的8位二进制形式中从左开始的Lf2位二进制位;
将第二附加信息中提取出的未被提取的二进制位全部嵌入当前遍历的像素点中的具体过程为:将第二附加信息中提取出的二进制位替换当前遍历的像素点的像素值的8位二进制形式中从左开始的相同位数的二进制位。
5.根据权利要求4所述的一种基于块容量标签的大容量加密图像信息隐藏方法,其特征在于所述的步骤1_13中,从加密秘密数据中未被提取过的数据中按从左到右的顺序依次提取出连续的Lcur位二进制数并嵌入当前遍历的像素点中的具体过程为:从加密秘密数据中未被提取过的数据中按从左到右的顺序依次提取出连续的Lcur位二进制数替换当前遍历的像素点的像素值的8位二进制形式中从左开始的Lcur位二进制位。
6.根据权利要求5所述的一种基于块容量标签的大容量加密图像信息隐藏方法,其特征在于所述的步骤2_5中,从提取的第二附加信息中未被提取过的二进制数中从左到右依次提取出8-Lcur位二进制数嵌入到当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位到8位中的具体过程为:从提取的第二附加信息中未被提取过的二进制数中从左到右依次提取出8-Lcur位二进制数替换当前遍历的像素点的像素值的8位二进制形式中的第Lcur+1位到8位。
7.根据权利要求6所述的一种基于块容量标签的大容量加密图像信息隐藏方法,其特征在于所述的步骤2_9中,步骤1_2中的置乱图像对应的恢复图像的获取过程为:按Z字型扫描方式的顺序对提取端预测误差图中的每个图像块进行块索引号标记;然后遍历第二置乱随数序列中的每个随机数,对于第二置乱随数序列中的第ν个随机数,设定该随机数的值为γ,那么将提取端预测误差图中块索引号为γ的图像块作为恢复图像中块索引号为ν的图像块;其中,块索引号按序从1至Numblock进行标记,ν∈[1,Numblock],γ∈[1,Numblock]。
CN202210066640.7A 2022-01-20 2022-01-20 一种基于块容量标签的大容量加密图像信息隐藏方法 Withdrawn CN114567711A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210066640.7A CN114567711A (zh) 2022-01-20 2022-01-20 一种基于块容量标签的大容量加密图像信息隐藏方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210066640.7A CN114567711A (zh) 2022-01-20 2022-01-20 一种基于块容量标签的大容量加密图像信息隐藏方法

Publications (1)

Publication Number Publication Date
CN114567711A true CN114567711A (zh) 2022-05-31

Family

ID=81712701

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210066640.7A Withdrawn CN114567711A (zh) 2022-01-20 2022-01-20 一种基于块容量标签的大容量加密图像信息隐藏方法

Country Status (1)

Country Link
CN (1) CN114567711A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114996745A (zh) * 2022-07-29 2022-09-02 湖南工商大学 基于舆情事件智能搜寻的媒体资产管理系统
CN115310114A (zh) * 2022-10-08 2022-11-08 南通观云网络科技有限公司 一种小程序用户数据处理方法
CN115842682A (zh) * 2023-02-17 2023-03-24 杭银消费金融股份有限公司 一种用于网络防护的权限风险分析方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114996745A (zh) * 2022-07-29 2022-09-02 湖南工商大学 基于舆情事件智能搜寻的媒体资产管理系统
CN114996745B (zh) * 2022-07-29 2022-11-22 湖南工商大学 基于舆情事件智能搜寻的媒体资产管理系统
CN115310114A (zh) * 2022-10-08 2022-11-08 南通观云网络科技有限公司 一种小程序用户数据处理方法
CN115842682A (zh) * 2023-02-17 2023-03-24 杭银消费金融股份有限公司 一种用于网络防护的权限风险分析方法及系统

Similar Documents

Publication Publication Date Title
Zhang et al. Reference sharing mechanism for watermark self-embedding
CN113194213B (zh) 一种基于秘密共享和混沌映射的png图像信息隐藏和恢复方法
CN114567711A (zh) 一种基于块容量标签的大容量加密图像信息隐藏方法
JP4669187B2 (ja) 圧縮イメージ内に透かしを組み込む方法、圧縮されたイメージからすかしを回復する方法、ならびに記録媒体
CN110753226B (zh) 一种高容量密文域图像可逆数据隐藏方法
CN110390623B (zh) 一种基于秘密分享的图像媒体安全认证恢复方法
CN111861844A (zh) 一种基于图像分块认证的可逆水印方法
Chan An image authentication method by applying Hamming code on rearranged bits
CN103268588A (zh) 基于载体图像校验码的加密域无损可逆信息隐藏方法
CN103440617A (zh) 提高医学图像安全的图像处理方法
CN113114869B (zh) 基于msb预测的密文域高容量图像可逆数据隐藏方法
CN114745475B (zh) 一种鲁棒的加密图像可逆信息隐藏方法
CN107846530A (zh) 数字水印算法
Huang et al. A divide-and-conquer fragile self-embedding watermarking with adaptive payload
Liu et al. Lossless image hierarchical recovery based on POB number system
Gao et al. High-performance reversible data hiding in encrypted images with adaptive Huffman code
CN104794673A (zh) 利用最高有效位的加密域可逆数字水印实现方法
Li et al. Attack and improvement of the joint fingerprinting and decryption method for vector quantization images
Ashari et al. Image Steganography Analysis Using GOST Algorithm and PRNG Based on LSB.
CN115190216A (zh) 基于预测误差图的加密图像可逆数据隐藏及解密方法
CN114119332A (zh) 基于区块链的数字水印写入和读取方法及装置
CN114511437A (zh) 基于参考矩阵和lsb替换的水印嵌入和图像自恢复方法
Vaish et al. A systematic review on various reversible data hiding techniques in digital images
Raj et al. A survey on reversible data hiding in encrypted image
Sulfi et al. A Secure Watermarking Based Image Integrity Verification in IoMT

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
WW01 Invention patent application withdrawn after publication

Application publication date: 20220531

WW01 Invention patent application withdrawn after publication