一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于树结构和非对称密钥池的群组通信方法及系统与流程

2022-09-02 22:24:34 来源:中国专利 TAG:


1.本发明涉及抗量子计算领域,尤其涉及基于树结构和非对称密钥池的群组通信方法及系统。


背景技术:

2.现有的群组通信认证体系大都是基于群组密钥的认证方式,但是对于绝密群组通信,例如军事斗争中的群组通信,虽然会形成群组,但是存在分等级通信、单线联系、不了解平级或上级群组成员(直接上级除外)等需求。可见,在当前的群组通信方法中,现有的群组通信认证体系不再适用。总之,现有技术存在以下问题:
3.1.现有技术中,普通的群组通信方法中,密钥量较少,难以满足抗量子计算的安全需求。在抗量子计算的群组通信方法中,通常使用密钥池保护,但对称密钥池由于容量较大,无法存储于高度安全的安全芯片中,存在被俘获后被拆解从而导致群组通信被破解的可能性;为保持安全性,一般选择进行密钥池的更新,其更新方法为一方生成密钥后给另一方发送过去,由于密钥池中的密钥量巨大,会导致密钥池更新需要大量时间,密钥通信量巨大,往往难以实现;
4.2.现有技术中,群组成员的真实身份是公开的,或者使用了匿名身份但匿名身份保持不变,容易被敌方通过真实身份或匿名身份预测出该群组成员的角色和功能,或将真实身份与现有数据联系起来从而了解到该成员的更多信息。


技术实现要素:

5.针对相关技术中的问题,本发明提出一种基于树结构和非对称密钥池的群组通信方法及系统,以克服现有相关技术所存在的上述技术问题。
6.为此,本发明采用的具体技术方案如下:
7.一种基于树结构和非对称密钥池的群组通信系统,系统内的节点按照权限划分为多个层级,管理员为最高层,每个节点拥有安全芯片,具有抗拆解功能,敌方无法获取安全芯片内存储的内容。安全芯片内存有自己的身份信息,包含自己的相关父节点身份信息、所有子节点的身份信息及对应的节点编号,通信中身份信息不公开,仅公开节点编号;节点的安全芯片外的存储器中存储有本层基于树结构的非对称密钥池。
8.管理员节点具有颁发密钥卡的能力,拥有本群组所有成员的身份信息;管理员安全芯片中存储有最下级的芯片密钥、本层的芯片密钥和管理员公私钥;普通节点的安全芯片中存储有本层的芯片密钥和管理员公钥,同一层的芯片密钥相同。
9.一种基于树结构和非对称密钥池的群组通信方法,实施在上述的一种基于树结构和非对称密钥池的群组通信系统中,每个节点可在安全芯片中基于椭圆曲线算法计算得到其父节点的芯片密钥,还可以根据私钥池和芯片密钥结合其子节点的身份信息计算出子节点的私钥池和公钥池;通信过程包括如下步骤:
10.发送方使用会话密钥加密消息得到第一密文,使用会话密钥对消息、父节点身份
信息、子节点身份信息计算得到第一消息验证码,将第一密文、第一消息认证码连同父节点和子节点的编号以及验证消息组成第二密文一起发生给接收方;
11.接收方收到第二密文后,使用会话密钥解密验证第一消息认证码,验证通过后使用会话密钥解密第一密文得到消息。
12.可选地,所述发送方为父节点时,接收方为子节点;所述发送方为子节点时,接收方为父节点;所述验证消息为时间戳。
13.所述会话密钥的计算包括如下步骤:父节点根据指针函数在自己的私钥池中取出自己的私钥,根据自己的私钥、本层芯片密钥在椭圆曲线上的x坐标和其子节点的身份信息计算得到子节点的私钥,以本层芯片密钥和子节点的私钥计算得到通信密钥,进一步通过消息认证码函数计算得到会话密钥;
14.子节点通过指针函数在公钥池中取出本节点公钥,结合本层芯片密钥在椭圆曲线上的x坐标计算得到通信密钥,进一步通过消息认证码函数计算得到会话密钥。
15.可选地,发生在新增可信成员通信中,其特征在于,管理员根据新增可信成员和节点编号为可信成员分配芯片密钥、身份信息和密钥池,管理员生成用于宣告可信成员合法的合法消息,按如上述方法逐级将合法消息发送给该可信成员的可信父节点,可信父节点在身份信息列表中新增可信成员的身份信息。
16.可选地,实施在群组通信中存在不可信节点的情况下,不可信节点的可信父节点将不可信节点的不可信消息按上述方法逐级发送给管理员节点;
17.管理员节点收到不可信消息后,发布不可信节点非法的通知,将不可信节点的子节点的上级变更为不可信节点的可信父节点的要求作为第二消息,并为不可信节点的所有子节点重新分配作为不可信节点的可信父节点下级的唯一新身份信息和新节点编号,管理员节点计算得到可信父节点的芯片密钥、不可信节点的芯片密钥和不可信节点子节点的芯片密钥,利用不可信节点子节点的芯片密钥加密第二消息得到第二密文,将第二密文、当前时间戳和通知组合得到第三消息,使用管理员私钥对第三消息进行签名得到第二签名,将不可信节点所有子节点的不可信节点子节点的身份信息、不可信节点子节点的新身份信息、第三消息以及第二签名组合得到第四消息,使用管理员私钥对使用可信父节点的芯片密钥加密的不可信节点的芯片密钥的加密结果以及第四消息组成的第五消息进行签名得到第三签名;管理员节点按上述方法逐级将第五消息和第三签名组合发送到可信父节点;
18.可信父节点在安全芯片中提取管理员公钥验证第三签名,验证通过后解密得到使用可信父节点的芯片密钥加密的不可信节点的芯片密钥和第四消息,根据本层芯片密钥解密第五消息得到不可信节点芯片密钥;按上述方法计算会话密钥,使用会话密钥加密第三消息和第二签名得到第六消息,使用会话密钥对不可信节点子节点身份信息、第三消息和第二签名利用消息认证函数计算得到第二消息认证码,将当前时间戳、不可信节点子节点的节点编号、第六消息和第二消息认证码组成第七消息发送给不可信节点子节点;
19.不可信节点子节点收到第七消息后判断消息来源为不可信节点的父节点,按上述方法计算会话密钥,使用会话密钥验证第二消息认证码,验证成功后解密第六消息得到第三消息和第二签名,不可信节点子节点在安全芯片中提取管理员公钥验证第二签名,验证通过后,使用本层芯片密钥解密第三消息,将身份信息更换为新的身份信息并存储到安全芯片中,更新节点编号并替换密钥池;
20.可选地,发生在不可信节点子节点没有下级时,则不可信节点子节点只有公钥池,不可信节点子节点对公钥池的每一段密钥进行替换,所述替换密钥池包括如下步骤:
21.将本层的密钥池分为多段子公钥,取出密钥池的一段子公钥输入到安全芯片中计算得到不可信节点的公钥,根据不可信节点的公钥计算得到不可信节点父节点的公钥,根据不可信节点父节点的公钥和不可信节点子节点的新身份信息、该段子公钥的位置、不可信节点父节点的芯片密钥在椭圆曲线上的x坐标计算得到不可信节点子节点的新子公钥,然后将得到的多个新子公钥按照相应子公钥的顺序拼接,输出安全芯片得到新密钥池;
22.可选地,发生在不可信节点子节点有下级时,则不可信节点子节点有公钥池和私钥池,可信节点子节点对私钥池的每一段密钥进行替换,所述替换密钥池包括如下步骤:
23.将本层密钥池中的私钥池分为多段子私钥,取出密钥池的一段子私钥输入到安全芯片中计算得到不可信节点的私钥,根据不可信节点的私钥计算得到不可信节点父节点的私钥,根据不可信节点父节点的私钥和不可信节点子节点的身份信息、该段子私钥的位置、不可信节点父节点的芯片密钥在椭圆曲线上的x坐标计算得到不可信节点子节点的新子私钥,然后将得到的多个新子私钥按照相应子私钥的顺序拼接,输出安全芯片得到新私钥池;私钥池替换完成后对应计算得到公钥池。
24.优选地,完成密钥池替换后,将芯片密钥更新,更新成功后将包含自己身份信息和新的身份信息的第八消息发送给可信父节点;可信父节点收到后对比本地存储的第二消息进行验证,验证成功后确认不可信节点子节点为其新的下级节点并更新身份列表。
25.可选地,发生在不可信节点子节点的可信下级没有下级时,则不可信节点子节点的可信下级只有公钥池,不可信节点子节点的可信下级对公钥池的每一段密钥进行替换,所述替换密钥池包括如下步骤:
26.将本层的密钥池分为多段子公钥,取出密钥池的一段子公钥输入到安全芯片中计算得到不可信节点子节点的公钥,根据不可信节点子节点的公钥计算得到不可信节点的公钥,根据不可信节点的公钥计算得到不可信节点父节点的公钥,根据不可信节点父节点的公钥和不可信节点子节点的新身份信息、该段子公钥的位置、不可信节点父节点的芯片密钥在椭圆曲线上的x坐标计算得到不可信节点子节点的新子公钥,根据不可信节点子节点的新子公钥和不可信节点子节点的可信下级的新身份信息该段子公钥的位置、不可信节点子节点的芯片密钥在椭圆曲线上的x坐标计算得到不可信节点子节点的可信下级的新子公钥,然后将得到的不可信节点子节点的可信下级的多个新子公钥按照相应子公钥的顺序拼接,输出安全芯片得到新密钥池;
27.可选地,发生在不可信节点子节点的可信下级有下级时,则不可信节点子节点的可信下级有公钥池和私钥池,可信节点子节点的可信下级对私钥池的每一段密钥进行替换,所述替换密钥池包括如下步骤:
28.将本层密钥池中的私钥池分为多段子私钥,取出密钥池的一段子私钥输入到安全芯片中计算得到不可信节点子节点的私钥,根据不可信节点子节点的私钥计算得到不可信节点的私钥,根据不可信节点的私钥计算得到不可信节点父节点的私钥,根据不可信节点父节点的私钥和不可信节点子节点的新身份信息、该段子私钥的位置、不可信节点父节点的芯片密钥在椭圆曲线上的x坐标计算得到不可信节点子节点的新的子私钥,根据不可信节点子节点的新子私钥和不可信节点子节点的可信下级的新身份信息、该段子私钥的位
置、不可信节点的芯片密钥在椭圆曲线上的x坐标计算得到不可信节点子节点的可信下级的新子私钥;然后将得到的多个不可信节点子节点的可信下级的新子私钥按照相应子私钥的顺序拼接,输出安全芯片得到新私钥池;私钥池替换完成后对应计算得公公钥池。
29.有益效果:
30.1.本专利中,使用了安全芯片与密钥池相结合的群组密钥生成方法,不仅密钥量可以满足抗量子计算的安全需求,而且由于用于生成通信密钥的芯片密钥位于敌方无法破解的安全芯片中,因此不存在被俘获后被拆解密钥池从而导致群组通信被破解的可能性,并且不同上下级之间的通信内容不会被其他不相关成员所解密;另外,进行密钥池更新时,无需传输密钥,因此密钥池更新可以快速完成,容易难以实现;
31.2.本专利中,群组成员的真实身份是不公开的,仅公开节点编号,而且在出现不可信节点后,可以无规则地更换为新的节点编号,不容易被敌方预测出该群组成员的角色和功能,或了解到该成员的更多信息。
附图说明
32.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
33.图1为本发明实施例中涉及的系统结构图;
34.图2为本发明实施例中各层密钥池及各层芯片密钥的计算过程。
具体实施方式
35.下面将结合附图和具体实施例对本发明作更进一步的说明。但应当理解的是,本发明可以以各种形式实施,以下在附图中出示并且在下文中描述的一些示例性和非限制性实施例,并不意图将本发明限制于所说明的具体实施例。
36.应当理解的是,在技术上可行的情况下,以上针对不同实施例所列举的技术特征可以相互组合,从而形成本发明范围内的另外的实施例。此外,本发明所述的特定示例和实施例是非限制性的,并且可以对以上所阐述的结构、步骤、顺序做出相应修改而不脱离本发明的保护范围。
37.在通信群组中,本专利假设所有成员都拥有安全芯片,安全芯片内存有各自的真实身份即id列表,含本成员相关的上级和所有下级的id及其对应的节点编号,通信中id不公开,仅公开节点编号。管理员节点拥有本群组所有成员的id列表。
38.如图1所示,本发明所述的基于树结构非对称密钥池的群组通信系统,包括第0层节点,第1层节点,第2层节点等多层节点。在军用数据链场景下,第0层节点可以是指挥中心,第1层节点可以是指挥机,第2层节点可以是无人机、无人车或单兵节点等。
39.本专利中各层节点均匹配有安全芯片,具有抗拆解功能,敌方无法获取安全芯片内存储的内容。第0层节点由于是群组管理员,具有颁发密钥卡的能力,因此其安全芯片内还存有最下级的芯片密钥(即本专利中的第n层芯片密钥krn),用于为新增群组成员颁发对应层的芯片密钥。管理员节点的本层非对称密钥池存储于安全芯片外的存储器中,管理员
节点的安全芯片中存储有芯片密钥以及管理员的公私钥;其他普通群组成员的本层非对称密钥池存储于安全芯片外的存储器中,节点的安全芯片中存储有芯片密钥和管理员公钥。
40.各层的安全芯片内存有本层的芯片密钥kr,同一层的节点的芯片密钥相同。对芯片密钥进行变换的过程如图2所示,文字描述如下:
41.设第0层芯片密钥为kr0,依此类推,第1层芯片密钥为kr1,第n层芯片密钥为krn。定义椭圆曲线算法参数p,选择一真随机数sn,可以计算得到第n层芯片密钥为krn=sn*p。krn为椭圆曲线上的一个点,其坐标可表示为krn(krnx,krny)。通过椭圆曲线点krn的x坐标krnx计算得到第n-1层芯片密钥kr(n-1)=krnx*p。以此类推,kr0=kr1x*p。其中,kr1x为椭圆曲线点kr1的x坐标。即,每个节点可以依次计算得到其各层父节点的芯片密钥。但芯片密钥不会输出到芯片外,从而保证了所有成员芯片密钥的安全。
42.本专利中各节点还存储有基于树结构的非对称密钥池,第0层密钥池初始化时为真随机数组成的私钥池、第1层密钥池为私钥池及其对应的公钥池、第2层密钥池为私钥池及其对应的公钥池、
……
、第n层密钥池为公钥池。
43.设第1层第i个节点为idi,其下的叶子结点即第2层第j个节点的id为idij,idij下的叶子结点即第3层第k个节点的id为idijk。
44.以n=3的情况为例,即第3层密钥池为公钥池。
45.各节点的各密钥池均按照同样的规则平均分割为多段密钥。通过第0层密钥池变换得到各层密钥池的过程文字描述如下:
46.设第0层私钥池位置为pos的某一段为sk0,第1层、第2层的各密钥池的同样位置即pos处的公钥/私钥分别为ki/ski、kij/skij,第3层的公钥池的pos处的公钥为kijk,芯片密钥分别为kr0、kr1、kr2、kr3。
47.定义私钥变换公式sk

=sk

mac(id

||pos,kr

x)。
48.即,根据sk0、idi、位置pos以及第0层节点芯片密钥kr0的x坐标kr0x计算得到第1层私钥池的位置pos处私钥为ski=sk0 mac(idi||pos,kr0x),其中,mac(m,k)为使用密钥k对消息m计算消息认证码。
49.依次计算ki=ski*p;skij=ski mac(idij||pos,kr1x);kij=skij*p;skijk=skij mac(idijk||pos,kr2x);kijk=skijk*p。
50.即,每个节点可以根据它的私钥池和芯片密钥,结合其子节点的id依次计算出其各个子节点的私钥池和公钥池。
51.由于敌方无法获取各层的芯片密钥,因此:敌方即使获取kijk并用量子计算机破解得到skijk,也无法推导得到skij;敌方即使获取skij,也无法推导得到ski;敌方即使获取ski,也无法推导得到sk0。
52.为进一步阐述本发明的原理,下面通过具体实施方式详细阐述本发明的实现原理。
53.实施例1:成员可信情况下的群组通信
54.在成员可信的情况下,群组内任意两个具有父子关系的成员a和b之间可以进行保密通信。为保密起见,其余任何成员之间不可以直接通信。
55.情况1.1:第1层a与第2层b通信
56.假设父节点为a,节点编号为i,id为idi;a的子节点为b,节点编号为ij,id为idij。
群组成员a要发出的消息为ntf,并为该消息生成一个时间戳tntf。
57.a计算指针pos=fpk(tntf),函数fpk(*)为任意指定的将tntf变换为合法指针函数。根据pos在私钥池中取出密钥ski,结合芯片密钥kr1的x分量kr1x计算得到skij=ski mac(idij||pos,kr1x)。
58.a根据b的私钥skij和芯片密钥kr1计算通信密钥ktga=skij*kr1,进一步计算会话密钥ksga=mac(tntf,ktga)。
59.a使用会话密钥ksga作为本次群组通信的群组密钥,对ntf进行对称加密得到{ntf}ksga,使用ksga对idi、idij和ntf计算消息认证码得到mac(idi||idij||ntf,ksga)。将加密的信息、消息认证码连同a和b的节点编号i||ij以及时间戳tntf一起发送至其他成员,发送的信息可以表示为tntf||i||ij||{ntf}ksga||mac(idi||idij||ntf,ksga)。消息中仅带有节点编号,隐藏了id,使得id得到保密。
60.子节点b收到消息后,计算指针pos=fpk(tntf)。根据pos在公钥池中取出密钥kij结合芯片密钥kr2的x分量kr2x计算通信密钥ktgb=kr2x*kij。
61.因为kij=skij*p,kr1=kr2x*p,可以得知ktgb=kr2x*kij=kr2x*skij*p=skij*kr2x*p=skij*kr1=ktga。
62.b计算与ksga相同的会话密钥ksgb=mac(tntf,ktgb)。使用ksgb对收到的消息进行解密并完成消息认证。
63.情况1.2:第2层b与第1层a通信
64.假设父节点为a,节点编号为i,id为idi;a的子节点为b,节点编号为ij,id为idij。群组成员b要发出的消息为ntf,并为该消息生成一个时间戳tntf。
65.b计算指pos=fpk(tntf),根据pos在公钥池中取出密钥kij结合芯片密钥kr2的x分量kr2x计算通信密钥ktgb=kr2x*kij。进一步计算会话密钥ksgb=mac(tntf,ktgb)。
66.b使用会话密钥ksgb作为本次群组通信的群组密钥,对ntf进行对称加密得到{ntf}ksgb,使用ksgb对idij、idi和ntf计算消息认证码得到mac(idij||idi||ntf,ksgb)。将加密的信息、消息认证码连同b和a的节点编号ij||i以及时间戳tntf一起发送至其他成员,发送的信息可以表示为tntf||ij||i||{ntf}ksgb||mac(idij||idi||ntf,ksgb)。消息中仅带有节点编号,隐藏了id,使得id得到保密。
67.父节点a收到消息后,计算指针pos=fpk(tntf),根据pos在私钥池中取出密钥ski,结合本层芯片密钥kr1的x分量kr1x计算得到skij=ski mac(idij||pos,kr1x)。a根据b的私钥skij和芯片密钥kr1计算通信密钥ktga=skij*kr1,由上文可得ktga=ktgb。a进一步计算与ksgb相同的会话密钥ksga=mac(tntf,ktga)。使用ksga对收到的消息进行解密并完成消息认证。
68.实施例2:某成员不可信情况下的群组通信
69.成员不可信的原因可能有:被敌方捕获;被击毁;不明原因消失;出现异常行为等。
70.设群组管理员为第0层节点a,芯片密钥为kra;
71.不可信成员为x,其id为idx,替换密钥为krx;
72.x的可信上级为b,其id为idb,替换密钥为krb。
73.x的叶子结点共有xn个,分别记为xj(j∈[0,xn-1]),其id分别为idxj,替换密钥分别为krxj;
[0074]
由于x知道本层和所有下层的密钥池,因此本层和所有下层的群组通信的安全性受到影响,而上层密钥池是安全的。基于此,a将要把x的所有叶子结点转移给x的可信上级b来管理。
[0075]
以x的叶子结点xj为例,父节点将由x改为b,其id由原本的idxj改为idbj,且idbj不会与idx及其他与x同层的节点重复。
[0076]
步骤一:可信上级发出消息。
[0077]
b发现x不可信后,将x不可信的消息通过实施例1描述的方法逐级发送给管理员节点a。
[0078]
步骤二:群组管理员宣布不可信成员。
[0079]
a收到b发送的消息后,宣布x非法,并通知xj将父节点改为b。该通知消息为ntf,为该消息生成一个时间戳tntf。
[0080]
a为xj重新分配一个作为b下级的唯一的节点编号j,其id表示为idbj,但其实际内容即真实身份可以发生变化,也可以保持不变。
[0081]
a计算得到b的芯片密钥krb、x的芯片密钥krx、xj的芯片密钥krxj。a用krxj作为对称密钥加密{idxj

[lb||idb||j||idbj]}得到{idxj

[lb||idb||j||idbj]}krxj。其中,{idxj

[lb||idb||j||idbj]}表示将idxj改为节点编号为lb的idb节点下的第j个节点idbj。由于a是管理员,存储有krn,可计算得到krxj,而x无法得到krxj,因此x无法向xj发送使用krxj加密的消息。a用krb作为对称密钥加密krx得到{krx}krb。
[0082]
将{idxj

[lb||idb||j||idbj]}krxj与tntf、ntf组合得到msgj=tntf||ntf||{idxj

[lb||idb||j||idbj]}krxj,a使用管理员私钥对msgj进行签名得到sigj=sign(msgj,ska)。将xn组信息组合得到msg={idxj||idbj||msgj||sigj}(j∈[0,xn-1])。a使用管理员私钥对{krx}krb||msg签名得到siga。
[0083]
a通过实施例1中的方法逐级将{krx}krb||msg||siga发送至节点b。b在安全芯片中提取管理员公钥验证siga,验证通过后,解析得到{krx}krb和各个idxj||idbj||msgj||sigj,使用芯片密钥krb解密{krx}krb得到krx,保留idxj||idbj用于后续验证。
[0084]
步骤三:可信上级b宣布不可信成员。
[0085]
节点b根据msgj中的tntf计算得到pos=fpk(tntf),在私钥池中提取出skb。结合芯片密钥krb的x分量krbx计算得到skx=skb mac(idx||pos,krbx)。
[0086]
计算kx=skx*p,结合x的芯片密钥krx的x分量krxx计算得到skxj=skx mac(idxj||pos,krxx)。b根据skxj和芯片密钥krb计算通信密钥ktg=skxj*krb。进一步计算会话密钥ksg=mac(tntf,ktg)。
[0087]
b使用会话密钥ksg保护msgj||sigj发送到xj,发送消息为tntf||j||{msgj||sigj}ksga||mac(idxj||msgj||sigj,ksg)。
[0088]
xj收到后,由于消息中没有父节点的节点编号,因此判断消息来源为父节点的父节点。根据pos=fpk(tntf),根据pos在公钥池中取出密钥kxj,计算krx=krxjx*p,根据kxj和krx的x分量krxx计算通信密钥ktgxj=krxx*kxj。
[0089]
因为kxj=skxj*p,krb=krxx*p,可以得知ktgxj=krxx*kxj=krxx*skxj*p=skxj*krxx*p=skxj*krb=ktg。
[0090]
xj计算与ksg相同的会话密钥ksgxj=mac(tntf,ktgxj)。使用ksgxj对收到的消息
进行解密并完成消息认证。
[0091]
验证通过后,xj获得msgj||sigj,xj在安全芯片中提取管理员公钥验证sigj,验证通过后,xj使用krxj解密得到idxj

[lb||idb||j||idbj]。
[0092]
xj将idxj更换为idbj并存储到安全芯片,并以b为新的上级节点,同时更新节点编号为lbj,即作为b下级中的j。
[0093]
如xj没有子节点,则xj只有公钥池,对于公钥池的每一段密钥,xj节点执行密钥替换,步骤如下:
[0094]
1.取出密钥池的一段密钥kxj输入到安全芯片;
[0095]
2.由于kxj=skxj*p=[skx mac(idxj||pos,krxx)]*p=skx*p mac(idxj||pos,krxx)*p=kx mac(idxj||pos,krxx)*p。
[0096]
计算krx=krxjx*p,获得krx的x分量krxx进一步得出mac(idxj||pos,krxx)*p。对kxj减去mac(idxj||pos,krxx)*p可得到kx;
[0097]
3.由于kx=skx*p=[skb mac(idx||pos,krbx)]*p=skb*p mac(idx||pos,krbx)*p=kb mac(idx||pos,krbx)*p。
[0098]
计算krb=krxx*p,获得krb的x分量krbx进一步得出mac(idx||pos,krbx)*p。对kx减去mac(idx||pos,krbx)*p可得到kb;
[0099]
4.对kb加上mac(idbj||pos,krbx)*p得到kbj;
[0100]
5.将kbj输出安全芯片成为密钥池的一段密钥。
[0101]
如xj有子节点,则xj有公钥池和私钥池,对于私钥池,xj节点执行密钥替换,步骤如下:
[0102]
1.取出密钥池的一段密钥skxj输入到安全芯片;
[0103]
2.由于skxj=skx mac(idxj||pos,krxx),对skxj减去mac(idxj||pos,krxx)可得到skx;
[0104]
3.由于skx=skb mac(idx||pos,krbx),对skx减去mac(idx||pos,krbx)可得到skb;
[0105]
4.对skb加上mac(idbj||pos,krbx)得到skbj;
[0106]
5.将skbj输出安全芯片成为密钥池的一段密钥;
[0107]
xj的私钥池替换完成后,对应计算得到公钥池。
[0108]
xj的密钥池替换完成后,xj将芯片密钥krxj替换为krx,替换成功后通过实施例1的方法给b发送成功消息,消息中包含idxj||idbj。b收到后,对比本地存储的idxj||idbj,确认bj为新的下级节点,并更新id列表。
[0109]
步骤四:可信下级更新id及替换密钥。
[0110]
如可信下级xj还有下级xjk,则在步骤二中,a会根据生成msgj||sigj的方法类似地生成msgjk||sigjk。其中,msgjk=tntf||ntf||{idxjk

[lbj||idbj||k||idbjk]}krxjk。其中,idxjk

