一种建立共享密钥的方法、设备及其系统转让专利

申请号 : CN201010240096.0

文献号 : CN101908959B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郑强

申请人 : 北京握奇数据系统有限公司

摘要 :

本发明公开了一种建立共享密钥的方法、设备及其系统,以提高节点之间使用的共享密钥的破解难度,提高节点间通信的安全性。该方法包括:第一节点向密钥生成中心PGC发送密钥请求报文;PGC根据所述第一节点的身份信息和系统主密钥,生成与该第一节点对应的私有报文QID,并将该QID进行加密之后发送给所述第一节点;所述第一节点对接收到的所述QID进行解密,并根据解密之后的QID和第一节点自身生成的第一随机数,生成与该第一节点对应的私钥;所述第一节点在与第二节点进行通信时,根据所述私钥、第二节点的身份信息,生成所述第一节点与所述第二节点进行通信的共享密钥。采用本发明技术方案,提高了共享密钥的破解难度和节点间通信的安全性。

权利要求 :

1.一种建立共享密钥的方法,其特征在于,包括:

第一节点向密钥生成中心PGC发送密钥请求报文;

所述PGC接收到所述密钥请求报文时,根据所述第一节点的身份信息和系统主密钥,生成与该第一节点对应的私有报文QID,并将所述私有报文QID进行加密之后发送给所述第一节点;

所述第一节点对接收到的加密后的私有报文QID进行解密,并根据解密之后的私有报文QID和第一节点自身生成的第一随机数,生成与该第一节点对应的私钥;

所述第一节点在与第二节点进行通信时,根据所述私钥、第二节点的身份信息,生成所述第一节点与所述第二节点进行通信的共享密钥。

2.如权利要求1所述的方法,其特征在于,所述PGC对所述私有报文QID进行加密,包括:PGC根据存储的所述第一节点的辅助信息、系统主密钥,生成用于对该私有报文QID进行加密的第一密钥,并采用该第一密钥对该私有报文QID进行加密,所述第一节点的辅助信息根据第一系统参数和所述第一节点生成的第二随机数确定;

所述第一节点对接收到的所述私有报文QID进行解密,包括:第一节点根据自身生成的第二随机数和第二系统参数,生成用于对所述私有报文QID进行解密的第二密钥,并采用该第二密钥对该私有报文QID进行解密。

3.如权利要求2所述的方法,其特征在于,所述PGC通过下式得到所述第一密钥:式中,SKPGC为所述PGC生成的第一密钥,s为系统主密钥,ASN为所述第一节点的辅助信息,d′N为第二随机数,p为第一系统参数;

所述第一节点通过下式得到第二密钥:

SKN=d′N·ppub

式中,SKN为第一节点生成的第二密钥,d′N为第二随机数,ppub为第二系统参数。

4.如权利要求2所述的方法,其特征在于,所述第一节点生成所述私钥之前,还包括:所述第一节点根据第一节点的身份信息、第二系统参数、第一系统参数,确定解密之后的私有报文QID是否为PGC下发,若不是PGC下发,结束流程或重新向所述PGC发送密钥请求报文。

5.如权利要求4所述的方法,其特征在于,所述PGC生成私有报文QID,根据下式得到:QID=s·h(ID)

式中,所述s为系统主密钥,ID为所述第一节点的身份信息,h(ID)为对ID进行哈希运算得到的哈希值。

6.如权利要求4所述的方法,其特征在于,

所述第一节点确定所述解密后的私有报文QID是否为PGC下发,包括:判断下式是否成立,若成立,则确定私有报文QID为PGC下发,若不成立,则确定所述私有报文QID不为PGC下发:QID·p=h(ID)·ppub

式中,p为第一系统参数,ID为所述第一节点的身份信息,h(ID)为对ID进行哈希运算得到的哈希值,ppub为第二系统参数。

7.如权利要求4~6任一项所述的方法,其特征在于,所述第一节点确定所述私有报文QID是PGC下发时,销毁所述第二随机数。

8.如权利要求1~6任一项所述的方法,其特征在于,所述第一节点与第二节点进行通信时,接收所述第二节点发送的与该第二节点对应的哈希值,该哈希值为PGC对所述第二节点的身份信息进行哈希运算得到的值;

所述第一节点生成与第二节点进行通信的共享密钥,通过下式得到:KN=SN·IDK·h(IDK)

式中,所述KN为共享密钥,SN为第一节点生成的私钥,IDK为第二节点的身份信息,所述h(IDK)为PGC对IDK进行哈希运算得到的哈希值。

9.一种密钥生成中心,其特征在于,包括:

接收模块,用于接收第一节点发送的密钥生成请求报文;

私有报文生成模块,用于在所述接收模块接收到所述密钥生成请求报文时,根据所述第一节点的身份信息和系统主密钥,生成与该第一节点对应的私有报文QID;

加密模块,用于对所述私有报文生成模块生成的私有报文QID进行加密;

发送模块,用于将所述加密模块加密之后的私有报文QID发送给所述第一节点。

10.如权利要求9所述的密钥生成中心,其特征在于,所述加密模块对私有报文QID进行加密,具体应用为:根据存储的第一节点的辅助信息、系统主密钥,生成用于对该私有报文QID进行加密的第一密钥,并采用该第一密钥对该私有报文QID进行加密,所述第一节点的辅助信息根据第一系统参数和所述第一节点生成的第二随机数确定。

11.如权利要求10所述的密钥生成中心,其特征在于,所述加密模块生成第一密钥,具体应用为:通过下式得到所述第一密钥:

式中,SKPGC为密钥生成中心PGC生成的第一密钥,s为系统主密钥,ASN为所述第一节点的辅助信息,d′N为第二随机数,p为第一系统参数。

12.一种节点,其特征在于,包括:

发送模块,用于向密钥生成中心PGC发送密钥请求报文;

接收模块,用于接收所述PGC发送的与所述节点相对应的私有报文QID;

解密模块,用于对所述接收模块接收的私有报文QID进行解密;

私钥生成模块,用于根据所述解密模块解密得到的私有报文QID和所述节点自身生成的第一随机数,生成与所述节点对应的私钥;

共享密钥生成模块,用于在与第二节点进行通信时,根据所述私钥生成模块生成的私钥、第二节点的身份信息,生成所述节点与所述第二节点进行通信的共享密钥。

13.如权利要求12所述的节点,其特征在于,所述解密模块对私有报文QID进行解密,具体应用为:根据所述节点生成的第二随机数和第二系统参数,生成用于对所述私有报文QID进行解密的第二密钥,并采用该第二密钥对该私有报文QID进行解密。

14.如权利要求13所述的节点,其特征在于,所述解密模块生成第二密钥,具体应用为:通过下式得到第二密钥:

SKN=d′N·ppub

式中,SKN为节点生成的第二密钥,d′N为第二随机数,ppub为第二系统参数。

15.如权利要求12~14任一项所述的节点,其特征在于,还包括:判断模块,用于根据节点的身份信息、第二系统参数、第一系统参数,确定所述解密模块解密得到的私有报文QID是否为PGC下发;

所述发送模块进一步用于,在所述判断模块判断所述私有报文QID不是PGC下发时,重新向所述PGC发送密钥请求报文。

16.一种建立共享密钥的系统,其特征在于,包括:

密钥生成中心PGC,用于接收第一节点发送的密钥请求报文;根据所述第一节点的身份信息和系统主密钥,为该第一节点生成私有报文QID,并将该私有报文QID进行加密之后发送给所述第一节点;

所述第一节点,用于对接收到的所述私有报文QID进行解密,并根据解密之后的私有报文QID、第一节点自身生成的第一随机数,生成与该第一节点对应的私钥;并在与第二节点进行通信时,根据所述私钥、第二节点的身份信息,生成所述第一节点与所述第二节点进行通信的共享密钥。

17.如权利要求16所述的系统,其特征在于,所述PGC对所述私有报文QID进行加密,具体应用为:PGC根据存储的所述第一节点的辅助信息、系统主密钥,生成用于对该QID进行加密的第一密钥,并采用该第一密钥对该私有报文QID进行加密;

所述第一节点对接收到的所述加密后的私有报文QID进行解密,具体应用为:第一节点根据自身生成的第二随机数和第二系统参数,生成用于对所述私有报文QID进行解密的第二密钥,并采用该第二密钥对该私有报文QID进行解密,所述第一节点的辅助信息根据第一系统参数和所述第一节点生成的第二随机数确定。

18.如权利要求17所述的系统,其特征在于,所述第一节点进一步用于,在生成所述私钥之前,根据第一节点的身份信息、第二系统参数、第一系统参数,确定解密之后QID是否为PGC下发,若不是PGC下发,结束流程或重新向所述PGC发送密钥请求报文。

说明书 :

一种建立共享密钥的方法、设备及其系统

技术领域

[0001] 本发明涉及通信领域,尤其涉及一种建立共享密钥的方法、设备及其系统。 背景技术
[0002] 目前,节点对之间进行通信时,为保证通信的安全性,节点对之间通过共享密钥来对进行通信的数据包进行加密解密,节点之间的共享密钥的生成方式多种多样,其中最主要的方式有以下几种:
[0003] 方式一、基于用户身份的密钥管理系统建立节点对间的共享密钥。基于身份的密码系统具有计算简单的特性,适用于能量受限的网络,例如Ad Hoc网络,但采用该种方式所带来的缺陷为:PGC(Private Key Generate Center,私钥生成中心)获知每个节点的私钥,若不法分子登录到PGC,并以PGC的身份有意扮成任何一个用户,可轻而易举的获取各节点的私钥,从而轻易地获知节点与节点间的共享密钥。因此,采用该种方式,节点的私钥易被破解,从而导致节点间的共享密钥易被获取,安全性较低,不可靠。
[0004] 方式二、结合Diffie-Hellman与基于身份密钥的密钥协商协议。该方案在密钥协商的过程中,对节点进行认证,以解决DH密钥交换协议中被攻击的问题,进一步提高安全性。但是其所带来的缺陷为:PGC必须通过安全的密钥通道将节点的私钥信息发送给用户,即需要在PGC与用户之间建立安全的秘密通道,然而建立安全的秘密通道成本较高且在无线网络中的可实施性较差。
[0005] 方式三、基于离散数学难题或Diffie-Hellman算法生成共享密钥。节点根据PGC为该节点生成的私有报文QID和节点自身生成的随机数,生成私钥,但是该种方式的缺陷在于:PGC将为该节点生成的QID直接通过公共信道发送给该节点,因此,该QID易于被其他节点或不法分子截获,若该节点生成随机数 泄露或被盗取,则其他节点或不法分子可轻而易举的根据截获的QID和泄露的随机数获取该节点的私钥,从而,可以容易的破解该节点与其他节点间的共享密钥,安全性较低、可靠性较差。
[0006] 因此,目前迫切需要一种破解难度较高、且易于实现的建立共享密密钥的方法。 发明内容
[0007] 本发明提供一种建立共享密钥的方法、设备及其系统,以提高节点之间使用的共享密钥的破解难度,提高节点间通信的安全性。
[0008] 一种建立共享密钥的方法,包括:
[0009] 第一节点向密钥生成中心PGC发送密钥请求报文;
[0010] 所述PGC接收到所述密钥请求报文时,根据所述第一节点的身份信息和系统主密钥,生成与该第一节点对应的私有报文QID,并将所述私有报文QID进行加密之后发送给所述第一节点;
[0011] 所述第一节点对接收到的加密后的私有报文QID进行解密,并根据解密之后的私有报文QID和第一节点自身生成的第一随机数,生成与该第一节点对应的私钥; [0012] 所述第一节点在与第二节点进行通信时,根据所述私钥、第二节点的身份信息,生成所述第一节点与所述第二节点进行通信的共享密钥。
[0013] 一种密钥生成中心,包括:
[0014] 接收模块,用于接收节点发送的密钥生成请求报文;
[0015] 私有报文生成模块,用于在所述接收模块接收到所属密钥生成请求报文时,根据所述节点的身份信息和系统主密钥,生成与该节点对应的私有报文QID; [0016] 加密模块,用于对所述私有报文生成模块生成的私有报文QID进行加密; [0017] 发送模块,用于对所述加密模块加密之后的私有报文QID发送给所述节点。 [0018] 一种节点,包括:
[0019] 发送模块,用于向密钥生成中心PGC发送密钥请求报文;
[0020] 接收模块,用于接收所述PGC发送的与所述节点相对应的私有报文QID; [0021] 解密模块,用于对所述接收模块接收的私有报文QID进行解密; [0022] 私钥生成模块,用于根据所述解密模块解密得到的私有报文QID和所述节点自身生成的第一随机数,生成与所述节点对应的私钥;
[0023] 共享密钥生成模块,用于在与第二节点进行通信时,根据所述私钥生成模块生成的私钥、第二节点的身份信息,生成所述节点与所述第二节点进行通信的共享密钥。 [0024] 一种建立共享密钥的系统,包括:
[0025] 密钥生成中心PGC,用于接收第一节点发送的密钥请求报文;根据所述第一节点的身份信息和系统主密钥,为该第一节点生成私有报文QID,并将该私有报文QID进行加密之后发送给所述第一节点;
[0026] 所述第一节点,用于对接收到的所述私有报文QID进行解密,并根据解密之后的私有报文QID、第一节点自身生成的第一随机数,生成与该第一节点对应的私钥;并在与第二节点进行通信时,根据所述私钥、第二节点的身份信息,生成所述第一节点与所述第二节点进行通信的共享密钥。
[0027] 本发明实施例中,由于PGC对生成的私有报文QID进行了加密,从而使得,即使该节点生成的随机数泄露或被盗取,由于其他节点或不法分子无法对加密的私有报文QID进行解密,不能轻易地得到该节点的私钥,从而不能破解节点之间进行通信的共享密钥,继而提高了节点之间共享密钥的破解难度,提高了节点间通信的安全性、可靠性。 附图说明
[0028] 图1为本发明实施例中建立共享密钥的方法流程图;
[0029] 图2为本发明实施例中各节点通过PGC生成私钥的结构示意图; [0030] 图3为本发明实施例中建立共享密钥的方法流程图;
[0031] 图4为本发明实施例中密钥生成中心的结构示意图;
[0032] 图5为本发明实施例中节点的结构示意图。

具体实施方式

[0033] 为解决现有技术存在的技术问题,本发明实施例提供一种建立共享密钥的方法,该方法包括:节点向PGC发送密钥请求报文;PGC接收到节点发送的密钥请求报文时,根据该节点的身份信息以及系统初始化的系统参数,为该节点生成私有报文QID,对该私有报文QID进行加密之后发送给节点;节点接收到的加密后的私有报文QID进行解密,并判断该私有报文QID是否为PGC下发,若是,则根据节点自身生成的随机数和私有报文QID,生成与该节点对应私钥;该节点在与第二节点进行通信时,根据自身的私钥和第二节点的身份信息,生成该节点与第二节点之间的共享密钥。采用本发明技术方案,由于PGC对生成的私有报文QID进行了加密,从而使得,即使该节点生成的随机数泄露或被盗取,由于其他节点或不法分子无法对加密后的私有报文QID进行解密,不能轻易地得到该节点的私钥,从而不能破解节点之间进行通信的共享密钥,继而提高了节点之间共享密钥的破解难度,提高节点间通信的安全性、可靠性。
[0034] 本发明实施例中,为了提高安全可靠性,涉及到的密钥的生成以及私有报文的生成,可以基于离散数学难题或Diffie-Hellman难题,为便于本领域技术人员理解,下面对本发明实施例中应用到的离散数学难题与Diffie-Hellman难题进行详细的描述。 [0035] 计算离散对数难题:设G1是阶为q的加法群,其中q是一个大素数,假定P∈G1,P∈G1,Q∈G1,且P,Q满足关系Q=n·P,已知P,Q,计算整数n是一个难解的数学问题。 [0036] 计算Diffie-Hellman难题:设G1,G2分别是阶为q的加法群和乘法群,其中q是一个大素数。在双线性映射e:G1×G2→G2中,设P为G1的本原元,对于任意的a、b∈Zp,给定P、aP、bP∈G1,计算abP是难解的数学问题。
[0037] 下面结合说明书附图对本发明技术方案进行详细的描述。
[0038] 参见图1,为本发明实施例中建立共享密钥的方法流程图,该流程包括以下步骤: [0039] 步骤101、节点N向PGC发送密钥请求报文。
[0040] 该步骤中,密钥请求报文中可携带有该节点N的身份信息IDN,节点N可以以广播形式向PGC发送该密钥请求报文。
[0041] 步骤102、PGC在接收到该节点N发送的密钥请求报文时,根据该节点N的身份信息IDN和系统初始化定义的主密钥s,为该节点N生成私有报文 并对该私有报文 进行加密之后发送给节点N。
[0042] 该步骤中,PGC既可以根据密钥请求报文中携带的节点N的身份信息生成私有报文 也可以根据PGC存储的该节点N的身份信息来生成私有报文
[0043] 该步骤中,PGC将加密后的私有报文 通过公共信道发送至节点N。 [0044] 步骤103、节点N对该加密后的私有报文 进行解密,并根据系统参数确定解密得到的私有报文 为PGC下发时,根据节点N自身生成的第一随机数dN、私有报文 生成私钥KN。
[0045] 步骤104、节点N与其他节点(用节点K表示)进行通信时,该节点N根据自身的私钥KN、节点K的身份信息IDK,生成节点N与节点K之间的共享密钥KNK。 [0046] 本发明实施例中,PGC可通过对称加密机制对该私有报文 进行加密;节点N生成对称密钥SKPGC,并采用对称密钥SKPGC对该 进行解密。
[0047] 本发明实施例中,PGC对私有报文 进行加密的方式多种多样,并不仅限于本发明实施例中的对称加密机制,比如,还可以采用非对称加密机制对 进行加密解密。 [0048] 本发明实施例中,系统初始化,包括:系统自动生成阶为q的加法群G1,q为一个大素数,运算都是基于群G1上的离散对数问题;选取G1中的本原元p作 为第一系统参数;定义Hash函数(如常用的MD5、SHA-1等),后续式中用h表示定义的Hash函数;选取主密钥s,s∈Zq;定义Ppub=s·p为第二系统参数,第二系统参数Ppub为采用计算离散数学难题的方式对第一系统参数p与系统主密钥s进行运算的结果;PGC将系统初始化的第一系统参数p和第二系统参数ppub发送给与其连接的各节点,各节点存储接收到的系统参数。 [0049] 节点N在向PGC发送密钥请求报文之前,生成身份信息IDN和辅助信息ASN,并公布身份信息IDN和辅助信息ASN,PGC存储该节点N的身份信息IDN和辅助信息ASN;ID在网络生存期间内是唯一的,且能够唯一标识出节点的身份。节点N生成身份信息IDN和辅助信息ASN,具体为:节点N产生2个随机数,分别用第一随机数dN、第二随机数d′N表示;节点N根据该两个随机数、第一系统参数p,生成身份信息IDN和辅助信息ASN,为提高破解难度,本发明实施例中,节点N可采用计算离散数学难题的方式分别生成身份信息和辅助信息为:IDN=dN·p,ASN=d′N·p。
[0050] 上述步骤102中,PGC可根据以下式(1)生成私有报文
[0051] 式(1)
[0052] 式(1)中,s为系统初始化定义的主密钥,h(IDN)为采用系统初始化定义的Hash函数对IDN进行哈希运算得到的哈希值。
[0053] 较佳地,上述步骤102,还包括步骤:
[0054] PGC在接收到节点N发送的密钥请求报文时,利用本地存储的该节点N的身份信息IDN对该节点N发送的身份信息IDN进行验证,验证成功时,为该节点N生成私有报文 验证失败时,结束流程、向该节点N发送身份信息验证失败的通知消息或者向PGC重新发送密钥请求报文。
[0055] 上述流程的步骤102中,PGC对该私有报文 进行加密,具体为:PGC根据该节点N的辅助信息ASN和设定的主密钥S,生成用于对私有报文 进 行加密的密钥SKPGC,可通过式(2)得到:
[0056] SKPGC=s·ASN 式(2)
[0057] 式(2)中,SKPGC为PGC生成的用于对私有报文 进行加密的密钥,s为系统初始化定义的主密钥,ASN为该节点N的辅助信息。
[0058] 本发明实施例中,对私有报文 进行加密的方式并不仅限于本发明提到的加密方式,还可以采用现有技术中其他加密方式进行加密,本发明实施例列举的加密方式只是其中的一种方式,本领域技术人员应该可以根据本发明技术方案的启示想到很多其他的加密方式,在此不再一一列举。
[0059] 步骤103中,节点N在接收到PGC下发的私有报文 时,根据第二随机数d′N和第二系统参数Ppub,生成用于对该私有报文 进行解密的密钥SKN,具体可通过式(3)得到:
[0060] SKN=d′N·ppub 式(3)
[0061] 式(3)中,SKN为节点N生成的用于对私有报文 进行解密的密钥,d′N为节点N生成的第二随机数,ppub为系统初始化定义的第二系统参数。
[0062] 较佳地,上述步骤102还包括步骤:将节点N的h(IDN)发送给节点N;上述步骤103中,节点N确定解密得到的私有报文 是否为PGC下发的信息,具体为:节点N采用计算离散数学难题的方式,对解密得到的私有报文 与第一系统参数p进行运算,得到 节点N采用计算离散数学难题的方式对PGC下发的h(IDN)与第二系统参数ppub进行运算,得到h(IDN)·ppub;判断 与hpub·ppub是否相等,若相等,则确定该解密得到的私有报文 为PGC下发的,若不相等,则确定该解密得到的私有报文 不是PGC下发的。
[0063] 较佳地,为避免确定私有报文 不是PGC下发时,节点N向PGC重新发送密钥报文请求时,需要重新生成第二随机数d′N而导致延时较长、效率较低的问题,本发明实施例中,节点N生成一组第二随机数,如 若该次发送给PGC的身份信息是根据 生成时,在确定私有报文 不是PGC下发时,节点N将 销毁,从该组随机数中选取 根据该 生成身份信息IDN和辅助信息ASN,并重新公布新生成的IDN和ASN,依此类推。上述流程的步骤103中,该节点生成私钥SN,通过式(4)得到:
[0064] SN=di·s·h(IDN) 式(4)
[0065] 式(4)中,SN为节点N生成的私钥,di为节点生成的第一随机数,s为系统初始化定义的主密钥,h(IDN)为采用系统初始化定义的Hash函数对IDN进行哈希运算得到的哈希值。
[0066] 较佳地,上述步骤103进一步包括步骤:
[0067] 节点N在判断解密得到的私有报文 不为PGC下发时,结束流程,重新向PGC发送密钥请求报文,该密钥请求报文中携带有该节点的身份信息。
[0068] 本发明实施例中,节点间进行通信时,都会将自身的身份信息发送给通信对端节点。
[0069] 上述流程的步骤104中,节点N与节点K生成共享密钥,具体为:该节点N的私钥为SN,该节点N通过式(5)确定出共享密钥为KN,节点K依据上述流程生成的密钥为SK,该节点K通过式(6)确定出共享密钥为KK,其中KN与KK相等:
[0070] KN=SN·IDK·h(IDK) 式(5)
[0071] KK=SK·IDN·h(IDN) 式(6)
[0072] 式(5)中,SN为节点N的私钥,IDK为节点K的身份信息,h(IDK)为Hash函数对IDK进行哈希运算得到的哈希值,h(IDK)可以为节点K发送给节点N也可以是PGC发送给节点N;式(6)中,SK为节点K的私钥,IDN为节点N的身份信息,h(IDN)为Hash函数对IDN进行哈希运算得到的哈希值,h(IDK)可以为节点N发送给节点K也可以是PGC发送给节点K。 [0073] 本发明实施例中,在任意的分布式网络中都可以使用本发明技术方案,例 如在Ad Hoc网络中,各节点都可以通过上述方法流程来通过PGC生成对应的QID,如图2所示,各节点根据PGC为自身生成的私有报文QID生成私钥;两个节点在进行通信时,任何一端节点可根据自身的私钥和对方节点的身份信息来生成共享密钥。
[0074] 本发明技术方案并不仅限于Ad Hoc网络,还可适用于P2P等其他无线自组织网络,还可适用于有线网络。
[0075] 本发明实施例中,密钥的生成、节点身份信息和辅助信息的生成、私有报文的生成都可以基于离散数学难题或Diffie-Hellman难题。比如,在本发明实施例中,生成节点的身份信息、辅助信息、私有报文以及第二系统参数都可以基于离散数学难题来计算生成;PGC生成用于对私有报文进行加密的密钥、节点生成对应的私钥以及节点之间生成的共享密钥都可以基于Diffie-Hellman难题来生成。
[0076] 本发明实施例中,密钥的生成、节点身份信息和辅助信息的生成、私有报文的生成还可以基于现有技术中较为常用的其他算法生成,并不仅限于本发明实施例中列举的基于离散数学难题或Diffie-Hellman难题的算法,本发明实施例列举的算法只是一种具体的实现方式。
[0077] 下面结合以一具体的方法流程对本发明技术方案进行更为清楚、详细的描述。 [0078] 参见图3,为本发明实施例中建立共享密钥的方法流程图,该流程包括以下步骤: [0079] 步骤301、系统进行初始化,设定第一系统参数p,主密钥s,以及第二系统参数Ppub以及选定Hash函数;节点A根据自身生成的第二随机数d′A、第一随机数dA,采用计算离散数学难题的方式生成身份信息IDA和辅助信息ASA,其中:IDA=dA·p,ASA=d′A·p,并公布自身的身份信息IDA和辅助信息ASA,以便
[0080] PGC存储该节点A的IDA和ASA。
[0081] 步骤302、节点A向PGC发送密钥请求报文,该密钥请求报文中携带有 该节点A的身份信息IDA。
[0082] 步骤303、PGC根据存储的该节点A的身份信息IDA对该节点A发送的身份信息IDA进行验证,验证成功时,执行步骤304,否则执行步骤313。
[0083] 步骤304、PGC根据节点A的身份信息IDA、预先定义的Hash函数,生成h(IDA),并将该h(IDA)发送给节点A;PGC根据主密钥s和h(IDA),采用计算离散数学难题的方式生成与该节点A对应的私有报文
[0084] 该步骤中,PGC根据主密钥s和h(IDA)可根据前述式(1)生成与该节点A对应的私有报文
[0085] 步骤305、PGC根据节点生成的第二随机数d′A、主密钥s和第一系统参数p,生成用于对私有报文 进行加密的密钥SKPGC。
[0086] 该步骤中,PGC可根据前述式(2)生成SKPGC。
[0087] 步骤306、PGC采用密钥SKPGC对生成的私有报文 进行加密,并将加密之后的私有报文 通过公共信道发送给节点A。
[0088] 步骤307~308、节点A根据本地存储的第二随机数d′N、第二系统参数Ppub生成用于对接收到的私有报文 进行解密的密钥SKA;并采用密钥SKA对接收到的 进行解密。
[0089] 该步骤中,节点A可根据前述式(3)生成密钥SKA。
[0090] 步骤309、节点A根据本地存储的第一系统参数p、第二系统参数Ppub、解密得到的私有报文 判断解密得到的私有报文 是否为PGC下发,若是,则执行步骤310,否则,执行步骤302。
[0091] 步骤310~311、节点A将生成的第二随机数d′N销毁,并根据第一随机数dA、解密得到的私有报文 生成与该节点A对应的私钥SA。
[0092] 该步骤中,节点A可根据前述式(4)生成私钥SA。
[0093] 步骤312、当节点A与节点B进行通信时,节点A根据自身的私钥SA、 节点B的身份信息IDB,生成与节点B共享的共享密钥KAB;节点B根据自身的私钥SB、节点A的身份信息IDA,生成与该节点A共享的共享密钥KAB。
[0094] 该步骤中,节点A可根据前述式(5)生成共享密钥KAB。
[0095] 步骤313、结束流程。
[0096] 基于上述流程相同的构思,本发明实施例还提供一种节点,一种密钥生成中心,和一种建立共享密钥的系统。
[0097] 参见图4,为本发明实施例中密钥生成中心的结构示意图,该密钥生成中心包括: [0098] 接收模块41,用于接收节点发送的密钥生成请求报文;
[0099] 私有报文生成模块42,用于在接收模块41接收到所属密钥生成请求报文时,根据所述节点的身份信息和系统主密钥,生成与该节点对应的私有报文QID; [0100] 加密模块43,用于对所述私有报文生成模块生成的私有报文QID进行加密; [0101] 发送模块44,用于对加密模块43加密之后的私有报文QID发送给所述节点。 [0102] 加密模块43对私有报文QID进行加密,具体应用为:
[0103] 根据存储的第一节点的辅助信息、系统主密钥,生成用于对该私有报文QID进行加密的第一密钥,并采用该第一密钥对该私有报文QID进行加密,所述第一节点的辅助信息根据第一系统参数和所述第一节点生成的第二随机数确定。
[0104] 加密模块43根据式(2)生成第一密钥。
[0105] 参见图5,为本发明实施例中节点的结构示意图,该节点包括: [0106] 发送模块51,用于向密钥生成中心PGC发送密钥请求报文;
[0107] 接收模块52,用于接收所述PGC发送的与所述节点相对应的私有报文QID; [0108] 解密模块53,用于对接收模块52接收的私有报文QID进行解密; [0109] 私钥生成模块54,用于根据解密模块53解密得到的私有报文QID和所述节点自身生成的第一随机数,生成与所述节点对应的私钥;
[0110] 共享密钥生成模块55,用于在与第二节点进行通信时,根据私钥生成模块 54生成的私钥、第二节点的身份信息,生成所述节点与所述第二节点进行通信的共享密钥。 [0111] 解密模块53对私有报文QID进行解密,具体应用为:根据所述节点生成的第二随机数和第二系统参数,生成用于对所述私有报文QID进行解密的第二密钥,并采用该第二密钥对该私有报文QID进行解密。
[0112] 解密模块53根据式(3)生成第二密钥。
[0113] 较佳地,上述节点还包括:
[0114] 判断模块56,用于根据第一节点的身份信息、第二系统参数、第一系统参数,确定解密模块53解密得到的私有报文QID是否为PGC下发;
[0115] 发送模块51进一步用于,在判断模块56判断所述私有报文QID不是PGC下发时,重新向PGC发送密钥请求报文。
[0116] 一种建立共享密钥的系统包括:
[0117] 密钥生成中心PGC,用于接收第一节点发送的密钥请求报文;根据所述第一节点的身份信息和系统主密钥,为该第一节点生成私有报文QID,并将该QID进行加密之后发送给所述第一节点;
[0118] 所述第一节点,用于对接收到的所述加密后的私有报文QID进行解密,并根据解密之后的私有报文QID、第一节点自身生成的第一随机数,生成与该第一节点对应的私钥;并在与第二节点进行通信时,根据所述私钥、第二节点的身份信息,生成所述第一节点与所述第二节点进行通信的共享密钥。
[0119] 所述PGC对所述私有报文QID进行加密,具体应用为:
[0120] PGC根据存储的所述第一节点的辅助信息、系统主密钥,生成用于对该QID进行加密的第一密钥,并采用该第一密钥对该私有报文QID进行加密;
[0121] 所述第一节点对接收到的所述私有报文QID进行解密,具体应用为: [0122] 第一节点根据自身生成的第二随机数和第二系统参数,生成用于对所述QID进行解密的第二密钥,并采用该第二密钥对该私有报文QID进行解密;
[0123] 所述第二系统参数为采用计算离散数学难题的方式对所述第一系统参数 与所述系统主密钥进行运算的结果。
[0124] 所述第一节点进一步用于,在生成所述私钥之前,根据第一节点的身份信息、第二系统参数、第一系统参数,确定解密之后私有报文QID是否为PGC下发,并在确定不是PGC下发时,结束流程或重新向所述PGC发送密钥请求报文。
[0125] 本发明实施例中,节点在需要生成私钥时,向PGC发送携带有该节点身份信息的密钥请求报文;PGC根据系统参数、该节点的身份信息,采用计算离散数学难题的方式为该节点生成私有报文QID,并对该私有报文QID进行加密之后发送给节点;节点根据自身生成的随机数和接收到的QID生成私钥;并在与其他节点进行通信时,根据该节点的私有报文QID、随机数以及其他节点的身份信息,采用计算Diffie-Hellman难题的方式生成该节点与其他节点之间的共享密钥。采用本发明技术方案,节点根据PGC下发的QID来生成私钥,并根据私钥生成与其他节点之间的共享密钥,由于PGC对该节点的QID进行了加密处理,因此,即使该节点生成的随机数泄露或被盗取,由于其他节点或不法分子无法对QID进行解密,从而不能轻易地得到该节点的私钥;继而不能破解节点之间进行通信的共享密钥,提高了节点之间共享密钥的破解难度,提高了节点间通信的安全性、可靠性;并且生成的密钥都是基于离散数学难题或Diffie-Hellman难题,更进一步的提高了共享密钥的破解难度。 [0126] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。