法律状态公告日
法律状态信息
法律状态
2019-11-12
授权
授权
2019-02-26
实质审查的生效 IPC(主分类):H04N1/32 申请日:20180817
实质审查的生效
2019-01-25
公开
公开
技术领域
本发明涉及一种信息加密技术,特别是涉及一种图像加密方法。
背景技术
在军事系统、电子政务、金融系统以及日常生活等领域,每天都会产生大量的图像。为保护这些图像信息内容不被窃取,图像加密技术引起了学术界和工业界的广泛关注。研究者已提出多种图像加密方法。然而,这些方法有的已被破译,有的安全性弱,有的效率低,有的密钥传递和管理困难等问题,难以令人满意。
为提高图像加密的安全性和效率,保证图像的安全高效传输,结合椭圆曲线密码体制(Elliptic Curve Cryptosystem,ECC)和混沌理论,设计了一种基于ECC和混沌的非对称图像加密方法。该方法利用了ECC的非对称特性和高安全性,以及混沌的随机性和复杂性,有效地保护了交互图像网络传输和存储的安全性。
发明内容
本发明的目的:针对现有图像加密方法安全性弱或加密效率低等问题,提出一种基于ECC和混沌的非对称图像加密方法。
本发明的技术方案:为实现上述发明目的,采用的技术方案为基于ECC和混沌的非对称图像加密方法,令发送方为Alice,接收方为Bob,Bob密钥产生步骤如下:
步骤K1:选择一条密钥长度为l的椭圆曲线E(Fp),其参数为a,b和p,选择椭圆曲线上的点N作为基点,其周期为T;
步骤K2:随机从区间[1,>T-1]中选择一个整数d作为Bob的私钥,计算Q=dN的结果作为Bob的公钥;
步骤K3:公布他的公钥Q和选择的椭圆曲线。
基于ECC和混沌的非对称图像加密方法,Alice的加密步骤如下:
步骤E1:令明文图像I大小为m×n,采用哈希算法SHA-256得I对应的256位哈希值K=k1,k2,>ki,>k32,其中ki为8位,计算公式(1)所示的分段线性混沌映射(PiecewiseLinear>x0=(k1⊕k2⊕…⊕k16)/255和参数q=(k17⊕k18⊕…⊕k32)/510,
,(1)
迭代公式(1)m×n次,产生一个混沌序列X={xi}mn;
步骤E2:设计算机的精度为10-16,Alice计算
yi=mod(xi×1016,>
其中,xi为X的第i个元素,所有的yi构成一个新的整数混沌序列Y={yi}mn;按照元素位置,将Y转换为一幅大小为m×n混沌图像C;
步骤E3:对于灰色图像而言,像素值通常用8位二进制来表示;将l/8个像素值合并成一个大整数,若l=512位,可合并64个像素为一个大整数,第一个大整数为:
b1=I1,1I1,2…I1,64,(3)
其中,I1,1I1,2…I1,64为像素值的二进制表示;从而,可从明文图像I得到(m×n)/64个大整数{b1,>2,>>(m×n)/64};类似地,可从混沌图像C得到(m×n)/64个混沌大整数{r1,>2,…,>(m×n)/64};
步骤E4:计算:C1(x1,>y1)=uN和C2(x2,>y2)=uQ,其中u为从区间[1,>T-1]中随机选择一个大整数;计算:
c1=[(b1×x2)mod>]⊕r1,(4)
ci=bi⊕c1⊕ri,i=2,>m×n)/64,(5)
其中,ci,i=1, 2,>m×n)/64为加密大整数;Alice按如下方法将PLCM混沌的初始值x0和参数p转化成一个大整数t1,
t1=x0×1032+p×1016;(6)
计算:
e2=(t1×y2) mod>p>
其中,e2为t1对应的密文;
步骤E5:将每个加密大整数ci,i=1, 2,>m×n)/64分割成l/8=64等份,并将它们转化成像素值{pi1,>pi2,>pi64};按照像素位置,将这些像素值转化为一幅大小为m×n的加密图像E;
步骤E6:发送E,C1和e2给Bob。
基于ECC和混沌的非对称图像加密方法,Bob的解密步骤如下:
步骤D1:利用Bob的私钥d,计算:C2(x2,>y2)=dC1,t2=(e2×y-12)>>,其中y-12为y2的逆元,满足(y2×y-12) mod>p=1;计算:q=t2/1016-floor(t2/1016),x0=(t2-q×1016)/1032,其中floor(>m×n次,可产生一个混沌序列X={xi}mn;
步骤D2:利用公式(2),可得到一个整数混沌序列Y={yi}mn;按照元素位置,可将Y转换为一幅大小为m×n的混沌图像C;
步骤D3:将l/8个像素值转化成一个长度为l的大整数,从而可将加密图像E转化为(m×n)/64个加密大整数{c1,>2,>>(m×n)/64},也可将混沌图像C转化为(m×n)/64个混沌大整数{r1,>2,>>(m×n)/64};
步骤D4:计算:
d1=[(c1⊕r1)×x-12]mod>p,(8)
di=ci⊕c1⊕ri,i=2,>m×n)/64,(9)
其中,di,i=1, 2,>m×n)/64为解密大整数,x-12为x2的逆元;
步骤D5:将加密的大整数di,i=1, 2,>m×n)/64分割成l/8=64等份,并将它们转化成像素值;按照像素位置,将这些像素值转化为一幅大小为m×n的解密图像D。
有益效果:本发明针对现有的图像加密方法安全性差或加密效率低等缺点,提出了一种基于ECC和混沌的非对称图像加密方法。主要贡献有:(1)该方法利用了ECC的高安全性,有效地提高了加密方法的安全性;(2)该方法利用了ECC的非对称特性,有效地解决了密钥传递和管理困难的问题;(3)该方法利用了混沌的随机性和复杂性,提高了图像的加密效果;(4)该方法以大整数为加密对象,减少了加密次数,提高了加密效率。因此,提出的图像加密方法具有高效、安全和加密效果良好的特征,可有效地保护了交互图像网络传输和存储的安全性。
附图说明
图1:基于ECC和混沌的非对称图像加密方法的加密流程图;
图2:基于ECC和混沌的非对称图像加密方法的解密流程图;
图3:原始图像;
图4:混沌图像;
图5:加密图像。
具体实施方式
下面结合具体附图和实例对本发明的实施过程进一步详细说明。
图1 是本方法的加密流程图,图2 是本方法的解密流程图。
采用的编程软件为MyEclipse 2015 CI,选取图3所示的一幅大小为512×512的Lena图像作为原始交互图像。采用本方法,Bob密钥产生步骤如下:
步骤K1:选择一条密钥长度为l=512位的椭圆曲线,其参数为a=62948605579730632276664>b=3245789008328967059274849>p=89489622076502325516566028>N=(67920591>T=8948962207650232551656602815159153422162609644098354511344597187200057010413418528378981730643524959857451398370029280583094215613882043973354392115544169。
步骤K2:Bob随机从区间[1,>T-1]中选择一个整数d=195336213603604152096989093>Q=dN=(267676845>
步骤K3:发布公钥Q和选择的椭圆曲线。
采用本方法,Alice对原始交互图像加密的详细过程描述如下:
步骤E1:采用哈希算法SHA-256得原始图像对应的256位的哈希值K=9ae48c65bb78a5c6d0>x0=0.447058823529412>q=0.352941176470588,迭代公式(1)512×512次,产生一个混沌序列X={xi}262144。
步骤E2:按照公式(2)计算得到一个整数混沌序列Y={yi}262144;按照元素位置,将Y转换为一幅大小为512×512的混沌图像C,如图4所示。
步骤E3:按照公式(3),将每64个像素合并成一个大整数;可从明文图像得到4096个大整数{b1,>2,>>4096};类似地,也可从混沌图像C得到4096个大整数{r1,>2,>r4096}。
步骤E4:随机选取u=2561327516017725132260502740968651379449854429879179020098896525157759649696160690072530610929043049391824355949228616976929710425474617471582667814911026,计算:C1(x1,>y1)=uN,C2(x2,>y2)=uQ;按照公式(4)和(5),对明文对应大数据进行加密操作,得加密大数据ci,i=1,>x0和参数p转化成一个大整数t1=447058823529412352941176470588。
步骤E5:将加密的大整数ci,i=1,>l/8=64等份,并将它们转化成像素值{pi1,>pi2,>pi64};按照像素位置,将这些像素值转化为一幅大小为512×512的加密图像E,如图5所示。
步骤E6:发送E,C1和e2给Bob。
采用本方法,Bob对加密图像的详细解密过程描述如下:
步骤D1:利用Bob的私钥d=195336213603604152096989093281052901489014454978653357>C2(x2,>y2)=dC1,t2=(e2×y-12)>>;计算PLCM混沌映射的初始值x0=0.447058823529412>q=0.352941176470588;迭代公式(1)512×512次,产生一个混沌序列X={xi}262144。
步骤D2:利用公式(2),可得到一个整数混沌序列Y={yi}262144;按照元素位置,将Y转换为一幅大小为512×512的混沌图像C,如图4所示。
步骤D3:将l/8=64个像素值转化成一个长度为l=512的大整数,从而可将加密图像E转化为4096个加密大整数集{c1,>2,>>4096},也可将混沌图像C转化为4096个混沌大整数集{r1,>2,>>4096}。
步骤D4:按照公式(8)和(9),对加密大整数集{c1,>2,>>4096}进行解密操作,可得解密大整数集{d1,>2,>>4096}。
步骤D5:将加密大整数di,i=1,>l/8=64等份,并将它们转化成像素值;按照像素位置,将这些像素值转化为一幅大小为512×512的解密图像D,同图3所示。
机译: 基于混沌映射的数字混沌加密方法
机译: 基于混沌映射的数字混沌加密方法
机译: 基于混沌映射的数字混沌加密方法