張瑞嵩 徐松艷 李 鑫 張道法
(北京遙測(cè)技術(shù)研究所 北京 100094)
隨著網(wǎng)絡(luò)技術(shù)的不斷進(jìn)步,組播技術(shù)因能有效實(shí)現(xiàn)1對(duì)多、多對(duì)多的快捷信息交互得到廣泛關(guān)注,但安全問題限制了組播技術(shù)的使用.組播的安全問題和性能一直是研究熱點(diǎn),目前該領(lǐng)域已經(jīng)取得了許多研究成果,但仍然存在不少亟待解決的問題.
組密鑰管理是安全組播研究的一個(gè)重點(diǎn).組內(nèi)成員通過統(tǒng)一的管理方案,對(duì)密鑰生成、密鑰分發(fā)、密鑰協(xié)商、密鑰更新及密鑰銷毀等進(jìn)行有效管理.現(xiàn)有的組密鑰管理方案可以分為集中式、分布式、分層式3類.集中式管理中存在唯一的管理實(shí)體擔(dān)任中央控制節(jié)點(diǎn),負(fù)責(zé)組密鑰的生成、分發(fā)和更新;分布式管理中組成員之間相互獨(dú)立且平等,它們共同參與組密鑰的生成;分層式管理中1個(gè)群組被劃分成若干子組,每個(gè)子組由不同的子組控制器管理,子組之間可以是集中式或分布式管理.
近年來一些研究工作密切關(guān)注組密鑰的自愈性問題,“自愈”指組成員能夠從最新獲得的密鑰更新消息中恢復(fù)先前未能成功獲取的組密鑰.這種自愈能力非常適用于開放異構(gòu)、誤碼率高的動(dòng)態(tài)異構(gòu)網(wǎng)絡(luò).動(dòng)態(tài)異構(gòu)網(wǎng)絡(luò)一般是指成員動(dòng)態(tài)參與的異構(gòu)網(wǎng)絡(luò),如無(wú)線傳感器網(wǎng)絡(luò)(wireless sensor network, WSN)等.這類網(wǎng)絡(luò)憑借其低成本、部署便利等特點(diǎn)被廣泛用于各種場(chǎng)景,但因組成員資源有限、存儲(chǔ)容量小且動(dòng)態(tài)參與頻繁,在組密鑰管理不具備自愈能力時(shí),組成員想要恢復(fù)未收到或遺失的密鑰更新消息,只能請(qǐng)求組控制器(group controller, GC)重發(fā)遺失消息,不僅增加了組控制器的開銷和通信資源,還使組控制器容易受到拒絕服務(wù)攻擊.因此,研究具有自愈能力的組密鑰管理方案具有重要意義.
2002年,Stadden等人[1]首先提出一種自愈的組密鑰分發(fā)機(jī)制,該機(jī)制中動(dòng)態(tài)組成員即使丟失1個(gè)或多個(gè)密鑰更新消息,也能從最近的密鑰分發(fā)廣播消息中恢復(fù)出丟失密鑰,但無(wú)法恢復(fù)出最后一次會(huì)話密鑰.該機(jī)制具有較高的存儲(chǔ)和計(jì)算開銷.Liu等人[2]對(duì)文獻(xiàn)[1]機(jī)制進(jìn)行了改進(jìn),提出一種使用撤銷多項(xiàng)式實(shí)現(xiàn)組成員撤銷的方法,優(yōu)化了存儲(chǔ)和通信開銷.Blundo等人[3]進(jìn)一步指出Liu等人的缺陷,提出一種自愈機(jī)制,該機(jī)制中組成員能夠從單個(gè)廣播消息中恢復(fù)出以前的會(huì)話密鑰,但具有較高的存儲(chǔ)開銷.Dutta等人[4]提出基于訪問多項(xiàng)式的具有自愈能力的組密鑰管理方案.林闖等人[5]在Liu等人[2]提出的個(gè)人秘密分發(fā)協(xié)議基礎(chǔ)上作了改進(jìn),使其能夠適應(yīng)于組通信,提出一種基本的組密鑰分發(fā)協(xié)議,隨后通過加入單向哈希鏈機(jī)制,設(shè)計(jì)了具有自愈能力的組密鑰分發(fā)協(xié)議(self-healing group key distribution scheme, S-GKDS).
現(xiàn)有的自愈組密鑰分配方案(self-healing group key distribution, SGKD)的基本思想[6]是GC在廣播消息中添加一些附加消息,使得合法組成員能夠根據(jù)這些附加消息恢復(fù)出丟失的會(huì)話密鑰,而不需要向GC申請(qǐng)重發(fā),降低了通信開銷和密鑰暴露的概率.SGKD主要分為4種:基于多項(xiàng)式[7-8]、基于指數(shù)算法[9]、基于雙線性配對(duì)[10]以及基于向量空間[11].也有學(xué)者利用其他技術(shù)實(shí)現(xiàn)自愈組密鑰分配,如差分子集[12-15]的方法.
本文通過構(gòu)造拉格朗日插值多項(xiàng)式,提出具有自愈能力的集中式組密鑰分發(fā)方案.解決了傳統(tǒng)方案最大通信次數(shù)和同階段最多撤銷成員數(shù)受限等問題,降低了組成員的存儲(chǔ)開銷,滿足前后向安全性,并且能夠抗合謀攻擊.本文方案適用于開放異構(gòu)、誤碼率高的動(dòng)態(tài)異構(gòu)網(wǎng)絡(luò).
已知函數(shù)y=f(x)的n對(duì)值(x1,y1),(x2,y2),…,(xn,yn),可以構(gòu)造出n-1次多項(xiàng)式:
(1)
式(1)被稱為拉格朗日插值多項(xiàng)式.從式(1)可以看出,y(xi)=yi.
CDH(computational Diffie-Hellman)問題是:假設(shè)已知(g,ga,gb)∈G,其中a,b∈Zq未知,計(jì)算gab∈G.CDH假設(shè)是:如果攻擊者無(wú)法在多項(xiàng)式時(shí)間內(nèi)計(jì)算出gab,則表明G上的CDH問題是困難的.
對(duì)于動(dòng)態(tài)異構(gòu)網(wǎng)絡(luò)上的組通信,若每次都恢復(fù)從第1個(gè)會(huì)話到當(dāng)前會(huì)話的所有會(huì)話密鑰,則帶來巨大的通信開銷和計(jì)算開銷.因此本文定義一個(gè)窗口,窗口值的大小為u,代表組成員在收到組密鑰更新消息時(shí)能夠恢復(fù)會(huì)話密鑰的個(gè)數(shù).窗口大小固定,隨著會(huì)話階段同步移動(dòng),故稱為滑動(dòng)窗口.
本文方案的參與者有GC和組成員.GC是安全可信中心,具有強(qiáng)大的處理能力和豐富的資源,負(fù)責(zé)組密鑰的管理和消息的廣播等.組成員資源有限,計(jì)算和存儲(chǔ)能力較差.本文假定組成員在準(zhǔn)備階段可以通過安全信道獲取共享密鑰,用于后續(xù)通信.
圖1為本文方案架構(gòu)圖,本文方案中無(wú)組成員數(shù)、撤銷成員數(shù)和最大會(huì)話次數(shù)的限制.在組成員發(fā)生動(dòng)態(tài)變化或者需要定期更新密鑰時(shí),GC計(jì)算相關(guān)參數(shù),廣播密鑰更新消息.合法成員接收后憑借初始信息恢復(fù)出所在會(huì)話窗口的所有密鑰,但不能恢復(fù)出之前的密鑰.非法組成員則無(wú)法恢復(fù)出任何密鑰.
圖1 本文方案架構(gòu)圖
GC在初始化階段對(duì)群組的合法成員分發(fā)相應(yīng)參數(shù),用于后續(xù)組密鑰的更新.會(huì)話時(shí)如果發(fā)生了成員變更,需進(jìn)行密鑰更新,密鑰更新完成表示新的會(huì)話開始.如圖1所示,會(huì)話j1,j2,j3無(wú)組成員變更,則在會(huì)話正常結(jié)束時(shí)更新密鑰;會(huì)話j4發(fā)生了成員變更,則立即更新密鑰,更新完成后開始新的會(huì)話.
網(wǎng)絡(luò)由組控制器和組成員構(gòu)成.
定義1.前向安全.在會(huì)話j以前被撤銷的組成員無(wú)法通過之前的會(huì)話密鑰和擁有的私密信息恢復(fù)出當(dāng)前及未來階段的組密鑰.
定義2.后向安全.在會(huì)話j以后加入的合法組成員無(wú)法通過之后的會(huì)話密鑰和擁有的私密信息恢復(fù)出之前的組密鑰.
定義3.抗合謀攻擊.在會(huì)話j1以后加入的合法組成員和在會(huì)話j2(j2+u 定義4.自愈能力.對(duì)于任意的會(huì)話j,存在j2 定義5.組密鑰恢復(fù)能力.對(duì)于合法組成員Ui,組密鑰完全可以由廣播消息和私鑰決定.即對(duì)于會(huì)話j的合法組成員Ui,能夠利用廣播消息和私鑰Ki計(jì)算出組密鑰TKj. GC首先選擇有限域Fq(q是一個(gè)大素?cái)?shù))中的一個(gè)生成元g用于后續(xù)多項(xiàng)式的構(gòu)造,然后選擇u-1個(gè)隨機(jī)數(shù)作為會(huì)話階段[2-u,0]的密鑰更新消息,如圖2所示,并計(jì)算一個(gè)用于保障組密鑰后向安全的前向哈希鏈,如式(2)所示. 圖2 密鑰更新消息 (2) GC與每個(gè)組成員Ui擁有唯一的共享密鑰Ki,其他組成員無(wú)法得知Ki. (3) 其中,Ki是GC與組成員Ui共享的密鑰,EKi表示使用Ki對(duì)消息加密,MAC(·)是產(chǎn)生消息驗(yàn)證碼的散列函數(shù)(如SM3).Ui收到消息后,利用共享密鑰Ki解密消息,計(jì)算解密后的消息驗(yàn)證碼并與接收信息進(jìn)行比較,若相同,則保留接收到的消息. 密鑰更新消息與會(huì)話階段關(guān)系如圖3所示: 圖3 密鑰更新消息與會(huì)話階段關(guān)系 假設(shè)此時(shí)處于會(huì)話j,滑動(dòng)窗口所在會(huì)話階段是[1+j-u,j],則密鑰更新步驟如下: 1) GC首先選擇一個(gè)隨機(jī)數(shù)GKj作為會(huì)話j的密鑰更新信息以及一個(gè)隨機(jī)數(shù)x1作為構(gòu)造多項(xiàng)式的因子;然后利用初始化階段選擇的生成元g和x1計(jì)算出u個(gè)值{gix1}|1+j-u≤i≤j,這u個(gè)值與滑動(dòng)窗口所在會(huì)話階段的密鑰更新信息GKi|i∈[1+j-u,j]組成u對(duì)值(gix1,GKi)|i∈[1+j-u,j],以構(gòu)造出u-1次的自愈組密鑰多項(xiàng)式Pj(t). (4) 其中,對(duì)于組用戶Ui而言,t是{gix1}|1+j-u≤i≤j中的一個(gè)數(shù). 2) GC首先選擇一個(gè)隨機(jī)數(shù)x2,利用x2與一個(gè)未使用的組成員私鑰Ka(Ka與合法組成員Ui擁有的私鑰Ki不相等)計(jì)算出gKax2;然后利用本階段的n個(gè)合法組成員的Ki計(jì)算出gKix2,與gKax2共n+1個(gè)值構(gòu)造出n次的多項(xiàng)式hj(x). (5) 其中,對(duì)于組用戶Ui而言,x是指gKix2. 3) GC利用步驟2)計(jì)算得到的n個(gè)gKix2構(gòu)造n次多項(xiàng)式ej(x). (6) 其中,Gj={U1,U2,…,Un}代表會(huì)話j共有n個(gè)合法組成員. 4) GC產(chǎn)生一個(gè)次數(shù)為u-1的屏蔽多項(xiàng)式rj(t). rj(t)=au-1tu-1+au-2tu-2+…+a1t+a0, (7) 其中,a0,a1,…,au-1是GC選擇的隨機(jī)數(shù). 利用式(4)~(7)構(gòu)造廣播多項(xiàng)式wj(x,t). wj(x,t)=ej(x)rj(t)+Pj(t)hj(x). (8) 5) GC廣播消息給所有組成員. GC→Gj:{j|gx1|gx2|wj(x,t)| (9) 組成員Ui收到廣播消息后,驗(yàn)證消息的合法性,若合法,則接收消息.首先,Ui利用共享密鑰Ki和接收的gx2計(jì)算出gKix2,根據(jù)Ui∈Gj以及拉格朗日插值多項(xiàng)式性質(zhì)可知,ej(gKix2)=0,hj(gKix2)=1;隨后,Ui利用接收的gx1和當(dāng)前會(huì)話次數(shù)j計(jì)算出gjx1,對(duì)于Ui而言,計(jì)算會(huì)話j的密鑰更新消息GKj的方式如下: GKj=wj(gKix2,gjx1). (10) 最后,Ui按照式(11)計(jì)算出當(dāng)前會(huì)話j的組密鑰: (11) 1) 組成員撤銷. 假設(shè)在會(huì)話j有組成員離開,GC只需在廣播消息時(shí),不使用被撤銷的組成員構(gòu)造多項(xiàng)式hj(x)和ej(x)即可. 2) 組成員加入. 假設(shè)在會(huì)話j有某個(gè)組成員Ua加入,GC向Ua發(fā)送的消息為 (12) 其中,Ka表示GC和組成員Ua的共享密鑰,EKa表示使用Ka對(duì)消息進(jìn)行加密.GC此時(shí)發(fā)送給Ua的消息中包含會(huì)話j對(duì)應(yīng)的哈希鏈KF上的值,Ua無(wú)法得知會(huì)話j以前對(duì)應(yīng)哈希鏈上的值,從而保證了后向安全性. 假設(shè)合法組成員Ui在會(huì)話β接收到廣播消息后,一直未收到新的廣播消息,直到會(huì)話j,則組成員能夠恢復(fù)會(huì)話階段[β,j](j-β≤u)的組密鑰.Ui收到廣播消息后,由于Ui∈Gj,因此ej(gKix2)=0,hj(gKix2)=1.由于Pj(t)是利用所在窗口的u個(gè)密鑰更新消息構(gòu)造,因此Ui可以恢復(fù)GKl|1+j-u≤l≤j即u個(gè)密鑰更新消息.Ui利用gx1和gx2以及私鑰Ki計(jì)算出gKix2和glx1,代入式(10),即可得到GKl. 圖7展示了FISE的查找流程。當(dāng)一個(gè)報(bào)文到達(dá)時(shí),F(xiàn)ISE首先在TCAM中分別匹配目的前綴和源前綴,通過目的表和源表可得指向TD單元的目的索引號(hào)和源索引號(hào),最后利用TD單元存儲(chǔ)的下一跳索引號(hào),在映射表中查找到下一跳的信息。 1) 前向安全性. 證明.假設(shè)Rj表示在會(huì)話j被撤銷的組成員集,則R=Rj∪Rj-1∪…∪R1(R∩Gj=?)表示會(huì)話階段[1,j]被撤銷的所有組成員集合.對(duì)于任意的被撤銷的組成員Ub∈R,其與GC的共享密鑰是Kb.由于ej(gKbx2)≠0且hj(gKbx2)≠1,因此對(duì)于攻擊者而言,wj(gKbx2,gjx1)是任意值.考慮R中所有組成員聯(lián)合,由于hj(x),ej(x)是根據(jù)會(huì)話j的所有合法組成員所擁有的私鑰構(gòu)造,rj(t)是GC隨機(jī)產(chǎn)生的秘密屏蔽多項(xiàng)式,因此對(duì)于GKj(t)=(wj(x,t)-ej(x)rj(t))/hj(x),被撤銷的組成員即使合謀也無(wú)法獲得hj(x),ej(x)和rj(t),從而也就無(wú)法計(jì)算出組密鑰. 2) 后向安全性. 3) 抗合謀攻擊. 證明.假設(shè)Rj2是會(huì)話j2被撤銷的所有組成員集合,Gj1是會(huì)話j1(j2+u 4) 組成員身份匿名性. 證明.GC在每次廣播密鑰更新消息時(shí),均未包含合法組成員身份和已撤銷組成員身份,這避免了暴露組成員的身份. 以上1)~3)也是定義1~3的證明,定義4和定義5的證明在方案設(shè)計(jì)中已給出. 將本文方案與Staddon等人[1]、Liu等人[2]、Blundo等人[3]、Dutta等人[4]、林闖等人[5]、杜春來等人[16]、施君宇[17]提出的方案進(jìn)行比較.表1給出了這些方案在前/后向安全性、抗合謀攻擊、最多可撤銷成員數(shù)、最大通信次數(shù)以及是否支持被撤銷節(jié)點(diǎn)重新加入5個(gè)方面的比較結(jié)果. 表1 安全性比較 由表1可知,本文方案相較其他方案不僅保證了前/后向安全性,能夠抵御合謀攻擊,且支持被撤銷節(jié)點(diǎn)重新加入,并針對(duì)最多可撤銷成員數(shù)和最大通信次數(shù)作了改進(jìn),取得了良好的效果. 1) 存儲(chǔ)開銷. 2) 通信開銷. 在很多需要廣播撤銷組成員身份信息的方案中,通常忽略廣播撤銷組成員身份信息的通信開銷,因此這些方案不適用于動(dòng)態(tài)撤銷頻繁的異構(gòu)網(wǎng)絡(luò).本文方案的通信開銷僅與會(huì)話階段合法組成員個(gè)數(shù)和滑動(dòng)窗口值有關(guān),不僅沒有廣播撤銷組成員身份信息的通信開銷,且避免了通信開銷隨會(huì)話次數(shù)增多而變大的缺點(diǎn).對(duì)于S-GKDS型方案,雖然通信開銷很低,但是撤銷成員數(shù)的限制條件高,僅可撤銷少量成員. 3) 計(jì)算開銷. 本文方案的計(jì)算開銷由有限域上的多項(xiàng)式乘法運(yùn)算以及哈希運(yùn)算組成.組成員進(jìn)行組密鑰更新時(shí)的計(jì)算開銷包含1次多項(xiàng)式的代入運(yùn)算和1次哈希運(yùn)算,GC的計(jì)算開銷只包含廣播多項(xiàng)式的構(gòu)造. 表2是本文方案與其他方案的性能比較.為了方便,方案都在同一個(gè)有限域上進(jìn)行運(yùn)算.表2中,m指最大通信次數(shù),t指最多可撤銷成員數(shù),j是會(huì)話次數(shù),l是組成員的會(huì)話生命期,q是所選取有限域中的元素個(gè)數(shù),n是合法成員數(shù),u是窗口大小(即允許恢復(fù)的自愈組密鑰個(gè)數(shù)),Gj表示會(huì)話j的合法組成員集合. 表2 性能比較 由表2可知,本文方案在存儲(chǔ)開銷上達(dá)到了最優(yōu),林闖等人[5]提出的方案通信開銷最少,施君宇[17]提出的方案計(jì)算開銷最少.結(jié)合安全性比較結(jié)果,本文方案在通信開銷、計(jì)算開銷上雖然達(dá)不到最優(yōu),但實(shí)現(xiàn)了無(wú)限制的最大通信次數(shù)和最大可撤銷成員數(shù),延長(zhǎng)了系統(tǒng)的生命期. 此外,傳統(tǒng)的自愈組密鑰方案通常在初始化階段產(chǎn)生m個(gè)私鑰,這會(huì)帶來3個(gè)問題:1)系統(tǒng)的通信次數(shù)最多為m次;2)在通話初期加入群組的組成員需要存儲(chǔ)大量密鑰;3)組成員退出群組再次加入時(shí),原先存儲(chǔ)的私鑰無(wú)法使用.本文方案不僅通過引入插值多項(xiàng)式解決了上述問題,還降低了組成員在初始化階段的存儲(chǔ)開銷. 本文針對(duì)不可靠網(wǎng)絡(luò)的自愈密鑰問題、現(xiàn)有組密鑰自愈方案存在的通信次數(shù)和同階段撤銷成員數(shù)受限問題以及被撤銷組成員是否可重新加入網(wǎng)絡(luò)的問題,結(jié)合單向哈希鏈和拉格朗日插值多項(xiàng)式方法,提出一種基于滑動(dòng)窗口的自愈組密鑰分發(fā)方案.分析證明,該方案在解決了上述問題的同時(shí),實(shí)現(xiàn)了成員的匿名性,減少了成員的存儲(chǔ)開銷,適用于資源受限、成員動(dòng)態(tài)參與頻繁、拓?fù)洳环€(wěn)定的開放異構(gòu)網(wǎng)絡(luò).3 組密鑰分配方案
3.1 準(zhǔn)備階段
3.2 初始化階段
3.3 密鑰更新階段
MAC(j|gx1|gx2|wj(x,t))},3.4 會(huì)話密鑰恢復(fù)
3.5 動(dòng)態(tài)參與階段
3.6 自愈機(jī)制
4 安全性分析
4.1 本文方案安全性分析
4.2 安全性比較
5 性能分析
5.1 本文方案性能分析
5.2 性能比較
6 結(jié)束語(yǔ)