本发明涉及密钥管理技术领域,具体涉及一种密钥分组散乱管理的方法及装置。
背景技术:
现如今,越来越多的重要信息及数据在互联网络中进行传输,密钥是重要信息保密及数据的真实性的安全保证,然而密钥安全管理是实现安全保证最直观最重要的环节。在巨量的互联网络的使用用户中,无专业技术背景的用户占了非常大的比重,对于这部分的用户,普遍无法安全地管理自身持有的密钥。因此,如何低成本地实现密钥的安全管理,是大多数用户关心的重点。
目前,普遍用户采用本地存储或者交由第三方平台来对密钥进行安全管理。由于不具备专业的管理手段,用户在本地存储的密钥安全性非常低,被窃取的可能性极高。其次,若交由第三方平台进行管理,在鉴别平台可信性及管理的有效性上,用户也不具备鉴别能力及判断能力。除此之外,第三方平台具有风险聚集性,一旦平台失效或数据泄露,造成的损失将是难以想象的。
技术实现要素:
为了克服现有技术存在的缺点与不足,本发明提供一种密钥分组散乱管理的方法及装置。
本发明提出一种以分组散乱方式来进行密钥管理的方法,构建一个在不同客户端节点间散乱存储各自密钥的散乱网络,并以分组的方式来将散乱网络划分为若干散乱子网,使散乱网络可以同时具备随机性及可扩展性。
本发明采用如下技术方案:
一种密钥分组散乱管理的方法,包括如下步骤:
s1构建一个在不同客户端节点散乱存储密钥的散乱网络,并通过分组散乱管理方式划分散乱子网,使散乱网络具备随机性和扩展性;
s2服务端接收新加入散乱网络的客户端节点的注册信息,并根据散乱网络的安全等级及子网成员规模状态,为子网成员规模已满的新增客户端节点开辟新分组以及生成分组信息,为子网成员规模未满的新增客户端节点生成分组信息;
s3将新生成的客户端节点信息及分组信息加入寻址表中,并将部分字段反馈给客户端节点,所述部分字段包括客户端节点id,客户端节点ip,客户端节点mac及客户端身份证明信息;
s4选择散乱方案,在不同客户端节点间进行密钥交换存储;
s5客户端节点读取数据时,服务端根据散乱方案及寻址方案,找到存储该客户端密钥的节点将密钥返回给客户端,然后解密读取该数据。
构建散落网络包括服务节点设置及客户节点设置,所述服务节点设置包括服务节点数量、各个服务节点ip地址及各个服务节点运行状态;客户节点设置包括整个散乱网络的客户节点数、子网数量、网络安全等级、子网规模及分组标志位。
所述网络安全等级是对散乱子网散乱程度的控制参数,子网规模的数值代表该分组内最大可容纳的客户端节点个数,网络安全等级l越高,代表安全等级高,散乱方案复杂,具体的散乱方案计算方法如下:
nm=(g-1)2*(g-2)!/2
nm表示当前分组m可选择的剔除不符合散乱规则的方案个数,g代表子网规模,所述散乱方案包含一串由g以内自然数随机排序的序列串sm,并且随机序列串的第i个位置的值不等于i,该序列串是该散乱子网内节点间密钥散乱存储的路径依据。
所述寻址表由多条节点信息构成,散乱方案信息由多个分组信息构成,每条节点信息包括节点id,分组id,ip地址,mac地址,及组内序号字段构成,该表根据不同字段设置多级索引对其进行排序,其中多级索引具体为:
将节点id设置为第一级索引;
将分组id设置为第二级索引。
s4中选择散乱方案是根据当前新加入的节点所在分组的子网成员个数选择不同的散乱方案,保证在未达到子网最大规模前,散乱子网依旧具备散乱特性,具体为:
当m=1,且n=1时,m代表当前分组数,n代表网络中节点个数,此情况下散乱网络只存在一个节点,该节点的密钥由与它沟通的传输节点进行存储;
当m=1,且n=2时,此情况下散乱网络只存在两个节点,执行的散乱方案是两个节点间的密钥进行交换存储;
当m=1,且2<n≤g时,g代表子网的规模,散乱方案序列s1是一个n以内自然数的随机序列串,此情况下,执行以s1作为散乱序列的散乱方案;
当m>1,且nmodg≠0时,即最后一个分组m组成员未满,根据分组开辟时生成的散乱方案序列sm,执行与前一分组m-1绑定散乱方案;
当m>1,且nmodg=0时,即最后一个分组m组成员已满,根据分组开辟时生成的散乱方案序列sm,执行与前一分组m-1的绑定分离方案。
所述绑定散乱方案,根据当前最后分组m的散乱方案序列sm,计算位于组内序号im的节点对应的密钥存放路径jm,将im结点的密钥与前一分组序号为jm-1结点的密钥进行交换存储,保证在分组子网规模不够时,子网网络依旧具备散乱特性。
所述绑定分离方案具体为:
根据当前最后分组m的散乱方案序列sm,及当前最后分组m-1的散乱方案序列sm-1,各分组子网解绑定,执行各自的散乱方案,密钥交换存储只在同一分组子网内进行。
所述sm中,第i个位置的随机数:i=(k+rmmod(g)+1)mod(g),其中,k为当前处理的自然数,rm为通过随机算法迭代生成随机数。若第i个位置的值不等于i,且未进行赋值,则将第i个位置的值赋值为k,否则,则寻找下一个位置进行判断,直到满足上述判断条件。
一种密钥组散乱管理的装置,包括
散乱网络设置模块:用于设置散乱网络,并通过分组散乱房里方式划分散乱子网,记录散落网络当前状态及基础设置;
注册模块,用于接收客户端节点的注册信息,并以注册时间为索引存储注册信息;
分组划分模块,为新增分组生成对应该分组的分组信息及散乱方案序列;
寻址构建模块,为新注册客户端节点生成节点信息,更新寻址方案信息表;
散乱方案模块,根据新增节点加入后散乱网络的状态,执行不同的散乱方案;
密钥交换模块,根据散乱方案及寻址方案安全地交换密钥进行存储;
密钥请求模块,接收散乱网络中节点的密钥请求,根据散乱方案及寻址方案,提供密钥获取服务。
10、根据权利要求9的装置,其特征在于,
所述散乱方案模块,包括基础散乱模块,绑定散乱模块及绑定分离模块;
所述基础散乱模块,执行当前网络分组数只有一个的局部散乱方案;
所述绑定散乱模块,根据分组开辟时生成的方案,执行与前一分组的绑定散乱方案;
所述绑定分离模块,根据分组开辟时生成的方案,执行与前一分组的绑定分离方案。
本发明的有益效果:
通过本方法和装置,可以将密钥与密钥该持有者进行有效分离,实现密钥的安全管理,即便密钥泄露,由于庞大的随机散乱方案及散乱网络,使得攻击者无法得知对应该密钥的结点身份,无法使用获取到的密钥解密获取数据,实现了低成本及安全目的的密钥管理方案。
附图说明
图1是本发明的工作流程图;
图2是本发明的装置结构连接图。
具体实施方式
下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例
如图1及图2所示,本发明提供了一种以分组散乱方式来进行密钥管理的方法。通过建一个在不同客户端节点间散乱存储各自密钥的散乱网络,将密钥与持有该密钥的客户端进行有效分离,实现密钥的安全管理;以分组的方式来将散乱网络划分为若干散乱子网,使散乱网络可以同时具备随机性及可扩展性。散乱网络的扩展性关系到当新的节点加入时,保证散乱效果的成本,成本越低,代表网络的扩展性越好,重新混乱的代价低;节点密钥及身份的分离性是散乱效果的保证;所以,对以上两类问题的实施方案是本发明的核心。
一种密钥分组散乱管理的方法,包括如下步骤:
s1构建一个在不同客户端节点散乱存储密钥的散乱网络,并通过分组散乱管理方式划分散乱子网,使散乱网络具备随机性和扩展性;
散乱网络设置包括服务节点设置及客户节点设置两部分,服务节点设置包括服务节点数量,各个服务节点ip地址,各个服务节点运行状态;客户节点设置包括整个散乱网络的客户节点数,子网数量,网络安全等级,子网规模,分组标志位。寻址表由多条节点信息构成。散乱方案信息表由多个分组信息构成。
s2服务端接收新加入散乱网络的客户端节点的注册信息,并根据散落网络的安全等级及子网成员规模状态,为子网成员规模已满的新增客户端节点开辟新分组以及生成分组信息,为子网成员规模未满的新增客户端节点生成分组信息;
其中,服务端是由多个服务节点构成,分担散乱网络传输压力;当某个服务节点失效,其余服务节点接替失效节点的工作,保证散乱网络正常运作;并且服务端只承担各个客户端节点间协助沟通的作用,不进行信息存储,具体信息存储在所有的客户端节点,保证密钥安全风险的分散;服务节点间共享散乱网络设置信息,寻址方案信息及散乱方案信息。客户端节点节点提供的注册信息包括注册时间,ip地址,mac地址。
所述网络安全等级是对散乱子网散乱程度的控制参数,子网规模的数值代表该分组内最大可容纳的客户端节点个数,网络安全等级l越高,代表安全等级高,散乱方案复杂,具体的散乱方案计算方法如下:
nm=(g-1)2*(g-2)!/2
nm表示当前分组m可选择的剔除不符合散乱规则的方案个数,g代表子网规模,所述散乱方案包含一串由g以内自然数随机排序的序列串sm,并且随机序列串的第i个位置的值不等于i,该序列串是该散乱子网内节点间密钥散乱存储的路径依据。
本实施例中设置的网络安全等级如下:
网络安全定级如下:
l=1,安全等级极低,子网规模为5,符合散乱规则的散乱方案数为48;
l=2,安全等级较低,子网规模为6,符合散乱规则的散乱方案数为300;
l=3,安全等级中等,子网规模为7,符合散乱规则的散乱方案数为2160;
l=4,安全等级较高,子网规模为8,符合散乱规则的散乱方案数为17640;
l=5,安全等级极高,子网规模为9,符合散乱规则的散乱方案数为161280。
分组标志位代表当前最后一个分组组成员是否达到分组内可含节点数的上限。具体为:
当分组数m>1时,根据分组标志位f判断是否需开辟新分组,分组标志位代表当前最后一个分组组成员是否达到分组内可含节点数的上限。
本实施例中,用0值表示当前最后一个分组内组成员未满,新注册节点划分为最后一个分组的分组成员;用1值表示当前最后一个分组内组成员未满,须为新注册节点开辟新分组;
分组信息包含分组id、组内成员节点id,以及散乱方案序列,散乱方案序列是随机生成的一串序列串,该序列串是该子网内节点间密钥散乱存储的路径依据,具体生成方法如下:
当前分组m的散乱方案序列sm是一个g以内自然数的随机序列串,并且随机序列串的第i个位置的值不等于i,其中,g是代表分组子网的规模。
按照自然数的顺序,根据当前时间作为随机种子生成的随机数,计算出当前自然数散乱位置i:i=(k+rmmod(g)+1)mod(g),其中,k为当前处理的自然数,rm为通过随机算法迭代生成随机数。若第i个位置的值不等于i,且未进行赋值,则将第i个位置的值赋值为k,否则,则寻找下一个位置进行判断,直到满足上述判断条件;
本实施例中,若当前网络等级为1,则此网络是按5个节点一组进行分组散乱,通过一个5以内自然数的随机序列串序列为25134,该序列串代表组内序号为1的结点存储组内序号为2的密钥,代表组内序号为2的结点存储组内序号为5的密钥,代表组内序号为3的结点存储组内序号为1的密钥,代表组内序号为4的结点存储组内序号为3的密钥,代表组内序号为5的结点存储组内序号为4的密钥。
更新客户节点设置,对散乱网络设置中的子网数量字段进行更新。将新生成的分组信息加入散乱方案表中。假如步骤一未对新节点开辟新分组,则判断当前最后子网是否到达可容纳的最大规模,即当nmodg=0时,n代表客户节点个数,g代表子网规模,将散乱网络设置中的分组标志位置1。
s3将新生成的客户端节点信息及分组信息加入寻址表中,并将部分字段反馈给客户端节点,所述部分字段包括客户端节点id,客户端节点ip,客户端节点mac及客户端身份证明信息;
所述寻址表由所有节点信息构成,每条节点信息包括节点id,分组id,ip地址,mac地址,及组内序号字段构成,该表根据不同字段设置多级索引对其进行排序,其中多级索引具体为:
将节点id设置为第一级索引;
将分组id设置为第二级索引;
所述部分字段,包括节点id,节点ip,节点mac及身份证明信息。
s4选择散乱方案,在不同客户端节点间进行密钥交换存储;
所述选择散乱方案是根据当前新加入的节点所在分组的子网成员个数选择不同的散乱方案,保证在未达到子网最大规模前,散乱子网依旧具备散乱特性,具体为:
当m=1,且n=1时,m代表当前分组数,n代表网络中节点个数,此情况下散乱网络只存在一个节点,该节点的密钥由与它沟通的传输节点进行存储。
当m=1,且n=2时,此情况下散乱网络只存在两个节点,执行的散乱方案是两个节点间的密钥进行交换存储。
当m=1,且2<n≤g时,g代表分组子网的规模,散乱方案序列s1是一个n以内自然数的随机序列串,此情况下,执行以s1作为散乱序列的散乱方案;
当m>1,且nmodg≠0时,即最后一个分组m组成员未满,根据分组开辟时生成的散乱方案序列sm,计算位于组内序号im的结点对应的密钥存放路径jm,将im结点的密钥与前一分组序号为jm-1结点的密钥进行交换存储,保证在分组子网规模不够时,子网网络依旧具备散乱特性;
当m>1,且nmodg=0时,即最后一个分组m组成员已满,根据当前最后分组m的散乱方案序列sm,及当前最后分组m-1的散乱方案序列sm-1,各分组子网解绑定,执行各自的散乱方案,密钥交换存储只在同一分组子网内进行,mod为求余函数。
服务层根据散乱方案的散乱序列,查找对应的组id中各个组内序号节点的ip地址等信息,将需进行散乱存放的节点的密钥进行获取,根据符合散乱序列方案,将其他节点的密钥存储在该节点上。
s5客户端节点读取数据时,服务端根据散乱方案及寻址方案,找到存储该客户端密钥的节点将密钥返回给客户端,然后解密读取该数据。
散乱网络中节点的密钥请求信息,包括节点id,节点ip,节点mac及身份证明信息,传输服务层根据寻址信息及散乱方案信息,提供密钥获取服务,客户端节点不对其密钥进行存储。
如图2所示,实现上述方法的装置包括:
网络设置模块,记录散乱网络当前状态及基础设置;
注册模块,用于接收客户端节点的注册信息,并以注册时间为索引存储注册信息;
分组划分模块,为新增分组生成对应该分组的分组信息及散乱方案序列;
寻址构建模块,为新注册客户端节点生成节点信息,更新寻址方案信息表;
散乱方案模块,根据新增节点加入后散乱网络的状态,执行不同的散乱方案;
密钥交换模块,根据散乱方案及寻址方案安全地交换密钥进行存储;
密钥请求模块,接收散乱网络中节点的密钥请求,根据散乱方案及寻址方案,提供密钥获取服务;
所述网络设置模块,包括服务节点设置模块,客户节点设置模块;
所述散乱方案模块,包括基础散乱模块,绑定散乱模块及绑定分离模块;
所述服务节点设置模块,记录当前服务层所有节点的状态信息及节点间的基础设置;
所述客户节点设置模块,记录当前散乱网络的状态信息及散乱网络的基础设置;
所述基础散乱模块,执行当前网络分组数只有一个的局部散乱方案;
所述绑定散乱模块,根据分组开辟时生成的方案,执行与前一分组的绑定散乱方案;
所述绑定分离模块,根据分组开辟时生成的方案,执行与前一分组的绑定分离方案。
通过本方法和装置,构建一个在不同客户端节点间散乱存储各自密钥的散乱网络,将密钥与持有该密钥的客户端进行有效分离,实现密钥的安全管理;以分组的方式来将散乱网络划分为若干散乱子网,使散乱网络可以同时具备随机性及可扩展性。即便密钥泄露,由于庞大的随机散乱方案及散乱网络,使得攻击者无法得知对应该密钥的结点身份,无法使用获取到的密钥解密获取数据,实现了低成本及安全目的的密钥管理方案。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。