基于组合公钥密码体制的通信方法、装置及系统的利记博彩app

文档序号:7797883阅读:213来源:国知局
基于组合公钥密码体制的通信方法、装置及系统的利记博彩app
【专利摘要】本发明提供一种基于组合公钥密码体制的通信方法、装置及系统,其中,方法通过第一节点从密钥生成中心获取第一节点的私钥,并根据相邻节点标识列表获取第二节点的标识,根据第二节点的标识计算得到第二节点的公钥,根据第一节点的私钥和第二节点的公钥计算第一节点的共享密钥参数,然后根据第一节点的共享密钥参数计算得到第一节点的共享密钥,生成与第一节点的共享密钥对应的第一密钥验证码,向第二节点发送共享密钥验证消息,共享密钥验证消息包含第一密钥验证码,接收第二节点发送的共享密钥响应消息。由于上述计算的步骤均可以离线完成,减少了节点间的交互次数,因此当第一节点发起认证时,可以在非常短的时间内完成认证,提高了认证的效率。
【专利说明】基于组合公钥密码体制的通信方法、装置及系统
【技术领域】
[0001]本发明涉及通信技术,尤其涉及一种基于组合公钥密码体制的通信方法、装置及系统。
【背景技术】
[0002]在通信技术中,为了实现两个通信实体间通信的保密性和完整性,现有技术提出了安全传输层(Transport Layer Security,简称:TLS)协议。具体的,TLS的协议栈分为两层,底层为TLS记录协议,上层包括TLS握手协议、TLS密码变化协议以及TLS警告协议。TLS记录协议建立在TCP之上,它提供的连接安全性有两个特点:首先保密性,使用了对称加密算法;其次完整性,使用了基于哈希的消息认证码(Hash-based Message AuthenticationCode,简称:HMAC)算法。
[0003]现有技术中TLS握手协议包括如下步骤:1、客户端与服务器交互Client_hell0消息以及server_hello消息,以建立安全能力;2、服务器向客户端发送服务器身份信息以及server_hello_done消息;3、客户端向服务器发送客户端公钥信息;4、客户端与服务器将协商得到的Cipher_Suite拷贝到当前连接状态中,用新的算法和密钥参数发送finished消息。具体的,在步骤2中,客户端收到server_hello_done消息后,检查服务器的证书,对服务器进行身份认证,如果服务器请求其证书,则发送一个certificate消息,之后客户端发送client_key_exchange消息,该消息取决于协商的密钥交换算法。发送完该c I i ent_key_exchange消息后,客户端和服务器就可以基于身份的加密(I dent ity BasedEncryption,简称:IBE)算法计算共享密钥shared_key。通过master_key=伪随机函数(shared_key, “master_key,,,client_hell0.random, server_hell0.random)来计算主密钥 master_key。
[0004]但是,采用现有技术提供的TLS握手协议进行交互,由于握手过程中,客户端与服务器的交互数量较大,并且需要在线验证证书以及计算共享密钥,从而降低了认证效率。

【发明内容】

[0005]本发明提供一种基于组合公钥密码体制的通信方法、装置及系统,用于提高通信时的认证效率。
[0006]本发明的第一个方面是提供一种基于组合公钥密码体制的通信方法,包括:
[0007]第一节点从密钥生成中心获取所述第一节点的私钥,并根据相邻节点标识列表获取第二节点的标识;
[0008]所述第一节点根据所述第二节点的标识计算得到所述第二节点的公钥;
[0009]所述第一节点根据所述第一节点的私钥和所述第二节点的公钥计算所述第一节点的共享密钥参数;
[0010]所述第一节点根据所述第一节点的共享密钥参数计算得到所述第一节点的共享密钥,生成与所述第一节点的共享密钥对应的密钥验证码;[0011]所述第一节点向所述第二节点发送共享密钥验证消息,所述共享密钥验证消息包含所述密钥验证码;
[0012]所述第一节点接收所述第二节点发送的共享密钥响应消息,确认所述密钥验证码正确;
[0013]所述第一节点根据所述第一节点的共享密钥与所述第二节点通信。
[0014]结合第一个方面,在第一种可能的实现方式中,所述第一节点从所述密钥生成中心获取所述第一节点的私钥,包括:
[0015]所述第一节点获取所述第一节点的标识,并向所述密钥生成中心发送所述第一节点的标识;
[0016]所述第一节点接收所述密钥生成中心发送的所述第一节点的私钥。
[0017]结合第一个方面或第一个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一节点的私钥表达式为:
[0018]Ci1= Ca1X^a2X2+......anxn) mod q
[0019]其中,所述Ci1为所述第一节点的私钥,所述q为大素数,所述{ai,a2,-?an}为第一参数集合,EL1为正整数,所述第一参数集合通过将所述第一节点的标识作为伪随机函数的输入得到,并且ai〈q,所述i e [l,n],所述{Xl,X2,...,Xn}为主密钥集合,Xi为正整数,所述η根据系统安全参数定义。
[0020]结合第一个方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述第一节点获取所述第一节点的私`钥之前,还包括:
[0021]所述第一节点接收所述密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
[0022]MPK= (Y1, J2, *.., yn}, Yi=POW(g, x^mod q,所述 i e [I, η]
[0023]其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成
J Li ο
[0024]结合第一个方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一节点根据所述第一节点的私钥和所述第二节点的公钥通过如下公式计算所述第一节点的共享密钥参数:
[0025]P1= (powG1, Id1)pow(y2, b2)...pow(yn, bn)) ~(I1Iiiod q
[0026]其中,所述P1为所述第一节点的共享密钥参数,所述(powh, b^pow(y2, b2)…pow(yn, bn))为所述第二节点的公钥,所述Ib1, b2,…,bn}为第二参数集合,匕为正整数,所述第二参数集合通过将所述第二节点的标识作为伪随机函数的输入得到,并且bi〈q,i e [I, η]。
[0027]结合第一个方面或第一个方面的上述任意一种可能的实现方式,在第五种可能的实现方式中,在所述第一节点根据所述第一节点的私钥和所述第二节点的公钥计算所述第一节点的共享密钥参数之后,还包括:
[0028]所述第一节点监听所述第一节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值;
[0029]所述第一节点根据所述第一节点的共享密钥参数计算得到所述第一节点的共享密钥,包括:[0030]所述第一节点根据所述第一节点的共享密钥参数和所述杂凑值计算得到所述第一节点的共享密钥。
[0031]结合第一个方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第一节点监听所述第一节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值,包括:
[0032]所述第一节点维护时间窗口的缓冲,所述第一节点将所述时间窗口内所述网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
[0033]结合第一个方面或第一个方面的上述任意一种可能的实现方式,在第七种可能的实现方式中,所述第一节点根据所述第一节点的共享密钥与所述第二节点通信,包括:
[0034]所述第一节点从所述第一节点的共享密钥中导出加密对称密钥和消息认证码密钥;
[0035]所述第一节点随机生成初始化向量,根据所述加密对称密钥加密数据,生成密文数据;根据所述消息认证码密钥、所述初始化向量和所述密文数据生成消息认证码;
[0036]所述第一节点将包含所述密文数据、所述初始化向量以及所述消息认证码的报文发送给所述第二节点。
[0037]本发明的第二个方面是提供一种基于组合公钥密码体制的通信方法,包括:
[0038]第二节点从密钥生成中心获取所述第二节点的私钥,并根据相邻节点标识列表获取第一节点的标识;
[0039]所述第二节点根据`所述第一节点的标识计算得到所述第一节点的公钥;
[0040]所述第二节点根据所述第二节点的私钥和所述第一节点的公钥计算所述第二节点的共享密钥参数;
[0041]所述第二节点根据所述第二节点的共享密钥参数计算得到所述第二节点的共享密钥,生成与所述第二节点的共享密钥对应的第二密钥验证码;
[0042]所述第二节点接收所述第一节点发送的共享密钥验证消息,所述共享密钥验证消息包含第一密钥验证码;
[0043]若所述第一密钥验证码与所述第二密钥验证码匹配,则所述第二节点向所述第一节点发送共享密钥响应消息,确认所述第一密钥验证码正确;
[0044]所述第二节点根据所述第二节点的共享密钥与所述第一节点通信。
[0045]结合第二个方面,在第一种可能的实现方式中,所述第二节点从所述密钥生成中心获取所述第二节点的私钥,包括:
[0046]所述第二节点获取所述第二节点的标识,并向所述密钥生成中心发送所述第二节点的标识;
[0047]所述第二节点接收所述密钥生成中心发送的所述第二节点的私钥。
[0048]结合第二个方面或第二个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二节点的私钥表达式为:
[0049]d2= Cb1X^b2X2+*** bnxn) mod q
[0050]其中,所述(12为所述第二节点的私钥,所述q为大素数,所述Ibpb2,…,bn}为第二参数集合,bi为正整数,所述第二参数集合通过将所述第二节点的标识作为伪随机函数的输入得到,并且bi〈q,i e [l,n],所述Ix1, x2,...,xj为主密钥集合,Xi为正整数,所述η根据系统安全参数定义。
[0051]结合第二个方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述第二节点获取所述第二节点的私钥之前,还包括:
[0052]所述第二节点接收所述密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
[0053]MPK= (Y1, J2, *.., yn}, Yi=POW(g, x^mod q,所述 i e [I, η]
[0054]其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成
J Li ο
[0055]结合第二个方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第二节点根据所述第二节点的私钥和所述第一节点的公钥通过如下公式计算所述第二节点的共享密钥参数:
[0056]P2= (pow (Y1, a1)pow(y2, a2) *..ρο¥(yη, an)) "d2mod q
[0057]其中,所述P2为所述第二节点的共享密钥参数,所述(powh, a^pow(y2, a2)…pow (yn, an))为所述第一节点的公钥,所述{a1; a2,..., an}为第一参数集合,Bi为正整数,所述第一参数集合通过将所述第一节点的标识作为伪随机函数的输入得到,并且a^q,i e [I, η]。
[0058]结合第二个方面或第二个方面的上述任意一种可能的实现方式,在第五种可能的实现方式中,在所述第二节点根据所述第二节点的私钥和所述第一节点的公钥计算所述第二节点的共享密钥参数之后,还包括:
[0059]所述第二节点监听所述第二节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值;
[0060]所述第二节点根据所述第二节点的共享密钥参数计算得到所述第二节点的共享密钥,包括:
[0061]所述第二节点根据所述第二节点的共享密钥参数和所述杂凑值计算得到所述第二节点的共享密钥。
[0062]结合第二个方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第二节点监听所述第二节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值,包括:
[0063]所述第二节点维护时间窗口的缓冲,所述第二节点将所述时间窗口内所述网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
[0064]结合第二个方面或第二个方面的上述任意一种可能的实现方式,在第七种可能的实现方式中,所述第二节点根据所述第二节点的共享密钥与所述第一节点通信,包括:
[0065]所述第二节点接收所述第一节点发送的包含密文数据、初始化向量以及第一消息认证码的报文;
[0066]所述第二节点从所述第二节点的共享密钥中导出加密对称密钥和消息认证码密钥;
[0067]所述第二节点根据所述消息认证码密钥和所述初始化向量生成第二消息认证码;
[0068]所述第二节点将所述第二消息认证码与所述第一消息认证码进行比对,若匹配,则对根据所述加密对称密钥对所述密文数据进行解密。
[0069]本发明的第三个方面是提供一种基于组合公钥密码体制的通信方法,包括:
[0070]密钥生成中心根据主密钥集合生成系统参数集合,并将所述系统参数集合发送给网络节点;
[0071]所述密钥生成中心接收所述网络节点发送的所述网络节点的标识;
[0072]所述密钥生成中心根据所述网络节点的标识计算得到所述网络节点的私钥;
[0073]所述密钥生成中心向所述网络节点发送所述网络节点的私钥。
[0074]结合第三个方面,在第一种可能的实现方式中,所述密钥生成中心根据主密钥集合生成系统参数集合之前,还包括:
[0075]所述密钥生成中心生成所述主密钥集合,所述主密钥集合表达式为:
[0076]MSK= (X1, X2,…,xn}
[0077]其中,所述MSK为主密钥集合,Xi为正整数,所述i e [1,η],所述η根据系统安全
参数定义。
[0078]结合第三个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述系统参数集合表达式为:
[0079]MPK= (Y1, J2, *.., yn}, Yi=POW(g, x^mod q,所述 i e [1, η]
[0080]其中,所述MPK为系统参数集合,所述q为大素数,所述g为所述q构成素数域上一个子群的生成元。
[0081]结合第三个方面的第二种可能的实现方式,在第三种可能的实现方式中,所述密钥生成中心根据所述网络节点的标识计算得到所述网络节点的私钥,包括:
[0082]所述密钥生成中心根据所述网络节点的标识,通过伪随机函数获取参数集合Im1,m2,..., mn}, Iiii 为正整数,并且 m^q ;
[0083]所述密钥生成中心通过如下公式获取所述网络节点的私钥:
[0084]d= (IH1Xdm2X2+...mnxn) mod q
[0085]其中,所述d为所述网络节点的私钥。
[0086]本发明的第四个方面是提供一种节点,包括:
[0087]获取模块,用于从密钥生成中心获取所述节点的私钥,并根据相邻节点标识列表获取另一节点的标识;
[0088]处理模块,用于根据所述另一节点的标识计算得到所述另一节点的公钥;还用于根据所述节点的私钥和所述另一节点的公钥计算所述节点的共享密钥参数;还用于根据所述节点的共享密钥参数计算得到所述节点的共享密钥,生成与所述节点的共享密钥对应的密钥验证码;
[0089]发送模块,用于向所述另一节点发送共享密钥验证消息,所述共享密钥验证消息包含所述密钥验证码;
[0090]接收模块,用于接收所述另一节点发送的共享密钥响应消息,确认所述密钥验证码正确;
[0091]所述发送模块,还用于根据所述节点的共享密钥与所述另一节点通信。
[0092]结合第四个方面,在第一种可能的实现方式中,所述获取模块,具体用于获取所述节点的标识,并向所述密钥生成中心发送所述节点的标识,接收所述密钥生成中心发送的所述节点的私钥。
[0093]结合第四个方面或第四个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述节点的私钥表达式为:
[0094]Cl1= Ca1X^a2X2+......anxn) mod q
[0095]其中,所述Cl1为所述节点的私钥,所述q为大素数,所述{ai,a2,…,an}为第一参数集合,Bi为正整数,所述第一参数集合通过将所述节点的标识作为伪随机函数的输入得到,并且所述Bi〈所述q,所述i e [l,n],所述{Xl,X2,...,Xn}为主密钥集合,Xi为正整数,所述η根据系统安全参数定义。
[0096]结合第四个方面或第四个方面的上述任意一种可能的实现方式,在第四种可能的实现方式中,所述接收模块,还用于接收密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
[0097]MPK= (Y1, J2, *.., yn}, Yi=POW(g, x^mod q,所述 i e [I, η]
[0098]其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成
J Li ο
[0099]结合第四个方面的第四种可能的实现方式,在第五种可能的实现方式中,所述处理模块,具体还用于根据所述节点的私钥和所述另一节点的公钥通过如下公式计算所述节点的共享密钥参数:`[0100]P1= (pow(Y1, Id1)pow(y2, b2)...pow(yn, bn)) ~(I1IIiod q
[0101]其中,所述P1为所述节点的共享密钥参数,所述(powh, b^powh, b2)…pow(yn,bn))为所述另一节点的公钥,所述Ibpb2,…,bn}为第二参数集合,匕为正整数,所述第二参数集合通过将所述另一节点的标识作为伪随机函数的输入得到,并且bi〈q,i e [l,n]。
[0102]结合第四个方面或第四个方面的上述任意一种可能的实现方式,在第六种可能的实现方式中,还包括:
[0103]监听模块,监听所述节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值;
[0104]所述处理模块,具体用于根据所述节点的共享密钥参数和所述杂凑值计算得到所述节点的共享密钥。
[0105]结合第四个方面的第六种可能的实现方式,在第七种可能的实现方式中,所述监听模块,具体用于维护时间窗口的缓冲,将所述时间窗口内所述网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
[0106]结合第四个方面或第四个方面的上述任意一种可能的实现方式,在第八种可能的实现方式中,所述处理模块,具体还用于从所述节点的共享密钥中导出加密对称密钥和消息认证码密钥;
[0107]所述处理模块,具体还用于随机生成初始化向量,根据所述加密对称密钥加密数据,生成密文数据;根据所述消息认证码密钥、所述初始化向量和所述密文数据生成消息认证码;
[0108]所述发送模块,具体还用于将包含所述密文数据、所述初始化向量以及所述消息认证码的报文发送给所述另一节点。
[0109]本发明的第五个方面是提供一种节点,包括:[0110]获取模块,用于从密钥生成中心获取所述节点的私钥,并根据相邻节点标识列表获取另一节点的标识;
[0111]处理模块,用于根据所述另一节点的标识计算得到所述另一节点的公钥;还用于根据所述节点的私钥和所述另一节点的公钥计算所述节点的共享密钥参数;还用于根据所述节点的共享密钥参数计算得到所述节点的共享密钥,生成与所述节点的共享密钥对应的第二密钥验证码;
[0112]接收模块,用于接收所述另一节点发送的共享密钥验证消息,所述共享密钥验证消息包含第一密钥验证码;
[0113]发送模块,用于若所述第一密钥验证码与所述第二密钥验证码匹配,则向所述另一节点发送共享密钥响应消息,确认所述第一密钥验证码正确;
[0114]所述接收模块,还用于根据所述节点的共享密钥与所述另一节点通信。
[0115]结合第五个方面,在第一种可能的实现方式中,所述获取模块,具体用于获取所述节点的标识,并向所述密钥生成中心发送所述节点的标识,接收所述密钥生成中心发送的所述节点的私钥。
[0116]结合第五个方面或第五个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述节点的私钥表达式为:
[0117]d2= Cb1X^b2X2+*** bnxn) mod q
[0118]其中,所述d2为所述节点的私钥,所述q为大素数,所述Ibpb2,…,bn}为第二参数集合,h为正整数,所述第二参数集合通过将所述节点的标识作为伪随机函数的输入得至|J,并且bi〈q,i e [l,n],所述Ix1, x2,...,Xj为主密钥集合,Xi为正整数,所述η根据系统安全参数定义。
[0119]结合第五个方面的第三种可能的实现方式,在第四种可能的实现方式中,所述接收模块,还用于接收所述密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
[0120]MPK= (Y1, J2, *.., yn}, Yi=POW(g, x^mod q,所述 i e [I, η]
[0121]其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成
J Li ο
[0122]结合第五个方面的第四种可能的实现方式,在第五种可能的实现方式中,所述处理模块,具体还用于根据所述节点的私钥和所述另一节点的公钥通过如下公式计算所述节点的共享密钥参数:
[0123]P2= (pow (Y1, a1)pow(y2, a2) *..ρο¥(rn, an)) "d2mod q
[0124]其中,所述P2为所述节点的共享密钥参数,所述(powbp a^pow(y2, a2)…pow(yn,an)为所述另一节点的公钥,所述{a1; a2,…,an}为第一参数集合,a,为正整数,所述第一参数集合通过将所述另一节点的标识作为伪随机函数的输入得到,并且a^q,i e [l,n]。
[0125]结合第五个方面或第五个方面的第一种可能的实现方式,在第六种可能的实现方式中,还包括:
[0126]监听模块,用于监听所述节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值;
[0127]所述处理模块,具体用于根据所述节点的共享密钥参数和所述杂凑值计算得到所述节点的共享密钥。
[0128]结合第五个方面的第六种可能的实现方式,在第七种可能的实现方式中,所述监听模块,具体用于维护时间窗口的缓冲,将所述时间窗口内所述网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
[0129]结合第五个方面或第五个方面的第一种可能的实现方式,在第八种可能的实现方式中,所述接收模块,具体还用于接收所述另一节点发送的包含密文数据、初始化向量以及第一消息认证码的报文;
[0130]所述处理模块,具体还用于从所述节点的共享密钥中导出加密对称密钥和消息认证码密钥;
[0131]所述处理模块,具体还用于根据所述消息认证码密钥和所述初始化向量生成第二消息认证码;
[0132]所述处理模块,具体还用于将所述第二消息认证码与所述第一消息认证码进行比对,若匹配,则对根据所述加密对称密钥对所述密文数据进行解密。
[0133]本发明的第六个方面是提供一种密钥生成中心,包括:
[0134]处理模块,用于根据主密钥集合生成系统参数集合,并将所述系统参数集合发送给网络节点;
[0135]接收模块,用于接收所述网络节点发送的所述网络节点的标识;
[0136]所述处理模块,还用于根据所述网络节点的标识计算得到所述网络节点的私钥;
[0137]发送模块,用于向所述网络节点发送所述网络节点的私钥。
[0138]结合第六个方面,在第一种可能的实现方式中,所述处理模块,还用于生成所述主密钥集合,所述主密钥集合表达式为:
[0139]MSK= (X1, X2,…,xn}
[0140]其中,所述MSK为主密钥集合,Xi为正整数,所述i e [1,η],所述η根据系统安全
参数定义。
[0141]结合第六个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述系统参数集合表达式为:
[0142]MPK= (Y1, J2, *.., yn}, Yi=POW(g, x^mod q,所述 i e [I, η]
[0143]其中,所述MPK为系统参数集合,所述q为大素数,所述g为所述q构成素数域上一个子群的生成元。
[0144]结合第六个方面或第六个方面的上述任意一种可能的实现方式,在第三种可能的实现方式中,所述处理模块,具体用于根据所述网络节点的标识,通过伪随机函数获取参数集合Invm2,..., mn}, Iiii为正整数,并且所述m^q,所述i e [I, η];
[0145]所述处理模块,具体用于通过如下公式获取所述网络的私钥:
[0146]d=mod q
[0147]其中,所述d为所述网络节点的私钥。
[0148]本发明的第七个方面是提供一种基于组合公钥密码体制的安全通信系统,包括:第四个方面或第四个方面任一一种可行的实现方式所述的节点,第五个方面或第五个方面任一一种可行的实现方式所述的节点,第六个方面或第六个方面任一一种可行的实现方式所述的密钥生成中心。[0149]本实施例提供的基于组合公钥密码体制的通信方法、装置及系统,通过第一节点和第二节点分别从密钥生成中心获取各自的私钥,第一节点根据相邻节点标识列表获取第二节点的标识,第二节点根据相邻节点标识列表获取第一节点的标识;第一节点根据第二节点的标识计算得到第二节点的公钥,相应的第二节点根据第一节点的标识计算得到第一节点的公钥;第一节点根据第一节点的私钥和第二节点的公钥计算第一节点的共享密钥参数;第一节点根据第一节点的共享密钥参数计算得到第一节点的共享密钥,生成与第一节点的共享密钥对应的密钥验证码;第一节点向第二节点发送共享密钥验证消息,共享密钥验证消息包含密钥验证码;第一节点接收第二节点发送的共享密钥响应消息,确认密钥验证码正确;第一节点根据第一节点的共享密钥与第二节点通信。由于第一节点和第二节点分别预先计算各自的共享密钥参数以及根据各自的共享密钥参数计算得到对方的共享密钥的步骤是可以离线完成,减少了交互次数,因此当第一节点发起认证时,可以在非常短的时间内完成认证过程,提高了认证的效率。
【专利附图】

【附图说明】
[0150]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0151]图1为本发明实施例提供的一种基于组合公钥密码体制的通信方法流程示意图;
[0152]图2为本发明实施例提供的另一种基于组合公钥密码体制的通信方法流程示意图;
[0153]图3为本发明实施例提供的另一种基于组合公钥密码体制的通信方法流程示意图;
[0154]图4为本发明实施例提供的另一种基于组合公钥密码体制的通信方法流程示意图;
[0155]图5为本发明实施例提供的一种节点结构示意图;
[0156]图6为本发明实施例提供的另一种节点结构示意图;
[0157]图7为本发明实施例提供的另一种节点结构示意图;
[0158]图8为本发明实施例提供的另一种节点结构示意图;
[0159]图9为本发明实施例提供的一种密钥生成中心结构示意图。
【具体实施方式】
[0160]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0161]组合公钥密码(Combined Public Key,简称:CPK)体制,是一种基于身份的密码体制,系统中包含一个生成整个系统主密钥和用户私钥的密钥生成中心,系统中的用户的公钥即为其身份,密钥生成中心通过伪随机函数将用户的身份映射为满足特定条件的整数,通过用户私钥生成算法计算出用户的私钥。
[0162]基于身份的密码体制较一般的公钥密码体制的优点在于,在基于身份的密码体制中用户的公钥即为其身份,从而实现了身份和公钥的自动绑定而无需使用公钥证书链进行身份验证,并且可以消除由于公钥证书链的管理所带来的开销。CPK相比于其他基于身份加密(Identity Based Encryption,简称:IBE)算法,其优点在于可以有效的利用已部署的传统公钥密码体制从而降低由于部署基于身份的密码系统所带来的开销。CPK相比较于其他的IBE方案的另一个优点是其效率高,这是由于一般的IBE方案是基于双线性对的,而CPK利用了普通公钥密码体制的公/私钥的线性同态性质,不需要进行耗时的双线性对计算。
[0163]图1为本发明实施例提供的一种基于组合公钥密码体制的通信方法流程示意图,该方法执行主体为通信数据的发送方节点,即第一节点,如图1所示,该方法包括如下步骤:
[0164]步骤100、第一节点从密钥生成中心获取第一节点的私钥,并根据相邻节点标识列表获取第二节点的标识。
[0165]具体的,每个节点会获得一个公认的标识,如主机名、域名、网络地址、网络名称、IP地址、域名、电话号码或系统约定的一个唯一名称。节点的名称由地址/名称和有效期构成。节点构造自己的标识,如ID=162.105.30.187#20120CT,是由两部分构成的,分别是地址或名字,以及有效期。节点可以获取一个包含所有临近节点唯一标识在内的列表。这个列表可以是从某个接口获得(例如手机可以访问本地的电话号码本),也可以是由节点自动生成(如枚举所在网络所有地址)。需要说明的相邻节点指的是第一节点的相邻节点。
[0166]步骤101、第一节点根据第二节点的标识计算得到第二节点的公钥。
[0167]具体的,例如,第二节点的标识为ID2,将该ID2作为伪随机函数的输入则得到一组第二参数集合Ib^b2,…,bj ,其中IDi为正整数,伪随机函数(Pseudo Random Function,简称:PRF)是单向的、——映射的,输入为任意的字符串,输出为{1?,!?,...,!?},其中(Km^q。第二节点的公钥为(PowKy1, bjpowh, b2)…pow(yn, bn)),其中 Iyi? Y2? …,yj 为系统参数集合。需要说明的,本实施例中涉及到的伪随机函数和第二节点公钥的具体公式只是对步骤101进行说明,并不限定步骤101通过其他方式计算得到第二节点的公钥。
[0168]步骤102、第一节点根据第一节点的私钥和第二节点的公钥计算第一节点的共享密钥参数。
[0169]步骤103、第一节点根据第一节点的共享密钥参数计算得到第一节点的共享密钥,生成与第一节点的共享密钥对应的第一密钥验证码。
[0170]步骤104、第一节点向第二节点发送共享密钥验证消息,共享密钥验证消息包含第一密钥验证码。
[0171]步骤105、第一节点接收第二节点发送的共享密钥响应消息,确认第一密钥验证码正确。
`[0172]具体的,对于两个需要通信的网络节点来说,例如本实施例中的第一节点和第二节点会分别根据各自的私钥和对方的公钥计算得到自身的共享密钥参数,并分别生成第一密钥验证码和第二密钥验证码,此处将第一密钥验证码发送给第二节点的目的在于:第二节点获得该第一密钥验证码与第二密钥验证码进行比对,若两者匹配,则双方可以进行加密通信。[0173]步骤106、第一节点根据第一节点的共享密钥与第二节点通信。
[0174]本实施例提供的基于组合公钥密码体制的通信方法,通过第一节点从密钥生成中心获取第一节点的私钥,并根据相邻节点标识列表获取第二节点的标识;第一节点根据第二节点的标识计算得到第二节点的公钥;第一节点根据第一节点的私钥和第二节点的公钥计算第一节点的共享密钥参数;第一节点根据第一节点的共享密钥参数计算得到第一节点的共享密钥,生成与第一节点的共享密钥对应的第一密钥验证码;第一节点向第二节点发送共享密钥验证消息,共享密钥验证消息包含第一密钥验证码;第一节点接收第二节点发送的共享密钥响应消息,确认第一密钥验证码正确;第一节点根据第一节点的共享密钥与第二节点通信。由于第一节点预先计算第一共享密钥参数以及根据第一共享密钥参数计算得到第一节点的共享密钥的步骤是可以离线完成,减少了交互次数,因此当第一节点发起认证时,可以在非常短的时间内完成认证过程,提高了认证的效率。
[0175]优选的,上述图1中步骤100中第一节点从密钥生成中心获取第一节点的私钥的一种可行的实现方式为:
[0176]第一节点获取第一节点的标识,并向密钥生成中心发送第一节点的标识。
[0177]第一节点接收密钥生成中心发送的第一节点的私钥。
[0178]显然,第一节点只需要和密钥生成中心通信一次,因此密钥生成中心可以简单地是一个板卡,或是整个云中的一个服务进程,对性能要求较低,并且密钥生成中心也无需一直在线。因此降低了部署成本。
[0179]优选的,图1中所示第一节点的私钥表达式为:
[0180]Ci1= Ca1X^a2X2+......anxn) mod q
[0181]其中,(I1为第一节点的私钥,q为大素数,{a1; a2,…,an}为第一参数集合,Bi为正整数,第一参数集合通过将第一节点的标识作为伪随机函数的输入得到,并且ai〈q,i e [I,η],Ix1, χ2,...,xj为主密钥集合,Xi为正整数,η根据系统安全参数定义。
[0182]在图1步骤100之前,还包括如下步骤:
[0183]步骤106、第一节点接收密钥生成中心发送的系统参数集合。
[0184]具体的,系统参数集合表达式为:
[0185]MPK= (Y1, J2, *.., yn}, Yi=POW(g, x^mod q, i e [I, η];
[0186]其中,MPK为系统参数集合,g为q构成素数域上一个子群的生成元。
[0187]进一步的,上述实施例中,第一节点根据第一节点的私钥和第二节点的公钥通过如下公式计算第一节点的共享密钥参数:
[0188]P1=(pow(y1, b1)pow(y2, b2) *..ρο¥(rη, bn)) ~?^ο(1 q
[0189]其中,P1为第一节点的共享密钥参数,(powh,Id1)pow(y2,b2)…pow(yn,bn))为第二节点的公钥,Ibpb2,…,bn}为第二参数集合,匕为正整数,第二参数集合通过将第二节点的标识作为PRF的输入得到,并且bi<q, i e [l,n]。pow (yn, bn)用来计算以yn为底的bn次方值。可选的,如果bn是整数的话,需要对q执行求余函数。如果是非整数的话,那么P1可以理解为比所在 数域上的特殊运算,并一定是真正的执行了求余函数。
[0190]需要说明的是,该第一节点的共享密钥参数指的是第一节点与第二节点通信时,第一节点的共享密钥参数,若第一节点与其他节点通信时,对应地,第一节点的共享密钥参数可能不同。[0191]进一步的,对于上述实施例步骤102之后,还包括:
[0192]第一节点监听第一节点所在网络范围内的广播信息,根据广播信息获取杂凑值
[0193]具体的,第一节点维护时间窗口的缓冲,第一节点将时间窗口内网络范围内的广播信息记录在缓冲中,根据广播信息获取杂凑值。
[0194]需要说明的是,第一节点所在网络范围内的广播信息由专用的广播节点进行广播;或者,第一节点所在网络范围内的广播信息为第一节点的邻近节点间的通信信息;或者;第一节点所在网络范围内的广播信息为网络范围内的可识别背景音。
[0195]则基于杂凑值,上述步骤103的一种可行的实现方式为:
[0196]第一节点根据第一节点的共享密钥参数和杂凑值计算得到第一节点的共享密钥。
[0197]第一节点读取所要通信的对方节点的共享密钥参数。第一节点计算第一节点的共享密钥,则该共享密钥的密钥验证码SK=HMAC(P,h),其中P为共享密钥参数,h为杂凑值,HMAC (Hash-based Message Authentication Code)为基于哈希的消息认证码;第一节点向第二节点发送 HMAC(SK, “client finish”+h);第二节点响应 HMAC(SK, “serverfinish"+h);双方互相验证对方HMAC结果是否正确。需要说明的是,若没有杂凑值时,则仅根据P获取SK。
[0198]进一步的,图1中步骤105的一种可行的实现方式为:
[0199]步骤105a、第一节点从第一节点的共享密钥中导出加密对称密钥和消息认证码密钥。
[0200]步骤105b、第一节点随机生成初始化向量,根据加密对称密钥加密数据,生成密文数据;根据消息认证码密钥、初始化向量和密文数据生成消息认证码。
[0201]步骤105c、第一节点将包含密文数据、初始化向量以及消息认证码的报文发送给
第二节点。
[0202]具体的,加密对称密钥和消息认证码密钥(例如,MAC密钥)分别从共享密钥中导出。随机生成IV (初始化向量),采用对称加密方案(如AES-CBC)加密数据,并采用MAC算法(如HMAC-SHA-256)根据消息认证码密钥、初始化向量和密文数据生成消息认证码,即第一消息认证码,将该第一消息认证码附加在密文数据后面,最后发送报文。该报文包括包含密文数据、初始化向量以及第一消息认证码。接收方导出加密对称密钥和消息认证码密钥。首先根据其生成的消息认证码密钥、IV和密文数据重新生成第二消息认证码,并和传过来的密文数据中的第一消息认证码做匹配,如果不相同则报错。若相同,则用加密对称密钥密文数据得到明文。
[0203]图2为本发明实施例提供的另一种基于组合公钥密码体制的通信方法流程示意图,该方法执行主体为通信数据的接收方节点,即第二节点,如图2所示,该方法包括如下步骤:
[0204]步骤200、第二节点从密钥生成中心获取第二节点的私钥,并根据相邻节点标识列表获取第一节点的标识。
[0205]需要说明的相邻节点指的是第二节点的相邻节点。
[0206]步骤201、第二节点根据第一节点的标识计算得到第一节点的公钥。
[0207]步骤202、第二节点根据第二节点的私钥和第一节点的公钥计算第二节点的共享密钥参数。[0208]步骤203、第二节点根据第二节点的共享密钥参数计算得到第二节点的共享密钥,生成与第二节点的共享密钥对应的第二密钥验证码。
[0209]步骤204、第二节点接收第一节点发送的共享密钥验证消息,共享密钥验证消息包含第一密钥验证码。
[0210]步骤205、若第一密钥验证码与第二密钥验证码匹配,则第二节点向第一节点发送共享密钥响应消息,确认第一密钥验证码正确。
[0211]步骤206、第二节点根据第二节点的共享密钥与第一节点通信。
[0212]本实施例提供的基于组合公钥密码体制的通信方法,通过第二节点从密钥生成中心获取第二节点的私钥,并根据相邻节点标识列表获取第一节点的标识;第二节点根据第一节点的标识计算得到第一节点的公钥;第二节点根据第二节点的私钥和第一节点的公钥计算第二节点的共享密钥参数;第二节点根据第二节点的共享密钥参数计算得到第二节点的共享密钥,生成与第二节点的共享密钥对应的第二密钥验证码;第二节点接收第一节点发送的共享密钥验证消息,共享密钥验证消息包含第一密钥验证码;若第二节点确定第一密钥验证码与第二密钥验证码进行匹配,则第二节点向第一节点发送共享密钥响应消息,确认第一密钥验证码正确;第二节点根据第二节点的共享密钥与第一节点通信。由于根据第二节点的私钥预先计算第二共享密钥参数以及根据第二共享密钥参数计算得到第二节点的共享密钥的步骤是可以离线完成,减少了交互次数,因此当第一节点发起认证时,第二节点可以在非常短的时间内完成认证过程,提高了认证效率。
[0213]优选的,图2步骤200中第二节点获取第二节点的私钥的一种可行的实现方式为:
[0214]第二节点获取第二节点的标识,并向密钥生成中心发送第二节点的标识。
[0215]第二节点接收密钥生成中心发送的第二节点的私钥。
[0216]显然,第二节点只需要和密钥生成中心通信一次,因此密钥生成中心可以简单地是一个板卡,或是整个云中的一个服务进程,对性要求较低,并且密钥生成中心也无需一直在线。因此降低了部署成本。
[0217]图2中所示第二节点的私钥表达式为:
[0218]d2= Cb1X^b2X2+*** bnxn) mod q
[0219]其中,d2为第二节点的私钥,q为大素数,Ib1, b2,…,bn}为第二参数集合,第二参数集合通过将第二节点的标识作为PRF的输入得到,匕为正整数,并且bi〈q,i e [1,η],Ix1, χ2,..., χη}为主密钥集合,Xi为正整数,η根据系统安全参数定义。
[0220]进一步的,在图2步骤100之前,还包括:
[0221]第二节点接收密钥生成中心发送的系统参数集合。
[0222]其中,系统参数集合表达式为:
[0223]MPK= (Y1, J2, *.., yn}, Yi=POW(g, Xi)mod q, i e [1, η]
[0224]其中,MPK为系统参数集合,g为q构成素数域上一个子群的生成元。
[0225]进一步的,第二节点根据第二节点的私钥和第一节点的公钥通过如下公式计算第二节点的共享密钥参数:
[0226]P2= (pow (Y1, a1)pow(y2, a2) *..ρο¥(yη, an)) "d2mod q
[0227]其中,P2为第二节点的共享密钥参数,(pow(Y1, a^pow(y2, a2)…pow(yn, an)为第一节点的公钥,{a1;a2,…,an}为第一参数集合,%为正整数,第一参数集合通过将第一节点的标识作为PRF的输入得到,并且ai〈q,i e [1,n]。
[0228]在图2步骤202之后,还包括:
[0229]第二节点监听第二节点所在网络范围内的广播信息,根据广播信息获取杂凑值。
[0230]具体的,第二节点维护一个时间窗口的缓冲,第二节点将时间窗口内网络范围内的广播信息记录在缓冲中,根据广播信息获取杂凑值。需要说明的是,第二节点所在网络范围内的广播信息由专用的广播节点进行广播;或者,第二节点所在网络范围内的广播信息为第二节点的邻近节点间的通信信息;或者;第二节点所在网络范围内的广播信息为网络范围内的可识别背景音。
[0231]则图2步骤203中第二节点根据第二节点的共享密钥参数计算得到第二节点的共享密钥的一种可行的实现方式为:
[0232]第二节点根据第二节点的共享密钥参数和杂凑值计算得到第二节点的共享密钥。
[0233]进一步的,图2中步骤205的一种可行的实现方式为:
[0234]步骤205a、第二节点接收第一节点发送的包含密文数据、初始化向量以及第一消息认证码的报文。
[0235]步骤205b、第二节点从第二节点的共享密钥中导出加密对称密钥和消息认证码密钥。
[0236]步骤205c、第二节点根据消息认证码密钥和初始化向量生成第二消息认证码。
`[0237]步骤205d、第二节点将第二消息认证码与第一消息认证码进行比对,若匹配,则对根据加密对称密钥对密文数据进行解密。
[0238]图3为本发明实施例提供的另一种基于组合公钥密码体制的通信方法流程示意图,该方法执行主体为密钥生成中心,如图3所示,该方法包括如下步骤:
[0239]步骤300、密钥生成中心根据主密钥集合生成系统参数集合,并将系统参数集合发送给网络节点。
[0240]步骤301、密钥生成中心接收网络节点发送的网络节点的标识。
[0241]步骤302、密钥生成中心根据网络节点的标识计算得到网络节点的私钥。
[0242]步骤303、密钥生成中心向网络节点发送网络节点的私钥。
[0243]本实施例提供的基于组合公钥密码体制的通信方法,通过密钥生成中心根据主密钥集合生成系统参数集合,并将系统参数集合发送给网络节点,密钥生成中心接收网络节点发送的网络节点的标识信息,密钥生成中心根据网络节点的标识信息计算得到网络节点的私钥,密钥生成中心向网络节点发送网络节点的私钥。由于每一个网络节点只需要和密钥生成中心通信一次,因此密钥生成中心可以简单地是一个板卡,或是整个云中的一个服务进程,对性要求较低,并且密钥生成中心也无需一直在线。因此降低了部署成本。
[0244]进一步的,在图3步骤300之前,还包括如下步骤:
[0245]密钥生成中心生成主密钥集合,主密钥集合表达式为:
[0246]MSK= (X1, X2,…,xn}
[0247]其中,MSK为主密钥集合,Xi为正整数,i e [I, η], η根据系统安全参数定义。
[0248]具体的,当上述实施例中的第一节点和第二节点通信时,此时,本实施例中的网络节点具体为第一节点和第二节点。[0249]进一步的,系统参数集合表达式为:
[0250]MPK= (Y1, y2, *.., yn}, Yi=POW(g, Xi)mod q,所述 i e [I, η]
[0251]其中,MPK为系统参数集合,q为大素数,g为q构成素数域上一个子群的生成元。
[0252]进一步的,密钥生成中心根据网络节点的标识,通过伪随机函数获取参数集合Invm2,..., mn}, Iiii为正整数,并且a^q, q为大素数,i e [I, η],需要说明的是上述实施例中的第一参数集合和第二参数集合为参数集合对应不同网络节点的标识时的具体集合。
[0253]密钥生成中心通过如下公式获取网络节点的私钥:
[0254]d=mod q
[0255]其中,d为网络节点的私钥。
[0256]以报文发送方为第一节点,报文接收方为第二节点为例,则密钥生成中心需要针对第一节点和第二节点,分别执行上述步骤300至303。下面通过具体实施例进行说明:
[0257]对于第一节点,图3中步骤301的具体实现方式为:
[0258]密钥生成中心接收第一节点发送的第一节点的标识。
[0259]对于第一节点,图3中步骤302的具体实现方式为:
[0260]第一节点的私钥表达式为:
[0261]Cl1= Ca1X^a2X2`+......anxn) mod q
[0262]其中,(I1为第一节点的私钥,q为大素数,{a” a2,…,an}为第一参数集合,Bi为正整数,第一参数集合通过将第一节点的标识作为PRF的输入得到,并且ai〈q,所i e [I,η],Ix1, χ2,..., χη}为主密钥集合,Xi为正整数,η根据系统安全参数定义。
[0263]对于第一节点,图3中步骤303的具体实现方式为:
[0264]密钥生成中心向第一节点发送屯。
[0265]对于第二节点,图3中步骤301的具体实现方式为:
[0266]密钥生成中心接收第二节点发送的第二节点的标识。
[0267]对于第二节点,图3中步骤302的具体实现方式为:
[0268]密钥生成中心根据第二节点的标识,通过伪随机函数获取第二参数集合Ib1,b2,..., bn}, bj为正整数,并且bi〈q, q为大素数,i e [I, η];
[0269]密钥生成中心通过如下公式获取第二节点的私钥:
[0270]d2= Cb1X^b2X2+......bnxn) mod q
[0271]其中,d2为第二节点的私钥。
[0272]对于第二节点,图3中步骤303的具体实现方式为:
[0273]密钥生成中心向第二节点发送d2。
[0274]图4为本发明实施例提供的另一种基于组合公钥密码体制的通信方法流程示意图,参照图4,对上述第一节点、第二节点与密钥生成中心之间的交互进行详细说明,具体的,第一节点以客户端为例,第二节点以服务器为例。参照图4,该方法包括如下步骤:
[0275]步骤400、密钥生成中心根据主密钥集合生成系统参数集合。
[0276]具体的,系统的初始化:密钥生成中心完成系统的建立,生成主密钥集合MSK和系统参数集合MPK。进一步的,密钥生成中心预先完成系统的初始化,生成MSK= Ix1, x2,……,xn} MPK= (Y1, J2,......,yn},其中 Yi=Pow (g, Xi)mod q。
[0277]步骤401、密钥生成中心将系统参数集合发送给客户端。[0278]步骤402、密钥生成中心将系统参数集合发送给服务器。
[0279]需要说明的是,步骤401、402之间不存在先后的逻辑顺序。另外当网络中存在多组节点进行数据通信时,密钥生成中心均可将系统参数集合发送给所需节点。
[0280]步骤403、客户端向密钥生成中心发送客户端的标识。
[0281]具体的,每个节点,例如客户端或服务器会获得一个公认的标识,如主机名,域名、网络地址、网络名称、IP地址、域名、电话号码或系统约定的一个唯一名称。节点的名称由有地址/名称和有效期构成。节点构造自己的标识,如ID=162.105.30.187#20120CT,是由两部分构成的,分别是地址或名字,以及有效期。
[0282]步骤404、服务器向密钥生成中心发送服务器的标识。
[0283]步骤405、密钥生成中心根据客户端的标识和服务器的标识,分别计算得到客户端的私钥、服务器的私钥。
[0284]具体的,以客户端为例密钥生成中心首先将客户端的标识作为输入,通过伪随机函数获得Im1, m2,..., mn},之后计算该节点(客户端或服务器)的私钥,即d= (Hi1X^m2X2+-..mnxn) mod q。
[0285]步骤406、密钥生成中心向客户端发送客户端的私钥。
[0286]具体的,密钥生成中心通过安全信道向客户端发送客户端的私钥。
[0287]步骤407、密钥生成中心向服务器发送服务器的私钥。
[0288]具体的,密钥生成中心通过安全信道向服务器发送服务器的私钥。
[0289]需要说明的是,步骤406、407之间不存在先后的逻辑顺序。
[0290]步骤408、客户端根据客户端的私钥预先计算第一共享密钥参数。
[0291]具体的,以客户端为例,客户端可以获取一个包含所有临近节点唯一标识在内的标识列表。这个标识列表可以是从某个接口获得(例如手机可以访问本地的电话号码本),也可以是由客户端自动生成(如枚举所在网络所有地址)。
[0292]客户端计算第一共享密钥参数的部分密钥列表,每个标识对应一个共享密钥参数:PRF (ID)的得到{a” a2,……,aj,客户端的第一共享密钥参数P= (pow (Υι, B1)
pow(y2, a2)......pow(yn, an)) ~d mod q,通过理论可以证实该(pow(r1; a^pow(y2, a2)......pow(yn, an))'d mod q=pow(g, d_{client} d_{server})mod q。其中 d_{client}为客户端
的私钥,d_{server}为服务器的私钥。作用在于:通过计算(pow(r1; a^pow(y2, a2)......pow (yn, an)) ~d mod q (这里的d是指d_{client}),客户端在不知道服务器的私钥(d_{server})的情况下可以计算双方的共享密钥参数P,并且客户(client)和服务器(server)都可以这么做,最后达成的共享秘钥实际上等同于获知了两方的私钥d_{client}和d_{server},这实现了将Diffile-Hellman秘钥协商过程应用在CPK场景。
[0293]步骤409、客户端监听所在网络范围内的广播信息。
[0294]具体的,客户端维护时间窗口的缓冲,用于记录该时间窗口内所在网络范围内的广播信息,这些广播信息可以被所有临近节点监听。广播信息可以来自于一个专用的广播节点,也可以是临近节点间的通信,也可以是网络上可识别的背景音。需要说明的是,步骤409为可选。
[0295]步骤410、客户端根据广播信息获取杂凑值,并根据第一共享密钥参数和杂凑值计算得到客户端的共享密钥。[0296]具体的,客户端计算时间窗口的所有缓冲的杂凑值h。客户端读取所要通信的对方节点对应的预计算结果,即服务器的第二共享密钥参数P1。客户端计算共享密钥SK=HMAC(Pl,h)。需要说明的会,若没有步骤409时,则不需要杂凑值。
[0297]步骤411、服务器根据服务器的私钥预先计算第二共享密钥参数。
[0298]具体的,以服务器为例,服务器可以获取一个包含所有临近节点唯一标识在内的标识列表。这个标识列表可以是从某个接口获得(例如手机可以访问本地的电话号码本),也可以是由服务器自动生成(如枚举所在网络所有地址)。
[0299]参照步骤208的说明,此处不再赘述。
[0300]步骤412、服务器监听所在网络范围内的广播信息。
[0301 ] 具体的,服务器维护时间窗口的缓冲,用于记录该时间窗口内所在网络范围内的广播信息,这些广播信息可以被所有临近节点监听。广播信息可以来自于一个专用的广播节点,也可以是临近节点间的通信,也可以是网络上可识别的背景音。
[0302]步骤413、服务器根据广播信息获取杂凑值,并根据第二共享密钥参数和杂凑值计算得到服务器的共享密钥。
[0303]具体的,服务器计算时间窗口的所有缓冲的杂凑值h。服务器读取所要通信的对方节点对应的预计算结果,即客户端的第一共享密钥参数P2。服务器计算共享密钥SK=HMAC(P2, h)。
[0304]需要说明的是,步骤408至410与步骤411至413之间不存在先后的逻辑关系。
[0305]步骤414、客户端点向服务器点发送共享密钥验证消息,共享密钥验证消息包含客户端的第一密钥验证码。
[0306]具体的,客户端向服务器发送HMAC(SK,“client finish”+h);服务器发送回来HMAC(SK, “server finish”+h);双方互相验证对方HMAC结果是否正确。
[0307]步骤415、服务器向客户端发送共享密钥响应消息,确认客户端的密钥验证码正确。
[0308]步骤416、客户端与服务器进行安全通信。
[0309]具体的,安全通信的实现方式参见上述实施例中步骤105a至105c,以及步骤205a至205d。其中,加密对称密钥和消息认证码密钥(例如,MAC密钥)分别从共享密钥中导出。随机生成IV(初始化向量),采用对称加密方案(如AES-CBC )加密数据,并采用MAC算法(如HMAC-SHA-256)根据消息认证码密钥、初始化向量和密文数据生成第一消息认证码,附加在密文数据后面。最后发送报文。接收方导出加密对称密钥和消息认证码密钥。首先根据其生成的消息认证码密钥、IV和密文数据重新生成第二消息认证码,并和传过来的密文数据中的第一消息认证码做匹配,如果不相同则报错。若相同,则用加密对称密钥密文数据得到明文。
[0310]图5为本发明实施例提供的一种节点结构示意图,该节点可以为上述实施例中的第一节点,如图5所示,该节点I包括:获取模块10、处理模块12、发送模块13、接收模块14。
[0311]获取模块10,用于从密钥生成中心获取节点I的私钥,并根据相邻节点标识列表获取另一节点的标识。
[0312]需要说明的是,另一节点对应上述实施例中的第二节点。
[0313]处理模块12,用于根据另一节点的标识计算得到另一节点的公钥;还用于根据节点I的私钥和另一节点的公钥计算节点I的共享密钥参数;还用于根据节点I的共享密钥参数计算得到节点I的共享密钥,生成与节点I的共享密钥对应的第一密钥验证码。
[0314]发送模块13,用于向另一节点发送共享密钥验证消息,共享密钥验证消息包含第一密钥验证码。
[0315]接收模块14,用于接收另一节点发送的共享密钥响应消息,确认第一密钥验证码正确。
[0316]发送模块13,还用于根据节点I的共享密钥与另一节点通信。。
[0317]本实施例提供的节点,通过获取模块从密钥生成中心获取节点的私钥,并根据相邻节点标识列表获取另一节点的标识;处理模块根据另一节点的标识计算得到另一节点的公钥;根据节点的私钥和另一节点的公钥计算节点的共享密钥参数;根据节点的共享密钥参数计算得到节点的共享密钥,生成与节点的共享密钥对应的第一密钥验证码;发送模块向另一节点发送共享密钥验证消息,共享密钥验证消息包含第一密钥验证码;接收模块接收另一节点发送的共享密钥响应消息,确认第一密钥验证码正确;发送模块根据节点的共享密钥与另一节点通信,由于处理模块根据节点的私钥预先计算第一共享密钥参数以及根据第一共享密钥参数和杂凑值计算得到节点的共享密钥的步骤是可以离线完成,减少了交互次数,因此当节点发起认证时,可以在非常短的时间内完成认证过程,提高了认证的效率。
[0318]进一步的,获取模块10,具体用于获取节点100的标识,并向密钥生成中心发送节点I的标识,接收密钥生成中心发送的节点I的私钥。
[0319]进一步的,节点I的私钥表达式为:
[0320]Cl1= Ca1X^a2X`2+......anxn) mod q
[0321]其中,(I1为节点的私钥,q为大素数,{a1;a2, ---,aj为第一参数集合,Bi为正整数,第一参数集合通过将节点的标识作为伪随机函数的输入得到,并且ai〈q,i e [I, n], Ix1,x2,...,χη}为主密钥集合,Xi为正整数,η根据系统安全参数定义。
[0322]进一步的,接收模块14,还用于接收密钥生成中心发送的系统参数集合,系统参数集合表达式为:
[0323]MPK= (Y1, J2, *.., yn}, Yi=POW(g, Xi)mod q,所述 i e [I, η]
[0324]其中,MPK为系统参数集合,g为q构成素数域上一个子群的生成元。
[0325]进一步的,处理模块12,具体还用于根据节点I的私钥和另一节点的公钥通过如下公式计算节点I的共享密钥参数:
[0326]P1= (powG1, Id1)pow(y2, b2)...pow(yn, bn)) ~(I1Iiiod q
[0327]其中,P1为节点I的共享密钥参数,(powh,Id1) pow (y2,b2)…pow (yn,bn))为另一节点的公钥,Ibpb2,…,bn}为第二参数集合,匕为正整数,第二参数集合通过将另一节点的标识作为伪随机函数的输入得到,并且bi〈q,i e [l,n]。
[0328]在图5的基础上,图6为本发明实施例提供的另一种节点结构不意图,参照图6,该节点Ia还包括:监听模块11。
[0329]监听模块11,监听节点Ia所在网络范围内的广播信息,根据广播信息获取杂凑值。
[0330]具体的,监听模块维护时间窗口的缓冲,节点Ia将该时间窗口内网络范围内的广播信息记录在缓冲中,根据广播信息获取杂凑值。进一步的,节点Ia所在网络范围内的广播信息由专用的广播节点进行广播;或者,节点Ia所在网络范围内的广播信息为节点Ia的邻近节点间的通信信息;或者,节点Ia所在网络范围内的广播信息为网络范围内的可识别
进旦立冃牙、曰?
[0331]处理模块12,具体用于根据节点Ia的共享密钥参数和杂凑值计算得到节点Ia的共享密钥。
[0332]进一步的,处理模块12,具体还用于从节点Ia的共享密钥中导出加密对称密钥和消息认证码密钥。
[0333]处理模块12,具体还用于随机生成初始化向量,根据加密对称密钥加密数据,生成密文数据;根据消息认证码密钥、初始化向量和密文数据生成消息认证码。
[0334]发送模块13,具体还用于将包含密文数据、初始化向量以及消息认证码的报文发
送给另一节点。
[0335]图7为本发明实施例提供的另一种节点结构示意图,该节点2可以为上述实施例中的第二节点,如图7所示,该节点2包括:获取模块20、处理模块22、发送模块23、接收模块24。
[0336]获取模块20,用于从密钥生成中心获取节点2的私钥,并根据相邻节点标识列表获取另一节点的标识。
[0337]需要说明的是,另`一节点对应上述实施例中的第一节点。
[0338]处理模块22,用于根据另一节点的标识计算得到另一节点的公钥;还用于根据节点2的私钥和另一节点的公钥计算节点2的共享密钥参数;还用于根据节点2的共享密钥参数计算得到节点2的共享密钥,生成与节点2的共享密钥对应的第二密钥验证码。
[0339]接收模块24,用于接收另一节点发送的共享密钥验证消息,共享密钥验证消息包含第一密钥验证码。
[0340]发送模块23,用于若第一密钥验证码与第二密钥验证码匹配,则向另一节点发送共享密钥响应消息,确认第一密钥验证码正确。
[0341]接收模块24,还用于根据节点2的共享密钥与另一节点通信。
[0342]本实施例提供的节点,通过获取模块从密钥生成中心获取节点的私钥,并根据相邻节点标识列表获取另一节点的标识;处理模块根据另一节点的标识计算得到另一节点的公钥;根据节点的私钥和另一节点的公钥计算节点的共享密钥参数;根据节点的共享密钥参数计算得到节点的共享密钥,生成与节点的共享密钥对应的第二密钥验证码;接收模块接收另一节点发送的共享密钥验证消息,共享密钥验证消息包含第一密钥验证码;若第一密钥验证码与第二密钥验证码匹配,则发送模块向另一节点发送共享密钥响应消息,确认第一密钥验证码正确;接收模块根据节点的共享密钥与另一节点通信,由于根据节点的私钥预先计算第二共享密钥参数以及根据第二共享密钥参数和杂凑值计算得到节点的共享密钥的步骤是可以离线完成,减少了交互次数,因此当发起方的节点发起认证时,节点可以在非常短的时间内完成认证过程,提高了认证效率。
[0343]进一步的,获取模块20,具体用于获取节点2的标识,并向密钥生成中心发送节点2的标识,接收密钥生成中心发送的节点2的私钥。
[0344]其中,节点2的私钥表达式为:[0345]d2= Cb1X^b2X2+*** bnxn) mod q
[0346]其中,d2为节点2的私钥,q为大素数,{b1; b2,..., bj为第二参数集合,h为正整数,第二参数集合通过将节点2的标识作为PRF的输入得到,并且bi〈q,i e [I, n], Ix1,x2,...,xn}为主密钥集合,Xi为正整数,η根据系统安全参数定义。
[0347]进一步的,接收模块24,还用于接收密钥生成中心发送的系统参数集合,系统参数集合表达式为:
[0348]MPK= (Y1, J2, *.., yn}, Yi=POW(g, Xi)mod q,所述 i e [I, η]
[0349]其中,MPK为系统参数集合,g为q构成素数域上一个子群的生成元。
[0350]处理模块22,具体还用于根据节点2的私钥和另一节点的公钥通过如下公式计算节点2的共享密钥参数:
[0351]P2= (pow (Y1, a1)pow(y2, a2) *..ρο¥(η, an)) "d2mod q
[0352]其中,P2为节点2的共享密钥参数,(pow (Y1, apow (y2, a2)…pow(yn, an)为另一节点的公钥,{a1;a2,…,an}为第一参数集合,为正整数,第一参数集合通过将另一节点的标识作为伪随机函数的输入得到,并且ai〈q,i e [l,n]。
[0353]在图7基础上,图8为本发明实施例提供的另一种节点结构示意图,参照图8,该节点2a还包括:监听模块21。
[0354]监听模块21,用于监听节点2a所在网络范围内的广播信息,根据广播信息获取杂凑值。
[0355]具体的,监听模块维护时间窗口的缓冲,将该时间窗口内网络范围内的广播信息记录在缓冲中,根据广播信息获取杂凑值。进一步的,节点2a所在网络范围内的广播信息由专用的广播节点进行广播;或者,节点2a所在网络范围内的广播信息为节点的邻近节点间的通信信息;或者,节点2a所在网络范围内的广播信息为网络范围内的可识别背景音。
[0356]处理模块22,具体用于根据节点2a的共享密钥参数和杂凑值计算得到节点的共享密钥。
[0357]进一步的,接收模块24,具体还用于收另一节点发送的包含密文数据、初始化向量以及第一消息认证码的报文。
[0358]处理模块22,具体还用于从节点的共享密钥中导出加密对称密钥和消息认证码密钥。
[0359]处理模块22,具体还用于根据消息认证码密钥和初始化向量生成第二消息认证码。
[0360]处理模块22,具体还用于将第二消息认证码与第一消息认证码进行比对,若匹配,则对根据加密对称密钥对密文数据进行解密。
[0361]图9为本发明实施例提供的一种密钥生成中心结构示意图,如图9所示,该密钥生成中心3包括:处理模块30、接收模 块31、发送模块32。
[0362]处理模块30,用于根据主密钥集合生成系统参数集合,并将系统参数集合发送给网络节点。
[0363]接收模块31,用于接收网络节点发送的网络节点的标识。
[0364]处理模块30,还用于根据网络节点的标识计算得到网络节点的私钥;
[0365]发送模块32,用于向网络节点发送网络节点的私钥。[0366]本实施例提供的密钥生成中心,通过处理模块根据主密钥集合生成系统参数集合,并将系统参数集合发送给网络节点。接收模块接收网络节点发送的网络节点的标识。处理模块根据网络节点的标识计算得到网络节点的私钥;发送模块向网络节点发送网络节点的私钥。由于每一个网络节点只需要和密钥生成中心通信一次,因此密钥生成中心可以简单地是一个板卡,或是整个云中的一个服务进程,对性要求较低,并且密钥生成中心也无需一直在线。因此降低了部署成本。
[0367]进一步的,处理模块30,还用于生成主密钥集合,主密钥集合表达式为:
[0368]MSK= (X1, X2,…,xn}
[0369]其中,MSK为主密钥集合,Xi为正整数,i e [I, η], η根据系统安全参数定义。
[0370]进一步的,系统参数集合表达式为:
[0371]MPK= (Y1, J2, *.., yn}, Yi=POW(g, x^mod q,所述 i e [I, η]
[0372]其中,MPK为系统参数集合,q为大素数,g为q构成素数域上一个子群的生成元。
[0373]处理模块30,具体用于根据网络节点的标识,通过伪随机函数获取参数集合Im1,m2,…,HinKmi为正整数,并且所述mi〈q,所述q为大素数,所述i e [I, η];
[0374]处理模块30,具体用于通过如下公式获取网络节点的私钥:
[0375]d=mod q
[0376]其中,d为网络`节点的私钥。
[0377]具体的,当上述实施例中的第一节点和第二节点通信时,此时,本实施例中的网络节点具体为第一节点和第二节点。
[0378]则密钥生成中心3需要针对第一节点和第二节点,分别执行上述步骤300至303。下面通过具体实施例进行说明:
[0379]针对第一节点:
[0380]接收模块31,具体用于接收第一节点发送的第一节点的标识。
[0381]处理模块30,具体用于根据第一节点的标识,通过伪随机函数获取第一参数集合Ia1, a2,..., aj,at 为正整数,并且 a^q, q 为大素数,i e [I, η];
[0382]处理模块30,具体用于通过如下公式获取第一节点的私钥:
[0383]Cl1= Ca1Xja2X2+...anxn) mod q
[0384]其中,(I1为第一节点的私钥。
[0385]发送模块32,具体用于向第一节点发送屯。
[0386]针对第二节点:
[0387]接收模块31,具体用于接收第二节点发送的第二节点的标识。
[0388]处理模块30,具体用于根据第二节点的标识,通过伪随机函数获取第二参数集合{b1; b2,..., bn}, IDi 为正整数,并且 bi〈q, q 为大素数,i e [I, η]。
[0389]处理模块30,具体用于通过如下公式获取第二节点的私钥:
[0390]d2= Cb1X^b2X2+......bnxn) mod q
[0391]其中,d2为第二节点的私钥。
[0392]发送模块32,具体用于向第二节点发送d2。
[0393]网络中的任意两个节点与密钥生成中心都能构成基于组合公钥密码体制的安全通信系统,其中一个节点为作为数据的发送方,如上述实施例中的第一节点,另一个节点作为数据的接收方,如上述实施例中的第二节点。作为发送方的节点,可以采用图5或图6的结构其对应地,执行本发明基于组合公钥密码体制的通信方法中图1所示的技术方案;作为接收方的节点,可以采用图7或图8的结构其对应地,执行本发明基于组合公钥密码体制的通信方法中图2所示的技术方案;密钥生成中心可以采用图9的结构其对应地,执行本发明基于组合公钥密码体制的通信方法中图3所示的技术方案。其实现原理和技术效果类似,此处不再赘述。
[0394]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0395]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种基于组合公钥密码体制的通信方法,其特征在于,包括: 第一节点从密钥生成中心获取所述第一节点的私钥,并根据相邻节点标识列表获取第二节点的标识; 所述第一节点根据所述第二节点的标识计算得到所述第二节点的公钥; 所述第一节点根据所述第一节点的私钥和所述第二节点的公钥计算所述第一节点的共享密钥参数; 所述第一节点根据所述第一节点的共享密钥参数计算得到所述第一节点的共享密钥,生成与所述第一节点的共享密钥对应的密钥验证码; 所述第一节点向所述第二节点发送共享密钥验证消息,所述共享密钥验证消息包含所述密钥验证码; 所述第一节点接收所述第二节点发送的共享密钥响应消息,确认所述密钥验证码正确; 所述第一节点根据所述第一节点的共享密钥与所述第二节点通信。
2.根据权利要求1所述的方法,其特征在于,所述第一节点从所述密钥生成中心获取所述第一节点的私钥,包括: 所述第一节点获取所述第一节点的标识,并向所述密钥生成中心发送所述第一节点的标识; 所述第一节点接收所述密钥生成中心发送的所述第一节点的私钥。
3.根据权利要求1或2所述的方法,其特征在于,所述第一节点的私钥表达式为:
Cl1= Ca1X^a2X2+......anxn) mod q 其中,所述Cl1为所述第一节点的私钥,所述q为大素数,所述{ai,a2,…,an}为第一参数集合,Bi为正整数,所述第一参数集合通过将所述第一节点的标识作为伪随机函数的输入得到,并且a^q,所述i e [l,n],所述{Xl,X2,...,Xn}为主密钥集合,Xi为正整数,所述η根据系统安全参数定义。
4.根据权利要求3所述的方法,其特征在于,在所述第一节点获取所述第一节点的私钥之前,还包括: 所述第一节点接收所述密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
MPK= (Y1, J2,…,yn}, yfpow(g, Xi)mod q,所述 i e [I, η] 其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成元。
5.根据权利要求4所述的方法,其特征在于,所述第一节点根据所述第一节点的私钥和所述第二节点的公钥通过如下公式计算所述第一节点的共享密钥参数:
P1= (pow (Y1, b^pow (y2, b2)...pow(yn, bn)) 'c^mod q 其中,所述P1为所述第一节点的共享密钥参数,所述(pow(y1; Id1) pow (y2, b2)…pow(yn,bn))为所述第二节点的公钥,所述Ibpb2,…,bn}为第二参数集合,匕为正整数,所述第二参数集合通过将所述第二节点的标识作为伪随机函数的输入得到,并且bi〈q,i e [l,n]。
6.根据权利要求1-5任意一项所述的方法,其特征在于,在所述第一节点根据所述第一节点的私钥和所述第二节点的公钥计算所述第一节点的共享密钥参数之后,还包括: 所述第一节点监听所述第一节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值; 所述第一节点根据所述第一节点的共享密钥参数计算得到所述第一节点的共享密钥,包括: 所述第一节点根据所述第一节点的共享密钥参数和所述杂凑值计算得到所述第一节点的共享密钥。
7.根据权利要求6所述的方法,其特征在于,所述第一节点监听所述第一节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值,包括: 所述第一节点维护时间窗口的缓冲,所述第一节点将所述时间窗口内所述网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
8.根据权利要求1-7任意一项所述的方法,其特征在于,所述第一节点根据所述第一节点的共享密钥与所述第二节点通信,包括: 所述第一节点从所述第一节点的共享密钥中导出加密对称密钥和消息认证码密钥; 所述第一节点随机生成初始化向量,根据所述加密对称密钥加密数据,生成密文数据;根据所述消息认证码密钥、所述初始化向量和所述密文数据生成消息认证码; 所述第一节点将包含所述密文数据、所述初始化向量以及所述消息认证码的报文发送给所述第二节点。
9.一种基于组合公钥密码体制的通信方法,其特征在于,包括: 第二节点从密钥生成中心获取所述第二节点的私钥,并根据相邻节点标识列表获取第一节点的标识;` 所述第二节点根据所述第一节点的标识计算得到所述第一节点的公钥; 所述第二节点根据所述第二节点的私钥和所述第一节点的公钥计算所述第二节点的共享密钥参数; 所述第二节点根据所述第二节点的共享密钥参数计算得到所述第二节点的共享密钥,生成与所述第二节点的共享密钥对应的第二密钥验证码; 所述第二节点接收所述第一节点发送的共享密钥验证消息,所述共享密钥验证消息包含第一密钥验证码; 若所述第一密钥验证码与所述第二密钥验证码匹配,则所述第二节点向所述第一节点发送共享密钥响应消息,确认所述第一密钥验证码正确; 所述第二节点根据所述第二节点的共享密钥与所述第一节点通信。
10.根据权利要求9所述的方法,其特征在于,所述第二节点从所述密钥生成中心获取所述第二节点的私钥,包括: 所述第二节点获取所述第二节点的标识,并向所述密钥生成中心发送所述第二节点的标识; 所述第二节点接收所述密钥生成中心发送的所述第二节点的私钥。
11.根据权利要求9或10所述的方法,其特征在于,所述第二节点的私钥表达式为:
d2= Cb1X^b2X2+*** bnxn) mod q 其中,所述(12为所述第二节点的私钥,所述q为大素数,所述Ibpb2,…,bn}为第二参数集合,h为正整数,所述第二参数集合通过将所述第二节点的标识作为伪随机函数的输入得到,并且bi〈q,i e [l,n],所述Ix1, x2,...,xn}为主密钥集合,Xi为正整数,所述η根据系统安全参数定义。
12.根据权利要求11所述的方法,其特征在于,在所述第二节点获取所述第二节点的私钥之前,还包括: 所述第二节点接收所述密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
MPK= (Y1, J2,…,yn}, yfpow(g, Xi)mod q,所述 i e [I, η] 其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成元。
13.根据权利要求12所述的方法,其特征在于,所述第二节点根据所述第二节点的私钥和所述第一节点的公钥通过如下公式计算所述第二节点的共享密钥参数:
P2= (pow (Y1, a^pow (y2, a2)...pow(yn, an)) "d2mod q 其中,所述P2为所述第二节点的共享密钥参数,所述(pow(y1; a^pow (y2, a2)…pow(yn,an))为所述第一节点的公钥,所述{a1;a2,…,an}为第一参数集合,为正整数,所述第一参数集合通过将所述第一节点的标识作为伪随机函数的输入得到,并且a^q,i e [l,n]。
14.根据权利要求9-13任意一项所述的方法,其特征在于,在所述第二节点根据所述第二节点的私钥和所述第一节点的公钥计算所述第二节点的共享密钥参数之后,还包括: 所述第二节点监听所述第二节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值;` 所述第二节点根据所述第二节点的共享密钥参数计算得到所述第二节点的共享密钥,包括: 所述第二节点根据所述第二节点的共享密钥参数和所述杂凑值计算得到所述第二节点的共享密钥。
15.根据权利要求14所述的方法,其特征在于,所述第二节点监听所述第二节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值,包括: 所述第二节点维护时间窗口的缓冲,所述第二节点将所述时间窗口内所述网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
16.根据权利要求9-15任意一项所述的方法,其特征在于,所述第二节点根据所述第二节点的共享密钥与所述第一节点通信,包括: 所述第二节点接收所述第一节点发送的包含密文数据、初始化向量以及第一消息认证码的报文; 所述第二节点从所述第二节点的共享密钥中导出加密对称密钥和消息认证码密钥; 所述第二节点根据所述消息认证码密钥和所述初始化向量生成第二消息认证码; 所述第二节点将所述第二消息认证码与所述第一消息认证码进行比对,若匹配,则根据所述加密对称密钥对所述密文数据进行解密。
17.一种基于组合公钥密码体制的通信方法,其特征在于,包括: 密钥生成中心根据主密钥集合生成系统参数集合,并将所述系统参数集合发送给网络节点; 所述密钥生成中心接收所述网络节点发送的所述网络节点的标识; 所述密钥生成中心根据所述网络节点的标识计算得到所述网络节点的私钥; 所述密钥生成中心向所述网络节点发送所述网络节点的私钥。
18.根据权利要求17所述的方法,其特征在于,所述密钥生成中心根据主密钥集合生成系统参数集合之前,还包括: 所述密钥生成中心生成所述主密钥集合,所述主密钥集合表达式为:
MSK= (X1, x2,…,xn} 其中,所述MSK为主密钥集合,Xi为正整数,所述i e [1,η],所述η根据系统安全参数定义。
19.根据权利要求18所述的方法,其特征在于,所述系统参数集合表达式为:
MPK= (Y1, J2,…,yn}, yfpow(g, Xi)mod q,所述 i e [I, η] 其中,所述MPK为系统参数集合,所述q为大素数,所述g为所述q构成素数域上一个子群的生成元。
20.根据权利要求19所述的方法,其特征在于,所述密钥生成中心根据所述网络节点的标识计算得到所述网络节点的私钥,包括: 所述密钥生成中心根据所述网络节点的标识,通过伪随机函数获取参数集合Im1,m2,..., mn}, Iiii 为正整数,并且 m^q ; 所述密钥生成中心通过如下公式获取所述网络节点的私钥: d= (In1Xfm2X2+...m nxn) mod q 其中,所述d为所述网络节点的私钥。
21.一种节点,其特征在于,包括: 获取模块,用于从密钥生成中心获取所述节点的私钥,并根据相邻节点标识列表获取另一节点的标识; 处理模块,用于根据所述另一节点的标识计算得到所述另一节点的公钥,根据所述节点的私钥和所述另一节点的公钥计算所述节点的共享密钥参数;还用于根据所述节点的共享密钥参数计算得到所述节点的共享密钥,生成与所述节点的共享密钥对应的密钥验证码; 发送模块,用于向所述另一节点发送共享密钥验证消息,所述共享密钥验证消息包含所述密钥验证码; 接收模块,用于接收所述另一节点发送的共享密钥响应消息,确认所述密钥验证码正确; 所述发送模块,还用于根据所述节点的共享密钥与所述另一节点通信。
22.根据权利要求21所述的节点,其特征在于,所述获取模块,具体用于获取所述节点的标识,并向所述密钥生成中心发送所述节点的标识,接收所述密钥生成中心发送的所述节点的私钥。
23.根据权利要求21或22所述的节点,其特征在于,所述节点的私钥表达式为:
Cl1= Ca1X^a2X2+......anxn) mod q 其中,所述Cl1为所述节点的私钥,所述q为大素数,所述{ai,a2,…,an}为第一参数集合,Bi为正整数,所述第一参数集合通过将所述节点的标识作为伪随机函数的输入得到,并且所述%〈所述q,所述i e [l,n],所述Ix1, x2,...,xn}为主密钥集合,Xi为正整数,所述η根据系统安全参数定义。
24.根据权利要求23所述的节点,其特征在于,所述接收模块,还用于接收密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
MPK= (Y1, J2,…,yn}, yfpow(g, Xi)mod q,所述 i e [I, η] 其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成元。
25.根据权利要求24所述的节点,其特征在于,所述处理模块,具体还用于根据所述节点的私钥和所述另一节点的公钥通过如下公式计算所述节点的共享密钥参数:
P1= (pow (Y1, b^pow (y2, b2)...pow(yn, bn)) 'c^mod q 其中,所述P1为所述节点的共享密钥参数,所述(PowG1, b^pow (y2, b2)…pow(yn, bn))为所述另一节点的公钥,所述Ibpb2,…,bj为第二参数集合,匕为正整数,所述第二参数集合通过将所述另一节点的标识作为伪随机函数的输入得到,并且bi〈q,i e [l,n]。
26.根据权利要求21-25任意一项所述的节点,其特征在于,还包括: 监听模块,监听所述节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值; 所述处理模块,具体用于根据所述节点的共享密钥参数和所述杂凑值计算得到所述节点的共享密钥。
27.根据权利要求26所述的节点,其特征在于,所述监听模块,具体用于维护时间窗口的缓冲,将所述时间窗口内所述网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
28.根据权利要求21-27任意一项所述的节点,其特征在于,所述处理模块,具体还用于从所述节点的共享密钥中导出加密对称密钥和消息认证码密钥,随机生成初始化向量,根据所述加密对称密钥加密数据,生成密文数据;根据所述消息认证码密钥、所述初始化向量和所述密文数据生成消息认证码; 所述发送模块,具体还用于将包含所述密文数据、所述初始化向量以及所述消息认证码的报文发送给所述另一节点。
29.—种节点,其特征在于,包括: 获取模块,用于从密钥生成中心获取所述节点的私钥,并根据相邻节点标识列表获取另一节点的标识; 处理模块,用于根据所述另一节点的标识计算得到所述另一节点的公钥;还用于根据所述节点的私钥和所述另一节点的公钥计算所述节点的共享密钥参数;还用于根据所述节点的共享密钥参数计算得到所述节点的共享密钥,生成与所述节点的共享密钥对应的第二密钥验证码; 接收模块,用于接收所述另一节点发送的共享密钥验证消息,所述共享密钥验证消息包含第一密钥验证码; 发送模块,用于若所述第一密钥验证码与所述第二密钥验证码匹配,则向所述另一节点发送共享密钥响应消息,确认所述第一密钥验证码正确; 所述接收模块,还用于根据所述节点的共享密钥与所述另一节点通信。
30.根据权利要求29所述的节点,其特征在于,所述获取模块,具体用于获取所述节点的标识,并向所述密钥生成中心发送所述节点的标识,接收所述密钥生成中心发送的所述节点的私钥。
31.根据权利要求29或30所述的节点,其特征在于,所述节点的私钥表达式为:d2= Cb1X^b2X2+*** bnxn) mod q 其中,所述d2为所述节点的私钥,所述q为大素数,所述Ibpb2,…,bn}为第二参数集合,匕为正整数,所述第二参数集合通过将所述节点的标识作为伪随机函数的输入得到,并且bi〈q, i e [I, η],所述{x1; x2,..., χη}为主密钥集合,Xi为正整数,所述η根据系统安全参数定义。
32.根据权利要求31所述的节点,其特征在于,所述接收模块,还用于接收所述密钥生成中心发送的系统参数集合,所述系统参数集合表达式为:
MPK= (Y1, J2,…,yn}, yfpow(g, Xi)mod q,所述 i e [I, η] 其中,所述MPK为系统参数集合,所述g为所述q构成素数域上一个子群的生成元。
33.根据权利要求32所述的节点,其特征在于,所述处理模块,具体还用于根据所述节点的私钥和所述另一节点的公钥通过如下公式计算所述节点的共享密钥参数:
P2= (pow (Y1, a^pow (y2, a2)...pow(yn, an)) "d2mod q 其中,所述P2为所述节点的共享密钥参数,所述(PowG1, B1)pow(y2, a2)…pow(yn, an)为所述另一节点的公钥,所述{a1;a2,…,an}为第一参数集合,%为正整数,所述第一参数集合通过将所述另一节点的标识作为伪随机函数的输入得到,并且ai〈q,i e [l,n]。
34.根据权利要求29-33任意一项所述的节点,其特征在于,还包括: 监听模块,用于监听所述节点所在网络范围内的广播信息,根据所述广播信息获取杂凑值; 所述处理模块,具体用于根据所述节点的`共享密钥参数和所述杂凑值计算得到所述节点的共享密钥。
35.根据权利要求34所述的节点,其特征在于,所述监听模块,具体用于维护时间窗口的缓冲,将所述时间窗口内所述所在网络范围内的广播信息记录在所述缓冲中,根据所述广播信息获取所述杂凑值。
36.根据权利要求29-35任意一项所述的节点,其特征在于,所述接收模块,具体还用于接收所述另一节点发送的包含密文数据、初始化向量以及第一消息认证码的报文; 所述处理模块,具体还用于从所述节点的共享密钥中导出加密对称密钥和消息认证码密钥,根据所述消息认证码密钥和所述初始化向量生成第二消息认证码; 所述处理模块,具体还用于将所述第二消息认证码与所述第一消息认证码进行比对,若匹配,则对根据所述加密对称密钥对所述密文数据进行解密。
37.一种密钥生成中心,其特征在于,包括: 处理模块,用于根据主密钥集合生成系统参数集合,并将所述系统参数集合发送给网络节点; 接收模块,用于接收所述网络节点发送的所述网络节点的标识; 所述处理模块,还用于根据所述网络节点的标识计算得到所述网络节点的私钥; 发送模块,用于向所述网络节点发送所述网络节点的私钥。
38.根据权利要求37所述的密钥生成中心,其特征在于,所述处理模块,还用于生成所述主密钥集合,所述主密钥集合表达式为:
MSK= (X1, x2,…,xn} 其中,所述MSK为主密钥集合,Xi为正整数,所述i e [1,η],所述η根据系统安全参数定义。
39.根据权利要求38所述的密钥生成中心,其特征在于,所述系统参数集合表达式为:
MPK= (Y1, J2,…,yn}, yfpow(g, Xi)mod q,所述 i e [I, η] 其中,所述MPK为系统参数集合,所述q为大素数,所述g为所述q构成素数域上一个子群的生成元。
40.根据权利要求39所述的密钥生成中心,其特征在于,所述处理模块,具体用于根据所述网络节点的标识,通过伪随机函数获取参数集合Im1, m2,..., mn}, Hii为正整数,并且所述11^,所述 i e [I, η]; 所述处理模块,具体用于通过如下公式获取所述网络节点的私钥: d= (In1Xfm2X2+...mnxn) mod q 其中,所述d为所述网络节点的私钥。
41.一种基于组合公钥密码体制的通信系统,其特征在于,包括:权利要求21-28任意一项所述的节点,权利要求29-36任意一项所述的节点,权利要求37-39任意一项所述的密钥生成中心 。
【文档编号】H04L9/08GK103825733SQ201410073565
【公开日】2014年5月28日 申请日期:2014年2月28日 优先权日:2014年2月28日
【发明者】刘新保 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1