安全电子邮件是在电子邮件的基础上,运用各种安全机制来保障邮件在Intemet传送过程中的安全性。电子邮件的安全性从它出世以来已经有了很大的进步,但对于一些特殊的应用,它的安全性仍有待提高。但在非对称加密技术方面,仍然使用较老的RSA、DSA加密算法,而且随着计算机运算速度的大幅提高和系统集成化的发展,它的安全性已经有了一定的威胁,因此有必要采用1种安全性更高的加密算法,这就是椭圆曲线加密算法(ECC)。
一、椭圆曲线加密算法的优点
椭圆曲线加密算法与RSA、DSA算法相比,有以下优点:
(1)安伞性能更高。如160位ECC与1024位RSA、DSA有相同的安全强度,而210位ECC则与2048bit RSA、DSA具有相同的安全强度。
(2)计算量小、处理速度快。虽然在RSA中可以通过选取较小公钥的方法提高公钥处理速度,即提高加密和签名验证的速度,使其在加密和签名验证速度上与ECC有可比性,但在私钥的处理速度上,ECC远比RSA、DSA快得多。因此ECC总的速度比RSA、DSA要快很多。
(3)存储空间占用小。ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存贮空间要小得多。
(4)带宽要求低。当对长消息进行加密解密时,一类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多,而公钥加密系统多用于短消息。
二、椭圆曲线介绍
设K是1个域,K可以是有理数域、实数域、复数域或有限域GF(q)。椭踟曲线层由如下的Weierstrass(韦斯特拉斯)方程定义:
其中,a1,a2,a3,a4,a6_∈K,且△≠O,△是层的判别式。
对于椭圆曲线可以在不同特征值的域上进行分析,通过坐标变换可以简化成下列3种情形:
(1)特征值K=2时,E:y2+y=x3+ax+b
(2)特征值K=3时,E:y2=x3+ax2+bx+c
(3)特征值K>3时,E:y2=X3+ax+b
其中,a,b,c∈K.判别式△=4d+27b2≠0。
对于椭圆曲线方程E:x3+ax+b。域K的特征值不等于2或3,群的运算法则如下:
(1)单位元。对于所有的P∈E(K),P+∞=∞+P=P,称∞为单位元(也叫幺元),且∞∈E(K)。
(2)负元素。若Q=(x,y)∈E(K),过Q点作1条垂直于互轴的直线,它与椭圆曲线的交点即为点Q的负(记为-Q),如图1所示。
显然,-Q=(x,-y),且(x+y)+(x,-y)=∞。注意,-Q∈E(K),-∞=∞。
(3)点加。令P=(x1,y1)∈E(K),Q=(xby2)∈E(K),P≠±Q,画1条连接点尸和Q的直线,它与椭圆曲线交于第3个点,这个点关于石轴的对称点就是P与Q的和,记为P+Q=(x3+y3)。如图2所示。
其中:
(4)倍点。令P=(x1,y1)E∈E(K),P≠-P。则2P=(x3,y3)。
其中:
三、系统实现
一般情况下,安全电子邮件的发送必须经过邮件签名和邮件加密2个过程,而对于接收到的安令电子邮件,则要经过邮件解密和邮件验证2个过程,其工作模式如图3所示:
系统重要功能模块包括:椭圆曲线生成模块、签名模块、加密模块、解密模块和签名验证模块a系统充分利用r各种已经实现的函数库来加快系统的开发,如MIRACL库和Crypto++库。其中MIRACL库是多倍精度整数和有理数算法的cic++库,支持对称密码和公钥密码。
系统中主要参数组D=(q,FR,S,a6,P,n,h)。定义如下:
g为域的阶;FR是域的表示,即域Fq中元素的表示;S为种子:q 6eFq,是椭阋曲线的系数;P是椭嘲曲线的基点,有素数阶;n是基点P的阶;h=#E(FQ)/N称为余因子。
1、在素数域上随机生成椭圆曲线
随机生成椭圆曲线步骤如下:
输入:素数p>3,1比特的杂凑函数H。
输出:种子S,a.b∈Fp定义椭圆曲线E:y2=x3+ax+b
2、参数组生成
输入:域的阶为q,Fq的域表示FR,安全级别二满足160≤L≤[lbp]和2L≥4根号q。
输出:参数组D=(q,FR,S,ab,P,n,h)。
在步骤(2)中计算椭网曲线点个数时采用了SEA算法。SEA算法是已知最好的求解任意素数域和OEF上椭圆曲线点计数的算法,对于实际密码应用中的q,该算法的运行时间只需要几秒钟。因为它可以快速地确定点数模小素数1的值,所以可用于早期中止策略,快速地将阶能被小素数整除的候选曲线淘汰。
3、 电子邮件加密解密
系统中采用了可证明安全曲线加密方案( PSEC),它由Fujisaki和Okamoto提出。
加密过程:
输入:参数组D=(q,FR,S,ab,P,n,h)公钥p,明文m。
输出:密文(R,C,s,t)。
解密过程:
输入:参数组D=(q,FR,S,ab,P,n,h)。私钥d。密文(R,C,s,t)
输出:明文m或拒绝密文。
四、 安全性分析
目前电子邮件加密技术有很多,如利用对称加密算法加密、利用PKI/CA认证加密和利用基于身份的密码技术加密,以及采取1种或多种加密算法直接实现,本文正是采用后者。该系统的安全性可从3方面来分析:
(1)加密算法本身的安全性
ECC、RSA和DSA的安全性分析如表1所示。
一般认为破译时间为1012 MIPS-年代表安全。为此,RAS和DSA要求模长为1024位,而ECC只需要160位就够了,且当密钥长度增加时,ECC的安会性要比RSA/DSA增加快得多。如240位密钥长的ECC比2048位模长的RSA/DSA安全,此时,RSA/DSA的模长是从1024位增加到2048位,而ECC只是从160位增加到240位。
由表1可以看出,在破译所需时间相同情况下,ECC所需的密钥长度要比RSA/DSA短得多,而且随着破译时间的增加,ECC的密钥长度增长比例要小得多,优势更明显。
(2)密钥交换协议的作用
电子邮件传输是在1个开放的网络环境中进行,邮件的收发双方可能是网络中的任何1个结点,它们之间任何的数据传输都有可能被拦截或窃听。
密钥作为加密解密的关键部分,更是需要保护,因此,密钥不是简单地传输给对方,而是通过1个密钥协商协议计算出来的,这样就保证了密钥的安全性。
(3)数字签名的作用
数字签名能验证出文件的原文在传输过程中有尤变动,能防止签名人否认自己的签名行为,保证了传输电子文件的完整性、真实性和不可抵赖性。
椭圆曲线加密体制与其它加密体制相比,具有安全性能高、计算量小、处理速快、存储空间占用小等突出优点。本文将它应用在电子邮件文件加密中,满足了电子邮件传输的安全需求。
但是,随机生成椭圆曲线需要消耗一定的时间,所以本文的1个改进之处是开发1个椭圆曲线库,专门存放符合指定安全性要求的椭圆曲线,这样就可以加快系统的运行速度。
小知识之维尔斯特拉斯函数
维尔斯特拉斯函数(Weierstrass function)微积分的教程中提到过处处连续处处不可微的函数,最典型的便是维尔斯特拉斯函数。直观地看,除了孤立的点之外,似乎连续的函数都应该可导。古典观念认为,连续函数的不可导的点集合在某种意义上应当很小,比如说,测度为0。早期的数学家包括高斯都认为这是对的,一些书籍甚至把此看法当作定理,写了证明(现在看来,显然是不严格的,比如说他们可能只考虑了初等函数)。这可能是因为人们很少深入接触过,而且也很难画出或展现出那些变化极其复杂精细,拥有大量不可导点的函数图像。