本发明涉及信息安全的技术领域,尤其涉及一种基于区块链的对称群组密钥协商方法。
背景技术:
群组密钥协议具有广泛的应用,如安全多方计算、资源安全共享和分布式协同计算等方向的应用。在具有自组织性、无中心性、拓扑动态变化的移动自组织网络中进行群组通信需要保障信息的安全交换及安全传输。群组密钥协商方案是群组之间在线计算出群组会话密钥,进而用该会话密钥进行群组加密通信,是保障群组之间进行安全信息交换与传输的关键技术之一。
移动自组网中,各移动终端间为保障群组间通信信息的保密性、完整性和抗泄漏性,群组间的通信信息需要进行加密传输和交换。群组密钥协商是在群组终端间协商一个会话密钥,用于群组间通信息的加密,以便群组间安全的进行信息交换和信息传输。移动自组网中,由于移动终端具有频繁的加入群组或者退出群组、个人隐私容易泄露、网络节点计算及通信能力受限等性质。因此,在该网络环境下群组密钥协商需要更加灵活的、高效的、节能的计算方案。
为了防止不具有权限的终端加入群组通信,群组终端在进行群组密钥协商过程中需要进行身份认证。传统基于身份认证的群组密钥协商方法在进行身份认证过程中,容易暴露个人身份信息。目前,针对基于区块链技术的组密钥协商的研究尚未出现。一系列的挑战性问题有待解决,包括群组密钥协商过程中区块数据结构定义,区块数据的封装、区块身份认证及个人隐私保护问题等方面的工作尚无先例。
技术实现要素:
针对现有群组密钥协商方法进行身份认证过程中,容易暴露个人身份信息,且对信息敏感度较高,无法确定群组成员的访问权限的技术问题,本发明提出一种基于区块链的对称群组密钥协商方法,采用区块链匿名认证技术在群组密钥协议的身份认证过程中实现个人隐私保护,并且采用区块链分布式计算技术,减少每个参与者的计算和通信开销,采用区块链的记录技术进行追溯和问责,避免不具有权限的终端加入群组通信。
为了达到上述目的,本发明的技术方案是这样实现的:一种基于区块链的对称群组密钥协商方法,其步骤如下:
步骤一:群组信息交换网络域内的密钥生成中心kgc和终端成员相互广播消息生成各自的公/私钥对:
a)密钥生成中心kgc随机选择私钥,并利用加法群的生成元计算公钥从而得系统的其公/私钥对;
b)密钥生成中心kgc对域内的所有终端成员ui进行身份认证,并签名,其中,1≤i≤n,n为密钥生成中心kgc内终端成员的个数;
c)终端成员ui通过密钥生成中心kgc的签名的消息计算终端成员自身的公/私钥对;其中;
步骤二:终端成员之间进行群组密钥的计算:
d)终端成员ui之间相互广播ip地址和公钥对组成的信息,基于ip地址的大小,对信息进行排序得到群组所有成员的序对集合;
每个群组密钥协商参与者ui(1≤i≤n)广播其ip地址及其公钥
e)序对集合中的第一个终端成员作为第一个节点将群组密钥参数组成的消息封装到第一个区块并传递给下一节点,依次循环直到最后一个节点的前一节点;
群组密钥协商的发起者为序列中第一个成员,假设群组密钥发起者为u1,u1随机选择一个群组密钥因子
f)最后一个节点收到其前一节点发送的消息计算自身的群组密钥并把群组密钥参数组成的消息封装到第n个区块并广播给其他节点;其他节点根据第n个区块中的群组密钥参数计算各自的群组密钥;
群组序列中最后一个节点un收到un-1发送的消息后,un验证un-1的身份,如果验证通过,节点un随机选择两个正整数
步骤三:群组密钥正确性验证:
h)群组中的各终端成员通过双线性映射自证实所计算的群组密钥是否正确。
所述步骤一中密钥生成中心kgc和终端成员生成各自的公/私钥对的方法为:
1)密钥生成中心kgc随机选择一个正整数
2)群组内的每个终端成员ui收到广播后,选择一个随机数
3)密钥生成中心kgc收到终端成员ui发送的消息
所述步骤二进行群组密钥的计算的方法为:
(1)每个参与群组密钥协商的终端成员ui广播其ip地址和公钥对组成的信息
(2)其他任一终端成员uj收到终端成员ui广播的信息
(3)序对集合ord中的第一个终端成员即第一个节点u1作为密钥协商发起者,选取一个随机数
(4)节点u2收到节点u1发送的消息
(5)后续节点操作和节点u2相似,当节点uk从节点uk-1收到第k-1个区块的消息
(6)当群组中的最后一个节点un收到节点un-1的消息
(7)群组中每个节点uk收到来自节点un广播的消息
所述步骤三中自证实的方法为:群组的终端成员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及参数
性质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,给出任意两个正整数
定义4.计算diffe-hellman双线性逆问题(bidh):已知生成元g1、abg1和acg1,给出任意两个正整数
实施例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:
终端成员的公/私钥对生成的方法为:
密钥生成中心kgc随机选择一个正整数
密钥生成中心kgc收到终端成员ui发送的消息
二.计算群组密钥
为了防止未授权的终端参与群组密钥协商,仅允许拥有权限的终端成员参与群组密钥协商。本发明采用区块链传递密钥协商消息,参与群组密钥协商的每个成员计算群组密钥参数,并对群组密钥参数进行数字签名,将签名消息及所需要的群组密钥参数通过区块结构进行区块封装,并将区块信息按照区块链的传递方式逐步传递给其它成员。收到前一区块节点信息后,本区块节点对其前一区块中的信息进行认证,保障前一区块信息的安全性和正确性。同时计算本节点的群组密钥参数,对该信息进行数字签名,并进行区块封装传递给下一个区块,直到区块包含所有成员的群组密钥参数,然后最后一个节点通过收到的所有成员的群组密钥参数对群组密钥因子进行加密,并广播给所有成员。所有终端成员收到广播的的密文后,解密以获取群组密钥因子,并通过该密钥因子计算出群组密钥。为保障每个成员计算的群组密钥的正确性,每个终端成员通过双线性映射自证实所计算的群组解密密钥的正确性,以保证信息在通信过程中安全交换。
本发明基于区块链的对称群组密钥协商实现群组信息的安全交换,具有传统身份认证的功能,同时可以保护个人隐私问题。群组密钥协商过程中,密钥协商的信息是以区块的形式进行传递,密钥协商过程中信息的传递及相关计算相对均衡的分布在每个节点中,如图3所示,计算群组密钥的具体实现方法为:
(1)每个参与群组密钥协商的终端成员ui广播其ip地址和公钥对组成的信息
(2)群组其他成员uj收到终端成员ui广播的ip地址和公钥对的信息
(3)序对集合中的第一个节点u1作为密钥协商发起者,选取一个随机数
(4)节点u2收到节点u1发送的消息
如果等式成立,则证明该消息是用节点u1的私钥签名,进而证实该消息为节点u1发送。
(5)后续节点操作和节点u2相似,当节点uk从节点uk-1收到区块消息
如果该等式成立,则证明该消息是用节点uk-1的私钥签名,进而证实该消息为uk-1发送。
(6)当群组中的最后一个节点un收到来自节点un-1的消息
(7)群组中每个节点uk收到来自节点un广播的消息
如果等式成立,则证明该消息是用un的私钥签名,进而证实该消息为un发送。
三.群组密钥自证实性
群组成员计算出群组密钥后,不需通过广播对比其它成员计算的结果来验证密钥的一致性,通过自身计算可自证实密钥计算的正确性,过程如下:
群组的终端成员uk及最后一个节点un计算出群组密钥后,通过双线性映射自证实所计算的群组密钥是否正确。当终端成员uk计算完群组密钥后,通过验证等式
等式的验证过程如下:
实施例2
一种基于区块链的对称群组密钥协商方法,如图1所示,为了说明本发明的内容及实施方法,给出了一个具体实施例。本实施方式中,为方便实例阐述,参加密钥协商的终端成员个数最多为10个,终端成员的实体集合表示为
一.初始化
假设g1是一个加法群,g2是一个乘法群,计算加法群g1和乘法群g2上的离散对数问题是难解的,g1∈g1是加法群g1的一个生成元,加法群g1和乘法群g2具有相同的素数阶q,存在一个双线性映射函数e:g1×g1→g2。h1:
密钥生成中心kgc随机选择一个正整数
二.计算群组密钥
(1)每个参与群组密钥协商终端ui广播其ip地址和公钥对
(2)每个节点uj收到其他群组密钥协商成员ui(i≠j)广播的ip地址和公钥对
(3)序对集合中的第一个成员u1作为密钥协商发起者,选取一个随机数
(4)节点u2收到节点u1发送的消息
(5)后续节点操作和节点u2相似,当uk(3≤k<10)从uk-1收到区块消息
(6)当群组最后一个节点u10收到来自节点u9的消息
(7)群组中每个成员uk(1≤k≤9)收到来自节点u10广播的消息
三.群组密钥自证实性
群组成员计算出群组密钥后,不需通过广播对比其它成员计算的结果来验证密钥的一致性,通过自身计算可自证实密钥计算的正确性,过程如下:
群组的终端成员uj(1≤j≤10)计算出群组密钥后,通过验证等式
本发明以区块链技术理论为基础,以椭圆曲线离散对数及以计算diffe-hellman逆问题及计算diffe-hellman双线性逆问题为安全假设前提,提出基于区块链的对称群组密钥协商方法,该方法采用区块链匿名认证技术实现在群组密钥协议过程中的匿名身份认证,以保护个人隐私保护;采用区块链分布式计算技术,将群组密钥协商过程中的计算量及通信量均衡到每个节点上,以减少单个节点的计算及通信负载,防止端点崩溃及通信瓶颈问题;采用区块链的交易记录技术,对群组中非法操作成员进行追溯和问责,保障群组间信息交换的安全。通过该方法实现群组成员之间协商出一致的通信加密密钥和通信解密密钥,进而实现群组之间安全信息交换和传输。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。