CN112152796B - 一种基于密钥动态协商的组播方法及相关装置 - Google Patents
一种基于密钥动态协商的组播方法及相关装置 Download PDFInfo
- Publication number
- CN112152796B CN112152796B CN202010864955.7A CN202010864955A CN112152796B CN 112152796 B CN112152796 B CN 112152796B CN 202010864955 A CN202010864955 A CN 202010864955A CN 112152796 B CN112152796 B CN 112152796B
- Authority
- CN
- China
- Prior art keywords
- parameter
- receiving
- node
- prime number
- sending
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Abstract
本申请公开了一种基于密钥动态协商的组播方法及相关装置,方法包括:分配参数子集给各接收节点;确定各接收节点中的目标接收节点,从参数集合中选取目标接收节点对应的参数生成发送集合,根据发送集合得到接收集合,接收集合和发送集合在参数集合中互为补集;根据发送集合的参数和、接收集合的参数和、第一素数和第一素数的本原元,建立中间变量和加密密钥;通过加密密钥对明文数据进行加密得到密文数据,发送密文数据、中间变量、目标接收节点的列表、第一素数和本原元到公共信道。解决了组播通信中密钥分配协商无法兼顾分配密钥数量与加密量和通信量的平衡问题,实现了密钥/参数数量、加密计算量及数据通信量之间的平衡和密钥的按需动态协商。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种基于密钥动态协商的组播方法及相关装置。
背景技术
在无线传感器网络或物联网等应用场景中,通常采用星型或树型网络结构。网络结构中的网关节点管理控制大量的传感器或终端,当网关节点需要给其他网络节点发送相同的数据时,一种方式是采用单播方式逐个发送,另一种方式是采用组播方式统一发送。为了防止数据泄露,需对发送的数据进行加密,这就涉及密钥分配和协商的问题。
假设有n个接收节点,网关节点要给其中k(1≤k≤n)个接收节点发送相同的数据,在发送前无法确定具体的接收节点时,第一种方式是给每个接收节点分配一个密钥,共需要分配n个密钥,对于同一数据需要加密k次,并采用单播方式发送给各目标节点;第二种方式是给每种可能的接收组合分配不同的密钥,共需分配2n-1个不同的密钥,对于同一数据仅需要加密一次,并采用组播的方式发送给各目标节点。显然,现有技术中要不就是加密计算量和数据通信量巨大,要不就是需要分配的密钥数量巨大,无法实现密钥数量、加密计算量及数据通信量之间的平衡,并且由于密钥是静态分配固定不变,容易遭受破解。
发明内容
本申请实施例提供了一种基于密钥动态协商的组播方法及相关装置,用于解决组播通信中密钥分配协商无法兼顾分配密钥数量与加密量和通信量的平衡问题,实现了密钥/参数数量、加密计算量及数据通信量之间的平衡和密钥的按需动态协商。
有鉴于此,本申请第一方面提供了一种基于密钥动态协商的组播方法,所述方法包括:
S1、分配参数子集给各接收节点,所述参数子集与各所述接收节点对应的参数在参数集合中互为补集,所述参数集合由各所述接收节点对应的参数及公共参数组成,且各所述参数均不相等;
S2、确定各所述接收节点中的目标接收节点,从所述参数集合中选取所述目标接收节点对应的参数生成发送集合,根据所述发送集合得到接收集合,所述接收集合和所述发送集合在所述参数集合中互为补集;
S3、根据所述发送集合的参数和、所述接收集合的参数和、第一素数和所述第一素数的本原元,建立中间变量和加密密钥;
S4、通过所述加密密钥对明文数据进行加密得到密文数据,发送所述密文数据、所述中间变量、所述目标接收节点的列表、所述第一素数和所述第一素数的本原元到公共信道。
可选地,步骤S4,之后还包括:
当产生退出节点时,将所述退出节点对应的参数在所述参数集合的补集作为发送集合,将所述退出节点对应的参数作为接收集合;
根据所述发送集合的参数和、所述接收集合的参数和、第一素数和所述第一素数的本原元,建立中间变量和加密密钥;
通过所述加密密钥对所述退出节点对应的参数进行加密,得到第一加密参数,发送所述第一加密参数、所述中间变量、所述目标接收节点的列表、所述第一素数和所述第一素数的本原元到公共信道;
当接收到各所述接收节点发送的第一响应时,将所述退出节点对应的参数从所述参数集合中删除。
可选地,步骤S4,之后还包括:
当产生新增节点时,分配第一参数给所述新增节点,所述第一参数不同于所述参数集合中的任一参数,将公共参数在所述参数集合的补集作为发送集合,将所述公共参数作为接收集合;
根据所述发送集合的参数和、所述接收集合的参数和、所述第一素数和所述第一素数的本原元,建立中间变量和加密密钥;
通过所述加密密钥对所述新增节点对应的参数进行加密,得到第二加密参数,发送所述第二加密参数、所述中间变量、所述目标接收节点的列表、所述第一素数和所述第一素数的本原元到公共信道;
当接收到各所述接收节点发送的第二响应时,将所述参数集合作为参数子集分配给所述新增节点,再将所述新增节点对应的参数加入到所述参数集合中。
可选地,所述中间变量为:
X=gxmod m;
式中,X为所述中间变量,g为所述第一素数的本原元,x为所述发送集合的参数和,m为所述第一素数。
可选地,所述加密密钥为:
K=gxymod m;
式中,K为所述加密密钥,g为所述第一素数的本原元,x为所述发送集合的参数和,y为所述接收集合的参数和,m为所述第一素数。
本申请第二方面提供了一种基于密钥动态协商的组播方法,包括:
S5、获取发送节点分配的参数子集;
S6、接收密文数据、中间变量、目标接收节点的列表、第一素数和第一素数的本原元;
S7、根据所述目标接收节点的列表,判断各接收节点是否为所述目标接收节点,若是,则执行步骤S8,否则,删除所述密文数据;
S8、根据所述目标接收节点的列表和所述参数子集得到接收集合,并暂存所述接收集合的参数和、所述中间变量、所述第一素数和所述第一素数的本原元;
S9、根据所述接收集合的参数和、所述中间变量、所述第一素数和所述第一素数的本原元计算得到解密密钥,基于所述解密密钥对所述密文数据进行解密,得到明文数据。
可选地,S9之后,还包括:
当产生退出节点时,接收第一加密参数、所述中间变量、所述目标接收节点的列表、所述第一素数和所述第一素数的本原元,并计算得到第一解密密钥,基于所述第一解密密钥对所述第一加密参数进行解密,得到所述退出节点对应的参数;
从所述接收节点对应的参数子集中删除所述退出节点对应的参数,并发送第一响应给所述发送节点。
可选地,S9之后,还包括:
当产生新增节点时,接收第二加密参数、所述中间变量、所述目标接收节点的列表、所述第一素数和所述第一素数的本原元,并计算得到第二解密密钥,基于所述第二解密密钥对所述第二加密参数进行解密,得到所述新增节点对应的参数;
将所述新增节点对应的参数加入到所述接收节点对应的参数子集中,并发送第二响应给所述发送节点。
可选地,所述解密密钥为:
K′=Xymod m;
式中,K′为所述解密密钥,X为所述中间变量,m为所述第一素数,y为所述接收集合的参数和。
本申请第三方面提供了一种基于密钥动态协商的网络发送节点,包括:
分配单元,用于分配参数子集给各接收节点,所述参数子集与各所述接收节点对应的参数在参数集合中互为补集,所述参数集合由各所述接收节点对应的参数及公共参数组成,且各所述参数均不相等;
第一生成单元,用于确定各所述接收节点中的目标接收节点,从所述参数集合中选取所述目标接收节点对应的参数生成发送集合,根据所述发送集合得到接收集合,所述接收集合和所述发送集合在所述参数集合中互为补集;
建立单元,用于根据所述发送集合的参数和、所述接收集合的参数和、第一素数和所述第一素数的本原元,建立中间变量和加密密钥;
加密单元,用于通过所述加密密钥对明文数据进行加密得到密文数据,发送所述密文数据、所述中间变量、所述目标接收节点的列表、所述第一素数和所述第一素数的本原元到公共信道。
本申请第四方面提供了一种基于密钥动态协商的网络接收节点,包括:
获取单元,用于获取发送节点分配的参数子集;
接收单元,用于接收密文数据、中间变量、目标接收节点的列表、第一素数和第一素数的本原元;
判断单元,用于根据所述目标接收节点的列表,判断各接收节点是否为所述目标接收节点,若是,则触发第二生成单元,否则,删除所述密文数据;
第二生成单元,用于根据所述目标接收节点的列表和所述参数子集得到接收集合,并暂存所述接收集合的参数和、所述中间变量、所述第一素数和所述第一素数的本原元;
解密单元,用于根据所述接收集合的参数和、所述中间变量、所述第一素数和所述第一素数的本原元计算得到解密密钥,基于所述解密密钥对所述密文数据进行解密,得到明文数据。
本申请第五方面提供了一种基于密钥动态协商的组播系统,包括:公共信道、网络发送节点和网络接收节点;
所述网络发送节点通过所述公共信道与所述网络接收节点通信连接。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请提供了一种基于密钥动态协商的组播方法,包括:S1、分配参数子集给各接收节点,参数子集与各接收节点对应的参数在参数集合中互为补集,参数集合由各接收节点对应的参数及公共参数组成,且各参数均不相等;S2、确定各接收节点中的目标接收节点,从参数集合中选取目标接收节点对应的参数生成发送集合,根据发送集合得到接收集合,接收集合和发送集合在参数集合中互为补集;S3、根据发送集合的参数和、接收集合的参数和、第一素数和第一素数的本原元,建立中间变量和加密密钥;S4、通过加密密钥对明文数据进行加密得到密文数据,发送密文数据、中间变量、目标接收节点的列表、第一素数和本原元到公共信道。
本申请的基于密钥动态协商的组播方法,首先根据各接收节点对应生成互不相等的多个参数,由多个参数组成参数集合,将接收节点对应的参数在参数集合中互为补集的参数子集发送给对应的接收节点,也就是说,各接收节点知道其他接收节点的参数,但不知道其本身对应的参数,该参数子集用于获取接收子集,并计算解密密钥进行解密,由于分配的是参数子集而不是密钥,密钥是动态协商得到的,所以避免了密钥分配过程中泄露密钥的问题,同时只根据接收节点的个数给各接收节点分配了参数子集,不需要根据各接收节点的组合分配大量的密钥,减少了密钥协商的工作量;接着确定各接收节点中的目标接收节点,根据接收节点的相关参数生成发送集合和接收集合并随意选取一个素数,用于建立中间变量和加密密钥,通过加密密钥对需要发送的明文数据加密,也就是说只需要对明文数据进行一次加密,兼顾了加密计算量的平衡;最后通过组播的方式将加密后的密文数据,以及用于解密的相关数据发送到公共信道上,由于是组播的方式,也就是说只需要进行一次通信,同时兼顾了通信量的平衡,解决了组播通信中密钥分配协商无法兼顾分配密钥数量与加密量和通信量的平衡问题,实现了密钥/参数数量、加密计算量及数据通信量之间的平衡和密钥的按需动态协商。
附图说明
图1为本申请实施例提供的一种密钥动态协商的组播方法的实施例一的流程示意图;
图2为本申请实施例提供的一种密钥动态协商的组播方法的实施例二的流程示意图;
图3为本申请实施例提供的一种密钥动态协商的组播方法的实施例三的流程示意图;
图4为本申请实施例提供的一种密钥动态协商的网络发送节点的结构示意图;
图5为本申请实施例提供的一种密钥动态协商的网络接收节点的结构示意图。
具体实施方式
本申请实施例提供了一种基于密钥动态协商的组播方法及相关装置,解决了组播通信中密钥分配协商无法兼顾分配密钥数量与加密量和通信量的平衡问题,实现了密钥/参数数量、加密计算量及数据通信量之间的平衡和密钥的按需动态协商。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解,请参阅图1,本申请提供的一种基于密钥动态协商的组播方法的实施例一,包括:
步骤101、分配参数子集给各接收节点,参数子集与各接收节点对应的参数在参数集合中互为补集,参数集合由各接收节点对应的参数及公共参数组成,且各参数均不相等。
需要说明的是,参数集合包含公共参数,公共参数是各个节点都有的一个相同的参数,该参数可以根据实际情况设置;根据接收节点的个数随机生成参数互不相等的参数集合,即每个接收节点都有对应的参数,由各个接收节点对应的参数及公共参数组成参数集合;将各接收节点对应的参数在参数集合的补集,也就是参数子集,分配给各接收节点,可以理解的是,各接收节点知道其他接收节点的参数,但不知道其本身的参数,需要说明的是,参数子集是提前分配好给各接收节点的并且只需要分配一次。
步骤102、确定各接收节点中的目标接收节点,从参数集合中选取目标接收节点对应的参数生成发送集合,根据发送集合得到接收集合,接收集合和发送集合在参数集合中互为补集。
需要说明的是,确定各接收节点中的目标接收节点即是确定组播组的成员,由于为组播方式,因此需要确定所有接收节点中的目标接收节点,在确定目标接收节点后,从参数集合中选取接收节点对应的参数生成发送集合,并根据发送集合得到接收集合,需要说明的是,接收集合和发送集合在参数集合中互为补集。
步骤103、根据发送集合的参数和、接收集合的参数和、第一素数和第一素数的本原元,建立中间变量和加密密钥。
需要说明的是,第一素数为随机选取的一个素数,根据第一素数得到其本原元,根据发送集合的参数和、接收集合的参数和、第一素数和第一素数的本原元,建立中间变量和加密密钥,其中,中间变量用于接收节点计算解密密钥,加密密钥用于对需要发送的明文数据进行加密。
步骤104、通过加密密钥对明文数据进行加密得到密文数据,发送密文数据、中间变量、目标接收节点的列表、第一素数和本原元到公共信道。
需要说明的是,列表中为目标接收节点的标识或序号,通过加密密钥对需要发送的明文数据进行加密,将中间变量、目标接收节点的列表、第一素数、本原元以及加密后的密文数据发送到公共信道,需要说明的是,所有接收节点都可以得到以上信息,但接收节点需要判断其是否为目标接收节点再保存信息。
可以理解的是,对于公共信道上的窃听者,只能通过窃听知道第一素数m、本原元g、中间变量X,即便窃听者解决离散对数问题,恢复出发送集合的参数和x,但由于接收集合的参数和y值由发送节点和接收节点单独计算,窃听者无法获得,因此也无法计算出密钥。
本申请实施例中的基于密钥动态协商的组播方法,首先为各接收节点对应生成互不相等的多个参数,由多个参数组成参数集合,将接收节点对应的参数在参数集合中互为补集的参数子集分配给对应的接收节点,也就是说,各接收节点知道其他接收节点的参数,但不知道其本身对应的参数,该参数子集用于获取接收子集,并进行计算解密密钥,由于分配的是参数子集而不是密钥,密钥是动态协商得到的,所以避免了密钥分配过程中密钥泄露的问题,同时只根据接收节点的个数给各接收节点分配了参数子集,不需要根据各接收节点的组合分配大量的密钥,减少了密钥分配或协商的工作量;接着确定各接收节点中的目标接收节点,根据接收节点的相关参数生成发送集合和接收集合并随意选取一个素数,用于建立中间变量和加密密钥,通过加密密钥对需要发送的明文数据加密,也就是说只需要对明文数据进行一次加密,兼顾了加密量的平衡;最后通过组播的方式将加密后的密文数据,以及用于解密的相关数据发送到公共信道上,由于是组播的方式,也就是说只需要进行一次通信,同时兼顾了通信量的平衡,解决了组播通信中密钥分配协商无法兼顾分配密钥数量与加密量和通信量的平衡问题,实现了密钥/参数数量、加密计算量及数据通信量之间的平衡和密钥的按需动态协商。
以上为本申请实施例提供的一种基于密钥动态协商的组播方法的实施例一,以下为本申请实施例提供的一种基于密钥动态协商的组播方法的实施例二。
请参阅图2,本申请实施例二提供的一种基于密钥动态协商的组播方法包括:
步骤201、获取发送节点分配的参数子集。
需要说明的是,接收节点在事先获取由发送节点分配的参数子集,并且只需要获取一次就可以。
步骤202、接收密文数据、中间变量、目标接收节点的列表、第一素数和本原元。
需要说明的是,所有接收节点都能从公共信道上接收到密文数据、中间变量、目标接收节点的列表、第一素数和本原元,但接收节点需要判断其自身是否目标接收节点,再保存相关信息。
步骤203、根据目标接收节点的列表,判断各接收节点是否为目标接收节点,若是,则执行步骤204,否则,删除密文数据。
需要说明的是,通过目标接收节点的列表,各个接收节点可以判断其自身是否为目标接收节点,如果不是目标接收节点,即不是组播组成员,则丢弃密文数据不在进行处理,如果是目标接收节点,即为组播组成员,则进行步骤204。
步骤204、根据目标接收节点的列表和参数子集得到接收集合,并暂存接收集合的参数和、中间变量、第一素数和第一素数的本原元。
在确定了目标接收节点后,由于接收节点事先获取了参数子集,可以理解的是,接收集合为参数子集的的子集,接收节点根据目标接收节点的列表和参数子集,就可以得出接收集合。
步骤205、根据接收集合的参数和、中间变量、第一素数和第一素数的本原元计算得到解密密钥,基于解密密钥对密文数据进行解密,得到明文数据。
接收节点计算接收集合的参数和,并根据中间变量、第一素数和第一素数的本原元,计算解密密钥,就可以对密文数据进行解密,得到明文数据。
而对于非目标接收节点,由于无法得出接收集合,无法计算出解密密钥,因此无法对密文数据进行解密。
本申请实施例中的基于密钥动态协商的组播方法,各个接收节点都能从公共信道中收到接收参数子集、密文数据、中间变量、目标接收节点的列表、第一素数和本原元,接收节点判断其自身是否为目标接收节点,在确定目标接收节点后,将上述参数保存,也就是说,目标接收节点并非直接接收密钥,避免了密钥泄露;根据保存的上述参数,根据解密密钥对密文数据进行解密。
以上为本申请实施例提供的一种基于密钥动态协商的组播方法的实施例二,以下为本申请实施例提供的基于密钥动态协商的验证实施例。
假设有4个接收节点,参数子集分配及各节点接收情况如下表所示。
以上为本申请实施例提供的一种基于密钥动态协商的组播方法的验证实施例,以下为本申请实施例提供的一种基于密钥动态协商的组播方法的实施例三,实施例三包含组播方法的加密过程以及解密过程。
请参阅图3,本申请提供的一种基于密钥动态协商的组播方法的实施例三,包括:
步骤301、分配参数子集给各接收节点,参数子集与各接收节点对应的参数在参数集合中互为补集,参数集合由各接收节点对应的参数及公共参数组成,且各参数均不相等。
步骤301与实施例一的步骤101描述相同,请参见步骤101描述,在此不再赘述。
步骤302、确定各接收节点中的目标接收节点,从参数集合中选取目标接收节点对应的参数生成发送集合,根据发送集合得到接收集合,接收集合和发送集合在参数集合中互为补集。
步骤302与实施例一的步骤102描述相同,请参见步骤102描述,在此不再赘述。
步骤303、根据发送集合的参数和、接收集合的参数和、第一素数和第一素数的本原元,建立中间变量和加密密钥。
步骤303与实施例一的步骤103描述相同,请参见步骤103描述,在此不再赘述。
其中,中间变量为:
X=gxmod m;
式中,X为中间变量,g为第一素数的本原元,x为发送集合的参数和,m为第一素数。
加密密钥为:
K=gxymod m;
式中,K为加密密钥,g为第一素数的本原元,x为发送集合的参数和,y为接收集合的参数和,m为第一素数。
步骤304、通过加密密钥对明文数据进行加密得到密文数据,发送密文数据、中间变量、目标接收节点的列表、第一素数和本原元到公共信道。
步骤304与实施例一的步骤104描述相同,请参见步骤104描述,在此不再赘述。
步骤305、获取发送节点分配的参数子集。
步骤305与实施例二的步骤201描述相同,请参见步骤201描述,在此不再赘述。
步骤306、接收密文数据、中间变量、目标接收节点的列表、第一素数和本原元。
步骤306与实施例二的步骤202描述相同,请参见步骤202描述,在此不再赘述。
步骤307、根据目标接收节点的列表,判断各接收节点是否为目标接收节点,若是,则执行步骤308,否则,删除密文数据。
步骤307与实施例二的步骤203描述相同,请参见步骤203描述,在此不再赘述。
步骤308、根据目标接收节点的列表和参数子集得到接收集合,并暂存接收集合的参数和、中间变量、第一素数和第一素数的本原元。
步骤308与实施例二的步骤204描述相同,请参见步骤204描述,在此不再赘述。
步骤309、根据接收集合的参数和、中间变量、第一素数和第一素数的本原元计算得到解密密钥,基于解密密钥对密文数据进行解密,得到明文数据。
步骤309与实施例二的步骤205描述相同,请参见步骤205描述,在此不再赘述。
其中,解密密钥为:
K′=Xymod m;
式中,K′为解密密钥,X为中间变量,m为第一素数,y为接收集合的参数和。
步骤310、当产生退出节点时,将退出节点对应的参数在参数集合的补集作为发送集合,将退出节点对应的参数作为接收集合;根据发送集合的参数和、接收集合的参数和、第一素数和第一素数的本原元,建立中间变量和加密密钥;通过加密密钥对退出节点对应的参数进行加密,得到第一加密参数,发送第一加密参数、中间变量、目标接收节点的列表、第一素数和本原元到公共信道;
可以理解的是,在组播的过程中,会有节点退出,此时,退出节点对应的参数在参数集合的补集作为发送集合,将退出节点对应的参数作为接收集合,以此建立中间变量和加密密钥,该过程与实施例一中的描述相同,在此不再赘述,通过加密密钥对退出节点的参数进行加密后,以及第一加密参数、中间变量、目标接收节点的列表、第一素数和本原元发送到公共信道。
步骤311、接收第一加密参数、中间变量、目标接收节点的列表、第一素数和本原元,并计算得到第一解密密钥,基于解密密钥对第一加密参数进行解密,得到退出节点对应的参数;从接收节点对应的参数子集中删除退出节点对应的参数,并发送第一响应给发送节点。
接收节点接收到发送节点加密的参数,并进行解密得到退出节点对应的参数,此时,需要更新接收节点对应的参数子集,也就是从接收节点对应的参数子集中删除退出节点对应的参数,同时,发送第一响应给发送节点进行退出节点对应的参数已删除确认,用于当发送节点收到时,从参数集合中删除该退出节点对应的参数。
步骤312、当接收到各接收节点发送的第一响应时,将退出节点对应的参数从参数集合中删除。
当发送节点收到各接收节点发送的第一响应时,即所有接收节点都已删除退出节点对应的参数,则从参数集合中删除该退出节点对应的参数。如果某些接收节点未进行响应,发送节点重传第一加密参数、中间变量、目标接收节点的列表、第一素数和本原元发送到公共信道。如对于多次重传都未进行响应的接收节点,则也变成了退出节点。
步骤313、当产生新增节点时,分配第一参数给新增节点,第一参数节点不同于参数集合中的任一参数,将公共参数在参数集合的补集作为发送集合,将公共参数作为接收集合;根据发送集合的参数和、接收集合的参数和、第一素数和第一素数的本原元,建立中间变量和加密密钥;通过加密密钥对新增节点对应的参数进行加密,得到第二加密参数,发送第二加密参数、中间变量、目标接收节点的列表、第一素数和本原元到公共信道;
同样的,在组播的过程中,会有新的节点加入;此时,将公共参数在参数集合的补集作为发送集合,需要说明的是,公共参数是各个节点都有的一个相同的参数,该参数可以根据实际情况设置,并将公共参数作为接收集合;建立中间变量和加密密钥的过程和实施例一的相同,在此不再赘述。
通过加密密钥对新增的节点对应的参数加密,将第二加密参数以及中间变量、目标接收节点的列表、第一素数和本原元发送到公共信道。
步骤314、接收第二加密参数、中间变量、目标接收节点的列表、第一素数和本原元,并计算得到第二解密密钥,基于第二解密密钥对第二加密参数进行解密,得到新增节点对应的参数;将新增节点对应的参数加入到接收节点对应的参数子集中,并发送第二响应给发送节点。
接收节点接收发送节点加密的第二加密参数,并对其进行解密得到新增节点对应的参数,此时,将该参数加入到该接收节点对应的参数子集中,可以理解为,对该接收节点对应的参数子集进行更新。
需要说明的是,第二响应用于发送给发送节点,进行新增节点对应参数已添加确认,当发送节点接收到该请求,就会将新增节点对应的参数加入到参数集合中。
步骤315、当接收到各接收节点发送的第二响应时,将参数集合作为参数子集分配给新增节点,再将新增节点对应的参数加入到参数集合中。
需要说明的是,将参数集合作为参数子集分配给新增节点时的分配方式有多种,例如,直接导入或采用预置密码进行加密传输,在此不做限定。
可以理解的是,当发送节点收到各接收节点发送的第二响应时,即所有接收节点都添加新增节点对应的参数到自己的参数子集中,则将新增节点对应的参数加入到参数集合中,也就是对参数集合进行更新。如果某些接收节点未进行响应,发送节点重传第二加密参数、中间变量、目标接收节点的列表、第一素数和本原元发送到公共信道。如对于多次重传都未进行响应的接收节点,则也变成了退出节点。
本申请实施例中的基于密钥动态协商的组播方法,首先根据各接收节点对应生成互不相等的多个参数,由多个参数组成参数集合,将接收节点对应的参数在参数集合中互为补集的参数子集分配给对应的接收节点,也就是说,各接收节点知道其他接收节点的参数,但不知道其本身对应的参数,该参数子集用于在接收子集中进行解密,由于分配的是参数子集而不是密钥,密钥是动态协商得到的,避免了密钥分配过程中密钥泄露的问题,同时只根据接收节点的个数给各接收节点分配了参数子集,不需要根据各接收节点的组合分配大量的参数或密钥,减少了密钥协商的工作量。
接着确定各接收节点中的目标接收节点,根据接收节点相关参数生成发送集合和接收集合并随意选取一个素数,用于建立中间变量和加密密钥,通过加密密钥对需要发送的明文数据加密,也就是说只需要对明文数据进行一次加密,兼顾了加密量的平衡。同时考虑到通信过程中,会有新增的接收节点或者有退出的接收节点的情况,因此也提供了方法,用于更新参数集合和各接收节点的参数子集,保证发送节点和各接收节点之间的参数同步。
最后通过组播的方式将加密后的密文数据,以及用于解密的相关数据发送到公共信道上,由于是组播的方式,也就是说只需要进行一次通信,同时兼顾了通信量的平衡;并且还考虑到了节点的加入和退出情况,解决了组播通信中密钥分配协商无法兼顾分配密钥数量与加密量和通信量的平衡问题,实现了密钥/参数数量、加密计算量及数据通信量之间的平衡和密钥的按需动态协商。
以上为本申请实施例提供的一种基于密钥动态协商的组播方法的实施例三,以下为本申请实施例提供的一种基于密钥动态协商的网络发送节点的实施例,请参阅图4,包括:
分配单元401,用于分配参数子集给各接收节点,参数子集与各接收节点对应的参数在参数集合中互为补集,参数集合由各接收节点对应的参数和公共参数组成,且各参数均不相等。
第一生成单元402,用于确定各接收节点中的目标接收节点,从参数集合中选取目标接收节点对应的参数生成发送集合,根据发送集合得到接收集合,接收集合和发送集合在参数集合中互为补集。
建立单元403,用于根据发送集合的参数和、接收集合的参数和、第一素数和第一素数的本原元,建立中间变量和加密密钥。
加密单元404,用于通过加密密钥对明文数据进行加密得到密文数据,发送密文数据、中间变量、目标接收节点的列表、第一素数和本原元到公共信道。
以上为本申请实施例提供的一种基于密钥动态协商的网络发送节点的实施例,以下为本申请实施例提供的一种基于密钥动态协商的网络接收节点的实施例,请参阅图5,包括:
获取单元501,用于获取发送节点分配的参数子集。
接收单元502,用于接收密文数据、中间变量、目标接收节点的列表、第一素数和本原元。
判断单元503,用于根据目标接收节点的列表,判断各接收节点是否为目标接收节点,若是,则触发第二生成单元,否则,删除密文数据。
第二生成单元504,用于根据目标接收节点的列表和参数子集得到接收集合,并暂存接收集合的参数和、中间变量、第一素数和第一素数的本原元。
解密单元505,用于根据接收集合的参数和、中间变量、第一素数和第一素数的本原元计算得到解密密钥,基于解密密钥对密文数据进行解密,得到明文数据。
以上为本申请实施例提供的一种基于密钥动态协商的网络接收节点的实施例,以下为本申请实施例提供的一种基于密钥动态协商的组播系统的实施例,包括:
公共信道、网络发送节点和网络接收节点;
网络发送节点通过公共信道与网络接收节点通信连接。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (11)
1.一种基于密钥动态协商的组播方法,其特征在于,包括:
S1、分配参数子集给各接收节点,所述参数子集与各所述接收节点对应的参数在参数集合中互为补集,所述参数集合由各所述接收节点对应的参数及公共参数组成,且所述各所述接收节点对应的参数均不相等;
S2、确定各所述接收节点中的目标接收节点,从所述参数集合中选取所述目标接收节点对应的参数生成发送集合,根据所述发送集合得到接收集合,所述接收集合和所述发送集合在所述参数集合中互为补集;
S3、根据所述发送集合的参数和、所述接收集合的参数和、第一素数和所述第一素数的本原元,建立中间变量和加密密钥;
S4、通过所述加密密钥对明文数据进行加密得到密文数据,发送所述密文数据、所述中间变量、所述目标接收节点的列表、所述第一素数和所述第一素数的本原元到公共信道。
2.根据权利要求1所述的基于密钥动态协商的组播方法,其特征在于,步骤S4,之后还包括:
当产生退出节点时,将所述退出节点对应的参数在所述参数集合的补集作为发送集合,将所述退出节点对应的参数作为接收集合;
根据所述发送集合的参数和、所述接收集合的参数和、第一素数和所述第一素数的本原元,建立中间变量和加密密钥;
通过所述加密密钥对所述退出节点对应的参数进行加密,得到第一加密参数,发送所述第一加密参数、所述中间变量、所述目标接收节点的列表、所述第一素数和所述第一素数的本原元到公共信道;
当接收到各所述接收节点发送的第一响应时,将所述退出节点对应的参数从所述参数集合中删除。
3.根据权利要求1所述的基于密钥动态协商的组播方法,其特征在于,步骤S4,之后还包括:
当产生新增节点时,分配第一参数给所述新增节点,所述第一参数不同于所述参数集合中的任一参数,将公共参数在所述参数集合的补集作为发送集合,将所述公共参数作为接收集合;
根据所述发送集合的参数和、所述接收集合的参数和、所述第一素数和所述第一素数的本原元,建立中间变量和加密密钥;
通过所述加密密钥对所述新增节点对应的参数进行加密,得到第二加密参数,发送所述第二加密参数、所述中间变量、所述目标接收节点的列表、所述第一素数和所述第一素数的本原元到公共信道;
当接收到各所述接收节点发送的第二响应时,将所述参数集合作为参数子集分配给所述新增节点,再将所述新增节点对应的参数加入到所述参数集合中。
4.根据权利要求1所述的基于密钥动态协商的组播方法,其特征在于,所述中间变量为:
X=gxmod m;
式中,X为所述中间变量,g为所述第一素数的本原元,x为所述发送集合的参数和,m为所述第一素数。
5.根据权利要求1所述的基于密钥动态协商的组播方法,其特征在于,所述加密密钥为:
K=gxymod m;
式中,K为所述加密密钥,g为所述第一素数的本原元,x为所述发送集合的参数和,y为所述接收集合的参数和,m为所述第一素数。
6.一种基于密钥动态协商的组播方法,其特征在于,包括:
S5、获取发送节点分配的参数子集;
S6、接收密文数据、中间变量、目标接收节点的列表、第一素数和第一素数的本原元;
S7、根据所述目标接收节点的列表,判断各接收节点是否为所述目标接收节点,若是,则执行步骤S8,否则,删除所述密文数据;
S8、根据所述目标接收节点的列表和所述参数子集得到接收集合,并暂存所述接收集合的参数和、所述中间变量、所述第一素数和所述第一素数的本原元;
S9、根据所述接收集合的参数和、所述中间变量、所述第一素数和所述第一素数的本原元计算得到解密密钥,基于所述解密密钥对所述密文数据进行解密,得到明文数据。
7.根据权利要求6所述的基于密钥动态协商的组播方法,其特征在于:S9之后,还包括:
当产生退出节点时,接收第一加密参数、所述中间变量、所述目标接收节点的列表、所述第一素数和所述第一素数的本原元,并计算得到第一解密密钥,基于所述第一解密密钥对所述第一加密参数进行解密,得到所述退出节点对应的参数;
从所述接收节点对应的参数子集中删除所述退出节点对应的参数,并发送第一响应给所述发送节点。
8.根据权利要求6所述的基于密钥动态协商的组播方法,其特征在于:S9之后,还包括:
当产生新增节点时,接收第二加密参数、所述中间变量、所述目标接收节点的列表、所述第一素数和所述第一素数的本原元,并计算得到第二解密密钥,基于所述第二解密密钥对所述第二加密参数进行解密,得到所述新增节点对应的参数;
将所述新增节点对应的参数加入到所述接收节点对应的参数子集中,并发送第二响应给所述发送节点。
9.根据权利要求6所述的基于密钥动态协商的组播方法,其特征在于,所述解密密钥为:
K′=Xymod m;
式中,K′为所述解密密钥,X为所述中间变量,m为所述第一素数,y为所述接收集合的参数和。
10.一种基于密钥动态协商的网络发送节点,其特征在于,包括:
分配单元,用于分配参数子集给各接收节点,所述参数子集与各所述接收节点对应的参数在参数集合中互为补集,所述参数集合由各所述接收节点对应的参数及公共参数组成,且各所述参数均不相等;
第一生成单元,用于确定各所述接收节点中的目标接收节点,从所述参数集合中选取所述目标接收节点对应的参数生成发送集合,根据所述发送集合得到接收集合,所述接收集合和所述发送集合在所述参数集合中互为补集;
建立单元,用于根据所述发送集合的参数和、所述接收集合的参数和、第一素数和所述第一素数的本原元,建立中间变量和加密密钥;
加密单元,用于通过所述加密密钥对明文数据进行加密得到密文数据,发送所述密文数据、所述中间变量、所述目标接收节点的列表、所述第一素数和所述第一素数的本原元到公共信道。
11.一种基于密钥动态协商的网络接收节点,其特征在于,包括:
获取单元,用于获取发送节点分配的参数子集;
接收单元,用于接收密文数据、中间变量、目标接收节点的列表、第一素数和第一素数的本原元;
判断单元,用于根据所述目标接收节点的列表,判断各接收节点是否为所述目标接收节点,若是,则触发第二生成单元,否则,删除所述密文数据;
第二生成单元,用于根据所述目标接收节点的列表和所述参数子集得到接收集合,并暂存所述接收集合的参数和、所述中间变量、所述第一素数和所述第一素数的本原元;
解密单元,用于根据所述接收集合的参数和、所述中间变量、所述第一素数和所述第一素数的本原元计算得到解密密钥,基于所述解密密钥对所述密文数据进行解密,得到明文数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010864955.7A CN112152796B (zh) | 2020-08-25 | 2020-08-25 | 一种基于密钥动态协商的组播方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010864955.7A CN112152796B (zh) | 2020-08-25 | 2020-08-25 | 一种基于密钥动态协商的组播方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112152796A CN112152796A (zh) | 2020-12-29 |
CN112152796B true CN112152796B (zh) | 2022-12-23 |
Family
ID=73888252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010864955.7A Active CN112152796B (zh) | 2020-08-25 | 2020-08-25 | 一种基于密钥动态协商的组播方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112152796B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113242121B (zh) * | 2021-04-15 | 2023-07-25 | 哈尔滨工业大学 | 一种基于组合加密的安全通信方法 |
CN114285555A (zh) * | 2021-12-15 | 2022-04-05 | 支付宝(杭州)信息技术有限公司 | 基于区块链的组播方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088456A (en) * | 1996-11-15 | 2000-07-11 | Desktop Guardian Limited | Data encryption technique |
JP2003273858A (ja) * | 2002-03-15 | 2003-09-26 | Nippon Telegr & Teleph Corp <Ntt> | セション鍵更新方法、そのクライアント装置、クライアント装置の鍵更新方法、サーバ装置処理方法、そのプログラム及び記録媒体 |
CN1918914A (zh) * | 2004-02-12 | 2007-02-21 | 皇家飞利浦电子股份有限公司 | 用于选择性数据传输的系统 |
CN1998180A (zh) * | 2004-05-19 | 2007-07-11 | 皇家飞利浦电子股份有限公司 | 用于大型和中型情况以及低用户端需求的组播密钥发布方案 |
CN111510281A (zh) * | 2020-06-29 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 一种同态加密方法及装置 |
-
2020
- 2020-08-25 CN CN202010864955.7A patent/CN112152796B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088456A (en) * | 1996-11-15 | 2000-07-11 | Desktop Guardian Limited | Data encryption technique |
JP2003273858A (ja) * | 2002-03-15 | 2003-09-26 | Nippon Telegr & Teleph Corp <Ntt> | セション鍵更新方法、そのクライアント装置、クライアント装置の鍵更新方法、サーバ装置処理方法、そのプログラム及び記録媒体 |
CN1918914A (zh) * | 2004-02-12 | 2007-02-21 | 皇家飞利浦电子股份有限公司 | 用于选择性数据传输的系统 |
CN1998180A (zh) * | 2004-05-19 | 2007-07-11 | 皇家飞利浦电子股份有限公司 | 用于大型和中型情况以及低用户端需求的组播密钥发布方案 |
CN111510281A (zh) * | 2020-06-29 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 一种同态加密方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112152796A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110463237B (zh) | 用于管理服务器和用户设备之间的通信的方法 | |
US11316677B2 (en) | Quantum key distribution node apparatus and method for quantum key distribution thereof | |
CN106357649B (zh) | 用户身份认证系统和方法 | |
EP3432532B1 (en) | Key distribution and authentication method, apparatus and system | |
CN108282333B (zh) | 工业云环境下多边缘节点协作模式下数据安全共享方法 | |
WO2017185999A1 (zh) | 密钥分发、认证方法,装置及系统 | |
EP2637350B1 (en) | Key escrow | |
JP3864247B2 (ja) | ネットワークシステム、端末装置、情報の配信方法及び復号方法 | |
US20060159269A1 (en) | Cryptographic system for resource starved CE device secure upgrade and re-configuration | |
CN109981584B (zh) | 一种基于区块链的分布式社交方法 | |
CN111628861B (zh) | 对象共享系统及方法 | |
CN103534975A (zh) | 根据公开密钥发现用于密钥管理的安全关联 | |
CN112152796B (zh) | 一种基于密钥动态协商的组播方法及相关装置 | |
CN103997405B (zh) | 一种密钥生成方法及装置 | |
CN111478911A (zh) | 一种采用轻量化密钥交换算法的即时通信加密方法 | |
CN112534790B (zh) | 在通信网络中交换加密数据的加密装置、通信系统和方法 | |
CN111656728B (zh) | 一种用于安全数据通信的设备、系统和方法 | |
CN112995215A (zh) | 解密系统、方法、装置、电子设备及存储介质 | |
CN107483197B (zh) | 一种vpn网络终端密钥分发方法及装置 | |
CN106487761B (zh) | 一种消息传输方法和网络设备 | |
CN114362947B (zh) | 一种广域量子密钥服务方法与系统 | |
CN112118267B (zh) | 一种匿名通信方法及相关装置 | |
CN113452513B (zh) | 密钥分发方法、装置和系统 | |
CN114050897A (zh) | 一种基于sm9的异步密钥协商方法及装置 | |
US11838348B2 (en) | System and method for implementing anonymously constrained computation in a distributed system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |