CN109151486A - 大容量的jpeg图像比特流加密域可逆数据隐藏方法 - Google Patents

大容量的jpeg图像比特流加密域可逆数据隐藏方法 Download PDF

Info

Publication number
CN109151486A
CN109151486A CN201811040706.5A CN201811040706A CN109151486A CN 109151486 A CN109151486 A CN 109151486A CN 201811040706 A CN201811040706 A CN 201811040706A CN 109151486 A CN109151486 A CN 109151486A
Authority
CN
China
Prior art keywords
coefficient
entropy coding
scramble
ecs
bit stream
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.)
Granted
Application number
CN201811040706.5A
Other languages
English (en)
Other versions
CN109151486B (zh
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.)
Southwest Jiaotong University
Original Assignee
Southwest Jiaotong University
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 Southwest Jiaotong University filed Critical Southwest Jiaotong University
Priority to CN201811040706.5A priority Critical patent/CN109151486B/zh
Publication of CN109151486A publication Critical patent/CN109151486A/zh
Application granted granted Critical
Publication of CN109151486B publication Critical patent/CN109151486B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

一种大容量的JPEG图像比特流加密域可逆数据隐藏方法,用户在JPEG比特流中根据加密密钥对每个图像块中所有熵编码的扩展位异或加密,并对除最后一个非零交流系数外的其余交流系数进行伪随机置乱,再将所有的图像块熵编码进行伪随机置乱;云端根据隐藏密钥对比特流密文中的交流系数进行直方图平移嵌入额外信息,并可以进行无损提取;接收者根据加密密钥对比特流密文中所有的密文图像块熵编码进行伪随机置乱恢复,然后在每个密文图像块熵编码中进行交流系数置乱恢复和扩展位异或解密,得到与原始JPEG比特流相同的解密比特流。该方法不仅实现了对熵编码的扩展位进行加密,同时也对熵编码的霍夫曼编码进行了加密;其隐写容量大,安全性高。

Description

