基于区块链的对称群组密钥协商方法与流程

文档序号:18159970发布日期:2019-07-13 09:17阅读:635来源:国知局
基于区块链的对称群组密钥协商方法与流程

本发明涉及信息安全的技术领域,尤其涉及一种基于区块链的对称群组密钥协商方法。



背景技术:

群组密钥协议具有广泛的应用,如安全多方计算、资源安全共享和分布式协同计算等方向的应用。在具有自组织性、无中心性、拓扑动态变化的移动自组织网络中进行群组通信需要保障信息的安全交换及安全传输。群组密钥协商方案是群组之间在线计算出群组会话密钥,进而用该会话密钥进行群组加密通信,是保障群组之间进行安全信息交换与传输的关键技术之一。

移动自组网中,各移动终端间为保障群组间通信信息的保密性、完整性和抗泄漏性,群组间的通信信息需要进行加密传输和交换。群组密钥协商是在群组终端间协商一个会话密钥,用于群组间通信息的加密,以便群组间安全的进行信息交换和信息传输。移动自组网中,由于移动终端具有频繁的加入群组或者退出群组、个人隐私容易泄露、网络节点计算及通信能力受限等性质。因此,在该网络环境下群组密钥协商需要更加灵活的、高效的、节能的计算方案。

为了防止不具有权限的终端加入群组通信,群组终端在进行群组密钥协商过程中需要进行身份认证。传统基于身份认证的群组密钥协商方法在进行身份认证过程中,容易暴露个人身份信息。目前,针对基于区块链技术的组密钥协商的研究尚未出现。一系列的挑战性问题有待解决,包括群组密钥协商过程中区块数据结构定义,区块数据的封装、区块身份认证及个人隐私保护问题等方面的工作尚无先例。



技术实现要素:

针对现有群组密钥协商方法进行身份认证过程中,容易暴露个人身份信息,且对信息敏感度较高,无法确定群组成员的访问权限的技术问题,本发明提出一种基于区块链的对称群组密钥协商方法,采用区块链匿名认证技术在群组密钥协议的身份认证过程中实现个人隐私保护,并且采用区块链分布式计算技术,减少每个参与者的计算和通信开销,采用区块链的记录技术进行追溯和问责,避免不具有权限的终端加入群组通信。

为了达到上述目的,本发明的技术方案是这样实现的:一种基于区块链的对称群组密钥协商方法,其步骤如下:

步骤一:群组信息交换网络域内的密钥生成中心kgc和终端成员相互广播消息生成各自的公/私钥对:

a)密钥生成中心kgc随机选择私钥,并利用加法群的生成元计算公钥从而得系统的其公/私钥对;

b)密钥生成中心kgc对域内的所有终端成员ui进行身份认证,并签名,其中,1≤i≤n,n为密钥生成中心kgc内终端成员的个数;

c)终端成员ui通过密钥生成中心kgc的签名的消息计算终端成员自身的公/私钥对;其中;

步骤二:终端成员之间进行群组密钥的计算:

d)终端成员ui之间相互广播ip地址和公钥对组成的信息,基于ip地址的大小,对信息进行排序得到群组所有成员的序对集合;

每个群组密钥协商参与者ui(1≤i≤n)广播其ip地址及其公钥群组其他成员uj(1≤j≤n,j≠i)收到终端成员ui的广播后对进行排序,其中,ipi表示终端成员ui的ip地址,表示终端成员ui的公钥。

e)序对集合中的第一个终端成员作为第一个节点将群组密钥参数组成的消息封装到第一个区块并传递给下一节点,依次循环直到最后一个节点的前一节点;

群组密钥协商的发起者为序列中第一个成员,假设群组密钥发起者为u1,u1随机选择一个群组密钥因子并计算群组密钥参数m1=m1g1,将相应的参数进行区块封装,并传给下一个节点u2,其中,m1表示u1计算的群组密钥参数,是中间变量,表示阶为q的整数集,g1为加法群g1的生成元。

f)最后一个节点收到其前一节点发送的消息计算自身的群组密钥并把群组密钥参数组成的消息封装到第n个区块并广播给其他节点;其他节点根据第n个区块中的群组密钥参数计算各自的群组密钥;

