CN112116672B - 基于遗传算法的彩色图像保存缩略图加密算法 - Google Patents

基于遗传算法的彩色图像保存缩略图加密算法 Download PDF

Info

Publication number
CN112116672B
CN112116672B CN202010812431.3A CN202010812431A CN112116672B CN 112116672 B CN112116672 B CN 112116672B CN 202010812431 A CN202010812431 A CN 202010812431A CN 112116672 B CN112116672 B CN 112116672B
Authority
CN
China
Prior art keywords
chromosome
population
pseudo
variant
sequence
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
CN202010812431.3A
Other languages
English (en)
Other versions
CN112116672A (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.)
Henan University
Original Assignee
Henan 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 Henan University filed Critical Henan University
Priority to CN202010812431.3A priority Critical patent/CN112116672B/zh
Publication of CN112116672A publication Critical patent/CN112116672A/zh
Application granted granted Critical
Publication of CN112116672B publication Critical patent/CN112116672B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)

Abstract

本发明提供一种基于遗传算法的彩色图像保存缩略图加密算法。该算法包括:步骤1、对彩色图像P进行种群初始化处理,得到若干个初始种群;步骤2、生成5组伪随机序列D、E、F、H和I;步骤3、采用D选择交叉对象,采用E选择交叉点,对交叉对进行交叉操作,得到新的染色体序列A′;步骤4、采用F从A′中选择变异染色体,采用H选择变异基因位置,对变异染色体逐个变异,直至种群内所有染色体均完成变异得到新的种群;步骤5、对新的种群迭代执行步骤2至步骤4,直至完成T轮,结束当前种群的进化;继续下一个种群,执行步骤2至步骤5,直至完成所有种群的进化;步骤6、对完成进化的种群的染色体进行解码,结合通道信息生成彩色密文。

Description

基于遗传算法的彩色图像保存缩略图加密算法
技术领域
本发明涉及图像加密技术领域,尤其涉及一种基于遗传算法的彩色图像保存缩略图加密算法。
背景技术
随着云存储的发展,越来越多人选择把数据上传到云端,其中就包括大量含隐私信息的图片数据。但云通常是诚信又好奇,它能忠实地做好本职工作,却又对明文信息充满好奇。上传到云端的数据不仅面临着好奇云的威胁,同时还面临着被黑客攻击窃取的风险,如Facebook频繁传出隐私泄露问题,被美国相关部门罚款数十亿美元,因此针对互联网安全隐私的保护问题迫在眉睫。要保护图片中的隐私信息不被泄露,有效的方案就是对原始图像进行加密,但传统的完全加密算法得到的密文是一种类噪声图像,当人们看到这些图片时无法获得任何有用的信息,机器学习算法也难以从这些类噪声图像中获得有效信息,这使得密文图像在云端的可用性(预览、查询等)大大降低。因此传统加密算法已无法很好地满足云环境下对隐私保护的需求。
为提高密文图像的可用性,2015年Wright等人在文献[1](C.V.Wright,W.Feng,and F.Liu.Thumbnail-Preserving Encryption for JPEG.In Proceedings of the 3rdACM Workshop on Information Hiding and Multimedia Security,June 2015.)提出了保存缩略图加密算法(Thumbnail Preserving Encryption)简称TPE,先对明文图像进行分块,在保证分块内密文像素均值等于块内明文像素均值的前提下,分别对块内像素加密,通过该算法得到的密文与明文具有相同的缩略图,这使得用户可以预览上传到云端的秘密图像。缩略图是一种小尺寸图像,用户在访问云端的图片时,通常云端会生成图片的缩略图供用户预览,用户通过它可快速寻找到自己感兴趣的图片,然后根据缩略图提供的链接获取到原始图像信息。文献[1]提出的TPE方案,使用的是一种基于分块置乱的方法,它仅仅对分块内的像素做置乱,未改变原图像的统计信息,因此无法抵御统计学上的攻击。2017年Marohn B等人在文献[2](B.Marohn,C.V.Wright,W.Feng,M.Rosulek,andR.B.Bobba.Approximate Thumbnail Preserving Encryption.In Proceedings of The1st International Workshop on Multimedia Privacy and Security(CCS MPS),October 2017.)中又提出了两种近似的保存缩略图算法,该方案中密文块内像素均值与明文块内像素均值只是近似相等,不是理想的TPE方案,并且该方案还放弃了对密文的完全解密,只能得到近似的解密效果。2019年Tajik K等人在文献[3](K.Tajik,A.Gunasekaran,R.Dutta,B.Ellis,R.B.Bobba,M.Rosulek,C.V.Wright,and W.Feng.Balancing ImagePrivacy and Usability with Thumbnail-Preserving Encryption.In Proc.Networkand Distributed Systems Security Symposium(NDSS'19),February 2019.)中通过一种“和保存”方案实现理想的TPE加密(理想TPE方案就是要保证密文与明文块内像素均值相等),但其给出的方案算法复杂度高,需要较长的加密时间。
进化论中,生物种群通过遗传基因的选择、交叉、变异,经过自然选择产生新的种群,实现了生物进化。遗传算法就是模拟生物进化这一过程,在算法执行过程中具有很强的随机性,其过程与图像加密算法中的置乱扩散颇为相似,如果把一副图像视为初始种群,则经过进化得到的数据就是一副加密性很强的密文图像,研究人员基于遗传算法提出了众多性能良好的加密算法,但其均为完全加密算法,加密得到的仍是类噪声图像,使得密文可用性大大降低。
发明内容
针对传统加密方法生成的密文无法在云端有效利用的问题,以及现有的TPE算法存在的无法抵御统计学上的攻击、无法完全解密和加密时间长的问题,本发明提供一种基于遗传算法的彩色图像保存缩略图加密算法。
本发明提供一种基于遗传算法的彩色图像保存缩略图加密算法,该算法包括:
步骤1、对彩色图像P进行种群初始化处理,得到若干个初始种群;其中,每个所述种群由彩色图像P中的像素构成,所述种群初始化处理包括对彩色图像P进行分块处理得到若干个子块、种群获取操作和对种群内的个体进行编码得到个体对应的染色体;
步骤2、针对当前种群,生成5组伪随机序列D、E、F、H和I;
步骤3、针对当前种群,将其交叉前的染色体序列记作A;采用伪随机序列D选择交叉对象,并对交叉对象中的若干个个体进行交叉配对;采用伪随机序列E选择交叉点,根据选定的交叉点对匹配到的交叉对进行交叉操作,得到新的染色体序列A′;
步骤4、针对当前种群,采用伪随机序列F从所述新的染色体序列A′中选择变异染色体,采用伪随机序列H选择变异基因位置,根据选定的变异基因位置对选定的变异染色体逐个变异,直至种群内所有染色体均完成变异得到新的种群;
步骤5、针对当前种群,对新的种群迭代执行步骤2至步骤4,直至完成预设的迭代轮数T轮,结束当前种群的进化;继续下一个种群,执行步骤2至步骤5,直至完成所有种群的进化;
步骤6、对完成进化的种群的染色体进行解码,得到二维矩阵,将解码得到的所有二维矩阵按照其原坐标进行合并,得到灰度密文,再结合通道信息生成彩色密文。
进一步地,步骤1中的对彩色图像P进行分块处理具体为:
首先对彩色图像P进行RGB分解,提取三组灰度图像PR、PG和PB;然后对所述三组灰度图像PR、PG和PB分别进行分块处理,得到若干个子块,每个子块均包含m×n个像素。
进一步地,步骤1中的种群获取操作具体为:
将每个子块变换为1×mn的一维序列,将所述一维序列作为初始种群V,每个子块对应有一个初始种群;其中,子块内的像素代表种群内的个体Vi,i表示个体在种群内的位置,i为[1,mn]之间的整数,mn表示种群内的个体总数量。
进一步地,步骤1中的对种群内的个体进行编码得到个体对应的染色体具体为:
将Vi值转化为二进制串,将所述二进制串作为Vi的染色体Ai;其中,Vi与Ai在各自空间的位置信息一一对应。
进一步地,步骤2中,每个种群的伪随机序列的生成过程包括:
步骤2.1:根据子块的通道信息、位置信息、种群的当前迭代次数、彩色图像P携带的信息和预设的独立密码,生成种群的特定密钥;
步骤2.2:采用SHA-256算法计算得到所述特定密钥的hash值,将hash值代入伪随机数生成器生成5组伪随机序列D、E、F、H和I;
其中,D的长度为mn,其元素的取值范围为[1,mn]之间不重复的整数;E的长度为mn/2,其元素的取值范围为[1,7]之间可重复的整数;F的长度为mn,其元素的取值范围为[1,mn]之间不重复的整数;H的长度为mn,其元素的取值范围为[1,7]之间可重复的整数;I的长度为2mn,其元素的取值范围为[1,mn]之间可重复的整数,且I(2i-1)≠I(2i)≠F(i),i为[1,mn]之间的正整数。
进一步地,步骤3具体为:
令染色体AD(j)与染色体AD(mn/2+j)组成一个交叉对,设定交叉点为E(j),j为[1,mn/2]之间的整数;其中,AD(j)和AD(mn/2+j)分别表示染色体序列A中的第D(j)个染色体和第D(mn/2+j)个染色体,D(j)和D(mn/2+j)分别表示伪随机序列D中的第j个元素值和第(mn/2+j)个元素值,E(j)表示伪随机序列E中的第j个元素值;
针对每个交叉对,分别将两个待交叉的染色体拆分为右边E(j)个基因与左边8-E(j)个基因,交换两个待交叉的染色体左边的基因,各自右边的基因不变,得到两个新的染色体,交叉完成;
当种群内所有染色体交叉完成后得到新的染色体序列A′。
进一步地,步骤4具体为:
对新的染色体序列A′按照A′F(1)、A′F(2)、…、A′F(mn)的顺序逐个变异,A′F(i)对应的变异基因位置为H(i),i为[1,mn]之间的整数;
其中,染色体中从右向左依次为第0位基因至第7位基因;A′F(1)、A′F(2)、A′F(i)和A′F(mn)分别表示染色体序列A′中的第F(1)个染色体、第F(2)个染色体、第F(i)个染色体和第F(mn)个染色体,F(1)、F(2)、F(i)和F(mn)分别表示伪随机序列F中的第1个元素值、第2个元素值、第i个元素值和第mn个元素值,H(i)表示伪随机序列H中的第i个元素值。
进一步地,步骤4还包括:在对变异染色体进行变异的同时,采用变异补偿染色体补偿由变异染色体变异而引起的像素均值的变化;其中,采用伪随机序列I确定变异补偿染色体的位置。
进一步地,每个变异染色体对应有两个变异补偿染色体,具体为:针对变异染色体A′F(i),其对应的变异补偿染色体为A′I(2i-1)和A′I(2i);其中,A′I(2i-1)和A′I(2i)分别表示染色体序列A′中的第I(2i-1)个染色体和第I(2i)个染色体,I(2i-1)和I(2i)分别表示伪随机序列I中的第(2i-1)个元素值和第2i个元素值。
进一步地,步骤4还包括:若判断获知变异染色体变异失败,则将变异染色体和其对应的变异补偿染色体均恢复至变异前的基因状态;所述变异失败是指变异补偿染色体补偿像素变化时发生计算溢出。
本发明的有益效果:
(1)本发明提出了一种基于遗传算法的保存缩略图加密算法,通过遗传算法中交叉变异操作对明文块内像素做位级置乱扩散,实现了对图像的加密。位级置乱扩散有效隐藏了图像像素的统计信息,通过引入变异补偿、变异失败的概念,实现了块内像素均值不变的目标,从而保留了明文的缩略图,实现了理想的保存缩略图加密方案。
(2)本发明提出了一种保存缩略图加密算法,通过该算法获得的密文保留了明文的缩略图信息,用户可以通过预览缩略图快速找到自己感兴趣的图片,用户还可以通过发送查询图片的缩略图到云端与密文库中的密文缩略图进行特征匹配进而可以达到图像检索的目的。通过本算法加密得到的密文仅暴露了明文的缩略图信息,而仅仅拥有图像的缩略图无法恢复出明文信息,这保证了信息的安全性。
(3)通过本算法解决了直接将明文图片上传到云端时安全性不足的问题,也解决了传统加密算法得到的类噪声密文无法被有效利用的问题,有效平衡了云储存环境下保护图像隐私及提高其可用性的矛盾。生成缩略图是云端已经具备的功能,用户使用本发明上传到云端的仅仅是密文图像,并没有额外的信息,因此无需对云端进行改造,这有效兼容了已有的大多数的云平台。
附图说明
图1为本发明实施例提供的基于遗传算法的彩色图像保存缩略图加密算法的流程示意图之一;
图2为本发明实施例提供的基于遗传算法的彩色图像保存缩略图加密算法的流程示意图之二;
图3为本发明实施例提供的测试明文图像:(a)为彩色图像lena;(b)为彩色图像lostlake;(c)为彩色图像barbara;(d)为彩色图像tree;
图4为本发明实施例提供的采用本发明算法对彩色图像lena不同分块时的加密效果:(a)为K=16时的加密效果;(b)为K=32时的加密效果;(c)为K=64时的加密效果;
图5为本发明实施例提供的不同大小的明文缩略图:(a)为32×32的明文缩略图;(b)为16×16的明文缩略图;(c)为8×8的明文缩略图;
图6为本发明实施例提供的K不同取值下的密文缩略图:(a)为K=16时的密文缩略图;(b)为K=32时的密文缩略图;(c)为K=64时的密文缩略图;
图7为本发明实施例提供的彩色图像lena的明文和密文R、G、B分量的直方图:(a)为明文R分量的直方图;(b)为明文G分量的直方图;(c)为明文B分量的直方图;(d)为密文R分量的直方图;(e)为密文G分量的直方图;(f)为密文B分量的直方图;
图8为本发明实施例提供的明文密文直方图相关性比较结果;
图9为本发明实施例提供的本算法和文献[3]算法的加密时间比较结果。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在介绍本发明的发明构思之前,先对遗传算法的一般运算过程进行简单介绍。遗传算法是模拟生物进化论中生物进化过程的计算模型,是一种通过模拟自然进化来求解问题的过程,其一般流程如下:
1)、种群初始化。种群是生物进化的基本单位,个体是组成种群的单元。遗传算法中,用一个数据集合代表一个种群,组成数据集合的数据单元代表一个个体。种群初始化,就是获得一个待处理的数据集合,获取到数据以后还需要对数据进行编码,将问题空间的参数表示成遗传空间的染色体。
2)、选择运算。根据选择函数在种群中选择适应的个体,将优化的个体染色体或基因遗传到下一代。
3)、交叉运算。交叉是遗传算法的核心操作,通过交叉点将染色体分成不同的片段,再将片段重新组合生成新的染色体。
4)、变异运算。变异是对染色体上某些基因改变,配合交叉运算共同进行,得到新的染色体,进而生成新个体、新种群。
5)、终止条件判断。用来判断是否停止进化的条件。
经过以上操作,由初始种群进化得到新的种群。
需要说明的是,在本发明中,“图像与像素”、“种群与个体”、“染色体序列和染色体”是成对的概念,其中,“像素”、“个体”和“染色体”之间是一一对应的,下文中将不再进行严格区分。
实施例1
基于上述遗传算法,如图1所示,本发明实施例提供一种基于遗传算法的彩色图像保存缩略图加密算法,包括以下步骤:
S101、对彩色图像P进行种群初始化处理,得到若干个初始种群;其中,每个所述种群由彩色图像P中的像素构成,所述种群初始化处理包括对彩色图像P进行分块处理得到若干个子块、种群获取操作和对种群内的个体进行编码得到个体对应的染色体;
S102、针对当前种群,生成5组伪随机序列D、E、F、H和I;
S103、针对当前种群,将其交叉前的染色体序列记作A;采用伪随机序列D选择交叉对象,并对交叉对象中的若干个个体进行交叉配对;采用伪随机序列E选择交叉点,根据选定的交叉点对匹配到的交叉对进行交叉操作,得到新的染色体序列A′;
S104、针对当前种群,采用伪随机序列F从所述新的染色体序列A′中选择变异染色体,采用伪随机序列H选择变异基因位置,根据选定的变异基因位置对选定的变异染色体逐个变异,直至种群内所有染色体均完成变异得到新的种群;
S105、针对当前种群,对新的种群迭代执行步骤2至步骤4,直至完成预设的迭代轮数T轮,结束当前种群的进化;继续下一个种群,执行步骤2至步骤5,直至完成所有种群的进化;
S106、对完成进化的种群的染色体进行解码,得到二维矩阵,将解码得到的所有二维矩阵按照其原坐标进行合并,得到灰度密文,再结合通道信息生成彩色密文。
本发明实施例提供的基于遗传算法的彩色图像保存缩略图加密算法,将明文图像作为初始种群,通过交叉操作对子块内像素做位级置乱,通过变异操作对子块内像素做位级扩散,通过伪随机序列来选择交叉对象、交叉点、变异像素及变异基因位置。交叉操作不改变位级比特的权值(假设像素a与b做交叉得到c和d,则c+d=a+b),因此交叉操作不改变块内像素均值,不能改变像素位级的统计信息,而变异操作则可以弥补这一缺陷。变异操作是对位级元素的扩散操作,可以有效隐藏位级元素的统计信息,因此本发明实施例可以有效抵御统计学上的攻击。
实施例2
在实施例1的基础上,本发明还提供一种基于遗传算法的彩色图像保存缩略图加密算法,包括以下步骤:
S201:种群初始化
(1)对彩色图像P进行分块处理:首先对M×N×3的彩色图像P进行RGB分解,提取三组灰度图像PR、PG和PB;然后对所述三组灰度图像PR、PG和PB分别进行分块处理,得到若干个子块,每个子块均包含m×n个像素。
具体地,首先对M×N×3的彩色图像P进行RGB分解(R、G、B分别为彩色图像的三个通道)提取M×N的灰度图像PR、PG、PB,再对三组灰度图像分别进行分块处理,每个子块Pc(x,y)包含m×n个像素,(x,y)表示子块在灰度图像中的坐标,c表示通道信息,c=“R”、“G”或“B”。
例如,将PR分成2×2个子块,每个子块分别为PR(1,1)、PR(1,2)、PR(2,1)和PR(2,2);需要说明的是,当像素不足分成一整块时,对不足处进行填零补充。
(2)种群获取:将每个子块变换为1×mn的一维序列,将所述一维序列作为初始种群V,每个子块对应有一个初始种群;其中,子块内的像素代表种群内的个体Vi,i表示个体在种群内的位置,i为[1,mn]之间的整数,mn表示种群内的个体总数量。
(3)对种群内的个体进行编码得到个体对应的染色体:将Vi值转化为二进制串,将所述二进制串作为Vi的染色体Ai;其中,Vi与Ai在各自空间的位置信息一一对应。
具体地,将Vi值转化为二进制串,每个二进制串代表一个染色体Ai,Vi与Ai在各自空间的位置信息一一对应。由于图像像素的取值范围为[0,255]之间的整数,因此Ai上有8个比特,每比特代表一个基因,最低比特记作0位,最高比特记作7位,每个基因有0和1两种状态。
S202:选择操作
本算法使用伪随机序列进行随机选择,为了保证每个种群对应的伪随机序列不同,需要每个种群都有一个特定的密钥来生成伪随机序列。
(1)特定密钥获取:根据子块的通道信息、位置信息、种群的当前迭代次数、彩色图像P携带的信息和预设的独立密码,生成种群的特定密钥。
具体地,当前子块在彩色图像P中的通道记为c=“R”、“G”或“B”,其位置信息为(x,y),种群的进化需要多轮的迭代,记当前迭代轮数为r>0。每一幅原始图像都携带特定的信息(例如文件名、生成时间等)记为Nonce,用户在对一批图像加密时还会设定一个独立密码p,则特定密钥记为EK=(p||Nonce||x||y||c||r),其中||表示将字符的二进制表示串到一起。
(2)伪随机序列生成:采用SHA-256算法计算得到所述特定密钥的hash值,将hash值代入伪随机数生成器生成5组伪随机序列D、E、F、H和I。
具体地,得到特定密钥EK后,使用SHA-256算法求其hash值,将hash值代入伪随机数生成器生成5组伪随机序列D、E、F、H、I。其中,D的长度为mn,其元素的取值范围为[1,mn]之间不重复的整数;E的长度为mn/2,其元素的取值范围为[1,7]之间可重复的整数;F的长度为mn,其元素的取值范围为[1,mn]之间不重复的整数;H的长度为mn,其元素的取值范围为[1,7]之间可重复的整数;I的长度为2mn,其元素的取值范围为[1,mn]之间可重复的整数,且I(2i-1)≠I(2i)≠F(i),i为[1,mn]之间的正整数。
(3)选择交叉对象与交叉点。
使用伪随机序列D选择交叉对象,每两个个体为一对做交叉,使用伪随机序列E选择其交叉点。
(4)选择变异染色体、变异基因位置。
使用伪随机序列F选择变异的染色体,使用伪随机序列H选择变异基因的位置。
(5)选择变异补偿染色体的位置。
变异补偿是为了抵消因变异引起的像素均值的变化,每当有一个染色体的基因发生变异,需要两个不同染色体发生改变对其补偿,使用伪随机序列I确定用来做补偿的染色体的位置。
S203:交叉操作
(1)交叉配对:针对当前种群,将其交叉前的染色体序列记作A;采用伪随机序列D选择交叉对象,并对交叉对象中的若干个个体进行交叉配对。
具体地,令染色体AD(j)与染色体AD(mn/2+j)组成一个交叉对,设定交叉点为E(j),j为[1,mn/2]之间的整数;其中,AD(j)和AD(mn/2+j)分别表示染色体序列A中的第D(j)个染色体和第D(mn/2+j)个染色体,D(j)和D(mn/2+j)分别表示伪随机序列D中的第j个元素值和第(mn/2+j)个元素值,E(j)表示伪随机序列E中的第j个元素值;
(2)交叉:采用伪随机序列E选择交叉点,根据选定的交叉点对匹配到的交叉对进行交叉操作,得到新的染色体序列A′。
具体地,针对每个交叉对,分别将两个待交叉的染色体拆分为右边E(j)个基因与左边8-E(j)个基因,交换两个待交叉的染色体左边的基因,各自右边的基因不变,得到两个新的染色体,交叉完成。当种群内所有染色体交叉完成后得到新的染色体序列A′。
例如,假设D(1)=1,D(mn/2+1)=2,E(1)=3,则选择染色体A1与染色体A2做交叉,交叉点为3。假设A1=11010011,A2=01010100,交叉点将A1拆分为右边3个基因011与左边8-3=5个基因11010,A2被拆分为右边3个基因100与左边5个基因01010。然后将A1与A2左边的基因交换位置,右边的基因不变,得到两条新的染色体A′1=01010011与A′2=11010100。
S204:变异操作
(1)基因变异:针对当前种群,采用伪随机序列F从所述新的染色体序列A′中选择变异染色体,采用伪随机序列H选择变异基因位置,根据选定的变异基因位置对选定的变异染色体逐个变异,直至种群内所有染色体均完成变异得到新的种群。
具体地,基因变异就是对基因的状态改变,当基因状态是0时变异成为1,当基因状态是1时变异成为0。变异为:对新的染色体序列A′按照A′F(1)、A′F(2)、…、A′F(mn)的顺序逐个变异,A′F(i)对应的变异基因位置为H(i),i为[1,mn]之间的整数;
其中,染色体中从右向左依次为第0位基因至第7位基因;A′F(1)、A′F(2)、A′F(i)和A′F(mn)分别表示染色体序列A′中的第F(1)个染色体、第F(2)个染色体、第F(i)个染色体和第F(mn)个染色体,F(1)、F(2)、F(i)和F(mn)分别表示伪随机序列F中的第1个元素值、第2个元素值、第i个元素值和第mn个元素值,H(i)表示伪随机序列H中的第i个元素值。
例如,假设F(1)=1,F(2)=10,H(1)=1,H(2)=7。则先对A′1的第1位基因变异,再对A′10的第7位基因变异。假设A′1=01010011,A′10=00101010,则变异后的染色体A′1=01010001,A′10=10101010。
(2)变异补偿及变异失败:由于变异操作改变了子块内像素均值,这使得明文的缩略图信息无法被保留,针对该问题,本发明实施例提出了变异补偿、变异失败的概念。具体为:在对变异染色体进行变异的同时,采用变异补偿染色体补偿由变异染色体变异而引起的像素均值的变化;其中,采用伪随机序列I确定变异补偿染色体的位置;若判断获知变异染色体变异失败,则将变异染色体和其对应的变异补偿染色体均恢复至变异前的基因状态;所述变异失败是指变异补偿染色体补偿像素变化时发生计算溢出。
具体地,变异补偿为:当像素变异时,选择两个或两个以上其他位置的像素做补偿来保证块内像素均值不变(如果变异导致块内像素均值减小或增加,则被选中的补偿像素分别增加或减小一定值来抵消这种改变)。像素的最高位记作7位,最低位记作0位。当像素第i位变异(i∈{1,…,7}),像素变化值△=2i。选择n个像素(a1,…,an)作补偿,aj变化值为△j(j为[1,n]的整数),∑△i=△。本发明实施例取n=2,△1=△2=△/2。需要说明的是,像素的第0位基因不参与变异过程。
变异失败为:由于图像像素为有限整数(0~255),因此在变异补偿时可能导致计算溢出,为了防止溢出,当选中的补偿像素无法抵消变异引起的偏差时(出现计算溢出时),则变异失败,此时待变异像素不再改变,补偿像素也不改变。假设补偿像素为a,补偿像素变化值为△/2,若计算溢出(a-△/2<0或a+△/2>255),则变异失败。
每个变异染色体对应有两个变异补偿染色体,具体为:针对变异染色体A′F(i),其对应的变异补偿染色体为A′I(2i-1)和A′I(2i);其中,A′I(2i-1)和A′I(2i)分别表示染色体序列A′中的第I(2i-1)个染色体和第I(2i)个染色体,I(2i-1)和I(2i)分别表示伪随机序列I中的第(2i-1)个元素值和第2i个元素值。
作为一种可实施方式,当染色体的第b位发生变异时,b为[1,7]之间的整数,种群内个体的数值总和变化△=±2b(2的b次幂),当基因由0变异成1时取正号,反之取负号。为抵消变化值△,对应的两个补偿染色体都变化-△/2,当有任意一个补偿染色体变化-△/2时计算溢出(结果大于255或小于0)则变异失败,此时待变异的基因不再改变,两个补偿染色体也不发生变化。当一个基因完成变异时,要对种群进行一次更新(如果下一个基因变异时选择的补偿染色体是之前发生了变异的染色体,使用变异发生后的数值进行运算),再继续对下一个染色体上的基因进行变异操作,直到最后一个染色体上的基因变异结束,变异操作步骤才算完成。
例如,假设变异时,第一个变异染色体的索引F(1)=1,变异基因位置H(1)=1,对应补偿染色体的索引I(1)=20、I(2)=11;染色体值A′1=01111010=122,对应的补偿染色体值A′20=11111010=250、A′11=10111010=186;则变异后A′1=01111000=120,△=-21=-2,A′20=250+1=251=11111011,A′11=186+1=187=10111011。
第二个变异染色体的索引F(2)=5,变异基因位置H(2)=6,对应补偿染色体的索引I(3)=20、I(4)=1。第二个变异染色体的值A′5=01101010=106,对应的补偿染色体值A′20=251=11111011、A′1=120=01111000。此次变异是对上次变异后的染色体进行的操作,再次变异A′5=00101010=42,△=-26=-64,A′20=251+32=283>255,(结果大于255计算溢出,说明选择的补偿染色体不能对变化值△补偿)变异失败。经过本次变异后A′5不变,恢复到之前的值106,A′20不变,恢复到之前的值251,A′1不变,为之前的值120。继续执行下一个变异,直到种群内所有染色体的变异操作完成。
S205:进化结束条件判断
针对当前种群,对新的种群迭代执行步骤S202至步骤S204,直至完成预设的迭代轮数T轮,结束当前种群的进化;继续下一个种群,执行步骤S202至步骤S205,直至完成所有种群的进化。
具体地,当对一个种群执行完交叉、变异操作后,对新的种群继续迭代执行选择、交叉、变异操作。更新参数,当前迭代轮数r=r+1,回到步骤S202继续执行,直到完成预设的迭代轮数T轮,结束当前种群的进化。再继续对下一个种群执行进化操作,更新参数坐标值x、y,通道值c,回到步骤S202继续执行,直到完成所有种群的进化后结束。
S206:密文生成
(1)解码:对完成进化的种群的染色体进行解码,得到二维矩阵。
具体地,对进化完成的种群的染色体进行解码,即:将二进制序列转换成十进制像素值,得到长度为1×mn序列,再转换为m×n的二维矩阵。
(2)合并:将解码得到的所有二维矩阵按照其原坐标进行合并,得到灰度密文,再结合通道信息生成彩色密文。
通过以上方案实现了对明文图像的加密,同时保证了加密前后块内像素均值不变,使得密文保留了明文的缩略图信息,在保护图像隐私的同时提高了其可用性。
对应上述加密算法,本发明实施例还提供一种基于遗传算法的彩色图像保存缩略图解密算法。
具体地,解密时用户需要一个解密整幅图像的密钥记为Key,其包含用户独立密码p、图像特定信息Nonce、明文图像大小M和N、分块参数m和n、迭代总轮数T,作为解密密钥被用户保存下来。解密步骤为加密步骤的逆过程,解密时首先要使用Key与结合迭代轮数、解密通道、以及解密子块的坐标等信息得到特定密钥EK,将其代入伪随机数生成器生成与加密时相同的伪随机序列。解密时需注意:
(1)在获得特定密钥时,迭代轮数的获取要与加密时相反,即当前轮数t初始值为T,并且要从大到小依次递减至t=1。
(2)变异的先后顺序要与加密时顺序相反,即加密时最后变异的基因,在解密时要最先变异。加密时先交叉再变异然后迭代,在解密时要先变异再交叉,然后迭代相同的轮数。
(3)密钥中包含明文的大小信息,当密文大小与明文大小不相等时,要除去填充的零像素。
为了验证本发明提供的基于遗传算法的彩色图像保存缩略图加密算法的有效性,本发明还进行了相关验证实验。
实验仿真平台:CPU:Intel(R)Core(TM)i7-8750H,2.20GHz;Memory:8.00GB;Operating system:Windows10;Coding tool:Matlab2016a。使用Easy Thumbnails3.0工具批量生成缩略图。测试图像如图3所示,lena、lostlake大小为512×512;barbara、tree为256×256。
(一)加密效果
如图4为本算法对lena不同分块时的加密效果,K=m表示子块的大小为m×m,图为迭代20轮的加密效果。由图可以看出①密文图像为明文图像的一种低分辨率表示;②随着K增大,密文图像对隐私的保护能力在增强,图像的可利用性在变差,可以根据对隐私的保护程度来调节分块大小,以达到平衡图像隐私与可用性。
如图5所示为明文不同大小的缩略图,如图6所示为K不同取值下密文缩略图。若密文大小为M×M,K=16时密文缩略图大小为(M/K)×(M/K)。由图可知密文缩略图与明文缩略图相同,表明密文保留了明文的缩略图信息。这样,①用户可以通过缩略图获取直观的视觉信息,进而找到自己想要的图片,尤其是对曾见过原始图像的用户可以更快速找寻到想要的信息。②查询用户发送图片的缩略图与密文库中密文缩略图进行匹配进而可以达到图像检索的目的。
(二)直方图分析
1、明文密文直方图
直方图描述了数字图像中所有像素出现的频率,可以用来检测加密算法对密文图像统计信息的保护情况。如图7所示为lena明文和密文R、G、B分量的直方图,密文图像由算法在K=8时迭代20轮加密得到。①从视觉效果上看,密文图像很好地隐藏了原始像素的统计信息,解决了文献[1]中明文与密文直方图相同的问题。②密文图像的直方图与传统加密算法得到的类噪声图像直方图相比又有明显的不同,其中包含了一些特征信息,可以利用这些信息来对密文图像有效的利用。
2、明文密文直方图相关性分析
通过求明文密文直方图相关性系数可以分析两者相关性的强弱,两幅图像的直方图相关性越弱,说明加密算法对直方图信息隐藏的效果越好,反之说明加密算法对直方图信息隐藏的效果差。如果两个变量的相关性越强,相关系数就会越接近1,相关性越弱,相关系数越接近0,其绝对值与其意义如表1所示。对两幅图像的直方图求相关性公式为:
其中,H1为明文图像R、G、B三分量中某分量的直方图,H2为算法迭代r轮得到的密文图像R、G、B三分量中某分量的直方图。
表1 相关性系数取值意义
如图8所示为明文密文直方图相关性比较结果,加密时取K=8。横坐标r为加密迭代轮数,纵坐标为明文、密文同一分量直方图的相关性系数d。由图可知,①随着r的增加,d逐渐减小,表明随着迭代轮数的增加,密文对明文图像的统计信息隐藏的越来越好。②当迭代到18轮时d开始收敛,表明密文图像的直方图形状逐渐稳定,不再随着加密轮数增加而有较大变化,此时可视为加密完成停止迭代。③最终满足d<0.5,结合表1可知,明文与密文直方图低度相关,表明密文保护了明文的统计信息。
(三)明文密文缩略图平均结构相似性分析
平均结构相似性(Mean Structural Similarity)简称MSSIM,它是一种衡量两幅图像相似度的指标。表2所示是密文缩略图与明文缩略图的MSSIM,记明文图像大小为M×M,其缩略图大小为m×m。由表可知,①当m≤(M/K)时,MSSIM值为1,表明密文缩略图与明文缩略图完全相同。②当m>(M/K)时,MSSIM值<1,表明密文缩略图与明文缩略图相似。③密文图像保留信息的多少完全由K决定,而不是由生成的缩略图大小决定,因此生成缩略图的算法不会导致更多明文信息的泄露。
表2 明文缩略图与密文缩略图平均结构相似性
(四)加密时间分析
如图9所示,横坐标K为子块大小,纵坐标为加密时间t(s)。实线为本算法结果,虚线为文献[3]结果,图512表示lena与lostlake加密时间均值,图256表示barbara与tree加密时间均值。由图可知,①本算法对256×256明文加密时间在5s以下,文献[3]需30s以上;②本算法对512×512明文加密时间在20s以下,文献[3]需100s以上;③这种差距会随着明文图片的增大而更加明显,因此本算法有着更高加密效率。
(五)信息熵分析
信息熵H(m)用来反映信息源的不可预测性和随机性。计算公式如下:
其中m为信息源,用于256灰度的加密图像,当所有灰度级出现的概率相同时,H(m)的理论值为8,对于安全加密系统,密文图像的信息熵应接近8。
如表3所示为lena明文、密文信息熵。由表可知:①相对于明文图像,密文图像信息熵更大,但小于一般的全加密情况下的密文信息熵(十分接近8),说明密文即起到了加密的效果,又保留了一定的信息。②随着K的增加,信息熵逐渐增加,说明其像素随机性增强,加密效果提升,可能泄露的信息减少。
表3 明文图像和密文图像信息熵测试
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.基于遗传算法的彩色图像保存缩略图加密方法,其特征在于,包括:
步骤1、对彩色图像P进行种群初始化处理,得到若干个初始种群;其中,每个所述种群由彩色图像P中的像素构成,所述种群初始化处理包括对彩色图像P进行分块处理得到若干个子块、种群获取操作和对种群内的个体进行编码得到个体对应的染色体;
步骤2、针对当前种群,生成5组伪随机序列D、E、F、H和I;
步骤3、针对当前种群,将其交叉前的染色体序列记作A;采用伪随机序列D选择交叉对象,并对交叉对象中的若干个个体进行交叉配对;采用伪随机序列E选择交叉点,根据选定的交叉点对匹配到的交叉对进行交叉操作,得到新的染色体序列A′;
步骤4、针对当前种群,采用伪随机序列F从所述新的染色体序列A′中选择变异染色体,采用伪随机序列H选择变异基因位置,根据选定的变异基因位置对选定的变异染色体逐个变异,直至种群内所有染色体均完成变异得到新的种群;步骤4具体为:
对新的染色体序列A′按照A′F(1)、A′F(2)、…、A′F(mn)的顺序逐个变异,A′F(i)对应的变异基因位置为H(i),i为[1,mn]之间的整数;
其中,染色体中从右向左依次为第0位基因至第7位基因;A′F(1)、A′F(2)、A′F(i)和A′F(mn)分别表示染色体序列A′中的第F(1)个染色体、第F(2)个染色体、第F(i)个染色体和第F(mn)个染色体,F(1)、F(2)、F(i)和F(mn)分别表示伪随机序列F中的第1个元素值、第2个元素值、第i个元素值和第mn个元素值,H(i)表示伪随机序列H中的第i个元素值;
在对变异染色体进行变异的同时,采用变异补偿染色体补偿由变异染色体变异而引起的像素均值的变化;其中,采用伪随机序列I确定变异补偿染色体的位置;
若判断获知变异染色体变异失败,则将变异染色体和其对应的变异补偿染色体均恢复至变异前的基因状态;所述变异失败是指变异补偿染色体补偿像素变化时发生计算溢出;
步骤5、针对当前种群,对新的种群迭代执行步骤2至步骤4,直至完成预设的迭代轮数T轮,结束当前种群的进化;继续下一个种群,执行步骤2至步骤5,直至完成所有种群的进化;
步骤6、对完成进化的种群的染色体进行解码,得到二维矩阵,将解码得到的所有二维矩阵按照其原坐标进行合并,得到灰度密文,再结合通道信息生成彩色密文。
2.根据权利要求1所述的方法,其特征在于,步骤1中的对彩色图像P进行分块处理具体为:
首先对彩色图像P进行RGB分解,提取三组灰度图像PR、PG和PB;然后对所述三组灰度图像PR、PG和PB分别进行分块处理,得到若干个子块,每个子块均包含m×n个像素。
3.根据权利要求2所述的方法,其特征在于,步骤1中的种群获取操作具体为:
将每个子块变换为1×mn的一维序列,将所述一维序列作为初始种群V,每个子块对应有一个初始种群;其中,子块内的像素代表种群内的个体Vi,i表示个体在种群内的位置,i为[1,mn]之间的整数,mn表示种群内的个体总数量。
4.根据权利要求3所述的方法,其特征在于,步骤1中的对种群内的个体进行编码得到个体对应的染色体具体为:
将Vi值转化为二进制串,将所述二进制串作为Vi的染色体Ai;其中,Vi与Ai在各自空间的位置信息一一对应。
5.根据权利要求1所述的方法,其特征在于,步骤2中,每个种群的伪随机序列的生成过程包括:
步骤2.1:根据子块的通道信息、位置信息、种群的当前迭代次数、彩色图像P携带的信息和预设的独立密码,生成种群的特定密钥;
步骤2.2:采用SHA-256算法计算得到所述特定密钥的hash值,将hash值代入伪随机数生成器生成5组伪随机序列D、E、F、H和I;
其中,D的长度为mn,其元素的取值范围为[1,mn]之间不重复的整数;E的长度为mn/2,其元素的取值范围为[1,7]之间可重复的整数;F的长度为mn,其元素的取值范围为[1,mn]之间不重复的整数;H的长度为mn,其元素的取值范围为[1,7]之间可重复的整数;I的长度为2mn,其元素的取值范围为[1,mn]之间可重复的整数,且I(2i-1)≠I(2i)≠F(i),i为[1,mn]之间的正整数。
6.根据权利要求1所述的方法,其特征在于,步骤3具体为:
令染色体AD(j)与染色体AD(mn/2+j)组成一个交叉对,设定交叉点为E(j),j为[1,mn/2]之间的整数;其中,AD(j)和AD(mn/2+j)分别表示染色体序列A中的第D(j)个染色体和第D(mn/2+j)个染色体,D(j)和D(mn/2+j)分别表示伪随机序列D中的第j个元素值和第(mn/2+j)个元素值,E(j)表示伪随机序列E中的第j个元素值;
针对每个交叉对,分别将两个待交叉的染色体拆分为右边E(j)个基因与左边8-E(j)个基因,交换两个待交叉的染色体左边的基因,各自右边的基因不变,得到两个新的染色体,交叉完成;
当种群内所有染色体交叉完成后得到新的染色体序列A′。
7.根据权利要求1所述的方法,其特征在于,每个变异染色体对应有两个变异补偿染色体,具体为:针对变异染色体A′F(i),其对应的变异补偿染色体为A′I(2i-1)和A′I(2i);其中,A′I(2i-1)和A′I(2i)分别表示染色体序列A′中的第I(2i-1)个染色体和第I(2i)个染色体,I(2i-1)和I(2i)分别表示伪随机序列I中的第(2i-1)个元素值和第2i个元素值。
CN202010812431.3A 2020-08-13 2020-08-13 基于遗传算法的彩色图像保存缩略图加密算法 Active CN112116672B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010812431.3A CN112116672B (zh) 2020-08-13 2020-08-13 基于遗传算法的彩色图像保存缩略图加密算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010812431.3A CN112116672B (zh) 2020-08-13 2020-08-13 基于遗传算法的彩色图像保存缩略图加密算法

