多方通信中共享密钥的方法

文档序号:10491945阅读:659来源:国知局
多方通信中共享密钥的方法
【专利摘要】一种多方通信中共享密钥的方法,应用于一多方通信系统中,该多方通信系统包括至少三个通信端参与当前多方通信,该方法包括:从至少三个通信端中确定出一主持者;该主持者对其他通信端按照一第一预定顺序排序,并与排在第一位的第一通信端进行共享密钥协商;该主持者按照所述第一预定顺序依次与该第一通信端之后的通信端进行共享密钥协商;在每次协商出共享密钥之后,以前一次协商的共享密钥对本次协商的共享密钥进行加密,并将加密后的共享密钥通知给本次密钥协商之前的共享密钥协商过程所涉及的通信端;以及所有参与当前多方通信的通信端使用最后一次共享密钥协商过程协商出的共享密钥进行加密通信。该方法能够实现多方通信中密钥的共享。
【专利说明】
多方通信中共享密钥的方法
技术领域
[0001]本发明涉及网络通信技术,具体而言,涉及一种多方通信中共享密钥的方法。
【背景技术】
[0002]通常,当多个通信方在公共信道上传输数据时,需要保证通信的安全性,因此需要对传输内容进行加解密。以智能家居领域为例,一个家中多个不同品牌的家电使用相同技术进行组网,这个组成的网络即可以看成是一条公共信道。但因各个厂家均有一些敏感数据不希望被其他厂家的家电捕获到,因此同个厂家生产的家电彼此间在该网络中进行通信时,需要对传输内容进行加解密处理。通常使用AES算法进行加解密。
[0003]图1是根据一不例不出的多方通信场景不意图。在图1中,以两个厂家的家电产品为例,其中矩形表示厂家I,包括产品:IA?ID;椭圆表示厂家2,包括产品:2A?2B。各产品通过公共信道CCH进行通信。
[0004]如果是产品IA和IB通信,目前业界的通行做法为:(I)IA生成自己的ECC(Ellipticcurve cryptography,椭圆曲线密码学)算法公钥ecc_lA_puk_key及私钥ecc_lA_priv_key; (2) IB生成自己的ECC算法公钥ecc_lB_puk_key及私钥ecc_lB_priv_key; (3) IA通过公共信道CCH将其的ECC算法公钥eCC_lA_puk_key传输给1B;(4)1B通过公共信道CCH将其的ECC算法公钥ecc_lB_puk_key传输给IA; (5)1A和IB分别计算ECDH(Elliptic curveDiffie-Hel Iman,椭圆曲线密钥交换)共享秘密,并根据共享秘密生成AES算法共享密钥share_key;(6)之后,IA和IB在公共信道CCH上使用共享密钥Share_key对传输内容进行AES加解密。
[0005]该方案是为了解决两两通信而设计的标准方案,也即是说通信方只有两个,这两个通信方之间共享密钥,而公共信道上的其他通信方不参与通信。而当多方(超过两方)通信时,如将图1中的IC和ID也加入到通信中,构成通信组[1A,IB,1C,1D],该组中任意一方(如1A)发送的数据要求组中各方(如1B,IC和1D)都能接收并解密,则上述两两通信的方案不再适用。
[0006]在所述【背景技术】部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。

【发明内容】

[0007]有鉴于此,本发明提供一种多方通信中共享密钥的方法,能够实现多方通信中密钥的共孚。
[0008]本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
[0009]根据本发明的一方面,提供了一种多方通信中共享密钥的方法,应用于一多方通信系统中,所述多方通信系统包括至少三个通信端参与当前多方通信,所述方法包括:从所述至少三个通信端中确定出一主持者;所述主持者对其他通信端按照一第一预定顺序排序,并与排在第一位的第一通信端进行共享密钥协商;所述主持者按照所述第一预定顺序依次与所述第一通信端之后的通信端进行共享密钥协商;在每次协商出共享密钥之后,以前一次协商的共享密钥对本次协商的共享密钥进行加密,并将加密后的共享密钥通知给本次密钥协商之前的共享密钥协商过程所涉及的通信端;以及所有参与当前所述多方通信的通信端使用最后一次共享密钥协商过程协商出的共享密钥进行加密通信。
[0010]根据本发明的一实施方式,上述方法还包括:当所述其他通信端的至少其中之一退出时,所述主持者按照一第二预定顺序重新对参与当前所述多方通信的通信端进行排序,并与排在第一位的第二通信端进行共享密钥协商;所述主持者按照所述第二预定顺序依次与所述第二通信端之后的通信端进行共享密钥协商;在每次协商出密钥之后,以前一次协商的共享密钥对本次协商的共享密钥进行加密,并将加密后的共享密钥通知给本次密钥协商之前的共享密钥协商过程所涉及的通信端;以及所有参与当前所述多方通信的通信端使用最后一次共享密钥协商过程协商出的共享密钥进行加密通信。
[0011]根据本发明的一实施方式,所述第一预定顺序与所述第二预定顺序相同。
[0012]根据本发明的一实施方式,上述方法还包括:所述主持者定时向所有参与当前所述多方通信的通信端广播心跳包;以及当参与当前所述多方通信的通信端在一预设时间内没有收到所述主持者广播的所述心跳包时,参与当前所述多方通信的通信端协商重新确定新的主持者。
[0013]根据本发明的一实施方式,上述方法还包括:当所述主持者决定退出当前所述多方通信时,所述主持者向所有参与当前所述多方通信的通信端发送一通知消息。
[0014]根据本发明的一实施方式,所述通知消息包括所述主持者确定的新的主持者。
[0015]根据本发明的一实施方式,上述方法还包括:参与当前所述多方通信的通信端协商重新确定新的主持者。
[0016]根据本发明的一实施方式,从所述至少三个通信端中确定出一主持者包括:从所述至少三个通信端中选出最先加入当前所述多方通信的通信端为所述主持者。
[0017]根据本发明的一实施方式,所述第一预定顺序包括:加入当前所述多方通信的先后顺序。
[0018]根据本发明的一实施方式,上述方法还包括:当所述其他通信端的至少其中之二同时加入当前所述多方通信时,随机对同时加入的通信端进行排序。
[0019]根据本发明的一实施方式,所述密钥协商过程包括通过E⑶H协商AES共享密钥。
[0020]根据本发明的多方通信中共享密钥的方法,能够实现多方通信时密钥快速、有效协商和共享,在保证多方通信安全性的同时,提高了通信的效率和加密效果。
[0021]另外,根据一些实施例,本发明的多方通信中共享密钥的方法,还可以进一步处理当前主持者异常退出的情况,使当前参与多方通信的通信端可以重新选出新的主持者继续主持多方通信。
[0022]根据另一些实施例,本发明的多方通信中共享密钥的方法,还可以进一步处理当前主持者正常退出的情况,使当前参与多方通信的通信端可以重新选出新的主持者或者由原来的主持者指定新的主持者继续主持多方通信。
[0023]应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
【附图说明】
[0024]通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。
[0025]图1是根据一示例示出的多方通信场景示意图。
[0026]图2是根据一示例性实施方式示出的一种多方通信中共享密钥的方法的流程图。
[0027]图3是根据一示例性实施方式示出的另一种多方通信中共享密钥的方法的流程图。
[0028]图4是是根据一示例性实施方式示出的再一种多方通信中共享密钥的方法的流程图。
[0029]图5是是根据一示例性实施方式示出的再一种多方通信中共享密钥的方法的流程图。
【具体实施方式】
[0030]现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
[0031]此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免喧宾夺主而使得本发明的各方面变得模糊。
[0032]图2是根据一示例性实施方式示出的一种多方通信中共享密钥的方法的流程图。该方法适用于一多方通信系统,该多方通信系统包括至少三个通信端参与当前多方通信。多方通信系统例如可以如图1所示,其中公共信道CCH可以为有线信道也可以为无线信道,本发明不以此为限。如图2所示,多方通信中共享密钥的方法10包括:
[0033]在步骤S102中,从上述至少三个通信端中确定出一主持者。
[0034]以三个通信端A、B、C为例,例如,可以确定第一个加入多方通信的通信端A为主持者,但本发明不以此为限。
[0035]在步骤S104中,该主持者对其他通信端按照一预定顺序排序,并与排在第一位的通信端进行共享密钥协商。
[0036]仍以三个通信端A、B、C为例,主持者例如为通信端A,预定顺序例如可以为通信端B和C加入该多方通信的顺序,但本发明不以此为限,例如还可以为通信端ID(如MAC地址)的大小顺序,或者还可以随机排序等。假设通信端B早于通信端C加入该多方通信,则主持者A先与通信端B进行共享密钥协商。以主持者A通过ECDH协商AES共享密钥为例,具体的协商方法可以为:
[0037](I)主持者A生成自己的ECC算法公钥ecc_A_puk_key及私钥ecc_A_priv_key ;
[0038](2)通信端B生成自己的ECC算法公钥ecc_B_puk_key及私钥ecc_B_priv_key;
[0039](3)主持者A将其的ECC算法公钥eCC_A_puk_key传输给通信端B;
[0040](4)通信端B将其的ECC算法公钥eCC_B_puk_key传输给主持者A;
[0041 ] (5)主持者A和通信端B分别计算ECDH共享秘密,并根据共享秘密生成AES算法共享密钥 AES_key_ab。
[0042]在步骤S106中,该主持者按照该预定顺序依次与后续通信端进行共享密钥协商;在每次协商出共享密钥之后,以前一次协商的共享密钥对本次协商的共享密钥进行加密,并将加密后的共享密钥通知给本次密钥协商之前的共享密钥协商过程所涉及的通信端。
[0043]例如,主持者A继续与通信端C进行共享密钥协商,具体协商方法可以参见步骤S104中主持者A与通信端B的共享密钥协商方法。当主持者A与通信端C协商出共享密钥AES_key_abc后,主持者A使用前次与通信端B协商出的共享密钥AES_key_ab对共享密钥AES_key_abc进行加密,并将该加密后的共享密钥AES_key_abc发送给本次密钥协商之前的共享密钥协商过程所涉及的通信端B,之后通信端(主持者)A、B、C之间使用共享密钥AES_key_abc进行加密通信。
[0044]如果多方通信中还包括通信端D,且通信端D加入多方通信的时间晚于通信端B和C,则主持者A再继续与通信端D协商共享密钥,得到共享密钥AES_key_abcd,具体协商共享密钥的方法仍可参见步骤S104中主持者A与通信端B的共享密钥协商方法。之后,主持者A使用前次与通信端C协商出的共享密钥AES_key_abc对共享密钥AES_key_abcd进行加密,并将该加密后的共享密钥AES_key_abcd发送给本次密钥协商之前的共享密钥协商过程所涉及的通信端B和C,之后通信端(主持者)A、B、C、D之间使用共享密钥AES_key_abcd进行加密通
?目O
[0045]如果多方通信中还包括通信端E,且通信端E加入多方通信的时间晚于通信端B、C和D,则主持者A再继续与通信端E协商共享密钥,得到共享密钥AES_key_abCde,具体协商共享密钥的方法仍可参见步骤S104中主持者A与通信端B的共享密钥协商方法。之后,主持者A使用前次与通信端D协商出的共享密钥AES_key_abcd对共享密钥AES_key_abCde进行加密,并将该加密后的共享密钥AES_key_abCde发送给本次密钥协商之前的共享密钥协商过程所涉及的通信端B、C和D,之后通信端(主持者)A、B、C、D、E之间使用共享密钥AES_key_abcde进行加密通信。
[0046]如果还有更多的通信端加入该多方通信,共享密钥协商过程如上所述,在此不再赘述。
[0047]在一些实施例中,如果采用的预定顺序为通信端加入多方通信端的先后顺序,但例如通信端D和E同时到达,本方法还可以为对通信端B和C采用加入多方通信的先后顺序做上述处理,而在确定通信端D和E的顺序时,则采用其他顺序,如上述的随机排序,或通信端ID大小排序等对通信端D和E进行排序,再按照上述方法分别协商出通信组[A,B,C,D]和[A,B,C,D,E]的共享密钥。
[0048]在步骤S108中,所有参与该多方通信的通信端使用最后一次共享密钥协商过程协商出的共享密钥进行加密通信。
[0049]本发明实施方式的多方通信中共享密钥的方法,能够实现多方通信时密钥快速、有效协商和共享,在保证多方通信安全性的同时,提高了通信的效率和加密效果。
[0050]应清楚地理解,本发明描述了如何形成和使用特定示例,但本发明的原理不限于这些示例的任何细节。相反,基于本发明公开的内容的教导,这些原理能够应用于许多其它实施方式。
[0051]图3是根据一示例性实施方式示出的另一种多方通信中共享密钥的方法的流程图。该方法仍旧适用于多方通信系统,该多方通信系统包括至少三个通信端。多方通信系统例如可以如图1所示,其中公共信道CCH可以为有线信道也可以为无线信道,本发明不以此为限。如图3所示,多方通信中共享密钥的方法20包括:
[0052]在步骤S202中,在协商出所有参与多方通信的通信端的共享密钥后,当有参与该多方通信的通信端退出时,主持者按照一预定顺序重新对当前参与多方通信的通信端进行排序。
[0053]该预定顺序可以与方法10的共享密钥协商过程中采用的预定顺序相同,也可以不同。
[0054]在步骤S204中,该主持者与排在第一位的通信端进行共享密钥协商。
[0055]在步骤S206中,该主持者按照该预定顺序依次与后续通信端进行共享密钥协商;在每次协商出密钥之后,以前一次协商的共享密钥对本次协商的共享密钥进行加密,并将加密后的共享密钥通知给本次密钥协商之前的共享密钥协商过程所涉及的通信端。
[0056]在步骤S208中,当前所有参与该多方通信的通信端使用最后一次共享密钥协商过程协商出的共享密钥进行加密通信。
[0057]本发明实施方式的多方通信中共享密钥的方法,还可以进一步处理中途有通信端退出多方通信的情况,使当前参与多方通信的通信端可以使用更新后的共享密钥继续通
?目O
[0058]在上述多方通信中共享密钥的方法10和20中,为了确保当前多方通信中始终有一位主持者,本发明实施方式还进一步提供了处理当前主持者异常退出情况的方法。图4是是根据一示例性实施方式示出的再一种多方通信中共享密钥的方法的流程图。如图4所示,多方通信中共享密钥的方法30包括:
[0059]在步骤S302中,主持者定时向当前所有参与该多方通信的通信端广播一心跳包。
[0060]仍以当前多方通信组为[A,B,C,D,E]。主持者A基于定时器定时向通信端B、C、D和E广播心跳包。
[0061]在步骤S304中,当参与该多方通信的通信端在一预设时间内没有收到主持者广播的心跳包,则参与该多方通信的通信端协商重新选择一新的主持者。
[0062]例如,通信端B、C、D和E发现在一预设时间内没有收到主持者A广播的心跳包,通信端B、C、D和E协商从通信端B、C、D和E中选出新的主持者。选择新的主持者的方法也可以按照上述根据通信端B、C、D和E加入多方通信的顺序选出,或随机排序选出,或按照通信端ID大小排序选出等,本发明不以此为限。
[0063]为了避免因丢包而造成的虚假检测主持者A异常退出,预设时间可以大于主持者A定时广播心跳包的定时周期,例如可以为N个定时周期,N例如可以为2?5,但本发明不以此为限。
[0064]此外,当选出新的主持者后,还可以按照多方通信中共享密钥的方法20中的步骤,由新的主持者重新主持协商出通信组[B,C,D,E]新的共享密钥。
[0065]本发明实施方式的多方通信中共享密钥的方法,还可以进一步处理当前主持者异常退出的情况,使当前参与多方通信的通信端可以重新选出新的主持者继续主持多方通
?目O
[0066]此外,在上述多方通信中共享密钥的方法10和20中,为了确保当前多方通信中始终有一位主持者,本发明实施方式还进一步提供了处理当前主持者正常退出情况的方法。图5是是根据一示例性实施方式示出的再一种多方通信中共享密钥的方法的流程图。如图5所示,多方通信中共享密钥的方法40包括:
[0067]在步骤S402中,当主持者决定退出当前的多方通信时,该主持者向当前所有参与该多方通信的通信端发送一个通知消息。
[0068]仍以当前多方通信组为[A,B,C,D,E]。主持者A决定退出当前的多方通信时,主持者A向当前所有参与该多方通信的通信端发送一个通知消息。该通知消息中可以包括由主持者A指定的新的主持者,例如主持者A按照上述根据通信端B、C、D和E加入多方通信的顺序,或随机排序,或按照通信端ID大小排序选出新的主持者,本发明不以此为限。
[0069]或者主持者A也可以不选出新的主持者,而由通信端B、C、D和E协商选出新的主持者。也即该通知消息中不包括主持者A指定的新的主持者。
[0070]在步骤S404中,当参与该多方通信的通信端收到该通知消息时,如果该通知消息中携带有新的主持者,则参与该多方通信的通信端由该新的主持者继续主持该多方通信;如果该通知消息中没有携带有新的主持者,则参与该多方通信的通信端协商选出新的主持者。
[0071 ] 例如,如果原主持者A选出新的主持者为通信端B,并通过通知消息通知给通信端B、C、D和E,则后续由主持者B继续主持通信组[B,C,D,E ]的通信。
[0072]而如果原主持者A没有选出新的主持者,则通信端B、C、D和E协商从通信端B、C、D和E中选出新的主持者。选择新的主持者的方法也可以按照上述根据通信端B、C、D和E加入多方通信的顺序选出,或随机排序选出,或按照通信端ID大小排序选出等,本发明不以此为限。例如,选出新的主持者为通信端B,则后续由主持者B继续主持通信组[B,C,D,E]的通信。
[0073]此外,当选出新的主持者后,还可以按照多方通信中共享密钥的方法20中的步骤,由新的主持者重新主持协商出通信组[B,C,D,E]新的共享密钥。
[0074]本发明实施方式的多方通信中共享密钥的方法,还可以进一步处理当前主持者正常退出的情况,使当前参与多方通信的通信端可以重新选出新的主持者或者由原来的主持者指定新的主持者继续主持多方通信。
[0075]本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被(PU执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
[0076]此外,需要注意的是,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0077]通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本发明实施方式的方法。
[0078]以上具体地示出和描述了本发明的示例性实施方式。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
【主权项】
1.一种多方通信中共享密钥的方法,应用于一多方通信系统中,所述多方通信系统包括至少三个通信端参与当前多方通信,其特征在于,所述方法包括: 从所述至少三个通信端中确定出一主持者; 所述主持者对其他通信端按照一第一预定顺序排序,并与排在第一位的第一通信端进行共享密钥协商; 所述主持者按照所述第一预定顺序依次与所述第一通信端之后的通信端进行共享密钥协商;在每次协商出共享密钥之后,以前一次协商的共享密钥对本次协商的共享密钥进行加密,并将加密后的共享密钥通知给本次密钥协商之前的共享密钥协商过程所涉及的通信端;以及 所有参与当前所述多方通信的通信端使用最后一次共享密钥协商过程协商出的共享密钥进行加密通信。2.根据权利要求1所述的方法,其特征在于,还包括: 当所述其他通信端的至少其中之一退出时,所述主持者按照一第二预定顺序重新对参与当前所述多方通信的通信端进行排序,并与排在第一位的第二通信端进行共享密钥协商; 所述主持者按照所述第二预定顺序依次与所述第二通信端之后的通信端进行共享密钥协商;在每次协商出密钥之后,以前一次协商的共享密钥对本次协商的共享密钥进行加密,并将加密后的共享密钥通知给本次密钥协商之前的共享密钥协商过程所涉及的通信端;以及 所有参与当前所述多方通信的通信端使用最后一次共享密钥协商过程协商出的共享密钥进行加密通信。3.根据权利要求2所述的方法,其特征在于,所述第一预定顺序与所述第二预定顺序相同。4.根据权利要求1所述的方法,其特征在于,还包括: 所述主持者定时向所有参与当前所述多方通信的通信端广播心跳包;以及 当参与当前所述多方通信的通信端在一预设时间内没有收到所述主持者广播的所述心跳包时,参与当前所述多方通信的通信端协商重新确定新的主持者。5.根据权利要求1所述的方法,其特征在于,还包括:当所述主持者决定退出当前所述多方通信时,所述主持者向所有参与当前所述多方通信的通信端发送一通知消息。6.根据权利要求5所述的方法,其特征在于,所述通知消息包括所述主持者确定的新的主持者。7.根据权利要求5所述的方法,其特征在于,还包括:参与当前所述多方通信的通信端协商重新确定新的主持者。8.根据权利要求1所述的方法,其特征在于,从所述至少三个通信端中确定出一主持者包括:从所述至少三个通信端中选出最先加入当前所述多方通信的通信端为所述主持者。9.根据权利要求1所述的方法,其特征在于,所述第一预定顺序包括:加入当前所述多方通信的先后顺序。10.根据权利要求9所述的方法,其特征在于,还包括:当所述其他通信端的至少其中之二同时加入当前所述多方通信时,随机对同时加入的通信端进行排序。11.根据权利要求1-10任一项所述的方法,其特征在于,所述密钥协商过程包括通过E⑶H协商AES共享密钥。
【文档编号】H04L29/06GK105847002SQ201610393551
【公开日】2016年8月10日
【申请日】2016年6月6日
【发明人】张华
【申请人】北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1