大容量的JPEG图像比特流加密域可逆数据隐藏方法
技术领域
本发明涉及一种大容量的JPEG图像的加密域可逆数据隐藏方法。
背景技术
随着云计算的快速发展,在云端存储的数字图像安全和隐私保护引起了广泛关注。图像加密域可逆信息隐藏(RDH-EI:Reversible Data Hiding in Encrypted Image)是一种加密原始图像后,在密文图像(加密域)中可逆地隐藏额外信息,并且在额外信息提取后,原始图像可以被无损重建的技术。该技术不仅能够通过加密实现对云端数字图像隐私保护,而且能够通过在密文图像中隐藏额外信息以方便其管理;同时,在接收端接收者能够提取出额外信息并恢复原始图像。近年来,研究者提出多种基于空域图像(未压缩图像)的RDH-EI方法,在隐藏容量、安全性和可逆性等方面取得了一系列研究成果。不过,由于加密后的空域图像类似随机噪声,不能再进行图像的无损压缩,导致其体积大,会占用更多的云端存储空间资源。JPEG格式的图像是一种使用JPEG标准压缩,并使用JFIF标准封装图像数据的图像文件,因为JPEG格式的图像文件尺寸较小,被广泛应用于互联网和数码相机领域,也更加适用于云端存储,因此,对JPEG图像(比特流)的加密域可逆数据隐藏,更具有实际应用价值和意义。
2014年Z.Qian等人(Z.Qian,X.Zhang,and S.Wang,“Reversible data hiding inencrypted JPEG bitstream,”IEEE Transactions on Multimedia,vol.16,no.5,pp.1486-1491,2014)首次提出了一种基于JPEG比特流RDH-EI方法。该方法对JPEG比特流的加密是通过对熵编码的扩展位进行异或加密实现,由于该加密方法保留了JPEG数据结构,是一种格式兼容的加密方法,所以通过该加密方法得到的JPEG比特流密文符合JPEG的解码标准,能够直接解码成不可认知的图像。但该算法存在隐写容量低(大小为512×512的图像的隐写容量平均为750比特),不能抵抗唯密文攻击的问题。为了提高该算法的安全性和隐写容量,2017年,C.Chang等人(C.Chang,Z.Lu,and L.Wu,“A separable reversible datahiding scheme for encrypted JPEG bitstreams,”Signal Processing,vol.133,pp.135-143,2017.)提出一种基于JPEG比特流加密前预留空间的RDH-EI方法,该方法增大了隐写容量(大小为512×512的图像隐写容量平均为1052.4比特),并提高了加密算法的安全性。
为了进一步提高该算法的隐写容量,文献1(Z.Qian,H Xu,X.Luo and X.Zhang,“New Framework of Reversible Data Hiding in Encrypted JPEG Bitstreams,”IEEETransactions on Circuits and Systems for Video Technology,IEEE Transactionson Circuits and Systems for Video Technology PP(99):1-1·January 2018)提出了一种基于JPEG比特流RDH-EI新方法。该方法为了提高加密算法的安全性,根据加密密钥将JPEG比特流中的图像块熵编码随机分为信息隐藏熵编码和头部隐藏熵编码两个部分;对信息隐藏熵编码的扩展位进行异或加密得到符合JPEG的解码标准的JPEG比特流密文,并通过对信息隐藏熵编码密文的交流系数进行直方图平移和修改头文件中交流系数的霍夫曼编码表来实现额外信息的嵌入。同时,使用加密密钥对头部隐藏熵编码加密并隐藏到JPEG图像的头文件中。上述算法只使用部分图像块熵编码(信息隐藏熵编码)作为信息嵌入的载体,使隐写容量受到影响,并且由于将隐藏熵编码信息隐藏至JPEG头文件中,使得加密后的比特流解码得到的加密图像大小与原始图像不一致。
此外,以上算法中的加密方法只对熵编码后部的扩展位进行异或加密,熵编码其他部位的霍夫曼编码,则没有发生变化;使其加密算法存在安全隐患。
发明内容
本发明的目的是为了提供一种大容量的JPEG图像比特流加密域可逆数据隐藏方法,该方法的隐写容量大,安全性高。
本发明实现其发明目的所采用的技术方案是,一种大容量的JPEG图像比特流加密域可逆数据隐藏,包括如下步骤:
A、JPEG比特流加密
A1、交流系数置乱
A1.1、比特流数据读取:
用户读取大小为H×W的JPEG格式的图像X,获得图像X的原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSn,...,ECSN,EOI},其中:
SOI为图像开始标记符,JH为JPEG头文件,EOI为图像结束标记符;
ECSn为图像中的第n个图像块熵编码,N为图像块熵编码的个数,
ECSn={DCC<n>,ACC<n,1>,ACC<n,2>,...,ACC<n,i>,...ACC<n,I>,EOB};DCC<n>是第n个图像块熵编码的直流系数熵编码,ACC<n,i>是ECSn中第i个交流系数熵编码,EOB是图像块熵编码结束标记符,I为交流系数熵编码的个数;
A1.2、交流系数解码:
对原始比特流J中的第n个图像块熵编码ECSn中所有的交流系数熵编码ACC<n,i>,根据JPEG解码标准进行熵解码,得到第n个图像块熵编码ECSn的交流系数Cn,Cn={ACn,1,ACn,2,...,ACn,t,...,ACn,63},其中ACn,t为第n个图像块熵编码ECSn的交流系数Cn中的第t个交流系数,t=1,2,...,63;
A1.3、交流系数分组:
找出第n个图像块熵编码ECSn的交流系数Cn中最后一个非零交流系数,记为ACn,T,其序号为T;用户对第n个图像块熵编码ECSn的交流系数Cn中的前T个交流系数ACn,t依次进行分组:
如果交流系数ACn,t连续为0,则将这些交流系数ACn,t构成一个分组否则,一个交流系数ACn,t独立构成一个分组然后,将这些分组依次拼接,得到第n个图像块熵编码ECSn的系数分组序列Bn其中r为第n个图像块熵编码ECSn的交流系数分组的序号,Rn为第n个图像块熵编码ECSn的交流系数分组的个数;
A1.4、交流系数分组序列置乱:
在第n个图像块熵编码ECSn的交流系数分组序列Bn中,对前Rn-1个交流系数分序列进行分类,如果交流系数分组中的交流系数全为0,记为交流系数为零的分组否则,记为交流系数非零的分组
将所有的交流系数非零的分组依次拼接,得到交流系数非零的分组序列Bn,1其中r’为交流系数非零的分组的序号,r1为交流系数非零的分组的个数;
然后,根据加密密钥K1对交流系数非零的分组序列Bn,1进行伪随机置乱生成置乱交流系数非零的分组序列
将所有的交流系数为零的分组依次拼接,得到交流系数为零的分组序列Bn,0其中r”为交流系数为零的分组的序号,r0为交流系数为零的分组的个数;r0+r1=Rn-1;r0≤r1
然后,根据加密密钥K1对交流系数为零的分组序列Bn,0进行伪随机置乱生成置乱交流系数为零的分组序列
将置乱交流系数为零的分组序列中的置乱交流系数为零的分组与置乱交流系数非零的分组序列中前r0个置乱交流系数非零的分组依次交替拼接,再与置乱交流系数非零的分组序列中后r1-r0个置乱交流系数非零的分组和系数分组序列Bn中最后一个系数分组依次拼接,得到生成置乱交流系数分组序列 其中r”’为置乱交流系数分组的序号;
A1.5、置乱交流系数生成:
最后,用户将置乱交流系数分组序列中所有的交流系数与63-T个0,依次拼接,生成伪随机置乱系数 并通过下式得到置乱交流系数C′n
A2、系数置乱比特流生成:
对置乱交流系数C′n进行熵编码,得到置乱交流系数熵编码 并将第n个图像块熵编码ECSn中直流系数的熵编码DCC<n>与置乱交流系数熵编码拼接,组成第n个系数置乱熵编码ECS′n
将图像开始标记符SOI,JPEG头文件JH,所有的系数置乱熵编码ECS′n以及图像结束标记符EOI依次拼接,得到系数置乱比特流J′,J′={SOI,JH,ECS′1,ECS′2,...,ECS′N,EOI};
A3、系数置乱熵编码异或加密:
在系数置乱比特流J′的第n个系数置乱熵编码ECS′n中,ECS′n={DCC<n>,ACC′<n,1>,ACC′<n,2>,...ACC′<n,l>,EOB},直流系数置乱的熵编码DCC<n>,DCC<n>=[DCH<n>,DCA<n>]由直流系数置乱霍夫曼编码DCH<n>和直流系数置乱扩展位DCA<n>组成;交流系数置乱熵编码ACC′<n,i>,ACC′<n,i>=[ACH′<n,i>,ACA′<n,i>],由交流系数置乱霍夫曼编码ACH<n,i>和交流系数置乱扩展位ACA<n,i>组成,i=1,2,...,I;
第n个系数置乱熵编码ECS′n中,提取直流系数置乱熵编码DCC<n>的扩展位DCA<n>和所有交流系数置乱熵编码ACC,<n,i>的扩展位ACA′<n,i>,组成第n个块扩展位Ln,Ln={DCA<n>,ACA′<n,1>,ACA′<n,2>,...,ACA′<n,I>};
然后,将所有的块扩展位Ln依次拼接得到比特流扩展位L,L={L1,L2,...,Ln,...LN};用户使用加密密钥K1对比特流扩展位L按位异或加密,生成比特流扩展位密文L′,L′={L′1,L′2,...,L′n,...,L′N};
A4、比特流密文生成:
将第n个系数置乱熵编码ECS′n中的直流系数置乱霍夫曼编码DCH<n>和第n个块扩展位密文L′n,L′n={DCA′<n>,ACA"<n,1>,ACA"<n,2>,...,ACA"<n,i>,...ACA"<n,l>}中的直流系数置乱扩展位密文DCA′<n>进行拼接,得到第n个系数置乱熵编码ECS′n中直流系数熵编码密文DCC′<n>,DCC′<n>=[DCH<n>,DCA′<n>];
然后,将系数置乱熵编码ECS′n中的交流系数的霍夫曼编码ACH<n,i>和块扩展位密文L′n中第i个交流系数的扩展位密文ACA"<n,i>进行依次重组,得到系数置乱熵编码ECS′n中第i个交流系数熵编码密文ACC"<n,i>,ACC"<n,i>=[ACH<n,i>,ACA"<n,i>],i=1,2,...,I;
最后,将第n个系数置乱熵编码ECS′n中直流系数熵编码密文DCC′<n>和I个交流系数熵编码密文ACC"<n,i>依次拼接,得到第n个图像块熵编码密文ECS″n,ECS″n={DCC′<n>,ACC"<n,1>,ACC"<n,2>,...ACC"<n,l>,EOB};所有的图像块熵编码密文ECS″n依次拼接组成熵编码密文序列E″,E″={ECS″1,ECS″2,...,ECS″N};
将图像开始标记代码SOI,JPEG头文件JH,熵编码密文序列E″以及图像结束标记代码EOI依次拼接,得到比特流密文J″,J″={SOI,JH,ECS″1,ECS″2,...,ECS″N,EOI};
A5、图像块熵编码密文置乱:
在比特流密文J"中,用户根据加密密钥K1对熵编码密文序列E″中的图像块熵编码密文ECS″n进行伪随机置乱得到初始块置乱熵编码密文序列E*
并将图像开始标记符SOI,JPEG头文件JH,块置乱熵编码密文序列E*以及图像结束标记符EOI依次拼接,得到初始块置乱比特流J*
A6、块置乱比特流生成:
在初始块置乱比特流J*中,将第n个初始块置乱熵编码数据 中的直流系数熵编码DCC*<n>进行熵解码,得到第n个初始块置乱熵编码数据的直流系数Dn
将所有初始块置乱熵编码数据的直流系数Dn依次拼接,得到初始块置乱比特流J*的直流系数序列D,D={D1,D2,...,Dn,...DN};然后,对直流系数序列D进行差分脉冲调制编码,得到差分脉冲调制编码直流系数序列Dc
然后,将差分脉冲调制编码序列Dc中的直流系数进行熵编码,得到初始块置乱直流系数熵编码并替换初始块置乱熵编码数据中的直流系数熵编码DCC*<n>,得到块置乱熵编码 所有的块置乱熵编码依次拼接组成块置乱熵编码序列E1
最后,将图像开始标记代码SOI,JPEG头文件JH,块置乱熵编码序列E1以及图像结束标记代码EOI依次拼接,得到块置乱比特流J1 并上传到云端;
B、信息隐藏
在上传到云端的块置乱比特流J1中,云端根据直方图平移方法,将额外信息U分段在块置乱熵编码中的交流系数中,从前至后依次进行信息隐藏;分段隐藏额外信息后的块置乱熵编码记为携密图像块熵编码
最后,将图像开始标记代码SOI,JPEG头文件JH,所有的携密图像块熵编码以及图像结束标记代码EOI依次拼接,得到携密比特流Jm
C、信息提取
在携密比特流Jm中,云端根据进行B步骤中的直方图平移方法的逆操作,提取出额外信息U,对携密比特流Jm中的交流系数进行恢复,得到置乱比特流J1;最后,云端将置乱比特流J1发送给接收者;
D、JPEG比特流解密
D1、初始块置乱比特流恢复:
接收者首先在块置乱比特流J1中提取第n个块置乱熵编码中的直流系数熵编码并进行熵解码,得到第n个块置乱熵编码数据的直流系数
然后,将所有的块置乱熵编码的直流系数进行拼接,得到块置乱比特流J1的差分脉冲调制编码直流系数序列Dc
对差分脉冲调制编码直流系数序列Dc进行差分脉冲调制解码,得到初始块置乱比特流J*的直流系数序列D,D={D1,D2,...,Dn,...DN};将第n个初始块置乱熵编码数据的直流系数Dn进行熵编码,得到第n个初始块置乱熵编码数据的直流系数熵编码DCC*<n>,并替换块置乱熵编码数据中的直流系数熵编码得到初始块置乱熵编码数据将所有的初始块置乱熵编码数据进行拼接,得到初始块置乱熵编码密文序列E*
最后,将图像开始标记符SOI,JPEG头文件JH,初始块置乱熵编码密文序列E*以及图像结束标记符EOI依次拼接,得到初始块置乱比特流J*
D2、置乱恢复比特流密文:
接收者根据加密密钥K1对初始块置乱比特流J*中初始熵编码密文序列E*进行置乱恢复,得到图像块熵编码密文序列E″,E″={ECS″1,ECS″2,...,ECS″N};
并将图像开始标记符SOI,JPEG头文件JH,图像块熵编码密文序列E″以及图像结束标记符EOI依次拼接,恢复得到比特流密文J″,J″={SOI,JH,ECS″1,ECS″2,...,ECS″N,EOI};
D3、图像块熵编码密文异或解密:
在第n个图像块熵编码密文ECS"n中,将其中的直流系数的扩展位DCA′<n>和交流系数的扩展位ACA"<n,i>,组成第n个图像块熵编码密文ECS"n的块扩展位密文L′n;然后,将比特流密文J″中的所有块扩展位密文L′n依次拼接,得到比特流扩展位密文L′,L′={L′1,L′2,...,L′N};
接收者使用加密密钥K1对比特流扩展位密文L′按位异或解密,得到比特流扩展位L;
D4、系数置乱比特流恢复:
将第n个图像块熵编码密文ECS"n的直流系数的霍夫曼编码DCH<n>和块扩展位Ln中直流系数的扩展位DCA<n>进行重组,得到第n个图像块熵编码ECS′n中直流系数的熵编码DCC<n>,DCC<n>=[DCH<n>,DCA<n>];
然后,将第n个图像块熵编码密文ECS"n的交流系数的霍夫曼编码ACH<n,i>和块扩展位Ln中交流系数的扩展位ACA′<n,i>进行重组,得到第n个图像块熵编码ECS′n中第i个交流系数的熵编码ACC′<n,i>,ACC′<n,i>=[ACH<n,i>,ACA′<n,i>],i=1,2,...,I;最后将直流系数的熵编码DCC<n>和1个交流系数的熵编码ACC′<n,i>依次拼接,得到图像块熵编码ECS′n
最后,将图像开始标记代码SOI,JPEG头文件JH,所有的图像块熵编码ECS′n以及图像结束标记代码EOI依次拼接,得到系数置乱比特流J′,J′={SOI,JH,ECS′1,ECS′2,...,ECS′N,EOI};
D5、交流系数置乱恢复:
将系数置乱比特流J′,J′={SOI,JH,ECS′1,ECS′2,...,ECS′N,EOI}替换为原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSn,...,ECSN,EOI},将替换后的原始比特流J进行A1.2步骤至A1.5步骤的操作得到第n个置乱交流系数C′n,最后,将第n个置乱交流系数C′n替换为第n个图像块熵编码ECSn的交流系数Cn
D6、原始比特流恢复:
将D5步骤得到的第n个图像块熵编码ECSn的交流系数Cn进行霍夫曼编码,得到第n个图像块熵编码ECSn中交流系数的原始编码 并与第n个图像块熵编码ECSn中直流系数的熵编码DCC<n>组成原始图像块熵编码ECSn
将图像开始标记符SOI,JPEG头文件JH,所有的原始图像块熵编码ECSn以及图像结束标记符EOI依次拼接,得到原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSN,EOI}。
与现有技术相比,本发明的有益效果是:
一、本发明在比特流加密过程中首先根据加密密钥对每个图像块内的交流系数进行随机置乱,然后在对系数置乱的JPEG比特流中熵编码的扩展位进行加密,最后对JPEG数据流中的每块数据编码部分进行置乱生成比特流密文;该加密方法不仅实现对图像熵编码的扩展位加密,而且实现了对图像熵编码的霍夫曼编码的加密,提高了加密算法的安全性。
二、本发明使用JPEG比特流中所有的图像块熵编码作为额外信息嵌入的载体,无需在JPEG头文件中隐藏部分图像块熵编码,提高了比特流中图像块熵编码利用率,增大了隐写容量。
三、本发明在加密过程中,保留了JPEG比特流中的所有的图像块熵编码,使得加密后的JPEG比特流解码得到的图像与原始JPEG图像大小相同;在保证图像安全性的同时,方便了云端对图像的管理。
下面结合附图和具体实施方式对本发明作进一步的详细说明。
附图说明
图1a为本发明仿真实验1使用的量化因子Q=80的JPEG格式的Lena图像。
图1b为本发明仿真实验1得到的图1a的比特流密文解码图像。
图1c为本发明仿真实验1得到的图1a的携密比特流解码图像。
图1d为本发明仿真实验1得到的图1a的解密比特流解码图像。
图2a为本发明仿真实验2使用的量化因子Q=80的Baboon原始图像。
图2b为本发明仿真实验2得到的图2a的比特流密文解码图像。
图2c为本发明仿真实验2得到的图2a的携密比特流解码图像。
图2d为本发明仿真实验2得到的图2a的解密比特流解码图像。
图3为仿真实验2得到的本发明方法与文献1的最大隐写容量对比图像。
图4为本发明仿真实验2得到的最大隐写容量与量化因子关系图像。
具体实施方式
实施例
本发明的一种具体实施方式是,一种大容量的JPEG图像比特流加密域可逆数据隐藏方法,包括如下步骤:
A、JPEG比特流加密
A1、交流系数置乱
A1.1、比特流数据读取:
用户读取大小为H×W的JPEG格式的图像X,获得图像X的原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSn,...,ECSN,EOI},其中:
SOI为图像开始标记符,JH为JPEG头文件,EOI为图像结束标记符;
ECSn为图像中的第n个图像块熵编码,N为图像块熵编码的个数,
ECSn={DCC<n>,ACC<n,1>,ACC<n,2>,...,ACC<n,i>,...ACC<n,I>,EOB};DCC<n>是第n个图像块熵编码的直流系数熵编码,ACC<n,i>是ECSn中第i个交流系数熵编码,EOB是图像块熵编码结束标记符,I为交流系数熵编码的个数;
A1.2、交流系数解码:
对原始比特流J中的第n个图像块熵编码ECSn中所有的交流系数熵编码ACC<ni>,根据JPEG解码标准进行熵解码,得到第n个图像块熵编码ECSn的交流系数Cn,Cn={ACn,1,ACn,2,...,ACn,t,...,ACn,63},其中ACn,t为第n个图像块熵编码ECSn的交流系数Cn中的第t个交流系数,t=1,2,...,63;
A1.3、交流系数分组:
找出第n个图像块熵编码ECSn的交流系数Cn中最后一个非零交流系数,记为ACn,T,其序号为T;用户对第n个图像块熵编码ECSn的交流系数Cn中的前T个交流系数ACn,t依次进行分组:
如果交流系数ACn,t连续为0,则将这些交流系数ACn,t构成一个分组否则,一个交流系数ACn,t独立构成一个分组然后,将这些分组依次拼接,得到第n个图像块熵编码ECSn的系数分组序列Bn其中r为第n个图像块熵编码ECSn的交流系数分组的序号,Rn为第n个图像块熵编码ECSn的交流系数分组的个数;
A1.4、交流系数分组序列置乱:
在第n个图像块熵编码ECSn的交流系数分组序列Bn中,对前Rn-1个交流系数分序列进行分类,如果交流系数分组中的交流系数全为0,记为交流系数为零的分组否则,记为交流系数非零的分组
将所有的交流系数非零的分组依次拼接,得到交流系数非零的分组序列Bn,1其中r’为交流系数非零的分组的序号,r1为交流系数非零的分组的个数;
然后,根据加密密钥K1对交流系数非零的分组序列Bn,1进行伪随机置乱生成置乱交流系数非零的分组序列
将所有的交流系数为零的分组依次拼接,得到交流系数为零的分组序列Bn,0其中r”为交流系数为零的分组的序号,r0为交流系数为零的分组的个数;r0+r1=Rn-1;r0≤r1
然后,根据加密密钥K1对交流系数为零的分组序列Bn,0进行伪随机置乱生成置乱交流系数为零的分组序列
将置乱交流系数为零的分组序列中的置乱交流系数为零的分组与置乱交流系数非零的分组序列和前r0个置乱交流系数非零的分组依次交替拼接,再与置乱交流系数非零的分组序列中后r1-r0个置乱交流系数非零的分组和系数分组序列Bn中最后一个系数分组依次拼接,得到生成置乱交流系数分组序列 其中r”’为置乱交流系数分组的序号;
A1.5、置乱交流系数生成:
最后,用户将置乱交流系数分组序列中所有的交流系数与63-T个0,依次拼接,生成伪随机置乱系数 并通过下式得到置乱交流系数C′n
A2、系数置乱比特流生成:
对置乱交流系数C′n进行熵编码,得到置乱交流系数熵编码 并将第n个图像块熵编码ECSn中直流系数的熵编码DCC<n>与置乱交流系数熵编码拼接,组成第n个系数置乱熵编码ECS′n
将图像开始标记符SOI,JPEG头文件JH,所有的系数置乱熵编码ECS′n以及图像结束标记符EOI依次拼接,得到系数置乱比特流J′,J′={SOI,JH,ECS′1,ECS′2,...,ECS′N,EOI};
A3、系数置乱熵编码异或加密:
在系数置乱比特流J′的第n个系数置乱熵编码ECS′n中,ECS′n={DCC<n>,ACC′<n,1>,ACC′<n,2>,...ACC′<n,l>,EOB},直流系数置乱的熵编码DCC<n>,DCC<n>=[DCH<n>,DCA<n>]由直流系数置乱霍夫曼编码DCH<n>和直流系数置乱扩展位DCA<n>组成;交流系数置乱熵编码ACC′<n,i>,ACC′<n,i>=[ACH′<n,i>,ACA′<n,i>],由交流系数置乱霍夫曼编码ACH<n,i>和交流系数置乱扩展位ACA<n,i>组成,i=1,2,...,I;
第n个系数置乱熵编码ECS′n中,提取直流系数置乱熵编码DCC<n>的扩展位DCA<n>和所有交流系数置乱熵编码ACC,<n,i>的扩展位ACA′<n,i>,组成第n个块扩展位Ln,Ln={DCA<n>,ACA′<n,1>,ACA′<n,2>,...,ACA′<n,I>};
然后,将所有的块扩展位Ln依次拼接得到比特流扩展位L,L={L1,L2,...,Ln,...LN};用户使用加密密钥K1对比特流扩展位L按位异或加密,生成比特流扩展位密文L′,L′={L′1,L′2,...,L′n,...,L′N};
A4、比特流密文生成:
将第n个系数置乱熵编码ECS′n中的直流系数置乱霍夫曼编码DCH<n>和第n个块扩展位密文L′n,L′n={DCA′<n>,ACA″<n,1>,ACA″<n,2>,...,ACA″<n,i>,...ACA″<n,l>}中的直流系数置乱扩展位密文DCA′<n>进行拼接,得到第n个系数置乱熵编码ECS′n中直流系数熵编码密文DCC′<n>,DCC′<n>=[DCH<n>,DCA′<n>];
然后,将系数置乱熵编码ECS′n中的交流系数的霍夫曼编码ACH<n,i>和块扩展位密文L′n中第i个交流系数的扩展位密文ACA″<n,i>进行依次重组,得到系数置乱熵编码ECS′n中第i个交流系数熵编码密文ACC″<n,i>,ACC"<n,i>=[ACH<n,i>,ACA″<n,i>],i=1,2,...,I;
最后,将第n个系数置乱熵编码ECS′n中直流系数熵编码密文DCC′<n>和I个交流系数熵编码密文ACC″<n,i>依次拼接,得到第n个图像块熵编码密文ECS″n,ECS″n={DCC′<n>,ACC″<n,1>,ACC″<n,2>,...ACC″<n,l>,EOB};所有的图像块熵编码密文ECS″n依次拼接组成熵编码密文序列E″,E″={ECS″1,ECS″2,...,ECS″N};
将图像开始标记代码SOI,JPEG头文件JH,熵编码密文序列E″以及图像结束标记代码EOI依次拼接,得到比特流密文J″,J″={SOI,JH,ECS″1,ECS″2,...,ECS″N,EOI};
A5、图像块熵编码密文置乱:
在比特流密文J″中,用户根据加密密钥K1对熵编码密文序列E″中的图像块熵编码密文ECS″n进行伪随机置乱得到初始块置乱熵编码密文序列E*
并将图像开始标记符SOI,JPEG头文件JH,块置乱熵编码密文序列E*以及图像结束标记符EOI依次拼接,得到初始块置乱比特流J*
A6、块置乱比特流生成:
在初始块置乱比特流J*中,将第n个初始块置乱熵编码数据 中的直流系数熵编码DCC*<n>进行熵解码,得到第n个初始块置乱熵编码数据的直流系数Dn
将所有初始块置乱熵编码数据的直流系数Dn依次拼接,得到初始块置乱比特流J*的直流系数序列D,D={D1,D2,...,Dn,...DN};然后,对直流系数序列D进行差分脉冲调制编码,得到差分脉冲调制编码直流系数序列Dc
然后,将差分脉冲调制编码序列Dc中的直流系数进行熵编码,得到初始块置乱直流系数熵编码并替换初始块置乱熵编码数据中的直流系数熵编码DCC*<n>,得到块置乱熵编码 所有的块置乱熵编码依次拼接组成块置乱熵编码序列E1
最后,将图像开始标记代码SOI,JPEG头文件JH,块置乱熵编码序列E1以及图像结束标记代码EOI依次拼接,得到块置乱比特流J1 并上传到云端;
B、信息隐藏
在上传到云端的块置乱比特流J1中,云端根据直方图平移方法,将额外信息U分段在块置乱熵编码中的交流系数中,从前至后依次进行信息隐藏;分段隐藏额外信息后的块置乱熵编码记为携密图像块熵编码
本发明使用的直方图平移方法为现有技术,详见文献1:Z.Qian,HXu,X.Luo andX.Zhang,“New Framework of Reversible Data Hiding in Encrypted JPEGBitstreams,”IEEE Transactions on Circuits and Systems for Video Technology,IEEE Transactions on Circuits and Systems for Video Technology PP(99):1-1·January 2018。
最后,将图像开始标记代码SOI,JPEG头文件JH,所有的携密图像块熵编码以及图像结束标记代码EOI依次拼接,得到携密比特流Jm,
C、信息提取
在携密比特流Jm中,云端根据进行B步骤中的直方图平移方法的逆操作,提取出额外信息U,对携密比特流Jm中的交流系数进行恢复,得到置乱比特流J1;最后,云端将置乱比特流J1发送给接收者;
D、JPEG比特流解密
D1、初始块置乱比特流恢复:
接收者首先在块置乱比特流J1中提取第n个块置乱熵编码中的直流系数熵编码并进行熵解码,得到第n个块置乱熵编码数据的直流系数
然后,将所有的块置乱熵编码的直流系数进行拼接,得到块置乱比特流J1的差分脉冲调制编码直流系数序列Dc
对差分脉冲调制编码直流系数序列Dc进行差分脉冲调制解码,得到初始块置乱比特流J*的直流系数序列D,D={D1,D2,...,Dn,...DN};将第n个初始块置乱熵编码数据的直流系数Dn进行熵编码,得到第n个初始块置乱熵编码数据的直流系数熵编码DCC*<n>,并替换块置乱熵编码数据中的直流系数熵编码得到初始块置乱熵编码数据将所有的初始块置乱熵编码数据进行拼接,得到初始块置乱熵编码密文序列E*
最后,将图像开始标记符SOI,JPEG头文件JH,初始块置乱熵编码密文序列E*以及图像结束标记符EOI依次拼接,得到初始块置乱比特流J*
D2、置乱恢复比特流密文:
接收者根据加密密钥K1对初始块置乱比特流J*中初始熵编码密文序列E*进行置乱恢复,得到图像块熵编码密文序列E″,E″={ECS″1,ECS″2,...,ECS″N};
并将图像开始标记符SOI,JPEG头文件JH,图像块熵编码密文序列E″以及图像结束标记符EOI依次拼接,恢复得到比特流密文J″,J″={SOI,JH,ECS″1,ECS″2,...,ECS″N,EOI};
D3、图像块熵编码密文异或解密:
在第n个图像块熵编码密文ECS"n中,将其中的直流系数的扩展位DCA′<n>和交流系数的扩展位ACA"<n,i>,组成第n个图像块熵编码密文ECS"n的块扩展位密文L′n;然后,将比特流密文J″中的所有块扩展位密文L′n依次拼接,得到比特流扩展位密文L′,L′={L′1,L′2,...,L′N};
接收者使用加密密钥K1对比特流扩展位密文L′按位异或解密,得到比特流扩展位L;
D4、系数置乱比特流恢复:
将第n个图像块熵编码密文ECS"n的直流系数的霍夫曼编码DCH<n>和块扩展位Ln中直流系数的扩展位DCA<n>进行重组,得到第n个图像块熵编码ECS′n中直流系数的熵编码DCC<n>,DCC<n>=[DCH<n>,DCA<n>];
然后,将第n个图像块熵编码密文ECS"n的交流系数的霍夫曼编码ACH<n,i>和块扩展位Ln中交流系数的扩展位ACA′<n,i>进行重组,得到第n个图像块熵编码ECS′n中第i个交流系数的熵编码ACC′<n,i>,ACC′<n,i>=[ACH<n,i>,ACA′<n,i>],i=1,2,...,I;最后将直流系数的熵编码DCC<n>和I个交流系数的熵编码ACC′<n,i>依次拼接,得到图像块熵编码ECS′n
最后,将图像开始标记代码SOI,JPEG头文件JH,所有的图像块熵编码ECS′n以及图像结束标记代码EOI依次拼接,得到系数置乱比特流J′,J′={SOI,JH,ECS′1,ECS′2,...,ECS′N,EOI};
D5、交流系数置乱恢复:
将系数置乱比特流J′,J′={SOI,JH,ECS′1,ECS′2,...,ECS′N,EOI}替换为原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSn,...,ECSN,EOI},将替换后的原始比特流J进行A1.2步骤至A1.5步骤的操作得到第n个置乱交流系数C′n,最后,将第n个置乱交流系数C′n替换为第n个图像块熵编码ECSn的交流系数Cn
D6、原始比特流恢复:
将D5步骤得到的第n个图像块熵编码ECSn的交流系数Cn进行霍夫曼编码,得到第n个图像块熵编码ECSn中交流系数的原始编码 并与第n个图像块熵编码ECSn中直流系数的熵编码DCC<n>组成原始图像块熵编码ECSn
将图像开始标记符SOI,JPEG头文件JH,所有的原始图像块熵编码ECSn以及图像结束标记符EOI依次拼接,得到原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSN,EOI}。
仿真实验及性能分析
仿真实验1将大小为H×W=512×512,量化因子Q=80的Lena图像(图1a)作为测试图像,通过仿真得到Lena图像的最大隐写容量β=17343bits;
仿真实验2将大小为H×W=512×512,量化因子Q=80的Baboon图像(图2a)作为测试图像,通过仿真得到Baboon图像的最大隐写容量β=36452bits。
通过仿真实验1和仿真实验2来验证本发明各方面的性能。
图1a为仿真实验1的原始图像(Lena图像),图1b为仿真实验1加密后的比特流进行解码的Lena图像;图2a为仿真实验2的原始图像(Baboon图像),图2b为仿真实验2加密后的比特流进行解码的Baboon图像;
从图1b和图2b可以看出,加密后的比特流进行解码得到的图像类似随机噪声,图像内容没有可读性,加密效果好。
图1a的Lena图像文件长度为37937byte,比特流加密过程中,生成的随机数K1=212135用来加密比特流;一方面,在交流系数置乱过程中,对每个图像块熵编码ECSn根据加密密钥K1生成随机数对交流系数进行伪随机置乱,使得交流系数的游程编码发生变化,从而交流系数的霍夫曼编码也发生了改变,最后得到的系数置乱熵编码ECS′n能够实现对交流系数位置的保护,提高了安全性;另一方面,在系数置乱熵编码异或加密过程中,根据加密密钥K1对系数置乱熵编码ECS′n中的交流系数的扩展位进行异或加密,生成了图像块熵编码密文ECS"n,实现了对交流系数值的加密保护,进一步提高了安全性;此外,在图像块熵编码密文置乱过程中,还根据加密密钥K1生成随机序列,对比特流密文J″中的图像块熵编码密文ECS"n的位置进行了伪随机的置乱,再一步提高了加密算法的安全性;从以上三个方面证明本发明安全性好。
图1c为图1a通过仿真实验1得到的携密比特流解码图像,图2c为图2a通过仿真实验2得到的携密比特流解码图像,两个携密比特流解码图像都类似噪声分布,这说明本发明的信息隐写没有改变加密图像特性。
此外,选取Lena,Baboon,Man,Peppers,Lake,5幅图像作为测试图像验证本发明与文献1在生成加密图像大小为256×256的条件下最大隐写容量β比较,如图3所示。从图3中可以看出本发明的嵌入容量至少为文献1的4倍,并且本发明对于纹理较为复杂的Baboon图像,最大隐写容量能达到36452bits,10倍于文献1的隐写容量。说明本发明算法不仅适用于平滑图像,对于纹理复杂的图像也具有较高的嵌入容量。
图1d为图1a的解密比特流解码图像,图2d为图2a的解密比特流解码图像;从图1a和图1d或从图2a和图2d来看,经过本发明中的比特流解密的解码图像与原始图像一致,从而反映出本发明解密图像质量高。
然后,验证本发明方法在量化因子Q取不同值时,Lena,Baboon,Airplane,Lake,Man,5幅图像的最大隐写容量β的变化,如图4所示。图4中横坐标为量化因子Q的取值,纵坐标为最大隐写容量β,从图4中可以看出最大隐写容量β受图像的量化因子Q的影响,随着量化因子Q的增大,图像的最大隐写容量β增加。当Baboon图像的量化因子Q=90时,最大隐写容量β为47426bits。
最后,选取量化因子Q=80的Lena,Baboon,Man,Peppers,Lake,5幅图像作为测试图像,验证本发明与文献1算法加密图像文件大小变化,如下表所示。
本发明与文献1的加密图像文件大小对比表
从表中可以看出,本发明的加密图像文件大小要稍高于文献1算法,本发明的加密图像文件大小平均增大了3.5KB,但本发明的安全性要高于文献1算法。

