CN109889687B - 基于交流统计特征改变的jpeg图像比特流加密方法 - Google Patents

基于交流统计特征改变的jpeg图像比特流加密方法 Download PDF

Info

Publication number
CN109889687B
CN109889687B CN201910089778.7A CN201910089778A CN109889687B CN 109889687 B CN109889687 B CN 109889687B CN 201910089778 A CN201910089778 A CN 201910089778A CN 109889687 B CN109889687 B CN 109889687B
Authority
CN
China
Prior art keywords
entropy coding
coefficient
encrypted
sequence
direct current
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
CN201910089778.7A
Other languages
English (en)
Other versions
CN109889687A (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 CN201910089778.7A priority Critical patent/CN109889687B/zh
Publication of CN109889687A publication Critical patent/CN109889687A/zh
Application granted granted Critical
Publication of CN109889687B publication Critical patent/CN109889687B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

一种基于交流统计特征改变的JPEG图像比特流加密方法,用户在JPEG比特流中由用户密钥选择部分图像块中最后一个非零交流系数熵编码进行加密,并作为秘密信息通过直方图平移方法隐藏到部分图像块熵编码中,由用户密钥和交流系数得到统计特性,自适应生成直流系数加密密钥和交流系数的加密密钥,分别对直流系数进行组间置乱和差分编码迭代置乱,对交流系数进行块内和块间置乱;接收者在加密比特流中提取秘密信息并进行解密,由用户密钥和加密比特流中交流系数统计特性恢复直流系数和交流系数加密密钥,并对交流系数和直流系数进行解密,恢复每个图像块熵编码中的交流系数熵编码,得到原始比特流。该方法安全性高,且加密文件扩展小。

Description

基于交流统计特征改变的JPEG图像比特流加密方法
技术领域
本发明涉及一种JPEG图像比特流加密方法。
背景技术
JPEG(Joint Photographic Experts Group)是网络空间中存储、传输及应用最常见的图像文件格式。JPEG压缩标准能够在低损的情况下将数字图像存储在很小的空间。随着云计算、云存储的快速发展,云端存储数据的安全性引起研究者的广泛关注。图像加密是保护图像内容隐私安全的有效手段。加密图像的空域数据会导致图像文件体积扩展严重,直接加密JPEG比特流为实现低存储空间下实现隐私保护的图像加密提供了可能的途径。JPEG图像具有特殊的编码方式,生成的加密图像需要与JPEG解码器兼容;因此对JPEG比特流加密是一个具有挑战性的研究课题。
近年来,研究者提出了许多JPEG比特流加密方法,在JPEG标准兼容、文件增量、安全性等方面取得了许多研究成果。最近,文献1(Z.Qian,H.Xu,X.Luo and X.Zhang,“NewFramework of Reversible Data Hiding in Encrypted JPEG Bitstreams,”IEEETransactions on Circuits and Systems for Video Technology,10.1109/TCSVT.2018.2797897.)提出了一种JPEG比特流加密域可逆数据隐藏方法,该方法根据秘密信息通过对交流系数进行直方图平移实现在加密JPEG比特流中可逆地隐藏数据。该方法通过基于密钥随机选择图像块实现了编码块的伪随机置乱,通过“直流再差分”有效避免了直流系数的越界,使生成的加密JPEG比特流与JPEG标准兼容,且其相应的解码图像类似随机噪声,实现了对图像视觉内容的保护。不过,该算法的直流编码扩展较大,导致加密JPEG图像文件体积增大。同时,当遭受已知明文攻击时,可能导致JPEG密文库中所有文件泄密的安全隐患。
2018年,文献2(He J,Huang S,Tang S,et al.JPEG Image Encryption withImproved Format Compatibility and File Size Preservation[J].IEEE Transactionson Multimedia,2018:1-1.)提出了一种JPEG图像加密方案。一方面,该算法利用加密前后交流系数具有相同分布的特性,自适应生成图像的加密密钥,而不是用相同密钥加密JPEG密文库中所有图像,提高了算法抵抗已知明文攻击的能力。不过,该算法采用的自适应生成密钥的“交流系数统计特征”在JPEG流加密前后完全相同,容易伪造,因此,该算法易受选择明文攻击;同时,该算法还设计一种“同号段内置乱与多次分组迭代置换”的DC差分系数加密方法,实现了DCT系数不越界和对加密JPEG图像视觉内容的保护,还有效降低了直流编码的扩展。不过,该算法的置乱都是在局部进行,缩小了DC加密的密文空间。
发明内容
本发明的是为了提供一种基于交流统计特征改变的JPEG图像比特流加密方法,该方法安全性高,文件扩展低。
本发明实现其发明目的所采用的技术方案是,一种基于交流统计特征改变的JPEG图像比特流加密方法,包括如下步骤:
A、JPEG图像比特流加密:
A1、数据读取:
用户读取大小为H0×W0的JPEG格式的图像X,获得图像X的原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSn,...,ECSN,EOI},其中:SOI为图像开始标记符,JH为JPEG头文件,EOI为图像的结束标记符,ECSn为图像X中的第n个图像块熵编码,N为图像块熵编码的个数,N=(H0×W0)/64;H0为图像X的行数、W0为图像X的列数;
图像X中的第n个图像块熵编码ECSn由第n个图像块熵编码的直流差分熵编码Cn,第n个图像块的非零交流系数熵编码集An,图像块熵编码结束标记符EOB组成,即ECSn={Cn,An,EOB};其中,
Figure GDA0002334584240000031
Figure GDA0002334584240000032
是ECSn中第i个非零交流系数熵编码,In为第n个图像块熵编码中非零交流系数熵编码的个数;
将第一个至第N个图像块非零交流熵编码集A1,A2,...,An,...,AN,依次拼接组成原始比特流J的非零交流熵编码序列A,即A={A1,A2,...,An,...,AN};
A2、基于直方图平移的加密密钥自适应生成:
A2.1、交流系数熵编码预处理:
用户根据直方图平移方法,计算原始比特流J的最大隐写容量Cmax,根据用户密钥Key选取隐写容量Ce使得Ce∈(0,Cmax);然后,基于用户密钥Key生成长度为F的伪随机序列Z,Z={z1,z2,...,zf,...,zF},其中zf伪随机序列Z中的第f个伪随机的整数,且zf∈(1,N);
找出非零交流熵编码序列A中的第n=zf个非零交流熵编码集
Figure GDA0002334584240000034
;并提取出第zf个非零交流熵编码集
Figure GDA0002334584240000035
中的最后一个非零交流系数熵编码Bf
Figure GDA0002334584240000033
将所有的非零交流熵编码集
Figure GDA0002334584240000036
中的最后一个非零交流系数熵编码Bf依次拼接,组成长度为Ls的待隐藏比特流B,
Figure GDA0002334584240000037
其中Ls≤Ce;使用用户密钥Key加密待隐藏比特流B,得到的秘密信息S,
Figure GDA0002334584240000038
Ls为秘密信息S的长度;
同时,得到预处理交流熵编码序列
Figure GDA0002334584240000041
Figure GDA0002334584240000042
Figure GDA0002334584240000043
A2.2、秘密信息隐藏:
用户采用直方图平移隐藏方法将长度为Ls的秘密信息S隐藏至预处理交流熵编码序列
Figure GDA0002334584240000044
中,得到待加密交流熵编码序列
Figure GDA0002334584240000045
Figure GDA0002334584240000046
并将待加密交流熵编码序列
Figure GDA0002334584240000047
中隐藏秘密信息S所需要的交流熵编码集
Figure GDA0002334584240000048
的个数记为Ns
A2.3、交流系数统计特征生成:
将第n个待加密交流熵编码集
Figure GDA0002334584240000049
中的非零交流系数熵编码的个数记为
Figure GDA00023345842400000410
Figure GDA00023345842400000411
并将所有的待加密交流熵编码集
Figure GDA00023345842400000412
的非零交流系数熵编码的个数
Figure GDA00023345842400000413
依次拼接,得到待加密交流系数熵编码个数序列
Figure GDA00023345842400000414
Figure GDA00023345842400000415
然后,根据下式生成交流系数统计特征T,T={t0,t1,t2,...,tx,...,t63},其中,tx为交流系数熵编码个数
Figure GDA00023345842400000416
的值为x的统计特征值,
Figure GDA00023345842400000417
其中sum(.)为在待加密交流系数熵编码个数序列
Figure GDA00023345842400000418
中,满足条件
Figure GDA00023345842400000419
的交流系数熵编码个数
Figure GDA00023345842400000420
的总数;
A2.4、直流系数和交流系数加密密钥生成:
将用户密钥Key和交流系数统计特征T,分别作为混沌序列的种子和初值,由混沌序列生成自适应图像内容的直流加密密钥K1和交流加密密钥K2
A3、直流加密:
用户将所有图像块熵编码ECSn中的直流差分熵编码C1,C2,...,Cn,...,CN组成原始比特流J的直流差分熵编码序列C,即:C={C1,C2,...,Cn,...,CN};
A3.1、计算直流系数序列:
根据JPEG解码标准,解码每个直流差分熵编码Cn,得到直流差分系数dfn,并将所有的直流差分系数dfn依次拼接,组成直流差分序列DF,即:DF={df1,df2,...,dfn,...,dfN},
根据直流差分系数dfn,由下式计算得到直流系数dn
Figure GDA0002334584240000051
然后将所有的直流系数dn依次拼接得到原始比特流J中的直流系数序列D={d1,d2,...,dN},
A3.2、直流系数分组置乱:
按照从左至右的顺序,将直流系数序列D分成H(H=H0/8)组,得到直流系数分组序列
Figure GDA0002334584240000052
其中,Dh为直流系数分组序列
Figure GDA0002334584240000053
中的第h个直流系数分组,h=1,2,...,H;第h个直流系数分组Dh包含W(W=W0/8)个直流系数,分别为d(h-1)×W+1,d(h-1)×W+2,...,dh×W,即Dh={d(h-1)×W+1,d(h-1)×W+2,...,dh×W};其中w={1,2,3,...,W},h={1,2,3,...,H};
采用A2步生成的直流系数加密密钥K1,对直流系数分组序列进行置乱,得到置乱直流系数分组序列
Figure GDA0002334584240000054
Figure GDA0002334584240000055
其中,
Figure GDA0002334584240000056
置乱直流系数分组序列
Figure GDA0002334584240000057
中的第h’个置乱直流系数分组;
将置乱直流系数分组序列
Figure GDA0002334584240000058
中的所有置乱直流系数分组
Figure GDA0002334584240000059
依次拼接,得到,
Figure GDA00023345842400000510
其中,
Figure GDA00023345842400000511
为置乱直流系数分组序列
Figure GDA00023345842400000512
中的第n个置乱直流系数;
对置乱直流系数分组序列
Figure GDA00023345842400000513
中的第n个置乱直流系数
Figure GDA00023345842400000514
按下式进行计算,得到第n个置乱直流差分系数df′n
Figure GDA0002334584240000061
将所有的置乱直流差分系数df′n,依次拼接得到分组置乱直流差分系数序列DF’,DF’={df′1,df′2,...,df′n,...,df′N}
A3.3、差分编码迭代置乱:
根据直流系数加密密钥K1,对分组置乱直流差分系数序列DF’采用差分编码迭代置乱的加密方法进行加密,得到加密直流差分系数序列DF*
Figure GDA0002334584240000062
其中
Figure GDA0002334584240000063
为加密直流差分系数序列DF*中的第n个加密直流差分系数;
A3.4、直流系数加密熵编码序列的生成:
根据JPEG编码标准对加密的直流差分系数序列DF*中的第n个加密直流差分系数
Figure GDA0002334584240000064
进行编码,得到第n个图像块熵编码ECSn的直流系数加密熵编码
Figure GDA0002334584240000065
然后,将所有的直流系数加密熵编码
Figure GDA0002334584240000066
依次拼接,得到直流系数加密熵编码序列C*
Figure GDA0002334584240000067
A4、交流系数加密:
A4.1、块内置乱:
在A2.2步骤中生成的待加密交流熵编码序列
Figure GDA0002334584240000068
的,
Figure GDA0002334584240000069
中,如果
Figure GDA00023345842400000610
采用交流系数加密密钥K2,置乱第n个待加密交流熵编码集
Figure GDA00023345842400000611
中的
Figure GDA00023345842400000612
个交流系数编码
Figure GDA00023345842400000613
得到块内置乱交流熵编码集A′n
Figure GDA00023345842400000614
其中
Figure GDA00023345842400000615
为第n个块内置乱交流熵编码集A′n中的第i个块内置乱交流系数编码
Figure GDA00023345842400000616
否则,将待加密交流熵编码集
Figure GDA00023345842400000617
记为第n个块内置乱交流熵编码集A′n,即
Figure GDA00023345842400000618
最后,按序拼接所有的块内置乱交流熵编码集A′n,得到原始比特流J的块内置乱交流熵编码序列A′,A′={A′1,A′2,...,A′n,...,A′N};
A4.2、块间置乱:
根据交流系数加密密钥K2,对原始比特流J的块内置乱交流熵编码序列A′进行伪随机置乱,得到加密交流熵编码序列A*
Figure GDA0002334584240000071
其中
Figure GDA0002334584240000072
为第n个加密交流系数熵编码集;
A5、加密比特流生成:
用户将A3.4步骤得到的直流系数加密熵编码序列C*中第n个直流系数熵编码
Figure GDA0002334584240000073
A4.2步骤得到的加密交流熵编码序列A*中第n个加密交流熵编码集
Figure GDA0002334584240000074
和图像块结束熵编码结束标记符EOB,依次拼接,得到加密图像块熵编码
Figure GDA0002334584240000075
Figure GDA0002334584240000076
然后,将图像开始标记符SOI,JPEG头文件JH,所有加密图像块熵编码
Figure GDA0002334584240000077
以及图像结束标记符EOI依次拼接,得到加密比特流J*
Figure GDA0002334584240000078
最后,用户将用户密钥Key,秘密信息S的长度Ls,隐藏秘密信息S所需要的交流熵编码集合的个数记Ns,依次拼接,记为密钥信息Ke,Ke=(Key||Ls||Ns),并将密钥信息Ke,以及加密比特流J*发送给接收者,其中||为串联符号;
B、JPEG比特流解密:
B1、加密密钥提取:
接收者提取接收到的加密比特流J*中的第n个加密图像块熵编码
Figure GDA0002334584240000079
进而提取出第n个加密图像块熵编码
Figure GDA00023345842400000710
中的第n个加密交流熵编码集
Figure GDA00023345842400000711
令第n个加密交流熵编码集
Figure GDA00023345842400000712
并从密钥信息Ke中提取出用户密钥Key,然后进行A2.3、A2.4中的操作,得到直流系数加密密钥K1和交流系数加密密钥K2
B2、交流系数解密:
B2.1、块间置乱恢复:
将所有的加密交流熵编码集
Figure GDA0002334584240000081
依次拼接,得到加密交流熵编码序列A*
Figure GDA0002334584240000082
根据交流系数加密密钥K2,对加密交流熵编码序列A*进行置乱恢复,得到原始比特流J的块内置乱交流熵编码序列A′,A′={A′1,A′2,...,A′n,...,A′N};
B2.2、块内置乱恢复:
在原始比特流J的块内置乱交流熵编码序列A′中,对每个块内置乱交流熵编码集A′n
Figure GDA0002334584240000083
如果I′n>1,用交流系数加密密钥K2置乱恢复块内置乱交流熵编码集A′n中的I′n个交流系数编码,得到待加密交流熵编码集
Figure GDA0002334584240000084
Figure GDA0002334584240000085
否则,待加密交流熵编码集
Figure GDA0002334584240000086
最后,按序拼接所有的待加密交流熵编码集
Figure GDA0002334584240000087
得到待加密交流熵编码序列
Figure GDA0002334584240000088
Figure GDA0002334584240000089
B2.3、秘密信息提取:
接收者从密钥信息Ke中提取出秘密信息长度Ls,隐藏秘密信息S所需要的图像块熵编码个数Ns
接收者对待加密交流熵编码序列
Figure GDA00023345842400000810
的前Ns个待加密交流熵编码集
Figure GDA00023345842400000811
采用直方图平移方法依次提取出二进制长度为Ls的秘密信息S,并得到预处理交流熵编码序列
Figure GDA00023345842400000812
Figure GDA00023345842400000813
然后,使用用户密钥Key解密秘密信息S,得到隐藏信息B;
B2.4、图像块交流系数恢复:
将隐藏信息B根据JPEG标准进行交流系数解码,得到F个待隐藏交流熵编码B1,B2,...,Bf,...,BF
根据用户密钥Key生成长度为F的伪随机序列Z,Z={z1,z2,...,zf,...,zF},按照下式,对预处理交流熵编码序列
Figure GDA0002334584240000091
Figure GDA0002334584240000092
进行处理,得到非零交流熵编码集An
Figure GDA0002334584240000093
依次拼接第n个图像块交流熵编码集An,组成非零交流熵编码序列A,即A={A1,A2,...,An,...,AN};
B3、直流系数解密:
B3.1、直流系数差分编码迭代置乱恢复:
接收者提取加密比特流J*中的第n个加密图像块熵编码
Figure GDA0002334584240000094
并提取第n个加密图像块熵编码
Figure GDA0002334584240000095
中的直流系数加密熵编码
Figure GDA0002334584240000096
然后,将所有的直流系数加密熵编码
Figure GDA0002334584240000097
依次拼接,得到直流系数加密熵编码序列C*,即
Figure GDA0002334584240000098
Figure GDA0002334584240000099
对直流系数加密熵编码序列C*进行JPEG解码,得到加密直流差分系数序列DF*
Figure GDA00023345842400000910
对加密直流差分系数序列DF*采用差分编码迭代置乱恢复的解密方法进行置乱恢复,得到分组置乱直流系数差分序列DF’,即DF’={df′1,df′2,...,df′n,...,df′N};
B3.2、直流系数分组:
对于分组置乱直流系数差分序列DF’,由下式计算得到置乱直流系数
Figure GDA00023345842400000912
Figure GDA00023345842400000913
然后将所有的置乱直流系数
Figure GDA00023345842400000914
依次拼接得到原始比特流J中的直流系数置乱分组序列
Figure GDA00023345842400000915
按照从左至右的顺序,将直流系数置乱分组序列
Figure GDA0002334584240000101
分成H(H=H0/8)个置乱直流系数分组
Figure GDA0002334584240000102
Figure GDA0002334584240000103
其中W=W0/8;进而得到置乱直流系数分组序列
Figure GDA0002334584240000104
Figure GDA0002334584240000105
Figure GDA0002334584240000106
为置乱直流系数分组序列
Figure GDA0002334584240000107
中的第h个置乱直流系数分组;
B3.3、直流系数组间置乱恢复:
根据直流加密密钥K1,以置乱直流系数分组
Figure GDA0002334584240000108
为单位,对置乱直流系数分组序列
Figure GDA0002334584240000109
进行伪随机置乱恢复,得到直流系数分组序列
Figure GDA00023345842400001010
Figure GDA00023345842400001011
其中,Dh为直流系数分组序列
Figure GDA00023345842400001012
中的第h个直流系数分组,将所有直流系数分组Dh依次拼接,得到直流系数序列D,D={d1,d2,...,dn,...,dN};
B3.4、直流系数解密熵编码的生成:
将直流系数序列D中的第n个的直流系数dn,根据下式进行运算,并得到第n个图像块熵编码ECSn的直流差分系数dfn
Figure GDA00023345842400001013
根据JPEG编码标准对第n个图像块熵编码ECSn的直流差分系数dfn进行编码,得到第n个图像块熵编码ECSn的直流系数解密熵编码Cn
B4、原始比特流恢复:
接收者将B3.4步骤得到的第n个图像块熵编码的直流系数解密熵编码Cn、B2.4步骤得到的第n个图像块的非零交流系数熵编码集An和图像块熵编码结束标记符EOB,依次拼接为原始比特流J中的第n个图像块熵编码ECSn,即ECSn={Cn,An,EOB},
并将图像开始标记符SOI,JPEG头文件JH,第n个图像块熵编码ECSn以及图像结束标记符EOI依次拼接,得到原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSn,...,ECSN,EOI}。
与现有技术相比,本发明的有益效果是:
一、本发明通过直方图平移方法将部分交流系数熵编码作为秘密信息隐藏到JPEG比特流中,从而使得加密后交流系数的统计特征发生变化,通过改变后的统计特征生成交流系数和直流系数的加密密钥,进一步提高了基于图像内容自适应生成密钥的安全性,同时提升了算法抵抗攻击者伪造具有相同交流系数统计特征的密文图像进行选择明文攻击的能力。
二、本发明通过对直流系数进了分组置乱,保留了组内直流系数的相关性,有效减少了因直流系数置乱加密后的DPCM编码引起的扩展;同时对交流系数进行块内置乱时采取了对交流系数熵编码的整体置乱方案,有效控制了置乱加密交流系数后引起的扩展。
三、本发明将直流系数分组置乱并采用差分编码迭代置乱,有效扩展直流差分编码的迭代置乱空间,提高了直流系数熵编码的安全性;对交流系数熵编码采取块内置乱和块间置乱相结合的置乱加密方法,改变了图像块内交流系数熵编码分布,提高了交流系数熵编码的安全性。
下面结合附图和具体实施方式对本发明作进一步的详细说明。
附图说明
图1a为本发明仿真实验1使用的量化因子Q=80的JPEG格式的Lena图像。
图1b为本发明仿真实验1得到的图1a的交流系数加密、直流系数置0的比特流解码图像。
图1c为本发明仿真实验1得到的图1a的加密比特流解码图像。
图1d为本发明仿真实验1得到的图1a的解密比特流解码图像。
图2a为本发明仿真实验2使用的量化因子Q=80的Baboon原始图像。
图2b为本发明仿真实验2得到的图2a的交流系数加密、直流系数置0的比特流解码图像。
图2c为本发明仿真实验2得到的图2a的加密比特流解码图像。
图2d为本发明仿真实验2得到的图2a的解密比特流解码图像。
图3为本发明仿真实验得到的交流系数熵编码个数变化与He算法(文献2)对比图像。
具体实施方式
实施例
本发明的一种具体实施方式是,一种基于交流统计特征改变的JPEG图像比特流加密方法,包括如下步骤:
A、JPEG图像比特流加密:
A1、数据读取:
用户读取大小为H0×W0的JPEG格式的图像X,获得图像X的原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSn,...,ECSN,EOI},其中:SOI为图像开始标记符,JH为JPEG头文件,EOI为图像的结束标记符,ECSn为图像X中的第n个图像块熵编码,N为图像块熵编码的个数,N=(H0×W0)/64;H0为图像X的行数、W0为图像X的列数;
图像X中的第n个图像块熵编码ECSn由第n个图像块熵编码的直流差分熵编码Cn,第n个图像块的非零交流系数熵编码集An,图像块熵编码结束标记符EOB组成,即ECSn={Cn,An,EOB};其中,
Figure GDA0002334584240000121
Figure GDA0002334584240000122
是ECSn中第i个非零交流系数熵编码,In为第n个图像块熵编码中非零交流系数熵编码的个数;
将第一个至第N个图像块非零交流熵编码集A1,A2,...,An,...,AN,依次拼接组成原始比特流J的非零交流熵编码序列A,即A={A1,A2,...,An,...,AN};
A2、基于直方图平移的加密密钥自适应生成:
A2.1、交流系数熵编码预处理:
用户根据直方图平移方法,计算原始比特流J的最大隐写容量Cmax,根据用户密钥Key选取隐写容量Ce使得Ce∈(0,Cmax);然后,基于用户密钥Key生成长度为F的伪随机序列Z,Z={z1,z2,...,zf,...,zF},其中zf伪随机序列Z中的第f个伪随机的整数,且zf∈(1,N);
找出非零交流熵编码序列A中的第n=zf个非零交流熵编码集
Figure GDA0002334584240000138
并提取出第zf个非零交流熵编码集
Figure GDA0002334584240000139
中的最后一个非零交流系数熵编码Bf
Figure GDA0002334584240000131
将所有的非零交流熵编码集
Figure GDA00023345842400001310
中的最后一个非零交流系数熵编码Bf依次拼接,组成长度为Ls的待隐藏比特流B,
Figure GDA00023345842400001311
其中Ls≤Ce;使用用户密钥Key加密待隐藏比特流B,得到的秘密信息S,
Figure GDA00023345842400001312
Ls为秘密信息S的长度;
同时,得到预处理交流熵编码序列
Figure GDA0002334584240000132
Figure GDA0002334584240000133
Figure GDA0002334584240000134
A2.2、秘密信息隐藏:
用户采用直方图平移隐藏方法将长度为Ls的秘密信息S隐藏至预处理交流熵编码序列
Figure GDA0002334584240000135
中,得到待加密交流熵编码序列
Figure GDA0002334584240000136
Figure GDA0002334584240000137
并将待加密交流熵编码序列
Figure GDA0002334584240000141
中隐藏秘密信息S所需要的交流熵编码集
Figure GDA0002334584240000142
的个数记为Ns
A2.3、交流系数统计特征生成:
将第n个待加密交流熵编码集
Figure GDA0002334584240000143
中的非零交流系数熵编码的个数记为
Figure GDA0002334584240000144
Figure GDA0002334584240000145
并将所有的待加密交流熵编码集
Figure GDA0002334584240000146
的非零交流系数熵编码的个数
Figure GDA0002334584240000147
依次拼接,得到待加密交流系数熵编码个数序列
Figure GDA0002334584240000148
Figure GDA0002334584240000149
然后,根据下式生成交流系数统计特征T,T={t0,t1,t2,...,tx,...,t63},其中,tx为交流系数熵编码个数
Figure GDA00023345842400001410
的值为x的统计特征值,
Figure GDA00023345842400001411
其中sum(.)为在待加密交流系数熵编码个数序列
Figure GDA00023345842400001412
中,满足条件
Figure GDA00023345842400001413
的交流系数熵编码个数
Figure GDA00023345842400001414
的总数;
A2.4、直流系数和交流系数加密密钥生成:
将用户密钥Key和交流系数统计特征T,分别作为混沌序列的种子和初值,由混沌序列生成自适应图像内容的直流加密密钥K1和交流加密密钥K2
A3、直流加密:
用户将所有图像块熵编码ECSn中的直流差分熵编码C1,C2,...,Cn,...,CN组成原始比特流J的直流差分熵编码序列C,即:C={C1,C2,...,Cn,...,CN};
A3.1、计算直流系数序列:
根据JPEG解码标准,解码每个直流差分熵编码Cn,得到直流差分系数dfn,并将所有的直流差分系数dfn依次拼接,组成直流差分序列DF,即:DF={df1,df2,...,dfn,...,dfN},
根据直流差分系数dfn,由下式计算得到直流系数dn
Figure GDA00023345842400001415
然后将所有的直流系数dn依次拼接得到原始比特流J中的直流系数序列D={d1,d2,...,dN},
A3.2、直流系数分组置乱:
按照从左至右的顺序,将直流系数序列D分成H(H=H0/8)组,得到直流系数分组序列
Figure GDA0002334584240000151
其中,Dh为直流系数分组序列
Figure GDA0002334584240000152
中的第h个直流系数分组,h=1,2,...,H;第h个直流系数分组Dh包含W(W=W0/8)个直流系数,分别为d(h-1)×W+1,d(h-1)×W+2,...,dh×W,即Dh={d(h-1)×W+1,d(h-1)×W+2,...,dh×W};其中w={1,2,3,...,W},h={1,2,3,...,H};
采用A2步生成的直流系数加密密钥K1,对直流系数分组序列
Figure GDA0002334584240000153
进行置乱,得到置乱直流系数分组序列
Figure GDA0002334584240000154
Figure GDA0002334584240000155
其中,
Figure GDA0002334584240000156
置乱直流系数分组序列
Figure GDA0002334584240000157
中的第h’个置乱直流系数分组;
将置乱直流系数分组序列
Figure GDA0002334584240000158
中的所有置乱直流系数分组
Figure GDA0002334584240000159
依次拼接,得到,
Figure GDA00023345842400001510
其中,
Figure GDA00023345842400001511
为置乱直流系数分组序列
Figure GDA00023345842400001512
中的第n个置乱直流系数;
对置乱直流系数分组序列
Figure GDA00023345842400001513
中的第n个置乱直流系数
Figure GDA00023345842400001514
按下式进行计算,得到第n个置乱直流差分系数df′n
Figure GDA00023345842400001515
将所有的置乱直流差分系数df′n,依次拼接得到分组置乱直流差分系数序列DF’,DF’={df′1,df′2,...,df′n,...,df′N}
A3.3、差分编码迭代置乱:
根据直流系数加密密钥K1,对分组置乱直流差分系数序列DF’采用差分编码迭代置乱的加密方法进行加密,得到加密直流差分系数序列DF*
Figure GDA0002334584240000161
其中
Figure GDA0002334584240000162
为加密直流差分系数序列DF*中的第n个加密直流差分系数;
A3.4、直流系数加密熵编码序列的生成:
根据JPEG编码标准对加密的直流差分系数序列DF*中的第n个加密直流差分系数
Figure GDA0002334584240000163
进行编码,得到第n个图像块熵编码ECSn的直流系数加密熵编码
Figure GDA0002334584240000164
然后,将所有的直流系数加密熵编码
Figure GDA0002334584240000165
依次拼接,得到直流系数加密熵编码序列C*
Figure GDA0002334584240000166
A4、交流系数加密:
A4.1、块内置乱:
在A2.2步骤中生成的待加密交流熵编码序列
Figure GDA0002334584240000167
的,
Figure GDA0002334584240000168
中,如果
Figure GDA0002334584240000169
采用交流系数加密密钥K2,置乱第n个待加密交流熵编码集
Figure GDA00023345842400001610
中的
Figure GDA00023345842400001611
个交流系数编码
Figure GDA00023345842400001612
得到块内置乱交流熵编码集A′n
Figure GDA00023345842400001613
其中
Figure GDA00023345842400001614
为第n个块内置乱交流熵编码集A′n中的第i个块内置乱交流系数编码
Figure GDA00023345842400001615
否则,将待加密交流熵编码集
Figure GDA00023345842400001616
记为第n个块内置乱交流熵编码集A′n,即
Figure GDA00023345842400001617
最后,按序拼接所有的块内置乱交流熵编码集A′n,得到原始比特流J的块内置乱交流熵编码序列A′,A′={A′1,A′2,...,A′n,...,A′N};
A4.2、块间置乱:
根据交流系数加密密钥K2,对原始比特流J的块内置乱交流熵编码序列A′进行伪随机置乱,得到加密交流熵编码序列A*
Figure GDA00023345842400001618
其中
Figure GDA00023345842400001619
为第n个加密交流系数熵编码集;
A5、加密比特流生成:
用户将A3.4步骤得到的直流系数加密熵编码序列C*中第n个直流系数熵编码
Figure GDA0002334584240000171
A4.2步骤得到的加密交流熵编码序列A*中第n个加密交流熵编码集
Figure GDA0002334584240000172
和图像块结束熵编码结束标记符EOB,依次拼接,得到加密图像块熵编码
Figure GDA0002334584240000173
Figure GDA0002334584240000174
然后,将图像开始标记符SOI,JPEG头文件JH,所有加密图像块熵编码
Figure GDA0002334584240000175
以及图像结束标记符EOI依次拼接,得到加密比特流J*
Figure GDA0002334584240000176
最后,用户将用户密钥Key,秘密信息S的长度Ls,隐藏秘密信息S所需要的交流熵编码集合的个数记Ns,依次拼接,记为密钥信息Ke,Ke=(Key||Ls||Ns),并将密钥信息Ke,以及加密比特流J*发送给接收者,其中||为串联符号;
B、JPEG比特流解密:
B1、加密密钥提取:
接收者提取接收到的加密比特流J*中的第n个加密图像块熵编码
Figure GDA0002334584240000177
进而提取出第n个加密图像块熵编码
Figure GDA0002334584240000178
中的第n个加密交流熵编码集
Figure GDA0002334584240000179
令第n个加密交流熵编码集
Figure GDA00023345842400001710
并从密钥信息Ke中提取出用户密钥Key,然后进行A2.3、A2.4中的操作,得到直流系数加密密钥K1和交流系数加密密钥K2
B2、交流系数解密:
B2.1、块间置乱恢复:
将所有的加密交流熵编码集
Figure GDA00023345842400001711
依次拼接,得到加密交流熵编码序列A*
Figure GDA00023345842400001712
根据交流系数加密密钥K2,对加密交流熵编码序列A*进行置乱恢复,得到原始比特流J的块内置乱交流熵编码序列A′,A′={A′1,A′2,...,A′n,...,A′N};
B2.2、块内置乱恢复:
在原始比特流J的块内置乱交流熵编码序列A′中,对每个块内置乱交流熵编码集A′n
Figure GDA0002334584240000181
如果I′n>1,用交流系数加密密钥K2置乱恢复块内置乱交流熵编码集A′n中的I′n个交流系数编码,得到待加密交流熵编码集
Figure GDA0002334584240000182
Figure GDA0002334584240000183
否则,待加密交流熵编码集
Figure GDA0002334584240000184
最后,按序拼接所有的待加密交流熵编码集
Figure GDA0002334584240000185
得到待加密交流熵编码序列
Figure GDA0002334584240000186
Figure GDA0002334584240000187
B2.3、秘密信息提取:
接收者从密钥信息Ke中提取出秘密信息长度Ls,隐藏秘密信息S所需要的图像块熵编码个数Ns
接收者对待加密交流熵编码序列
Figure GDA0002334584240000188
的前Ns个待加密交流熵编码集
Figure GDA0002334584240000189
采用直方图平移方法依次提取出二进制长度为Ls的秘密信息S,并得到预处理交流熵编码序列
Figure GDA00023345842400001810
Figure GDA00023345842400001811
然后,使用用户密钥Key解密秘密信息S,得到隐藏信息B;
B2.4、图像块交流系数恢复:
将隐藏信息B根据JPEG标准进行交流系数解码,得到F个待隐藏交流熵编码B1,B2,...,Bf,...,BF
根据用户密钥Key生成长度为F的伪随机序列Z,Z={z1,z2,...,zf,...,zF},按照下式,对预处理交流熵编码序列
Figure GDA00023345842400001812
Figure GDA00023345842400001813
进行处理,得到非零交流熵编码集An
Figure GDA00023345842400001814
依次拼接第n个图像块交流熵编码集An,组成非零交流熵编码序列A,即A={A1,A2,...,An,...,AN};
B3、直流系数解密:
B3.1、直流系数差分编码迭代置乱恢复:
接收者提取加密比特流J*中的第n个加密图像块熵编码
Figure GDA0002334584240000191
并提取第n个加密图像块熵编码
Figure GDA0002334584240000192
中的直流系数加密熵编码
Figure GDA0002334584240000193
然后,将所有的直流系数加密熵编码
Figure GDA0002334584240000194
依次拼接,得到直流系数加密熵编码序列C*,即
Figure GDA0002334584240000195
Figure GDA0002334584240000196
对直流系数加密熵编码序列C*进行JPEG解码,得到加密直流差分系数序列DF*
Figure GDA0002334584240000197
对加密直流差分系数序列DF*采用差分编码迭代置乱恢复的解密方法进行置乱恢复,得到分组置乱直流系数差分序列DF’,即DF’={df′1,df′2,...,df′n,...,df′N};
B3.2、直流系数分组:
对于分组置乱直流系数差分序列DF’,由下式计算得到置乱直流系数
Figure GDA0002334584240000198
Figure GDA0002334584240000199
然后将所有的置乱直流系数
Figure GDA00023345842400001910
依次拼接得到原始比特流J中的直流系数置乱分组序列
Figure GDA00023345842400001911
按照从左至右的顺序,将直流系数置乱分组序列
Figure GDA00023345842400001912
分成H(H=H0/8)个置乱直流系数分组
Figure GDA00023345842400001913
Figure GDA00023345842400001914
其中W=W0/8;进而得到置乱直流系数分组序列
Figure GDA00023345842400001915
Figure GDA00023345842400001916
Figure GDA00023345842400001917
为置乱直流系数分组序列
Figure GDA00023345842400001918
中的第h个置乱直流系数分组;
B3.3、直流系数组间置乱恢复:
根据直流加密密钥K1,以置乱直流系数分组
Figure GDA00023345842400001919
为单位,对置乱直流系数分组序列
Figure GDA00023345842400001920
进行伪随机置乱恢复,得到直流系数分组序列
Figure GDA0002334584240000201
Figure GDA0002334584240000202
其中,Dh为直流系数分组序列
Figure GDA0002334584240000203
中的第h个直流系数分组,将所有直流系数分组Dh依次拼接,得到直流系数序列D,D={d1,d2,...,dn,...,dN};
B3.4、直流系数解密熵编码的生成:
将直流系数序列D中的第n个的直流系数dn,根据下式进行运算,并得到第n个图像块熵编码ECSn的直流差分系数dfn
Figure GDA0002334584240000204
根据JPEG编码标准对第n个图像块熵编码ECSn的直流差分系数dfn进行编码,得到第n个图像块熵编码ECSn的直流系数解密熵编码Cn
B4、原始比特流恢复:
接收者将B3.4步骤得到的第n个图像块熵编码的直流系数解密熵编码Cn、B2.4步骤得到的第n个图像块的非零交流系数熵编码集An和图像块熵编码结束标记符EOB,依次拼接为原始比特流J中的第n个图像块熵编码ECSn,即ECSn={Cn,An,EOB},
并将图像开始标记符SOI,JPEG头文件JH,第n个图像块熵编码ECSn以及图像结束标记符EOI依次拼接,得到原始比特流J,J={SOI,JH,ECS1,ECS2,...,ECSn,...,ECSN,EOI}。
仿真实验及性能分析
仿真实验1将大小为H0×W0=512×512,量化因子Q=80的Lena图像(图1a)作为测试图像,进行实验仿真;
仿真实验2将大小为H0×W0=512×512,量化因子Q=80的Baboon图像(图2a)作为测试图像,进行实验仿真。
通过仿真实验1和仿真实验2来验证本发明各方面的性能。
图1a为仿真实验1的原始图像(Lena图像),图1b为仿真实验1交流系数加密、直流系数置0后的比特流进行解码的Lena图像;图2a为仿真实验2的原始图像(Baboon图像),图2b为仿真实验2交流系数加密、直流系数置0后的比特流进行解码的Baboon图像;
从图1b和图2b可以看出,交流系数加密保护了图像的部分信息。
图1c为仿真实验1交流系数和直流系数全加密后的比特流进行解码的Lena图像;图2c为仿真实验2交流系数和直流系数全加密后的比特流进行解码的Baboon图像;
从图1c和图2c可以看出,加密后的比特流进行解码得到的图像类似随机噪声,图像内容没有可读性,加密效果好。
图1a的Lena图像文件长度为37937byte,比特流加密过程中,生成的用户密钥Key=45612用来加密比特流;
提高交流系数的安全性包括:一方面,在交流系数块间置乱过程中,对每个预处理交流熵编码序列A根据交流系数加密密钥K2生成随机数进行伪随机置乱,使得每个图像块的交流系数熵编码进行了随机排列,实现了对图像块中的交流系数熵编码的位置信息保护;另一方面,在交流系数块内置乱过程中,根据交流系数加密密钥K2对每个图像块中的交流系数熵编码进行了置乱,从而改变了每个图像块熵编码中的交流系数熵编码排列分布;此外,在交流系数熵编码提取过程中,首先根据直方图平移的隐藏方法计算图1a的Lena图像的最大隐写容量Cmax为14591bits,根据用户密钥Key选取的自适应隐写容量Ce=6042bits,进而根据自适应隐写容量Ce选取前1167个图像块的最后一个交流系数熵编码组成长度为6040bits的交流系数,根据用户密钥Key进行异或加密生成长度Ls的关键信息S,并通过直方图平移嵌入方法隐藏至前Ns=1795个图形块熵编码中,从而通过对关键信息的隐藏实现了对图像块熵编码中的交流系数熵编码统计特性的保护。
提高直流系数安全性包括:一方面对从原始比特流J中提取出的直流系数序列D进行分组,根据直流系数加密密钥K1进行组间的分组置乱,主要改变了原始图像中每一行的直流系数的排列位置;另一方面,根据直流系数加密密钥K1对每一个分组进行组内迭代置乱,既能够改变每一行内直流系数的分布,又能够尽量保留了每行直流系数之间的相关性,避免了随机置乱引起的直流系数熵编码的比特增长。
图1d为图1a通过仿真实验1得到的解密比特流解码图像,图2d为图2a通过仿真实验2得到的解密比特流解码图像,两个解密比特流解码图像与原始JPEG比特流解码的图像完全相同,这说明本发明的加密方法没有改变原始图像特性。
此外,选取Lena、Man、Peppers、Lake、Baboon,5幅量化因子Q=80的图像作为测试图像验证本发明与文献1算法在生成大小为512×512的加密图像文件扩展比较,如下表所示。
本发明与文献1算法加密图像文件大小对比表
Figure GDA0002334584240000221
从上表可以看出,本发明的加密图像文件的直流系数扩展为0KB,交流系数扩展以及加密文件扩展为0-0.6KB;其文件扩展要低于文献[1]算法的文件扩展(0.6-0.8KB)。而其安全性远高于文献[1]算法。
选取量化因子Q=10,20,30,...,80的Lena、Man、Peppers、Lake、Baboon测试图像进行测试,测试其加密图像扩展大小变化,如下表所示。
本发明量化因子Q=10,20,30,...,80的加密图像文件大小变化表
Figure GDA0002334584240000231
上表表明,在量化因子不同(从10到80)的条件下,本发明的加密图像文件扩展为-0.1kb到0.6kb,加密图像文件扩展很小。
最后,实验定义α为加密前后交流系数统计特性值T的变换,α=T1-T2,其中T1为原始图像的交流系数统计特征,T2为加密图像的交流系数统计特征。
并用α来验证量化因子Q=80的Lena图像,对比He算法与本发明实验结果如图3所示。从图3中可以看出文献2算法中的α=0,表示加密前后比特流中交流系数的统计特性值没有发生变化,由于直流系数加密密钥K1和交流系数的加密密钥K2是根据图像中交流系数统计特征T自适应生成,所以文献2算法的加密图像的统计特征可作为密钥进行选择明文攻击;而本发明中的加密图像的交流系数统计特征T发生变化,也即提高了自适应生成的直流系数加密密钥K1和交流系数的加密密钥K2的安全性,从而证明本发明具有更高的安全性。

Claims (1)

1.一种基于交流统计特征改变的JPEG图像比特流加密方法,包括如下步骤:
A、JPEG图像比特流加密:
A1、数据读取:
用户读取大小为H0×W0的JPEG格式的图像X,获得图像X的原始比特流J,J={SOI,JH,ECS1,ECS2,…,ECSn,…,ECSN,EOI},其中:SOI为图像开始标记符,JH为JPEG头文件,EOI为图像的结束标记符,ECSn为图像X中的第n个图像块熵编码,N为图像块熵编码的个数,N=(H0×W0)/64;H0为图像X的行数、W0为图像X的列数;
图像X中的第n个图像块熵编码ECSn由第n个图像块熵编码的直流差分熵编码Cn,第n个图像块的非零交流系数熵编码集An,图像块熵编码结束标记符EOB组成,即ECSn={Cn,An,EOB};其中,
Figure FDA0002334584230000011
Figure FDA0002334584230000012
是ECSn中第i个非零交流系数熵编码,In为第n个图像块熵编码中非零交流系数熵编码的个数;
将第一个至第N个图像块非零交流熵编码集A1,A2,…,An,…,AN,依次拼接组成原始比特流J的非零交流熵编码序列A,即A={A1,A2,…,An,…,AN};
A2、基于直方图平移的加密密钥自适应生成:
A2.1、交流系数熵编码预处理:
用户根据直方图平移方法,计算原始比特流J的最大隐写容量Cmax,根据用户密钥Key选取隐写容量Ce使得Ce∈(0,Cmax);然后,基于用户密钥Key生成长度为F的伪随机序列Z,Z={z1,z2,…,zf,…,zF},其中zf伪随机序列Z中的第f个伪随机的整数,且zf∈(1,N);
找出非零交流熵编码序列A中的第n=zf个非零交流熵编码集
Figure FDA0002334584230000021
并提取出第zf个非零交流熵编码集
Figure FDA0002334584230000022
中的最后一个非零交流系数熵编码Bf
Figure FDA0002334584230000023
将所有的非零交流熵编码集
Figure FDA0002334584230000024
中的最后一个非零交流系数熵编码Bf依次拼接,组成长度为Ls的待隐藏比特流B,
Figure FDA0002334584230000025
其中Ls≤Ce;使用用户密钥Key加密待隐藏比特流B,得到的秘密信息S,
Figure FDA0002334584230000026
Ls为秘密信息S的长度;
同时,得到预处理交流熵编码序列
Figure FDA0002334584230000027
Figure FDA0002334584230000028
Figure FDA0002334584230000029
A2.2、秘密信息隐藏:
用户采用直方图平移隐藏方法将长度为Ls的秘密信息S隐藏至预处理交流熵编码序列
Figure FDA00023345842300000210
中,得到待加密交流熵编码序列
Figure FDA00023345842300000211
Figure FDA00023345842300000212
并将待加密交流熵编码序列
Figure FDA00023345842300000213
中隐藏秘密信息S所需要的交流熵编码集
Figure FDA00023345842300000214
的个数记为Ns
A2.3、交流系数统计特征生成:
将第n个待加密交流熵编码集
Figure FDA00023345842300000215
中的非零交流系数熵编码的个数记为
Figure FDA00023345842300000216
Figure FDA00023345842300000217
并将所有的待加密交流熵编码集
Figure FDA00023345842300000218
的非零交流系数熵编码的个数
Figure FDA00023345842300000219
依次拼接,得到待加密交流系数熵编码个数序列
Figure FDA00023345842300000220
Figure FDA00023345842300000221
然后,根据下式生成交流系数统计特征T,T={t0,t1,t2,…,tx,…,t63},其中,tx为交流系数熵编码个数
Figure FDA00023345842300000222
的值为x的统计特征值,
Figure FDA00023345842300000223
其中sum(.)为在待加密交流系数熵编码个数序列
Figure FDA0002334584230000031
中,满足条件
Figure FDA0002334584230000032
的交流系数熵编码个数
Figure FDA0002334584230000033
的总数;
A2.4、直流系数和交流系数加密密钥生成:
将用户密钥Key和交流系数统计特征T,分别作为混沌序列的种子和初值,由混沌序列生成自适应图像内容的直流加密密钥K1和交流加密密钥K2
A3、直流加密:
用户将所有图像块熵编码ECSn中的直流差分熵编码C1,C2,…,Cn,…,CN组成原始比特流J的直流差分熵编码序列C,即:C={C1,C2,…,Cn,…,CN};
A3.1、计算直流系数序列:
根据JPEG解码标准,解码每个直流差分熵编码Cn,得到直流差分系数dfn,并将所有的直流差分系数dfn依次拼接,组成直流差分序列DF,即:DF={df1,df2,…,dfn,…,dfN},
根据直流差分系数dfn,由下式计算得到直流系数dn
Figure FDA0002334584230000034
然后将所有的直流系数dn依次拼接得到原始比特流J中的直流系数序列D={d1,d2,…,dN},
A3.2、直流系数分组置乱:
按照从左至右的顺序,将直流系数序列D分成H(H=H0/8)组,得到直流系数分组序列
Figure FDA0002334584230000035
其中,Dh为直流系数分组序列
Figure FDA0002334584230000036
中的第h个直流系数分组,h=1,2,…,H;第h个直流系数分组Dh包含W(W=W0/8)个直流系数,分别为d(h-1)×W+1,d(h-1)×W+2,…,dh×W,即Dh={d(h-1)×W+1,d(h-1)×W+2,…,dh×W};其中w={1,2,3,…,W},h={1,2,3,…,H};
采用A2步生成的直流系数加密密钥K1,对直流系数分组序列
Figure FDA0002334584230000041
进行置乱,得到置乱直流系数分组序列
Figure FDA0002334584230000042
Figure FDA0002334584230000043
其中,
Figure FDA0002334584230000044
为置乱直流系数分组序列
Figure FDA0002334584230000045
中的第h’个置乱直流系数分组;
将置乱直流系数分组序列
Figure FDA0002334584230000046
中的所有置乱直流系数分组
Figure FDA0002334584230000047
依次拼接,得到,
Figure FDA0002334584230000048
其中,
Figure FDA0002334584230000049
为置乱直流系数分组序列
Figure FDA00023345842300000410
中的第n个置乱直流系数;
对置乱直流系数分组序列
Figure FDA00023345842300000411
中的第n个置乱直流系数
Figure FDA00023345842300000412
按下式进行计算,得到第n个置乱直流差分系数df′n
Figure FDA00023345842300000413
将所有的置乱直流差分系数df′n,依次拼接得到分组置乱直流差分系数序列DF’,DF’={df′1,df′2,…,df′n,…,df′N}
A3.3、差分编码迭代置乱:
根据直流系数加密密钥K1,对分组置乱直流差分系数序列DF’采用差分编码迭代置乱的加密方法进行加密,得到加密直流差分系数序列DF*
Figure FDA00023345842300000414
其中
Figure FDA00023345842300000415
为加密直流差分系数序列DF*中的第n个加密直流差分系数;
A3.4、直流系数加密熵编码序列的生成:
根据JPEG编码标准对加密的直流差分系数序列DF*中的第n个加密直流差分系数
Figure FDA00023345842300000416
进行编码,得到第n个图像块熵编码ECSn的直流系数加密熵编码
Figure FDA00023345842300000417
然后,将所有的直流系数加密熵编码
Figure FDA00023345842300000418
依次拼接,得到直流系数加密熵编码序列C*
Figure FDA00023345842300000419
A4、交流系数加密:
A4.1、块内置乱:
在A2.2步骤中生成的待加密交流熵编码序列
Figure FDA0002334584230000051
的,
Figure FDA0002334584230000052
中,如果
Figure FDA0002334584230000053
采用交流系数加密密钥K2,置乱第n个待加密交流熵编码集
Figure FDA0002334584230000054
中的
Figure FDA0002334584230000055
个交流系数编码
Figure FDA0002334584230000056
得到块内置乱交流熵编码集A′n
Figure FDA0002334584230000057
其中
Figure FDA0002334584230000058
为第n个块内置乱交流熵编码集A′n中的第i个块内置乱交流系数编码
Figure FDA0002334584230000059
否则,将待加密交流熵编码集
Figure FDA00023345842300000510
记为第n个块内置乱交流熵编码集A′n,即
Figure FDA00023345842300000511
最后,按序拼接所有的块内置乱交流熵编码集A′n,得到原始比特流J的块内置乱交流熵编码序列A′,A′={A′1,A′2,…,A′n,…,A′N};
A4.2、块间置乱:
根据交流系数加密密钥K2,对原始比特流J的块内置乱交流熵编码序列A′进行伪随机置乱,得到加密交流熵编码序列A*
Figure FDA00023345842300000512
其中
Figure FDA00023345842300000513
为第n个加密交流系数熵编码集;
A5、加密比特流生成:
用户将A3.4步骤得到的直流系数加密熵编码序列C*中第n个直流系数熵编码
Figure FDA00023345842300000514
A4.2步骤得到的加密交流熵编码序列A*中第n个加密交流熵编码集
Figure FDA00023345842300000515
和图像块结束熵编码结束标记符EOB,依次拼接,得到加密图像块熵编码
Figure FDA00023345842300000516
Figure FDA00023345842300000517
然后,将图像开始标记符SOI,JPEG头文件JH,所有加密图像块熵编码
Figure FDA00023345842300000518
以及图像结束标记符EOI依次拼接,得到加密比特流J*
Figure FDA00023345842300000519
最后,用户将用户密钥Key,秘密信息S的长度Ls,隐藏秘密信息S所需要的交流熵编码集合的个数记Ns,依次拼接,记为密钥信息Ke,Ke=(Key||Ls||Ns),并将密钥信息Ke,以及加密比特流J*发送给接收者,其中||为串联符号;
B、JPEG比特流解密:
B1、加密密钥提取:
接收者提取接收到的加密比特流J*中的第n个加密图像块熵编码
Figure FDA0002334584230000061
进而提取出第n个加密图像块熵编码
Figure FDA0002334584230000062
中的第n个加密交流熵编码集
Figure FDA0002334584230000063
令第n个加密交流熵编码集
Figure FDA0002334584230000064
并从密钥信息Ke中提取出用户密钥Key,然后进行A2.3、A2.4中的操作,得到直流系数加密密钥K1和交流系数加密密钥K2
B2、交流系数解密:
B2.1、块间置乱恢复:
将所有的加密交流熵编码集
Figure FDA0002334584230000065
依次拼接,得到加密交流熵编码序列A*
Figure FDA0002334584230000066
根据交流系数加密密钥K2,对加密交流熵编码序列A*进行置乱恢复,得到原始比特流J的块内置乱交流熵编码序列A′,A′={A′1,A′2,…,A′n,…,A′N};
B2.2、块内置乱恢复:
在原始比特流J的块内置乱交流熵编码序列A′中,对每个块内置乱交流熵编码集A′n
Figure FDA0002334584230000067
如果I′n>1,用交流系数加密密钥K2置乱恢复块内置乱交流熵编码集A′n中的I′n个交流系数编码,得到待加密交流熵编码集
Figure FDA0002334584230000068
Figure FDA0002334584230000069
否则,待加密交流熵编码集
Figure FDA00023345842300000610
最后,按序拼接所有的待加密交流熵编码集
Figure FDA00023345842300000611
得到待加密交流熵编码序列
Figure FDA00023345842300000612
Figure FDA00023345842300000613
B2.3、秘密信息提取:
接收者从密钥信息Ke中提取出秘密信息长度Ls,隐藏秘密信息S所需要的图像块熵编码个数Ns
接收者对待加密交流熵编码序列
Figure FDA0002334584230000071
的前Ns个待加密交流熵编码集
Figure FDA0002334584230000072
采用直方图平移方法依次提取出二进制长度为Ls的秘密信息S,并得到预处理交流熵编码序列
Figure FDA0002334584230000073
Figure FDA0002334584230000074
然后,使用用户密钥Key解密秘密信息S,得到隐藏信息B;
B2.4、图像块交流系数恢复:
将隐藏信息B根据JPEG标准进行交流系数解码,得到F个待隐藏交流熵编码B1,B2,…,Bf,…BF
根据用户密钥Key生成长度为F的伪随机序列Z,Z={z1,z2,…,zf,…,zF},按照下式,对预处理交流熵编码序列
Figure FDA0002334584230000075
Figure FDA0002334584230000076
进行处理,得到非零交流熵编码集An
Figure FDA0002334584230000077
依次拼接第n个图像块交流熵编码集An,组成非零交流熵编码序列A,即A={A1,A2,…,An,…,AN};
B3、直流系数解密:
B3.1、直流系数差分编码迭代置乱恢复:
接收者提取加密比特流J*中的第n个加密图像块熵编码
Figure FDA0002334584230000078
并提取第n个加密图像块熵编码
Figure FDA0002334584230000079
中的直流系数加密熵编码
Figure FDA00023345842300000710
然后,将所有的直流系数加密熵编码
Figure FDA00023345842300000711
依次拼接,得到直流系数加密熵编码序列C*,即
Figure FDA00023345842300000712
Figure FDA00023345842300000713
对直流系数加密熵编码序列C*进行JPEG解码,得到加密直流差分系数序列DF*
Figure FDA00023345842300000714
对加密直流差分系数序列DF*采用差分编码迭代置乱恢复的解密方法进行置乱恢复,得到分组置乱直流系数差分序列DF’,即DF’={df′1,df′2,…,df′n,…,df′N};
B3.2、直流系数分组:
对于分组置乱直流系数差分序列DF’,由下式计算得到置乱直流系数
Figure FDA0002334584230000081
Figure FDA0002334584230000082
然后将所有的置乱直流系数
Figure FDA0002334584230000083
依次拼接得到原始比特流J中的直流系数置乱分组序列
Figure FDA0002334584230000084
按照从左至右的顺序,将直流系数置乱分组序列
Figure FDA0002334584230000085
分成H(H=H0/8)个置乱直流系数分组
Figure FDA0002334584230000086
Figure FDA0002334584230000087
其中W=W0/8;进而得到置乱直流系数分组序列
Figure FDA0002334584230000088
Figure FDA0002334584230000089
Figure FDA00023345842300000810
为置乱直流系数分组序列
Figure FDA00023345842300000811
中的第h个置乱直流系数分组;
B3.3、直流系数组间置乱恢复:
根据直流加密密钥K1,以置乱直流系数分组
Figure FDA00023345842300000812
为单位,对置乱直流系数分组序列
Figure FDA00023345842300000813
进行伪随机置乱恢复,得到直流系数分组序列
Figure FDA00023345842300000814
Figure FDA00023345842300000815
其中,Dh为直流系数分组序列
Figure FDA00023345842300000816
中的第h个直流系数分组,将所有直流系数分组Dh依次拼接,得到直流系数序列D,D={d1,d2,…,dn,…,dN};
B3.4、直流系数解密熵编码的生成:
将直流系数序列D中的第n个的直流系数dn,根据下式进行运算,并得到第n个图像块熵编码ECSn的直流差分系数dfn
Figure FDA00023345842300000817
根据JPEG编码标准对第n个图像块熵编码ECSn的直流差分系数dfn进行编码,得到第n个图像块熵编码ECSn的直流系数解密熵编码Cn
B4、原始比特流恢复:
接收者将B3.4步骤得到的第n个图像块熵编码的直流系数解密熵编码Cn、B2.4步骤得到的第n个图像块的非零交流熵编码集An和图像块熵编码结束标记符EOB,依次拼接为原始比特流J中的第n个图像块熵编码ECSn,即ECSn={Cn,An,EOB},
并将图像开始标记符SOI,JPEG头文件JH,第n个图像块熵编码ECSn以及图像结束标记符EOI依次拼接,得到原始比特流J,J={SOI,JH,ECS1,ECS2,…,ECSn,…,ECSN,EOI}。
CN201910089778.7A 2019-01-30 2019-01-30 基于交流统计特征改变的jpeg图像比特流加密方法 Active CN109889687B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910089778.7A CN109889687B (zh) 2019-01-30 2019-01-30 基于交流统计特征改变的jpeg图像比特流加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910089778.7A CN109889687B (zh) 2019-01-30 2019-01-30 基于交流统计特征改变的jpeg图像比特流加密方法