群组序列中最后一个节点un收到un-1发送的消息后,un验证un-1的身份,如果验证通过,节点un随机选择两个正整数并计算中间变量mn=mng1。节点un将相应的传递参数封装成新的区块,作为区块链的最后一个区块。节点un用正整数tn对所有成员的群组密钥参数进行加密,其余节点uk收到最后一个节点un广播的消息后,节点uk用自己的秘密参数mk解密正整数tn,并用正整数tn计算群组密钥,同时,节点un用自己随机选择的参数tn计算群组密钥,节点mn表示un计算的群组密钥参数;

步骤三:群组密钥正确性验证:

h)群组中的各终端成员通过双线性映射自证实所计算的群组密钥是否正确。

所述步骤一中密钥生成中心kgc和终端成员生成各自的公/私钥对的方法为:

1)密钥生成中心kgc随机选择一个正整数作为系统私钥,并计算公钥pka=skag1;密钥生成中心kgc将(ska,pka)作为系统的公/私钥对,并将公钥pka广播到域内所有终端成员ui;其中,g1为加法群g1的生成元,表示阶为q的整数集;q为加法群g1的素数阶;

2)群组内的每个终端成员ui收到广播后,选择一个随机数计算和中间变量然后将信息发送给密钥生成中心kgc;其中,为终端成员ui的私钥,为终端成员ui的公钥,为终端成员ui的身份标识,h1(·)表示散列函数;

3)密钥生成中心kgc收到终端成员ui发送的消息后,计算并验证等式是否成立,如果成立,则广播所有终端成员ui的身份信息及对应的公钥其中,e(·)是可计算的双线性映射函数。

所述步骤二进行群组密钥的计算的方法为:

(1)每个参与群组密钥协商的终端成员ui广播其ip地址和公钥对组成的信息给群组其他终端成员uj;其中,1≤i≤n,1≤j≤n,j≠i,ipi为终端成员ui的ip地址,为终端成员ui的公钥;

(2)其他任一终端成员uj收到终端成员ui广播的信息后,基于ip地址的大小,对信息进行排序,并保存其前一节点的信息和其后一节点的信息且所有终端成员的ip地址和公钥对的消息排序后的顺序集合为其中,ipj-1为终端成员uj-1的ip地址,为终端成员uj-1的ip地址的公钥,ipj+1为终端成员uj+1的ip地址,为终端成员uj+1的ip地址的公钥,ord表示群组所有终端成员ip地址和公钥对的序对集合;

(3)序对集合ord中的第一个终端成员即第一个节点u1作为密钥协商发起者,选取一个随机数计算其群组密钥参数m1=m1g1、区块头h1,1=h2(m1)、群组密钥参数和数字签名然后,节点u1将信息封装到第一个区块,根据其存储的后一个节点u2的ip地址ip2的值,将第一个区块作为区块链中的交易信息发送给节点u2;其中,h2(·)为散列函数;

(4)节点u2收到节点u1发送的消息后,节点u2将其ip地址与第一个区块封装的ip地址进行对比分析,如果两个ip地址相同;节点u2验证等式是否成立验证节点u1的身份,如果等式成立,节点u2计算其区块头h2,1=h1(h1,1,h2(h1,2),h2(sig1));节点u2选取一个随机数计算群组密钥参数m2=m2g1、群组密钥参数和数字签名节点u2将信息封装成第二个区块,并将第二个区块发送给其下一个节点;其中,e(·)是可计算的双线性映射函数公式,g1为加法群g1的生成元;

(5)后续节点操作和节点u2相似,当节点uk从节点uk-1收到第k-1个区块的消息后,节点uk比较其ip地址是否和收到区块中的ip地址相同,如果两个ip相同,节点uk验证等式是否成立,如果等式成立,节点uk计算中间变量hk,1=h1(hk-1,1,h2(hk-1,2),h2(sigk-1))作为区块头;节点uk选取一个随机数计算群组密钥参数mk=mig1、群组密钥参数和数字签名然后,节点uk将消息封装成第k个区块,并将第k个区块的信息发给下一个节点uk+1;这里,3≤k<n;

(6)当群组中的最后一个节点un收到节点un-1的消息后,节点un比较其ip地址是否和第n-1个区块中的ip相同,如果两个ip相同,节点un验证等式是否成立,如果等式成立,节点un计算中间变量hn,1=h1(hn-1,1,h2(hn-1,2),h2(sign-1))作为区块头;节点un选取两个随机数计算中间变量群组密钥参数mn=mng1、群组密钥参数f1=tnm1,f2=tnm2,...,fn=tnmn、群组密钥参数群组密钥参数和数字签名节点un将信息封装成第n个区块;节点un计算群组密钥并把第n个区块的消息广播给群组中其他成员;其中,null表示空字符,表示节点un计算的群组密钥;

(7)群组中每个节点uk收到来自节点un广播的消息后;节点uk验证等式是否成立,如果等式成立,节点uk计算中间变量最后可计算出群组密钥这里,1≤k≤n-1,αk和βk是节点uk计算群组密钥过程中需要的中间变量。

所述步骤三中自证实的方法为:群组的终端成员uk及最后一个节点un计算出群组密钥后,通过验证等式是否成立来确认其所计算的群组解密密钥是否正确;等式的验证过程为:

本发明的有益效果:群组成员在进行群组密钥协商前通过区块链匿名认证技术进行身份认证。确认各个终端成员的身份后,最后一个终端成员计算组密钥并将相关加密信息广播给网络中的其它成员,其他成员验证最后一个终端成员的身份之后计算各自的群组密钥,然后通过等式认证方法验证群组密钥的正确性;在密钥计算过程中,消息发送者通过比较消息块的ip地址写入新的块,并通过相应验证方法验证消息发送者的身份来确定消息的安全传递,进而实现群组成员间的信息安全交换。本发明群组成员通过区块链技术传递群组密钥参数并进行群组密钥计算,通过群组密钥同通信信息加密和解密,进而实现群组成员间的安全信息交换及安全信息传输;采用区块链无中心化匿名认证,可防止委托第三者认证造成的安全隐患及并可保护个人隐私不被泄露;采用区块链分布式计算方法,可使得群组密钥计算及通信更加均衡,防止因单个终端节点计算及通信负载过大而造成网络瓶颈及单点崩溃问题,同时尽可能的减少每个节点的计算及通信量;采用区块链交易记录可追溯性等特点,可进行网络恶意节点追踪、追责。本发明使得移动自组网的群组密钥协商更加灵活、高效和实用,具有重要的领域研究意义和商业应用价值;可以广泛地应用在自组织性、无中心性、拓扑动态变化的移动自组织网络中。

附图说明

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

图1为本发明的流程图。

图2为本发明实施例1的密钥协商信息封装的示意图。

图3为本发明实施例1中密钥协商信息的传递示意图。

具体实施方式

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

针对群组通信环境下,移动自组织网络中的各移动终端间在信息安全共享时涉及到通信信息的保密性、完整性和抗泄露性的问题;同时,在移动自组织网络中,移动终端频繁的加入或退出群组对信息安全交换、个人隐私泄露的影响及网络节点计算和通信能力受限等问题。在此背景下,本发明提出一种基于区块链的对称群组密钥协商方法,实现动态群组密钥协商。首先,域内密钥生成中心kgc随机选择主加密密钥,并计算对应的公/私钥对,域内密钥生成中心kgc对群组内所有终端成员进行身份验证并签名,终端成员通过域内密钥生成中心kgc签名消息计算自身的公/私钥对;其次,每个群组密钥协商参与者广播其ip地址和公钥,群组其他成员收到广播的消息后,对这些ip地址和公钥排序。群组密钥协商的发起者也就是群组序列中的第一个成员随机的选择一个群组密钥因子,计算密钥参数,并将相应的密钥参数封装成区块传送给下一个节点。群组的最后一个节点收到其前一个节点发送的消息后,验证前一个节点的身份,如果验证通过,群组的最后一个节点随机的选择两个正整数,并计算群组密钥参数。群组的最后一个节点将相应参数封装成新的区块作为最后一个区块,该节点并对所有成员群组密钥参数加密,其他成员收到最后一个节点广播的消息之后,用自己的密钥参数解密,并计算群组密钥;最后,群组各终端成员计算出群组密钥后,通过双线性映射自证实所计算的群组解密密钥是否正确,实现移动自组织网络中群组成员之间共享秘密信息。

