本技術(shù)涉及大數(shù)據(jù)共享通信模型,特別是涉及基于雙棘輪算法的群組密鑰協(xié)商方法、通信方法及裝置。
背景技術(shù):
1、群組密鑰協(xié)商為大數(shù)據(jù)共享通信模型提供了必要的安全支撐,可以確保信息在大數(shù)據(jù)共享通信模型中的安全性,下文中為便于描述,將大數(shù)據(jù)共享通信模型稱為群組。群組密鑰協(xié)商是指多個(gè)參與者(即群組中包括的多個(gè)設(shè)備)在不可靠的網(wǎng)絡(luò)環(huán)境下建立一個(gè)安全的會(huì)話密鑰,以保障群組的通信安全。但是,目前的群組密鑰協(xié)商方法中,通常是群組中的所有設(shè)備均使用同一固定的會(huì)話密鑰與其他通信設(shè)備進(jìn)行通信,因此,若該會(huì)話密鑰被泄露,則群組內(nèi)所有通信中的信息均會(huì)被泄露,從而導(dǎo)致群組通信的信息安全性較低。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例的目的在于提供基于雙棘輪算法的群組密鑰協(xié)商方法、通信方法及裝置,以實(shí)現(xiàn)提高群組通信中的信息安全性。具體技術(shù)方案如下:
2、本技術(shù)實(shí)施例提供了一種基于雙棘輪算法的群組密鑰協(xié)商方法,所述方法應(yīng)用于第一設(shè)備,所述第一設(shè)備與至少一個(gè)第二設(shè)備屬于同一群組,所述第一設(shè)備為所述群組中的任一設(shè)備,所述方法包括:
3、接收各所述第二設(shè)備發(fā)送的各所述第二設(shè)備自身的加密密鑰和第一明文,所述第一明文為各所述第二設(shè)備各自隨機(jī)生成的,且各所述第二設(shè)備還將自身的第一明文發(fā)送至除自身以外的其他第二設(shè)備;
4、隨機(jī)生成第二明文,并分別針對(duì)各所述第二設(shè)備,利用所述第二設(shè)備的加密密鑰對(duì)所述第二明文進(jìn)行加密,得到第一密文并發(fā)送至所述第二設(shè)備,以使得所述第二設(shè)備利用自身的解密密鑰對(duì)接收到的第一密文進(jìn)行解密,得到所述第二明文,并根據(jù)所述第二明文和所有所述第二設(shè)備的所述第一明文,按照預(yù)設(shè)密鑰生成方法,生成自身的群組密鑰,并響應(yīng)于群組通信,根據(jù)自身的群組密鑰,按照預(yù)設(shè)密鑰更新方法生成密鑰,作為自身新的群組密鑰;
5、根據(jù)所述第二明文和所有所述第二設(shè)備的所述第一明文,按照所述預(yù)設(shè)密鑰生成方法,生成自身的共享密鑰,并響應(yīng)于得到共享密鑰后的第一次群組通信,根據(jù)所述共享密鑰,按照預(yù)設(shè)密鑰更新方法生成自身的會(huì)話密鑰;響應(yīng)于得到共享密鑰后的非第一次群組通信,根據(jù)所述共享密鑰和/或所述第二設(shè)備自身的上輪輸出的部分或全部,按照所述預(yù)設(shè)密鑰更新方法生成自身新的會(huì)話密鑰,其中,所述上輪輸出為設(shè)備自身上一次按照所述預(yù)設(shè)密鑰更新方法生成密鑰時(shí)得到的輸出;
6、根據(jù)所述第二明文和所有所述第二設(shè)備的所述第一明文,按照所述預(yù)設(shè)密鑰生成方法,生成自身的共享密鑰;
7、響應(yīng)于得到共享密鑰后的第一次群組通信,根據(jù)所述共享密鑰,按照所述預(yù)設(shè)密鑰更新方法生成自身的會(huì)話密鑰;
8、響應(yīng)于得到共享密鑰后的非第一次群組通信,根據(jù)所述共享密鑰和/或所述第一設(shè)備自身的上輪輸出的部分或全部,按照所述預(yù)設(shè)密鑰更新方法生成自身新的會(huì)話密鑰;
9、在到達(dá)下一次預(yù)設(shè)密鑰協(xié)商時(shí)刻時(shí),和/或,響應(yīng)于所述共享密鑰或會(huì)話密鑰泄露,返回執(zhí)行所述接收各所述第二設(shè)備發(fā)送的各所述第二設(shè)備自身的加密密鑰和第一明文的步驟,得到自身新的共享密鑰。
10、在一種可能的實(shí)施例中,所述方法還包括:
11、響應(yīng)于第三設(shè)備加入所述群組,接收所述第三設(shè)備發(fā)送的加密密鑰;
12、利用所述第三設(shè)備的加密密鑰對(duì)所述第二明文進(jìn)行加密,得到第二密文,并將所述第二密文和所有所述第二設(shè)備的第一明文發(fā)送至所述第三設(shè)備,以使得所述第三設(shè)備利用自身的解密密鑰對(duì)接收到的第二密文進(jìn)行解密,得到所述第二明文,并根據(jù)所述第二明文、所有所述第二設(shè)備的所述第一明文,按照所述預(yù)設(shè)密鑰生成方法,生成自身的共享密鑰,并響應(yīng)于得到共享密鑰后的第一次群組通信,根據(jù)所述共享密鑰,按照所述預(yù)設(shè)密鑰更新方法生成自身的會(huì)話密鑰;響應(yīng)于得到共享密鑰后的非第一次群組通信,根據(jù)所述共享密鑰和/或所述第二設(shè)備自身的上輪輸出的部分或全部,按照所述預(yù)設(shè)密鑰更新方法生成自身新的會(huì)話密鑰。
13、在一種可能的實(shí)施例中,所述在到達(dá)下一次預(yù)設(shè)密鑰協(xié)商時(shí)刻時(shí),和/或,響應(yīng)于所述共享密鑰或會(huì)話密鑰泄露,返回執(zhí)行所述接收各所述第二設(shè)備發(fā)送的各所述第二設(shè)備自身的加密密鑰和第一明文的步驟,得到自身新的共享密鑰,包括:
14、在到達(dá)下一次預(yù)設(shè)密鑰協(xié)商時(shí)刻時(shí),和/或,響應(yīng)于所述共享密鑰或會(huì)話密鑰泄露,將所述第三設(shè)備以及所述第二設(shè)備作為新的第二設(shè)備,返回執(zhí)行所述接收各所述第二設(shè)備發(fā)送的各所述第二設(shè)備自身的加密密鑰和第一明文的步驟,得到自身新的共享密鑰。
15、在一種可能的實(shí)施例中,所述分別針對(duì)各所述第二設(shè)備,利用所述第二設(shè)備的加密密鑰對(duì)所述第二明文進(jìn)行加密,得到第一密文并發(fā)送至所述第二設(shè)備,包括:
16、若接收到針對(duì)第四設(shè)備的移除指令,針對(duì)除所述第四設(shè)備以外的其他第二設(shè)備,利用所述第二設(shè)備的加密密鑰對(duì)所述第二明文進(jìn)行加密,得到第一密文并發(fā)送至所述第二設(shè)備;
17、若未接收到移除指令,則針對(duì)所有所述第二設(shè)備,利用所述第二設(shè)備的加密密鑰對(duì)所述第二明文進(jìn)行加密,得到第一密文并發(fā)送至所述第二設(shè)備。
18、在一種可能的實(shí)施例中,所述方法還包括:
19、向各所述第二設(shè)備發(fā)送所述第一設(shè)備的驗(yàn)證密鑰;
20、所述利用所述第二設(shè)備的加密密鑰對(duì)所述第二明文進(jìn)行加密,得到第一密文并發(fā)送至所述第二設(shè)備,包括:
21、利用所述第二設(shè)備的加密密鑰對(duì)所述第二明文進(jìn)行加密,得到第一密文;
22、利用與所述第一設(shè)備的驗(yàn)證密鑰對(duì)應(yīng)的簽名密鑰對(duì)所述第一密文進(jìn)行簽名,得到第一簽名;
23、將所述第一密文和所述第一簽名發(fā)送至所述第二設(shè)備,以使得所述第二設(shè)備利用所述第一設(shè)備的驗(yàn)證密鑰對(duì)所述第一簽名進(jìn)行解簽名,若解簽名結(jié)果與所述第一密文相同,則利用自身的解密密鑰對(duì)接收到的第一密文進(jìn)行解密,得到所述第二明文,并根據(jù)所述第二明文和所有所述第二設(shè)備的所述第一明文,按照預(yù)設(shè)密鑰生成方法,生成自身的共享密鑰,并響應(yīng)于得到共享密鑰后的第一次群組通信,根據(jù)所述共享密鑰,按照所述預(yù)設(shè)密鑰更新方法生成自身的會(huì)話密鑰;響應(yīng)于得到共享密鑰后的非第一次群組通信,根據(jù)所述共享密鑰和/或所述第二設(shè)備自身的上輪輸出的部分或全部,按照所述預(yù)設(shè)密鑰更新方法生成自身新的會(huì)話密鑰。
24、在一種可能的實(shí)施例中,所述根據(jù)所述第二明文和所有所述第二設(shè)備的所述第一明文,按照所述預(yù)設(shè)密鑰生成方法,生成自身的共享密鑰,包括:
25、將所述第二明文和所有所述第二設(shè)備的所述第一明文進(jìn)行拼接,得到拼接值;
26、使用哈希函數(shù)將所述拼接值轉(zhuǎn)換為預(yù)設(shè)定長(zhǎng)的值,作為自身的共享密鑰。
27、本技術(shù)實(shí)施例還提供了一種群組通信方法,所述方法應(yīng)用于第五設(shè)備,所述方法包括:
28、利用所述第五設(shè)備自身的會(huì)話密鑰對(duì)目標(biāo)明文進(jìn)行加密,得到目標(biāo)密文;
29、將所述目標(biāo)密文通過群組通信的方式發(fā)送至各第六設(shè)備,以使得各所述第六設(shè)備利用自身的會(huì)話密鑰對(duì)所述目標(biāo)密文進(jìn)行解密,得到所述目標(biāo)明文;
30、其中,所述第五設(shè)備和所述第六設(shè)備各自按照上述任一所述的基于雙棘輪算法的群組密鑰協(xié)商方法確定自身的會(huì)話密鑰,且所述第五設(shè)備為第一設(shè)備或第二設(shè)備,所述第六設(shè)備為群組中除所述第五設(shè)備以外的其他設(shè)備。
31、本技術(shù)實(shí)施例還提供了一種基于雙棘輪算法的群組密鑰協(xié)商裝置,所述裝置應(yīng)用于第一設(shè)備,所述第一設(shè)備與至少一個(gè)第二設(shè)備屬于同一群組,所述第一設(shè)備為所述群組中的任一設(shè)備,所述裝置包括:
32、第一明文接收模塊,用于接收各所述第二設(shè)備發(fā)送的各所述第二設(shè)備自身的加密密鑰和第一明文,所述第一明文為各所述第二設(shè)備各自隨機(jī)生成的,且各所述第二設(shè)備還將自身的第一明文發(fā)送至除自身以外的其他第二設(shè)備;
33、第一密文發(fā)送模塊,用于隨機(jī)生成第二明文,并分別針對(duì)各所述第二設(shè)備,利用所述第二設(shè)備的加密密鑰對(duì)所述第二明文進(jìn)行加密,得到第一密文并發(fā)送至所述第二設(shè)備,以使得所述第二設(shè)備利用自身的解密密鑰對(duì)接收到的第一密文進(jìn)行解密,得到所述第二明文,并根據(jù)所述第二明文和所有所述第二設(shè)備的所述第一明文,按照預(yù)設(shè)密鑰生成方法,生成自身的共享密鑰,并響應(yīng)于得到共享密鑰后的第一次群組通信,根據(jù)所述共享密鑰,按照預(yù)設(shè)密鑰更新方法生成自身的會(huì)話密鑰;響應(yīng)于得到共享密鑰后的非第一次群組通信,根據(jù)所述共享密鑰和/或所述第二設(shè)備自身的上輪輸出的部分或全部,按照所述預(yù)設(shè)密鑰更新方法生成自身新的會(huì)話密鑰,其中,所述上輪輸出為設(shè)備自身上一次按照所述預(yù)設(shè)密鑰更新方法生成密鑰時(shí)得到的輸出;
34、共享密鑰生成模塊,用于根據(jù)所述第二明文和所有所述第二設(shè)備的所述第一明文,按照所述預(yù)設(shè)密鑰生成方法,生成自身的共享密鑰;
35、會(huì)話密鑰生成模塊,用于響應(yīng)于得到共享密鑰后的第一次群組通信,根據(jù)所述共享密鑰,按照所述預(yù)設(shè)密鑰更新方法生成自身的會(huì)話密鑰;
36、會(huì)話密鑰更新模塊,用于響應(yīng)于得到共享密鑰后的非第一次群組通信,根據(jù)所述共享密鑰和/或所述第一設(shè)備自身的上輪輸出的部分或全部,按照所述預(yù)設(shè)密鑰更新方法生成自身新的會(huì)話密鑰;
37、執(zhí)行模塊,用于在到達(dá)下一次預(yù)設(shè)密鑰協(xié)商時(shí)刻時(shí),和/或,響應(yīng)于所述共享密鑰或會(huì)話密鑰泄露,返回執(zhí)行所述接收各所述第二設(shè)備發(fā)送的各所述第二設(shè)備自身的加密密鑰和第一明文的步驟,得到自身新的共享密鑰。
38、本技術(shù)實(shí)施例還提供了一種群組通信裝置,所述裝置應(yīng)用于第五設(shè)備,所述裝置包括:
39、加密模塊,用于利用所述第五設(shè)備自身的會(huì)話密鑰對(duì)目標(biāo)明文進(jìn)行加密,得到目標(biāo)密文;
40、解密模塊,用于將所述目標(biāo)密文通過群組通信的方式發(fā)送至各第六設(shè)備,以使得各所述第六設(shè)備利用自身的會(huì)話密鑰對(duì)所述目標(biāo)密文進(jìn)行解密,得到所述目標(biāo)明文;
41、其中,所述第五設(shè)備和所述第六設(shè)備各自按照上述任一所述的基于雙棘輪算法的群組密鑰協(xié)商方法確定自身的會(huì)話密鑰,且所述第五設(shè)備為第一設(shè)備或第二設(shè)備,所述第六設(shè)備為群組中除所述第五設(shè)備以外的其他設(shè)備。
42、本技術(shù)實(shí)施例還提供了一種電子設(shè)備,包括:
43、存儲(chǔ)器,用于存放計(jì)算機(jī)程序;
44、處理器,用于執(zhí)行存儲(chǔ)器上所存放的程序時(shí),實(shí)現(xiàn)上述任一所述的基于雙棘輪算法的群組密鑰協(xié)商方法或群組通信方法。
45、本技術(shù)實(shí)施例還提供了一種計(jì)算機(jī)程序產(chǎn)品,當(dāng)其在計(jì)算機(jī)上運(yùn)行時(shí),使得計(jì)算機(jī)執(zhí)行上述任一所述的基于雙棘輪算法的群組密鑰協(xié)商方法或群組通信方法。
46、本技術(shù)實(shí)施例有益效果:
47、本技術(shù)實(shí)施例提供的基于雙棘輪算法的群組密鑰協(xié)商方法、通信方法及裝置,第一設(shè)備可以接收各第二設(shè)備發(fā)送的各第二設(shè)備自身的加密密鑰和第一明文,第一明文為各第二設(shè)備各自隨機(jī)生成的,且各第二設(shè)備還將自身的第一明文發(fā)送至除自身以外的其他第二設(shè)備;第一設(shè)備隨機(jī)生成第二明文,并分別針對(duì)各第二設(shè)備,利用第二設(shè)備的加密密鑰對(duì)第二明文進(jìn)行加密,得到第一密文并發(fā)送至第二設(shè)備,以使得第二設(shè)備利用自身的解密密鑰對(duì)接收到的第一密文進(jìn)行解密,得到第二明文,第二設(shè)備根據(jù)第二明文和所有第二設(shè)備的第一明文,按照預(yù)設(shè)密鑰生成方法,生成自身的共享密鑰,并響應(yīng)于得到共享密鑰后的第一次群組通信,根據(jù)共享密鑰,按照預(yù)設(shè)密鑰更新方法生成自身的會(huì)話密鑰;響應(yīng)于得到共享密鑰后的非第一次群組通信,根據(jù)共享密鑰和/或第二設(shè)備自身的上輪輸出的部分或全部,按照預(yù)設(shè)密鑰更新方法生成自身新的會(huì)話密鑰,其中,上輪輸出為設(shè)備自身上一次按照預(yù)設(shè)密鑰更新方法生成密鑰時(shí)得到的輸出;第一設(shè)備根據(jù)第二明文和所有第二設(shè)備的第一明文,按照預(yù)設(shè)密鑰生成方法,生成自身的共享密鑰。在生成共享密鑰的過程中,第一明文以及第二明文均是隨機(jī)生成的,且第一明文是分別根據(jù)各第二設(shè)備的加密密鑰進(jìn)行加密后再發(fā)送至各第二設(shè)備的,確保了第一明文的保密性,使得僅有群組內(nèi)的設(shè)備才能夠根據(jù)隨機(jī)的第一明文以及第二明文生成共享密鑰,避免共享密鑰被泄露。同時(shí),由于第一設(shè)備和各第二設(shè)備得到的第一明文和第二明文是相同的,且所使用的預(yù)設(shè)密鑰生成方法是相同的,因此,第一設(shè)備以及各第二設(shè)備根據(jù)第一明文和第二明文生成的共享密鑰是相同的。因此,在群組通信過程中,群組中的各設(shè)備可以響應(yīng)于得到共享密鑰后的第一次群組通信,根據(jù)共享密鑰,按照預(yù)設(shè)密鑰更新方法生成自身的會(huì)話密鑰,并響應(yīng)于得到共享密鑰后的非第一次群組通信,根據(jù)共享密鑰和/或第一設(shè)備自身的上輪輸出的部分或全部,按照預(yù)設(shè)密鑰更新方法生成自身新的會(huì)話密鑰,使得群組通信時(shí),群組中的各設(shè)備可以對(duì)應(yīng)于不同輪次的群組通信,使用相同的新的會(huì)話密鑰對(duì)該輪次群組通信傳輸?shù)男畔⑦M(jìn)行加密或解密。也就是說,在群組通信時(shí),一次通信中信息的發(fā)送接收對(duì)應(yīng)于一個(gè)會(huì)話密鑰,不同次通信中信息的發(fā)送接收對(duì)應(yīng)于不同的會(huì)話密鑰,因此,即使某一次通信的會(huì)話密鑰被泄露,也無法根據(jù)該次通信中使用的會(huì)話密鑰對(duì)之前輪次群組通信中傳輸?shù)男畔⑦M(jìn)行成功解密,也就無法得到之前輪次群組通信中傳輸?shù)男畔ⅲ瑥亩WC了群組通信的前向安全性。并且,可以理解的是,共享密鑰以及會(huì)話密鑰均可以視為群組密鑰,相鄰的兩個(gè)預(yù)設(shè)密鑰協(xié)商時(shí)刻即可在時(shí)間上劃分出一個(gè)時(shí)段,則多個(gè)預(yù)設(shè)密鑰協(xié)商時(shí)刻即可將時(shí)間劃分為多個(gè)不同的時(shí)段,通過到達(dá)下一次預(yù)設(shè)密鑰協(xié)商時(shí)刻時(shí)重新進(jìn)行群組密鑰協(xié)商的方式,可以確保根據(jù)各預(yù)設(shè)密鑰協(xié)商時(shí)刻劃分出的各不同時(shí)段內(nèi),群組通信所使用的共享密鑰是不同的,即使某一時(shí)段內(nèi)的所使用的共享密鑰均被破解,也不會(huì)使得后續(xù)其他時(shí)段內(nèi)的通信所使用的共享密鑰被泄露,保證了群組通信的后向安全性。即使群組通信所使用的共享密鑰或會(huì)話密鑰被泄露,也可以響應(yīng)于共享密鑰或會(huì)話密鑰泄露重新進(jìn)行群組密鑰協(xié)商,得到新的共享密鑰以及會(huì)話密鑰,也即得到新的群組密鑰,并使用新的群組密鑰進(jìn)行通信,確保后續(xù)群組通信的安全,也即保證了群組通信的后向安全性??梢?,本技術(shù)實(shí)施例既可以確保群組通信的前向安全性,也可以確保群組通信的后向安全性,從而提高了群組通信中的信息安全性。
48、本技術(shù)實(shí)施例中在到達(dá)下一次預(yù)設(shè)密鑰協(xié)商時(shí)刻和/或發(fā)生群組密鑰泄露時(shí),可以進(jìn)行新一輪的群組密鑰協(xié)商,根據(jù)第一明文以及第二明文,按照預(yù)設(shè)密鑰生成方法得到新一輪的共享密鑰,實(shí)現(xiàn)對(duì)共享密鑰的更新迭代。并且,在當(dāng)前輪次進(jìn)行群組密鑰協(xié)商得到當(dāng)前輪次的共享密鑰后,可以根據(jù)該當(dāng)前輪次的共享密鑰,按照預(yù)設(shè)密鑰更新方法不斷對(duì)當(dāng)前輪次中群組通信所使用的會(huì)話密鑰進(jìn)行更新。在下一輪次進(jìn)行群組密鑰協(xié)商得到下一輪次的共享密鑰后,可以根據(jù)該下一輪次的共享密鑰,按照預(yù)設(shè)密鑰更新方法,不斷對(duì)下一輪次中群組通信所使用的會(huì)話密鑰進(jìn)行更新。也就是說,本技術(shù)實(shí)施例中包括對(duì)共享密鑰進(jìn)行更新迭代的多個(gè)不同輪次,且各輪次中均可以根據(jù)該輪次中協(xié)商得到的共享密鑰進(jìn)行該輪次中會(huì)話密鑰的更新,相當(dāng)于在對(duì)共享密鑰更新迭代的輪次中嵌入了對(duì)各輪次中會(huì)話密鑰的更新迭代,并且共享密鑰的更新迭代和會(huì)話密鑰的更新迭代都無法根據(jù)迭代后的密鑰倒推迭代前的密鑰,因此,這兩個(gè)更新迭代過程可以視為一個(gè)密鑰的單向迭代更新的過程,與棘輪同樣具備單向的特性,因此,這兩個(gè)更新迭代的過程與兩個(gè)棘輪形成的雙棘輪結(jié)構(gòu)具有相同的特性,而本技術(shù)的方案是基于這兩個(gè)更新迭代過程實(shí)現(xiàn)的,因此,可以視為是一種基于雙棘輪算法的群組密鑰協(xié)商方法。
49、當(dāng)然,實(shí)施本技術(shù)的任一產(chǎn)品或方法并不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。