买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】具有前向安全性的基于身份的认证密钥交换方案中用于计算公有会话密钥的系统和方法_华为国际有限公司_201880018229.4 

申请/专利权人:华为国际有限公司

申请日:2018-03-14

公开(公告)日:2023-01-13

公开(公告)号:CN110402560B

主分类号:H04L9/08

分类号:H04L9/08;H04L9/32

优先权:["20170314 SG 10201702038U"]

专利状态码:有效-授权

法律状态:2023.01.13#授权;2019.11.26#实质审查的生效;2019.11.01#公开

摘要:本文描述了一种具有前向安全性的基于身份的认证密钥交换方案中用于计算公有会话密钥的系统和方法,其中各公有会话密钥具有用于对设备之间的数字通信进行编码的强前向安全性。具体地,所述系统利用具有前向安全性的基于身份的认证密钥交换方案,允许两台设备先验证每台设备的真实性后,再由这些认证后的设备开始产生公有会话密钥,然后再利用所述公有会话密钥,对这两台设备之间的数字通信进行编码。

主权项:1.一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的系统,其特征在于,包括:安全服务器,用于:生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备,用于:基于所述第一设备生成的第一随机值a和所述主公钥mpk计算第一元素ki;向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi;所述第二设备,用于:基于所述第二设备生成的第二随机值b和所述主公钥mpk计算第二元素kj;通过使用基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;所述第一设备,用于:使用所述基于身份的签名方案的验证函数和所述第二设备的所述身份idj验证所述签名σj,并在验证所述签名σj时,使用所述基于身份的签名方案的所述签名函数和所述私钥ski对所述第二元素kj进行签名来计算签名σi;基于所述第二元素kj、所述主公钥mpk和所述第一随机值a计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK;所述安全服务器还用于基于所述第一元素ki、所述第二元素kj的一部分和从所述主密钥msk获得的参数s计算公有密钥cskgc;所述公有密钥csi和所述公有密钥cskgc使用非对称双线性映射e计算。