Publications (2)

Publication Number Publication Date
CN109889687A CN109889687A (zh) 2019-06-14
CN109889687B true CN109889687B (zh) 2020-03-27

Family

ID=66927415

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910089778.7A Active CN109889687B (zh) 2019-01-30 2019-01-30 基于交流统计特征改变的jpeg图像比特流加密方法

Country Status (1)

Country Link
CN (1) CN109889687B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110913234B (zh) * 2019-12-05 2021-11-30 福建师范大学福清分校 一种jpeg图像加密的方法
CN112417190A (zh) * 2020-11-27 2021-02-26 暨南大学 一种密文jpeg图像的检索方法及应用
CN112468677B (zh) * 2020-11-27 2022-09-27 中国农业银行股份有限公司 一种数据加解密方法、装置及电子设备
CN113034334B (zh) * 2021-03-22 2023-07-14 绍兴聚量数据技术有限公司 联合JPEG和Huffman编码的加密图像可逆信息隐藏方法、装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102625152A (zh) * 2012-03-22 2012-08-01 李宗霖 一种视频数据的安全加密装置
EP2642744A1 (en) * 2012-03-19 2013-09-25 Nagravision S.A. Method and system for scrambling and descrambling a digital image
CN105975866A (zh) * 2016-04-26 2016-09-28 长安大学 基于同类系数置乱的jpeg图像加密方法
CN107103631A (zh) * 2017-04-17 2017-08-29 西南交通大学 基于分类置乱和隐藏信息分级的加密域可逆信息隐藏方法
CN109151486A (zh) * 2018-09-06 2019-01-04 西南交通大学 大容量的jpeg图像比特流加密域可逆数据隐藏方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2642744A1 (en) * 2012-03-19 2013-09-25 Nagravision S.A. Method and system for scrambling and descrambling a digital image
CN102625152A (zh) * 2012-03-22 2012-08-01 李宗霖 一种视频数据的安全加密装置
CN105975866A (zh) * 2016-04-26 2016-09-28 长安大学 基于同类系数置乱的jpeg图像加密方法
CN107103631A (zh) * 2017-04-17 2017-08-29 西南交通大学 基于分类置乱和隐藏信息分级的加密域可逆信息隐藏方法
CN109151486A (zh) * 2018-09-06 2019-01-04 西南交通大学 大容量的jpeg图像比特流加密域可逆数据隐藏方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Reversible Data Hiding in Encrypted JPEG Bitstream;Zhenxing Qian等;《IEEE Transactions on Multimedia》;20140408;第16卷(第5期);1486-1491 *

