CN107925578B - 密钥协商方法、设备和系统 - Google Patents
密钥协商方法、设备和系统 Download PDFInfo
- Publication number
- CN107925578B CN107925578B CN201680046828.8A CN201680046828A CN107925578B CN 107925578 B CN107925578 B CN 107925578B CN 201680046828 A CN201680046828 A CN 201680046828A CN 107925578 B CN107925578 B CN 107925578B
- Authority
- CN
- China
- Prior art keywords
- user equipment
- formula
- key
- parameter
- public key
- 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.)
- Expired - Fee Related
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/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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种密钥协商方法、设备和系统,涉及无线通信领域,用于解决将BNN‑IBS应用于D2D无线通信网络中进行密钥协商时加密程度低的问题。密钥协商方法包括:在密钥生成设备将第一用户设备的公钥和私钥发送给第一用户设备时,在密钥生成设备将第二用户设备的公钥和私钥发送给第二用户设备时,在第一用户设备将第一签名消息发送给第二用户设备时,以及在第二用户设备将第二签名消息发送给第一用户设备时,均进行了同态加密。本发明的实施例应用于D2D无线通信网络。
Description
技术领域
本发明涉及无线通信领域,尤其涉及一种密钥协商方法、设备和系统。
背景技术
随着4G标准的逐步完善,5G技术已经进入人们视线,有资料显示未来5G无线通信系统将向网络融合的方向发展,一个方向是异构网络,另一个方向是在蜂窝网络下允许相距较近的移动设备直接通信,即D2D(英文全称:Device to Device,中文名称:设备对设备)通信模式。
一方面,密钥协商一直是无线通信系统中十分重要的安全机制,对于D2D无线通信,由于UE与UE之间传输路径的不确定性,因此无法使用传统无线网络中所采用的路由器、防火墙等设备进行密钥协商,目前尚未有针对D2D无线通信的密钥协商的标准和协议。
另一方面,在物联网、传感器网络中使用BNN-IBS(英文全称:Bellare M;Namprempre C;Neven G;identity-based signature,中文:由Bellare M、Namprempre C、Neven G提出的基于椭圆曲线的身份签名协议)进行密钥协商。参照图1所示,BNN-IBS流程包括以下步骤:
S101、PKG(英文名称:private key generator,中文名称:私钥生成器)设定系统参数。
选择有限域Fp上的椭圆曲线E(Fp),E/Fp表示由E(Fp)上的点构成的阶为n的群:p∈E/Fp且p的阶为q,q为素数且满足q2不整除n;G1为由p生成的循环群;选取为系统私钥;计算Q=sp作为系统公钥;选取两个加密哈希函数
S102、PKG向UE(英文名称:user equipment,中文名称:用户设备)公布系统参数。
PKG向UE1和UE2公布系统参数<E(Fp),p,q,Q,H1,H2>。
S103、PKG为UE1分配用户私钥<R1,s1>。
给定用户身份信息IDu∈{0,1}*;选取计算R=rp;利用系统私钥x计算s=r+cxmodq,c=H1(IDu||R)。用户IDu的私钥SKu=(R,s)。具体的,对于UE1,PKG为UE1分配用户私钥〈R1,s1>。
S104、UE1利用哈希函数进行签名〈R1,Y1,z1>。
选取计算Y=yp,z=y+hsmodq。其中,h=H2(IDu,m,R,Y)。用户IDu对消息m的签名为<R,Y,z>。具体的,对于UE1,h=H2(ID1,m,R1,Y1),z1=y+hs1modq,对消息m的签名为<R1,Y1,z1>。
S105、UE1将签名信息<m,ID1,R1,Y1,z1>发送给UE2。
S106、UE2进行签名验证。
给定用户IDu、系统参数、消息m及签名<R,Y,z>,计算h=H2(IDu,m,R,Y),c=H1(IDu||R)。判断zp=Y+h(R+cQ)是否成立,若成立,则验证通过,接收消息m,否则丢弃消息m。具体的,对于UE2来说,h=H2(ID1,m,R1,Y1),c=H1(ID1||R1),判断z1p=Y1+h(R1+cQ)是否成立,若成立,则验证通过,接收消息m,否则丢弃消息m。
S107、PKG为UE2分配用户私钥<R2,s2>。
具体计算步骤同步骤S103。具体的,对于UE2,PKG为UE2分配用户私钥<R2,s2>。
S108、UE2利用哈希函数进行签名<R2,Y2,z2>。
具体计算步骤同步骤S104。具体的,对于UE2,h=H2(ID2,m,R2,Y2),z2=y+hs2 modq,对消息m的签名为<R2,Y2,z2>。
S109、UE2将签名信息<m,ID2,R2,Y2,z2>发送给UE1。
S110、UE1进行签名验证。
具体计算步骤同步骤S106。具体的,对于UE1来说,h=H2(ID2,m,R2,Y2),c=H1(ID2||R2),判断z2p=Y2+h(R2+cQ)是否成立,若成立,则验证通过,接收消息m,否则丢弃消息m。
但是BNN-IBS具有以下问题:由于PKG生成系统参数以及UE1和UE2进行签名时均采用哈希函数进行加密,加密程度较低,无法对抗篡改数据攻击。
发明内容
本发明的实施例提供一种密钥协商方法、装置和系统,用于解决将BNN-IBS应用于D2D无线通信网络中进行密钥协商时加密程度低的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种密钥协商方法,具体包括如下步骤:
密钥生成设备根据预设的椭圆曲线参数,生成系统参数以及主密钥,其中,系统参数包括椭圆曲线参数、中间参数和系统公钥,中间参数用于指示椭圆曲线参数限定的有限域,系统公钥用于第一用户设备与第二用户设备进行密钥协商;
密钥生成设备广播系统参数;
密钥生成设备根据系统参数、主密钥和第一用户设备的标识,生成第一用户设备的公钥和私钥;
密钥生成设备将第一用户设备的公钥和私钥经过同态加密发送给第一用户设备,用于第一用户设备与第二用户设备进行密钥协商,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
密钥生成设备根据系统参数、主密钥和第二用户设备的标识,生成第二用户设备的公钥和私钥;
密钥生成设备将第二用户设备的公钥和私钥经过同态加密发送给第二用户设备,用于第二用户设备与第一用户设备进行密钥协商,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度。
在该实现方式中,在密钥生成设备将第一用户设备的公钥和私钥发送给第一用户设备时,在密钥生成设备将第二用户设备的公钥和私钥发送给第二用户设备时,均进行了同态加密。而非如BNN-IBS中所描述的:在PKG设定系统参数时,在PKG为UE1和UE2分配用户私钥时,以及在UE1和UE2进行签名时均采用哈希函数进行加密。同态加密可以抵抗篡改数据的攻击,其加密程度比哈希函数的加密程度更高,提高了加密的复杂程度。因此,本发明的实施例提供的密钥协商方法解决了将BNN-IBS身份签名协议应用于D2D无线通信网络中进行密钥协商时加密程度低的问题。另外,使用同态加密与哈希运算相比,通信与计算开销较小,降低了计算的复杂度。
结合第一方面,在第一种可能的实现方式中,密钥协商方法包括:
密钥生成设备根据椭圆曲线参数和整数得到中间参数;
密钥生成设备从中间参数指示的有限域中选取随机数作为主密钥;
密钥生成设备根据主密钥和中间参数得到系统公钥。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,密钥协商方法包括:
密钥生成设备从中间参数指示的有限域中选取第一随机数;
密钥生成设备根据系统参数、第一用户设备的标识以及第一随机数,生成第一用户设备的公钥;
密钥生成设备根据系统参数、主密钥、第一用户设备的公钥以及第一随机数,生成第一用户设备的私钥。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,密钥协商方法包括:
密钥生成设备从中间参数指示的有限域中选取第二随机数;
密钥生成设备根据系统参数、第二用户设备的标识以及第二随机数,生成第二用户设备的公钥;
密钥生成设备根据系统参数、主密钥、第二用户设备的公钥以及第二随机数生成第二用户设备的私钥。
第二方面,提供一种密钥协商方法,具体包括如下步骤:
第一用户设备接收密钥生成设备发送的系统参数,其中,系统参数包括椭圆曲线参数、中间参数和系统公钥,其中,中间参数用于指示椭圆曲线参数限定的有限域,系统公钥用于第一用户设备与第二用户设备进行密钥协商;
第一用户设备接收密钥生成设备发送的第一用户设备的公钥和私钥,并且对第一用户设备的公钥和私钥进行解密,其中,第一用户设备的公钥和私钥经过同态加密,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
第一用户设备根据系统参数以及第一用户设备的公钥和私钥,生成第一签名消息;
第一用户设备将第一签名消息经过同态加密发送给第二用户设备,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
第一用户设备接收第二用户设备发送的第二签名消息,并且对第二签名消息进行解密,其中,第二签名消息经过同态加密,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
若第一用户设备根据第二签名消息和系统参数验证第二用户设备的身份合法,则第一用户设备根据第二签名消息和系统参数,得到与第二用户设备进行通信的共享密钥。
在该实现方式中,在该实现方式中,在密钥生成设备将第一用户设备的公钥和私钥发送给第一用户设备时,在第一用户设备将第一签名消息发送给第二用户设备时,以及在第二用户设备将第二签名消息发送给第一用户设备时,均进行了同态加密。而非如BNN-IBS中所描述的:在PKG设定系统参数时,在PKG为UE1和UE2分配用户私钥时,以及在UE1和UE2进行签名时均采用哈希函数进行加密。同态加密可以抵抗篡改数据的攻击,其加密程度比哈希函数的加密程度更高,提高了加密的复杂程度。因此,本发明的实施例提供的密钥协商方法解决了将BNN-IBS身份签名协议应用于D2D无线通信网络中进行密钥协商时加密程度低的问题。另外,使用同态加密与哈希运算相比,通信与计算开销较小,降低了计算的复杂度。
结合第二方面,在第一种可能的实现方式中,密钥协商方法包括:
第一用户设备从中间参数指示的有限域中选取第三随机数和第四随机数;
第一用户设备根据系统参数、第一用户设备的公钥和私钥以及第三随机数和第四随机数,生成第一签名消息。
结合第二方面,在第二种可能的实现方式中,密钥协商方法包括:
若系统参数和第二签名消息中所包含的参数之间满足预设的等式关系,则确定第二用户设备的身份合法。
结合第二方面的第一种可能的实现方式,在第三种可能的实现方式中,密钥协商方法包括:
第一用户设备根据第三随机数、第二签名消息和系统参数,得到与第二用户设备进行通信的共享密钥。
第三方面,提供一种密钥协商方法,具体包括如下步骤:
第二用户设备接收密钥生成设备发送的系统参数,其中,系统参数包括椭圆曲线参数、中间参数、系统公钥,中间参数用于指示椭圆曲线参数限定的有限域,系统公钥用于第二用户设备与第一用户设备进行密钥协商;
第二用户设备接收第一用户设备发送的第一签名消息,并且对第一签名消息进行解密,其中,第一签名消息经过同态加密,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
第二用户设备接收密钥生成设备发送的第二用户设备的公钥和私钥,并且对第二用户设备的公钥和私钥进行解密,其中,第二用户设备的公钥和私钥经过同态加密,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
若第二用户设备根据第一签名消息和系统参数验证第一用户设备的身份合法,则第二用户设备根据系统参数、第二用户设备的公钥和私钥,生成第二签名消息;
第二用户设备将第二签名消息经过同态加密发送给第一用户设备,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
第二用户设备根据第一签名消息和系统参数,得到与第一用户设备进行通信的共享密钥。
在该实现方式中,在密钥生成设备将第二用户设备的公钥和私钥发送给第二用户设备时,在第一用户设备将第一签名消息发送给第二用户设备时,以及在第二用户设备将第二签名消息发送给第一用户设备时,均进行了同态加密。而非如BNN-IBS中所描述的:在PKG设定系统参数时,在PKG为UE1和UE2分配用户私钥时,以及在UE1和UE2进行签名时均采用哈希函数进行加密。同态加密可以抵抗篡改数据的攻击,其加密程度比哈希函数的加密程度更高,提高了加密的复杂程度。因此,本发明的实施例提供的密钥协商方法解决了将BNN-IBS身份签名协议应用于D2D无线通信网络中进行密钥协商时加密程度低的问题。另外,使用同态加密与哈希运算相比,通信与计算开销较小,降低了计算的复杂度。
结合第三方面,在第一种可能的实现方式中,密钥协商方法包括:
第二用户设备从中间参数指示的有限域中选取第五随机数和第六随机数;
第二用户设备根据系统参数、第二用户设备的公钥和私钥以及第五随机数和第六随机数,生成第二签名消息。
结合第三方面,在第二种可能的实现方式中,密钥协商方法包括:
若系统参数和第一签名消息中所包含的参数之间满足预设的等式关系,则确定第一用户设备的身份合法。
结合第三方面的第一种可能的实现方式,在第三种可能的实现方式中,密钥协商方法包括:
第二用户设备根据第五随机数、第一签名消息和系统参数,得到与第一用户设备进行通信的共享密钥。
第四方面,提供一种密钥生成设备,用于执行第一方面或第一方面中可能的实现方式中所述的密钥协商方法,包括:
处理单元,用于根据预设的椭圆曲线参数,生成系统参数以及主密钥,其中,系统参数包括椭圆曲线参数、中间参数和系统公钥,中间参数用于指示椭圆曲线参数限定的有限域,系统公钥用于第一用户设备与第二用户设备进行密钥协商;
发送单元,用于广播系统参数;
处理单元,还用于根据系统参数、主密钥和第一用户设备的标识,生成第一用户设备的公钥和私钥;
发送单元,还用于将第一用户设备的公钥和私钥经过同态加密发送给第一用户设备,用于第一用户设备与第二用户设备进行密钥协商,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
处理单元,还用于根据系统参数、主密钥和第二用户设备的标识,生成第二用户设备的公钥和私钥;
发送单元,还用于将第二用户设备的公钥和私钥经过同态加密发送给第二用户设备,用于第二用户设备与第一用户设备进行密钥协商,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度。
由于本发明中的密钥生成设备可以用于执行第一方面的方法流程,因此,其所能获得的技术效果也可参考第一方面的方法,本发明在此不再赘述。
结合第四方面,在第一种可能的实现方式中,处理单元还用于:
根据椭圆曲线参数和整数得到中间参数;
从中间参数指示的有限域中选取随机数作为主密钥;
根据主密钥和中间参数得到系统公钥。
结合第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,处理单元还用于:
从中间参数指示的有限域中选取第一随机数;
根据系统参数、第一用户设备的标识以及第一随机数,生成第一用户设备的公钥;
根据系统参数、主密钥、第一用户设备的公钥以及第一随机数,生成第一用户设备的私钥。
结合第四方面或第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式,在第三种可能的实现方式中,处理单元还用于:
从中间参数指示的有限域中选取第二随机数;
根据系统参数、第二用户设备的标识以及第二随机数,生成第二用户设备的公钥;
根据系统参数、主密钥、第二用户设备的公钥以及第二随机数生成第二用户设备的私钥。
第五方面,提供一种用户设备,用于执行第二方面或第二方面中可能的实现方式中所述的密钥协商方法,包括:
接收单元,用于接收密钥生成设备发送的系统参数,其中,系统参数包括椭圆曲线参数、中间参数和系统公钥,其中,中间参数用于指示椭圆曲线参数限定的有限域,系统公钥用于用户设备与第二用户设备进行密钥协商;
接收单元,还用于接收密钥生成设备发送的用户设备的公钥和私钥,并且对用户设备的公钥和私钥进行解密,其中,用户设备的公钥和私钥经过同态加密,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
处理单元,用于根据系统参数以及用户设备的公钥和私钥,生成第一签名消息;
发送单元,用于将第一签名消息经过同态加密发送给第二用户设备,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
接收单元,还用于接收第二用户设备发送的第二签名消息,并且对第二签名消息进行解密,其中,第二签名消息经过同态加密,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
处理单元,还用于若根据第二签名消息和系统参数验证第二用户设备的身份合法,则根据第二签名消息和系统参数,得到与第二用户设备进行通信的共享密钥。
由于本发明中的用户设备可以用于执行第二方面的方法流程,因此,其所能获得的技术效果也可参考第二方面的方法,本发明在此不再赘述。
结合第五方面,在第一种可能的实现方式中,处理单元还用于:
从中间参数指示的有限域中选取第三随机数和第四随机数;
根据系统参数、用户设备的公钥和私钥以及第三随机数和第四随机数,生成第一签名消息。
结合第五方面,在第二种可能的实现方式中,处理单元还用于:
若系统参数和第二签名消息中所包含的参数之间满足预设的等式关系,则确定第二用户设备的身份合法。
结合第五方面的第一种可能的实现方式,在第三种可能的实现方式中,处理单元还用于:
根据第三随机数、第二签名消息和系统参数,得到与第二用户设备进行通信的共享密钥。
第六方面,提供一种用户设备,用于执行第三方面或第三方面中可能的实现方式中所述的密钥协商方法,包括:
接收单元,用于接收密钥生成设备发送的系统参数,其中,系统参数包括椭圆曲线参数、中间参数、系统公钥,中间参数用于指示椭圆曲线参数限定的有限域,系统公钥用于用户设备与第一用户设备进行密钥协商;
接收单元,还用于接收第一用户设备发送的第一签名消息,并且对第一签名消息进行解密,其中,第一签名消息经过同态加密,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
接收单元,还用于接收密钥生成设备发送的用户设备的公钥和私钥,并且对用户设备的公钥和私钥进行解密,其中,用户设备的公钥和私钥经过同态加密,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
处理单元,用于若根据第一签名消息和系统参数验证第一用户设备的身份合法,则根据系统参数、用户设备的公钥和私钥,生成第二签名消息;
发送单元,用于将第二签名消息经过同态加密发送给第一用户设备,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
处理单元,还用于根据第一签名消息和系统参数,得到与第一用户设备进行通信的共享密钥。
由于本发明中的用户设备可以用于执行第三方面的方法流程,因此,其所能获得的技术效果也可参考第三方面的方法,本发明在此不再赘述。
结合第六方面,在第一种可能的实现方式中,处理单元还用于:
从中间参数指示的有限域中选取第五随机数和第六随机数;
根据系统参数、用户设备的公钥和私钥以及第五随机数和第六随机数,生成第二签名消息。
结合第六方面,在第二种可能的实现方式中,处理单元还用于:
若系统参数和第一签名消息中所包含的参数之间满足预设的等式关系,则确定第一用户设备的身份合法。
结合第六方面的第一种可能的实现方式,在第三种可能的实现方式中,处理单元还用于:
根据第五随机数、第一签名消息和系统参数,得到与第一用户设备进行通信的共享密钥。
第七方面,提供一种密钥生成设备,用于执行第一方面或第一方面中可能的实现方式中所述的密钥协商方法,包括:处理器、接口电路、存储器和总线;处理器、接口电路、存储器通过总线连接并完成相互间的通信;处理器用于执行存储器中的程序代码以控制接口电路执行以下操作:
处理器,用于根据预设的椭圆曲线参数,生成系统参数以及主密钥,其中,系统参数包括椭圆曲线参数、中间参数和系统公钥,中间参数用于指示椭圆曲线参数限定的有限域,系统公钥用于第一用户设备与第二用户设备进行密钥协商;
接口电路,用于广播系统参数;
处理单元,还用于根据系统参数、主密钥和第一用户设备的标识,生成第一用户设备的公钥和私钥;
接口电路,还用于将第一用户设备的公钥和私钥经过同态加密发送给第一用户设备,用于第一用户设备与第二用户设备进行密钥协商,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
处理器,还用于根据系统参数、主密钥和第二用户设备的标识,生成第二用户设备的公钥和私钥;
接口电路,还用于将第二用户设备的公钥和私钥经过同态加密发送给第二用户设备,用于第二用户设备与第一用户设备进行密钥协商,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度。
由于本发明中的密钥生成设备可以用于执行第一方面的方法流程,因此,其所能获得的技术效果也可参考第一方面的方法,本发明在此不再赘述。
结合第七方面,在第一种可能的实现方式中,处理器还用于:
根据椭圆曲线参数和整数得到中间参数;
从中间参数指示的有限域中选取随机数作为主密钥;
根据主密钥和中间参数得到系统公钥。
结合第七方面或第七方面的第一种可能的实现方式,在第二种可能的实现方式中,处理器还用于:
从中间参数指示的有限域中选取第一随机数;
根据系统参数、第一用户设备的标识以及第一随机数,生成第一用户设备的公钥;
根据系统参数、主密钥、第一用户设备的公钥以及第一随机数,生成第一用户设备的私钥。
结合第七方面或第七方面的第一种可能的实现方式或第七方面的第二种可能的实现方式,在第三种可能的实现方式中,处理器还用于:
从中间参数指示的有限域中选取第二随机数;
根据系统参数、第二用户设备的标识以及第二随机数,生成第二用户设备的公钥;
根据系统参数、主密钥、第二用户设备的公钥以及第二随机数生成第二用户设备的私钥。
第八方面,提供一种用户设备,用于执行第二方面或第二方面中可能的实现方式中所述的密钥协商方法,包括:处理器、第一接口电路、第二接口电路、存储器和总线;处理器、第一接口电路、第二接口电路、存储器通过总线连接并完成相互间的通信;处理器用于执行存储器中的程序代码以控制第一接口电路和第二接口电路执行以下操作:
第一接口电路,用于接收密钥生成设备发送的系统参数,其中,系统参数包括椭圆曲线参数、中间参数和系统公钥,其中,中间参数用于指示椭圆曲线参数限定的有限域,系统公钥用于用户设备与第二用户设备进行密钥协商;
第一接口电路,还用于接收密钥生成设备发送的用户设备的公钥和私钥,并且对用户设备的公钥和私钥进行解密,其中,用户设备的公钥和私钥经过同态加密,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
处理器,用于根据系统参数以及用户设备的公钥和私钥,生成第一签名消息;
第二接口电路,用于将第一签名消息经过同态加密发送给第二用户设备,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
第一接口电路,还用于接收第二用户设备发送的第二签名消息,并且对第二签名消息进行解密,其中,第二签名消息经过同态加密,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
处理器,还用于若根据第二签名消息和系统参数验证第二用户设备的身份合法,则根据第二签名消息和系统参数,得到与第二用户设备进行通信的共享密钥。
由于本发明中的用户设备可以用于执行第二方面的方法流程,因此,其所能获得的技术效果也可参考第二方面的方法,本发明在此不再赘述。
结合第八方面,在第一种可能的实现方式中,处理器还用于:
从中间参数指示的有限域中选取第三随机数和第四随机数;
根据系统参数、用户设备的公钥和私钥以及第三随机数和第四随机数,生成第一签名消息。
结合第八方面,在第二种可能的实现方式中,处理器还用于:
若系统参数和第二签名消息中所包含的参数之间满足预设的等式关系,则确定第二用户设备的身份合法。
结合第八方面第一种可能的实现方式,在第三种可能的实现方式中,处理器还用于:
根据第三随机数、第二签名消息和系统参数,得到与第二用户设备进行通信的共享密钥。
第九方面,提供一种用户设备,用于执行第三方面或第三方面中可能的实现方式中所述的密钥协商方法,包括:处理器、第一接口电路、第二接口电路、存储器和总线;处理器、第一接口电路、第二接口电路、存储器通过总线连接并完成相互间的通信;处理器用于执行存储器中的程序代码以控制第一接口电路和第二接口电路执行以下操作:
第一接口电路,还用于接收密钥生成设备发送的用户设备的公钥和私钥,并且对用户设备的公钥和私钥进行解密,其中,用户设备的公钥和私钥经过同态加密,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
第一接口电路,用于接收密钥生成设备发送的系统参数,其中,系统参数包括椭圆曲线参数、中间参数、系统公钥,中间参数用于指示椭圆曲线参数限定的有限域,系统公钥用于用户设备与第一用户设备进行密钥协商;
第一接口电路,还用于接收第一用户设备发送的第一签名消息,并且对第一签名消息进行解密,其中,第一签名消息经过同态加密,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
处理器,用于若根据第一签名消息和系统参数验证第一用户设备的身份合法,则根据系统参数、用户设备的公钥和私钥,生成第二签名消息;
第二接口电路,用于将第二签名消息经过同态加密发送给第一用户设备,通过采用同态加密,相比于采用哈希函数进行加密,其加密程度更高,同时通信与计算开销较小,降低了计算的复杂度;
处理器,还用于根据第一签名消息和系统参数,得到与第一用户设备进行通信的共享密钥。
由于本发明中的用户设备可以用于执行第三方面的方法流程,因此,其所能获得的技术效果也可参考第三方面的方法,本发明在此不再赘述。
结合第九方面,在第一种可能的实现方式中,处理器还用于:
从中间参数指示的有限域中选取第五随机数和第六随机数;
根据系统参数、用户设备的公钥和私钥以及第五随机数和第六随机数,生成第二签名消息。
结合第九方面,在第二种可能的实现方式中,处理器还用于:
若系统参数和第一签名消息中所包含的参数之间满足预设的等式关系,则确定第一用户设备的身份合法。
结合第九方面的第一种可能的实现方式,在第三种可能的实现方式中,处理器还用于:
根据第五随机数、第一签名消息和系统参数,得到与第一用户设备进行通信的共享密钥。
第十方面,提供一种密钥协商系统,包括如上述第四方面或第四方面中可能的实现方式中提供的任意一种密钥生成设备,以及如上述第五方面或第五方面中可能的实现方式中提供的任意一种用户设备,以及如上述第六方面或第六方面中可能的实现方式中提供的任意一种用户设备。
或者,包括如上述第七方面或第七方面中可能的实现方式中提供的任意一种密钥生成设备,以及如上述第八方面或第八方面中可能的实现方式中提供的任意一种用户设备,以及如上述第九方面或第九方面中可能的实现方式中提供的任意一种用户设备。
由于本发明实施例提供的密钥协商系统包括如上述第四方面或第四方面中可能的实现方式中提供的任意一种密钥生成设备,以及如上述第五方面或第五方面中可能的实现方式中提供的任意一种用户设备,以及如上述第六方面或第六方面中可能的实现方式中提供的任意一种用户设备,或者,包括如上述第七方面或第七方面中可能的实现方式中提供的任意一种密钥生成设备,以及如上述第八方面或第八方面中可能的实现方式中提供的任意一种用户设备,以及如上述第九方面或第九方面中可能的实现方式中提供的任意一种用户设备,因此,其所能获得的技术效果可参考上述密钥生成设备和用户设备的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为已有技术的BNN-IBS密钥协商方法的流程示意图;
图2为本发明的实施例提供的密钥协商系统的示意图;
图3为本发明的实施例提供的一种密钥协商方法的流程示意图;
图4为本发明的实施例提供的另一种密钥协商方法的流程示意图;
图5为本发明的实施例提供的根据预设的椭圆曲线参数生成系统参数以及主密钥的流程示意图;
图6为本发明的实施例提供的第一签名消息的生成和发送过程中的参数关系示意图;
图7为本发明的实施例提供的eNB生成UE1的公钥和私钥的流程示意图;
图8为本发明的实施例提供的UE1生成第一签名消息的流程示意图;
图9为本发明的实施例提供的eNB生成UE2的公钥和私钥的流程示意图;
图10为本发明的实施例提供的UE2验证UE1的身份是否合法的流程示意图;
图11为本发明的实施例提供的UE2生成第二签名消息的流程示意图;
图12为本发明的实施例提供的UE2得到共享密钥的流程示意图;
图13为本发明的实施例提供的UE1验证UE2的身份是否合法的流程示意图;
图14为本发明的实施例提供的UE1得到共享密钥的流程示意图;
图15为本发明的实施例提供的一种密钥生成设备的结构示意图;
图16为本发明的实施例提供的一种第一用户设备的结构示意图;
图17为本发明的实施例提供的一种第二用户设备的结构示意图;
图18为本发明的实施例提供的另一种密钥生成设备的结构示意图;
图19为本发明的实施例提供的另一种第一用户设备的结构示意图;
图20为本发明的实施例提供的另一种第二用户设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请将围绕可包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
在本发明实施例中,“示例的”一词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本发明实施例既可以应用于时分双工(time division duplexing,TDD)的场景,也可以适用于频分双工(frequency division duplexing,FDD)的场景。
本发明实施例依托无线通信网络中4G网络的场景进行说明,应当指出的是,本发明实施例中的方案还可以应用于其他无线通信网络中,相应的名称也可以用其他无线通信网络中的对应功能的名称进行替代。
参照图2所示,本发明的实施例提供了一种密钥协商系统,应用于现有蜂窝网络覆盖下的D2D通信(蜂窝网络控制下的D2D通信)架构,包括:eNB 21、UE1 22、UE2 23。UE1、UE2为能够进行D2D通信的双方设备。eNB首先需要发现能够进行D2D通信的设备UE1、UE2,与UE1、UE2建立逻辑连接,然后控制UE1、UE2的资源分配,进行资源调度和干扰管理,用户可以获得高质量的通信。
本发明的实施例提供了一种密钥协商方法,参照图3所示,包括以下步骤:
S301、密钥生成设备根据预设的椭圆曲线参数,生成系统参数以及主密钥,其中,系统参数包括椭圆曲线参数、中间参数和系统公钥,中间参数用于指示椭圆曲线参数限定的有限域,系统公钥用于第一用户设备与第二用户设备进行密钥协商。
预设的椭圆曲线参数由韦尔斯特拉斯(英文名称:Weierstrass)方程:y2+a1xy+a3y=x3+a2x2+a4x+a6所确定的平面曲线,称它为椭圆曲线是因为该方程与椭圆的曲线积分比较相似。生成主密钥时可以进行随机生成或者按照预设公式进行生成,本发明不做限定,示例性的,在本发明的实施例中采用随机选取的方式。
第一用户设备和第二用户设备为互相进行密钥协商的双方。
S302、密钥生成设备广播系统参数。
受椭圆曲线参数限定的有限域的影响,攻击者若想获得主密钥需要破解椭圆曲线离散对数困难问题,而目前这个困难问题还没有找到高效的(相当于多项式复杂度的)算法。
S303、第一用户设备接收由密钥生成设备发送的系统参数。
S304、第二用户设备接收由密钥生成设备发送的系统参数。
S305、密钥生成设备根据系统参数、主密钥、第一用户设备的标识,生成第一用户设备的公钥和私钥。
第一用户设备的标识通过第一用户设备向密钥生成设备注册过程中获得。
S306、密钥生成设备将第一用户设备的公钥和私钥经过同态加密发送给第一用户设备,用于第一用户设备与第二用户设备进行密钥协商。
同态加密是基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。
本发明的实施例中的同态加密满足加法同态和乘法同态。其中,加法同态为:如果存在有效算法⊕,E(x+y)=E(x)⊕E(y)或者x+y=D(E(x)⊕E(y))成立,并且不泄漏x和y。乘法同态为:如果存在有效算法×,E(x×y)=E(x)E(y)或者xy=D(E(x)E(y))成立,并且不泄漏x和y。它们的区别和普通的加法乘法的区别类似,只是运算⊕或×为某种有效算法,在加密或解密过程中满足某些条件。采用加法同态替代哈希运算降低了计算复杂度,采用乘法同态加密身份信息提升了身份信息的隐私性,在通信过程中抗篡改数据攻击。
同态加密与哈希函数加密相比,可以有效对抗篡改数据攻击。
S307、第一用户设备接收由密钥生成设备发送的第一用户设备的公钥和私钥,并且对第一用户设备的公钥和私钥进行解密。
S308、第一用户设备根据系统参数以及第一用户设备的公钥和私钥生成第一用户设备的第一签名消息。
S309、第一用户设备将第一签名消息经过同态加密发送给第二用户设备。
S310、第二用户设备接收由第一用户设备所发送的第一签名消息,并且对第一签名消息进行解密。
S311、密钥生成设备根据系统参数、主密钥、第二用户设备的标识,生成第二用户设备的公钥和私钥。
第二用户设备的标识通过第二用户设备向密钥生成设备注册过程中获得。
S312、密钥生成设备将第二用户设备的公钥和私钥经过同态加密发送给第二用户设备,用于第二用户设备与第一用户设备进行密钥协商。
S313、第二用户设备接收由密钥生成设备发送的第二用户设备的公钥和私钥,并且对第二用户设备的公钥和私钥进行解密。
S314、第二用户设备根据第一签名消息和系统参数验证第一用户设备的身份是否合法。如果验证第一用户设备的身份合法,则第二用户设备根据系统参数、第二用户设备的公钥和私钥,生成第二签名消息。
S315、第二用户设备将第二签名消息经过同态加密发送给第一用户设备。
S316、第二用户设备根据第一签名消息和系统参数得到与第一用户设备进行通信的共享密钥。
S317、第一用户设备接收由第二用户设备发送的第二签名消息,并且对第二签名消息进行解密。
S318、第一用户设备根据第二签名消息和系统参数验证第二用户设备的身份是否合法。如果第二用户设备的身份合法,则第一用户设备根据第二签名消息和系统参数得到与第二用户设备进行通信的共享密钥。
本发明的实施例提供的密钥协商方法,在密钥生成设备将第一用户设备的公钥和私钥发送给第一用户设备时,在密钥生成设备将第二用户设备的公钥和私钥发送给第二用户设备时,在第一用户设备将第一签名消息发送给第二用户设备时,以及在第二用户设备将第二签名消息发送给第一用户设备时,均进行了同态加密。而非如BNN-IBS中所描述的:在PKG设定系统参数时,在PKG为UE1和UE2分配用户私钥时,以及在UE1和UE2进行签名时均采用哈希函数进行加密。同态加密可以抵抗篡改数据的攻击,其加密程度比哈希函数的加密程度更高,提高了加密的复杂程度。因此,本发明的实施例提供的密钥协商方法解决了将BNN-IBS身份签名协议应用于D2D无线通信网络中进行密钥协商时加密程度低的问题。另外,使用同态加密与哈希运算相比,通信与计算开销较小,降低了计算的复杂度。
下面以第一用户设备为UE1,第二用户设备为UE2,密钥生成设备PKG为eNB(英文名称:中文名称:)为例对本发明的实施方式进行详细说明。但是,本领域的技术人员可以理解,在部分蜂窝网络覆盖的下的D2D通信模式中,在UE从空闲态(英文名称:idle)向激活态(英文名称:active)转换的场景中,UE应该在有蜂窝网络覆盖时选择eNB作为PKG,在没有蜂窝网络覆盖时,选择可信的第三方作为PKG;在无蜂窝网络覆盖下的D2D通信模式中,UE之间全部选择可信的第三方作为PKG。
本发明的实施例提供了一种密钥协商方法,参照图4所示,包括以下步骤:
S401、UE1与eNB之间建立RRC连接,UE2与eNB之间建立RRC连接。该步骤为可选步骤,主要用于:UE1与eNB之间建立无线连接以及UE2与eNB之间建立无线连接;eNB获取UE1和UE2标识;方便后续互相之间进行参数传输。
S402、eNB根据预设的椭圆曲线参数E(Fp)生成系统参数<E(Fp),p,q,a',r',p',q',P>以及主密钥s,其中,系统参数〈E(Fp),p,q,a',r',p',q',P>包括椭圆曲线参数E(Fp)、中间参数p、q、p'、q'、a'和r'、系统公钥P,其中,q用于指示非零q阶有限域系统公钥用于第一用户设备与第二用户设备进行密钥协商。
具体的,参照图5中所示,步骤S402包括步骤S4021至S4025:
S4021、eNB确定预设的椭圆曲线参数E(Fp)。
eNB根据韦尔斯特拉斯方程:y2+a1xy+a3y=x3+a2x2+a4x+a6所确定的平面曲线,在有限域Fp上选择一个椭圆曲线,示例性的,选择如公式(1)所示的椭圆曲线。
E(Fp):y2=x3+ax+b 公式(1)
其中,a、b同样属于有限域Fp,即a,b∈Fp,且满足4a3+27b2modq≠0,其中,mod为取模运算。
本领域的技术人员可以想到,满足韦尔斯特拉斯方程:y2+a1xy+a3y=x3+a2x2+a4x+a6的其他椭圆曲线同样适用于本发明的实施例。
S4022、eNB根据椭圆曲线参数E(Fp)和整数得到中间参数p、q、p'、q'、a'和r'。
具体的,包括:
eNB椭圆曲线参数E(Fp)得到系统参数<E(Fp),p,q,a',r',p',q',P>的部分中间参数p和q。
设无穷远点与椭圆曲线E(Fp)上的点构成群E/Fp,在群E/Fp上选取一个点p,并由点p生成循环群G1,其中点p的阶为q(对于群中定义的运算,p经过多次运算可以得到此群的单位元,其中运算次数的最小值q称为p的阶),q作为系统参数中的一部分进行广播后,用于指示非零q阶有限域
eNB选取整数得到系统参数<E(Fp),p,q,a',r',p',q',P>的剩余部分中间参数p'、q'、a'、r'。
示例性的,选取整数λ=60,令p'=λ5,q'=λ3,a'=λ2,r'=λ,其中λ值为任意整数值。p'、q'、a'、r'这四个中间参数是进行同态加密过程中,为满足同态加密条件而定义的四个参数。本领域的技术人员可以想到,选择满足同态加密条件的其他方式计算中间参数p'、q'、a'、r'同样适用于本发明的实施例。
选取随机数s时可以进行随机选取或者按照预设公式进行选取,本发明不做限定,在本发明的实施例中采用随机选取的方式。
S4024、eNB根据主密钥s和中间参数p通过公式(2)得到系统公钥P。
P=sp 公式(2)
S4025、eNB最终得到系统参数<E(Fp),p,q,a',r',p',q',P>。
S403、eNB广播系统参数<E(Fp),p,q,a',r',p',q',P>。
受椭圆曲线参数限定的有限域的影响,攻击者若想通过拦截系统参数<E(Fp),p,q,a',r',p',q',P>获得主密钥s需要破解椭圆曲线离散对数困难问题,而目前这个困难问题还没有找到高效的(相当于多项式复杂度的)算法。
S404、UE1接收由eNB所发送的系统参数〈E(Fp),p,q,a',r',p',q',P>。
S405、UE2接收由eNB所发送的系统参数〈E(Fp),p,q,a',r',p',q',P>。
下述步骤S406至步骤S410是UE1的第一签名消息的生成和发送过程。各参数之间关系参照图6中所示。
S406、eNB根据系统参数〈E(Fp),p,q,a',r',p',q',P>、主密钥s、UE1的标识IDUE1,生成UE1的公钥cUE1和私钥(RUE1,dUE1)。具体的,参照图7中所示,步骤S406包括步骤S4061至步骤S4063。
选取第一随机数rUE1时可以进行随机选取或者按照预设公式进行选取,本发明不做限定,在本发明的实施例中采用随机选取的方式。
受椭圆曲线参数限定的有限域的影响,攻击者若想获得第一随机数rUE1同样需要破解椭圆曲线离散对数困难问题。
S4062、eNB根据系统参数〈E(Fp),p,q,a',r',p',q',P>、UE1的标识IDUE1以及第一随机数rUE1,通过公式(3)和公式(4)生成UE1的公钥cUE1。
RUE=rUEp 公式(3)
其中,UE的标识满足UEID∈{0,1}(表示二进制0、1形成的数字串,示例性的,UE1的标识IDUE1可以为101即数字5,UE2的标识IDUE2可以为110即数字6)。eNB可以在步骤S401中获取UE1和UE2的身份信息,也可以在本步骤向UE1和UE2获取身份信息,本发明的实施例不作限定。
另外其中,公式(4)中的点乘符号“·”表示密码学中常用的一种运算,其运算方式与普通的算术乘法不同;公式(4)中的星乘符号“*”表示普通的算术乘法。
S4063、eNB根据系统参数<E(Fp),p,q,a',r',p',q',P>、主密钥s、UE1的公钥cUE1、第一随机数rUE1,通过公式(3)和公式(5)生成UE1的私钥(RUE1,dUE1)。
dUE=rUE+cUEs mod q 公式(5)
具体的,UE1的公钥cUE1和私钥(RUE1,dUE1)的计算方式为:
RUE1=rUE1p 公式(6)
dUE1=rUE1+cUE1s mod q 公式(7)
S407、eNB将UE1的公钥cUE1和私钥(RUE1,dUE1)经过同态加密发送给UE1,用于UE1与UE2进行密钥协商。
受椭圆曲线参数限定的有限域的影响,攻击者若想通过拦截UE1的公钥cUE1和私钥(RUE1,dUE1)获得第一随机数rUE1同样需要破解椭圆曲线离散对数困难问题。
同态加密与哈希函数加密相比,可以有效对抗篡改数据攻击。
S408、UE1接收由eNB发送的该UE1的公钥cUE1和私钥(RUE1,dUE1),并且对UE1的公钥cUE1和私钥(RUE1,dUE1)进行解密。
S409、UE1根据系统参数<E(Fp),p,q,a',r',p',q',P>以及UE1的公钥cUE1和私钥(RUE1,dUE1),生成UE1的第一签名消息<CUE1,EUE1,RUE1,YUE1,ZUE1>。具体的,参照图8中所示,步骤S409包括步骤S4091至步骤S4092。
选取第三随机数xUE1或第四随机数yUE1时可以进行随机选取或者按照预设公式进行选取,本发明不做限定,在本发明的实施例中采用随机选取的方式。
S4092、UE1根据系统参数<E(Fp),p,q,a',r',p',q',P>、第一用户设备的公钥cUE1和私钥(RUE1,dUE1)以及第三随机数xUE1和第四随机数xUE1,通过公式(9)至公式(12)生成第一签名消息<CUE1,EUE1,RUE1,YUE1,ZUE1>中的EUE1、YUE1、ZUE1。第一签名消息<CUE1,EUE1,RUE1,YUE1,ZUE1>中的cUE1、RUE1未经运算,直接来自UE1的公钥cUE1和私钥(RUE1,dUE1)。
EUE1=xUE1p 公式(9)
YUE1=yUE1p 公式(10)
hUE1=IDUE1+EUE1+RUE1+YUE1+a'·r'+p'*q', 公式(11)
ZUE1=yUE1+hUE1dUE1 mod q 公式(12)
S410、UE1将第一签名消息<CUE1,EUE1,RUE1,YUE1,ZUE1>经过同态加密发送给UE2。
受椭圆曲线参数限定的有限域的影响,攻击者若想通过拦截第一签名消息<CUE1,EUE1,RUE1,YUE1,ZUE1>获得第三随机数xUE1和第四随机数yUE1同样需要破解椭圆曲线离散对数困难问题。
S411、UE2接收由UE1所发送的第一签名消息〈CUE1,EUE1,RUE1,YUE1,ZUE1>,并且对第一签名消息<CUE1,EUE1,RUE1,YUE1,ZUE1>进行解密。
S412、eNB根据系统参数<E(Fp),p,q,a',r',p',q',P>、主密钥s、UE2的标识IDUE2,生成UE2的公钥cUE2和私钥(RUE2,dUE2),具体的,参照图9中所示,步骤S412包括步骤S4121至步骤S4123。
选取第二随机数rUE2时可以进行随机选取或者按照预设公式进行选取,本发明不做限定,在本发明的实施例中采用随机选取的方式。
受椭圆曲线参数限定的有限域的影响,攻击者若想获得第二随机数rUE2同样需要破解椭圆曲线离散对数困难问题。
S4122、eNB根据系统参数〈E(Fp),p,q,a',r',p',q',P>、UE2的标识IDUE2以及第二随机数rUE2,通过公式(3)和公式(4)生成UE2的公钥cUE2。
eNB可以在步骤S401中获取UE1和UE2的身份信息,也可以在本步骤向UE1和UE2获取身份信息,本发明的实施例不作限定。
S4123、eNB根据系统参数〈E(Fp),p,q,a',r',p',q',P>、主密钥s、UE2的公钥cUE2、第二随机数rUE2,通过公式(3)和公式(5)生成UE2的私钥(RUE2,dUE2)。
具体的,UE2的公钥cUE2和私钥(RUE2,dUE2)的计算方式为:
RUE2=rUE2p 公式(13)
dUE2=rUE2+cUE2s mod q 公式(14)
S413、eNB将UE2的公钥cUE2和私钥(RUE2,dUE2)经过同态加密发送给UE2。
受椭圆曲线参数限定的有限域的影响,攻击者若想通过拦截UE2的私钥(RUE2,dUE2)获得第二随机数rUE2同样需要破解椭圆曲线离散对数困难问题。
S414、UE2接收由eNB发送的该UE2的公钥cUE2和私钥(RUE2,dUE2),并且对UE2的公钥cUE2和私钥(RUE2,dUE2)进行解密。
S415、UE2根据第一签名消息〈CUE1,EUE1,RUE1,YUE1,ZUE1>和系统参数<E(Fp),p,q,a',r',p',q',P>验证UE1的身份是否合法。如果验证UE1的身份合法,则进行步骤S416,否则直接结束。
具体的,若系统参数〈E(Fp),p,q,a',r',p',q',P>和第一签名消息<CUE1,EUE1,RUE1,YUE1,ZUE1>中所包含的参数之间满足预设的等式关系,则确定UE1的身份合法,参照图10所示,步骤S415包括步骤S4151至S4153:
S4151、UE2按照公式(16)解密计算出D(cUE1);
S4152、UE2按照公式(17)解密计算出D(hUE1):
D(hUE1)=(cUE1+EUE1+RUE1+YUE1)mod p'mod a' 公式(17)
S4153、UE2通过判断等式(18)是否成立验证UE1的身份是否合法,若等式成立则说明UE1身份合法,通过身份验证,进行步骤S416;否则,则说明UE1身份不合法,不能通过身份验证,则丢弃UE1的第一签名消息<CUE1,EUE1,RUE1,YUE1,ZUE1>并拒绝与UE1进行会话,直接结束。
ZUE1p=YUE1+D(hUE1)(RUE1+D(cUE1)P) 公式(18)
S416、UE2根据系统参数〈E(Fp),p,q,a',r',p',q',P>、UE2的公钥cUE2和私钥(RUE2,dUE2),生成第二签名消息〈CUE2,EUE2,RUE2,YUE2,ZUE2>。具体的,参照图11中所示,包括步骤S4161至步骤S4162:
选取第五随机数xUE2或第六随机数yUE2时可以进行随机选取或者按照预设公式进行选取,本发明不做限定,在本发明的实施例中采用随机选取的方式。
S4162、UE2根据系统参数〈E(Fp),p,q,a',r',p',q',P>、第二用户设备的公钥cUE2和私钥(RUE2,dUE2)以及第五随机数xUE2和第六随机数xUE2,通过公式(19)至公式(22)生成第二签名消息<CUE2,EUE2,RUE2,YUE2,ZUE2>中的EUE2、YUE2、ZUE2。第二签名消息<CUE2,EUE2,RUE2,YUE2,ZUE2>中的cUE2、RUE2未经运算,直接来自UE2的公钥cUE2和私钥(RUE2,dUE2)。
EUE2=xUE2p 公式(19)
YUE2=yUE2p 公式(20)
hUE2=IDUE2+EUE2+RUE2+YUE2+a'·r'+p'*q', 公式(21)
ZUE2=yUE2+hUE2dUE2 mod q 公式(22)
S417、UE2将第二签名消息<CUE2,EUE2,RUE2,YUE2,ZUE2>经过同态加密发送给UE1。
受椭圆曲线参数限定的有限域的影响,攻击者若想通过拦截第二签名消息<CUE2,EUE2,RUE2,YUE2,ZUE2>获得第五随机数xUE2和第六随机数yUE2同样需要破解椭圆曲线离散对数困难问题。
S418、UE2根据第五随机数xUE2、第一签名消息<CUE1,EUE1,RUE1,YUE1,ZUE1>和系统参数<E(Fp),p,q,a',r',p',q',P>得到与UE1进行通信的共享密钥SKUE1UE2。
具体的,参照图12所示,步骤S418包括步骤S4181至S4183:
S4181、UE2根据第五随机数xUE2、第一签名消息<CUE1,EUE1,RUE1,YUE1,ZUE1>中的EUE1,通过公式(23)计算共享密钥的中间参数KUE2UE1。
KUE2UE1=xUE2EUE1。 公式(23)
S4182、UE2根据第一签名消息<CUE1,EUE1,RUE1,YUE1,ZUE1>中的RUE1、cUE1以及系统参数<E(Fp),p,q,a',r',p',q',P>,通过公式(4)逆推出UE1的标识IDUE1,具体的,参照公式(24)。
S4183、UE2根据UE2的标识IDUE2、UE1的标识IDUE1、中间参数KUE2UE1以及系统参数<E(Fp),p,q,a',r',p',q',P>,通过公式(25)得到与UE1进行通信的共享密钥SKUE1UE2。
SKUE1UE2=IDUE1+IDUE2+KUE2UE1+a'·r'+p'*q' 公式(25)
S419、UE1接收由UE2所发送的第二签名消息<CUE2,EUE2,RUE2,YUE2,ZUE2>,并且对第二签名消息<CUE2,EUE2,RUE2,YUE2,ZUE2>进行解密。
S420、UE1根据第二签名消息<CUE2,EUE2,RUE2,YUE2,ZUE2>、系统参数<E(Fp),p,q,a',r',p',q',P>验证UE2的身份是否合法。
具体的,若系统参数<E(Fp),p,q,a',r',p',q',P>和第二签名消息<CUE2,EUE2,RUE2,YUE2,ZUE2>中所包含的参数之间满足预设的等式关系,则确定UE1的身份合法,参照图13所示,步骤S420包括步骤S4201至S4203:
S4201、UE1按照公式(26)解密计算出D(cUE2);
S4202、UE1按照公式(27)解密计算出D(hUE2):
D(hUE2)=(cUE2+EUE2+RUE2+YUE2)mod p'mod a' 公式(27)
S4203、UE1通过判断等式(28)是否成立验证UE2的身份是否合法,若等式成立则说明UE2身份合法,通过身份验证,进行步骤S421;否则,则说明UE2身份不合法,不能通过身份验证,则丢弃UE2的第二签名消息<CUE2,EUE2,RUE2,YUE2,ZUE2>并拒绝与UE2进行会话,直接结束。
ZUE2p=YUE2+D(hUE2)(RUE2+D(cUE2)P) 公式(28)
S421、如果UE2的身份合法,则UE1根据第三随机数xUE1、第二签名消息<CUE2,EUE2,RUE2,YUE2,ZUE2>和系统参数<E(Fp),p,q,a',r',p',q',P>得到与UE2进行通信的共享密钥SKUE1UE2,如果UE2的身份不合法,则丢弃第二签名消息。
具体的,参照图14中所示,步骤S421包括步骤S4211至S4213:
S4211、UE1根据第三随机数xUE1、第二签名消息<CUE2,EUE2,RUE2,YUE2,ZUE2>中的EUE2,通过公式(29)计算共享密钥的中间参数KUE1UE2。
KUE1UE2=xUE1EUE2。 公式(29)
S4212、UE1根据第二签名消息<CUE2,EUE2,RUE2,YUE2,ZUE2>中的RUE2、cUE2以及系统参数<E(Fp),p,q,a',r',p',q',P>,通过公式(4)逆推出UE2的标识IDUE2,具体的,参照公式(30)。
S4213、UE1根据UE1的标识IDUE1、UE2的标识IDUE2、中间参数KUE1UE2以及系统参数<E(Fp),p,q,a',r',p',q',P>,通过公式(31)得到与UE2进行通信的共享密钥SKUE2UE1。
SKUE2UE1=IDUE1+IDUE2+KUE1UE2+a'·r'+p'*q' 公式(31)
特别地,步骤S421中计算得到的共享密钥SKUE2UE1与步骤S418中计算得到的共享密钥SKUE1UE2相等,即SKUE2UE1=SKUE1UE2。
本发明的实施例提供的密钥协商方法,在eNB将UE1的公钥和私钥发送给UE1时,在eNB将UE2的公钥和私钥发送给UE2时,在UE1将第一签名消息发送给UE2时,以及在UE2将第二签名消息发送给UE1时,均进行了同态加密。而非如BNN-IBS中所描述的在PKG设定系统参数时,在PKG为UE1和UE2分配用户私钥时,以及在UE1和UE2进行签名时均采用哈希函数进行加密。同态加密可以抵抗篡改数据的攻击,其加密程度比哈希函数的加密程度更高,提高了加密的复杂程度。因此,本发明的实施例提供的密钥协商方法解决了将BNN-IBS身份签名协议应用于D2D无线通信网络中进行密钥协商时加密程度低的问题。另外,使用同态加密与哈希运算相比,通信与计算开销较小,降低了计算的复杂度。
本发明提供了一种密钥生成设备,用于执行上述密钥协商方法,参照图15所示,包括:处理单元211、发送单元212。
处理单元211,用于根据预设的椭圆曲线参数,生成系统参数以及主密钥,其中,系统参数包括椭圆曲线参数、中间参数和系统公钥,中间参数用于指示椭圆曲线参数限定的有限域,系统公钥用于第一用户设备与第二用户设备进行密钥协商。
可选的,在一种可能的实现方式中,
处理单元211,用于:根据椭圆曲线参数和整数得到中间参数;从中间参数指示的有限域中选取随机数作为主密钥;根据主密钥和中间参数得到系统公钥。
发送单元212,用于广播系统参数;
另外,处理单元211,还用于根据系统参数、主密钥和第一用户设备的标识,生成第一用户设备的公钥和私钥;
可选的,在一种可能的实现方式中,
处理单元211,用于:从中间参数指示的有限域中选取第一随机数;根据系统参数、第一用户设备的标识以及第一随机数,生成第一用户设备的公钥;根据系统参数、主密钥、第一用户设备的公钥以及第一随机数,生成第一用户设备的私钥。
发送单元212,还用于将第一用户设备的公钥和私钥经过同态加密发送给第一用户设备,用于第一用户设备与第二用户设备进行密钥协商。
处理单元211,还用于根据系统参数、主密钥和第二用户设备的标识,生成第二用户设备的公钥和私钥。
可选的,在一种可能的实现方式中,
处理单元211,用于:从中间参数指示的有限域中选取第二随机数;根据系统参数、第二用户设备的标识以及第二随机数,生成第二用户设备的公钥;根据系统参数、主密钥、第二用户设备的公钥以及第二随机数生成第二用户设备的私钥。
发送单元212,还用于将第二用户设备的公钥和私钥经过同态加密发送给第二用户设备,用于第二用户设备与第一用户设备进行密钥协商。
需要说明的是,本实施例中的发送单元212,可以为eNB上具备发送功能的接口电路,如发射机或信息发送接口;处理单元211可以为单独设立的处理器,也可以集成在eNB的某一个处理器中实现,此外,也可以以程序代码的形式存储于eNB的存储器中,由eNB的某一个处理器调用并执行以上处理单元211的功能。这里所述的处理器可以是一个中央处理器(英文全称:central processing unit,英文简称:CPU),或者是特定集成电路(英文全称:application specific integrated circuit,英文简称:ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
由于本发明实施例中的密钥生成设备可以用于执行上述方法流程,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
本发明提供了一种第一用户设备,用于执行上述密钥协商方法,参照图16所示,包括:接收单元221、处理单元222、发送单元223。其中:
接收单元221,用于接收密钥生成设备发送的系统参数,其中,系统参数包括椭圆曲线参数、中间参数和系统公钥,其中,中间参数用于指示椭圆曲线参数限定的有限域,系统公钥用于第一用户设备与第二用户设备进行密钥协商。
接收单元221,还用于接收密钥生成设备发送的第一用户设备的公钥和私钥,并且对第一用户设备的公钥和私钥进行解密,其中,第一用户设备的公钥和私钥经过同态加密。
处理单元222,用于根据系统参数以及第一用户设备的公钥和私钥,生成第一签名消息。
可选的,在一种可能的实现方式中,
处理单元222用于:从中间参数指示的有限域中选取第三随机数和第四随机数;根据系统参数、第一用户设备的公钥和私钥以及第三随机数和第四随机数,生成第一签名消息。
发送单元223,用于将第一签名消息经过同态加密发送给第二用户设备。
接收单元221,还用于接收第二用户设备发送的第二签名消息,并且对第二签名消息进行解密,其中,第二签名消息经过同态加密。
处理单元222,还用于若根据第二签名消息和系统参数验证第二用户设备的身份合法,则根据第二签名消息和系统参数,得到与第二用户设备进行通信的共享密钥。
可选的,在一种可能的实现方式中,
处理单元222用于:若系统参数和第二签名消息中所包含的参数之间满足预设的等式关系,则确定第二用户设备的身份合法;根据第三随机数、第二签名消息和系统参数,得到与第二用户设备进行通信的共享密钥。
需要说明的是,本实施例中的发送单元223,可以为UE上具备发送功能的接口电路,如发射机或信息发送接口;接收单元221可以为UE上具备接收功能的接口电路,如接收机或信息接收接口。处理单元222可以为单独设立的处理器,也可以集成在UE的某一个处理器中实现,此外,也可以以程序代码的形式存储于UE的存储器中,由UE的某一个处理器调用并执行以上处理单元222的功能。这里所述的处理器可以是一个中央处理器(英文全称:central processing unit,英文简称:CPU),或者是特定集成电路(英文全称:applicationspecific integrated circuit,英文简称:ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
由于本发明实施例中的第一用户设备可以用于执行上述方法流程,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
本发明提供了一种第二用户设备,用于执行上述密钥协商方法,参照图17所示,包括:接收单元231、处理单元232、发送单元233。其中:
接收单元231,用于接收密钥生成设备发送的系统参数,其中,系统参数包括椭圆曲线参数、中间参数、系统公钥,中间参数用于指示椭圆曲线参数限定的有限域,系统公钥用于第二用户设备与第一用户设备进行密钥协商。
接收单元231,还用于接收第一用户设备发送的第一签名消息,并且对第一签名消息进行解密,其中,第一签名消息经过同态加密。
接收单元231,还用于接收密钥生成设备发送的第二用户设备的公钥和私钥,并且对第二用户设备的公钥和私钥进行解密,其中,第二用户设备的公钥和私钥经过同态加密。
处理单元232,用于若根据第一签名消息和系统参数验证第一用户设备的身份合法,则根据系统参数、第二用户设备的公钥和私钥,生成第二签名消息。
可选的,在一种可能的实现方式中,
处理单元232,用于:若系统参数和第一签名消息中所包含的参数之间满足预设的等式关系,则确定第一用户设备的身份合法。处理单元232,还用于:从中间参数指示的有限域中选取第五随机数和第六随机数;根据系统参数、第二用户设备的公钥和私钥以及第五随机数和第六随机数,生成第二签名消息。
发送单元233,用于将第二签名消息经过同态加密发送给第一用户设备。
处理单元232,还用于根据第一签名消息和系统参数,得到与第一用户设备进行通信的共享密钥。
可选的,在一种可能的实现方式中,
处理单元232,用于:根据第五随机数、第一签名消息和系统参数,得到与第一用户设备进行通信的共享密钥。
需要说明的是,本实施例中的发送单元233,可以为UE上具备发送功能的接口电路,如发射机或信息发送接口;接收单元231可以为UE上具备接收功能的接口电路,如接收机或信息接收接口。处理单元232可以为单独设立的处理器,也可以集成在UE的某一个处理器中实现,此外,也可以以程序代码的形式存储于UE的存储器中,由UE的某一个处理器调用并执行以上处理单元232的功能。这里所述的处理器可以是一个中央处理器(英文全称:central processing unit,英文简称:CPU),或者是特定集成电路(英文全称:applicationspecific integrated circuit,英文简称:ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
由于本发明实施例中的第二用户设备可以用于执行上述方法流程,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
本发明提供了一种密钥生成设备,用于执行上述密钥协商方法,参照图18所示,该装置可以为eNB,其可以包括:处理器1801、接口电路1802、存储器1803和总线1804;处理器1801、接口电路1802、存储器1803通过总线1804连接并完成相互间的通信。
需要说明的是,这里的处理器1801可以是一个处理器,也可以是多个处理元件的统称。例如,该处理器可以是中央处理器CPU,也可以是特定集成电路ASIC,或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(英文全称:digitalsingnal processor,英文简称:DSP),或,一个或者多个现场可编程门阵列(英文全称:field programmable aate array,英文简称:FPGA)。
存储器1803可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码或接入网管理设备运行所需要参数、数据等。且存储器1803可以包括随机存储器(英文全称:random-access memory,英文简称:RAM),也可以包括非易失性存储器(英文全称:non-volatile memory,英文简称:NVRAM),例如磁盘存储器,闪存(Flash)等。
总线1804可以是工业标准体系结构(英文全称:industry standardarchitecture,英文简称:ISA)总线、外部设备互连(英文全称:peripheral component,英文简称:PCI)总线或扩展工业标准体系结构(英文全称:extended industry standardarchitecture,英文简称:EISA)总线等。该总线1804可以分为地址总线、数据总线、控制总线等。为便于表示,图18中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器1801用于执行存储其中的程序代码,以控制接口电路1802执行上述方法实施例中所提供的方法。
具体的,处理器1801用于执行存储器中的程序执行上述实施例中密钥生成设备的处理单元的功能。
接口电路1802用于执行上述实施例中密钥生成设备的发送单元的功能。
由于本发明实施例中的密钥生成设备可以用于执行上述方法流程,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
本发明提供了一种第一用户设备,用于执行上述密钥协商方法,参照图19所示,该装置可以为UE,其可以包括:处理器1901、第一接口电路1902、第二接口电路1903、存储器1904和总线1905;处理器1901、第一接口电路1902、第二接口电路1903、存储器1904通过总线1905连接并完成相互间的通信。
需要说明的是,这里的处理器1901可以是一个处理器,也可以是多个处理元件的统称。例如,该处理器可以是中央处理器CPU,也可以是特定集成电路ASIC,或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(英文全称:digitalsingnal processor,英文简称:DSP),或,一个或者多个现场可编程门阵列(英文全称:field programmable aate array,英文简称:FPGA)。
存储器1904可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码或接入网管理设备运行所需要参数、数据等。且存储器1904可以包括随机存储器(英文全称:random-access memory,英文简称:RAM),也可以包括非易失性存储器(英文全称:non-volatile memory,英文简称:NVRAM),例如磁盘存储器,闪存(Flash)等。
总线1905可以是工业标准体系结构(英文全称:industry standardarchitecture,英文简称:ISA)总线、外部设备互连(英文全称:peripheral component,英文简称:PCI)总线或扩展工业标准体系结构(英文全称:extended industry standardarchitecture,英文简称:EISA)总线等。该总线1905可以分为地址总线、数据总线、控制总线等。为便于表示,图19中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器1901用于执行存储其中的程序代码,以控制第一接口电路1902和二接口电路1903执行上述方法实施例中所提供的方法。
具体的,处理器1901用于执行存储器中的程序执行上述实施例中第一用户设备的处理单元的功能。
第一接口电路1902用于执行上述实施例中第一用户设备的接收单元的功能。
第二接口电路1903用于执行上述实施例中第一用户设备的发送单元的功能。
由于本发明实施例中的第一用户设备可以用于执行上述方法流程,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
本发明提供了一种第二用户设备,用于执行上述密钥协商方法,参照图20所示,该装置可以为UE,其可以包括:处理器2001、第一接口电路2002、第二接口电路2003、存储器2004和总线2005;处理器2001、第一接口电路2002、第二接口电路2003、存储器2004通过总线2005连接并完成相互间的通信。
需要说明的是,这里的处理器2001可以是一个处理器,也可以是多个处理元件的统称。例如,该处理器可以是中央处理器CPU,也可以是特定集成电路ASIC,或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(英文全称:digitalsingnal processor,英文简称:DSP),或,一个或者多个现场可编程门阵列(英文全称:field programmable aate array,英文简称:FPGA)。
存储器2004可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码或接入网管理设备运行所需要参数、数据等。且存储器2004可以包括随机存储器(英文全称:random-access memory,英文简称:RAM),也可以包括非易失性存储器(英文全称:non-volatile memory,英文简称:NVRAM),例如磁盘存储器,闪存(Flash)等。
总线2005可以是工业标准体系结构(英文全称:industry standardarchitecture,英文简称:ISA)总线、外部设备互连(英文全称:peripheral component,英文简称:PCI)总线或扩展工业标准体系结构(英文全称:extended industry standardarchitecture,英文简称:EISA)总线等。该总线2005可以分为地址总线、数据总线、控制总线等。为便于表示,图20中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器2001用于执行存储其中的程序代码,以控制第一接口电路2002和二接口电路2003执行上述方法实施例中所提供的方法。
具体的,处理器2001用于执行存储器中的程序执行上述实施例中第二用户设备的处理单元的功能。
第一接口电路2002用于执行上述实施例中第二用户设备的接收单元的功能。
第二接口电路2003用于执行上述实施例中第二用户设备的发送单元的功能。
由于本发明实施例中的第二用户设备可以用于执行上述方法流程,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:read-only memory,英文简称:ROM)、随机存取存储器(英文全称:random access memory,英文简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种密钥协商方法,其特征在于,包括:
密钥生成设备根据预设的椭圆曲线参数,生成系统参数以及主密钥,其中,所述系统参数包括所述椭圆曲线参数、中间参数和系统公钥,所述中间参数用于指示所述椭圆曲线参数限定的有限域,所述系统公钥用于第一用户设备与第二用户设备进行密钥协商;
所述密钥生成设备广播所述系统参数;
所述密钥生成设备根据所述系统参数、所述主密钥和所述第一用户设备的标识,生成所述第一用户设备的公钥和私钥;
所述密钥生成设备将所述第一用户设备的公钥和私钥经过同态加密发送给所述第一用户设备,用于所述第一用户设备与所述第二用户设备进行密钥协商;
所述密钥生成设备根据所述系统参数、所述主密钥和所述第二用户设备的标识,生成所述第二用户设备的公钥和私钥;
所述密钥生成设备将所述第二用户设备的公钥和私钥经过同态加密发送给所述第二用户设备,用于所述第二用户设备与所述第一用户设备进行密钥协商;
其中,
所述密钥生成设备根据预设的所述椭圆曲线参数,生成所述系统参数以及主密钥,具体包括:
确定预设的所述椭圆曲线参数E(Fp),
根据韦尔斯特拉斯方程:y2+a1xy+a3y=x3+a2x2+a4x+a6所确定的平面曲线,在有限域Fp上选择公式(1)所示的椭圆曲线,
E(Fp):y2=x3+ax+b 公式(1);
其中,a、b属于有限域Fp,且满足4a3+27b2 mod q≠0;
根据所述椭圆曲线参数E(Fp)得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的部分中间参数p和q,
选取整数得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的剩余部分中间参数p'、q'、a'、r',
根据所述主密钥s和所述中间参数p通过公式(2)得到系统公钥P,
P=sp 公式(2)
得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>;
所述密钥生成设备根据所述系统参数、所述主密钥和所述第一用户设备的标识,生成所述第一用户设备的公钥和私钥具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第一用户设备的标识IDUE1以及所述第一随机数rUE1,通过公式(3)和公式(4)生成所述第一用户设备的公钥cUE1,
RUE1=rUE1p 公式(3)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述第一用户设备的公钥cUE1、所述第一随机数rUE1,通过公式(3)和公式(5)生成所述第一用户设备的私钥(RUE1,dUE1);
dUE1=rUE1+cUE1s mod q 公式(5)
所述密钥生成设备根据所述系统参数、所述主密钥和所述第二用户设备的标识,生成所述第二用户设备的公钥和私钥具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第二用户设备的标识IDUE2以及第二随机数rUE2,通过公式(6)和公式(7)生成所述第二用户设备的公钥cUE2,
其中,RUE2=rUE2p 公式(7)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述第二用户设备的公钥cUE2、所述第二随机数rUE2,通过公式(7)和公式(8)生成所述第二用户设备的私钥(RUE2,dUE2),
dUE2=rUE2+cUE2s mod q 公式(8)。
2.一种密钥协商方法,其特征在于,包括:
第一用户设备接收密钥生成设备发送的系统参数,其中,所述系统参数包括椭圆曲线参数、中间参数和系统公钥,其中,所述中间参数用于指示所述椭圆曲线参数限定的有限域,所述系统公钥用于所述第一用户设备与第二用户设备进行密钥协商;
所述第一用户设备接收所述密钥生成设备发送的所述第一用户设备的公钥和私钥,并且对所述第一用户设备的公钥和私钥进行解密,其中,所述第一用户设备的公钥和私钥经过同态加密;
所述第一用户设备根据所述系统参数以及所述第一用户设备的公钥和私钥,生成第一签名消息;
所述第一用户设备将所述第一签名消息经过同态加密发送给所述第二用户设备;
所述第一用户设备接收所述第二用户设备发送的第二签名消息,并且对所述第二签名消息进行解密,其中,所述第二签名消息经过同态加密;
若所述第一用户设备根据所述第二签名消息和所述系统参数验证所述第二用户设备的身份合法,则所述第一用户设备根据所述第二签名消息和所述系统参数,得到与所述第二用户设备进行通信的共享密钥;
其中,所述第一用户设备的公钥和私钥是由密钥生成设备生成的,具体包括以下步骤,所述密钥生成设备根据预设的所述椭圆曲线参数,生成系统参数以及主密钥,具体包括:确定预设的所述椭圆曲线参数E(Fp),
根据韦尔斯特拉斯方程:y2+a1xy+a3y=x3+a2x2+a4x+a6所确定的平面曲线,在有限域Fp上选择公式(1)所示的椭圆曲线,
E(Fp):y2=x3+ax+b 公式(1);
其中,a、b属于有限域Fp,且满足4a3+27b2mod q≠0;
根据所述椭圆曲线参数E(Fp)得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的部分中间参数p和q,
选取整数得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的剩余部分中间参数p'、q'、a'、r',
根据所述主密钥s和中间参数p通过公式(2)得到系统公钥P,
P=sp 公式(2)
得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>;
所述密钥生成设备根据所述系统参数、所述主密钥和所述第一用户设备的标识,生成所述第一用户设备的公钥和私钥具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第一用户设备的标识IDUE1以及所述第一随机数rUE1,通过公式(3)和公式(4)生成所述第一用户设备的公钥cUE1,
RUE1=rUE1p 公式(3)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述第一用户设备的公钥cUE1、所述第一随机数rUE1,通过公式(3)和公式(5)生成所述第一用户设备的私钥(RUE1,dUE1);
dUE1=rUE1+cUE1s mod q 公式(5)
所述密钥生成设备根据所述系统参数、所述主密钥和所述第二用户设备的标识,生成所述第二用户设备的公钥和私钥具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第二用户设备的标识IDUE2以及第二随机数rUE2,通过公式(6)和公式(7)生成所述第二用户设备的公钥cUE2,
其中,RUE2=rUE2p 公式(7)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述第二用户设备的公钥cUE2、所述第二随机数rUE2,通过公式(7)和公式(8)生成所述第二用户设备的私钥(RUE2,dUE2),
dUE2=rUE2+cUE2s mod q 公式(8);
所述第一用户设备根据系统参数<E(Fp),p,q,a',r',p',q',P>以及所述第一用户设备的公钥cUE1和私钥(RUE1,dUE1),生成所述第一用户设备的第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>,具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第一用户设备的公钥cUE1和私钥(RUE1,dUE1)以及所述第三随机数xUE1和所述第四随机数yUE1,通过公式(9)至公式(12)生成所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的EUE1、YUE1、ZUE1,所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的cUE1、RUE1未经运算,来自所述第一用户设备的公钥cUE1和私钥(RUE1,dUE1),
EUE1=xUE1p 公式(9)
YUE1=yUE1p 公式(10)
hUE1=IDUE1+EUE1+RUE1+YUE1+a'·r'+p'*q' 公式(11)
ZUE1=yUE1+hUE1dUE1mod q 公式(12)
所述第一用户设备根据所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>、所述系统参数<E(Fp),p,q,a',r',p',q',P>验证所述第二用户设备的身份是否合法具体包括:所述第一用户设备按照公式(17)解密计算出D(cUE2),
按照公式(18)解密计算出D(hUE2),
D(hUE2)=(cUE2+EUE2+RUE2+YUE2)mod p' mod a' 公式(18)
通过公式(19)验证所述第二用户设备的身份合法,若等式成立则说明所述第二用户设备身份合法,通过身份验证,
ZUE2p=YUE2+D(hUE2)(RUE2+D(cUE2)P) 公式(19)
其中,所述第二签名消息由所述第二用户设备生成,具体包括以下步骤:
所述第二用户设备根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第二用户设备的公钥cUE2和私钥(RUE2,dUE2)以及所述第五随机数和所述第六随机数xUE2,通过公式(13)至公式(16)生成所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的EUE2、YUE2、ZUE2,所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的cUE2、RUE2未经运算,来自所述第二用户设备的公钥cUE2和私钥(RUE2,dUE2),
EUE2=xUE2p 公式(13)
YUE2=yUE2p 公式(14)
hUE2=IDUE2+EUE2+RUE2+YUE2+a'·r'+p'*q', 公式(15)
ZUE2=yUE2+hUE2dUE2 mod q 公式(16)
所述第一用户设备根据所述第二签名消息和所述系统参数,得到与所述第二用户设备进行通信的共享密钥,具体包括:
根据所述第三随机数xUE1、所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的EUE2,通过公式(20)计算所述共享密钥的中间参数KUE1UE2,
KUE1UE2=xUE1EUE2 公式(20)
根据所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的RUE2、cUE2以及所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>,通过公式(4)逆推出所述第二用户设备的标识IDUE2,具体的,参照公式(21),
根据所述第一用户设备的标识IDUE1、所述第二用户设备的标识IDUE2、所述中间参数KUE1UE2以及所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>,通过公式(22)得到与所述第二用户设备进行通信的共享密钥SKUE2UE1,
SKUE2UE1=IDUE1+IDUE2+KUE1UE2+a'·r'+p'*q' 公式(22)。
3.一种密钥协商方法,其特征在于,包括:
第二用户设备接收密钥生成设备发送的系统参数,其中,所述系统参数包括椭圆曲线参数、中间参数、系统公钥,所述中间参数用于指示所述椭圆曲线参数限定的有限域,所述系统公钥用于所述第二用户设备与第一用户设备进行密钥协商;
所述第二用户设备接收第一用户设备发送的第一签名消息,并且对所述第一签名消息进行解密,其中,所述第一签名消息经过同态加密;
所述第二用户设备接收所述密钥生成设备发送的所述第二用户设备的公钥和私钥,并且对所述第二用户设备的公钥和私钥进行解密,其中,所述第二用户设备的公钥和私钥经过同态加密;
若所述第二用户设备根据所述第一签名消息和所述系统参数验证所述第一用户设备的身份合法,则所述第二用户设备根据所述系统参数、所述第二用户设备的公钥和私钥,生成第二签名消息;
所述第二用户设备将所述第二签名消息经过同态加密发送给所述第一用户设备;
所述第二用户设备根据所述第一签名消息和所述系统参数,得到与所述第一用户设备进行通信的共享密钥;
其中,所述第一用户设备的公钥和私钥是由所述密钥生成设备生成的,具体包括以下步骤,所述密钥生成设备根据预设的所述椭圆曲线参数,生成所述系统参数以及主密钥,具体包括:确定预设的所述椭圆曲线参数E(Fp),
根据韦尔斯特拉斯方程:y2+a1xy+a3y=x3+a2x2+a4x+a6所确定的平面曲线,在有限域Fp上选择公式(1)所示的椭圆曲线,
E(Fp):y2=x3+ax+b 公式(1);
其中,a、b属于有限域Fp,且满足4a3+27b2mod q≠0;
根据所述椭圆曲线参数E(Fp)得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的部分中间参数p和q,
选取整数得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的剩余部分中间参数p'、q'、a'、r',
根据所述主密钥s和所述中间参数p通过公式(2)得到系统公钥P,
P=sp 公式(2)
得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>;
所述密钥生成设备根据所述系统参数、所述主密钥和所述第一用户设备的标识,生成所述第一用户设备的公钥和私钥具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第一用户设备的标识IDUE1以及所述第一随机数rUE1,通过公式(3)和公式(4)生成所述第一用户设备的公钥cUE1,
RUE1=rUE1p 公式(3)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述第一用户设备的公钥cUE1、所述第一随机数rUE1,通过公式(3)和公式(5)生成所述第一用户设备的私钥(RUE1,dUE1),
dUE1=rUE1+cUE1s mod q 公式(5);
所述密钥生成设备根据所述系统参数、所述主密钥和所述第二用户设备的标识,生成所述第二用户设备的公钥和私钥具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第二用户设备的标识IDUE2以及第二随机数rUE2,通过公式(6)和公式(7)生成所述第二用户设备的公钥cUE2,
其中,RUE2=rUE2p 公式(7)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述第二用户设备的公钥cUE2、所述第二随机数rUE2,通过公式(7)和公式(8)生成所述第二用户设备的私钥(RUE2,dUE2),
dUE2=rUE2+cUE2s mod q 公式(8);
所述第二用户设备根据所述系统参数、所述第二用户设备的公钥和私钥,生成所述第二签名消息,具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第二用户设备的公钥cUE2和私钥(RUE2,dUE2)以及所述第五随机数xUE2和所述第六随机数xUE2,通过公式(19)至公式(22)生成所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的EUE2、YUE2、ZUE2,所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的cUE2、RUE2未经运算,来自所述第二用户设备的公钥cUE2和私钥(RUE2,dUE2),
EUE2=xUE2p 公式(23)
YUE2=yUE2p 公式(24)
hUE2=IDUE2+EUE2+RUE2+YUE2+a'·r'+p'*q' 公式(25)
ZUE2=yUE2+hUE2dUE2 mod q 公式(26)
所述第二用户设备根据所述第一签名消息和所述系统参数验证所述第一用户设备的身份合法具体包括:所述第二用户设备按照公式(27)解密计算出D(cUE1),
按照公式(28)解密计算出D(hUE1),
D(hUE1)=(cUE1+EUE1+RUE1+YUE1)mod p' mod a' 公式(28)
通过公式(29)验证所述第一用户设备的身份合法,若等式成立则说明所述第一用户设备身份合法,通过身份验证,
ZUE1p=YUE1+D(hUE1)(RUE1+D(cUE1)P) 公式(29)
其中,所述第一签名消息由所述第一用户设备生成,具体包括以下步骤:从所述中间参数q指示的非零q阶有限域中选取的第三随机数和第四随机数所述第一用户设备根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第一用户设备的公钥cUE1和私钥(RUE1,dUE1)以及所述第三随机数xUE1和所述第四随机数xUE1,通过公式(9)至公式(12)生成所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的EUE1、YUE1、ZUE1,所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的cUE1、RUE1未经运算,来自所述第一用户设备的公钥cUE1和私钥(RUE1,dUE1),
EUE1=xUE1p 公式(9)
YUE1=yUE1p 公式(10)
hUE1=IDUE1+EUE1+RUE1+YUE1+a'·r'+p'*q', 公式(11)
ZUE1=yUE1+hUE1dUE1 mod q 公式(12)
所述第二用户设备根据所述第一签名消息和所述系统参数,得到与所述第一用户设备进行通信的共享密钥,具体包括:
根据所述第五随机数xUE2、所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的EUE1,通过公式(30)计算所述共享密钥的中间参数KUE2UE1,
KUE2UE1=xUE2EUE1 公式(30)
根据所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的RUE1、cUE1以及所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>,通过公式(4)逆推出所述第一用户设备的标识IDUE1,具体的,参照公式(31),
根据所述第二用户设备的标识IDUE2、所述第一用户设备的标识IDUE1、所述中间参数KUE2UE1以及所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>,通过公式(32)得到与所述第一用户设备进行通信的共享密钥SKUE1UE2,
SKUE1UE2=IDUE1+IDUE2+KUE2UE1+a'·r'+p'*q' 公式(32)。
4.一种密钥生成设备,其特征在于,包括:
处理单元,用于根据预设的椭圆曲线参数,生成系统参数以及主密钥,其中,所述系统参数包括所述椭圆曲线参数、中间参数和系统公钥,所述中间参数用于指示所述椭圆曲线参数限定的有限域,所述系统公钥用于第一用户设备与第二用户设备进行密钥协商;
发送单元,用于广播所述系统参数;
所述处理单元,还用于根据所述系统参数、所述主密钥和所述第一用户设备的标识,生成所述第一用户设备的公钥和私钥;
所述发送单元,还用于将所述第一用户设备的公钥和私钥经过同态加密发送给所述第一用户设备,用于所述第一用户设备与所述第二用户设备进行密钥协商;
所述处理单元,还用于根据所述系统参数、所述主密钥和所述第二用户设备的标识,生成所述第二用户设备的公钥和私钥;
所述发送单元,还用于将所述第二用户设备的公钥和私钥经过同态加密发送给所述第二用户设备,用于所述第二用户设备与所述第一用户设备进行密钥协商;
所述处理单元,还用于根据预设的所述椭圆曲线参数,生成所述系统参数以及所述主密钥,具体包括:
确定预设的所述椭圆曲线参数E(Fp),
根据韦尔斯特拉斯方程:y2+a1xy+a3y=x3+a2x2+a4x+a6所确定的平面曲线,在有限域Fp上选择公式(1)所示的椭圆曲线,
E(Fp):y2=x3+ax+b 公式(1);
其中,a、b属于有限域Fp,且满足4a3+27b2mod q≠0,
根据所述椭圆曲线参数E(Fp)得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的部分中间参数p和q,
选取整数得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的剩余部分中间参数p'、q'、a'、r',
根据所述主密钥s和所述中间参数p通过公式(2)得到所述系统公钥P,
P=sp 公式(2)
得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>;
所述处理单元,还用于根据所述系统参数、所述主密钥和所述第一用户设备的标识,生成所述第一用户设备的公钥和私钥,具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第一用户设备的标识IDUE1以及所述第一随机数rUE1,通过公式(3)和公式(4)生成所述第一用户设备的公钥cUE1,
RUE1=rUE1p 公式(3)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述第一用户设备的公钥cUE1、所述第一随机数rUE1,通过公式(3)和公式(5)生成所述第一用户设备的私钥(RUE1,dUE1);
dUE1=rUE1+cUE1s mod q 公式(5)
所述处理单元,还用于根据所述系统参数、所述主密钥和所述第二用户设备的标识,生成所述第二用户设备的公钥和私钥;具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第二用户设备的标识IDUE2以及第二随机数rUE2,通过公式(6)和公式(7)生成所述第二用户设备的公钥cUE2,
其中,RUE2=rUE2p 公式(7)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述第二用户设备的公钥cUE2、所述第二随机数rUE2,通过公式(7)和公式(8)生成所述第二用户设备的私钥(RUE2,dUE2),
dUE2=rUE2+cUE2s mod q 公式(8)。
5.一种用户设备,其特征在于,包括:
接收单元,用于接收密钥生成设备发送的系统参数,其中,所述系统参数包括椭圆曲线参数、中间参数和系统公钥,其中,所述中间参数用于指示所述椭圆曲线参数限定的有限域,所述系统公钥用于所述用户设备与第二用户设备进行密钥协商;
所述接收单元,还用于接收所述密钥生成设备发送的所述用户设备的公钥和私钥,并且对所述用户设备的公钥和私钥进行解密,其中,所述用户设备的公钥和私钥经过同态加密;
处理单元,还用于根据所述系统参数以及所述用户设备的公钥和私钥,生成第一签名消息;
发送单元,用于将所述第一签名消息经过同态加密发送给所述第二用户设备;
所述接收单元,还用于接收所述第二用户设备发送的第二签名消息,并且对所述第二签名消息进行解密,其中,所述第二签名消息经过同态加密;
所述处理单元,还用于若根据所述第二签名消息和所述系统参数验证所述第二用户设备的身份合法,则根据所述第二签名消息和所述系统参数,得到与所述第二用户设备进行通信的共享密钥;
其中,所述用户设备的公钥和私钥是由所述密钥生成设备生成的,具体包括以下步骤,所述密钥生成设备根据预设的椭圆曲线参数,生成所述系统参数以及主密钥,具体包括:确定预设的椭圆曲线参数E(Fp),
根据韦尔斯特拉斯方程:y2+a1xy+a3y=x3+a2x2+a4x+a6所确定的平面曲线,在有限域Fp上选择公式(1)所示的椭圆曲线,
E(Fp):y2=x3+ax+b 公式(1);
其中,a、b属于有限域Fp,且满足4a3+27b2mod q≠0;
根据所述椭圆曲线参数E(Fp)得到系统参数<E(FP),p,q,a′,r′,p′,q′,P>的部分中间参数p和q,
选取整数得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的剩余部分中间参数p'、q'、a'、r',
根据所述主密钥s和所述中间参数p通过公式(2)得到系统公钥P,
P=sp 公式(2)
得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>;
所述密钥生成设备根据所述系统参数、所述主密钥和所述用户设备的标识,生成所述用户设备的公钥和私钥具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述用户设备的标识IDUE1以及所述第一随机数rUE1,通过公式(3)和公式(4)生成U所述用户设备的公钥cUE1,
RUE1=rUE1p 公式(3)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述用户设备的公钥cUE1、所述第一随机数rUE1,通过公式(3)和公式(5)生成所述用户设备的私钥(RUE1,dUE1),
dUE1=rUE1+cUE1s mod q 公式(5);
所述密钥生成设备根据所述系统参数、所述主密钥和所述第二用户设备的标识,生成所述第二用户设备的公钥和私钥具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第二用户设备的标识IDUE2以及第二随机数rUE2,通过公式(6)和公式(7)生成所述第二用户设备的公钥cUE2,
其中,RUE2=rUE2p 公式(7)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述第二用户设备的公钥cUE2、所述第二随机数rUE2,通过公式(7)和公式(8)生成所述第二用户设备的私钥(RUE2,dUE2),
dUE2=rUE2+cUE2s mod q 公式(8);
所述处理单元,还用于根据所述系统参数以及所述用户设备的公钥和私钥,生成所述第一签名消息,
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述用户设备的公钥cUE1和私钥(RUE1,dUE1)以及所述第三随机数xUE1和所述第四随机数yUE1,通过公式(9)至公式(12)生成所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的EUE1、YUE1、ZUE1,所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的cUE1、RUE1未经运算,来自所述用户设备的公钥cUE1和私钥(RUE1,dUE1);
EUE1=xUE1p 公式(9)
YUE1=yUE1p 公式(10)
hUE1=IDUE1+EUE1+RUE1+YUE1+a'·r'+p'*q' 公式(11)
ZUE1=yUE1+hUE1dUE1mod q 公式(12)
所述处理单元,还用于验证所述第二用户设备的身份是否合法具体包括:按照公式(17)解密计算出D(cUE2),
按照公式(18)解密计算出D(hUE2),
D(hUE2)=(cUE2+EUE2+RUE2+YUE2)mod p'mod a' 公式(18)
通过公式(19)验证所述第二用户设备的身份合法,若等式成立则说明所述第二用户设备身份合法,通过身份验证,
ZUE2p=YUE2+D(hUE2)(RUE2+D(cUE2)P) 公式(19)
其中,所述第二签名消息由所述第二用户设备生成,具体包括以下步骤:
所述第二用户设备根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第二用户设备的公钥cUE2和私钥(RUE2,dUE2)以及所述第五随机数xUE2和所述第六随机数xUE2,通过公式(13)至公式(16)生成所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的EUE2、YUE2、ZUE2,所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的、RUE2未经运算,来自所述第二用户设备的公钥cUE2和私钥(RUE2,dUE2),
EUE2=xUE2p 公式(13)
YUE2=yUE2p 公式(14)
hUE2=IDUE2+EUE2+RUE2+YUE2+a'·r'+p'*q', 公式(15)
ZUE2=yUE2+hUE2dUE2mod q 公式(16)
所述处理单元,还用于根据所述第二签名消息和所述系统参数,得到与所述第二用户设备进行通信的共享密钥,具体包括:
根据所述第三随机数xUE1、所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的EUE2,通过公式(20)计算共享密钥的中间参数KUE1UE2,
KUE1UE2=xUE1EUE2 公式(20)
根据所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的RUE2、cUE2以及所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>,通过公式(4)逆推出所述第二用户设备的标识IDUE2,具体的,参照公式(21),
根据所述用户设备的标识IDUE1、所述第二用户设备的标识IDUE2、所述中间参数KUE1UE2以及系统参数<E(FP),p,q,a′,r′,p′,q′,P>,通过公式(22)得到与所述第二用户设备进行通信的共享密钥SKUE2UE1,
SKUE2UE1=IDUE1+IDUE2+KUE1UE2+a'·r'+p'*q' 公式(22)。
6.一种用户设备,其特征在于,包括:
接收单元,用于接收密钥生成设备发送的系统参数,其中,所述系统参数包括椭圆曲线参数、中间参数、系统公钥,所述中间参数用于指示所述椭圆曲线参数限定的有限域,所述系统公钥用于所述用户设备与第一用户设备进行密钥协商;
所述接收单元,还用于接收第一用户设备发送的第一签名消息,并且对所述第一签名消息进行解密,其中,所述第一签名消息经过同态加密;
所述接收单元,还用于接收所述密钥生成设备发送的所述用户设备的公钥和私钥,并且对所述用户设备的公钥和私钥进行解密,其中,所述用户设备的公钥和私钥经过同态加密;
处理单元,用于根据所述第一签名消息和所述系统参数验证所述第一用户设备的身份合法,则根据所述系统参数、所述用户设备的公钥和私钥,生成第二签名消息;
发送单元,用于将所述第二签名消息经过同态加密发送给所述第一用户设备;
所述处理单元,还用于根据所述第一签名消息和所述系统参数,得到与所述第一用户设备进行通信的共享密钥;
其中,所述第一用户设备的公钥和私钥是由所述密钥生成设备生成的,具体包括以下步骤,所述密钥生成设备根据预设的椭圆曲线参数,生成所述系统参数以及主密钥,具体包括:确定预设的椭圆曲线参数E(Fp),
根据韦尔斯特拉斯方程:y2+a1xy+a3y=x3+a2x2+a4x+a6所确定的平面曲线,在有限域Fp上选择公式(1)所示的椭圆曲线,
E(Fp):y2=x3+ax+b 公式(1);
其中,a、b属于有限域Fp,且满足4a3+27b2mod q≠0;
根据所述椭圆曲线参数E(Fp)得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的部分中间参数p和q,
选取整数得到系统参数<E(FP),p,q,a′,r′,p′,q′,P>的剩余部分中间参数p'、q'、a'、r',
根据所述主密钥s和中间参数p通过公式(2)得到系统公钥P,
P=sp 公式(2)
得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>;
所述密钥生成设备根据所述系统参数、所述主密钥和所述第一用户设备的标识,生成所述第一用户设备的公钥和私钥具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第一用户设备的标识IDUE1以及所述第一随机数rUE1,通过公式(3)和公式(4)生成所述第一用户设备的公钥cUE1,
RUE1=rUE1p 公式(3)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述第一用户设备的公钥cUE1、所述第一随机数rUE1,通过公式(3)和公式(5)生成所述第一用户设备的私钥(RUE1,dUE1),
dUE1=rUE1+cUE1s mod q 公式(5);
所述密钥生成设备根据所述系统参数、所述主密钥和所述用户设备的标识,生成所述用户设备的公钥和私钥具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述用户设备的标识IDUE2以及第二随机数rUE2,通过公式(6)和公式(7)生成所述用户设备的公钥cUE2,
其中,RUE2=rUE2p 公式(7)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述用户设备的公钥cUE2、所述第二随机数rUE2,通过公式(7)和公式(8)生成所述用户设备的私钥(RUE2,dUE2),
dUE2=rUE2+cUE2s mod q 公式(8);
根据所述系统参数、所述用户设备的公钥和私钥,生成所述第二签名消息,具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述用户设备的公钥cUE2和私钥(RUE2,dUE2)以及所述第五随机数xUE2和所述第六随机数xUE2,通过公式(19)至公式(22)生成所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的EUE2、YUE2、ZUE2,所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的cUE2、RUE2未经运算,来自所述用户设备的公钥cUE2和私钥(RUE2,dUE2),
EUE2=xUE2p 公式(23)
YUE2=yUE2p 公式(24)
hUE2=IDUE2+EUE2+RUE2+YUE2+a'·r'+p'*q' 公式(25)
ZUE2=yUE2+hUE2dUE2mod q 公式(26)
根据所述第一签名消息和所述系统参数验证所述第一用户设备的身份合法具体包括:按照公式(27)解密计算出D(cUE1),
按照公式(28)解密计算出D(hUE1),
D(hUE1)=(cUE1+EUE1+RUE1+YUE1)mod p'mod a' 公式(28)
通过公式(29)验证所述第一用户设备的身份合法,若等式成立则说明所述第一用户设备身份合法,通过身份验证,
ZUE1p=YUE1+D(hUE1)(RUE1+D(cUE1)P) 公式(29)
其中,所述第一签名消息由所述第一用户设备生成,具体包括以下步骤:从所述中间参数q指示的非零q阶有限域中选取的第三随机数和第四随机数所述第一用户设备根据系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第一用户设备的公钥cUE1和私钥(RUE1,dUE1)以及所述第三随机数xUE1和所述第四随机数xUE1,通过公式(9)至公式(12)生成所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的EUE1、YUE1、ZUE1,所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的cUE1、RUE1未经运算,来自所述第一用户设备的公钥cUE1和私钥(RUE1,dUE1),
EUE1=xUE1p 公式(9)
YUE1=yUE1p 公式(10)
hUE1=IDUE1+EUE1+RUE1+YUE1+a'·r'+p'*q', 公式(11)
ZUE1=yUE1+hUE1dUE1mod q 公式(12)
所述处理单元,还用于根据所述第一签名消息和所述系统参数,得到与所述第一用户设备进行通信的共享密钥,具体包括:
根据第五随机数xUE2、所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的EUE1,通过公式(30)计算共享密钥的中间参数KUE2UE1,
KUE2UE1=xUE2EUE1 公式(30)
根据所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的RUE1、cUE1以及所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>,通过公式(4)逆推出所述第一用户设备的标识IDUE1,具体的,参照公式(31),
根据所述用户设备的标识IDUE2、所述第一用户设备的标识IDUE1、所述中间参数KUE2UE1以及所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>,通过公式(32)得到与所述第一用户设备进行通信的共享密钥SKUE1UE2,
SKUE1UE2=IDUE1+IDUE2+KUE2UE1+a'·r'+p'*q' 公式(32)。
7.一种密钥生成设备,其特征在于,包括处理器、接口电路、存储器和总线;所述处理器、接口电路、存储器通过所述总线连接并完成相互间的通信;所述处理器,用于根据预设的椭圆曲线参数,生成系统参数以及主密钥,其中,所述系统参数包括所述椭圆曲线参数、中间参数和系统公钥,所述中间参数用于指示所述椭圆曲线参数限定的有限域,所述系统公钥用于第一用户设备与第二用户设备进行密钥协商;
所述接口电路,用于广播所述系统参数;
所述处理器,还用于根据所述系统参数、所述主密钥和所述第一用户设备的标识,生成所述第一用户设备的公钥和私钥;
所述接口电路,还用于将所述第一用户设备的公钥和私钥经过同态加密发送给所述第一用户设备,用于所述第一用户设备与所述第二用户设备进行密钥协商;
所述处理器,还用于根据所述系统参数、所述主密钥和所述第二用户设备的标识,生成所述第二用户设备的公钥和私钥;
所述接口电路,还用于将所述第二用户设备的公钥和私钥经过同态加密发送给所述第二用户设备,用于所述第二用户设备与所述第一用户设备进行密钥协商;
所述处理器,还用于根据预设的所述椭圆曲线参数,生成所述系统参数以及所述主密钥具体包括:
确定预设的所述椭圆曲线参数E(Fp),
根据韦尔斯特拉斯方程:y2+a1xy+a3y=x3+a2x2+a4x+a6所确定的平面曲线,在有限域Fp上选择公式(1)所示的椭圆曲线,
E(Fp):y2=x3+ax+b 公式(1);
其中,a、b属于有限域Fp,且满足4a3+27b2mod q≠0,
根据所述椭圆曲线参数E(Fp)得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的部分中间参数p和q,
选取整数得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的剩余部分中间参数p'、q'、a'、r',
根据所述主密钥s和所述中间参数p通过公式(2)得到所述系统公钥P,
P=sp 公式(2)
得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>;
所述处理器,还用于根据所述系统参数、所述主密钥和所述第一用户设备的标识,生成所述第一用户设备的公钥和私钥,具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第一用户设备的标识IDUE1以及所述第一随机数rUE1,通过公式(3)和公式(4)生成所述第一用户设备的公钥cUE1,
RUE1=rUE1p 公式(3)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述第一用户设备的公钥cUE1、所述第一随机数rUE1,通过公式(3)和公式(5)生成所述第一用户设备的私钥(RUE1,dUE1);
dUE1=rUE1+cUE1s mod q 公式(5)
所述处理器,还用于根据所述系统参数、所述主密钥和所述第二用户设备的标识,生成所述第二用户设备的公钥和私钥,具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第二用户设备的标识IDUE2以及第二随机数rUE2,通过公式(6)和公式(7)生成所述第二用户设备的公钥cUE2,
其中,RUE2=rUE2p 公式(7)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述第二用户设备的公钥cUE2、所述第二随机数rUE2,通过公式(7)和公式(8)生成所述第二用户设备的私钥(RUE2,dUE2),
dUE2=rUE2+cUE2s mod q 公式(8)。
8.一种用户设备,其特征在于,包括处理器、第一接口电路、第二接口电路、存储器和总线;所述处理器、第一接口电路、第二接口电路、存储器通过所述总线连接并完成相互间的通信;所述第一接口电路,用于接收密钥生成设备发送的系统参数,其中,所述系统参数包括椭圆曲线参数、中间参数和系统公钥,其中,所述中间参数用于指示所述椭圆曲线参数限定的有限域,所述系统公钥用于所述用户设备与第二用户设备进行密钥协商;
所述第一接口电路,还用于接收所述密钥生成设备发送的所述用户设备的公钥和私钥,并且对所述用户设备的公钥和私钥进行解密,其中,所述用户设备的公钥和私钥经过同态加密;
所述处理器,用于根据所述系统参数以及所述用户设备的公钥和私钥,生成第一签名消息;
所述第二接口电路,用于将所述第一签名消息经过同态加密发送给第二用户设备;
所述第一接口电路,还用于接收所述第二用户设备发送的第二签名消息,并且对所述第二签名消息进行解密,其中,所述第二签名消息经过同态加密;
所述处理器,还用于若根据所述第二签名消息和所述系统参数验证所述第二用户设备的身份合法,则根据所述第二签名消息和所述系统参数,得到与所述第二用户设备进行通信的共享密钥;
其中,所述用户设备的公钥和私钥是由所述密钥生成设备生成的,具体包括以下步骤,所述密钥生成设备根据预设的椭圆曲线参数,生成所述系统参数以及主密钥,具体包括:确定预设的椭圆曲线参数E(Fp),
根据韦尔斯特拉斯方程:y2+a1xy+a3y=x3+a2x2+a4x+a6所确定的平面曲线,在有限域Fp上选择公式(1)所示的椭圆曲线,
E(Fp):y2=x3+ax+b 公式(1);
其中,a、b属于有限域Fp,且满足4a3+27b2mod q≠0;
根据所述椭圆曲线参数E(Fp)得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的部分中间参数p和q,
选取整数得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的剩余部分中间参数p'、q'、a'、r',
根据所述主密钥s和所述中间参数p通过公式(2)得到所述系统公钥P,
P=sp 公式(2)
得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>;
所述密钥生成设备根据所述系统参数、所述主密钥和所述用户设备的标识,生成所述用户设备的公钥和私钥具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述用户设备的标识IDUE1以及所述第一随机数rUE1,通过公式(3)和公式(4)生成所述用户设备的公钥cUE1,
RUE1=rUE1p 公式(3)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述用户设备的公钥cUE1、所述第一随机数rUE1,通过公式(3)和公式(5)生成所述用户设备的私钥(RUE1,dUE1),
dUE1=rUE1+cUE1s mod q 公式(5);
所述密钥生成设备根据所述系统参数、所述主密钥和所述第二用户设备的标识,生成所述第二用户设备的公钥和私钥具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第二用户设备的标识IDUE2以及第二随机数rUE2,通过公式(6)和公式(7)生成所述第二用户设备的公钥cUE2,
其中,RUE2=rUE2p 公式(7)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述第二用户设备的公钥cUE2、所述第二随机数rUE2,通过公式(7)和公式(8)生成所述第二用户设备的私钥(RUE2,dUE2),
dUE2=rUE2+cUE2s mod q 公式(8);
其中,
所述处理器,还用于根据所述系统参数<E(Fp),p,q,a',r',p',q',P>以及所述用户设备的公钥cUE1和私钥(RUE1,dUE1),生成所述用户设备的第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>,具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述用户设备的公钥cUE1和私钥(RUE1,dUE1)以及所述第三随机数xUE1和所述第四随机数yUE1,通过公式(9)至公式(12)生成所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的EUE1、YUE1、ZUE1,所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的cUE1、RUE1未经运算,来自所述用户设备的公钥cUE1和私钥(RUE1,dUE1);
EUE1=xUE1p 公式(9)
YUE1=yUE1p 公式(10)
hUE1=IDUE1+EUE1+RUE1+YUE1+a'·r'+p'*q' 公式(11)
ZUE1=yUE1+hUE1dUE1mod q 公式(12)
所述处理器,还用于验证所述第二用户设备的身份是否合法具体包括:按照公式(17)解密计算出D(cUE2),
按照公式(18)解密计算出D(hUE2),
D(hUE2)=(cUE2+EUE2+RUE2+YUE2)mod p'mod a' 公式(18)
通过公式(19)验证所述第二用户设备的身份合法,若等式成立则说明所述第二用户设备身份合法,通过身份验证,
ZUE2p=YUE2+D(hUE2)(RUE2+D(cUE2)P) 公式(19)
其中,所述第二签名消息由所述第二用户设备生成,具体包括以下步骤:
所述第二用户设备根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第二用户设备的公钥cUE2和私钥(RUE2,dUE2)以及所述第五随机数xUE2和所述第六随机数xUE2,通过公式(13)至公式(16)生成所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的EUE2、YUE2、ZUE2,所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的、RUE2未经运算,来自所述第二用户设备的公钥cUE2和私钥(RUE2,dUE2),
EUE2=xUE2p 公式(13)
YUE2=yUE2p 公式(14)
hUE2=IDUE2+EUE2+RUE2+YUE2+a'·r'+p'*q', 公式(15)
ZUE2=yUE2+hUE2dUE2mod q 公式(16)
根据所述第二签名消息和所述系统参数,得到与所述第二用户设备进行通信的共享密钥,具体包括:
根据所述第三随机数xUE1、所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的EUE2,通过公式(20)计算共享密钥的中间参数KUE1UE2,
KUE1UE2=xUE1EUE2 公式(20)
根据所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的RUE2、cUE2以及所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>,通过公式(4)逆推出所述第二用户设备的标识IDUE2,具体的,参照公式(21),
根据所述用户设备的标识IDUE1、所述第二用户设备的标识IDUE2、所述中间参数KUE1UE2以及系统参数<E(FP),p,q,a′,r′,p′,q′,P>,通过公式(22)得到与所述第二用户设备进行通信的共享密钥SKUE2UE1,
SKUE2UE1=IDUE1+IDUE2+KUE1UE2+a'·r'+p'*q' 公式(22)。
9.一种用户设备,其特征在于,包括处理器、第一接口电路、第二接口电路、存储器和总线;所述处理器、第一接口电路、第二接口电路、存储器通过所述总线连接并完成相互间的通信;所述第一接口电路,用于接收密钥生成设备发送的系统参数,其中,所述系统参数包括椭圆曲线参数、中间参数、系统公钥,所述中间参数用于指示所述椭圆曲线参数限定的有限域,所述系统公钥用于所述用户设备与第一用户设备进行密钥协商;
所述第一接口电路,还用于接收密钥生成设备发送的所述用户设备的公钥和私钥,并且对所述用户设备的公钥和私钥进行解密,其中,所述用户设备的公钥和私钥经过同态加密;
所述第一接口电路,还用于接收第一用户设备发送的第一签名消息,并且对所述第一签名消息进行解密,其中,所述第一签名消息经过同态加密;
所述处理器,用于若根据所述第一签名消息和所述系统参数验证所述第一用户设备的身份合法,则根据所述系统参数、所述用户设备的公钥和私钥,生成第二签名消息;
所述第二接口电路,用于将所述第二签名消息经过同态加密发送给所述第一用户设备;
所述处理器,还用于根据所述第一签名消息和所述系统参数,得到与所述第一用户设备进行通信的共享密钥;
其中,所述第一用户设备的公钥和私钥是由所述密钥生成设备生成的,具体包括以下步骤,所述密钥生成设备根据预设的所述椭圆曲线参数,生成所述系统参数以及主密钥,具体包括:确定预设的所述椭圆曲线参数E(Fp),
根据韦尔斯特拉斯方程:y2+a1xy+a3y=x3+a2x2+a4x+a6所确定的平面曲线,在有限域Fp上选择公式(1)所示的椭圆曲线,
E(Fp):y2=x3+ax+b 公式(1);
其中,a、b属于有限域Fp,且满足4a3+27b2mod q≠0;
根据所述椭圆曲线参数E(Fp)得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的部分中间参数p和q,
选取整数得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>的剩余部分中间参数p'、q'、a'、r',
根据所述主密钥s和所述中间参数p通过公式(2)得到所述系统公钥P,
P=sp 公式(2)
得到所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>;
所述密钥生成设备根据所述系统参数、所述主密钥和所述第一用户设备的标识,生成所述第一用户设备的公钥和私钥具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第一用户设备的标识IDUE1以及所述第一随机数rUE1,通过公式(3)和公式(4)生成所述第一用户设备的公钥cUE1,
RUE1=rUE1p 公式(3)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述第一用户设备的公钥cUE1、所述第一随机数rUE1,通过公式(3)和公式(5)生成所述第一用户设备的私钥(RUE1,dUE1),
dUE1=rUE1+cUE1s mod q 公式(5);
所述密钥生成设备根据所述系统参数、所述主密钥和所述用户设备的标识,生成所述用户设备的公钥和私钥具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述用户设备的标识IDUE2以及第二随机数rUE2,通过公式(6)和公式(7)生成所述用户设备的公钥cUE2,
其中,RUE2=rUE2p 公式(7)
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述主密钥s、所述用户设备的公钥cUE2、所述第二随机数rUE2,通过公式(7)和公式(8)生成所述用户设备的私钥(RUE2,dUE2),
dUE2=rUE2+cUE2s mod q 公式(8);
根据所述系统参数、所述用户设备的公钥和私钥,生成所述第二签名消息,具体包括:
根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述用户设备的公钥cUE2和私钥(RUE2,dUE2)以及所述第五随机数xUE2和所述第六随机数xUE2,通过公式(19)至公式(22)生成所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的EUE2、YUE2、ZUE2,所述第二签名消息<cUE2,EUE2,RUE2,YUE2,ZUE2>中的cUE2、RUE2未经运算,来自所述用户设备的公钥cUE2和私钥(RUE2,dUE2),
EUE2=xUE2p 公式(23)
YUE2=yUE2p 公式(24)
hUE2=IDUE2+EUE2+RUE2+YUE2+a'·r'+p'*q' 公式(25)
ZUE2=yUE2+hUE2dUE2mod q 公式(26)
根据所述第一签名消息和所述系统参数验证所述第一用户设备的身份合法具体包括:按照公式(27)解密计算出D(cUE1),
按照公式(28)解密计算出D(hUE1),
D(hUE1)=(cUE1+EUE1+RUE1+YUE1)mod p'mod a' 公式(28)
通过公式(29)验证所述第一用户设备的身份合法,若等式成立则说明所述第一用户设备身份合法,通过身份验证,
ZUE1p=YUE1+D(hUE1)(RUE1+D(cUE1)P) 公式(29)
其中,所述第一签名消息由所述第一用户设备生成,具体包括以下步骤:从所述中间参数q指示的非零q阶有限域中选取的第三随机数和第四随机数所述第一用户设备根据所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>、所述第一用户设备的公钥cUE1和私钥(RUE1,dUE1)以及所述第三随机数xUE1和所述第四随机数xUE1,通过公式(9)至公式(12)生成所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的EUE1、YUE1、ZUE1,所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的cUE1、RUE1未经运算,来自所述第一用户设备的公钥cUE1和私钥(RUE1,dUE1),
EUE1=xUE1p 公式(9)
YUE1=yUE1p 公式(10)
hUE1=IDUE1+EUE1+RUE1+YUE1+a'·r'+p'*q', 公式(11)
ZUE1=yUE1+hUE1dUE1mod q 公式(12)
所述处理器,还用于根据所述第一签名消息和所述系统参数,得到与所述第一用户设备进行通信的共享密钥,具体包括:
根据所述第五随机数xUE2、所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的EUE1,通过公式(30)计算共享密钥的中间参数KUE2UE1,
KUE2UE1=xUE2EUE1 公式(30)
根据所述第一签名消息<cUE1,EUE1,RUE1,YUE1,ZUE1>中的RUE1、cUE1以及系统参数<E(FP),p,q,a′,r′,p′,q′,P>,通过公式(4)逆推出所述第一用户设备的标识IDUE1,具体的,参照公式(31),
根据所述用户设备的标识IDUE2、所述第一用户设备的标识IDUE1、所述中间参数KUE2UE1以及所述系统参数<E(FP),p,q,a′,r′,p′,q′,P>,通过公式(32)得到与所述第一用户设备进行通信的共享密钥SKUE1UE2,
SKUE1UE2=IDUE1+IDUE2+KUE2UE1+a'·r'+p'*q' 公式(32)。
10.一种密钥协商系统,包括如权利要求4所述的密钥生成设备、如权利要求5所述的用户设备以及如权利要求6所述的用户设备;
或者,包括如权利要求7所述的密钥生成设备、如权利要求8所述的用户设备以及如权利要求9所述的用户设备。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/076170 WO2017152423A1 (zh) | 2016-03-11 | 2016-03-11 | 密钥协商方法、设备和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107925578A CN107925578A (zh) | 2018-04-17 |
CN107925578B true CN107925578B (zh) | 2020-12-01 |
Family
ID=59790096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680046828.8A Expired - Fee Related CN107925578B (zh) | 2016-03-11 | 2016-03-11 | 密钥协商方法、设备和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107925578B (zh) |
WO (1) | WO2017152423A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109768861B (zh) * | 2019-01-24 | 2021-07-30 | 西安电子科技大学 | 一种海量d2d匿名发现认证与密钥协商方法 |
CN109818744B (zh) * | 2019-02-27 | 2022-11-18 | 矩阵元技术(深圳)有限公司 | 共享秘密密钥生成方法、装置、计算机设备和存储介质 |
CN111835508B (zh) * | 2019-04-23 | 2023-02-28 | 深圳市汇顶科技股份有限公司 | 一种密钥分配部署方法和系统 |
CN116318677A (zh) * | 2020-08-31 | 2023-06-23 | Oppo广东移动通信有限公司 | 一种数据传输方法、客户端、服务端及存储介质 |
CN114362946B (zh) * | 2022-03-10 | 2022-06-07 | 北京得瑞领新科技有限公司 | 密钥协商方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104618103A (zh) * | 2013-11-04 | 2015-05-13 | 华为技术有限公司 | 密钥协商处理方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9252942B2 (en) * | 2012-04-17 | 2016-02-02 | Futurewei Technologies, Inc. | Method and system for secure multiparty cloud computation |
CN103825743A (zh) * | 2014-02-13 | 2014-05-28 | 南京邮电大学 | 一种具有隐私保护功能的数据安全聚合方法 |
CN104917618B (zh) * | 2015-06-02 | 2018-08-14 | 北京航空航天大学 | 基于层次身份基的认证密钥协商方法和系统 |
CN104967517B (zh) * | 2015-07-24 | 2018-03-20 | 电子科技大学 | 一种用于无线传感器的网络数据聚合方法 |
-
2016
- 2016-03-11 WO PCT/CN2016/076170 patent/WO2017152423A1/zh active Application Filing
- 2016-03-11 CN CN201680046828.8A patent/CN107925578B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104618103A (zh) * | 2013-11-04 | 2015-05-13 | 华为技术有限公司 | 密钥协商处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107925578A (zh) | 2018-04-17 |
WO2017152423A1 (zh) | 2017-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3574609B1 (en) | System and method for computing private keys for self certified identity based signature schemes | |
JP7024563B2 (ja) | 秘密かつ相互認証される鍵交換 | |
CN107925578B (zh) | 密钥协商方法、设备和系统 | |
Peng et al. | Efficient and provably secure multireceiver signcryption scheme for multicast communication in edge computing | |
CN112003696B (zh) | Sm9密钥生成方法、系统、电子设备、装置及存储介质 | |
WO2017167771A1 (en) | Handshake protocols for identity-based key material and certificates | |
CN111953479B (zh) | 数据处理的方法及装置 | |
CN107534558B (zh) | 用于保护经由数据总线传输的数据的信息安全的方法以及数据总线系统 | |
US20150134960A1 (en) | Determination of cryptographic keys | |
CN107682152B (zh) | 一种基于对称密码的群组密钥协商方法 | |
JP6592851B2 (ja) | 匿名ブロードキャスト方法、鍵交換方法、匿名ブロードキャストシステム、鍵交換システム、通信装置、プログラム | |
US10630476B1 (en) | Obtaining keys from broadcasters in supersingular isogeny-based cryptosystems | |
Chen | Cryptography standards in quantum time: new wine in old wineskin? | |
Gupta et al. | Enhancement of Security of Diffie-Hellman Key Exchange Protocol using RSA Cryptography. | |
JP6758476B2 (ja) | デバイス間の共通セッション鍵を取得するシステムおよび方法 | |
Wu et al. | An approach of security protection for VSAT network | |
Abd Zaid et al. | Lightweight RSA Algorithm Using Three Prime Numbers | |
CN114070549A (zh) | 一种密钥生成方法、装置、设备和存储介质 | |
Yap et al. | On the security of a lightweight authentication and encryption scheme for mobile ad hoc network | |
Dugardin et al. | A New Fair Identity Based Encryption Scheme | |
Lee et al. | Toward a secure single sign-on mechanism for distributed computer networks | |
CN114640440B (zh) | 一种分布式门限签名的方法和装置 | |
Prasad et al. | A robust secure DS-AKA with mutual authentication for LTE-A | |
CN113422680B (zh) | 数据加密传输系统和数据加密传输方法 | |
Shim | Security analysis of various authentication schemes based on three types of digital signature schemes |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201201 Termination date: 20210311 |
|
CF01 | Termination of patent right due to non-payment of annual fee |