毕业设计(论文)基于混沌的椭圆曲线密码系统的研究与实现.doc
基于混沌的椭圆曲线密码系统的研究与实现 桂加睿摘要密码学已经有上千年的历史,一直以来,人们都用代数方法来研究密码学问题,并产生了大量的加解密算法,如DES,AES,RSA等等。同时,近年来,人们经过大量研究发现混沌系统有以下重要的特性:高度不可预测性、看似随机性、对初始条件和参数敏感性等。这些特性与密码学特性有巨大相似性,促使人们把混沌理论运用到密码学领域。 椭圆曲线加密系统(ECC)的安全性基于椭圆曲线离散对数问题的难解性。它是迄今为止每比特具有最高安全强度的密码系统。同其它非对称加密体制相比,椭圆曲线密码系统除了安全性有着高外,还具有计算负载小、密钥尺寸短、占用带宽少等优点。因此,椭圆曲线密码系统被认为是下一代最通用的公钥密码系统。混沌系统和密码学之间有天然的联系和结构上的相似性,启示着人们把混沌理论应用于密码学领域,混沌理论与常规密码学之间的广泛联系激起了越来越多的密码学研究者的兴趣,利用混沌系统构造密码算法成为信息安全领域的一个重要研究热点。本文以椭圆曲线加密系(ECC,elliptic curves cryptosystem)为研究对象,分析了椭圆曲线的的数学原理和工作原理,设计实现了基于混沌理论的ECC密码系统,实现了基于混沌ECC用于数字签名的基本算法,从性能、安全性等方面分析了系统的技术优势。关键字:混沌密码学、离散对数、群域、椭圆曲线、数字签名Research and Implementation of Elliptic Curve Cryptography Algorithm base on Chaos GUI,Jia-Rui AbstractCryptography has been for thousands of years, people have to use algebraic methods to study the problem of cryptography, and produce a large number of cryptographic systems, such as DES, AES, RSA etc. On the other hand, in recent years, people has done a lot of research on the chaotic system, recognized some of its important features, such as: very unpredictability nature of seemingly random, on the initial conditions and parameter sensitivity. these features are great similarities with Cryptographic propertiesElliptic curve cryptography (ECC) security is based on elliptic curve discrete logarithm problem of intractability, So far, the Elliptic Curve Cryptosystem (ECC) provides the highest strength-per-bit of any cryptosystem known. In addition to its high security, ECC also has many other merits over other public-key cryptosystems such as less computation overheads shorter key size, considerable bandwidth savings, and so on. Therefore, the elliptic curve cryptosystem is considered the next generation of the most common public-key cryptosystem. Between chaos and cryptography has the natural link and structural similarity, reveals to people the chaotic field of applied cryptography, Chaos theory and conventional cryptography and extensive links between the more and more aroused interest in cryptography researchers, To construct the cryptographic algorithm using chaotic field of information security to become an important research focus. In this paper, the elliptic curves cryptosystem(ECC) as the research object. illustrates the Elliptic curve mathematical principle and the principle, combined with chaos theory, Design and Implementation of ECC based on chaos theory cryptography, Finally, Implemented the basic ECC Digital Signature Algorithm with chaos. Analyze Technological advantages of the system on Performance, security etc.Keywords: chaos cryptography, ECC, ECDLP, Digital Signature, group, field目录1 绪论41.1 课题研究的背景和意义41.2 椭圆曲线密码的发展历史41.3 混沌理论的发展历史51.4 研究的主要内容和方法51.5 论文的组织安排62 混沌密码学原理62.1 混沌的的定义62.2 混沌数学基础63 椭圆曲线算法原理分析83.1 基本概念83.1.1 群和域83.1.2 椭圆曲线83.2 ECC算法基础93.2.1运算分层93.2.2 有限域上的运算93.2.2椭圆曲线的参数103.2.3 椭圆曲线上的运算113.3 ECC算法原理分析134 基于椭圆曲线的混沌的密码系统构造134.1 混沌理论与密码学134.2 系统设计与实现144.2.1 参数生成144.2.2 加密过程144.2.3 解密过程165 基于混沌与椭圆曲线的数字签名算法175.1 方案一 混沌映射消息摘要175. 2 方案二 混沌映射消息后产生摘要196 系统性能及安全性分析216.1 系统运行216.2 性能分析246.3 安全性分析257 总结与展望26致谢27参考文献28附录一 有限域上算法29附录二 椭圆曲线上算法311 绪论1.1 课题研究的背景和意义1976年Diffie和Hellman提出公钥密码思想以来,国际上提出了许多种公钥密码体制的实现方案。一些已经被攻破,一些被证明是不可行的。目前,只有3类公钥密码体制被认为是安全有效的,按照其所依据的数学难题划分为:基于大整数分解问题(IFP),如RSA体制和Rabin体制;基于有限域离散对数问题(DLP),如Diffie-Hellman体制ElGamal体制;基于椭圆曲线离散对数问题(ECDLP ECDLP),如椭圆密码体制。椭圆曲线应用到密码学上最早是由Victor Miller1和Neal Koblitz2在1985年分别独立提出的。它是目前已知的公钥体制中,对每一比特所提供加密强度最高的一种体制。它具有安全性高、密钥量小、灵活性好的特点,受到了国际上的广泛关注。而SET协议的制定者已把它作为下一代SET协议中缺省的公钥密码算法。深入研究基于椭圆曲线离散对数问题的公钥密码具有很大的现实意义。混沌现象是非线性确定性系统中的一种类似随机的过程,把两个十分相近的初值带入同一个混沌函数进行迭代运算,经过一定阶段的运算后,数值序列变得毫不相关。它隶属于确定性系统却难于预测,隐含于复杂系统但又不可分解,看似“混乱无序”,实则颇有规律。Shannon在他的论文3中写到,一个好的加密系统,它的函数必须是复杂的,并且一个小的变化必然导致结果发生很大的变化。这些密码学特性与混沌系统的特性有着巨大的相似性,促使人们把混沌理论运用到密码学领域。由于混沌系统对初值和参数极其敏感,同时还具有非周期性和伪随机性的特点,近来,它引起了密码学领域的广泛关注,据此提出了密码学中用于指导密码设计的两个基本原则:扩散和混乱,并产生出大量富有成效的研究成果。混沌和密码学之间计有的天然的联系和结构上的相似性,启示着人们把混沌应用于密码学领域,混沌理论与常规密码学之间的广泛联系激起了越来越多的密码学研究者的兴趣,利用混沌系统构造密码算法成为信息安全领域的一个重要研究热点。1.2 椭圆曲线密码的发展历史人类从十七世纪就开始研究椭圆曲线了,但真正把其应用到密码学中是1985年由Victor Miller1和Neal Koblitz2分别独立提出的。他们利用椭圆曲线上的点构造了椭圆曲线密码系统。之后出现了很多针对椭圆曲线密码系统的研究,主要集中在三个方面:1. 椭圆曲线密码系统的构造:包括有限域的选择和安全曲线的选择以及密码体制的构造。2. 椭圆曲线密码系统的分析:就是在仅知道由ECC加密的密文的情况下,恢复出明文。包括对ECC的攻击方法的选择、验证等等。3. 椭圆曲线密码系统的快速实现:大体可分为软件和硬件两个方面的快速实现。1990年,Menezes使用了一类特殊的曲线超奇异椭圆曲线这种曲线有理点群的阶可以很容易的得到并且实现速度也很快。但是到1993年,Menezes本人和他的两个合作者发现了对这种曲线的一种有效的攻击方法,称为“MOV攻击”,这种方法可以把椭圆曲线离散对数问题化约到某个次数较低的域上,从而在多项式时间内求解。但与此同时,椭圆曲线上有理点个数的计算问题得到了很大的突破。1989到1992年间,Atikin和Elkie对1985年提出的Schoof算法作出了重大改进,到1995年,人们在这一问题上取得的成就己经达到密码学上的实用标准了。另外,由于这一时期计算机软件和硬件技术的突飞猛进,椭圆曲线点加也可以很容易的实现了。1998年以后,ANSI,IEEE,ISO,NIST等国际组织陆续地将椭圆曲线密码系统列为标准,2000年,Koblitz,Menezes和Vanstonc等大师对椭圆曲线密码系统的整体发展状况做了客观的分析,为其商业应用打下了坚实的基础。1.3 混沌理论的发展历史最早对混沌进行研究的是法国庞加莱(H.Poincare)9。1913年,他在研究能否从数学上证明太阳系的稳定性问题时,把动力学系统和拓扑学有机地结合起来,并提出三体问题在一定范围内其解是随机的。1964年,法国天文学M.Henon发现,一个自由度为2的不可积的保守哈密顿系统,当能量渐高时其运动轨迹在相空间中分布越来越无规律,给出了Henon映射。1975年,美籍华人学者李天岩(T.Y.Li)和他的导师美国数学家J.A.Yorke发表Period Three Implies Chaos一文5,首次使用“混沌”这个名词,并为后来学者所接受。1976年,美国数学生态学家R.May在文章具有极复杂动力学的简单数学模型中详细描述了Logistic映射的混沌行为,并指出生态学中一些非常简单的数学模型,可能具有非常复杂的动力学行为。进入20世纪80年代,人们着重研究了系统如何以有序到新的混沌以及混沌的性质和特点,并进入了混沌理论的应用阶段。90年代以来,随着非线性科学和混沌理论的发展,混沌科学与其他应用学科相互交互、相互渗透、相互促进,其在电子学、信息科学、图像处理等领域有了广泛应用,混沌密码学就是其中之一。1.4 研究的主要内容和方法 本文的主要内容有:1. 研究了目前流行的的几种加密算法:椭圆曲线加密算法、混沌加密2. 研究了混沌密码和ECC算法所涉及的数学原理和实现方法,分析了两种算法的优点和不足,提出了基于混沌与ECC的混合密码体制,并通过大量材料证明该混合密码体制优于其他密码体制。3. 通过混沌和ECC相结合的加密解密系统的实现来验证该混合密码体制能够正确的进行加密和解密。4. 提出两种基于混沌椭圆曲线用于数字签名的方案,并分析设计并实现了两种方案。1.5 论文的组织安排第一章 绪论:对本文的研究内容、研究目标、研究方法和预期研究结果进行了概述,多层次反应了本课题的科学意义和实用价值。 第二章 混沌密码学原理:学习了混沌密码学的基本概念和原理,研究了混沌映射logistic的数学基础。 第三章 椭圆曲线算法原理分析:学习了有限域的的基本概念和运算。研究了椭圆曲线的算法原理以及在有限域上的运算。 第四章 基于椭圆曲线的混沌的密码系统构造:混沌与ECC混合加密体制方案的提出,设计并实现系统。 第五章 基于混沌与椭圆曲线的数字签名算法:提出两种基于混沌椭圆曲线用于数字签名的方案,分析设计并实现了两种方案。 第六章 系统性能及安全性分析。 第七章 总结与展望。2 混沌密码学原理2.1 混沌的的定义混沌现象是非线性确定性系统中的一种类似随机的过程,把两个十分相近的初值带入同一个混沌函数进行迭代运算,经过一定阶段的运算后,数值序列变得毫不相关。它隶属于确定性系统却难于预测,隐含于复杂系统但又不可分解,看似“混乱无序”,实则颇有规律。混沌密码是鉴于混沌系统对系统的参数和初始条件变化非常敏感这一事实来设计的。其基本思想,一是采用流密码的思想,将混沌系统作为伪随机序列发生器,由混沌系统产生的伪随机序列与明文进行加密操作输出密文;二是采用分组密码的思想,将加密系统的密钥设置为混沌系统的参数,而将明文设置为混沌系统的初始条件,或者不改变混沌系统的参数,而是将加密系统的密钥设置为混沌系统的初始条件,将明文设置为混沌系统的另一部分初始条件。2.2 混沌数学基础混沌现象是在非线性动力系统中出现的确定性的、类似随机的过程,这种过程既非周期又不收敛,并且对切始值有极其敏感的依赖性,一维离散时间非线性动力系统定义如下: 其中, XkP ,k=0,1,2,3,,我们称其为状态。而: PP 是一个映射,将当前状态Xk映射到下一个状态Xk+1。如果我们从一个初始值x0 开始,反复应用, 就得到一个序列Xk, k=0,1,2,3,。该序列称为该离散时间动力系统的一条轨迹。一类非常简单却被广泛研究的动力系统是logistic映射,其定义如下:其中, 0 4 称为分枝参数,Xk (0,1)。混沌动力系统的研究工作指出,当3.5699456< 4 时,logistic映射工作于混沌状态。也就是说,由初始条件X0 在logistic映射的作用下所产生的序列 Xk ; k=0,1,2,3.是非周期的、不收敛的并对初始值非常敏感。Matlab下仿真代码如下:x=0.1;u=2:0.001:4;for i=1:2000 x=u.*(x-x.2); if i>=1900 plot(u,x); title('Logistic Map'); xlabel('a'); ylabel('X(n)'); hold on; endend 图1 matlab下logistic 映射从上图可以看出,当>3.6时,logistic映射处于混沌状态。3 椭圆曲线算法原理分析3.1 基本概念3.1.1 群和域定义3.1 如果一个非空的集合G,对于代数运算来说满足以下条件: G对于运算是封闭的:对于任意的a, bG,满足abG;结合律成立:对于任意的a, b, cG,满足(ab)ca(bc);存在单位元e,对于任意的aG,满足eaa;对于G中的每一个元a,G中存在逆元a1使a1ae。则称G对于运算做成一个群。定义3.2 如果群G的运算“”还满足交换律,即对任意a,bG,有ab=ba,则称G为一个交换群,或阿贝尔(Abel)群。定义3.3 如果一个非空集合R,对于一个称为加法的代数运算和另一个称为乘法的代数运算满足:R对于加法运算构成一个交换群(加法单位元称为零元);R中至少含有一个非零元;R对于乘法运算封闭,且满足结合律;有乘法单位元;非零元有乘法逆元;乘法交换律成立;左右分配律都成立。则称R对于该加法和乘法构成一个域。元素个数有限的域称为有限域。由于它首先由E伽罗华所发现,因而又被称为伽罗华域(Galois Field),两种常用的有限域是素数域GF(p)和特征为2的有限域GF(2m)。3.1.2 椭圆曲线椭圆曲线密码体制来源于对椭圆曲线的研究,所谓椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程: (1)所确定的平面曲线。其中系数ai(I=1,2,6)定义在某个域上,可以是有理数域、实数域、复数域,还可以是有限域GF,椭圆曲线密码体制中用到的椭圆曲线都是定义在有限域上的。该曲线上所有的点外加一个叫做无穷远点的特殊点构成的集合连同一个定义的加法运算构成一个Abel群。在等式 mP=P+P+P=Q (2) 中,已知m和点P求点Q比较容易,反之已知点Q和点P求m却是相当困难的,这个问题称为椭圆曲线上点群的离散对数问题。定义3.4:设 GF(p)是一个特征p2,3的有限域,a ,bGF (p),满足。满足方程的点(x ,y )GF (p) ×GF (p)和特殊点O(称为无穷远点)组成的集合称为基于有限域GF(p)上的椭圆曲线,记为Ep(a,b)。3.2 ECC算法基础3.2.1运算分层根据椭圆曲线上的点构成Abel群的运算特点,点乘运算需要转化为点加运算来实现,但椭圆曲线上的点重合的时候点运算就变成了倍点运算,所以实际上需要的是点加、点乘与倍点运算。而椭圆曲线上的点加、点乘与倍点运算则必须转换成有限域上的运算来实现,需要转化为有限域上的模逆、模乘、模平方与模逆。 图2 ECC分层结构图3.2.2 有限域上的运算 有限域的元素的个数称为有限域的阶。存在一个q阶的有限域F,当且仅当g是一个素数p的幂,即q=pn,其中p是一个素数并称之为域F的特征,n是一个正整数。当n=1时,则域F就称为素域,否则称为扩域。有限域上的算法包括:多精度加法,多精度减法、加法、减法、乘法、求逆素数域Fp上算法如下表,详见附录1。 表1 有限域上算法算法输入输出1多精度加法整数a, bÎ0,2wt(e,c),其中c=a+b mod 2wt, e是进位2多精度减法整数a, bÎ0,2wt(e,c),其中c=a-b mod 2wt, e是借位3模加模数p和整数a, bÎ0,P-1c=(a+ b) mod p4模减模数p和整数a, bÎ0,P-1c=(a-b) mod p5模乘模数p和整数a, bÎ0,P-1c=(a. b) mod p6模平方模数p和整数a Î0,P-1c=a2 mod p7模幂奇数模P,R=2wt,P=-P-1 mod R,xÎ0,P),e=(el,e1,e0)xe mod P8模逆素数P,域Fp上的非零元素a1,ak域元素a1-1,ak-1,其中ai.ai-1º1 mod P3.2.2椭圆曲线的参数 椭圆曲线的阶定义为曲线上点的个数,记作#E(Fp)。P是椭圆曲线E上的一点,若存在最小的正整数n,使得nPO,其中O是无穷原点,则称n是P点的阶。椭圆曲线上的点的个数,记做E(a, b)。描述一条有限域Fp 上椭圆曲线,常用到六个参量:T=(p, a, b, G, n, h)。p、a、b 用来确定一条椭圆曲线,G 为基点,n 为点G 的阶,h 是椭圆曲线上所有点的个数m 与n 相除的整数部分这几个参量取值的选择,直接影响了加密的安全性。参参量值一般要求满足以下几个条件:1. p当然越大越安全,但越大,计算速度会变慢,200 位左右可以满足一般安全要求;2. pn×h;3. pt1(mod n),1t<20;4. 4a3+27b20(mod p); 曲线非奇异当且仅当:,因为16与P互素,所以0(mod p),即5. n为素数;6. h4算法详见附录2。3.2.3 椭圆曲线上的运算3.2.3.1 加法定理3.1:若P和Q是曲线E上任意两点,P、Q的连线L交E于另一点R,则: 1.(P Q )R =O; 2. P O =P; 3. P Q =Q P; 4. E上存在一点Q,使得P Q =O,这样的点记为“-P”; 5. 对于P上的任意点P、Q、R,有(P Q) R =P (Q R);设P和Q是椭圆曲线Ep(a,b)上的两个点,若P=O,则-P=O,且P+Q=Q+P=Q;令P=(x1 ,y1),Q=(x2 ,y2),则-P= (x1,-y1),且P+(-P)=O;如果Q P,则P+Q=(x3 ,y3),这里 定义3.5 在E上定义运算,R是过P,Q的直线与曲线的另一关于x轴的对称点,则称R为P与Q的点加,记为R =P Q,如图 图3 椭圆曲线上点加定义3.6 当p=Q时R是P点的切线与曲线的另一交点关于x轴的对称点。即P P =2P =R,称为曲线上点的倍乘,如图 图4 椭圆曲线上倍点3.2.3.2 标量乘法椭圆曲线上的点不能直接进行乘法操作,标量乘法可以转换成点加操作,量乘法实际上执行的是对同一点的反复相加的操作,即 算法1 计算点乘的从右到左二进制方输入:k=(kt-1,k2,k1,k0)2,PÎE(Fp)输出:kP1. Q¬¥2. 对于i从0到t-1,重复执行2.1 若ki=1,则Q¬Q+P。2.2 P¬2P3. 返回(Q)算法2 计算一个正整数的NAF输入:正整数K输出:NAF(k)1. i¬02. 当k³1时,重复执行2.1 若k是奇数, 则ki¬2-(k mod 4),k¬k-ki2.2 否则,ki=02.3 K¬k/2,i=i+13. 返回(ki-1,ki-2,k1,k0)算法3 计算点乘的滑动窗口算法输入:窗口宽度w,正整数k,PÎE(Fp)输出:kP1. 计算NAF(k)= 2. 对于iÎ1,3,2(2w-(-1)w)/3-1,计算Pi=iP。3. Q¬¥,i¬l-14. 当i³0,重复执行4.1 若ki=0,则t¬1,u¬04.2 否则,寻找一个最大的t£w,使得u¬(ki,ki-t+1)4.3 Q¬2tQ4.4 若u>0,则Q¬Q+Pu;否则,若u<0,则Q=Q+P4.5 i¬i+15. 返回(Q)3.3 ECC算法原理分析椭圆曲线密码算法(ECC)的安全性依赖于有限域上点群元素求阶,属于离散对数难题。令为有限域,E是上的椭圆曲线,P是E上的点,且阶是素数n,并记为D=1,2,n-1.算法描述如下:1) 信息传递各方通过参数组(p,E,P,n)选取密钥dÎD,并计算公钥Q=dP。2) 信息发送方表示明文m为E上的点。3) 随机选取kÎD,并利用接收者的公钥Q计算和发送C4) 信息接收者用自己的私钥d通过下公式进行解密 4 基于椭圆曲线的混沌的密码系统构造4.1 混沌理论与密码学混沌现象是非线性确定性系统中的一种类似随机的过程,把两个十分相近的初值带入同一个混沌函数进行迭代运算,经过一定阶段的运算后,数值序列变得毫不相关。它隶属于确定性系统却难于预测,隐含于复杂系统但又不可分解,看似“混乱无序”,实则颇有规律。Shannon在他的论文3中写到,一个好的加密系统,它的函数必须是复杂的,并且一个小的变化必然导致结果发生很大的变化。这些密码学特性与混沌系统的特性有着巨大的相似性。如下表:表1 混沌理论与密码学的相似与不同之处 混沌理论与密码学的相似与不同之处相似点对初始条件和控制参数的极端敏感性扩散类似随机的行为和长周期的不稳定轨道伪随机信号混沌映射通过迭代将初始域扩散到整个相空间密码算法通过加密产生预期的扩散和混乱混沌映射参数加密算法密钥不同点混沌映射定义在实数域上加密算法定义在有限集上?(目前还没有相对关系)密码系统安全性和性能的分析理论混沌的轨道混合(Mixing)特性(与轨道发散和初值敏感性直接相关)对应于传统加密系统的扩散特性,而混沌信号的类随机特性和对系统参数的敏感性对应于传统加密系统的混乱特性。可见,混沌具有的优异混合特性验证了混沌加密器的扩散和混乱作用可以和传统加密算法一样好。混沌和密码学之间具有的天然的联系和结构上的某些相似性,启示着人们把混沌应用于密码学领域。Shannon在其经典文章3中已将混沌理论所具有的混合、对参数和初值的敏感性等基本特征应用到密码学中,并提出了密码学中用于指导密码设计的两个原则:扩散(Diffusion)和混乱(Confusion)。扩散方式是将明文冗余度分散到密文中使之分散开来,以便隐藏明文的统计结构,实现方式是使得明文的每一位影响密文中多位的值。混乱则是用于掩盖明文、密文和密钥之间的关系,使密钥和密文之间的统计关系变得尽可能复杂,导致密码攻击者无法从密文推理得到密钥。混沌和密码学之间具有天然联系和结构上的某种相似性,利用混沌系统,可以产生数量众多、非相关、类似噪声、可以再生的混沌序列,这种序列难于重构和预测,从而使密码分析者难以破译。4.2 系统设计与实现4.2.1 参数生成1) 信息传递各方通过参数组(p, E, P,n)选取密钥dÎD,并计算公钥Q=dP。1. 随机生成大素数p, a, b构成椭圆曲线E:y2=x3+ax+b2. 选取基点P3. 计算P点的阶n4. 随机生成大素数d私钥,d<n;5. 计算公钥Q=dP算法详见附录2。2) 信息传递各方通过参数组(x, u),混沌参数。随机生成浮点数x,u,其中0<x<1, 3.57< 44.2.2 加密过程作为一个公钥加密系统,混沌椭圆曲线加密系统也具有公钥加密系统的所有特点。公钥加密系统的加密双方都需要两个密钥:公开的公钥与保密的私钥。每一方的公钥都是通过自己的私钥得到的,加密明文的时候都要用到对方的公钥,解密密文的时候使用自己的私钥。现在假设有两个用户:用户A与用户B,用户A想要得到用户B的某份文件M,那么利用椭圆曲线加密系统传输文件M的过程如下所示:1、用户A选定一条椭圆曲线Ep(a, b),并取椭圆曲线上一点,作为基点P。2、用户A选择一个私有密钥d,并生成它的公开密钥Q=dP。3、用户A将Ep(a,b)和点Q、 P传给用户B。4、用户A、B通过秘密通道协商混沌参数(X0,u)5、用户B接到信息后,产生一个随机整数k (k<n,n为椭圆曲线上基点的阶数),k就是用户B的私钥。6、然后用户B需要进行下列计算 C1=M+kQ C2=kPC1就是椭圆曲线上的点M经过加密之后的密文,C2为用户B的公钥。7、用户B使用混沌参数(X0,u)对消息(C1,C2)进行logistic映射混沌加密: C=logistic(C1,C2,X0,u);8、用户B将C传给用户A。算法4 ECC加密算法输入:基点P,随机数k,明文点M,公钥Q输出: ECC密文 C1 标量乘法计算C1=kP2 标量乘法计算C0=KQ3 计算C2=M+C04 生成密文C=C1+C2算法5 logistic混沌映射输入:明文流Mn,混沌参数x0,u输出:密文流Cn1. x=x02. i从0到n-1y=u*x*(1-x)Ci=yMix=y3. 返回(Cn)混沌ECC加密流程如下图 图5 logistic 映射下ECC加密流程4.2.3 解密过程算法描述如下:1、信息接受方收到密文C。2、利用混沌映射参数(x0,u)计算中间明文(C1,C2)(C1,C2=logistic(LC,x,u)3、用户A计算C1-kC2,,结果就是M。因为 算法6 ECC解密算法输入:私钥Q,密文C(C1,C2)输出: ECC明文M1. 标量乘法计算C0=dC12. 计算M=C2-C0流程如下:图6 logistic 映射下ECC解密流程 经过上面的过程,用户A从用户B处得到了想要的文件M。如果用户A与用户B是第一次传送文件,那么需要步骤1到步骤4,也就是说需要用户A.选择椭圆曲线、确定基点、产生私钥与公钥、向用户B传输基本参数。如果用户A与用户B己经建立了联系,那么用户A可以直接解密用户B传送来的密文。经过这个过程就实现了使用椭圆曲线加密系统加解密信息。5 基于混沌与椭圆曲线的数字签名算法5.1 方案一 混沌映射消息摘要在本方案中,对源文件产生hash摘要,之后对摘要用ECC公钥进行加密产生数字签名,然后对数字签名进行logistic混沌映射。5.1.1签名生成过程在选择好域参数 D=(q, F, a, b, G, n, h) 、密钥对 (d,Q)以及混沌密钥Kc后,用户A为对消息m进行签名。算法流程如下:1. hash(m)产生消息摘要H(m)2. ECC加密H(m)生成密文c3. 产生混沌序列seq4. 密文c与混沌序列异或cseq,生成密文C 图7 混沌ECC签名方案一签名流程图5.1.2 签名验证过程 图8 混沌ECC签名方案一签名验证流程图算法流程:1. 产生混沌序列seq2. 密文c与混沌序列异或cseq,生成密文C 3. ECC解密c生成明文m,H(m)4. hash(m)产生消息摘要Hash(m)5. 对比H(m),Hash(m)5. 2 方案二 混沌映射消息后产生摘要在本方案中,先对源文件进行logistic混沌映射,然后再对密文产生hash摘要,之后对摘要用ECC公钥进行加密产生数字签名。5. 2.1签名生成过程算法流程如下:1. 对消息进行logistic混沌映射加密,产生密文C1=LC(m)2. hash(C1)产生消息摘要C2=H(C1)=H(LC(m)3. ECC加密H(C2)生成数字签名C图9 混沌ECC签名方案二签名流程图5. 2.2签名验证过程算法流程如下:1. 对消息进行logistic混沌映射加密,产生密文C1=LC(m)2. hash(C1)产生消息摘要C2=H(C1)=H(LC(m)3. ECC解密数字签名D(C)4. 比较C2与D(C)图10 混沌ECC签名方案二签名验证流程图6 系统性能及安全性分析6.1 系统运行整个系统在Win 7平台上,利用Microsoft visual studio 2008开发工具进行了开发,在intel core2 2.2GHz、RAM 2G的系统上运行。系统用VC实现,并设计了易于操作的图形化界面,如下图图11 系统界面1.系统可以对消息进行加密,同时完成消息的解密工作。首先,生成椭圆曲线以及密钥,并存于文件key.dat,如下图 图12 密钥文件原文件内容如下: 图13 待加密源文件密文件内容如下: 图14 密文件解密后文件内容如下: 图15 解密后文件2.系统可以对消息进行加密和签名,同时完成消息的解密和签名验证工作。 图15 数字签名界面生成数字签名并存于文件 图16 数字签名验证数字签名图17 hash摘要6.2 性能分析根据Shannon的理论在密码算法中设置了混淆与扩散过程,使得密码具有较好的安全性。混沌系统的特性使得它在数值分布上不符合概率统计学原理, 得不到一个稳定的概率分布特征;另外, 混沌数集是实数范围, 还可以推广到复数范围。因此,从理论上讲, 利用混沌原理对数据进行加密,可以防范频率分析攻击、穷举攻击等攻击方式, 使得密码难于分析、破译。公钥算法采用的是椭圆曲线公钥算法。对于q元有限域上的椭圆曲线,q为200 bits时,RSA密码体制需要2048 bits的模数才能达到同等的安全强度,即椭圆曲线密码体制在相同的安全强度下所要求的密钥强度仅是RSA的1/10。数字签名采用了基于混沌与椭圆曲线的数字签名算法。它增强了ECDSA的安全性,使其能够抵抗随机数泄漏、随机数重复使用以及伪造签名等攻击。评价公钥算法的效率主要从以下三方面来考虑:(1) 计算负荷(computational ove