CN110268676B - 基于身份的自认证签名方案的私有密钥计算系统和方法 - Google Patents
基于身份的自认证签名方案的私有密钥计算系统和方法 Download PDFInfo
- Publication number
- CN110268676B CN110268676B CN201880011027.7A CN201880011027A CN110268676B CN 110268676 B CN110268676 B CN 110268676B CN 201880011027 A CN201880011027 A CN 201880011027A CN 110268676 B CN110268676 B CN 110268676B
- Authority
- CN
- China
- Prior art keywords
- random number
- key
- identity
- value
- calculating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0847—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- Lock And Its Accessories (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本文档描述了一种用于为参与基于身份的自认证加密方案的设备生成私有密钥的系统和方法,其中所述设备使用所述私有密钥创建用于对设备间数字通信进行编码的公共会话密钥。
Description
技术领域
本发明涉及一种用于为参与基于身份的自认证签名方案的设备生成私有密钥的系统和方法,其中设备使用私有密钥创建用于对设备间数字通信进行编码的公共会话密钥。具体而言,根据本发明的系统和方法生成的私有密钥只为设备本身所知,而不为任何其它第三方所知。
背景技术
由于多种技术的融合,现在越来越多的设备能够以无线的方式与互联网无缝通信或者在设备之间无线地交换通信。这种聚合使得物联网(Internet of Things,IoT)的前景在近几年越来越受重视。在物联网中,数百万个实体或设备(即物体)将会彼此连接。这些设备包括诸如智能芯片、智能插头、智能手表、智能电话、智能车辆、智能建筑等设备或实体,它们彼此直接通信或者通过互联网通信。
随着物联网扩展到更多领域,这些设备更容易受到黑客或非法用户的网络攻击,这是因为受损的设备会授予恶意用户访问该设备所属网络的权限。因此,最重要的是设置安全协议,以在两个实体之间交换数据之前允许一个实体验证与之通信的对等实体的真实性。除此之外,一旦验证了实体的真实性,就必须创建仅为这两个实体所知的秘密密钥,以便于在这两个实体之间对数据消息进行签名。这是为了确保即使这两个实体之间传递的数据被截获或重定向,该数据也不会受到损害。
创建用于对实体间的数据通信进行签名的秘密密钥的常用方法涉及在相关方之间预先共享公共对称秘密密钥。对于这一方法,要在实体之间传输的数据消息将使用该预先共享或预先约定的秘密密钥来进行签名。如果接收实体能够使用该预先共享的秘密密钥解密收到的消息,则意味着发送方的真实性得到了验证,接收方则可以相应地继续处理解密的消息。不幸的是,该方法不可扩展,而且缺乏灵活性,因为需要在所有可信实体或设备可以彼此通信之前将公共秘钥预先共享或传送给这些实体或设备。在IoT设置中,设备的高移动性是一个标准,而且需要彼此交换数据的设备可能没有机会提前创建秘密密钥。
已经提出的另一种方法利用基于公开密钥基础设施(public keyinfrastructure,PKI)的解决方案,其中分配给每个授权实体的密钥对通过公开密钥证书与其持有者绑定。然后,密钥对利用公开密钥加密或数字签名方法等公开密钥加密体系来对数据消息进行签名或通过验证发送方的公开密钥证书来验证发送方的真实性。这种公开密钥基础设施的设置和维护非常昂贵,并且要求实体始终与PKI服务器保持联系以验证相应的公开密钥证书。
已经提出的又一种方法利用基于身份的加密技术方法来认证实体并对数据消息进行签名。这种基于身份的加密体系是特殊的公开密钥加密体系,其基于双线性配对,并将实体的例如用户名、电子邮件地址、电话号码、IP地址等身份作为公开密钥,然后由密钥生成中心从该实体的身份导出相应的私有密钥,该密钥生成中心包括用于生成实体的私有密钥的主秘密密钥。这种方法的缺点是双线性配对是一个昂贵且耗时的计算过程。
现有的基于身份的加密方案的另一个固有缺点是用户的私有密钥通常由密钥生成中心生成。由于用户的私有密钥被托管到密钥生成中心,这意味着密钥生成中心将拥有该方案的用户的所有私有密钥。如果密钥生成中心一旦遭到破坏,这将意味着系统的所有用户也将受到损害。
由于上述原因,本领域技术人员一直在努力想出一种系统和方法来为基于身份的签名方案的用户生成私有密钥,其中私有密钥仅为每个相应的用户所知。然后,私有密钥与基于身份的签名方案一起使用,以验证该方案的用户的真实性,并生成将用于在验证用户之间编码数据消息的公共会话密钥。
发明内容
本发明实施例提供的系统和方法解决了上述和其它问题,并且在本领域取得了进步。
本发明系统和方法实施例的第一个优点在于,基于身份的自认证签名方案中的设备或实体的私有密钥仅为设备本身所知,并不托管给密钥生成中心等任何外部第三方。
本发明系统和方法实施例的第二个优点在于,根据本发明实施例生成的私有密钥与现有基于身份的自认证签名方案的形式相同,因此可以在现有基于身份的自认证签名方案中使用,而无需改变现有基于身份的自认证签名方案的操作。
本发明系统和方法实施例的第三个优点在于,本发明允许进行跨域认证密钥交换,其中不同的密钥生成中心可以发行用户或实体各自的私有密钥,每个中心有其独有的系统参数。
本发明系统和方法实施例的第四个优点在于,本发明可以在传输层安全(Transport Layer Security,TLS)协议或数据报传输层安全(Datagram Transport LayerSecurity,DTLS)协议中使用,其中可以使用根据本发明实施例的基于身份的自认证签名方案对TLS协议或DTLS协议的消息进行签名。
上述优点由根据本发明的按照以下方式操作的方法实施例来提供。简而言之,在本发明实施例的后续说明中,虽然乘法符号用于有限域算术运算,本领域技术人员应清楚认识到,当在椭圆曲线上实现时,应使用加法符号来描述算术运算。
根据本发明第一方面,一种用于为参与基于身份的自认证签名方案的设备计算私有密钥sk的系统,包括安全服务器,用于:根据所述安全服务器生成的第二随机数ri2、从所述设备接收的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数为所述设备计算参数,其中所述第一组分量包括所述设备生成的第一随机数ri1;将所述计算的参数传输给所述设备;以及所述设备,用于根据所述收到的计算的参数和所述随机数ri1计算所述私有密钥sk。
结合所述第一方面,根据本发明实施例,所述为所述设备计算所述参数的步骤包括:从所述第一组分量中检索任意第一值Ri1和所述设备的身份idi,其中根据所述第一随机数ri1生成所述任意第一值Ri1;计算所述设备的任意值Ri和第一整数si1;以及将所述计算的所述设备的任意值Ri和所述第一整数si1设置为所述设备的所述参数,其中根据所述任意第一值Ri1和所述第二随机数ri2计算所述设备的任意值Ri;以及根据所述第二随机数ri2、所述主秘密密钥x、所述设备的任意值Ri、所述设备的身份idi以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算所述第一整数si1。
结合所述第一方面,根据本发明实施例,所述计算所述私有密钥sk的步骤包括:根据从所述安全服务器传输的所述计算的参数中检索到的所述第一整数si1、所述第一随机数ri1以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算整数si;以及根据所述设备的任意值Ri和所述整数si形成所述私有密钥sk。
结合所述第一方面,根据本发明实施例,所述设备的任意值Ri由或 确定,所述任意第一值Ri1由确定,所述第一整数si1由si1=ri2+xH(Ri,idi)(mod q)或si1=-ri2+xH(Ri,idi)(mod q)确定,其中H()为无碰撞散列函数。
结合所述第一方面,根据本发明实施例,所述整数si由si=si1+ri1(mod q)确定。
结合所述第一方面,根据本发明实施例,所述整数si由si=si1-ri1(mod q)确定。
结合所述第一方面,根据本发明实施例,所述为所述设备计算所述参数的步骤包括:从所述第一组分量中检索任意第一值Ri1、所述设备的身份idi以及同态加密值c,其中根据所述第一随机数ri1生成所述任意第一值Ri1,通过向加法同态加密函数HEnc()提供所述第一随机数ri1和从与所述主公开密钥mpk关联的所述参数中获得的素数q来生成所述同态加密值c;将所述设备的任意值Ri和第一整数si1设置为所述设备的所述参数,其中根据所述任意第一值Ri1和所述第二随机数ri2计算所述设备的任意值Ri;以及通过向所述加法同态加密函数HEnc()提供所述第二随机数ri2、所述同态加密值c、所述主秘密密钥x、所述设备的任意值Ri、所述设备的身份idi以及所述素数q计算所述第一整数si1。
结合所述第一方面,根据本发明实施例,所述计算所述私有密钥sk的步骤包括:通过将互补同态解密函数运用到从所述安全服务器传输的所述计算的参数中检索到的所述第一整数si1计算整数si;以及根据所述设备的任意值Ri和所述整数si形成所述私有密钥sk。
结合所述第一方面,根据本发明实施例,所述设备的任意值Ri由确定,所述任意第一值Ri1由确定,所述同态加密值c由c=HEnc(ri1 -1mod q)确定,所述第一整数si1由确定,其中HEnc()为所述加法同态加密函数。
结合所述第一方面,根据本发明实施例,所述设备的任意值Ri由确定,所述任意第一值Ri1由确定,所述同态加密值c由c=HEnc(ri1 -1)确定,所述第一整数si1由确定,其中HEnc()为所述加法同态加密函数。
结合所述第一方面,根据本发明实施例,所述整数si由si=ri1HDec(si1)确定,其中HDec()为所述互补同态解密函数。
结合所述第一方面,根据本发明实施例,所述设备的任意值Ri由确定,所述任意第一值Ri1由确定,所述同态加密值c由c=HEnc(ri1)确定,所述第一整数si1由确定,其中HEnc()为所述加法同态加密函数。
结合所述第一方面,根据本发明实施例,所述整数si由si=ri1 -1HDec(si1)确定,其中HDec()为所述互补同态解密函数。
根据本发明第二方面,公开了一种生成公共会话密钥SK的系统,所述共会话密钥SK用于对参与基于身份的自认证签名方案的第一设备i和第二设备j之间的数字通信进行编码,所述系统包括:安全服务器,用于指示:所述第一设备根据从所述安全服务器接收的第一组参数和所述第一设备生成的随机数ri1计算私有密钥ski,其中所述安全服务器根据所述安全服务器生成的第二随机数ri2、包括所述第一随机数ri1的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数生成所述第一组参数,其中所述第一设备生成所述第一组分量并将其传输给所述安全服务器;以及所述第二设备根据从所述安全服务器接收的第二组参数和所述第二设备生成的随机数rj1计算私有密钥skj,其中所述安全服务器根据所述安全服务器生成的第二随机数rj2、包括所述第一随机数rj1的第二组分量、所述主秘密密钥x以及与所述主公开密钥mpk关联的所述参数生成所述第二组参数,其中所述第二设备生成所述第二组分量并将其传输给所述安全服务器;所述第一设备用于:使用基于身份的自认证签名方案和所述私有密钥ski对群元素ga进行签名,其中a为所述第一设备生成的随机数,g为循环群G的发生器;将所述第一设备的身份idi、所述群元素ga和所述签名的群元素ga传输给所述第二设备;在收到所述传输信息时,所述第二设备用于:使用与所述基于身份的自认证签名方案关联的验证函数和所述第一设备的身份idi验证所述签名的群元素ga,在所述签名的群元素ga通过验证时,使用所述基于身份的自认证签名方案和所述私有密钥skj对群元素(ga||gb)进行签名,其中b为所述第一设备生成的随机数,以及将所述签名的群元素(ga||gb)和群元素gb传输给所述第一设备;所述第一设备用于:使用与所述基于身份的自认证签名方案关联的所述验证函数和所述第二设备的身份idj验证所述签名的群元素(ga||gb);在所述签名的群元素(ga||gb)通过验证时,根据所述群元素ga和所述群元素gb计算第一共享秘钥kij,通过将所述第一共享秘钥kij提供给密钥推导函数计算第一密钥vki,并通过将所述第一密钥vki提供给认证数据推导函数计算第一认证数据Adi;通过将所述第一共享秘钥kij提供给所述密钥推导函数生成所述公共会话密钥SK;以及将所述第一认证数据Adi传输给所述第二设备,从而在收到所述第一认证数据Adi时,所述第二设备用于:根据所述群元素ga和所述群元素gb计算第二共享秘钥kji,通过将所述第二共享秘钥kji提供给所述密钥推导函数计算第二密钥vkj,通过将所述密钥vkj提供给所述认证数据推导函数计算第二认证数据Adj,确定所述第二认证数据Adj是否与所述第一认证数据Adi匹配;以及当所述第二认证数据Adj与所述第一认证数据Adi匹配时,通过将所述第二共享秘钥kji提供给所述密钥推导函数生成所述公共会话密钥SK。
结合所述第二方面,根据本发明实施例,所述为所述第一设备生成所述第一组参数的步骤包括:所述安全服务器用于:从所述第一组分量中检索任意第一值Ri1和所述第一设备的身份idi,其中根据所述第一随机数ri1生成所述任意第一值Ri1;计算所述第一设备的任意值Ri和第一整数si1;以及将所述计算的所述第一设备的任意值Ri和所述第一整数si1设置为所述第一设备的所述参数,其中根据所述任意第一值Ri1和所述第二随机数ri2计算所述第一设备的任意值Ri;以及根据所述第二随机数ri2、所述主秘密密钥x、所述第一设备的任意值Ri、所述第一设备的身份idi以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算所述第一整数si1。
结合所述第二方面,根据本发明实施例,所述计算所述私有密钥ski包括:所述第一设备用于:根据从所述第一组参数中检索到的所述第一整数si1、所述第一随机数ri1以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算整数si;以及根据所述第一设备的任意值Ri和所述整数si形成所述私有密钥ski。
结合所述第二方面,根据本发明实施例,所述为所述第二设备生成所述第二组参数包括:所述安全服务器用于:从所述第二组分量中检索任意第一值Rj1和所述第二设备的身份idj,其中根据所述第一随机数rj1生成所述任意第一值Rj1;计算所述第二设备的任意值Rj和第一整数sj1;以及将所述计算的所述第二设备的任意值Rj和所述第一整数sj1设置为所述第二设备的所述参数,其中根据所述任意第一值Rj1和所述第二随机数rj2计算所述第二设备的任意值Rj;以及根据所述第二随机数rj2、所述主秘密密钥x、所述第二设备的任意值Rj、所述第二设备的身份idj以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算所述第一整数sj1。
结合所述第二方面,根据本发明实施例,所述计算所述私有密钥skj包括:所述第二设备用于:根据从所述第二组参数中检索到的所述第一整数sj1、所述第一随机数rj1以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算整数sj;以及根据所述第二设备的任意值Rj和所述整数sj形成所述私有密钥skj。
根据本发明第三方面,提供了一种生成公共会话密钥SK的系统,所述共会话密钥SK用于对参与基于身份的自认证签名方案的第一设备i和第二设备j之间的数字通信进行编码,所述系统包括:安全服务器,用于指示:所述第一设备根据从所述安全服务器接收的第一组参数和所述第一设备生成的随机数ri1计算私有密钥ski,其中所述安全服务器根据所述安全服务器生成的第二随机数ri2、包括所述第一随机数ri1的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数生成所述第一组参数,其中所述第一设备生成所述第一组分量并将其传输给所述安全服务器;以及所述第二设备根据从所述安全服务器接收的第二组参数和所述第二设备生成的随机数rj1计算私有密钥skj,其中所述安全服务器根据所述安全服务器生成的第二随机数rj2、包括所述第一随机数rj1的第二组分量、所述主秘密密钥x以及与所述主公开密钥mpk关联的所述参数生成所述第二组参数,其中所述第二设备生成所述第二组分量并将其传输给所述安全服务器;所述第一设备用于:使用基于身份的自认证签名方案和所述私有密钥ski对密码随机数Ni进行签名;将所述第一设备的身份idi、所述密码随机数Ni和所述签名的密码随机数Ni传输给所述第二设备;在收到所述传输信息时,所述第二设备用于:使用与所述基于身份的自认证签名方案关联的验证函数和所述第一设备的身份idi验证所述签名的密码随机数Ni,在所述签名的密码随机数Ni通过验证时,使用所述基于身份的自认证签名方案和所述私有密钥skj对密码随机数(Ni||Nj)进行签名,其中Nj为密码随机数;以及将所述签名的密码随机数(Ni||Nj)和所述密码随机数Nj传输给所述第一设备;所述第一设备用于:使用与所述基于身份的自认证签名方案关联的所述验证函数和所述第二设备的身份idj验证所述签名的密码随机数(Ni||Nj),在所述签名的密码随机数(Ni||Nj)通过验证时,计算第一共享秘钥kij=gsj·si,通过将所述第一共享秘钥kij提供给密钥推导函数计算第一密钥vki,并通过将所述密码随机数Ni和Nj以及所述第一密钥vki提供给认证数据推导函数计算第一认证数据Adi;通过将所述第一共享秘钥kij以及所述密码随机数Ni和Nj提供给所述密钥推导函数生成所述公共会话密钥SK;将所述第一认证数据Adi传输给所述第二设备;在收到所述第一认证数据Adi时,所述第二设备用于:计算第二共享秘钥kji=gsj·si,通过将所述第二共享秘钥kji提供给所述密钥推导函数计算第二密钥vkj,通过将所述密钥vkj以及所述密码随机数Ni和Nj提供给所述认证数据推导函数计算第二认证数据Adj,确定所述第二认证数据Adj是否与所述第一认证数据Adi匹配;以及当所述第二认证数据Adj与所述第一认证数据Adi匹配时,通过将所述第二共享秘钥kji提供给所述密钥推导函数生成所述公共会话密钥SK。
结合所述第三方面,根据本发明实施例,所述为所述第一设备生成所述第一组参数包括:所述安全服务器用于:从所述第一组分量中检索任意第一值Ri1和所述第一设备的身份idi,其中根据所述第一随机数ri1生成所述任意第一值Ri1;计算所述第一设备的任意值Ri和第一整数si1;以及将所述计算的所述第一设备的任意值Ri和所述第一整数si1设置为所述第一设备的所述参数,其中根据所述任意第一值Ri1和所述第二随机数ri2计算所述第一设备的任意值Ri;以及根据所述第二随机数ri2、所述主秘密密钥x、所述第一设备的任意值Ri、所述第一设备的身份idi以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算所述第一整数si1。
结合所述第三方面,根据本发明实施例,所述计算所述私有密钥ski包括:所述第一设备用于:根据从所述第一组参数中检索到的所述第一整数si1、所述第一随机数ri1以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算整数si;以及根据所述第一设备的任意值Ri和所述整数si形成所述私有密钥ski。
结合所述第三方面,根据本发明实施例,所述为所述第二设备生成所述第二组参数包括:所述安全服务器用于:从所述第二组分量中检索任意第一值Rj1和所述第二设备的身份idj,其中根据所述第一随机数rj1生成所述任意第一值Rj1;计算所述第二设备的任意值Rj和第一整数sj1;以及将所述计算的所述第二设备的任意值Rj和所述第一整数sj1设置为所述第二设备的所述参数,其中根据所述任意第一值Rj1和所述第二随机数rj2计算所述第二设备的任意值Rj;以及根据所述第二随机数rj2、所述主秘密密钥x、所述第二设备的任意值Rj、所述第二设备的身份idj以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算所述第一整数sj1。
结合所述第三方面,根据本发明实施例,所述计算所述私有密钥skj包括:所述第二设备用于:根据从所述第二组参数中检索到的所述第一整数sj1、所述第一随机数rj1以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算整数sj;以及根据所述第二设备的任意值Rj和所述整数sj形成所述私有密钥skj。
根据本发明第四方面,提供了一种生成公共会话密钥SK的系统,所述共会话密钥SK用于对参与基于身份的自认证签名方案的第一设备i和第二设备j之间的数字通信进行编码,所述系统包括:第一安全服务器,用于指示:所述第一设备根据从所述第一安全服务器接收的第一组参数和所述第一设备生成的随机数ri1计算私有密钥ski,其中所述第一安全服务器根据所述第一安全服务器生成的第二随机数ri2、包括所述第一随机数ri1的第一组分量、主秘密密钥xi以及与主公开密钥mpki关联的参数生成所述第一组参数,其中所述第一设备生成所述第一组分量并将其传输给所述第一安全服务器;第二安全服务器,用于指示:所述第二设备根据从所述第二安全服务器接收的第二组参数和所述第二设备生成的随机数rj1计算私有密钥skj,其中所述第二安全服务器根据所述第二安全服务器生成的第二随机数rj2、包括所述第一随机数rj1的第二组分量、主秘密密钥xj以及与主公开密钥mpkj关联的所述参数生成所述第二组参数,其中所述第二设备生成所述第二组分量并将其传输给所述第二安全服务器,其中所述第一安全服务器位于与所述第二安全服务器不同的域中;所述第一设备用于:使用基于身份的自认证签名方案和所述私有密钥ski对群元素ga进行签名,其中a为所述第一设备生成的随机数,g为循环群G的发生器;将所述第一设备的身份idi、所述群元素ga和所述签名的群元素ga传输给所述第二设备;在收到所述传输信息时,所述第二设备用于:使用与所述基于身份的自认证签名方案关联的验证函数和所述第一设备的身份idi验证所述签名的群元素ga,在所述签名的群元素ga通过验证时,使用所述基于身份的自认证签名方案和所述私有密钥skj对群元素(ga||gb)进行签名,其中b为所述第一设备生成的随机数,以及将所述签名的群元素(ga||gb)和群元素gb传输给所述第一设备;所述第一设备用于:使用与所述基于身份的自认证签名方案关联的所述验证函数和所述第二设备的身份idj验证所述签名的群元素(ga||gb);在所述签名的群元素(ga||gb)通过验证时,根据所述群元素ga和所述群元素gb计算第一共享秘钥kij,通过将所述第一共享秘钥kij提供给密钥推导函数计算第一密钥vki,并通过将所述第一密钥vki提供给认证数据推导函数计算第一认证数据Adi;通过将所述第一共享秘钥kij提供给所述密钥推导函数生成所述公共会话密钥SK;将所述第一认证数据Adi传输给所述第二设备;在收到所述第一认证数据Adi时,所述第二设备用于:根据所述群元素ga和所述群元素gb计算第二共享秘钥kji,通过将所述第二共享秘钥kji提供给所述密钥推导函数计算第二密钥vkj,通过将所述密钥vkj提供给所述认证数据推导函数计算第二认证数据Adj,确定所述第二认证数据Adj是否与所述第一认证数据Adi匹配;以及当所述第二认证数据Adj与所述第一认证数据Adi匹配时,通过将所述第二共享秘钥kji提供给所述密钥推导函数生成所述公共会话密钥SK。
结合所述第四方面,根据本发明实施例,所述为所述第一设备生成所述第一组参数包括:所述第一安全服务器用于:从所述第一组分量中检索任意第一值Ri1和所述第一设备的身份idi,其中根据所述第一随机数ri1生成所述任意第一值Ri1;计算所述第一设备的任意值Ri和第一整数si1;以及将所述计算的所述第一设备的任意值Ri和所述第一整数si1设置为所述第一设备的所述参数,其中根据所述任意第一值Ri1和所述第二随机数ri2计算所述第一设备的任意值Ri;以及根据所述第二随机数ri2、所述主秘密密钥xi、所述第一设备的任意值Ri、所述第一设备的身份idi以及从与所述主公开密钥mpki关联的所述参数中获得的素数q计算所述第一整数si1。
结合所述第四方面,根据本发明实施例,所述计算所述私有密钥ski包括:所述第一设备用于:根据从所述第一组参数中检索到的所述第一整数si1、所述第一随机数ri1以及从与所述主公开密钥mpki关联的所述参数中获得的素数q计算整数si;以及根据所述第一设备的任意值Ri和所述整数si形成所述私有密钥ski。
结合所述第四方面,根据本发明实施例,所述为所述第二设备生成所述第二组参数包括:所述第二安全服务器用于:从所述第二组分量中检索任意第一值Rj1和所述第二设备的身份idj,其中根据所述第一随机数rj1生成所述任意第一值Rj1;计算所述第二设备的任意值Rj和第一整数sj1;以及将所述计算的所述第二设备的任意值Rj和所述第一整数sj1设置为所述第二设备的所述参数,其中根据所述任意第一值Rj1和所述第二随机数rj2计算所述第二设备的任意值Rj;以及根据所述第二随机数rj2、所述主秘密密钥xj、所述第二设备的任意值Rj、所述第二设备的身份idj以及从与所述主公开密钥mpkj关联的所述参数中获得的素数q计算所述第一整数sj1。
结合所述第四方面,根据本发明实施例,所述计算所述私有密钥skj包括:所述第二设备用于:根据从所述第二组参数中检索到的所述第一整数sj1、所述第一随机数rj1以及从与所述主公开密钥mpkj关联的所述参数中获得的素数q计算整数sj;以及根据所述第二设备的任意值Rj和所述整数sj形成所述私有密钥skj。
根据本发明第五方面,提供了一种生成公共会话密钥SK的系统,所述公共会话密钥SK用于对参与扩展的传输层安全(Transport Layer Security,TLS)协议或扩展的数据报传输层安全(Datagram Transport Layer Security,DTLS)协议的第一设备i和第二设备j之间的数字通信进行编码,所述系统包括:安全服务器,用于指示:所述第一设备根据从所述安全服务器接收的第一组参数和所述第一设备生成的随机数ri1计算私有密钥ski,其中所述安全服务器根据所述安全服务器生成的第二随机数ri2、包括所述第一随机数ri1的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数生成所述第一组参数,其中所述第一设备生成所述第一组分量并将其传输给所述安全服务器;以及所述第二设备根据从所述安全服务器接收的第二组参数和所述第二设备生成的随机数rj1计算私有密钥skj,其中所述安全服务器根据所述安全服务器生成的第二随机数rj2、包括所述第一随机数rj1的第二组分量、所述主秘密密钥x以及与所述主公开密钥mpk关联的所述参数生成所述第二组参数,其中所述第二设备生成所述第二组分量并将其传输给所述安全服务器;所述第一和第二设备用于使用基于身份的自认证签名方案为所述第一设备和所述第二设备之间的所述TLS协议或所述DTLS协议生成所述公共会话密钥SK,其中所述第一设备的身份idi包含在所述第一设备的证书消息中,所述第二设备的身份idj包含在所述第二设备的证书消息中,所述基于身份的自认证签名方案由所述ski和skj决定。
结合所述第五方面,根据本发明实施例,所述为所述第一设备生成所述第一组参数包括:所述安全服务器用于:从所述第一组分量中检索任意第一值Ri1和所述第一设备的身份idi,其中根据所述第一随机数ri1生成所述任意第一值Ri1;计算所述第一设备的任意值Ri和第一整数si1;以及将所述计算的所述第一设备的任意值Ri和所述第一整数si1设置为所述第一设备的所述参数,其中根据所述任意第一值Ri1和所述第二随机数ri2计算所述第一设备的任意值Ri;以及根据所述第二随机数ri2、所述主秘密密钥x、所述第一设备的任意值Ri、所述第一设备的身份idi以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算所述第一整数si1。
结合所述第五方面,根据本发明实施例,所述计算所述私有密钥ski包括:所述第一设备用于:根据从所述第一组参数中检索到的所述第一整数si1、所述第一随机数ri1以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算整数si;以及根据所述第一设备的任意值Ri和所述整数si形成所述私有密钥ski。
结合所述第五方面,根据本发明实施例,所述为所述第二设备生成所述第二组参数包括:所述安全服务器用于:从所述第二组分量中检索任意第一值Rj1和所述第二设备的身份idj,其中根据所述第一随机数rj1生成所述任意第一值Rj1;计算所述第二设备的任意值Rj和第一整数sj1;以及将所述计算的所述第二设备的任意值Rj和所述第一整数sj1设置为所述第二设备的所述参数,其中根据所述任意第一值Rj1和所述第二随机数rj2计算所述第二设备的任意值Rj;以及根据所述第二随机数rj2、所述主秘密密钥x、所述第二设备的任意值Rj、所述第二设备的身份idj以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算所述第一整数sj1。
结合所述第五方面,根据本发明实施例,所述计算所述私有密钥skj包括:所述第二设备用于:根据从所述第二组参数中检索到的所述第一整数sj1、所述第一随机数rj1以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算整数sj;以及根据所述第二设备的任意值Rj和所述整数sj形成所述私有密钥skj。
根据本发明第六方面,提供了一种生成公共会话密钥SK的系统,所述公共会话密钥SK用于对参与扩展的传输层安全(Transport Layer Security,TLS)协议或扩展的数据报传输层安全(Datagram Transport Layer Security,DTLS)协议的第一设备i和第二设备j之间的数字通信进行编码,所述系统包括:第一安全服务器,用于指示:所述第一设备根据从所述第一安全服务器接收的第一组参数和所述第一设备生成的随机数ri1计算私有密钥ski,其中所述第一安全服务器根据所述第一安全服务器生成的第二随机数ri2、包括所述第一随机数ri1的第一组分量、主秘密密钥xi以及与主公开密钥mpki关联的参数生成所述第一组参数,其中所述第一设备生成所述第一组分量并将其传输给所述第一安全服务器;第二安全服务器,用于指示:所述第二设备根据从所述第二安全服务器接收的第二组参数和所述第二设备生成的随机数rj1计算私有密钥skj,其中所述第二安全服务器根据所述第二安全服务器生成的第二随机数rj2、包括所述第一随机数rj1的第二组分量、所述主秘密密钥xj以及与主公开密钥mpkj关联的所述参数生成所述第二组参数,其中所述第二设备生成所述第二组分量并将其传输给所述第二安全服务器,其中所述第一安全服务器位于与所述第二安全服务器不同的域中;所述第一和第二设备用于使用基于身份的自认证签名方案为所述第一设备和所述第二设备之间的所述TLS协议生成所述公共会话密钥SKij,其中所述第一设备的身份idi包含在所述第一设备的证书消息中,所述第二设备的身份idj包含在所述第二设备的证书消息中,所述基于身份的自认证签名方案由所述ski和skj决定。
结合所述第六方面,根据本发明实施例,所述为所述第一设备生成所述第一组参数包括:所述第一安全服务器用于:从所述第一组分量中检索任意第一值Ri1和所述第一设备的身份idi,其中根据所述第一随机数ri1生成所述任意第一值Ri1;计算所述第一设备的任意值Ri和第一整数si1;以及将所述计算的所述第一设备的任意值Ri和所述第一整数si1设置为所述第一设备的所述参数,其中根据所述任意第一值Ri1和所述第二随机数ri2计算所述第一设备的任意值Ri;以及根据所述第二随机数ri2、所述主秘密密钥xi、所述第一设备的任意值Ri、所述第一设备的身份idi以及从与所述主公开密钥mpki关联的所述参数中获得的素数q计算所述第一整数si1。
结合所述第六方面,根据本发明实施例,所述计算所述私有密钥ski包括:所述第一设备用于:根据从所述第一组参数中检索到的所述第一整数si1、所述第一随机数ri1以及从与所述主公开密钥mpki关联的所述参数中获得的素数q计算整数si;以及根据所述第一设备的任意值Ri和所述整数si形成所述私有密钥ski。
结合所述第六方面,根据本发明实施例,所述为所述第二设备生成所述第二组参数包括:所述第二安全服务器用于:从所述第二组分量中检索任意第一值Rj1和所述第二设备的身份idj,其中根据所述第一随机数rj1生成所述任意第一值Rj1;计算所述第二设备的任意值Rj和第一整数sj1;以及将所述计算的所述第二设备的任意值Rj和所述第一整数sj1设置为所述第二设备的所述参数,其中根据所述任意第一值Rj1和所述第二随机数rj2计算所述第二设备的任意值Rj;以及根据所述第二随机数rj2、所述主秘密密钥xj、所述第二设备的任意值Rj、所述第二设备的身份idj以及从与所述主公开密钥mpkj关联的所述参数中获得的素数q计算所述第一整数sj1。
结合所述第六方面,根据本发明实施例,所述计算所述私有密钥skj包括:所述第二设备用于:根据从所述第二组参数中检索到的所述第一整数sj1、所述第一随机数rj1以及从与所述主公开密钥mpkj关联的所述参数中获得的素数q计算整数sj;以及根据所述第二设备的任意值Rj和所述整数sj形成所述私有密钥skj。
结合所述第六方面,根据本发明实施例,在所述安全服务器用于根据所述安全服务器生成的所述第二随机数ri2为所述设备计算参数之前,所述安全服务器用于:从所述设备接收零知识证明结果,其中所述设备使用所述第一随机数ri1和系统参数λ生成所述零知识证明结果;根据所述零知识证明结果确定所述第一随机数ri1是否小于等于所述系统参数λ;以及当所述第一随机数ri1小于等于所述系统参数λ时,根据所述安全服务器生成的所述第二随机数ri2为所述设备计算参数。
根据本发明第七方面,提供了一种生成公共会话密钥SK的系统,所述公共会话密钥SK用于对参与扩展的传输层安全(Transport Layer Security,TLS)协议或扩展的数据报传输层安全(Datagram Transport Layer Security,DTLS)协议的第一设备i和第二设备j之间的数字通信进行编码,所述系统包括:安全服务器,用于:使用基于身份的自认证签名方案,根据所述第一设备的身份idi为所述第一设备生成私有密钥ski,根据所述第二设备的身份idj为所述第二设备生成私有密钥skj;以及将所述私有密钥ski传输给所述第一设备,将所述私有密钥skj传输给所述第二设备;所述第一和第二设备用于使用相同的基于身份的自认证签名方案为所述第一设备和所述第二设备之间的所述TLS协议或所述DTLS协议生成所述公共会话密钥SK,其中所述第一设备的身份idi包含在所述第一设备的证书消息中,所述第二设备的身份idj包含在所述第二设备的证书消息中,所述基于身份的自认证签名方案由所述ski和skj决定。
根据本发明第八方面,提供了一种生成公共会话密钥SK的系统,所述公共会话密钥SK用于对参与扩展的传输层安全(Transport Layer Security,TLS)协议或扩展的数据报传输层安全(Datagram Transport Layer Security,DTLS)协议的第一设备i和第二设备j之间的数字通信进行编码,所述系统包括:第一安全服务器,用于:使用基于身份的自认证签名方案,根据所述第一设备的身份idi为所述第一设备生成私有密钥ski,并将所述私有密钥ski传输给所述第一设备;第二安全服务器,用于:使用基于身份的自认证签名方案,根据所述第二设备的身份idj为所述第二设备生成私有密钥skj,并将所述私有密钥skj传输给所述第二设备;其中所述第一安全服务器位于与所述第二安全服务器不同的域中,所述第一和第二设备用于使用相同的基于身份的自认证签名方案但不同的参数或者不同的基于身份的自认证签名方案为所述第一设备和所述第二设备之间的所述TLS或DTLS协议生成所述公共会话密钥SK,其中所述第一设备的身份idi包含在所述第一设备的证书消息中,所述第二设备的身份idj包含在所述第二设备的证书消息中,所述基于身份的自认证签名方案由所述ski和skj决定。
根据本发明第九方面,一种用于为参与基于身份的自认证签名方案的设备计算私有密钥sk的安全服务器,包括:处理器;以及所述处理器可读的非瞬时性介质,所述介质存储指令,所述指令在由所述处理器执行时使得所述处理器执行以下操作:根据所述安全服务器生成的第二随机数ri2、从所述设备接收的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数为所述设备计算参数,其中所述第一组分量包括所述设备生成的第一随机数ri1;将所述计算的参数传输给所述设备,从而所述设备用于根据所述收到的计算的参数和所述随机数ri1计算所述私有密钥sk。
结合所述第九方面,根据本发明实施例,为所述设备计算所述参数的所述指令包括:用于指示所述处理器执行以下操作的指令:从所述第一组分量中检索任意第一值Ri1和所述设备的身份idi,其中根据所述第一随机数ri1生成所述任意第一值Ri1;计算所述设备的任意值Ri和第一整数si1;以及将所述计算的所述设备的任意值Ri和所述第一整数si1设置为所述设备的所述参数,其中根据所述任意第一值Ri1和所述第二随机数ri2计算所述设备的任意值Ri;以及根据所述第二随机数ri2、所述主秘密密钥x、所述第一设备的任意值Ri、所述设备的身份idi以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算所述第一整数si1。
结合所述第九方面,根据本发明实施例,为所述设备计算所述参数的所述指令包括:用于指示所述处理器执行以下操作的指令:从所述第一组分量中检索任意第一值Ri1、所述设备的身份idi以及同态加密值c,其中根据所述第一随机数ri1生成所述任意第一值Ri1,通过向加法同态加密函数HEnc()提供所述第一随机数ri1和从与所述主公开密钥mpk关联的所述参数中获得的素数q来生成所述同态加密值c;将所述设备的任意值Ri和第一整数si1设置为所述设备的所述参数,其中根据所述任意第一值Ri1和所述第二随机数ri2计算所述设备的任意值Ri;以及通过向所述加法同态加密函数HEnc()提供所述第二随机数ri2、所述同态加密值c、所述主秘密密钥x、所述第一设备的任意值Ri、所述设备的身份idi以及所述素数q计算所述第一整数si1。
结合所述第九方面,根据本发明实施例,在根据所述安全服务器生成的所述第二随机数ri2为所述设备计算所述参数的所述指令之前,所述安全服务器包括:用于指示所述处理器执行以下操作的指令:从所述设备接收零知识证明结果,其中所述设备使用所述第一随机数ri1和系统参数λ生成所述零知识证明结果;根据所述零知识证明结果确定所述第一随机数ri1是否小于等于所述系统参数λ;以及当所述第一随机数ri1小于等于所述系统参数λ时,根据所述安全服务器生成的所述第二随机数ri2为所述设备计算参数。
根据本发明第十方面,一种用于为参与基于身份的自认证签名方案的设备计算私有密钥sk的方法,包括:安全服务器根据所述安全服务器生成的第二随机数ri2、从所述设备接收的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数为所述设备计算参数,其中所述第一组分量包括所述设备生成的第一随机数ri1;将所述计算的参数传输给所述设备,从而所述设备根据所述收到的计算的参数和所述随机数ri1计算所述私有密钥sk。
结合所述第十方面,根据本发明实施例,所述为所述设备计算所述参数包括:所述安全服务器从所述第一组分量中检索任意第一值Ri1和所述设备的身份idi,其中根据所述第一随机数ri1生成所述任意第一值Ri1;计算所述设备的任意值Ri和第一整数si1;以及将所述计算的所述设备的任意值Ri和所述第一整数si1设置为所述设备的所述参数,其中根据所述任意第一值Ri1和所述第二随机数ri2计算所述设备的任意值Ri;以及根据所述第二随机数ri2、所述主秘密密钥x、所述第一设备的任意值Ri、所述设备的身份idi以及从与所述主公开密钥mpk关联的所述参数中获得的素数q计算所述第一整数si1。
结合所述第十方面,根据本发明实施例,所述为所述设备计算所述参数包括:所述安全服务器从所述第一组分量中检索任意第一值Ri1、所述设备的身份idi以及同态加密值c,其中根据所述第一随机数ri1生成所述任意第一值Ri1,通过向加法同态加密函数HEnc()提供所述第一随机数ri1和从与所述主公开密钥mpk关联的所述参数中获得的素数q来生成所述同态加密值c;将所述设备的任意值Ri和第一整数si1设置为所述设备的所述参数,其中根据所述任意第一值Ri1和所述第二随机数ri2计算所述设备的任意值Ri;以及通过向所述加法同态加密函数HEnc()提供所述第二随机数ri2、所述同态加密值c、所述主秘密密钥x、所述第一设备的任意值Ri、所述设备的身份idi以及所述素数q计算所述第一整数si1。
根据本发明第十一方面,一种生成公共会话密钥SK的方法,所述公共会话密钥SK用于对参与基于身份的自认证签名方案的第一设备i和第二设备j之间的数字通信进行编码,所述方法包括:所述第一设备从安全服务器接收用于以下操作的指令:根据从所述安全服务器接收的第一组参数和所述第一设备生成的随机数ri1计算私有密钥ski,其中所述安全服务器根据所述安全服务器生成的第二随机数ri2、包括所述第一随机数ri1的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数生成所述第一组参数,其中所述第一设备生成所述第一组分量并将其传输给所述安全服务器;以及所述第一设备使用基于身份的自认证签名方案和所述私有密钥ski对群元素ga进行签名,其中a为所述第一设备生成的随机数,g为循环群G的发生器;以及将所述第一设备的身份idi、所述群元素ga和所述签名的群元素ga传输给所述第二设备。
结合所述第十一方面,根据本发明实施例,所述方法还包括:从所述第二设备接收签名的群元素(ga||gb)和群元素gb;使用与所述基于身份的自认证签名方案关联的验证函数和所述第二设备的身份idj验证所述签名的群元素(ga||gb);在所述签名的群元素(ga||gb)通过验证时,根据所述群元素ga和所述群元素gb计算第一共享秘钥kij,通过将所述第一共享秘钥kij提供给密钥推导函数计算第一密钥vki,并通过将所述第一密钥vki提供给认证数据推导函数计算第一认证数据Adi;通过将所述第一共享秘钥kij提供给所述密钥推导函数生成所述公共会话密钥SK;以及将所述第一认证数据Adi传输给所述第二设备。
根据本发明第十二方面,一种生成公共会话密钥SK的第一设备,所述公共会话密钥SK用于对参与基于身份的自认证签名方案的所述第一设备和第二设备之间的数字通信进行编码,所述第一设备包括:处理器;以及所述处理器可读的非瞬时性介质,所述介质存储指令,所述指令在由所述处理器执行时使得所述处理器执行以下操作:从安全服务器接收用于以下操作的指令:根据从所述安全服务器接收的第一组参数和所述第一设备生成的随机数ri1计算私有密钥ski,其中所述安全服务器根据所述安全服务器生成的第二随机数ri2、包括所述第一随机数ri1的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数生成所述第一组参数,其中所述第一设备生成所述第一组分量并将其传输给所述安全服务器;以及使用基于身份的自认证签名方案和所述私有密钥ski对群元素ga进行签名,其中a为所述第一设备生成的随机数,g为循环群G的发生器;将所述第一设备的身份idi、所述群元素ga和所述签名的群元素ga传输给所述第二设备。
结合所述第十二方面,根据本发明实施例,所述指令包括用于指示所述处理器执行以下操作的指令:从所述第二设备接收签名的群元素(ga||gb)和群元素gb;使用与所述基于身份的自认证签名方案关联的验证函数和所述第二设备的身份idj验证所述签名的群元素(ga||gb);在所述签名的群元素(ga||gb)通过验证时,根据所述群元素ga和所述群元素gb计算第一共享秘钥kij,通过将所述第一共享秘钥kij提供给密钥推导函数计算第一密钥vki,并通过将所述第一密钥vki提供给认证数据推导函数计算第一认证数据Adi;通过将所述第一共享秘钥kij提供给所述密钥推导函数生成所述公共会话密钥SK;以及将所述第一认证数据Adi传输给所述第二设备。
根据本发明第十三方面,一种生成公共会话密钥SK的方法,所述公共会话密钥SK用于对参与基于身份的自认证签名方案的第一设备i和第二设备j之间的数字通信进行编码,所述方法包括:所述第二设备从所述安全服务器接收用于以下操作的指令:根据从所述安全服务器接收的第二组参数和所述第二设备生成的随机数rj1计算私有密钥skj,其中所述安全服务器根据所述安全服务器生成的第二随机数rj2、包括所述第一随机数rj1的第二组分量、主秘密密钥x以及与主公开密钥mpk关联的参数生成所述第二组参数,其中所述第二设备生成所述第二组分量并将其传输给所述安全服务器;从所述第一接收所述第一设备的身份idi、群元素ga和签名的群元素ga;使用与所述基于身份的自认证签名方案关联的验证函数和所述第一设备的身份idi验证所述签名的群元素ga,在所述签名的群元素ga通过验证时,使用所述基于身份的自认证签名方案和所述私有密钥skj对群元素(ga||gb)进行签名,其中b为所述第一设备生成的随机数;以及将所述签名的群元素(ga||gb)和群元素gb传输给所述第一设备。
结合所述第十三方面,根据本发明实施例,所述方法还包括:从所述第一设备接收第一认证数据Adi;根据所述群元素ga和所述群元素gb计算第二共享秘钥kji;通过将所述第二共享秘钥kji提供给密钥推导函数计算第二密钥vkj;通过将所述密钥vkj提供给认证数据推导函数计算第二认证数据Adj;确定所述第二认证数据Adj是否与所述第一认证数据Adi匹配;以及当所述第二认证数据Adj与所述第一认证数据Adi匹配时,通过将所述第二共享秘钥kji提供给所述密钥推导函数生成所述公共会话密钥SK。
根据本发明第十四方面,一种生成公共会话密钥SK的第二设备,所述公共会话密钥SK用于对参与基于身份的自认证签名方案的第一设备和所述第二设备之间的数字通信进行编码,所述第二设备包括:处理器;以及所述处理器可读的非瞬时性介质,所述介质存储指令,所述指令在由所述处理器执行时使得所述处理器执行以下操作:从安全服务器接收用于以下操作的指令:根据从所述安全服务器接收的第二组参数和所述第二设备生成的随机数rj1计算私有密钥skj,其中所述安全服务器根据所述安全服务器生成的第二随机数rj2、包括所述第一随机数rj1的第二组分量、主秘密密钥x以及与主公开密钥mpk关联的参数生成所述第二组参数,其中所述第二设备生成所述第二组分量并将其传输给所述安全服务器;从所述第一接收所述第一设备的身份idi、群元素ga和签名的群元素ga;使用与所述基于身份的自认证签名方案关联的验证函数和所述第一设备的身份idi验证所述签名的群元素ga,在所述签名的群元素ga通过验证时,使用所述基于身份的自认证签名方案和所述私有密钥skj对群元素(ga||gb)进行签名,其中b为所述第一设备生成的随机数;以及将所述签名的群元素(ga||gb)和群元素gb传输给所述第一设备。
结合所述第十四方面,根据本发明实施例,所述指令包括用于指示所述处理器执行以下操作的指令:从所述第一设备接收第一认证数据Adi;根据所述群元素ga和所述群元素gb计算第二共享秘钥kji;通过将所述第二共享秘钥kji提供给密钥推导函数计算第二密钥vkj;通过将所述密钥vkj提供给认证数据推导函数计算第二认证数据Adj;确定所述第二认证数据Adj是否与所述第一认证数据Adi匹配;以及当所述第二认证数据Adj与所述第一认证数据Adi匹配时,通过将所述第二共享秘钥kji提供给所述密钥推导函数生成所述公共会话密钥SK。
根据本发明第十五方面,一种生成公共会话密钥SK的方法,所述公共会话密钥SK用于对参与基于身份的自认证签名方案的第一设备i和第二设备j之间的数字通信进行编码,所述方法包括:所述第一设备从安全服务器接收用于以下操作的指令:根据从所述安全服务器接收的第一组参数和所述第一设备生成的随机数ri1计算私有密钥ski,其中所述安全服务器根据所述安全服务器生成的第二随机数ri2、包括所述第一随机数ri1的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数生成所述第一组参数,其中所述第一设备生成所述第一组分量并将其传输给所述安全服务器;以及所述第一设备使用基于身份的自认证签名方案和所述私有密钥ski对密码随机数Ni进行签名;将所述第一设备的身份idi、所述密码随机数Ni和所述签名的密码随机数Ni传输给所述第二设备,从而在收到所述传输信息时,所述第二设备用于:使用与所述基于身份的自认证签名方案关联的验证函数和所述第一设备的身份idi验证所述签名的密码随机数Ni;在所述签名的密码随机数Ni通过验证时,使用所述基于身份的自认证签名方案和私有密钥skj对密码随机数(Ni||Nj)进行签名,其中Nj为密码随机数;以及将所述签名的密码随机数(Ni||Nj)和密码随机数Nj传输给所述第一设备。
结合所述第十五方面,根据本发明实施例,所述方法还包括:从所述第二设备接收所述密码随机数(Ni||Nj)和所述密码随机数Nj;使用与所述基于身份的自认证签名方案关联的所述验证函数和所述第二设备的身份idj验证所述签名的密码随机数(Ni||Nj),在所述签名的密码随机数(Ni||Nj)通过验证时,计算第一共享秘钥kij=gsj·si,通过将所述第一共享秘钥kij提供给密钥推导函数计算第一密钥vki,并通过将所述密码随机数Ni和Nj以及所述第一密钥vki提供给认证数据推导函数计算第一认证数据Adi;通过将所述第一共享秘钥kij以及所述密码随机数Ni和Nj提供给所述密钥推导函数生成所述公共会话密钥SK;以及将所述第一认证数据Adi传输给所述第二设备。
根据本发明第十六方面,一种生成公共会话密钥SK的第一设备,所述公共会话密钥SK用于对参与基于身份的自认证签名方案的所述第一设备i和第二设备j之间的数字通信进行编码,所述第一设备包括:处理器;以及所述处理器可读的非瞬时性介质,所述介质存储指令,所述指令在由所述处理器执行时使得所述处理器执行以下操作:从安全服务器接收用于以下操作的指令:根据从所述安全服务器接收的第一组参数和所述第一设备生成的随机数ri1计算私有密钥ski,其中所述安全服务器根据所述安全服务器生成的第二随机数ri2、包括所述第一随机数ri1的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数生成所述第一组参数,其中所述第一设备生成所述第一组分量并将其传输给所述安全服务器;以及使用基于身份的自认证签名方案和所述私有密钥ski对密码随机数Ni进行签名;以及将所述第一设备的身份idi、所述密码随机数Ni和所述签名的密码随机数Ni传输给所述第二设备。
结合所述第十六方面,根据本发明实施例,所述指令包括用于指示所述处理器执行以下操作的指令:从所述第二设备接收密码随机数(Ni||Nj)和所述密码随机数Nj;使用与所述基于身份的自认证签名方案关联的验证函数和所述第二设备的身份idj验证签名的密码随机数(Ni||Nj),在所述签名的密码随机数(Ni||Nj)通过验证时,计算第一共享秘钥kij=gsj·si,通过将所述第一共享秘钥kij提供给密钥推导函数计算第一密钥vki,并通过将所述密码随机数Ni和Nj以及所述第一密钥vki提供给认证数据推导函数计算第一认证数据Adi;通过将所述第一共享秘钥kij以及所述密码随机数Ni和Nj提供给所述密钥推导函数生成所述公共会话密钥SK;以及将所述第一认证数据Adi传输给所述第二设备。
根据本发明第十七方面,一种生成公共会话密钥SK的第二设备,所述公共会话密钥SK用于对参与基于身份的自认证签名方案的第一设备和所述第二设备之间的数字通信进行编码,所述第二设备包括:处理器;以及所述处理器可读的非瞬时性介质,所述介质存储指令,所述指令在由所述处理器执行时使得所述处理器执行以下操作:从安全服务器接收用于以下操作的指令:根据从所述安全服务器接收的第二组参数和所述第二设备生成的随机数rj1计算私有密钥skj,其中所述安全服务器根据所述安全服务器生成的第二随机数rj2、包括所述第一随机数rj1的第二组分量、主秘密密钥x以及与主公开密钥mpk关联的参数生成所述第二组参数,其中所述第二设备生成所述第二组分量并将其传输给所述安全服务器;从所述第一设备接收所述第一设备的身份idi、密码随机数Ni和签名的密码随机数Ni;使用与所述基于身份的自认证签名方案关联的验证函数和所述第一设备的身份idi验证所述签名的密码随机数Ni;在所述签名的密码随机数Ni通过验证时,使用所述基于身份的自认证签名方案和所述私有密钥skj对密码随机数(Ni||Nj)进行签名,其中Nj为密码随机数;以及将所述签名的密码随机数(Ni||Nj)和所述密码随机数Nj传输给所述第一设备。
结合所述第十七方面,根据本发明实施例,所述指令包括用于指示所述处理器执行以下操作的指令:从所述第一设备接收第一认证数据Adi;计算第二共享秘钥kji=gsj·si;通过将所述第二共享秘钥kji提供给密钥推导函数计算第二密钥vkj;通过将所述密钥vkj以及所述密码随机数Ni和Nj提供给认证数据推导函数计算第二认证数据Adj;确定所述第二认证数据Adj是否与所述第一认证数据Adi匹配;以及当所述第二认证数据Adj与所述第一认证数据Adi匹配时,通过将所述第二共享秘钥kji提供给所述密钥推导函数生成所述公共会话密钥SK。
根据本发明第十八方面,一种生成公共会话密钥SK的方法,所述公共会话密钥SK用于对参与基于身份的自认证签名方案的第一设备i和第二设备j之间的数字通信进行编码,所述方法包括:所述第一设备从第一安全服务器接收用于以下操作的指令:根据从所述第一安全服务器接收的第一组参数和所述第一设备生成的随机数ri1计算私有密钥ski,其中所述第一安全服务器根据所述第一安全服务器生成的第二随机数ri2、包括所述第一随机数ri1的第一组分量、主秘密密钥xi以及与主公开密钥mpki关联的参数生成所述第一组参数,其中所述第一设备生成所述第一组分量并将其传输给所述第一安全服务器;其中所述第一安全服务器位于与第二安全服务器不同的域中;所述第一设备使用基于身份的自认证签名方案和所述私有密钥ski对群元素ga进行签名,其中a为所述第一设备生成的随机数,g为循环群G的发生器;将所述第一设备的身份idi、所述群元素ga和所述签名的群元素ga传输给所述第二设备。
结合所述第十八方面,根据本发明实施例,所述方法还包括:从所述第二设备接收签名的群元素(ga||gb)和群元素gb;使用与所述基于身份的自认证签名方案关联的验证函数和所述第二设备的身份idj验证所述签名的群元素(ga||gb);在所述签名的群元素(ga||gb)通过验证时,根据所述群元素ga和所述群元素gb计算第一共享秘钥kij,通过将所述第一共享秘钥kij提供给密钥推导函数计算第一密钥vki,并通过将所述第一密钥vki提供给认证数据推导函数计算第一认证数据Adi;通过将所述第一共享秘钥kij提供给所述密钥推导函数生成所述公共会话密钥SK;以及将所述第一认证数据Adi传输给所述第二设备。
根据本发明第十九方面,一种生成公共会话密钥SK的第一设备,所述公共会话密钥SK用于对参与基于身份的自认证签名方案的所述第一设备和第二设备之间的数字通信进行编码,所述第一设备包括:处理器;以及所述处理器可读的非瞬时性介质,所述介质存储指令,所述指令在由所述处理器执行时使得所述处理器执行以下操作:从第一安全服务器接收用于以下操作的指令:根据从所述第一安全服务器接收的第一组参数和所述第一设备生成的随机数ri1计算私有密钥ski,其中所述第一安全服务器根据所述第一安全服务器生成的第二随机数ri2、包括所述第一随机数ri1的第一组分量、主秘密密钥xi以及与主公开密钥mpki关联的参数生成所述第一组参数,其中所述第一设备生成所述第一组分量并将其传输给所述第一安全服务器;其中所述第一安全服务器位于与第二安全服务器不同的域中;所述第一设备使用基于身份的自认证签名方案和所述私有密钥ski对群元素ga进行签名,其中a为所述第一设备生成的随机数,g为循环群G的发生器;以及将所述第一设备的身份idi、所述群元素ga和所述签名的群元素ga传输给所述第二设备。
结合所述第十九方面,根据本发明实施例,所述指令包括用于指示所述处理器执行以下操作的指令:从所述第二设备接收签名的群元素(ga||gb)和群元素gb;使用与所述基于身份的自认证签名方案关联的验证函数和所述第二设备的身份idj验证所述签名的群元素(ga||gb);在所述签名的群元素(ga||gb)通过验证时,根据所述群元素ga和所述群元素gb计算第一共享秘钥kij,通过将所述第一共享秘钥kij提供给密钥推导函数计算第一密钥vki,并通过将所述第一密钥vki提供给认证数据推导函数计算第一认证数据Adi;通过将所述第一共享秘钥kij提供给所述密钥推导函数生成所述公共会话密钥SK;以及将所述第一认证数据Adi传输给所述第二设备。
根据本发明第二十方面,一种生成公共会话密钥SK的方法,所述公共会话密钥SK用于对参与基于身份的自认证签名方案的第一设备i和第二设备j之间的数字通信进行编码,所述方法包括:所述第二设备从第二安全服务器接收用于以下操作的指令:根据从所述第二安全服务器接收的第二组参数和所述第二设备生成的随机数rj1计算私有密钥skj,其中所述第二安全服务器根据所述第二安全服务器生成的第二随机数rj2、包括所述第一随机数rj1的第二组分量、主秘密密钥xj以及与主公开密钥mpkj关联的参数生成所述第二组参数,其中所述第二设备生成所述第二组分量并将其传输给所述第二安全服务器;将所述第一设备的身份idi、群元素ga和签名的群元素ga传输到所述第二设备;使用与所述基于身份的自认证签名方案关联的验证函数和所述第一设备的身份idi验证所述签名的群元素ga,在所述签名的群元素ga通过验证时,使用所述基于身份的自认证签名方案和所述私有密钥skj对群元素(ga||gb)进行签名,其中b为所述第一设备生成的随机数;以及将所述签名的群元素(ga||gb)和群元素gb传输给所述第一设备。
结合所述第二十方面,根据本发明实施例,所述方法还包括:从所述第一设备接收第一认证数据Adi;根据所述群元素ga和所述群元素gb计算第二共享秘钥kji;通过将所述第二共享秘钥kji提供给密钥推导函数计算第二密钥vkj;通过将所述密钥vkj提供给认证数据推导函数计算第二认证数据Adj;确定所述第二认证数据Adj是否与所述第一认证数据Adi匹配;以及当所述第二认证数据Adj与所述第一认证数据Adi匹配时,通过将所述第二共享秘钥kji提供给所述密钥推导函数生成所述公共会话密钥SK。
根据本发明第二十一方面,一种生成公共会话密钥SK的第二设备,所述公共会话密钥SK用于对参与基于身份的自认证签名方案的第一设备和所述第二设备之间的数字通信进行编码,所述第二设备包括:处理器;以及所述处理器可读的非瞬时性介质,所述介质存储指令,所述指令在由所述处理器执行时使得所述处理器执行以下操作:从第二安全服务器接收用于以下操作的指令:根据从所述第二安全服务器接收的第二组参数和所述第二设备生成的随机数rj1计算私有密钥skj,其中所述第二安全服务器根据所述第二安全服务器生成的第二随机数rj2、包括所述第一随机数rj1的第二组分量、主秘密密钥xj以及与主公开密钥mpkj关联的参数生成所述第二组参数,其中所述第二设备生成所述第二组分量并将其传输给所述第二安全服务器;将所述第一设备的身份idi、群元素ga和签名的群元素ga传输到所述第二设备;使用与所述基于身份的自认证签名方案关联的验证函数和所述第一设备的身份idi验证所述签名的群元素ga;在所述签名的群元素ga通过验证时,使用所述基于身份的自认证签名方案和所述私有密钥skj对群元素(ga||gb)进行签名,其中b为所述第一设备生成的随机数;以及将所述签名的群元素(ga||gb)和群元素gb传输给所述第一设备。
结合所述第二十一方面,根据本发明实施例,所述指令包括用于指示所述处理器执行以下操作的指令:从所述第一设备接收第一认证数据Adi;根据所述群元素ga和所述群元素gb计算第二共享秘钥kji;通过将所述第二共享秘钥kji提供给密钥推导函数计算第二密钥vkj;通过将所述密钥vkj提供给认证数据推导函数计算第二认证数据Adj;确定所述第二认证数据Adj是否与所述第一认证数据Adi匹配;以及当所述第二认证数据Adj与所述第一认证数据Adi匹配时,通过将所述第二共享秘钥kji提供给所述密钥推导函数生成所述公共会话密钥SK。
根据本发明第二十二方面,一种生成公共会话密钥SK的方法,所述公共会话密钥SK用于对参与扩展的传输层安全(Transport Layer Security,TLS)协议或扩展的数据报传输层安全(Datagram Transport Layer Security,DTLS)协议的第一设备i和第二设备j之间的数字通信进行编码,所述方法包括:所述第一设备从安全服务器接收用于以下操作的指令:根据从所述安全服务器接收的第一组参数和所述第一设备生成的随机数ri1计算私有密钥ski,其中所述安全服务器根据所述安全服务器生成的第二随机数ri2、包括所述第一随机数ri1的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数生成所述第一组参数,其中所述第一设备生成所述第一组分量并将其传输给所述安全服务器;以及与所述第二设备通信,使用基于身份的自认证签名方案为所述TLS协议或所述DTLS协议生成所述公共会话密钥SK,其中所述第一设备的身份idi包含在所述第一设备的证书消息中,所述第二设备的身份idj包含在所述第二设备的证书消息中,所述基于身份的自认证签名方案由skj和所述ski决定,所述skj为所述第二设备计算的私有密钥。
根据本发明第二十三方面,一种生成公共会话密钥SK的第一设备,所述公共会话密钥SK用于对参与扩展的传输层安全(Transport Layer Security,TLS)协议或扩展的数据报传输层安全(Datagram Transport Layer Security,DTLS)协议的所述第一设备i和第二设备j之间的数字通信进行编码,所述第一设备包括:处理器;以及所述处理器可读的非瞬时性介质,所述介质存储指令,所述指令在由所述处理器执行时使得所述处理器执行以下操作:从安全服务器接收用于以下操作的指令:根据从所述安全服务器接收的第一组参数和所述第一设备生成的随机数ri1计算私有密钥ski,其中所述安全服务器根据所述安全服务器生成的第二随机数ri2、包括所述第一随机数ri1的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数生成所述第一组参数,其中所述第一设备生成所述第一组分量并将其传输给所述安全服务器;以及与所述第二设备通信,使用基于身份的自认证签名方案为所述TLS协议或所述DTLS协议生成所述公共会话密钥SK,其中所述第一设备的身份idi包含在所述第一设备的证书消息中,所述第二设备的身份idj包含在所述第二设备的证书消息中,所述基于身份的自认证签名方案由skj和所述ski决定,所述skj为所述第二设备计算的私有密钥。
根据本发明第二十四方面,一种生成公共会话密钥SK的方法,所述公共会话密钥SK用于对参与扩展的传输层安全(Transport Layer Security,TLS)协议或扩展的数据报传输层安全(Datagram Transport Layer Security,DTLS)协议的第一设备i和第二设备j之间的数字通信进行编码,所述方法包括:安全服务器使用基于身份的自认证签名方案,根据所述第一设备的身份idi为所述第一设备生成私有密钥ski,根据所述第二设备的身份idj为所述第二设备生成私有密钥skj;以及将所述私有密钥ski传输给所述第一设备,将所述私有密钥skj传输给所述第二设备,从而所述第一和第二设备用于使用相同的基于身份的自认证签名方案为所述第一设备和所述第二设备之间的所述TLS协议或所述DTLS协议生成所述公共会话密钥SK,其中所述第一设备的身份idi包含在所述第一设备的证书消息中,所述第二设备的身份idj包含在所述第二设备的证书消息中,所述基于身份的自认证签名方案由所述skj和所述ski决定。
根据本发明第二十五方面,一种生成公共会话密钥SK的安全服务器,所述公共会话密钥SK用于对参与扩展的传输层安全(Transport Layer Security,TLS)协议或扩展的数据报传输层安全(Datagram Transport Layer Security,DTLS)协议的第一设备i和第二设备j之间的数字通信进行编码,所述安全服务器包括:处理器;以及所述处理器可读的非瞬时性介质,所述介质存储指令,所述指令在由所述处理器执行时使得所述处理器执行以下操作:使用基于身份的自认证签名方案,根据所述第一设备的身份idi为所述第一设备生成私有密钥ski,根据所述第二设备的身份idj为所述第二设备生成私有密钥skj;以及将所述私有密钥ski传输给所述第一设备,将所述私有密钥skj传输给所述第二设备;从而所述第一和第二设备用于使用相同的基于身份的自认证签名方案为所述第一设备和所述第二设备之间的所述TLS协议或所述DTLS协议生成所述公共会话密钥SK,其中所述第一设备的身份idi包含在所述第一设备的证书消息中,所述第二设备的身份idj包含在所述第二设备的证书消息中,所述基于身份的自认证签名方案由所述skj和所述ski决定。
附图说明
在以下详细描述中描述并在以下附图中示出根据本发明的以上优点和特征:
图1示出了根据本发明实施例的表示一种实体对认证和用于已认证实体对的公共会话密钥生成系统的方框图。
图2示出了根据本发明实施例的表示一种用于实施实施例的电子设备或服务器中的组件的方框图。
图3示出了根据本发明实施例的基于身份的自认证签名方案中的设备用于生成私有密钥sk的时序图。
图4示出了根据本发明实施例的进行实体对认证和生成已认证实体对的公共会话密钥的时序图。
图5示出了根据本发明实施例的一种验证第二实体真实性和生成公共会话密钥的过程的流程图。
具体实施方式
本发明涉及一种用于为参与基于身份的自认证签名方案的设备生成私有密钥的系统和方法,其中设备使用私有密钥创建用于对设备间数字通信进行编码的公共会话密钥。具体而言,根据本发明的系统和方法生成的私有密钥只为设备本身所知,而不为任何其它第三方所知。
此外,在计算公共会话密钥之前,实体对或设备对将首先验证每个实体或设备的真实性。一旦每个实体通过认证,实体对则将接着生成公共会话密钥,该公共会话密钥用于对实体之间的数字通信进行编码。
图1示出了根据本发明实施例的实体对认证和公共会话密钥生成系统的方框图。本领域技术人员将认识到,在不偏离本发明的情况下,术语“实体”和“设备”可在本说明书中互换使用。
图1所示的系统包括无线连接到安全服务器120的设备或实体105、110。实体105和110各自包括但不限于能够执行无线通信功能的任何设备,例如智能电话、平板电脑、移动计算机、笔记本、智能手表等可穿戴电子设备、智能插头或可以在智能设备或支持物联网(Internet of Things,IoT)的设备中找到的收发器,等等。
对于安全服务器120,该服务器可以包括安全云服务器或远程安全服务器,其能够通过互联网115或者直接与实体105和110进行无线通信。如果服务器120用于通过互联网115与实体105和110进行通信,则服务器120可以通过包括但不限于蜂窝网络、卫星网络、电信网络或广域网(Wide Area Network,WAN)等有线网络或无线网络125通信进行通信。或者,如果服务器120用于直接与实体105和110通信,则可以通过包括但不限于无线保真(Wireless-Fidelity,Wi-Fi)、蓝牙或近场通信(Near Field Communication,NFC)等无线网络130进行。应注意,实体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、安装在电路板上用于处理指令和数据以执行本实施例的方法的中央处理器(CentralProcessing Unit,CPU)205、操作系统206、与用户接口202进行通信的输入/输出(input/output,I/O)接口230以及在本实施例中为网卡250形式的通信接口。网卡250可以用于通过有线或无线网络将数据从电子设备200发送到其它处理设备,或通过有线或无线网络接收数据等。网卡250可以使用的无线网络包括但不限于无线保真(Wireless-Fidelity,Wi-Fi)、蓝牙、近场通信(Near Field Communication,NFC)、蜂窝网络、卫星网络、电信网络、广域网(Wide Area Network,WAN)等。
存储器220和操作系统206通过总线210与CPU 205进行数据通信。存储器组件包括易失性和非易失性存储器以及多种下述存储器:随机存取存储器(Random Access Memory,RAM)223、只读存储器(Read Only Memory,ROM)225和大容量存储设备245,还包括一个或多个固态驱动器(solid-state drive,SSD)。存储器220还包括安全存储246,用于安全地存储秘密密钥或私有密钥。应注意,安全存储246中的内容仅可由设备200的超级用户或管理员访问,而不可由设备200的任何用户访问。本领域技术人员将认识到,上述存储器组件包括非瞬时性计算机可读介质并且应视作包括除瞬时性传播信号之外的所有计算机可读介质。通常,指令作为程序代码存储在存储器组件中,但是也可以进行硬连线。存储器220可以包括内核和/或编程模块,例如可以存储在易失性或非易失性存储器中的软件应用。
本文中术语“CPU”用于泛指能够处理这些指令的任何设备或组件,并且可以包括:微处理器、微控制器、可编程逻辑设备或其它计算设备。也就是说,CPU 205可以由任何合适的逻辑电路提供,用于接收输入、根据存储在存储器中的指令处理输入并生成输出(例如生成存储器组件中的输出或显示器240上的输出)。在本实施例中,CPU 205可以是具有可寻址内存空间的单核或多核处理器。在一个示例中,CPU 205可以是多核CPU,包括8核CPU等。
生成私有密钥
回到图1,在将实体105和110添加到根据本发明实施例的实体对认证和公共会话密钥生成系统之前,配置为密钥生成中心的服务器120将首先根据离散对数类型的签名方案发起一个设置流程,以生成主秘密密钥“x”和主公开密钥“y”。在该设置流程中,服务器120将首先确定一个合适的具有素数阶q和G的发生器g的循环群G。在本发明实施例中,循环群G将基于有限域或在有限域上确定的椭圆曲线。
然后,服务器120将选择一个加密无碰撞散列函数H:其中为本领域技术人员所知的合适整数。服务器120还将选择系统中要采用的认证数据推导函数和密钥推导函数。在本发明实施例中,认证数据推导函数(Authentication Data DerivingFunction,AdDF)可以包括用于验证消息认证码(message authentication code,MAC)、消息完整性代码或带密钥散列函数等消息真实性的任何算法或方案,而密钥推导函数(KeyDeriving Function,KDF)可以包括用于从秘值推导秘密密钥的任何方案,例如无碰撞散列函数。
应注意,上述设置流程类似于发起设置离散对数类型的基于身份的自认证签名方案的流程,这种基于身份的自认证签名方案包括但不限于ISO/IEC 29192-4中定义的基于轻量身份的签名方案或IETF RFC 6507中定义的基于椭圆曲线的无证书签名方案。在这种基于身份的自认证签名方案中,特定用户生成的签名始终包含该用户的私有签名密钥或私有密钥所特有的固定分量。因此,在本发明中将这种固定分量表述为密钥私有数据(key-specific data,KSD),其中KSD可以用来验证生成的签名。出于说明的目的,在下文所有实施例中采用ISO/IEC 29192-4中定义的基于身份的签名方案,但是,对于本领域技术人员而言,所述系统和方法经过适当的更改可直接轻松应用到其它基于身份的自认证签名方案,例如IETF RFC 6507中规定的方案。
当实体105或110加入系统时,安全服务器120即密钥生成中心将会发行每个实体独有的私有密钥。这些独有的私有密钥一旦生成将会传送给每个实体,然后各个私有密钥将会存储在每个实体105和110内部的安全存储器中。图3示出了为实体105生成私有密钥。具体而言,当实体105在服务器120中注册时,实体105在步骤305处将首先生成随机数其中为模数q的非零残量。然后,实体105将使用随机数ri1计算任意值Ri1为在步骤310处,实体105将任意值Ri1及其身份idi传送给服务器120。实体105的身份idi可以包括其用户名、电子邮件地址、电话号码、IP地址、MAC地址或可以用来唯一识别实体105的任何字母数字组合。
在步骤315处,服务器120将接收任意值Ri1和实体105的身份idi。然后,服务器120选择随机数其中为模数q的非零残量。然后,根据选择的随机数ri2和收到的信息,服务器120计算将提供给实体105的任意值Ri为或并计算整数si1为si1=ri2+xH(Ri,idi)(mod q)或si1=-ri2+xH(Ri,idi)(mod q),其中x为之前生成的主秘密密钥“x”,H()为mpk的参数中包含的散列函数。
然后,在步骤320处,服务器120将任意值Ri和整数si1传输给实体105。在收到这一信息时,实体105将接着在步骤325处计算整数si为si=si1+ri1(mod q)。然后,实体105将其私有密钥ski设置为ski=(Ri,si)。
在本发明另一实施例中,在步骤315处,根据选择的随机数ri2和在该步骤收到的信息,服务器120将计算将提供给实体105的任意值Ri为并计算整数si1为si1=ri2+xH(Ri,idi)(mod q),其中x为之前生成的主秘密密钥“x”,H()为mpk的参数中包含的散列函数。
然后,在步骤320处,服务器120将任意值Ri和整数si1传输给实体105。在收到这一信息时,实体105将接着在步骤325处计算整数si为si=si1-ri1(mod q)。然后,实体105将其私有密钥ski设置为ski=(Ri,si)。
在本发明又一实施例中,当实体105在服务器120中注册时,实体105在步骤305处将首先生成随机数其中为模数q的非零残量。然后,实体105将使用随机数ri1计算任意值Ri1为此外,实体105还将生成确定的同态加密值c,其中HEnc()表示加法同态加密函数,HDec()表示对应的解密函数。在本发明实施例中,加法同态加密/解密函数基于Paillier加密体系,其中HEnc(m1)·HEnc(m2)=HEnc(m1+m2),且
在步骤310处,实体105将任意值Ri1、其身份idi、生成的同态加密值c以及加法同态加密函数传送给服务器120。同样,实体105的身份idi可以包括其用户名、电子邮件地址、电话号码、IP地址、MAC地址或可以用来唯一识别实体105的任何字母数字组合。
在步骤315处,服务器120将接收同态加密值c、任意值Ri1以及实体105的身份idi。然后,服务器120选择随机数其中为模数q的非零残量。然后,根据选择的随机数ri2和收到的信息,服务器120计算将提供给实体105的任意值Ri为并计算整数si1为其中x为之前生成的主秘密密钥“x”,H()为mpk的参数中包含的散列函数。整数si1可以进一步扩展为si1=HEnc(ri2+ri1 -1xH(Ri,idi)mod q)。
然后,在步骤320处,服务器120将任意值Ri和整数si1传输给实体105。在收到这一信息时,实体105将接着在步骤325处计算整数si为si=ri1HDec(si1)=ri1ri2+xH(Ri,idi)(mod q)。然后,实体105将其私有密钥ski设置为ski=(Ri,si)。
在本发明又一实施例中,当实体105在服务器120中注册时,实体105在步骤305处将首先生成随机数其中为模数q的非零残量。然后,实体105将使用随机数ri1计算任意值Ri1为此外,实体105将生成c=HEnc(ri1)确定的同态加密值c,其中HEnc()表示加法同态加密函数,HDec()表示对应的解密函数。
然后,在步骤310处,实体105将任意值Ri1、其身份idi以及生成的同态加密值c传送给服务器120。
在步骤315处,服务器120将接收同态加密值c、任意值Ri1以及实体105的身份idi。然后,服务器120选择随机数其中为模数q的非零残量。然后,根据选择的随机数ri2和收到的信息,服务器120计算将提供给实体105的任意值Ri为并计算整数si1为其中x为之前生成的主秘密密钥“x”,H()为mpk的参数中包含的散列函数。整数si1可以进一步扩展为si1=HEnc(ri2+ri1.xH(Ri,idi)mod q).。
然后,在步骤320处,服务器120将任意值Ri和整数si1传输给实体105。在收到这一信息时,实体105将接着在步骤325处计算整数si为si=ri1 -1HDec(si1)=ri2/ri1+xH(Ri,idi)(mod q)。然后,实体105将其私有密钥ski设置为ski=(Ri,si)。
在本发明另一实施例中,当实体105在服务器120中注册时,实体105在步骤305处将首先生成随机数其中为模数q的非零残量。然后,实体105将使用随机数ri1计算任意值Ri1为此外,实体105将生成c=HEnc(ri1 -1)确定的同态加密值c,其中HEnc()表示加法同态加密函数,HDec()表示对应的解密函数。
然后,在步骤310处,实体105将任意值Ri1、其身份idi以及生成的同态加密值c传送给服务器120。
在步骤315处,服务器120将接收同态加密值c、任意值Ri1以及实体105的身份idi。然后,服务器120选择随机数其中为模数q的非零残量。然后,根据选择的随机数ri2和收到的信息,服务器120计算将提供给实体105的任意值Ri为并计算整数si1为其中x为之前生成的主秘密密钥“x”,H()为mpk的参数中包含的散列函数。整数si1可以进一步扩展为si1=HEnc(ri2 -1+ri1 -1.xH(Ri,idi)modq)。
然后,在步骤320处,服务器120将任意值Ri和整数si1传输给实体105。在收到这一信息时,实体105将接着在步骤325处计算整数si为si=ri1HDec(si1)=ri1/ri2+xH(Ri,idi)(mod q)。然后,实体105将其私有密钥ski设置为ski=(Ri,si)。
应注意,根据上述实施例生成的私有密钥ski可以仅由实体105单独计算。换句话说,服务器120无权为该基于身份的自认证签名方案中的实体计算私有密钥。
通过零知识证明生成私有密钥
上述实施例未将设备的私有密钥托管给密钥生成中心。更为通用的实施例可能要求密钥生成中心可调节密钥托管生成的难易度,其中难易度由系统参数λ决定。为了使得系统具有可调节性,引入了系统参数λ以设置实体105可生成和使用的随机数ri1的长度。本实施例可应用到任意前述实施例,在本实施例中,将零知识证明函数ZKP()运用到随机数ri1和系统参数λ,从而产生ZKP(|ri1|,λ),其以零知识的方式显示ri1的长度,|ri1|≤λ。由于函数ZKP()是本领域技术人员所知的,因此为了简洁起见,省略其详细操作。总体来说,函数ZKP()将使用随机数ri1和系统参数λ生成零知识证明结果。然后,将该零知识证明结果连同idi和任意值Ri1从实体105传输给服务器120。
当服务器120收到任意值Ri1时,服务器120在进一步操作之前将会检查零知识证明结果的有效性。如果服务器120根据零知识证明结果确定ri1的长度小于等于系统参数λ,则服务器120将正常操作。反之,服务器120将中止私有密钥生成过程。
应注意,还可以针对包括实体110在内的其它实体重复上述各实施例中描述的步骤305至325,以便为实体110生成私有密钥skj,其中skj=(Rj,sj)。此外,本领域技术人员将认识到,上述实施例可以应用于任意数量的设备或实体,以为系统中的每个实体生成私有密钥。
通过跨域KGC生成私有密钥
在本发明另一实施例中,可以使用其它安全服务器(未示出)替代服务器120为实体110生成私有密钥skj,其中skj=(Rj,sj)。这意味着步骤305至325以及上述各实施例可以在其它安全服务器而非服务器120中针对实体110执行。在该跨域认证密钥交换方法中,使用安全服务器120为实体105生成私有签名密钥,而使用另一单独的安全服务器(未示出)为实体110生成私有签名密钥。在该实施例中,每个安全服务器具有自己的一套主秘密密钥“x”和主公开密钥“y”。
一旦私有密钥已存储在各自实体的安全存储器中,实体对,即实体105和110就可以开始认证流程。然后,在成功认证彼此时,实体对继续生成用于对彼此之间发送的数字通信进行编码或签名的公共会话密钥。
静态Diffie-Hellman认证密钥交换协议
在本发明实施例中,采用静态Diffie-Hellman认证密钥交换协议在参与者105和110之间生成公共会话密钥。参考图4,实体105先通过选择密码随机数Ni向实体110发起认证过程。选择的密码随机数可以包括任何随机或伪随机数。然后,实体105计算签名的密码随机数ci,其中签名的密码随机数ci由ci=SC-IBS.Sign(ski,Ni)确定,其中SC-IBS.Sign()为基于身份的自认证签名方案的签名函数,ski为通过图3所示步骤生成的实体105的私有密钥。换言之,使用函数SC-IBS.Sign()和私有密钥ski对密码随机数Ni进行签名。
然后,在步骤405处,实体105将实体105的身份idi、签名的密码随机数ci的值以及密码伪随机数Ni传输给实体110。
在收到传输的信息时,实体110将接着使用与基于身份的自认证签名方案对应的验证函数/算法SC-IBS.Verify()和实体105的身份idi验证ci。验证通过实体110将验证函数运用到ci和身份idi从而产生SC-IBS.Verify(idi,ci)实现。如果验证失败,实体110将中止该过程。反之,在成功验证签名的密码随机数ci时,实体110将接着选择随机数Nj,随后将密码随机数Nj签名为cj=SC-IBS.Sign(skj,Ni||Nj),其中skj为通过图3所示步骤生成的实体110的私有密钥。
然后,在步骤410处,实体110接着将签名的密码随机数cj的值和伪随机数Nj传输给实体105。
在收到传输的信息时,实体105将接着使用与基于身份的自认证签名方案对应的验证函数SC-IBS.Verify()和实体110的身份idj验证cj。验证通过实体105将验证函数运用到cj和身份idj从而产生SC-IBS.Verify(idj,cj)实现。如果验证失败,实体115将中止该过程。反之,实体105将计算共享秘钥kij,其中Rj为cj的一部分,计算第一密钥vki=KDF(kij),并计算第一认证数据Adi=AdDF(vki,Nj)。完成此操作后,实体105将计算公共会话密钥SK为SK=KDF(kij,Ni,Nj)。
然后,在步骤415处,实体105将第一认证数据Adi传输给实体110。
在收到第一认证数据Adi时,实体110将计算共享秘钥kji,其中 Ri为ci的一部分,计算第二密钥vkj=KDF(kji),并计算第二认证数据Adj=AdDF(vkj,Nj)。完成此操作后,实体105将确定第二认证数据Adj是否与收到的第一认证数据Adi匹配。如果未发现匹配,该过程中止。或者,如果发现匹配,实体110将计算公共会话密钥SK为SK=KDF(kji,Ni,Nj)。
在静态Diffie-Hellman认证密钥交换协议的另一实施例中,使用选项字段op_f1、op_f2、op_f3、op_f4、op_f5、op_f6和op_f7,若适用,这些字段可以包括系统实体的身份或实体本身确定的任何应用专用数据。
参见图4,实体105先通过选择密码随机数Ni向实体110发起认证过程。然后,实体105计算签名的密码随机数ci,其中签名的密码随机数ci由ci=SC-IBS.Sign(ski,Ni||op_f1)确定,其中SC-IBS.Sign()为基于身份的自认证签名方案的签名函数,ski为通过图3所示步骤生成的实体105的私有密钥。换言之,使用函数SC-IBS.Sign()和私有密钥ski对密码随机数Ni进行签名。
然后,在步骤405处,实体105接着将选项字段op_f2、实体105的身份idi、签名的密码随机数ci的值以及伪随机数Ni传输给实体110。
在收到传输的信息时,实体110将接着使用与基于身份的自认证签名方案对应的验证函数SC-IBS.Verify()和实体105的身份idi验证ci。验证通过实体110将验证函数运用到ci和身份idi从而产生SC-IBS.Verify(idi,ci)实现。如果验证失败,实体110将中止该过程。反之,在成功验证签名的密码随机数ci时,实体110将接着选择随机数Nj,随后将密码随机数Nj签名为cj=SC-IBS.Sign(skj,Ni||Nj||op_f3),其中skj为通过图3所示步骤生成的实体110的私有密钥。
然后,在步骤410处,实体110接着将选项字段op_f4、签名的密码随机数cj的值和伪随机数Nj传输给实体105。
在收到传输的信息时,实体105将接着使用与基于身份的自认证签名方案对应的验证函数SC-IBS.Verify()和实体110的身份idj验证cj。验证通过实体105将验证函数运用到cj和身份idj从而产生SC-IBS.Verify(idj,cj)实现。如果验证失败,实体110将中止该过程。反之,实体105将计算共享秘钥kji,其中计算第一密钥vki=KDF(kji,op_f5),并计算第一认证数据Adi=AdDF(vki,Nj,op_f6)。完成此操作后,实体105将计算公共会话密钥SK为SK=KDF(kji,Ni,Nj,op_f7)。
然后,在步骤415处,实体105将第一认证数据Adi传输给实体110。
在收到第一认证数据Adi时,实体110将计算共享秘钥kji,其中计算第二密钥vkj=KDF(kji,op_f5),并计算第二认证数据Adj=AdDF(vkj,Nj,op_f6)。完成此操作后,实体105将确定第二认证数据Adj是否与收到的第一认证数据Adi匹配。如果未发现匹配,该过程中止。或者,如果发现匹配,实体110将计算公共会话密钥SK为SK=KDF(kji,Ni,Nj,op_f7)。
在本发明又一实施例中,在上述步骤中,密码随机数Ni和Nj可以由临时DiffieHellman(Diffie-Hellman,DH)公共值ga和gb代替,kij和kji通过gsi·sj和gab二者得出。这一实施例会继承临时DH协议的所有特征,并且更加安全。
静态Diffie-Hellman认证密钥交换协议扩展到TLS
在本发明再一实施例中,上述静态Diffie-Hellman密钥交换的思路可以扩展到传输层安全(Transport Layer Security,TLS)或数据报传输层安全(Datagram TransportLayer Security,DTLS)。具体而言,上述生成实体105和实体110之间的共享秘钥kij(以及kji)的步骤实际上与TLS v1.2中包含的静态DH加密套件的精神相同。因此,本领域技术人员可以轻松扩展传统TLS,例如TLS v1.2,以在上述自认证IBS的基础上包括一套静态DH加密套件。在本发明的该实施例中,将TLS协议中的服务器证书消息设置为实体110的idj及其密钥私有数据Rj,TLS协议中的客户端消息设置为实体105的idi及其密钥私有数据Ri,TLS协议的其它步骤和操作遵照TLS规范,但允许因使用基于身份的自认证签名而直接进行的相应更改。
临时Diffie-Hellman(DH)认证密钥交换协议
在本发明再一实施例中,采用临时Diffie-Hellman(Diffie-Hellman,DH)认证密钥交换协议生成参与者105和110之间的公共会话密钥。实体105和110各自拥有与ISO/IEC29192-4或IETF RFC 6507的IBS自认证方案对应的私有密钥。
参考图4,实体105先通过选择随机值并计算签名的ci向实体110发起认证过程,其中ci由ci=SC-IBS.Sign(ski,ga)确定,其中SC-IBS.Sign()为基于身份的自认证签名方案的签名函数,ski为通过图3所示步骤生成的实体105的私有密钥,ga为群元素。换言之,使用函数SC-IBS.Sign()和私有密钥ski对群元素ga进行签名。
然后,在步骤405处,实体105接着将实体105的身份idi、签名的ci的值以及群元素ga传输给实体110。
在收到传输的信息时,实体110将接着使用与基于身份的自认证签名方案对应的验证函数SC-IBS.Verify()和实体105的身份idi验证ci。验证通过实体110将验证函数运用到ci和身份idi从而产生SC-IBS.Verify(idi,ci)实现。如果验证失败,实体110将中止该过程。反之,在成功验证ci时,实体110将接着选择随机值b,其中并将继续计算cj=SC-IBS.Sign(skj,ga||gb),其中skj为通过图3所示步骤生成的实体110的私有密钥。
然后,在步骤410处,实体110接着将签名的群元素cj的值和群元素gb传输给实体105。
在收到传输的信息时,实体105将接着使用与基于身份的自认证签名方案对应的验证函数SC-IBS.Verify()和实体110的身份idj验证cj。验证通过实体105将验证函数运用到cj和身份idj从而产生SC-IBS.Verify(idj,cj)实现。如果验证失败,实体105将中止该过程。反之,实体105将计算共享秘钥kij,其中kij=ga·b,计算第一密钥vki=KDF(kij),并计算第一认证数据Adi=AdDF(vki)。完成此操作后,实体105将计算公共会话密钥SK为SK=KDF(kij)。
然后,在步骤415处,实体105将第一认证数据Adi传输给实体110。
在收到第一认证数据Adi时,实体110将计算共享秘钥kji,其中kji=ga·b,计算第二密钥vkj=KDF(kji),并计算第二认证数据Adj=AdDF(vkj)。完成此操作后,实体110将确定第二认证数据Adj是否与收到的第一认证数据Adi匹配。如果未发现匹配,该过程中止。或者,如果发现匹配,实体110将计算公共会话密钥SK为SK=KDF(kji)。
跨域KGC的临时DH认证密钥交换协议
在临时Diffie-Hellman认证密钥交换协议的另一实施例中,实体105和110的密钥生成中心来自不同的域(即这两个密钥生成中心各自拥有自身的主秘密密钥和主公开密钥)。在该实施例中,在步骤405处将实体105的身份idi、签名的ci的值和群元素ga传输给实体110之前,实体105将与实体110共享其密钥生成中心的主公开密钥,同样,实体110将与实体105共享其密钥生成中心的主公开密钥。另外,实体105可以与实体110协商确定将要使用的适当的有限域群的发生器g。尽管如此,两个实体将要采用的主公开密钥必须为彼此所知,必须在步骤405之前确定g,从而使得实体105和110随后能够验证彼此的签名以及进行临时Diffie-Hellman密钥交换。然后,如上所述执行步骤410至415。
临时DH认证密钥交换协议扩展到TLS协议
在本发明再一实施例中,上述思路可以用于扩展传输层安全(Transport LayerSecurity,TLS)或数据报传输层安全(Datagram Transport Layer Security,DTLS)。具体而言,在使用基于身份的自认证签名方案的基础上,上述步骤可以适配于实体105和实体110之间的TLS协议。在本发明的该实施例中,使用IBS自认证方案代替传统TLS握手协议中的DSS/ECDSA或RSA数字签名方案。此外,分别将TLS协议中的服务器证书消息和客户端消息设置为实体110的身份idj和实体105的身份idi,而实体110和实体105的密钥私有数据(keyspecific data,KSD)为各自实体签名的一部分。TLS协议的其它步骤和操作遵照TLS规范,但允许因使用基于身份的自认证签名而直接进行的相应更改。在本发明的该实施例中,可以根据任意上述私有密钥生成的实施例、ISO/IEC 29192-4和IETF RFC等现有IBS自认证方案的密钥生成过程、或上述通过跨域KGC生成私有密钥的实施例生成实体105的私有密钥ski和实体110的私有密钥skj。
在临时Diffie-Hellman认证密钥交换协议的另一实施例中,使用选项字段op_f1、op_f2、op_f3、op_f4、op_f5、op_f6和op_f7,若适用,这些字段可以包括系统实体的身份或实体本身确定的任何应用专用数据。
参考图4,实体105先通过选择随机值并计算签名的群元素ci向实体110发起认证过程,其中签名的群元素ci由ci=SC-IBS.Sign(ski,ga||op_f1)确定,SC-IBS.Sign()为基于身份的自认证签名方案的签名函数,ski为通过图3所示步骤生成的实体105的私有密钥,ga为群元素。换言之,使用函数SC-IBS.Sign()和私有密钥ski对群元素ga进行签名。
然后,在步骤405处,实体105接着将选项字段op_f2、实体105的身份idi、签名的ci的值以及群元素ga传输给实体110。
在收到传输的信息时,实体110将接着使用与基于身份的自认证签名方案对应的验证函数SC-IBS.Verify()和实体105的身份idi验证ci。验证通过实体110将验证函数运用到ci和身份idi从而产生SC-IBS.Verify(idi,ci)实现。如果验证失败,实体110将中止该过程。反之,在成功验证签名的密码随机数ci时,实体110将接着选择随机值b,其中并将继续计算cj=SC-IBS.Sign(skj,ga||gb||op_f3),其中skj为通过图3所示步骤生成的实体110的私有密钥。
然后,在步骤410处,实体110接着将选项字段op_f4、签名的cj的值和群元素gb传输给实体105。
在收到传输的信息时,实体105将接着使用与基于身份的自认证签名方案对应的验证函数SC-IBS.Verify()和实体110的身份idj验证cj。验证通过实体105将验证函数运用到cj和身份idj从而产生SC-IBS.Verify(idj,cj)实现。如果验证失败,实体110将中止该过程。反之,实体105将计算共享秘钥kij,其中kij=ga·b,计算第一密钥vki=KDF(kij,op_f5),并计算第一认证数据Adi=AdDF(vki,op_f6)。完成此操作后,实体105将计算公共会话密钥SK为SK=KDF(kij,op_f7)。
然后,在步骤415处,实体105将第一认证数据Adi传输给实体110。
在收到第一认证数据Adi时,实体110将计算共享秘钥kji,其中kji=ga·b,计算第二密钥vkj=KDF(kji,op_f5),并计算第二认证数据Adj=AdDF(vkj,op_f6)。完成此操作后,实体110将确定第二认证数据Adj是否与收到的第一认证数据Adi匹配。如果未发现匹配,该过程中止。或者,如果发现匹配,实体110将计算公共会话密钥SK为SK=KDF(kij,op_f7)。
根据本发明一实施例,一种用于为参与基于身份的自认证签名方案的设备生成私有密钥sk的方法包括下面三个步骤:
步骤1:安全服务器根据该安全服务器生成的第二随机数ri2、从设备接收的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数为该设备计算参数,其中第一组分量包括设备生成的第一随机数ri1;
步骤2:安全服务器将计算的参数传输给设备;以及
步骤3:设备根据收到的计算的参数和随机数ri1计算私有密钥sk。
为了提供这一系统或方法,需要如下一个过程:为系统的实体生成秘密私有密钥,并在生成用于对实体对之间的数字消息进行编码或签名的公共会话密钥之前认证实体对中的实体。以下说明以及图4至图5描述了根据本发明的提供过程的过程实施例。图5示出了配置为密钥生成中心的安全服务器、第一实体“i”和第二实体“j”执行的过程500,该过程用于为系统的实体生成秘密私有密钥,并在生成用于对实体对之间的数字消息进行编码或签名的公共会话密钥之前认证实体对中的实体。过程500从步骤505开始,其中安全服务器生成主秘密密钥“x”和主公开密钥“y”。当第一实体i在安全服务器中注册时,安全服务器将执行图3所示以及上述描述中所述的步骤,以使用第一实体的身份idi为第一实体生成私有密钥ski。这些操作都在步骤510处进行。
在步骤515处,当下一实体,即第二实体j在安全服务器中注册时,安全服务器将执行图3所示以及上述描述中所述的步骤,以使用第二实体的身份idj为第二实体生成私有密钥skj。
然后,在步骤520处,第一和第二实体使用签名函数以及与基于身份的自认证签名方案关联的对应验证函数验证两个实体之间发送的信息。
一旦两个实体都通过验证,在步骤523处,两个实体将共享秘钥。然后,使用这一共享秘密为两个实体生成公共会话密钥。然后,可以使用生成的公共会话密钥对第一和第二实体之间交换的任何数字消息进行签名或编码。过程500随后结束。
以上是根据如在所附权利要求书中阐述的本发明的系统和过程的实施例的描述。预计其它人可能并且将会设计落入所附权利要求书的范围内的替代方案。
Claims (10)
1.一种用于为参与基于身份的自认证签名方案的设备计算私有密钥sk的系统,其特征在于,包括:
安全服务器,用于:
根据所述安全服务器生成的第二随机数ri2、从所述设备接收的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数为所述设备计算第一组参数,其中所述第一组分量包括所述设备生成的第一随机数ri1;
将所述第一组参数传输给所述设备;以及
所述设备,用于根据收到的所述第一组参数和所述第一随机数ri1计算所述私有密钥sk;以及
为所述设备计算所述第一组参数的步骤包括:
从所述第一组分量中检索任意第一值Ri1、所述设备的身份idi以及同态加密值c,其中根据所述第一随机数ri1生成所述任意第一值Ri1,通过向加法同态加密函数HEnc()提供所述第一随机数ri1和从与所述主公开密钥mpk关联的所述参数中获得的素数q来生成所述同态加密值c;
将所述设备的任意值Ri和第一整数si1设置为所述设备的所述第一组参数,
其中根据所述任意第一值Ri1和所述第二随机数ri2计算所述设备的所述任意值Ri;以及
通过向所述加法同态加密函数HEnc()提供所述第二随机数ri2、所述同态加密值c、所述主秘密密钥x、所述设备的任意值Ri、所述设备的身份idi以及所述素数q计算所述第一整数si1。
2.根据权利要求1所述的系统,其特征在于,所述计算所述私有密钥sk的步骤包括:
通过将互补同态解密函数运用到从所述安全服务器传输的所述第一组参数中检索到的所述第一整数si1计算整数si;以及
根据所述设备的所述任意值Ri和所述整数si形成所述私有密钥sk。
5.根据权利要求3或4所述的系统,其特征在于,所述整数si由si=ri1HDec(si1)确定,其中HDec()为所述互补同态解密函数。
7.根据权利要求6所述的系统,其特征在于,所述整数si由si=ri1 -1HDec(si1)确定,其中HDec()为互补同态解密函数。
8.一种用于为参与基于身份的自认证签名方案的设备计算私有密钥sk的安全服务器,其特征在于,包括:
处理器;以及
所述处理器可读的非瞬时性介质,所述介质存储指令,所述指令在由所述处理器执行时使得所述处理器执行以下操作:
根据所述安全服务器生成的第二随机数ri2、从所述设备接收的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数为所述设备计算第一组参数,其中所述第一组分量包括所述设备生成的第一随机数ri1;
将所述第一组参数传输给所述设备,从而所述设备用于根据所述第一组参数和所述第一随机数ri1计算所述私有密钥sk;以及
为所述设备计算所述第一组参数的所述指令包括:
用于指示所述处理器执行以下操作的指令:
从所述第一组分量中检索任意第一值Ri1、所述设备的身份idi以及同态加密值c,其中根据所述第一随机数ri1生成所述任意第一值Ri1,通过向加法同态加密函数HEnc()提供所述第一随机数ri1和从与所述主公开密钥mpk关联的所述参数中获得的素数q来生成所述同态加密值c;
将所述设备的任意值Ri和第一整数si1设置为所述设备的所述第一组参数,
其中根据所述任意第一值Ri1和所述第二随机数ri2计算所述设备的所述任意值Ri;以及
通过向所述加法同态加密函数HEnc()提供所述第二随机数ri2、所述同态加密值c、所述主秘密密钥x、所述设备的任意值Ri、所述设备的身份idi以及所述素数q计算所述第一整数si1。
9.根据权利要求8所述的安全服务器,其特征在于,在根据所述安全服务器生成的所述第二随机数ri2为所述设备计算所述第一组参数的所述指令之前,所述安全服务器包括:
用于指示所述处理器执行以下操作的指令:
从所述设备接收零知识证明结果,其中所述设备使用所述第一随机数ri1和系统参数λ生成所述零知识证明结果;
根据所述零知识证明结果确定所述第一随机数ri1是否小于等于所述系统参数λ;以及
当所述第一随机数ri1小于等于所述系统参数λ时,根据所述安全服务器生成的所述第二随机数ri2为所述设备计算所述第一组参数。
10.一种用于为参与基于身份的自认证签名方案的设备计算私有密钥sk的方法,其特征在于,包括:
安全服务器根据所述安全服务器生成的第二随机数ri2、从所述设备接收的第一组分量、主秘密密钥x以及与主公开密钥mpk关联的参数为所述设备计算第一组参数,其中所述第一组分量包括所述设备生成的第一随机数ri1;
将所述第一组参数传输给所述设备,从而所述设备根据所述第一组参数和所述第一随机数ri1计算所述私有密钥sk;以及
为所述设备计算所述第一组参数包括:
所述安全服务器从所述第一组分量中检索任意第一值Ri1、所述设备的身份idi以及同态加密值c,其中根据所述第一随机数ri1生成所述任意第一值Ri1,通过向加法同态加密函数HEnc()提供所述第一随机数ri1和从与所述主公开密钥mpk关联的所述参数中获得的素数q来生成所述同态加密值c;
将所述设备的任意值Ri和第一整数si1设置为所述设备的所述第一组参数,
其中根据所述任意第一值Ri1和所述第二随机数ri2计算所述设备的所述任意值Ri;以及
通过向所述加法同态加密函数HEnc()提供所述第二随机数ri2、所述同态加密值c、所述主秘密密钥x、所述设备的任意值Ri、所述设备的身份idi以及所述素数q计算所述第一整数si1。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG10201701044SA SG10201701044SA (en) | 2017-02-09 | 2017-02-09 | System and method for computing private keys for self certified identity based signature schemes |
SG10201701044S | 2017-02-09 | ||
PCT/SG2018/050050 WO2018147800A1 (en) | 2017-02-09 | 2018-02-07 | System and method for computing private keys for self certified identity based signature schemes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110268676A CN110268676A (zh) | 2019-09-20 |
CN110268676B true CN110268676B (zh) | 2022-12-27 |
Family
ID=61569320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880011027.7A Active CN110268676B (zh) | 2017-02-09 | 2018-02-07 | 基于身份的自认证签名方案的私有密钥计算系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11563565B2 (zh) |
EP (1) | EP3574609B1 (zh) |
CN (1) | CN110268676B (zh) |
SG (1) | SG10201701044SA (zh) |
WO (1) | WO2018147800A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10812974B2 (en) * | 2017-05-06 | 2020-10-20 | Vmware, Inc. | Virtual desktop client connection continuity |
EP3656145B1 (en) * | 2017-07-17 | 2023-09-06 | Sonova AG | Encrypted audio streaming |
US20190318118A1 (en) * | 2018-04-16 | 2019-10-17 | International Business Machines Corporation | Secure encrypted document retrieval |
US11005656B2 (en) * | 2018-12-07 | 2021-05-11 | Arris Enterprises Llc | Embedding information in elliptic curve base point |
CN110011781B (zh) * | 2019-03-04 | 2020-05-19 | 华中科技大学 | 用于交易金额加密且支持零知识证明的同态加密方法和介质 |
US11601284B2 (en) * | 2019-06-14 | 2023-03-07 | Planetway Corporation | Digital signature system based on a cloud of dedicated local devices |
CN110336664B (zh) * | 2019-07-10 | 2021-07-20 | 西安电子科技大学 | 基于sm2密码算法的信息服务实体跨域认证方法 |
KR102315632B1 (ko) * | 2019-08-08 | 2021-10-21 | 한국과학기술원 | 신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템 |
CN110798475B (zh) * | 2019-11-05 | 2021-08-03 | 北谷电子有限公司上海分公司 | 一种安全认证方法、装置、设备和存储介质 |
US11722312B2 (en) * | 2020-03-09 | 2023-08-08 | Sony Group Corporation | Privacy-preserving signature |
CN111431723A (zh) * | 2020-03-26 | 2020-07-17 | 沈阳理工大学 | 一种基于零知识证明的工业环境移动充电设备的认证策略 |
CN111416715B (zh) * | 2020-04-09 | 2022-11-01 | 南京如般量子科技有限公司 | 基于秘密共享的量子保密通信身份认证系统及方法 |
CN111866547B (zh) * | 2020-07-30 | 2022-07-15 | 北京万协通信息技术有限公司 | 一种新型视频防篡改的方法 |
CN112713992B (zh) * | 2020-12-22 | 2022-07-01 | 湖北工业大学 | 一种基于无证书的抗泄露认证与密钥协商方法及系统 |
KR102336068B1 (ko) * | 2020-12-30 | 2021-12-07 | 주식회사 피에스디엘 | 도어락, 도어락 컨트롤 장치, 도어락 컨트롤 프로그램 및 도어락 관리 서버 |
US20220209949A1 (en) * | 2020-12-30 | 2022-06-30 | Psdl | Secure communication device and secure communication program |
CN112988237B (zh) * | 2021-04-21 | 2021-07-23 | 深圳致星科技有限公司 | 一种Paillier解密系统、芯片和方法 |
CN113162751B (zh) * | 2021-04-25 | 2023-06-20 | 重庆都会信息科技有限公司 | 具备加同态性的加密方法、系统及可读存储介质 |
CN117478329B (zh) * | 2023-10-16 | 2024-04-26 | 武汉大学 | 基于身份密钥封装的多用户抗合谋密文检索方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011232475A (ja) * | 2010-04-27 | 2011-11-17 | Mitsubishi Electric Corp | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
CN104486307A (zh) * | 2014-12-03 | 2015-04-01 | 中国电子科技集团公司第三十研究所 | 一种基于同态加密的分权密钥管理方法 |
CN106161405A (zh) * | 2015-04-21 | 2016-11-23 | 上海交通大学 | 基于同态加密机制的隐私可保护信息安全计算实现方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL9301348A (nl) * | 1993-08-02 | 1995-03-01 | Stefanus Alfonsus Brands | Elektronisch betalingssysteem. |
FR2714780B1 (fr) * | 1993-12-30 | 1996-01-26 | Stern Jacques | Procédé d'authentification d'au moins un dispositif d'identification par un dispositif de vérification. |
US7370351B1 (en) * | 2001-03-22 | 2008-05-06 | Novell, Inc. | Cross domain authentication and security services using proxies for HTTP access |
US7353395B2 (en) * | 2002-03-21 | 2008-04-01 | Ntt Docomo Inc. | Authenticated ID-based cryptosystem with no key escrow |
AU2005225783A1 (en) * | 2004-03-25 | 2005-10-06 | Cryptomathic A/S | Electronic voting systems |
US20060215837A1 (en) * | 2004-12-18 | 2006-09-28 | Hewlett-Packard Development Company, L.P. | Method and apparatus for generating an identifier-based public/private key pair |
CN102017510B (zh) * | 2007-10-23 | 2013-06-12 | 赵运磊 | 自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构 |
WO2009086845A1 (de) * | 2008-01-07 | 2009-07-16 | Siemens Enterprise Communications Gmbh & Co. Kg | Verfahren zum authentisieren einer schlüsselinformation zwischen endpunkten einer kommunikationsbeziehung |
US7930542B2 (en) * | 2008-04-07 | 2011-04-19 | Safemashups Inc. | MashSSL: a novel multi party authentication and key exchange mechanism based on SSL |
US8464058B1 (en) * | 2008-04-08 | 2013-06-11 | Hewlett-Packard Development Company, L.P. | Password-based cryptographic method and apparatus |
US8510558B2 (en) * | 2009-02-17 | 2013-08-13 | Alcatel Lucent | Identity based authenticated key agreement protocol |
CN101547099B (zh) * | 2009-05-07 | 2011-08-03 | 张键红 | 基于椭圆曲线的自认证签名方法与装置 |
CN101702804B (zh) * | 2009-11-23 | 2012-03-28 | 西安电子科技大学 | 基于自认证公钥的两方密钥协商方法 |
US8799997B2 (en) * | 2011-04-18 | 2014-08-05 | Bank Of America Corporation | Secure network cloud architecture |
CN105721153B (zh) * | 2014-09-05 | 2020-03-27 | 三星Sds株式会社 | 基于认证信息的密钥交换系统及方法 |
CN104539423B (zh) | 2014-12-16 | 2018-01-05 | 北京百旺信安科技有限公司 | 一种无双线性对运算的无证书公钥密码体制的实现方法 |
FR3035986B1 (fr) * | 2015-05-06 | 2018-07-27 | Morpho | Procede de generation d'une signature de message a partir d'un jeton de signature chiffre a l'aide d'une fonction de chiffrement homomorphique |
KR102423885B1 (ko) * | 2015-05-08 | 2022-07-21 | 한국전자통신연구원 | 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템 |
CN105162585B (zh) * | 2015-08-25 | 2018-06-15 | 清华大学 | 一种隐私保护的会话密钥协商方法 |
CN105959269B (zh) * | 2016-04-25 | 2019-01-25 | 北京理工大学 | 一种基于身份的可认证动态群组密钥协商方法 |
CN106341232B (zh) * | 2016-09-18 | 2019-04-09 | 中国科学院软件研究所 | 一种基于口令的匿名实体鉴别方法 |
-
2017
- 2017-02-09 SG SG10201701044SA patent/SG10201701044SA/en unknown
-
2018
- 2018-02-07 EP EP18709096.4A patent/EP3574609B1/en active Active
- 2018-02-07 WO PCT/SG2018/050050 patent/WO2018147800A1/en unknown
- 2018-02-07 CN CN201880011027.7A patent/CN110268676B/zh active Active
-
2019
- 2019-08-08 US US16/535,437 patent/US11563565B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011232475A (ja) * | 2010-04-27 | 2011-11-17 | Mitsubishi Electric Corp | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
CN104486307A (zh) * | 2014-12-03 | 2015-04-01 | 中国电子科技集团公司第三十研究所 | 一种基于同态加密的分权密钥管理方法 |
CN106161405A (zh) * | 2015-04-21 | 2016-11-23 | 上海交通大学 | 基于同态加密机制的隐私可保护信息安全计算实现方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3574609A1 (en) | 2019-12-04 |
EP3574609B1 (en) | 2022-05-25 |
CN110268676A (zh) | 2019-09-20 |
SG10201701044SA (en) | 2018-09-27 |
WO2018147800A1 (en) | 2018-08-16 |
US20190372763A1 (en) | 2019-12-05 |
US11563565B2 (en) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110268676B (zh) | 基于身份的自认证签名方案的私有密钥计算系统和方法 | |
US11323276B2 (en) | Mutual authentication of confidential communication | |
CN107948189B (zh) | 非对称密码身份鉴别方法、装置、计算机设备及存储介质 | |
US11108565B2 (en) | Secure communications providing forward secrecy | |
CN108886468B (zh) | 用于分发基于身份的密钥资料和证书的系统和方法 | |
CN108199835B (zh) | 一种多方联合私钥解密方法 | |
CN110402560B (zh) | 具有前向安全性的基于身份的认证密钥交换方案中用于计算公有会话密钥的系统和方法 | |
US9705683B2 (en) | Verifiable implicit certificates | |
US11044081B2 (en) | System and method for obtaining a common session key between devices | |
EP3664360A1 (en) | Certificateless public key encryption using pairings | |
CN104901935A (zh) | 一种基于cpk的双向认证及数据交互安全保护方法 | |
KR20100050846A (ko) | 키 교환 시스템 및 방법 | |
CN108075896B (zh) | 使用基于标识的密码学构建自认证消息的系统和方法 | |
GB2543359A (en) | Methods and apparatus for secure communication | |
US20220038267A1 (en) | Methods and devices for secured identity-based encryption systems with two trusted centers | |
KR20170087120A (ko) | 무인증서 공개키 암호 시스템 및 수신 단말기 | |
CN112533213B (zh) | 一种密钥协商方法、装置、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |