一种实现网络安全通信的方法及系统
技术领域
本发明涉及信息安全技术,特别是涉及一种实现网络安全通信的方法及系统。
背景技术
安全通信需求在通信网络中越来越重要,使用加密技术是实现安全通信的核心,目前的方案主要有基于证书的方式和基于身份密码体制(IBC,Identity-Based Cryptosystem)的方式。基于证书的方式存在证书存储、传输和管理开销方面的问题,而基于IBC的方法可有效解决这些问题。
在基于IBC的通信网络中,通信密钥由通信双方协商产生,协商的过程可采用多种算法。参照图1所示,是其中一种密钥协商过程,这种基于IBC的密钥协商协议能够解决网络域间的密钥协商问题。所述域间的密钥协商是指通信双方分别处于两个不同的网络域,密钥协商是一个跨域的过程。
IBC的核心思想是:使用用户的标识如姓名、IP地址、电子邮件地址等信息作为公钥,用户的私钥通过一个被称作密钥产生机构PKG(Private KeyGenerator)的可信第三方进行计算得到。密钥协商过程中需要使用通信双方的公钥和私钥进行计算,从而协商出共同的密钥。
图1所示密钥协商的实现原理是建立在对技术的基础上,下面简单介绍对技术。设G
1是由p生成的素数q阶加法循环群,G
2是一个阶为q的循环乘法群,a,b∈z*
q是两个随机数,假设G
1和G
2这两个群上的离散对数问题都是困难性问题。称G
1和G
2之间的映射
G
1×G
1→G
2为一个双线性对,该对满足如下性质:
(1)双线性:对任意的P,Q,R∈G1有
用aP表示P自加a次,则对任意的a,b∈Zq *,有
(2)非退化性:存在P,Q∈G1,使得
(3)可计算性:存在一个有效算法计算
(P,Q)其中P, Q∈G
1。
下面介绍所述密钥协商协议的具体实现流程,本文为了描述方便,取协议实现的参与方为5方:1个全局PKG、2个域级PKG(任意取发送域PKG1、接收域PKG2)、发送者A以及接收者B,K是A与B共同协商的密钥。具体流程如下:
步骤101,建立系统参数,所述系统参数用于生成通信实体A与B的公/私钥对,包括:
全局PKG参数(s, Ppub=sP),其中s,P为PKG随机生成;
域级PKG(PKG1和PKG2)参数(s1,Ppug1=s1P)与(s2,Ppkg2s2P),其中s1为PKG1随机生成,s2为PKG2随机生成,P为所述全局参数。
步骤102,利用系统参数生成通信实体A与B的公/私钥对,其中公钥可以公开。
A的公钥为QA=(a+s1)P,私钥为SA=(a+s1)-1P;
B的公钥为QB=(b+s2)P,私钥为.SB(b+s2)-1P;
其中a,b分别为A与B身份标识的哈希值。
下面进入通信实体间的密钥协商步骤:
步骤103,A计算随机数TA=xaQB并发送给B,其中xa为A随机生成。
步骤104,B计算随机数TB=xbQA并发送给A,其中xb为B随机生成;同时B利用TA及自己的私钥SB计算一个共同的密钥
(利用上述对技术)。
步骤105,A利用孔及自己的私钥SA计算一个共同的密钥
(利用上述对技术)。
此时A与B共同拥有一个共同协商的密钥
上述基于IBC的密钥协商协议虽然具有很多优点,但是缺乏相互认证及容易遭受密钥攻击。因为在上述密钥协商过程中,监听者在网络上一般可以监听到TA和TB,在第一步,他把TA=xaQB修改为TA=xaxeQB,然后发送给B;在第二步,他把TB=xbQA修改为TB=xbxeQA,然后发送给A。这样,在步骤104,B将计算出 在步骤105,A将计算出 这个攻击过程揭示了该协议易遭受中间人攻击,接收者不能确认接收到的消息就是预期发送者发送的消息,即没有一个很好的认证过程;同时,该协议协商的密钥被篡改为非预期的密钥,即易遭受密钥攻击。
发明内容
本发明所要解决的技术问题是提供一种实现网络安全通信的方法及系统,以解决上述密钥协商过程存在缺乏相互认证及易受密钥攻击的问题。
为解决上述技术问题,根据本发明提供的具体实施例,本发明公开了以下技术方案:
一种实现网络安全通信的方法,包括发送方A计算随机数TΛ并发送给接收方B,B计算随机数TB并发送给A,A利用TB及A的私钥计算得到共同密钥KA,B利用TA及B的私钥计算得到共同密钥KB,还包括:
B对KB、TB进行哈希计算得到h1,A对KA、TB进行哈希计算得到h1;A将h1与h1进行比较,若相等,则A对B的验证通过;
A对KA、TA进行哈希计算得到h2,B对KB、TA进行哈希计算得到h2;B将h2与h2进行比较,若相等,则B对A的验证通过。
优选的,在计算h1、h1、h2、h2时,参与哈希计算的参数还包括:发送方A与接收方B的身份标识。
优选的,在计算h2、h2时,参与哈希计算的参数还包括TB。
优选的,所述方法还包括修改共同密钥的步骤:发送方A将共同密钥修改为对KA、TA哈希计算得到的MKA,并将对MKA哈希计算得到的结果重新确定为h2;相应的,接收方B也将共同密钥修改为对KB、TA哈希计算得到的MKB,并将对MKB哈希计算得到的结果重新确定为h2。
一种实现网络安全通信的方法,包括:
发送方A计算随机数TA并发送给接收方B;
接收方B计算随机数TB,并利用TA及B的私钥计算KB;B对KB、TB以及A与B的身份标识进行哈希计算得到h1,将h1及TB发送给A;
发送方A利用TB及A的私钥计算KA,并对KA、TB以及A与B的身份标识进行哈希计算得到h1,将h1与h1进行比较,若相等,则A对B的验证通过;A继续对KA、TA、TB以及A与B的身份标识进行哈希计算得到共同密钥MKA,并对MKA进行哈希计算得到h2,将h2发送给B;
接收方B对KB、TA、TB以及A与B的身份标识进行哈希计算得到MKB,并对MKB进行哈希计算得到h2,将h2与h2进行比较,若相等,则B对A的验证通过。
所述方法还包括:若h2与h2不相等,则B向A返回错误信息。
一种实现网络安全通信的系统,包括发送方A与接收方B,所述发送方A包括:
TA生成单元,用于计算随机数TA;
第一通信单元,用于将TA、h2发送给接收方B,并从B接收TB、h1;
密钥KA计算单元,用于利用TB及A的私钥计算共同密钥KA;
第一验证单元,用于对KA、TB进行哈希计算得到h1,将h1与h1进行比较,若相等,则A对B的验证通过,A继续对KA、TA进行哈希计算得到h2;
所述接收方B包括:
TB生成单元,用于计算随机数TB;
第二通信单元,用于将TB、h1发送给发送方A,并从A接收TA、h2;
密钥KB计算单元,用于利用TA及B的私钥计算共同密钥KB;
第二验证单元,用于对KB、TB进行哈希计算得到h1;并对KB、TA进行哈希计算得到h2,将h2与h2进行比较,若相等,则B对A的验证通过。
优选的,所述第一验证单元在计算h1及h2、第二验证单元在计算h1及h2时,参与哈希计算的参数还包括发送方A与接收方B的身份标识。
其中,所述发送方A与接收方B分别处于不同的网络域。
一种实现网络安全通信的系统,包括发送方A与接收方B,所述发送方A包括:
TA生成单元,用于计算随机数TA;
第一通信单元,用于将TA、h2发送给接收方B,并从B接收TB、h1;
密钥KA计算单元,用于利用TB及A的私钥计算密钥KA;
第一验证单元,用于对KA、TB以及A与B的身份标识进行哈希计算得到h1,将h1与h1进行比较,若相等,则A对B的验证通过,A继续对KA、TA、TB以及A与B的身份标识进行哈希计算得到共同密钥MKA,并对MKA进行哈希计算得到h2;
所述接收方B包括:
TB生成单元,用于计算随机数TB;
第二通信单元,用于将TB、h1发送给发送方A,并从A接收TA、h2;
密钥KB计算单元,用于利用TA及B的私钥计算共同密钥KB;
第二验证单元,用于对KB、TB以及A与B的身份标识进行哈希计算得到h1;并对KB、TA、TB以及A与B的身份标识进行哈希计算得到共同密钥MKB,并对MKB进行哈希计算得到h2,将h2与h2进行比较,若相等,则B对A的验证通过。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
首先,解决了通信实体间的相互认证问题。认证过程为:接收方B对KB、TB进行哈希计算得到h1,发送方A对KA、TB进行哈希计算得到h1,A将h1与h1进行比较,若相等,则TB未被修改,A对B的身份有效性验证通过;A对KA、TA进行哈希计算得到h2,B对KB、TA进行哈希计算得到h2,B将h2与h2进行比较,若相等,则TA未被修改,B对A的身份有效性验证通过。按照所述方法,通信双方通过相互认证能够确认接收到的消息就是预期发送者发送的消息,如果TA、TB被篡改,则通信双方能够及时发现,从而判断出协商的密钥为非预期的密钥(因为密钥是利用TA或TB计算得到),实现了防止密钥攻击。本发明实现了网络通信实体间的双向认证和安全密钥协商,从而保障了网络的通信安全。
其次,在相互认证的基础上还实现了密钥修改,发送方A将共同密钥修改为利用KA、TA哈希计算得到的MKA,并将对MKA哈希计算得到的结果重新确定为h2;相应的,接收方B也将共同密钥修改为利用KB、TA哈希计算得到的MKB,并将对MKB哈希计算得到的结果重新确定为h2。修改密钥的目的是,在实现身份认证的同时可以使对方确认协商密钥的值,从而保证协商密钥的安全性。而且,与原来协商的密钥KA或KB(KA=KB)相比较,由于MKA或MKB(MKA=MKB)是再次进行哈希计算的结果,根据哈希运算的特性,最终协商的密钥(MKA或MKB)长度缩短,因此减少了通信过程中的计算量。
附图说明
图1是现有技术中基于IBC的密钥协商协议的实现流程图;
图2是本发明实施例所述密钥协商过程的流程图;
图3是本发明优选实施例所述密钥协商过程的流程图;
图4是本发明实施例所述实现网络安全通信的系统结构图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
针对基于IBC的密钥协商过程中缺乏相互认证及易受密钥攻击的问题,本发明实施例提供了一种改进方案,在密钥协商过程中增加了相互认证的环节,提高了密钥协商的安全性,并且解决了密钥攻击问题,从而保证了网络通信安全。
参照图2,是本发明实施例所述密钥协商过程的流程图。本发明实施例也是基于对技术,对技术的介绍如前所述。对比图1,密钥协商前的准备步骤是相同的,具体如下:
假设参与方为5方:1个全局PKG、2个域级PKG(任意取发送域PKG1、接收域PKG2)、发送者A以及接收者B,K是A与B共同协商的密钥。具体流程如下:
步骤201,建立系统参数,所述系统参数用于生成通信实体A与B的公/私钥对,包括:
全局PKG参数(s, Ppub=sP),其中s,P为PKG随机生成;
域级PKG(PKG1和PKG2)参数(s1,Ppkg1=s1P)与(s2,Ppkg2=s2P),其中s1为PKG1随机生成,s2为PKG2随机生成,P为所述全局参数。
步骤202,利用系统参数生成通信实体A与B的公/私钥对,其中公钥可以公开。
A的公钥为QA=(a+s1)P=aP+Ppkg1,私钥为SA=(a+s1)-1p;
B的公钥为QB=(b+s2)P=bP+Ppkg2,私钥为SB=(b+s2)-1p;
其中a,b分别为A与B身份标识的哈希值。本实施例中,为便于利用对技术进行计算,A与B的公钥QA和QB采用如上设置,但也可以设置为通信实体的其他标识信息,如用户姓名、IP地址、电子邮件地址等。
完成以上准备步骤,进入通信实体间的密钥协商步骤:
步骤203,A利用B的公钥QB计算随机数TA=XaQB并发送给B,其中xa为A随机生成。
本实施例不对随机数TA的计算方式进行限定,但需要满足离散对数的困难性。离散对数的困难性是指:给定一个群G,定义其上的两点P,Q∈G,寻找一整数x,使在G中有xP=Q,假设寻找这个整数x是困难性问题。即对于公式TA=XaQB,即使获得了TA和QB,也难于计算得到Xa。
步骤204,B利用A的公钥QA计算随机数TB=XbQA,其中Xb为B随机生成;同时B利用TA及自己的私钥SB计算一个共同的密钥 (利用对技术)。
如上所述,TB=xbQA也满足离散对数的困难性。
步骤205,B对KB、TB进行哈希计算得到哈希消息h1,并将h1及TB发送给A。
步骤206,A利用TB及自己的私钥SA计算一个共同的密钥 (利用对技术)。
步骤207,A对KA、TB进行哈希计算得到哈希消息h1,并将h1与h1进行比较来验证B的身份有效性。如果h1与h1相等,则A接收的TB确实来自于B,A对B的验证通过,继续步骤208中B对A的验证;如果不相等,说明TB在传输过程中被篡改,A向B返回错误信息通知B。
A验证B的原理是:B在计算h1时使用的是保存在B方的正确的TB值,而A在计算h1时使用的是由B发送过来的TB值,如果TB被截获篡改,则h1与h1不相等,从而验证出TB是否真正来自于B。
通常,网络监听者会同时监听到TA和TB并进行篡改,如前所述,利用篡改后的TA和TB计算得到的密钥KB和KA也是一样的,这并不影响本步骤对TB的验证,因为利用篡改后的KB和KA进行哈希计算没有影响到h1与h1的比较,A还是会发现TB被篡改,但不能确定TA是否也被篡改,因此B还需要对TA进行验证。
步骤208,如果A对B的验证通过,则进行B对A的验证步骤。A对KA、TA进行哈希计算得到哈希消息h2,并将h2发送给B。
步骤209,B对KB、TA进行哈希计算得到h′2,将h′2与h2进行比较来验证A的身份有效性。与A验证B的原理相同,若h′2与h2相等,则TA未被篡改,B对A的验证通过;若不相等,则B向A返回错误信息。
经过A与B的相互认证和密钥协商,最终协商得到共同的密钥KA和KB(KA=KB),然后A与B利用所述协商密钥加密信息,实现网络安全通信。
总结上述过程,通信双方进行相互认证的方法为:接收方B对KB、TB进行哈希计算得到h1,发送方A对KA、TB进行哈希计算得到h′1,A将h′1与h1进行比较,若相等,则TB未被修改,A对B的身份有效性验证通过;A对KA、TA进行哈希计算得到h2,B对KB、TA进行哈希计算得到h′2,B将h′2与h2进行比较,若相等,则TA未被修改,B对A的身份有效性验证通过。按照所述方法,通信双方通过相互认证能够确认接收到的消息就是预期发送者发送的消息,如果TA、TB被篡改,则通信双方能够及时发现,从而判断出协商的密钥为非预期的密钥(因为密钥是利用TA或TB计算得到),实现了防止密钥攻击。本发明实施例实现了网络通信实体间的双向认证和安全密钥协商,从而保障了网络的通信安全。
在上述过程中,本实施例遵循了协议的三次通信原则,因此通信实体间的相互认证步骤在密钥协商的三次通信过程中实现,但本发明并不限定实现认证功能的先后步骤,只要基于本发明思想实现相互认证功能并保证协商密钥的安全性即可,以上步骤流程仅作为一种优选的实施例进行说明。基于此,最后若h′2与h2不相等则B向A返回错误信息的步骤也是本实施例的优选步骤,即在三次通信的基础上,如果验证失败,B通知A需要再进行一次通信,使得A获知B的验证结果。
优选的,在验证过程中,还可以对TA、TB以外的其他信息进行验证,验证方法是在计算h1、h′1、h???2、h′2时将待验证的信息作为参数,一同参与哈希计算,验证原理与验证TA、TB的原理相同。例如,对A与B的身份标识的验证方法是:在步骤205中,B对KB、TB以及A与B的身份标识进行哈希计算得到哈希消息h1,并将h1及TB发送给A;在步骤207中,A对KA、TB以及A与B的身份标识进行哈希计算得到哈希消息h′1,并将h′1与h1进行比较;同样,在步骤208中,A对KA、TA以及A与B的身份标识进行哈希计算得到哈希消息h2,并将h2发送给B;在步骤209中,B对KB、TA以及A与B的身份标识进行哈希计算得到h2,将h2与h2进行比较。更进一步,还可以在步骤208和209的哈希计算中加入参数TB,来提高认证的有效性,从而提高密钥的安全性。
在图2所示实施例的基础上,本发明还提供了另一优选实施例,在相互认证的过程中对密钥KA和KB(KA=KB)进行了修改,提高了密钥的安全性。参照图3,是所述优选实施例中密钥协商过程的流程图。
步骤301,建立系统参数,如前所述。
步骤302,利用系统参数生成通信实体A的公/私钥对为(QA,SA),通信实体B的公/私钥对为(QB,SB),其中公钥可以公开,具体如前所述。
步骤303,A利用B的公钥QB计算随机数TA=xaQB并发送给B,其中Xa为A随机生成。
步骤304,B利用A的公钥QA计算随机数TB=xbQA,其中xb为B随机生成;同时B利用TA及自己的私钥SB计算一个共同的密钥KB。
步骤305,B对KB、TB以及A与B的身份标识进行哈希计算得到哈希消息h1,并将h1及TB发送给A。
步骤306,A利用TB及自己的私钥SA计算一个共同的密钥KΛ。
步骤307,A对KA、TB以及A与B的身份标识进行哈希计算得到哈希消息h1,并将h1与h1进行比较来验证B的身份有效性。如果h1与h1相等,则A接收的TB确实来自于B,A对B的验证通过,继续步骤208中B对A的验证;如果不相等,说明TB在传输过程中被篡改,A向B返回错误信息通知B。
步骤308,如果A对B的验证通过,则进行B对A的验证步骤。A对KA、TA、TB以及A与B的身份标识进行哈希计算得到共同密钥MKA,并对MKA进行哈希计算得到h2,将h2发送给B。
步骤309,B对KB、TA、TB以及A与B的身份标识进行哈希计算得到MKB,并对MKB进行哈希计算得到h2,将h2与h2进行比较,若相等,则B对A的验证通过;若不相等,则B向A返回错误信息。
对照图2,图3所示流程的改进之处在于对步骤208和209进行了修改,重新计算了协商密钥MKA和MKB,目的是在实现身份认证的同时可以使对方确认协商密钥的值,从而保证协商密钥的安全性,防止密钥攻击。而且,与原来协商的密钥KA或KB(KA=KB)相比较,由于MKA或MKB(MKA=MKB)是再次进行哈希计算的结果,根据哈希运算的特性,最终协商的密钥(MKA或MKB)长度缩短,因此减少了通信过程中的计算量。
本发明提供的2个实施例都保证了密钥协商过程的安全性,通过在密钥协商过程中增加相互认证过程,攻击者无法篡改密钥,也无法获取密钥。假设攻击者K截获了PKG1与PKG2分配给A与B的私钥,进一步假设K又截获了TA与TB,由于密钥
其中的Xa和Xb不直接在网络上传输,要从TA和TB计算得出它们,将面临离散对数的困难性,因此保证了会话密钥的安全性。而密钥MKA或MKB是利用KA或KB协商生成,由于KA或KB难于获取,所以MKA或MKB也难于获取。
针对上述密钥协商过程,本发明还提供了实现网络安全通信的系统实施例。由于上述密钥协商过程能够解决网络域间的密钥协商问题,所以将以域间的通信实体为例进行说明,但本发明也可以适用于域内的通信实体间的密钥协商。
参照图4,是所述实现网络安全通信的系统结构图。所述系统包括任意两个域内的通信实体A与B,A为其中一个域内任意选取的发送方,B为另一个域内任意选取的接收方,所述通信实体可以是服务器也可以是客户端。
所述发送方A包括TA生成单元11,用于计算随机数TA;第一通信单元12,用于将TA、h2发送给接收方B,并从B接收TB、h1;密钥KA计算单元13,用于利用TB及A的私钥计算共同密钥KA;第一验证单元14,用于对KA、TB进行哈希计算得到h1,将h1与h1进行比较,若相等,则A对B的验证通过,A继续对KA、TA进行哈希计算得到h2。
所述接收方B包括TB生成单元21,用于计算随机数TB;第二通信单元22,用于将TB、h1发送给发送方A,并从A接收TA、h2;密钥KB计算单元23,用于利用TA及B的私钥计算共同密钥KB;第二验证单元24,用于对KB、TB进行哈希计算得到h1;并对KB、TA进行哈希计算得到h2,将h2与h2进行比较,若相等,则B对A的验证通过。
上述各个单元计算TA、TB、KA、KB、h1、h1、h2、h2的过程可参见上面的说明,在此不再详述。
优选的,为对TA、TB以外的其他信息进行验证,所述第一验证单元14在计算h1及h2、第二验证单元24在计算h1及h???2时,还可以将发送方A与接收方B的身份标识作为参数添加到哈希计算过程中。而且,为提高认证的有效性,第一验证单元14在计算h2、第二验证单元24在计算h???2时,还可以进一步将TB作为参数添加到计算过程中。
优选的,为提高协商密钥的安全性,所述第一验证单元14将利用KA、TA、TB以及A与B的身份标识进行哈希计算得到的结果MKA重新确定为共同密钥,并将对MKA哈希计算得到的结果重新确定为h2;相应的,第二验证单元24也将利用KB、TA、TB以及A与B的身份标识进行哈希计算得到的结果MKB重新确定为共同密钥,并将对MKB哈希计算得到的结果重新确定为h2。A与B最后协商修改密钥的目的是在认证过程的同时实现对最终协商密钥的确认,防止密钥被篡改。而且,最终协商的密钥(MKA或MKB)长度缩短,减少了通信过程中的计算量。
图4所示系统中未详述的部分可以参见图2、图3所示方法的相关部分,为了篇幅考虑,在此不再详述。
以上对本发明所提供的一种实现网络安全通信的方法及系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。