首页> 中国专利> 一种基于身份标识的端到端的密钥认证协商方法及系统

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

摘要

本发明公开了一种基于身份标识的端到端的密钥认证协商方法及系统,发送端生成第一密钥交换信息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均成功后两端密钥认证协商成功。本发明尤其适用于身份标识和位置分离的网络,同时可提高密钥协商的安全性。

著录项

  • 公开/公告号CN103188080A

    专利类型发明专利

  • 公开/公告日2013-07-03

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN201110459796.3

  • 发明设计人 周苏静;韦银星;

    申请日2011-12-31

  • 分类号H04L9/32(20060101);H04L9/08(20060101);

  • 代理机构11262 北京安信方达知识产权代理有限公司;

  • 代理人李健;龙洪

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2024-02-19 19:02:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-05-02

    专利权的转移 IPC(主分类):H04L 9/32 专利号:ZL2011104597963 登记生效日:20230419 变更事项:专利权人 变更前权利人:昆山创智汇知识产权运营有限公司 变更后权利人:康铂新能源技术(昆山)有限公司 变更事项:地址 变更前权利人:215300 江苏省苏州市昆山开发区夏西街55号C区107、108室 变更后权利人:215000 江苏省苏州市昆山开发区前进东路579号1016室

    专利申请权、专利权的转移

  • 2018-02-09

    授权

    授权

  • 2014-07-02

    实质审查的生效 IPC(主分类):H04L9/32 申请日:20111231

    实质审查的生效

  • 2013-07-03

    公开

    公开

说明书

技术领域

本发明涉及信息安全技术领域,尤其涉及一种基于身份标识的端到端的 密钥认证协商方法及系统。

背景技术

端到端的认证和密钥协商方法是通信网络中广泛用到的一种信息安全技 术,具体地一般是通过公钥密码技术、对称密码技术实现。其中使用对称密 码技术需要复杂、安全的密钥分发、管理系统。

公钥密码技术需要为每个用户生成一对数学上相关联的公钥和私钥,公 钥通过某种方式公开发布,使得任何发送者都可获得接收者的公钥,私钥则 由接收者秘密保存。传统公钥密码系统中一个最大的安全问题就是如何确保 使用的公钥真正属于指定接收者,为解决这个问题,催生了第三方证书认证 中心(Certificate Authority,简称CA),CA为用户的公钥发放证书,将公 钥和用户的身份标识绑定在一起。以CA为中心的公钥基础设施(Public Key  Infrastructure,简称PKI)也以庞大的复杂性著称。

为了解决传统公钥密码方案应用复杂的问题,1984年Shamir提出基于 身份标识的密码技术和系统的概念,又称标识密码技术和系统,以下简称IBC (Identity Based Cryptography)技术和系统。IBC技术隶属于公钥密码技术, 只是用户的身份标识就是该用户的公钥,不需要借助于PKI将公钥和身份 标识绑定在一起,保存主密钥的密钥中心根据用户身份标识为每个用户生成 私钥,通过安全地方式发给用户。

一些现有技术将IBC签名或加密直接应用到传统的密钥协商协议(包括 非基于身份标识的密钥协商协议)中,以提高密钥协商中的认证安全性,如 申请号为200810116251.0的中国专利“基于身份的认证方法、保密通信方法、 设备和系统”,申请号为200710046320.0的中国专利“基于身份的密码体制 为基础的业务认证方法和系统”,以及美国专利“Identity Based Authenticated  Key Agreement Protocol”(US2010211779和WO2010126638(A2))和 “Secure Key Management in Multimedia Communication System” (US2011055567(A1)和WO2011031439(A1))。

还有一种基于身份标识的密钥协商协议,利用IBC的特点而设计,如 Chen、Cheng和Smart等人在“Identity-based Key Agreement Protocols From  Pairings”(International Journal of Information Security,Volume 6,Number 4, 213-241,2007)中总结的协议。这些协议的特点是会话密钥根据用户私钥和 交换的相关数据导出,且消息交换次数比较少,一般只需交换两次即可完成 一次密钥协商,双方的认证通过是否可导出相同的会话密钥隐含地进行。

第一种技术通过对交换消息验签或解密完成端到端的认证,这些操作通 常计算量比较大。第二种技术采用的隐含认证方式通常是消息交换完成以后 才能进行,容易引起拒绝服务攻击(DOS)。基于第二种技术还有一种变体, 即非交互地认证和密钥协商协议,只需发送一次消息即可完成对发送端的认 证和密钥协商,但是这样产生的会话密钥没有接收端的贡献,随机性和安全 性比较差。在具有身份标识和位置分离特征的网络架构中也存在此类问题。

具有身份标识和位置分离特征的网络架构是为了解决现有IP(Internet  Protocol)网络中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 BB1 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、对方的身份标识、收到的T_A、和T_B相 关的随机数b,计算共享密钥KEY=e(T_A+bH(ID_A),d_B)并从中导出会 话密钥(106)。

上述方法采用隐含认证方式,消息交换完成以后才能认证对方,容易引 起拒绝服务攻击。

发明内容

本发明要解决的技术问题是提供一种安全的基于身份标识的端到端的密 钥认证协商方法及系统,适用于身份标识和位置分离的网络。

为了解决上述技术问题,本发明提供了一种基于身份标识的端到端的密 钥认证协商方法,其中,

发送端生成第一密钥交换信息,根据所述第一密钥交换信息、发送端私 钥、发送端身份标识、接收端身份标识、第一密钥交换相关信息生成第一消 息认证码,并将所述第一消息认证码和第一密钥交换信息组成第一协商消息 发送至接收端;

所述接收端生成第二密钥交换信息,根据所述第二密钥交换信息、接收 端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息 生成第二消息认证码,并将所述第二消息认证码和第二密钥交换信息组成第 二协商消息发送至发送端;

所述发送端根据所述第一密钥交换信息、第二密钥交换信息、接收端身 份标识、发送端身份标识生成第三消息认证码,将所述第三消息认证码发送 至所述接收端;

所述接收端验证所述第一消息认证码、所述发送端验证所述第二消息认 证码、所述接收端验证所述第三消息认证码均成功后,所述发送端和接收端 的密钥认证协商成功。

进一步地,上述方法还可以具有以下特点:

所述发送端生成第一消息认证码时,根据发送端私钥、接收端身份标识、 第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥, 将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第 一消息认证码;

所述接收端生成第二消息认证码时,根据接收端私钥、发送端身份标识、 所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二 密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的 输入密钥,

所述发送端生成第三消息认证码时,根据所述发送端私钥、所述接收端 身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密 钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥作为第三消 息认证码算法的输入密钥,计算得到所述第三消息认证码。

进一步地,上述方法还可以具有以下特点:

所述发送端生成第一消息认证码时,根据发送端私钥、接收端身份标识、 第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥, 将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第 一消息认证码;

所述接收端生成第二消息认证码时,根据接收端私钥、发送端身份标识、 所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二 密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的 输入密钥,计算得到所述第二消息认证码;

所述发送端生成第三消息认证码时,根据所述发送端私钥、所述接收端 身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密 钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话 密钥,将此会话密钥作为第三消息认证码算法的输入密钥计算得到所述第三 消息认证码。

进一步地,上述方法还可以具有以下特点:

所述发送端生成第一消息认证码时,根据发送端私钥、接收端身份标识、 第一密钥交换相关信息生成第一密钥,从所述第一密钥中导出第一认证密钥, 将所述第一认证密钥作为第一消息认证码算法的输入密钥,计算得到所述第 一消息认证码;

所述接收端生成第二消息认证码时,根据接收端私钥、发送端身份标识、 所述第一密钥交换信息、第二密钥交换相关信息生成第二密钥,从所述第二 密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话 密钥作为第二消息认证码算法的输入密钥计算得到所述第二消息认证码;

所述发送端生成第三消息认证码时,根据所述发送端私钥、所述接收端 身份标识、所述第二密钥交换信息、所述第一密钥交换相关信息生成第二密 钥,从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话 密钥,将此会话密钥作为第三消息认证码算法的输入密钥计算得到所述第三 消息认证码。

进一步地,上述方法还可以具有以下特点:

所述接收端收到所述第一协商消息后,根据接收端私钥、所述第一密钥 交换信息、发送端身份标识计算生成第一密钥,从所述第一密钥中导出第一 认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入密钥生成第 一消息认证码,判断此第一消息认证码与从所述发送端收到的第一消息认证 码相同时,继续生成第二密钥交换信息,否则,判定密钥认证协商失败。

进一步地,上述方法还可以具有以下特点:

所述发送端收到第二协商消息后,根据发送端私钥、接收端身份标识、 所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二 密钥中导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的 输入密钥生成第二消息认证码,判断此第二消息认证码与从所述发送端收到 的第二消息认证码相同时,继续生成第三消息认证码,否则,判定密钥认证 协商失败。

进一步地,上述方法还可以具有以下特点:

所述发送端收到第二协商消息后,根据发送端私钥、接收端身份标识、 所述第二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二 密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥,将所述会 话密钥作为第二消息认证码算法的输入密钥生成第二消息认证码,判断此第 二消息认证码与从所述发送端收到的第二消息认证码相同时,继续生成第三 消息认证码,否则,判定密钥认证协商失败。

进一步地,上述方法还可以具有以下特点:

计算第一消息认证码时,将所述发送端身份标识、接收端身份标识、所 述第一密钥交换信息作为第一消息认证码算法的输入消息内容;

计算第二消息认证码时,将所述第一密钥交换信息、第二密钥交换信息、 所述发送端身份标识、所述接收端身份标识作为第二消息认证码算法的输入 消息内容;

计算第三消息认证码时,将所述第一密钥交换信息、第二密钥交换信息、 所述发送端身份标识、所述接收端身份标识作为第三消息认证码算法的输入 消息内容。

进一步地,上述方法还可以具有以下特点:

所述第一密钥交换相关信息包括生成所述第一密钥交换信息时使用的随 机数;

所述第二密钥交换相关信息包括生成所述第二密钥交换信息时使用的随 机数。

为了解决上述技术问题,本发明提供了一种基于身份标识的端到端的密 钥认证协商系统,包括发送端和接收端,其中,所述发送端和接收端均包括 密钥交换信息计算模块和消息认证码计算模块、密钥计算模块;

发送端密钥交换信息计算模块,用于生成第一密钥交换信息;

发送端消息认证码计算模块,用于根据所述第一密钥交换信息、发送端 私钥、发送端身份标识、接收端身份标识、第一密钥交换相关信息生成第一 消息认证码,并将所述第一消息认证码和第一密钥交换信息组成第一协商消 息发送至接收端;还用于验证从所述接收端收到的第二消息认证码;还用于 在所述发送端收到所述第二协商消息后,根据所述第一密钥交换信息、第二 密钥交换信息、接收端身份标识、发送端身份标识生成第三消息认证码,将 所述第三消息认证码发送至所述接收端;

接收端密钥交换信息计算模块,用于在所述接收端收到所述第一协商消 息后,生成第二密钥交换信息;

接收端消息认证码计算模块,用于根据所述第二密钥交换信息、接收端 私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生 成第二消息认证码,并将所述第二消息认证码和第二密钥交换信息组成第二 协商消息发送至发送端;还用于验证从所述发送端收到的第一消息认证码和 第三消息认证码;

发送端密钥计算模块,用于计算第一密钥、第一认证密钥、第二密钥、 第二认证密钥、会话密钥;

接收端密钥计算模块,用于计算第一密钥、第一认证密钥、第二密钥、 第二认证密钥、会话密钥。

进一步地,上述系统还可以具有以下特点:

所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根 据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从 所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证 码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接 收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第 二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中 导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密 钥生成第二消息认证码;还用于在生成第三消息认证码时,根据所述发送端 私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相 关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认 证密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码;

所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根 据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相 关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认 证密钥作为第二消息认证码算法的输入密钥;还用于在验证从所述发送端收 到的第一消息认证码时,根据接收端私钥、所述第一密钥交换信息、发送端 身份标识计算生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述 第一认证密钥作为第一消息认证码算法的输入密钥生成第一消息认证码;还 用于在验证从所述发送端收到的第三消息认证码时,根据所述接收端私钥、 所述发送端身份标识、所述第二密钥交换相关信息、所述第一密钥交换信息 生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥 作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。