Publications (2)

Publication Number Publication Date
CN112116672A CN112116672A (zh) 2020-12-22
CN112116672B true CN112116672B (zh) 2024-02-02

Family

ID=73804212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010812431.3A Active CN112116672B (zh) 2020-08-13 2020-08-13 基于遗传算法的彩色图像保存缩略图加密算法

Country Status (1)

Country Link
CN (1) CN112116672B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112700819B (zh) * 2020-12-31 2021-11-30 云舟生物科技(广州)有限公司 基因序列的处理方法、计算机存储介质及电子设备
CN115002293B (zh) * 2022-08-01 2022-10-25 江西财经大学 基于缩略图格式保留的隐私保密方法、系统及存储介质
CN117118615B (zh) * 2023-10-23 2024-02-06 烽台科技(北京)有限公司 基于遗传算法的流量混淆方法、装置和可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101212681A (zh) * 2007-12-25 2008-07-02 海信集团有限公司 一种快速运动搜索方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8385971B2 (en) * 2008-08-19 2013-02-26 Digimarc Corporation Methods and systems for content processing
CN107229972A (zh) * 2017-03-10 2017-10-03 东莞理工学院 一种基于拉马克获得性遗传原理的全局优化、搜索和机器学习方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101212681A (zh) * 2007-12-25 2008-07-02 海信集团有限公司 一种快速运动搜索方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
林正春 ; 王知衍 ; 张艳青 ; .最优进化图像阈值分割算法.计算机辅助设计与图形学学报.2010,(07),全文. *

Also Published As

Publication number Publication date
CN112116672A (zh) 2020-12-22

Similar Documents

Publication Publication Date Title
Zhang et al. Multiple-image encryption algorithm based on DNA encoding and chaotic system
Wang et al. A novel chaotic algorithm for image encryption utilizing one-time pad based on pixel level and DNA level
Zhu et al. 2D logistic-modulated-sine-coupling-logistic chaotic map for image encryption
Wang et al. A novel chaotic image encryption algorithm based on extended Zigzag confusion and RNA operation
CN112116672B (zh) 基于遗传算法的彩色图像保存缩略图加密算法
Patro et al. Secure multi–level permutation operation based multiple colour image encryption
Mirzaei et al. A new image encryption method: parallel sub-image encryption with hyper chaos
Chai et al. Preserving privacy while revealing thumbnail for content-based encrypted image retrieval in the cloud
Patro et al. A novel multi-dimensional multiple image encryption technique
CN110139000B (zh) 基于压缩感知和生命游戏置乱的图像压缩加密方法
CN109660696B (zh) 一种新的图像加密方法
CN106709854B (zh) 基于猫脸变换和混沌的图像信息融合加密方法
CN109800585B (zh) 一种图像插值空间完全可逆可分离密文域信息隐藏算法
CN107094072B (zh) 一种基于广义Henon映射的混合混沌加密方法
CN109981921B (zh) 一种混合混沌虚拟光学图像加密方法
CN108199828B (zh) 一种彩色图片加密方法及装置
CN110837651B (zh) 基于分数阶离散神经网络和dna运算的彩色图像加密方法
CN107592298B (zh) 一种基于单服务器模型的序列比较算法安全外包方法、用户终端和服务器
Wang et al. Cross-plane multi-image encryption using chaos and blurred pixels
CN113691362B (zh) 基于超混沌系统和dna编码的位平面图像压缩加密方法
Cun et al. A new chaotic image encryption algorithm based on dynamic DNA coding and RNA computing
CN116150795A (zh) 基于同态加密的数据处理方法、系统及相关设备
CN110225222B (zh) 一种基于3d正交拉丁方和混沌系统的图像加密方法
CN115766962A (zh) 一种基于五维保守超混沌系统的多密钥图像加密方法
CN110677552A (zh) 一种基于完备分组基的无载体信息隐藏方法

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