一种JPEG图像高精度保留缩略图加密方法

文档序号:33016269发布日期:2023-01-20 15:58阅读:58来源:国知局
一种jpeg图像高精度保留缩略图加密方法
技术领域
:1.本发明涉及图像加密和信息安全
技术领域
:,尤其涉及一种jpeg图像高精度保留缩略图加密方法。
背景技术
::2.得益于半导体技术的快速发展,图像获取设备的成本不断下降,人们每天都会拍摄大量的高分辨率图像用于记录日常生活,为了能够高效存储和便于设备共享,数以万计的数字图像被上传到云服务平台。虽然云存储技术给用户带来了便利,但同时也伴随着隐私泄露的风险。在现实生活中,私有图像中总是包含着丰富的个人敏感信息,若直接将明文图像上传到云端,那么云平台服务商可以轻松获取用户的图像信息,并且一旦账户被黑客破解,用户的所有信息将完全泄露。因此,为了能够保护用户的隐私信息,往往采用图像加密的方法处理用户图像。3.图像加密是保护图像隐私最为有效的方案,学者们在置乱-扩散框架下提出了众多安全性能良好的图像加密方案。然而,传统图像加密算法并未考虑密文图像的可用性,生成的密文图像为不可用的类噪声图像,给密文图像管理带来了困难。可搜索加密的提出实现了对密文图像的检索,一定程度上缓解了图像隐私性与可用性之间的矛盾,然而它的密文图像视觉效果仍与传统密文图像一样,并未包含任何与明文相关的视觉信息。因此,此类密文图像被解密之前用户无法预览图像,同样给用户管理和查询目标图像带来困扰。在许多情况下,用户只有在浏览之后才知道需要哪些图像,因此需要密文图像提供一定的视觉可用性以供用户感知图像内容。为了保证密文图像的视觉可用性,一些研究提出了仅加密图像隐私区域的方法,该方法通过泄露图像的背景来为用户提供视觉信息,然而事实上隐私却是一个主观概念,在不同的场景下可能有着完全不同的定义,那么现有的算法通常采用将感兴趣区域等价于图像的隐私区域的做法显得并不合适。4.为了兼顾云端图像的隐私性与可用性,wright等人(文献1:c.v.wright,w.feng,andf.liu,“thumbnail-preservingencryptionforjpeg,”inproceedingsofthe3rdacmworkshoponinformationhidingandmultimediasecurity,portlandoregonusa,jun.2015,pp.141–146.doi:10.1145/2756601.2756618.)首次提出了保留缩略图加密(thumbnail-preservingencryption,tpe),即密文图像与明文图像具有相同的缩略图。该加密方案可以由用户通过控制分块参数调整密文图像的安全性和可用性,分块越大则密文的安全性越高,可用性越低。其中,可用性是由密文缩略图提供的低质量明文信息。wright等人的方案仅使用了置乱操作加密像素块,生成的密文图像泄露了像素的统计信息,导致安全性不足。随后,marohn等人(文献2:b.marohn,c.v.wright,w.feng,m.rosulek,andr.b.bobba,“approximateth-umbnailpreservingencryption,”inproceedingsofthe2017onmultimediaprivacya-ndsecurity,dallastexasusa,oct.2017,pp.33–43.doi:10.1145/3137616.3137621.)提出了两种近似tpe方案,分别为drpe及lsb-tpe,然而这两种方案均存在各自的缺陷,一方面是近似程度不足导致的密文缩略图感知质量较差,另一方面drpe算法存在解密失败的可能,而lsb-tpe的解密图像存在噪声。5.jpeg是一种高压缩率的有损压缩格式,该格式图像不仅可以减小图像的存储大小以节省存储空间和传输带宽,而且视觉质量几乎不受影响,因此得到了广泛的应用。然而,当前针对jpeg图像的tpe方案只有上述的文献1和文献2两种,它们在密文安全性、缩略图近似效果、解密图像质量以及密文膨胀率方面都存在缺陷,因此亟需一种性能更好的tpe方案。技术实现要素:6.当前针对jpeg图像的tpe方案在密文安全性、缩略图近似效果、解密图像质量以及密文膨胀率方面都存在缺陷,为了能够解决这些缺陷中的部分,本发明提供一种jpeg图像高精度保留缩略图加密方法。7.本发明提供的一种jpeg图像高精度保留缩略图加密方法,包括:8.步骤1:解析明文jpeg图像p的比特流以得到量化后的y,u,v三个平面系数矩阵,分别记作qy,qu,qv;以及得到原始的亮度和色度量化表;其中,设定qy的尺寸大小为m×n,qu,qv大小均为m/2×n/2;9.步骤2:针对每个平面系数矩阵,对明文jpeg图像p的原始qdcs进行加密;qdcs是指量化dc系数;10.步骤3:修改原始的亮度和色度量化表来抑制空域像素溢出;11.步骤4:将原始的亮度和色度量化表以及在原始qdcs的加密过程中产生的偏差信息作为解密辅助信息,将所述解密辅助信息嵌入至qacs中,得到新的qacs,记作qacs3;其中,qacs是指量化ac系数;12.步骤5:利用用户自定义预设密钥和qacs3生成四个不同的密钥,然后利用四个不同的密钥生成混沌系统的初始参数进而分别利用混沌系统生成四个伪随机序列,分别记作seq1、seq2、seq3、seq4;13.步骤6:利用四个伪随机序列对qacs进行加密,得到最终的加密图像。14.进一步地,步骤2具体包括:15.步骤2.1:针对每个系数矩阵,将其划分为若干个k×k大小的spb;spb表示保和块;16.步骤2.2:针对每个spb,提取其中的qdcs,最终得到由所有qdcs组成的向量然后将所述拆分为两部分,分别记作和且应满足其中,φsum表示像素和,n=mn/k2;17.步骤2.3:将中的系数替换掉中对应位置的原始值,至此完成整个qdcs加密的过程。18.进一步地,步骤2.2中,所述的将所述拆分为两部分,分别记作和具体包括:19.计算qdcs的均值得到计算qdcs的均值得到表示向下取整;20.计算qdcs的偏差和21.按照公式(7)和(8)得到和[0022][0023][0024]进一步地,步骤3具体包括:[0025]步骤3.1:保持原始的亮度和色度量化表中对应坐标为(0,0)的数值不变,其余所有的acs系数量化步长全部修改为最小值1;[0026]步骤3.2:将修改后的亮度和色度量化表存放至jpeg头文件中。[0027]进一步地,步骤4中,将偏差信息嵌入至qacs中,具体包括:[0028]步骤4.1:采用数值分解的方法将所述偏差信息分为两部分来减小所述偏差信息的幅度值,分别记作qdcvh和qdcvl;[0029]步骤4.2:从qacs的高频部分确定频率系数数值为0的至少两个位置空间;[0030]步骤4.3:将qdcvh和qdcvl对应存储至所述的两个位置空间。[0031]进一步地,步骤4中,将原始的亮度和色度量化表嵌入至qacs中,具体包括:[0032]步骤4.4:采用zigzag扫描原始的亮度和色度量化表以将具有强相关性的频率ac系数集中在一起,得到一维数组qtz;[0033]步骤4.5:采用与jpeg压缩标准中一致的编码方式对所述一维数组qtz进行编码;[0034]步骤4.6:采用直方图移位的可逆信息隐藏方法将编码后的数据嵌入至qacs中。[0035]进一步地,步骤4.6具体包括:[0036]按照公式(9)和公式(10)进行数据嵌入:[0037][0038][0039]其中,qacs2i(u,v)=c,i代表第i个单位dct块,是qacs被嵌入qdcv后得到的数据,qacs3i(u,v)=c'表示嵌入qts后新的qacs,b代表编码数据流的比特值,b∈{0,1}。[0040]进一步地,步骤5具体包括:[0041]步骤5.1:令代表cpdh中nzqacs个数为i的mub的数量,然后按照公式(13)生成密钥kinit:[0042][0043]其中,i=0,1,2,…,63,cpdh表示明文jpeg图像p经过步骤2至步骤4处理后的图像,nzqacs表示非零qacs的个数,mub表示8×8大小的最小保和块,sha(·)表示sha-256函数,nc代表图像通道数,kpreset表示用户自定义预设的长度为256位的密钥;[0044]步骤5.2:令代表cpdh的所有mub中频率f为i的nzqacs个数,然后按照公式(14)生成密钥k1,使用密钥k1来产生同频率nzqacs置乱使用的伪随机序列;[0045][0046]其中,i=1,2,…,num,num值由用户设定;[0047]步骤5.3:令代表cpdh的第j个mub中rs对的数量,然后按照公式(15)生成密钥使用密钥来产生第j个mub中所有rs对置乱使用的伪随机序列;[0048][0049]其中,j是mub的位置索引,j=1,2,…,mn/64,是的二进制字符表示,存在[0050]步骤5.4:令代表第i个mub中nzqacs的个数,然后按照公式(16)生成密钥k3,使用密钥k3来产生单位dct块置乱使用的伪随机序列;[0051][0052]其中,sort(·)是排序函数,i=1,2,…,mn/64,nmub为mub的个数;[0053]步骤5.5:令代表cpdh中nzqacs的个数,然后按照公式(17)生成密钥k4,使用密钥k4来产生nzqacs扩散使用的伪随机序列;[0054][0055]进一步地,步骤5具体还包括:[0056]针对四个不同的密钥中的任一个密钥,将其表示为长度为256位的二进制字符串:b1,b2,...,b256;[0057]然后各自按照公式(18)对应生成二维混沌系统的初始参数x、y和r;[0058][0059]其中,r∈[0.2,0.5],mod代表取余数。[0060]进一步地,步骤6具体包括:[0061]先利用seq1进行同频率nzqacs置乱,再利用seq2接着进行rs对置乱,再利用seq3接着进行单位dct块置乱,最后利用seq4进行nzqacs编码分组内扩散,得到最终的加密图像;[0062]其中,同频率nzqacs置乱是指将qacs分类为63组,然后选择t组,利用seq1对该t组的qacs进行置乱,1≤t≤63;rs对置乱是指对利用seq2对dct单位块内的rs对整体置乱,其中不包括结束字段的qacs;需要进行单位dct块置乱的dct块不包括qdc;nzqacs编码分组内扩散公式如公式(20)和公式(21)所示;[0063][0064][0065]其中,σ表示一个极小的正数,是向上取整函数,y表示利用混沌系统生成的长度为la的伪随机比特流,aca表示ac系数的附加比特。[0066]本发明的有益效果:[0067](1)为了解决现有方法存在的密文缩略图和明文缩略图一致性差以及解密图像质量差的问题,本发明通过对明文jpeg图像p的原始qdcs进行加密,同时结合修改原始量化表的操作提高密文生成效果,进而可以生成高精度的密文缩略图;其中,在对原始qdcs进行加密的过程中,采用的tpe块内量化dc系数均值替代的方法加密dc系数,确保了tpe块内的量化dc系数和始终保持不变,奠定了密文缩略图和明文缩略图的保持一致性的基础。为了进一步有效提高密文缩略图和明文缩略图的一致性精度,通过加入修改原始量化表的操作大幅度的减少了密文像素溢出,使两缩略图视觉效果上几乎完全相同,达到了人眼无法辨别的效果。缩略图的高度一致性能够使密文图像具有高度相同的明文缩略图信息,这是确保可用性的重要前提和保证。此外,利用信息嵌入的方法将用于正确解密时使用的必要辅助信息嵌入密文图像中,保证了解密图像的感知质量。[0068](2)本发明的加密方法与jpeg图像的压缩编码具有良好的适配性,可以最大程度减少破坏jpeg格式的压缩性能优势,具体表现为:本发明加密方法是根据jpeg图像的压缩编码规则设计的,同时考虑了图像的ac系数分布和结构特点,因此密文图像的ac系数保持了原有的编码特征,依然能够被有效压缩编码,使密文图像具有较低的密文膨胀率,从而有效减少密文存储开销,解决了jpeg密文图像的膨胀率高的问题。此外,本发明中的同频率nzqacs置乱、rs对置乱、单位dct块置乱和nzqacs编码分组内扩散等多重加密方法的结合,以及自适应生成伪随机序列方法的引入,使得密文的安全性大大增强,能够抵抗暴力攻击、选择明文攻击和轮廓攻击等多重攻击方式,极大程度上保证用户的隐私安全。[0069](3)本发明方法兼顾了密文图像的安全性和可用性,解决了传统密文图像因不具备可用性而带来的实用性差的弊端。用户可以根据自己的使用需求,自由选择不同的分块大小进行加密,以此调节密文图像的加密程度,从而平衡密文图像的安全性和可用性。其中当分块大小和图像尺寸一致时,则该加密方案效果等价于传统加密图像效果。密文图像可用性的引入,能够避免批量解密密文图像后再查询目标图像,减少时间成本和带宽消耗,方便用户查询和管理图像数据集。因此,本发明方案的适用范围和功能性较传统加密方案都有明显的优势。附图说明[0070]图1为jpeg图像压缩编码过程;[0071]图2为本发明实施例提供的一种jpeg图像高精度保留缩略图加密方法的流程示意图;[0072]图3为本发明实施例提供的量化ac系数分组;[0073]图4为本发明实施例提供的rs对置乱样例;[0074]图5为本发明实施例提供的加密和解密图像效果;[0075]图6为本发明实施例提供的明文和密文缩略图效果:(a)为明文图像及对应缩略图;(b)k=16密文图像及对应缩略图;[0076]图7为本发明实施例提供的不同分块下密文图像的轮廓攻击效果。具体实施方式[0077]为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0078]在介绍本发明的加密方法之前,为了使得本领域技术人员能够更加清楚的理解本发明的技术方案,在此先对jpeg图像实现tpe的理论基础进行阐述,具体内容如下:[0079]保留缩略图加密方案的关键是图像分块内的像素和保持不变,其中该分块被称为tpe块。亦即,当密文图像和明文图像对应的tpe块内像素和保持一致,那么tpe块经过映射后生成的像素点值也会相等,从而实现密文和明文生成相同的缩略图。由于tpe块内像素和始终不变,因此是一个保和块,被记为spb(sum-preservingblock,spb)。具体来说,依次将明文图像通道上的空域平面ci按照b1×b2(b1,b2均是8的整数倍)的大小进行分块,记为spbi,j,其中8×8大小块是最小单位块(minimumunitblock,mub)。如果存在某加密方案可以使spbi,j中的全部像素值之和保持不变,则称该方案满足保留缩略图加密。基于单通道的spb,tpe方案有如下定义。[0080]定义:假设存在信息空间(d通常取256),对于含有n个元素的向量有φsum(v1,...vn)=∑ivi,若存在其中满足则该方案是tpe方案。[0081]针对jpeg图像,编码过程如图1所示。由于生成jpeg文件的过程中存在有损压缩,因此若直接对空域像素进行块内保和加密,那么在重新存储为jpeg图像的过程中会受到压缩中下采样的影响,造成信息丢失并产生高频噪声,从而影响保和算法。[0082]本发明的构思是通过保证块内量化dc系数和保持不变,实现高精度的近似tpe。jpeg图像并非直接存储的空域像素而是存储的经过dct变换和量化编码后的数据。dct变换公式如下:[0083][0084]在jpeg编码过程中,空域下y、u、v平面像素在进行dct变换之前需要执行零电平偏移操作,以减小量化dc系数,从而降低编码数据量。一般偏移量为2n-1(n表示灰度图像的位深度)。图像经8×8的光栅扫描得到最小单位块(minimumunitblock,mub),然后对其依次进行dct变换。变换生成的dc系数反映了mub像素的平均值(记为bmean),它们的具体关系遵循:[0085][0086][0087]其中q0,0(常数)指量化表对应坐标为(0,0)的数值,代表dc值的量化步长,round是一个可以实现数值四舍五入的函数。值得注意的是,不同质量因子的量化表不同。[0088]假设存在一个大小为b1×b2的spb,那么其中含有b1·b2/64个mub,对应均值向量spb经过dct变换生成f-spb,其中mub个数保持不变,提取其中的dc系数共同构成向量那么:[0089][0090]显然,当保持不变时,那么同样不变。但是,量化操作作为生成jpeg图像中必不可少的一环,这一步会产生无法避免的量化误差(ε)。我们将其以公式表示为:[0091]dc=q0,0·(qdc+ε)ꢀꢀ(5)[0092][0093]其中不同dc值对应不同的ε,将f-spb中的ε之和记为vε,显然它不是一个常数。由于不确定误差vε的存在破坏了与的平衡关系,亦即,即使始终保持不变,也会产生一定的波动。因此针对jpeg图像的tpe为近似tpe。本发明通过设计qdcs的保和加密算法实现了高精度的tpe,视觉上无法感知出明文和密文间缩略图之间的差异。[0094]实施例1[0095]在上述理论的基础上,如图2所示,本发明实施例提供一种jpeg图像高精度保留缩略图加密方法,主要的加密操作包括如下的5个操作,分别为量化dc系数(quantizeddccoefficients,qdcs)加密,修改原始量化表(quantizationtables,qts),辅助信息嵌入,自适应生成伪随机序列以及量化ac系数(quantizedaccoefficients,qacs)加密具体包括以下步骤:[0096]s101:解析明文jpeg图像p的比特流以得到量化后的y,u,v三个平面系数矩阵,分别记作qy,qu,qv;以及得到原始的亮度和色度量化表;[0097]具体地,在采取具体的加密操作之前,首先需要解析明文jpeg图像p的比特流,目的是得到量化后的y,u,v三个平面系数矩阵,分别记作qy,qu,qv,以及亮度和色度量化表qts用于后续的加密操作。设定qy的尺寸大小为m×n。由于在jpeg图像生成过程中,一般按照4:2:0对三个平面进行下采样,因此qu,qv大小为m/2×n/2。为了便于说明,令tpe加密分块spb为k×k(16≤k≤min(m/2,n/2))大小的正方形,即分块的大小就是k。[0098]s102:针对每个平面系数矩阵,对明文jpeg图像p的原始qdcs进行加密;qdcs是指量化dc系数;[0099]s103:修改原始的亮度和色度量化表来抑制空域像素溢出;[0100]s104:将原始的亮度和色度量化表以及在原始qdcs的加密过程中产生的偏差信息作为解密辅助信息,将所述解密辅助信息嵌入至qacs中,得到新的qacs,记作qacs3;其中,qacs是指量化ac系数;[0101]s105:利用用户自定义预设密钥和qacs3生成四个不同的密钥,然后利用四个不同的密钥生成混沌系统的初始参数进而分别利用混沌系统生成四个伪随机序列,分别记作seq1、seq2、seq3、seq4;[0102]s106:利用四个伪随机序列对qacs进行加密,得到最终的加密图像。[0103]具体地,加密操作本身会使qdcs、qacs改变,那么密文图像经过解压缩后可能会造成空域下像素溢出的问题,这样不仅影响生成缩略图的效果,而且会对图像的格式兼容性造成影响。当dcs系数固定时(qdcs加密操作完成后该系数已经确定),acs系数越大,经反dct变化得到的空域像素溢出的可能性就越大,则对解密图像的视觉质量影响也就越大,因此acs系数需要得到有效的控制。而acs系数是qacs经反量化所得,其中量化步长受到qts的影响,所以解压缩图像后得到的空域像素受到qdcs、qacs和qts的共同影响。因此为了克服由qdcs、qacs改变带来的问题,本发明通过修改量化表的方法来抑制空域像素溢出,该操作同时提高了密文图像生成效果,进而可以生成高精度的密文缩略图,保证了明文缩略图和密文缩略图之间的高度一致性。[0104]并且,本发明实施例还利用了信息嵌入的方法,将用于正确解密时使用的必要辅助信息嵌入密文图像中,确保了解密图像的感知质量。[0105]本发明提出的加密方法有效实现了高精度tpe,密文图像对应缩略图不仅最大程度上保留了明文缩略图信息,且密文具有较高的安全性。[0106]实施例2[0107]qdcs中包含了大量的明文信息,因此为了保证明文安全,原始qdcs必须得到有效的保护。此外,合理加密qdcs对于提高jpeg密文缩略图效果具有重要影响。因此,在上述实施例的基础上,为了进一步确保明文缩略图和密文缩略图之间的高度一致性,本发明实施例提供一种具体的qdcs加密方法,具体包括以下步骤:[0108]s1021:针对每个系数矩阵,将其划分为若干个k×k大小的spb;spb表示保和块;[0109]s1022:针对每个spb,提取其中的qdcs,最终得到由所有qdcs组成的向量然后将所述拆分为两部分,分别记作和且应满足其中,φsum表示像素和,n=mn/k2;[0110]具体地,本发明实施例拟用向量中的元素作为加密后的qdcs数值,因此要保证[0111]作为一种可实施方式,所述的将所述拆分为两部分,分别记作和具体包括:[0112]计算qdcs的均值得到计算qdcs的均值得到表示向下取整;[0113]计算qdcs的偏差和[0114]按照公式(7)和(8)得到和[0115][0116][0117]具体地,显然0≤vds《n,因此,当偏差vds不等于0时,只需将其均分给ds个qdcm,就可以保证始终保持不变。[0118]s1023:将中的系数替换掉中对应位置的原始值,至此完成整个qdcs加密的过程。[0119]在本发明实施例中,事实上即为原始qdcs的加密过程中产生的偏差信息,是正确恢复原始qdcs的重要信息,会被作为解密辅助信息嵌入到qacs中。[0120]实施例3[0121]在上文中提及,通过修改量化表的方法可以抑制空域像素溢出,该操作同时提高了密文图像生成效果,进而可以生成高精度的密文缩略图,保证了明文缩略图和密文缩略图之间的高度一致性,在此基础上,本发明实施例为了最大化抑制空域像素溢出,以及最大化提高明文缩略图和密文缩略图之间的一致性,提供了下述的量化表的修改方式,主要包括:将量化表中ac系数对应的量化步长全部修改为最小值1,以减小经反量化后得到的ac值,具体包括以下步骤:[0122]s1031:保持原始的亮度和色度量化表中对应坐标为(0,0)的数值不变,其余所有的acs系数量化步长全部修改为最小值1;[0123]具体地,jpeg图像有两张量化表,分别为亮度量化表qtl和色度量化表qtc,针对该两张量化表,均按照本步骤规则修改,即qtr1=q0,0,qtri=1(i=2,...64)。[0124]s1032:将修改后的亮度和色度量化表存放至jpeg头文件中。[0125]具体地,当解压缩密文图像,由于ac系数的量化步长为1,acs和qacs始终保持一致,因此acs被限制在了一个较小的范围内,因此减少了像素溢出的可能。[0126]实施例4[0127]在加密qdcs阶段产生的偏差信息qdcv以及原始qts均是正确解密原始图像的重要辅助信息,因此必须得到有效记录和保护。[0128]本发明实施例中,选择qacs作为载体用于记录信息,并将嵌入信息后的载体记为qacs3,当全部数据嵌入完成后再对qacs加密,实现对嵌入信息和图像纹理细节的保护。由于每一个qdc都对应一个qdcv,因此待存储的数据量较大,所以选择将qdcv直接视为qac进行保存,而对于数据量较少的原始qts则先进行编码,然后采用基于直方图平移的可逆信息隐藏技术保存。[0129]作为一种可实施方式,将偏差信息嵌入至qacs中,具体包括:[0130]s1041:采用数值分解的方法将所述偏差信息分为两部分来减小所述偏差信息的幅度值,分别记作qdcvh和qdcvl;[0131]具体地,一般而言qacs作为被量化后的数值,幅度相对较小,绝大部分是由0和1构成,而qdcv的幅值相较于qac往往较大,因此不适合将其直接保存为qac。所以,本方案采用数值分解的方法减小qdcv幅度值。首先,将qdcv转换为二进制,即qdcv=blbl-1…b2b1(l为幅值的二进制位长),然后对其按照低四位二进制进行分解,可以得到qdcvh=bl…b5,qdcvl=b4…b1(|qdcvl|《16)两部分,再分别将其转为十进制。需要说明的是,本发明实施例也可以按照需要控制两部分的长度,不一定必须是按照低四位二进制进行分解。[0132]s1042:从qacs的高频部分确定频率系数数值为0的至少两个位置空间;[0133]具体地,ac系数代表了图像的纹理信息,频率越高的系数人眼越难以察觉,因此在量化阶段对应的量化步长越大,所以qacs的高频部分往往存在大量连续的0(jpeg图像的质量因子越低,对应量化程度越大,其中的0也就越多),且高频的部分信息损失对图像的视觉质量影响较小,而基于这些特性将可以为辅助信息嵌入提供足够的信息空间。首先对qacs按照zigzag扫描将其从二维系数矩阵转换为一维序列,然后去除后两位的高频数据qacf62,qacf63(通常为0),再将f1~f61的频率系数平移至f3~f63,生成一维序列qacr1=(0,0,qacf1,...,qacf61),这样便可以将腾出来的f1和f2的位置空间分别用于存储qdcvl,qdcvh。[0134]s1043:将qdcvh和qdcvl对应存储至所述的两个位置空间。[0135]具体地,将qdcvl、qdcvh两个分别对应存储至f1和f2位置,新的分量被看作qacs。此时,我们可以得到新的序列为qacr2=(qacvl,qacvh,qacf1,...,qacf61),将其经过反zigzag扫描可以得到新的二维qdct块。[0136]作为一种可实施方式,将原始的亮度和色度量化表嵌入至qacs中,具体包括:[0137]s1044:采用zigzag扫描原始的亮度和色度量化表以将具有强相关性的频率ac系数集中在一起,得到一维数组qtz;[0138]具体地,虽然jpeg压缩标准中亮度和色度分别对应不同量化表,但是它们都具有一个共同的特点,即相邻频率ac系数对应的量化步长具有很强的相关性,因此将量化表采用zigzag扫描可以把这些数值集中到一起,得到一维数组qtz。[0139]s1045:采用与jpeg压缩标准中一致的编码方式对所述一维数组qtz进行编码;[0140]具体地,由于qtz中相邻的数值变化不大,因此首先对qtz中的系数进行dpcm编码以减少编码数据量,同时增加0游程的长度,然后再进行游程编码和哈夫曼编码生成比特流数据,完成原始量化表数据的编码过程。这项操作可以有效的减少待隐藏信息数据量,避免嵌入容量不足的情况。其中,使用的所有编码方式均和jpeg压缩标准中的编码方式一致。[0141]s1046:采用直方图移位的可逆信息隐藏方法将编码后的数据嵌入至qacs中。[0142]具体地,将编码后的数据流采用直方图移位的可逆信息隐藏(histogramshiftingforreversibledatahiding,hs-rdh)技术完成信息的嵌入。在本方案中该技术使用模为1的qacs作为数据的载体,因此图像的信息嵌入能力与其中包含模为1的qacs个数关系密切。按照公式(9)和公式(10)进行数据嵌入:[0143][0144][0145]其中qacs2i(u,v)=c(i代表第i个单位dct块,i=1,…)是qacs被嵌入qdcv后得到的的数据,qacs3i(u,v)=c'表示嵌入qts编码信息后新的qacs,b代表编码数据流的比特值b∈{0,1}。[0146]采用该数据嵌入方式的好处在于,该方案可以将载体信息和嵌入数据无损恢复,数据的提取过程可表示为公式(11)和(12):[0147][0148][0149]实施例5[0150]在上述各实施例的基础上,为了进一步增强密文的安全性,使其能够抵抗多重攻击方式,本发明提供了一种多重加密方法,在本发明中,将同频率nzqacs置乱、rs对置乱、单位dct块置乱和nzqacs编码分组内扩散的多重加密方法结合,极大程度上保证用户的隐私安全,关于多重加密方式,将在下一实施例中重点介绍,此处不再赘述;而为了产生多重加密方法中需要用到的伪随机序列,本发明实施例还提供了一种自适应生成伪随机序列方法,本发明实施例重点对此进行阐述。[0151]作为一种可实施方式,本发明实施例的自适应生成伪随机序列方法,具体包括以下步骤:[0152]s1051:令代表cpdh中nzqacs个数为i的mub的数量,然后按照公式(13)生成密钥kinit:[0153][0154]其中,i=0,1,2,…,63,cpdh表示明文jpeg图像p经过步骤2至步骤4处理后的图像,需要注意的是,步骤2至步骤4中并不需要随机序列;nzqacs表示非零qacs的个数,mub表示8×8大小的最小保和块,sha(·)表示sha-256函数,nc代表图像通道数(例如,对于灰度图像,nc=1;对于彩色图像,nc=3;本实施例中,以彩色图像为例,故nc=3),kpreset表示用户自定义预设的长度为256位的密钥;kinit的长度同样是256。[0155]具体地,由于qacs的加密过程不会改变cpdh中非零qacs(non-zeroqacs,nzqacs)的个数,因此可以针对cpdh生成加密密钥。对于一个mub来说,最少有0个nzqac,最多有63个nzqacs,所以上标i的取值范围是0≤i≤63。[0156]s1052:令代表cpdh的所有mub中频率f为i的nzqacs个数,然后按照公式(14)生成密钥k1,使用密钥k1来产生同频率nzqacs置乱使用的伪随机序列;[0157][0158]其中,i=1,2,…,num,num值由用户设定;[0159]s1053:令代表cpdh的第j个mub中rs对的数量,然后按照公式(15)生成密钥使用密钥来产生第j个mub中所有rs对置乱使用的伪随机序列;[0160][0161]其中,j是mub的位置索引,j=1,2,…,mn/64,是的二进制字符表示,存在可以理解的是,因为一个8×8的dct块中最多只有63个rs对,所以可以由6位二进制数表示,即i从1至6进行取值。其中,rs对是指量化ac系数的游程编码对。[0162]s1054:令代表第i个mub中nzqacs的个数,然后按照公式(16)生成密钥k3,使用密钥k3来产生单位dct块置乱使用的伪随机序列;[0163][0164]其中,sort(·)是排序函数,i=1,2,…,mn/64,nmub为mub的个数;[0165]s1055:令代表cpdh中nzqacs的个数,然后按照公式(17)生成密钥k4,使用密钥k4来产生nzqacs扩散使用的伪随机序列;[0166][0167]s1056:针对四个不同的密钥中的任一个密钥,将其表示为长度为256位的二进制字符串:b1,b2,...,b256;[0168]然后各自按照公式(18)对应生成二维混沌系统的初始参数x、y和r;[0169][0170]其中,r∈[0.2,0.5];例如将产生四次伪随机序列的初始参数值分别记作其中,r∈[0.2,0.5];例如将产生四次伪随机序列的初始参数值分别记作和[0171]s1057:在各自的初始参数下,利用混沌系统生成四个伪随机序列,分别记作seq1、seq2、seq3、seq4。[0172]具体地,本发明实施例所使用的二维混沌系统(two-dimensionalcosine-coupling-logisticandsinemap,2d-ccls)定义如下:[0173][0174]其中,r为控制参数,r∈[0,1],而x0和y0代表系统的初始状态。当r∈[0,1]时,该混沌系统不仅具有混沌特性而且还具有超混沌特性,另外结合柯尔莫哥洛夫熵,本实施例选定r∈[0.2,0.5],确保使系统产生序列具有更好的随机特性。[0175]本发明实施例提供的自适应生成伪随机序列方法,根据用户自定义预设密钥和qacs3数据,经过sha256函数和一些数学处理可以得到混沌系统的初始参数,然后迭代混沌系统可以产生伪随机序列用于加密。其中,由于qacs3与明文内容紧密相关,因此不同图像对应生成的初始参数和随机序列也会不同。所以本发明提供的加密方案可以实现一次一密。[0176]并且,为了使加密算法具有充足抵抗暴力攻击的能力,密钥长度至少应该大于100位。此外,为了抵抗选择明文攻击,需使加密密钥和明文图像内容相关,这样便可以确保不同图像采用不同的加密密钥,以此提高密文安全性。基于上述两点考虑,本发明实施例利用sha-256函数为不同目标图像生成专属的初始密钥kinit,即初始密钥长度都设置为256位。显然,图像使用的加密密钥和图像内容关系密切,若图像发生变化,则会产生不同的密钥,那么初始状态值也会改变。分别使用不同的初始状态值输入二维混沌系统中可以产生不同的具有良好随机特性的数据,从而确保密文图像的安全性。[0177]实施例6[0178]ac系数代表了图像的纹理细节,会泄露图像的轮廓信息,这是加密dc系数所不能保护的内容。另外经过辅助信息嵌入过程后,qacs中包含了大量的辅助解密信息,因此加密qacs是至关重要的。jpeg图像的一个重要特点是以极小的存储取得较高的视觉质量,而这种高压缩率主要依赖于qacs的分布和结构特点,因此对qacs的加密只有不损伤该特点才能确保密文图像仍然具备高压缩率。[0179]在上述各实施例的基础上,本发明实施例进一步提供了qacs加密方法,主要包括三轮置乱和一轮扩散操作,分别为同频率非零qacs(nonzeroqacs,nzqacs))置乱,qacs游程编码(run/size,rs)对置乱,单位dct块置乱以及nzqacs分组内扩散,具体包括以下步骤:[0180]s1061:合并色度系数。jpeg压缩过程中,rgb图像会被转换为yuv图像,y代表亮度信息,这是人眼感知敏感的信息。而u、v则代表了色度信息,相对来说人眼不太敏感,因此压缩的程度也更大。事实上,jpeg分别采用了亮度量化表和色度量化表就是由数据特性决定的。由此可以知道,yuv图像信息经过量化后仍然可以分为两类数据,所以本方案选择将特性相同的qu、qv数据合并以扩展数据量,记为qc,这样不仅可以获得更好的加密效果且与压缩标准具备良好的兼容性。[0181]s1062:利用seq1进行同频率nzqacs置乱。[0182]具体地,按照ac系数的频率可以将qacs分类为63组。由于频率越高人眼视觉感知越不敏感,因此高频系数往往对应较大的量化步长,即ac系数的量化程度和频率呈正相关。随着频率的增大,对应组中的nzqacs也就越少,因此没有必要对所有组都进行置乱,选择合适的置乱分组数t(1≤t≤63)可以平衡时间效率和密文安全。本方案选择qy置乱的组数是25,qc的置乱组数是10(分组t可以根据不同的使用目的进行更改,t越大则密文越安全),统计分析表明这已经基本包含了大部分nzqacs。此外,为了防止置乱对单位块中连续0系数的破坏,导致游程编码效率降低以影响压缩性能,因此仅对目标分组中的nzqacs进行置乱。用于置乱的目标分组的生成如图3所示。[0183]s1063:利用seq2接着进行rs对置乱。[0184]具体地,为了进一步提高置乱的效果,不同频率的qacs(包括系数0)位置也需要更改,但是jpeg编码的效率极大的依赖于rs对结构。因此,为了保持文件尺寸稳定,我们选择对dct单位块内rs对整体置乱,其中不包括结束字段(endofblock,eob)的qacs部分。图4为块内rs对置乱的一个例子。显然,上述的两种置乱的结合不仅可以实现除eob部分外的所有qacs的置乱,而且游程编码的结构未受影响。[0185]s1064:利用seq3进行单位dct块置乱。[0186]具体地,这项操作的目的是为了抵抗轮廓攻击。通过dct块之间的置乱可以改变整幅图像中ac系数的数量、能量分布及位置关系,进而可以有效抵抗多种针对ac系数的轮廓攻击方式,如非零系数计数攻击(nonzerocoefficientscountattack,ncca),ac系数能量攻击(energyofaccoefficientsattack,eaca),末尾非零系数位置攻击(positionoflastnonzerocoefficientsattack,plza)。由于jpeg编码是基于单位dct块进行的,因此对dct块的置乱操作依然不会影响游程编码的效率。值得注意的是,这里的dct块中不能包含qdc,否则spb内的qdcs之和改变,不符合tpe条件。[0187]s1065:利用seq4进行nzqacs编码分组内扩散。[0188]具体地,置乱加密本质上并没有改变数据的统计特性,导致无法抵抗统计攻击,因此为了进一步增大安全性,需要对nzqacs进行扩散。结合jpeg采用的哈夫曼编码特点,提出了可以兼顾安全性和编码效率的编码分组内扩散。qacs的熵编码结果是由两部分构成,分别为ac系数的哈夫曼编码(achuffman,ach)和附加比特(acappendedbits,aca)。其中ach是qacs的游程(run/size)经过哈夫曼编码的结果,run是0游程的长度,size代表nzqac的幅度,同样幅度的系数将会被编码为具有相同比特长度的aca。编码分组内扩散就是代表扩散前后的系数幅度一致,因此它们的编码仍在同一个分组内,从而不影响哈夫曼编码的效率。给定幅值为a(a≥1)的nzqac,对应aca比特长度为la,即代表幅值a可由la个比特组成,对应关系如下:[0189][0190]其中,σ表示一个极小的正数,是向上取整函数。利用混沌系统生成长度为la的伪随机比特流y,然后对nzqac按照如下公式进行扩散加密:[0191][0192]实施例7[0193]对应上述的加密方法,本发明实施例还提供了一种图像解密方法,图像解密是图像加密的逆过程。针对jpeg密文图像可以按照如下步骤解密出原图像。[0194]s201:解密qacs。根据密文图像内容按照实施例5中的方法可以生成不同的解密密钥,其与加密密钥完全一致,然后可以由密钥通过混沌系统得到相应的随机序列用于恢复出加密前的qacs。按照顺序使用随机序列依次进行nzqacs反扩散、单位dct块反置乱、rs对反置乱和同频率nzqacs反置乱,完成qacs解密。[0195]s202:提取解密辅助信息。首先根据公式(11)和公式(12)能够提取原始量化表的编码比特流,然后根据哈夫曼编码和dpcm的编码规则可以进一步恢复出原始量化表。此时得到的qacs中仍包含着恢复原始qdcs的差值信息。分别提取mub的f1和f2位置中的qdcf1,qdcf2,并转换为二进制后将比特流拼接,最后再重新转换为十进制数值,得到解密qdcs的辅助信息qdcv。[0196]s203:恢复原始量化表。将原始量化表替换jpeg头文件中的修改量化表并保存。[0197]s204:解密qdcs。每个单位dct块都依次对应一个qdcv,依次将密文图像中mub内的qdc加上对应偏差信息qdcv,就可以得到原始qdc。至此生成解密后的jpeg图像。[0198]为了验证本发明提供的加密方法的有效性,本发明还提供下述实验数据。[0199]实验仿真平台如下:处理器:intel(r)core(tm)i7-4600m,2.90ghz;存储器:8.00gb;操作系统:windows10;编程工具:matlabr2019a。本实验使用的自定义密钥kpreset=f(100),f(·)是将十进制转为256位二进制的函数。选用尺寸为512×512的jpeg格式的lenna图像和holidays数据集作为实验测试图像。[0200](一)不同tpe分块下加密和解密图像效果[0201]如图5所示显示了质量因子为75的lenna图像,在不同tpe分块大小k×k下的密文图像和解密图像。显然,随着k的增大,密文图像中包含的明文信息减少,视觉质量降低,安全性增大。当分块尺寸与明文图像尺寸一致时,即k=512,则tpe图像等价于传统加密图像。因此,用户可以通过控制k的大小来调节密文图像的安全性和可用性。此外,解密图像与明文图像视觉效果一致。[0202](二)不同tpe分块下加密和解密图像效果[0203]tpe的目的是使明文图像和密文图像可以生成一致的缩略图,从而可以实现通过密文缩略图对目标图像的快速管理和查询。图6显示了生成明文对应缩略图和tpe分块为k=16时的密文缩略图的效果。从视觉上无法分辨两个缩略图的差别,因此达到了实验目的。[0204](三)解密图像感知质量[0205]为了能够更准确的评估解密图像与原始明文图像的差异,实验选择使用psnr和ssim两个评价指标评估解密图像质量。实验测试图像选择的是holidays数据集,其中包含500类图像,共1491张jpeg图像,测试结果如表1所示。无损解密代表加密图像数据集中被无损解密的图像占比,而解密图像感知质量的评价指标则是按照剩余的非无损解密图像计算。值得注意的是,ssim=1表明解密图像和原始图像完全一致,而表中的数据是采用的四舍五入法记录,ssim=1.0000是近似值。[0206]纵向观察表1可以发现,对于不同质量因子的jpeg图像,质量因子越高,无损解密率越低,并且解密图像的质量也随之下降。这是因为质量因子越高的图像,相应的qacs中存在的0就越少,那么在进行辅助信息嵌入时高频系数损失的几率就越大。此外,当横向观察表2时,不同分块下密文图像对应的解密图像质量一致。这是因为无论tpe分块选用多大,辅助信息嵌入部分都只会舍弃f62和f63两个位置的系数。由表1可知,即便是不同质量因子和不同分块下的有损解密的图像,它们的图像质量仍然很高,视觉上无法分辨原始图像和解密图像的差异。[0207]表1不同质量因子下解密图像的感知质量[0208][0209](四)密文缩略图感知质量[0210]同样,实验选用holidays数据集作为测试图像。表2显示了不同质量因子下的jpeg图像在tpe算法下生成的密文图像,其对应缩略图与明文缩略图之间的感知质量。显然,对于不同质量因子的jpeg图像,它们在不同分块下生成的密文缩略图能和明文缩略图能够保持高度一致,这在视觉上无法分辨两者的差异。[0211]表2不同质量因子下密文缩略图的感知质量[0212][0213](五)密文膨胀率[0214]jpeg图像之所以被广泛应用,原因在于其能够在几乎不损害图像视觉质量的前提下占用较小的存储空间,因此jpeg密文图像的存储开销是必须被考虑的。本实验选择使用holidays数据集,测试不同质量因子密文图像的膨胀率,膨胀率越小,证明加密方案对jpeg的压缩特性保留的越好。测试结果如表3所示。随着质量因子的提高,密文膨胀率不断降低,且分块大小对膨胀率的影响逐渐减弱。[0215]表3不同质量因子下的密文膨胀率[0216][0217](六)密文感知质量[0218]明文图像和密文图像间的psnr的值越小,证明加密方案对明文信息的扰乱度越高,那么密文泄露的图像信息就越少。表4是数据集的测试结果。由实验所示,纵向来看,相同tpe块下的密文图像,图像质量因子的改变对psnr值影响较小。横向来看,同一质量因子图像,当其分块大小改变时,psnr值会发生明显变化。实验结果表明,通过改变加密采用的分块大小可以获得不同视觉质量的密文图像,满足不同使用需求。[0219]表4不同质量因子下密文图像的感知质量[0220][0221](七)轮廓攻击[0222]轮廓攻击是基于jpeg图像ac系数的一种常见攻击方式,该攻击可以显示出原始图像的轮廓信息从而获取图像内容。实验选用质量因子75的lenna图像测试本加密方案抵抗轮廓攻击的效果,其中轮廓攻击分别采用ncca,eaca,plza,实验结果如图7所示。其中,行代表同一攻击方式下对针对不同图像得到的攻击效果图,而列是指不同攻击方式对同一攻击图像的攻击效果图。本实验中攻击图像选用4种不同分块大小的密文图像。为了便于对比,第一列显示出不同攻击方式针对明文图像获取的图像轮廓信息,实验结果表明我们的加密方案可以有效抵抗轮廓攻击。[0223](八)密文图像可用性[0224]密文图像的可用性体现在密文缩略图和明文缩略图一致,因此可以从泄露的缩略图信息中获取部分的明文图像内容。本实验选用质量因子为75的holidays数据集,并且每次返回与查询图像相似的10图像。首先按照不同分块大小加密数据集图像,然后依次生成密文缩略图,最后对缩略图进行检索测试并分别计算返回结果的precision和map值,验证密文图像的可用性。检索效果如表5所示。实验表明,随着分块的增大,precision和map值均呈现减小的趋势,表明图像的可用性受到影响,也表明用户可以通过控制分块大小来平衡图像的安全性和可用性。[0225]表5不同分块下密文缩略图的检索精度[0226][0227]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1