进一步地,上述系统还可以具有以下特点:

所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根 据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从 所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证 码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接 收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第 二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中 导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密 钥生成第二消息认证码;还用于在生成第三消息认证码时,根据所述发送端 私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相 关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认 证密钥中导出会话密钥,将此会话密钥作为第三消息认证码算法的输入密钥 计算得到所述第三消息认证码;

所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根 据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相 关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认 证密钥作为第二消息认证码算法的输入密钥,计算得到所述第二消息认证码; 还用于在验证从所述发送端收到的第一消息认证码时,根据接收端私钥、所 述第一密钥交换信息、发送端身份标识计算生成第一密钥,从所述第一密钥 中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入 密钥生成第一消息认证码;还用于在验证从所述发送端收到的第三消息认证 码时,根据所述接收端私钥、所述发送端身份标识、所述第二密钥交换相关 信息、所述第一密钥交换信息生成第二密钥,从所述第二密钥中导出第二认 证密钥,从所述第二认证密钥中导出会话密钥,将所述会话密钥作为第三消 息认证码算法的输入密钥,计算得到所述第三消息认证码。

进一步地,上述系统还可以具有以下特点:

所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根 据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从 所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证 码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接 收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第 二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中 导出第二认证密钥,从所第二认证密钥中导出会话密钥,将所述会话密钥作 为第二消息认证码算法的输入密钥生成第二消息认证码;还用于在生成第三 消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥 交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导 出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为 第三消息认证码算法的输入密钥计算得到所述第三消息认证码;

所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根 据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相 关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所第二认证 密钥中导出会话密钥,将此会话密钥作为第二消息认证码算法的输入密钥计 算得到所述第二消息认证码;还用于在验证从所述发送端收到的第一消息认 证码时,根据接收端私钥、所述第一密钥交换信息、发送端身份标识计算生 成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作 为第一消息认证码算法的输入密钥生成第一消息认证码;还用于在验证从所 述发送端收到的第三消息认证码时,根据所述接收端私钥、所述发送端身份 标识、所述第二密钥交换相关信息、所述第一密钥交换信息生成第二密钥, 从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥, 将所述会话密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消 息认证码。

进一步地,上述系统还可以具有以下特点:

所述发送端消息认证码计算模块,还用于在计算第一消息认证码时,将 所述发送端身份标识、接收端身份标识、所述第一密钥交换信息作为第一消 息认证码算法的输入消息内容;还用于在计算第三消息认证码时,将所述第 一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接收端身 份标识作为第三消息认证码算法的输入消息内容;

所述接收端消息认证码计算模块,还用于在计算第二消息认证码时,将 所述第一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接 收端身份标识作为第二消息认证码算法的输入消息内容。

进一步地,上述系统还可以具有以下特点:

所述第一密钥交换相关信息包括生成所述第一密钥交换信息时使用的随 机数;

所述第二密钥交换相关信息包括生成所述第二密钥交换信息时使用的随 机数。

本发明提供密钥的双向确认协商方法,可应用于通信网络和各种网络应 用,尤其适用于身份标识和位置分离的网络,同时可提高密钥协商的安全性, 能够抵抗常见攻击。本方案中接收端在收到第一个密钥协商消息后,就可对 发送端进行认证,且认证涉及的计算效率比较高。

附图说明

图1是现有技术中的一种基于身份标识的认证和密钥协商方法流程图;

图2是实施例中基于身份标识的端到端的密钥认证协商系统结构图;

图3是实施例中基于身份标识的端到端的密钥认证协商方法流程图;

图4是具体实施例中一中的密钥认证协商方法流程图;

图5是具体实施例中二中的密钥认证协商方法流程图;

图6是具体实施例中三中的密钥认证协商方法流程图。

具体实施方式

如图2所示,基于身份标识的端到端的密钥认证协商系统,包括发送端 和接收端。所述发送端和接收端均包括密钥交换信息计算模块和消息认证码 计算模块、密钥计算模块。

发送端密钥交换信息计算模块,用于生成第一密钥交换信息;

