基于认证信息的密钥交换系统及方法与流程

文档序号:11877881阅读:196来源:国知局
本发明涉及一种网络上的安全技术。
背景技术
::基于认证信息的密钥交换协议(PAKE:PasswordAuthenticatedKeyExchange)是指参与到通信的两个以上的主体基于其中的一个以上的主体所知道的密码来共享用于加密的通信的密钥的过程。PAKE可以根据其实现方式而被分为基于公开密钥认证书的PAKE以及基于非公开密钥认证书的PAKE。对基于公开密钥认证书的PAKE的情况而言,为了交换密钥而始终需要执行认证公开密钥的步骤。尤其,对非公开密钥认证书的PAKE(相关标准:IEEEP1363.2以及ISO/IEC11770-4)的情况而言,其以通过将密码直接取幂而存储的认证者(verifier)构成方式构成,从而会发生难以进行现有系统的迁移(migration)以及参数(parameter)更新的问题。此外,对该方式的情况而言,需要将密码直接与组参数(groupparameter)结合,因此存在一种为了响应离线分析而需要相对较多的实时计算量、并且难以灵活地更换消息流的问题。技术实现要素:本发明的实施例通过在基于认证信息的密钥交换协议中采用基于身份(ID)的加密技术,从而提供一种同时具备基于公开密钥认证书的PAKE以及基于非公开认证书的PAKE的优点的有效的认证及密钥交换协议。此外,本发明的实施例用于使认证以及密钥交换过程所需要的通信次数最少化。根据一个示例性实施例,提供一种基于用户认证信息的密钥交换系统, 包括:终端,利用终端侧随机数以及服务器识别信息而生成与用户的认证信息对应的密文;服务器,利用与所述服务器识别信息对应的服务器端私钥而对从所述终端接收到的所述密文进行解密而还原所述认证信息,且利用被还原的所述认证信息而认证所述终端,并生成与经认证的所述终端对应的服务器端会话密钥。所述终端可由所述终端侧随机数来计算第一会话密钥元素,并由所述服务器识别信息以及所述终端侧随机数来生成终端侧加密元素,并将所述认证信息与所述终端侧加密元素进行结合而生成加密字符串。所述终端侧加密元素可通过下述的数学式而计算:D=(H(IDs))x其中,D是终端侧加密元素,IDs是服务器识别信息,x是终端侧随机数,H是单向哈希值。所述加密字符串可由所述认证信息与所述终端侧加密元素的异或逻辑运算(XOR)方式计算。所述服务器可从所述终端接收包含所述第一会话密钥元素以及所述加密字符串的密文,并由所述服务器端私钥以及所述第一会话密钥元素计算服务器端加密元素,并利用所述服务器端加密元素而从所述加密字符串还原所述认证信息。所述服务器端加密元素可由如下的数学式来计算:D'=XKs其中,D'是服务器端加密元素,X是第一会话密钥元素,Ks是服务器端私钥。所述认证信息可通过接收到的所述加密字符串与所述服务器端加密元素之间的异或逻辑运算而被还原。所述服务器可根据被还原的所述认证信息与已存储到所述服务器的所述终端的认证信息的同一性与否而认证所述终端。所述服务器端会话密钥可以是字符串的哈希值,该字符串可包括客户端识别信息、所述服务器识别信息、所述加密字符串、所述第一会话密钥元素以及所述服务器端加密元素中的一个以上。所述终端可生成终端侧会话密钥,该终端侧会话密钥可由字符串的哈希值来构成,该字符串可包括所述客户端识别信息、所述服务器识别信息、所 述加密字符串、所述第一会话密钥元素以及所述终端侧加密元素中的一个以上。所述服务器在所述终端得到认证的情况下可向所述终端发送随机消息,所述服务器端会话密钥以及所述终端侧会话密钥以额外包含所述随机消息的方式生成。所述服务器在所述终端得到认证的情况下可由服务器端随机数计算第二会话密钥元素,并由所述服务器端随机数以及所述第一会话密钥元素生成服务器端第三会话密钥元素。所述服务器端第三会话密钥元素可通过将所述第一会话密钥元素作为底数并将所述服务器端随机数作为指数并进行幂乘而被计算出。所述终端可从所述服务器接收所述第二会话密钥元素,并由此生成终端侧第三会话密钥元素以及终端侧会话密钥。所述终端侧第三会话密钥元素可通过将所述第二会话密钥元素作为底数并将所述终端侧随机数作为指数并进行幂乘而被计算出。所述终端侧会话密钥(sk)可以是字符串的哈希值,该字符串可包括所述客户端识别信息、所述服务器识别信息、所述加密字符串、所述第一会话密钥元素、所述第二会话密钥元素、所述终端侧加密元素以及所述终端侧第三会话密钥元素中的一个以上。所述服务器端会话密钥可以是字符串的哈希值,该字符串可包括所述客户端识别信息、所述服务器识别信息、所述加密字符串、所述第一会话密钥元素、所述第二会话密钥元素、所述服务器端加密元素以及所述服务器端第三会话密钥元素中的一个以上。根据另一示例性实施例,提供一种基于用户认证信息的密钥交换方法,包括如下的步骤:在终端中,利用终端侧随机数以及服务器识别信息而生成与用户的认证信息对应的密文;在服务器中,利用与所述服务器识别信息对应的服务器端私钥而对从所述终端接收到的所述密文进行解密而还原所述认证信息;在所述服务器中,利用被还原的所述认证信息而认证所述终端;在所述终端得到认证的情况下,生成与经认证的所述终端对应的服务器端会话密钥。生成所述密文的步骤还可以包括如下的步骤:由所述终端侧随机数来计算第一会话密钥元素;由所述服务器识别信息以及所述终端侧随机数来生成 终端侧加密元素;将所述认证信息与所述终端侧加密元素进行结合而生成加密字符串。所述终端侧加密元素可通过下述的数学式而计算:D=(H(IDs))x其中,D是终端侧加密元素,IDs是服务器识别信息,x是终端侧随机数,H是单向哈希值。所述加密字符串可由所述认证信息与所述终端侧加密元素的异或逻辑运算方式计算。还原所述认证信息的步骤可包括如下的步骤:从所述终端接收包含所述第一会话密钥元素以及所述加密字符串的密文;由所述服务器端私钥以及所述第一会话密钥元素计算服务器端加密元素;利用所述服务器端加密元素而从所述加密字符串还原所述认证信息。所述服务器端加密元素可由如下的数学式来计算:D'=XKs其中,D'是服务器端加密元素,X是第一会话密钥元素,Ks是服务器端私钥。从所述加密字符串还原所述认证信息的步骤以如下方式构成:通过接收到的所述加密字符串与所述服务器端加密元素之间的异或逻辑运算而还原所述认证信息。在所述认证的步骤中,可根据被还原的所述认证信息与已存储到所述服务器的所述终端的认证信息的同一性与否而认证所述终端。所述服务器端会话密钥可以是字符串的哈希值,该字符串可包括客户端识别信息、所述服务器识别信息、所述加密字符串、所述第一会话密钥元素以及所述服务器端加密元素中的一个以上。所述终端可生成终端侧会话密钥,该终端侧会话密钥可由字符串的哈希值来构成,该字符串可包括所述客户端识别信息、所述服务器识别信息、所述加密字符串、所述第一会话密钥元素以及所述终端侧加密元素中的一个以上。所述服务器在所述终端得到认证的情况下可向所述终端发送随机消息,所述服务器端会话密钥以及所述终端侧会话密钥以额外包含所述随机消息的方式生成。生成所述服务器端会话密钥的步骤还可以包括如下的步骤:由服务器端随机数计算第二会话密钥元素;由所述服务器端随机数以及所述第一会话密钥元素生成服务器端第三会话密钥元素。所述服务器端第三会话密钥元素可通过将所述第一会话密钥元素作为底数并将所述服务器端随机数作为指数并进行幂乘而被计算出。所述终端可从所述服务器接收所述第二会话密钥元素,并由此生成终端侧第三会话密钥元素以及终端侧会话密钥。所述终端侧第三会话密钥元素可通过将所述第二会话密钥元素作为底数并将所述终端侧随机数作为指数并进行幂乘而被计算出。所述终端侧会话密钥可以是字符串的哈希值,该字符串可包括所述客户端识别信息、所述服务器识别信息、所述加密字符串、所述第一会话密钥元素、所述第二会话密钥元素、所述终端侧加密元素以及所述终端侧第三会话密钥元素中的一个以上。所述服务器端会话密钥(sk′)可以是字符串的哈希值,该字符串可包括所述客户端识别信息、所述服务器识别信息、所述加密字符串、所述第一会话密钥元素、所述第二会话密钥元素、所述服务器端加密元素以及所述服务器端第三会话密钥元素中的一个以上。根据又一示例性实施例,提供一种存储于介质中的计算机程序,用于与硬件结合而用于执行包含如下步骤的方法:利用终端侧随机数以及服务器识别信息而生成与用户的认证信息对应的密文;利用与所述服务器识别信息对应的服务器端私钥而对从所述终端接收到的所述密文进行解密而还原所述认证信息;利用被还原的所述认证信息而认证所述终端;在所述终端得到认证的情况下,生成与经认证的所述终端对应的服务器端会话密钥。根据本发明的实施例,可以利用所述用户的认证信息而有效、安全地认证终端,尤其可以在初期在服务器中执行针对终端的认证,从而能够更为有效地对抗DDoS(分布式拒绝服务:DistributedDenialofService)攻击等。此外,根据本发明的实施例,可以将终端的认证以及会话密钥(SessionKey)生成过程所需要的通信次数最大限度地降低至1-pass(通)或者2-pass,从而可以使认证过程中的流量(traffic)负担最小化。附图说明图1是用于说明根据本发明的第一实施例的基于认证信息的认证系统的模块图。图2是用于说明根据本发明的第一实施例的基于认证信息的认证算法的全部步骤的流程图。图3是用于详细地说明根据本发明的第一实施例的基于认证信息的认证算法的认证以及密钥交换过程的流程图。图4是用于说明根据本发明的第二实施例的基于认证信息的认证系统的模块图。图5是用于说明根据本发明的第二实施例的基于认证信息的认证算法的全部步骤的流程图。图6是用于详细地说明根据本发明的第二实施例的基于认证信息的认证算法的认证以及密钥交换过程的流程图。图7是用于详细地说明根据本发明的第三实施例的基于认证信息的认证算法的认证以及密钥交换过程的流程图。符号说明100、400:基于用户认证信息的密钥交换系统102、402:终端104、404:服务器106、406:密钥分发装置具体实施方式以下,参考附图而对本发明的具体实施方式进行说明。然而,这仅仅是示例,本发明并不局限于此。在对本发明的实施例进行说明的过程中,如果认为对有关本发明的公知技术的具体说明有可能对本发明的主旨造成不必要的混乱,则省略其详细说明。另外,后述的术语均为考虑到本发明中的功能而定义的,其可能因使用者、运用者的意图或惯例等而不同。因此,需要以贯穿整个说明书的内容为基础而对其进行定义。本发明的技术思想由权利要求书的范围来确定,以下的实施例仅仅是用于对本发明所属的
技术领域
:中具有基本知识的人有效地说明本发明的技术思 想的一手段。图1是用于说明根据本发明的第一实施例的基于认证信息的认证系统100的模块图。如图所示,根据本发明的一实施例的基于认证信息的认证系统100包含终端102、服务器104以及密钥分发装置106。终端102选择终端侧的随机数(x),并利用所述终端侧的随机数(x)以及服务器端的识别信息(IDs)而生成终端102用户的认证信息所对应的密文(X、W)。在本发明的实施例中,服务器104的识别信息(IDs)是为了在网络上识别服务器104而赋予的信息,例如,其可以是服务器104的MAC地址、IP地址或者服务器104的认证书等。此外,终端102的用户的认证信息可以包括用户的密码、指纹信息等认证所述用户时所需要的所有种类的信息。当生成密文(X、W)时,终端102将密文(X、W)发送到服务器104而请求认证。服务器104存储并管理终端102用户的认证信息。此时,所述认证信息可以包括所述用户的密码、指纹信息等认证所述用户时所需要的所有的信息。在一实施例中,所述终端102可以设置用户的识别信息(IDc)以及密码(pw),并将其注册到服务器104。在一实施例中,客户端识别信息(IDc)可以是终端102用户的身份(ID)或者认证书等。终端102的用户可以直接注册所述密码(pw),然而为了提高安全性,还可以由利用所述密码的单向哈希值(H(pw))或者独立的硬件安全模块(HSM)而计算出的MAC(messageauthenticationcode)值(MACk(pw))来代替密码(pw)而进行注册。在以下的说明中,为了方便说明,假设所述认证信息为密码的单向哈希值(H(pw))。服务器104利用对应于服务器识别信息(IDs)的服务器端私钥(Ks)而对从所述终端接收到的所述密文(X、W)进行解密,从而还原所述用户的认证信息,并将被还原的所述认证信息与已注册到服务器104的认证信息进行比较而认证终端102。即,服务器104可通过从终端102接收到的密文(X、W)所包含的终端的认证信息而直接认证终端。此外,所述密文(X、W)的解密过程仅可在服务器104中执行,因此在所述认证过程中,终端102也将会间接地认证(implicitauthentication)服务器104。在成功认证终端102的情况下,服务器104生成用于与终端102进行通信的会话密钥(sk)。此外,在此过程中,服务器104可以选择随机数(y), 将由随机数(y)生成的第二会话密钥元素(Y)发送到终端102,接收到该第二会话密钥元素(Y)的终端102可以利用在所述第二会话密钥元素(Y)以及认证过程中用到的信息而生成与服务器相同的会话密钥(sk)。密钥分发装置(PrivateKeyGenerator)106从服务器104接收服务器端的识别信息(IDs),并分发对应于服务器识别信息(IDs)的服务器端私钥(Ks)。被存储的所述服务器端私钥(Ks)在后续的认证过程中被用于对从终端102接收到的密文(X、W)进行解密。在一实施例中,密钥分发装置106可以基于预设定的系统参数和自身的主密钥(MasterKey)、以及对应于陷门离散对数(Trapdoordiscretelogarithm)群的预先计算的数据来计算与所述服务器识别信息(IDs)对应的服务器端私钥(Ks)。具体的服务器端私钥(Ks)生成方法将会在下述的部分中进行说明。以下,对具有上述的构成的基于验证信息的验证系统100中的具体的验证方法进行说明。如图2所示,根据本发明的第一实施例的基于验证信息的验证方法200被划分为设置步骤(Setup,202)、服务器端私钥的分发步骤(Keyextract,204)、以及密钥交换步骤(KeyExchange,206)这三个步骤。其中,在设置步骤(202)中,对系统全部的构成要素做出定义;在私钥分发步骤(204)中,根据服务器104的请求而在密钥分发装置106中基于主密钥来生成对应于识别信息(IDs)的服务器端私钥(Ks)。在密钥交换步骤(206)中,将会执行终端102以及服务器104之间的认证,并由此生成会话密钥(sk)。设置(202)设置步骤是对用于终端102和服务器104之间的认证以及密钥交换的参数以及主密钥做出定义的步骤。首先,由两个质数p、q计算N=pq,其中p和q分别满足p≡3(mod4)、q≡3(mod4),而且是B-平滑(Bsmooth)的两个大小差不多的、较大的质数。此时,p、q满足给定的稳定参数所对应的安全强度(securitylevel),并且是密码学角度上安全的质数。安全性参数意味着决定针对加密算法的基本攻击时间和费用的算法的要素。此时,基本攻击意味着发现满足给定的数据(明文和密文)的密钥为止搜索所有可行的候选密钥的、穷举搜索(ExhaustiveSearch)方式的攻击。穷举搜索所消耗的时间取决于可行的密钥的个数,而 密钥的个数由密钥的长度来确定,因此在本情况下,参数意味着密钥的长度。此外,B值可以根据所述安全强度而适当地设定。之后,对哈希函数H以及随机哈希函数h做出定义。假设有限的群ZN={0,1,2,...,N-1}的最大循环子群(maximalcyclicsubgroup)的生成源(generator)为之后,如果将以生成源的方式生成的循环部分群定义为G,则哈希函数可以由此获得如同以下的数学式1的定义。[数学式1]H:{0,1}*→G(其中,{0,1}*是由0和1构成的任意的有限位串)即,所述哈希函数H以如下方式得到定义:在将给定的身份作为输入值时,将其输出值作为群G的元素。例如,在存在如下的随机哈希函数h':{0,1}*→Zn的情况下,哈希函数H可以如下述的数学式2地得到定义。[数学式2]H(ID)=h'(ID)2此外,哈希函数h可以如下数学式3地得到定义。[数学式3]h:{0,1}*→{0,1}n(其中,{0,1}n表示由0或者1中的任意的位(bit)构成的n位字符串)所述随机哈希函数例如可以使用SHA1、SHA-256、SHA-512等,然而本发明并不局限于特定的函数。通过上述的过程而被导出的系统参数(param)以及主密钥(mk)如下。param={N,G,g,H,h}mk=(p,q)服务器端私钥的分发(204)本步骤是在密钥分发装置106中,基于从服务器104接收的服务器识别信息(IDs)来分发私钥(Ks)的步骤。密钥分发装置106可以基于预设定的系统参数和自身的主密钥(MasterKey)、以及对应于陷门离散对数(Trapdoordiscretelogarithm:TDL)群的预先计算的数据来计算与给定的身份对应的私钥(Ks)。尽管在密码学角度上不可能进行离散对数的计算,然而如果知道陷门(Trapdoor),则存在能够容易地计算离散对数值的群,而该群被称为陷门离散对数群。在本发明中,利用如上所述的陷门离散对数群的特性而计算各个身份所对应的私钥。即,所述私钥生成者例如以表(table)等形式来存储预先计算的数据,并利用所接收的身份和存储于所述表的预先计算的数据而计算与接收到的身份对应的私钥,其中,所述预先计算的数据是针对所述主密钥和所述陷门离散对数群所对应的各个值而预先计算的数据。例如,如下述的数学式4,密钥分发装置106可以计算服务器端私钥(Ks)。[数学式4]Ks=logg(H(IDs))如上所述地计算出的所述私钥(Ks)可以通过安全的通道而被发送到服务器104。认证以及密钥交换(206)本步骤是执行终端102和服务器104之间的认证并生成会话密钥(sk)的步骤。图3是用于详细地说明根据本发明的第一实施例的基于认证信息的认证算法的认证以及密钥交换过程(206)的流程图。在302步骤中,终端102可以根据在所述202步骤中得到定义的系统参数而从ZN中选择任意的终端侧随机数(randomnumber)x。在304步骤中,终端102由所述终端侧随机数x计算第一会话密钥元素(X)(302)。此时,所述第一会话密钥元素(X)可以通过由如下的数学式5来计算而得到。[数学式5]X=gx(其中,g是所述循环部分群G的生成源,N是满足N=pq的整数,p以及q分别是满足p≡3(mod4)、q≡3(mod4)的质数)在306步骤中,终端102利用服务器识别信息(IDs)而生成密文(X、W)。此时,所述密文(X、W)表示对终端102用户的验证信息进行加密的值。此外,在所述密文(X、W)中,除了所述验证信息以外还可以额外地包含生成会话密钥时所需要的值(例如,gx等)。具体的密文(X、W)生成过程如下。首先,如下述的数学式6,终端102利用所述服务器识别信息(IDs)以及终端侧随机数(x)而生成终端侧加密元素(D)。[数学式6]D=(H(IDs))x(其中,D是终端侧加密元素,IDs是服务器识别信息,x是终端侧随机数,H是单向哈希值)之后,终端102将认证信息和终端侧加密元素(D)结合而生成加密字符串(W)。当假设所述认证信息为单向哈希值(H(pw))时,如下述的数学式7,加密字符串(W)可以由认证信息以及终端侧加密元素(D)的异或(XOR)方式计算而得到。[数学式7]W=DXORH(pw)在308步骤中,终端102可以将客户端识别信息(IDc)连同包含第一会话密钥元素(X)以及加密字符串(W)的密文(X、W)一起发送到服务器104。在310步骤中,服务器104利用服务器端私钥(Ks)而解密接收到的密文(X、W)。具体而言,如下述的计算数学式8,服务器104利用服务器端 私钥(Ks)以及第一会话密钥元素(X)而计算服务器端加密元素(D')。[数学式8]D'=XKs(其中,D'是服务器端加密元素,X是第一会话密钥元素,Ks是服务器端私钥)在此情况下,如果所述服务器端私钥(Ks)是正常地由服务器识别信息(IDs)生成的私钥,则服务器端加密元素(D')将会成为与终端侧加密元素(D)相同的值。之后,服务器104利用服务器端加密元素(D')而从加密字符串(W)还原认证信息。其可以被表示为一个如数学式9的公式。[数学式9]H'(pw)=WXORD'即,所述认证信息可以通过接收到的加密字符串(W)以及所述服务器端加密元素(D')之间的异或逻辑运算(XOR)而被还原。在312步骤中,服务器104根据被还原的所述认证信息(H'(pw))以及已存储到所述服务器的终端102的认证信息(H(pw))的同一性与否而认证终端102。如果H'(pw)与H(pw)相同,则服务器104可以判断为终端102已得到认证,如果两者不相同,则服务器104判断为其没有得到认证。此外,如上所述,在服务器104端不具有对应于服务器识别信息(IDs)的正确的私钥(Ks)的情况下,310步骤不能被正常地执行。因此,根据所述认证的结果值,终端102也可以间接认证服务器104。在314步骤中,服务器104根据在所述202步骤中得到定义的系统参数而从ZN中选择任意的服务器端随机数(randomnumber)。在316步骤中,服务器104由所述服务器端随机数(y)计算第二会话密钥元素(Y)。所述第二会话密钥元素(Y)可以通过下述的数学式10计算而得到。[数学式10]Y=gy(其中,g是所述循环子群G的生成源,N是满足N=pq的整数,p以及q分别是满足p≡3(mod4)、q≡3(mod4)的质数)在318步骤中,服务器104将生成的所述第二会话密钥元素(Y)发送到终端102。在320步骤中,服务器104利用在上一个步骤中生成或者被交换的信息而生成服务器端会话密钥(sk')。具体而言,如数学式11,服务器104由服务器端随机数(y)以及第一会话密钥元素(X)来生成第三密钥元素(Z')。[数学式11]Z'=Xy之后,服务器104通过将字符串散列化而生成服务器端会话密钥(sk'),其中,字符串包含客户端识别信息(IDc)、服务器识别信息(IDs)、加密字符串(W)、会话密钥元素(X)、第二会话密钥元素(Y)、服务器端加密元素(D')以及服务器端第三会话密钥(Z')中的一个以上。例如,服务器端会话密钥(sk')可以由如下的数学式12来生成。[数学式12]sk'=H(IDc,IDs,W,X,Y,D',Z')此外,在322步骤中,终端102还利用上一个步骤中所生成或者被交换的信息而生成终端侧会话密钥(sk)。具体而言,如数学式13,终端102由终端侧随机数(x)以及第二会话密钥元素(Y)来生成终端侧第三会话密钥元素(Z)。[数学式13]Z=Yx此时,所述终端侧密钥(Z)与服务器端第三会话密钥元素(Z')相同。之后,终端102对包含客户端识别信息(IDc)、服务器识别信息(IDs)、加密字符串(W)、第一会话密钥元素(X)、第二回话密钥元素(Y)、终端侧加密元素(D)以及终端侧第三会话密钥元素(Z)中的一个以上的字符串进行散列化(hashing)而生成终端侧会话密钥(sk)。例如,终端侧会话密钥(sk)可以通过下述的数学式14而生成。[数学式14]sk=H(IDc,IDs,W,X,Y,D,Z)如上所述,终端侧加密元素(D)以及终端侧第三会话密钥元素(Z)分别与服务器端加密元素(D')以及服务器端第三密钥元素(Z')相同,因此,终端侧会话密钥(sk)和服务器端会话密钥(sk')也相同。即,通过如上所述的过程,终端102和服务器能够不直接收发密钥而共享用于两者之间的安全的通信的会话密钥。图4是用于说明根据本发明的第二实施例的基于认证信息的认证系统400的模块图。如图所示,根据本发明的一实施例的基于认证信息的认证系统400包含终端402、服务器404以及密钥分发装置406。终端402选择终端侧随机数(x),并利用终端侧随机数(x)以及服务器识别信息(IDs)而生成终端402用户的认证信息所对应的密文(X、W)。在本发明的实施例中,服务器404的识别信息(IDs)例如可以是服务器404的MAC地址、IP地址或者服务器104的认证书等。此外,终端402的用户的认证信息可以包括用户的密码、指纹信息等认证所述用户时所需要的所有类型的信息。当生成密文(X、W)时,终端402将密文(X、W)发送到服务器104而请求认证。服务器404存储并管理终端402用户的认证信息。此时,所述认证信息可以包括所述用户的密码、指纹信息等认证所述用户时所需要的所有的信息。在一实施例中,所述终端402可以设置用户的识别信息(IDc)以及密码(pw),并将其注册到服务器404。在一实施例中,客户端识别信息(IDc)可以是终 端402用户的身份(ID)或者认证书等。终端402的用户可以直接注册所述密码(pw),然而为了提高安全性,还可以将利用所述密码的单向哈希值(H(pw))或者独立的硬件安全模块(HSM)而计算出的MAC(messageauthenticationcode)值(MACk(pw))代替密码(pw)而进行注册。在以下的说明中,为了方便说明,假设所述认证信息为密码的单向哈希值(H(pw))。服务器404由对应于服务器识别信息(IDs)的服务器端私钥(Ks)而对从所述终端接收到的所述密文(X、W)进行解密,从而还原所述用户的认证信息,并将被还原的所述认证信息与已注册到服务器404的认证信息进行比较而认证终端402。即,服务器404可以将从终端402接收的密文(X、W)所包含的终端的认证信息而直接认证终端。此外,所述密文(X、W)的解密过程仅可在服务器404中执行,因此在所述认证过程中,终端402也将会间接地认证(implicitauthentication)服务器404。在成功认证终端402的情况下,服务器404生成用于与终端402进行通信的会话密钥(sk)。密钥分发装置(PrivateKeyGenerator)406从服务器404接收服务器端的识别信息(IDs),并分发对应于服务器识别信息(IDs)的服务器端私钥(Ks)。被存储的所述服务器端私钥(Ks)在后续的认证过程中被用于对从终端402接收的密文(X、W)进行解密。在一实施例中,密钥分发装置406可以基于预设定的系统参数和自身的主密钥(MasterKey)、以及对应于陷门离散对数(Trapdoordiscretelogarithm)群的预先计算的数据来计算与所述服务器识别信息(IDs)对应的服务器端私钥(Ks)。对具体的服务器端私钥(Ks)生成方法将会在下述的部分阐述。以下,对具有上述的构成的基于验证信息的验证系统400中的具体的验证方法进行说明。如图5所示,根据本发明的第二实施例的基于验证信息的验证方法(500)被划分为设置步骤(Setup,502)、服务器端私钥的分发步骤(Keyextract,504)、以及密钥交换步骤(KeyExchange,506)的三个步骤。其中,在设置步骤(502)中,对系统全部的构成要素做出定义;在私钥分发步骤(504)中,根据服务器404的请求而在密钥分发装置406中基于主密钥来生成对应于识别信息(IDs)的服务器端私钥(Ks)。在密钥交换步骤(506)中,执行终端402与服务器404之间的认证,并由此生成会话密钥(sk)。上述的过程中,设置步骤(502)以及私钥分发步骤(504)实质上与上述的第一实施例中的设置步骤(202)以及私钥分发步骤(204)相同,因此,在此省略对其进行的说明。认证以及密钥交换步骤(506)是执行终端402和服务器404之间的认证并生成会话密钥(sk)的步骤。图6是用于说明根据本发明的第二实施例的认证以及密钥交换过程(506)的流程图。在602步骤中,终端402可以根据在所述502步骤中得到定义的系统参数而从ZN中选择任意的终端侧随机数(randomnumber)x。在604步骤中,终端402由所述终端侧随机数x计算第一会话密钥元素(X)。此时,所述第一会话密钥元素(X)可以通过由如下的数学式15来计算而得到。[数学式15]X=gx(其中,g是所述循环部分群G的生成源,N是满足N=pq的整数,p以及q分别是满足p≡3(mod4)、q≡3(mod4)的质数)在606步骤中,终端402利用服务器识别信息(IDs)而生成密文(X、W)。此时,所述密文(X、W)意味着对终端402用户的验证信息进行加密的值。此外,在所述密文(X、W)中,除了所述验证信息以外还可以额外地包含生成会话密钥时所需要的值(例如,gx等)。具体的密文(X、W)生成过程如下。首先,如下述的数学式16,终端402利用所述服务器识别信息(IDs)以及终端侧随机数(x)而生成终端侧加密元素(D)。[数学式16]D=(H(IDS))x(其中,D是终端侧加密元素,IDs是服务器识别信息,x是终端侧随机数,H是单向哈希值)之后,终端402将认证信息和终端侧加密元素(D)结合而生成加密字 符串(W)。当假设所述认证信息为单向哈希值(H(pw))时,如下述的数学式17,加密字符串(W)可以由认证信息以及终端侧加密元素(D)的异或逻辑运算(XOR)方式计算而得到。[数学式17]W=DXORH(pw)在608步骤中,终端402可以与客户端识别信息(IDc)一起将包含第一会话密钥元素(X)以及加密字符串(W)的密文(X、W)发送到服务器104。在610步骤中,服务器404利用服务器端私钥(Ks)而解密接收到的密文(X、W)。具体而言,如下述的计算数学式18,服务器404利用服务器端私钥(Ks)以及第一会话密钥元素(X)而计算服务器端加密元素(D')。[数学式18]D'=XKs(其中,D'是服务器端加密元素,X是第一会话密钥元素,Ks是服务器端私钥)在此情况下,如果所述服务器端私钥(Ks)是正常地由服务器识别信息(IDs)生成的私钥,则服务器端加密元素(D')将会成为与终端侧加密元素(D)相同的值。之后,服务器404利用服务器端加密元素(D')而从加密字符串(W)还原认证信息。其可以被表示为一个如数学式19的公式。[数学式19]H'(pw)=WXORD'即,所述认证信息可以通过接收到的加密字符串(W)以及所述服务器端加密元素(D')之间的异或逻辑运算(XOR)而被还原。在612步骤中,服务器404根据被还原的所述认证信息(H'(pw))以及已存储到所述服务器的终端402的认证信息(H(pw))的同一性与否而认证终 端402。如果H'(pw)与H(pw)相同,则服务器404可以判断为终端402已得到认证,如果两者不相同,则服务器404判断为其没有得到认证。此外,如上所述,在服务器404端不具有对应于服务器识别信息(IDs)的正确的私钥(Ks)的情况下,310步骤不能被正常地执行。因此,根据所述认证的结果值,终端402还可以间接认证服务器404。在614步骤中,服务器404利用在上一个步骤中生成或者被交换的信息而生成服务器端会话密钥(sk')。具体而言,服务器404通过将字符串散列化而生成服务器端会话密钥(sk'),其中,字符串包含客户端识别信息(IDc)、服务器识别信息(IDs)、加密字符串(W)、会话密钥元素(X)以及服务器端加密元素(D')中的一个以上。例如,服务器端会话密钥(sk')可以由如下的数学式20来生成。[数学式20]sk'=H(IDc,IDs,W,X,D')此外,在616步骤中,终端402还利用上一个步骤中所生成或者被交换的信息而生成终端侧会话密钥(sk)。具体而言,终端402通过将字符串散列化而生成服务器端会话密钥(sk),其中,字符串包含客户端识别信息(IDc)、服务器识别信息(IDs)、加密字符串(W)、会话密钥元素(X)以及终端侧加密元素(D)中的一个以上。例如,终端侧会话密钥(sk)可以由如下的数学式21来生成。[数学式21]sk=H(IDc,IDs,W,X,D)如上所述,终端侧加密元素(D)与服务器端加密元素(D')相同,因此终端侧会话密钥(sk)与服务器端会话密钥(sk')也相同。即,通过如上所述的过程,终端402和服务器404可以不直接收发密钥而共享用于执行两者之间的安全的通信的会话密钥。此外,对根据本实施例的情况而言,能够仅通过终端402和服务器404之间的一次性消息收发(1-pass)而交换密钥,因此可以有效地减少用于密钥交换的消息收发回收。图7是用于详细地说明根据本发明的第三实施例的认证以及密钥交换过程506的流程图。在所示出的流程图中,以与图6相同的识别符标记的602至612步骤与如上所述的第二实施例相同,因此,在此省去对其的说明。对本实施例的情况而言,当在612步骤中完成终端402的认证时,在终端702中,服务器404可以通过终端402发送随机消息(rs)。所述随机消息(rs)用于会话密钥的生成。即,对于本实施例的情况而言,可以通过随机消息(rs)的发送而将基于1-pass的协议扩展为基于2-pass的协议。在704步骤中,服务器404利用在上一步骤中生成或者交换的信息而生成服务器端会话密钥(sk')。具体而言,服务器404通过将字符串散列化而生成服务器端会话密钥(sk'),其中,字符串包含客户端识别信息(IDc)、服务器识别信息(IDs)、加密字符串(W)、会话密钥元素(X)以及服务器端加密元素(D')中的一个以上。例如,服务器端会话密钥(sk')可以由如下的数学式22来生成。[数学式22]sk'=H(IDc,IDs,W,X,rs,D')此外,在706步骤中,终端402还利用在上一步骤中交换的信息而生成终端侧会话密钥(sk)。具体而言,终端402通过将字符串散列化而生成服务器端会话密钥(sk),其中,字符串包含客户端识别信息(IDc)、服务器识别信息(IDs)、加密字符串(W)、会话密钥元素(X)、随机消息rs以及终端侧加密元素(D)中的一个以上。例如,终端侧会话密钥(sk)可以由如下的数学式23来生成。[数学式23]sk=H(IDc,IDs,W,X,rs,D)如上所述,终端侧加密元素(D)与服务器端加密元素(D')相同,因此终端侧会话密钥(sk)与服务器端会话密钥(sk')也相同。即,通过如上所述的过程,终端402和服务器404可以不直接收发密钥而共享用于执行两者之间的安全的通信的会话密钥。另外,本发明的一实施例可以包括计算机可读记录介质,其包括用于在计算机上执行本说明书中记载的方法的程序。所述计算机可读记录介质可以单独地或者组合地包括程序命令、本地数据文件、本地数据结构等。所述介质可以是为本发明而特别地设计并构成的介质,或者是在计算机软件领域中通常被使用的介质。计算机可解码记录介质的示例包括:磁介质,如硬盘、软盘以及磁带等;光记录介质,如CD-ROM、DVD等;磁-光介质,软盘等;以及ROM、RAM、闪存等为了储存命令并执行程序命令而特别构成的硬件装置。作为程序命令的例,不仅包括如利用编译器制作的计算机语音代码,还可以包括可利用翻译器等由计算机执行的高级语言代码。以上,对本发明的具有代表性的实施例进行了详细的说明,然而在本发明所属的
技术领域
:中具有基本知识的人员可以理解对上述的实施例可在不脱离本发明的范围的限度内进行多种变形。因此,本发明的权利范围并不局限于上述的实施例,本发明的权利范围需要根据权利要求书的范围以及与该权利要求书均等的范围来确定。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1