Claims (1)

1.一种大容量的JPEG图像比特流加密域可逆数据隐藏方法,包括如下步骤:
A、JPEG比特流加密
A1、交流系数置乱
A1.1、比特流数据读取:
用户读取大小为H×W的JPEG格式的图像X,获得图像X的原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSn,...,ECSN,EOI},其中:
SOI为图像开始标记符,JH为JPEG头文件,EOI为图像结束标记符;
ECSn为图像中的第n个图像块熵编码,N为图像块熵编码的个数,
ECSn={DCC<n>,ACC<n,1>,ACC<n,2>,...,ACC<n,i>,...ACC<n,I>,EOB};DCC<n>是第n个图像块熵编码的直流系数熵编码,ACC<n,i>是ECSn中第i个交流系数熵编码,EOB是图像块熵编码结束标记符,I为交流系数熵编码的个数;
A1.2、交流系数解码:
对原始比特流J中的第n个图像块熵编码ECSn中所有的交流系数熵编码ACC<n,i>,根据JPEG解码标准进行熵解码,得到第n个图像块熵编码ECSn的交流系数Cn,Cn={ACn,1,ACn,2,...,ACn,t,...,ACn,63},其中ACn,t为第n个图像块熵编码ECSn的交流系数Cn中的第t个交流系数,t=1,2,...,63;
A1.3、交流系数分组:
找出第n个图像块熵编码ECSn的交流系数Cn中最后一个非零交流系数,记为ACn,T,其序号为T;用户对第n个图像块熵编码ECSn的交流系数Cn中的前T个交流系数ACn,t依次进行分组:
如果交流系数ACn,t连续为0,则将这些交流系数ACn,t构成一个分组否则,一个交流系数ACn,t独立构成一个分组然后,将这些分组依次拼接,得到第n个图像块熵编码ECSn的系数分组序列Bn其中r为第n个图像块熵编码ECSn的交流系数分组的序号,Rn为第n个图像块熵编码ECSn的交流系数分组的个数;
A1.4、交流系数分组序列置乱:
在第n个图像块熵编码ECSn的交流系数分组序列Bn中,对前Rn-1个交流系数分序列进行分类,如果交流系数分组中的交流系数全为0,记为交流系数为零的分组否则,记为交流系数非零的分组
将所有的交流系数非零的分组依次拼接,得到交流系数非零的分组序列其中r’为交流系数非零的分组的序号,r1为交流系数非零的分组的个数;
然后,根据加密密钥K1对交流系数非零的分组序列Bn,1进行伪随机置乱生成置乱交流系数非零的分组序列
将所有的交流系数为零的分组依次拼接,得到交流系数为零的分组序列其中r”为交流系数为零的分组的序号,r0为交流系数为零的分组的个数;r0+r1=Rn-1;r0≤r1
然后,根据加密密钥K1对交流系数为零的分组序列Bn,0进行伪随机置乱生成置乱交流系数为零的分组序列
将置乱交流系数为零的分组序列中的置乱交流系数为零的分组与置乱交流系数非零的分组序列中前r0个置乱交流系数非零的分组依次交替拼接,再与置乱交流系数非零的分组序列中后r1-r0个置乱交流系数非零的分组和系数分组序列Bn中最后一个系数分组依次拼接,得到生成置乱交流系数分组序列 其中r”’为置乱交流系数分组的序号;
A1.5、置乱交流系数生成:
最后,用户将置乱交流系数分组序列中所有的交流系数与63-T个0,依次拼接,生成伪随机置乱系数 并通过下式得到置乱交流系数C′n
A2、系数置乱比特流生成:
对置乱交流系数C′n进行熵编码,得到置乱交流系数熵编码 并将第n个图像块熵编码ECSn中直流系数的熵编码DCC<n>与置乱交流系数熵编码拼接,组成第n个系数置乱熵编码ECS′n
将图像开始标记符SOI,JPEG头文件JH,所有的系数置乱熵编码ECS′n以及图像结束标记符EOI依次拼接,得到系数置乱比特流J′,J′={SOI,JH,ECS′1,ECS′2,...,ECS′N,EOI};
A3、系数置乱熵编码异或加密:
在系数置乱比特流J′的第n个系数置乱熵编码ECS′n中,ECS′n={DCC<n>,ACC,<n,1>,ACC,<n,2>,...ACC′<n,l>,EOB},直流系数置乱的熵编码DCC<n>,DCC<n>=[DCH<n>,DCA<n>]由直流系数置乱霍夫曼编码DCH<n>和直流系数置乱扩展位DCA<n>组成;交流系数置乱熵编码ACC′<n,i>,ACC′<n,i>=[ACH′<n,i>,ACA′<n,i>],由交流系数置乱霍夫曼编码ACH<n,i>和交流系数置乱扩展位ACA<n,i>组成,i=1,2,...,I;
第n个系数置乱熵编码ECS′n中,提取直流系数置乱熵编码DCC<n>的扩展位DCA<n>和所有交流系数置乱熵编码ACC′<n,i>的扩展位ACA′<n,i>,组成第n个块扩展位Ln,Ln={DCA<n>,ACA′<n,1>,ACA′<n,2>,...,ACA′<n,I>};
然后,将所有的块扩展位Ln依次拼接得到比特流扩展位L,L={L1,L2,...,Ln,...LN};用户使用加密密钥K1对比特流扩展位L按位异或加密,生成比特流扩展位密文L′,L′={L′1,L′2,...,L′n,...,L′N};
A4、比特流密文生成:
将第n个系数置乱熵编码ECS′n中的直流系数置乱霍夫曼编码DCH<n>和第n个块扩展位密文L′n,L′n={DCA′<n>,ACA″<n,1>,ACA"<n,2>,...,ACA″<n,i>,...ACA"<n,l>}中的直流系数置乱扩展位密文DCA′<n>进行拼接,得到第n个系数置乱熵编码ECS′n中直流系数熵编码密文DCC′<n>,DCC′<n>=[DCH<n>,DCA′<n>];
然后,将系数置乱熵编码ECS′n中的交流系数的霍夫曼编码ACH<n,i>和块扩展位密文L′n中第i个交流系数的扩展位密文ACA"<n,i>进行依次重组,得到系数置乱熵编码ECS′n中第i个交流系数熵编码密文ACC″<n,i>,ACC"<n,i>=[ACH<n,i>,ACA″<n,i>],i=1,2,...,I;
最后,将第n个系数置乱熵编码ECS′n中直流系数熵编码密文DCC′<n>和I个交流系数熵编码密文ACC″<n,i>依次拼接,得到第n个图像块熵编码密文ECS″n,ECS″n={DCC′<n>,ACC″<n,1>,ACC″<n,2>,...ACC″<n,l>,EOB};所有的图像块熵编码密文ECS″n依次拼接组成熵编码密文序列E″,E″={ECS″1,ECS″2,...,ECS″N};
将图像开始标记代码SOI,JPEG头文件JH,熵编码密文序列E″以及图像结束标记代码EOI依次拼接,得到比特流密文J″,J″={SOI,JH,ECS″1,ECS″2,...,ECS″N,EOI};
A5、图像块熵编码密文置乱:
在比特流密文J″中,用户根据加密密钥K1对熵编码密文序列E″中的图像块熵编码密文ECS″n进行伪随机置乱得到初始块置乱熵编码密文序列E*
并将图像开始标记符SOI,JPEG头文件JH,块置乱熵编码密文序列E*以及图像结束标记符EOI依次拼接,得到初始块置乱比特流J*
A6、块置乱比特流生成:
在初始块置乱比特流J*中,将第n个初始块置乱熵编码数据 中的直流系数熵编码DCC*<n>进行熵解码,得到第n个初始块置乱熵编码数据的直流系数Dn
将所有初始块置乱熵编码数据的直流系数Dn依次拼接,得到初始块置乱比特流J*的直流系数序列D,D={D1,D2,...,Dn,...DN};然后,对直流系数序列D进行差分脉冲调制编码,得到差分脉冲调制编码直流系数序列Dc
然后,将差分脉冲调制编码序列Dc中的直流系数进行熵编码,得到初始块置乱直流系数熵编码并替换初始块置乱熵编码数据中的直流系数熵编码DCC*<n>,得到块置乱熵编码 所有的块置乱熵编码依次拼接组成块置乱熵编码序列E1
最后,将图像开始标记代码SOI,JPEG头文件JH,块置乱熵编码序列E1以及图像结束标记代码EOI依次拼接,得到块置乱比特流J1 并上传到云端;
B、信息隐藏
在上传到云端的块置乱比特流J1中,云端根据直方图平移方法,将额外信息U分段在块置乱熵编码中的交流系数中,从前至后依次进行信息隐藏;分段隐藏额外信息后的块置乱熵编码记为携密图像块熵编码
最后,将图像开始标记代码SOI,JPEG头文件JH,所有的携密图像块熵编码以及图像结束标记代码EOI依次拼接,得到携密比特流Jm
C、信息提取
在携密比特流Jm中,云端根据进行B步骤中的直方图平移方法的逆操作,提取出额外信息U,对携密比特流Jm中的交流系数进行恢复,得到置乱比特流J1;最后,云端将置乱比特流J1发送给接收者;
D、JPEG比特流解密
D1、初始块置乱比特流恢复:
接收者首先在块置乱比特流J1中提取第n个块置乱熵编码中的直流系数熵编码并进行熵解码,得到第n个块置乱熵编码数据的直流系数
然后,将所有的块置乱熵编码的直流系数进行拼接,得到块置乱比特流J1的差分脉冲调制编码直流系数序列Dc
对差分脉冲调制编码直流系数序列Dc进行差分脉冲调制解码,得到初始块置乱比特流J*的直流系数序列D,D={D1,D2,...,Dn,...DN};将第n个初始块置乱熵编码数据的直流系数Dn进行熵编码,得到第n个初始块置乱熵编码数据的直流系数熵编码DCC*<n>,并替换块置乱熵编码数据中的直流系数熵编码得到初始块置乱熵编码数据将所有的初始块置乱熵编码数据进行拼接,得到初始块置乱熵编码密文序列E*
最后,将图像开始标记符SOI,JPEG头文件JH,初始块置乱熵编码密文序列E*以及图像结束标记符EOI依次拼接,得到初始块置乱比特流J*
D2、置乱恢复比特流密文:
接收者根据加密密钥K1对初始块置乱比特流J*中初始熵编码密文序列E*进行置乱恢复,得到图像块熵编码密文序列E″,E″={ECS″1,ECS″2,...,ECS″N};
并将图像开始标记符SOI,JPEG头文件JH,图像块熵编码密文序列E″以及图像结束标记符EOI依次拼接,恢复得到比特流密文J″,J″={SOI,JH,ECS″1,ECS″2,...,ECS″N,EOI};
D3、图像块熵编码密文异或解密:
在第n个图像块熵编码密文ECS"n中,将其中的直流系数的扩展位DCA′<n>和交流系数的扩展位ACA"<n,i>,组成第n个图像块熵编码密文ECS"n的块扩展位密文L′n;然后,将比特流密文J″中的所有块扩展位密文L′n依次拼接,得到比特流扩展位密文L′,L′={L′1,L′2,...,L′N};
接收者使用加密密钥K1对比特流扩展位密文L′按位异或解密,得到比特流扩展位L;
D4、系数置乱比特流恢复:
将第n个图像块熵编码密文ECS"n的直流系数的霍夫曼编码DCH<n>和块扩展位Ln中直流系数的扩展位DCA<n>进行重组,得到第n个图像块熵编码ECS′n中直流系数的熵编码DCC<n>,DCC<n>=[DCH<n>,DCA<n>];
然后,将第n个图像块熵编码密文ECS"n的交流系数的霍夫曼编码ACH<n,i>和块扩展位Ln中交流系数的扩展位ACA′<n,i>进行重组,得到第n个图像块熵编码ECS′n中第i个交流系数的熵编码ACC′<ni>,ACC′<n,i>=[ACH<n,i>,ACA′<n,i>],i=1,2,...,I;最后将直流系数的熵编码DCC<n>和I个交流系数的熵编码ACC′<n,i>依次拼接,得到图像块熵编码ECS′n
最后,将图像开始标记代码SOI,JPEG头文件JH,所有的图像块熵编码ECS′n以及图像结束标记代码EOI依次拼接,得到系数置乱比特流J′,J′={SOI,JH,ECS′1,ECS′2,...,ECS′N,EOI};
D5、交流系数置乱恢复:
将系数置乱比特流J′,J′={SOI,JH,ECS′1,ECS′2,...,ECS′N,EOI}替换为原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSn,...,ECSN,EOI},将替换后的原始比特流J进行A1.2步骤至A1.5步骤的操作得到第n个置乱交流系数C′n,最后,将第n个置乱交流系数C′n替换为第n个图像块熵编码ECSn的交流系数Cn
D6、原始比特流恢复:
将D5步骤得到的第n个图像块熵编码ECSn的交流系数Cn进行霍夫曼编码,得到第n个图像块熵编码ECSn中交流系数的原始编码 并与第n个图像块熵编码ECSn中直流系数的熵编码DCC<n>组成原始图像块熵编码ECSn
将图像开始标记符SOI,JPEG头文件JH,所有的原始图像块熵编码ECSn以及图像结束标记符EOI依次拼接,得到原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSN,EOI}。
CN201811040706.5A 2018-09-06 2018-09-06 Jpeg图像比特流加密域可逆数据隐藏方法 Active CN109151486B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811040706.5A CN109151486B (zh) 2018-09-06 2018-09-06 Jpeg图像比特流加密域可逆数据隐藏方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811040706.5A CN109151486B (zh) 2018-09-06 2018-09-06 Jpeg图像比特流加密域可逆数据隐藏方法