[lbj||idbj||k||idbjk]表示将idxjk改为节点编号为lbj的idbj节点下的第k个节点idbjk。在步骤三中,b将msgjk||sigjk发送给xj后,再由xj用实施例1的流程转发给xjk。
[0111]
xjk在安全芯片中提取管理员公钥验证sigjk,验证通过后,xjk使用krxjk解密得到idxjk

[lbj||idbj||k||idbjk]。
[0112]
xjk将idxjk更换为idbjk并存储到安全芯片,并以bj为新的上级节点,同时更新节点编号为lbjk,即作为bj下级中的k。
[0113]
如xjk没有子节点,则xjk只有公钥池,对于公钥池的每一段密钥,xjk节点执行密钥替换,步骤如下:
[0114]
1.取出密钥池的一段密钥kxjk输入到安全芯片;
[0115]
2.计算krxj=krxjkx*p,获得krxj的x分量krxjx进一步得出mac(idxjk||pos,krxjx)*p。对kxjk减去mac(idxjk||pos,krxjx)*p可得到kxj;
[0116]
3.计算krx=krxjx*p,获得krx的x分量krxx进一步得出mac(idxj||pos,krxx)*p。对kxj减去mac(idxj||pos,krxx)*p可得到kx;
[0117]
4.计算krb=krxx*p,获得krb的x分量krbx进一步得出mac(idx||pos,krbx)*p。对kx减去mac(idx||pos,krbx)*p可得到kb;
[0118]
4.对kb加上mac(idbj||pos,krbx)*p得到kbj;
[0119]
5.对kbj加上mac(idbjk||pos,krxx)*p得到kbjk;
[0120]
5.将kbjk输出安全芯片成为密钥池的一段密钥。
[0121]
如xjk有子节点,则xjk有公钥池和私钥池,对于私钥池,xjk节点执行密钥替换,步骤如下:
[0122]
1.取出密钥池的一段密钥skxjk输入到安全芯片;
[0123]
2.由于skxjk=skxj mac(idxjk||pos,krxjx),对skxjk减去mac(idxjk||pos,krxjx)可得到skxj;
[0124]
3.由于skxj=skx mac(idxj||pos,krxx),对skxj减去mac(idxj||pos,krxx)可得到skx;
[0125]
4.由于skx=skb mac(idx||pos,krbx),对skx减去mac(idx||pos,krbx)可得到skb;
[0126]
5.对skb加上mac(idbj||pos,krbx)得到skbj;
[0127]
6.对skbj加上mac(idbjk||pos,krxx)得到skbjk;
[0128]
7.将skbjk输出安全芯片成为密钥池的一段密钥;
[0129]
xjk的私钥池替换完成后,对应计算得到公钥池。
[0130]
xjk的密钥池替换完成后,xjk将芯片密钥krxjk替换为krxj,替换成功后通过实施例1的方法给xj发送成功消息。xj收到后,确认bjk为新的下级节点,并更新id列表。
[0131]
实施例3:新增可信成员的群组通信。
[0132]
设群组管理员为a,新增可信成员为y,y的上级节点为b。a根据y的层号及节点号,为y分配对应芯片密钥、id列表以及密钥池。
[0133]
a生成用于宣布y合法的消息为ntf,a通过情况实施例1的方法逐级将ntf发送至b。b更新芯片内的id列表,新增成员y合法的消息。
[0134]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0135]
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来
说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献