CN104851070A - 一种基于前景和背景分离的图像加密和解密方法 - Google Patents
一种基于前景和背景分离的图像加密和解密方法 Download PDFInfo
- Publication number
- CN104851070A CN104851070A CN201510233228.XA CN201510233228A CN104851070A CN 104851070 A CN104851070 A CN 104851070A CN 201510233228 A CN201510233228 A CN 201510233228A CN 104851070 A CN104851070 A CN 104851070A
- Authority
- CN
- China
- Prior art keywords
- sha
- image
- prime
- formula
- matrix
- 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.)
- Granted
Links
Abstract
本发明提供一种基于前景和背景分离的图像加密和解密方法,将待加密图像划分为任意选定的前景区域和背景区域,通过对图像上任意选定的关键区域和其他区域施加不同强度的加密,从而不仅可以对图像上选定的关键区域提供重点保护,而且又不易暴露图像上的敏感区域所在;且能够对用户选定的任意不规则封闭连通区域进行高强度的加密,而对其他非关键区域则施加一般性的加密,加密方法不仅与用户给定的密钥参数紧密相连,还与待加密图像的明文和选定的不规则封闭连通前景区域属性紧密相连,使得整个加密过程对用户的初始密钥和参数,以及待加密的明文图像以及不规则前景区域极度敏感。
Description
技术领域
本发明属于图像信息安全、人工智能和数字图像信号处理交叉领域,涉及一种置换-混淆架构对不规则图像的关键区域进行加密的方法,具体涉及一种基于前景和背景分离的图像加密和解密方法。
背景技术
随着计算机技术发展和Internet广泛应用,越来越多的信息在网络上传输,在给人们方便的同时,也带来极大安全隐患。作为信息的主要载体图像,其安全性也倍受关注。图像加密作为保障图像信息安全的核心思路,已成为目前的研究热点。
传统的图像加密算法大多基于混沌系统,采用置换-混淆结构对图像加密。例如通过各种混沌系统产生伪随机数序列对图像进行置换和混淆加密。均是由特定的密钥直接驱动混沌系统来对图像进行置换和混淆加密。其加密环节仅由特定的密钥和初始参数产生,而与具体的待加密图像性质无关,从而不能抵抗已知/选择明文攻击。
为抵御已知/选择明文攻击,一些图像加密算法也探讨了将待加密图像属性引入到图像加密算法中。例如采用混沌序列置换像素位置,并采用混沌系统产生与明文相关的伪随机数序列对像素值进行扩散,使得加密算法与明文相关。
虽然将用户密钥和图像的属性进行绑定,从而使所提加密策略具备一定的抵抗已知/选择明文攻击能力,但所提策略都是对整幅图像采用相同的策略进行加密,而在实际中,图像的关键信息往往集中在少数几个关键区域而非整幅图像。
基于此,一些加密算法也探讨了仅对图像上的感兴趣区域进行加密的图像加密方法。但其加密策略只是对规则矩形区域进行加密,而不能对图像上任意选定的不规则区域进行加密,同时仅对选定的关键区域进行加密而对非关键区域不进行加密,也使得加密后的关键区域易于受到攻击。因此能够对任意选定的不规则区域和其他区域进行不同强度的加密往往具备更高的应用价值。
发明内容
本发明的目的在于克服现有技术缺陷,提供一种基于前景和背景分离的图像加密和解密方法,将图像分割成前景和背景区域,能够对任意选定不规则的前景区域进行重点迷宫置换及混淆加密,对背景区域进行简单像素值混淆加密。
为实现上述目的,本发明采用以下技术方案:
一种基于前景和背景分离的图像加密方法,包括以下步骤:
第1步:将分辨率为M×N待加密图像A划分为任意选定的封闭连通区域SFore和其它区域SBack,即前景区域和背景区域;
第2步:提取SFore区域的轮廓链码CC,将其作为密钥存储;
第3步:计算出待加密图像A的RGB图像像素矩阵AR、AG、AB和轮廓链码CC对应的160位SHA-1值(AR)SHA-1、(AG)SHA-1、(AB)SHA-1和(CC)SHA-1;
第4步:利用(AR)SHA-1、(AG)SHA-1、(AB)SHA-1和(CC)SHA-1计算出图像像素矩阵和轮廓链码的混合SHA-1值(CAR)SHA-1、(CAG)SHA-1和(CAB)SHA-1;
第5步:将(CAR)SHA-1、(CAG)SHA-1和(CAB)SHA-1组成3×40的2维矩阵,对矩阵进行列优先扫描,依次将2个16进制数合并作为1个字节,得到长度为60的字节序列d=<di|i∈{0,1,…,59}>,由用户给定的随机数种子seed生成{0,1,…,59}上的随机排列,将序列d打乱,得到新的字节序列e;
第6步:由序列e和用户给定的密钥a、b、seed随机产生像素矩阵AR、AG和AB的起点坐标(XR,YR)、(XG,YG)和(XB,YB);
第7步:由e和a、b生成初始值x0和μ以及OCML时空混沌映射中的耦合系数ε和更新函数参数μ1;
第8步:由x0和μ计算与图像等大的OCML初始矩阵和结合ε、μ1驱动OCML时空混沌映射,迭代L轮生成伪随机数序列 和 将其分别量化为 和
第9步:由(XR,YR)、(XG,YG)、(XB,YB)、kR、kG和kB对AR、AG和AB的SFore区域进行迷宫置换,得到置换后的矩阵PR、PG和PB;
第10步:对PR、PG和PB,利用kR、kG和kB进行像素值混淆加密,得到加密后图像的像素矩阵CR、CG和CB,将其写为秘密图像C。
进一步,在第4步中计算出图像像素矩阵和轮廓链码的混合SHA-1值(CAR)SHA-1、(CAG)SHA-1和(CAB)SHA-1的具体方法如式(2)所示:
在第5步中将(CAR)SHA-1、(CAG)SHA-1和(CAB)SHA-1组成3×40维2维矩阵的具体方法为:将(CAR)SHA-1、(CAG)SHA-1和(CAB)SHA-1按式(3)视为由40个16进制数构成的序列:
(CAR)SHA-1=<ri|i∈[0,39]>
(CAG)SHA-1=<gi|i∈[0,39]> (3),
(CAB)SHA-1=<bi|i∈[0,39]>
然后将(CAR)SHA-1、(CAG)SHA-1和(CAB)SHA-1转换为3×40维2维矩阵如式(4)所示:
对式(4)进行列优先扫描,按式(5)得到60个字节:
d=<di|d0=r0g0,d1=b0r1,…,d59=g39b39> (5),
由用户给定的随机数种子seed生成{0,1,…,59}上的随机排列,将序列d打乱,得到新的字节序列e。
进一步,在第6步中:迷宫置换起点的X坐标:XR、XG和XB坐标按式(6)迭代筛选产生,Y坐标:YR、YG和YB坐标按式(7)迭代筛选产生:
X=mod((asineacoseb+bsineccosed+sineecosef)·1012,M) (6)
Y=mod((asinegcoseh+bsinejcosek+sinelcosem)·1012,N) (7);
式(6)和式(7)中ea,eb,ec,ed,ee,ef,eg,eh,ej,ek,el,em为每次迭代过程中从e中伪随机选择出的元素,这里需对式(6)和式(7)进行多次迭代,直至(XR,YR),(XG,YG),(XB,YB)∈SFore。
进一步,在第7步中由e、a和b生成初始值x0和μ以及OCML时空混沌映射中的耦合系数ε和更新函数参数μ1的具体方法如式(8)~式(11)所示:
x0=mod((asine36cose37+bsine38cose39+sine40cose41)·105,1) (8)
μ=3.99+mod((asine42cose43+bsine44cose45+sine46cose47)·105,1)·0.01 (9)
μ1=3.99+mod((asine48cose49+bsine50cose51+sine52cose53)·105,1)·0.01 (10)
ε=0.5+mod((asine54cose55+bsine56cose57+sine58cose59)·105,1)·0.1 (11)
式(8)~式(11)中,e36~e59均为e中的元素。
进一步,在第8步中,由x0和μ计算与图像等大的OCML初始矩阵 和的具体方法为将x0和μ代入式(12)迭代产生与图像等大的OCML初始矩阵和
xn+1=μxn(1-xn) (12);
结合ε、μ1驱动OCML时空混沌映射的计算公式如式(13)所示:
xt+1(i)=(1-ε)·f(xt(i))+ε·f(xt(i-1)) (13),
式(13)中的函数f()的计算函数取式(12);
由vR、vG和vB量化为kR、kG和kB的具体方法如式(14)所示:
进一步,在第9步中由(XR,YR)、(XG,YG)、(XB,YB)、kR、kG和kB对AR、AG和AB的SFore区域进行迷宫置换,得到置换后的矩阵PR、PG和PB,其迷宫置换的具体方法为:
第9.1步:从指定的迷宫起始坐标(x,y)∈SFore出发,按下列方法输出像素已访问序列Sorder:
第9.1.1步:初始化已访问序列Sorder和队列Q为空,,将(x,y)插入队列Q的队尾并将(Px,y,x,y)加入到Sorder,标记(x,y)已访问;
第9.1.2步:若当前结点(x,y)的相邻结点集{(x-1,y),(x,y-1),(x+1,y),(x,y+1)}中存在未被访问的SFore范围内结点坐标,将这些结点坐标随机插入队列的队尾并标记为已访问,从队头移除(x,y),将对应的(Px,y,x,y)加入到Sorder;
第9.1.3步:若(x,y)的相邻结点集中不存在未访问SFore范围内结点坐标,将队头结点移除,对应的(Px,y,x,y)加入到Sorder,将新的队头结点坐标作为当前结点坐标;
第9.1.4步:反复执行第9.1.2步到第9.1.3步,直到SFore范围内所有结点都被标记为已访问,并输出Sorder;
第9.2步:将SFore中元素的数量记为Num,生成{0,1,…,Num-1}上的随机数排列Smap;
第9.3步:将Sorder中的像素值按Smap中的伪随机数排列顺序进行重排,产生重排后S′order,然后将其按行优先顺序依次填充到SFore区域,产生置换后的矩阵;
第9.4步:将(XR,YR)、(XG,YG)和(XB,YB)依次作为迷宫起始坐标,得到3个置换后的矩阵PR、PG和PB。
进一步,第10步对PR、PG和PB,利用kR、kG和kB进行像素值混淆加密得到加密后图像的像素矩阵CR、CG和CB的具体方法如式(15)所示:
式(15)中和分别对应为PR、PG和PB按行优先顺序扫描的第i个元素值,和分别对应为CR、CG和CB按行优先顺序扫描的第i个元素值。
基于前景和背景分离的图像解密方法,其特征在于包括以下步骤:
第1步:输入待解密图像的像素矩阵C′R、C′G和C′B和图像解密密钥:160位SHA-1值(AR)′SHA-1、(AG)′SHA-1、(AB)′SHA-1和CC',用户给定的密钥a′、b′以及随机数种子seed′,OCML迭代轮数L',计算出(CC')SHA-1;
第2步:利用(AR)′SHA-1、(AG)′SHA-1、(AB)′SHA-1和(CC)′SHA-1计算出图像像素矩阵和轮廓链码的混合SHA-1值(CAR)′SHA-1、(CAG)′SHA-1和(CAB)′SHA-1;
第3步:将(CAR)′SHA-1、(CAG)′SHA-1和(CAB)′SHA-1组成3×40的2维矩阵,对矩阵进行列优先扫描,依次将2个16进制数合并作为1个字节,得到长度为60的字节序列d′=<d′i|i∈{0,1,…,59}>,由用户给定的随机数种子seed′生成{0,1,…,59}上的随机排列,将序列d′打乱,得到新的字节序列e′;
第4步:由e′、seed′和用户给定的密钥a′、b′随机产生C′R、C′G和C′B的起点坐标(X′R,Y′R)、(X′G,Y′G)和(X′B,Y′B);
第5步:由e′和a′、b′生成初始值x′0和μ′以及OCML时空混沌映射中的耦合系数ε′和更新函数参数μ′1;
第6步:由x′0和μ′计算与图像等大的OCML初始矩阵和结合ε′、μ′1驱动OCML时空混沌映射,迭代L′轮生成伪随机数序列 和 将其分别量化为 和
第7步:利用k′R、k′G和k′B对C′R、C′G和C′B进行解混淆操作,得到解混淆后的图像像素矩阵P′R、P′G和P′B;
第8步:对P′R、P′G和P′B进行逆向迷宫置换,从而得到解密后的RGB图像像素矩阵A′R、A′G和A′B,将其写为解密图像。
进一步,在第7步中利用k′R、k′G和k′B对C′R、C′G和C′B进行解混淆操作的具体计算公式如式(16)所示:
式(16)中和分别对应为对C′R、C′G和C′B解混淆后的像素矩阵P′R、P′G和P′B按行优先顺序扫描的第i个元素值,和分别对应为C′R、C′G和C′B按行优先顺序扫描的第i个元素值。
本发明同现有技术优点分析
①现有图像加密方法通常是对整幅图像施加同等强度的加密,而相对于整幅图像,图像的关键区域往往集中在图像上的某个区域;一些加密方法尽管可以对图像上选定的区域进行加密,但通常仅对图像上选定的关键区域进行加密,而对其他区域不加密,从而易于引发攻击。同现有方法不同,本发明所给出的加密方法是对图像上任意选定的关键区域和其他区域施加不同强度的加密,从而不仅可以对图像上选定的关键区域提供重点保护,而且又不易暴露图像上的敏感区域所在。
②现有的图像加密方法尽管可以对图像上选定的区域进行加密,但通常仅对图像上选定的规则区域进行加密,一般为正方形和矩形等规则区域,而对任意选定不规则区域的加密能力较少关注。同现有方法不同,本发明对用户选定的任意不规则封闭连通区域,都可对其进行高强度的加密,而对其他非关键区域则施加一般性的加密。
③传统的图像加密算法通常基于混沌系统,采用置换-混淆结构对图像加密。例如通过各种混沌系统产生伪随机数序列对图像进行置换和混淆加密。均是由特定的密钥直接驱动混沌系统来对图像进行置换和混淆加密。其加密环节仅由特定的密钥和初始参数产生,而与具体的待加密图像性质无关,从而不能抵抗已知/选择明文攻击。而同现有加密方法不同,本发明所给出的方法不仅与用户给定的密钥参数紧密相连,还与待加密图像的明文和选定的不规则封闭连通前景区域属性紧密相连,使得整个加密过程对用户的初始密钥和参数,以及待加密的明文图像以及不规则前景区域极度敏感,已知/选择明文攻击。
④在所提出的加密解密算法中,密钥由明文的SHA-1值(AR)SHA-1、(AG)SHA-1、(AB)SHA-1和链码CC及用户指定的密钥a、b以及随机数种子seed、OCML迭代轮数L所构成,同时加密和解密算法均可多轮使用,记其对应的加密轮数为W。AR、AG、AB三个矩阵对应为3个SHA-1值,密钥空间为2160×3;如果链码CC的长度范围为[200,500];对于用户指定的密钥a、b,若按10位精度十进制小数进行估算,则密钥空间为1020;若seed假定为[1,100]范围内的整数,L和W均假定为[1,10]范围内的整数,则总的密钥空间约为[1.29537×10369,1.09494×10640]之间,如此大的密钥空间当可抵抗蛮力破解。
附图说明
图1是加密流程图
图2是解密流程图
图3是待加密图像(photo)
图4是前景背景标识图像
图5是前景区域轮廓
图6是1次迷宫置换图像
图7是经过1轮加密的图像
图8是经过1轮解密的图像
图9是待加密图像的RGB矩阵的直方图
图10是一轮加密后图像的RGB矩阵的直方图
图11是密钥a微小改变后对1轮加密图像进行解密的结果
图12是密钥b微小改变后对1轮加密图像进行解密的结果
图13是密钥seed微小改变后对1轮加密图像进行解密的结果
图14是密钥L微小改变后对1轮加密图像进行解密的结果
图15是待加密图像R矩阵发生微小变化,R矩阵坐标(67,79)由242改为241,经过1轮加密后的密文图像
图16是图15与图7的差异图
图17是待加密图像G矩阵发生微小变化,G矩阵坐标(105,134)由165改为164,经过1轮加密后密文图像
图18是图17与图7的差异图
图19是待加密图像B矩阵发生微小变化,B矩阵坐标(76,143)由226改为225,经过1轮加密后的密文图像
图20是图19与图7的差异图
具体实施方式
以下结合附图具体实施例对本发明方法进行详细描述:
案例实施环境:JAVA jdk1.7.0_06,结合附图对本发明实施方式进行详细说明,但不局限于本实施案例,其中图1是加密流程图,图2是解密流程图。
迷宫置换具体实施步骤:
第1步:将原始矩阵M划分成前景区域SFore和其他区域SBack,其中矩阵M中加框元素表示前景区域SFore元素,除此以外为其他区域SBack元素,这里可通过2值矩阵S标记对应状态,其中元素0对应为M上的SFore前景区域元素,元素1对应为M上的SBack元素;
第2步:按照BFS迷宫算法,从坐标(3,4)元素值为76的节点出发,按以下步骤得到访问顺序序列:
首先,初始化已访问序列Sorder和队列Q为空,将(76,3,4)插入队列Q的队尾并将(76,3,4)加入到Sorder,标记(76,3,4)已访问;
若当前结点(76,3,4)的相邻结点集{(42,2,4),(11,3,5),(18,4,4),(0,3,3)}中存在未被访问的SFore范围内结点,将这些结点由系统产生随机数对当前节点的相邻节点的随机入队顺序进行随机扰动,插入队列队尾并标记为已访问,例如若当前节点76的相邻节点按照顺序:(11,3,5),(42,2,4),(18,4,4),(0,3,3)插入到队列队尾,从队头移除(76,3,4),将对应的(76,3,4)加入到Sorder;
当前新的队头节点(11,3,5)的相邻结点集中未访问的在SFore范围内结点只有(6,4,5),将队头结点(11,3,5)移除,对应的(11,3,5)加入到Sorder,将新的队头结点(42,2,4)作为当前结点坐标;
依此进行下去,直到SFore范围内所有结点都被标记为已访问,并输出Sorder:
第3步:将SFore中元素的数量记为Num,这里Num=13按照密钥seed′生成{0,1,…,12}上的随机数排列Smap=<9,7,0,3,12,10,8,4,1,5,2,11,6>;
第4步:将Sorder中像素值按照Smap中编号位置进行重排得到
第5步:将S′order中的像素值按照行优先顺序填充到SFore区域内,最终得到置换后矩阵M′:
加密方法具体实施步骤:
第1步:选取a=0.35467286739;b=0.58794613257;seed=7;L=1作为加密密钥,选取测试图片如图3所示,为160×228的彩色证件照图像photo,其对应的RGB矩阵的SHA-1值为(AR)SHA-1=0xd4707034a37efec8a7f48bd27428c336bf22e7a1、(AG)SHA-1=0x5a331f45892db269a1b77080d0a07c99a7dfba4e和(AB)SHA-1=0xc160d07d9bf2e05185f647dc7aa7d0c65bd afe35;
第2步:将原始图像划分为任意选定的封闭连通区域SFore,即前景区域和其它区域SBack,即背景区域,如图4所示,其中黑色为前景区域,白色为背景区域,对应的轮廓图如图5所示,计算SFore的轮廓链码,并用游程压缩存储作为密钥,其中:
第3步:计算出前景封闭连通区域轮廓链码CC的SHA-1值为(CC)SHA-1=0x8aa80943b6f6827e9c69d56d8d355f5aea49c939,将(AR)SHA-1、(AG)SHA-1和(AB)SHA-1按式(3)分别与(CC)SHA-1进行异或得到(CAR)SHA-1=0xc56879773513e74d840dc726f01d6567776b6e28、(CAG)SHA-1=0xd02b1f06af42a01c824e35e4c42525c8460f187c和(CAB)SHA-1=0xb0784937b404d224160f0227f522166703085c0c。
第4步:将(CAR)SHA-1、(CAG)SHA-1和(CAB)SHA-1通过式(4)排列成3×40维2维矩阵,如下所示:
对该矩阵进行列优先扫描,按式(5)可得到60个字节序列d=<di|i∈{0,1,…,59}>。例如对上面矩阵进行列优先扫描,依次将2个16进制数合并作为1个字节,得到长度为60的字节序列<cd,b5,00,62,…,cc>,输出得到:
d=<205,181,0,98,120,184,113,73,249,…,204>;
由用户给定的随机数种子seed生成{0,1,…,59}上的随机排列,假设对应的排列为<16,44,45,4,40,34,28,29,30,…,26>;
利用此随机序列将将序列d打乱,可得到新的字节序列e,如:
e=<98,94,2,98,195,103,8,252,96,…,248>;
第5步:由e和用户给定的密钥a、b、seed按式(6)、式(7)产生AR、AG和AB迷宫置换起点坐标(XR,YR)、(XG,YG)和(XB,YB)分别为(212,63)、(227,49)、(116,96);
第6步:由e和a、b按式(8)-式(11)生成初始值x0和μ以及OCML时空混沌映射中的耦合系数ε和更新函数参数μ1,例如:
x0=mod((asine36cose37+bsine38cose39+sine40cose41)·105,1)
=((0.35467286739×sin(86)cos(65)+0.58794613257×sin(215)cos(120)+sin(135)cos(97))·105)mod1
=0.811794381843356
同样可以计算得到μ=3.990110256723383,ε=0.5155296480692414,μ1=3.993271922375425;
第7步:将x0和μ按式(8)进行迭代,计算出与图像等大的OCML初始矩MR initial、MG initial和MB initial,如:
结合ε、μ1按式(9)启动OCML时空混沌映射,迭代L轮生成伪随机数序列 和
vR=<0.21428251775552423,0.6111374594137721,0.6413696790615346,…,0.5023569714514526>
vG=<0.6380905167143642,0.6100637456649272,0.5242996751179706,…,0.13399651930894008>
vB=<0.7638221303291337,0.7108310599388663,0.7734376875457509,…,0.14213136200221585>;
第8步:再将其分别量化为 和 例如k′R=<218,2,23,…,51>,kG=<207,17,15,…,9>和kB=<247,71,171,…,84>;
第9步:由(XR,YR)、(XG,YG)和(XB,YB)、kR、kG和kB对AR、AG和AB的SFore区域进行迷宫置换,得到置换后的矩阵PR、PG和PB,如图6所示:
第9.1步:以(XR,YR)、(XG,YG)和(XB,YB)分别为起点坐标,对AR、AG和AB的SFore区域按照迷宫访问顺序输出访问顺序序列;
第9.2步:统计SFore区域内像素个数为22630,由用户给定的随机数种子密钥seed=17,产生{0,1,,22629}之间的随机数,并保证每个随机数只出现一次,得到:
Smap=<19754,1316,3495,12518,7243,…,18467,10823>;
第9.3步:将中的像素值按Smap中的伪随机数排列顺序进行重排,产生重排后
第9.4步:将重排后的按行优先顺序依次填充到SFore区域,产生置换后的矩阵。
第10步:对PR、PG和PB,利用kR、kG和kB按行优先顺序按照式(15)进行像素值混淆加密,得到加密后图像的像素矩阵CR、CG和CB:
将CR、CG和CB其写为秘密图像C。
加密方法只执行一轮即可达到比较理想的加密效果,一轮加密后密图如图7所示。
解密方法是加密方法的逆过程,解密方法具体步骤:
第1步:输入待解密图像的像素矩阵C′R、C′G、C′B和图像解密密钥:a′=0.35467286739,b′=0.58794613257,seed′=7,OCML迭代次数L'=1,(AR)′SHA-1=0xd4707034a37efec8a7f48bd27428c336bf22e7a1、(AG)′SHA-1、=0x5a331f45892db269a1b77080d0a07c99a7dfba4e、(AB)′SHA-1=0xc160d07d9bf2e05185f647dc7aa7d0c65bd afe35,关键区域轮廓链码CC':
第2步:计算出前景封闭连通区域轮廓链码CC'的SHA-1值为(CC')SHA-1=0x8aa80943b6f6827e9c69d56d8d355f5aea49c939,将(AR)′SHA-1、(AG)′SHA-1、(AB)′SHA-1按式(3)分别与(CC')SHA-1进行异或得到(CAR)′SHA-1=0xc56879773513e74d840dc726f01d6567776b6e28、(CAG)′SHA-1=0xd02b1f06af42a01c824e35e4c42525c8460f187c和(CAB)′SHA-1=0xb0784937b404d224160f0227f522166703085c0c。
第3步:将(CAR)′SHA-1、(CAG)′SHA-1和(CAB)′SHA-1通过式(4)排列:
对该矩阵进行列优先扫描,按式(5)可得到60个字节序列d′=<d′i|i∈{0,1,…,59}>。例如对上面矩阵进行列优先扫描,依次将2个16进制数合并作为1个字节,得到长度为60的字节序列<cd,b5,00,62,…,cc>,输出得到
d′=<205,181,0,98,120,184,113,73,249,…,204>
由用户给定的随机数种子seed′生成{0,1,…,59}上的随机数排列,假设得到的随机数排列为<16,44,45,4,40,34,28,29,30,…,26>
利用此随机数序列将序列d′打乱,得到新的字节序列e′:
e′=<98,94,2,98,195,103,8,252,96,…,248>
第4步:由e′和用户给定的密钥a′、b′、seed′按式(6)、式(7)产生C′R、C′G、C′B迷宫置换起点坐标(X′R,Y′R)、(X′G,Y′G)和(X′B,Y′B)分别为(212,63)、(227,49)、(116,96);
第5步:由e′和a′、b′按式(8)-式(11)生成初始值x′0和μ′以及OCML时空混沌映射中的耦合系数ε′和更新函数参数μ′1,例如:
x′0=mod((asine36cose37+bsine38cose39+sine40cose41)·105,1)
=((0.35467286739×sin(86)cos(65)+0.58794613257×sin(215)cos(120)+sin(135)cos(97))·105)mod1
=0.811794381843356
同样可以计算得到μ′=3.990110256723383,ε′=0.5155296480692414,μ′1=3.993271922375425;
第6步:将x′0和μ′按式(8)进行迭代,计算出与图像等大的OCML初始矩阵和
结合ε′、μ1′按式(9)启动OCML时空混沌映射,迭代L'轮生成伪随机数序列 和
v′R=<0.21428251775552423,0.6111374594137721,0.6413696790615346,…,0.5023569714514526>
v′G=<0.6380905167143642,0.6100637456649272,0.5242996751179706,…,0.13399651930894008>
v′B=<0.7638221303291337,0.7108310599388663,0.7734376875457509,…,0.14213136200221585>
再将其分别量化为 和 例如k′R=<218,2,23,…,51>,kG=<207,17,15,…,9>和kB=<247,71,171,…,84>
第7步:利用k′R、k′G和k′B按行优先顺序对CR′、C′G和CB′进行解混淆操作,得到解混淆后的图像像素矩阵PR′、PG′和PB′;
第8步:由(X′R,Y′R)、(X′G,Y′G)和(X′B,Y′B)、kR、kG和kB对P′R、P′G和P′B的SFore区域进行解迷宫置换:
第8.1步:由轮廓链码密钥CC'恢复出分割前景区域S′Fore;
第8.2步:统计S′Fore中元素的数量为22630,按照密钥seed′生成{0,1,…,22629}上的随机数排列S′map:
S′map=<19754,1316,3495,12518,7243,…,18467,10823>;
第8.3步:将S′Fore中元素按行优先顺序扫描后得到:
将按照伪随机数序列S′map中编号位置进行重排从而解密伪随机序列重排步骤,得到BFS迷宫访问序列
以迷宫起点坐标(X′R,Y′R)、(X′G,Y′G)和(X′B,Y′B)以及k′R、k′G和k′B,进行迷宫置换,记录下迷宫访问顺序的坐标序列:
将按照迷宫访问顺序记录的坐标序列一一对应恢复迷宫置换步骤,得到解密后的RGB图像像素矩阵A′R、A′G和A′B,写为解密图像A′。图8为经过1轮解密的结果。
为验证所提出的图像加密方法的加密性能,对密图的直方图均衡性,水平、垂直和对角相关性,密钥敏感性和明文敏感性分别进行了验证。
图9、图10分别是待加密图像和经过1轮加密图像对应的直方图。
从图10可看出,加密后的图像具有较好的直方图均衡性,在一轮加密下,密文图像即趋近于均匀分布。
图11~图14是密钥微小改变后对1轮加密图像进行解密结果。在测试中,每次保持用户密钥a、b、seed、L中的3个不变,仅对剩余的一个密钥进行微小修改,依次为,将密钥a由0.35467286739转变为0.35467286738,解密如图11;将密钥b由0.58794613257转变为0.58794613256,解密如图12;将密钥seed由7转变为8,解密如图13;将密钥L由1转变为2,解密如图14;
从图11~图14的实验结果可看出,所提出的图像加密方法对密钥极度敏感,任何1个密钥发生微小变化,都无法对原始图像进行解密,且不会暴露任何信息。
图15~图20,是待加密图像RGB矩阵发生微小变化后,经过1轮加密后密文图像以及与原密文图像的差异图,其中:①R矩阵坐标(67,79)由242改为241,密图如图15,与原密图差异图为图16;②G矩阵坐标(105,134)由165改为164,密图如图17,与原密图差异图为图18;③B矩阵坐标(76,143)由226改为225,密图如图19,与原密图差异图为图20。
从图15~图20可看出,所提出的图像加密方法对明文极度敏感,具有较好的加密性能,能抵抗选择明文攻击。
Claims (9)
1.一种基于前景和背景分离的图像加密方法,其特征在于包括以下步骤:
第1步:将分辨率为M×N待加密图像A划分为任意选定的封闭连通区域SFore和其它区域SBack,即前景区域和背景区域;
第2步:提取SFore区域的轮廓链码CC,将其作为密钥存储;
第3步:计算出待加密图像A的RGB图像像素矩阵AR、AG、AB和轮廓链码CC对应的160位SHA-1值(AR)SHA-1、(AG)SHA-1、(AB)SHA-1和(CC)SHA-1;
第4步:利用(AR)SHA-1、(AG)SHA-1、(AB)SHA-1和(CC)SHA-1计算出图像像素矩阵和轮廓链码的混合SHA-1值(CAR)SHA-1、(CAG)SHA-1和(CAB)SHA-1;
第5步:将(CAR)SHA-1、(CAG)SHA-1和(CAB)SHA-1组成3×40的2维矩阵,对矩阵进行列优先扫描,依次将2个16进制数合并作为1个字节,得到长度为60的字节序列d=di|i∈{0,1,…,59},由用户给定的随机数种子seed生成{0,1,…,59}上的随机排列,将序列d打乱,得到新的字节序列e;
第6步:由序列e和用户给定的密钥a、b、seed随机产生像素矩阵AR、AG和AB的起点坐标(XR,YR)、(XG,YG)和(XB,YB);
第7步:由e和a、b生成初始值x0和μ以及OCML时空混沌映射中的耦合系数ε和更新函数参数μ1;
第8步:由x0和μ计算与图像等大的OCML初始矩阵和结合ε、μ1驱动OCML时空混沌映射,迭代L轮生成伪随机数序列 和 将其分别量化为 和
第9步:由(XR,YR)、(XG,YG)、(XB,YB)、kR、kG和kB对AR、AG和AB的SFore区域进行迷宫置换,得到置换后的矩阵PR、PG和PB;
第10步:对PR、PG和PB,利用kR、kG和kB进行像素值混淆加密,得到加密后图像的像素矩阵CR、CG和CB,将其写为秘密图像C。
2.如权利要求1所述的一种基于前景和背景分离的图像加密方法,其特征在于:在第4步中计算出图像像素矩阵和轮廓链码的混合SHA-1值(CAR)SHA-1、(CAG)SHA-1和(CAB)SHA-1的具体方法如式(2)所示:
在第5步中将(CAR)SHA-1、(CAG)SHA-1和(CAB)SHA-1组成3×40维2维矩阵的具体方法为:将(CAR)SHA-1、(CAG)SHA-1和(CAB)SHA-1按式(3)视为由40个16进制数构成的序列:
(CAR)SHA-1=<ri|i∈[0,39]>
(CAG)SHA-1=<gi|i∈[0,39]> (3),
(CAB)SHA-1=<bi|i∈[0,39]>
然后将(CAR)SHA-1、(CAG)SHA-1和(CAB)SHA-1转换为3×40维2维矩阵如式(4)所示:
对式(4)进行列优先扫描,按式(5)得到60个字节:
d=<di|d0=r0g0,d1=b0r1,…,d59=g39b39> (5),
由用户给定的随机数种子seed生成{0,1,…,59}上的随机排列,将序列d打乱,得到新的字节序列e。
3.如权利要求1所述的一种基于前景和背景分离的图像加密方法,其特征在于:在第6步中:迷宫置换起点的X坐标:XR、XG和XB坐标按式(6)迭代筛选产生,Y坐标:YR、YG和YB坐标按式(7)迭代筛选产生:
X=mod((asineacoseb+bsineccosed+sineecosef)·1012,M) (6)
Y=mod((asinegcoseh+bsinejcosek+sinelcosem)·1012,N) (7);
式(6)和式(7)中ea,eb,ec,ed,ee,ef,eg,eh,ej,ek,el,em为每次迭代过程中从e中伪随机选择出的元素,这里需对式(6)和式(7)进行多次迭代,直至(XR,YR),(XG,YG),(XB,YB)∈SFore。
4.如权利要求1所述的一种基于前景和背景分离的图像加密方法,其特征在于:在第7步中由e、a和b生成初始值x0和μ以及OCML时空混沌映射中的耦合系数ε和更新函数参数μ1的具体方法如式(8)~式(11)所示:
x0=mod((asine36cose37+bsine38cose39+sine40cose41)·105,1) (8)
μ=3.99+mod((asine42cose43+bsine44cose45+sine46cose47)·105,1)·0.01 (9)
μ1=3.99+mod((asine48cose49+bsine50cose51+sine52cose53)·105,1)·0.01 (10)
ε=0.5+mod((asine54cose55+bsine56cose57+sine58cose59)·105,1)·0.1 (11)
式(8)~式(11)中,e36~e59均为e中的元素。
5.如权利要求1所述的一种基于前景和背景分离的图像加密方法,其特征在于:在第8步中,由x0和μ计算与图像等大的OCML初始矩阵和的具体方法为将x0和μ代入式(12)迭代产生与图像等大的OCML初始矩阵和
xn+1=μxn(1-xn) (12);
结合ε、μ1驱动OCML时空混沌映射的计算公式如式(13)所示:
xt+1(i)=(1-ε)·f(xt(i))+ε·f(xt(i-1)) (13),
式(13)中的函数f()的计算函数取式(12);
由vR、vG和vB量化为kR、kG和kB的具体方法如式(14)所示:
6.如权利要求1所述的一种基于前景和背景分离的图像加密方法,其特征在于:在第9步中由(XR,YR)、(XG,YG)、(XB,YB)、kR、kG和kB对AR、AG和AB的SFore区域进行迷宫置换,得到置换后的矩阵PR、PG和PB,其迷宫置换的具体方法为:
第9.1步:从指定的迷宫起始坐标(x,y)∈SFore出发,按下列方法输出像素已访问序列Sorder:
第9.1.1步:初始化已访问序列Sorder和队列Q为空,,将(x,y)插入队列Q的队尾并将(Px,y,x,y)加入到Sorder,标记(x,y)已访问;
第9.1.2步:若当前结点(x,y)的相邻结点集{(x-1,y),(x,y-1),(x+1,y),(x,y+1)}中存在未被访问的SFore范围内结点坐标,将这些结点坐标随机插入队列的队尾并标记为已访问,从队头移除(x,y),将对应的(Px,y,x,y)加入到Sorder;
第9.1.3步:若(x,y)的相邻结点集中不存在未访问SFore范围内结点坐标,将队头结点移除,对应的(Px,y,x,y)加入到Sorder,将新的队头结点坐标作为当前结点坐标;
第9.1.4步:反复执行第9.1.2步到第9.1.3步,直到SFore范围内所有结点都被标记为已访问,并输出Sorder;
第9.2步:将SFore中元素的数量记为Num,生成{0,1,…,Num-1}上的随机数排列Smap;
第9.3步:将Sorder中的像素值按Smap中的伪随机数排列顺序进行重排,产生重排后S′order,然后将其按行优先顺序依次填充到SFore区域,产生置换后的矩阵;
第9.4步:将(XR,YR)、(XG,YG)和(XB,YB)依次作为迷宫起始坐标,得到3个置换后的矩阵PR、PG和PB。
7.如权利要求1所述的一种基于前景和背景分离的图像加密方法,其特征在于:第10步对PR、PG和PB,利用kR、kG和kB进行像素值混淆加密得到加密后图像的像素矩阵CR、CG和CB的具体方法如式(15)所示:
式(15)中和分别对应为PR、PG和PB按行优先顺序扫描的第i个元素值,和分别对应为CR、CG和CB按行优先顺序扫描的第i个元素值。
8.与权利要求1加密方法相对应的基于前景和背景分离的图像解密方法,其特征在于,其特征在于包括以下步骤:
第1步:输入待解密图像的像素矩阵C′R、C′G和C′B和图像解密密钥:160位SHA-1值(AR)′SHA-1、(AG)′SHA-1、(AB)′SHA-1和CC',用户给定的密钥a′、b′以及随机数种子seed′,OCML迭代轮数L',计算出(CC')SHA-1;
第2步:利用(AR)′SHA-1、(AG)′SHA-1、(AB)′SHA-1和(CC)′SHA-1计算出图像像素矩阵和轮廓链码的混合SHA-1值(CAR)′SHA-1、(CAG)′SHA-1和(CAB)′SHA-1;
第3步:将(CAR)′SHA-1、(CAG)′SHA-1和(CAB)′SHA-1组成3×40的2维矩阵,对矩阵进行列优先扫描,依次将2个16进制数合并作为1个字节,得到长度为60的字节序列d′=d′i|i∈{0,1,…,59},由用户给定的随机数种子seed′生成{0,1,…,59}上的随机排列,将序列d′打乱,得到新的字节序列e′;
第4步:由e′、seed′和用户给定的密钥a′、b′随机产生C′R、C′G和C′B的起点坐标(X′R,Y′R)、(X′G,Y′G)和(X′B,Y′B);
第5步:由e′和a′、b′生成初始值x′0和μ′以及OCML时空混沌映射中的耦合系数ε′和更新函数参数μ′1;
第6步:由x0′和μ′计算与图像等大的OCML初始矩阵和结合ε′、μ1′驱动OCML时空混沌映射,迭代L′轮生成伪随机数序列 和 将其分别量化为 和
第7步:利用k′R、k′G和k′B对C′R、C′G和C′B进行解混淆操作,得到解混淆后的图像像素矩阵P′R、P′G和P′B;
第8步:对P′R、P′G和P′B进行逆向迷宫置换,从而得到解密后的RGB图像像素矩阵A′R、A′G和A′B,将其写为解密图像。
9.根据权利要求8所述的一种基于前景和背景分离的图像解密方法,其特征在于:在第7步中利用k′R、k′G和k′B对C′R、C′G和C′B进行解混淆操作的具体计算公式如式(16)所示:
式(16)中和分别对应为对C′R、C′G和C′B解混淆后的像素矩阵P′R、P′G和P′B按行优先顺序扫描的第i个元素值,和分别对应为C′R、C′G和C′B按行优先顺序扫描的第i个元素值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510233228.XA CN104851070B (zh) | 2015-05-08 | 2015-05-08 | 一种基于前景和背景分离的图像加密和解密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510233228.XA CN104851070B (zh) | 2015-05-08 | 2015-05-08 | 一种基于前景和背景分离的图像加密和解密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104851070A true CN104851070A (zh) | 2015-08-19 |
CN104851070B CN104851070B (zh) | 2018-06-08 |
Family
ID=53850699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510233228.XA Active CN104851070B (zh) | 2015-05-08 | 2015-05-08 | 一种基于前景和背景分离的图像加密和解密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104851070B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105761198A (zh) * | 2016-02-24 | 2016-07-13 | 陕西师范大学 | 一种动态概率和空频域复合的图像选择性加密和解密方法 |
CN107092842A (zh) * | 2017-04-14 | 2017-08-25 | 苏州三星电子电脑有限公司 | 保密显示方法与保密显示装置 |
CN107958205A (zh) * | 2017-10-31 | 2018-04-24 | 北京艾克利特光电科技有限公司 | 射击训练智能管理系统 |
CN108182220A (zh) * | 2017-12-25 | 2018-06-19 | 重庆邮电大学 | 云服务器中基于用户隐私保护的图像检索方法 |
CN110069241A (zh) * | 2019-03-27 | 2019-07-30 | 阿里巴巴集团控股有限公司 | 伪随机数的获取方法、装置、客户端设备和服务器 |
CN111159737A (zh) * | 2019-12-26 | 2020-05-15 | 广东电网有限责任公司 | 一种基于sgx的图像数据保护方法、装置、设备和存储介质 |
CN111832052A (zh) * | 2020-07-13 | 2020-10-27 | 江西财经大学 | 一种基于显著性检测的非对等图像加密方法 |
CN112699400A (zh) * | 2021-03-24 | 2021-04-23 | 北京惠风智慧科技有限公司 | 一种图像信息安全处理方法及装置 |
CN114143410A (zh) * | 2021-11-16 | 2022-03-04 | 国网江苏省电力有限公司信息通信分公司 | 一种基于物联网的电力监控图像加密传输方法 |
CN115664639B (zh) * | 2022-12-09 | 2023-03-03 | 深圳迅策科技有限公司 | 一种金融资产交易数据传输加密方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982499A (zh) * | 2012-09-28 | 2013-03-20 | 河南大学 | 基于多分数阶混沌系统的彩色图像加密和解密方法 |
-
2015
- 2015-05-08 CN CN201510233228.XA patent/CN104851070B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982499A (zh) * | 2012-09-28 | 2013-03-20 | 河南大学 | 基于多分数阶混沌系统的彩色图像加密和解密方法 |
Non-Patent Citations (4)
Title |
---|
XUANPING ZHANG ET AL.: "An image encryption scheme based on constructing large permutation with chaotic sequence", 《COMPUTERS AND ELECTRICAL ENGINEERING》 * |
杨璐 等: "基于迷宫置换和Logistic混沌映射的图像加密算法", 《计算机应用》 * |
邵利平 等: "一种基于图像置乱变换的空域图像水印算法", 《计算机工程》 * |
郭毅 等: "基于约瑟夫和Henon映射的比特位图像加密算法", 《计算机应用研究》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105761198B (zh) * | 2016-02-24 | 2019-03-05 | 陕西师范大学 | 一种动态概率和空频域复合的图像选择性加密和解密方法 |
CN105761198A (zh) * | 2016-02-24 | 2016-07-13 | 陕西师范大学 | 一种动态概率和空频域复合的图像选择性加密和解密方法 |
CN107092842A (zh) * | 2017-04-14 | 2017-08-25 | 苏州三星电子电脑有限公司 | 保密显示方法与保密显示装置 |
CN107958205A (zh) * | 2017-10-31 | 2018-04-24 | 北京艾克利特光电科技有限公司 | 射击训练智能管理系统 |
CN107958205B (zh) * | 2017-10-31 | 2021-11-16 | 贵州景浩科技有限公司 | 射击训练智能管理系统 |
CN108182220A (zh) * | 2017-12-25 | 2018-06-19 | 重庆邮电大学 | 云服务器中基于用户隐私保护的图像检索方法 |
CN110069241B (zh) * | 2019-03-27 | 2023-03-03 | 创新先进技术有限公司 | 伪随机数的获取方法、装置、客户端设备和服务器 |
CN110069241A (zh) * | 2019-03-27 | 2019-07-30 | 阿里巴巴集团控股有限公司 | 伪随机数的获取方法、装置、客户端设备和服务器 |
CN111159737A (zh) * | 2019-12-26 | 2020-05-15 | 广东电网有限责任公司 | 一种基于sgx的图像数据保护方法、装置、设备和存储介质 |
CN111832052A (zh) * | 2020-07-13 | 2020-10-27 | 江西财经大学 | 一种基于显著性检测的非对等图像加密方法 |
CN111832052B (zh) * | 2020-07-13 | 2024-02-20 | 江西财经大学 | 一种基于显著性检测的非对等图像加密方法 |
CN112699400A (zh) * | 2021-03-24 | 2021-04-23 | 北京惠风智慧科技有限公司 | 一种图像信息安全处理方法及装置 |
CN112699400B (zh) * | 2021-03-24 | 2021-06-25 | 北京惠风智慧科技有限公司 | 一种图像信息安全处理方法及装置 |
CN114143410A (zh) * | 2021-11-16 | 2022-03-04 | 国网江苏省电力有限公司信息通信分公司 | 一种基于物联网的电力监控图像加密传输方法 |
CN114143410B (zh) * | 2021-11-16 | 2023-09-01 | 国网江苏省电力有限公司信息通信分公司 | 一种基于物联网的电力监控图像加密传输方法 |
CN115664639B (zh) * | 2022-12-09 | 2023-03-03 | 深圳迅策科技有限公司 | 一种金融资产交易数据传输加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104851070B (zh) | 2018-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104851070A (zh) | 一种基于前景和背景分离的图像加密和解密方法 | |
CN101739695B (zh) | 一种基于三维Arnold映射的图像分组加密方法 | |
Pan et al. | Research on digital image encryption algorithm based on double logistic chaotic map | |
CN102982499B (zh) | 基于多分数阶混沌系统的彩色图像加密和解密方法 | |
Yang et al. | Novel image encryption/decryption based on quantum Fourier transform and double phase encoding | |
Li et al. | Chaotic image encryption using pseudo-random masks and pixel mapping | |
CN103248854B (zh) | 基于均匀置乱和混沌映射的医学图像加密方法 | |
CN106301760B (zh) | 一种基于混沌映射的3d点云模型加密方法 | |
CN110008745B (zh) | 一种加密方法、计算机设备和计算机存储介质 | |
CN107657579A (zh) | 基于dna编码和混沌的图像加密方法 | |
Jolfaei et al. | A 3D object encryption scheme which maintains dimensional and spatial stability | |
CN103491279A (zh) | 超混沌Lorenz系统的4-邻域异或图像加密方法 | |
Wang et al. | Cross-plane multi-image encryption using chaos and blurred pixels | |
CN110148189A (zh) | 一种基于dna序列和混沌系统的光场图像加密方法 | |
Alhassan et al. | Enhancement of the Security of a Digital Image using the Moduli Set | |
CN105975869B (zh) | 基于显著性区域的自适应选择加密方法 | |
CN107292805A (zh) | 一种基于多参数分数阶离散Tchebichef变换的图像加密方法 | |
Wen et al. | Triple-image bit-level encryption algorithm based on double cross 2D hyperchaotic map | |
Liu et al. | Image encryption via complementary embedding algorithm and new spatiotemporal chaotic system | |
Ganesan et al. | Image encryption using eight dimensional chaotic cat map | |
CN105117653B (zh) | 一种近红外光谱数据加密方法 | |
CN108174053B (zh) | 一种有向面积和扑克牌映射的解密区域限定图像加密方法 | |
Fan et al. | User‐friendly XOR‐based visual secret sharing by random grid | |
CN111131657B (zh) | 基于自验证矩阵的混沌医学图像防篡改加密方法 | |
CN109347833B (zh) | 基于属性加密的用于机器学习环境下的访问控制方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |