安全组通信方法和系统以及相关设备与流程

文档序号:12693383阅读:235来源:国知局
安全组通信方法和系统以及相关设备与流程

本发明涉及信息安全领域,尤其是一种安全组通信方法和系统以及相关设备。



背景技术:

对于具有安全需求的组通信,系统通常为同一组内的组成员节点分配所在组对应的组密钥,从而使得同一组内的组成员节点利用相同的组密钥来正常进行组通信。这种方式可以降低服务器操作的复杂性,减少服务器维护和管理的密钥数,但是对于安全性和实时性要求较高的组成员节点存在一定风险。如果用于通信的密钥被其他组成员节点获得,信息会被轻易破解。



技术实现要素:

本发明实施例所要解决的一个技术问题是:如何提高组通信的安全性。

根据本发明实施例的第一个方面,提供了一种安全组通信方法,包括:服务器节点为同一组内的每个组成员节点分别生成不同的密钥链,密钥链中包括至少一个密钥;每个组成员节点从服务器节点获取本节点对应的密钥链,或者每个组成员节点按照与服务器节点相同的初始参数和生成方法生成本节点对应的密钥链;服务器节点和每个组成员节点分别按照预先协商的方法从本节点对应的密钥链中启用一个相同的密钥;服务器节点和组成员节点基于启用的密钥进行通信。

在一个实施例中,服务器节点为同一组内的每个组成员节点分别生成不同的密钥链包括:服务器节点为同一组内的每个组成员节点分别生成不同的初始化种子;服务器节点与同一组内的每个组成员节点 分别协商生成次数;服务器节点根据生成次数分别对每个组成员节点的初始化种子进行相应次数的二次单向函数计算,各次计算得到的密钥组成该组成员节点对应的密钥链,密钥链中的密钥数量等于生成次数。

在一个实施例中,服务器节点根据生成次数分别对每个组成员节点的初始化种子进行相应次数的二次单向函数计算,各次计算得到的密钥组成该组成员节点对应的密钥链包括:服务器节点将组成员节点的初始化种子作为计算种子代入第一单向函数,计算出中间种子;将中间种子代入第二单向函数,计算出密钥,并添加到密钥链;根据生成次数将中间种子作为计算种子继续进行二次单向函数计算,直到密钥链中的密钥数量等于生成次数。

在一个实施例中,方法还包括:服务器节点向同一组内的每个组成员节点发送对应的初始化种子和二次单向函数,并与每个组成员节点协商生成次数,以便组成员节点按照与服务器节点相同的初始化种子、生成次数和二次单向函数以及与服务器节点相同的生成方法生成本节点对应的密钥链。

在一个实施例中,每个组成员节点从服务器节点获取本节点对应的密钥链包括:服务器节点与每个组成员节点建立安全通信信道,服务器节点通过安全通信信道向每个组成员节点发送服务器节点生成的与每个组成员节点对应的密钥链。

在一个实施例中,服务器节点和每个组成员节点分别按照预先协商的方法从本节点对应的密钥链中启用一个相同的密钥包括:服务器节点和每个组成员节点按照密钥链中密钥排列的顺序,启用位于密钥链中相同位置的密钥。

在一个实施例中,在服务器节点与组成员节点之间的链路上还设置有网关节点,服务器节点将同一组内各个组成员节点启用的密钥发送给该组的网关节点;网关节点利用各个组成员节点启用的密钥对每个组成员节点分别进行认证。

在一个实施例中,方法还包括:当服务器节点检测到同一组内的 组成员节点所属的网关节点发生变更后,服务器节点和每个组成员节点分别按照预先协商的方法从本节点对应的密钥链中启用一个新的相同的密钥;服务器节点向变更后的网关节点发送启用的新的密钥,以便网关节点利用各个组成员节点启用的新的密钥对每个组成员节点分别进行认证。

在一个实施例中,方法还包括:各个组成员节点利用各自启用的密钥通过网关节点与组内的其他组成员节点进行通信。

在一个实施例中,各个组成员节点为位于物联网的终端,服务器节点为物联网服务器。

根据本发明实施例的第二个方面,提供一种用于安全组通信的服务器节点,包括:第一密钥链生成模块,用于为同一组内的每个组成员节点分别生成不同的密钥链,密钥链中包括至少一个密钥;第一密钥启用模块,用于按照与组成员节点预先协商的方法从密钥链中启用与组成员节点相同的密钥;第一通信模块,用于和组成员节点基于启用的密钥进行通信。

