基于ECC和混沌的非对称图像加密方法与流程

文档序号:19105727发布日期:2019-11-12 22:39阅读:695来源:国知局
基于ECC和混沌的非对称图像加密方法与流程

本发明涉及一种信息加密技术,特别是涉及一种图像加密方法。



背景技术:

在军事系统、电子政务、金融系统以及日常生活等领域,每天都会产生大量的图像。为保护这些图像信息内容不被窃取,图像加密技术引起了学术界和工业界的广泛关注。研究者已提出多种图像加密方法。然而,这些方法有的已被破译,有的安全性弱,有的效率低,有的密钥传递和管理困难等问题,难以令人满意。

为提高图像加密的安全性和效率,保证图像的安全高效传输,结合椭圆曲线密码体制(Elliptic Curve Cryptosystem,ECC)和混沌理论,设计了一种基于ECC和混沌的非对称图像加密方法。该方法利用了ECC的非对称特性和高安全性,以及混沌的随机性和复杂性,有效地保护了交互图像网络传输和存储的安全性。



技术实现要素:

本发明的目的:针对现有图像加密方法安全性弱或加密效率低等问题,提出一种基于ECC和混沌的非对称图像加密方法。

本发明的技术方案:为实现上述发明目的,采用的技术方案为基于ECC和混沌的非对称图像加密方法,令发送方为Alice,接收方为Bob,Bob密钥产生步骤如下:

步骤K1:选择一条密钥长度为l的椭圆曲线E(Fp),其参数为abp,选择椭圆曲线上的点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)所示的分段线性混沌映射(Piecewise Linear Chaotic Map,PLCM)的初始值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, 256), (2)

其中,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, b2, …, b(m×n)/64};类似地,可从混沌图像C得到(m×n)/64个混沌大整数{r1, r2, …, r(m×n)/64};

步骤E4:计算:C1(x1, y1)=uNC2(x2, y2)=uQ,其中u为从区间[1, T-1]中随机选择一个大整数;计算:

c1=[(bx2)mod p]⊕r1, (4)

ci=bi⊕c1⊕ri,i=2, 3, …, (m×n)/64, (5)

其中,ci,i=1, 2, 3, …, (m×n)/64为加密大整数;Alice按如下方法将PLCM混沌的初始值x0和参数p转化成一个大整数t1,

t1=x0×1032+p×1016; (6)

计算:

e2=(ty2) mod p , (7)

其中,e2为t1对应的密文;

步骤E5:将每个加密大整数ci,i=1, 2, 3, …, (m×n)/64分割成l/8=64等份,并将它们转化成像素值{pi1, pi2, …, pi64};按照像素位置,将这些像素值转化为一幅大小为m×n的加密图像E

步骤E6:发送EC1和e2给Bob。

基于ECC和混沌的非对称图像加密方法,Bob的解密步骤如下:

步骤D1:利用Bob的私钥d,计算:C2(x2, y2)=dC1,t2=(ey-12) mod p,其中y-12为y2的逆元,满足(yy-12) mod p=1;计算:q=t2/1016-floor(t2/1016),x0=(t2-q×1016)/1032,其中floor( )为取整函数;迭代公式(1)m×n次,可产生一个混沌序列X={xi}mn

步骤D2:利用公式(2),可得到一个整数混沌序列Y={yi}mn;按照元素位置,可将Y转换为一幅大小为m×n的混沌图像C

步骤D3:将l/8个像素值转化成一个长度为l的大整数,从而可将加密图像E转化为(m×n)/64个加密大整数{c1, c2, …, c(m×n)/64},也可将混沌图像C转化为(m×n)/64个混沌大整数{r1, r2, …, r(m×n)/64};

步骤D4:计算:

d1=[(c1⊕r1)×x-12]mod p, (8)

di=ci⊕c1⊕ri,i=2, 3, …, (m×n)/64, (9)

其中,di,i=1, 2, 3, …, (m×n)/64为解密大整数,x-12为x2的逆元;

步骤D5:将加密的大整数di,i=1, 2, 3, …, (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 21306476379324074715770622746227136910445450301914281276098027990968407983962691151853678563877834221834027439718238065725844264138,b=3245789008328967059274849 584342077916531909009637501918328323668736179176583263496463525128488282611559800773506973771797764811498834995234341530862286627和p=89489622076502325516566028 15159153422162609644098354511344597187200057010413552439917934304191956942765446530386427345937963894309923928536070534607816947,选择椭圆曲线上的点N=(67920591 40424575174435640431269195087843153390102521881468023012732047482579853077545647446272866794936371522410774532686582484617946013928874296844351522, 6592244555240 112873324748381429610341312712940326266331327445066687010545415256461097707483288650216992613090185042957716318301180159234788504307628509330)作为基点,其周期为T=8948962207650232551656602815159153422162609644098354511344597187200057010413418528378981730643524959857451398370029280583094215613882043973354392115544169。

步骤K2:Bob随机从区间[1, T-1]中选择一个整数d=195336213603604152096989093 2810529014890144549786533577724175709447908950389989732125499873509607620241560401056087989094206465431983075623592397662843361作为其私钥,计算Q=dN=(267676845 3394755195814069676970956501372728066923265402024558860509194513066891532140921922731691704633350939685081222771090799317499663955468329933230491, 11315971617475 9703529197162869515581941043314966354968853690081507355838346383364734457813730094980331387748162628881249011929637206315631561660967133372)的结果作为其公钥。

步骤K3:发布公钥Q和选择的椭圆曲线。

采用本方法,Alice对原始交互图像加密的详细过程描述如下:

步骤E1:采用哈希算法SHA-256得原始图像对应的256位的哈希值K=9ae48c65bb78a5c6d0 d9496f9364f36efc2bd2f2a3f521763e16edc434977e9e(十六进制表示),计算公式(1)所示的PLCM混沌映射的初始值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, b2, …, b4096};类似地,也可从混沌图像C得到4096个大整数{r1, r2, …,r4096}。

步骤E4:随机选取u=2561327516017725132260502740968651379449854429879179 020098896525157759649696160690072530610929043049391824355949228616976929710425474617471582667814911026,计算:C1(x1, y1)=uNC2(x2, y2)=uQ;按照公式(4)和(5),对明文对应大数据进行加密操作,得加密大数据ci,i=1, 2, 3, …, 4096;按如公式(6)将PLCM混沌初始值x0和参数p转化成一个大整数t1=447058823529412352941176470588。

步骤E5:将加密的大整数ci,i=1, 2, 3, …, 4096分割成l/8=64等份,并将它们转化成像素值{pi1, pi2, …, pi64};按照像素位置,将这些像素值转化为一幅大小为512×512的加密图像E,如图5所示。

步骤E6:发送EC1和e2给Bob。

采用本方法,Bob对加密图像的详细解密过程描述如下:

步骤D1:利用Bob的私钥d=195336213603604152096989093281052901489014454978653357 7724175709447908950389989732125499873509607620241560401056087989094206465431983075623592397662843361,计算:C2(x2, y2)=dC1,t2=(ey-12) mod p;计算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, c2, …, c4096},也可将混沌图像C转化为4096个混沌大整数集{r1, r2, …, r4096}。

步骤D4:按照公式(8)和(9),对加密大整数集{c1, c2, …, c4096}进行解密操作,可得解密大整数集{d1, d2, …, d4096}。

步骤D5:将加密大整数di,i=1, 2, 3, …, 4096分割成l/8=64等份,并将它们转化成像素值;按照像素位置,将这些像素值转化为一幅大小为512×512的解密图像D,同图3所示。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1