Publications (2)

Publication Number Publication Date
CN109151486A true CN109151486A (zh) 2019-01-04
CN109151486B CN109151486B (zh) 2020-10-09

Family

ID=64827555

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811040706.5A Active CN109151486B (zh) 2018-09-06 2018-09-06 Jpeg图像比特流加密域可逆数据隐藏方法

Country Status (1)

Country Link
CN (1) CN109151486B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109803142A (zh) * 2019-01-08 2019-05-24 宁波工程学院 一种基于邻域预测的加密域图像可逆数据隐藏方法
CN109889687A (zh) * 2019-01-30 2019-06-14 西南交通大学 基于交流统计特征改变的jpeg图像比特流加密方法
CN110809192A (zh) * 2019-10-15 2020-02-18 华南理工大学 一种可搭载隐秘信息的视频加密方法
CN110881128A (zh) * 2019-11-27 2020-03-13 华南理工大学 一种jpeg图像可逆数据隐藏方法
CN110913092A (zh) * 2019-11-26 2020-03-24 西南交通大学 一种加密图像可逆信息隐藏方法
CN110933438A (zh) * 2019-11-27 2020-03-27 华南理工大学 一种jpeg图像可逆信息隐藏方法
CN110942414A (zh) * 2019-12-05 2020-03-31 福建师范大学福清分校 一种jpeg图像信息隐藏的方法
CN112417190A (zh) * 2020-11-27 2021-02-26 暨南大学 一种密文jpeg图像的检索方法及应用
CN113034334A (zh) * 2021-03-22 2021-06-25 绍兴聚量数据技术有限公司 联合JPEG和Huffman编码的加密图像可逆信息隐藏方法、装置
CN113225566A (zh) * 2021-05-13 2021-08-06 中山大学 基于块分组的jpeg图像自适应可逆信息隐藏方法
CN113507547A (zh) * 2021-07-07 2021-10-15 福建工程学院 自适应系数多直方图结合高维直方图的可逆信息隐藏方法
CN114338023A (zh) * 2022-03-10 2022-04-12 山东云海国创云计算装备产业创新中心有限公司 图像加密方法、图像解密方法、图像处理装置及存储介质
CN114866657A (zh) * 2022-03-09 2022-08-05 西南交通大学 选择明文安全且密文图像文件大小减小的jpeg图像加密方法
CN115297218A (zh) * 2022-08-04 2022-11-04 西安理工大学 基于哈夫曼编码规则和位置图压缩的可逆数据隐藏方法
EP4322466A1 (en) * 2022-08-08 2024-02-14 Apple Inc. Techniques for transmitting frames with securely scrambled payload

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6332030B1 (en) * 1998-01-15 2001-12-18 The Regents Of The University Of California Method for embedding and extracting digital data in images and video
US20080199093A1 (en) * 2007-02-19 2008-08-21 New Jersey Institute Of Technology Appratus and method for reversible data hiding for jpeg images
US20130077817A1 (en) * 2010-06-09 2013-03-28 Cardygen Ltd. Steganographic method
CN103826128A (zh) * 2014-02-25 2014-05-28 宁波工程学院 一种加密域h.264/avc视频可逆数据隐藏方法
CN104144343A (zh) * 2014-07-11 2014-11-12 东北大学 一种数字图像压缩加密联合编码方法
CN104331448A (zh) * 2014-10-29 2015-02-04 上海大学 基于jpeg图像交流系数直方图的密文域图像检索方法
CN107578452A (zh) * 2017-07-31 2018-01-12 华南理工大学 一种具有兼容格式和不变尺寸的jpeg图像加密方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6332030B1 (en) * 1998-01-15 2001-12-18 The Regents Of The University Of California Method for embedding and extracting digital data in images and video
US20080199093A1 (en) * 2007-02-19 2008-08-21 New Jersey Institute Of Technology Appratus and method for reversible data hiding for jpeg images
US20130077817A1 (en) * 2010-06-09 2013-03-28 Cardygen Ltd. Steganographic method
CN103826128A (zh) * 2014-02-25 2014-05-28 宁波工程学院 一种加密域h.264/avc视频可逆数据隐藏方法
CN104144343A (zh) * 2014-07-11 2014-11-12 东北大学 一种数字图像压缩加密联合编码方法
CN104331448A (zh) * 2014-10-29 2015-02-04 上海大学 基于jpeg图像交流系数直方图的密文域图像检索方法
CN107578452A (zh) * 2017-07-31 2018-01-12 华南理工大学 一种具有兼容格式和不变尺寸的jpeg图像加密方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHENXING QIAN: "Reversible Data Hiding in Encrypted JPEG Bitstream", 《IEEE TRANSACTIONS ON MULTIMEDIA》 *
郭慧: "具有鲁棒性与数据嵌入能力的JPEG压缩图像加密算法", 《计算机应用研究》 *

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109803142A (zh) * 2019-01-08 2019-05-24 宁波工程学院 一种基于邻域预测的加密域图像可逆数据隐藏方法
CN109889687B (zh) * 2019-01-30 2020-03-27 西南交通大学 基于交流统计特征改变的jpeg图像比特流加密方法
CN109889687A (zh) * 2019-01-30 2019-06-14 西南交通大学 基于交流统计特征改变的jpeg图像比特流加密方法
CN110809192A (zh) * 2019-10-15 2020-02-18 华南理工大学 一种可搭载隐秘信息的视频加密方法
CN110913092A (zh) * 2019-11-26 2020-03-24 西南交通大学 一种加密图像可逆信息隐藏方法
CN110913092B (zh) * 2019-11-26 2021-06-29 西南交通大学 一种加密图像可逆信息隐藏方法
CN110881128A (zh) * 2019-11-27 2020-03-13 华南理工大学 一种jpeg图像可逆数据隐藏方法
CN110933438B (zh) * 2019-11-27 2021-03-30 华南理工大学 一种jpeg图像可逆信息隐藏方法
CN110933438A (zh) * 2019-11-27 2020-03-27 华南理工大学 一种jpeg图像可逆信息隐藏方法
CN110942414A (zh) * 2019-12-05 2020-03-31 福建师范大学福清分校 一种jpeg图像信息隐藏的方法
CN110942414B (zh) * 2019-12-05 2022-05-03 福建师范大学福清分校 一种jpeg图像信息隐藏的方法
CN112417190A (zh) * 2020-11-27 2021-02-26 暨南大学 一种密文jpeg图像的检索方法及应用
CN113034334A (zh) * 2021-03-22 2021-06-25 绍兴聚量数据技术有限公司 联合JPEG和Huffman编码的加密图像可逆信息隐藏方法、装置
CN113225566A (zh) * 2021-05-13 2021-08-06 中山大学 基于块分组的jpeg图像自适应可逆信息隐藏方法
CN113225566B (zh) * 2021-05-13 2022-04-12 中山大学 基于块分组的jpeg图像自适应可逆信息隐藏方法
CN113507547A (zh) * 2021-07-07 2021-10-15 福建工程学院 自适应系数多直方图结合高维直方图的可逆信息隐藏方法
CN113507547B (zh) * 2021-07-07 2023-07-14 福建工程学院 自适应系数多直方图结合高维直方图的可逆信息隐藏方法
CN114866657A (zh) * 2022-03-09 2022-08-05 西南交通大学 选择明文安全且密文图像文件大小减小的jpeg图像加密方法
CN114866657B (zh) * 2022-03-09 2023-06-13 西南交通大学 选择明文安全且密文图像文件大小减小的jpeg图像加密方法
CN114338023A (zh) * 2022-03-10 2022-04-12 山东云海国创云计算装备产业创新中心有限公司 图像加密方法、图像解密方法、图像处理装置及存储介质
CN114338023B (zh) * 2022-03-10 2022-06-07 山东云海国创云计算装备产业创新中心有限公司 图像加密方法、图像解密方法、图像处理装置及存储介质
CN115297218A (zh) * 2022-08-04 2022-11-04 西安理工大学 基于哈夫曼编码规则和位置图压缩的可逆数据隐藏方法
CN115297218B (zh) * 2022-08-04 2024-02-02 西安理工大学 基于哈夫曼编码规则和位置图压缩的可逆数据隐藏方法
EP4322466A1 (en) * 2022-08-08 2024-02-14 Apple Inc. Techniques for transmitting frames with securely scrambled payload

Also Published As

Publication number Publication date
CN109151486B (zh) 2020-10-09

Similar Documents

Publication Publication Date Title
CN109151486A (zh) 大容量的jpeg图像比特流加密域可逆数据隐藏方法
Long et al. Separable reversible data hiding and encryption for HEVC video
Manohar et al. Data encryption & decryption using steganography
CN107578452B (zh) 一种具有兼容格式和不变尺寸的jpeg图像加密方法
CN109889687B (zh) 基于交流统计特征改变的jpeg图像比特流加密方法
Bhautmage et al. Advanced video steganography algorithm
Yadav et al. 3-Level security based spread spectrum image steganography with enhanced peak signal to noise ratio
Hegde et al. Design and Implementation of Image Steganography by using LSB Replacement Algorithm and Pseudo Random Encoding Technique
Puteaux et al. Hierarchical high capacity data hiding in JPEG crypto-compressed images
Roy et al. New Steganography approach using encrypted secret message inside Audio and Video media
Mandal et al. A Data Embedding Technique for Gray scale Image Using Genetic Algorithm (DEGGA)
Kuo et al. High embedding reversible data hiding scheme for JPEG
Sivadasan A survey paper on various reversible data hiding techniques in encrypted images
Patil et al. A secure data communication system using enhanced cryptography and steganography
CN107862211B (zh) 一种规避社交网络平台图像增强滤波的jpeg图像加密方法
Satrio et al. Hiding Document Format Files Using Video Steganography Techniques with Least Significant Bit Method
Lalwani et al. Secure Data Hiding in Audio-Video Steganalysis by Anti-Forensic Technique
Vinodkumar et al. A Novel Data Embedding Technique for Hiding Text in Video File using Steganography
Sattar Jabbar et al. Design and Implementation Digital Invitation System Based on Secure Hash Algorithm 3.
Mazumder et al. Review of different techniques used in recent steganography researches
Patel et al. A Survey on Image Steganography using LSB Algorithm
Kumar et al. A Relevant Technique of Hiding Information in an image using Shared Cryptography
Ranjitha et al. An Efficient Encryption and Decryption Method for Image Steganography
Dadhania Security Extensibility in Steganography
Bodke et al. A Novel approach for codeword substitution using encrypted H. 264/AVC video streams for data hiding

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