CN109151486B - Jpeg图像比特流加密域可逆数据隐藏方法 - Google Patents

Jpeg图像比特流加密域可逆数据隐藏方法 Download PDF

Info

Publication number
CN109151486B
CN109151486B CN201811040706.5A CN201811040706A CN109151486B CN 109151486 B CN109151486 B CN 109151486B CN 201811040706 A CN201811040706 A CN 201811040706A CN 109151486 B CN109151486 B CN 109151486B
Authority
CN
China
Prior art keywords
coefficient
entropy coding
ecs
scrambling
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.)
Active
Application number
CN201811040706.5A
Other languages
English (en)
Other versions
CN109151486A (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

Images

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 reversibledata hiding 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比特流密文,并通过对信息隐藏熵编码密文的AC系数进行直方图平移和修改头文件中AC系数的霍夫曼编码表来实现额外信息的嵌入。同时,使用加密密钥对头部隐藏熵编码加密并隐藏到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为图像块熵编码的个数,
Figure GDA0002650299180000031
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,为第n个图像块熵编码ECSn的交流系数Cn中的第t个交流系数,t=1,2,…,63;
A1.3、AC系数分组:
找出第n个图像块熵编码ECSn的交流系数Cn中最后一个非零交流系数,记为ACn,T,其序号为T;用户对第n个图像块熵编码ECSn的交流系数Cn中的前T个交流系数ACn,t依次进行分组:
如果交流系数ACn,t连续为0,则将这些交流系数ACn,t构成一个分组
Figure GDA0002650299180000041
否则,一个交流系数ACn,t独立构成一个分组
Figure GDA0002650299180000042
然后,将这些分组
Figure GDA0002650299180000043
依次拼接,得到第n个图像块熵编码ECSn的系数分组序列Bn
Figure GDA0002650299180000044
其中r为第n个图像块熵编码ECSn的交流系数分组
Figure GDA0002650299180000045
的序号,Rn为第n个图像块熵编码ECSn的交流系数分组
Figure GDA0002650299180000046
的个数;
A1.4、交流系数分组序列置乱:
在第n个图像块熵编码ECSn的交流系数分组序列Bn中,对前Rn-1个交流系数分序列
Figure GDA0002650299180000047
进行分类,如果交流系数分组
Figure GDA0002650299180000048
中的交流系数全为0,记为交流系数为零的分组
Figure GDA0002650299180000049
否则,记为交流系数非零的分组
Figure GDA00026502991800000410
将所有的交流系数非零的分组
Figure GDA00026502991800000411
依次拼接,得到交流系数非零的分组序列Bn,1
Figure GDA00026502991800000412
其中r’为交流系数非零的分组
Figure GDA00026502991800000413
的序号,r1为交流系数非零的分组
Figure GDA00026502991800000414
的个数;
然后,根据加密密钥K1对交流系数非零的分组序列Bn,1进行伪随机置乱生成交流系数非零的置乱分组序列
Figure GDA00026502991800000415
其中,
Figure GDA00026502991800000416
为交流系数非零的置乱分组序列
Figure GDA00026502991800000417
中的第r’个交流系数非零的置乱分组;
将所有的交流系数为零的分组
Figure GDA00026502991800000418
依次拼接,得到交流系数为零的分组序列Bn,0
Figure GDA00026502991800000419
其中
Figure GDA00026502991800000420
为第r”个交流系数为零的置乱分组,r0为交流系数为零的置乱分组
Figure GDA00026502991800000421
的个数;r0+r1=Rn-1;r0≤r1
然后,根据加密密钥K1对交流系数为零的分组序列Bn,0进行伪随机置乱生成交流系数为零的置乱分组序列
Figure GDA00026502991800000422
将交流系数为零的置乱分组序列
Figure GDA00026502991800000423
中的交流系数为零的置乱分组
Figure GDA00026502991800000424
与交流系数非零的置乱分组序列
Figure GDA0002650299180000051
中前r0个交流系数非零的置乱分组
Figure GDA0002650299180000052
依次交替拼接,再与置乱交流系数非零的分组序列
Figure GDA0002650299180000053
中后r1-r0个置乱交流系数非零的分组
Figure GDA0002650299180000054
和系数分组序列Bn中最后一个系数分组
Figure GDA0002650299180000055
依次拼接,得到生成置乱交流系数分组序列
Figure GDA0002650299180000056
Figure GDA0002650299180000057
Figure GDA0002650299180000058
其中r”’为置乱交流系数分组
Figure GDA0002650299180000059
的序号;
A1.5、置乱交流系数生成:
最后,用户将置乱交流系数分组序列
Figure GDA00026502991800000510
中所有的交流系数与63-T个0,依次拼接,生成伪随机置乱系数
Figure GDA00026502991800000511
并通过下式得到置乱交流系数C′n
Figure GDA00026502991800000512
A2、系数置乱比特流生成:
对置乱交流系数C′n进行熵编码,得到置乱交流系数熵编码
Figure GDA00026502991800000513
Figure GDA00026502991800000514
并将第n个图像块熵编码ECSn中直流系数的熵编码DCC<n>与置乱交流系数熵编码
Figure GDA00026502991800000515
拼接,组成第n个系数置乱熵编码
Figure GDA00026502991800000516
将图像开始标记符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个AC系数的扩展位密文ACA″<n,i>进行依次重组,得到系数置乱熵编码ECS′n中第i个AC系数熵编码密文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*
Figure GDA0002650299180000071
Figure GDA0002650299180000072
并将图像开始标记符SOI,JPEG头文件JH,块置乱熵编码密文序列E*以及图像结束标记符EOI依次拼接,得到初始块置乱比特流J*
Figure GDA0002650299180000073
A6、块置乱比特流生成:
在初始块置乱比特流J*中,将第n个初始块置乱熵编码数据
Figure GDA0002650299180000074
Figure GDA0002650299180000075
中的直流系数熵编码DCC*<n>进行熵解码,得到第n个初始块置乱熵编码数据
Figure GDA0002650299180000076
的直流系数Dn
将所有初始块置乱熵编码数据
Figure GDA0002650299180000077
的直流系数Dn依次拼接,得到初始块置乱比特流J*的直流系数序列D,D={D1,D2,…,Dn,…DN};然后,对直流系数序列D进行差分脉冲调制编码,得到差分脉冲调制编码直流系数序列Dc
Figure GDA0002650299180000078
Figure GDA0002650299180000079
然后,将差分脉冲调制编码序列Dc中的直流系数
Figure GDA00026502991800000710
进行熵编码,得到初始块置乱直流系数熵编码
Figure GDA00026502991800000711
并替换初始块置乱熵编码数据
Figure GDA00026502991800000712
中的直流系数熵编码DCC*<n>,得到块置乱熵编码
Figure GDA00026502991800000713
Figure GDA00026502991800000714
所有的块置乱熵编码
Figure GDA00026502991800000715
依次拼接组成块置乱熵编码序列E1
Figure GDA00026502991800000716
最后,将图像开始标记代码SOI,JPEG头文件JH,块置乱熵编码序列E1以及图像结束标记代码EOI依次拼接,得到块置乱比特流J1
Figure GDA0002650299180000081
并上传到云端;
A、信息隐藏
在上传到云端的块置乱比特流J1中,云端根据直方图平移方法,将额外信息U分段在块置乱熵编码
Figure GDA0002650299180000082
中的交流系数
Figure GDA0002650299180000083
中,从前至后依次进行信息隐藏;分段隐藏额外信息后的块置乱熵编码
Figure GDA0002650299180000084
记为携密图像块熵编码
Figure GDA0002650299180000085
最后,将图像开始标记代码SOI,JPEG头文件JH,所有的携密图像块熵编码
Figure GDA0002650299180000086
以及图像结束标记代码EOI依次拼接,得到携密比特流Jm
Figure GDA0002650299180000087
B、信息提取
在携密比特流Jm中,云端进行B步骤中的直方图平移方法的逆操作,提取出额外信息U,对携密比特流Jm中的交流系数进行恢复,得到置乱比特流J1;最后,云端将置乱比特流J1发送给接收者;
C、JPEG比特流解密
D1、初始块置乱比特流恢复:
接收者首先在块置乱比特流J1中提取第n个块置乱熵编码
Figure GDA0002650299180000088
中的直流系数熵编码
Figure GDA0002650299180000089
并进行熵解码,得到第n个块置乱熵编码数据
Figure GDA00026502991800000810
的直流系数
Figure GDA00026502991800000811
然后,将所有的块置乱熵编码
Figure GDA00026502991800000812
的直流系数
Figure GDA00026502991800000813
进行拼接,得到块置乱比特流J1的差分脉冲调制编码直流系数序列Dc
对差分脉冲调制编码直流系数序列Dc进行差分脉冲调制解码,得到初始块置乱比特流J*的直流系数序列D,D={D1,D2,…,Dn,…DN};将第n个初始块置乱熵编码数据
Figure GDA00026502991800000814
的直流系数Dn进行熵编码,得到第n个初始块置乱熵编码数据
Figure GDA00026502991800000815
的直流系数熵编码DCC*<n>,并替换块置乱熵编码数据
Figure GDA0002650299180000091
中的直流系数熵编码
Figure GDA0002650299180000092
得到初始块置乱熵编码数据
Figure GDA0002650299180000093
将所有的初始块置乱熵编码数据
Figure GDA0002650299180000094
进行拼接,得到初始块置乱熵编码密文序列E*
Figure GDA0002650299180000095
最后,将图像开始标记符SOI,JPEG头文件JH,初始块置乱熵编码密文序列E*以及图像结束标记符EOI依次拼接,得到初始块置乱比特流J*
D2、置乱恢复比特流密文:
接收者根据加密密钥K1对初始块置乱比特流J*中初始熵编码密文序列E*
Figure GDA0002650299180000096
进行置乱恢复,得到图像块熵编码密文序列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中交流系数的原始编码
Figure GDA0002650299180000101
Figure GDA0002650299180000102
并与第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为图像块熵编码的个数,
Figure GDA0002650299180000121
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、AC系数分组:
找出第n个图像块熵编码ECSn的交流系数Cn中最后一个非零交流系数,记为ACn,T,其序号为T;用户对第n个图像块熵编码ECSn的交流系数Cn中的前T个交流系数ACn,t依次进行分组:
如果交流系数ACn,t连续为0,则将这些交流系数ACn,t构成一个分组
Figure GDA0002650299180000131
否则,一个交流系数ACn,t独立构成一个分组
Figure GDA0002650299180000132
然后,将这些分组
Figure GDA0002650299180000133
依次拼接,得到第n个图像块熵编码ECSn的系数分组序列Bn
Figure GDA0002650299180000134
其中r为第n个图像块熵编码ECSn的交流系数分组
Figure GDA0002650299180000135
的序号,Rn为第n个图像块熵编码ECSn的交流系数分组
Figure GDA0002650299180000136
的个数;
A1.4、交流系数分组序列置乱:
在第n个图像块熵编码ECSn的交流系数分组序列Bn中,对前Rn-1个交流系数分序列
Figure GDA0002650299180000137
进行分类,如果交流系数分组
Figure GDA0002650299180000138
中的交流系数全为0,记为交流系数为零的分组
Figure GDA0002650299180000139
否则,记为交流系数非零的分组
Figure GDA00026502991800001310
将所有的交流系数非零的分组
Figure GDA00026502991800001311
依次拼接,得到交流系数非零的分组序列
Figure GDA00026502991800001312
其中r’为交流系数非零的分组
Figure GDA00026502991800001313
的序号,r1为交流系数非零的分组
Figure GDA00026502991800001314
的个数;
然后,根据加密密钥K1对交流系数非零的分组序列Bn,1进行伪随机置乱生成交流系数非零的置乱分组序列
Figure GDA00026502991800001315
其中,
Figure GDA00026502991800001316
为交流系数非零的置乱分组序列
Figure GDA00026502991800001317
中的第r’个交流系数非零的置乱分组;
将所有的交流系数为零的分组
Figure GDA00026502991800001318
依次拼接,得到交流系数为零的分组序列
Figure GDA00026502991800001319
其中
Figure GDA00026502991800001320
为第r”个交流系数为零的置乱分组,r0为交流系数为零的置乱分组
Figure GDA00026502991800001321
的个数;r0+r1=Rn-1;r0≤r1
然后,根据加密密钥K1对交流系数为零的分组序列Bn,0进行伪随机置乱生成交流系数为零的置乱分组序列
Figure GDA00026502991800001322
将交流系数为零的置乱分组序列
Figure GDA00026502991800001323
中的交流系数为零的置乱分组
Figure GDA00026502991800001324
与交流系数非零的置乱分组序列
Figure GDA00026502991800001325
中前r0个交流系数非零的置乱分组
Figure GDA00026502991800001326
依次交替拼接,再与置乱交流系数非零的分组序列
Figure GDA00026502991800001327
中后r1-r0个置乱交流系数非零的分组
Figure GDA0002650299180000141
和系数分组序列Bn中最后一个系数分组
Figure GDA0002650299180000142
依次拼接,得到生成置乱交流系数分组序列
Figure GDA0002650299180000143
Figure GDA0002650299180000144
Figure GDA0002650299180000145
其中r”’为置乱交流系数分组
Figure GDA0002650299180000146
的序号;
A1.5、置乱交流系数生成:
最后,用户将置乱交流系数分组序列
Figure GDA0002650299180000147
中所有的交流系数与63-T个0,依次拼接,生成伪随机置乱系数
Figure GDA0002650299180000148
并通过下式得到置乱交流系数C′n
Figure GDA0002650299180000149
A2、系数置乱比特流生成:
对置乱交流系数C′n进行熵编码,得到置乱交流系数熵编码
Figure GDA00026502991800001410
Figure GDA00026502991800001411
并将第n个图像块熵编码ECSn中直流系数的熵编码DCC<n>与置乱交流系数熵编码
Figure GDA00026502991800001412
拼接,组成第n个系数置乱熵编码
Figure GDA00026502991800001413
将图像开始标记符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个AC系数的扩展位密文ACA″<n,i>进行依次重组,得到系数置乱熵编码ECS′n中第i个AC系数熵编码密文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*
Figure GDA0002650299180000161
Figure GDA0002650299180000162
并将图像开始标记符SOI,JPEG头文件JH,块置乱熵编码密文序列E*以及图像结束标记符EOI依次拼接,得到初始块置乱比特流J*
Figure GDA0002650299180000163
A6、块置乱比特流生成:
在初始块置乱比特流J*中,将第n个初始块置乱熵编码数据
Figure GDA0002650299180000164
Figure GDA0002650299180000165
中的直流系数熵编码DCC*<n>进行熵解码,得到第n个初始块置乱熵编码数据
Figure GDA0002650299180000166
的直流系数Dn
将所有初始块置乱熵编码数据
Figure GDA0002650299180000167
的直流系数Dn依次拼接,得到初始块置乱比特流J*的直流系数序列D,D={D1,D2,…,Dn,…DN};然后,对直流系数序列D进行差分脉冲调制编码,得到差分脉冲调制编码直流系数序列Dc
Figure GDA0002650299180000168
Figure GDA0002650299180000169
然后,将差分脉冲调制编码序列Dc中的直流系数
Figure GDA00026502991800001610
进行熵编码,得到初始块置乱直流系数熵编码
Figure GDA00026502991800001611
并替换初始块置乱熵编码数据
Figure GDA00026502991800001612
中的直流系数熵编码DCC*<n>,得到块置乱熵编码
Figure GDA00026502991800001613
Figure GDA00026502991800001614
所有的块置乱熵编码
Figure GDA00026502991800001615
依次拼接组成块置乱熵编码序列E1
Figure GDA00026502991800001616
最后,将图像开始标记代码SOI,JPEG头文件JH,块置乱熵编码序列E1以及图像结束标记代码EOI依次拼接,得到块置乱比特流J1
Figure GDA0002650299180000171
并上传到云端;
D、信息隐藏
在上传到云端的块置乱比特流J1中,云端根据直方图平移方法,将额外信息U分段在块置乱熵编码
Figure GDA0002650299180000172
中的交流系数
Figure GDA0002650299180000173
中,从前至后依次进行信息隐藏;分段隐藏额外信息后的块置乱熵编码
Figure GDA0002650299180000174
记为携密图像块熵编码
Figure GDA0002650299180000175
最后,将图像开始标记代码SOI,JPEG头文件JH,所有的携密图像块熵编码
Figure GDA0002650299180000176
以及图像结束标记代码EOI依次拼接,得到携密比特流Jm
Figure GDA0002650299180000177
E、信息提取
在携密比特流Jm中,云端进行B步骤中的直方图平移方法的逆操作,提取出额外信息U,对携密比特流Jm中的交流系数进行恢复,得到置乱比特流J1;最后,云端将置乱比特流J1发送给接收者;
F、JPEG比特流解密
D1、初始块置乱比特流恢复:
接收者首先在块置乱比特流J1中提取第n个块置乱熵编码
Figure GDA0002650299180000178
中的直流系数熵编码
Figure GDA0002650299180000179
并进行熵解码,得到第n个块置乱熵编码数据
Figure GDA00026502991800001710
的直流系数
Figure GDA00026502991800001711
然后,将所有的块置乱熵编码
Figure GDA00026502991800001712
的直流系数
Figure GDA00026502991800001713
进行拼接,得到块置乱比特流J1的差分脉冲调制编码直流系数序列Dc
对差分脉冲调制编码直流系数序列Dc进行差分脉冲调制解码,得到初始块置乱比特流J*的直流系数序列D,D={D1,D2,…,Dn,…DN};将第n个初始块置乱熵编码数据
Figure GDA00026502991800001714
的直流系数Dn进行熵编码,得到第n个初始块置乱熵编码数据
Figure GDA00026502991800001715
的直流系数熵编码DCC*<n>,并替换块置乱熵编码数据
Figure GDA00026502991800001716
中的直流系数熵编码
Figure GDA00026502991800001717
得到初始块置乱熵编码数据
Figure GDA00026502991800001718
将所有的初始块置乱熵编码数据
Figure GDA00026502991800001719
进行拼接,得到初始块置乱熵编码密文序列E*
Figure GDA0002650299180000181
最后,将图像开始标记符SOI,JPEG头文件JH,初始块置乱熵编码密文序列E*以及图像结束标记符EOI依次拼接,得到初始块置乱比特流J*
D2、置乱恢复比特流密文:
接收者根据加密密钥K1对初始块置乱比特流J*中初始熵编码密文序列E*
Figure GDA0002650299180000182
进行置乱恢复,得到图像块熵编码密文序列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中交流系数的原始编码
Figure GDA0002650299180000191
Figure GDA0002650299180000192
并与第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的加密图像文件大小对比表
Figure GDA0002650299180000211
从表中可以看出,本发明的加密图像文件大小要稍高于文献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为图像块熵编码的个数,
Figure FDA0002650299170000011
H为图像X的行数、W为图像X的列数;
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、AC系数分组:
找出第n个图像块熵编码ECSn的交流系数Cn中最后一个非零交流系数,记为ACn,T,其序号为T;用户对第n个图像块熵编码ECSn的交流系数Cn中的前T个交流系数ACn,t依次进行分组:
如果交流系数ACn,t连续为0,则将这些交流系数ACn,t构成一个分组
Figure FDA0002650299170000012
否则,一个交流系数ACn,t独立构成一个分组
Figure FDA0002650299170000021
然后,将这些分组
Figure FDA0002650299170000022
依次拼接,得到第n个图像块熵编码ECSn的系数分组序列Bn
Figure FDA0002650299170000023
其中r为第n个图像块熵编码ECSn的交流系数分组
Figure FDA0002650299170000024
的序号,Rn为第n个图像块熵编码ECSn的交流系数分组
Figure FDA0002650299170000025
的个数;
A1.4、交流系数分组序列置乱:
在第n个图像块熵编码ECSn的交流系数分组序列Bn中,对前Rn-1个交流系数分序列
Figure FDA0002650299170000026
进行分类,如果交流系数分组
Figure FDA0002650299170000027
中的交流系数全为0,记为交流系数为零的分组
Figure FDA0002650299170000028
否则,记为交流系数非零的分组
Figure FDA0002650299170000029
将所有的交流系数非零的分组
Figure FDA00026502991700000210
依次拼接,得到交流系数非零的分组序列Bn,1
Figure FDA00026502991700000211
其中r’为交流系数非零的分组
Figure FDA00026502991700000212
的序号,r1为交流系数非零的分组
Figure FDA00026502991700000213
的个数;
然后,根据加密密钥K1对交流系数非零的分组序列Bn,1进行伪随机置乱生成交流系数非零的置乱分组序列
Figure FDA00026502991700000214
Figure FDA00026502991700000215
其中,
Figure FDA00026502991700000216
为交流系数非零的置乱分组序列
Figure FDA00026502991700000217
中的第r’个交流系数非零的置乱分组;
将所有的交流系数为零的分组
Figure FDA00026502991700000218
依次拼接,得到交流系数为零的分组序列Bn,0
Figure FDA00026502991700000219
其中
Figure FDA00026502991700000220
为第r”个交流系数为零的置乱分组,r0为交流系数为零的置乱分组
Figure FDA00026502991700000221
的个数;r0+r1=Rn-1;r0≤r1
然后,根据加密密钥K1对交流系数为零的分组序列Bn,0进行伪随机置乱生成交流系数为零的置乱分组序列
Figure FDA00026502991700000222
Figure FDA00026502991700000223
将交流系数为零的置乱分组序列
Figure FDA00026502991700000224
中的交流系数为零的置乱分组
Figure FDA00026502991700000225
与交流系数非零的置乱分组序列
Figure FDA00026502991700000226
中前r0个交流系数非零的置乱分组
Figure FDA00026502991700000227
依次交替拼接,再与置乱交流系数非零的分组序列
Figure FDA00026502991700000228
中后r1-r0个置乱交流系数非零的分组
Figure FDA0002650299170000031
和系数分组序列Bn中最后一个系数分组
Figure FDA0002650299170000032
依次拼接,得到生成置乱交流系数分组序列
Figure FDA0002650299170000033
Figure FDA0002650299170000034
Figure FDA0002650299170000035
其中r”’为置乱交流系数分组
Figure FDA0002650299170000036
的序号;
A1.5、置乱交流系数生成:
最后,用户将置乱交流系数分组序列
Figure FDA0002650299170000037
中所有的交流系数与63-T个0,依次拼接,生成伪随机置乱系数
Figure FDA0002650299170000038
Figure FDA0002650299170000039
并通过下式得到置乱交流系数C′n
Figure FDA00026502991700000310
A2、系数置乱比特流生成:
对置乱交流系数C′n进行熵编码,得到置乱交流系数熵编码
Figure FDA00026502991700000311
Figure FDA00026502991700000312
Figure FDA00026502991700000313
并将第n个图像块熵编码ECSn中直流系数的熵编码DCC<n>与置乱交流系数熵编码
Figure FDA00026502991700000314
拼接,组成第n个系数置乱熵编码ECS′n
Figure FDA00026502991700000315
将图像开始标记符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个AC系数的扩展位密文ACA″<n,i>进行依次重组,得到系数置乱熵编码ECS′n中第i个AC系数熵编码密文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*
Figure FDA0002650299170000051
Figure FDA0002650299170000052
并将图像开始标记符SOI,JPEG头文件JH,块置乱熵编码密文序列E*以及图像结束标记符EOI依次拼接,得到初始块置乱比特流J*
Figure FDA0002650299170000053
A6、块置乱比特流生成:
在初始块置乱比特流J*中,将第n个初始块置乱熵编码数据
Figure FDA0002650299170000054
Figure FDA0002650299170000055
中的直流系数熵编码DCC*<n>进行熵解码,得到第n个初始块置乱熵编码数据
Figure FDA0002650299170000056
的直流系数Dn
将所有初始块置乱熵编码数据
Figure FDA0002650299170000057
的直流系数Dn依次拼接,得到初始块置乱比特流J*的直流系数序列D,D={D1,D2,...,Dn,...DN};然后,对直流系数序列D进行差分脉冲调制编码,得到差分脉冲调制编码直流系数序列Dc
Figure FDA0002650299170000058
Figure FDA0002650299170000059
然后,将差分脉冲调制编码序列Dc中的直流系数
Figure FDA00026502991700000516
进行熵编码,得到初始块置乱直流系数熵编码
Figure FDA00026502991700000510
并替换初始块置乱熵编码数据
Figure FDA00026502991700000511
中的直流系数熵编码DCC*<n>,得到块置乱熵编码
Figure FDA00026502991700000512
Figure FDA00026502991700000513
所有的块置乱熵编码
Figure FDA00026502991700000514
依次拼接组成块置乱熵编码序列E1
Figure FDA00026502991700000515
最后,将图像开始标记代码SOI,JPEG头文件JH,块置乱熵编码序列E1以及图像结束标记代码EOI依次拼接,得到块置乱比特流J1
Figure FDA0002650299170000061
并上传到云端;
B、信息隐藏:
在上传到云端的块置乱比特流J1中,云端根据直方图平移方法,将额外信息U分段在块置乱熵编码
Figure FDA0002650299170000062
中的交流系数
Figure FDA0002650299170000063
中,从前至后依次进行信息隐藏;分段隐藏额外信息后的块置乱熵编码
Figure FDA0002650299170000064
记为携密图像块熵编码
Figure FDA0002650299170000065
最后,将图像开始标记代码SOI,JPEG头文件JH,所有的携密图像块熵编码
Figure FDA0002650299170000066
以及图像结束标记代码EOI依次拼接,得到携密比特流Jm
Figure FDA0002650299170000067
C、信息提取:
在携密比特流Jm中,云端进行B步骤中的直方图平移方法的逆操作,提取出额外信息U,对携密比特流Jm中的交流系数进行恢复,得到置乱比特流J1;最后,云端将置乱比特流J1发送给接收者;
D、JPEG比特流解密:
D1、初始块置乱比特流恢复:
接收者首先在块置乱比特流J1中提取第n个块置乱熵编码
Figure FDA0002650299170000068
中的直流系数熵编码
Figure FDA0002650299170000069
并进行熵解码,得到第n个块置乱熵编码数据
Figure FDA00026502991700000610
的直流系数
Figure FDA00026502991700000611
然后,将所有的块置乱熵编码
Figure FDA00026502991700000612
的直流系数
Figure FDA00026502991700000613
进行拼接,得到块置乱比特流J1的差分脉冲调制编码直流系数序列Dc
对差分脉冲调制编码直流系数序列Dc进行差分脉冲调制解码,得到初始块置乱比特流J*的直流系数序列D,D={D1,D2,...,Dn,...DN};将第n个初始块置乱熵编码数据
Figure FDA0002650299170000071
的直流系数Dn进行熵编码,得到第n个初始块置乱熵编码数据
Figure FDA0002650299170000072
的直流系数熵编码DCC*<n>,并替换块置乱熵编码数据
Figure FDA0002650299170000073
中的直流系数熵编码
Figure FDA0002650299170000074
得到初始块置乱熵编码数据
Figure FDA0002650299170000075
将所有的初始块置乱熵编码数据
Figure FDA0002650299170000076
进行拼接,得到初始块置乱熵编码密文序列E*
Figure FDA0002650299170000077
最后,将图像开始标记符SOI,JPEG头文件JH,初始块置乱熵编码密文序列E*以及图像结束标记符EOI依次拼接,得到初始块置乱比特流J*
D2、置乱恢复比特流密文:
接收者根据加密密钥K1对初始块置乱比特流J*中初始熵编码密文序列E*
Figure FDA0002650299170000078
进行置乱恢复,得到图像块熵编码密文序列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中交流系数的原始编码
Figure FDA0002650299170000081
Figure FDA0002650299170000082
并与第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 CN109151486A (zh) 2019-01-04
CN109151486B true 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)

