会话密钥协商的方法、装置和***
技术领域
本发明涉及信息安全与通信技术,尤其涉及一种会话密钥协商的方法、装置和***。
背景技术
现有技术中的密钥交换协议可以保证两个或多个用户在公开网络环境中通过交互信息建立一个共享的会话密钥,参与通信的用户通过共享的会话密钥来加密通信数据从而保证网络通信的安全。其中,认证密钥交换协议是一种带有认证功能的密钥协商,它能够对参与密钥协商双方的身份进行认证,从而能有效地抵抗第三方攻击。
目前,认证密钥交换协议的工作原理主要为:对于随机选择的a∈Rq,要进行认证密钥协商的双方A,B分别按照R-DLWEq,x:(1)各自秘密选择(sA,eA)←χ,(sB,eB)←χ;(2)各自计算bA=a·sA+eA,bB=a·sB+eB,其中,bA和bB是公开的;(3)双方A,B利用各自掌握的秘密sA和sB,可以分别计算出sA·bB和sB·bA。由于sA·bB=sAasB+sAeB≈sAasB≈sBasA+sBeA=sB·bA,因此,sA·bB-sB·bA=sAeB-sBeA,若双方误差尺寸||sAeB-sBeA||在一定范围内,则双方可以消去误差,从而计算出共同秘密sAasB;由于sAasB仅涉及双方各自掌握的秘密sA和sB,因此只有双方A,B才知道sAasB。
另外,对于如何消除误差||sAeB-sBeA||,使得双方能正确恢复出sAasB,目前主要依赖特征函数Cha(v)和模函数Mod2(w,b),以实现双方恢复出共同信息sAasB。其中,特征函数Cha(v)定义如下:
模函数Mod2(w,b)定义如下:
具体的,就恢复出s
Aas
B而言,通过模函数Mod
2(w,b)逐个比特获得的,以1个比特为例:q为奇素数,给定
对于w=v+2e,若错误量
且|e|<q/2,则Mod
2(v,Cha(v))=Mod
2(w,Cha(v))。换言之,当w,v之间的距离是一定范围内(w=v+2e),则用共同的特征函数Cha(v),各自分别基于w,v,通过模函数Mod
2(w,b)可以计算出一个共同的秘密比特
1)若Cha(v)=0,则Mod2(w,Cha(v))输出0/1的偏差为1/2|E|;
2)若Cha(v)=1,则Mod2(w,Cha(v))输出0/1的偏差为1/(|E|-1)。
但是,由于通过模函数Mod
2(w,Cha(v))计算出来的共同的秘密比特
不是均匀分布的,为了防止第三方猜中密钥的一个比特,从而影响使用中的安全性,现有技术中的奇素数q必须取到亚指数大,因此,造成了通信量和计算代价变大的问题。同时,由于现有技术中还采用幂基来表示剩余环
上的元素,其中n=2
k;在剩余环R
q中、幂基的表示下,幂基本身尺寸大、剩余环R
q中的元素的尺寸也大,从而也导致了通信量和计算代价大的问题。
发明内容
本发明提供一种会话密钥协商方法、装置和***,以克服现有技术中通信量和计算代价大的问题。
本发明第一方面提供一种会话密钥协商方法,包括:
第一用户设备接收与所述第一用户设备会话协商的第二用户设备对应的长期公钥PA和临时公钥xA;
所述第一用户设备根据所述第一用户设备对应的长期私钥sB和临时私钥yB,以及所述长期公钥PA和临时公钥xA,获取向量σB;
所述第一用户设备根据所述信号量v
B,采用公式
获取会话密钥K;
其中,q为偶数,且不等于2。
结合第一方面,可以理解是的,所述获取向量σB方式可以具体为:
所述第一用户设备根据***参数a以及fB,采用公式yB=a·rB+fB∈Rq,获取临时私钥yB;
所述第一用户设备根据所述第二用户设备对应的临时公钥xA,所述第一用户设备对应的临时私钥yB,所述第一用户设备对应的身份信息B,以及所述第二用户设备对应的身份信息A,采用公式d=H(xA,B)和e=H(yB,A),分别获取d和e;
所述第一用户设备根据所述第一用户设备对应的长期私钥sB,所述d和e,以及所述第二用户设备对应的长期公钥PA和临时私钥xA,采用公式σB=g·(xA+d·PA)·(rB+e·sB)∈Rq,获取σB;
其中,
r
B←χ;f
B←χ;g为***参数,且g∈R;R为分圆代数整数环,且
的剩余环R
q上;m为正整数。
结合第一方面,可选地,所述身份信息A和B为表示身份证号码或者指纹信息的比特串。
结合第一方面,需要指出的是,所述方法还包括:
所述第一用户设备根据s1和e1,采用公式PB=a·s1+e1∈Rq,获取所述第一用户设备对应的长期公钥PB;
所述第一用户设备向认证中心发送携带有所述长期公钥PB的注册请求,以供所述认证中心根据所述注册请求,在验证所述长期公钥PB≠0时,根据s、e和e',采用公式bc=a·s+e以及v=g·b·s+e',获取bc、[v]2和<v>2,并将所述bc和<v>2返回给所述第一用户设备;
所述第一用户设备根据接收到的所述bc和<v>2,采用公式u=g·bc·s1和w=rec(u,<v>2),获取w,并将所述w发送给所述认证中心,以供所述认证中心在验证w=[v]2成立时,向所述第一用户设备发送第一证书CertB,以证明第一用户设备拥有所述长期公钥PB;
其中,s1,e1←χ;s,e,e'←χ。
结合第一方面,可选地,所述方法还包括:
所述第一用户设备将所述第一用户设备的长期公钥PB,临时私钥yB和所述信号量vB发送给所述第二用户设备,以供所述第二用户设备在预设误差范围内,根据长期公钥PB,临时私钥yB和所述信号量vB,以及所述第二用户设备对应的长期私钥sA和临时私钥xA,获取所述会话密钥K;
本发明第二方面提供一种会话密钥协商方法,所述方法包括:
第二用户设备接收与所述第二用户设备会话协商的第一用户设备发送的所述第一用户设备的长期公钥PB,信号量vB和临时私钥yB;
所述第二用户设备根据所述长期公钥PB和临时私钥yB,以及所述第二用户设备对应的长期私钥sA和临时私钥xA,获取向量σA;
所述第二用户设备在所述预设误差范围内,根据所述向量σA和信号量vB,采用公式K=rec(σA,vB),获取所述第二用户设备对应的会话密钥K;
结合第二方面,需要指出的是,所述方法还包括:
所述第二用户设备根据所述长期公钥PB和临时私钥yB,以及所述第二用户设备对应的长期私钥sA和临时私钥xA,计算获取向量σA,包括:
所述第二用户设备根据***参数a以及fA,采用公式xA=a·rA+fA∈Rq,获取所述临时私钥xA;
所述第二用户设备根据所述第一用户设备对应的临时私钥xA,所述临时私钥yB,所述第一用户设备对应的身份信息B,以及所述第二用户设备对应的身份信息A,采用公式d=H(xA,B)和e=H(yB,A),分别获取d和e;
所述第二用户设备根据所述第二用户设备对应的长期私钥sA,所述d和e,以及所述第一用户设备对应的长期公钥PB和临时私钥yB,采用公式σA=g·(yB+d·PB)·(rA+e·sA)∈Rq,获取向量σA;
其中,
r
A←χ;f
A←χ;g为***参数,且g∈R;R为分圆代数整数环,且
的剩余环R
q上;m为正整数。
结合第二方面,可选地,所述身份信息A和B为表示身份证号码或者指纹信息的比特串。
结合第二方面,可以理解地,所述方法还包括:
所述第二用户设备根据s1和e1,采用公式PA=a·s1+e1∈Rq,获取所述第一用户设备对应的长期公钥PA;
所述第二用户设备向认证中心发送携带有所述长期公钥PA的注册请求,以供所述认证中心根据所述注册请求,在验证所述PA≠0时,根据s、e和e',采用公式bc=a·s+e以及v=g·b·s+e',获取bc、[v]2和<v>2,并将所述bc和<v>2返回给所述第二用户设备;
所述第二用户设备根据接收到的所述bc和<v>2,采用公式u=g·bc·s1和w=rec(u,<v>2),获取w,并将所述w发送给所述认证中心,以供所述认证中心在验证w=[v]2成立时,向所述第二用户设备发送第二证书CertA,以证明第二用户设备拥有所述长期公钥PA;
其中,s1,e1←χ;s,e,e'←χ。
本发明第三方面提供一种会话密钥协商装置,所述装置包括:
收发模块,用于接收与会话密钥协商装置会话协商的第二用户设备对应的长期公钥PA和临时公钥xA;
向量获取模块,用于根据所述会话密钥协商装置对应的长期私钥sB和临时私钥yB,以及根据所述长期公钥PA和临时公钥xA,获取向量σB;
信号量获取模块,用于根据所述
采用公式
获取信号量v
B;
会话密钥获取模块,用于根据所述信号量v
B,采用公式
获取会话密钥K;
其中,q为偶数,且不等于2。
结合第三方面,可以理解的是,所述装置中的向量获取模块包括:
临时私钥获取单元,用于根据***参数a以及fB,采用公式yB=a·rB+fB∈Rq,获取临时私钥yB;
计算单元,用于根据所述第二用户设备对应的临时公钥xA,所述第一用户设备对应的临时私钥yB,所述会话密钥协商装置对应的身份信息B,以及所述第二用户设备对应的身份信息A,采用公式d=H(xA,B)和e=H(yB,A),分别获取d和e;
向量获取单元,用于根据所述会话密钥协商装置对应的长期私钥sB,所述d和e,以及所述第二用户设备对应的长期公钥PA和临时私钥xA,采用公式σB=g·(xA+d·PA)·(rB+e·sB)∈Rq,获取σB;
其中,
r
B←χ;f
B←χ;g为***参数,且g∈R;R为分圆代数整数环,且
的剩余环R
q上;m为正整数。
结合第三方面,可以指出的是,所述装置还包括:
长期公钥获取模块,用于根据s1和e1,采用公式PB=a·s1+e1∈Rq,获取所述会话密钥协商装置对应的长期公钥PB;
所述收发模块还用于向认证中心发送携带有所述长期公钥PB的注册请求,以供所述认证中心根据所述注册请求,在验证所述长期公钥PB≠0时,根据s、e和e',采用公式bc=a·s+e以及v=g·b·s+e',获取bc、[v]2和<v>2,并将所述bc和<v>2返回给所述会话密钥协商装置;
第二计算模块,用于根据接收到的所述bc和<v>2,采用公式u=g·bc·s1和w=rec(u,<v>2),获取w;
所述收发模块还用于将所述w发送给所述认证中心,以供所述认证中心在验证w=[v]2成立时,向所述会话密钥协商装置发送第一证书CertB,以证明会话密钥协商装置拥有所述长期公钥PB;
其中,s1,e1←χ;s,e,e'←χ。
结合第三方面,可选地,所述收发模块还用于将所述会话密钥协商装置的长期公钥PB,临时私钥yB和所述信号量vB发送给所述第二用户设备,以供所述第二用户设备在预设误差范围内,根据长期公钥PB,临时私钥yB和所述信号量vB,以及所述第二用户设备对应的长期私钥sA和临时私钥xA,获取所述会话密钥K;
本发明第四方面提供一种会话密钥协商装置,所述装置包括:
收发模块,用于接收与所述会话密钥协商装置会话协商的第一用户设备发送的所述第一用户设备的长期公钥PB,信号量vB和临时私钥yB;
向量获取模块,用于根据所述长期公钥PB和临时私钥yB,以及所述会话密钥协商装置对应的长期私钥sA和临时私钥xA,获取向量σA;
会话密钥获取模块,用于在所述预设误差范围内,根据所述向量σA和信号量vB,采用公式K=rec(σA,vB),获取所述会话密钥协商装置对应的会话密钥K;
结合第四方面,可以指出的是,所述装置中的向量获取模块包括:
临时私钥获取单元,用于根据***参数a以及fA,采用公式xA=a·rA+fA∈Rq,获取所述临时私钥xA;
计算单元,用于根据所述第一用户设备对应的长期公钥PB和临时私钥xA,所述临时私钥yB,所述第一用户设备对应的身份信息B,以及所述会话密钥协商装置对应的身份信息A,采用公式d=H(xA,B)和e=H(yB,A),分别获取d和e;
向量获取单元,用于根据所述会话密钥协商装置对应的长期私钥sA,所述d和e,以及所述第一用户设备对应的长期公钥PB和临时私钥yB,采用公式σA=g·(yB+d·PB)·(rB+e·sA)∈Rq,获取向量σA;
其中,
r
A←χ;f
A←χ;g为***参数,且g∈R;R为分圆代数整数环,且
的剩余环R
q上;m为正整数。
结合第四方面,可选地,所述装置还包括:
长期公钥获取模块,用于根据s1和e1,采用公式PA=a·s1+e1∈Rq,获取所述第一用户设备对应的长期公钥PA;
所述收发模块还用于向认证中心发送携带有所述长期公钥PA的注册请求,以供所述认证中心根据所述注册请求,在验证所述PA≠0时,根据s、e和e',采用公式bc=a·s+e以及v=g·b·s+e',获取bc、[v]2和<v>2,并将所述bc和<v>2返回给所述会话密钥协商装置;
计算模块,用于根据接收到的所述bc和<v>2,采用公式u=g·bc·s1和w=rec(u,<v>2),获取w;
所述收发模块还用于将所述w发送给所述认证中心,以供所述认证中心在验证w=[v]2成立时,向所述会话密钥协商装置发送第二证书CertA,以证明会话密钥协商装置拥有所述长期公钥PA;
其中,s1,e1←χ;s,e,e'←χ。
本发明第五方面提供一种会话密钥协商***,所述***包括:
第一用户设备以及与所述第一用户设备会话协商的第二用户设备;
其中,所述第一用户设备为如上述第三方面所述的会话密钥协商装置;所述第二用户设备为上述第四方面所述的会话密钥协商装置。
结合第五方面,可以理解地,所述***中的第一用户设备和第二用户设备均处于分布式网络环境中。
本发明实施例会话密钥协商方法、装置和***,第一用户设备通过第一用户设备对应的长期私钥s
B和临时私钥y
B,以及接收到的与第一用户设备会话协商的第二用户设备对应的长期公钥P
A和临时公钥x
A,获取向量σ
B;并根据向量σ
B,采用随机函数和交错凑整函数,获取信号量v
B;再根据信号量v
B,采用模2凑整函数,计算获取会话密钥K;由于若
是随机均匀的,则模2凑整函数[x]
2是
上的均匀分布,因此有效地保证了会话密钥的安全性。另外,由于q为偶数模,因此,还有效地解决了现有技术中通信量和计算代价变大的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的会话密钥协商方法所基于的网络架构示意图;
图2为本发明会话密钥协商的协议运行过程图;
图3为本发明会话密钥协商方法实施例一的流程图;
图4为本发明会话密钥协商方法实施例二的流程图;
图5为本发明会话密钥协商方法实施例三的流程图;
图6为本发明会话密钥协商方法实施例四的流程图;
图7为本发明会话密钥协商方法实施例五的流程图;
图8为本发明会话密钥协商方法实施例六的流程图;
图9为本发明会话密钥协商装置实施例一的结构示意图;
图10为本发明会话密钥协商装置实施例二的结构示意图;
图11为本发明会话密钥协商装置实施例三的结构示意图;
图12为本发明会话密钥协商装置实施例四的结构示意图;
图13为本发明会话密钥协商装置实施例五的结构示意图;
图14为本发明会话密钥协商装置实施例六的结构示意图;
图15为本发明实施例提供的一种用户设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明的会话密钥协商方法所基于的网络架构示意图,如图1所示,该网络架构主要包括:第一用户设备11和第二用户设备12。其中,该第一用户设备11和第二用户设备12的会话密钥协商是在分布式网络环境下进行的,即两者建立的会话密钥使能被第一用户设备11和第二用户设备12所掌握,任何其他第三方均不知道。另外,可选地,该网络架构还可以包括:认证中心13,即第一用户设备11和第二用户设备12在进行会话密钥协商之前,需要进行认证,即第一用户设备11能确定和它进行密钥协商的确实是第二用户设备12,而不是其他设备。同理,第二用户设备12也能确认这一点。
在本发明中,本协议构造在分圆代数整数环
的剩余环R
q上,具体的***参数描述如下:
m为正整数:它描述了m阶分圆代数整数环
的规制,其中Φ
m(x)的次数是
q奇素数模:gcd(q,m)=1;
g=∏p(1-ζp),其中p跑遍整除m的所有奇素数;
H(·):{0,1}
*→R:将任意字符串映射为符合离散高斯分布χ=[ψ]的、位于
上的元素;
另外,第一用户设备11和第二用户设备12各自有一对长期的公私钥来标识,其产生方式简要说明如下,以第二用户设备12为例:第二用户设备12抽样sA←χ、eA←χ,其中,eA为噪声向量;并将sA∈Rq作为自己的长期私钥,计算PA=a·sA+eA∈Rq并将其作为自己的长期公钥。设第一用户设备11和第二用户设备12要协商的会话密钥K可以为K=SKAB,图2为本发明会话密钥协商的协议运行过程图,即具体协议过程如图2所示。
图3为本发明会话密钥协商方法实施例一的流程图,如图3所示,本实施例的方法可以包括:
步骤101、第一用户设备接收与第一用户设备会话协商的第二用户设备对应的长期公钥PA和临时公钥xA。
步骤102、第一用户设备根据第一用户设备对应的长期私钥sB和临时私钥yB,以及长期公钥PA和临时公钥xA,获取向量σB。
在本实施例中,第一用户设备和第二用户设备的会话密钥协商是在分布式网络环境下进行。
步骤103、第一用户设备根据所述向量σB,采用公式(1):
在本实施例中,dbl表示随机化函数(randomized function)。
获取信号量vB。
在本实施例中,v
B是交错凑整函数作用在
身上得到的“信号量”。其中,交错凑整函数(cross-rounding function)<>
2:
定义为
结合如下的模2凑整函数和交错凑整函数的定义,
的所在区间和<x>
2的取值关系如下:
并且,对于偶数模q,若
是随机均匀的,且给定<x>
2,[x]
2的分布是
上均匀分布。也就是说,对于均匀分布的
给定<x>
2=b,[x]
2=b和[x]
2=1-b的概率各占1/2,即给定<x>
2=b,***露
[x]
2是信息论意义上安全的。
步骤105、第一用户设备根据信号量vB,采用公式(3):
获取会话密钥K。
其中,q为偶数,且不等于2。
在本实施例中,模2凑整函数[]
2:
定义为
当
的绝对最小完全剩余系
且q≠2为偶数:
(1)、I0={0,1,2,…,[q/4]-1},I1={-[q/4],…,-1}modq,I0∪I1使得[x]2=0;
在本实施例中,第一用户设备通过第一用户设备对应的长期私钥s
B和临时私钥y
B,以及接收到的与第一用户设备会话协商的第二用户设备对应的长期公钥P
A和临时公钥x
A,获取向量σ
B;并根据向量σ
B,采用随机函数和交错凑整函数,获取信号量v
B;再根据信号量v
B,采用模2凑整函数,获取会话密钥K;由于若
是随机均匀的,则模2凑整函数[x]
2是
上的均匀分布,因此有效地保证了会话密钥的安全性。另外,由于q为偶数模,因此,还有效地解决了现有技术中通信量和计算代价变大的问题。
下面采用几个具体的实施例,对图1所示方法实施例的技术方案进行详细说明。
图4为本发明会话密钥协商方法实施例二的流程图,在上述图3所示实施例的基础上,如图4所示,上述步骤102的一种具体实现方式为:
步骤201、根据***参数a以及fB,采用公式(4):
yB=a·rB+fB∈Rq (4)
获取临时私钥yB。
步骤202、根据所述第二用户设备对应的临时公钥xA,所述第一用户设备对应的临时私钥yB,所述第一用户设备对应的身份信息B,以及所述第二用户设备对应的身份信息A,采用公式(5)和(6):
d=H(xA,B) (5)
e=H(yB,A) (6)
分别获取d和e。
在本实施例中,身份信息A和B均可以表示身份证号码、指纹信息等被认证中心编码为0和1的比特串。
步骤203、根据所述第一用户设备对应的长期私钥sB,所述d和e,以及所述第二用户设备对应的长期公钥PA和临时私钥xA,采用公式(7):
σB=g·(xA+d·PA)·(rB+e·sB)∈Rq (7)
获取σB。
其中,
r
B←χ;f
B←χ;g为***参数,且g∈R;R为分圆代数整数环,且
的剩余环R
q上。另外,m为正整数,且描述了m阶分圆代数整数环
的规制,其中,Φ
m(x)的次数是
gcd(q,m)=1。g=∏
p(1-ζ
p),其中,p为跑遍整数除m的所有奇素数。代数数域K上的离散高斯分布[ψ],其中,
H(·):{0,1}
*→R表示任意字符串映射为符合离散高斯分布的χ=[ψ],位于
上的元素;
表示全局公开参数。
在本实施例中,在一般分圆多项式环下,采用解码基(张量幂基的对偶的共轭)表示环R上的元素,以及进行计算,可以获地较小尺寸的元素表示和计算代价。
图5为本发明会话密钥协商方法实施例三的流程图,在上述图4所示实施例的基础上,如图5所示,在步骤101之前,该方法还可以进一步包括:
步骤301、第一用户设备根据s1和e1,采用公式(8):
PB=a·s1+e1∈Rq (8)
获取所述第一用户设备对应的长期公钥PB。
步骤302、第一用户设备向认证中心发送携带有所述长期公钥PB的注册请求,以供所述认证中心根据所述注册请求,在验证所述长期公钥PB≠0时,根据s、e和e',采用公式(9)和(10):
bc=a·s+e (9)
v=g·b·s+e' (10)
获取bc、[v]2和<v>2,并将所述bc和<v>2返回给所述第一用户设备。
步骤303、第一用户设备根据接收到的所述bc和<v>2,采用公式(11)和(12):
u=g·bc·s1 (11)
w=rec(u,<v>2) (12)
获取w,并将所述w发送给所述认证中心,以供所述认证中心在验证w=[v]2成立时,向所述第一用户设备发送第一证书CertB,以证明第一用户设备拥有所述长期公钥PB。
其中,s1,e1←χ;s,e,e'←χ。
由于可以对两方协商的用户设备的长期公钥进行认证,从而保证第二用户设备确定和它进行密钥协商的确实是第一用户设备,进而保证密钥协商的安全性。
更进一步的,在步骤105之后,该方法还可以包括:
步骤304、第一用户设备将第一用户设备的长期公钥PB,临时私钥yB和信号量vB发送给第二用户设备,以供第二用户设备在预设误差范围内,根据长期公钥PB,临时私钥yB和信号量vB,以及第二用户设备对应的长期私钥sA和临时私钥xA,获取会话密钥K。
图6为本发明会话密钥协商方法实施例四的流程图,如图6所示,该方法包括:
步骤401、第二用户设备接收与所述第二用户设备会话协商的第一用户设备发送的所述第一用户设备的长期公钥PB,信号量vB和临时私钥yB。
在本实施例中,第一用户设备和第二用户设备的会话密钥协商是在分布式网络环境下进行。其中,第一用户设备可以执行如图1至图3任一方法所示的技术方案,其实现原理相类似,此处不再赘述。
步骤402、第二用户设备根据所述长期公钥PB和临时私钥yB,以及所述第二用户设备对应的长期私钥sA和临时私钥xA,获取向量σA。
步骤403、第二用户设备在所述预设误差范围内,根据所述向量σA和信号量vB,采用公式(13):
K=rec(σA,vB) (13)
获取所述第二用户设备对应的会话密钥K。
在本实施例中,参与密钥协商的第一用户设备通过公开传输长期公钥PB,信号量vB和临时私钥yB,参与该密钥协商的第二用户设备通过接收该长期公钥PB,信号量vB和临时私钥yB,以及根据自身长期私钥sA和临时私钥xA计算获取的向量σA,采用公式K=rec(σA,vB),获取所述第二用户设备对应的会话密钥K,从而使得密钥协商两方获取信息论意义下均匀分布于{0,1}上的密钥K,从而保证会话密钥的安全性。另外,由于q为偶数模,因此,还有效地解决了现有技术中通信量和计算代价变大的问题。
图7为本发明会话密钥协商方法实施例五的流程图,在上述图6所示实施例的基础上,如图7所示,上述步骤402的一种具体实现方式为:
步骤501、第二用户设备根据***参数a以及fA,采用公式(14):
xA=a·rA+fA∈Rq (14)
获取所述临时私钥xA。
步骤502、第二用户设备根据所述第一用户设备对应的临时私钥xA,所述临时私钥yB,所述第一用户设备对应的身份信息B,以及所述第二用户设备对应的身份信息A,采用公式(15)和(16):
d=H(xA,B) (15)
e=H(yB,A) (16)
分别获取d和e。
步骤503、第二用户设备根据所述第二用户设备对应的长期私钥sA,所述d和e,以及所述第一用户设备对应的长期公钥PB和临时私钥yB,采用公式(17):
σA=g·(yB+d·PB)·(rA+e·sA)∈Rq (17)
获取向量σA。
其中,
r
A←χ;f
A←χ;g为***参数,且g∈R;R为分圆代数整数环,且
的剩余环R
q上;m为正整数。
在本实施例中,在一般分圆多项式环下,采用解码基(张量幂基的对偶的共轭)表示环R上的元素,以及进行计算,可以获地较小尺寸的元素表示和计算代价。
图8为本发明会话密钥协商方法实施例六的流程图,在上述图7所示实施例的基础上,如图8所示,该方法还可以进一步包括:
步骤601、第二用户设备根据s1和e1,采用公式(18):
PA=a·s1+e1∈Rq (18)
获取所述第一用户设备对应的长期公钥PA。
步骤602、第二用户设备向认证中心发送携带有所述长期公钥PA的注册请求,以供所述认证中心根据所述注册请求,在验证所述PA≠0时,根据s、e和e',采用公式(19)和(20):
bc=a·s+e (19)
v=g·b·s+e' (20)
获取bc、[v]2和<v>2,并将所述bc和<v>2返回给所述第二用户设备。
步骤603、第二用户设备根据接收到的所述bc和<v>2,采用公式(21)和(22):
u=g·bc·s1 (21)
w=rec(u,<v>2) (22)
获取w,并将所述w发送给所述认证中心,以供所述认证中心在验证w=[v]2成立时,向所述第二用户设备发送第二证书CertA,以证明第二用户设备拥有所述长期公钥PA。
其中,s1,e1←χ;s,e,e'←χ。
在本实施例中,由于可以对两方协商的用户设备的长期公钥进行认证,从而保证第一用户设备确定和它进行密钥协商的确实是第二用户设备,进而保证密钥协商的安全性。
图9为本发明会话密钥协商装置实施例一的结构示意图,如图9所示,本实施例的装置可以包括:收发模块21、向量获取模块22、第一计算模块23、信号量获取模块24和会话密钥获取模块25,其中,收发模块21用于接收与会话密钥协商装置会话协商的第二用户设备对应的长期公钥P
A和临时公钥x
A;向量获取模块22用于根据所述会话密钥协商装置对应的长期私钥s
B和临时私钥y
B,以及根据所述长期公钥P
A和临时公钥x
A,获取向量σ
B;第一计算模块23用于根据所述向量σ
B,采用公式
获取
信号量获取模块24用于根据所述
采用公式
获取信号量v
B;会话密钥获取模块25用于根据所述信号量v
B,采用公式
获取会话密钥K;其中,q为偶数,且不等于2。
本实施例的装置,可以第一用户设备,且用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图10为本发明会话密钥协商装置实施例二的结构示意图,如图10所示,本实施例的装置在图9所示装置结构的基础上,进一步地,所述向量获取模块22具体包括:临时私钥获取单元221、计算单元222和向量获取单元223;其中,临时私钥获取单元221用于根据***参数a以及fB,采用公式yB=a·rB+fB∈Rq,获取临时私钥yB;计算单元222用于根据所述第二用户设备对应的临时公钥xA,所述第一用户设备对应的临时私钥yB,所述会话密钥协商装置对应的身份信息B,以及所述第二用户设备对应的身份信息A,采用公式d=H(xA,B)和e=H(yB,A),分别获取d和e;向量获取单元223用于根据所述会话密钥协商装置对应的长期私钥sB,所述d和e,以及所述第二用户设备对应的长期公钥PA和临时私钥xA,采用公式σB=g·(xA+d·PA)·(rB+e·sB)∈Rq,获取σB;
其中,
r
B←χ;f
B←χ;g为***参数,且g∈R;R为分圆代数整数环,且
的剩余环R
q上;m为正整数。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为本发明会话密钥协商装置实施例三的结构示意图,如图11所示,本实施例的装置在图10所示装置结构的基础上,进一步地,该装置还可以包括:长期公钥获取模块31和第二计算模块32;其中,长期公钥获取模块31用于根据s1和e1,采用公式PB=a·s1+e1∈Rq,获取所述会话密钥协商装置对应的长期公钥PB;所述收发模块21还用于向认证中心发送携带有所述长期公钥PB的注册请求,以供所述认证中心根据所述注册请求,在验证所述长期公钥PB时,根据s、e和e',采用公式bc=a·s+e以及v=g·b·s+e',获取bc、[v]2和<v>2,并将所述bc和<v>2返回给所述会话密钥协商装置;第二计算模块32用于根据接收到的所述bc和<v>2,采用公式u=g·bc·s1和w=rec(u,<v>2),获取w;所述收发模块21还用于将所述w发送给所述认证中心,以供所述认证中心在验证w=[v]2成立时,向所述会话密钥协商装置发送第一证书CertB,以证明会话密钥协商装置拥有所述长期公钥PB;其中,s1,e1←χ;s,e,e'←χ。
进一步的,收发模块21还用于将所述会话密钥协商装置的长期公钥PB,临时私钥yB和所述信号量vB发送给所述第二用户设备,以供所述第二用户设备在预设误差范围内,根据长期公钥PB,临时私钥yB和所述信号量vB,以及所述第二用户设备对应的长期私钥sA和临时私钥xA,获取所述会话密钥K;
本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图12为本发明会话密钥协商装置实施例四的结构示意图,如图12所示,该装置包括:收发模块41、向量获取模块42和会话密钥获取模块43;其中,收发模块41用于接收与所述会话密钥协商装置会话协商的第一用户设备发送的所述第一用户设备的长期公钥PB,信号量vB和临时私钥yB;向量获取模块42用于根据所述长期公钥PB和临时私钥yB,以及所述会话密钥协商装置对应的长期私钥sA和临时私钥xA,计算获取向量σA;会话密钥获取模块43用于在所述预设误差范围内,根据所述向量σA和信号量vB,采用公式K=rec(σA,vB),获取所述会话密钥协商装置对应的会话密钥K;
本实施例的装置,可以为第二用户设备,且用于执行图6所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图13为本发明会话密钥协商装置实施例五的结构示意图,如图13所示,在上述图12所示实施例的基础上,该向量获取模块42包括:临时私钥获取单元421、计算单元422以及向量获取单元423;其中,临时私钥获取单元421用于根据***参数a以及f
A,采用公式x
A=a·r
A+f
A∈R
q,获取所述临时私钥x
A;计算单元422用于根据所述第一用户设备对应的临时私钥x
A,所述临时私钥y
B,所述第一用户设备对应的身份信息B,以及所述会话密钥协商装置对应的身份信息A,采用公式d=H(x
A,B)和e=H(y
B,A),分别获取d和e;向量获取单元423用于根据所述会话密钥协商装置对应的长期私钥s
A,所述d和e,以及所述第一用户设备对应的长期公钥P
B和临时私钥y
B,采用公式σ
A=g·(y
B+d·P
B)·(r
A+e·s
A)∈R
q,获取向量σ
A;其中,
r
A←χ;f
A←χ;g为***参数,且g∈R;R为分圆代数整数环,且
的剩余环R
q上;m为正整数。
本实施例的装置,可以用于执行图7所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图14为本发明会话密钥协商装置实施例六的结构示意图,如图14所示,在上述图13所示实施例的基础上,进一步的,该装置还可以包括:长期公钥获取模块51和计算模块52;其中,长期公钥获取模块51用于根据s1和e1,采用公式PA=a·s1+e1∈Rq,获取所述第一用户设备对应的长期公钥PA;所述收发模块41还用于向认证中心发送携带有所述长期公钥PA的注册请求,以供所述认证中心根据所述注册请求,在验证所述PA≠0时,根据s、e和e',采用公式bc=a·s+e以及v=g·b·s+e',获取bc、[v]2和<v>2,并将所述bc和<v>2返回给所述会话密钥协商装置;计算模块52用于根据接收到的所述bc和<v>2,采用公式u=g·bc·s1和w=rec(u,<v>2),获取w;所述收发模块41还用于将所述w发送给所述认证中心,以供所述认证中心在验证w=[v]2成立时,向所述会话密钥协商装置发送第二证书CertA,以证明会话密钥协商装置拥有所述长期公钥PA;其中,s1,e1←χ;s,e,e'←χ。
本实施例的装置,可以用于执行图8所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本发明还提供了一种会话密钥协商***,该***包括第一用户设备以及与该第一用户设备会话协商的第二用户设备;其中,第一用户设备用于执行图1至图3任一所示方法实施例的技术方案,第二用户设备用于执行图6至图8任一所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本发明还提供了一种会话密钥协商装置,该装置包括处理器、存储器、以及通信接口,所述存储器用于存储可执行程序代码,其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序;
所述通信接口接收与所述会话密钥协商装置会话协商的第二用户设备对应的长期公钥PA和临时公钥xA;
所述处理器根据所述会话密钥协商装置对应的长期私钥s
B和临时私钥y
B,以及所述长期公钥P
A和临时公钥x
A,获取向量σ
B;根据所述向量σ
B,采用公式
获取
根据所述
采用公式
获取信号量v
B;根据所述信号量v
B,采用公式
获取会话密钥K;其中,q为偶数,且不等于2。
在本实施例中,该会话密钥协商装置为第一用户设备,且用于执行图1至图3任一所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本发明还提供了一种会话密钥协商装置,该装置包括处理器、存储器、以及通信接口,所述存储器用于存储可执行程序代码,其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序;
该通信接口接收与所述会话密钥协商装置会话协商的第一用户设备发送的所述第一用户设备的长期公钥PB,信号量vB和临时私钥yB;
该处理器根据所述长期公钥P
B和临时私钥y
B,以及所述会话密钥协商装置对应的长期私钥s
A和临时私钥x
A,获取向量σ
A;在所述预设误差范围内,根据所述向量σ
A和信号量v
B,采用公式K=rec(σ
A,v
B),获取所述会话密钥协商装置对应的会话密钥K;其中,所述预设误差范围为
q为偶数,且不等于2。
在本实施例中,该会话密钥协商装置为第二用户设备,且用于执行图6至图8任一所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图15为本发明实施例提供的一种用户设备的结构示意图,本发明实施例提供的用户设备可以用于实施上述图3-图8所示的本发明各实施例实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照图3-图8所示的本发明各实施例。
该用户设备可以为手机、平板电脑、笔记本电脑、UMPC(Ultra-mobile PersonalComputer,超级移动个人计算机)、上网本、PDA(Personal Digital Assistant,个人数字助理)等终端设备,本发明实施例以用户设备为手机为例进行说明,图15示出的是与本发明各实施例相关的手机1500的部分结构的框图。
如图15所示,手机1500包括:RF(radio frequency,射频)电路1520、存储器1530、输入单元1540、显示单元1550、重力传感器1560、音频电路1570、处理器1580、以及电源1590等部件。本领域技术人员可以理解,图15中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图15对手机1500的各个构成部件进行具体的介绍:
RF电路1520可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1580处理;另外,将上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、LNA(low noise amplifier,低噪声放大器)、双工器等。此外,RF电路1520还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(Global System ofMobile Communication;简称:GSM)、通用分组无线服务(General Packet Radio Service;简称:GPRS)、码分多址(Code Division Multiple Access;简称:CDMA)、宽带码分多址(Wideband Code Division Multiple Access;简称:WCDMA)、长期演进(Long TermEvolution;简称:LTE)、电子邮件、短消息服务(Short Messaging Service;简称:SMS)等。
存储器1530可用于存储软件程序以及模块,处理器1580通过运行存储在存储器1530的软件程序以及模块,从而执行手机1500的各种功能应用以及数据处理。存储器1530可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机1500的使用所创建的数据(比如音频数据、图像数据、电话本等)等。此外,存储器1530可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1540可用于接收输入的数字或字符信息,以及产生与手机1500的用户设置以及功能控制有关的键信号输入。具体地,输入单元1540可包括触摸屏1541以及其他输入设备1542。触摸屏1541,也称为触控面板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触摸屏1541上或在触摸屏1541附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触摸屏1541可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1580,并能接收处理器380发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触摸屏1541。除了触摸屏1541,输入单元1540还可以包括其他输入设备1542。具体地,其他输入设备1542可以包括但不限于物理键盘、功能键(比如音量控制按键、电源开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1550可用于显示由用户输入的信息或提供给用户的信息以及手机1500的各种菜单。显示单元1550可包括显示面板351,可选的,可以采用液晶显示器(LiquidCrystal Display;简称:LCD)、有机发光二极管(Organic Light-Emitting Diode;简称:OLED)等形式来配置显示面板1541。进一步的,触摸屏1541可覆盖显示面板1551,当触摸屏1541检测到在其上或附近的触摸操作后,传送给处理器1580以确定触摸事件的类型,随后处理器1580根据触摸事件的类型在显示面板1551上提供相应的视觉输出。虽然在图15中,触摸屏1541与显示面板1551是作为两个独立的部件来实现手机1500的输入和输入功能,但是在某些实施例中,可以将触摸屏1541与显示面板1551集成而实现手机1500的输入和输出功能。
重力传感器(gravity sensor)1560,可以检测手机在各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等。
手机1500还可以包括其它传感器,比如光传感器。具体地,光传感器可包括环境光传感器及接近光传感器。其中,环境光传感器可根据环境光线的明暗来调节显示面板1541的亮度;接近光传感器可以检测是否有物体靠近或接触手机,可在手机1500移动到耳边时,关闭显示面板1541和/或背光。手机1500还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1570、扬声器1571、麦克风1572可提供用户与手机1500之间的音频接口。音频电路1570可将接收到的音频数据转换后的电信号,传输到扬声器1571,由扬声器1571转换为声音信号输出;另一方面,麦克风1572将收集的声音信号转换为电信号,由音频电路1570接收后转换为音频数据,再将音频数据输出至RF电路1520以发送给比如另一手机,或者将音频数据输出至存储器1530以便进一步处理。
处理器1580是手机1500的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1530内的软件程序和/或模块,以及调用存储在存储器1530内的数据,执行手机1500的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1580可包括一个或多个处理单元;优选的,处理器1580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器380中。
手机1500还包括给各个部件供电的电源1590(比如电池),优选的,电源可以通过电源管理***与处理器1580逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机1500还可以包括无线保真(wireless fidelity;简称:WiFi)模块、蓝牙模块等,在此不再赘述。
在本发明实施例中,存储器1530还用于存储用于存储可执行程序代码。输入单元1540还用于接收与所述会话密钥协商装置会话协商的第二用户设备对应的长期公钥P
A和临时公钥x
A;处理器1580还用于根据所述会话密钥协商装置对应的长期私钥s
B和临时私钥y
B,以及所述长期公钥P
A和临时公钥x
A,获取向量σ
B;根据所述向量σ
B,采用公式
获取
根据所述
采用公式
获取信号量v
B;根据所述信号量v
B,采用公式
获取会话密钥K;其中,q为偶数,且不等于2。
或者,在本发明实施例中,存储器1530还用于存储用于存储可执行程序代码。输入单元1540还用于接收与所述会话密钥协商装置会话协商的第一用户设备发送的所述第一用户设备的长期公钥P
B,信号量v
B和临时私钥y
B;该处理器1580还用于根据所述长期公钥P
B和临时私钥y
B,以及所述会话密钥协商装置对应的长期私钥s
A和临时私钥x
A,获取向量σ
A;在所述预设误差范围内,根据所述向量σ
A和信号量v
B,采用公式K=rec(σ
A,v
B),获取所述会话密钥协商装置对应的会话密钥K;其中,所述预设误差范围为
q为偶数,且不等于2。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。