全文数据:具有前向安全性的基于身份的认证密钥交换方案中用于计算公有会话密钥的系统和方法发明内容本发明涉及一种用于生成公有会话密钥的系统和方法,其中各公有会话密钥具有用于对设备之间的数字通信进行编码的强前向安全性。具体地,所述系统利用具有前向安全性的基于身份的认证密钥交换方案,允许两台设备先验证每台设备的真实性后再由这些认证后的设备开始产生公有会话密钥,然后再利用所述公有会话密钥对这两台设备之间的数字通信进行编码。现有技术总结由于多种技术的融合,现在越来越多的设备能够无缝地与互联网进行无线通信,或者能够彼此之间进行无线交换通信。基于这种融合,物联网InternetofThings,简称IoT的前景近年来越来越有吸引力。在物联网中,成千上万的实体或设备即,万物将彼此互联。这些设备包括智能芯片、智能插头、智能手表、智能电话、智能车辆、智能建筑物等设备或实体,他们或是直接彼此通信,或是通过互联网通信。随着物联网扩展到更多领域,这些设备变得更容易受到黑客或未授权用户的网络攻击,被入侵的设备可能会准许恶意用户访问所述设备所属的网络。因此,最重要的是应当先建立好安全协议,允许一个实体验证与其通信的对等实体的真实性,然后再在这两个实体之间交换数据。除了上述内容外,一旦所述实体的真实性验证完,便必须建立仅限这两个实体知道的公有密钥,以便于在这些实体之间签名数据消息。其目的是确保即使这两个实体之间传送的数据被截获或重定向,所述数据也不会被破坏。建立实体间数据通信签名密钥的常用方法包括在相关方之间预先共享一公有对称密钥。对于这种方法,将使用该预共享或预商定的密钥对实体之间待传输的数据消息进行签名。如果所述接收实体能够使用该预共享密钥解密所述接收的消息,这意味着所述发送者的真实性已得到验证,然后所述接收者可以继续相应地处理所述解密的消息。遗憾的是,此方法是不可扩展的,相当不灵活,需要在所述实体或设备可以彼此通信之前将所述公有密钥预共享或传送到所有可信实体或设备。在所述IoT环境中,设备具有高移动性是常态,需要彼此交换数据的设备可能没有预先建立密钥的机会。已经提出另一种方法,该方法利用基于公钥基础设施publickeyinfrastructure,简称PKI的方案,使得通过公钥证书将分配给每个授权实体的密钥对绑定到其持有者。然后,所述密钥对利用公钥加密或数字签名方法等公钥密码系统签名数据消息或通过验证发送者的公钥证书验证所述发送者的真实性。众所周知,这种公钥基础设施的建立和维护非常昂贵,需要实体不断与PKI服务器保持联系以验证相应的公钥证书。已经提出另一种方法,该方法利用基于身份的加密方法认证实体和签名数据消息。这种基于身份的密码系统是基于双线性配对的特殊公钥密码系统,利用用户名、电子邮件地址、电话号码、IP地址等实体身份作为公钥,然后通过密钥生成中心KeyGenerationCentre,简称KGC从所述实体的身份导出相应私钥,所述密钥生成中心包含主密钥,然后利用所述主密钥生成实体私钥。基于身份的签名方案的认证密钥交换协议需要既拥有强前向安全性,又能将会话密钥托管到经批准的KGC,这具有相当大的挑战性。因此,本领域技术人员已经提出了各种方案来解决这一问题。本领域技术人员提出的一种方法涉及一种定制结构,所述定制结构不直接利用基于身份的加密的签名或加密功能来认证实体和交换密钥。在这种定制结构中,之所以能够实现所述公有会话密钥的托管,因为所述密钥生成中心KeyGenerationCentre,简称KGC能够计算由所述密钥生成中心生成的用户私钥。这种方法的缺点是只能实现较弱的前向安全性。已经提出另一种方法,该方法利用一种显式托管方法,使所述托管代理即,KGC用于具有用于公有密钥加密的额外密钥对,使得所述公有会话密钥根据所述托管代理的公有密钥加密并与用户之间的其它密钥交换消息一起传输。这种方法的缺点是,任何一方所述加密器除外很难检查所述托管的对象是否确实是对待建立的会话密钥进行加密的对象。由于上述原因,本领域技术人员通过不断努力,提出一种用于为基于身份的签名方案的用户生成公有会话密钥的系统和方法,使得所述生成的公有会话密钥具有强前向安全性,并且所述会话密钥必须能够由所述KGC根据需要进行计算。发明内容通过采用本发明提供的系统和方法,上述和其它问题得到了解决,并且使本领域得以进步。根据本发明的系统和方法的实施例的第一优点在于:根据本发明生成的所述公有会话密钥能够实现强前向安全性。此外,本发明允许将所述生成的公有会话密钥托管到经授权的密钥生成中心。根据本发明的系统和方法的实施例的第二优点在于:本发明可以使用通用的基于身份的认证密钥交换协议执行,利用这种基于身份的签名方案的签名函数进行实体认证和密钥交换。根据本发明的系统和方法的实施例的第三优点在于:所述托管所述生成的公有会话密钥不依赖于所述将所述用户私钥托管到所述KGC。换言之,所述KGC可以通过收集密钥交换用户之间发生的所有通信来计算所述公有会话密钥,并且所述KGC不一定知道所述用户私钥实际上,在某些基于身份的签名方案中,用户私钥由所述KGC和所述用户共同生成,因此所述KGC本身不知道所述用户私钥。根据本发明的系统和方法的实施例的第四优点在于:对所述公有会话密钥进行隐式托管无需在所述KGC处维护和存储额外密钥对,并且使所述KGC能够计算所述托管会话密钥的所述托管对象对于所述KGC是可验证的。以上优点由根据本发明的方法实施例通过以下方式操作实现。根据本发明的第一方面,提供一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的系统,包括:安全服务器,用于:生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备,用于:基于所述第一设备生成的第一随机值a和所述主公钥mpk计算第一元素ki;向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:基于所述第二设备生成的第二随机值b和所述主公钥mpk计算第二元素kj;通过使用基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;使用所述基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,使用所述基于身份的签名方案的所述签名函数和所述私钥ski对所述第二元素kj进行签名来计算签名σi;基于所述第二元素kj、所述主公钥mpk和所述第一随机值a计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第一方面,根据本发明的实施例,所述第一设备还用于将所述签名σi传送到所述第二设备,由此所述系统还包括:所述第二设备,用于:使用所述基于身份的签名方案的所述验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,基于所述第一元素ki、所述主公钥mpk和所述第二随机值b计算公有密钥csj,并通过向所述密钥导出函数提供所述公有密钥csj来生成所述公有会话密钥SK。结合所述第一方面,根据本发明的实施例,所述主公钥mpk包括P,s·P,其中P是循环群G1的生成元,具有定义在椭圆曲线上的素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P;所述公有密钥csi和所述公有密钥csj使用对称双线性映射e计算:G1xG1→G2,其中G2是循环群,具有定义在所述椭圆曲线上的素数阶q;csi定义为csi=eb·P,s·Pa,且csj定义为csj=ea·P,s·Pb。结合所述第一方面,根据本发明的实施例,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj和从所述主密钥msk获得的参数s计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=ea·P,b·Ps。结合所述第一方面,根据本发明的实施例,所述主公钥mpk包括s·Q,Q,P,其中P是循环群G1的生成元,具有定义在椭圆曲线上的素数阶q,Q是循环群G2的生成元,具有素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P,b·Q;所述公有密钥csi和所述公有密钥csj使用非对称双线性映射e计算:G1xG2→G,其中G是循环群,具有定义在所述椭圆曲线上的素数阶q;csi定义为csi=eb·P,s·Qa,且csj定义为csj=ea·P,s·Qb。结合所述第一方面,根据本发明的实施例,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj的一部分和从所述主密钥msk获得的参数s计算公有密钥cskgc,所述公有密钥cskgc定义为cskgc=ea·P,b·Qs。根据本发明的第二方面,提供一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的系统,包括:安全服务器,用于:生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备,用于:基于所述第一设备生成的第一随机值a和所述私钥ski计算第一元素ki;向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:基于所述第二设备生成的第二随机值b和所述第一元素ki计算第二元素kj;通过使用自认证的基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki的一部分和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;使用所述自认证的基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σi时,通过使用所述自认证的基于身份的签名方案的签名函数和所述私钥ski对所述第二元素kj的一部分和与所述随机值a结合的所述私钥skj的一部分进行签名来计算签名σi;通过向双输入函数f提供所述主公钥mpk、所述第一随机值a、所述第二设备idj的所述身份、所述私钥skj的一部分、所述第二元素kj和所述私钥ski的一部分来计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第二方面,根据本发明的实施例,所述第一设备还用于将与所述随机值a结合的所述私钥skj的所述部分和所述签名σi传送到所述第二设备,由此所述系统还包括:所述第二设备,用于:使用所述自认证的基于身份的签名方案的所述验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,通过向双输入函数f提供所述主公钥mpk、所述第二随机值b、所述第一设备idi的所述身份、所述第一元素ki、所述私钥skj的一部分和与所述随机值a结合的所述私钥skj的所述传送部分来计算公有密钥csj;通过向密钥导出函数提供所述公有密钥csj来生成所述公有会话密钥SK。结合所述第二方面,根据本发明的实施例,所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述私钥ski定义为ski=Ri=gri,si=ri+xHRi,idi,所述私钥skj定义为skj=Rj=grj,sj=rj+xHRj,idj,其中ri和rj是随机数,H是防撞散列函数;所述第一元素ki定义为ki=Ri,ga;所述第二元素kj定义为kj=Rib,gb;所述双输入函数f包括串联函数或异或函数,其中csi定义为且csj定义为结合所述第二方面,根据本发明的实施例,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;通过向双输入函数f提供所述主密钥msk、所述第一元素ki的一部分、具有所述私钥skj的一部分的所述第二设备idj的所述身份、所述第二元素kj的一部分、具有所述私钥ski的一部分的所述第一设备idi的所述身份来计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=fya.hidj,Rj,yb.hidi,Ri。根据本发明的第三方面,提供一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的系统,包括:安全服务器,用于:生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备,用于:基于所述第一设备生成的第一随机值a计算第一元素ki;向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:基于所述第一元素ki和所述第二设备生成的第二随机值b计算元素uj;基于所述元素uj和所述第二随机值b计算第二元素kj;通过使用自认证的基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来生成签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;使用所述自认证的基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,使用所述自认证的基于身份的签名方案的所述签名函数和所述私钥ski对所述第二元素kj的一部分进行签名来计算签名σi;基于所述第二元素kj的所述部分和所述第一随机值a计算元素ui;基于所述元素ui和所述主公钥mpk计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第三方面,根据本发明的实施例,所述第一设备还用于将所述签名σi传送到所述第二设备,由此所述系统还包括:所述第二设备,用于:使用所述自认证的基于身份的签名方案的所述验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,基于所述元素uj和所述主公钥mpk计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj来生成所述公有会话密钥SK。结合所述第三方面,根据本发明的实施例,所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=ga;所述第二元素kj定义为kj=U,gb,其中且所述元素uj定义为uj=gab;所述公有密钥csi定义为且所述公有密钥csj定义为其中所述元素ui定义为ui=gab。结合所述第三方面,根据本发明的实施例,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述元素uj或所述元素ui和从所述主密钥msk获得的参数x计算公有密钥cskgc,其中cskgc定义为cskgc=Ux。根据本发明的第四方面,提供一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的系统,包括:安全服务器,用于:生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备,用于:基于所述第一设备生成的第一随机值a和所述主公钥mpk计算第一元素ki;通过使用基于身份的签名方案的签名函数和所述私钥ski对所述第一元素ki进行签名来计算签名σi;向所述第二设备传送所述签名σi、所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:使用所述基于身份的签名方案的验证函数和所述第一设备idi的所述身份验证所述签名σi;当验证所述签名的第一元素ki时,基于所述第二设备生成的第二随机值b和所述主公钥mpk计算第二元素kj;通过使用所述基于身份的签名方案的所述签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;使用所述基于身份的签名方案的所述验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,基于所述第二元素kj、所述主公钥mpk和所述第一随机值a计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi生成验证密钥vki;通过向认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vki来计算验证数据vdi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第四方面,根据本发明的实施例,所述第一设备还用于将所述验证数据vdi传送到所述第二设备,由此所述系统还包括:所述第二设备,用于:基于所述第一元素ki、所述主公钥mpk和所述第二随机值b计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj生成验证密钥vkj;通过向所述认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vkj来计算验证数据vdj;确定所述验证数据vdi是否与所述验证数据vdj匹配;当所述验证数据vdi与所述验证数据vdj匹配时,通过向密钥导出函数提供所述公有密钥csj生成所述公有会话密钥SK。结合所述第四方面,根据本发明的实施例,所述主公钥mpk包括P,s·P,其中P是循环群G1的生成元,具有素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P;所述公有密钥csi和所述公有密钥csj使用对称双线性映射e计算:G1xG1→G2,其中G2是具有素数阶q的循环群;csi定义为csi=es·P,b·Pa,且csj定义为csj=es·P,a·Pb。结合所述第四方面,根据本发明的实施例,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj和从所述主密钥msk获得的参数s计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=ea.P,b.Ps。结合所述第四方面,根据本发明的实施例,所述主公钥mpk包括s·Q,Q,P,其中P是循环群G1的生成元,具有素数阶q,Q是循环群G2的生成元,具有素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P,b·Q;所述公有密钥csi和所述公有密钥csj使用非对称双线性映射e计算:G1xG2→G,其中csi定义为csi=eb·P,s·Qa,且csj定义为csj=ea·P,s·Qb。结合所述第四方面,根据本发明的实施例,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj的一部分和从所述主密钥msk获得的参数s计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=ea.P,b.Qs。根据本发明的第五方面,提供一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的系统,包括:安全服务器,用于:生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备,用于:基于所述第一设备生成的第一随机值a和所述私钥ski计算第一元素ki;通过使用自认证的基于身份的签名方案的签名函数和所述私钥ski对所述第一元素ki进行签名来计算签名σi;向所述第二设备传送所述签名σi、所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:使用所述自认证的基于身份的签名方案的验证函数和所述第一设备idi的身份验证所述签名σi,并在验证所述签名σi时,基于所述第二设备生成的第二随机值b和所述第一元素ki计算第二元素kj;通过使用所述自认证的基于身份的签名方案的所述签名函数和所述私钥skj对所述第一元素ki的一部分和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;使用所述自认证的基于身份的签名方案的所述验证函数和所述第二设备idj的所述身份验证所述签名σj;通过向双输入函数f提供所述主公钥mpk、所述第一随机值a、所述第二设备idj的所述身份、所述私钥skj的一部分、所述第二元素kj和所述私钥ski的一部分来计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi生成验证密钥vki;通过向认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vki来计算验证数据vdi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第五方面,根据本发明的实施例,所述第一设备还用于将所述验证数据vdi和与所述随机值a结合的所述私钥skj的所述部分传送到所述第二设备,由此所述系统还包括:所述第二设备,用于:通过向双输入函数f提供所述主公钥mpk、所述第二随机值b、所述第一设备idi的所述身份、所述第一元素ki、所述私钥skj和与所述随机值a结合的所述私钥skj的所述传送部分来计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj生成验证密钥vkj;通过向所述认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vkj来计算验证数据vdj;确定所述验证数据vdi是否与所述验证数据vdj匹配;当所述验证数据vdi与所述验证数据vdj匹配时,通过向密钥导出函数提供所述公有密钥csj生成所述公有会话密钥SK。结合所述第五方面,根据本发明的实施例,所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述私钥ski定义为ski=Ri=gri,si=ri+xHRi,idi,所述私钥skj定义为skj=Rj=grj,sj=rj+xHRj,idj,其中ri和rj是随机数,H是防撞散列函数;所述第一元素ki定义为ki=ga;所述第二元素kj定义为kj=Rib,gb;所述双输入函数f包括串联函数或异或函数,其中csi定义为且csj定义为结合所述第五方面,根据本发明的实施例,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;通过向双输入函数f提供所述主密钥msk、所述第一元素ki、具有所述私钥skj的一部分的所述第二设备idj的所述身份、所述第二元素kj的一部分、具有所述私钥ski的一部分的所述第一设备idi的所述身份来计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=fya.hidj,Rj,yb.hidi,Ri。根据本发明的第六方面,提供一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的系统,包括:安全服务器,用于:生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备,用于:基于所述第一设备生成的第一随机值a计算第一元素ki;通过使用自认证的基于身份的签名方案的签名函数和所述私钥ski对所述第一元素ki进行签名来计算签名σi;向所述第二设备传送所述签名σi、所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:使用所述自认证的基于身份的签名方案的验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,基于所述第一元素ki和所述第二设备生成的第二随机值b计算元素uj;基于所述元素uj和所述第二随机值b计算第二元素kj;通过使用所述自认证的基于身份的签名方案的所述签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;使用所述自认证的基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,基于所述第二元素kj的一部分和所述第一随机值a计算元素ui;基于所述元素ui和所述主公钥mpk计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi生成验证密钥vki;通过向认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vki来计算验证数据vdi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第六方面,根据本发明的实施例,所述第一设备还用于将所述验证数据vdi传送到所述第二设备,由此所述系统还包括:所述第二设备,用于:基于所述元素uj和所述主公钥mpk计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj生成验证密钥vkj;通过向所述认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vkj来计算验证数据vdj;确定所述验证数据vdi是否与所述验证数据vdj匹配;当所述验证数据vdi与所述验证数据vdj匹配时,通过向密钥导出函数提供所述公有密钥csj生成所述公有会话密钥SK。结合所述第六方面,根据本发明的实施例,所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=ga;所述第二元素kj定义为kj=U,gb,其中且所述元素uj定义为uj=gab;所述公有密钥csi定义为且所述公有密钥csj定义为其中所述元素ui定义为ui=gab。结合所述第六方面,根据本发明的实施例,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述元素uj或所述元素ui和从所述主密钥msk获得的参数x计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=Ux。根据本发明的第七方面,提供一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的方法,包括以下步骤:安全服务器生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备基于所述第一设备生成的第一随机值a和所述主公钥mpk计算第一元素ki;所述第一设备向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:基于所述第二设备生成的第二随机值b和所述主公钥mpk计算第二元素kj;通过使用基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;所述第一设备使用所述基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,使用所述基于身份的签名方案的所述签名函数和所述私钥ski对所述第二元素kj进行签名来计算签名σi;所述第一设备基于所述第二元素kj、所述主公钥mpk和所述第一随机值a计算公有密钥csi;所述第一设备通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第七方面,根据本发明的实施例,所述第一设备还将所述签名σi传送到所述第二设备,且所述方法还包含:所述第二设备使用所述基于身份的签名方案的所述验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,基于所述第一元素ki、所述主公钥mpk和所述第二随机值b计算公有密钥csj,并通过向所述密钥导出函数提供所述公有密钥csj来生成所述公有会话密钥SK。结合所述第七方面,根据本发明的实施例,所述主公钥mpk包括P,s·P,其中P是循环群G1的生成元,具有定义在椭圆曲线上的素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P;所述公有密钥csi和所述公有密钥csj使用对称双线性映射e计算:G1xG1→G2,其中G2是循环群,具有定义在所述椭圆曲线上的素数阶q;csi定义为csi=eb·P,s·Pa,且csj定义为csj=ea·P,s·Pb。结合所述第七方面,根据本发明的实施例,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj和从所述主密钥msk获得的参数s计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=ea·P,b·Ps。结合所述第七方面,根据本发明的实施例,所述主公钥mpk包括s·Q,Q,P,其中P是循环群G1的生成元,具有定义在椭圆曲线上的素数阶q,Q是循环群G2的生成元,具有素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P,b·Q;所述公有密钥csi和所述公有密钥csj使用非对称双线性映射e计算:G1xG2→G,其中G是循环群,具有定义在所述椭圆曲线上的素数阶q;csi定义为csi=eb·P,s·Qa,且csj定义为csj=ea·P,s·Qb。结合所述第七方面,根据本发明的实施例,所述安全服务器还接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj的一部分和从所述主密钥msk获得的参数s计算公有密钥cskgc,所述公有密钥cskgc定义为cskgc=ea·P,b·Qs。根据本发明的第八方面,提供一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的方法,包括以下步骤:安全服务器生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备基于所述第一设备生成的第一随机值a和所述私钥ski计算第一元素ki;向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:基于所述第二设备生成的第二随机值b和所述第一元素ki计算第二元素kj;通过使用自认证的基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki的一部分和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;所述第一设备使用所述自认证的基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σi时,通过使用所述自认证的基于身份的签名方案的签名函数和所述私钥ski对所述第二元素kj的一部分和与所述随机值a结合的所述私钥skj的一部分进行签名来计算签名σi;通过向双输入函数f提供所述主公钥mpk、所述第一随机值a、所述第二设备idj的所述身份、所述私钥skj的一部分、所述第二元素kj和所述私钥ski的一部分来计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第八方面,根据本发明的实施例,所述第一设备还用于将与所述随机值a结合的所述私钥skj的所述部分和所述签名σi传送到所述第二设备,由此所述方法还包括:所述第二设备使用所述自认证的基于身份的签名方案的所述验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,通过向双输入函数f提供所述主公钥mpk、所述第二随机值b、所述第一设备idi的所述身份、所述第一元素ki、所述私钥skj的一部分和与所述随机值a结合的所述私钥skj的所述传送部分来计算公有密钥csj;通过向密钥导出函数提供所述公有密钥csj来生成所述公有会话密钥SK。结合所述第八方面,根据本发明的实施例,所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述私钥ski定义为ski=Ri=gri,si=ri+xHRi,idi,所述私钥skj定义为skj=Rj=grj,sj=rj+xHRj,idj,其中ri和rj是随机数,H是防撞散列函数;所述第一元素ki定义为ki=Ri,ga;所述第二元素kj定义为kj=Rib,gb;所述双输入函数f包括串联函数或异或函数,其中csi定义为且csj定义为结合所述第八方面,根据本发明的实施例,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;通过向双输入函数f提供所述主密钥msk、所述第一元素ki的一部分、具有所述私钥skj的一部分的所述第二设备idj的所述身份、所述第二元素kj的一部分、具有所述私钥ski的一部分的所述第一设备idi的所述身份来计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=fya.hidj,Rj,yb.hidi,Ri。根据本发明的第九方面,提供一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的方法,包括:安全服务器生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备基于所述第一设备生成的第一随机值a计算第一元素ki;向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:基于所述第一元素ki和所述第二设备生成的第二随机值b计算元素uj;基于所述元素uj和所述第二随机值b计算第二元素kj;通过使用自认证的基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来生成签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;所述第一设备使用所述自认证的基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,使用所述自认证的基于身份的签名方案的所述签名函数和所述私钥ski对所述第二元素kj的一部分进行签名来计算签名σi。结合所述第九方面,根据本发明的实施例,所述第一设备还用于将所述签名σi传送到所述第二设备,所述方法还包括:所述第二设备使用所述自认证的基于身份的签名方案的所述验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,基于所述元素uj和所述主公钥mpk计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj生成所述公有会话密钥SK。结合所述第九方面,根据本发明的实施例,所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=ga;所述第二元素kj定义为kj=U,gb,其中且所述元素uj定义为uj=gab;所述公有密钥csi定义为且所述公有密钥csj定义为其中所述元素ui定义为ui=gab。结合所述第九方面,根据本发明的实施例,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述元素uj或所述元素ui和从所述主密钥msk获得的参数x计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=Ux。根据本发明的第十方面,提供一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的方法,包括:第二服务器生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备基于所述第一设备生成的第一随机值a和所述主公钥mpk计算第一元素ki;通过使用基于身份的签名方案的签名函数和所述私钥ski对所述第一元素ki进行签名来计算签名σi;向所述第二设备传送所述签名σi、所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:使用所述基于身份的签名方案的验证函数和所述第一设备idi的所述身份验证所述签名σi;当验证所述签名的第一元素ki时,基于所述第二设备生成的第二随机值b和所述主公钥mpk计算第二元素kj;通过使用所述基于身份的签名方案的所述签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;所述第一设备使用所述基于身份的签名方案的所述验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,基于所述第二元素kj、所述主公钥mpk和所述第一随机值a计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi生成验证密钥vki;通过向认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vki来计算验证数据vdi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第十方面,根据本发明的实施例,所述第一设备还用于将所述验证数据vdi传送到所述第二设备,所述方法包括:所述第二设备基于所述第一元素ki、所述主公钥mpk和所述第二随机值b计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj生成验证密钥vkj;通过向所述认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vkj来计算验证数据vdj;确定所述验证数据vdi是否与所述验证数据vdj匹配;当所述验证数据vdi与所述验证数据vdj匹配时,通过向密钥导出函数提供所述公有密钥csj生成所述公有会话密钥SK。结合所述第十方面,根据本发明的实施例,所述主公钥mpk包括P,s·P,其中P是循环群G1的生成元,具有素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P;所述公有密钥csi和所述公有密钥csj使用对称双线性映射e计算:G1xG1→G2,其中G2是具有素数阶q的循环群;csi定义为csi=es·P,b·Pa,且csj定义为csj=es·P,a·Pb。结合所述第十方面,根据本发明的实施例,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj和从所述主密钥msk获得的参数s计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=ea.P,b.Ps。结合所述第十方面,根据本发明的实施例,所述主公钥mpk包括s·Q,Q,P,其中P是循环群G1的生成元,具有素数阶q,Q是循环群G2的生成元,具有素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P,b·Q;所述公有密钥csi和所述公有密钥csj使用非对称双线性映射e计算:G1xG2→G,其中csi定义为csi=eb·P,s·Qa,且csj定义为csj=ea·P,s·Qb。结合所述第十方面,根据本发明的实施例,所述安全服务器还接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj的一部分和从所述主密钥msk获得的参数s计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=ea.P,b.Qs。根据本发明的第十一方面,提供一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的方法,包括:安全服务器生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备基于所述第一设备生成的第一随机值a和所述私钥ski计算第一元素ki;通过使用自认证的基于身份的签名方案的签名函数和所述私钥ski对所述第一元素ki进行签名来计算签名σi;向所述第二设备传送所述签名σi、所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:使用所述自认证的基于身份的签名方案的验证函数和所述第一设备idi的身份验证所述签名σi,并在验证所述签名σi时,基于所述第二设备生成的第二随机值b和所述第一元素ki计算第二元素kj;通过使用所述自认证的基于身份的签名方案的所述签名函数和所述私钥skj对所述第一元素ki的一部分和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;所述第一设备使用所述自认证的基于身份的签名方案的所述验证函数和所述第二设备idj的所述身份验证所述签名σj;通过向双输入函数f提供所述主公钥mpk、所述第一随机值a、所述第二设备idj的所述身份、所述私钥skj的一部分、所述第二元素kj和所述私钥ski的一部分来计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi生成验证密钥vki;通过向认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vki来计算验证数据vdi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第十一方面,根据本发明的实施例,所述第一设备还用于将所述验证数据vdi和与所述随机值a结合的所述私钥skj的所述部分传送到所述第二设备,由此所述方法还包括:所述第二设备通过向双输入函数f提供所述主公钥mpk、所述第二随机值b、所述第一设备idi的所述身份、所述第一元素ki、所述私钥skj和与所述随机值a结合的所述私钥skj的所述传送部分来计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj生成验证密钥vkj;通过向所述认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vkj来计算验证数据vdj;确定所述验证数据vdi是否与所述验证数据vdj匹配;当所述验证数据vdi与所述验证数据vdj匹配时,通过向密钥导出函数提供所述公有密钥csj生成所述公有会话密钥SK。结合所述第十一方面,根据本发明的实施例,所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述私钥ski定义为ski=Ri=gri,si=ri+xHRi,idi,所述私钥skj定义为skj=Rj=grj,sj=rj+xHRj,idj,其中ri和rj是随机数,H是防撞散列函数;所述第一元素ki定义为ki=ga;所述第二元素kj定义为kj=Rib,gb;所述双输入函数f包括串联函数或异或函数,其中csi定义为且csj定义为结合所述第十一方面,根据本发明的实施例,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;通过向双输入函数f提供所述主密钥msk、所述第一元素ki、具有所述私钥skj的一部分的所述第二设备idj的所述身份、所述第二元素kj的一部分、具有所述私钥ski的一部分的所述第一设备idi的所述身份来计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=fya.hidj,Rj,yb.hidi,Ri。根据本发明的第十二方面,提供一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的方法,包括:安全服务器生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备基于所述第一设备生成的第一随机值a计算第一元素ki;通过使用自认证的基于身份的签名方案的签名函数和所述私钥ski对所述第一元素ki进行签名来计算签名σi;向所述第二设备传送所述签名σi、所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:使用所述自认证的基于身份的签名方案的验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,基于所述第一元素ki和所述第二设备生成的第二随机值b计算元素uj;基于所述元素u和所述第二随机值b计算第二元素kj;通过使用所述自认证的基于身份的签名方案的所述签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;所述第一设备使用所述自认证的基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,基于所述第二元素kj的一部分和所述第一随机值a计算元素ui;基于所述元素ui和所述主公钥mpk计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi生成验证密钥vki;通过向认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vki来计算验证数据vdi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第十二方面,根据本发明的实施例,所述第一设备还用于将所述验证数据vdi传送到所述第二设备,由此所述方法还包括:所述第二设备基于所述元素uj和所述主公钥mpk计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj生成验证密钥vkj;通过向所述认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vkj来计算验证数据vdj;确定所述验证数据vdi是否与所述验证数据vdj匹配;当所述验证数据vdi与所述验证数据vdj匹配时,通过向密钥导出函数提供所述公有密钥csj生成所述公有会话密钥SK。结合所述第十二方面,根据本发明的实施例,所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=ga;所述第二元素kj定义为kj=U,gb,其中且所述元素uj定义为uj=gab;所述公有密钥csi定义为且所述公有密钥csj定义为其中所述元素ui定义为ui=gab。结合所述第十二方面,根据本发明的实施例,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述元素uj或所述元素ui和从所述主密钥msk获得的参数x计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=Ux。根据本发明的第十三方面,提供一种用于生成公有会话密钥SK对所述第一设备i和第二设备j之间的数字通信进行编码的第一设备i,所述第一设备包括:处理器;以及所述处理器可读取的非瞬时性介质,所述非瞬时性介质存储当所述处理器执行时使所述处理器执行以下操作的指令:向安全服务器发出指令生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;基于所述第一设备生成的第一随机值a和所述主公钥mpk计算第一元素ki;向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:基于所述第二设备生成的第二随机值b和所述主公钥mpk计算第二元素kj;通过使用基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;使用所述基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,使用所述基于身份的签名方案的所述签名函数和所述私钥ski对所述第二元素kj进行签名来计算签名σi;基于所述第二元素kj、所述主公钥mpk和所述第一随机值a计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第十三方面,根据本发明的实施例,用于指示所述处理器与所述第二设备通信的指令还包括:用于指示所述处理器执行以下操作的指令:将所述签名σi传送到所述第二设备,由此在接收所述通信时,所述第二设备用于:使用所述基于身份的签名方案的所述验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,基于所述第一元素ki、所述主公钥mpk和所述第二随机值b计算公有密钥csj,并通过向所述密钥导出函数提供所述公有密钥csj来生成所述公有会话密钥SK。结合所述第十三方面,根据本发明的实施例,所述主公钥mpk包括P,s·P,其中P是循环群G1的生成元,具有定义在椭圆曲线上的素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P;所述公有密钥csi和所述公有密钥csj使用对称双线性映射e计算:G1xG1→G2,其中G2是循环群,具有定义在所述椭圆曲线上的素数阶q;csi定义为csi=eb·P,s·Pa,且csj定义为csj=ea·P,s·Pb。结合所述第十三方面,根据本发明的实施例,所述向所述安全服务器发出指令还包括:用于指示所述处理器执行以下操作的指令:向所述安全服务发出指令接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj和从所述主密钥msk获得的参数s计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=ea·P,b·Ps。结合所述第十三方面,根据本发明的实施例,所述主公钥mpk包括s·Q,Q,P,其中P是循环群G1的生成元,具有定义在椭圆曲线上的素数阶q,Q是循环群G2的生成元,具有素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P,b·Q;所述公有密钥csi和所述公有密钥csj使用非对称双线性映射e计算:G1xG2→G,其中G是循环群,具有定义在所述椭圆曲线上的素数阶q;csi定义为csi=eb·P,s·Qa,且csj定义为csj=ea·P,s·Qb。结合所述第十三方面,根据本发明的实施例,所述向所述安全服务器发出指令还包括:用于指示所述处理器执行以下操作的指令:向所述安全服务器发出指令接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj的一部分和从所述主密钥msk获得的参数s计算公有密钥cskgc,所述公有密钥cskgc定义为cskgc=ea·P,b·Qs。根据本发明的第十四方面,提供一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的第一设备i,包括处理器;以及所述处理器可读取的非瞬时性介质,所述非瞬时性介质存储当所述处理器执行时使所述处理器执行以下操作的指令:向安全服务器发出指令生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;基于所述第一设备生成的第一随机值a和所述私钥ski计算第一元素ki;向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:基于所述第二设备生成的第二随机值b和所述第一元素ki计算第二元素kj;通过使用自认证的基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki的一部分和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;使用所述自认证的基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σi时,通过使用所述自认证的基于身份的签名方案的签名函数和所述私钥ski对所述第二元素kj的一部分和与所述随机值a结合的所述私钥skj的一部分进行签名来计算签名σi;通过向双输入函数f提供所述主公钥mpk、所述第一随机值a、所述第二设备idj的所述身份、所述私钥skj的一部分、所述第二元素kj和所述私钥ski的一部分来计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第十四方面,根据本发明的实施例,用于指示所述处理器与所述第二设备通信的指令还包括:用于指示所述处理器执行以下操作的指令:将与所述随机值a结合的所述私钥skj的所述部分和所述签名σi传送到所述第二设备,由此在接收所述通信时,所述第二设备用于:使用所述自认证的基于身份的签名方案的所述验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,通过向双输入函数f提供所述主公钥mpk、所述第二随机值b、所述第一设备idi的所述身份、所述第一元素ki、所述私钥skj的一部分和与所述随机值a结合的所述私钥skj的所述传送部分来计算公有密钥csj;通过向密钥导出函数提供所述公有密钥csj来生成所述公有会话密钥SK。结合所述第十四方面,根据本发明的实施例,所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述私钥ski定义为ski=Ri=gri,si=ri+xHRi,idi,所述私钥skj定义为skj=Rj=grj,sj=rj+xHRj,idj,其中ri和rj是随机数,H是防撞散列函数;所述第一元素ki定义为ki=Ri,ga;所述第二元素kj定义为kj=Rib,gb;所述双输入函数f包括串联函数或异或函数,其中csi定义为且csj定义为结合所述第十四方面,根据本发明的实施例,所述向所述安全服务器发出指令还包括:用于指示所述处理器执行以下操作的指令:向所述安全服务器发出指令接收所述第一设备和所述第二设备之间交换的所有通信和传输;通过向双输入函数f提供所述主密钥msk、所述第一元素ki的一部分、具有所述私钥skj的一部分的所述第二设备idj的所述身份、所述第二元素kj的一部分、具有所述私钥ski的一部分的所述第一设备idi的所述身份来计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=fya.hidj,Rj,yb.hidi,Ri。根据本发明的第十五方面,提供一种用于生成公有会话密钥SK对所述第一设备i和第二设备j之间的数字通信进行编码的第一设备i,包括:处理器;以及所述处理器可读取的非瞬时性介质,所述非瞬时性介质存储当所述处理器执行时使所述处理器执行以下操作的指令:向安全服务器发出指令生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;基于所述第一设备生成的第一随机值a计算第一元素ki;向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:基于所述第一元素ki和所述第二设备生成的第二随机值b计算元素uj;基于所述元素uj和所述第二随机值b计算第二元素kj;通过使用自认证的基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来生成签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;使用所述自认证的基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,使用所述自认证的基于身份的签名方案的所述签名函数和所述私钥ski对所述第二元素kj的一部分进行签名来计算签名σi;基于所述第二元素kj的所述部分和所述第一随机值a计算元素ui;基于所述元素ui和所述主公钥mpk计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第十五方面,根据本发明的实施例,用于指示所述处理器与所述第二设备通信的指令还包括:用于指示所述处理器执行以下操作的指令:将所述签名σi传送到所述第二设备,由此在接收所述通信时,所述第二设备用于:使用所述自认证的基于身份的签名方案的所述验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,基于所述元素uj和所述主公钥mpk计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj来生成所述公有会话密钥SK。结合所述第十五方面,根据本发明的实施例,所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=ga;所述第二元素kj定义为kj=U,gb,其中且所述元素uj定义为uj=gab;所述公有密钥csi定义为且所述公有密钥csj定义为其中所述元素ui定义为ui=gab。结合所述第十五方面,根据本发明的实施例,所述向所述安全服务器发出指令还包括:用于指示所述处理器执行以下操作的指令:向所述安全服务器发出指令接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述元素uj或所述元素ui和从所述主密钥msk获得的参数x计算公有密钥cskgc,其中cskgc定义为cskgc=Ux。根据本发明的第十六方面,提供一种用于生成公有会话密钥SK对所述第一设备i和第二设备j之间的数字通信进行编码的第一设备i,包括:处理器;以及所述处理器可读取的非瞬时性介质,所述非瞬时性介质存储当所述处理器执行时使所述处理器执行以下操作的指令:向安全服务器发出指令生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;基于所述第一设备生成的第一随机值a和所述主公钥mpk计算第一元素ki;通过使用基于身份的签名方案的签名函数和所述私钥ski对所述第一元素ki进行签名来计算签名σi;向所述第二设备传送所述签名σi、所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:使用所述基于身份的签名方案的验证函数和所述第一设备idi的所述身份验证所述签名σi;当验证所述签名的第一元素ki时,基于所述第二设备生成的第二随机值b和所述主公钥mpk计算第二元素kj;通过使用所述基于身份的签名方案的所述签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;使用所述基于身份的签名方案的所述验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,基于所述第二元素kj、所述主公钥mpk和所述第一随机值a计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi生成验证密钥vki;通过向认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vki来计算验证数据vdi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第十六方面,根据本发明的实施例,用于指示所述处理器与所述第二设备通信的指令还包括:用于指示所述处理器执行以下操作的指令:将所述验证数据vdi传送到所述第二设备,由此在接收所述通信时,所述第二设备用于:基于所述第一元素ki、所述主公钥mpk和所述第二随机值b计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj生成验证密钥vkj;通过向所述认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vkj来计算验证数据vdj;确定所述验证数据vdi是否与所述验证数据vdj匹配;当所述验证数据vdi与所述验证数据vdj匹配时,通过向密钥导出函数提供所述公有密钥csj生成所述公有会话密钥SK。结合所述第十六方面,根据本发明的实施例,所述主公钥mpk包括P,s·P,其中P是循环群G1的生成元,具有素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P;所述公有密钥csi和所述公有密钥csj使用对称双线性映射e计算:G1xG1→G2,其中G2是具有素数阶q的循环群;csi定义为csi=es·P,b·Pa,且csj定义为csj=es·P,a·Pb。结合所述第十六方面,根据本发明的实施例,所述向所述安全服务器发出指令还包括:用于指示所述处理器执行以下操作的指令:向所述安全服务器发出指令接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj和从所述主密钥msk获得的参数s计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=ea.P,b.Ps。结合所述第十六方面,根据本发明的实施例,所述主公钥mpk包括s·Q,Q,P,其中P是循环群G1的生成元,具有素数阶q,Q是循环群G2的生成元,具有素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P,b·Q;所述公有密钥csi和所述公有密钥csj使用非对称双线性映射e计算:G1xG2→G,其中csi定义为csi=eb·P,s·Qa,且csj定义为csj=ea·P,s·Qb。结合所述第十六方面,根据本发明的实施例,所述向所述安全服务器发出指令还包括:用于指示所述处理器执行以下操作的指令:向所述安全服务器发出指令接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj的一部分和从所述主密钥msk获得的参数s计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=ea.P,b.Qs。根据本发明的第十七方面,提供一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的第一设备i,包括处理器;以及所述处理器可读取的非瞬时性介质,所述非瞬时性介质存储当所述处理器执行时使所述处理器执行以下操作的指令:向安全服务器发出指令生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;基于所述第一设备生成的第一随机值a和所述私钥ski计算第一元素ki;通过使用自认证的基于身份的签名方案的签名函数和所述私钥ski对所述第一元素ki进行签名来计算签名σi;向所述第二设备传送所述签名σi、所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:使用所述自认证的基于身份的签名方案的验证函数和所述第一设备idi的身份验证所述签名σi,并在验证所述签名σi时,基于所述第二设备生成的第二随机值b和所述第一元素ki计算第二元素kj;通过使用所述自认证的基于身份的签名方案的所述签名函数和所述私钥skj对所述第一元素ki的一部分和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;使用所述自认证的基于身份的签名方案的所述验证函数和所述第二设备idj的所述身份验证所述签名σj;通过向双输入函数f提供所述主公钥mpk、所述第一随机值a、所述第二设备idj的所述身份、所述私钥skj的一部分、所述第二元素kj和所述私钥ski的一部分来计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi生成验证密钥vki;通过向认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vki来计算验证数据vdi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第十七方面,根据本发明的实施例,用于指示所述处理器与所述第二设备通信的指令还包括:用于指示所述处理器执行以下操作的指令:将所述验证数据vdi和与所述随机值a结合的所述私钥skj的所述部分传送到所述第二设备,由此在接收所述通信时,所述第二设备用于:通过向双输入函数f提供所述主公钥mpk、所述第二随机值b、所述第一设备idi的所述身份、所述第一元素ki、所述私钥skj和与所述随机值a结合的所述私钥skj的所述传送部分来计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj生成验证密钥vkj;通过向所述认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vkj来计算验证数据vdj;确定所述验证数据vdi是否与所述验证数据vdj匹配;当所述验证数据vdi与所述验证数据vdj匹配时,通过向密钥导出函数提供所述公有密钥csj生成所述公有会话密钥SK。结合所述第十七方面,根据本发明的实施例,所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述私钥ski定义为ski=Ri=gri,si=ri+xHRi,idi,所述私钥skj定义为skj=Rj=grj,sj=rj+xHRj,idj,其中ri和rj是随机数,H是防撞散列函数;所述第一元素ki定义为ki=ga;所述第二元素kj定义为kj=Rib,gb;所述双输入函数f包括串联函数或异或函数,其中csi定义为且csj定义为结合所述第十七方面,根据本发明的实施例,所述向所述安全服务器发出指令还包括:用于指示所述处理器执行以下操作的指令:向所述安全服务器发出指令接收所述第一设备和所述第二设备之间交换的所有通信和传输;通过向双输入函数f提供所述主密钥msk、所述第一元素ki、具有所述私钥skj的一部分的所述第二设备idj的所述身份、所述第二元素kj的一部分、具有所述私钥ski的一部分的所述第一设备idi的所述身份来计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=fya.hidj,Rj,yb.hidi,Ri。根据本发明的第十八方面,提供一种用于生成公有会话密钥SK对所述第一设备i和第二设备j之间的数字通信进行编码的第一设备i,包括:处理器;以及所述处理器可读取的非瞬时性介质,所述非瞬时性介质存储当所述处理器执行时使所述处理器执行以下操作的指令:向安全服务器发出指令生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;基于所述第一设备生成的第一随机值a计算第一元素ki;通过使用自认证的基于身份的签名方案的签名函数和所述私钥ski对所述第一元素ki进行签名来计算签名σi;向所述第二设备传送所述签名σi、所述第一元素ki和所述第一设备的所述身份idi,使得在接收所述通信时,所述第二设备用于:使用所述自认证的基于身份的签名方案的验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,基于所述第一元素ki和所述第二设备生成的第二随机值b计算元素uj;基于所述元素uj和所述第二随机值b计算第二元素kj;通过使用所述自认证的基于身份的签名方案的所述签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;使用所述自认证的基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,基于所述第二元素kj的一部分和所述第一随机值a计算元素ui;基于所述元素ui和所述主公钥mpk计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi生成验证密钥vki;通过向认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vki来计算验证数据vdi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。结合所述第十八方面,根据本发明的实施例,用于指示所述处理器与所述第二设备通信的指令还包括:用于指示所述处理器执行以下操作的指令:将所述验证数据vdi传送到所述第二设备,由此在接收所述通信时,所述第二设备用于:基于所述元素uj和所述主公钥mpk计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj生成验证密钥vkj;通过向所述认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vkj来计算验证数据vdj;确定所述验证数据vdi是否与所述验证数据vdj匹配;当所述验证数据vdi与所述验证数据vdj匹配时,通过向密钥导出函数提供所述公有密钥csj生成所述公有会话密钥SK。结合所述第十八方面,根据本发明的实施例,所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=ga;所述第二元素kj定义为kj=U,gb,其中且所述元素uj定义为uj=gab;所述公有密钥csi定义为且所述公有密钥csj定义为其中所述元素ui定义为ui=gab。结合所述第十八方面,根据本发明的实施例,所述向所述安全服务器发出指令还包括:用于指示所述处理器执行以下操作的指令:向所述安全服务器发出指令接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述元素uj或所述元素ui和从所述主密钥msk获得的参数x计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=Ux。附图说明在以下详细描述中描述并在以下图式中示出根据本发明的以上优点和特征:图1示出了根据本发明实施例的表示实体对认证和用于所述经认证实体对的公有会话密钥生成系统的框图;图2示出了根据本发明实施例的表示用于实现实施例的电子设备或服务器中的组件的框图;图3示出了根据本发明实施例的用于所述认证实体对和所述生成用于所述经认证实体对的公有会话密钥的时序图;图4示出了根据本发明实施例的用于验证第二实体的所述真实性和用于生成公有会话密钥的过程的流程图。具体实施方式本发明涉及一种用于生成公有会话密钥的系统和方法,所述公有会话密钥具有用于对设备之间的数字通信进行编码的强前向安全性。具体地,所述系统利用具有前向安全性的基于身份的认证密钥交换方案,允许两台设备先验证每台设备的真实性后再由这些认证后的设备开始产生公有会话密钥,然后再利用所述公有会话密钥对这两台设备之间的数字通信进行编码。此外,本发明允许将所述生成的公有会话密钥托管到经授权的密钥生成中心KeyGenerationCentre,简称KGC,由此所述托管所述生成的公有会话密钥不依赖于所述将用户私钥托管到所述KGC。这意味着一旦所述KGC收集了所述方案的用户之间发生的所有通信,便可以由所述KGC自身计算所述用户的所述公有会话密钥,而不需要所述KGC能够计算知道所述用户私钥。图1示出了根据本发明实施例的实体对认证和公有会话密钥生成系统的框图。本领域技术人员应意识到,在不脱离本发明的情况下,所述术语实体和设备可以在整个描述中互换使用。图1所示的系统包括设备或实体105、110,所述设备或实体105、110连接到安全服务器120。实体105和110中的每一个可以包括但不限于能够执行无线通信功能的任何设备,例如智能电话、平板电脑、移动计算机、上网本、智能手表等可穿戴电子设备、智能插头或可位于智能设备或支持物联网InternetofThings,简称IoT的设备中的收发器,等等。对于安全服务器120,此服务器可以包括安全云服务器或远程定位安全服务器,所述远程定位安全服务器能够通过互联网115与实体105和110进行无线通信或者直接与实体105和110进行无线通信。如果服务器120用于通过互联网115与实体105和110通信,则所述服务器120可以经由有线网络或无线网络125例如但不限于蜂窝网络、卫星网络、电信网络或广域网WideAreaNetwork,简称WAN进行这样的通信。或者,如果服务器120用于直接与实体105和110通信,则这可以通过无线网络130来实现,例如但不限于无线保真Wireless-Fidelity,简称Wi-Fi、蓝牙或近场通信NearFieldCommunication,简称NFC。应当注意的是,实体105和110可以利用无线网络125经由互联网或无线网络130直接通信中的任一个来彼此交换数据消息。图2示出了根据本发明实施例的表示实体105、110和服务器120内提供的用于实现实施例的电子设备200的组件的框图。本领域的技术人员应意识到,所述实体或所述服务器内提供的每个电子设备的确切配置可能不同,并且电子设备200的确切配置也可以有所变化,并且图2仅作为示例提供。在本发明的实施例中,设备200包括控制器201和用户接口202。用户接口202用于在用户和电子设备200之间实现人机交互,并且为此目的包括所述用户输入指令以控制电子设备200所需的输入输出组件。本领域技术人员应意识到,用户界面202的组件可以根据不同的实施例而变化,但通常将包括显示器240、键盘235和轨迹板236中的一个或多个。控制器201经由总线215与用户接口202进行数据通信,并且包括存储器220、中央处理器CentralProcessingUnit,简称CPU205、操作系统206、输入输出inputoutput,简称IO接口230和通信接口,其中所述中央处理器205安装在一种处理用于执行本实施例方法的指令和数据的电路板上;所述输入输出接口230用于与用户接口202通信;所述通信接口在本实施例中采用网卡250形式。例如,网卡250可用于经由有线或无线网络从电子设备200向其它处理设备发送数据,或经由所述有线或无线网络接收数据。可用于网卡250的无线网络包括但不限于无线保真Wireless-Fidelity,简称Wi-Fi、蓝牙、近场通信NearFieldCommunication,简称NFC、蜂窝网络、卫星网络、电信网络、广域网WideAreaNetwork,简称WAN等。存储器220和操作系统206经由总线210与CPU205进行数据通信。所述存储器组件包括易失性和非易失性存储器以及每种类型存储器中的多于一种存储器,包括随机存取存储器RandomAccessMemory,简称RAM220、只读存储器ReadOnlyMemory,简称ROM225和大容量存储设备245,其中所述大容量存储设备245包括一个或多个固态硬盘solid-statedrive,简称SSD。存储器220还包括安全存储器246,所述安全存储器246用于安全存储密钥或私钥。应当注意的是,安全存储器246中的内容只能由设备200的超级用户或管理员访问,并且不能由设备200的任何用户访问。本领域技术人员应意识到,上述存储器组件包括非瞬时性计算机可读介质,并且应当被视为包括除暂存传播信号之外的所有计算机可读介质。通常,所述指令作为程序代码存储在所述存储器组件中,但也可以是硬连线的。存储器220可以包括内核和或编程模块,例如可以存储在易失性或非易失性存储器中的软件应用。本文中,所述术语“CPU”用于泛指可处理此类指令的任何设备或组件,且可包括:微处理器、微控制器、可编程逻辑器件或其它计算器件。也就是说,CPU205可以由任何合适的逻辑电路提供,所述逻辑电路用于接收输入,根据存储在存储器中的指令处理所述输入并产生输出例如传送到所述存储器组件或显示器240上的输出。在该实施例中,CPU205可以是具有存储器可寻址空间的单核或多核处理器。在一示例中,CPU205可以是多核的,例如包括8核CPU。再次参考图1,在根据本发明的实施例将设备105和110添加到所述设备对认证和所述公有会话密钥生成系统之前,用作密钥生成中心的服务器120将首先根据基于身份的签名方案启动设置过程以生成主密钥msk和主公钥mpk。然后,服务器120将选择加密防撞散列函数其中是本领域技术人员已知的适当整数。服务器120还可以选择认证数据导出函数和将用于所述系统中的密钥导出函数。在本发明的实施例中,所述认证数据导出函数AuthenticationDataDerivingFunction,简称AdDF可包括用于验证消息真实性的任何算法或方案,例如用于生成消息认证码messageauthenticationcode,简称MAC的方案、用于生成消息完整性代码的方案或键控哈希函数,而所述密钥导出函数KeyDerivingFunction,简称KDF可包括用于从诸如防撞散列函数的秘值导出秘钥的任何方案。当设备105或110加入所述系统时,安全服务器120将发布对这些设备中的每一设备唯一的私钥。这些唯一私钥一旦产生,将传送到这些设备中的每一设备,由此相应的私钥将存储在设备105和110中的每一设备中的安全存储器中。具体地,当设备105向服务器120注册自身时,设备105将其身份传送给服务器120。设备105的身份可包括其用户名、电子邮件地址、电话号码、IP地址、MAC地址或可用于唯一标识实体105的任何字母数字组合。然后,服务器120将与设备105相关联的身份id105提供给选择的基于身份的签名方案,以生成用于实体105的私钥sk105。类似地,当设备110向服务器120注册自身时,设备110还将向服务器120发送其身份。然后,服务器120将与设备110相关联的身份id110提供给相同的所选基于身份的签名方案,以生成用于设备110的私钥sk110。然后,将所述私钥sk105和sk110传送到其各自的设备。一旦所述私钥已经被存储在所述各设备的安全存储器中,所述设备对即设备105和110就可以开始认证过程。在成功地彼此认证之后,所述设备对可以开始生成用于编码或签名彼此之间发送的数字通信的公有会话密钥。在下面的描述中,为了便于阅读,设备105也可以被标识为设备“i”,而设备110也可以被标识为设备“j”。基于对称双线性映射的实施例在本发明的第一实施例中,所述选择的基于身份的签名方案可以基于对称双线性映射e:G1×G1→G2,其中G1和G2是循环群,具有定义在椭圆曲线上的素数阶q。对于这种基于身份的签名方案,所述主公钥mpk可以被定义为mpk=s.P,P,其中P是G1的生成元,且msk=s∈Zq*,其中Zq*是取模q的非零残差。在该实施例中,根据所述选择的基于身份的签名方案,设备105的私钥被定义为ski,而设备110的私钥被定义为skj。图3示出了根据本发明的该实施例的所述生成用于设备105和110的公有会话密钥。具体地,在步骤305处,设备105将通过首先生成随机数来发起公有会话密钥生成过程,其中是取模q的非零残差。然后,设备105将使用所述随机值a和所述主公钥mpk计算元素ki。所述元素ki可以定义为ki=a·P,其中P是从所述主公钥mpk获得的参数。然后,在步骤310处,设备105将所述元素ki和设备105idi的身份发送到设备110。在从设备110接收到所述元素ki之后,在步骤315处,设备110随后将生成随机数其中是取模q的非零残差。然后,设备110将基于所述随机值b和所述主公钥mpk生成元素kj。所述元素kj可以定义为kj=b·P,其中P是从所述主公钥mpk获得的参数。然后,使用与所述选择的基于身份的签名方案相关联的签名函数、Sign和所述私钥skj对所述元素ki和所述元素kj进行签名,以生成签名σj,所述签名σj被定义为σj=Signskj,a·P||b·P,其中||表示连接。在步骤320处,设备110随后将所述签名σj即σj=Signskj,a·P||b·P和所述第二元素kj发送到设备105。在从设备110接收到σj和kj之后,设备105随后开始使用与所述选择的基于身份的签名方案相关联的验证函数、Verify以及所述设备110idj的身份来验证所述接收的签名σj。此操作发生在步骤325处,即Verifyidj,σj。如果所述验证函数返回负结果,意味着如果不能使用所述设备110idj的身份验证所述签名σj,则设备105将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σj,则设备105随后将开始计算其自身的签名σi。具体地,可以计算设备105的签名σi,即σi=Signski,b·P。然后,设备105开始计算其公有密钥csi,即eb·P,s·Pa,其中s·P是从所述主公钥mpk获得的参数,且e是所述对称双线性映射e:G1×G1→G2,其中G1和G2是循环群,具有素数阶q。然后,将所述计算的公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsi。一旦设备105已经完成所述公有会话密钥SK的计算,设备105随后将其签名σi传送到设备110。或者,设备105一旦计算出其签名σi,也可以将其签名σi传送给设备110。此操作发生在步骤330。在从设备105接收到σi之后,设备110随后开始使用与所述选择的基于身份的签名方案相关联的相同验证函数、Verify以及所述设备105idi的身份来验证所述接收的签名σi。此操作发生在步骤335处,即Verifyidi,σi。如果所述验证函数返回负结果,意味着如果不能使用所述设备105idi的身份验证所述签名σi,则设备110将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σi,则设备110将开始计算其公有密钥csj,即ea·P,s·Pb,其中s·P是从所述主公钥mpk获得的所述参数,e是所述对称双线性映射e:G1×G1→G2,其中G1和G2是循环群,具有素数阶q。然后,将所述计算的公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsj。在本发明的该实施例中,如果服务器120接收在设备105和设备110之间交换的所有通信,服务器120将能够利用其自己的主密钥s来生成所述公有会话密钥sk。具体地,服务器120可以利用设备105共享的所述元素ki和设备110共享的所述元素kj生成公有密钥cskgc,即cskgc=ea·P,b·Ps,以及生成公有会话密钥SK,即SK=KDFcskgc。在本发明所述第一实施例的另一实施例中,所述根据该实施例生成用于设备105和110的公有会话密钥可以如下所述。具体地,在步骤305处,设备105将通过首先生成随机数来发起公有会话密钥生成过程,其中是取模q的非零残差。然后,设备105将使用所述随机值“a”和所述主公钥mpk计算元素ki。所述元素ki可以定义为ki=a·P,其中P是从所述主公钥mpk获得的参数。设备105也将在该步骤中开始计算其自身的签名σi。具体地,可以计算设备105的签名σi,即σi=Signski,a·P。然后,在步骤310处,设备105将其签名σi、所述元素ki以及设备105idi的身份发送到设备110。在从设备105接收到σi之后,设备110随后开始使用与所述基于身份的签名方案相关联的相同验证函数、Verify以及所述设备105idi的身份来验证所述接收的签名σi。此操作发生在步骤315处,即Verifyidi,σi。如果所述验证函数返回负结果,意味着如果不能使用所述设备105idi的身份验证所述签名σi,则设备110将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证签名σi,则设备110将开始生成随机数其中是取模q的非零残差。然后,设备110将基于所述随机值b和所述主公钥mpk生成元素kj。所述元素kj可以定义为kj=b·P,其中P是从所述主公钥mpk获得的参数。然后,使用与所述基于身份的签名方案相关联的签名函数、Sign和所述私钥skj对所述元素ki和所述元素kj进行签名,以生成签名σj,所述签名σj被定义为σj=Signskj,a·P||b·P。在步骤320处,设备110随后将所述签名σj即σj=Signskj,a·P||b·P和所述第二元素kj发送到设备105。在从设备110接收到σj和kj之后,设备105随后开始使用与所述基于身份的签名方案相关联的验证函数、Verify以及所述设备110idj的身份来验证所述接收的签名σj。此操作发生在步骤325处,即Verifyidj,σj。如果所述验证函数返回负结果,意味着如果不能使用所述设备110idj的身份验证所述签名σj,则设备105将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σj,则设备105将开始计算其公有密钥csi,即eb·P,s·Pa,其中s·P是从所述主公钥mpk获得的参数,e是所述对称双线性映射e:G1×G1→G2,其中G1和G2是循环群,具有素数阶q。然后,将所述公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以获得验证密钥vki,即vki=KDFcsi。然后,将所述获得的验证密钥vki与认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF一起使用,以生成验证数据vdi,即vdi=AdDFvki。然后,同时还将所述计算的公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsi。一旦设备105已经完成所述公有会话密钥SK的计算,设备105随后将验证数据vdi传送到设备110。或者,设备105一旦计算出验证数据vdi,也可以将验证数据vdi传送到设备110。此操作发生在步骤330。在步骤335处接收到验证数据vdi之后,设备110随后计算其公有密钥csj,即ea·P,s·Pb,其中s·P是从所述主公钥mpk获得的所述参数,e是所述对称双线性映射e:G1×G1→G2,其中G1和G2是循环群,具有素数阶q。然后,将所述公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以获得验证密钥vkj,即vkj=KDFcsj。然后,将所述获得的验证密钥vkj与认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF一起使用,以生成验证数据vdi,例如vdj=AdDFvkj。然后,将验证数据vdj与验证数据vdi进行比较,如果未找到匹配,则设备110将取消所述过程。如果找到匹配,则将所述计算的公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsj。类似地,在本发明的该实施例中,如果服务器120接收在设备105和设备110之间交换的所有通信,服务器120将能够利用其自己的主密钥s来生成所述公有会话密钥sk。具体地,服务器120可以利用设备105共享的所述元素ki和设备110共享的所述元素kj生成公有密钥cskgc,即cskgc=ea·P,b·Ps,以及生成公有会话密钥SK,即SK=KDFcskgc。在本发明所述第一实施例的又一实施例中,可以将选项字段op_f1、op_f2、op_f3、op_f4、op_f5、op_f6或op_f7添加到各种函数,例如签名和验证函数以及所述密钥导出函数,并且可以包括所述系统的实体的身份如果适用或由所述实体本身确定的任何应用特定数据。这些选项字段可应用于上述两个实施例。如果采用所述选项字段,则所述根据本发明的该实施例生成设备105和110的公有会话密钥可以如下所述。具体地,在步骤305处,设备105将通过首先生成随机数来发起公有会话密钥生成过程,其中是取模q的非零残差。然后,设备105将使用所述随机值a和所述主公钥mpk计算元素ki。所述元素ki可以定义为ki=a·P,其中P是从所述主公钥mpk获得的参数。然后,在步骤310处,设备105将选项字段op_f1、所述元素ki和设备105idi的身份发送到设备110。在从设备110接收到所述元素ki之后,在步骤315处,设备110随后将生成随机数其中是取模q的非零残差。然后,设备110将基于所述随机值b和所述主公钥mpk生成元素kj。所述元素kj可以定义为kj=b·P,其中P是从所述主公钥mpk获得的参数。然后,使用与基于身份的签名方案相关联的签名函数、Sign和所述私钥skj对具有通过选项字段op_f2的所述元素ki和所述元素kj进行签名,以生成签名σj,所述签名σj被定义为σj=Signskj,a·P||b·P||op_f2。在步骤320处,设备110随后将选项字段op_f3、所述签名σj即σj=Signskj,a·P||b·P||op_f2和所述第二元素kj发送到设备105。在从设备110接收到σj和kj之后,设备105随后开始使用与所述基于身份的签名方案相关联的验证函数、Verify以及所述设备110idj的身份来验证所述接收的签名σj。此操作发生在步骤325处,即Verifyidj,σj。如果所述验证函数返回负结果,意味着如果不能使用所述设备110idj的身份验证所述签名σj,则设备105将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σj,则设备105随后将开始计算其自身的签名σi。具体地,可以计算设备105的签名σi,即σi=Signski,b·P||op_f4。然后,设备105开始计算其公有密钥csi,即eb·P,s·Pa,其中s·P是从所述主公钥mpk获得的参数,且e是所述对称双线性映射e:G1×G1→G2,其中G1和G2是循环群,具有素数阶q。然后,将所述计算的公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsi,opt_f6。一旦设备105已经完成所述公有会话密钥SK的计算,设备105随后将选项字段op_f5和其签名σi传送到设备110。或者,设备105一旦计算出其签名σi,也可以将其签名σi传送给设备110。此操作发生在步骤330。在从设备105接收到σi之后,设备110随后开始使用与所述基于身份的签名方案相关联的相同验证函数、Verify以及所述设备105idi的身份来验证所述接收的签名σi。此操作发生在步骤335处,即Verifyidi,σi。如果所述验证函数返回负结果,意味着如果不能使用所述设备105idi的身份验证所述签名σi,则设备110将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σi,则设备110将开始计算其公有密钥csj,即ea·P,s·Pb,其中s·P是从所述主公钥mpk获得的所述参数,e是所述对称双线性映射e:G1×G1→G2,其中G1和G2是循环群,具有素数阶q。然后,将所述计算的公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsj,opt_f6。在本发明所述第一实施例的又一实施例中,所述根据该实施例使用选项字段生成用于设备105和110的公有会话密钥可以如下所述。具体地,在步骤305处,设备105将通过首先生成随机数来发起公有会话密钥生成过程,其中是取模q的非零残差。然后,设备105将使用所述随机值“a”和所述主公钥mpk计算元素ki。所述元素ki可以定义为ki=a·P,其中P是从所述主公钥mpk获得的参数。设备105也将在该步骤中开始计算其自身的签名σi。具体地,可以计算设备105的签名σi,即σi=Signski,a·P||opt_f1。然后,在步骤310处,设备105将选项字段opt_f2、其签名σi、所述元素ki以及设备105idi的身份发送到设备110。在从设备105接收到σi之后,设备110随后开始使用与所述基于身份的签名方案相关联的相同验证函数、Verify以及所述设备105idi的身份来验证所述接收的签名σi。此操作发生在步骤315处,即Verifyidi,σi。如果所述验证函数返回负结果,意味着如果不能使用所述设备105idi的身份验证所述签名σi,则设备110将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证签名σi,则设备110将开始生成随机数其中是取模q的非零残差。然后,设备110将基于所述随机值b和所述主公钥mpk生成元素kj。所述元素kj可以定义为kj=b·P,其中P是从所述主公钥mpk获得的参数。然后,使用与所述基于身份的签名方案相关联的签名函数、Sign和所述私钥skj对具有选项字段opt_f3的所述元素ki和所述元素kj进行签名,以生成签名σj,所述签名σj被定义为σj=Signskj,a·P||b·P||opt_f3。在步骤320处,设备110随后将选项字段opt_f4、所述签名σj即σj=Signskj,a·P||b·P||opt_f3和所述第二元素kj发送到设备105。在从设备110接收到σj和kj之后,设备105随后开始使用与所述基于身份的签名方案相关联的验证函数、Verify以及所述设备110idj的身份来验证所述接收的签名σj。此操作发生在步骤325处,即Verifyidj,σj。如果所述验证函数返回负结果,意味着如果不能使用所述设备110idj的身份验证所述签名σj,则设备105将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σj,则设备105将开始计算其公有密钥csi,即eb·P,s·Pa,其中s·P是从所述主公钥mpk获得的参数,e是所述对称双线性映射e:G1×G1→G2,其中G1和G2是循环群,具有素数阶q。然后,将所述公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以获得验证密钥vki,即vki=KDFcsi,opt_f5。然后,将所述获得的验证密钥vki与认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF一起使用,以生成验证数据vdi,即vdi=AdDFvki,opt_f6。然后,同时还将所述计算的公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsi,opt_f7。一旦设备105已经完成所述公有会话密钥SK的计算,设备105随后将所述选项字段opt_f6和验证数据vdi传送到设备110。或者,设备105一旦计算出验证数据vdi,也可以将所述选项字段opt_f6和验证数据vdi传送到设备110。此操作发生在步骤330。在步骤335处接收到验证数据vdi之后,设备110随后计算其公有密钥csj,即ea·P,s·Pb,其中s·P是从所述主公钥mpk获得的所述参数,e是所述对称双线性映射e:G1×G1→G2,其中G1和G2是循环群,具有素数阶q。然后,将所述公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以获得验证密钥vkj,即vkj=KDFcsj,opt_f5。然后,将所述获得的验证密钥vkj与认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF一起使用,以生成验证数据vdi,例如vdj=AdDFvkj,opt_f6。然后,将验证数据vdj与验证数据vdi进行比较,如果未找到匹配,则设备110将取消所述过程。如果找到匹配,则将所述计算的公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsj,opt_f7。将所述选项字段应用于所述签名函数、所述验证函数、所述密钥导出函数和或所述AdDF函数也可以应用于所述第二、第三和第四实施例,如以下各部分所述。基于非对称双线性映射的实施例在本发明的第二实施例中,所述选择的基于身份的签名方案可以基于对称双线性映射e:G1×G2→Gt,其中G1、G2和Gt是循环群,具有素数阶q;此外,G1、G2定义在椭圆曲线上。对于这种基于身份的签名方案,所述主公钥mpk可以定义为mpk=s.Q,Q,P,其中P是G1的生成元,Q是G2的生成元,且msk=s∈Zq*,其中Zq*是取模q的非零残差。在该实施例中,根据所述选择的基于身份的签名方案,设备105的私钥被定义为ski,而设备110的私钥被定义为skj。图3示出了根据本发明的该实施例的所述生成用于设备105和110的公有会话密钥。具体地,在步骤305处,设备105将通过首先生成随机数来发起公有会话密钥生成过程,其中是取模q的非零残差。然后,设备105将使用所述随机值a和所述主公钥mpk计算元素ki。所述元素ki可以定义为ki=a·P,其中P是从所述主公钥mpk获得的参数。然后,在步骤310处,设备105将所述元素ki和设备105idi的身份发送到设备110。在从设备110接收到所述元素ki之后,在步骤315处,设备110随后将生成随机数其中是取模q的非零残差。然后,设备110将基于所述随机值b和所述主公钥mpk生成元素kj。所述元素kj可以定义为kj=b·P,b·Q,其中P和Q是从所述主公钥mpk获得的参数。然后,使用与所述基于身份的签名方案相关联的签名函数、Sign和所述私钥skj对所述元素ki和所述元素kj进行签名,以生成签名σj,所述签名σj被定义为σj=Signskj,a·P||b·P||b·Q。在步骤320处,设备110随后将所述签名σj即σj=Signskj,a·P||b·P||b·Q和所述第二元素kj发送到设备105。在从设备110接收到σj和kj之后,设备105随后开始使用与所述基于身份的签名方案相关联的验证函数、Verify以及所述设备110idj的身份来验证所述接收的签名σj。此操作发生在步骤325处,即Verifyidj,σj。如果所述验证函数返回负结果,意味着如果不能使用所述设备110idj的身份验证所述签名σj,则设备105将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σj,则设备105随后将开始计算其自身的签名σi。具体地,可以计算设备105的签名σi,即σi=Signski,b·P。然后,设备105开始计算其公有密钥csi,即eb·P,s·Qa,其中s·Q是从所述主公钥mpk获得的参数,且e是所述对称双线性映射e:G1×G2→Gt,其中G1、G2和Gt是循环群,具有素数阶q。然后,将所述计算的公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsi。一旦设备105已经完成所述公有会话密钥SK的计算,设备105随后将其签名σi传送到设备110。或者,设备105一旦计算出其签名σi,也可以将其签名σi传送给设备110。此操作发生在步骤330。在从设备105接收到σi之后,设备110随后开始使用与所述基于身份的签名方案相关联的相同验证函数、Verify以及所述设备105idi的身份来验证所述接收的签名σi。此操作发生在步骤335处,即Verifyidi,σi。如果所述验证函数返回负结果,意味着如果不能使用所述设备105idi的身份验证所述签名σi,则设备110将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σi,则设备110将开始计算其公有密钥csj,即ea·P,s·Qb,其中s·Q是从所述主公钥mpk获得的所述参数,e是所述非对称双线性映射e:G1×G2→Gt,其中G1、G2和Gt是循环群,具有素数阶q。然后,将所述计算的公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsj。在本发明的该实施例中,如果服务器120接收在设备105和设备110之间交换的所有通信,服务器120将能够利用其自己的主密钥s来生成所述公有会话密钥sk。具体地,服务器120可以利用设备105共享的所述元素ki和设备110共享的所述元素kj的一部分生成公有密钥cskgc,即cskgc=ea·P,b·Qs,以及生成公有会话密钥SK,即SK=KDFcskgc。在本发明所述第二实施例的另一实施例中,根据本实施例的设备105和110的公有会话密钥的生成可以如下所述。具体地,在步骤305处,设备105将通过首先生成随机数来发起公有会话密钥生成过程,其中是取模q的非零残差。然后,设备105将使用所述随机值“a”和所述主公钥mpk计算元素ki。所述元素ki可以定义为ki=a·P,其中P是从所述主公钥mpk获得的参数。设备105也将在该步骤中开始计算其自身的签名σi。具体地,可以计算设备105的签名σi,即σi=Signski,a·P。然后,在步骤310处,设备105将其签名σi、所述元素ki以及设备105idi的身份发送到设备110。在从设备105接收到σi之后,设备110随后开始使用与所述基于身份的签名方案相关联的相同验证函数、Verify以及所述设备105idi的身份来验证所述接收的签名σi。此操作发生在步骤315处,即Verifyidi,σi。如果所述验证函数返回负结果,意味着如果不能使用所述设备105idi的身份验证所述签名σi,则设备110将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证签名σi,则设备110将开始生成随机数其中是取模q的非零残差。然后,设备110将基于所述随机值b和所述主公钥mpk生成元素kj。所述元素kj可以定义为kj=b·P,b·Q,其中P和Q是从所述主公钥mpk获得的参数。然后,使用与所述基于身份的签名方案相关联的签名函数、Sign和所述私钥skj对所述元素ki和所述元素kj进行签名,以生成签名σj,所述签名σj被定义为σj=Signskj,a·P||b·P||b·Q。在步骤320处,设备110随后将所述签名σj即σj=Signskj,a·P||b·P||b·Q和所述第二元素kj发送到设备105。在从设备110接收到σj和kj之后,设备105随后开始使用与所述基于身份的签名方案相关联的验证函数、Verify以及所述设备110idj的身份来验证所述接收的签名σj。此操作发生在步骤325处,即Verifyidj,σj。如果所述验证函数返回负结果,意味着如果不能使用所述设备110idj的身份验证所述签名σj,则设备105将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σj,则设备105将开始计算其公有密钥csi,即eb·P,s·Qa,其中s·Q是从所述主公钥mpk获得的参数,e是所述非对称双线性映射e:G1×G2→Gt,其中G1、G2和Gt是循环群,具有素数阶q。然后,将所述公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以获得验证密钥vki,即vki=KDFcsi。然后,将所述获得的验证密钥vki与认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF一起使用,以生成验证数据vdi,即vdi=AdDFvki。然后,同时还将所述计算的公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsi。一旦设备105已经完成所述公有会话密钥SK的计算,设备105随后将验证数据vdi传送到设备110。或者,设备105一旦计算出验证数据vdi,也可以将验证数据vdi传送到设备110。此操作发生在步骤330。在步骤335处接收到验证数据vdi之后,设备110随后计算其公有密钥csj,即ea·P,s·Qb,其中s·Q是从所述主公钥mpk获得的所述参数,e是所述对称双线性映射e:G1×G2→Gt,其中G1、G2和Gt是循环群,具有素数阶q。然后,将所述公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以获得验证密钥vkj,即vkj=KDFcsj。然后,将所述获得的验证密钥vkj与认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF一起使用,以生成验证数据vdi,例如vdj=AdDFvkj。然后,将验证数据vdj与验证数据vdi进行比较,如果未找到匹配,则设备110将取消所述过程。如果找到匹配,则将所述计算的公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsj。类似地,在本发明的该实施例中,如果服务器120接收在设备105和设备110之间交换的所有通信,服务器120将能够利用其自己的主密钥s来生成所述公有会话密钥sk。具体地,服务器120可以利用设备105共享的所述元素ki和设备110共享的所述元素kj的一部分生成公有密钥cskgc,即cskgc=ea·P,b·Qs,以及生成公有会话密钥SK,即SK=KDFcskgc。在本发明所述第二实施例的又一实施例中,可以将选项字段op_f1、op_f2、op_f3、op_f4、op_f5、op_f6或op_f7添加到各种函数,例如签名和验证函数以及所述密钥导出函数,并且可以包括所述系统的实体的身份如果适用或由所述实体本身确定的任何应用特定数据。这些选项字段可应用于上述两个实施例。如果采用所述选项字段,则所述根据本发明的该实施例生成设备105和110的公有会话密钥可以如下所述。具体地,在步骤305处,设备105将通过首先生成随机数来发起公有会话密钥生成过程,其中是取模q的非零残差。然后,设备105将使用所述随机值a和所述主公钥mpk计算元素ki。所述元素ki可以定义为ki=a·P,其中P是从所述主公钥mpk获得的参数。然后,在步骤310处,设备105将选项字段op_f1、所述元素ki和设备105idi的身份发送到设备110。在从设备110接收到所述元素ki之后,在步骤315处,设备110随后将生成随机数其中是取模q的非零残差。然后,设备110将基于所述随机值b和所述主公钥mpk生成元素kj。所述元素kj可以定义为kj=b·P,b·Q,其中P和Q是从所述主公钥mpk获得的参数。然后,使用与所述基于身份的签名方案相关联的签名函数、Sign和所述私钥skj对具有选项字段op_f2的所述元素ki和所述元素kj进行签名,以生成签名σj,所述签名σj被定义为σj=Signskj,a·P||b·P||b·Q||opt_f2。在步骤320处,设备110随后将选项字段op_f3、所述签名σj即σj=Signskj,a·P||b·P||b·Q||op_f2和所述第二元素kj发送到设备105。在从设备110接收到σj和kj之后,设备105随后开始使用与所述基于身份的签名方案相关联的验证函数、Verify以及所述设备110idj的身份来验证所述接收的签名σj。此操作发生在步骤325处,即Verifyidj,σj。如果所述验证函数返回负结果,意味着如果不能使用所述设备110idj的身份验证所述签名σj,则设备105将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σj,则设备105随后将开始计算其自身的签名σi。具体地,可以计算设备105的签名σi,即σi=Signski,b·P||opt_f4。然后,设备105开始计算其公有密钥csi,即eb·P,s·Qa,其中s·Q是从所述主公钥mpk获得的参数,且e是所述对称双线性映射e:G1×G2→Gt,其中G1、G2和Gt是循环群,具有素数阶q。然后,将所述计算的公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsi,opt_f6。一旦设备105已经完成所述公有会话密钥SK的计算,设备105随后将选项字段op_f5和其签名σi传送到设备110。或者,设备105一旦计算出其签名σi,也可以将所述选项字段op_f5和其签名σi传送给设备110。此操作发生在步骤330。在从设备105接收到σi之后,设备110随后开始使用与所述基于身份的签名方案相关联的相同验证函数、Verify以及所述设备105idi的身份来验证所述接收的签名σi。此操作发生在步骤335处,即Verifyidi,σi。如果所述验证函数返回负结果,意味着如果不能使用所述设备105idi的身份验证所述签名σi,则设备110将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σi,则设备110将开始计算其公有密钥csj,即ea·P,s·Qb,其中s·Q是从所述主公钥mpk获得的所述参数,e是所述非对称双线性映射e:G1×G2→Gt,其中G1、G2和Gt是循环群,具有素数阶q。然后,将所述计算的公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsj,opt_f6。通过观察设备105的ki可以被定义为ki=a·P,a.Q并且设备110的kj可以被定义为kj=b.P,本领域技术人员可以基于非对称双线性映射构建上述实施例的替代方案。在所述替代方案中,如果服务器120用于接收在设备105和设备110之间交换的所有通信,则服务器120将能够利用其自己的主密钥s来生成公有密钥cskgc,即cskgc=eb.P,a.Qs,接着生成公有会话密钥SK。基于具有弱前向安全性的自认证IBS的实施例在本发明的第三实施例中,所述选择的基于身份的签名identitybasedsignature,简称IBS方案可以基于自我认证的基于身份的签名方案,该的签名方案是一类特殊的IBS方案。这些自我认证的IBS方案基于DLP离散对数问题或ECDLP椭圆曲线离散对数问题,并且由特定私钥生成的签名总是包含特定于该签名私钥的固定组件因此被称为密钥特定数据key-specificdata,简称KSD,其中所述KSD协助验证所述签名,并且通常作为其一部分附加到所述签名上。自认证IBS方案的典型示例包括ISOIEC29192-4和IETFRFC6507。自我认证的IBS可以在传统的有限域或椭圆曲线在有限域上定义的上实现。在随后的描述中,尽管乘法符号用于有限域算术运算,但本领域技术人员应明确地意识到,当在椭圆曲线上实现时应该使用加法符号来描述算术运算。在本实施例中,ISOIEC19192-4中定义的特定自认证IBS方案的私钥结构将用于说明目的,但是该实施例中包含的思想可直接应用于IETFRFC6507中的方案,而且还可用于其它自我认证的IBS方案。在为该实施例选择的IBS方案中,由KGC保留的主密钥对是mpk,msk=y=gx,x,其中g是循环乘数群G的生成元,具有素数阶q,且x∈Zq*,其中Zq*是取模q的非零残差。设备105的私钥是ski=Ri=gri,si=ri+xhidi,Ri,设备110的私钥是skj=Rj=grj,sj=rj+xhidj,Rj,其中ri和rj∈RZq*和h.是加密散列函数。图3示出了根据本发明的该实施例的所述生成用于设备105和110的公有会话密钥。具体地,在步骤305处,设备105将通过首先生成随机数来发起公有会话密钥生成过程,其中是取模q的非零残差。然后,设备105将使用所述随机值“a”和所述私钥ski计算元素ki。所述元素ki可以被定义为ki=ga,Ri,其中Ri是从所述私钥ski获得的参数,并且g是循环乘法群G的生成元,具有素数阶q。然后,在步骤310处,设备105将所述元素ki和设备105idi的身份发送到设备110。在从设备110接收到所述元素ki之后,在步骤315处,设备110随后将生成随机数其中是取模q的非零残差。然后,设备110将基于所述随机值b和所述第一元素ki生成元素kj。所述元素ki可以被定义为kj=gb,Rib,其中Ri是从所述元素ki获得的参数,并且g是循环乘法群G的生成元,具有素数阶q。然后,使用与所述自认证的基于身份的签名方案相关联的签名函数或算法、Sign和所述私钥skj对所述元素ki的一部分和所述元素kj进行签名,以生成签名σj,所述签名σj被定义为σj=Signskj,ga||gb||Rib。在步骤320处,设备110随后将所述签名σj即σj=Signskj,ga||gb||Rib和所述第二元素kj发送到设备105。在从设备110接收到σj和kj之后,设备105随后开始使用与所述自认证的基于身份的签名方案相关联的验证函数、Verify以及所述设备110idj的身份来验证所述接收的签名σj。此操作发生在步骤325处,即Verifyidj,σj。如果所述验证函数返回负结果,意味着如果不能使用所述设备110idj的身份验证所述签名σj,则设备105将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σj,则设备105随后将开始计算其自身的签名σi。具体地,可以计算设备105的签名σi,即σi=Signski,gb||Rja。然后,设备105开始计算其公有密钥csi,即其中f.是双输入函数,例如级联函数||或异或函数⊕,且h.是加密散列函数。然后,将所述计算的公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsi。一旦设备105已经完成所述公有会话密钥SK的计算,设备105随后将其签名σi和与所述随机值a即Rja结合的所述私钥skj的一部分传送到设备110。或者,设备105一旦计算出其签名σi,也可以将其签名σi和与所述随机值a即Rja结合的所述私钥skj的一部分传送到设备110。此操作发生在步骤330。在从设备105接收到σi之后,设备110随后开始使用与所述自认证的基于身份的签名方案相关联的相同验证函数、Verify以及所述设备105idi的身份来验证所述接收的签名σi。此操作发生在步骤335处,即Verifyidi,σi。如果所述验证函数返回负结果,意味着如果不能使用所述设备105idi的身份验证所述签名σi,则设备110将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σi,则设备110随后将开始计算其公有密钥csj,即其中f.是双输入函数,例如级联函数||或异或函数且h.是加密散列函数。然后,将所述计算的公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsj。在本发明的该实施例中,如果服务器120接收在设备105和设备110之间交换的所有通信,服务器120将能够计算接着计算SK=KDFcskgc。在本发明所述第三实施例的另一实施例中,根据本实施例的设备105和110的公有会话密钥的生成可以如下所述。具体地,在步骤305处,设备105将通过首先生成随机数来发起公有会话密钥生成过程,其中是取模q的非零残差。然后,设备105将使用所述随机值“a”计算元素ki。所述元素ki可以被定义为ki=ga,其中g是循环群G的生成元,具有素数阶q。设备105也将在该步骤中开始计算其自身的签名σi。具体地,可以计算设备105的签名σi,即σi=Signski,ga。然后,在步骤310处,设备105将其签名σi、所述元素ki以及设备105idi的身份发送到设备110。在从设备105接收到σi之后,设备110随后开始使用与所述自认证的基于身份的签名方案相关联的相同验证函数、Verify以及所述设备105idi的身份来验证所述接收的签名σi。此操作发生在步骤315处,即Verifyidi,σi。如果所述验证函数返回负结果,意味着如果不能使用所述设备105idi的身份验证所述签名σi,则设备110将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证签名σi,则设备110将开始生成随机数其中是取模q的非零残差。然后,设备110将基于所述随机值b和所述第一元素ki生成元素kj。所述元素ki可以被定义为kj=gb,Rib,其中Ri是从所述签名σi获得的参数,并且g是循环乘法群G的生成元,具有素数阶q。然后,使用自认证的基于身份的签名方案、Sign和所述私钥skj对所述元素ki的一部分和所述元素kj进行签名,以生成签名σj,所述签名σj被定义为σj=Signskj,ga||gb||Rib。在步骤320处,设备110随后将所述签名σj即σj=Signskj,ga||gb||Rib和所述第二元素kj发送到设备105。在从设备110接收到σj和kj之后,设备105随后开始使用与所述自认证的基于身份的签名方案相关联的验证函数、Verify以及所述设备110idj的身份来验证所述接收的签名σj。此操作发生在步骤325处,即Verifyidj,σj。如果所述验证函数返回负结果,意味着如果不能使用所述设备110idj的身份验证所述签名σj,则设备105将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σj,则开始计算其公有密钥csi,即其中f.是双输入函数,例如级联函数||或异或函数⊕,且h.是加密散列函数。然后,将所述公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以获得验证密钥vki,即vki=KDFcsi。然后,将所述获得的验证密钥vki与认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF一起使用,以生成验证数据vdi,即vdi=AdDFvki,Rja。然后,同时还将所述计算的公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsi。一旦设备105已经完成所述公有会话密钥SK的计算,设备105随后将验证数据vdi和Rja传送到设备110。或者,设备105一旦计算出验证数据vdi,也可以将验证数据vdi和Rja传送到设备110。此操作发生在步骤330。在步骤335处接收到验证数据vdi之后,设备110随后开始计算其公有密钥csj,即其中f.是双输入函数,例如级联函数||或异或函数⊕,且h.是加密散列函数。然后,将所述公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以获得验证密钥vkj,即vkj=KDFcsj。然后,将所述获得的验证密钥vkj与认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF一起使用,以生成验证数据vdi,例如vdj=AdDFvkj,Rja。然后,将验证数据vdj与验证数据vdi进行比较,如果未找到匹配,则设备110将取消所述过程。如果找到匹配,则将所述计算的公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsj。类似地,在本发明的该实施例中,如果服务器120接收在设备105和设备110之间交换的所有通信,服务器120将能够计算基于具有强前向安全性的自认证IBS的实施例在本发明的第四实施例中,所述选择的基于身份的签名identitybasedsignature,简称IBS方案可以基于现有自我认证的基于身份的签名方案,该的签名方案是一类特殊的IBS方案。这些自我认证的IBS方案基于DLP离散对数问题或ECDLP椭圆曲线离散对数问题,并且由特定私钥生成的签名总是包含特定于该签名私钥的固定组件因此被称为密钥特定数据key-specificdata,简称KSD,其中所述KSD协助验证所述签名,并且通常作为其一部分附加到所述签名上。自认证IBS方案的典型示例包括ISOIEC29192-4和IETFRFC6507。自我认证的IBS可以在传统的有限域或椭圆曲线在有限域上定义的上实现。在该实施例的随后描述中,尽管乘法符号用于有限域算术运算,但本领域技术人员应明确地意识到,当在椭圆曲线上实现时应该使用加法符号来描述算术运算。在本实施例中,ISOIEC19192-4中定义的特定自认证IBS方案的私钥结构将用于说明目的,但是该实施例中包含的思想可直接应用于IETFRFC6507中的方案,而且还可用于其它自我认证的IBS方案。在为该实施例选择的IBS方案中,由KGC保留的主密钥对是mpk,msk=y=gx,x,其中g是循环乘数群G的生成元,具有素数阶q,且x∈Zq*,其中Zq*是取模q的非零残差。设备105的私钥是ski,且设备110的私钥是skj。图3示出了根据本发明的该实施例的所述生成用于设备105和110的公有会话密钥。具体地,在步骤305处,设备105将通过首先生成随机数来发起公有会话密钥生成过程,其中是取模q的非零残差。然后,设备105将使用所述随机值“a”和所述私钥ski计算元素ki。所述元素ki可以被定义为ki=ga,其中g是循环乘法群G的生成元,具有素数阶q。然后,在步骤310处,设备105将所述元素ki和设备105idi的身份发送到设备110。在从设备110接收到所述元素ki之后,在步骤315处,设备110随后将生成随机数其中是取模q的非零残差。设备110随后将生成元素uj,即uj=gab。然后,使用元素uj计算参数U,即U=guj。然后,设备110基于所述参数U和所述随机数b计算元素kj。具体地,所述元素kj可以定义为kj=U,gb,其中g是循环群G的生成元,具有素数阶q。然后,使用与自认证的基于身份的签名方案相关联的签名函数、Sign和所述私钥skj对所述元素ki和所述元素kj进行签名,以生成签名σj,所述签名σj被定义为σj=Signskj,ga||gb||U。在步骤320处,设备110随后将所述签名σj即σj=Signskj,ga||gb||U和所述第二元素kj发送到设备105。在从设备110接收到σj和kj之后,设备105随后开始使用与所述自认证的基于身份的签名方案相关联的验证函数、Verify以及所述设备110idj的身份来验证所述接收的签名σj。此操作发生在步骤325处,即Verifyidj,σj。如果所述验证函数返回负结果,意味着如果不能使用所述设备110idj的身份验证所述签名σj,则设备105将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σj,则设备105随后将开始计算其自身的签名σi。具体地,可以计算设备105的签名σi,即σi=Signski,gb。然后,设备105将生成元素ui,即ui=gab,然后设备105开始计算其公有密钥csi,其中y是所述主公钥mpk。然后,将所述计算的公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsi。一旦设备105已经完成所述公有会话密钥SK的计算,设备105随后将其签名σi传送到设备110。或者,设备105一旦计算出其签名σi,也可以将其签名σi传送给设备110。此操作发生在步骤330。在从设备105接收到σi之后,设备110随后开始使用与所述自认证的基于身份的签名方案相关联的相同验证函数、Verify以及所述设备105idi的身份来验证所述接收的签名σi。此操作发生在步骤335处,即Verifyidi,σi。如果所述验证函数返回负结果,意味着如果不能使用所述设备105idi的身份验证所述签名σi,则设备110将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σi,则设备110随后将开始计算其公有密钥csj,即其中y是所述主公钥mpk。然后,将所述计算的公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsj。在本发明的该实施例中,如果服务器120接收在设备105和设备110之间交换的所有通信,服务器120将能够计算cskgc=Ux,接着计算SK=KDFcskgc。在本发明所述第四实施例的另一实施例中,根据本实施例的设备105和110的公有会话密钥的生成可以如下所述。具体地,在步骤305处,设备105将通过首先生成随机数来发起公有会话密钥生成过程,其中是取模q的非零残差。然后,设备105将使用所述随机值“a”和所述私钥ski计算元素ki。所述元素ki可以被定义为ki=ga,其中g是循环乘法群G的生成元,具有素数阶q。设备105也将在该步骤中开始计算其自身的签名σi。具体地,可以计算设备105的签名σi,即σi=Signski,ga。然后,在步骤310处,设备105将其签名σi、所述元素ki以及设备105idi的身份发送到设备110。在从设备105接收到σi之后,设备110随后开始使用与所述自认证的基于身份的签名方案相关联的相同验证函数、Verify以及所述设备105idi的身份来验证所述接收的签名σi。此操作发生在步骤315处,即Verifyidi,σi。如果所述验证函数返回负结果,意味着如果不能使用所述设备105idi的身份验证所述签名σi,则设备110将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证签名σi,则设备110将开始生成随机数b其中是取模q的非零残差。设备110随后将生成元素uj,即uj=gab。然后,使用元素uj计算参数U,即U=guj。然后,设备110基于所述参数U和所述随机数b形成元素kj。具体地,所述元素kj可以定义为kj=U,gb,其中g是循环乘法群G的生成元,具有素数阶q。然后,使用与所述自认证的基于身份的签名方案相关联的签名函数、Sign和所述私钥skj对所述元素ki和所述元素kj进行签名,以生成签名σj,所述签名σj被定义为σj=Signskj,ga||gb||U。在步骤320处,设备110随后将所述签名σj即σj=Signskj,ga||gb||U和所述第二元素kj发送到设备105。在从设备110接收到σj和kj之后,设备105随后开始使用与所述自认证的基于身份的签名方案相关联的验证函数、Verify以及所述设备110idj的身份来验证所述接收的签名σj。此操作发生在步骤325处,即Verifyidj,σj。如果所述验证函数返回负结果,意味着如果不能使用所述设备110idj的身份验证所述签名σj,则设备105将中止所述公有会话密钥生成过程。相反地,如果所述验证函数成功验证所述签名σj,则开始生成元素ui,即ui=gab,然后设备105开始计算其公有密钥csi,即其中y是所述主公钥mpk。然后,将所述公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以获得验证密钥vki,即vki=KDFcsi。然后,将所述获得的验证密钥vki与认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF一起使用,以生成验证数据vdi,即vdi=AdDFvki。然后,同时还将所述计算的公有密钥csi提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsi。一旦设备105已经完成所述公有会话密钥SK的计算,设备105随后将验证数据vdi传送到设备110。或者,设备105一旦计算出验证数据vdi,也可以将验证数据vdi传送到设备110。此操作发生在步骤330。在步骤335处接收到验证数据vdi之后,设备110随后开始计算其公有密钥csj,即其中y是所述主公钥mpk。然后,将所述公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以获得验证密钥vkj,即vkj=KDFcsj。然后,将所述获得的验证密钥vkj与认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF一起使用,以生成验证数据vdi,例如vdj=AdDFvkj。然后,将验证数据vdj与验证数据vdi进行比较,如果未找到匹配,则设备110将取消所述过程。如果找到匹配,则将所述计算的公有密钥csj提供给密钥导出函数KeyDerivingFunction,简称KDF以生成公有会话密钥SK,即SK=KDFcsj。类似地,对于本发明的该实施例,如果服务器120要接收在设备105和设备110之间交换的所有通信,则服务器120将能够计算cskgc=Ux.通过观察设备105可以在步骤330处计算U=gui和σi=Signski,gb||U并将其发送到设备110,而设备110的kj可以被定义为kj=gb和设备110的σj被定义为σj=Signskj,ga||gb,本领域技术人员可以基于具有强前向安全性的自认证IBS构建上述实施例的替代方案。根据本发明的实施例,一种用于设备“i”生成用于对设备“i”和第二设备“j”之间的数字通信进行编码的公有会话密钥SK的方法,包括以下步骤:步骤1,接收主公钥mpk和所述私钥ski;步骤2,基于所述第一设备生成的第一随机值a和所述主公钥mpk计算第一元素ki;步骤3,向所述第二设备传送所述第一元素ki以及所述第一设备的所述身份idi,使得在接收到所述通信时,所述第二设备用于:基于所述第二设备生成的第二随机值b和所述主公钥mpk计算第二元素kj;通过使用与基于身份的签名方案相关联的签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;步骤4,使用与所述基于身份的签名方案相关联的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,使用与所述基于身份的签名方案相关联的所述签名函数和所述私钥ski对所述第二元素kj进行签名来计算签名σi;步骤5,基于所述第二元素kj、所述主公钥mpk和所述第一随机值a计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。为了提供这样的系统或方法,需要设备“i”生成用于编码所述设备“i”和第二设备“j”之间的数字通信的公有会话密钥SK的过程。下文及图4描述了根据本发明提供流程的流程实施例。图4示出了由第一设备“i”执行以生成用于编码所述第一设备“i”和所述第二设备“j”之间的数字通信的公有会话密钥SK的过程400。过程400开始于步骤405,其中过程400从用作密钥生成中心的安全服务器接收主公钥mpk和所述私钥ski。在步骤410处,过程400随后基于所述第一设备生成的第一随机值a和所述主公钥mpk计算第一元素ki。在步骤415处,过程400向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi。在接收到所述通信之后,所述第二设备随后用于:基于所述第二设备生成的第二随机值b和所述主公钥mpk计算第二元素kj,通过使用与所述基于身份的签名方案相关联的签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj,然后将所述第二元素kj和所述签名σj发送到所述第一设备。然后,过程400使用与所述基于身份的签名方案相关联的验证函数和所述第二设备idj的所述身份验证所述签名σj,并开始在验证所述签名σj时,使用与所述基于身份的签名方案相关联的所述签名函数和所述私钥ski对所述第二元素kj进行签名来计算签名σi。然后,过程400基于所述第二元素kj、所述主公钥mpk和所述第一随机值a计算公有密钥csi;在步骤425处,通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。然后,过程400结束。以上是如在所附权利要求书中阐述的根据本发明的系统和过程的实施例的描述。设想其它实施例也是可能的并且将设计落入所附权利要求书的范围内的替代方案。

