CN109889687B - 基于交流统计特征改变的jpeg图像比特流加密方法 - Google Patents
基于交流统计特征改变的jpeg图像比特流加密方法 Download PDFInfo
- 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
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(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};其中,
将第一个至第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);
A2.2、秘密信息隐藏:
A2.3、交流系数统计特征生成:
将第n个待加密交流熵编码集中的非零交流系数熵编码的个数记为 并将所有的待加密交流熵编码集的非零交流系数熵编码的个数依次拼接,得到待加密交流系数熵编码个数序列 然后,根据下式生成交流系数统计特征T,T={t0,t1,t2,...,tx,...,t63},其中,tx为交流系数熵编码个数的值为x的统计特征值,
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,
然后将所有的直流系数dn依次拼接得到原始比特流J中的直流系数序列D={d1,d2,...,dN},
A3.2、直流系数分组置乱:
按照从左至右的顺序,将直流系数序列D分成H(H=H0/8)组,得到直流系数分组序列其中,Dh为直流系数分组序列中的第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};
将所有的置乱直流差分系数df′n,依次拼接得到分组置乱直流差分系数序列DF’,DF’={df′1,df′2,...,df′n,...,df′N}
A3.3、差分编码迭代置乱:
A3.4、直流系数加密熵编码序列的生成:
根据JPEG编码标准对加密的直流差分系数序列DF*中的第n个加密直流差分系数进行编码,得到第n个图像块熵编码ECSn的直流系数加密熵编码然后,将所有的直流系数加密熵编码依次拼接,得到直流系数加密熵编码序列C*,
A4、交流系数加密:
A4.1、块内置乱:
在A2.2步骤中生成的待加密交流熵编码序列的,中,如果采用交流系数加密密钥K2,置乱第n个待加密交流熵编码集中的个交流系数编码得到块内置乱交流熵编码集A′n,其中为第n个块内置乱交流熵编码集A′n中的第i个块内置乱交流系数编码否则,将待加密交流熵编码集记为第n个块内置乱交流熵编码集A′n,即
最后,按序拼接所有的块内置乱交流熵编码集A′n,得到原始比特流J的块内置乱交流熵编码序列A′,A′={A′1,A′2,...,A′n,...,A′N};
A4.2、块间置乱:
A5、加密比特流生成:
用户将A3.4步骤得到的直流系数加密熵编码序列C*中第n个直流系数熵编码A4.2步骤得到的加密交流熵编码序列A*中第n个加密交流熵编码集和图像块结束熵编码结束标记符EOB,依次拼接,得到加密图像块熵编码
最后,用户将用户密钥Key,秘密信息S的长度Ls,隐藏秘密信息S所需要的交流熵编码集合的个数记Ns,依次拼接,记为密钥信息Ke,Ke=(Key||Ls||Ns),并将密钥信息Ke,以及加密比特流J*发送给接收者,其中||为串联符号;
B、JPEG比特流解密:
B1、加密密钥提取:
接收者提取接收到的加密比特流J*中的第n个加密图像块熵编码进而提取出第n个加密图像块熵编码中的第n个加密交流熵编码集令第n个加密交流熵编码集并从密钥信息Ke中提取出用户密钥Key,然后进行A2.3、A2.4中的操作,得到直流系数加密密钥K1和交流系数加密密钥K2;
B2、交流系数解密:
B2.1、块间置乱恢复:
将所有的加密交流熵编码集依次拼接,得到加密交流熵编码序列A*,根据交流系数加密密钥K2,对加密交流熵编码序列A*进行置乱恢复,得到原始比特流J的块内置乱交流熵编码序列A′,A′={A′1,A′2,...,A′n,...,A′N};
B2.2、块内置乱恢复:
在原始比特流J的块内置乱交流熵编码序列A′中,对每个块内置乱交流熵编码集A′n,如果I′n>1,用交流系数加密密钥K2置乱恢复块内置乱交流熵编码集A′n中的I′n个交流系数编码,得到待加密交流熵编码集 否则,待加密交流熵编码集
B2.3、秘密信息提取:
接收者从密钥信息Ke中提取出秘密信息长度Ls,隐藏秘密信息S所需要的图像块熵编码个数Ns;
然后,使用用户密钥Key解密秘密信息S,得到隐藏信息B;
B2.4、图像块交流系数恢复:
将隐藏信息B根据JPEG标准进行交流系数解码,得到F个待隐藏交流熵编码B1,B2,...,Bf,...,BF;
依次拼接第n个图像块交流熵编码集An,组成非零交流熵编码序列A,即A={A1,A2,...,An,...,AN};
B3、直流系数解密:
B3.1、直流系数差分编码迭代置乱恢复:
对直流系数加密熵编码序列C*进行JPEG解码,得到加密直流差分系数序列DF*,对加密直流差分系数序列DF*采用差分编码迭代置乱恢复的解密方法进行置乱恢复,得到分组置乱直流系数差分序列DF’,即DF’={df′1,df′2,...,df′n,...,df′N};
B3.2、直流系数分组:
B3.3、直流系数组间置乱恢复:
根据直流加密密钥K1,以置乱直流系数分组为单位,对置乱直流系数分组序列进行伪随机置乱恢复,得到直流系数分组序列 其中,Dh为直流系数分组序列中的第h个直流系数分组,将所有直流系数分组Dh依次拼接,得到直流系数序列D,D={d1,d2,...,dn,...,dN};
B3.4、直流系数解密熵编码的生成:
将直流系数序列D中的第n个的直流系数dn,根据下式进行运算,并得到第n个图像块熵编码ECSn的直流差分系数dfn,
根据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};其中,
将第一个至第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);
A2.2、秘密信息隐藏:
A2.3、交流系数统计特征生成:
将第n个待加密交流熵编码集中的非零交流系数熵编码的个数记为 并将所有的待加密交流熵编码集的非零交流系数熵编码的个数依次拼接,得到待加密交流系数熵编码个数序列 然后,根据下式生成交流系数统计特征T,T={t0,t1,t2,...,tx,...,t63},其中,tx为交流系数熵编码个数的值为x的统计特征值,
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,
然后将所有的直流系数dn依次拼接得到原始比特流J中的直流系数序列D={d1,d2,...,dN},
A3.2、直流系数分组置乱:
按照从左至右的顺序,将直流系数序列D分成H(H=H0/8)组,得到直流系数分组序列其中,Dh为直流系数分组序列中的第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};
将所有的置乱直流差分系数df′n,依次拼接得到分组置乱直流差分系数序列DF’,DF’={df′1,df′2,...,df′n,...,df′N}
A3.3、差分编码迭代置乱:
A3.4、直流系数加密熵编码序列的生成:
根据JPEG编码标准对加密的直流差分系数序列DF*中的第n个加密直流差分系数进行编码,得到第n个图像块熵编码ECSn的直流系数加密熵编码然后,将所有的直流系数加密熵编码依次拼接,得到直流系数加密熵编码序列C*,
A4、交流系数加密:
A4.1、块内置乱:
在A2.2步骤中生成的待加密交流熵编码序列的,中,如果采用交流系数加密密钥K2,置乱第n个待加密交流熵编码集中的个交流系数编码得到块内置乱交流熵编码集A′n,其中为第n个块内置乱交流熵编码集A′n中的第i个块内置乱交流系数编码否则,将待加密交流熵编码集记为第n个块内置乱交流熵编码集A′n,即
最后,按序拼接所有的块内置乱交流熵编码集A′n,得到原始比特流J的块内置乱交流熵编码序列A′,A′={A′1,A′2,...,A′n,...,A′N};
A4.2、块间置乱:
A5、加密比特流生成:
用户将A3.4步骤得到的直流系数加密熵编码序列C*中第n个直流系数熵编码A4.2步骤得到的加密交流熵编码序列A*中第n个加密交流熵编码集和图像块结束熵编码结束标记符EOB,依次拼接,得到加密图像块熵编码
最后,用户将用户密钥Key,秘密信息S的长度Ls,隐藏秘密信息S所需要的交流熵编码集合的个数记Ns,依次拼接,记为密钥信息Ke,Ke=(Key||Ls||Ns),并将密钥信息Ke,以及加密比特流J*发送给接收者,其中||为串联符号;
B、JPEG比特流解密:
B1、加密密钥提取:
接收者提取接收到的加密比特流J*中的第n个加密图像块熵编码进而提取出第n个加密图像块熵编码中的第n个加密交流熵编码集令第n个加密交流熵编码集并从密钥信息Ke中提取出用户密钥Key,然后进行A2.3、A2.4中的操作,得到直流系数加密密钥K1和交流系数加密密钥K2;
B2、交流系数解密:
B2.1、块间置乱恢复:
将所有的加密交流熵编码集依次拼接,得到加密交流熵编码序列A*,根据交流系数加密密钥K2,对加密交流熵编码序列A*进行置乱恢复,得到原始比特流J的块内置乱交流熵编码序列A′,A′={A′1,A′2,...,A′n,...,A′N};
B2.2、块内置乱恢复:
在原始比特流J的块内置乱交流熵编码序列A′中,对每个块内置乱交流熵编码集A′n,如果I′n>1,用交流系数加密密钥K2置乱恢复块内置乱交流熵编码集A′n中的I′n个交流系数编码,得到待加密交流熵编码集 否则,待加密交流熵编码集
B2.3、秘密信息提取:
接收者从密钥信息Ke中提取出秘密信息长度Ls,隐藏秘密信息S所需要的图像块熵编码个数Ns;
然后,使用用户密钥Key解密秘密信息S,得到隐藏信息B;
B2.4、图像块交流系数恢复:
将隐藏信息B根据JPEG标准进行交流系数解码,得到F个待隐藏交流熵编码B1,B2,...,Bf,...,BF;
依次拼接第n个图像块交流熵编码集An,组成非零交流熵编码序列A,即A={A1,A2,...,An,...,AN};
B3、直流系数解密:
B3.1、直流系数差分编码迭代置乱恢复:
对直流系数加密熵编码序列C*进行JPEG解码,得到加密直流差分系数序列DF*,对加密直流差分系数序列DF*采用差分编码迭代置乱恢复的解密方法进行置乱恢复,得到分组置乱直流系数差分序列DF’,即DF’={df′1,df′2,...,df′n,...,df′N};
B3.2、直流系数分组:
B3.3、直流系数组间置乱恢复:
根据直流加密密钥K1,以置乱直流系数分组为单位,对置乱直流系数分组序列进行伪随机置乱恢复,得到直流系数分组序列 其中,Dh为直流系数分组序列中的第h个直流系数分组,将所有直流系数分组Dh依次拼接,得到直流系数序列D,D={d1,d2,...,dn,...,dN};
B3.4、直流系数解密熵编码的生成:
将直流系数序列D中的第n个的直流系数dn,根据下式进行运算,并得到第n个图像块熵编码ECSn的直流差分系数dfn,
根据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算法加密图像文件大小对比表
从上表可以看出,本发明的加密图像文件的直流系数扩展为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的加密图像文件大小变化表
上表表明,在量化因子不同(从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};其中,
将第一个至第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);
A2.2、秘密信息隐藏:
A2.3、交流系数统计特征生成:
将第n个待加密交流熵编码集中的非零交流系数熵编码的个数记为 并将所有的待加密交流熵编码集的非零交流系数熵编码的个数依次拼接,得到待加密交流系数熵编码个数序列 然后,根据下式生成交流系数统计特征T,T={t0,t1,t2,…,tx,…,t63},其中,tx为交流系数熵编码个数的值为x的统计特征值,
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,
然后将所有的直流系数dn依次拼接得到原始比特流J中的直流系数序列D={d1,d2,…,dN},
A3.2、直流系数分组置乱:
按照从左至右的顺序,将直流系数序列D分成H(H=H0/8)组,得到直流系数分组序列其中,Dh为直流系数分组序列中的第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};
将所有的置乱直流差分系数df′n,依次拼接得到分组置乱直流差分系数序列DF’,DF’={df′1,df′2,…,df′n,…,df′N}
A3.3、差分编码迭代置乱:
A3.4、直流系数加密熵编码序列的生成:
根据JPEG编码标准对加密的直流差分系数序列DF*中的第n个加密直流差分系数进行编码,得到第n个图像块熵编码ECSn的直流系数加密熵编码然后,将所有的直流系数加密熵编码依次拼接,得到直流系数加密熵编码序列C*,
A4、交流系数加密:
A4.1、块内置乱:
在A2.2步骤中生成的待加密交流熵编码序列的,中,如果采用交流系数加密密钥K2,置乱第n个待加密交流熵编码集中的个交流系数编码得到块内置乱交流熵编码集A′n,其中为第n个块内置乱交流熵编码集A′n中的第i个块内置乱交流系数编码否则,将待加密交流熵编码集记为第n个块内置乱交流熵编码集A′n,即
最后,按序拼接所有的块内置乱交流熵编码集A′n,得到原始比特流J的块内置乱交流熵编码序列A′,A′={A′1,A′2,…,A′n,…,A′N};
A4.2、块间置乱:
A5、加密比特流生成:
用户将A3.4步骤得到的直流系数加密熵编码序列C*中第n个直流系数熵编码A4.2步骤得到的加密交流熵编码序列A*中第n个加密交流熵编码集和图像块结束熵编码结束标记符EOB,依次拼接,得到加密图像块熵编码
最后,用户将用户密钥Key,秘密信息S的长度Ls,隐藏秘密信息S所需要的交流熵编码集合的个数记Ns,依次拼接,记为密钥信息Ke,Ke=(Key||Ls||Ns),并将密钥信息Ke,以及加密比特流J*发送给接收者,其中||为串联符号;
B、JPEG比特流解密:
B1、加密密钥提取:
接收者提取接收到的加密比特流J*中的第n个加密图像块熵编码进而提取出第n个加密图像块熵编码中的第n个加密交流熵编码集令第n个加密交流熵编码集并从密钥信息Ke中提取出用户密钥Key,然后进行A2.3、A2.4中的操作,得到直流系数加密密钥K1和交流系数加密密钥K2;
B2、交流系数解密:
B2.1、块间置乱恢复:
将所有的加密交流熵编码集依次拼接,得到加密交流熵编码序列A*,根据交流系数加密密钥K2,对加密交流熵编码序列A*进行置乱恢复,得到原始比特流J的块内置乱交流熵编码序列A′,A′={A′1,A′2,…,A′n,…,A′N};
B2.2、块内置乱恢复:
在原始比特流J的块内置乱交流熵编码序列A′中,对每个块内置乱交流熵编码集A′n,如果I′n>1,用交流系数加密密钥K2置乱恢复块内置乱交流熵编码集A′n中的I′n个交流系数编码,得到待加密交流熵编码集 否则,待加密交流熵编码集最后,按序拼接所有的待加密交流熵编码集得到待加密交流熵编码序列
B2.3、秘密信息提取:
接收者从密钥信息Ke中提取出秘密信息长度Ls,隐藏秘密信息S所需要的图像块熵编码个数Ns;
然后,使用用户密钥Key解密秘密信息S,得到隐藏信息B;
B2.4、图像块交流系数恢复:
将隐藏信息B根据JPEG标准进行交流系数解码,得到F个待隐藏交流熵编码B1,B2,…,Bf,…BF;
依次拼接第n个图像块交流熵编码集An,组成非零交流熵编码序列A,即A={A1,A2,…,An,…,AN};
B3、直流系数解密:
B3.1、直流系数差分编码迭代置乱恢复:
对直流系数加密熵编码序列C*进行JPEG解码,得到加密直流差分系数序列DF*,对加密直流差分系数序列DF*采用差分编码迭代置乱恢复的解密方法进行置乱恢复,得到分组置乱直流系数差分序列DF’,即DF’={df′1,df′2,…,df′n,…,df′N};
B3.2、直流系数分组:
B3.3、直流系数组间置乱恢复:
根据直流加密密钥K1,以置乱直流系数分组为单位,对置乱直流系数分组序列进行伪随机置乱恢复,得到直流系数分组序列 其中,Dh为直流系数分组序列中的第h个直流系数分组,将所有直流系数分组Dh依次拼接,得到直流系数序列D,D={d1,d2,…,dn,…,dN};
B3.4、直流系数解密熵编码的生成:
将直流系数序列D中的第n个的直流系数dn,根据下式进行运算,并得到第n个图像块熵编码ECSn的直流差分系数dfn,
根据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}。
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)
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)
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图像比特流加密域可逆数据隐藏方法 |
-
2019
- 2019-01-30 CN CN201910089778.7A patent/CN109889687B/zh active Active
Patent Citations (5)
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)
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 |