Also Published As

Publication number Publication date
CN109889687A (zh) 2019-06-14

Similar Documents

Publication Publication Date Title
CN109151486B (zh) Jpeg图像比特流加密域可逆数据隐藏方法
Long et al. Separable reversible data hiding and encryption for HEVC video
CN109889687B (zh) 基于交流统计特征改变的jpeg图像比特流加密方法
Zhang Separable reversible data hiding in encrypted image
CN112202984B (zh) 一种基于纠错冗余的密文域可逆信息隐藏方法
Ahmed et al. A perceptually scalable and jpeg compression tolerant image encryption scheme
CN115695675B (zh) 用于网络数据安全交换的视频加密方法
Chen et al. Error-free separable reversible data hiding in encrypted images using linear regression and prediction error map
Soleymani et al. A survey on principal aspects of secure image transmission
Seidel et al. Cryptanalysis of video encryption algorithms
Obaida Combining audio samples and image frames for enhancing video security
Thomas et al. Advanced cryptographic steganography using multimedia files
CN101207793A (zh) 实现加密和水印互操作的多媒体数据内容和版权保护方法
Prabhakaran et al. A new cryptic steganographic approach using video steganography
Ayyappan et al. A review on reversible data hiding techniques
Kumar et al. Secured patient information transmission using reversible watermarking and DNA Encrytion for medical images
Sivadasan A survey paper on various reversible data hiding techniques in encrypted images
Pramanik et al. Analysis of visual cryptography, steganography schemes and its hybrid approach for security of images
Patil et al. A secure data communication system using enhanced cryptography and steganography
Lee et al. Steganographic access control in data hiding using run‐length encoding and modulo‐operations
Hua et al. Secure reversible data hiding in encrypted images using cipher-feedback secret sharing
Francia et al. Applied image processing to multimedia information security
Ghrare et al. Development of Hybrid Data Security System using LSB Steganography and AES Cryptography
Bodke et al. A Novel approach for codeword substitution using encrypted H. 264/AVC video streams for data hiding
Devi et al. Novel secured reversible covert communication over encrypted domain using SVM classifier

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