CN105162585B - 一种隐私保护的会话密钥协商方法 - Google Patents

一种隐私保护的会话密钥协商方法 Download PDF

Info

Publication number
CN105162585B
CN105162585B CN201510526076.2A CN201510526076A CN105162585B CN 105162585 B CN105162585 B CN 105162585B CN 201510526076 A CN201510526076 A CN 201510526076A CN 105162585 B CN105162585 B CN 105162585B
Authority
CN
China
Prior art keywords
equipment
key
aux
indexes
parameter
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
Application number
CN201510526076.2A
Other languages
English (en)
Other versions
CN105162585A (zh
Inventor
姚期智
赵运磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201510526076.2A priority Critical patent/CN105162585B/zh
Publication of CN105162585A publication Critical patent/CN105162585A/zh
Application granted granted Critical
Publication of CN105162585B publication Critical patent/CN105162585B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供了一种会话密钥协商方法,包括:第一设备将确定出的X′发送给第二设备;第二设备根据DH‑指数y和公钥B,确定Y′;第二设备根据DH‑指数y、私钥b以及X′,确定S,并基于S以及aux,确定KA和KB,根据KB确定CB,并将Y′和CB发送给第一设备;第一设备根据Y′确定S,并根据S以及aux,确定KA和KB以及K′,第一设备根据得到的参数确定会话密钥,还根据KA,利用预设认证加密函数确定CA,并将CA发送给第二设备;第二设备利用KA对CA进行解密得到CERTA和DH‑指数x,并验证CERTA和DH‑指数x的有效性,若公钥证书CERTA和DH‑指数x有效,则根据得到的参数确定会话密钥。在本会话密钥协商方法中,协议交互的每个设备至多需要进行三个模指数运算。这也就极大地减少了各个设备的数据计算量,提高了会话密钥的生成效率,节省了设备的硬件资源。

Description

一种隐私保护的会话密钥协商方法
技术领域
本发明涉及密码技术领域,具体地说,涉及一种隐私保护的会话密钥协商方法。
背景技术
会话密码协商是密码理论及应用的核心内容。大多数的会话密钥协商协议均需明文传输交互双方的身份和公钥信息。而在移动互联时代,在很多应用中用户的身份和公钥证书信息往往属于敏感信息,因此发展身份保护的会话密钥协商方法近年得到了网络与信息安全理论与应用工程的大量关注。
目前主流的身份保护密钥协商协议是IETF的IKE协议国际标准。IKE协议运行过程如下:
第一轮:第一用户发送参数X=gx至第二用户,其中,g表示有限群G'的循环子群G的生成元,x表示第一用于的DH-指数;
第二轮:第二用户发送参数Y=gy至第一用户,第二用户还计算参数K=Xy和参数CB=AE(K,(IB,B,CERTB,SigB)),其中SigB是第二用户利用其私钥对(X,Y)的数字签名,第二用户将(Y,CB)发送至第一用户。
第三轮:第一用户计算参数K=Yx和参数CA=AE(K,(IA,A,CERTA,SigA)),其中SigA是第一用户利用其私钥对(X,Y)的数字签名。第一用户将CB发送至第二用户。
密码算法的主要计算单元是模指数运算。DSA数字签名标准的生成需要1个模指数运算,签名验证需要2个模指数运算。而对于IKE协议,每个用户需运行1次数字签名生成和1次数字签名验证,共计需运行3个模指数运算。另外,每个用户需运行另外2个模指数运算。
具体而言,这2个模指数运算分别为第一用户计算(X=gx,K=Yx)和第二用户计算(Y=gy,K=Xy)。因此,对于IKE算法来说,每个用户总共至少需要运行5个模指数运算。这也就导致了IKE算法难以在计算受限的设备(例如手机、智能卡等移动设备)上的配置和应用。
因此,在移动互联大规模普及和应用的背景下,亟需一种更为高效的新型身份保护会话密钥协商方法。
发明内容
为解决上述问题,本发明提供了一种会话密钥协商方法,所述方法包括:
第一设备根据其生成的DH-指数x和第一设备的公钥A,确定第一参数X′,并将所述第一参数X′发送给第二设备;
第二设备根据其生成的DH-指数y和第二设备的公钥B,确定第二参数Y';
所述第二设备根据所述DH-指数y、第二设备的私钥b以及接收到的所述第一参数X′,确定预先共享密钥S,并基于预先共享密钥S以及辅助信息aux,利用预设密钥导出函数确定第一设备和第二设备的认证加密密钥KA和KB以及额外导出密钥K',根据第二设备的认证加密密钥KB,利用预设认证加密函数确定第二设备密文CB,并将第二参数Y'和第二设备密文CB发送给所述第一设备;
所述第一设备根据接收到的第二参数Y'确定预先共享密钥S,并根据预先共享密钥S以及辅助信息aux,利用预设密钥导出函数确定第一设备和第二设备的认证加密密钥KA和KB以及额外导出密钥K',所述第一设备根据得到的参数确定会话密钥,还根据第一设备的认证加密密钥KA,利用预设认证加密函数确定第一设备密文CA,并将第一设备密文CA发送给所述第二设备;
所述第二设备利用认证加密密钥KA对所述第一设备密文CA进行解密得到第一设备的公钥证书CERTA和DH-指数x,并验证第一设备的公钥证书CERTA和DH-指数x的有效性,若公钥证书CERTA和DH-指数x有效,则根据得到的参数确定会话密钥。
根据本发明的一个实施例,
所述第一设备将所述第一参数X′发送给第二设备时,还将自身生成的第一辅助信息auxA发送给第二设备;
且/或,所述第二设备将第二参数Y'和第二设备密文CB发送给所述第一设备时,还将自身生成的第二辅助信息auxB发送给所述第一设备。
根据本发明的一个实施例,所述第一辅助信息auxA包含第一设备生成的随机数、时间戳和/或第一设备的身份信息,或所述第一辅助信息auxA为空;
且/或,所述第二辅助信息auxB包含第二设备生成的随机数、时间戳和/或第二设备的身份信息,或所述第二辅助信息auxB为空。
根据本发明的一个实施例,DH-指数x的长度|x|以及DH-指数y的长度|y|是可变的。
根据本发明的一个实施例,
所述第二设备确定出预先共享密钥S后,在确定第一设备和第二设备的认证加密密钥KA和KB前,还判断S是否为有限群G′中的单位元,如果S为单位元,则停止执行后续步骤,否则继续执行后续步骤;
且/或,所述第一设备确定出预先共享密钥S后,在确定第一设备和第二设备的认证加密密钥KA和KB前,还判断S是否为有限群G′中的单位元,如果S为单位元,则停止执行后续步骤,否则继续执行后续步骤。
根据本发明的一个实施例,
所述第一设备根据如下表达式确定第一参数X′:
X'=Agx
所述第二设备根据如下表达式确定第二参数Y':
Y'=Bgy
其中,g表示有限群G'的循环子群G的生成元。
根据本发明的一个实施例,
所述第一设备根据如下表达式确定预先共享密钥S:
S=Y'(a+x)t
所述第二设备根据如下表达式确定预先共享密钥S:
S=X'(b+y)t
其中,t表示伴随因子,a和b分别表示第一设备和第二设备的私钥。
根据本发明的一个实施例,
所述第一设备根据如下表达式确定预先共享密钥S:
S=Y'(a+x)或S=Y'(ax)
所述第二设备根据如下表达式确定预先共享密钥S:
S=X'(b+y)或S=X'(by)
其中,a和b分别表示第一设备和第二设备的私钥。
根据本发明的一个实施例,所述第二设备在确定S前,先检测第一参数X'∈G是否成立,若不成立,则停止执行后续步骤;否则继续执行后续步骤。
根据本发明的一个实施例,所述第一设备得到第一设备和第二设备的认证加密密钥KA和KB以及额外导出密钥K'后,在生成第一设备密文CA前,还利用第二设备的认证加密密文KB对所述第二设备密文CB进行解密,得到第二设备的公钥证书CERTB和DH-指数y,并验证第二设备的公钥证书CERTB和DH-指数y的有效性,若公钥证书CERTA和DH-指数y有效,则继续执行后续步骤以生成第一设备密文CA,否则终止运行后续步骤。
根据本发明的一个实施例,所述第一设备利用第二设备的认证加密密文KB对所述第二设备密文CB进行解密,还得到第二设备的公钥B,
所述第一设备在确定第一设备密文CA前,还验证B∈G是否成立,如果成立,则继续执行后续步骤,否则终止执行后续步骤。
根据本发明的一个实施例,所述第一设备通过验证y∈Zq且Y'=Bgy∈G是否成立来验证DH-指数y的有效性,如果成立,则判定DH-指数y有效,否则判定DH-指数y无效。
根据本发明的一个实施例,所述第二设备通过验证x∈Zq且X'=Agx∈G是否成立来验证DH-指数x的有效性,如果成立,则判定DH-指数x有效,否则判定DH-指数x无效。
根据本发明的一个实施例,
所述第一设备根据如下表达式确定第一参数X′:
X'=Ax
所述第二设备根据如下表达式确定第二参数Y':
Y'=By
所述第一设备根据如下表达式确定预先共享密钥S:
S=Y'(axt)
所述第二设备根据如下表达式确定预先共享密钥S:
S=X'(byt)
其中,t表示伴随因子,a和b分别表示第一设备和第二设备的私钥。
根据本发明的一个实施例,所述第一设备得到第一设备和第二设备的认证加密密钥KA和KB以及额外导出密钥K'后,在生成第一设备密文CA前,还根据第二设备的认证加密密文KB对所述第二设备密文CB进行解密得到第二设备的公钥证书CERTB和DH-指数y,并验证第二设备的公钥证书CERTB和DH-指数y的有效性,若公钥证书CERTA和DH-指数y有效,则继续执行后续步骤已生成第一设备密文CA,否则终止运行。
根据本发明的一个实施例,所述第一设备利用第二设备的认证加密密文KB对所述第二设备密文CB进行解密,还得到第二设备的公钥B,
所述第一设备在确定第一设备密文CA前,还验证B∈G是否成立,如果成立,则继续执行后续步骤,否则终止执行后续步骤。
根据本发明的一个实施例,所述第一设备通过验证y∈Zq且Y'=By∈G是否成立来验证DH-指数y的有效性,如果成立,则判定DH-指数y有效,否则判定DH-指数y无效。
根据本发明的一个实施例,所述第二设备通过验证x∈Zq且X'=Ax∈G是否成立来验证DH-指数x的有效性,如果成立,则判定DH-指数x有效,否则判定DH-指数x无效。
根据本发明的一个实施例,所述第一设备在确定预先共享密钥S前,还验证第二参数Y'∈G是否成立,如果成立,则继续执行后续步骤,否则终止执行后续步骤。
根据本发明的一个实施例,所述第一设备和/或第二设备所述根据如下表达式确定第一设备和第二设备的认证加密密钥KA和KB
{KA,KB,K'}←KDF(S,aux)
其中,KDF表示预设密钥导出函数,auxA和auxB分别表示第一辅助信息和第二辅助信息。
根据本发明的一个实施例,所述辅助信息aux为{X′,Y′}或{X′,Y′,auxA,auxB},其中,auxA和auxB分别表示第一辅助信息和第二辅助信息。
根据本发明的一个实施例,所述第一设备和第二设备将会话密钥设定为{KA,KB,K'}或{KA,KB}或K',或者,由第三辅助信息auxK以及额外导出密钥K'或预先共享密钥S导出所述会话密钥。
根据本发明的一个实施例,所述第三辅助信息auxK为集合{X′,Y′,IA,IB,A,B,DataA,DataB,auxA,auxB}的子集,且包含第一设备和第二设备的身份标示IA和IB,其中,DataA和DataB分别表示第一设备和第二设备需要进行加密传输的可为空的部分数据,auxA和auxB分别表示第一辅助信息和第二辅助信息。
根据本发明的一个实施例,其特征在于,DH-指数x和DH-指数y满足:
|x|=|y|=[|q|/2]或|x|=|y|=[|q|/4]或|x|=|y|=|q|
其中,q表示有限群G'的循环子群G的阶。|x|、|y|和|q|分别表示x、y和q的二进制长度。
根据本发明的一个实施例,所述第二设备根据如下表达式确定所述第二设备密文CB
CB=AE(KB,(IB,B,CERTB,y,DataB)
其中,IB表示第二设备的身份标示,CERTB表示第二设备的公钥证书,DataB表示第二设备需要进行加密传输的可为空的部分数据,AE表示预设认证加密函数。
根据本发明的一个实施例,所述第一设备根据如下表达式确定所述第一设备密文CA
CA=AE(KA,(IA,A,CERTA,x,DataA))
其中,IA表示第一设备的身份标示,DataA表示第一设备需要进行加密传输的可为空的部分数据,AE表示预设认证加密函数。
在现有的确定会话密钥的方法中,协议交互的每个设备均需要至少运行5个模指数运算。而在本发明所提供的会话密钥协商方法中,协议交互的每个设备(即第一设备和第二设备)至多需要进行三个模指数运算。通过合理地配置参数LA=|x|(即第一设备DH-指数x的二进制长度)和LB(即第二设备DH-指数y的二进制长度),甚至可以使得各个设备所进行的模指数运算的数量少于2个。这也就极大地减少了各个设备的数据计算量,提高了会话密钥的生成效率,节省了设备的硬件资源。
同时,在协议交互的每个设备进行数据交互的时,由于在本发明所提供的方法中,协议交互的信息并不涉及各个用户或设备的身份和公钥等隐私信息,因此相较于现有的确定会话密钥的方法,本方法能够有效保证用户或设别的隐私信息的安全性。
此外,在需要的情况下,第一设备还可以直接将需要加密传输的信息mA发送给第二设备。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要的附图做简单的介绍:
图1是根据本发明一个实施例的会话密钥确定方法的流程图;
图2是根据本发明一个实施例的会话密钥确定方法的流程图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
同时,在以下说明中,出于解释的目的而阐述了许多具体细节,以提供对本发明实施例的彻底理解。然而,对本领域的技术人员来说显而易见的是,本发明可以不用这里的具体细节或者所描述的特定方式来实施。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在密码技术中,G表示一个有限群G'的一个循环子群,其中有限群G'和循环子群G的阶分别为N和q,g是循环子群G的生成元。1G表示有限群G'的单位元,其中,G/1G表示循环子群G中除了单位元1G之外的所有元素所构成的集合,G'/1G表示由有限群G'减去单位元1G之后其他元素的集合(即有限群G'中非1G的集合)。对于任意元素X∈G',X-1表示元素X相对于有限群G'的逆元,即XX-1=1G
一般而言,循环子群G的阶q为一个大的素数。典型地,|q|为256或512,其中|q|表示q以2进制表示时的长度。Zq为数字集合{0,1,2,...,q-1},而Zq*则表示数字集合{1,2,...,q-1}。
为了表述的方便,本发明中,采用乘法表示(multiplicative representation)群上的操作,即有限群G'和循环子群G为乘法群。当然,本方法也可以等价地应用到加法群上,例如椭圆曲线以及其他代数群或具体的群、有限域、复数或复合模(composite moduli)等。
一般而言,对于乘法群上的操作,指数上的操作是对q的求模,而群上元素的操作是对N或N+1求模操作或其他操作以保证操作的结果是有限群G'或循环子群G中的元素。例如,gx通常指的是gxmodq,gxgy通常表示的是gxgy∈G',x+y∈Zq表示的是(x+y)modq,xy∈Zq表示的是(xy)modq。
本实施例中,参数G、q和g以及所使用的KDF等算法都是固定的且被所有的用户或设备实现获知的(这是一种实际使用中的普遍情况)。当然,在本发明的其他实施例中,参数G、q、g和KDF等还可以包含在证书中从而在各个用户或设备之间达成一致,抑或是各个用户或设备在协议运行之前交换和协商这些参数并达成一致,本发明不限于此。
如果离散对数假设在循环子群G上成立,即给定X=gx∈G(其中,x从数字集合中随机选取,LA≤|q|表示0-1串的长度),没有概率多项式时间的算法能够以不可忽略的概率由X求出x。
在后续的描述中,采用IA和IB来标示不同用户或设备的逻辑或区别性的身份(例如名字、设备序列号、email、IP地址或是方法运行中的角色等)。而这些身份标示可可能伴随、包含或包含于一个数字证书。
本实施例中,具有身份标示IA的第一设备具有与之对应的公钥A。本实施例中,A=ga∈G。其中,a表示第一设备的私钥,其可以由第一设备在中随机选取。
相应地,本实施例中,具有身份标示IB的第二设备具有与之对应的公钥B。本实施例中,B=gb∈G。其中,b表示第二设备的私钥,其可以由第二设备在中随机选取。
需要指出的是,在没有特别说明的情况下,公钥A与第一设备的绑定以及公钥B与第二设备的绑定,是由一个可信第三方机构来执行。例如对于第一设备,可信第三方机构通常会检查第一设备的身份标示IA的有效性以及对应公钥A的有效性,然后对(IA,A)做一个数字签名,并将(IA,A)以及可信第三方所生成的数字前景形成一个针对(IA,A)的公钥证书,即为CERTA
图1示出了本实施例所提供的会话密钥确定方法的流程图。
如图1所示,在本实施例中,第一设备首先根据其公钥A和第一设备的DH密钥成分X的离散对数(即DH-指数)x,确定第一参数X'。本实施例中,第一设备的公钥A可以采用如下表达式确定的道:
A=ga (1)
第一参数X'可以根据如下表达式计算得到:
X'=Agx (2)
得到第一参数X'后,第一设备将{X',auxA}发送给第二设备。其中,auxA表示第一设备生成的辅助信息(即第一辅助信息)。本实施例中,第一辅助信息auxA为除第一设备的身份标示、公钥以及公钥证书信息之外的其他与协议执行相关的信息的一个子集或序列。
需要指出的是,在本发明的不同实施例中,第一辅助信息auxA既可以为空,也可以包含重复元素,本发明不限于此。当第一辅助信息auxA为空时,第一设备也就是将第一参数X'发送给第二设备。当第一辅助信息auxA不为空时,第一辅助信息auxA所包含的信息可以包括以下所列项中的任一项或几项:第一设备的IP地址、第二设备的IP地址、第一设备发送的其他随机数和会话标识符sid等。
第二设备接收到第一设备发送来的{X',auxA}后,会根据第一参数X'计算预先共享密钥S。同时,第二设备还会计算第二参数Y'。具体地,本实施例中,第二设备根据如下表达式计算预先共享密钥S和第二参数Y':
S=X'(b+y)t (3)
Y'=Bgy (4)
其中,y表示第二设备的DH密钥成分Y的离散对数,即DH-指数,t表示伴随因子,它是群G'的阶除以群G的阶的商,B表示第二设备的公钥。
本实施例中,第二设备在得到预先共享密钥S后会判断计算得到的预先共享密钥S是否为单位元,即判断S=1G是否成立。如果成立,第二设备将终止执行后续步骤,从而终止会话运行;如果不成立,第二设备则会根据计算得到的预先共享密钥S来计算{KA,KB,K'}。具体地,本实施例中,第二设备根据如下表达式计算{KA,KB,K'}:
{KA,KB,K′}←KDF(S,aux) (5)
其中,KDF表示密钥导出函数。一般而言,KDF既然可以是一个哈希函数或哈希函数序列(例如HMAC或HKDF等),也可以是一个以预先共享密钥S为随机种子的伪随机函数。aux表示辅助信息,其可以为一个数值字符串集合或计数器。在本发明的不同实施例中,aux可以为集合{X',Y',auxA,auxB}的一个子集。
本实施例中,KA∈{0,1}L表示第一设备使用的认证加密的密钥,其用于认证加密第一设备发送给第二设备的信息。KB∈{0,1}L表示第二设备使用的认证加密的密钥,其用于认证加密第二设备发送给第一设备的信息。K'∈{0,1}*是额外导出密钥。需要指出的是,根据应用场景,额外导出密钥K'可以为空。
在本发明的不同实施例中,密钥KA与密钥KB既可以相同,也可以不同。如果密钥KA与密钥KB相同,即存在:
KA=KB=K∈{0,1}L (6)
第二设备则根据根据预先共享密钥S来计算{K,K′},即:
{K,K′}←KDF(S,aux) (7)
需要说明的是,在本发明的不同实施例中,会话密钥和认证密钥既可以由同一个密钥导出函数在相同的输入上导出,也可以由同一密钥导出函数在不同的输入上分别导出。此外,会话密钥和认证密钥还可以由不同的密钥导出函数在相同的输入上或不同的输入上分别导出。
本实施例中,第二设备计算得到{KA,KB,K'}后,将根据密钥KB来计算第二设备密文CB。具体地,本实施例中,第二设备根据如下表达式计算第二设备密文CB
CB=AE(KB,(IB,B,CERTB,y,DataB) (8)
其中,IB表示第二设备的身份标示,B表示第二设备的公钥,CERTB表示第二设备的公钥证书,DataB表示第二设备需要进行加密传输的可为空的部分数据,AE是一个认证加密函数或带有联合信息的认证加密函数(authenticated encryption with associateddata,AEAD)。若AE是带有联合信息的认证加密函数,Y′和/或auxB的部分或全部可以作为联合信息的一部分。
本实施例中,DataB为除用户身份IB、公钥B、公钥证书CERTB以外的其他与协议执行相关的信息的一个子集或序列他,其可以为空或包含重复元素。本实施例中,其他与协议执行相关的信息包括以下所列项中的任一项或几项:
用户需传输或认证的消息,全部或部分系统参数,参数{L,LA,LB},参数协议初试者和响应者的标示、IP地址、协议版本,安全参数和密钥参数,协议的会话标志符,用户交换的随机数,时间戳,cookie,认识数值,以及其他协议会话需要传输的信息(例如参数X'和/或参数Y')等。
需要指出的是,本实施例中,AE(KB,(IB,B,CERTB,y,DataB)指的是先将集合{IB,B,CERTB,y,DataB}中的所有元素按照预设顺序(该预设顺序可以任意,但是需要协议交换的双方均实现知晓并达成一致)连接,例如得到M=IB||B||CERTB||y||DataB;随后将M按照预设编码规则编码成二进制,并将得到的二进制编码利用KB进行认证加密。
第二设备得到第二设备密文CB后,会将{Y',CB,auxB}发送给第一设备。其中,auxB表示第二辅助信息,其可以是除第二设备的身份标示、公钥以及公钥证书信息之外的其他与协议执行相关的信息的一个子集或序列。第二辅助信息auxB既可以为空,也包含重复元素。例如,第二辅助信息auxB所包含的信息可以为以下所列项中的任一项或几项:第一设备的IP地址、第二设备的IP地址、第二设备发送的其他随机数和会话标识符sid等。
第一设备接收到第二设备发送来的{Y',CB,axuB}后,会根据第二参数Y'计算预先共享密钥S。具体地,本实施例中,第一设备根据如下表达式计算预先共享密钥S:
S=Y'(a+x)t (9)
第一设备确定得到预先共享密钥S后,会判断预先共享密钥S是否为单位元,即判断S=1G是否成立。如果成立,第一设备将停止执行后续步骤,从而终止会话运行。如果不成立,第一设备则会根据计算得到的预先共享密钥S来计算{KA,KB,K′}。具体地,本实施例中,第一设备根据如下表达式计算{KA,KB,K′}:
{KA,KB,K′}←KDF(S,aux) (10)
随后,第一设备根据得到的第二设备的认证加密密钥KB以及第二设备密文CB来计算(IB,B,CERTB,y)。具体地,本实施例中,第一设备根据如下表达式计算(IB,B,CERTB,y):
(IB,B,CERTB,y)←DE(KB,CB) (11)
其中,DE表示对应于认证加密函数AE的解密函数。
本实施例中,第一设备在得到(IB,B,CERTB,y)后,会对第二设备的公钥证书CERTB、第二设备的DH-指数y进行验证。具体地,本实施例中,第一设备对公钥证书CERTB的有效性进行验证,并验证y∈Zq且Y'=Bgy∈G是否成立,如果公钥证书CERTB有效、y∈Zq且Y'=Bgy∈G成立,第一设备则认为公钥证书CERTB、离散对数y以及第二参数Y'通过了验证;否则认为公钥证书CERTB、离散对数y以及第二参数Y'没有通过验证,此时第一设备将停止进行后续步骤,从而终止会话运行。
当公钥证书CERTB、离散对数y以及第二参数Y'通过了第一设备的验证操作后,第一设备便可以根据所得到的参数按照预设规则确定出会话密钥。具体地,本实施例中,第一设备优选地将{KA,KB,K′}作为会话密钥。
当公钥证书CERTB、离散对数y以及第二参数Y'通过了第一设备的验证操作后,第一设备还将根据认证加密密钥KA确定第一设备密文CA。具体地,本实施例中,第一设备根据如下表达式计算第一设备密文CA
CA=AE(KA,(IA,A,CERTA,x,DataA)) (12)
其中,IA表示第一设备的身份标示,A表示第一设备的公钥,CERTA表示第一设备的公钥证书,DataA表示第一设备需要进行加密传输的可为空的部分数据,AE是一个认证加密函数或带有联合信息的认证加密函数。若AE是带有联合信息的认证加密函数,第一参数X′和/或第一辅助信息auxA的部分或全部可以作为联合信息的一部分。
第一设备得到第一设备密文CA后,会将第一设备密文CA发送给第二设备。
需要说明的是,在本的发明的其他实施例中,第一设备在得到第二设备的公钥B后,在计算第一设备密文CA前,还验证B∈G是否成立。如果B∈G成立,则继续进行后续步骤,否则终止执行后续步骤。
第二设备接收到第一设备发送来的第一设备密文CA后,会根据第一设备密文CA来确定(IA,A,CERTA,x)。具体地,本实施例中,第二设备根据如下表达式确定(IA,A,CERTA,x):
(IA,A,CERTA,x)←DE(KA,CA) (13)
得到(IA,A,CERTA,x)后,第二设备将会对所得到的第一设备的公钥证书CERTA、第一设备的DH密钥成分X的离散对数x进行验证。具体地,本实施例中,第二设备对公钥证书CERTA的有效性进行验证,并验证x∈Zq且X'=Agx∈G是否成立,如果公钥证书CERTA有效、x∈Zq且X'=Agx∈G成立,第二设备则认为公钥证书CERTA、离散对数x以及第一参数X'通过了验证;否则认为公钥证书CERTA、离散对数x以及第一参数X'没有通过验证,此时第二设备将停止进行后续步骤,从而终止会话运行。当然,在需要的情况下,根据表达式(13)也可以得到第一设备需要进行加密传输的可为空的部分数据DataA
当第二设备认为公钥证书CERTA、离散对数x以及第一参数X'通过验证时,第二设备则会将{KA,KB,K'}设置为会话密钥。
需要说明的是,在发明的其他实施例中,第一设备和第二设备还可以将其他合理参数设定为会话密钥,本发明不限于此。例如在本发明的其他实施例中,第一设备和第二设备还可以根据预设规则,将{KA,KB}或额外导出密钥K'作为会话密钥,抑或是由第三辅助信息auxK以及额外导出密钥K'或预先共享密钥S导出会话密钥。其中,第三辅助信息auxK为{X′,Y′,IA,IB,A,B,DataA,DataB,auxA,auxB}子集,且包含第一设备和第二设备的身份标示IA和IB,即存在:
需要指出的是,在上述描述中,第一设备和第二设备还可以采用其他合理的方式来计算预先共享密钥S,本发明同样不限于此。
例如在本发明的其他实施例中,第二设备还可以采用如下表达式来计算预先共享密钥S:
S=X'(b+y)或S=X'(by) (15)
相应地,第一设备则根据如下表达式计算预先共享密钥S:
S=Y'(a+x)或S=Y'(ax) (16)
需要说明的是,在该实施例中,第一设备和/或第二设备还在得到预先共享密钥S后,不对预先共享密钥S是否为单位元进行检验,但是此时第二设备需要在计算预先共享密钥S前检查确认X'∈G是否成立。如果成立,则继续进行后续步骤,否则终止执行后续步骤。
同时,还需要指出的是,在本发明的其它实施例中,还可以采用其它合理方式来计算第一参数X'和第二参数Y',本发明同样不限于此。例如在本发明的一个实施例中,第一设备可以根据如下表达式计算第一参数X':
X'=Ax (17)
相应地,第二设备则根据如下表达式计算第二参数Y':
Y'=By (18)
此时,在该实施例中,第一设备将根据如下表达式计算预先共享密钥S:
S=Y'(axt) (19)
而第二设备将根据如下表达式计算预先共享密钥S:
S=X'(byt) (20)
在该实施例中,第一设备在得到(IB,B,CERTB,y)后,对第二设备的公钥证书CERTB、第二设备的DH-指数y进行验证时,会对公钥证书CERTB的有效性进行验证,并验证y∈Zq且Y'=By∈G是否成立。同理,第二设备在得到(IA,A,CERTA,x)后,对第一设备的公钥证书CERTA、第一设备的DH密钥成分X的离散对数x进行验证时,会对公钥证书CERTA的有效性进行验证,并验证x∈Zq且X'=Ax∈G是否成立。
需要说明的是,在本实施例中,DH-指数x和DH-指数y满足如下表达式:
|x|=|y|=[|q|/2] (21)
即,DH-指数x和DH-指数y的二进制长度相等,并等于有限群G'的循环子群G的阶q的二进制长度的一半取整(在不同实施例中,可以为向上取整,也可以为向下取整)。
需要说明的是,在本发明的其他实施例中,DH-指数x和DH-指数y的二进制长度还可以为其他合理值,本发明不限于此。例如在本发明的其他实施例中,DH-指数x和DH-指数y长度还可以满足如下表达式:
|x|=|y|=[|q|/4]或|x|=|y|=|q| (22)
图2示出了本发明所提供的会话密钥确定方法的流程图。
如图2所示,在本实施例中,第一设备和第二设备预先配置共享密钥(K1,K2)。第一设备根据其公钥A和第一设备的DH密钥成分X的离散对数x,确定第三参数X″。本实施例中,第一设备的公钥A可以采用如下表达式确定:
A=ga (23)
其中,a表示第一设备的私钥。
而第三参数X″则可以根据如下表达式计算得到:
得到第三参数X″后,第一设备将第三参数X″发送给第二设备。
第二设备接收到第一设备发送来的第三参数X″后,会根据第三参数X″计算预先共享密钥S。同时,第二设备还会计算第四参数Y″。具体地,本实施例中,第二设备在计算预先共享密钥S时,首先根据第三参数X″计算参数X',随后根据参数X'以及第二设备的DH密钥成分Y的离散对数y计算预先共享密钥S,即:
S=X'(b+y)t (26)
具体地,本实施例中,第二设备根据如下表达式计算第四参数Y″:
其中,t表示伴随因子,B表示第二设备的公钥。
本实施例中,第二设备在得到预先共享密钥S后会判断计算得到的预先共享密钥S是否为单位元,即判断S=1G是否成立。如果成立,第二设备将停止执行后续步骤,从而终止会话运行;如果不成立,第二设备则会根据计算得到的预先共享密钥S来计算{KA,KB}。具体地,本实施例中,第二设备根据如下表达式计算{KA,KB}:
其中,HMAC表示预设密钥导出函数。
需要说明的是,在本发明的不同实施例中,会话密钥和认证密钥既可以由同一个密钥导出函数在相同的输入上导出,也可以由同一密钥导出函数在不同的输入上分别导出。此外,会话密钥和认证密钥还可以由不同的密钥导出函数在相同的输入上或不同的输入上分别导出。
同时,本实施例中,对称密钥(K1,K2)中的参数K1和K2相互独立,并且存在:
|K1|=|K2|=|X'|=|Y'|=|S| (29)
即:参数K1、K2、X'、Y'和S的二进制长度相等。
需要说明的是,在本实施例中,在确定会话密钥时,第一设备和第二设备事先共享对称密钥(K1,K2),即对称密钥(K1,K2)对于第二设备和第二设备来说是已知的。
本实施例中,第二设备计算得到{KA,KB}后,将根据第二设备的认证加密密钥KB来计算第二设备密文CB。具体地,本实施例中,第二设备根据如下表达式计算第二设备密文CB
CB=AE(KB,(IB,B,CERTB,y) (30)
其中,IB表示第二设备的身份标示,B表示第二设备的公钥,CERTB表示第二设备的公钥证书。
需要指出的是,本实施例中,AE(KB,(IB,B,CERTB,y)指的是先将集合{IB,B,CERTB,y}中的所有元素按照预设顺序(该预设顺序可以任意,但是需要协议交换的双方均实现知晓并达成一致)连接,例如得到M=IB||B||CERTB||y;随后将M按照预设编码规则编码成二进制,并将得到的二进制编码利用KB进行认证加密。
第二设备得到CB后,会将{Y″,CB}发送给第一设备。第一设备接收到第二设备发送来的{Y″,CB}后,会根据第四参数Y″计算预先共享密钥S。具体地,本实施例中,第二设备在计算预先共享密钥S时,首先根据第四参数Y″计算参数Y',随后根据参数Y'以及第二设备的DH密钥成分X的离散对数x计算预先共享密钥S,即:
S=Y'(a+x)t (32)
第一设备确定得到预先共享密钥S后,会判断预先共享密钥S是否为单位元,即判断S=1G是否成立。如果成立,第一设备将停止执行后续步骤,从而终止会话运行。如果不成立,第一设备则会根据计算得到的预先共享密钥S来计算{KA,KB}。具体地,本实施例中,第一设备根据如下表达式计算{KA,KB}:
随后,第一设备根据得到的第二设备的认证加密密钥KB以及第二设备密文CB来计算(IB,B,CERTB,y)。具体地,本实施例中,第一设备根据如下表达式计算(IB,B,CERTB,y):
(IB,B,CERTB,y)←DE(KB,CB) (34)
其中,DE表示对应于认证加密函数AE的解密函数。
本实施例中,第一设备在得到(IB,B,CERTB,y)后,会对第二设备的公钥证书CERTB、第二设备的DH密钥成分Y的离散对数y以及参数Y'进行验证。具体地,本实施例中,第一设备对公钥证书CERTB的有效性进行验证,并验证y∈Zq且Y'=Bgy∈G是否成立,如果公钥证书CERTB有效、y∈Zq且Y'=Bgy∈G成立,第一设备则认为公钥证书CERTB、离散对数y,以及参数Y'通过了验证;否则认为公钥证书CERTB、离散对数y以及参数Y'没有通过验证,此时第一设备将停止进行后续步骤,从而终止会话运行。
当公钥证书CERTB、离散对数y,以及参数Y'通过第一设备的验证操作后,第一设备将根据KA确定第一设备密文CA。具体地,本实施例中,第一设备根据如下表达式计算第一设备密文CA
CA=AE(KA,(IA,A,CEATA,x,mA)) (35)
其中,mA表示需要加密传输的信息。
第一设备得到第一设备密文CA后,会将第一设备密文CA发送给第二设备。第二设备接收到第一设备发送来的第一设备密文CA后,会根据第一设备密文CA来确定(IA,A,CERTA,x,mA)。具体地,本实施例中,第二设备根据如下表达式确定(IA,A,CERTA,x,mA):
(IA,A,CERTA,x,mA)←DE(KA,CA) (36)
得到(IA,A,CERTA,x,mA)后,第二设备将会对所得到的第一设备的公钥证书CERTA、第一设备的DH密钥成分X的离散对数x以及参数X'进行验证。具体地,本实施例中,第二设备对公钥证书CERTA的有效性进行验证,并验证x∈Zq且X'=Agx∈G是否成立,如果公钥证书CERTA有效、x∈Zq且X'=Agx∈G成立,第二设备则认为公钥证书CERTA、离散对数x以及参数X'通过了验证;否则认为公钥证书CERTA、离散对数x以及参数X'没有通过验证,此时第二设备将停止进行后续步骤,从而终止会话运行。
当第二设备认为公钥证书CERTA、离散对数x以及参数X'通过验证时,第二设备则会将{KA,KB}设置为会话密钥。
需要说明的是,在本实施例中,上述参数、函数、算法、用户角色标示以及会话标示符号的表示方法、密钥导出机制以及参数aux等,均可以由协议运行双方(即第一设备和第二设备)基于预设机制协商确定。然而参数LA和参数LB可以根据应用场景来分别由第一设备和第二设备单独确定。
在现有的确定会话密钥的方法中,协议交互的每个设备均需要至少运行5个模指数运算。而在本发明所提供的确定会话密钥的方法中,协议交互的每个设备(即第一设备和第二设备)至多需要进行三个模指数运算。通过合理地配置参数LA和LB,甚至可以使得各个设备所进行的模指数运算的数量少于2个。这也就极大地减少了各个设备的数据计算量,提高了会话密钥的生成效率,节省了设备的硬件资源。
同时,在协议交互的每个设备进行数据交互的时,由于在本发明所提供的方法中,协议交互的信息并不涉及各个用户或设备的身份和公钥等隐私信息,因此相较于现有的确定会话密钥的方法,本方法能够有效保证用户或设别的隐私信息的安全性。此外,在需要的情况下,第一设备还可以直接将需要加密传输的信息mA发送给第二设备。
应该理解的是,本发明所公开的实施例不限于这里所公开的特定处理步骤,而应当延伸到相关领域的普通技术人员所理解的这些特征的等同替代。还应当理解的是,在此使用的术语仅用于描述特定实施例的目的,而并不意味着限制。
说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。
虽然上述示例用于说明本发明在一个或多个应用中的原理,但对于本领域的技术人员来说,在不背离本发明的原理和思想的情况下,明显可以在形式上、用法及实施的细节上作各种修改而不用付出创造性劳动。因此,本发明由所附的权利要求书来限定。

Claims (33)

1.一种会话密钥协商方法,其特征在于,所述方法包括:
第一设备根据其生成的DH-指数x和第一设备的公钥A,确定第一参数X′,并将所述第一参数X′发送给第二设备;
第二设备根据其生成的DH-指数y和第二设备的公钥B,确定第二参数Y';
所述第二设备根据所述DH-指数y、第二设备的私钥b以及接收到的所述第一参数X′,确定预先共享密钥S,并基于预先共享密钥S以及辅助信息aux,利用预设密钥导出函数确定第一设备和第二设备的认证加密密钥KA和KB以及额外导出密钥K',根据第二设备的认证加密密钥KB,利用预设认证加密函数确定第二设备密文CB,并将第二参数Y'和第二设备密文CB发送给所述第一设备;
所述第一设备根据接收到的第二参数Y'确定预先共享密钥S,并根据预先共享密钥S以及辅助信息aux,利用预设密钥导出函数确定第一设备和第二设备的认证加密密钥KA和KB以及额外导出密钥K',所述第一设备根据得到的参数确定会话密钥,还根据第一设备的认证加密密钥KA,利用预设认证加密函数确定第一设备密文CA,并将第一设备密文CA发送给所述第二设备;
所述第二设备利用认证加密密钥KA对所述第一设备密文CA进行解密得到第一设备的公钥证书CERTA和DH-指数x,并验证第一设备的公钥证书CERTA和DH-指数x的有效性,若公钥证书CERTA和DH-指数x有效,则根据得到的参数确定会话密钥;
其中,所述第一设备根据如下表达式确定第一参数X′:
X'=Agx
所述第二设备根据如下表达式确定第二参数Y':
Y'=Bgy
其中,g表示有限群G'的循环子群G的生成元。
2.如权利要求1所述的方法,其特征在于,
所述第一设备将所述第一参数X′发送给第二设备时,还将自身生成的第一辅助信息auxA发送给第二设备;
且/或,所述第二设备将第二参数Y'和第二设备密文CB发送给所述第一设备时,还将自身生成的第二辅助信息auxB发送给所述第一设备。
3.如权利要求2所述的方法,其特征在于,
所述第一辅助信息auxA包含第一设备生成的随机数、时间戳和/或第一设备的身份信息,或所述第一辅助信息auxA为空;
且/或,所述第二辅助信息auxB包含第二设备生成的随机数、时间戳和/或第二设备的身份信息,或所述第二辅助信息auxB为空。
4.如权利要求1~3中任一项所述的方法,其特征在于,DH-指数x的长度|x|以及DH-指数y的长度|y|是可变的。
5.如权利要求1所述的方法,其特征在于,
所述第二设备确定出预先共享密钥S后,在确定第一设备和第二设备的认证加密密钥KA和KB前,还判断S是否为有限群G′中的单位元,如果S为单位元,则停止执行后续步骤,否则继续执行后续步骤;
且/或,所述第一设备确定出预先共享密钥S后,在确定第一设备和第二设备的认证加密密钥KA和KB前,还判断S是否为有限群G′中的单位元,如果S为单位元,则停止执行后续步骤,否则继续执行后续步骤。
6.如权利要求1所述的方法,其特征在于,
所述第一设备根据如下表达式确定预先共享密钥S:
S=Y'(a+x)t
所述第二设备根据如下表达式确定预先共享密钥S:
S=X'(b+y)t
其中,t表示伴随因子,a和b分别表示第一设备和第二设备的私钥。
7.如权利要求1所述的方法,其特征在于,
所述第一设备根据如下表达式确定预先共享密钥S:
S=Y'(a+x)或S=Y'(ax)
所述第二设备根据如下表达式确定预先共享密钥S:
S=X'(b+y)或S=X'(by)
其中,a和b分别表示第一设备和第二设备的私钥。
8.如权利要求7所述的方法,其特征在于,所述第二设备在确定S前,先检测第一参数X'∈G是否成立,若不成立,则停止执行后续步骤;否则继续执行后续步骤。
9.如权利要求1所述的方法,其特征在于,所述第一设备得到第一设备和第二设备的认证加密密钥KA和KB以及额外导出密钥K'后,在生成第一设备密文CA前,还利用第二设备的认证加密密文KB对所述第二设备密文CB进行解密,得到第二设备的公钥证书CERTB和DH-指数y,并验证第二设备的公钥证书CERTB和DH-指数y的有效性,若公钥证书CERTA和DH-指数y有效,则继续执行后续步骤以生成第一设备密文CA,否则终止运行后续步骤。
10.如权利要求9所述的方法,其特征在于,所述第一设备利用第二设备的认证加密密文KB对所述第二设备密文CB进行解密,还得到第二设备的公钥B,
所述第一设备在确定第一设备密文CA前,还验证B∈G是否成立,如果成立,则继续执行后续步骤,否则终止执行后续步骤。
11.如权利要求9或10所述的方法,其特征在于,所述第一设备通过验证y∈Zq且Y'=Bgy∈G是否成立来验证DH-指数y的有效性,如果成立,则判定DH-指数y有效,否则判定DH-指数y无效。
12.如权利要求1所述的方法,其特征在于,所述第二设备通过验证x∈Zq且X'=Agx∈G是否成立来验证DH-指数x的有效性,如果成立,则判定DH-指数x有效,否则判定DH-指数x无效。
13.如权利要求1所述的方法,其特征在于,
所述第一设备在确定预先共享密钥S前,还验证第二参数Y'∈G是否成立,如果成立,则继续执行后续步骤,否则终止执行后续步骤。
14.如权利要求1所述的方法,其特征在于,
所述第一设备和/或第二设备所述根据如下表达式确定第一设备和第二设备的认证加密密钥KA和KB
{KA,KB,K'}←KDF(S,aux)
其中,KDF表示预设密钥导出函数,auxA和auxB分别表示第一辅助信息和第二辅助信息。
15.如权利要求1所述的方法,所述辅助信息aux为{X′,Y′}或{X′,Y′,auxA,auxB},其中,auxA和auxB分别表示第一辅助信息和第二辅助信息。
16.如权利要求1所述的方法,其特征在于,
所述第一设备和第二设备将会话密钥设定为{KA,KB,K'}或{KA,KB}或K',或者,由第三辅助信息auxK以及额外导出密钥K'或预先共享密钥S导出所述会话密钥。
17.如权利要求16所述的方法,其特征在于,所述第三辅助信息auxK为集合{X′,Y′,IA,IB,A,B,DataA,DataB,auxA,auxB}的子集,且包含第一设备和第二设备的身份标示IA和IB,其中,DataA和DataB分别表示第一设备和第二设备需要进行加密传输的可为空的部分数据,auxA和auxB分别表示第一辅助信息和第二辅助信息。
18.如权利要求1所述的方法,其特征在于,DH-指数x和DH-指数y满足:
|x|=|y|=[|q|/2]或|x|=|y|=[|q|/4]或|x|=|y|=|q|
其中,q表示有限群G'的循环子群G的阶,|x|、|y|和|q|分别表示x、y和q的二进制长度。
19.如权利要求1所述的方法,其特征在于,所述第二设备根据如下表达式确定所述第二设备密文CB
CB=AE(KB,(IB,B,CERTB,y,DataB)
其中,IB表示第二设备的身份标示,CERTB表示第二设备的公钥证书,DataB表示第二设备需要进行加密传输的可为空的部分数据,AE表示预设认证加密函数。
20.如权利要求1所述的方法,其特征在于,所述第一设备根据如下表达式确定所述第一设备密文CA
CA=AE(KA,(IA,A,CERTA,x,DataA))
其中,IA表示第一设备的身份标示,DataA表示第一设备需要进行加密传输的可为空的部分数据,AE表示预设认证加密函数。
21.一种会话密钥协商方法,其特征在于,所述方法包括:
第一设备根据其生成的DH-指数x和第一设备的公钥A,确定第一参数X′,并将所述第一参数X′发送给第二设备;
第二设备根据其生成的DH-指数y和第二设备的公钥B,确定第二参数Y';
所述第二设备根据所述DH-指数y、第二设备的私钥b以及接收到的所述第一参数X′,确定预先共享密钥S,并基于预先共享密钥S以及辅助信息aux,利用预设密钥导出函数确定第一设备和第二设备的认证加密密钥KA和KB以及额外导出密钥K',根据第二设备的认证加密密钥KB,利用预设认证加密函数确定第二设备密文CB,并将第二参数Y'和第二设备密文CB发送给所述第一设备;
所述第一设备根据接收到的第二参数Y'确定预先共享密钥S,并根据预先共享密钥S以及辅助信息aux,利用预设密钥导出函数确定第一设备和第二设备的认证加密密钥KA和KB以及额外导出密钥K',所述第一设备根据得到的参数确定会话密钥,还根据第一设备的认证加密密钥KA,利用预设认证加密函数确定第一设备密文CA,并将第一设备密文CA发送给所述第二设备;
所述第二设备利用认证加密密钥KA对所述第一设备密文CA进行解密得到第一设备的公钥证书CERTA和DH-指数x,并验证第一设备的公钥证书CERTA和DH-指数x的有效性,若公钥证书CERTA和DH-指数x有效,则根据得到的参数确定会话密钥;
其中,所述第一设备根据如下表达式确定第一参数X′:
X'=Ax
所述第二设备根据如下表达式确定第二参数Y':
Y'=By
所述第一设备根据如下表达式确定预先共享密钥S:
S=Y'(axt)
所述第二设备根据如下表达式确定预先共享密钥S:
S=X'(byt)
其中,t表示伴随因子,a和b分别表示第一设备和第二设备的私钥。
22.如权利要求21所述的方法,其特征在于,所述第一设备得到第一设备和第二设备的认证加密密钥KA和KB以及额外导出密钥K'后,在生成第一设备密文CA前,还根据第二设备的认证加密密文KB对所述第二设备密文CB进行解密得到第二设备的公钥证书CERTB和DH-指数y,并验证第二设备的公钥证书CERTB和DH-指数y的有效性,若公钥证书CERTA和DH-指数y有效,则继续执行后续步骤已生成第一设备密文CA,否则终止运行。
23.如权利要求22所述的方法,其特征在于,所述第一设备利用第二设备的认证加密密文KB对所述第二设备密文CB进行解密,还得到第二设备的公钥B,
所述第一设备在确定第一设备密文CA前,还验证B∈G是否成立,如果成立,则继续执行后续步骤,否则终止执行后续步骤。
24.如权利要求22或23中任一项所述的方法,其特征在于,所述第一设备通过验证y∈Zq且Y'=By∈G是否成立来验证DH-指数y的有效性,如果成立,则判定DH-指数y有效,否则判定DH-指数y无效。
25.如权利要求21所述的方法,其特征在于,所述第二设备通过验证x∈Zq且X'=Ax∈G是否成立来验证DH-指数x的有效性,如果成立,则判定DH-指数x有效,否则判定DH-指数x无效。
26.如权利要求21所述的方法,其特征在于,
所述第一设备在确定预先共享密钥S前,还验证第二参数Y'∈G是否成立,如果成立,则继续执行后续步骤,否则终止执行后续步骤。
27.如权利要求21所述的方法,其特征在于,
所述第一设备和/或第二设备所述根据如下表达式确定第一设备和第二设备的认证加密密钥KA和KB
{KA,KB,K'}←KDF(S,aux)
其中,KDF表示预设密钥导出函数,auxA和auxB分别表示第一辅助信息和第二辅助信息。
28.如权利要求21所述的方法,所述辅助信息aux为{X′,Y′}或{X′,Y′,auxA,auxB},其中,auxA和auxB分别表示第一辅助信息和第二辅助信息。
29.如权利要求21所述的方法,其特征在于,
所述第一设备和第二设备将会话密钥设定为{KA,KB,K'}或{KA,KB}或K',或者,由第三辅助信息auxK以及额外导出密钥K'或预先共享密钥S导出所述会话密钥。
30.如权利要求29所述的方法,其特征在于,所述第三辅助信息auxK为集合{X′,Y′,IA,IB,A,B,DataA,DataB,auxA,auxB}的子集,且包含第一设备和第二设备的身份标示IA和IB,其中,DataA和DataB分别表示第一设备和第二设备需要进行加密传输的可为空的部分数据,auxA和auxB分别表示第一辅助信息和第二辅助信息。
31.如权利要求21所述的方法,其特征在于,DH-指数x和DH-指数y满足:
|x|=|y|=[|q|/2]或|x|=|y|=[|q|/4]或|x|=|y|=|q|
其中,q表示有限群G'的循环子群G的阶,|x|、|y|和|q|分别表示x、y和q的二进制长度。
32.如权利要求21所述的方法,其特征在于,所述第二设备根据如下表达式确定所述第二设备密文CB
CB=AE(KB,(IB,B,CERTB,y,DataB)
其中,IB表示第二设备的身份标示,CERTB表示第二设备的公钥证书,DataB表示第二设备需要进行加密传输的可为空的部分数据,AE表示预设认证加密函数。
33.如权利要求21所述的方法,其特征在于,所述第一设备根据如下表达式确定所述第一设备密文CA
CA=AE(KA,(IA,A,CERTA,x,DataA))
其中,IA表示第一设备的身份标示,DataA表示第一设备需要进行加密传输的可为空的部分数据,AE表示预设认证加密函数。
CN201510526076.2A 2015-08-25 2015-08-25 一种隐私保护的会话密钥协商方法 Active CN105162585B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510526076.2A CN105162585B (zh) 2015-08-25 2015-08-25 一种隐私保护的会话密钥协商方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510526076.2A CN105162585B (zh) 2015-08-25 2015-08-25 一种隐私保护的会话密钥协商方法

Publications (2)

Publication Number Publication Date
CN105162585A CN105162585A (zh) 2015-12-16
CN105162585B true CN105162585B (zh) 2018-06-15

Family

ID=54803350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510526076.2A Active CN105162585B (zh) 2015-08-25 2015-08-25 一种隐私保护的会话密钥协商方法

Country Status (1)

Country Link
CN (1) CN105162585B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105577370A (zh) * 2016-02-29 2016-05-11 赵运磊 一种应用于客户-服务器环境的认证密钥协商方法
CN106453253B (zh) * 2016-09-06 2019-10-25 上海扈民区块链科技有限公司 一种高效的基于身份的匿签密方法
SG10201701044SA (en) * 2017-02-09 2018-09-27 Huawei Int Pte Ltd System and method for computing private keys for self certified identity based signature schemes
CN109361506B (zh) * 2018-09-21 2021-06-15 无锡润盟软件有限公司 信息处理方法
CN111598701B (zh) * 2020-05-22 2023-09-19 深圳市迅雷网络技术有限公司 一种信息监控方法、系统、设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101123501A (zh) * 2006-08-08 2008-02-13 西安电子科技大学 一种wapi认证和密钥协商方法和系统
CN102035647B (zh) * 2010-12-24 2013-10-23 北京工业大学 一种增强保护的非对称密钥协商方法
CN102035646B (zh) * 2010-12-24 2012-12-26 北京工业大学 一种增强保护的混合密钥协商方法
WO2013166696A1 (zh) * 2012-05-11 2013-11-14 华为技术有限公司 数据传输方法、系统及装置
CN104660415B (zh) * 2015-02-10 2016-09-14 郑州轻工业学院 移动云计算下多域间非对称群组密钥协商协议的方法
CN105099671B (zh) * 2015-08-20 2019-03-15 赵运磊 一种身份隐藏且非延展安全的认证密钥协商方法

Also Published As

Publication number Publication date
CN105162585A (zh) 2015-12-16

Similar Documents

Publication Publication Date Title
CN109309569B (zh) 基于sm2算法的协同签名的方法、装置及存储介质
CN104270249B (zh) 一种从无证书环境到基于身份环境的签密方法
CN107437993A (zh) 一种基于无证书两方认证密钥协商方法和装置
CN105162585B (zh) 一种隐私保护的会话密钥协商方法
CN104301108B (zh) 一种从基于身份环境到无证书环境的签密方法
KR101591508B1 (ko) 암호 수단을 분배하는 방법
CN102547688B (zh) 一种基于虚拟专用信道的高可信手机安全通信信道的建立方法
CN102780698A (zh) 物联网平台中用户终端安全通信的方法
CN107248909A (zh) 一种基于sm2算法的无证书安全签名方法
Velliangiri et al. An efficient lightweight privacy-preserving mechanism for industry 4.0 based on elliptic curve cryptography
CN105099671B (zh) 一种身份隐藏且非延展安全的认证密钥协商方法
CN106130716A (zh) 基于认证信息的密钥交换系统及方法
CN101286849A (zh) 基于约定算法的第三方认证系统和方法
CN104901935A (zh) 一种基于cpk的双向认证及数据交互安全保护方法
CN110149209A (zh) 物联网设备及其提高数据传输安全性的方法和装置
CN106127079A (zh) 一种数据共享方法及装置
CN110278088A (zh) 一种sm2协同签名方法
CN105306212B (zh) 一种身份隐藏且强安全的签密方法
CN114143117B (zh) 数据处理方法及设备
Ullah et al. A lightweight and secured certificate-based proxy signcryption (CB-PS) scheme for E-prescription systems
CN105577370A (zh) 一种应用于客户-服务器环境的认证密钥协商方法
TWI568234B (zh) 全球移動通訊網路的匿名認證方法
CN111416712B (zh) 基于多个移动设备的量子保密通信身份认证系统及方法
Luo et al. Cross-domain certificateless authenticated group key agreement protocol for 5G network slicings
CN106850584B (zh) 一种面向客户/服务器网络的匿名认证方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant