一种双向密钥的切换方法及实现装置转让专利

申请号 : CN201210286523.8

文献号 : CN103595527B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 铁满霞李琴布宁

申请人 : 西安西电捷通无线网络通信股份有限公司

摘要 :

本发明公开了一种双向密钥的切换方法及实现装置。其中,方法包括:通信链路中的任一端在获得新密钥时设置新密钥发送方向不可用并设置新密钥接收方向可用;所述任一端在推定或确定至少n个对端获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用;其中,N≥n≥1,N为所述发送方对应的接收方的总数量;所述任一端根据所述对端发送数据的保护标识选择有效的密钥进行解保护;所述任一端在第一次用所述新密钥成功解保护所述数据后启动第二密钥切换过程,将原密钥接收方向设置为不可用。本发明通过限定通信链路上各端进行密钥切换的顺序,保证了任一端都能够正确解保护对端发送的数据。

权利要求 :

1.一种双向密钥的切换方法,其特征在于,所述方法包括:通信链路中的任一端在获得新密钥时设置新密钥发送方向不可用并设置新密钥接收方向可用;

所述任一端在推定或确定其至少n个对端获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用;其中,N≥n≥1,其中N为所述发送方对应的接收方的总数量;

先获得所述新密钥的一端发送第一密钥更新消息至其对端,所述第一密钥更新消息包括新密钥信息,其对端根据所述第一密钥更新消息获得所述新密钥;

所述任一端根据其对端发送数据的保护标识选择有效的密钥进行解保护;

所述任一端在第一次用所述新密钥成功解保护其对端发送的数据后启动第二密钥切换过程,将原密钥接收方向设置为不可用;

其中,

所述任一端在推定或确定其至少n个对端获得了所述新密钥后,原密钥失效前启动第一密钥切换过程具体包括:所述先获得所述新密钥的一端在推定其至少n个对端获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,具体为:所述先获得所述新密钥的一端在发送第一密钥更新消息后的第一时间间隔时刻启动第一密钥切换过程;或,所述先获得所述新密钥的一端在发送第一数据帧号的数据至其对端的时刻启动第一密钥切换过程;

对于所述先获得所述新密钥的一端,其对端在根据所述第一密钥更新消息获得所述新密钥后的第二时间间隔时刻启动第一密钥切换过程;

其中,所述第一时间间隔大于所述第一密钥更新消息的传输延迟;所述第一数据帧号由所述先获得新密钥的一端设置且大于所述先获得新密钥的一端在发送所述第一密钥更新消息前的使用的最大数据帧号,发送第一数据帧号的数据的时刻与发送第一密钥更新消息的时刻之间的时间间隔要大于第一密钥更新消息的传输延迟;所述第二时间间隔不大于所述原密钥的剩余有效期;

或,

所述先获得所述新密钥的一端在确定其至少n个对端获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,具体为:对于所述先获得所述新密钥的一端,其对端在根据所述第一密钥更新消息获得所述新密钥后发送第二密钥更新消息至所述先获得所述新密钥的一端;

所述先获得所述新密钥的一端在接收到所述第二密钥更新消息后的第三时间间隔时刻启动第一密钥切换过程;

对于所述先获得所述新密钥的一端,其对端在发送所述第二密钥更新消息后的第四时间间隔时刻启动第一密钥切换过程;或,其对端在发送第二数据帧号的数据至所述先获得所述新密钥的一端的时刻启动第一密钥切换过程;

其中,所述第三时间间隔或所述第四时间间隔不大于所述原密钥的剩余有效期;所述第二数据帧号由所述先获得新密钥的一端的对端设置并通过所述第二密钥更新消息发送至所述先获得新密钥的一端;所述第二数据帧号的设置大于所述先获得新密钥的一端的对端在发送所述第二密钥更新消息前使用的最大数据帧号。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述任一端在获得所述新密钥前发送密钥更新请求消息至其对端;

所述先获得所述新密钥的一端发送第一密钥更新消息至其对端包括:所述先获得所述新密钥的一端在获得所述新密钥时根据所述密钥更新请求消息发送所述第一密钥更新消息至其对端。

3.根据权利要求1-2任一项所述的方法,其特征在于,

所述新密钥信息为所述先获得所述新密钥的一端利用所述先获得新密钥的一端和其对端的共享信息对所述新密钥保护后的密文;

对于所述先获得新密钥的一端,其对端根据所述第一密钥更新消息获得所述新密钥包括:所述先获得新密钥的一端的对端对所述新密钥信息解保护后获得所述新密钥;

或,

所述新密钥信息为所述先获得所述新密钥的一端利用所述先获得新密钥的一端和其对端的共享信息对第一参数保护后的密文;其中,所述第一参数为用于生成所述新密钥的参数;

所述方法还包括:

所述先获得新密钥的一端利用约定的密钥算法和所述第一参数获得所述新密钥;

对于先获得新密钥的一端,其对端根据所述第一密钥更新消息获得所述新密钥包括:所述先获得新密钥的一端的对端对所述新密钥信息解保护后获得第一参数;

所述先获得新密钥的一端的对端利用约定的密钥算法和所述第一参数获得所述新密钥;

或,

所述新密钥信息为第二参数;所述第二参数为用于与所述先获得新密钥的一端和其对端的共享密钥一起计算得到所述新密钥的参数;

所述方法还包括:

所述先获得新密钥的一端利用约定的密钥算法、所述共享密钥和所述第二参数获得所述新密钥;

所述先获得新密钥的一端的对端根据所述第一密钥更新消息获得所述新密钥包括:所述先获得新密钥的一端的对端利用约定的密钥算法、所述共享密钥和所述第二参数获得所述新密钥。

4.根据权利要求2所述的方法,其特征在于,

所述新密钥信息为所述先获得新密钥的一端利用所述先获得新密钥的一端和其对端的共享信息对第三参数保护生成的密文;所述第三参数为用于生成所述新密钥的参数;

所述方法还包括:

所述先获得新密钥的一端利用约定的密钥算法、所述第三参数以及所述先获得新密钥的一端的对端生成的第二随机数获得所述新密钥;

所述先获得新密钥的一端的对端根据所述第一密钥更新消息获得所述新密钥包括:所述先获得新密钥的一端的对端对所述新密钥信息解保护获得所述第三参数;

所述先获得新密钥的一端的对端利用约定的密钥算法、所述第三参数以及自身生成的所述第二随机数获得所述新密钥;

或,

所述新密钥信息为第四参数;所述第四参数为用于与所述先获得新密钥的一端和其对端的共享密钥一起计算得到所述新密钥的参数;

所述方法还包括:

所述先获得新密钥的一端利用约定的密钥算法、所述共享密钥、所述第四参数以及所述先获得新密钥的一端的对端生成的第三随机数获得所述新密钥;

所述先获得新密钥的一端的对端根据所述第一密钥更新消息获得所述新密钥包括:所述先获得新密钥的一端的对端利用约定的密钥算法、所述共享密钥、所述第四参数以及所述先获得新密钥的一端的对端生成的第三随机数获得所述新密钥;

其中,所述第二随机数、所述第三随机数包括在所述密钥更新请求消息中。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述任一端在启动第一密钥切换过程和第二密钥切换过程后,所述任一端将新密钥存储在当前密钥的固定存储区或删除原密钥或将指示当前密钥的标识指向所述新密钥。

6.一种用于实现双向密钥切换的装置,其特征在于,所述装置包括:第一密钥获得单元,用于获得新密钥;

第一密钥更新单元,用于在获得新密钥时设置新密钥发送方向不可用并设置新密钥接收方向可用;以便对端在推定或确定所述第一密钥获得单元获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用;

第一密钥切换单元,用于在推定或确定其至少n个对端获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用;其中,N≥n≥1,其中N为所述发送方对应的接收方的总数量;所述对端在获得所述新密钥时设置新密钥发送方向不可用并设置新密钥接收方向可用,并根据接收的数据的保护标识选择有效的密钥进行解保护;

保护单元,用于在设置新密钥发送方向不可用后,利用原密钥保护发送至所述对端的数据;所述保护单元,还用于在设置原密钥发送方向不可用并设置新密钥发送方向可用后,利用所述新密钥保护发送至所述对端的数据;

解保护单元,用于根据所述对端发送数据的保护标识选择对应的密钥进行解保护;

第二密钥切换单元,用于在第一次用所述新密钥成功解保护后启动第二密钥切换过程,将原密钥接收方向设置为不可用;

所述装置还包括:

第一密钥更新消息发送单元,用于在先于所述对端获得所述新密钥时,发送第一密钥更新消息至所述对端;以便所述对端根据所述第一密钥更新消息获得所述新密钥;所述第一密钥更新消息包括新密钥信息;

所述第一密钥切换单元,具体用于在发送第一密钥更新消息后的第一时间间隔时刻启动第一密钥切换过程;

或,

所述第一密钥切换单元,具体用于设置第一数据帧号并在发送第一数据帧号的数据至所述对端的时刻启动第一密钥切换过程;

其中,所述第一时间间隔大于所述第一密钥更新消息的传输延迟;所述第一数据帧号大于发送所述第一密钥更新消息前的使用的最大数据帧号,发送第一数据帧号的数据的时刻与发送第一密钥更新消息的时刻之间的时间间隔要大于第一密钥更新消息的传输延迟。

7.根据权利要求6所述的装置,其特征在于,所述第一密钥切换单元,具体用于在接收到第二密钥更新消息后的第二时间间隔时刻启动第一密钥切换过程;其中,所述第二密钥更新消息是所述对端在根据所述第一密钥更新消息获得所述新密钥后返回的;

其中,所述第二时间间隔不大于所述原密钥的剩余有效期。

8.根据权利要求6所述的装置,其特征在于,所述第一密钥更新消息发送单元,具体用于根据密钥更新请求消息发送所述第一密钥更新消息至所述对端;其中,所述密钥更新请求消息是所述对端在获得所述新密钥前发送的。

9.根据权利要求6-8任一项所述的装置,其特征在于,

所述装置还包括新密钥单元,用于利用与所述对端的共享信息对所述新密钥保护生成所述新密钥信息;

或,

所述装置还包括第一参数单元,用于利用与所述对端的共享信息对第一参数保护生成所述新密钥信息,其中,所述第一参数为用于生成所述新密钥的参数,所述第一密钥获得单元,具体用于利用约定的密钥算法和所述第一参数获得所述新密钥;

或,

所述第一密钥获得单元,具体用于当所述新密钥信息为第二参数时,利用约定的密钥算法、所述第二参数和与所述对端的共享密钥获得所述新密钥,其中,所述第二参数为用于与所述对端的共享密钥一起计算得到所述新密钥的参数。

10.根据权利要求8所述的装置,其特征在于,

所述装置还包括第三参数单元,用于利用与所述对端的共享信息对第三参数保护生成所述新密钥信息,其中,所述第三参数为用于生成所述新密钥的参数,所述第一密钥获得单元,具体用于利用约定的密钥算法、所述第三参数以及所述对端生成的第二随机数获得所述新密钥;

或,

所述第一密钥获得单元,具体用于当所述新密钥信息为第四参数时,利用约定的密钥算法、所述第四参数、与所述对端的共享密钥以及所述对端生成的第三随机数获得所述新密钥,其中,所述第四参数为用于与所述对端的共享密钥一起计算得到所述新密钥的参数;

其中,所述第二随机数或所述第三随机数由所述对端生成并包括在所述密钥更新请求消息中。

11.根据权利要求6所述的装置,其特征在于,所述装置还包括:当前密钥存储单元或原密钥删除单元或当前密钥标识单元;

所述当前密钥存储单元,用于在启动第一密钥切换过程和第二密钥切换过程后,将所述新密钥存储在当前密钥的固定存储区;

所述原密钥删除单元,用于在启动第一密钥切换过程和第二密钥切换过程后,删除原密钥;

所述当前密钥标识单元,用于在启动第一密钥切换过程和第二密钥切换过程后,将指示当前密钥的标识指向所述新密钥。

12.一种用于实现双向密钥切换的装置,其特征在于,所述装置包括:第二密钥获得单元,用于根据对端在先获得新密钥时发送的第一密钥更新消息获得所述新密钥;所述第一密钥更新消息包括新密钥信息;

第二密钥更新单元,用于在获得所述新密钥时,设置新密钥发送方向不可用并设置新密钥接收方向可用;以便所述对端在推定或确定所述第二密钥获得单元获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用;

第三密钥切换单元,用于在根据所述第一密钥更新消息获得所述新密钥后的第二时间间隔时刻启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用;其中,所述对端在获得所述新密钥时设置新密钥发送方向不可用并设置新密钥接收方向可用,并根据接收的数据的保护标识选择有效的密钥进行解保护;

保护单元,用于在设置新密钥发送方向不可用后,利用原密钥保护发送至所述对端的数据;所述保护单元,还用于在设置原密钥发送方向不可用并设置新密钥发送方向可用后,利用所述新密钥保护发送至所述对端的数据;

解保护单元,用于根据所述对端发送数据的保护标识选择对应的密钥进行解保护;

第四密钥切换单元,用于在第一次用所述新密钥成功解保护后启动第二密钥切换过程,将原密钥接收方向设置为不可用;

其中,所述第二时间间隔不大于所述原密钥的剩余有效期。

13.根据权利要求12所述的装置,其特征在于,所述装置还包括:第二密钥更新消息发送单元,用于在根据所述第一密钥更新消息获得所述新密钥后发送第二密钥更新消息至所述对端;以便所述对端根据第二密钥更新消息确定所述第二密钥获得单元获得了所述新密钥;

所述第三密钥切换单元,具体用于在发送所述第二密钥更新消息后的第三时间间隔时刻启动第一密钥切换过程;或,所述第三密钥切换单元,具体用于设置第二数据帧号并在发送第二数据帧号的数据至所述对端的时刻启动第一密钥切换过程;

其中,所述第三时间间隔不大于所述原密钥的剩余有效期;

所述第二数据帧号包括在所述第二密钥更新消息中;所述第二数据帧号的设置大于在发送所述第二密钥更新消息前使用的最大数据帧号。

14.根据权利要求12所述的装置,其特征在于,所述装置还包括:密钥更新请求消息发送单元,用于在获得新密钥前发送密钥更新请求消息至所述对端;以便所述对端在先获得新密钥时根据所述密钥更新请求消息发送所述第一密钥更新消息。

15.根据权利要求12-14任一项所述的装置,其特征在于,所述第二密钥获得单元,具体用于当所述新密钥信息为所述对端利用与通信链路另一端的共享信息对所述新密钥保护后的密文时,对所述新密钥信息解保护后获得所述新密钥;

或,

所述第二密钥获得单元,具体用于当所述新密钥信息为所述对端利用与通信链路另一端的共享信息对第一参数保护后的密文时,对所述新密钥信息解保护获得所述第一参数并利用约定的密钥算法和所述第一参数获得所述新密钥;所述第一参数为用于生成所述新密钥的参数;

或,

所述第二密钥获得单元,具体用于当所述新密钥信息为第二参数时,利用约定的密钥算法、所述第二参数和与通信链路另一端的共享密钥获得所述新密钥;所述第二参数为用于与共享密钥一起计算得到所述新密钥的参数。

16.根据权利要求14所述的装置,其特征在于,

所述装置还包括:第二随机数单元,用于生成第二随机数;

所述第二密钥获得单元,具体用于当所述新密钥信息为所述对端利用与通信链路另一端的共享信息对第三参数保护后的密文时,对所述新密钥信息解保护获得所述第三参数并利用约定的密钥算法、所述第三参数以及所述第二随机数获得所述新密钥;所述第三参数为用于生成所述新密钥的参数;

或,

所述装置还包括第三随机数单元,用于生成所述第三随机数;

所述第二密钥获得单元,具体用于当所述新密钥信息为第四参数时,利用约定的密钥算法、所述第四参数、与通信链路另一端的共享密钥以及所述第三随机数获得所述新密钥;

所述第四参数为用于与通信链路另一端的共享密钥一起计算得到所述新密钥的参数;

其中,所述第二随机数、所述第三随机数包括在所述密钥更新请求消息中。

说明书 :

一种双向密钥的切换方法及实现装置

技术领域

[0001] 本发明涉及密钥领域,特别是涉及一种双向密钥的切换方法及实现装置。

背景技术

[0002] 为防止通信网络中的通信数据被非法者窃听或被非法者篡改,在无线网络、无源光网络、电力线通信网络等,甚至是有线网络中,研究者们普遍采用密钥来保护通信数据的安全性,通过保护来保证通信数据的机密性,通过计算完整性校验值来保证数据的完整性。这些用于保护数据安全性的机制中,都需要数据的发送方和接收方知晓密钥。
[0003] 为防止非法用户通过分析截获的数据包得到密钥,进而获取通信数据或者对通信数据进行篡改,密钥需要经常更新。密钥的更新方式有很多,但很多密钥更新机制仅解决了通信双方如何得到新密钥的问题,并没有涉及如何进行新旧密钥的切换问题。一般来说,通信双方切换到新密钥的时刻有先有后,一旦切换不当,接收方可能无法解保护发送方发送的通信数据包。

发明内容

[0004] 本发明提供了一种双向密钥的切换方法及实现装置,能够使接收方正确解保护发送方发送的通信数据包。
[0005] 本发明提供了如下方案:
[0006] 一种双向密钥的切换方法,所述方法包括:
[0007] 通信链路中的任一端在获得新密钥时设置新密钥发送方向不可用并设置新密钥接收方向可用;
[0008] 所述任一端在推定或确定至少n个对端获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用;其中,N≥n≥1,其中N为所述发送方对应的接收方的总数量;
[0009] 所述任一端根据所述对端发送数据的保护标识选择有效的密钥进行解保护;
[0010] 所述任一端在第一次用所述新密钥成功解保护所述对端发送的数据后启动第二密钥切换过程,将原密钥接收方向设置为不可用。
[0011] 本发明还提供了一种用于实现双向密钥切换的装置,所述装置包括:
[0012] 第一密钥获得单元,用于获得所述新密钥;
[0013] 第一密钥更新单元,用于在获得新密钥时设置新密钥发送方向不可用并设置新密钥接收方向可用;以便对端在推定或确定所述第一密钥获得单元获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用;
[0014] 第一密钥切换单元,用于在推定或确定至少n个所述对端获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用;其中,N≥n≥1,其中N为所述发送方对应的接收方的总数量;所述对端在获得所述新密钥时设置新密钥发送方向不可用并设置新密钥接收方向可用,并根据接收的数据的保护标识选择有效的密钥进行解保护;
[0015] 保护单元,用于在设置新密钥发送方向不可用后,利用原密钥保护发送至所述对端的数据;所述保护单元,还用于在设置原密钥发送方向不可用并设置新密钥发送方向可用后,利用所述新密钥保护发送至所述对端的数据;
[0016] 解保护单元,用于根据所述对端发送数据的保护标识选择对应的密钥进行解保护;
[0017] 第二密钥切换单元,用于在第一次用所述新密钥成功解保护后启动第二密钥切换过程,将原密钥接收方向设置为不可用。
[0018] 本发明还提供了一种用于实现双向密钥切换的装置,所述装置包括:
[0019] 第二密钥获得单元,用于根据对端在先获得新密钥时发送的第一密钥更新消息获得所述新密钥;所述第一密钥更新消息包括新密钥信息;
[0020] 第二密钥更新单元,用于在获得所述新密钥时,设置新密钥发送方向不可用并设置新密钥接收方向可用;以便所述对端在推定或确定所述第二密钥获得单元获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用;
[0021] 第三密钥切换单元,用于在根据所述第一密钥更新消息获得所述新密钥后的第二时间间隔时刻启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用;其中,所述对端在获得所述新密钥时设置新密钥发送方向不可用并设置新密钥接收方向可用,并根据接收的数据的保护标识选择有效的密钥进行解保护;
[0022] 保护单元,用于在设置新密钥发送方向不可用后,利用原密钥保护发送至所述对端的数据;所述保护单元,还用于在设置原密钥发送方向不可用并设置新密钥发送方向可用后,利用所述新密钥保护发送至所述对端的数据;
[0023] 解保护单元,用于根据所述对端发送数据的保护标识选择对应的密钥进行解保护;
[0024] 第四密钥切换单元,用于在第一次用所述新密钥成功解保护后启动第二密钥切换过程,将原密钥接收方向设置为不可用;
[0025] 其中,所述第二时间间隔不大于所述原密钥的剩余有效期。
[0026] 本发明通过通信链路的任一端在获得新密钥时设置新密钥发送方向不可用,并在推定或确定对端获得新密钥后进行密钥切换,将新密钥发送方向设置为可用,原密钥发送方向设置为不可用,避免了任一端在获得新密钥前接收到对端用新密钥保护的通信数据包,从而无法解保护的情况。而任一端在获得新密钥时设置该新密钥和原密钥接收方向均可用,保证了任一端能够对对端发送的原密钥保护的通信数据包和对端切换为新密钥后用新密钥保护的通信数据包进行解保护。可见,本发明通过限定任一端发送方向和接收方向上密钥的切换顺序,解决了无法解保护对端发送的保护通信数据包的问题。

附图说明

[0027] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0028] 图1是本发明实施例一提供方法流程图;
[0029] 图2是本发明实施例二提供的方法示意图;
[0030] 图3是本发明实施例三提供的方法的示意图;
[0031] 图4是本发明实施例四提供的第一方法示意图;
[0032] 图5是本发明实施例五提供的装置结构图;
[0033] 图6是本发明实施例七提供的装置结构图。

具体实施方式

[0034] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0035] 需要说明的是,现有的通信技术中,密钥分为单向密钥和双向密钥,其中双向密钥用于保护通信双方之间的数据,是指实体对发送给对端实体的数据进行加密或计算完整性校验的密钥和该实体对接收到来自对端实体的数据进行解密或验证完整性校验的密钥是同一个密钥。单向密钥仅用于保护一个方向的数据,是指实体对发送给对端实体的数据进行加密或计算完整性校验的密钥和该实体对接收到来自对端实体的数据进行解密或严重完整性校验的密钥是不同的密钥。
[0036] 本发明实施例仅对双向密钥的切换进行介绍。
[0037] 参见图1,为本发明实施例一提供的双向密钥的切换方法,包括以下步骤:
[0038] S11、通信链路中的任一端在获得新密钥时设置新密钥发送方向不可用并设置新密钥接收方向可用。
[0039] 本发明中的密钥是指用以对发送的数据进行保护即加密或计算完整性校验,对接收的数据进行解保护即解密或验证完整性校验的密钥。
[0040] 本发明中通信链路的两端互为本端和对端。其中的任一端用于对发送的数据进行保护的密钥和对接收的数据进行解保护的密钥是相同的。比如,假设通信双方为实体A和实体B,如果实体A用于对发送到实体B的数据进行保护的密钥为1,那么实体A对从实体B接收到的数据进行解保护的密钥也是1。
[0041] 本发明中密钥发送方向可用是指可利用此密钥对数据加保护,密钥发送方向不可用是指不能利用此密钥对数据加保护;密钥接收方向可用是指可利用此密钥对数据解保护,密钥接收方向不可用是指不能利用此密钥对数据解保护。
[0042] 对通信链路的任一端来说,在获得新密钥时,对端有可能还未获得新密钥,若直接设置新密钥发送方向可用,那么对端有可能无法对新密钥保护的通信数据包进行解保护。因此,本发明中,在任一端获得新密钥后先设置新密钥发送方向不可用。此时该端仍旧用原密钥保护发送给对端的数据。
[0043] 在现有技术中,在每端可以保存多个密钥,并根据接收的数据的保护标识选择相应的密钥进行解保护。本发明中,保护标识是指密钥标识或密钥索引等信息,用于标识对数据进行保护的密钥是哪一个密钥。
[0044] 对本发明中的任一端来就讲,不一定能确定对端何时进行密钥的切换,通过设置任一端原密钥和新密钥的接收方向同时可用,保证了任一端能够对对端发送的不论是用原密钥保护的数据还是用新密钥保护的数据都能进行解保护。
[0045] S12、所述任一端在推定或确定至少n个对端获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用。其中,N≥n≥1,其中N为所述发送方对应的接收方的总数量。
[0046] 根据步骤S11知道,任一端只要获得了新密钥就会设置新密钥接收方向可用,因此在推定或确定对端获得了新密钥后就同时推定或确定了对端的新密钥在接收方向可用,所以,对端在之后的任一时刻就可以用新密钥对通信数据包进行解保护,换言之,任一端在之后的任一时刻都可以进行密钥切换,用新密钥对数据进行保护。
[0047] 密钥的使用具有一定的期限,因此,本发明中任一端还需在原密钥失效前启动第一密钥切换过程。
[0048] S13、所述任一端根据所述对端发送数据的保护标识选择有效的密钥进行解保护。
[0049] 任一端在设置新密钥接收方向可用后,对端可能进行了第一密钥切换,用新密钥对数据进行保护,也有可能对端还未进行第一密钥切换,仍用原密钥对数据进行保护,此时,任一端可检测从对端接收的数据的保护标识,根据保护标识选择对应的密钥进行解保护。具体的,当根据保护标识确定对数据保护的密钥是原密钥时,选择原密钥解保护,当根据保护标识确定对数据保护的密钥是新密钥时,选择新密钥解保护。
[0050] S14、所述任一端在第一次用所述新密钥成功解保护后启动第二密钥切换过程,将原密钥接收方向设置为不可用。
[0051] 第一次用新密钥成功解保护表明对端已经进行了密钥切换,此时,任一端可对应的进行密钥切换,即设置原密钥接收方向不可用。
[0052] 通信的过程中常会出现丢包的情况,因此,对任一端来说,第一次用新密钥成功解保护的通信数据包不一定是对端发送的第一个用新密钥保护的数据包。
[0053] 对通信链路中的一端来说,只有在获得新密钥后才能进行第一密钥切换并选择有效地密钥解保护,从而在成功解保护后进行第二密钥切换。因此,对一端来讲上述步骤中S12、S13在步骤S11之后,步骤S14在步骤S13之后,步骤S12、S13之间没有先后关系。
[0054] 在本发明实施例二中,以通信链路的两端分别为实体A、实体B,原密钥为Key0,新密钥为Key1为例,对双向密钥切换方法进行了详尽的描述。为描述方便,在以下示例中,tx表示发送方向,rx表示接收方向,enable=1表示可用,enable=0表示不可用;如Key0.rx.enable=1表示对应实体Key0接收方向可用;Key1.rx.enable=0表示对应实体Key1接收方向不可用。
[0055] 参见图2,在T0时刻,实体A和实体B均处于Key0发送方向和接收方向可用状态。实体A发送到实体B的数据和实体A对从实体B接收的数据使用原密钥Key0进行保护,实体B发送到实体A的数据和实体B对从实体A接收的数据使用原密钥Key0进行保护。
[0056] T1时刻,实体A和实体B执行密钥更新过程,此过程确保实体A和实体B获得新密钥Key1。需要明确的是,在该过程中,实体A获得新密钥Key1的时刻T11和实体B获得新密钥Key1的时刻T12可能不同。其中,在T11时刻,实体A执行设置新密钥的发送方向不可用并设置接收方向可用的操作,此后,实体A发送至实体B的数据仍使用原密钥Key0进行保护,而对从实体B接收的数据可以根据数据的保护标识选择原密钥或新密钥进行解保护。在T12时刻,实体B执行设置新密钥发送方向不可用,设置新密钥的接收方向可用的操作。在后续的过程中,实体B发送至实体A的数据仍使用原密钥Key0进行保护,而对从实体A接收的数据可以根据数据的保护标识选择原密钥或新密钥进行解保护。
[0057] T2时刻,实体A已经推定或确定实体B获得了新密钥,即新密钥接收方向可用,实体A执行第一密钥切换,执行设置Key1的发送方向可用,设置Key0的发送方向不可用的操作。之后若实体A需要发送数据包给实体B,则使用Key1对数据包进行保护后发送给实体B。
[0058] T3时刻,实体B已经推定或确定实体A获得了新密钥,即新密钥接收方向可用,实体B启动第一密钥切换,执行设置Key1的发送方向可用,设置Key0的发送方向不可用的操作。之后若实体B需要发送数据包给实体A,则使用Key1对数据包进行保护后发送给实体A。
[0059] 在实际应用中,实体A和实体B获得新密钥的先后顺序不一定,所以两者执行第一密钥切换的时刻T2和T3的先后顺序并不一定。
[0060] T4时刻,实体A根据检测的数据的标识确定数据为用新密钥保护,因此选择Key1对来自实体A的数据进行解保护,并在第一次成功解保护后启动第二密钥切换过程,执行设置Key0接收方向不可用的操作。
[0061] 实体A正确解保护的时刻必然是在实体B的新密钥发送方向可用之后,即实体B执行第一密钥切换之后,因此,T4时刻在T3时刻之后。
[0062] T5时刻,实体B根据检测的数据的标识确定数据为用新密钥保护,因此选择Key1对来自实体B的数据进行解保护,并在第一次成功解保护后启动第二密钥切换过程,执行设置Key0接收方向不可用的操作。
[0063] 实体B正确解保护的时刻必然是在实体A的新密钥发送方向可用之后,即实体A执行第一密钥切换之后,因此,T5时刻在T2时刻之后。
[0064] 至此,实体A和实体B都完成了密钥切换。之后,实体A处于新密钥发送方向和接收方向可用的状态,实体B处于新密钥发送方向和接收方向可用的状态。
[0065] 需要说明的是,对于同一端来讲,其推定或确定对端获得了新密钥后启动第一密钥切换过程的时刻可能早于该端正确解保护的时刻,也可能晚于该端正确解保护的时刻。以图2中实体B为例,则T3时刻可能早于T5时刻,也可能晚于T5时刻。
[0066] 在本发明的另一实施例中,若实体B第一次成功解保护来自实体A的用Key1保护的数据的T5时刻早于实体B计划启动第一密钥切换过程,设置新密钥的发送方向可用,设置原密钥的发送方向不可用的T3时刻,因为成功解保护意味着实体A在T5时刻之前已经用新密钥保护,则实体B可以确定实体A此时已经获得了新密钥,故实体B可以在T5时刻启动第二密钥切换过程的同时,启动第一密钥切换过程。当然,实体B也可以选择等到T3时刻再启动第一密钥切换过程和第二密钥切换过程,
[0067] 在通信网络中,存在单播和多播两种通信方式。其中单播是指单一实体送通信数据至单一实体。多播是指单一实体发送通信数据至至少两个实体。
[0068] 其中,在多播的情况下,用于接收数据的多个实体不一定同时获得新密钥,为保证上述的多个实体都能正确解保护,在本发明的优选实施例中,通信链路上的任一端需要在推定或确定所有的对端获得新密钥后启动第一密钥切换过程。
[0069] 本发明中,通信链路上的各端获得新密钥的方法有多种。其中的一种是,当一端先于对端获得新密钥时,先获得新密钥的一端会发送第一密钥更新消息至对端,以便对端根据第一密钥更新消息获得新密钥。
[0070] 此时,先获得新密钥的一端和对端都获得了新密钥,因此都会执行设置新密钥发送方向不可用,新密钥接收方向可用的操作。
[0071] 发送第一密钥更新消息后,先获得新密钥的一端可推定或确定对端是否获得了新密钥,并在推定或确定后,原密钥失效前启动第一密钥切换过程。
[0072] 而对端根据接收的第一密钥更新消息就能够确定发送该消息的另一端即先获得新密钥的一端已经获得了新密钥,因此,对端可以在根据第一密钥更新消息获得新密钥后,原密钥失效前启动第一密钥切换过程。具体的,对端可在根据第一密钥更新消息获得新密钥后的第二时间间隔时刻启动第一密钥切换过程,其中第二时间间隔不大于原密钥的剩余有效期。
[0073] 需要说明的是,当该第二时间间隔为零时,对端在根据第一密钥更新消息获得新密钥后直接启动第一密钥切换过程,此时,对端无需执行设置新密钥发送方向不可用的操作。
[0074] 本发明中,先获得新密钥的一端推定对端获得新密钥的方式有多种。本发明实施例三提供了先获得新密钥的一端根据不同的推定方式启动第一密钥切换过程的以下几种方法:
[0075] 方法一
[0076] 先获得新密钥的一端在发送第一密钥更新消息后的第一时间间隔后启动密钥切换过程。其中第一时间间隔大于第一密钥更新消息到达对端的传输延迟。
[0077] 通信链路上数据的传输需要一定的时间。考虑到数据传输因为受到传输距离、传输带宽等因素的影响会出现传输延迟,现有技术确定了数据传输的延迟时间。当大于这一延迟时间时,认为数据已经传输至对端。因此,本发明中,当时间大于第一密钥更新消息到达对端的延迟时间时,可以推定对端获得了此消息,从而推定对端获得了新密钥。
[0078] 图3示出了先获得新密钥的一端采用上述方法一推定对端获得新密钥时,先获得新密钥的一端和对端启动第一密钥切换的一种具体实现方式,在该方式中,实体A为先获得新密钥的一端:
[0079] 实体A在T11时刻获得新密钥Key1后执行设置Key1发送方向不可用,Key1接收方向可用的操作,构造并发送第一密钥更新消息至实体B。实体B于T12时刻接收到此消息,据此获得新密钥Key1,并执行设置Key1发送方向不可用,Key1接收方向可用的操作。
[0080] 实体A在T2时刻启动第一密钥切换,将Key1发送方向设置为可用,将Key0发送方向设置为不可用。其中,T2时刻与T11时间的时间间隔设置为大于第一密钥更新消息到达实体B的传输延迟,因此,T2肯定大于T12时刻。
[0081] 实体B于T12时刻获得第一密钥更新消息从而获得新密钥,并基于确定实体A获得了新密钥,在之后的第二时间间隔时刻T3时刻实体B启动第一密钥切换过程,将Key1发送方向设置为可用,将Key0发送方向设置为不可用。
[0082] 当然,第二时间间隔时刻可以为零,实体B在T12时刻启动第一密钥切换过程。此时,实体B无需执行设置新密钥发送方向不可用的操作。
[0083] 之后,实体A在T4时刻第一次用新密钥成功解保护实体B发送的数据后,启动第二密钥切换过程,实体B在T5时刻第一次用新密钥成功解保护实体A发送的数据后,启动第二密钥切换过程。
[0084] 方法二
[0085] 先获得新密钥的一端在发送第一数据帧号的数据至对端的时刻启动第一密钥切换过程;其中,所述第一数据帧号由先获得新密钥的一端设置且通过第一密钥更新消息发送至对端。
[0086] 据此发送方可以推定在第一数据帧号的数据被发送至接收方时,接收方已根据第一密钥更新消息获得了新密钥。
[0087] 在通信中,数据是按照固定的帧格式传输的,数据帧号用以表示传输的数据帧的序列号,在数据传输过程中数据帧号通常是递增的。比如实体A和实体B的数据通信中;实体A发往实体B的数据所维持的数据帧号记做A的数据帧号;实体B发往实体A的数据所维持的数据帧号记B的数据帧号;A的数据帧号和B的数据帧号没有对应关系,但实体A和实体B需要同时维持A的数据帧号和B的数据帧号,即需要记录A的数据帧号对应的当前数据帧号以及B的数据帧号对应的数据帧号;实体A收到来自实体B的数据,其数据帧号不能小于B的数据帧号的当前数据帧号;实体B收到来自实体A的数据,其数据帧号不能小于A的数据帧号的当前数据帧号。
[0088] 因此,在本发明中,第一数据帧号大于先获得新密钥的一端的当前数据帧号,即且大于先获得新密钥的一端在发送第一密钥更新消息之前所使用过的最大的数据帧号。
[0089] 另外,为保证先获得新密钥的一端在发送第一数据帧号的数据的时刻已经能够推定对端获得了新密钥,在本发明中,发送数据帧号为第一数据帧号的数据的时刻与发送第一密钥更新消息的时刻之间的时间间隔要大于第一密钥更新消息的传输延迟。据此先获得新密钥的一端可以推定在第一数据帧号的数据被发送至对端时,对端已根据第一密钥更新消息获得了新密钥。
[0090] 仍以图3为例,假设所述先获得新密钥的一端的当前数据帧号为60。T2时刻为发送具有第一数据帧号的数据的时刻,T12时刻为第一密钥更新消息到达实体B的时刻。第一数据帧号的设置需要大于60;且若当前网络中在第一密钥更新消息的传输延迟内先获得新密钥的一端可以发送20个数据帧给接收方,则第一数据帧号的设置至少是60+20=80,因此可以设置第一数据帧号为100。显见的,当数据帧号为100的数据被发送至实体B时,到达时刻一定大于T12,此时实体B已经可以对其用新密钥解保护。
[0091] 需要说明的是,在上述方法二中,对端根据第一密钥更新消息中的第一数据帧号可以准确的获知先获得新密钥的一端第一次用新密钥保护的数据的数据帧号即为第一数据帧号。此时,对端可以根据接收的数据的数据帧号选择有效的密钥进行解保护。具体的,当接收的数据的数据帧号为第一数据帧号或大于第一数据帧号时,选择新密钥解保护,否则,选择原密钥解保护。
[0092] 当然,在具体实施时,数据帧号也可以按照递减的顺序设计。与递增的情况相反,实体A收到来自实体B的数据,其数据帧号不能大于B的数据帧号的当前数据帧号;对应的第一数据帧号在设置时要小于先获得新密钥的一段的当前数据帧号,即小于先获得新密钥的一端在发送第一密钥更新消息之前所使用过的最小的数据帧号。
[0093] 在本发明的另一实施例中,先获得新密钥的一端也可不将第一数据帧号发送至对端。与先获得新密钥的一端在推定对端获得了新密钥后启动第一密钥切换过程相对应,先获得新密钥的一端还可以在确定对端获得了新密钥后启动第一密钥切换过程。本发明实施例四示出了先获得新密钥的一端基于确定对端获得新密钥而启动第一密钥切换过程的具体方法:
[0094] 对端在根据上述第一密钥更新消息获得新密钥后,生成第二密钥更新消息。
[0095] 先获得新密钥的一端根据第二密钥更新消息确定对端获得了新密钥。
[0096] 先获得新密钥的一端在接收到第二密钥更新消息后启动第二密钥切换过程。具体的,可以是在接收到所述第二密钥更新消息后的第三时间间隔时刻启动第一密钥切换过程。此时,对端既可以同实施例三中一样,在获得第一密钥更新消息后的第二时间间隔时刻启动第一密钥切换过程,也可以发送所述第二密钥更新消息后的第四时间间隔时刻启动第一密钥切换过程,还可以在发送第二数据帧号的数据至先获得新密钥的一端时启动第一密钥切换过程。
[0097] 其中,所述第三时间间隔或所述第四时间间隔不大于所述原密钥的剩余有效期。
[0098] 所述第二数据帧号由所述对端设置并通过所述第二密钥更新消息发送至所述先获得新密钥的一端;所述第二数据帧号的设置大于所述对端的当前数据帧号即在发送所述第二密钥更新消息前使用的最大数据帧号。
[0099] 参见图4,为先获得新密钥的一端通过对端发送的第二密钥更新消息确定对端获得了新密钥时,先获得新密钥的一端和对端启动第一密钥切换过程的具体实现方式,在该方式中,实体A为先获得新密钥的一端:
[0100] 其中,T0、T11和T12、T4、T5时刻实体A和实体B执行同图3中一样的操作。除此之外,在T12时刻,实体B根据接收到的第一密钥更新消息获知Key1后,构造第二密钥更新消息并发送至实体A,已告知实体A自己获得了Key1。
[0101] T13时刻实体A接收到第二密钥更新消息并据此确定实体B获得了Key1。
[0102] 在距T13时刻第三时间间隔的T2时刻,实体A启动第一密钥切换过程,将Key1发送方向设置为可用,将Key0发送方向设置为不可用。其中,T2时刻不大于Key0的剩余有效期。
[0103] 当然,第三时间间隔可以为零,此时实体A在接收到第二密钥更新消息的T13时刻启动第一密钥切换过程。
[0104] 对于实体B来讲,既可以同图3中所示方法一样,在距离T12时刻的第二时间间隔的T3时刻启动第一密钥切换过程,也可以在发送第二数据帧号不小于第二密钥更新消息的数据帧号的数据至实体A时启动第一密钥切换过程。比如,第二密钥更新消息的帧号为97,第二数据帧号设置为98,那么实体B在发送完第二密钥更新消息后发送的第一个数据时启动第一密钥切换过程。其中,该第二数据帧号通过第二密钥更新消息发送至实体A。
[0105] 在本发明的优选实施例中,可设置通信链路上的任一端在获得新密钥前发送密钥更新请求消息至对端,以告知对端其本端还未获得新密钥,从而启动密钥更新过程。这样,先获得新密钥的一端在获得新密钥时就会根据密钥请求更新消息发送第一密钥更新消息至对端。
[0106] 上述实施例中的第一密钥更新消息可以具有多种形式。
[0107] 比如,第一密钥更新消息是先获得新密钥的一端利用双方的共享信息对新密钥保护后生成的密文。对端利用双方的共享信息解保护后即可直接获得新密钥。
[0108] 如新密钥为1时,直接对1保护生成密文,那么对端解保护后就可直接得到新密钥1。
[0109] 双方的共享信息可以是原密钥,也可以是双方共享的一个专门用于密钥更新过程保护新密钥的密钥或者是双方的公私钥信息。
[0110] 当使用双方的公私钥对新密钥进行保护和解保护时,先获得新密钥的一端利用对端的公钥和自己的的私钥对新密钥进行保护;对端利用先获得新密钥的一端的公钥和自己的私钥对收到的密钥进行解保护。
[0111] 在具体实施时,为保护密钥的前向安全,一般在密钥更新过程中不使用原密钥保护新密钥这种方式。
[0112] 为避免第一密钥更新消息在传输过程中被截获从而导致新密钥泄露,在本发明的一个优选实施例中,第一密钥更新消息还可以是先获得新密钥的一端利用共享信息对第一参数保护后生成的密文,其中第一参数是先获得新密钥的一端和对端用以计算新密钥的参数,如第一通告主密钥。
[0113] 具体应用时,在通信链路的各端约定密钥算法,然后先获得新密钥的一端根据约定的密钥算法和上述第一参数计算出新密钥。对端对新密钥信息解保护后获得第一参数,然后根据约定的密钥算法和上述第一参数计算出新密钥。
[0114] 在该方式下,即便第一密钥更新消息被他人获知,他人也无法直接得到对应的新密钥。
[0115] 在本发明的具体实施例中,第一密钥更新消息还可以是用于生成新密钥的第二参数;双方利用第二参数以及双方的共享密钥通过约定的算法计算得到新密钥。双方的共享密钥可以是原密钥,也可以是双方共享的一个用于密钥更新过程的密钥。
[0116] 在该方式下,因为双方的共享密钥是其他人不知的,故第二参数虽然以明文形式发送,其他人因为不知道双方的共享密钥,也无法计算得到新密钥。
[0117] 当然,在本发明的优选实施例中,为提高安全性,还可以对第二参数保护后发送。
[0118] 在本发明的具体实施例中,上述第一参数或第二参数具有多种具体形式,比如可以是从密码本中获取的数据,当然基于更高安全性的考虑,还可以为先获得新密钥的一端生成的第一随机数,该端根据第一随机数生成新密钥,并将该第一随机数发送至对端,对端据此计算获得新密钥。
[0119] 为进一步体现双发协商产生新密钥,在本发明的优选实施例中,通信链路的两端还可结合对端生成的随机数生成新密钥。
[0120] 比如,新密钥信息为先获得新密钥的一端利用自身和所述对端的共享信息对第三参数保护生成的密文;所述第三参数为用于生成所述新密钥的参数。
[0121] 则先获得新密钥的一端可以利用约定的密钥算法、所述第三参数以及所述对端生成的第二随机数获得所述新密钥。
[0122] 所述对端对所述新密钥信息解保护获得所述第三参数。
[0123] 所述对端利用约定的密钥算法、所述第三参数以及自身生成的所述第二随机数获得所述新密钥。
[0124] 再比如,新密钥信息为第四参数;所述第四参数为用于与所述先获得新密钥的一端和所述对端的共享密钥一起计算得到所述新密钥的参数;
[0125] 则先获得新密钥的一端利用约定的密钥算法、所述共享密钥、所述第四参数以及所述对端生成的第三随机数获得所述新密钥。
[0126] 所述对端利用约定的密钥算法、所述共享密钥、所述第四参数以及所述对端生成的第三随机数获得所述新密钥。
[0127] 其中,对端通过密钥更新请求消息发送第三随机数或第四随机数至先获得新密钥的一端。
[0128] 本发明中,第三参数或第四参数具有多种具体形式,比如可以是从密码本中获取的数据,基于更高安全性的考虑,也可以是先获得新密钥的一端生成的第四随机数。本发明上述实施例中的第二密钥更新消息是对端用于向先获得新密钥的一端告知自己已经获得了新密钥的消息,因此,该消息中可不包括跟新密钥相关的信息,比如发送类似“已获得新密钥”的告知消息。
[0129] 当然,在本发明的优选实施例中,为方便先获得新密钥的一端验证对端获取的新密钥是否正确,对端可在第二密钥更新消息中设置新密钥,比如“已获得新密钥5”,这样先获得新密钥的一端就可以同时验证对端的新密钥是否正确。
[0130] 因为包括新密钥的相关信息,为避免在传输过程中被截获,第二密钥更新消息可以是对端利用与先获得新密钥的一端的共享信息对新密钥加密生成的密文,当然也可以是对端利用与先获得新密钥的一端的共享信息对从第一密钥更新消息中接收的第一参数加密生成的密文。
[0131] 需要说明的是,在本发明的具体实施方式中,均是以实体A为先获得新密钥的一端,以实体B为对端为例进行说明的,容易理解的,在实际的应用中,当实体B先获得新密钥时,实体B执行上述示例中实体A的操作,实体A执行上述示例中实体B的操作即可。
[0132] 在任一端执行完第一密钥切换和第二密钥切换后,新密钥就成为了该端的当前密钥,但此时该端同时保存了原密钥和新密钥,为避免在后续再次更新的时候无法准确确定当前密钥,在本发明的优选实施例中,可在第一密钥切换和第二密钥切换后将新密钥和原密钥进行适当处理,以对新旧密钥进行区分。具体处理方法有如下几种:
[0133] 任一端在启动密钥切换过程后,可将新密钥存储在当前密钥的固定存储区。这样在进行下次更新时,可直接根据存储位置确定当前密钥。
[0134] 或者,任一端在启动密钥切换过程后,可直接删除原密钥,这样就只保存了一个密钥,不必进行区分。
[0135] 再或者,任一端将指示当前密钥的标识指向新密钥。这样根据标识就可直接确定当前密钥。
[0136] 对应上述方法,本发明实施例五还提供了一种用于实现上述双向密钥切换的装置。
[0137] 参见图5,该装置具体包括:
[0138] 第一密钥获得单元11,用于获得新密钥。
[0139] 本发明中的密钥是指用以对发送的数据进行保护即加密或计算完整性校验,对接收的数据进行解保护即解密或验证完整性校验的密钥。
[0140] 因为是双向密钥,所以本发明中通信链路中的任一端用于对发送的数据进行保护的密钥和对接收的数据进行解保护的密钥是相同的。比如,假设通信双方为实体A和实体B,如果实体A用于对发送到实体B的数据进行保护的密钥为1,那么实体A对从实体B接收到的数据进行解保护的密钥也是1。
[0141] 第一密钥更新单元12,用于在获得新密钥时设置新密钥发送方向不可用并设置新密钥接收方向可用;以便对端在推定或确定所述第一密钥获得单元获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用。
[0142] 本发明中密钥发送方向可用是指可利用此密钥对数据加保护,密钥发送方向不可用是指不能利用此密钥对数据加保护;密钥接收方向可用是指可利用此密钥对数据解保护,密钥接收方向不可用是指不能利用此密钥对数据解保护。
[0143] 对通信链路的任一端来说,在获得新密钥时,对端有可能还未获得新密钥,若第一密钥更新单元12直接设置该端新密钥发送方向可用,那么对端有可能无法对新密钥保护的通信数据包进行解保护。因此,本发明中,在第一密钥获得单元11获得新密钥后,第一密钥更新单元12先设置新密钥发送方向不可用。此时在有数据需要发送给对端时,该装置的保护单元14仍会用原密钥保护要发送的数据。
[0144] 第一密钥切换单元13,用于在推定或确定至少n个所述对端获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用;其中,N≥n≥1,其中N为所述发送方对应的接收方的总数量。所述对端在获得所述新密钥时设置新密钥发送方向不可用并设置新密钥接收方向可用,并根据接收的数据的保护标识选择有效的密钥进行解保护。
[0145] 对端在获得新密钥后会设置新密钥接收方向可用,即可以用新密钥解保护接收的数据,因此,第一密钥切换单元13,在推定或确定所述对端获得了所述新密钥后,就推定或确定了对端可用新密钥解保护,因此,可以启动第一密钥切换过程,此时,该装置的保护单元14会用新密钥保护要发送的数据。
[0146] 密钥的使用具有一定的期限,因此,第一密钥切换单元13还需在原密钥失效前启动第一密钥切换过程。
[0147] 解保护单元15,用于根据所述对端发送数据的保护标识选择对应的密钥进行解保护。
[0148] 在设置了新密钥接收方向可用后,解保护单元15处的新密钥和原密钥均可用,此时需要根据接收的数据的保护标识选择有效的密钥解保护。具体的,当保护标识表示数据是用原密钥保护的时,选择原密钥解保护。当保护标识表示数据是用新密钥保护的时,选择新密钥解保护。
[0149] 在启动第二密钥切换过程后,原密钥接收方向不可同,此时,解保护单元选择新密钥解保护。
[0150] 第二密钥切换单元16,用于在第一次用所述新密钥成功解保护后启动第二密钥切换过程,将原密钥接收方向设置为不可用。
[0151] 第一次用新密钥成功解保护表明对端已经进行了密钥切换,此时,第二密钥切换单元16可在第一次用新密钥成功解保护后进行密钥切换,即设置原密钥接收方向不可用。
[0152] 通信的过程中常会出现丢包的情况,因此,第一次用新密钥成功解保护的通信数据包不一定是对端发送的第一个用新密钥保护的数据包。
[0153] 在通信网络中,存在单播和多播两种通信方式。其中单播是指单一实体发送通信数据至单一实体。多播是指单一实体发送通信数据至至少两个实体。
[0154] 其中,在多播的情况下,用于接收数据的多个实体不一定同时获得新密钥,为保证上述的多个实体都能正确解保护,在本发明的优选实施例中,第一密钥切换单元13,用于在推定或确定所有的对端获得新密钥后启动第一密钥切换过程。
[0155] 本发明中,第一密钥获得单元可能先于对端获得新密钥,也可能后于对端获得新密钥。当先于对端获得新密钥时,用以在推定或确定对端获得新密钥时启动密钥切换的装置有多种具体形式。
[0156] 本发明实施例六提供了用于在先获得新密钥时推定对端获得新密钥后,启动第一密钥切换过程的以下几种装置:
[0157] 装置一
[0158] 第一密钥更新消息发送单元,用于在先于对端获得新密钥时,发送第一密钥更新消息至对端。该第一密钥更新消息中包括新密钥信息。此时,对端可根据第一密钥更新消息中的新密钥信息获得新密钥。
[0159] 所述第一密钥切换单元,具体用于在发送第一密钥更新消息后的第一时间间隔时刻启动第一密钥切换过程。其中,第一时间间隔大于第一密钥更新消息的传输延迟。
[0160] 数据的传输需要一定的时间。考虑到数据传输因为受到传输距离、传输带宽等因素的影响会出现传输延迟,现有技术确定了数据传输的延迟时间。当大于这一延迟时,认为数据已经传输至对端。因此,本发明中,当时间大于第一密钥更新消息到达对端延迟时,可以推定对端获得了此消息,从而推定对端获得了新密钥。
[0161] 装置二
[0162] 第一密钥更新消息发送单元,用于在先于对端获得新密钥时,发送第一密钥更新消息至对端。该第一密钥更新消息中包括新密钥信息。此时,对端可根据第一密钥更新消息中的新密钥信息获得新密钥。
[0163] 所述第一密钥切换单元,具体用于设置第一数据帧号并在发送第一数据帧号的数据至所述对端的时刻启动第一密钥切换过程。
[0164] 其中,第一数据帧号大于在发送所述第一密钥更新消息前所使用过的最大数据帧号,发送第一数据帧号的数据的时刻与发送第一密钥更新消息的时刻的时间间隔大于第一密钥更新消息到达对端的传输延迟。
[0165] 在通信中,数据是按照帧格式传输的,数据帧号用以表示传输的数据所在帧的顺序。设置第一数据帧号大于发送所述第一密钥更新消息前所使用过的最大数据帧号,发送第一数据帧号的数据的时刻与发送第一密钥更新消息的时刻的时间间隔大于第一密钥更新消息到达对端的传输延迟。则可以推定在第一数据帧号的数据被发送至对端时,对端已根据第一密钥更新消息获得了新密钥。
[0166] 本发明中在先获得新密钥并在确定对端获得新密钥时启动密钥切换的装置也有多种。常用的装置如下:
[0167] 所述第一密钥切换单元,具体用于在接收到第二密钥更新消息后的第二时间间隔时刻启动第一密钥切换过程。其中,所述第二密钥更新消息是所述对端在根据所述第一密钥更新消息获得所述新密钥后返回的。其中,第二时间间隔不大于所述原密钥的剩余有效期。
[0168] 在本发明的优选实施例中,对端在获得新密钥前会发送密钥更新请求消息。此时第一密钥更新消息发送单元,具体用于根据密钥更新请求消息发送所述第一密钥更新消息至所述对端。
[0169] 为保证发送到对端的第一密钥更新消息中的新密钥信息的安全性,在本发明的具体实施例中,该装置还包括新密钥单元,用于利用与所述对端的共享信息对所述新密钥保护生成所述新密钥信息。
[0170] 比如,新密钥为1时,直接对1保护生成第一新密钥信息,那么对端利用共享信息解保护新密钥信息后就可直接得到新密钥1.
[0171] 或者,为避免第一密钥更新消息在传输过程中被截获从而导致新密钥泄露,在本发明的一个优选实施例中,该装置可以是还包括第一参数单元,用于利用与所述对端的共享信息对第一参数保护生成新密钥信息,其中,第一参数为用于生成所述新密钥的参数,比如第一通告主密钥NMK。此时,第一密钥获得单元,具体用于利用约定的密钥算法和所述第一参数获得所述新密钥。
[0172] 又或者,新密钥信息为第二参数,其中,所述第二参数为用于与所述对端的共享密钥一起计算得到所述新密钥的参数。此时,第一密钥获得单元,具体用于当所述新密钥信息为第二参数时,利用约定的密钥算法、所述第二参数和所述共享密钥获得所述新密钥。
[0173] 其中,上述第一参数或第二参数具有多种具体形式,比如可以是从密码本中获取的数据,当然基于更高安全性的考虑,还可以是该装置的第一随机数单元生成的第一随机数。
[0174] 上述共享信息可以是双方共享的原密钥、一个专门用于密钥更新过程保护新密钥的密钥或者是双方的公私钥信息。
[0175] 当使用双方的公私钥对新密钥进行保护和解保护时,利用对端的公钥和自己的私钥对新密钥进行保护。此时对端利用另一端的公钥和自己的私钥对收到的密钥进行解保护。
[0176] 在具体实施时,为保护密钥的前向安全,一般在密钥更新过程中不使用原密钥保护新密钥的方式。
[0177] 为进一步体现双发协商产生新密钥,在本发明的优选实施例中,双方还可结合对端生成的随机数生成新密钥。
[0178] 具体的,所述装置还包括第三参数单元,用于利用与所述对端的共享信息对第三参数保护生成所述新密钥信息,其中,所述第三参数为用于生成所述新密钥的参数,所述第一密钥获得单元,具体用于利用约定的密钥算法、所述第三参数以及所述对端生成的第二随机数获得所述新密钥;
[0179] 或,
[0180] 所述第一密钥获得单元,具体用于当所述新密钥信息为第四参数时,利用约定的密钥算法、所述第四参数、与所述对端的共享密钥以及所述对端生成的第三随机数获得所述新密钥,其中,所述第四参数为用于与所述对端的共享密钥一起计算得到所述新密钥的参数。
[0181] 其中,所述第二随机数或所述第三随机数由所述对端生成并包括在所述密钥更新请求消息中。
[0182] 本发明的具体实施例中,第三参数、第四参数具有多种具体形式,比如可以是从密码本中获得的数据,当然,基于更高安全性的考虑,也可以是该装置的第四随机数单元生成的第四随机数。
[0183] 上述装置中提到的第二密钥更新消息是对端用于告知其已经获得了新密钥的消息,因此,该消息中可不包括跟新密钥相关的信息,比如发送类似“已获得新密钥”的告知消息。
[0184] 当然,在本发明的优选实施例中,为方便验证对端获取的新密钥是否正确,对端可在第二密钥更新消息中设置新密钥,比如“已获得新密钥5”,这样就可以同时验证对端的新密钥是否正确。因为包括新密钥的消息,为避免在传输过程中被截获,对端可利用双方的共享信息对第二密钥更新消息进行保护。当包括新密钥的相关信息时,第二密钥更新消息可以是对端利用共享信息对新密钥保护生成的密文,也可以是对端利用共享信息对从第一密钥更新消息中接收的相关参数保护生成的密文。
[0185] 在进行密钥切换后,新密钥就成为了当前密钥,但此时装置中同时保存了原密钥和新密钥,为避免在后续再次更新的时候无法准确确定当前密钥,在本发明的优选实施例中,可在密钥切换后将新密钥和原密钥进行适当处理,以对新旧密钥进行区分。对应的,所述装置还包括:
[0186] 当前密钥存储单元或原密钥删除单元或当前密钥标识单元;
[0187] 所述当前密钥存储单元,用于在启动第一密钥切换过程和第二密钥切换过程后,将所述新密钥存储在当前密钥的固定存储区;
[0188] 所述原密钥删除单元,用于在启动第一密钥切换过程和第二密钥切换过程后,删除原密钥;
[0189] 所述当前密钥标识单元,用于在启动第一密钥切换过程和第二密钥切换过程后,将指示当前密钥的标识指向所述新密钥。
[0190] 对应上述方法,本发明实施例七还提供了一种用于双向密钥切换的装置,参见图6,该装置包括:
[0191] 第二密钥获得单元21,用于根据对端在先获得新密钥时发送的第一密钥更新消息获得所述新密钥;所述第一密钥更新消息包括新密钥信息。
[0192] 第二密钥更新单元22,用于在获得所述新密钥时,设置新密钥发送方向不可用并设置新密钥接收方向可用;以便所述对端在推定或确定所述第二密钥获得单元获得了所述新密钥后,原密钥失效前启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用。此时在有数据需要发送给对端时,该装置的保护单元24仍会用原密钥保护要发送的数据。
[0193] 第三密钥切换单元23,用于在根据所述第一密钥更新消息获得所述新密钥后的第二时间间隔时刻启动第一密钥切换过程,将所述原密钥发送方向设置为不可用并将所述新密钥发送方向设置为可用;以便所述对端在第一次用所述新密钥成功解保护接收的数据后启动第二密钥切换过程,将原密钥接收方向设置为不可用;其中,所述对端在获得所述新密钥时设置新密钥发送方向不可用并设置新密钥接收方向可用,并根据接收的数据的保护标识选择有效的密钥进行解保护。此时在有数据需要发送给对端时,该装置的保护单元24会用新密钥保护要发送的数据。
[0194] 其中,所述第二时间间隔不大于所述原密钥的剩余有效期。
[0195] 需要说明的是,当该第二时间间隔为零时,对端在根据第一密钥更新消息获得新密钥后直接启动第一密钥切换过程,此时,对端无需执行设置新密钥发送方向不可用的操作。
[0196] 解保护单元25,用于根据所述对端发送数据的保护标识选择对应的密钥进行解保护。
[0197] 第四密钥切换单元26,用于在第一次用所述新密钥成功解保护后启动第二密钥切换过程,将原密钥接收方向设置为不可用。
[0198] 在本发明的优选实施例中,为告知先获得新密钥的一端第二密钥获得单元已经获得新密钥的消息,所述装置还包括:
[0199] 第二密钥更新消息发送单元,用于在根据所述第一密钥更新消息获得所述新密钥后发送第二密钥更新消息至所述对端;以便所述对端根据第二密钥更新消息确定所述第二密钥获得单元获得了所述新密钥。
[0200] 此时,第三密钥切换单元,具体用于在发送所述第二密钥更新消息后的第三时间间隔时刻启动第一密钥切换过程;或,用于设置第二数据帧号并在发送第二数据帧号的数据至所述对端的时刻启动第一密钥切换过程。
[0201] 其中,所述第三时间间隔不大于所述原密钥的剩余有效期。
[0202] 所述第二数据帧号包括在所述第二密钥更新消息中;所述第二数据帧号的设置大于在发送所述第二密钥更新消息前使用的最大数据帧号。
[0203] 在本发明的另一优选实施例中,该装置还包括:
[0204] 密钥更新请求消息发送单元,用于在获得新密钥前发送密钥更新请求消息至所述对端;以便所述对端在先获得新密钥时根据所述密钥更新请求消息发送所述第一密钥更新消息。
[0205] 针对第一密钥更新消息种新密钥信息的不同,第二密钥获得单元获得新密钥的方式也不相同。
[0206] 比如,当所述新密钥信息为所述对端利用与通信链路另一端的共享信息对所述新密钥保护后的密文时,所述第二密钥获得单元,具体用于利用共享信息对所述新密钥信息解保护后获得所述新密钥。
[0207] 再比如,当所述新密钥信息为所述对端利用与通信链路另一端的共享信息对第一参数保护后的密文时,所述第二密钥获得单元,具体用于对所述新密钥信息解保护获得所述第一参数并利用约定的密钥算法和所述第一参数获得所述新密钥;所述第一参数为用于生成所述新密钥的参数,如第一通告主密钥NMK等。
[0208] 还比如,当所述新密钥信息为第二参数时,所述第二密钥获得单元,具体用于利用约定的密钥算法、所述第二参数和与通信链路另一端的共享密钥获得所述新密钥;所述第二参数为用于与共享密钥一起计算得到所述新密钥的参数。
[0209] 在本发明的具体实施例中,上述第一参数或第二参数具有多种具体形式,比如可以是从密码本中获得的数据,基于更高安全性的考虑,也可以为对端生成的第一随机数。
[0210] 为进一步体现双发协商产生新密钥,在本发明的优选实施例中,双方还可结合该装置生成的随机数生成新密钥。
[0211] 具体的,所述装置还包括:第二随机数单元,用于生成第二随机数;
[0212] 所述第二密钥获得单元,具体用于当所述新密钥信息为所述对端利用与通信链路另一端的共享信息对第三参数保护后的密文时,对所述新密钥信息解保护获得所述第三参数并利用约定的密钥算法、所述第三参数以及所述第二随机数获得所述新密钥;所述第三参数为用于生成所述新密钥的参数;
[0213] 或,
[0214] 所述装置还包括第三随机数单元,用于生成所述第三随机数;
[0215] 所述第二密钥获得单元,具体用于当所述新密钥信息为第四参数时,利用约定的密钥算法、所述第四参数、与通信链路另一端的共享密钥以及所述第三随机数获得所述新密钥;所述第四参数为用于与通信链路另一端的共享密钥一起计算得到所述新密钥的参数。
[0216] 其中,所述第三参数或所述第四参数具有多种具体形式,比如可以是从密码本中获得的数据,基于更高安全性的考虑也可以是所述对端生成的第四随机数。所述第二随机数、所述第三随机数包括在所述密钥更新请求消息中。
[0217] 值得注意的是,本发明的方法与本发明的装置相对应,因此对装置部分不再详述,相关部分参见方法实施例即可。以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的装置及方法;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。