在一个实施例中,第一密钥生成模块包括:初始化种子生成单元,用于为同一组内的每个组成员节点分别生成不同的初始化种子;生成次数协商单元,用于与同一组内的每个组成员节点分别协商生成次数;密钥链计算单元,用于根据生成次数分别对每个组成员节点的初始化种子进行相应次数的二次单向函数计算,各次计算得到的密钥组成该组成员节点对应的密钥链,密钥链中的密钥数量等于生成次数。

在一个实施例中,密钥链计算单元包括:第一单向函数子单元,用于将组成员节点的初始化种子作为计算种子代入第一单向函数,计算出中间种子;第二单向函数子单元,用于将中间种子代入第二单向函数,计算出密钥,并添加到密钥链;循环子单元,用于根据生成次数将中间种子作为计算种子继续采用第一单向函数子单元和第二单向函数子单元进行二次单向函数计算,直到密钥链中的密钥数量等于生成次数。

在一个实施例中,服务器节点还包括:参数发送单元,用于向同 一组内的每个组成员节点发送对应的初始化种子和二次单向函数;第一生成次数协商单元,用于与每个组成员节点协商生成次数。

在一个实施例中,服务器节点还包括密钥链发送模块,用于通过与每个组成员节点建立的安全通信信道向每个组成员节点发送第一密钥链生成模块生成的与每个组成员节点对应的密钥链。

在一个实施例中,第一密钥启用模块用于按照密钥链中密钥排列的顺序,启用与每个组成员节点启用的密钥位于密钥链中相同位置的密钥。

在一个实施例中,服务器节点还包括密钥发送模块,用于将同一组内各个组成员节点启用的密钥发送给该组的网关节点。

在一个实施例中,服务器节点还包括网关变更检测模块,用于检测组成员节点所属的网关节点是否发生变更;当网关变更检测模块检测到网关节点发生变更时,第一密钥启用模块用于按照和属于产生变更的网关节点的每个组成员节点预先协商的方法从组成员节点对应的密钥链中启用一个新的密钥;密钥发送模块用于向变更后的网关发送启用的新的密钥,以便网关节点利用各个组成员节点启用的新的密钥对每个组成员节点分别进行认证。

在一个实施例中,服务器节点为物联网服务器。

根据本发明实施例的第三个方面,提供一种用于安全组通信的组成员节点,包括第二密钥启用模块和第二通信模块,还包括密钥链获取模块或者第二密钥链生成模块;密钥链获取模块用于从服务器节点获取本节点对应的密钥链;第二密钥链生成模块用于按照与服务器节点相同的初始参数和生成方法生成本节点对应的密钥链;第二密钥启用模块用于按照与服务器预先协商的方法从本节点对应的密钥链中启用一个与服务器相同的密钥;第二通信模块用于和服务器基于启用的密钥进行通信。

在一个实施例中,组成员节点还包括:参数接收模块,用于接收服务器发送的与组成员节点对应的初始化种子和二次单向函数;第二生成次数协商单元,用于与服务器协商生成次数;第二密钥链生成模 块用于按照与服务器节点相同的初始化种子、生成次数和二次单向函数以及与服务器节点相同的生成方法生成本节点对应的密钥链。

在一个实施例中,密钥链获取模块用于通过与服务器节点建立的安全通信信道接收服务器节点生成的与组成员节点对应的密钥链。

在一个实施例中,第二密钥启用模块用于按照密钥链中密钥排列的顺序,启用与服务器节点启用的密钥位于密钥链中相同位置的密钥。

在一个实施例中,第二密钥启用模块用于当组成员节点检测到组成员节点所属的网关节点发生变更后,组成员节点按照预先协商的方法从本节点对应的密钥链中启用一个新的与服务器节点相同的密钥。

在一个实施例中,组成员节点还包括组内通信模块,用于利用启用的密钥通过网关节点与组内的其他组成员节点进行通信。

在一个实施例中,组成员节点为位于物联网的终端。

根据本发明实施例的第四个方面,提供一种安全组通信系统,包括前述任一种服务器节点和前述任一种组成员节点。

在一个实施例中,系统还包括网关,用于接收服务器节点发送的属于网关的各个组成员节点启用的密钥,以便利用各个组成员节点启用的密钥对每个组成员节点分别进行认证。

本发明通过为组成员节点分别生成不同的密钥链的方式,能够降低组成员节点的通信密钥被其他组成员节点获取的风险,提高了系统的安全性。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

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

