一种分布式的动态密钥管理方法

文档序号:7625749阅读:319来源:国知局
专利名称:一种分布式的动态密钥管理方法
技术领域
本发明涉及网络安全技术,尤指一种分布式的动态密钥管理方法。
背景技术
移动自组织网络(MANET,Mobile Ad hoc Network)是一种特殊的,没有有线基础结构支持的,分布式移动网络;它是由一组带有无线收发器的移动终端组成的一个无基站、多跳步、临时的自治网络系统。MANET具有建立快捷、灵活,以及不受有线网络约束的特点。它主要应用在军事战场、抗洪抢险、无法布线等特殊或紧急的环境下,并且具有一般通信网络所没有的特点,比如网络的自组织性、动态的网络拓扑结构、有限的无线传输带宽、以及易受攻击等。由于MANET的应用广泛,它已成为无线通信领域的研究热点,但完善的安全机制是它应用的重要前提。
现代密码体制的设计思想是密码体制的安全取决于密钥。因此,密钥管理便成为网络环境中信息安全的关键内容,而对于具有特殊网络结构的分布式网络来说,显得尤为重要。
秘密共享是现代密码学的重要组成部分,也是门限密码学的基础,它为密钥的分散管理提供了一种较为理想的手段。由于分布式网络的特点,在分布式网络运行的过程中,分布式网络中的用户不能得到可信中心的有效支持,因此,采用秘密共享原则是一种比较合理的选择。在采用(t,n)门限秘密共享原则下,分布式网络中的网络密钥被分散成n个子密钥,并分别分配给分布式网络中n个用户,达到一定数量用户组成的集合,可以依靠集合中用户各自拥有的子密钥恢复网络密钥,这里组成集合所需要的用户数就是(t,n)门限秘密共享原则的门限值t。
以下介绍现有技术中一种使用(t,n)门限秘密共享原则实现分布式网络动态密钥管理的方法,该方法包括网络初始化阶段和子密钥更新阶段。
在网络初始化阶段,根据最初组成分布式网络的网络用户数,可信中心将网络密钥分散成与用户数相等的子密钥,并将各子密钥以及子密钥的验证值通过秘密方式传送给最初组成网络的用户。在下文的描述中,称获得子密钥的用户为合法用户;刚加入网络但还没有获得子密钥的用户为新用户。接收到可信中心分发的子密钥,各用户通过验证子密钥验证值的正确性,确定自身获得的子密钥的真实性。
在网络密钥恢复过程中,根据(t,n)门限秘密共享原则,在由t个合法用户组成的网络密钥恢复集合中,当网络中存在t个以上的合法用户参与恢复网络密钥时,这t个以上的合法用户则分别将自身的子密钥通过秘密方式传递给其它参与恢复网络密钥的、网络密钥恢复集合中所有其他的合法用户,当参与恢复网络密钥的各合法用户均获得了网络密钥恢复集合中所有其他合法用户的子密钥后,各合法用户即可通过拉格朗日插值公式恢复出网络密钥。这里,t即是秘密共享方式确定的门限值。
在子密钥更新阶段,每个合法用户均需为分布式网络中的其它合法用户分别计算子密钥更新因子和子密钥更新验证值。当合法用户在收到网络中其它t个以上合法用户为它生成的真实的子密钥更新因子,则可根据其中的t个更新因子计算得到自身新的子密钥。合法用户通过验证子密钥更新验证值的正确性确定子密钥更新因子的真实性。分布式网络中的合法用户在获得新子密钥后,同样按照原子密钥恢复网络密钥的方法恢复分布式网络中的网络密钥。
该技术方法的不足之处在于,在该方法中没有提供一种为新用户颁发子密钥的过程。同时,当初始组成分布式网络的用户数为n,设定的门限值为t时,可信中心在为初始组成分布式网络的用户分发子密钥时需进行t次的幂函数计算;在子密钥更新阶段,每个合法用户都需要计算n个子密钥更新因子以及进行t次幂指数运算;而且在验证新子密钥时,仍需要进行t次幂函数的计算。该方法不仅极大的增加了网络用户以及整个系统的计算开销,对整个分布式网络和网络中的用户造成了沉重的负担;而且在该方法中并没有包括对新加入网络用户的处理方法,无法使新加入网络的用户共享网络中的网络密钥,也不利于网络的进一步扩展。

发明内容
有鉴于此,本发明的主要目的在于提供一种分布式的动态密钥管理方法,能够实现为最初组成网络的用户分发子密钥、为新加入网络的用户颁发子密钥的动态密钥管理。
为达到上述目的,本发明的技术方案是这样实现的一种分布式的动态密钥管理方法,可信中心在网络初始化时,为最初组成网络的每个用户分发子密钥、子密钥生成基,并生成网络密钥;该方法还包括以下步骤A、确定子密钥颁发用户,加入网络的新用户向子密钥颁发用户请求颁发子密钥;B、子密钥颁发用户选择t个获得子密钥的用户组成子密钥颁发集合;C、子密钥颁发集合中的每个用户利用自各的子密钥,向新用户颁发子密钥主部分和子密钥次部分。
其中,步骤C中,所述子密钥颁发集合中的每个用户利用各自的子密钥向新用户颁发子密钥主部分,具体过程为C11、子密钥颁发集合中的第一用户利用自身子密钥计算的子密钥主生成子基为子密钥主生成更新基,并将子密钥主生成更新基传递给下一用户;子密钥颁发集合中的用户将利用自身子密钥计算得到的子密钥主生成子基和上一用户传来的子密钥主生成更新基相加更新子密钥主生成更新基,并将更新后的子密钥主生成更新基传递给下一用户,直至子密钥颁发集合的最后一个用户;最后一个用户更新得到的子密钥主生成更新基为子密钥主生成基;
C12、最后一个用户将子密钥主生成基和自身计算得到的子密钥干扰值相加得到子密钥主部分更新基,并将子密钥主部分更新基发送给上一用户;子密钥颁发集合中的用户将自身计算得到的子密钥干扰值和上一用户传来的子密钥主部分更新基相加更新子密钥主部分更新基,并将更新后的子密钥主部分更新基传递给子密钥颁发集合中的上一用户,直至第一用户;第一用户更新得到的子密钥主部分更新基为子密钥主部分基,并将子密钥主部分基传递给新用户;C13、新用户将根据生成的子密钥主部分基计算得到新用户的子密钥主部分。
其中,步骤C中,所述子密钥颁发集合中的每个用户利用各自的子密钥向新用户颁发子密钥次部分,具体过程为C2、子密钥颁发集合中的用户分别利用自身的子密钥次部分计算子密钥次部分生成基,并分别发送给新用户,新用户根据所有用户发送来的子密钥次部分生成基生成子密钥次部分。
其中,步骤C中,所述子密钥颁发集合中的每个用户利用各自的子密钥向新用户颁发子密钥次部分,具体过程为C2、子密钥颁发集合中的用户分别利用自身的子密钥次部分计算子密钥次部分生成基,并分别发送给新用户,新用户根据所有用户发送来的子密钥次部分生成基生成子密钥次部分。
其中,在执行步骤C之前,选择子密钥颁发用户次干扰值zi,步骤C11中,所述利用自身子密钥计算子密钥主生成子基的方法为(eiDi-zi)modMA,其中Di为子密钥主部分、zi为子密钥颁发用户次干扰值、MA为子密钥颁发集合中所有用户的子密钥生成基的积、ei=Mi·Mi′其中Mi=Πl∈A,l≠iml,]]>ml为集合中用户的子密钥生成基。
其中,在执行步骤C之前,选择子密钥颁发用户次干扰值zi、子密钥颁发用户主干扰值rt、新用户干扰值ci,步骤C12中,所述计算子密钥干扰值为zi+ci·mj+rt,其中zi为子密钥颁发用户次干扰值、rt为子密钥颁发用户主干扰值、ci为新用户干扰值、mj为集合中用户的子密钥生成基。
其中,在执行步骤C之前,选择子密钥颁发用户主干扰值ri,步骤C13中,所述根据生成的子密钥主部分基计算得到新用户的子密钥主部分为 其中Ej为子密钥主部分基、ri为子密钥颁发用户主干扰值。
其中,在初始化时任选大整数q,在执行步骤C之前,选择子密钥颁发用户主干扰值ri,步骤C2中,所述计算子密钥次部分生成基为(αiΠl=1,l≠ikj-li-l+ri)modq,]]>其中αi为子密钥颁发集合中用户的子密钥次部分、ri为子密钥颁发用户主干扰值。
其中,在初始化时任选的一阶数为t-1的多项式f( ),在执行步骤C之前,选择子密钥颁发用户主干扰值ri,步骤C2中,所述生成子密钥次部分为αj=f(j)=Σi=1i(αiΠl=1,l≠ikj-li-l+ri-ri)modq,]]>其中αi为子密钥颁发集合中用户的子密钥次部分、ri为子密钥颁发用户主干扰值。
另外,该方法进一步包括由t个获得子密钥的用户组成网络密钥恢复集合;网络密钥恢复集合中的各用户利用自身的子密钥恢复网络密钥。
其中,其特征在于,在执行完步骤A之后,执行步骤B之前,该方法进一步包括A1、子密钥颁发用户向网络内的所有获得子密钥的用户请求为新用户颁发子密钥;A2、收到请求并同意为新用户颁发子密钥的获得子密钥的用户,向子密钥颁发用户返回同意消息;A3、子密钥颁发用户判断是否收到了大于或等于t个获得子密钥的用户的同意参与消息,如果大于或等于,则执行步骤B;否则,返回步骤A3。
另外,该方法进一步包括由t个获得子密钥的用户组成网络密钥恢复集合;网络密钥恢复集合中的各用户利用自身的子密钥恢复网络密钥。
另外,该方法进一步包括获得子密钥的新用户生成子密钥主验证值和子密钥次验证值,并广播发送给网络中的所有用户。
另外,在初始化网络时,该方法进一步包括生成最初组成网络用户的子密钥主验证值和子密钥次验证值,以及网络密钥验证值,并广播发送给网络内的所有用户。
另外,该方法进一步包括以下步骤D1、子密钥更新用户向网络内其他用户发送子密钥更新请求;E1、子密钥更新用户选择t个拥有子密钥的用户组成子密钥更新集合;F1、子密钥更新集合利用集合中所有用户的子密钥主部分恢复网络密钥生成因子,任意选择整数作为网络密钥生成更新基,并将网络密钥生成更新基加上恢复的网络密钥生成因子得到网络密钥生成更新因子;利用生成的网络密钥生成更新因子计算得到网络中各用户的子密钥主部分;根据网络中用户的序号获得各用户的子密钥更新部分。
其中,步骤F1中,所述利用集合中所有用户的子密钥主部分恢复网络密钥生成因子为E=(D1M1M1′+D2M2M2′+…+DtMtM′)mod Q,其中Mt=Πj=1,j≠ttmj]]>Q=Πi=1tmi,]]>mj和mi为集合中用户的子密钥生成基,Di为子密钥颁发集合中用户的子密钥主部分。
其中,步骤F1中,所述利用生成的网络密钥生成更新因子计算得到网络中各用户的子密钥主部分为E′modmi,其中E′网络密钥生成更新因子、mi为集合中用户的子密钥生成基。
其中,在网络初始化阶段任选一阶数为t-1的多项式f()和大整数q,步骤F1中,所述根据网络中用户的序号获得各用户的子密钥更新部分为f(i)mod q。
另外,该方法进一步包括由t个网络中更新过子密钥的用户组成网络密钥恢复集合,利用各用户的子密钥次部分计算得到网络密钥基,利用子密钥更新部分计算得到网络密钥生成更新基,利用子密钥主部分计算得到网络密钥生成更新因子,利用网络密钥基、网络密钥生成更新基以及网络密钥生成更新因子恢复网络密钥。
另外,该方法进一步包括在初始化网络时,设置大于1个网络密钥,并对由t个获得子密钥的用户组成的组合进行编号;在每个组合中针对每个网络密钥,根据组合中用户的子密钥计算该组合的多密钥因子;在每个组合中针对每个网络密钥,计算组合多密钥基;将所有计算得到的多密钥基下发各网络用户;执行以下步骤G、多密钥恢复用户向网络中其它用户请求恢复多密钥;H、多密钥恢复用户选择t个获得子密钥的用户组成多密钥恢复组合;I、多密钥恢复组合中的用户各自分别计算多密钥生成因子,并将自身生成的多密钥生成因子发送给多密钥恢复组合中的所有用户;多密钥恢复组合中的各用户利用组合中所有用户生成的多密钥生成因子计算得到多密钥因子,查找获得与当前组合、以及要恢复的网络密钥对应的多密钥基,根据多密钥基和多密钥因子恢复网络密钥。
另外,该方法进一步包括在初始化网络时,设置大于1个网络密钥,并对由t个获得子密钥的用户组成的组合进行编号;在每个组合中针对每个网络密钥,根据组合中用户的子密钥计算该组合的多密钥因子;在每个组合中针对每个网络密钥,计算组合多密钥基;将所有计算得到的多密钥基下发各网络用户;执行以下步骤D2、多密钥恢复用户向网络中其它用户请求恢复多密钥;E2、多密钥恢复用户选择t个获得子密钥的用户组成多密钥恢复组合;F2、多密钥恢复组合中的用户各自分别计算多密钥生成因子,并将自身生成的多密钥生成因子发送给多密钥恢复组合中的所有用户;多密钥恢复组合中的各用户利用组合中所有用户生成的多密钥生成因子计算得到多密钥因子,查找获得与当前组合、以及要恢复的网络密钥对应的多密钥基,根据多密钥基和多密钥因子恢复网络密钥。
其中,所述计算得到多密钥生成因子为Dl2MlMl′+αli+1,其中Ml=Πk∈Aj,k≠lmk,]]>Ml·Ml′=1modml,mk和ml为集合中用户的子密钥生成基,Dl为子密钥主部分,αl为子密钥次部分。
其中,在步骤F2中,所述计算多密钥因子为 其中,DSl为多密钥生成因子,M为多密钥组合中所有用户的子密钥生成基的积。
其中,在恢复多密钥时任选一单向函数f( ),所述计算多密钥基为bi,j=si-f(Hi,j),其中si为网络密钥、Hi,j为多密钥因子。
其中,在恢复多密钥时任选一单向函数f( ),所述恢复网络密钥为si=bi,j+f(Hi,j),其中bi,j为多密钥因子、Hi,j为多密钥因子。
本发明所提供的一种分布式的动态密钥管理方法,采用(t,n)门限秘密共享原则实现了在分布式网络中为最初组成网络的用户分发子密钥,以及通过往返逐跳式的方法为新加入网络的用户颁发子密钥,以及为网络中所有合法用户更新子密钥的过程,还提出了多密钥共享的解决方法。
不仅如此,相对于现有技术所提的方法,降低了实现动态密钥管理方法的计算量。在为最初组成分布式网络的用户分发子密钥的过程中,由于使用了孙子定理,大量的模运算使可信中心的子密钥分发十分快捷,同时,尽管可信中心计算2n个子密钥的验证值,但每个合法用户在验证子密钥的时候只需计算2次幂指数,减少了分布式网络中用户的计算量;在为新加入网络的用户颁发子密钥的过程中,参与颁发子密钥的合法用户由于只需要使用模运算和多项式运算,因此运算量小;网络密钥恢复阶段,由于使用了孙子定理,使恢复网络密钥的计算量大幅度降低。
本发明所提的方法在降低计算量的同时,提高了动态密钥管理的安全性。由于在本发明中,每个用户采用的子密钥包括两个部分子密钥主部分和子密钥次部分,提高了攻击者获取子密钥的难度。并且,不论是在可信中为最初组成网络的用户分发子密钥或子密钥颁发集合为新用户颁发子密钥的过程中,均公布了子密钥的验证值,这样使得用户在接受子密钥的时候可以对子密钥的真实性进行验证,防止子密钥在传输的过程被攻击者篡改,保证了子密钥的安全性。而且,在子密钥更新过程中,虽然子密钥的更新是由一个合法用户完成,并且在更新的过程中恢复出了网络密钥生成因子E,但根据网络密钥的恢复方法D=Emodp,由于该合法用户在更新的过程中没有恢复出网络密钥基p,因此无法根据D=Emodp恢复网络密钥,保证了网络密钥D的安全性。


图1为子密钥颁发集合为新用户颁发子密钥的流程图;图2为子密钥更新流程图。
具体实施例方式
本发明的核心思想是根据(t,n)门限秘密共享原则,将网络密钥拆分成多个子密钥并分别由网络中的各个用户保存,由大于或等于t个得到子密钥的合法用户组成子密钥恢复集合,子密钥恢复集合根据集合中各合法用户的子密钥即可恢复网络密钥;当有新用户加入网络时,同样根据(t,n)门限秘密共享原则,由大于或等于t个合法用户组成的子密钥颁发集合为新用户颁发子密钥。
在本发明具体实施例中介绍的网络密钥管理方法除了能够实现为最初组成网络的用户分发子密钥,为新加入网络的用户颁发子密钥,还能够实现为网络中所有获得子密钥的用户更新子密钥,以及获得子密钥的用户通过获得的子密钥实现多密钥共享。
现以MANET为例介绍本发明的具体实施过程,在下文的描述将MANET简称为网络。
在最初建立MANET时,网络中存在一个可信中心和最初组成网络的n个用户,这n个用户分别用序号i进行标示,在以下描述中用Pi表示获得子密钥的合法用户,其中i=1,…,n。由可信中心在最初建立MANET时,设定(t,n)门限秘密共享原则中门限值t,并将网络密钥进行拆分并分发给各用户。将网络密钥拆分并分发给各最初组成网络的用户的具体过程如下首先,可信中心为最初组成网络的用户确定其在即将运行的MANET中的唯一的序号。
接着,可信中心生成密钥管理中所需的参数包括任选一个大整数q,并得到有限域GF(q)上阶数为q-1的生成元g;选择n个子密钥生成基m1,m2,…,mn,这n个子密钥生成基m1,m2,…,mn均为整数,且满足1<m1<m2<…<mn两两互素、Πi=1tmi>Πi=tt-1mn-i+1;]]>令M=Πi=1tmi;]]>选择网络密钥基p,p是一个与m1,m2,…,mn都互素的整数;选择网络密钥D,并且D<p;选择一个随机数r,满足M>D+r·p>Πi=1t-1mn-i+1,]]>同时令网络密钥生成因子E=D+r·p;任选一阶数为t-1的多项式f(x)=at-1xt-1+…+a1x+p,其中a1∈GF(q),1≤i≤t-1。
然后,可信中心根据最初组成网络的用户的序号分别为各用户计算子密钥,子密钥包括两个部分子密钥主部分和子密钥次部分。其中,子密钥主部分为Di=Emodmi,i=1,…,n;子密钥次部分为αi=f(i)modq,i=1,…,n。可信中心将计算得到的子密钥,以及为用户生成的公私密钥对,通过安全方式分别发送给各个用户;并将最初组成网络各用户的子密钥生成基以及各用户序号向所有最初组成网络的用户公布。这里所指的安全方式可以是通过加密或专用信道等方式进行传送。
同时,可信中心分别计算各用户子密钥各部分的验证值,包括,子密钥主验证值ui=Di2gDimodq,]]>子密钥次验证值vi=αi2gαimodq,]]>其中i=1,…,n;同时计算网络密钥验证值u0=gDp2mod q;并将ui、vi、u0公布给最初组成网络的所布用户。
各最初组成网络的用户通过安全方式获得可信中心为自身分配的序号、分发的子密钥,和生成的公、私密钥对;并通过可信中心公布的验证值对自身收到的子密钥进行验证。用户用自身收到的子密钥按照与可信中心同样的方法,分别计算子密钥主验证值和子密钥次验证值,判断计算出的子密钥主验证值和子密钥次验证值是否和收到的子密钥主验证值和子密钥次验证值相等,如果相等,则确定子密钥的真实性;否则,请求可信中心重发子密钥。在网络初始化时,最初组成网络的各用户还需要保存可信中心公布的、网络中所有用户的子密钥生成基,以及记录各用户对应的密钥。
至此,网络初始化过程完成。
各网络用户在收到可信中心为它们分发的子密钥后,则成为合法用户,即可离开可信中心的支持,组成动态的、移动的MANET。在组成MANET之后,各合法用户分别向整个网络广播自身的公钥,MANET网络中的各合法用户在接收并保存其他用户广播的公钥。
当MANET正常运行后,有新用户需要加入网络、共享网络密钥时,由于此时网络中已经没有可信中心的支持,为了实现动态密钥管理,本发明还提供了一种为新用户颁发子密钥的方法。为新用户颁发子密钥的过程如图1所示,具体步骤如下步骤101新用户向一合法用户Pa提出加入网络的请求,同时向网络中所有的合法用户广播自身的公钥。这里,这一合法用户Pa可以是任意的、或离新用户跳数最少的、或处理能力较强的合法用户,在此,用下标a标示这一为新用户启动子密钥颁发过程的特定合法用户。其中,所述的用户公钥为用户在加入网络之前从可信中心领取,或通过其它途径分配得到的。
步骤102Pa根据自身存储的网络中其它合法用户的序号为新用户生成一个新序号j,这个新序号可以唯一标示该新用户;同时根据自身存储的所有合法用户的子密钥生成基mi,为新用户选择子密钥生成基mj。接着,Pa向网络中的其它合法用户发送请求消息,携带该新用户的序号以及为新用户选择的子密钥生成基mj,请求联合为该新用户颁发子密钥;并向新用户返回为新用户生成的序号、子密钥生成基、以及网络中其他用户的公钥。此时,获得新序号的新用户可表示为Pj。
其中,为了保证算法的可用性,Pa为新用户选择子密钥生成基mj的方法为mj为m1<mj<mn并且满足Πi=1tmi>Πi=tt-1mn-i+2]]>的整;或者如果n>2t-1,可选取mi<mj<mn-i-2或者如果n≤2t-1,则可以选择mj较接近mt的值,这里t为(t,n)门限的门限值。
步骤103网络中各合法用户在收到Pa的请求消息后,如果愿意为新用户颁发子密钥,则向Pa返回同意参加消息;否则,不返回信息。根据(t,n)门限秘密共享原则,Pa判断是否收到大于或等于t个合法用户同意参加为新用户颁发子密钥的消息,如果大于或等于,则进入步骤104;否则,返回步骤103,等待其它用户返回同意参加消息,并继续判断是否收到大于或等于t个合法用户同意参加为新用户颁发子密钥的消息。
步骤104Pa在所有同意为该新用户颁发子密钥的合法用户中任意选择t个合法用户组成子密钥颁发集合,用集合A表示;并对集合A中的合法用户依次进行排序,用P1,P2,...,Pt进行表示,称集合中的合法用户为子密钥颁发用户。排序的方法可以根据各子密钥颁发用户离新用户的远近,也就是跳数的多少进行排序。在组成子密钥颁发集合后,即可以采用往返逐跳式的方法为新用户生成子密钥。
子密钥颁发集合在为新用户颁发子密钥的过程中,为了不泄漏网络的机密信息网络密钥生成因子E,采用不同的方法生成子密钥主部分和子密钥次部分。子密钥颁发集合在为新用户生成子密钥主部分D时采用往返逐跳式的方法,往返逐跳式的方法具体包括三个过程第一个过程为前向过程,是按照子密钥颁发集合中的次序从P1经过P2,P3,...直到Pt,计算出子密钥主生成基B;第二个过程为反向过程,是当Pt计算出子密钥主生成基B后,又依次经过Pt,Pt-1,...,P1根据B计算得出子密钥主部分基Ej;第三个过程为生成过程,是由新用户Pj根据子密钥主部分基Ej计算得到子密钥主部分。
在子密钥颁发集合为新用户Pj颁发子密钥主部分的过程中,各个子密钥颁发用户需使用到ri、zi、ci,其中ri表示新用户生成的t个整数r1,r2,...,rt,并用子密钥颁发用户各自的公钥加密后,发送给各子密钥颁发用户的子密钥颁发用户主干扰值;zi为子密钥颁发用户次干扰值,是子密钥颁发用户自身生成并使用的小整数,这里,所谓的小整数为zi<mi,即子密钥颁发用户的子密钥颁发用户次干扰值zi小于自身的子密钥生成基mi;ci为新用户干扰值,是子密钥颁发用户自身生成并使用的随机整数。
前向过程为子密钥颁发集合中序号为1的子密钥颁发用户P1,也可称为第一用户,计算自身子密钥主生成子基b1=(e1D1-z1)mod MA,得到子密钥主生成更新基ZS1=b1,其中,MA=Πi∈Ami,]]>ei=Mi·Mi′,Mi=Πl∈A,l≠iml,]]>Mi·Mi′=1modmj;然后将子密钥主生成更新基ZS1传递给它的下一用户P2,P2按照与P1相同的方法计算自身的子密钥主生成子基b2,更新子密钥主生成更新基ZS1为ZS2=ZS1+b2,并将更新得到的ZS2传递给它的下一用户P3;P3按照相同的方法计算自身的子密钥主生成子基b3,更新子密钥主生成更新基ZS2为ZS3=ZS2+b3,并将更新得到的ZS3传递给它的下一用户,直至第t个子密钥颁发用户Pt,第t个子密钥颁发用户Pt也可称为最后一个用户;Pt计算自身的子密钥主生成子基bt,更新从上一个用户收到得子密钥主生成更新基ZSt-1为ZSt=ZSt-1+bt得到子密钥主生成基B=ZSt=Σt=ltbimodMA.]]>当Pt得到子密钥主生成基B时,则进入往返逐跳式的后向过程。
后向过程为Pt利用自身的子密钥颁发用户主干扰值rt、子密钥颁发用户次干扰值zt、以及新用户干扰值ct计算得到自身的子密钥干扰值ZG,为zt+ct·mj+rt,将计算得到的子密钥干扰值ZGt加上子密钥主生成基得到子密钥主部分更新基ZBt=B+zt+ct·mj+rt,将计算得到的子密钥主部分更新基ZBt传递给它的下一用户Pt-1;Pt-1按照与Pt相同的方法根据自身的子密钥颁发用户主干扰值rt-1、子密钥颁发用户次干扰值zt-1、以及新用户干扰值ct-1计算得到的自身的子密钥干扰值ZGt-1=zt-1+ct-1·mj+rt-1,并利用于密钥干扰值ZGt-1更新子密钥主部分更新基ZBt为ZBt-1=ZBt+ZGt-1,并将更新后的子密钥主部分更新基ZBt-1传递给它的下一个用户Pt-2;下一个用户Pt-2按照相同的方法更新子密钥主部分更新基,并将子密钥主部分更新基传递给它的下一个用户,直至P1;P1收到P2传来的子密钥主部分更新基ZB2,按照同样的方法更新子密钥主部分更新基ZB2为ZB1=ZB2+ZG1,得到子密钥主部分基EJ=ZB1=B+Σi=1t(Zi+Ci·mj+ri)=E+Σi=1t(ci·mj+ri).]]>在计算得到子密钥主部分基Ej之后,子密钥颁发用户P1将子密钥主部分基Ej发送新用户Pi。
生成过程为由于子密钥颁发集合A中子密钥颁发用户所使用的ri是由新用户Pj生成的,因此新用户通过计算(Ej-Σi=1tri)=Emodmj=Dj]]>即可得到子密钥主部分。
至此,子密钥颁发集合通过往返逐跳式的方法完成了为新用户颁发子密钥主部分的过程。
在子密钥颁发集合为新用户颁发子密钥主部分的同时,还可以为新用户颁发子密钥次部分。子密钥颁发集合为新用户颁发子密钥次部分的具体过程为子密钥颁发集合中的每个成员分别计算子密钥次部分生成基CBi=(αiΠl=1,l≠ikj-li-l+ri)modq,]]>其中(l∈A),并发送给新用户Pj。新用户Pj对于每一个子密钥颁发用户发送来的子密钥次部分生成基,都用自身存储的该子密钥颁发用户的主干扰值去除ri对子密钥次部分生成基的影响,得到子密钥次部分基,具体计算子密钥次部分基的方法为CBi-ri=(αiΠl=1,l≠ikj-li-l+ri-ri)modq=αiΠl=1,l≠ikj-li-lmodq.]]>新用户将所有接收到的子密钥颁发用户发送的子密钥次部分生成基计算得到子密钥次部分基后,则根据计算得到的所有子密钥次部分基计算子密钥次部分为αj=f(j)=Σi=1tαiΠl=A,l≠ij-li-lmodq.]]>至此,子密钥颁发集合完成了为新用户颁发子密钥次部分的过程。
子密钥颁发集合通过为新用户Pj分别颁发子密钥主部分和子密钥次部分,完成为新加入网络用户颁发子密钥的过程。获得子密钥后的新用户,计算并广播它的子密钥主验证值uJ=DJ2gDJmodq]]>和子密钥次验证值νi=αj2gαjmodq,]]>并将子密钥的主验证值和次验证值广播发送给网络中的所有用户。网络中的用户可以在需要时,使用子密钥的验证值对子密钥进行验证。
至此,子密钥颁发集合为新用户颁发子密钥的过程结束。
在本发明中获得子密钥的合法用户,包括获得子密钥的新用户,通过采用(t,n)门限秘密共享原则恢复网络密钥。恢复网络密钥的过程为由t个或t个以上希望恢复网络密钥的合法用户组成一个网络密钥恢复集合,在此集合中,各合法用户共享彼此的子密钥,每个合法用户在收集到大于或等于t个子密钥时,选择其中的t个,利用被选择的t个子密钥恢复网络密钥。
合法用户共享子密钥的方法是分别用其他合法用户的公钥对自身的子密钥进行加密,然后发送给对应的用户。对于接收到子密钥的合法用户,该用户则用自身的私钥解密得到其中的子密钥。
根据(t,n)门限秘密共享原则,网络密钥恢复集合中的合法用户在收到大于或等于t个其他合法用户发送来的子密钥后,即可任意选择其中的t个子密钥用来恢复网络密钥。网络密钥恢复集合中的各合法用户恢复网络密钥的过程为首先利用所有接收到的子密钥中的子密钥次部分根据以下公式恢复网络密钥基p=f(0)=Σi=1tαiΠj=1,j≠it-ji-jmodq;]]>然后利用子密钥主部分根据同余式组得到Di=Emodmi,其中1≤i≤t,以及孙子定理,计算网络密钥生成因子为E=(D1M1M1′+D2M2M2′+…+DtMtMt′)modQ,其中,Mi=ΠJ=1,J≠limj,]]>MiMi′=1modmi,Q=Πi=1tmi;]]>最后,根据网络密钥基和网络密钥生成因子,恢复得到网络密钥为D=Emodp。
网络密钥恢复集合中的合法用户在恢复出网络密钥之后,可以通过以下两种方法对网络密钥进行正确性的验证第一种方法,各合法用户可以利用在初始化阶段产生的网络密钥验证值,对网络密钥进行验证。具体方法是利用恢复的网络密钥D和网络密钥基p计算gDp2modq的值,判断计算得到的值与网络密钥验证值u0是否相等,如果相等,则恢复获得的网络密钥D正确;否则,恢复获得的网络密钥D不正确。
第二种方法,由网络密钥恢复集合中的任一个合法用户利用恢复出的网络密钥加密一任意预知信息,并将加密后的信息进行广播,网络密钥恢复集合中的各合法用户对加密后的信息进行解密,判断解密得到的信息是否与预知的信息相同,如果相同则自身恢复的网络密钥正确;如果不相同则自身恢复的网络密钥不正确性。该信息可以是网络中用户所共知的信息;也可以是如下形式(IDi,hash(D1,…,Dt)),其中IDi为进行加密信息操作的合法用户的身份标识,D1,…,Dt是网络中t个合法用户的子密钥主部分。
在网络正常运行的过程中,由于网络用户的自由移动而超出了本网络可以联系的范围,即认为该网络用户已离开网络。当网络中离开网络的用户超过一定数量时,如超过门限值t时,则应通过更新网络中所有用户的子密钥的方法来保护网络密钥的安全性。
当需要更新网络中所有合法用户子密钥的时候,由网络中的一特定合法用户启动更新子密钥的过程,将该特定的合法用户表示为Pb。该合法用户Pb可以是具有较强的计算能力、或较大的带宽,或专门负责子密钥更新的合法用户,在此称为该合法用户Pb为子密钥更新用户。合法用户Pb时刻监视着网络离开网络合法用户的数量,当离开网络合法用户的数量大于或等于t时,启动网络中所有合法用户的子密钥更新过程,具体过程如图2所示。
步骤201子密钥更新用户Pb广播发送子密钥更新请求消息。
步骤202网络中的合法用户在收到子密钥更新请求消息后,如果同意参与子密钥更新过程,则向子密钥更新用户返回同意参与消息,该同意参与消息中携带有同意参与的合法用户的子密钥主部分Di,如果不同意,则不响应子密钥更新用户发送的子密钥更新请求消息。
步骤203子密钥更新用户Pb判断是否收到了大于或等于t个合法用户返回同意参与子密钥更新消息,如果是,进入步骤204;如果不是,则返回步骤203,继续等待合法用户返回同意消息,直到存在大于或等于t个合法用户返回同意参与子密钥更新的消息。
步骤204子密钥更新用户Pb首先在所有返回同意参与子密钥更新消息的合法用户中,任意选择其中的t个合法用户,并利用这t个合法用户的子密钥主部分根据同余式组得到Di=Emodmi其中1≤i≤t、以及孙子定理,计算得到网络密钥生成因子E=(D1M1M1′+D2M2M2′+…+DtMtMt′)modQ, 其中Mi=Πj=1,j≠itmj,]]>MiMi′=1modmi,Q=Πi=1tmi;]]>然后,子密钥更新用户Pb任取一个值P0为网络密钥生成更新基,根据网络密钥生成更新基P0得到网络密钥生成更新因子E′=E+P0,其中E为网络密钥生成因子。接着,子密钥更新用户Pb利用网络密钥生成更新因子E′和网络中各合法用户的子密钥生成基,为各合法用户生成新的子密钥主部分Di′=E′modmi;以及子密钥更新部分βi=f(i)modq,其中f( )为子密钥更新用户任选的一个t-1阶的多项式,其中f(0)=P0。在子密钥更新用户为网络中所有的合法用户更新完子密钥之后,分别用各合法用户的公钥加密更新后的子密钥主部分以及子密钥更新部分,并发送给各合法用户。在整个更新过程中,子密钥更新用户更新了子密钥的主部分,并增加了子密钥更新部分,更新后的子密钥包括子密钥主部分Di′、子密钥次部分αi以及子密钥更新部分βi。
使用更新后的子密钥恢复网络秘密的过程与没有更新子密钥时恢复网络密钥的过程基本相同,都是需要由t个或t个以上的合法用户共同组成网络密钥恢复集合,并且在此网络密钥恢复集合中,各合法用户通过共享彼此的子密钥恢复网络密钥;所不同的是利用没有更新子密钥前的恢复网络密钥的方法计算得到网络密钥生成更新因子E′,然后减去利用子密钥更新部分βi计算得到的网络密钥生成更新基p0得到网络密钥生成因子E。具体过程如下由t个或t个以上的合法用户组成网络密钥恢复集合,网络密钥恢复集合中的合法用户共享彼此的子密钥。网络密钥恢复集合中的任一合法用户只需选择其中t个合法用户的子密钥,利用t个合法用户的子密钥次部分计算得到网络密钥基p=f(0)=Σi=1tαiΠj=1,j≠it-ji-jmodq,]]>以及利用子密钥更新部分计算得到网络密钥生成更新基p0=f(0)=Σi=1tβiΠj=1,j≠it-ji-jmodq;]]>然后利用更新后的子密钥主部分根据孙子定理计算得到网络密钥生成更新因子E′=(D1′M1M1′+D2′M2M2′+…+Dt′MtMt′)modQ,其中Mi=Πj=1,j≠iimJ,]]>MiMi′=1modmi,Q=Πi=1imi;]]>在计算得到网络密钥生成更新因子E′和网络密钥生成更新基P0后,即可恢复网络密钥D=(E′-p0)modp=Emodp。
至此,更新网络中所有合法用户子密钥以及利用子密钥恢复网络秘密的过程结束。
本发明所提方法,不仅能实现网络中n个用户共享一个网络密钥的功能,同时也能够实现网络中n个用户共享多个网络密钥的功能。在多密钥共享方法中,本发明同样采用(t,n)门限秘密共享原则恢复网络密钥,即由网络中大于或等于t个合法用户的共同参与恢复网络密钥。多密钥共享方法的具体过程如下在网络初始化时,首先由可信中心确定多个网络密钥,假设网络密钥的个数为m个,分别用s1,...,sm进行表示。在网络中,所有t个合法用户的组合一共是Cnt个,可信中心为每一个组合进行从1到Cnt的编号,并记录组合中各合法用户的序号。这里,由于每个组合都可以恢复所有的m个网络密钥,因此称这每个组合为多密钥组合。对于每个多密钥组合,可信中心针对每个网络密钥si计算多密钥因子Hi,j=Σl∈AJ(Dl2MlMl′+αli+t)modM,]]>其中i表示网络密钥的序号,Aj表示序号为j的多密钥组合,t为门限值,下标l表示多密钥组合Aj中的合法用户;其中Ml=Πk∈Aj,k≠lmk,]]>Ml·Ml′=1modml,M=Πk∈Aimk,]]>Dl和αl表示为多密钥因子合Aj中的合法用户的子密钥。可信中心根据每个多密钥组合中的每个网络密钥si以及对应的多密钥因子Hi,j,计算多密钥基bi,j=si-f(Hi,j),其中f( )为单向值,并将生成多密钥基bi,j的网络密钥si和多密钥因子Hi,j与多密钥基bi,j对应起来。当可信中心完成了每个网络密钥si在每个多密钥组合中多密钥基的计算之后,则将所有计算得到的多密钥基bi,j以及与网络密钥si和多密钥因子Hi,j的对应关系、以及组合的序号和对应的成员序号发送给网络中的所有合法用户。
在多密钥共享的方法下,恢复网络密钥的具体过程为当网络中一合法用户采用多密钥共享的方法恢复网络密钥时,在此称为多密钥恢复,并假设该用户为Pc,此时则称Pc为多密钥恢复用户,多密钥恢复用户首先确定要恢复的网络密钥si然后在网络中发起恢复网络密钥si的请求。网络中其他合法用户在收到Pc发送的恢复网络密钥si的请求时,在同意共同参与恢复网络密钥si的情况下,向Pc返回同意参加的消息。Pc在收到大于或等于t-1个合法用户返回的同意消息后,在其中任意选择t-1个,并将这t-1个合法用户加上自身一共的t个用户组成的多密钥组合的序号。在确定多密钥组合的序号之后,则将该序号广播发送给多密钥组合中的其他t-1个合法用户。多密钥组合中的其他用户在确定的多密钥组合的序号以及恢复密钥的序号之后,则开始计算自身的多密钥生成因子DSl=Dl2MlMl′+αli+t,]]>并将自身计算得到的多密钥因子发送给多密钥组合中的其他合法用户。多密钥组合中的用户则根据所有接收到的多密钥生成因子计算多密钥因子为Hi,j=Σl∈AJDSlmodM=Σl∈Aj(Dl2MlMl′+αli+t)modM.]]>并且根据si查找得到可信中心在初始化阶段生成的多密钥基bi,j,根据多密钥基bi,j和多密钥因子Hi,j计算si=bi,j+f(Hi,j)恢复si。
在为新用户颁发子密钥的子密钥颁发用户Pa、在子密钥更新过程中的子密钥更新用户Pb、在多密钥共享中恢复网络密钥的多密钥恢复用户Pc可以是不同或相同的合法用户。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种分布式的动态密钥管理方法,其特征在于,可信中心在网络初始化时,为最初组成网络的每个用户分发子密钥、子密钥生成基,并生成网络密钥;该方法还包括以下步骤A、确定子密钥颁发用户,加入网络的新用户向子密钥颁发用户请求颁发子密钥;B、子密钥颁发用户选择t个获得子密钥的用户组成子密钥颁发集合;C、子密钥颁发集合中的每个用户利用自各的子密钥,向新用户颁发子密钥主部分和子密钥次部分。
2.根据权利要求1所述的方法,其特征在于,步骤C中,所述子密钥颁发集合中的每个用户利用各自的子密钥向新用户颁发子密钥主部分,具体过程为C11、子密钥颁发集合中的第一用户利用自身子密钥计算的子密钥主生成子基为子密钥主生成更新基,并将子密钥主生成更新基传递给下一用户;子密钥颁发集合中的用户将利用自身子密钥计算得到的子密钥主生成子基和上一用户传来的子密钥主生成更新基相加更新子密钥主生成更新基,并将更新后的子密钥主生成更新基传递给下一用户,直至子密钥颁发集合的最后一个用户;最后一个用户更新得到的子密钥主生成更新基为子密钥主生成基;C12、最后一个用户将子密钥主生成基和自身计算得到的子密钥干扰值相加得到子密钥主部分更新基,并将子密钥主部分更新基发送给上一用户;子密钥颁发集合中的用户将自身计算得到的子密钥干扰值和上一用户传来的子密钥主部分更新基相加更新子密钥主部分更新基,并将更新后的子密钥主部分更新基传递给子密钥颁发集合中的上一用户,直至第一用户;第一用户更新得到的子密钥主部分更新基为子密钥主部分基,并将子密钥主部分基传递给新用户;C13、新用户将根据生成的子密钥主部分基计算得到新用户的子密钥主部分。
3.根据权利要求1所述的方法,其特征在于,步骤C中,所述子密钥颁发集合中的每个用户利用各自的子密钥向新用户颁发子密钥次部分,具体过程为C2、子密钥颁发集合中的用户分别利用自身的子密钥次部分计算子密钥次部分生成基,并分别发送给新用户,新用户根据所有用户发送来的子密钥次部分生成基生成子密钥次部分。
4.根据权利要求2所述的方法,其特征在于,步骤C中,所述子密钥颁发集合中的每个用户利用各自的子密钥向新用户颁发子密钥次部分,具体过程为C2、子密钥颁发集合中的用户分别利用自身的子密钥次部分计算子密钥次部分生成基,并分别发送给新用户,新用户根据所有用户发送来的子密钥次部分生成基生成子密钥次部分。
5.根据权利要求2或4所述的方法,其特征在于,在执行步骤C之前,选择子密钥颁发用户次干扰值zi,步骤C11中,所述利用自身子密钥计算子密钥主生成子基的方法为(eiDi-zi)mod MA,其中Di为子密钥主部分、zi为子密钥颁发用户次干扰值、MA为子密钥颁发集合中所有用户的子密钥生成基的积、ei=Mi·Mi′其中Mi=Πl∈A,l≠iml,]]>ml为集合中用户的子密钥生成基。
6.根据权利要求2或4所述的方法,其特征在于,在执行步骤C之前,选择子密钥颁发用户次干扰值zi、子密钥颁发用户主干扰值ri、新用户干扰值ci,步骤C12中,所述计算子密钥干扰值为zi+ci·mj+ri,其中zi为子密钥颁发用户次干扰值、ri为子密钥颁发用户主干扰值、ci为新用户干扰值、mj为集合中用户的子密钥生成基。
7.根据权利要求2或4所述的方法,其特征在于,在执行步骤C之前,选择子密钥颁发用户主干扰值ri,步骤C13中,所述根据生成的子密钥主部分基计算得到新用户的子密钥主部分为 其中Ej为子密钥主部分基、ri为子密钥颁发用户主干扰值。
8.根据权利要求3或4所述的方法,其特征在于,在初始化时任选大整数q,在执行步骤C之前,选择子密钥颁发用户主干扰值ri,步骤C2中,所述计算子密钥次部分生成基为(αiΠl=1,l≠ikj-li-l+ri)modq,]]>其中αi为子密钥颁发集合中用户的子密钥次部分、ri为子密钥颁发用户主干扰值。
9.根据权利要求3或4所述的方法,其特征在于,在初始化时任选的一阶数为t-1的多项式f(),在执行步骤C之前,选择子密钥颁发用户主干扰值ri,步骤C2中,所述生成子密钥次部分为αj=f(j)=Σi=1t(αiΣl=1,l≠i1kj-li-l+ri-ri)modq,]]>其中αj为子密钥颁发集合中用户的子密钥次部分、ri为子密钥颁发用户主干扰值。
10.根据权利要求1、2、3或4所述的方法,其特征在于,该方法进一步包括由t个获得子密钥的用户组成网络密钥恢复集合;网络密钥恢复集合中的各用户利用自身的子密钥恢复网络密钥。
11.根据权利要求1、2、3或4所述的方法,其特征在于,在执行完步骤A之后,执行步骤B之前,该方法进一步包括A1、子密钥颁发用户向网络内的所有获得子密钥的用户请求为新用户颁发子密钥;A2、收到请求并同意为新用户颁发子密钥的获得子密钥的用户,向子密钥颁发用户返回同意消息;A3、子密钥颁发用户判断是否收到了大于或等于t个获得子密钥的用户的同意参与消息,如果大于或等于,则执行步骤B;否则,返回步骤A3。
12.根据权利要求11所述的方法,其特征在于,该方法进一步包括由t个获得子密钥的用户组成网络密钥恢复集合;网络密钥恢复集合中的各用户利用自身的子密钥恢复网络密钥。
13.根据权利要求1、2、3或4所述的方法,其特征在于,该方法进一步包括获得子密钥的新用户生成子密钥主验证值和子密钥次验证值,并广播发送给网络中的所有用户。
14.根据权利要求1所述的方法,其特征在于,在初始化网络时,该方法进一步包括生成最初组成网络用户的子密钥主验证值和子密钥次验证值,以及网络密钥验证值,并广播发送给网络内的所有用户。
15.根据权利要求1、2、3或4所述的方法,其特征在于,该方法进一步包括以下步骤D1、子密钥更新用户向网络内其他用户发送子密钥更新请求;E1、子密钥更新用户选择t个拥有子密钥的用户组成子密钥更新集合;F1、子密钥更新集合利用集合中所有用户的子密钥主部分恢复网络密钥生成因子,任意选择整数作为网络密钥生成更新基,并将网络密钥生成更新基加上恢复的网络密钥生成因子得到网络密钥生成更新因子;利用生成的网络密钥生成更新因子计算得到网络中各用户的子密钥主部分;根据网络中用户的序号获得各用户的子密钥更新部分。
16.根据权利要求15所述的方法,其特征在于,步骤F1中,所述利用集合中所有用户的子密钥主部分恢复网络密钥生成因子为E=(D1M1M1′+D2M2M2′+…+DtMtMt′)modQ,其中Ml=Πj=1,j≠ilmj,]]>Q=Πi=1lmi,]]>mj和mi为集合中用户的子密钥生成基,Di为子密钥颁发集合中用户的子密钥主部分。
17.根据权利要求15所述的方法,其特征在于,步骤F1中,所述利用生成的网络密钥生成更新因子计算得到网络中各用户的子密钥主部分为E′modmi,其中E′网络密钥生成更新因子、mi为集合中用户的子密钥生成基。
18.根据权利要求15所述的方法,其特征在于,在网络初始化阶段任选一阶数为t-1的多项式f()和大整数q,步骤F1中,所述根据网络中用户的序号获得各用户的子密钥更新部分为f(i)modq。
19.根据权利要求15所述的方法,其特征在于,该方法进一步包括由t个网络中更新过子密钥的用户组成网络密钥恢复集合,利用各用户的子密钥次部分计算得到网络密钥基,利用子密钥更新部分计算得到网络密钥生成更新基,利用子密钥主部分计算得到网络密钥生成更新因子,利用网络密钥基、网络密钥生成更新基以及网络密钥生成更新因子恢复网络密钥。
20.根据权利要求15所述的方法,其特征在于,该方法进一步包括在初始化网络时,设置大于1个网络密钥,并对由t个获得子密钥的用户组成的组合进行编号;在每个组合中针对每个网络密钥,根据组合中用户的子密钥计算该组合的多密钥因子;在每个组合中针对每个网络密钥,计算组合多密钥基;将所有计算得到的多密钥基下发各网络用户;执行以下步骤G、多密钥恢复用户向网络中其它用户请求恢复多密钥;H、多密钥恢复用户选择t个获得子密钥的用户组成多密钥恢复组合;I、多密钥恢复组合中的用户各自分别计算多密钥生成因子,并将自身生成的多密钥生成因子发送给多密钥恢复组合中的所有用户;多密钥恢复组合中的各用户利用组合中所有用户生成的多密钥生成因子计算得到多密钥因子,查找获得与当前组合、以及要恢复的网络密钥对应的多密钥基,根据多密钥基和多密钥因子恢复网络密钥。
21.根据权利要求1、2、3或4所述的方法,其特征在于,该方法进一步包括在初始化网络时,设置大于1个网络密钥,并对由t个获得子密钥的用户组成的组合进行编号;在每个组合中针对每个网络密钥,根据组合中用户的子密钥计算该组合的多密钥因子;在每个组合中针对每个网络密钥,计算组合多密钥基;将所有计算得到的多密钥基下发各网络用户;执行以下步骤D2、多密钥恢复用户向网络中其它用户请求恢复多密钥;E2、多密钥恢复用户选择t个获得子密钥的用户组成多密钥恢复组合;F2、多密钥恢复组合中的用户各自分别计算多密钥生成因子,并将自身生成的多密钥生成因子发送给多密钥恢复组合中的所有用户;多密钥恢复组合中的各用户利用组合中所有用户生成的多密钥生成因子计算得到多密钥因子,查找获得与当前组合、以及要恢复的网络密钥对应的多密钥基,根据多密钥基和多密钥因子恢复网络密钥。
22.根据权利要求21所述的方法,其特征在于,所述计算得到多密钥生成因子为Dl2MlMl′+αli+t,其中Ml=Πk∈Aj,k≠lmk,]]>Ml·Ml′=1modml,mk和ml为集合中用户的子密钥生成基,Dl子密钥主部分,αl为子密钥次部分。
23.根据权利要求21所述的方法,其特征在于,在步骤F2中,所述计算多密钥因子为 其中,DSl为多密钥生成因子,M为多密钥组合中所有用户的子密钥生成基的积。
24.根据权利要求21所述的方法,其特征在于,在恢复多密钥时任选一单向函数f(),所述计算多密钥基为bi,j=si-f(Hi,j),其中si为网络密钥、Hi,j为多密钥因子。
25.根据权利要求21所述的方法,其特征在于,在恢复多密钥时任选一单向函数f(),所述恢复网络密钥为si=bi,j+f(Hi,j),其中bi,j为多密钥因子、Hi,j为多密钥因子。
全文摘要
本发明公开了一种分布式的动态密钥管理方法,可信中心在网络初始化时,为最初组成网络的每个用户分发子密钥、子密钥生成基,并生成网络密钥;该方法还包括以下步骤A、确定子密钥颁发用户,加入网络的新用户向子密钥颁发用户请求颁发子密钥;B、子密钥颁发用户选择t个获得子密钥的用户组成子密钥颁发集合;C、子密钥颁发集合中的每个用户利用自各的子密钥,向新用户颁发子密钥主部分和子密钥次部分。该方法采用(t,n)门限秘密共享原则实现了在分布式网络中为最初组成网络的用户分发子密钥,通过往返逐跳式的方法为新加入网络的用户颁发子密钥,以及为网络中所有合法用户更新子密钥的过程,还提出了多密钥共享的解决方法。
文档编号H04L9/08GK1953368SQ20051011288
公开日2007年4月25日 申请日期2005年10月19日 优先权日2005年10月19日
发明者姚军, 曾贵华 申请人:华为技术有限公司, 上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1