1.本发明所涉及的理论基础知识和相关定义

1.1双线性映射问题

定义1.双线性映射:设g1为加法群,其生成元为g1,即g1=<g1>,g2为乘法循环群。g1和g2具有共同的大素数阶q,q≥2l+1,l是安全参数,且加法群g1和乘法循环群g2上的离散对数是困难的,加法群g1和乘法循环群g2是一对双线性群,e是可计算的双线性映射,e:g1×g1→g2,其具有如下性质:

性质1.双线性:对所有的生成元g1,g2∈g1及参数有e(ag1,bg1)=e(g1,g2)ab;其中,表示阶为q的整数集。

性质2.非退化性:e(g1,g2)≠1。

性质3.可计算性:存在有效的算法,对于生成元g1,g2∈g1可计算e(g1,g2)。

1.2计算复杂性问题

定义2.离散对数问题(dlp):对于等式y=ap,其中,生成元y,p∈g1,参数a<q。如果参数a和生成元p已知,很容易计算出生成元y。但是已知生成元p和生成元y,计算出参数a的概率在多项式时间内可以忽略不计。

定义3.计算diffe-hellman逆问题(icdh):已知生成元g1、ag1和abg1,给出任意两个正整数计算bg1的值。

定义4.计算diffe-hellman双线性逆问题(bidh):已知生成元g1、abg1和acg1,给出任意两个正整数计算e(g1,g1)abc的值。

实施例1

复杂群组通信及信息共享情况下,通信多方需要对通信成员进行身份认证,但在提供身份信息时,身份信息容易泄露或者被窃取。出于安全考虑,通信多方需要认证的同时,需要对个人身份隐私进行保护。在信息共享时,还要保障通信信息的保密性、完整性和抗泄露性,要求具有权限的成员才能共享信息。针对此应用背景下,本发明提出了一种基于区块链的对称群组密钥协商方法,如图1所示,其步骤如下:①参与群组密钥协商的成员首先进行参数初始化,分别产生各自的公/私钥对;②群组协商过程中,密钥协商信息以区块的形式进行传递,保证密钥协商过程中信息的传递及相关计算相对均衡的分布在每个节点上,并在终端成员之间进行群组密钥计算;③当各终端成员计算完群组解密密钥后,通过双线性映射自证实所计算的群组解密密钥是否正确。本实施例中群组密钥协商过程中,密钥协商的信息以区块的形式进行传递,密钥协商过程中信息的传递及相关计算相对均衡的分布在每个节点上。信息的封装形式如图2所示,信息的传递过程如图3所示。

一.初始化协议参数,生成各终端成员的公/私钥对

假设群组信息交换网络中包含一个密钥生成中心kgc和n个终端成员,n个终端成员的集合用u={u1,u2,...,un}表示,相应的n个终端成员的身份集合用表示。

假设g1是一个加法群,g2是一个乘法群,计算加法群g1和乘法群g2上的离散对数问题是难解的,g1∈g1是加法群g1的一个生成元,加法群g1和乘法群g2具有相同的素数阶q,并且存在一个双线性映射函数e,并且e:g1×g1→g2。h1:和h2:是两个哈希散列函数。

终端成员的公/私钥对生成的方法为:

密钥生成中心kgc随机选择一个正整数作为系统私钥,并计算公钥pka=skag1。密钥生成中心kgc将(ska,pka)作为系统的公/私钥对,并将公钥pka广播到域内所有终端成员ui。其中,1≤i≤n,ska为系统私钥,pka为系统的公钥,g1为加法群g1的生成元。群组内的每个终端成员ui收到广播后,选择一个随机数计算然后将信息发送给密钥生成中心kgc。终端成员ui将作为自己的私钥、作为自己的公钥。其中,为终端成员ui的身份标识,h1(·)表示散列函数。

密钥生成中心kgc收到终端成员ui发送的消息后,计算并验证等式是否成立,如果成立,则广播所有终端成员ui的身份信息及对应的公钥如果等式不成立,则广播终端成员ui的公钥和身份为无效身份信息。其中,e(·)是可计算的双线性映射函数。根据双线性映射的性质,等式验证方法如下:系统的参数为params=(pka,q,g1,g2,g1,e,h1,h2)。

二.计算群组密钥

为了防止未授权的终端参与群组密钥协商,仅允许拥有权限的终端成员参与群组密钥协商。本发明采用区块链传递密钥协商消息,参与群组密钥协商的每个成员计算群组密钥参数,并对群组密钥参数进行数字签名,将签名消息及所需要的群组密钥参数通过区块结构进行区块封装,并将区块信息按照区块链的传递方式逐步传递给其它成员。收到前一区块节点信息后,本区块节点对其前一区块中的信息进行认证,保障前一区块信息的安全性和正确性。同时计算本节点的群组密钥参数,对该信息进行数字签名,并进行区块封装传递给下一个区块,直到区块包含所有成员的群组密钥参数,然后最后一个节点通过收到的所有成员的群组密钥参数对群组密钥因子进行加密,并广播给所有成员。所有终端成员收到广播的的密文后,解密以获取群组密钥因子,并通过该密钥因子计算出群组密钥。为保障每个成员计算的群组密钥的正确性,每个终端成员通过双线性映射自证实所计算的群组解密密钥的正确性,以保证信息在通信过程中安全交换。

本发明基于区块链的对称群组密钥协商实现群组信息的安全交换,具有传统身份认证的功能,同时可以保护个人隐私问题。群组密钥协商过程中,密钥协商的信息是以区块的形式进行传递,密钥协商过程中信息的传递及相关计算相对均衡的分布在每个节点中,如图3所示,计算群组密钥的具体实现方法为:

(1)每个参与群组密钥协商的终端成员ui广播其ip地址和公钥对组成的信息给群组其他成员uj;其中,1≤i≤n,1≤j≤n,j≠i,ipi为终端成员ui的ip地址。

(2)群组其他成员uj收到终端成员ui广播的ip地址和公钥对的信息后,基于ip地址的大小,对ip地址和公钥对的信息进行排序,并保存其前一节点的信息和其后一节点的信息其中,ipj-1为终端成员uj-1的ip地址,为终端成员uj-1的ip地址的公钥,ipj+1为终端成员uj+1的ip地址,为终端成员uj+1的ip地址的公钥。设所有成员的ip地址和公钥对的消息排序后的顺序集合为其中,ord表示群组所有成员ip地址和公钥的序对集合。

(3)序对集合中的第一个节点u1作为密钥协商发起者,选取一个随机数计算中间变量m1=m1g1、h1,1=h2(m1)、然后,节点u1将信息封装到一个区块,根据其存储的后续节点的ip地址ip2的值,将该区块作为区块链中的交易信息发送给其后续的节点u2。其中,h1,1作为第一个区块头,为一个数据元素和中间计算值。sig1为节点u1的数字签名,m1和h1,2均表示节点u1计算的群组密钥参数,是中间变量,h2(·)为散列函数;

(4)节点u2收到节点u1发送的消息后,节点u2将其ip地址ip2与区块封装的ip地址进行对比分析,如果两个ip地址相同。节点u2通过验证等式是否成立验证节点u1的身份。如果等式成立,节点u2可确认该区块是其前一节点u1发送的,然后节点u2计算中间变量h2,1=h1(h1,1,h2(h1,2),h2(sig1))作为区块头。如果等式不成立,则广播出错信息,以便其它成员进行验证,并将其开除群组密钥。节点u2选取一个随机数计算中间变量m2=m2g1、节点u2将信息封装成一个新的区块,并将该区块发送给其下一个节点。其中,h2,1作为第一个区块头,为一个数据元素和中间计算值。sig2为节点u2的数字签名,m2和h2,2表示节点u2计算的群组密钥参数,是中间变量。公式验证方法为:根据双线性映射的性质有:

如果等式成立,则证明该消息是用节点u1的私钥签名,进而证实该消息为节点u1发送。