发送端消息认证码计算模块,用于根据所述第一密钥交换信息、发送端 私钥、发送端身份标识、接收端身份标识、第一密钥交换相关信息生成第一 消息认证码,并将所述第一消息认证码和第一密钥交换信息组成第一协商消 息发送至接收端;还用于验证从所述接收端收到的第二消息认证码;还用于 在所述发送端收到所述第二协商消息后,根据所述第一密钥交换信息、第二 密钥交换信息、接收端身份标识、发送端身份标识生成第三消息认证码,将 所述第三消息认证码发送至所述接收端;

接收端密钥交换信息计算模块,用于在所述接收端收到所述第一协商消 息后,生成第二密钥交换信息;

接收端消息认证码计算模块,用于根据所述第二密钥交换信息、接收端 私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相关信息生 成第二消息认证码,并将所述第二消息认证码和第二密钥交换信息组成第二 协商消息发送至发送端;还用于验证从所述发送端收到的第一消息认证码和 第三消息认证码;

发送端密钥计算模块,用于计算第一密钥、第一认证密钥、第二密钥、 第二认证密钥、会话密钥;

接收端密钥计算模块,用于计算第一密钥、第一认证密钥、第二密钥、 第二认证密钥、会话密钥。

实施方式一:

所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根 据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从 所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证 码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接 收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第 二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中 导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密 钥生成第二消息认证码;还用于在生成第三消息认证码时,根据所述发送端 私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相 关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认 证密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。

所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根 据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相 关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认 证密钥作为第二消息认证码算法的输入密钥;还用于在验证从所述发送端收 到的第一消息认证码时,根据接收端私钥、所述第一密钥交换信息、发送端 身份标识计算生成第一密钥,从所述第一密钥中导出第一认证密钥,将所述 第一认证密钥作为第一消息认证码算法的输入密钥生成第一消息认证码;还 用于在验证从所述发送端收到的第三消息认证码时,根据所述接收端私钥、 所述发送端身份标识、所述第二密钥交换相关信息、所述第一密钥交换信息 生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认证密钥 作为第三消息认证码算法的输入密钥,计算得到所述第三消息认证码。

实施方式二:

所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根 据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从 所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证 码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接 收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第 二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中 导出第二认证密钥,将所述第二认证密钥作为第二消息认证码算法的输入密 钥生成第二消息认证码;还用于在生成第三消息认证码时,根据所述发送端 私钥、所述接收端身份标识、所述第二密钥交换信息、所述第一密钥交换相 关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所述第二认 证密钥中导出会话密钥,将此会话密钥作为第三消息认证码算法的输入密钥 计算得到所述第三消息认证码;

所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根 据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相 关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,将所述第二认 证密钥作为第二消息认证码算法的输入密钥,计算得到所述第二消息认证码; 还用于在验证从所述发送端收到的第一消息认证码时,根据接收端私钥、所 述第一密钥交换信息、发送端身份标识计算生成第一密钥,从所述第一密钥 中导出第一认证密钥,将所述第一认证密钥作为第一消息认证码算法的输入 密钥生成第一消息认证码;还用于在验证从所述发送端收到的第三消息认证 码时,根据所述接收端私钥、所述发送端身份标识、所述第二密钥交换相关 信息、所述第一密钥交换信息生成第二密钥,从所述第二密钥中导出第二认 证密钥,从所述第二认证密钥中导出会话密钥,将所述会话密钥作为第三消 息认证码算法的输入密钥,计算得到所述第三消息认证码。

实施方式三:

所述发送端消息认证码计算模块,还用于在生成第一消息认证码时,根 据发送端私钥、接收端身份标识、第一密钥交换相关信息生成第一密钥,从 所述第一密钥中导出第一认证密钥,将所述第一认证密钥作为第一消息认证 码算法的输入密钥,计算得到所述第一消息认证码;还用于在验证从所述接 收端收到的第二消息认证码时,根据发送端私钥、接收端身份标识、所述第 二密钥交换信息、第一密钥交换相关信息生成第二密钥,从所述第二密钥中 导出第二认证密钥,从所第二认证密钥中导出会话密钥,将所述会话密钥作 为第二消息认证码算法的输入密钥生成第二消息认证码;还用于在生成第三 消息认证码时,根据所述发送端私钥、所述接收端身份标识、所述第二密钥 交换信息、所述第一密钥交换相关信息生成第二密钥,从所述第二密钥中导 出第二认证密钥,从所述第二认证密钥中导出会话密钥,将此会话密钥作为 第三消息认证码算法的输入密钥计算得到所述第三消息认证码;

