为确保网络上未授权的用户无法读取信息,在VPN中,对通过公共互联网络传递的数据必须加密,因此,加密技术是VPN中的一项关键技术。SSL VPN通过采用SSL协议来实现数据的保密性、消息完整性和端点认证。在SSL会话中,常用用证书来验证双方身份、协商加密算法、生成密钥等,用基于RSA的非对称加密算法交换密钥,保证密钥的安全性。因RSA加密算法进行加密的VPN系统存在有不足,为此,我们提出将椭圆曲线加密算法应用于SSL安全握手中。这样,可以大大提高运算效率,并在相同的安全强度下减少密钥的长度,其运算量较小,复杂度也随之降低。

一、基于SSL协议的VPN

安全套接层(securesocketlayer,SSL)协议具有保护传输数据以及识别通信机器的功能。SSL主要采用公开密钥加密体制和X.509数字证书技术在Internet基础上提供服务器认证、SSL链路上的数据完整性和SSL链路上数据的保密性等安全性保证。握手协议是SSL中最复杂的部分,SSL通过用握手协议来建立会话。建立SSL连接的双方在执行握手协议的过程中实现对服务器的身份鉴别(或双方相互身份鉴别),通过协商确定加密算法、Hash算法、压缩算法、交换加密使用的对称密钥,实现服务器和客户机之间逻辑意义上的“安全握手”,这时应用程序才能开始交换数据。

VPN网关的加密操作是计算密集型的操作,特别是在SSLVPN中,SSL协议的应用要求使用非对称加密算法协商密钥,导致传统的基于RSA加密算法的SSL服务器的CPU有80%花在处理SSL加解密,只剩下20%处理应用程序逻辑。所以本文提出了将灵活性远远高于RSA加密算法的ECC加密算法应用到握手协议的加解密过程中。SSL握手协议有多种操作模式,图1包括了所有工作模式下所涉及的消息。

基于椭圆曲线加密算法的SSLVPN安全握手技术研究

二、椭圆曲线加密体制及椭圆曲线公钥加密体制

1、椭圆曲线加密体制

椭圆曲线加密体制的安全性基于有限域上椭圆曲线离散对数问题(ECDLP)的难解性。ECDLP难解性是指:对于曲线上给定的离散点P和Q,难以找到整数I,使得IP=Q。设P为公钥,Q为私钥,其安全性就表现为知道P无法推导Q。对于有限群上的a和b,若存在正整数n,使得an=b,求解n=logba的问题称为有限群上离散对数问题(LDP);而对椭圆曲线上离散点P和Q,求解I,使得IP=Q称为椭圆曲线离散对数问题,ECDLP优于LDP。

椭圆曲线加密算法是一种能适应未来通信技术和信息安全技术发展的新型加密体制,在运算速度和存储空间方面占有很大的优势,具有安全性高、密钥量小、灵活性好的特点,具有较好的抗攻击性,由于服务器端的CPU处理能力和存储空间都有限,所以椭圆曲线加密算法相对于以往基于RSA加密算法的握手过程具有绝对的优势,目前已成为公钥加密体制中的研究热点。

2、椭圆曲线公钥加密体制的加密和解密方案

公钥加密方案可用来提供机密性,更典型的应用是在少量数据的加密上,如信用卡号码。大批量的数据文件加密使用运算速度更快的对称密钥算法来完成。下面给出了加密和解密方案:

加密过程,当用户A发送信息M给用户B时,用户A执行下列步骤:

(1)查找B的公钥Q;

(2)将数据M表示成一个E(Fq)上的一个点m;

(3)在区间[1,n-1]内选取一个随机整数k;

(4)计算点(x1,y1)=kP;

(5)计算点(x2,y2)=k*Q,如是x2=0,则返回到第(3)步;

(6)计算c=mx2;

(7)传送加密数据(x1,y1,c)给B。

解密过程,当用户B解密从用户A收到的密文(x1,y1,c)时,用户B执行下列步骤:

(1)使用他的私钥d,计算点(x2,y2)=d(x1,y1);

(2)通过计算m=cx2-1,恢复出数据m。

在上述过程中,Q=d*P是公开的,如果除A、B外的第三者能解椭圆曲线上的离散对数问题,就能从d*P中求出d,从而解密信息。

三、椭圆曲线优化公钥体系的优势及其在SSL安全均衡中的应用

1、椭圆曲线加密体制在SSL安全均衡握手方面的优势

椭圆曲线加密算法的计算量小并且处理速度快,存储空间占用小,椭圆曲线的密钥尺寸和系统参数与RSA相比要小得多,160bitECC与1024bitRSA具有相同的安全强度,210bitECC则与2048bitRSA具有相同的安全强度,意味着它所占的存储空间要小得多,同时椭圆曲线加密算法的带宽要求低。此外,椭圆曲线加密算法的灵活性要高于RSA加密算法,可以通过改变参数设置获得不同的曲线,具有丰富的群结构和多选择性。

2、椭圆曲线公钥加密算法的优化

针对点积运算的优化。公钥产生和加密解密算法中需要大量的点积运算,即计算:

基于椭圆曲线加密算法的SSLVPN安全握手技术研究

文章在此采用的点积优化算法如下:

(1)将n表示成二进制数形式,即 :

基于椭圆曲线加密算法的SSLVPN安全握手技术研究
式中:nm=0或1;k=[log2n]+1。

(2)去掉(nknk-1…nm…n1)的最高位nk,得(nk-1…nm…n1)。

(3)按照(nk-1…nm…n1)从高位到低位次序,当nm=0,计算2P;当nm=1,计算2P+P,并将结果作为下次计算的初值,即:

基于椭圆曲线加密算法的SSLVPN安全握手技术研究

采用常规方法,需进行n次点加运算;在本算法中,平均只须3/2[log2n]次运算,最多需要2[log2n]次运算。

在明文到椭圆曲线映射过程中,需要判别一个数是否为模P下的平方剩余,即平方剩余判定。目前现有的平方剩余判定算法仅仅简单地根据平方剩余定义来判别,涉及大数的平方运算和取模运算,算法效率非常低。针对这种情况,本文采用了一种快速平方剩余判定算法。

设明文分段m映射到点Pm(x,y)上,使其满足:

基于椭圆曲线加密算法的SSLVPN安全握手技术研究

下面要解决的问题是在256和256(256+1)之间给定一个x,判定A=x3+ax+b是否是模P下的平方剩余。即判定(A/q)是否为1。改进的快速平方剩余判定算法如下:

(1)设J为平方剩余判定变量,初始时J=1。

(2)如果A为偶数,则根据定理,(A/P)可分解为:(A/P)=(2/P)((A/2)/P)根据定理,计算(2/P),然后执行J(2/P)=>J,A/2=>A。

如果A为奇素数,则根据定理得:

基于椭圆曲线加密算法的SSLVPN安全握手技术研究

这样,对(A/P)的判定等价于对(P mod A)/A)的判定,即执行如下操作:

基于椭圆曲线加密算法的SSLVPN安全握手技术研究

如果A为奇数但不为素数,可将A分解为ⅡAi;其中Ai为奇素数,根据定理得:

基于椭圆曲线加密算法的SSLVPN安全握手技术研究

再分别计算(Ai/P)。

(3)当A≠1时,返回(2);否则,算法结束。此时根据J值判定x3+ax+b是否是模P下的平方剩余;若J=1,则为平方剩余,若J=-1,则为非平方剩余。

3、基于优化椭圆曲线加密算法的SSL安全均衡握手过程

首先设计适合于VPN系统的安全协议必须考虑的问题:服务器端的低计算能力和计算资源。

本例选用适用于VPN系统,简化的X509标准的证书形式,用户A的证书:

基于椭圆曲线加密算法的SSLVPN安全握手技术研究

首先CA选择定义在有限域上的椭圆曲线E(Fm)

基于椭圆曲线加密算法的SSLVPN安全握手技术研究

E上的点构成循环群P∈E(Fm)是CA选择的公开的基点l=ord(P)是公开基点的阶1至少为160位的椭圆曲线的阶至少是有40位以上的大素数因子,这样选择的椭圆曲线能保证其上的离散对数难解性。

CA选择一个数SCA∈{1,2,…, l-1}作为其私钥,(SCA,l-1)=1,计算PCA=SCA,并将PCA作为公钥并公开,这样就可以对服务器端和客户端的证书进行签名。

客户选择一个随机数SVN∈{1,2,…,l-1}作为其私钥,(SVN,1)=1,计算PVN=SVN作为其公钥,并提交给CA为其颁发证书:

基于椭圆曲线加密算法的SSLVPN安全握手技术研究

其中SIGNVN是CA的签名。用户入网时,为其生成私钥SMS和公钥PMS,同时根据用户提交的有效信息生成证书:

基于椭圆曲线加密算法的SSLVPN安全握手技术研究

客户接收到服务器端证书后,验证证书的合法性。利用证书中的信息IDVN, PVN, period VN和others生成:

基于椭圆曲线加密算法的SSLVPN安全握手技术研究

然后验证:

基于椭圆曲线加密算法的SSLVPN安全握手技术研究

是否成立,如果成立,则此签名有效,证书合法,在认证之前,服务器端可以先进行预计算产生随机数k,k∈(1,2,…l) 。

计算kP,k,PVN,以及基于椭圆曲线加密算法的SSLVPN安全握手技术研究

qMSX和qMSY分别是Q点的坐标。保存{k, kP, KpVN,}qMSX。在这里一定要注意,每次进行身份认证的时候都必须重新产生随机数k。

如今已经进入信息时代,各种信息的保密要求也越来越高,传统的对称加密方法RSA存在一定的缺点,本文首次将采用加速点积运算优化后的椭圆曲线加密算法技术运用到了SSL VPN的安全握手技术中,使SSL服务器的CPU可以提高将近60%来处理应用程序逻辑。克服了以往用户将大部分时间浪费在等待CPU处理加密和解密过程中的弊端,提高了工作效率。

小知识之ECDLP

ECDLP即椭圆曲线上的离散对数问题。1987年,Koblitz利用椭圆曲线上点形成的Abelian加法群构造了ECDLP。实验证明,在椭圆曲线加密算法中采用160bits的密钥可与1024bits密钥的RSA算法的安全性相当,且随着模数的增大,它们之间安全性的差距猛烈增大。因此,它可以提供一个更快、具有更小的密钥长度的公开密钥密码系统,备受人们的广泛关注,为人们提供了诸如实现数据加密、密钥交换、数字签名等密码方案的有力工具。