(5)后续节点操作和节点u2相似,当节点uk从节点uk-1收到区块消息后,节点uk(3≤k<n)比较其ip地址是否和收到区块中的ip地址相同。如果两个ip相同,节点uk通过验证等式是否成立来验证节点uk-1的身份。如果等式成立,节点uk可确认该消息是其前一节点uk-1发送的。如果等式不成立,则广播出错信息,以便其它成员进行验证,并将其开除群组密钥。节点uk计算中间变量hk,1=h1(hk-1,1,h2(hk-1,2),h2(sigk-1))作为区块头。节点uk选取一个随机数计算中间变量mk=mig1、然后,节点uk将消息封装成一个新的区块。并将该区块的信息发给下一个节点uk+1。其中,hk,1作为第一个区块头,为一个数据元素和中间计算值。sigk为节点uk的数字签名,mk和hk,2表示节点uk计算的群组密钥参数,是中间变量。公式验证方法为:根据双线性映射的性质有:

如果该等式成立,则证明该消息是用节点uk-1的私钥签名,进而证实该消息为uk-1发送。

(6)当群组中的最后一个节点un收到来自节点un-1的消息后,节点un比较其ip地址是否和区块中的ip相同。如果两个ip相同,节点un通过验证等式是否成立来验证节点un-1的身份。如果等式成立,节点un可确认该消息是其前一节点un-1发送的。如果等式不成立,则广播出错信息,以便其它成员进行验证,并将其开除群组密钥。节点un计算中间变量hn,1=h1(hn-1,1,h2(hn-1,2),h2(sign-1))作为区块头。节点un选取两个随机数计算中间变量mn=mng1、f1=tnm1,f2=tnm2,...,fn=tnmn、然后,节点un将信息封装成一个区块。节点un计算群组密钥并把消息广播给群组中所有成员。其中,hn,1作为第一个区块头,为一个数据元素和中间计算值。sign为节点un的数字签名,f1,f2,...,fn和βn表示节点un计算的群组密钥参数,是中间变量。null表示空字符,表示节点un计算的群组密钥。

(7)群组中每个节点uk收到来自节点un广播的消息后,这里,1≤k≤n-1。节点uk通过验证等式是否成立来证明节点un的身份。如果等式成立,节点uk可证实消息是最后一个节点un广播的。如果等式不成立,则广播出错信息,以便其它成员进行验证,并推荐第(n-1)个节点接替第n个节点的任务执行群组密钥协商。然后节点uk计算中间变量最后可计算出群组密钥其中,αk和βk是节点uk计算群组密钥过程中需要的中间变量。αk是节点uk用自己的秘密参数mk计算的中间变量,即mk为节点uk在计算群组密钥协商过程中随机选择的参数见步骤(5),根据双线性映射的性质,公式验证过程如下:

如果等式成立,则证明该消息是用un的私钥签名,进而证实该消息为un发送。

三.群组密钥自证实性

群组成员计算出群组密钥后,不需通过广播对比其它成员计算的结果来验证密钥的一致性,通过自身计算可自证实密钥计算的正确性,过程如下:

群组的终端成员uk及最后一个节点un计算出群组密钥后,通过双线性映射自证实所计算的群组密钥是否正确。当终端成员uk计算完群组密钥后,通过验证等式是否成立来确认其所计算的群组密钥是否正确。

等式的验证过程如下:

实施例2

一种基于区块链的对称群组密钥协商方法,如图1所示,为了说明本发明的内容及实施方法,给出了一个具体实施例。本实施方式中,为方便实例阐述,参加密钥协商的终端成员个数最多为10个,终端成员的实体集合表示为对应实体终端成员身份的集合表示为在本实施例中引入细节的目的不是限制权利要求书的范围,而是帮助理解本发明的方法。本领域的技术人员应理解:在不脱离本发明及其所附权利要求的精神和范围内,对最佳实施例步骤的各种修改、变化或替换都是可能的。因此,本发明不应局限于最佳实施例及附图所公开的内容。

一.初始化

假设g1是一个加法群,g2是一个乘法群,计算加法群g1和乘法群g2上的离散对数问题是难解的,g1∈g1是加法群g1的一个生成元,加法群g1和乘法群g2具有相同的素数阶q,存在一个双线性映射函数e:g1×g1→g2。h1:和h2:是两个哈希散列函数。