所述接收端消息认证码计算模块,还用于在生成第二消息认证码时,根 据接收端私钥、发送端身份标识、所述第一密钥交换信息、第二密钥交换相 关信息生成第二密钥,从所述第二密钥中导出第二认证密钥,从所第二认证 密钥中导出会话密钥,将此会话密钥作为第二消息认证码算法的输入密钥计 算得到所述第二消息认证码。还用于在验证从所述发送端收到的第一消息认 证码时,根据接收端私钥、所述第一密钥交换信息、发送端身份标识计算生 成第一密钥,从所述第一密钥中导出第一认证密钥,将所述第一认证密钥作 为第一消息认证码算法的输入密钥生成第一消息认证码;还用于在验证从所 述发送端收到的第三消息认证码时,根据所述接收端私钥、所述发送端身份 标识、所述第二密钥交换相关信息、所述第一密钥交换信息生成第二密钥, 从所述第二密钥中导出第二认证密钥,从所述第二认证密钥中导出会话密钥, 将所述会话密钥作为第三消息认证码算法的输入密钥,计算得到所述第三消 息认证码。

在实现上述方式时,所述发送端消息认证码计算模块,还用于在计算第 一消息认证码时,将所述发送端身份标识、接收端身份标识、所述第一密钥 交换信息作为第一消息认证码算法的输入消息内容;还用于在计算第三消息 认证码时,将所述第一密钥交换信息、第二密钥交换信息、所述发送端身份 标识、所述接收端身份标识作为第三消息认证码算法的输入消息内容;

所述接收端消息认证码计算模块,还用于在计算第二消息认证码时,将 所述第一密钥交换信息、第二密钥交换信息、所述发送端身份标识、所述接 收端身份标识作为第二消息认证码算法的输入消息内容。

其中,所述第一密钥交换相关信息包括生成所述第一密钥交换信息时使 用的随机数;所述第二密钥交换相关信息包括生成所述第二密钥交换信息时 使用的随机数。

如图3所示,基于身份标识的端到端的密钥认证协商方法包括:

发送端生成第一密钥交换信息T_A(301),根据所述第一密钥交换信息、 发送端私钥、发送端身份标识、接收端身份标识、第一密钥交换相关信息生 成第一消息认证码mac1(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计算生成第一密钥KEY1=e(d_A,(a+1)H(ID_B))。

步骤403,从第一密钥KEY1中导出一个适当长度的第一认证密钥key1, 长度满足消息认证码算法MAC1的要求,例如选择HMAC作为MAC1时, 第一认证密钥的长度可以是128比特;发送端以第一认证密钥key1作为 MAC1的输入密钥,以发送端身份标识ID_A、接收端身份标识ID_B、以 及T_A的串接(ID_A,ID_B,T_A)作为MAC1的输入消息内容,计算第一消息 认证码mac1=MAC1_key1(ID_A,ID_B,T_A)。

步骤404,发送端将第一密钥交换信息T_A和第一消息认证码mac1组 成第一协商消息发送给接收端。

步骤405,接收端收到T_A和mac1后,根据接收端私钥d_B、第一密 钥交换信息T_A、发送端身份标识ID_A,计算生成第一密钥 KEY1’=e(T_A+H(ID_A),d_B)。

步骤406,接收端从生成的第一密钥KEY1’中导出第一认证密钥key1’, 采用发送端计算第一消息认证码的方法重新计算第一消息认证码mac1’。

步骤407,接收端验证mac1’和收到的mac1是否相同,如果相同,对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,发送端验证mac2’和收到的mac2是否相同,如果相同,对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等通过共享密钥认证消息的算法。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特 征可以相互任意组合。

当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的 情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形, 但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序 来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读 存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用 一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用 硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任 何特定形式的硬件和软件的结合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号