首页> 中国专利> 一种三方口令认证密钥交换方法

一种三方口令认证密钥交换方法

摘要

本发明公开了一种三方口令认证密钥交换方法,包括:用户设备A和用户设备B分别计算并发送请求通信的信息、第一Diffie-Hellman密钥成分信息和向服务器S证明自身合法身份的验证信息;服务器S验证所述的验证信息,如果验证成功,服务器S分别计算用户设备A和用户设备B的第二Diffie-Hellman密钥成分信息,并发送给对端用户,服务器S计算并发送向用户设备A和用户设备B证明服务器S自身合法身份的验证信息;用户设备A和用户设备B分别验证所述的证明服务器S自身合法身份的验证信息,如果通过验证,用户设备A和用户设备B分别计算产生会话密钥。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-11-15

    未缴年费专利权终止 IPC(主分类):H04L9/08 授权公告日:20111221 终止日期:20181130 申请日:20091130

    专利权的终止

  • 2011-12-21

    授权

    授权

  • 2010-06-23

    实质审查的生效 IPC(主分类):H04L9/08 申请日:20091130

    实质审查的生效

  • 2010-05-05

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,特别是涉及一种三方口令认证密钥交换方法。

背景技术

随着互联网络技术的发展和普及,网络已经成为一种主要的通信手段。由于互联网的开放性,不仅普通合法用户可以通过网络办理业务,恶意用户也可以通过网络进行窃听、冒充、篡改等各种攻击,给合法用户的业务安全性带来了很大的威胁。为了保护合法用户的重要业务得以安全进行,需要采用密钥建立技术来建立一个安全的信道以保护用户数据的保密性和完整性。

密钥交换协议是一种密钥建立技术,其中两个或多个参与方共同提供信息,推导出一个任何一方不能预先确定结果的会话密钥。密钥交换协议可以分为两类:第一类是基于公钥的密钥交换协议,通过使用用户公钥和私钥对消息进行加密和签名来保证传输数据的保密性和数据完整性。虽然基于公钥的密钥交换协议具有较高的安全强度,但是这种方法计算复杂度较高,并且密钥长度可能在几百比特到几千比特之间,这么长的密钥人脑无法准确记忆。为此,希望仅依据一个可以被人们记得住的共享口令就能够建立安全信道,即第二类密钥交换协议:基于口令的认证密钥交换协议。由于基于口令的认证密钥交换协议使用人们易记的口令进行认证和建立会话密钥,不需要携带诸如智能卡等储存设备就可以建立安全通信,因此具有很大的应用需求。

目前,基于口令认证密钥交换协议的研究集中在两方的应用场合,即“用户-服务器”模式,并且已经取得了不少很好的成果。但是如果网络规模比较大,那么使用两方的口令认证密钥交换协议就需要任意两个用户之间共享口令,导致同一个用户需要记忆多个口令。三方的口令认证密钥交换协议只需要每个用户与可信服务器共享口令,在服务器的协助下可以与任何处于同一服务域的用户建立会话密钥,更符合实际的应用需求。但是研究三方或者三方以上情形的成果较少,目前的结果还不够完善。

2005年,提出了通过两方的口令认证密钥交换协议构造三方口令认证密钥交换协议的一个通用构造方法,但是,发现该通用结构不能抵抗不可检测在线字典攻击,在2005年,又提出了一个高效的三方口令认证密钥交换协议,该协议仅仅通过口令来建立会话密钥,因此易受口令泄露伪装攻击,即用户的口令泄露,敌手不仅可以伪装成该用户,还可以反向伪装成服务器来欺骗该用户。

通过对现有技术的研究,发明人发现:现有的三方口令认证密钥交换协议,不能抵抗不可检测在线字典攻击和口令泄露伪装攻击,使通信的安全性无法得到保障,给用户带来很大的损失,除此之外,现有技术的通信效率较低。

发明内容