图1示出本发明安全组通信方法的一个实施例的流程示意图。

图2示出采用二次函数生成密钥链的方法的示意图。

图3示出本发明安全组通信方法的一个实施例的场景示意图。

图4示出本发明密钥更新方法的一个实施例的流程示意图。

图5示出本发明安全组通信系统的一个实施例的结构示意图。

图6示出本发明用于安全组通信的服务器节点的一个实施例的结构示意图。

图7示出本发明用于安全组通信的组成员节点的一个实施例的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面参考图1描述本发明一个实施例的安全组通信方法。

图1为本发明安全组通信方法的一个实施例的流程图。如图1所示,该实施例的方法包括:

步骤S102,服务器节点为同一组内的每个组成员节点分别生成不同的密钥链,密钥链中包括至少一个密钥。

步骤S104,每个组成员节点从服务器节点获取本节点对应的密钥链,或者每个组成员节点按照与服务器节点相同的初始参数和生成方法生成本节点对应的密钥链。

步骤S106,服务器节点和每个组成员节点分别按照预先协商的方法从本节点对应的密钥链中启用一个相同的密钥。

步骤S108,服务器节点和组成员节点基于启用的密钥进行通信。

通过为组成员节点分别生成不同的密钥链的方式,能够降低组成员 节点的通信密钥被其他组成员节点获取的风险,提高了系统的安全性。

在步骤S102中,服务器节点具体可以采用以下方法为同一组内的每个组成员节点分别生成不同的密钥链:服务器节点为同一组内的每个组成员节点分别生成不同的初始化种子;服务器节点与同一组内的每个组成员节点分别协商生成次数;服务器节点根据生成次数分别对每个组成员节点的初始化种子进行相应次数的二次单向函数计算,各次计算得到的密钥组成该组成员节点对应的密钥链,密钥链中的密钥数量等于生成次数。其中,服务器节点可以采用随机数生成器生成初始化种子。通过采用这种方法,同一组内每个组成员节点对应的密钥链均由不同的初始化种子和生成次数得到,从而保证了同一组内每个组成员节点对应的密钥链均不同。

其中,可以采用如下方法进行二次单向函数计算:服务器节点将组成员节点的初始化种子作为计算种子代入第一单向函数,计算出中间种子;将中间种子代入第二单向函数,计算出密钥,并添加到密钥链;根据生成次数将中间种子作为计算种子继续进行二次单向函数计算,直到密钥链中的密钥数量等于生成次数。

图2为采用二次函数生成密钥链的方法的示意图。下面结合图2中的变量,具体描述二次单向函数的计算过程。设:初始化种子为S0;生成次数为r;第n个中间种子为Sn,生成的密钥链中第n个密钥为Kn,n表示进行二次单向函数计算的次数,并且0<n≤r;第一单向函数为f(x);第二单向函数为g(x)。第n个中间种子的计算方法为:Sn=f(Sn-1);生成的密钥链中第n个密钥的计算方法为:Kn=g(Sn)。通过采用上述方法,能够根据初始化种子、生成次数和二次单向函数生成节点对应的密钥链。

在步骤S104中,组成员节点可以采用两种方法获取本节点相应的密钥链。第一种获取方式为:每个组成员节点从服务器节点获取本节点对应的密钥链。具体地,可以采用以下方法:服务器节点与每个组成员节点建立安全通信信道,服务器节点通过安全通信信道向每个组成员节点发送服务器节点生成的与每个组成员节点对应的密钥链。通 过采用这种方法,能够使组成员节点直接获取密钥链,而组成员节点无需进行计算,对组成员节点的性能要求较低。

第二种获取方式为:每个组成员节点按照与服务器节点相同的初始参数和生成方法生成本节点对应的密钥链。例如,组成员节点可以采用前述的二次单向函数计算方法获得本节点对应的密钥链。因此,在组成员节点进行计算之前,还包括以下步骤:服务器节点向同一组内的每个组成员节点发送对应的初始化种子和二次单向函数,并与每个组成员节点协商生成次数,以便组成员节点按照与服务器节点相同的初始化种子、生成次数和二次单向函数以及与服务器节点相同的生成方法生成本节点对应的密钥链。通过采用这种方法,能够进一步地提高系统的安全性,适用于性能较强的组成员节点。

在步骤S106中,服务器节点和每个组成员节点分别按照预先协商的方法从本节点对应的密钥链中启用一个相同的密钥具体可以包括:服务器节点和每个组成员节点按照密钥链中密钥排列的顺序,启用位于密钥链中相同位置的密钥。例如,设服务器节点和组成员节点的密钥链中的密钥为K1、K2、K3……Kr。服务器节点和每个组成员节点可以预先协商启用密钥链中的第一个密钥。由于服务器节点和每个组成员节点存储的对应的密钥链是相同的,因此通过预先协商启用的密钥在密钥链中的位置,即可以获得相同的密钥。

在本发明方法的应用场景中,除了具有服务器节点和组成员节点以外,还可以在服务器节点和组成员节点之间的链路上设置网关节点,同一组的组成员节点属于同一个网关节点。图3为本发明一个实施例的安全组通信方法的场景示意图。如图3所示,位于同一组的组成员节点342、344、346与网关节点34通信连接,位于另一组的组成员节点362、364与网关节点36通信连接。网关节点34和36与服务器节点32通信连接。在服务器节点与组成员节点确定启用的密钥后,服务器节点将同一组内各个组成员节点启用的密钥发送给该组的网关节点;网关节点利用各个组成员节点启用的密钥对每个组成员节点分别进行认证。

在服务器节点和组成员节点进行通信时,服务器节点、网关节点和组成员节点均可以采用相应的密钥进行验证。此外,各个组成员节点可以利用各自启用的密钥通过网关节点与组内的其他组成员节点进行通信。由于网关具有同一组的各个组成员节点的密钥,因此可以采用进行通信的组成员节点启用的密钥完成加密和解密,实现信息的安全传输。显然,根据需要,网关节点也可以将加密信息进行透明转发,在网关处不进行任何加密解密的处理。

当网关节点发生变更时,为了保证系统的安全性,需要对启用的密钥进行更新。下面参考图4描述本发明一个实施例的密钥更新方法。

图4为本发明密钥更新方法的一个实施例的流程图。如图4所示,该实施例的方法包括:

步骤S402,网关节点发生变更。

步骤S404,服务器检测到同一组内的组成员节点所属的网关节点发生变更,并对该变更进行广播。

步骤S406,组成员节点获知所属的网关节点发生变更。

步骤S408,服务器节点和每个组成员节点分别按照预先协商的方法从本节点对应的密钥链中启用一个新的相同的密钥。

步骤S410,服务器节点向变更后的网关节点发送启用的新的密钥。

其中,根据具体需求以及组成员节点的能力,也可以由组成员节点向变更后的网关节点发送启用的新的密钥。

步骤S412,网关节点利用各个组成员节点启用的新的密钥对每个组成员节点分别进行认证。

由于终端节点和组成员节点已经预先生成了密钥链,并且协商了启用规则,因此能够在网关节点发生变更时快速地更新密钥。在保证了安全性的同时提高了更新效率。

在步骤S408中,服务器节点和每个组成员节点例如可以采用按照密钥链中密钥排列的顺序启用位于密钥链中相同位置的密钥的方式启用新的密钥。例如,设服务器节点和组成员节点的密钥链中的密钥为K1、K2、K3……Kr。网关节点变更前,服务器节点和组成员节点启用 的密钥为K1,网关变更后,服务器节点和组成员节点启用密钥链中当前启用的密钥的下一个密钥,即K2,并将K2发送给变更后的网关节点。通过采用这种方法,可以实现密钥的快速切换。显然,根据需要,本领域技术人员也可以采用其他密钥更新方式,这里不再赘述。

物联网终端对于安全性和实时性的要求较高,因而可以将本发明的方法应用于物联网系统中,即在本发明的方法中,各个组成员节点可以为位于物联网的终端,服务器节点可以为物联网服务器。然而,本领域技术人员应当清楚,本发明可以适用于任何具有安全组通信需求的通信系统,并不仅限于物联网系统。

下面参考图5描述本发明一个实施例的安全组通信系统。

图5为本发明安全组通信系统的一个实施例的结构图。如图5所示,该实施例的系统包括服务器节点52和组成员节点54。

其中,系统还可以包括网关,用于接收服务器节点发送的属于网关的各个组成员节点启用的密钥,以便利用各个组成员节点启用的密钥对每个组成员节点分别进行认证。

下面参考图6描述本发明一个实施例的用于安全组通信的服务器节点。

图6为本发明用于安全组通信的服务器节点的一个实施例的结构图。如图6所示,该实施例的服务器节点52包括:第一密钥链生成模块622,用于为同一组内的每个组成员节点分别生成不同的密钥链,密钥链中包括至少一个密钥;第一密钥启用模块624,用于按照与组成员节点预先协商的方法从密钥链中启用与组成员节点相同的密钥;第一通信模块626,用于和组成员节点基于启用的密钥进行通信。

其中,第一密钥生成模块可以包括:初始化种子生成单元,用于为同一组内的每个组成员节点分别生成不同的初始化种子;生成次数协商单元,用于与同一组内的每个组成员节点分别协商生成次数;密钥链计算单元,用于根据生成次数分别对每个组成员节点的初始化种子进行相应次数的二次单向函数计算,各次计算得到的密钥组成该组成员节点对应的密钥链,密钥链中的密钥数量等于生成次数。

其中,密钥链计算单元可以包括:第一单向函数子单元,用于将组成员节点的初始化种子作为计算种子代入第一单向函数,计算出中间种子;第二单向函数子单元,用于将中间种子代入第二单向函数,计算出密钥,并添加到密钥链;循环子单元,用于根据生成次数将中间种子作为计算种子继续采用第一单向函数子单元和第二单向函数子单元进行二次单向函数计算,直到密钥链中的密钥数量等于生成次数。

其中,服务器节点还可以包括:参数发送单元,用于向同一组内的每个组成员节点发送对应的初始化种子和二次单向函数;第一生成次数协商单元,用于与每个组成员节点协商生成次数。

其中,服务器节点还可以包括密钥链发送模块,用于通过与每个组成员节点建立的安全通信信道向每个组成员节点发送第一密钥链生成模块生成的与每个组成员节点对应的密钥链。

其中,第一密钥启用模块可以用于按照密钥链中密钥排列的顺序,启用与每个组成员节点启用的密钥位于密钥链中相同位置的密钥。

此外,服务器节点还可以包括密钥发送模块,用于将同一组内各个组成员节点启用的密钥发送给该组的网关节点。

此外,服务器节点还可以包括网关变更检测模块,用于检测组成员节点所属的网关节点是否发生变更;当网关变更检测模块检测到网关节点发生变更时,第一密钥启用模块用于按照和属于产生变更的网关节点的每个组成员节点预先协商的方法从组成员节点对应的密钥链中启用一个新的密钥;密钥发送模块用于向变更后的网关发送启用的新的密钥,以便网关节点利用各个组成员节点启用的新的密钥对每个组成员节点分别进行认证。

此外,服务器节点还可以为物联网服务器。

下面参考图7描述本发明一个实施例的用于安全组通信的组成员节点。

图7为本发明用于安全组通信的组成员节点的一个实施例的结构图。如图7所示,该实施例的组成员节点54包括:第二密钥启用模块742和第二通信模块744,还包括密钥链获取模块746或者第二密钥链 生成模块748;密钥链获取模块746用于从服务器节点获取本节点对应的密钥链;第二密钥链生成模块748用于按照与服务器节点相同的初始参数和生成方法生成本节点对应的密钥链;第二密钥启用模块742用于按照与服务器预先协商的方法从本节点对应的密钥链中启用一个与服务器相同的密钥;第二通信模块744用于和服务器基于启用的密钥进行通信。

其中,组成员节点还可以包括:参数接收模块,用于接收服务器发送的与组成员节点对应的初始化种子和二次单向函数;第二生成次数协商单元,用于与服务器协商生成次数;第二密钥链生成模块用于按照与服务器节点相同的初始化种子、生成次数和二次单向函数以及与服务器节点相同的生成方法生成本节点对应的密钥链。

其中,密钥链获取模块可以用于通过与服务器节点建立的安全通信信道接收服务器节点生成的与组成员节点对应的密钥链。

其中,第二密钥启用模块可以用于按照密钥链中密钥排列的顺序,启用与服务器节点启用的密钥位于密钥链中相同位置的密钥。

其中,第二密钥启用模块还可以用于当组成员节点检测到组成员节点所属的网关节点发生变更后,组成员节点按照预先协商的方法从本节点对应的密钥链中启用一个新的与服务器节点相同的密钥。

此外,组成员节点还可以包括组内通信模块,用于利用启用的密钥通过网关节点与组内的其他组成员节点进行通信。

此外,组成员节点可以为位于物联网的终端。

此外,根据本发明的方法还可以实现为一种计算机程序产品,该产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的方法中限定的上述功能的计算机程序。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

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

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