1.一种选择明文安全且密文图像文件大小减小的JPEG图像加密方法,其特征在于,包括以下步骤:S1、读取待加密JPEG图像的量化表,霍夫曼编码表和DCT系数的熵编码流,根据霍夫曼编码表对DCT系数的熵编码流进行解析,得到所有块的DC系数差分熵编码以及AC系数熵编码;
S2、根据每个块中的AC系数熵编码提取图像特征F;
S3、选定初始密钥K,将其与图像特征F一起生成与图像内容有关的置换密钥KEY1,用于加密待加密JPEG图像;
S4、DC系数差分编码置换加密;
S5、AC系数熵编码置换加密;
S6、在保证文件大小减小的情况下,计算最大可去掉并通过变长编码映射嵌入到图像中的AC系数编码个数的临界值N;
S7、每次加密时,随机生成范围为1到N的随机数X,将随机数X与初始密钥K结合生成随机自嵌入密钥KEY2;
S8、根据自嵌入密钥KEY2选择去掉JPEG图像中X个AC系数熵编码,并生成待嵌入比特流B,具体方法为:S81、由用户设定每个DCT块中可去掉的最大AC系数熵编码数量u3;
S82、最大可选择去掉AC系数熵编码的DCT块数量为S, ;
S83、根据自嵌入密钥KEY2,生成与图像总DCT块数量相等长度的置换序列,选择置换序列中的前S个数作为去掉AC系数熵编码的DCT块坐标;
S84、对选择的S个DCT块坐标中的第i个DCT块,去掉块中后 个AC系数熵编码,将所有去掉的AC系数熵编码按顺序排列为比特流A,其长度为 ;
S85、使用MAP记录S个DCT块中,DCT块内熵编码数量小于 的DCT块,MAP的计算公式为:,
其中, 为选择的S个DCT块中的第i个DCT块中AC系数熵编码的数量, 为空;
S86、将MAP及二进制的S使用DES加密后替换DC差分编码的最低有效位,被替换的DC差分编码的最低有效位串联记为P;
S87、将P与A串联并使用DES进行加密得到加密后的附加数据比特流B;
S88、使用重排序霍夫曼编码映射将B嵌入到去掉AC熵编码的JPEG图像中,生成加密图像;
S9、根据待嵌入比特流B的大小构造游程对和霍夫曼编码的映射集并计算最优映射解,通过重排序霍夫曼编码映射,将待嵌入比特流B自嵌入到图像中,生成加密JPEG图像。
2.根据权利要求1所述的选择明文安全且密文图像文件大小减小的JPEG图像加密方法,其特性在于,步骤S2的具体方法为:S21、计算每个块中AC系数熵编码的数量;
S22、统计DCT块内AC系数熵编码数量为0到63的DCT块数量,即图像特征F。
3.根据权利要求1所述的选择明文安全且密文图像文件大小减小的JPEG图像加密方法,其特性在于,步骤S3的具体方法为:S31、选定初始密钥 ;
S32、以图像特征F作为哈希函数的输入生成512比特的哈希值;
S33、将512比特的哈希值与初始密钥 结合,构造置换密钥KEY1。
4.根据权利要求1所述的选择明文安全且密文图像文件大小减小的JPEG图像加密方法,其特性在于,步骤S4的具体方法为:S41、对DC系数差分熵编码进行分类,相同符号且连续的DC系数差分熵编码为同一类,共K类;
S42、根据置换密钥KEY1生成与类别中DC系数差分编码数量相等长度的置换序列,对类别中的DC系数差分编码置乱;
S43、迭代加密DC系数差分编码M次。
5.根据权利要求4所述的选择明文安全且密文图像文件大小减小的JPEG图像加密方法,其特性在于,步骤S43的具体方法为:S431、第m次加密时,将2m个DC系数差分熵编码分为一组,共n组;
S432、每一组的DC系数差分编码平均分为左右两个部分,用置换密钥KEY1生成长度为n的随机二进制序列;
S433、根据随机置换序列置换n组DC系数差分编码,随机序列为1且一组中两个部分交换后DC系数未超出范围,则交换左右两部分DC系数差分编码,其余情况则不交换;
S436、重复S432到S433的步骤M次完成DC系数熵编码迭代加密。
6.根据权利要求1所述的选择明文安全且密文图像文件大小减小的JPEG图像加密方法,其特性在于,步骤S5的具体方法为:S51、对AC系数熵编码分成64类,游程相同的AC系数熵编码为一类;
S52、根据置换密钥KEY1生成与类别中AC系数熵编码数量相等长度的置换序列,置换每一类中AC系数熵编码。
7.根据权利要求1所述的选择明文安全且密文图像文件大小减小的JPEG图像加密方法,其特性在于,步骤S6的具体方法为:S61、由用户设定可去除的AC熵编码比特流长度的范围为u1到u2;
S62、采用二分法求用重排序霍夫曼编码映射嵌入u1到u2范围内的C比特数据后,单位文件变化小于1的最大的C;
S63、根据C求得可去掉且自嵌入AC系数熵编码的临界值N, ,其中,10为平均霍夫曼编码长度。
8.根据权利要求1所述的选择明文安全且密文图像文件大小减小的JPEG图像加密方法,其特性在于,步骤S7的具体方法为:S10‑1、随机生成范围为1到N的随机数X,并以X作为哈希函数的输入,生成512比特的哈希值;
S10‑2、将512比特的哈希值与K结合,构造随机自嵌入密钥KEY2。
9.根据权利要求1所述的一种选择明文安全且密文图像文件大小减小的JPEG图像加密方法,其特性在于,步骤S9中重排序霍夫曼编码映射的具体方法为:S91、按霍夫曼编码长度由短到长,统计JPEG图像中162种游程对的数量;
S92、根据数量从大到小排序游程对;
S93、重新构造霍夫曼编码与游程对映射关系,给最短的霍夫曼编码分配数量最多的游程对,消除存在的编码冗余,此时,原始图像的文件大小与重新分配霍夫曼编码后的图像的文件大小差值为Y1比特;
S94、根据排序后的游程对构造满足嵌入容量的霍夫曼编码映射解G,生成解空间;
S95、在解空间中模拟嵌入目标容量,并求得每一个映射解G在通过霍夫曼编码映射嵌入目标容量后的文件大小差值Y2比特;
S96、解空间中每一个G按S81到S83步骤重排序并构造新的映射关系,此时得到的文件大小差值为Y3比特,得到模拟嵌入目标容量的文件大小差值 ;S97、比较所有G的Y4,最小的Y4所对应的映射解为最优的映射方案Gopt,以最优的映射方案计算嵌入目标容量后的实际文件大小变化量Y,单位文件变化为Y与目标容量的比值;
S98、根据Gopt,修改图像霍夫曼编码,将B嵌入图像中,生成加密JPEG图像。