权利要求:1.一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的系统,其特征在于,包括:安全服务器,用于:生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备,用于:基于所述第一设备生成的第一随机值a和所述主公钥mpk计算第一元素ki;向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi;所述第二设备,用于:基于所述第二设备生成的第二随机值b和所述主公钥mpk计算第二元素kj;通过使用基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;所述第一设备,用于:使用所述基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,使用所述基于身份的签名方案的所述签名函数和所述私钥ski对所述第二元素kj进行签名来计算签名σi;基于所述第二元素kj、所述主公钥mpk和所述第一随机值a计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。2.根据权利要求1所述的系统,其特征在于,所述第一设备还用于将所述签名σi传送到所述第二设备,由此所述系统还包括:所述第二设备,用于:使用所述基于身份的签名方案的所述验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,基于所述第一元素ki、所述主公钥mpk和所述第二随机值b计算公有密钥csj,并通过向所述密钥导出函数提供所述公有密钥csj来生成所述公有会话密钥SK。3.根据权利要求1或2所述的系统,其特征在于:所述主公钥mpk包括P,s·P,其中P是循环群G1的生成元,具有定义在椭圆曲线上的素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P;所述公有密钥csi和所述公有密钥csj使用对称双线性映射e计算:G1xG1→G2,其中G2是循环群,具有定义在所述椭圆曲线上的素数阶q;csi定义为csi=eb·P,s·Pa,且csj定义为csj=ea·P,s·Pb。4.根据权利要求3所述的系统,其特征在于,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj和从所述主密钥msk获得的参数s计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=ea·P,b·Ps。5.根据权利要求1或2所述的系统,其特征在于:所述主公钥mpk包括s·Q,Q,P,其中P是循环群G1的生成元,具有定义在椭圆曲线上的素数阶q,Q是循环群G2的生成元,具有素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P,b·Q;所述公有密钥csi和所述公有密钥csj使用非对称双线性映射e计算:G1xG2→G,其中G是循环群,具有定义在所述椭圆曲线上的素数阶q;csi定义为csi=eb·P,s·Qa,且csj定义为csj=ea·P,s·Qb。6.根据权利要求5所述的系统,其特征在于,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj的一部分和从所述主密钥msk获得的参数s计算公有密钥cskgc,所述公有密钥cskgc定义为cskgc=ea·P,b·Qs。7.一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的系统,其特征在于,包括:安全服务器,用于:生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备,用于:基于所述第一设备生成的第一随机值a和所述私钥ski计算第一元素ki;向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi;所述第二设备,用于:基于所述第二设备生成的第二随机值b和所述第一元素ki计算第二元素kj;通过使用自认证的基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki的一部分和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;所述服务器,用于:使用所述自认证的基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σi时,通过使用所述自认证的基于身份的签名方案的签名函数和所述私钥ski对所述第二元素kj的一部分和与所述随机值a结合的所述私钥skj的一部分进行签名来计算签名σi;通过向双输入函数f提供所述主公钥mpk、所述第一随机值a、所述第二设备idj的所述身份、所述私钥skj的一部分、所述第二元素kj和所述私钥ski的一部分来计算公有密钥csi;及通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。8.根据权利要求7所述的系统,其特征在于,所述第一设备还用于将与所述随机值a结合的所述私钥skj的所述部分和所述签名σi传送到所述第二设备,由此所述系统还包括:所述第二设备,用于:使用所述自认证的基于身份的签名方案的所述验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,通过向双输入函数f提供所述主公钥mpk、所述第二随机值b、所述第一设备idi的所述身份、所述第一元素ki、所述私钥skj的一部分和与所述随机值a结合的所述私钥skj的所述传送部分来计算公有密钥csj;通过向密钥导出函数提供所述公有密钥csj来生成所述公有会话密钥SK。9.根据权利要求7或8所述的系统,其特征在于:所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述私钥ski定义为ski=Ri=gri,si=ri+xHRi,idi,所述私钥skj定义为skj=Rj=grj,sj=rj+xHRj,idj,其中ri和rj是随机数,H是防撞散列函数;所述第一元素ki定义为ki=Ri,ga;所述第二元素kj定义为kj=Rib,gb;所述双输入函数f包括串联函数或异或函数,其中csi定义为且csj定义为10.根据权利要求9所述的系统,其特征在于,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;通过向双输入函数f提供所述主密钥msk、所述第一元素ki的一部分、具有所述私钥skj的一部分的所述第二设备idj的所述身份、所述第二元素kj的一部分、具有所述私钥ski的一部分的所述第一设备idi的所述身份来计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=fya.hidj,Rj,yb.hidi,Ri。11.一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的系统,其特征在于,包括:安全服务器,用于:生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备,用于:基于所述第一设备生成的第一随机值a计算第一元素ki;向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi;所述第二设备,用于:基于所述第一元素ki和所述第二设备生成的第二随机值b计算元素uj;基于所述元素uj和所述第二随机值b计算第二元素kj;通过使用自认证的基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来生成签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;所述第一设备,用于:使用所述自认证的基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,使用所述自认证的基于身份的签名方案的所述签名函数和所述私钥ski对所述第二元素kj的一部分进行签名来计算签名σi;基于所述第二元素kj的所述部分和所述第一随机值a计算元素ui;基于所述元素ui和所述主公钥mpk计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。12.根据权利要求11所述的系统,其特征在于,所述第一设备还用于将所述签名σi传送到所述第二设备,由此所述系统还包括:所述第二设备,用于:使用所述自认证的基于身份的签名方案的所述验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,基于所述元素uj和所述主公钥mpk计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj生成所述公有会话密钥SK。13.根据权利要求11或12所述的系统,其特征在于:所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=ga;所述第二元素kj定义为kj=U,gb,其中U定义为且元素uj定义为uj=gab;所述公有密钥csi定义为且所述公有密钥csj定义为其中所述元素ui定义为ui=gab。14.根据权利要求13所述的系统,其特征在于,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述元素uj或所述元素ui和从所述主密钥msk获得的参数x计算公有密钥cskgc,其中cskgc定义为cskgc=Ux。15.一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的系统,其特征在于,包括:安全服务器,用于:生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备,用于:基于所述第一设备生成的第一随机值a和所述主公钥mpk计算第一元素ki;通过使用基于身份的签名方案的签名函数和所述私钥ski对所述第一元素ki进行签名来计算签名σi;向所述第二设备传送所述签名σi、所述第一元素ki和所述第一设备的所述身份idi;所述第二设备,用于:使用所述基于身份的签名方案的验证函数和所述第一设备idi的所述身份验证所述签名σi;当验证所述签名的第一元素ki时,基于所述第二设备生成的第二随机值b和所述主公钥mpk计算第二元素kj;通过使用所述基于身份的签名方案的所述签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;所述第一设备,用于:使用所述基于身份的签名方案的所述验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,基于所述第二元素kj、所述主公钥mpk和所述第一随机值a计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi生成验证密钥vki;通过向认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vki来计算验证数据vdi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。16.根据权利要求15所述的系统,其特征在于,所述第一设备还用于将所述验证数据vdi传送到所述第二设备,由此所述系统还包括:所述第二设备,用于:基于所述第一元素ki、所述主公钥mpk和所述第二随机值b计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj生成验证密钥vkj;通过向所述认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vkj来计算验证数据vdj;确定所述验证数据vdi是否与所述验证数据vdj匹配;当所述验证数据vdi与所述验证数据vdj匹配时,通过向密钥导出函数提供所述公有密钥csj生成所述公有会话密钥SK。17.根据权利要求15或16所述的系统,其特征在于:所述主公钥mpk包括P,s·P,其中P是循环群G1的生成元,具有素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P;所述公有密钥csi和所述公有密钥csj使用对称双线性映射e计算:G1xG1→G2,其中G2是具有素数阶q的循环群;csi定义为csi=es·P,b·Pa,且csj定义为csj=es·P,a·Pb。18.根据权利要求17所述的系统,其特征在于,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj和从所述主密钥msk获得的参数s计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=ea.P,b.Ps。19.根据权利要求15或16所述的系统,其特征在于:所述主公钥mpk包括s·Q,Q,P,其中P是循环群G1的生成元,具有素数阶q,Q是循环群G2的生成元,具有素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P,b·Q;所述公有密钥csi和所述公有密钥csj使用非对称双线性映射e计算:G1xG2→G,其中csi定义为csi=eb·P,s·Qa,且csj定义为csj=ea·P,s·Qb。20.根据权利要求19所述的系统,其特征在于,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述第一元素ki、所述第二元素kj的一部分和从所述主密钥msk获得的参数s计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=ea.P,b.Qs。21.一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的系统,其特征在于,包括:安全服务器,用于:生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备,用于:基于所述第一设备生成的第一随机值a和所述私钥ski计算第一元素ki;通过使用自认证的基于身份的签名方案的签名函数和所述私钥ski对所述第一元素ki进行签名来计算签名σi;向所述第二设备传送所述签名σi、所述第一元素ki和所述第一设备的所述身份idi;所述第二设备,用于:使用所述自认证的基于身份的签名方案的验证函数和所述第一设备idi的身份验证所述签名σi,并在验证所述签名σi时,基于所述第二设备生成的第二随机值b和所述第一元素ki计算第二元素kj;通过使用所述自认证的基于身份的签名方案的所述签名函数和所述私钥skj对所述第一元素ki的一部分和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;所述第一设备,用于:使用所述自认证的基于身份的签名方案的所述验证函数和所述第二设备idj的所述身份验证所述签名σj;当验证所述签名σj时,通过向双输入函数f提供所述主公钥mpk、所述第一随机值a、所述第二设备idj的所述身份、所述私钥skj的一部分、所述第二元素kj和所述私钥ski的一部分来计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi生成验证密钥vki;通过向认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vki来计算验证数据vdi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。22.根据权利要求21所述的系统,其特征在于,所述第一设备还用于将所述验证数据vdi和与所述随机值a结合的所述私钥skj的所述部分传送到所述第二设备,由此所述系统还包括:所述第二设备,用于:通过向双输入函数f提供所述主公钥mpk、所述第二随机值b、所述第一设备idi的所述身份、所述第一元素ki、所述私钥skj和与所述随机值a结合的所述私钥skj的所述传送部分来计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj生成验证密钥vkj;通过向所述认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vkj来计算验证数据vdj;确定所述验证数据vdi是否与所述验证数据vdj匹配;当所述验证数据vdi与所述验证数据vdj匹配时,通过向密钥导出函数提供所述公有密钥csj生成所述公有会话密钥SK。23.根据权利要求21或22所述的系统,其特征在于:所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述私钥ski定义为ski=Ri=gri,si=ri+xHRi,idi,所述私钥skj定义为skj=Rj=grj,sj=rj+xHRj,idj,其中ri和rj是随机数,H是防撞散列函数;所述第一元素ki定义为ki=ga;所述第二元素kj定义为kj=Rib,gb;所述双输入函数f包括串联函数或异或函数,其中csi定义为且csj定义为24.根据权利要求23所述的系统,其特征在于,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;通过向双输入函数f提供所述主密钥msk、所述第一元素ki、具有所述私钥skj的一部分的所述第二设备idj的所述身份、所述第二元素kj的一部分、具有所述私钥ski的一部分的所述第一设备idi的所述身份来计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=fya.hidj,Rj,yb.hidi,Ri。25.一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的系统,其特征在于,包括:安全服务器,用于:生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;所述第一设备,用于:基于所述第一设备生成的第一随机值a计算第一元素ki;通过使用自认证的基于身份的签名方案的签名函数和所述私钥ski对所述第一元素ki进行签名来计算签名σi;向所述第二设备传送所述签名σi、所述第一元素ki和所述第一设备的所述身份idi;所述第二设备,用于:使用所述自认证的基于身份的签名方案的验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,基于所述第一元素ki和所述第二设备生成的第二随机值b计算元素uj;基于所述元素u和所述第二随机值b计算第二元素kj;通过使用所述自认证的基于身份的签名方案的所述签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;所述第一设备,用于:使用所述自认证的基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,基于所述第二元素kj的一部分和所述第一随机值a计算元素ui;基于所述元素ui和所述主公钥mpk计算公有密钥csi;通过向密钥导出函数提供所述公有密钥csi生成验证密钥vki;通过向认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vki来计算验证数据vdi;通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。26.根据权利要求25所述的系统,其特征在于,所述第一设备还用于将所述验证数据vdi传送到所述第二设备,由此所述系统还包括:所述第二设备,用于:基于所述元素uj和所述主公钥mpk计算公有密钥csj;通过向所述密钥导出函数提供所述公有密钥csj生成验证密钥vkj;通过向所述认证数据导出函数AuthenticationDataDerivingfunction,简称AdDF提供所述验证密钥vkj来计算验证数据vdj;确定所述验证数据vdi是否与所述验证数据vdj匹配;当所述验证数据vdi与所述验证数据vdj匹配时,通过向密钥导出函数提供所述公有密钥csj生成所述公有会话密钥SK。27.根据权利要求25或26所述的系统,其特征在于:所述主公钥mpk包括gx,其中g是循环乘数群G的生成元,且x是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=ga;所述第二元素kj定义为kj=U,gb,其中U定义为且元素uj定义为uj=gab;所述公有密钥csi定义为且所述公有密钥csj定义为其中所述元素ui定义为ui=gab。28.根据权利要求27所述的系统,其特征在于,所述安全服务器还用于:接收所述第一设备和所述第二设备之间交换的所有通信和传输;基于所述元素uj或所述元素ui和从所述主密钥msk获得的参数x计算公有密钥cskgc,其中所述公有密钥cskgc定义为cskgc=Ux。29.一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的方法,其特征在于,包括:安全服务器生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;从所述第一设备接收第一元素ki和第一随机值a;其中,所述第一元素ki基于所述第一设备生成的所述第一随机值a计算;从所述第二设备接收第二元素kj和第二随机值b;其中,所述第二元素kj基于所述第二设备生成的所述第二随机值b计算;基于所述第一元素ki、所述第二元素kj、所述第一随机值a、所述第二随机值b和从所述主密钥msk获得的参数s计算公有密钥cskgc。30.根据权利要求29所述的方法,其特征在于:所述主公钥mpk包括P,s·P,其中P是循环群G1的生成元,具有定义在椭圆曲线上的素数阶q;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P。31.根据权利要求29所述的方法,其特征在于:所述主公钥mpk包括s·Q,Q,P,其中P是循环群G1的生成元,具有定义在椭圆曲线上的素数阶q;Q是循环群G2的生成元,具有素数阶q;所述第一元素ki定义为ki=a·P;所述第二元素kj定义为kj=b·P,b·Q。32.一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的服务器,其特征在于,包括:处理器;所述处理器可读取的非瞬时性介质,所述非瞬时性介质存储当所述处理器执行时使所述处理器执行以下操作的指令:生成主密钥msk和主公钥mpk,其中所述主密钥msk对应于所述主公钥mpk;基于所述第一设备的身份idi生成私钥ski,并基于所述第二设备的身份idj生成私钥skj;将所述主公钥mpk和所述私钥ski传送到所述第一设备,并将所述主公钥mpk和所述私钥skj传送到所述第二设备;从所述第一设备接收第一元素ki和第一随机值a;其中,所述第一元素ki基于所述第一设备生成的所述第一随机值a计算;从所述第二设备接收第二元素kj和第二随机值b;其中,所述第二元素kj基于所述第二设备生成的所述第二随机值b计算;基于所述第一元素ki、所述第二元素kj、所述第一随机值a、所述第二随机值b和从所述主密钥msk获得的参数s计算公有密钥cskgc。33.一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的方法,其特征在于,包括:所述第一设备从安全服务器接收主公钥mpk和私钥ski;所述第一设备基于所述第一设备生成的第一随机值a和所述主公钥mpk计算第一元素ki;所述第一设备向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi;从所述第二设备接收第二元素kj和签名σj;所述第一设备使用所述基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,使用所述基于身份的签名方案的所述签名函数和所述私钥ski对所述第二元素kj进行签名来计算签名σi;所述第一设备基于所述第二元素kj、所述主公钥mpk和所述第一随机值a计算公有密钥csi;所述第一设备通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。34.根据权利要求33所述的方法,其特征在于:所述主公钥mpk包括s·Q,Q,P,其中P是循环群G1的生成元,具有定义在椭圆曲线上的素数阶q,Q是循环群G2的生成元,具有素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;使用非对称双线性映射e计算公有密钥csi:G1xG2→G,其中G是循环群,具有定义在所述椭圆曲线上的素数阶q,且csi定义为csi=eb·P,s·Qa。35.根据权利要求33所述的方法,其特征在于:所述主公钥mpk包括P,s·P,其中P是循环群G1的生成元,具有定义在椭圆曲线上的素数阶q,且s是从所述主密钥msk获得的参数;所述第一元素ki定义为ki=a·P;使用对称双线性映射e计算所述公有密钥csi:G1xG1→G2,其中G2是循环群,具有定义在所述椭圆曲线上的素数阶q,且csi定义为csi=eb·P,s·Pa。36.一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的第一设备i,其特征在于,包括:处理器;所述处理器可读取的非瞬时性介质,所述非瞬时性介质存储当所述处理器执行时使所述处理器执行以下操作的指令:所述第一设备从安全服务器接收主公钥mpk和私钥ski;所述第一设备基于所述第一设备生成的第一随机值a和所述主公钥mpk计算第一元素ki;所述第一设备向所述第二设备传送所述第一元素ki和所述第一设备的所述身份idi;从所述第二设备接收第二元素kj和签名σj;所述第一设备使用所述基于身份的签名方案的验证函数和所述第二设备idj的所述身份验证所述签名σj,并在验证所述签名σj时,使用所述基于身份的签名方案的所述签名函数和所述私钥ski对所述第二元素kj进行签名来计算签名σi;所述第一设备基于所述第二元素kj、所述主公钥mpk和所述第一随机值a计算公有密钥csi;所述第一设备通过向密钥导出函数提供所述公有密钥csi来生成所述公有会话密钥SK。37.一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的方法,其特征在于,包括:所述第二设备从安全服务器接收主公钥mpk和私钥;从所述第一设备i接收第一元素ki和所述第一设备的所述身份idi;基于所述第二设备生成的第二随机值b和所述主公钥mpk计算第二元素kj;通过使用基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;从所述第一设备接收签名σi;所述第二设备使用所述基于身份的签名方案的所述验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,基于所述第一元素ki、所述主公钥mpk和所述第二随机值b计算公有密钥csj,并通过向所述密钥导出函数提供所述公有密钥csj来生成所述公有会话密钥SK。38.根据权利要求37所述的方法,其特征在于:所述主公钥mpk包括P,s·P,其中P是循环群G1的生成元,具有定义在椭圆曲线上的素数阶q,且s是从所述主密钥msk获得的参数;所述第二元素kj定义为kj=b·P;使用对称双线性映射e计算所述公有密钥csj:G1xG1→G2,其中G2是循环群,具有定义在所述椭圆曲线上的素数阶q,且csj定义为csj=ea·P,s·Pb。39.根据权利要求37所述的方法,其特征在于:所述主公钥mpk包括s·Q,Q,P,其中P是循环群G1的生成元,具有定义在椭圆曲线上的素数阶q,Q是循环群G2的生成元,具有素数阶q,且s是从所述主密钥msk获得的参数;所述第二元素kj定义为kj=b·P,b·Q;使用非对称双线性映射e计算所述公有密钥csj:G1xG2→G,其中G是循环群,具有定义在所述椭圆曲线上的素数阶q,且csj定义为csj=ea·P,s·Qb。40.一种用于生成公有会话密钥SK对第一设备i和第二设备j之间的数字通信进行编码的第二设备j,其特征在于,包括:处理器;所述处理器可读取的非瞬时性介质,所述非瞬时性介质存储当所述处理器执行时使所述处理器执行以下操作的指令:所述第二设备从安全服务器接收主公钥mpk和私钥;从所述第一设备i接收第一元素ki和所述第一设备的所述身份idi;基于所述第二设备生成的第二随机值b和所述主公钥mpk计算第二元素kj;通过使用基于身份的签名方案的签名函数和所述私钥skj对所述第一元素ki和所述第二元素kj进行签名来计算签名σj;向所述第一设备发送所述第二元素kj和所述签名σj;从所述第一设备接收签名σi;所述第二设备使用所述基于身份的签名方案的所述验证函数和所述第一设备idi的所述身份验证所述签名σi,并在验证所述签名σi时,基于所述第一元素ki、所述主公钥mpk和所述第二随机值b计算公有密钥csj,并通过向所述密钥导出函数提供所述公有密钥csj来生成所述公有会话密钥SK。

百度查询: 华为国际有限公司 具有前向安全性的基于身份的认证密钥交换方案中用于计算公有会话密钥的系统和方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。