一种组播密钥管理的方法、装置及系统的利记博彩app

文档序号:7926939阅读:255来源:国知局

专利名称::一种组播密钥管理的方法、装置及系统的利记博彩app
技术领域
:本发明涉及电子通信
技术领域
,尤其涉及一种组播密钥管理的方法、装置及系统。
背景技术
:骨干网带宽的增加,使得因特网视/音频成为可能,并且小区网络中视/音频应用不断丰富,这类依赖于组播技术才能实现的应用,使得对组播的支持成为网络建设的一个重要内容。组播技术是计算机网络中的关键技术之一,从横向看,无论在有线网络还是无线网络,从纵向看,无论在应用层,网络层还是媒体接入层,组播都逐渐得到广泛的部署与应用。从用户行为方面可以将组播技术的应用分为两类点对多点应用,例如4某体广播,IPTV(互联网电视)以及事件通知等;多点对点应用,例如多方会议,DIS(分布式交互模拟),网络在线游戏等。对组播中的报文进行加密传输是一种很好的实现保密性的方法。只有组播中的组成员知道加密和解密用的组密钥,这样才能够确保只有组成员才能解读被加密的报文,非组成员无法获得报文内容,存在一定的排外性。因此,需要对组播密钥进行管理,以控制组成员的加入/离开以及由此带来的组密钥的生成、发布和更新事件。每两两用户之间可以建立一对PTK(PrivateTemporaryKey,私有临时密钥)来保证一对一的单播安全,每个用户可向与其建立PTK的其它用户分发GTK(GroupTemporaryKey,组临时密钥)来保证一对多的组播安全。在完全分布的时候,一个用户节点数量为N的网络9中,每个用户拥有(N-1)个PTK,N个GTK。UWB(UltraWideband,超宽带)是一种完全分布式的网络。网络中每一个用户都有可能建立组播组,这样,该用户可以作为组管理员,以对组播组中的密钥进行管理。并且一般情况下,网络中都会同时并存多个组播组。每个组播组的创建与管理可以由组管理员自身完成。现有的组管理员对组播密钥进行管理的示意图如图1所示,为星型密钥树结构,图中的根结点表示组管理员存储GTK,叶节点表示参与组播组的用户存储PTK。基于该星型密钥树结构的组管理员对组播密钥的管理方法包括组管理员向与之建立共享PTK的用户分发用于加解密组播帧的GTK,该用户接收并保存组管理员发送的GTK。在图1所示的对组播密钥进行管理的示意图中,组播组中所有用户的GTK均由组管理员来分发,GTK的更新工作也由组管理员来进行。现有技术中,两个用户在成功完成4-wayhandshake(4次握手)之后,便可以共享4-wayhandshake过程建立的PTK。之后,这两个用户都可以向对方发出GTK命令帧(可以将消息标号设置为1)来分发各自拥有的GTK,以便对方加入组播,并能够利用GTK加密发送/接收组播数据。这样,现有的新用户加入组^燔组的组密钥更新过程包括组管理员在其上保存的如图1所示的星型密钥树上创建一个新的节点,并把它作为叶节点附加到根结点的下面。在该新用户和组管理员上均存储该新用户和组管理员之间共享的PTK。如果不需要实现后向保密,组管理员利用其上存储的该新叶节点的PTK,加密发送原有GTK给该新叶节点;如果需要实现后向保密,组管理员生成一个新GTK来替换其上存储的旧GTK,之后,组管理员利用其上存储的该新叶节点的PTK,加密发送新GTK给该新叶节点;并更新其他已有用户的GTK,可以利用旧GTK加密新GTK在组内组播的方式更新已有用户的GTK,也可以利用各个已有用户和组管理员之间的PTK,加密发送新GTK的方式更新已有用户的GTK。例如,图1中PTK1所在叶结点对应新加入的用户,如果不需要实现后向保密,则建立1条密钥更新报文包含利用新加入用户和组管理员之间共享的PTK1加密GTK生成的密文,单播到新加入用户。如果需要实现后向保密,组管理员生成新的GTK'代替旧的GTK,并建立2条密钥更新报文一条包含利用新加入用户和组管理员之间共享的PTK1加密GTK生成的密文,单播到新加入用户;另一条,包含利用已有用户和组管理员之间共享的旧GTK加密新GTK'生成的密文,组播到已有用户。现有的用户离开组播组的组密钥更新过程包括当组播组中的用户离开时,组管理员在其上保存的如图1所示的星型密钥树上删除离开用户对应的叶节点,并使它与根结点脱离关系。为了实现前向保密,组管理员生成一个新GTK来替换组管理员,即根节点上存储的旧GTK,之后,更新其他余下用户的GTK,可以利用组管理员与余下各个用户之间的PTK,加密发送新GTK到各个用户,也可以利用旧GTK加密新GTK在组内组播的方式更新余下用户的GTK。例如,图1中PTK1所在叶结点对应离开的用户,组管理员生成新的GTK'代替旧的GTK,并建立n-1条密钥更新报文每一条都包含利用与组播组中每一个余下用户共享的PTK加密新GTK'生成的密文,单播到每一个余下用户。上述组密钥管理方法,在用户离开时,为了保证前向保密,必须重新生成一个新的GTK代替原有GTK,并且需使用组播组中各个用户的PTK对新的组密钥进行加密以分别向各个用户分发新的GTK,进而完成组密钥更新。当组播组中设备数量较大时,这会是一个相当可观的工作量。并且,其更新过程可能因为更新报文数量大而产生延迟,组播部分用户因用户接收密钥更新报文晚而不能及时更新,从而不能机密新GTK^口密的报文而影响应用
发明内容本发明实施例提供一种组播密钥管理的方法、装置及系统,能够方便的对组播密钥进行管理。本发明实施例是通过以下技术方案实现的本发明实施例提供一种组播密钥管理的方法,包括组播组中的组管理员上保存组临时密钥GTK和与各个组成员对应的私有临时密钥PTK,组播组中的组成员上保存所述GTK和组管理员与所述组成员之间的PTK,所述方法还包括组管理员根据预先设置的组密钥组织方式生成并保存辅助临时密钥ATK,并通过保密方式向所述组播组的至少两个组成员发送所述ATK;所述至少两个组成员接收并保存所述ATK;所述组密钥组织方式包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的方式组织;所述ATK用于共享ATK的所述至少两个组成员与组管理员进行信息交互,或者所iiATK用于共享ATK的所述至少两个组成员之间进行信息交互。本发明实施例提供一种组管理员,包括第一单元,用于保存组临时密钥GTK;第二单元,用于保存与各个组成员对应的私有临时密钥PTK;所述组管理员还包括第三单元,用于根据预先设置的组密钥组织方式生成并保存辅助临时密钥ATK;所iiATK用于共享ATK的所述至少两个组成员与组管理员进行信息交互,或者所述ATK用于共享ATK的所述至少两个组成员之间进行信息交互;所述组密钥组织方式包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的方式组织;密钥发送单元,用于通过保密方式发送密钥。本发明实施例提供一种组播密钥管理的系统,包括组管理员和至少两个组成员,所述组管理员保存GTK和与各个组成员对应的PTK,并根据预先设置的组密钥组织方式生成并保存ATK,并通过保密方式向所述组播组的至少两个组成员发送所述ATK;所述ATK用于共享ATK的所述至少两个组成员与组管理员进行信息交互,或者所述ATK用于共享ATK的所述至少两个组成员之间进行信息交互;所述组密钥组织方式包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的方式组织;所述至少两个组成员接收并保存所述ATK。由上述本发明实施例提供的技术方案可以看出,本发明实施例达到降低组播密钥更新的通信开销和时间延迟,提高组播的灵活度的技术效果。图1现有的组管理员对组播密钥进行管理的示意图2为本发明的实施例的方法的流程图3为本发明实施例的组^"加入过程;图4为本发明实施例的组播离开过程;图5为本发明实施例的组密钥组织方式示意图6为本发明实施例的系统的结构图。具体实施例方式本发明的一个实施例为一种组播密钥管理的方法,如图2所示,包括步骤1:组播组中的组管理员上保存GTK和与各个组成员对应的PTK,组播组中的组成员上保存所述GTK和组管理员与所述组成员之间的PTK。步骤2:组管理员根据预先设置的组密钥组织方式生成并保存ATK(AssistantTemporaryKey,辅助临时密钥),并通过保密方式向所述组才番组的至少两个组成员发送所述ATK;所述组密钥组织方式包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的方式组13步骤3:所述至少两个组成员接收并保存所述ATK。在本发明实施例中,可以使用伪随机发生器生成ATK;或者,将所述ATK上直接相连的子节点分别进行单向函数变换,将单向函数变换后的结果进行混合函数变换,将所述混合函数变换后的结果作为所述ATK的具体值。在本发明实施例中,所述ATK用于共享ATK的所述至少两个组成员与组管理员进行信息交互,或者所述ATK用于共享ATK的所述至少两个组成员之间进行信息交互。本发明实施例中的组密钥组织方式可以包括完全二叉树的组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的完全二叉树方式组织;为了便于叙述,将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括PTK和第一ATK,或者两个不同的第一ATK,或者两个不同的第二ATK,或者第一ATK和第二ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK;为了便于叙述,将所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第二ATK作为第三ATK;或者,预先设置的二叉树的组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的二叉树方式组织;将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括PTK和第一ATK,或者两个不同的第一ATK,或者两个不同的第二ATK,或者第一ATK和第二ATK,或者PTK和第二ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK;或者,预先设置的树形组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的树形方式组织;将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括至少一个第一ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK。本发明实施例中生成了辅助临时密钥ATK,这样,在用户加入或离开的情况下,减少需要更新的密钥数量,进而降低通信开销和减少时间延迟,提高组播的灵活度。下面分别对用户加入或离开的情况进行详细叙述。在用户加入组播组的情况下,所述组管理员与所述用户协商得到与所述用户之间的PTK、按照预先设置的密钥组织方式生成第一ATK,并保存所述PTK和所述第一ATK;将与所述用户共享第一ATK的组成员,在所述用户加入组播组之前保存的的第一ATK作为第三ATK保存;用保密方式发送所述PTK、所述第一ATK、GTK和协商得到的所述PTK之间的第三ATK、GTK给所述用户;用保密方式发送所述第一ATK给按照所述预先设置的密钥组织方式与所述用户共享第一ATK的组成员。所述用户接收并保存所述PTK、所述第一ATK,所述第三ATK、所述GTK;与所述用户共享第一ATK的组成员接收并保存所述第一ATK。根据保密级别的不同,具体可以采用多种保密方式发送密钥,比如若不希望其他任何用户获知用户本身的密钥,则可以仅用组管理员和该用户之间的密钥来发送,即可以将第一ATK用组管理员和接收对端之间的PTK加密发给对端;将第三ATK用组管理员和接收对端之间的第一ATK或PTK加密发给对端;将GTK用组管理员和接收对端之间的第一ATK、第二ATK或PTK加密发给对端。容易理解的是,在对保密性要求不太高的应用场景,可以将需要发送的密钥用用户和组管理员之间任何已经保存的密钥发送。本发明实施例可以应用于至少有三个用户的组播组中。为了提高组播的保密性,可以在用户加入组播组的情况下,进一步更新GTK和协商得到的所述PTK之间的第三ATK和GTK,包括在用户加入组播组的情况下,所述组管理员与所述用户协商得到与所述用户之间的PTK、按照预先设置的密钥组织方式生成第一ATK、更新GTK和协商得到的所述PTK之间的第三ATK、更新GTK;将与所述用户共享第一ATK的组成员,在所述用户加入组播组之前保存的的第一ATK作为第三ATK保存;并保存所述PTK、第一ATK、更新后的所述第三ATK、更新后的GTK;用保密方式发送所述PTK、所述第一ATK、更新后的所述第三ATK和更新后的GTK给所述用户;用保密方式发送所述第一ATK、更新后的所述第三ATK和更新后的GTK给按照所述预先设置的密钥组织方式与所述用户共享第一ATK的组成员;用保密方式发送更新后的所述第三ATK和更新后的GTK给按照所述预先设置的密钥组织方式与所述用户共享第三ATK的组成员;用保密方式发送更新后的GTK给其他组成员;所述用户接收并保存所述PTK、所述第一ATK、更新后的所述第三ATK和更新后的GTK;与所述用户共享第一ATK的组成员接收并保存所述第一ATK、更新后的所述第三ATK和更新后的GTK;与所述用户共享第三ATK的组成员接收并保存更新后的所述第三ATK和更新后的GTK;其他组成员接收并保存所述更新后的GTK。同样的,根据保密级别的不同,具体可以采用多种保密方式发送密钥,比如若不希望其他任何用户获知用户本身的密钥,则可以仅用组管理员和该用户之间的密钥来发送,即可以将第一ATK用组管理员和接收对端之间的PTK加密发给对端;将更新后的第三ATK用组管理员和接收对端之间的更新前的第三ATK、第一ATK或PTK加密发给对端;将更新后的GTK用组管理员和接收对端之间的更新前的GTK、第一ATK、第二ATK、更新后的第三ATK或PTK力口密发给对端。容易理解的是,在对保密性要求不太高的应用场景,可以将需要发送的密钥用户和组管理员之间任何已经保存的密钥发送。在用户离开组播组的情况下,所述组管理员注销与所述用户之间的PTK和所述用户与组成员共享的第一ATK,并更新GTK和注销的所述PTK之间的第三ATK和更新GTK,并保存更新后的第三ATK和更新后的GTK;将按照预先设置的组密钥组织方式作为注销的所述第一ATK的父节点的第三ATK进行更新后,得到的更新后的第三ATK作为与所述用户共享第一ATK的组成员的第一ATK保存;用保密方式发送更新后的第三ATK、更新后的GTK、作为第一ATK保存的第三ATK给与所述用户共享第一ATK的组成员;用保密方式发送更新后的第三ATK、更新后的GTK给与所述用户共享第三ATK的组成员;用保密方式发送更新后的GTK给其他组成员;与所述用户共享第一ATK的组成员接收并保存所述更新后的第三ATK、更新后的GTK、所述作为第一ATK保存的第三ATK;与所述用户共享第三ATK的组成员接收并保存所述更新后的第三ATK、更新后的GTK;其他组成员接收并保存更新后的GTK。同样的,根据保密级别的不同,具体可以采用多种保密方式发送密钥,比如若不希望其他任何用户获知用户本身的密钥,则可以仅用组管理员和该用户之间的密钥来发送,即可以将更新后的第三ATK用组管理员和接收对端之间的第一ATK或PTK力a密发给对端;可以将更新后的GTK用组管理员和接收对端之间的第一ATK、第二ATK、更新后的第三ATK或PTK加密发给对端。容易理解的是,在对保密性要求不太高的应用场景,可以将需要发送的17密钥用户和组管理员之间任何已经保存的密钥发送。下面通过更多的实施例对本发明进行详细叙述。本发明实施例的组播密钥管理方法是由组管理员在用户加入/离开事件发生时进行组播密钥的更新与下发。涉及到三种密钥类型PTK,GTK和ATK。PTK可以通过用户之间的4次握手协商生成,并为两方所共享;GTK是由生成的用户(即可以看作是组管理员)在使用之前协商生成的,并可以由PTK实施安全保护发送给另一用户;ATK是本发明实施例中定义的,用来辅助组播密钥的更新,可以采用不同的算法生成ATK。本发明的另一个实施例可以在组管理员和用户之间建立PTK之后,根据用户加入顺序构建密钥树,并在用户变更时对树中节点的布局作出调整以及根据调整的情况对用户的相关密钥(可以为GTK和ATK)进行调整。以在实现保密的同时提高密钥管理的效率。本发明的另一实施例的组播密钥管理方法包括在组通信开始之前,组管理员进行的初始化操作,包括生成GTK。在组通信开始后,组管理员进行对加入用户的管理操作,包括步骤1:要求加入组播的用户向组管理员进行注册,即声明与组管理员之间的私密关系。在UWB中,可以以双方进行4次握手协商作为注册实现过程,完成身份认证和PTK的共享。步骤2:注册完成后,组管理员预先设置的组密钥组织方式生成并保存针对该用户的ATK。步骤3:组管理员通过注册过程中双方共享的PTK的保护向该用户发送生成的所述ATK,该ATK作为第一ATK,该用户接收并保存该第一ATK。在UWB中,加入组播的用户可以向组管理员请求所述第一ATK,组管理员也可以直接向该用户发送所述第一ATK。将与所述用户共享第一ATK的组成员,在所述用户加入组播组之前保存的的第一ATK作为第三ATK保存。步骤4:组管理员根据预先设置的组密钥组织方式和生成ATK的不同算法,更新GTK和协商得到的所述PTK之间的第三ATK和GTK,并通过组管理员和对端用户之间的PTK的保护,分别向对端用户发送更新后的GTK和第三ATK。步骤5:参与组播的其他用户根据接收到的更新后的GTK进行本地更新;与新加入用户共享第一ATK的其他用户还根据接收到的第一ATK进行本地更新;与所述用户共享第三ATK的其他用户还根据接收到的更新后的第三ATK进行本地更新。在组通信开始后,组管理员还可以进行对离开用户的管理操作,包括步骤1:组管理员解除与要求离开组播的用户的私密关系;组管理员可以撤销其上保存的与该用户对应的PTK和第一ATK。组管理员可以自行确定某个用户的离开,也可以根据该用户的离开请求来确定。步骤2:组管理员更新GTK,以及GTK和注销的所述PTK之间的第三ATK,并通过组管理员和对端用户之间的PTK将更新后的GTK发送给组内其他各用户,将更新后的第三ATK发送给与该离开组播的用户共享第三ATK的其4也用户。步骤3:组播组中的其他用户根据接收到的更新后的GTK进行本地更新;与该离开的用户共享第三ATK的其他用户还根据接收到的更新后的第三ATK进行本地更新》在本发明实施例中,组管理员可以采用各种保密方式与对端用户之间的密钥,比如可以通过更新前的GTK的保护向对端用户发送更新后的GTK和ATK(此时可以以组播帧方式发送);通过更新前的ATK向对端用户发送更新后的GTK和ATK(此时可以以部分组播帧方式发送);也可通过组管理员和对端用户之间的PTK发送更新后的GTK和ATK(此时可以以单播帧方式发送)。19下面结合图3和图4对本发明实施例的用户加入和离开时的组播管理过程进行详细叙述。图中,PTKxY表示用户X和Y共享的私密钥,GTK表示用户A(即组管理员)发布的组播密钥。图3为本发明实施例的组播加入过程,加入顺序为B,C,D,E,F,G,包括过程一用户B加入组播组中,组管理员A与用户B协商得出它们之间的PTKAB,用户B和组管理员A保存该PTKAB;其次,组管理员A通过该PTKAB力口密发送其发布的GTK,用户B和组管理员A保存该GTK。过程二用户C加入组4番组中,组管理员A与用户C协商得出它们之间的PTKAC,用户C和组管理员A保存该PTKAc;其次,组管理员A通过该PTKAc加密发送更新后的GTK,即GTK1,用户C和组管理员A4呆存该GTK1,并且,组管理员A通近PTKab加密发送GTK1给组内已经存在的其他用户B。过程三用户D加入组播组中,组管理员A与用户D协商得出它们之间的PTKad,用户D和组管理员A保存该PTKAD;其次,组管理员A发送更新后的GTK1,即GTK2给新加入的用户D以及组内已经存在的其他用户B、C,并且,组管理员A生成AT^,由新加入的用户D和组内已经存在的用户B共享该ATf^,组管理员A通过加密方式发送该ATK,给用户D和B。过程四用户E加入组播组中,组管理员A与用户E协商得出它们之间的PTKae,用户E和组管理员A保存该PTKAE;其次,组管理员A发送更新后的GTK2,即GTK3给新加入的用户E以及组内已经存在的其他用户B、C、D,并且,组管理员A生成ATK2,由新加入的用户E和组内已经存在的用户C共享该ATK2,组管理员A通过加密方式发送该ATK2给用户E和C。过程五用户F加入组播组中,组管理员A与用户F协商得出它们之间的PTKAF,用户F和组管理员A保存该PTKAF;其次,组管理员A发送更新后的GTK3,即GTK4给新加入的用户F以及组内已经存在的其他用户B、C、D、E,并且,组管理员A生成ATK3,并更新原来的AT^为ATK卩,由新加入的用户F和组内已经存在的用户B共享该新生成的ATK3以及ATKV,组管理员A通过加密方式发送该ATK3以及AT^'给用户F和B,通过加密方式更新用户D上的ATK,为ATK"过程六用户G加入组播组中,组管理员A与用户G协商得出它们之间的PTKAG,用户G和组管理员A保存该PTKAG;其次,组管理员A发送更新后的GTK4,即GTK5给新加入的用户G以及组内已经存在的其他用户B、C、D、E、F,并且,组管理员A生成ATK4,并更新原来的ATK卩为ATK卩',由新加入的用户G和组内已经存在的用户D共享该新生成的ATK4以^ATK卩',组管理员A通过加密方式发送该ATK4以^ATK卩'给用户G和D,通过加密方式更新用户B、F、D上的ATK为ATK,'。在本发明实施例中,可以设置共享ATK的方式,即,可以采用图3所示的二叉树形式确定共享ATK的方式即,按照构造完全二叉树的方式确定用户和密钥之间的关系;也可以按照其他方式设置用户共享ATK的方式,比如设置叉树中的右子树为5个用户共享一个ATK,设置叉树中的左子树为2个用户共享一个ATK,等等。图4为本发明实施例的组播离开过程,离开顺序为B,G,E,F,C,D,包括过程一用户B离开组播组,组管理员A首先撤销和用户B之间的PTKAB以及用户B上保存的ATK3,并更新用户B上保存过的ATK^'为ATK(''以及用户B上保存过的GTK5为GTK6;其次,组管理员A发送GTK6给组播内的其他用户,以及加密发送A"HCT''给与用户B共享ATK/'的用户F。过程二用户G离开组播组,组管理员A首先撤销和用户G之间的PTKAG以及用户G上保存的ATK4,并更新用户G上保存过的ATK/''为ATK^T'''以及用户G上保存过的GTK6为GTK7;其次,组管理员A发送GTK7给组播内的其他用户,以及加密发送ATK^'''给与用户G共享ATK卩''的用户D。过程三用户E离开组播组,组管理员A首先撤销和用户E之间的PTKAE以及用户E上保存的ATK2,并更新用户E上保存过的GTK7为GTK8;其次,组管理员A发送GTK8给组播内的其他用户,以及撤销与用户E共享ATK2的用户C上的ATK2。过程四用户F离开组播组,组管理员A首先撤销和用户F之间的PTKAF以及用户F上保存过的ATK^''',并更新用户E上保存过的GTK8为GTK9;其次,组管理员A发送GTK9给组播内的其他用户,以及撤销与用户F共享ATK"T'''的用户D上的ATKV'''。过程五用户C离开组播组,组管理员A首先撤销和用户C之间的PTKac,并更新用户C上保存过的GTK9为GTK10;其次,组管理员A发送GTK10给组播内的其他用户。过程六最后一个用户D离开组播组,更新组管理员上保存的GTK10为GTK"。本发明实施例可以采用不同的算法生成ATK,比如可以采用伪随才几发生器或函数的方法,下面分别对这两种方法进行名又述。方法一伪随机发生器的方法。组播组中的组密钥组织方式可以为树形结构中的二叉逻辑树,如图5所示。树中叶节点(正方形)为组管理员与加入组的用户共享的私密钥PTK,一个PTK对应组中的一个用户(组管理员本身除外);根节点为组密钥GTK;位于前两者中间的节点为辅助密钥ATK。树为完全二叉树,每个节点均有左、右两个子节点(叶节点除外)以及一个父节点(根节点除外)。组密钥分发用户(即组管理员)作为整个组播组的管理者需要维护上述二叉树结构(二叉树存在方式可以由软件具体实现),组播组中的其他用户均维护一个PTK对应叶节点到根路径上的密钥集合,这些密钥获取自组密钥分发用22户的密钥更新报文数据中。可以使用伪随机发生器生成密钥,具体可以在伪随机发生器的输入端输入时间或特定的参数,将伪随机发生器的输出值作为密钥值。用户加入事件发生时的密钥更新算法描述可以如表1所示<table>tableseeoriginaldocumentpage23</column></row><table>其中,GC(GroupController)表示组密钥分发用户;M(Member)表示加入组的用户;X<=>Y表示X和Y之间的双向操作;X—>Y表示X向Y的单向操作;(X)Y表示使用Y加密X的操作;userset(K)表示以密钥K对应节点为根的子树中所用叶节点对应的用户。用户离开事件发生时的密钥更新算法可以如表2所示表2(1)M—>GC:{leaverequest}PTK(2)GC:findtheleavingpoint(parentofPTK)andremovePTKfromthetree;Letxj+1denotethedeletednodeforPTK,Xjdenoteleavingpoint;x0denotetherootandxMdenotetheparentofXi…,j);RandomlygeneratenewkeysGTK',.",ATK'jasthenewkeysofx0,…,Xj.(3)GC:fori=0tojdoLetK|,KrdenotekeysatthechildrenofXiinnewkeytree;LetCidenote{ATK'JK,,{ATK、}Kr.(4)GC—>userset(GTK):C0,…,C卜方法二函^:的方法。在该方法中,组播组中的組密钥组织方式也可以为树形结构中的二叉逻辑树。釆用函数的方式在更新密钥时,将需要更新的密钥(比如ATK)上直接相连的子节点分别进行单向函数变换,将单向函数变换后的结果进行混合函数变换,将所述混合函数变换后的结果作为更新后的密钥(比如该ATK)的具体值。比如在组密钥组织方式为完全二叉树的情况下,每个非叶节点有两个子节点,设非叶节点为K,两个子节点分别为KI和Kr,4艮据单向函数变换后分别为f(K,)和f(Kr)。则经混合函数变换后为《=g(/(A)'/(&》。例如,图6中碼=g(/CP7^),/(/TD)。用户加入事件发生时的密钥更新算法描述可以如表3所示表3(1)GC<=>M:4-wayhandshaketoauthenticatememberandnegotiateasharedPTK.(2)M—>GC:joinrequestasrequestoperationfrommemberordistributeoperationtomsmbsr.(3)GC:findajoiningpointandattachPTKtoitaschild;LetXjdenotethejoiningpoint,x0denotetherootanddenotetheparentofXi0=1.…,j);Letyidenotethebrotherof(i=1,…,j);LetGTK,ATK,,…,ATKjdenotetheoldkeysofx0,…,Xj;LetATKbi,…,ATKbjdenotethekeysofyi,…,yj;LetPTKbdenotethebrotherofPTK;RandomlygeneratenewkeyPTK'b.(4)GC—>userset(GTK):(f(ATK、》AL{f(ATK'j)}ATKbj,{f(PTK),PTK'b}PTKb.(5)GC-->M:{f(ATKb1),f(ATKbj),_f(PTK'b)}PTK._用户离开事件发生时的密钥更新算法描述可以如表4所示:表4^^1^>"^:{leaverequsst}PTK(2)GC:findtheleavingpoint(parentofPTK)andremovePTKfromthetree;LetXj"denotethedeletednodeforPTK,Xjdenoteleavingpoint;XodenotetherootandxMdenotetheparentofXi(i=1,…J);Letyidenotethebrotherofx',(i=1,…,j);LetGTK,ATKl…,ATKjdenotetheoldkeysofXo,",Xj;LetATKb1,…,ATKbjdenotethekeysofyi,…,y);LetPTKbdenotethebrotherofPTK;RandomlygeneratenewkeyPTK'b.(3)GC—>userset(GTK):{f(ATK')}ATKb1,(f(ATK'H))ATKbH,CTKbj.本发明实施例的一种组播密钥管理的系统,如图6所示,包括组管理员和至少两个组成员所述组管理员保存GTK和与各个组成员对应的PTK,并根据预先设置的组密钥组织方式生成并保存ATK,并通过保密方式向所述组播组的至少两个组成员发送所述ATK;所述ATK用于共享ATK的所述至少两个组成员与组管25行信息交互;所述组密钥组织方式包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的方式组织;所述至少两个组成员接收并保存所述ATK。所述组管理员包括第一单元,用于保存组临时密钥GTK;第二单元,用于保存与各个组成员对应的私有临时密钥PTK;第三单元,用于根据预先设置的组密钥组织方式生成并保存辅助临时密钥ATK;所述ATK用于共享ATK的所述至少两个组成员与组管理员进行信息交互,或者所述ATK用于共享ATK的所述至少两个组成员之间进行信息交互;密钥发送单元,用于通过保密方式发送密钥。所述组密钥组织方式包括完全二叉树的组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的完全二叉树方式组织;将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括PTK和第一ATK,或者两个不同的第一ATK,或者两个不同的第二ATK,或者第一ATK和第二ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK;所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第二ATK作为第三ATK;或者,预先设置的二叉树的组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的二叉树方式组织;将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括PTK和第一ATK,或者两个不同的第一ATK,或者两个不同的第二ATK,或者第一ATK和第二ATK,或者PTK和第二ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK;或者,预先设置的树形组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的树形方式组织;将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括至少一个第一ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK。本发明实施例能够降低用户离开时组播密钥更新的通信开销和时间延迟、提高组播的灵活度。本发明组密钥管理采用的树形结构能够使组密钥分发用户可以对组内用户分级管理,向需要的部分组内用户进行组播,具体方法是在以某个ATK为根节点的子树中的用户单独以该ATK作为加密密钥进行安全组播。如果希望进行组播的部分用户不在同一个子树之下,或者较为分散,也可以通过使用基于树形结构的调整算法,比如叶节点调整算法或者二叉树平衡算法进行调整后再组播,从而提高了组播的灵活度。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。权利要求1、一种组播密钥管理的方法,包括组播组中的组管理员上保存组临时密钥GTK和与各个组成员对应的私有临时密钥PTK,组播组中的组成员上保存所述GTK和组管理员与所述组成员之间的PTK,其特征在于,所述方法还包括组管理员根据预先设置的组密钥组织方式生成并保存辅助临时密钥ATK,并通过保密方式向所述组播组的至少两个组成员发送所述ATK;所述至少两个组成员接收并保存所述ATK;所述组密钥组织方式包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的方式组织;所述ATK用于共享ATK的所述至少两个组成员与组管理员进行信息交互,或者所述ATK用于共享ATK的所述至少两个组成员之间进行信息交互。2、如权利要求1所述的方法,其特征在于,所述生成ATK的方法包括使用伪随机发生器生成ATK;或者,将所述ATK上直接相连的子节点分别进行单向函数变换,将单向函数变换后的结果进行混合函数变换,将所述混合函数变换后的结果作为所述ATK的具体值。3、如权利要求1或2所述的方法,其特征在于,所述组密钥组织方式包括完全二叉树的组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的完全二叉树方式组织;将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括PTK和第一ATK,或者两个不同的第一ATK,或者两个不同的第二ATK,或者第一ATK和第二ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK;所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第二ATK作为第三ATK;或者,预先设置的二叉树的组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的二叉树方式组织;将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括PTK和第一ATK,或者两个不同的第一ATK,或者两个不同的第二ATK,或者第一ATK和第二ATK,或者PTK和第二ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK;或者,预先设置的树形组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的树形方式组织;将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括至少一个第一ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK。4、如权利要求3所述的方法,其特征在于,所述方法包括在用户加入组播组的情况下,所述组管理员与所述用户协商得到与所述用户之间的PTK、按照预先设置的密钥组织方式生成第一ATK,并保存所述PTK和所述第一ATK;将与所述用户共享第一ATK的组成员,在所述用户加入组播组之前保存的第一ATK作为第三ATK保存;用保密方式发送所述PTK、所述第一ATK、GTK和协商得到的所述PTK之间的第三ATK、GTK给所述用户;用保密方式发送所述第一ATK给按照所述预先设置的密钥组织方式与所述用户共享第一ATK的组成员;所述用户接收并保存所述PTK、所述第一ATK,所述第三ATK、所述GTK;与所述用户共享第一ATK的组成员接收并保存所述第一ATK。5、如权利要求4所述的方法,用保密方式发送第一ATK、所述第三ATK或GTK的方法包括将第一ATK用组管理员和接收对端之间的PTK加密发给对端;将第三ATK用组管理员和接收对端之间的第一ATK或PTK加密发给对端;将GTK用组管理员和接收对端之间的第一ATK、第二ATK或PTK力卩密发给对端。6、如权利要求3所述的方法,其特征在于,所述方法包括在用户加入组播组的情况下,所述组管理员与所述用户协商得到与所述用户之间的PTK、按照预先设置的密钥组织方式生成第一ATK、更新GTK和协商得到的所述PTK之间的第三ATK、更新GTK;并保存所述PTK、第一ATK、更新后的所述第三ATK、更新后的GTK;将与所述用户共享第一ATK的组成员,在所述用户加入组,潘组之前保存的第一ATK作为第三ATK保存;用保密方式发送所述PTK、所述第一ATK、更新后的所述第三ATK和更新后的GTK给所述用户;用保密方式发送所述第一ATK、更新后的所述第三ATK和更新后的GTK给按照所述预先设置的密钥组织方式与所述用户共享第一ATK的组成员;用保密方式发送更新后的所述第三ATK和更新后的GTK给按照所述预先设置的密钥组织方式与所述用户共享第三ATK的组成员;用保密方式发送更新后的GTK给其他组成员;所述用户接收并保存所述PTK、所述第一ATK、更新后的所述第三ATK和更新后的GTK;与所述用户共享第一ATK的组成员接收并保存所述第一ATK、更新后的所述第三ATK和更新后的GTK;与所述用户共享第三ATK的组成员接收并保存更新后的所述第三ATK和更新后的GTK;其他组成员接收并保存所述更新后的GTK。7、如权利要求6所述的方法,其特征在于,所述用保密方式发送第一ATK、更新后的第三ATK或更新后的GTK的方法包括将第一ATK用组管理员和接收对端之间的PTK力口密发给对端;将更新后的第三ATK用组管理员和接收对端之间的更新前的第三ATK、第一ATK或PTK加密发给对端;将更新后的GTK用组管理员和接收对端之间的更新前的GTK、第一ATK、第二ATK、更新后的第三ATK或PTK加密发给对端。8、如权利要求3所述的方法,其特征在于,所述方法包括在用户离开组播组的情况下,所述组管理员注销与所述用户之间的PTK和所述用户与组成员共享的第一ATK,并更新GTK和注销的所述PTK之间的第三ATK和更新GTK,并保存更新后的第三ATK和更新后的GTK;将按照预先设置的组密钥组织方式作为注销的所述第一ATK的父节点的第三ATK进行更新后,得到的更新后的第三ATK作为与所述用户共享第一ATK的组成员的第一ATK保存;用保密方式发送更新后的第三ATK、更新后的GTK、作为第一ATK保存的第三ATK给与所述用户共享第一ATK的组成员;用保密方式发送更新后的第三ATK、更新后的GTK给与所述用户共享第三ATK的组成员;用保密方式发送更新后的GTK给其他组成员;与所述用户共享第一ATK的组成员接收并保存所述更新后的第三ATK、更新后的GTK、所述作为第一ATK保存的第三ATK;与所述用户共享第三ATK的组成员接收并保存所述更新后的第三ATK、更新后的GTK;其他组成员接收并保存更新后的GTK。9、如权利要求8所述的方法,其特征在于,所述用保密方式发送更新后的第三ATK或更新后的GTK的方法包括将更新后的第三ATK用组管理员和接收对端之间的第一ATK或PTK加密发给对端;将更新后的GTK用组管理员和接收对端之间的第一ATK、第二ATK、更新后的第三ATK或PTK力口密发给对端。10、一种组管理员,包括第一单元,用于保存组临时密钥GTK;第二单元,用于保存与各个组成员对应的私有临时密钥PTK;其特征在于,所述组管理员还包括第三单元,用于根据预先设置的组密钥组织方式生成并保存辅助临时密钥ATK;所述ATK用于共享ATK的所述至少两个组成员与组管理员进行信息交互,或者所述ATK用于共享ATK的所述至少两个组成员之间进行信息交互;所述组密钥组织方式包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的方式组织;密钥发送单元,用于通过保密方式发送密钥。11、如权利要求10所述的组管理员,其特征在于,所述组密钥组织方式包括完全二叉树的组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的完全二叉树方式组织;将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括PTK和第一ATK,或者两个不同的第一ATK,或者两个不同的第二ATK,或者第一ATK和第二ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK;所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第二ATK作为第三ATK;或者,预先设置的二叉树的组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的二叉树方式组织;将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括PTK和第一ATK,或者两个不同的第一ATK,或者两个不同的第二ATK,或者第一ATK和第二ATK,或者PTK和第二ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK;或者,预先设置的树形组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的树形方式组织;将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括至少一个第一ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK。12、一种组播密钥管理的系统,包括组管理员和至少两个组成员,其特征在于,所述组管理员保存GTK和与各个组成员对应的PTK,并根据预先设置的组密钥组织方式生成并保存ATK,并通过保密方式向所述组播组的至少两个组成员发送所^4ATK;所述ATK用于共享ATK的所述至少两个组成员与组管理员进行信息交互,或者所述ATK用于共享ATK的所述至少两个组成员之间进行信息交互;所述组密钥组织方式包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的方式组织;所述至少两个组成员接收并保存所iiATK。13、如权利要求12所述的系统,其特征在于,所述组管理员包括第一单元,用于保存组临时密钥GTK;第二单元,用于保存与各个组成员对应的私有临时密钥PTK;第三单元,用于根据预先设置的组密钥组织方式生成并保存辅助临时密钥ATK;所述ATK用于共享ATK的所述至少两个组成员与组管理员进行信息交互,或者所iiATK用于共享ATK的所述至少两个组成员之间进行信息交互;密钥发送单元,用于通过保密方式发送密钥。14、如权利要求12或13所述的系统,其特征在于,所述组密钥组织方式包括完全二叉树的组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的完全二叉树方式组织;将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括PTK和第一ATK,或者两个不同的第一ATK,或者两个不同的第二ATK,或者第一ATK和第二ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK;所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第二ATK作为第三ATK;或者,预先设置的二叉树的组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的二叉树方式组织;将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括PTK和第一ATK,或者两个不同的第一ATK,或者两个不同的第二ATK,或者第一ATK和第二ATK,或者PTK和第二ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK;或者,预先设置的树形组密钥组织方式,包括各个密钥按照以GTK作为根节点,各PTK作为叶节点,各ATK作为中间节点的树形方式组织;将子节点均为PTK的ATK作为第一ATK,将其他ATK作为第二ATK;所述第二ATK的子节点包括至少一个第一ATK;保存了特定PTK的组成员上,保存所述作为根节点的GTK和作为叶节点的所述特定PTK之间的路径上的所有第一ATK和第二ATK。全文摘要一种组播密钥管理的方法、装置及系统,该方法包括组播组中的组管理员上保存GTK和与各个组成员对应的PTK,组播组中的组成员上保存所述GTK和组管理员与所述组成员之间的PTK,组管理员根据预先设置的组密钥组织方式生成并保存ATK,并通过保密方式向所述组播组的至少两个组成员发送所述ATK;所述至少两个组成员接收并保存所述ATK;所述ATK用于共享ATK的所述至少两个组成员与组管理员进行信息交互,或者所述ATK用于共享ATK的所述至少两个组成员之间进行信息交互。本发明实施例达到降低组播密钥更新的通信开销和时间延迟,提高组播的灵活度的技术效果。文档编号H04L9/30GK101677271SQ200810222648公开日2010年3月24日申请日期2008年9月19日优先权日2008年9月19日发明者培刘,张向东,洋李,阳辛申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1