为解决上述技术问题,本发明实施例提供了一种三方口令认证密钥交换方法,以实现安全通信的目的,技术方案如下:

一种三方口令认证密钥交换方法,包括以下步骤:

1)用户设备A和用户设备B分别计算请求通信的信息、掩码后的第一Diffie-Hellman密钥成分信息和向服务器S证明自身合法身份的验证信息;

2)用户设备A和用户设备B分别向所述服务器S发送所述请求通信的信息、掩码后的第一Diffie-Hellman密钥成分信息和向服务器S证明自身合法身份的验证信息;

3)服务器S分别验证所述用户设备A和用户设备B发送的证明自身合法身份的验证信息,如果通过验证,服务器S利用所述掩码后的第一Diffie-Hellman密钥成分信息分别计算得出用户设备A和用户设备B的第二Diffie-Hellman密钥成分信息,并发送给对端用户,分别计算并发送向用户设备A和用户设备B证明服务器S自身合法身份的验证信息和会话的标识ID;

4)用户设备A和用户设备B分别验证所述的证明服务器S自身合法身份的验证信息,如果都通过验证,用户设备A和用户设备B分别计算产生会话密钥。

优选地,在用户设备A和用户设备B分别向服务器S发送信息之前,还包括:

用户设备A向服务器S发送请求与用户设备B通信的随机信息;

服务器S将所述请求通信的随机信息发送给用户设备B。

通过应用以上技术方案,对用户和服务器之间交互的每条信息都增加验证信息,用户和服务器之间进行双向认证。进一步的,还可以利用双线性对加强用户和服务器之间的认证,同时利用了哈希函数难解性,实现了可以抵抗不可检测在线字典攻击和口令泄露伪装攻击,达到了安全通信的目的,除此之外,上述技术方案只需要两轮的信息交互,提高了通信效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例三方口令认证密钥交换方法的流程示意图;

图2为本发明实施例中服务器S对用户设备A和用户设备B的验证信息进行验证和相应计算的流程示意图;

图3为本发明优选实施例三方口令认证密钥交换方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了描述方便,首先对本说明书中所涉及的一些参数进行说明:

S表示服务器S的身份信息,A和B分别表示用户设备A和用户设备B的身份信息;pwA表示用户A和服务器S之间共享的口令,pwB表示用户B和服务器S之间共享的口令;S、A、B、pwA和pwB均已转化为数值形式的信息;G1表示椭圆曲线上阶为大素数q的加法循环群,P和Q是G1的生成元;G2表示阶为大素数q的乘法循环群;e是G1×G1→G2的双线性对;Hi(i=1,2)的哈希函数,其中li(i=1,2)是哈希函数的安全参数,一般为160比特;H是{0,1}*→G1的哈希函数,δ是的哈希函数,Zq是整数模q的一个剩余类群,Ps=sP是服务器的公钥,s∈Zq*为服务器的私钥。

图1所示为三方口令认证密钥交换方法,具体步骤如下:

S110,用户设备A计算请求通信的信息、掩码的第一Diffie-Hellman密钥成分信息和向服务器S证明自身合法身份的验证信息,包括:

用户设备A随机选取参数x,x∈Zq*

计算X=xP,得出用户设备A的第一Diffie-Hellman密钥成分X;

用户设备A利用与服务器共享的口令pwA,通过哈希函数对所述第一Diffie-Hellman密钥成分X进行掩码计算,即X*=X+δ(pwA)Q,得出用户设备A的掩码后的第一Diffie-Hellman密钥成分X*

用户设备A利用预先获得的服务器S的公钥Ps和所述计算得出的第一Diffie-Hellman密钥成分X,并通过利用双线性对和哈希函数运算计算得出用户设备A的第一秘密值ZA,即ZA=e(xPs,H(IDAS,X)),其中,服务器的公钥Ps=sP,IDAS=(A,B,S),IDAS是将用户设备A、用户设备B以及服务器S的身份信息A、B和S经过一定编码组合起来得到一个整体信息,其中,整体信息IDAS作用在于用户设备A告知服务器S,用户设备A想与用户设备B进行通信,因此,本说明书中称IDAS为用户设备A请求通信的消息;

用户设备A利用所述计算得出的IDAS、X*和ZA,通过哈希函数运算得出用户A向服务器S证明其合法身份的验证信息AuthA,即AuthA=H2(IDAS,X*,ZA);

S120,用户设备A将步骤S110计算所得的用户设备A的请求通信的消息IDAS、掩码后的第一Diffie-Hellman密钥成分X*以及验证信息AuthA发送给服务器S;

S130,用户设备B计算请求通信的信息、掩码后的第一Diffie-Hellman密钥成分信息和向服务器S证明自身合法身份的验证信息,包括:

用户设备B随机选取参数y,y∈Zq*

计算Y=yP,得出用户设备B的第一Diffie-Hellman密钥成分Y;

用户设备B利用与服务器共享的口令pwB,通过哈希函数运算对所述第一Diffie-Hellman密钥交换成分Y进行掩码计算,即Y*=Y+δ(pwB)Q,得出用户设备B的掩码后的第一Diffie-Hellman密钥成分Y*

用户设备B利用提前获得的服务器S的公钥Ps和计算得出用户设备B的第一Diffie-Hellman密钥交换成分Y,并通过利用双线性对和哈希函数运算计算得出与服务器S共享的第一秘密值ZB,即ZB=e(yPs,H(IDBS,Y)),其中,Ps=sP,IDBS=(B,A,S),IDBS是将用户设备B、用户设备A以及服务器S的身份信息B、A和S经过一定编码组合起来得到一个整体信息,IDBS作用在于用户设备B告知服务器S,用户设备B想与用户设备A进行通信,因此,本说明书中IDBS称为用户设备B请求通信的消息;

用户设备B利用所述计算得出的IDBS、Y*和ZB,通过哈希函数计算得出用户B向服务器S证明其合法身份的验证信息AuthB,即AuthB=H2(DBS,Y*,ZB);

S140,用户设备B将步骤S130计算所得用户设备B的整体信息IDBS、掩码后的第一Diffie-Hellman密钥成分Y*以及验证信息AuthB发送给服务器S;

需要说明的是,步骤110-120与步骤130-140并不因步骤的顺序而决定时间的先后,步骤130-140可与步骤110-120同时执行,也可以在步骤110-120之前执行;

S150,服务器S验证所述用户设备A发送的验证信息AuthA,如果验证通过,随机选择参数r,利用参数r计算用户设备A的第二Diffie-Hellman密钥成分X′,即X′=rX,并计算得出向用户设备A证明服务器S的合法身份的验证消息AuthSA,以及本次会话的标识ID;

服务器S验证所述用户设备B发送的验证信息AuthB,如果验证通过,利用所述选取的参数r,计算用户设备B的第二Diffie-Hellman密钥成分Y′,即Y′=rY,并计算得出向用户设备B证明服务器S的合法身份的验证消息AuthSB

S160,服务器S将步骤150中计算所得的用户设备A的第二Diffie-Hellman密钥成分X′、向用户设备B证明服务器S的合法身份的验证消息AuthSB以及会话的标识ID,发送给用户设备B;

S170,服务器S将步骤150中计算所得的用户设备B的第二Diffie-Hellman密钥成分Y′、向用户设备A证明服务器S的合法身份的验证消息AuthSA以及会话的标识ID,发送给用户设备A;

需要说明的是本步骤与步骤160并不因步骤的顺序而说明时间的先后,本步骤可与步骤160同时执行,或在其之前执行;

S180,用户设备A对步骤S170中服务器S发送的用户设备B的第二Diffie-Hellman密钥成分Y′、会话的标识ID以及步骤S110中计算所得的用户设备A的第一秘密值ZA,进行哈希函数计算,即H1(ID,Y′,ZA);

用户设备A验证所述服务器S发送的证明其合法身份的验证消息AuthSA是否等于H1(ID,Y′,ZA),如果等于,验证通过,计算会话密钥,否则,结束会话;其中所述计算会话密钥包括:

用户设备A利用选取的参数x和步骤S170中服务器S发送的用户设备B的第二Diffie-Hellman密钥成分Y′进行计算,得出Diffie-Hellman密钥cs,即cs=xY′,其中,Y′=rY=ryP;

对所述Diffie-Hellman密钥cs进行哈希函数的运算,得出会话密钥skA,即skA=H0(ID,cs);

S190,用户设备B利用步骤S160中服务器S发送的用户设备A的第二Diffie-Hellman密钥成分X′和会话的标识ID,并利用步骤S130中计算所得用户设备B的第一秘密值ZB,通过哈希函数计算,即H1(ID,X′,ZB);

用户设备B验证所述服务器S发送的证明服务器S的合法身份的验证消息AuthSB是否等于H1(ID,X′,ZB),如果等于,验证通过,计算会话密钥,否则,结束会话;其中所述计算会话密钥包括:

用户设备B利用选取的参数y和步骤S160中服务器S发送的用户设备A的第二Diffie-Hellman密钥成分X′进行计算,得出Diffie-Hellman密钥cs,即cs=yX′,其中,X′=rX=rxP;

对所述Diffie-Hellman密钥cs进行哈希函数的运算,得出会话密钥skB,即skB=H0(ID,cs)。

其中,用户设备B计算得出的会话密钥skB与用户设备A计算得出的会话密钥skA相同。

所述步骤S150包括服务器S对用户设备A和用户设备B的验证信息进行验证和相应计算,参见图2所示,具体包括以下步骤:

S151,服务器S对用户设备A的验证信息进行验证;

S152,服务器S对用户设备B的验证信息进行验证;

S153,服务器S计算用户设备A和用户设备B的Diffie-Hellman密钥成分、证明自身身份信息的验证信息和会话标识;

其中,S151中,服务器S对用户设备A的验证信息进行验证,具体可以包括以下步骤:

S1511,服务器S利用与用户设备A共享的口令pwA和所述用户设备A的掩码后的第一Diffie-Hellman密钥成分X*,通过哈希函数的运算计算得出用户设备A的第一Diffie-Hellman密钥成分X,即X=X*-δ(pwA)Q;

S1512,服务器S利用步骤S1511中计算得出的用户设备A的第一Diffie-Hellman密钥成分X、服务器的私钥s以及所述用户设备A请求通信的消息IDAS,通过利用双线性对和哈希函数运算,得出用户设备A的第二秘密值ZSA,即ZSA=e(sX,H(IDAS,X));

S1513,对所述用户设备A请求通信的消息IDAS、用户设备A的掩码后的第一Diffie-Hellman密钥成分X*以及步骤S1512计算得出的用户设备A的第二秘密值ZSA,进行哈希函数运算,即H2(IDAS,X*,ZSA);

S1514,验证用户设备A发送的验证信息AuthA=H2(IDAS,X*,ZA)是否等于步骤S1513计算所得的H2(IDAS,X*,ZSA),如果等于,则说明用户设备A的验证信息AuthA中的用户设备A的第一秘密值ZA=e(xPs,H(DAS,X)),与服务器S计算得出的用户设备A的第二秘密值ZSA=e(sX,H(IDAS,X))相等,其中服务器公钥Ps=sP,用户设备A的第一Diffie-Hellman密钥成分X=xP,说明用户设备A为合法用户,验证通过,进入步骤S153,否则结束会话;

其中,S152中,服务器S对用户设备B的验证信息进行验证,具体可以包括以下步骤:

S1521,服务器S利用与用户设备B共享的口令pwB和所述用户设备A的掩码后的第一Diffie-Hellman密钥成分Y*,通过哈希函数的运算计算得出用户设备B的第一Diffie-Hellman密钥成分Y,即Y=Y*-δ(pwB)Q;

S1522,服务器S利用步骤S1521中计算得出的用户设备B的第一Diffie-Hellman密钥成分Y、服务器的私钥s以及所述用户设备B请求通信的消息IDBS,通过利用双线性对和哈希函数运算得出用户设备B的第二秘密值ZSB,即ZSB=e(sY,H(IDBS,Y));

S1523,对所述用户设备B请求通信的消息IDBS、用户设备B的掩码后的第一Diffie-Hellman密钥成分Y*以及步骤S1522计算得出用户设备B的第二秘密值ZSB,进行哈希函数运算,即H2(IDBS,Y*,ZSB);

S1524,验证用户设备B发送的验证信息AuthB=H2(IDBS,Y*,ZB)是否等于步骤S1523计算所得的H2(IDBS,Y*,ZSB),如果等于,则说明用户设备B的验证信息AuthB中的用户设备B的第一秘密值ZB=e(yPs,H(IDBS,Y)),与服务器S计算得出的用户设备B的第二秘密值ZSB=e(sY,H(IDBS,Y))相等,其中服务器公钥Ps=sP,用户设备B的第一Diffie-Hellman密钥成分Y=yP,说明用户设备B为合法用户,验证通过,进入步骤S153,否则结束会话;

其中,S153中,服务器S计算用户设备A和用户设备B的Diffie-Hellman密钥成分、证明自身身份信息的验证信息和会话标识,具体可以包括以下步骤:

服务器S随机选取参数r,利用参数r分别计算用户设备A和用户设备B的第二Diffie-Hellman密钥成分X′和Y′,其中,X′=rX,Y′=rY;

服务器S对所述用户设备B的第二秘密值ZSB和所述用户设备A的第二Diffie-Hellman密钥成分X′,进行哈希函数运算得出向用户设备B证明其身份的验证信息AuthSB,即AuthSB=H1(ID,X′,ZSB);

服务器S对所述用户设备A的第二秘密值ZSA和所述用户设备B的第二Diffie-Hellman密钥成分Y′,进行哈希函数运算,得出向用户设备B证明其身份的验证信息AuthSA,即AuthSA=H1(ID,Y′,ZSA);

其中,ID=(A,B,S,X*,Y*),ID是用户A、用户B和服务器S的身份信息以及用户A、用户B发送的掩码后的第一Diffie-Hellman密钥成分的消息级联,作为本次会话唯一的会话标识;

需要说明的是,步骤S1511与步骤S1521并不因步骤的顺序而决定时间的先后,所述步骤S1511可以与步骤S1521同时执行,或在步骤S1521之前执行。

参见图3,对于上述实施例,在步骤S110之前还可以包括用户设备A给用户设备B发送即时信息,告知用户设备B请求进行通信,具体步骤包括:

S100,用户设备A向服务器S发送即时信息ABS,请求与用户设备B进行通信;其中,所述即时信息ABS可以是用户设备A随机选择发送的信息;

S101,服务器S将用户设备A发送的即时信息ABS,发送给用户设备B,告知用户设备B,用户设备A请求与其进行通信。

上述步骤S100和S101在用户设备A或用户设备B计算请求通信信息、密钥成分和验证信息之前执行,作用在于使用户设备A提前通知用户设备B,请求与其进行通信,达到触发用户设备A和用户设备B向服务器发送信息的目的。本领域技术人员可以理解,也可以是用户设备B向用户设备A发送即时信息请求通信,用户设备A或用户设备B也可以采用其他方式达到通知对端用户设备,请求通信的目的,上述步骤提供的方法并不构成对本发明技术方案的限制。

对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。

通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号