密钥生成中心kgc随机选择一个正整数作为系统私钥,并计算公钥pka=skag1,并将公钥pka广播到域内所有终端成员ui,其中,1≤i≤10。每个终端成员ui选择一个随机数计算并将作为自己的私钥,作为自己的公钥。系统的参数为params=(pka,q,g1,g2,g1,e,h1,h2)。

二.计算群组密钥

(1)每个参与群组密钥协商终端ui广播其ip地址和公钥对给群组其他成员;

(2)每个节点uj收到其他群组密钥协商成员ui(i≠j)广播的ip地址和公钥对后,基于ip地址的大小,对ip地址和公钥对进行排序,并保存其前一节点的信息和其后一节点的信息假设所有成员的ip地址和公钥对排序后的顺序集合为其中,ord表示群组所有成员ip地址和公钥的序对集合。

(3)序对集合中的第一个成员u1作为密钥协商发起者,选取一个随机数计算中间变量m1=m1g1、h1,1=h2(m1)、然后,节点u1将信息封装到一个区块,根据其存储的后续节点的ip地址值ip2,将该区块作为区块链中的交易信息发送给其后续节点u2。

(4)节点u2收到节点u1发送的消息后,节点u2将其ip地址与区块封装的ip2地址进行对比分析,如果两个ip地址相同。节点u2通过验证等式是否成立验证节点u1的身份。如果等式成立,节点u2可确认该区块是其前一节点u1发送的,然后节点u2计算h2,1=h1(h1,1,h2(h1,2),h2(sig1))作为区块头。节点u2选取一个随机数计算中间变量m2=m2g1、节点u2将信封装成一个新的区块,并将该区块发送给其下一个节点。

(5)后续节点操作和节点u2相似,当uk(3≤k<10)从uk-1收到区块消息后,节点uk比较其ip地址是否和区块中的ipk相同。如果两个ip相同,节点uk通过验证等式是否成立来验证uk-1的身份。如果等式成立,节点uk可确认该消息是其前一区块uk-1发送的。节点uk计算hk,1=h1(hk-1,1,h2(hk-1,2),h2(sigk-1))作为区块头。节点uk选取一个随机数计算中间变量mk=mkg1、然后,节点uk将消息封装成一个新的区块。并将该区块信息发给下一个节点uk+1。

(6)当群组最后一个节点u10收到来自节点u9的消息后,节点u10比较其ip地址是否和区块中的ip相同。如果两个ip相同,节点u10通过验证等式是否成立来验证节点u9的身份。如果等式成立,节点u10可确认该消息是其前一区块的节点u9发送的。节点u10计算h10,1=h1(h9,1,h2(h9,2),h2(sig9))作为区块头。节点u10选取两个随机数计算中间变量m10=m10g1、f1=t10m1,f2=t10m2,...,f10=t10m10、然后,节点u10将信息封装成一个区块。节点u10计算群组密钥并把消息广播给群组中所有成员。

(7)群组中每个成员uk(1≤k≤9)收到来自节点u10广播的消息后。节点uk通过验证等式是否成立来证明节点u10的身份。如果等式成立,节点uk可证实消息是节点u10广播的。然后,节点uk计算最后可计算出群组密钥

三.群组密钥自证实性

群组成员计算出群组密钥后,不需通过广播对比其它成员计算的结果来验证密钥的一致性,通过自身计算可自证实密钥计算的正确性,过程如下:

群组的终端成员uj(1≤j≤10)计算出群组密钥后,通过验证等式是否成立来确认其所计算的群组解密密钥是否正确。

本发明以区块链技术理论为基础,以椭圆曲线离散对数及以计算diffe-hellman逆问题及计算diffe-hellman双线性逆问题为安全假设前提,提出基于区块链的对称群组密钥协商方法,该方法采用区块链匿名认证技术实现在群组密钥协议过程中的匿名身份认证,以保护个人隐私保护;采用区块链分布式计算技术,将群组密钥协商过程中的计算量及通信量均衡到每个节点上,以减少单个节点的计算及通信负载,防止端点崩溃及通信瓶颈问题;采用区块链的交易记录技术,对群组中非法操作成员进行追溯和问责,保障群组间信息交换的安全。通过该方法实现群组成员之间协商出一致的通信加密密钥和通信解密密钥,进而实现群组之间安全信息交换和传输。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1