一种基于身份标识的端到端的密钥认证协商方法及系统的制作方法

文档序号:7814702阅读:204来源:国知局
专利名称:一种基于身份标识的端到端的密钥认证协商方法及系统的制作方法
技术领域
本发明涉及信息安全技术领域,尤其涉及一种基于身份标识的端到端的密钥认证协商方法及系统。
背景技术
端到端的认证和密钥协商方法是通信网络中广泛用到的一种信息安全技术,具体地一般是通过公钥密码技术、对称密码技术实现。其中使用对称密码技术需要复杂、安全的密钥分发、管理系统。公钥密码技术需要为每个用户生成一对数学上相关联的公钥和私钥,公钥通过某种方式公开发布,使得任何发送者都可获得接收者的公钥,私钥则由接收者秘密保存。传统公钥密码系统中一个最大的安全问题就是如何确保使用的公钥真正属于指定接收者,为解决这个问题,催生了第三方证书认证中心(Certificate Authority,简称CA), CA为用户的公钥发放证书,将公钥和用户的身份标识绑定在一起。以CA为中心的公钥基础设施(Public Key Infrastructure,简称PKI)也以庞大的复杂性著称。为了解决传统公钥密码方案应用复杂的问题,1984年Shamir提出基于身份标识的密码技术和系统的概念,又称标识密码技术和系统,以下简称IBCddentity BasedCryptography)技术和系统。IBC技术隶属于公钥密码技术,只是用户的身份标识就是该用户的公钥,不需要借助于PKI将公钥和身份标识绑定在一起,保存主密钥的密钥中心根据用户身份标识为每个用户生成私钥,通过安全地方式发给用户。一些现有技术将IBC签名或加密直接应用到传统的密钥协商协议(包括非基于身份标识的密钥协商协议)中,以提高密钥协商中的认证安全性,如申请号为200810116251.0的中 国专利“基于身份的认证方法、保密通信方法、设备和系统”,申请号为200710046320.0的中国专利“基于身份的密码体制为基础的业务认证方法和系统”,以及美国专利 “Identity Based Authenticated Key Agreement Protocol,,(US2010211779和 W02010126638 (A2))和“Secure Key Management in Multimedia CommunicationSystem”(US2011055567 (Al)和 W02011031439 (Al)) 还有一种基于身份标识的密钥协商协议,利用IBC的特点而设计,如CheruCheng 和 Smart 等人 在 “ Identity-based Key Agreement Protocols FromPairings” (International Journal of Information Security, Volume 6, Number 4,213-241,2007)中总结的协议。这些协议的特点是会话密钥根据用户私钥和交换的相关数据导出,且消息交换次数比较少,一般只需交换两次即可完成一次密钥协商,双方的认证通过是否可导出相同的会话密钥隐含地进行。第一种技术通过对交换消息验签或解密完成端到端的认证,这些操作通常计算量比较大。第二种技术采用的隐含认证方式通常是消息交换完成以后才能进行,容易引起拒绝服务攻击(DOS)。基于第二种技术还有一种变体,即非交互地认证和密钥协商协议,只需发送一次消息即可完成对发送端的认证和密钥协商,但是这样产生的会话密钥没有接收端的贡献,随机性和安全性比较差。在具有身份标识和位置分离特征的网络架构中也存在此类问题。具有身份标识和位置分离特征的网络架构是为了解决现有IP (InternetProtocol)网络中IP地址二义性带来的一些问题而提出来的。这种网络架构将IP地址的双重功能(传输层、应用层的身份标识和网络层的可路由位置标识)分离开来,实现对移动性、多家乡性、IP地址动态重分配、减轻路由负载及下一代互联网中不同网络区域之间的互访等问题的支持。如图1所示,一种现有的基于身份标识的认证和密钥协商方法,由Chen-Kudla提出,发送端和接收端的身份标识分别是ID_A和ID_B,且分别已从密钥中心PKG获得了私钥d_A、d_B,d_A = sH(ID_A),d_B = sH(ID_B),其中H是一个将任何字符串映射到某个椭圆曲线上的点的映射函数,s是密钥中心的主密钥,关于PKG的系统建立、椭圆曲线的选取、私钥生成的算法详细可见 RFC 5091 (Identity-Based Cryptography Standard(IBCS) #1:Supersingular Curve Implementations of the BF and BBl Cryptosystems)。发送端计算一个 随机数a,计算生成第一密钥交换信息(101)T_A = aH(ID_A),发送给接收端(102),接收端选取一个随机数b,计算生成第二密钥交换信息(103) T_B =bH(ID_B),发送给发送端(104);发送端根据自己的私钥d_A、对方的身份标识、收到的T_B、和T_A相关的随机数a,计算共享密钥KEY = e (d_A, aH(ID_B)+T_B)并从中导出会话密钥(105),其中e是PKG选择的一个映射函数;接收端根据自己的私钥d_B、对方的身份标识、收到的1^、和T_B相关的随机数b,计算共享密钥KEY = e(T_A+bH(ID_A),d_B)并从中导出会话密钥(106)。上述方法采用隐含认证方式,消息交换完成以后才能认证对方,容易引起拒绝服务攻击。

发明内容
本发明要解决的技术问题是提供一种安全的基于身份标识的端到端的密钥认证协商方法及系统,适用于身份标识和位置分离的网络。为了解决上述技术问题,本发明提供了一种基于身份标识的端到端的密钥认证协商方法,其中,发送端生成第一密钥交换信息,根据所述第一密钥交换信息、发送端私钥、发送端身份标识、接收端身份标识、第一密钥交换相关信息生成第一消息认证码,并将所述第一消息认证码和第一密钥交换信息组成第一协商消息发送至接收端;所述接收端生成第二密钥交换信息,根据所述第二密钥交换信息、接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二消息认证码,并将所述第二消息认证码和第二密钥交换信息组成第二协商消息发送至发送端;所述发送端根据所述第一密钥交换信息、第二密钥交换信息、接收端身份标识、发送端身份标识生成第三消息认证码,将所述第三消息认证码发送至所述接收端;所述接收端验证所述第一消息认证码、所述发送端验证所述第二消息认证码、所述接收端验证所述第三消息认证码均成功后,所述发送端和接收端的密钥认证协商成功。
进一步地,上述方法还可以具有以下特点:所述发送端生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;所述接收端生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥,所述发送端生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。进一步地,上述方法还可以具有以下特点:所述发送端生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;所述接收端生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥,计算得到所述第二消息认证码;所述发送端生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第三消息认证码算法的输入密钥计算得到所述第三消息认证码。进一步地,上述方法还可以具有以下特点:所述发送端生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;所述接收端生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第二消息认证码算法的输入密钥计算得到所述第二消息认证码;所述发送端生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第三消息认证码算法的输入密钥计算得到所述第三消息认证码。进一步地,上述方法还可以具有以下特点:所述接收端收到所述第一协商消息后,根据接收端私钥、所述第一密钥交换信息、发送端身份标识计算生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥生成第一消息认证码,判断此第一消息认证码与从所述发送端收到的第一消息认证码相同时,继续生成第二密钥交换信息,否则,判定密钥认证协商失败。进一步地,上述方法还可以具有以下特点:所述发送端收到第二协商消息后,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥生成第二消息认证码,判断此第二消息认证码与从所述发送端收到的第二消息认证码相同时,继续生成第三消息认证码,否则,判定密钥认证协商失败。进一步地,上述方法还可以具有以下特点:所述发送端收到第二协商消息后,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将所述会话密钥作为第二消息认证码算法的输入密钥生成第二消息认证码,判断此第二消息认证码与从所述发送端收到的第二消息认证码相同时,继续生成第三消息认证码,否则,判定密钥认证协商失败。进一步地,上述方法还可以具有以下特点:计算第一消息认证码时,将所述发送端身份标识、接收端身份标识、所述第一密钥交换信息作为第一消息认证码算法的输入消息内容;计算第二消息认证码时,将所述第一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接收端身份标识作为第二消息认证码算法的输入消息内容;计算第三消息认证码时,将所述第一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接收端身份标识作为第三消息认证码算法的输入消息内容。进一步地,上述方法还可以具有以下特点:所述第一密钥交换相关信息包括生成所述第一密钥交换信息时使用的随机数;所述第二密钥交换相关信息包括生成所述第二密钥交换信息时使用的随机数。为了解决上述技术问题,本发明提供了一种基于身份标识的端到端的密钥认证协商系统,包括发送端和接收端,其中,所述发送端和接收端均包括密钥交换信息计算模块和消息认证码计算模块、密钥计算模块;发送端密钥交换信息计算模块,用于生成第一密钥交换信息;发送端消息认证码计算模块,用于根据所述第一密钥交换信息、发送端私钥、发送端身份标识、接收端身份标识、第一密钥交换相关信息生成第一消息认证码,并将所述第一消息认证码和第一密钥交换信息组成第一协商消息发送至接收端;还用于验证从所述接收端收到的第二消息认证码;还用于在所述发送端收到所述第二协商消息后,根据所述第一密钥交换信息、第二密钥交换信息、接收端身份标识、发送端身份标识生成第三消息认证码,将所述第三消息认证码发送至所述接收端;接收端密钥交换信息计算模块,用于在所述接收端收到所述第一协商消息后,生成第二密钥交换信息;接收端消息认证码计算模块,用于根据所述第二密钥交换信息、接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二消息认证码,并将所述第二消息认证码和第二密钥交换信息组成第二协商消息发送至发送端;还用于验证从所述发送端收到的第一消息认证码和第三消息认证码;发送端密钥计算模块,用于计算第一密钥、第一认证密钥、第二密钥、第二认证密钥、会话密钥;接收端密钥计算模块,用于计算第一密钥、第一认证密钥、第二密钥、第二认证密钥、会话密钥。进一步地,上述系统还可以具有以下特点:所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥生成第二消息认证码;还用于在生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码;所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥;还用于在验证从所述发送端收到的第一消息认证码时,根据接收端私钥、所述第一密钥交换信息、发送端身份标识计算生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥生成第一消息认证码;还用于在验证从所述发送端收到的第三消息认证码时,根据所述接收端私钥、所述发送端身份标识、所述第二密钥交换相关信息、所述第一密钥交换信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。进一步地,上述系统还可以具有以下特点:所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥生成第二消息认证码;还用于在生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第三消息认证码算法的输入密钥计算得到所述第三消息认证码;所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥,计算得到所述第二消息认证码;还用于在验证从所述发送端收到的第一消息认证码时,根据接收端私钥、所述第一密钥交换信息、发送端身份标识计算生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥生成第一消息认证码;还用于在验证从所述发送端收到的第三消息认证码时,根据所述接收端私钥、所述发送端身份标识、所述第二密钥交换相关信息、所述第一密钥交换信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将所述会话密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。进一步地,上述系统还可以具有以下特点:所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所第二认证密钥中导出会话密钥,将所述会话密钥作为第二消息认证码算法的输入密钥生成第二消息认证码;还用于在生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第三消息认证码算法的输入密钥计算得到所述第三消息认证码;所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所第二认证密钥中导出会话密钥,将此会话密钥作为第二消息认证码算法的输入密钥计算得到所述第二消息认证码;还用于在验证从所述发送端收到的第一消息认证码时,根据接收端私钥、所述第一密钥交换信息、发送端身份标识计算生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥生成第一消息认证码;还用于在验证从所述发送端收到的第三消息认证码时,根据所述接收端私钥、所述发送端身份标识、所述第二密钥交换相关信息、所述第一密钥交换信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将所述会话密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。进一步地,上述系统还可以具有以下特点:所述发送端消息认证码计算模块,还用于在计算第一消息认证码时,将所述发送端身份标识、接收端身份标识、所述第一密钥交换信息作为第一消息认证码算法的输入消息内容;还用于在计算第三消息认证码时,将所述第一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接收端身份标识作为第三消息认证码算法的输入消息内容;所述接收端消息认证码计算模块,还用于在计算第二消息认证码时,将所述第一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接收端身份标识作为第二消息认证码算法的输入消息内容。进一步地,上述系统还可以具有以下特点:
所述第一密钥交换相关信息包括生成所述第一密钥交换信息时使用的随机数;所述第二密钥交换相关信息包括生成所述第二密钥交换信息时使用的随机数。本发明提供密钥的双向确认协商方法,可应用于通信网络和各种网络应用,尤其适用于身份标识和位置分离的网络,同时可提高密钥协商的安全性,能够抵抗常见攻击。本方案中接收端在收到第一个密钥协商消息后,就可对发送端进行认证,且认证涉及的计算效率比较高。


图1是现有技术中的一种基于身份标识的认证和密钥协商方法流程图;图2是实施例中基于身份标识的端到端的密钥认证协商系统结构图;图3是实施例中基于身份标识的端到端的密钥认证协商方法流程图;图4是具体实施例中一中的密钥认证协商方法流程图;图5是具体实施例中二中的密钥认证协商方法流程图;图6是具体实施例中三中的密钥认证协商方法流程图。
具体实施例方式如图2所示,基于身份标识的端到端的密钥认证协商系统,包括发送端和接收端。所述发送端和接收端均包括密钥交换信息计算模块和消息认证码计算模块、密钥计算模块。发送端密钥交换信息计算模块,用于生成第一密钥交换信息;发送端消息认证码计算模块,用于根据所述第一密钥交换信息、发送端私钥、发送端身份标识、接收端身份标识、第一密钥交换相关信息生成第一消息认证码,并将所述第一消息认证码和第一密钥交换信息组成第一协商消息发送至接收端;还用于验证从所述接收端收到的第二消息认证码;还用于在所述发送端收到所述第二协商消息后,根据所述第一密钥交换信息、第二密钥交换信息、接收端身份标识、发送端身份标识生成第三消息认证码,将所述第三消息认证码发送至所述接收端;接收端密钥交换信息计算模块,用于在所述接收端收到所述第一协商消息后,生成第二密钥交换信息;接收端消息认证码计算模块,用于根据所述第二密钥交换信息、接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二消息认证码,并将所述第二消息认证码和第二密钥交换信息组成第二协商消息发送至发送端;还用于验证从所述发送端收到的第一消息认证码和第三消息认证码;发送端密钥计算模块,用于计算第一密钥、第一认证密钥、第二密钥、第二认证密钥、会话密钥;接收端密钥计算模块,用于计算第一密钥、第一认证密钥、第二密钥、第二认证密钥、会话密钥。实施方式一:所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥生成第二消息认证码;还用于在生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥;还用于在验证从所述发送端收到的第一消息认证码时,根据接收端私钥、所述第一密钥交换信息、发送端身份标识计算生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥生成第一消息认证码;还用于在验证从所述发送端收到的第三消息认证码时,根据所述接收端私钥、所述发送端身份标识、所述第二密钥交换相关信息、所述第一密钥交换信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。实施方式二:所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥生成第二消息认证码;还用于在生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第三消息认证码算法的输入密钥计算得到所述第三消息认证码;所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥,计算得到所述第二消息认证码;还用于在验证从所述发送端收到的第一消息认证码时,根据接收端私钥、所述第一密钥交换信息、发送端身份标识计算生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥生成第一消息认证码;还用于在验证从所述发送端收到的第三消息认证码时,根据所述接收端私钥、所述发送端身份标识、所述第二密钥交换相关信息、所述第一密钥交换信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将所述会话密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。
实施方式三:所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所第二认证密钥中导出会话密钥,将所述会话密钥作为第二消息认证码算法的输入密钥生成第二消息认证码;还用于在生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第三消息认证码算法的输入密钥计算得到所述第三消息认证码;所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所第二认证密钥中导出会话密钥,将此会话密钥作为第二消息认证码算法的输入密钥计算得到所述第二消息认证码。还用于在验证从所述发送端收到的第一消息认证码时,根据接收端私钥、所述第一密钥交换信息、发送端身份标识计算生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥生成第一消息认证码;还用于在验证从所述发送端收到的第三消息认证码时,根据所述接收端私钥、所述发送端身份标识、所述第二密钥交换相关信息、所述第一密钥交换信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将所述会话密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。在实现上述方式时,所述发送端消息认证码计算模块,还用于在计算第一消息认证码时,将所述发送端身份标识、接收端身份标识、所述第一密钥交换信息作为第一消息认证码算法的输入消息内容;还用于在计算第三消息认证码时,将所述第一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接收端身份标识作为第三消息认证码算法的输入消息内容;所述接收端消息认证码计算模块,还用于在计算第二消息认证码时,将所述第一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接收端身份标识作为第二消息认证码算法的输入消息内容。其中,所述第一密钥交换相关信息包括生成所述第一密钥交换信息时使用的随机数;所述第二密钥交换相关信息包括生成所述第二密钥交换信息时使用的随机数。如图3所示,基于身份标识的端到端的密钥认证协商方法包括:发送端生成第一密钥交换信息T_A(301),根据所述第一密钥交换信息、发送端私钥、发送端身份标识、接收端身份标识、第一密钥交换相关信息生成第一消息认证码mac I (302),并将所述第一消息认证码和第一密钥交换信息组成第一协商消息发送至接收端(303);所述接收端生成第二密钥交换信息T_B (304),根据所述第二密钥交换信息、接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二消息认证码mac2 (305),并将所述第二消息认证码和第二密钥交换信息组成第二协商消息发送至发送端(306);所述发送端根据所述第一密钥交换信息、第二密钥交换信息、接收端身份标识、发送端身份标识生成第三消息认证码mac3 (307),将所述第三消息认证码发送至所述接收端(308);所述接收端验证所述第一消息认证码、所述发送端验证所述第二消息认证码、所述接收端验证所述第三消息认证码均成功后,所述发送端和接收端的密钥认证协商成功。实施例一中:所述发送端生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;所述接收端生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥,所述发送端生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。实施例二中:所述发送端生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;所述接收端生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥,计算得到所述第二消息认证码;所述发送端生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第三消息认证码算法的输入密钥计算得到所述第三消息认证码。实施例三中:所述发送端生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;所述接收端生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第二消息认证码算法的输入密钥计算得到所述第二消息认证码;所述发送端生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第三消息认证码算法的输入密钥计算得到所述第三消息认证码。实施例一、二、三中,接收端对第一消息认证码的验证过程包括:所述接收端收到所述第一协商消息后,根据接收端私钥、所述第一密钥交换信息、发送端身份标识计算生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥生成第一消息认证码,判断此第一消息认证码与从所述发送端收到的第一消息认证码相同时,继续生成第二密钥交换信息,否则,判定密钥认证协商失败。实施例一、二中,发送端对第二消息认证码的验证过程包括:所述发送端收到第二协商消息后,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥生成第二消息认证码,判断此第二消息认证码与从所述发送端收到的第二消息认证码相同时,继续生成第三消息认证码,否则,判定密钥认证协商失败。实施例三中,发送端对第二消息认证码的验证过程包括:所述发送端收到第二协商消息后,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将所述会话密钥作为第二消息认证码算法的输入密钥生成第二消息认证码,判断此第二消息认证码与从所述发送端收到的第二消息认证码相同时,继续生成第三消息认证码,否则,判定密钥认证协商失败。上述方法中,计算第一消息认证码时,将所述发送端身份标识、接收端身份标识、所述第一密钥交换信息作为第一消息认证码算法的输入消息内容;计算第二消息认证码时,将所述第一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接收端身份标识作为第二消息认证码算法的输入消息内容;计算第三消息认证码时,将所述第一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接收端身份标识作为第三消息认证码算法的输入消息内容。上述方法中,所述第一密钥交换相关信息包括但不限于生成所述第一密钥交换信息时使用的随机数;所述第二密钥交换相关信息包括但不限于生成所述第二密钥交换信息时使用的随机数。上述方法中,发送端向接收端发送的第一协商消息中还可以包括第一附加信息,第一附加信息可包含发送端的身份标识、接收端的身份标识、发送端生成或从接收端收到的随机数、时间戳、计数等。接收端向发送端发送的第二协商消息中还可以包括第二附加信息,第二附加信息可包含发送端的身份标识、接收端的身份标识、接收端生成或从发送端收到的随机数、时间戳、计数等。发送端向接收端发送的第三协商消息中还可以包括第三附加信息,所述第三附加信息还可包含发送端的身份标识、接收端的身份标识、接收端生成或从发送端收到的随机数、时间戳、计数等。
本发明提出的密钥协商协议视第一密钥交换信息和第二密钥交换信息的具体内容,可支持合法监听,监听设备需要从PKG获得被监听用户和通信对端用户的某个时间段的私钥,计算出双方协商的会话密钥;或者监听设备将双方交换的密钥交换信息发送给PKG, PKG根据双方的私钥计算出会话密钥并返回给监听设备。下面以Chen-Kudla提出的方案为基础结合附图和具体实施例描述本发明的内容:具体实施例一如图4所示,具体实施例一中密钥认证协商方法包括以下步骤:步骤401,发送端生成第一密钥交换信息T_A。步骤402,根据私钥d_A、接收端身份标识ID_B、和与第一密钥交换信息相关的随机数a计算生成第一密钥KEYl = e (d_A, (a+l)H(ID_B))。步骤403,从第一密钥KEYl中导出一个适当长度的第一认证密钥keyl,长度满足消息认证码算法MACl的要求,例如选择HMAC作为MACl时,第一认证密钥的长度可以是128比特;发送端以第一认证密钥keyl作为MACl的输入密钥,以发送端身份标识ID_A、接收端身份标识ID_B、以及T_A的串接(ID_A,ID_B,T_A)作为MACl的输入消息内容,计算第一消息认证码 macl = MACl_keyl (ID_A, ID_B, T_A)。步骤404,发送端将第一密钥交换信息T_A和第一消息认证码macl组成第一协商消息发送给接收端。步骤405,接收端收到T_A和macl后,根据接收端私钥d_B、第一密钥交换信息T_Α、发送端身份标识ID_A,计算生成第一密钥ΚΕΥΓ = e(T_A+H(ID_A),d_B)。步骤406,接收端从生成的第一密钥ΚΕΥΓ中导出第一认证密钥keyl’,采用发送端计算第一消息认证码的方法重新计算第一消息认证码macl’。步骤407,接收端验证mac I’和收到的macl是否相同,如果相同,对ID_A的认证视为通过,执行步骤408 ;否则,认为未通过认证,停止密钥协商,接收端退出认证协商流程。步骤408,接收端生成第二密钥交换信息T_B。步骤409,接收端根据接收端私钥d_B、发送端身份标识ID_A、收到的T_A、生成T_B时选择的随机数b计算生成第二密钥KEY2 = e(bH(ID_A)+T_A,d_B)。步骤410,接收端从第二密钥KEY2导出一个适当长度的第二认证密钥key2,长度满足所选择的消息认证码算法MAC2的要求,例如HMAC要求的128比特;以key2作为第二消息认证码算法MAC2的输入密钥,以(ID_B,ID_A, T_B,T_A)作为MAC2的输入消息内容,计算第二消息认证码 mac2 = MAC2_key2 (ID_B, ID_A, T_B, T_A)。步骤411,接收端将(T_B,mac2)发送给发送端。步骤412,发送端收到(T_B,mac2)后,根据发送端私钥d_A、接收端身份标识ID_B、收到的第二密钥交换信息T_B、生成T_A时选择的随机数a,计算生成第二密钥KEY2’ =e(d_A,aH(ID_B) +T_B)。步骤413,发送端从所述第二密钥KEY2’中导出第二认证密钥key2’,使用接收端计算mac2的方法重新计算第二消息认证码mac2’。
步骤414,发送端验证mac2’和收到的mac2是否相同,如果相同,对ID_B的认证视为通过,执行步骤415 ;否则,认为未通过认证,停止密钥协商,发送端退出认证协商流程。
步骤415,发送端以key2’作为第三消息认证码MAC3的输入密钥,以(ID_A,ID_B,T_A,T_B)作为MAC3的输入消息内容,计算第三消息认证码mac3 = MAC3_key2’ (ID_A, ID_B, T_A, T_B)。步骤416,发送端将mac3发送至接收端。步骤417,接收端收到mac3后,使用key2根据发送端生成mac3的方法重新计算mac3’ = MAC3_key2 (ID_A, ID_B,T_A,T_B)。步骤418,接收端验证mac3’和收到的mac3是否相同,如果相同,视为通过认证,执行步骤419 ;否则,认为未通过认证,停止密钥协商,接收端退出认证协商流程。步骤419,发送端从所述key2’中导出会话密钥,接收端从key2中导出会话密钥,将此会话密钥作为两端共享的会话密钥。具体实施例二如图5所示,具体实施例二中密钥认证协商方法包括以下步骤:步骤501至步骤514与具体实施例一中步骤401至414相同。步骤515,发送端在验证mac2’与mac2相同后,从key2’中导出会话密钥key。步骤516,发送端根据key计算第三消息认证码mac3 = MAC3_key (ID_A, ID_B, T_
A,T_B)。步骤517,发送端将mac3发送给接收端。步骤518,接收端从key2中导出会话密钥key。步骤519,根据会话密钥key重新计算第三消息认证码mac3’,验证mac3’和收到的mac3是否相同,如果相同,视为通过认证;否则,认为未通过认证,停止密钥协商,接收端退出认证协商流程。具体实施例三如图6所示,具体实施例三中密钥认证协商方法包括以下步骤:步骤601至步骤609与具体实施例一中步骤401至409相同。步骤610,接收端从第二密钥KEY2导出一个适当长度的第二认证密钥key2,从此第二认证密钥key2中导出会话密钥key,以key作为第二消息认证码算法MAC2的输入密钥,以(ID_B,ID_A, T_B,T_A)作为MAC2的输入消息内容,计算第二消息认证码mac2 =MAC2_key(ID_B,ID_A,T_B,T_A)。步骤611,接收端将(T_B, mac2)发送给发送端。步骤612,发送端收到(T_B,mac2)后,根据发送端私钥d_A、接收端身份标识ID_
B、收到的第二密钥交换信息T_B、生成T_A时选择的随机数a,计算生成第二密钥KEY2’=e(d_A,aH(ID_B) +T_B)。步骤613,发送端从第二密钥KEY2’中导出第二认证密钥key2’。步骤614,发送端从此第二认证密钥key2’中导出会话密钥key,采用此会话密钥key根据接收端计算mac2方式计算第二消息认 证码mac2’。步骤615,发送端验证11^02’和收到的1]^02是否相同,如果相同,对ID_B的认证视为通过,执行步骤616 ;否则,认为未通过认证,停止密钥协商,发送端退出认证协商流程。步骤616,发送端以key作为第三消息认证码MAC3的输入密钥,以(ID_A,ID_B,T_A, T_B)作为MAC3的输入消息内容,计算第三消息认证码mac3 = MAC3_key (ID_A, ID_B,T_A, T_B)。步骤617,发送端将mac3发送至接收端。步骤618,接收端使用key根据发送端生成mac3的方法重新计算mac3’ = MAC3_key(ID_A, ID_B,T_A,T_B)。步骤619,接收端验证mac3’和收到的mac3是否相同,如果相同,视为通过认证;否则,认为未通过认证,停止密钥协商,接收端退出认证协商流程。上述消息认证码算法MAC1、MAC2、MAC3是双方或系统事先约定的,包括但不限于HMAC, CBC-MAC等通过共享密钥认证消息的算法。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相
互任意组合。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
权利要求
1.一种基于身份标识的端到端的密钥认证协商方法,其中, 发送端生成第一密钥交换信息,根据所述第一密钥交换信息、发送端私钥、发送端身份标识、接收端身份标识、第一密钥交换相关信息生成第一消息认证码,并将所述第一消息认证码和第一密钥交换信息组成第一协商消息发送至接收端; 所述接收端生成第二密钥交换信息,根据所述第二密钥交换信息、接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二消息认证码,并将所述第二消息认证码和第二密钥交换信息组成第二协商消息发送至发送端; 所述发送端根据所述第一密钥交换信息、第二密钥交换信息、接收端身份标识、发送端身份标识生成第三消息认证码,将所述第三消息认证码发送至所述接收端; 所述接收端验证所述第一消息认证码、所述发送端验证所述第二消息认证码、所述接收端验证所述第三消息认证码均成功后,所述发送端和接收端的密钥认证协商成功。
2.如权利要求1所述的方法,其特征在于, 所述发送端生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码; 所述接收端生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥, 从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥, 所述发送端生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。
3.如权利要求1所述的方法,其特征在于, 所述发送端生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码; 所述接收端生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥,计算得到所述第二消息认证码;所述发送端生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第三消息认证码算法的输入密钥计算得到所述第三消息认证码。
4.如权利要求1所述的方法,其特征在于, 所述发送端生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码; 所述接收端生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第二消息认证码算法的输入密钥计算得到所述第二消息认证码; 所述发送端生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第三消息认证码算法的输入密钥计算得到所述第三消息认证码。
5.如权利要求2、3、4所述的方法,其特征在于, 所述接收端收到所述第一协商消息后,根据接收端私钥、所述第一密钥交换信息、发送端身份标识计算生成第一 密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥生成第一消息认证码,判断此第一消息认证码与从所述发送端收到的第一消息认证码相同时,继续生成第二密钥交换信息,否则,判定密钥认证协商失败。
6.如权利要求2、3所述的方法,其特征在于, 所述发送端收到第二协商消息后,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥生成第二消息认证码,判断此第二消息认证码与从所述发送端收到的第二消息认证码相同时,继续生成第三消息认证码,否则,判定密钥认证协商失败。
7.如权利要求4所述的方法,其特征在于, 所述发送端收到第二协商消息后,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将所述会话密钥作为第二消息认证码算法的输入密钥生成第二消息认证码,判断此第二消息认证码与从所述发送端收到的第二消息认证码相同时,继续生成第三消息认证码,否则,判定密钥认证协商失败。
8.如权利要求1至7中任一权利要求所述的方法,其特征在于, 计算第一消息认证码时,将所述发送端身份标识、接收端身份标识、所述第一密钥交换信息作为第一消息认证码算法的输入消息内容; 计算第二消息认证码时,将所述第一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接收端身份标识作为第二消息认证码算法的输入消息内容; 计算第三消息认证码时,将所述第一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接收端身份标识作为第三消息认证码算法的输入消息内容。
9.如权利要求1至7中任一权利要求所述的方法,其特征在于, 所述第一密钥交换相关信息包括生成所述第一密钥交换信息时使用的随机数; 所述第二密钥交换相关信息包括生成所述第二密钥交换信息时使用的随机数。
10.一种基于身份标识的端到端的密钥认证协商系统,包括发送端和接收端,其中, 所述发送端和接收端均包括密钥交换信息计算模块和消息认证码计算模块、密钥计算模块; 发送端密钥交换信息计算模块,用于生成第一密钥交换信息; 发送端消息认证码计算模块,用于根据所述第一密钥交换信息、发送端私钥、发送端身份标识、接收端身份标识、第一密钥交换相关信息生成第一消息认证码,并将所述第一消息认证码和第一密钥交换信息组成第一协商消息发送至接收端;还用于验证从所述接收端收到的第二消息认证码;还用于在所述发送端收到所述第二协商消息后,根据所述第一密钥交换信息、第二密钥交换信息、接收端身份标识、发送端身份标识生成第三消息认证码,将所述第三消息认证码发送至所述接收端; 接收端密钥交换信息计算模块,用于在所述接收端收到所述第一协商消息后,生成第二密钥交换信息; 接收端消息认证码计算模块,用于根据所述第二密钥交换信息、接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二消息认证码,并将所述第二消息认证码和第二密钥交换信息组成第二协商消息发送至发送端;还用于验证从所述发送端收到的第一消息认证码和第三消息认证码; 发送端密钥计算模块,用于计算第一密钥、第一认证密钥、第二密钥、第二认证密钥、会话密钥; 接收端密钥计算模块,用于计算第一密钥、第一认证密钥、第二密钥、第二认证密钥、会话密钥。
11.如权利要求10所述的系统,其特征在于, 所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥生成第二消息认证码;还用于在生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第 一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码; 所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥;还用于在验证从所述发送端收到的第一消息认证码时,根据接收端私钥、所述第一密钥交换信息、发送端身份标识计算生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥生成第一消息认证码;还用于在验证从所述发送端收到的第三消息认证码时,根据所述接收端私钥、所述发送端身份标识、所述第二密钥交换相关信息、所述第一密钥交换信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。
12.如权利要求10所述的系统,其特征在于, 所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥生成第二消息认证码;还用于在生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第三消息认证码算法的输入密钥计算得到所述第三消息认证码; 所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密钥,计算得到所述第二消息认证码;还用于在验证从所述发送端收到的第一消息认证码时,根据接收端私钥、所述第一密钥交换信息、发送端身份标识计算生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥生成第一消息认证码;还用于在验证从所述发送端收到的第三消息认证码时,根据所述接收端私钥、所述发送端身份标识、所述第二密钥交换相关信息、所述第一密钥交换信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将所述会话密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。
13.如权利要求10所述的系统,其特征在于, 所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所第二认证密钥中导出会话密钥,将所述会话密钥作为第二消息认证码算法的输入密钥生成第二消息认证码;还`用于在生成第三消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为第三消息认证码算法的输入密钥计算得到所述第三消息认证码; 所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所第二认证密钥中导出会话密钥,将此会话密钥作为第二消息认证码算法的输入密钥计算得到所述第二消息认证码;还用于在验证从所述发送端收到的第一消息认证码时,根据接收端私钥、所述第一密钥交换信息、发送端身份标识计算生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥生成第一消息认证码;还用于在验证从所述发送端收到的第三消息认证码时,根据所述接收端私钥、所述发送端身份标识、所述第二密钥交换相关信息、所述第一密钥交换信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将所述会话密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。
14.如权利要求10至13中任一权利要求所述的系统,其特征在于, 所述发送端消息认证码计算模块,还用于在计算第一消息认证码时,将所述发送端身份标识、接收端身份标识、所述第一密钥交换信息作为第一消息认证码算法的输入消息内容;还用于在计算第三消息认证码时,将所述第一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接收端身份标识作为第三消息认证码算法的输入消息内容; 所述接收端消息认证码计算模块,还用于在计算第二消息认证码时,将所述第一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接收端身份标识作为第二消息认证码算法的输入消息内容。
15.如权利要求10至13中任一权利要求所述的系统,其特征在于, 所述第一密钥交换相关信息包括生成所述第一密钥交换信息时使用的随机数; 所述第二密钥交换 相关信息包括生成所述第二密钥交换信息时使用的随机数。
全文摘要
本发明公开了一种基于身份标识的端到端的密钥认证协商方法及系统,发送端生成第一密钥交换信息T_A,根据T_A、发送端私钥、发送端身份标识ID_A、接收端身份标识ID_B、第一密钥交换相关信息生成第一消息认证码mac1,将mac1和T_A发送至接收端;接收端生成第二密钥交换信息T_B,根据第二密钥交换信息T_B、接收端私钥、ID_A、T_A、第二密钥交换相关信息生成第二消息认证码mac2,并将mac2和T_B发送至发送端;发送端根据T_A、T_B、ID_A、ID_B生成第三消息认证码mac3;接收端验证mac1、发送端验证mac2、接收端验证mac3均成功后两端密钥认证协商成功。本发明尤其适用于身份标识和位置分离的网络,同时可提高密钥协商的安全性。
文档编号H04L9/08GK103188080SQ20111045979
公开日2013年7月3日 申请日期2011年12月31日 优先权日2011年12月31日
发明者周苏静, 韦银星 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1