Families Citing this family (15)

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

Citations (5)

* 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
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图像加密方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7974477B2 (en) * 2007-02-19 2011-07-05 New Jersey Institute Of Technology Apparatus and method for reversible data hiding for JPEG images
US20130077817A1 (en) * 2010-06-09 2013-03-28 Cardygen Ltd. Steganographic method

Patent Citations (5)

* 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
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
Reversible Data Hiding in Encrypted JPEG Bitstream;Zhenxing Qian;《IEEE Transactions on Multimedia》;20140831;第16卷(第5期);全文 *
具有鲁棒性与数据嵌入能力的JPEG压缩图像加密算法;郭慧;《计算机应用研究》;20160930;第33卷(第9期);全文 *

Also Published As

Publication number Publication date
CN109151486A (zh) 2019-01-04

Similar Documents

Publication Publication Date Title
CN109151486B (zh) Jpeg图像比特流加密域可逆数据隐藏方法
Long et al. Separable reversible data hiding and encryption for HEVC video
Qian et al. Separable reversible data hiding in encrypted JPEG bitstreams
Chen et al. Multi-MSB compression based reversible data hiding scheme in encrypted images
Qiu et al. Reversible data hiding in encrypted images using adaptive reversible integer transformation
AU2009265724B2 (en) Methods and apparatuses for selective data encryption
CN109889687B (zh) 基于交流统计特征改变的jpeg图像比特流加密方法
CN107578452B (zh) 一种具有兼容格式和不变尺寸的jpeg图像加密方法
Ahmed et al. A perceptually scalable and jpeg compression tolerant image encryption scheme
Rengarajaswamy et al. SPIRT compression on encrypted images
Yin et al. Separable reversible data hiding in encrypted image with classification permutation
CN113382127B (zh) 一种弹性选择和游程编码的加密图像可逆信息隐藏方法
Puteaux et al. Hierarchical high capacity data hiding in JPEG crypto-compressed images
Ong et al. Rotational based rewritable data hiding in JPEG
CN105704499B (zh) 一种基于ChaCha20和CCSDS的选择性卫星图像压缩加密方法
CN115190216A (zh) 基于预测误差图的加密图像可逆数据隐藏及解密方法
Ayyappan et al. A review on reversible data hiding techniques
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
Abdelmged et al. A Combined approach of steganography and cryptography technique based on parity checker and huffman encoding
Rosaline et al. Reversible data hiding technique for stream ciphered and wavelet compressed image
Krishna et al. Concealment of Data using RSA Cryptography and Steganography Techniques
Lalwani et al. Secure Data Hiding in Audio-Video Steganalysis by Anti-Forensic Technique
Mazumder et al. Review of different techniques used in recent steganography researches

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