專利名稱:安全多對多通信的分布式組密鑰管理模式的制作方法
相交申請的交叉參考本專利申請對1999年7月6日提交的美國臨時專利申請60/142,490號提出申請日優(yōu)先權(quán)要求。
多點傳送是分組通信的一個可伸縮解決方案;多對多安全多點傳送協(xié)議也必須是可伸縮的。分組訪問控制,私有密鑰分配和動態(tài)分組管理是安全分組通信協(xié)議的三個主要部分。目前大部分一對多安全多點傳送協(xié)議均使用一個分組管理器這樣的集中實體進(jìn)行訪問控制并分配私有密鑰。當(dāng)多點傳送組成員關(guān)系是動態(tài)關(guān)系時,分組管理器還必須保證理想的傳遞保密性。這將保證成員不能解密在加入分組之前發(fā)送的保密數(shù)據(jù)和在離開分組之后發(fā)送的保密數(shù)據(jù)。分組管理器在一個成員加入或離開時改變適當(dāng)?shù)乃接忻荑€并且將私有密鑰分配給對應(yīng)的成員。重新分配密鑰過程必須是可伸縮的;密鑰分配開銷應(yīng)當(dāng)獨(dú)立于多點傳送組的規(guī)模。
雖然產(chǎn)生單獨(dú)一個攻擊和故障點,但使用集中實體進(jìn)行分組控制對于一對多安全多點傳送而言是自然而然的。然而在存在多個發(fā)送方的情況下,期望多點傳送組仍然可以工作,只要有至少一個發(fā)送方正在工作。換言之,多對多安全多點傳送需要對分組進(jìn)行分散控制。訪問控制,密鑰分配和動態(tài)分組管理任務(wù)應(yīng)當(dāng)被授權(quán)給所有的發(fā)送方。期望在分組內(nèi)的所有發(fā)送方中間平均分配訪問控制職責(zé)和協(xié)議處理開銷。
在現(xiàn)有文獻(xiàn)中只有少量的安全多對多分組通信協(xié)議。然而文獻(xiàn)中的所有這種協(xié)議均使用集中分組控制并且容易變成單攻擊點和故障點。一個協(xié)議向第三方實體公開私有密鑰,上述第三方實體協(xié)助完成密鑰分配并且還使用一個集中″分組安全控制器″(GSC)進(jìn)行分組管理。另一個協(xié)議建議在所有組成員中給予相等的信任度。先加入的成員產(chǎn)生密鑰并且為后加入的成員分配密鑰。雖然這個協(xié)議在原理上是可行的,但在成員進(jìn)行合謀的情況下是脆弱的??梢宰尫浅I俚某蓡T控制分組,從而允許非均勻地分配分組控制和密鑰分配開銷。期望通信協(xié)議的結(jié)構(gòu)能夠防止組成員之間的合謀。
任何安全分組通信協(xié)議均具有分組訪問控制,私有密鑰分配和動態(tài)分組管理三個主要部分。發(fā)送方負(fù)責(zé)控制對安全多點傳送分組的訪問。在成員可以加入分組之前必須對其進(jìn)行驗證。為了保護(hù)隱私,數(shù)據(jù)在被發(fā)送到分組之前被加密。發(fā)送方負(fù)責(zé)以安全和可伸縮的方式向成員分配數(shù)據(jù)加密密鑰。最終,發(fā)送方負(fù)責(zé)保證理想的傳遞保密性。為了保證理想的傳遞保密性,發(fā)送方應(yīng)當(dāng)在一個主機(jī)加入或離開分組時改變私有密鑰。這個重新分配密鑰過程應(yīng)當(dāng)是安全和可伸縮的。
安全多對多協(xié)議的需求和期望特性如下所述。安全分組通信方案必須是可伸縮的。更具體地說,必須能夠在分組內(nèi)成員(或發(fā)送方)數(shù)量增加時調(diào)整密鑰分配開銷。所有發(fā)送方必須得到平等的信任并且在至少有一個發(fā)送方正在工作的情況下分組必須工作。期望向所有發(fā)送方分配訪問控制和動態(tài)分組管理任務(wù)。這允許局部處理加入和離開,因而避免控制通信負(fù)載的大范圍傳送。分組管理任務(wù)的分配還避免性能瓶頸并且消除多點傳送組中的單一攻擊點。最終,協(xié)議應(yīng)當(dāng)能夠有效避免或檢測并且消除任何合謀成員或發(fā)送方。
本發(fā)明提供了一個進(jìn)行安全多對多通信的分組密鑰管理系統(tǒng)和方法。系統(tǒng)使用一個二進(jìn)制分配樹結(jié)構(gòu)。二進(jìn)制樹包含一個第一內(nèi)部節(jié)點,第一內(nèi)部節(jié)點具有一個第一分支和一個第二分支,這兩個分支從屬于上述第一內(nèi)部節(jié)點。每個分支均包含一個第一成員,第一成員被分配到一個對應(yīng)的葉節(jié)點上。第一成員具有一個唯一二進(jìn)制ID,唯一二進(jìn)制ID與第一成員被分配到的對應(yīng)葉節(jié)點相關(guān)。第一成員的第一私有密鑰可以對被發(fā)送到其它成員的數(shù)據(jù)進(jìn)行加密。第一成員與一個由其它成員構(gòu)成的密鑰關(guān)聯(lián)分組相關(guān)。其它成員具有屏蔽密鑰。根據(jù)第一成員的第一私有密鑰導(dǎo)出的屏蔽密鑰被發(fā)送到密鑰關(guān)聯(lián)分組。其中,第一成員使用從密鑰關(guān)聯(lián)分組接收的屏蔽密鑰和第一私有密鑰計算第一內(nèi)部節(jié)點的非屏蔽密鑰。非屏蔽密鑰被用于加密在成員之間傳送的數(shù)據(jù),上述成員位于從屬于第一內(nèi)部節(jié)點的分支上。
圖1是圖解一個通信系統(tǒng)的圖例,這個通信系統(tǒng)在一個通信分組的成員中間進(jìn)行多對多通信;圖2是關(guān)于一個密鑰分配樹的圖例,其中根據(jù)本發(fā)明實施例的原理排列上述密鑰分配樹;圖3是關(guān)于一個加入通信系統(tǒng)的成員的圖例,其中根據(jù)本發(fā)明實施例的原理排列上述成員;圖4是關(guān)于一個離開通信系統(tǒng)的成員的圖例,其中根據(jù)本發(fā)明實施例的原理排列上述成員;圖5是示出確定一個密鑰關(guān)聯(lián)分組的成員的過程的序列圖;圖6是示出一個數(shù)據(jù)加密過程的序列圖;圖7是示出一個加入通信系統(tǒng)過程的序列圖;圖8是示出一個離開通信系統(tǒng)過程的序列圖;和圖9是圖解一個通信系統(tǒng)的圖例,這個通信系統(tǒng)在一個通信分組的成員中間進(jìn)行少對多通信。
具體實施例方式
參照圖1,其中圖解了一個支持基于本發(fā)明原理的多對多通信的可伸縮安全多點傳送協(xié)議。本發(fā)明的實施例是一個使用基于分配樹的密鑰管理方案(DTKM)進(jìn)行安全多對多分組通信的通信系統(tǒng)20。系統(tǒng)20是可伸縮的并且成員22被平等信任。系統(tǒng)20向成員平均分配分組控制職責(zé)和密鑰分配任務(wù)。
每個成員22均被分配一個二進(jìn)制ID并且這些ID被用來定義每個成員22的密鑰關(guān)聯(lián)。密鑰關(guān)聯(lián)分組22a中的成員相互聯(lián)系以便報告成員資格改變并且交換密鑰。成員22得到平等信任并且均可以是發(fā)送方。未來的成員可以和任何活躍成員聯(lián)系以便加入分組?;钴S成員驗證新成員的證書并且為其分配一個唯一二進(jìn)制ID 24。在不需要查找ID的全局空間的情況下在本地完成ID分配。ID分配過程說明了協(xié)議的分布式性質(zhì)。新成員啟動重新分配密鑰過程。注意,重新分配密鑰以保證理想的傳遞保密性。以類似于加入的方式處理離開;離開主機(jī)的鄰居(根據(jù)ID確定鄰居)需要注意離開并且啟動重新分配密鑰過程。密鑰關(guān)聯(lián)有助于在分組的所有成員中間平均分配密鑰分配開銷。
用二進(jìn)制密鑰分配樹26的葉表示成員。各個成員22為自身產(chǎn)生一個唯一私有密鑰28并且根據(jù)一個關(guān)于其兩個子節(jié)點的私有密鑰的函數(shù)計算各個內(nèi)部節(jié)點密鑰。所有私有密鑰28均與其屏蔽密鑰30相關(guān),其中使用一個單向函數(shù)32計算屏蔽密鑰。各個成員22保存連通到根的節(jié)點的所有非屏蔽密鑰和上述節(jié)點的兄弟節(jié)點的所有屏蔽密鑰。涉及根密鑰計算的唯一私有密鑰成分為各個成員22提供對分組的部分控制。加入/離開只需要改變加入/離開主機(jī)的與根連通的密鑰。因而,各個成員資格改變只需要O(log n)個消息,其中n是分組中成員的數(shù)量。因而協(xié)議是可伸縮的。
通過一個密鑰分配樹的葉節(jié)點表示多點傳送組的成員。密鑰分配樹是嚴(yán)格二進(jìn)制的,即各個內(nèi)部節(jié)點有且僅有兩個子節(jié)點。各個成員產(chǎn)生一個唯一私有密鑰28,這個唯一私有密鑰是在產(chǎn)生包含根密鑰的內(nèi)部節(jié)點密鑰時由成員產(chǎn)生的成分。內(nèi)部節(jié)點與私有密鑰相關(guān)并且根據(jù)一個關(guān)于其子節(jié)點的密鑰的函數(shù)計算這些密鑰。以類似方式計算根密鑰并且使用根密鑰進(jìn)行數(shù)據(jù)加密。對于各個私有密鑰k,存在一個屏蔽密鑰k′和一個非屏蔽密鑰密鑰。使用一個針對私有密鑰的指定單向函數(shù)計算屏蔽密鑰。在指定一個通過單向函數(shù)計算的屏蔽密鑰的情況下,不可能計算出屏蔽密鑰的對等非屏蔽密鑰。各個成員22知道與樹根連通的節(jié)點的所有密鑰和上述節(jié)點的兄弟節(jié)點的所有屏蔽密鑰,但不已知其它的屏蔽密鑰或非屏蔽密鑰。由作為那些密鑰的所有者和授權(quán)分配者的成員分配屏蔽密鑰。各個成員22使用其接收的屏蔽密鑰及其自身的私有密鑰28計算樹中與根連通的內(nèi)部節(jié)點的非屏蔽密鑰和自身的根密鑰。一個混合函數(shù)34被用來根據(jù)節(jié)點的子節(jié)點的屏蔽密鑰計算內(nèi)部節(jié)點密鑰。
各個節(jié)點被分配一個二進(jìn)制ID 24并且負(fù)責(zé)產(chǎn)生一個私有密鑰28。與節(jié)點相關(guān)的成員22還計算其密鑰28的屏蔽密鑰30并且與密鑰分配樹26中其直接相鄰節(jié)點共享屏蔽密鑰30。列表I提供了一個發(fā)現(xiàn)相鄰節(jié)點算法的偽碼,上述算法得到節(jié)點A的二進(jìn)制ID并且返回A的相鄰節(jié)點的二進(jìn)制ID。
Table I.
發(fā)現(xiàn)相鄰節(jié)點模塊Find_Neighbor(X=bhbh-1...b1),X是一個二進(jìn)制ID,其中當(dāng)1=<i<=h時,bi是一個二進(jìn)制數(shù)字beginX′=bhbh-1...b1,if(leaf_node(X′)=″true″)return X′;elso if(internal_node(X′)==″true″)doX′=X′0;while(leaf_node(X′)==″false″);return X′end
注意1.如果X是密鑰分配樹的一個葉節(jié)點則leaf_node(X)返回true;否則返回false。
2.如果X是密鑰分配樹的一個內(nèi)部節(jié)點則internal_node(X)返回true;否則返回false。
參照圖2,在執(zhí)行發(fā)現(xiàn)相鄰節(jié)點算法之后;H(1110)的相鄰節(jié)點是I(1111),并且G(110)的相鄰節(jié)點是H(1110)。具有相同長度的ID 24的相鄰節(jié)點(圖1中H和I)被稱作直接相鄰節(jié)點并且它們彼此交換其私有密鑰28的屏蔽密鑰30。如果一對相鄰節(jié)點具有不同的ID長度(圖1中的G和H),ID長度較小的成員發(fā)送其私有密鑰28的屏蔽密鑰30并且從ID長度較大的成員接收具有相同ID長度的對應(yīng)內(nèi)部節(jié)點的屏蔽密鑰30(G從H接收k′111)。在使用接收的新密鑰的情況下,成員22計算其父節(jié)點的私有密鑰28。一個混合函數(shù)(通常是一個XOR函數(shù))34被用來計算內(nèi)部節(jié)點密鑰。例如在圖2中,C和D針對屏蔽密鑰k′010而k′011使用混合函數(shù)m,34計算內(nèi)部節(jié)點密鑰k01。
在系統(tǒng)20中一個密鑰關(guān)聯(lián)分組22a的成員之間交換屏蔽密鑰30。密鑰關(guān)聯(lián)被用來在所有分組成員22中間平均分配密鑰分配任務(wù)。各個成員22需要與其ID 24的長度一樣多的屏蔽密鑰30來計算根密鑰。由其密鑰關(guān)聯(lián)分組22a的不同成員提供各個屏蔽密鑰30。對于一個成員的ID中的各個位,存在一個提供對應(yīng)屏蔽密鑰的成員22。下面的發(fā)現(xiàn)密鑰關(guān)聯(lián)模塊33返回其提供的、對應(yīng)于一個成員ID中一個指定位的成員22 ID 24和私有密鑰28。
Table II發(fā)現(xiàn)密鑰關(guān)聯(lián)分組模塊Find_Key_Association(X=bhbh-1...b1,i)beginXi=bhbh-1...bi+1bibi-1...b2b1;if(leaf_node(Xi)=″true″)return(Xi,k′i);ki=kbhbh-1···bi+1b-i]]>else if(internal_node(Xi)=″true″)doXi=Xi0;while(leaf_node(Xi)=″false″);return(Xi,k′i);elsedoXi=right_shift(Xi,1));while(leaf_node(Xi)=″false″);return(Xi,k′i);end注意1.如果X是密鑰分配樹的一個葉節(jié)點則leaf_node(X)返回true;否則返回false。
2.如果X是密鑰分配樹的一個內(nèi)部節(jié)點則internal_node(X)返回true;否則返回false。
3.right_shift(X,i)以一個二進(jìn)制ID X=bhbh-1...b2,b1,和一個數(shù)值,i,作為其輸入并且將X右移i次。輸出將是bhbh-1...bi+1。
參照圖2和5,其中圖解了用于H(1110)40的密鑰關(guān)聯(lián)模塊33。在步驟60加載對應(yīng)于一個節(jié)點的二進(jìn)制ID 24。接著在步驟62補(bǔ)足位位置。這里,我們補(bǔ)足對應(yīng)的位位置1,2,3,4,并且得到I(1111)42,1100,1010,0110。在步驟64,如果節(jié)點是一個葉節(jié)點,則在步驟70獲得對應(yīng)于密鑰關(guān)聯(lián)分組的成員的屏蔽密鑰。否則。如果節(jié)點不是一個葉節(jié)點,則在步驟66確定節(jié)點是否一個內(nèi)部節(jié)點。這里由于不存在具有最后三個ID的節(jié)點,我們在步驟66和68將其右移一個位位置以得到G(110)44,F(xiàn)(101)46,和D(011)48作為H的40密鑰關(guān)聯(lián)分組22a中的其余成員。最終在步驟70,I 42,G 44,F(xiàn) 46,和D 48分別向H 40提供密鑰k′1111,k′110,k′10,k′0。
參照圖6,其中圖解了C(010)50的根密鑰計算過程。在步驟72,C50產(chǎn)生密鑰k010并且向D(011)48發(fā)送其屏蔽密鑰k′010(在步驟74和76使用指定單向函數(shù)32計算)。類似地,D 48發(fā)送k′011到C 50。C和D接著可以通過對k′010和k′011使用指定的混合函數(shù)34分別計算k01。接著C50在步驟78向A(000)52發(fā)送k′01并且接收返回的k′00。在密鑰交換之后,A 52和C 50可以計算k0。在這個步驟之后,C 50和G 44彼此交換k′0和k′1。在步驟80根據(jù)關(guān)于k′0和k′1的函數(shù)計算根密鑰。在類似的步驟之后,多點傳送組的各個成員22獲得或計算出k′0和k′1并且接著計算根密鑰。在傳輸之前使用接收方的公開密鑰加密所有密鑰。注意C 50只接收與根54連通的節(jié)點的兄弟節(jié)點的屏蔽密鑰。在使用那些密鑰的情況下,可以計算與根54連通的節(jié)點的非屏蔽密鑰。C 50在步驟82使用已經(jīng)計算出的根密鑰對一個消息進(jìn)行加密。C 50在步驟84將加密消息多點傳送到通信系統(tǒng)20的成員22。
集合的鄰居的定義各個成員X,22還維護(hù)一個集合Nx的鄰居,該集合包括與X相鄰的所有成員。在我們的例子中,NH包括G 44和I 42。各個成員22監(jiān)視其集合中的相鄰成員并且在一個相鄰成員離開時啟動ID更新和密鑰更新過程。集合的相鄰成員在加入或離開期間可以改變并且加入和離開協(xié)議向成員提供信息以便更新這些集合。在系統(tǒng)20中,當(dāng)發(fā)生一次加入或離開之后,所有成員22在重新分配密鑰期間識別出分組成員資格改變。各個成員22負(fù)責(zé)使用加入或離開主機(jī)的ID 24更新其集合相鄰成員。
加入?yún)f(xié)議過程#1一個未來成員可以在密鑰分配樹26的任何節(jié)點上加入。然而為了增強(qiáng)效率期望控制未來成員加入的節(jié)點以便保持密鑰樹的均衡。系統(tǒng)20通過在樹中選擇位于一個可管理或由時間期限(TTL)限定的范圍內(nèi)的成員22對樹26進(jìn)行本地平衡??晒芾矸秶囊粋€例子包含將一個消息限制到一個可控制擴(kuò)充范圍上,例如一個5人LAN,一個部門LAN,一個分公司LAN,一個公司W(wǎng)AN。TTL限定范圍的一個例子包含限制消息可以跨越的路由器轉(zhuǎn)發(fā)段的數(shù)量。未來成員在多點傳送組中位于限定范圍內(nèi)具有最小ID長度的本地成員上加入。不期望的候選方案需要一或多個實體保持有密鑰分配樹26的一個快照。例如,為了跟蹤分組的所有成員22及其在密鑰樹26中的位置,或者向整個分組廣播成員狀態(tài)報告消息,或者向一個跟蹤所有加入和離開的集中實體廣播成員狀態(tài)報告消息。第一候選產(chǎn)生過多的網(wǎng)絡(luò)傳輸,而第二候選具有一個單點故障。
參照圖3和7,J 56是一個在步驟86加入到C 50上的新成員。當(dāng)驗證J的證書時,C在步驟88分割其ID 010(圖3中示出),為自身保留0100,將0101分配給J 56。C 50a還改變其私有密鑰28并且向J 56發(fā)送其新密鑰的屏蔽密鑰。J 56在步驟90,92和94產(chǎn)生一個其自身的私有密鑰28并且向C 50a發(fā)送屏蔽密鑰。注意J 56中所有對應(yīng)于和根54連通的內(nèi)部節(jié)點的密鑰因加入而發(fā)生改變。J 56需要所有在圖3中表示成黑色的節(jié)點的非屏蔽密鑰和表示成灰色的節(jié)點的屏蔽密鑰。注意,C 50a所知的屏蔽密鑰沒有發(fā)生改變,因而它可以在步驟96當(dāng)接收到k′1時計算所有對應(yīng)于節(jié)點010,01和0的新密鑰和根密鑰?,F(xiàn)在J 56需要對應(yīng)于011,00和1的屏蔽密鑰。通過使用較早提供的Find_Key_Association()模塊33,它在步驟98確定具有ID011(D),000(A)和110(G)的節(jié)點是其密鑰關(guān)聯(lián)分組的成員。注意這些節(jié)點及其相鄰節(jié)點也需要J 56知道或可以計算的屏蔽密鑰。具體地,J 56向D 48發(fā)送k′010并且從D 48接收k′011。它接著在步驟100計算k′01,向A 50發(fā)送k′01,并且接收返回的k′011。A 50也需要本地多點傳送被k00加密的k′01,其中只能由A 50和B 58來解密。J 56現(xiàn)在可以在步驟102計算其發(fā)送到G 44的k′,接收返回的k′1并且為自身計算根密鑰。G 44多點傳送用k1加密并且只被E 60,F(xiàn) 46,G 44,H 40,和I 42解密的k′0。在進(jìn)行上述密鑰交換之后,所有授權(quán)成員會具有其計算新根密鑰所需的密鑰??傊?,在一次加入期間會有O(logn)個單點傳送消息和O(log n)個子分組多點傳送消息。注意,由于多點傳送消息只須被發(fā)送到多點傳送組內(nèi)部的選定子分組上,多點傳送消息會被限制到一個TTL限定范圍或可管理范圍內(nèi)。我們在下面的Join()模塊62中概括加入過程。其中將新成員和一個現(xiàn)有成員的ID 24當(dāng)作參數(shù)。在模塊中,k′表示M發(fā)送到X的密鑰。
Table III.
加入模塊Join(X,Y=bhbh-1...b1)/*Y是現(xiàn)存在成員*/beginY=bhbh-1...b10;X=bhbh-1...b10;kx=generate_new_key();i=1;while(i=<length(X))begin(M,k′)=Find_Key_Association(X,i);outgoing_key=k′right_shift(x,i-1)send_key_from_to(outgoing_key,X,M);scoped_secure_multicast(outgoing_key,M,k);send_key_from_to(k′,M,X);i=i+1;kright_shift(x,i-1)=m(outgoing_key,k′);end注意1.generate_new_key()返回一個新私有密鑰。
2.right_shift(X,i)以一個二進(jìn)制ID X=bhbh-1...b2,b1,和一個數(shù)值,i,作為其輸入并且將X右移i次。輸出將是bhbh-1...bi+1。
3.send_keys_from_to(key,X,Y)指示X向Y發(fā)送″key″。
4.scope_secure_multicast(key1,X,key2)指示X用key2加密key1并且本地多點傳送key1。
5.length(X)返回二進(jìn)制ID X中的位數(shù)。
6.m()是混合函數(shù),其中 加入?yún)f(xié)議過程#2在另一個加入多點傳送組的過程中,一個新成員向其希望加入的多點傳送組的成員發(fā)送一個限定范圍多點傳送消息。消息由新成員的認(rèn)證信息以及其單點傳送(例子IP)地址構(gòu)成。參照圖3和7,C 50在步驟86應(yīng)答J 56的加入請求。當(dāng)驗證J的證書時,C在步驟88分割其ID010(圖1中示出),為自身保留0100,將0101分配給J 56。接著,C 50改變其私有密鑰并且將其新密鑰的屏蔽密鑰以及它知道的所有屏蔽密鑰(圖3中表示成灰色)發(fā)送到J 56。由于是J的相鄰節(jié)點,它也在步驟104向J56發(fā)送其單點傳送地址。J 56在步驟106產(chǎn)生一個其自身的私有密鑰并且向C 50a發(fā)送(單點傳送)屏蔽密鑰。注意J 56中所有對應(yīng)于和根54連通的內(nèi)部節(jié)點(圖3中表示成黑色)的密鑰因加入而發(fā)生改變。注意C 50a和J56在步驟108可以通過k010,k01和k0和根密鑰計算所有的新密鑰。內(nèi)部節(jié)點011,00和1的子節(jié)點需要屏蔽密鑰k′010,k’01,和k′0。C 50a負(fù)責(zé)發(fā)送它們,C 50a在步驟110分別使用密鑰k011’k′00,和k′1對其加密并且通過多點傳送發(fā)送加密密鑰。注意*C,J和D可以解密k′010,*A,B,C,J和D可以解密k′01,并且*A,B,...,和I可以檢索k′0。
所有上述密鑰所有權(quán)均符合密鑰分配規(guī)則,即所有成員均知道其與根54連通的非屏蔽密鑰和與根54連通的節(jié)點的兄弟節(jié)點的屏蔽密鑰。在進(jìn)行上述密鑰交換之后,所有授權(quán)成員會具有其計算新根密鑰所需的密鑰??傊?,會有一個單獨(dú)的單點傳送消息,該消息包括O(log n)個密密鑰。總之,會有一個單獨(dú)的單點傳送消息,該消息包括O(log n)個密鑰和O(log n)個多點傳送消息,其中每個多點傳送消息包括一個密鑰。注意,成員需要知道其集合中相鄰的成員的單點傳送地址。使用分組多點傳送地址發(fā)送所有其它密鑰。這個性質(zhì)有利于協(xié)議的分布式性質(zhì)。并且,我們的協(xié)議不需要成員將所有成員的ID保存到單點傳送地址轉(zhuǎn)換表中。
同步加入可以通過若干種方式更新內(nèi)部節(jié)點密鑰。最簡單的方式是每當(dāng)其任意子節(jié)點密鑰發(fā)生改變時便計算一個內(nèi)部節(jié)點密鑰。然而在有多個同時加入時簡單方案不適用。具體地,樹26的不同部分中的成員可以具有一個內(nèi)部節(jié)點密鑰的不同版本,從而使分組無法工作。所以期望有一個同步同時加入的方法。
同步同時加入的第一個方法,即一個版本維護(hù)方案需要維護(hù)所有內(nèi)部節(jié)點密鑰的版本號。如果一個成員通過多點傳送接收相同密鑰的兩個版本,它使用混合(XOR)函數(shù)34混合兩個密鑰。如果接收到相同密鑰的不止兩個版本,則多次使用混合函數(shù)34以得到新密鑰。由于XOR函數(shù)是聯(lián)合類型的函數(shù),所有成員會具有計算出的相同密鑰。版本維護(hù)方案的一個缺點是各個密鑰會涉及某些開銷。
一個同步同時加入的候選方法需要總是使用混合函數(shù)34更新內(nèi)部節(jié)點密鑰。換言之,總是通過對舊密鑰和接收或計算的新密鑰使用混合函數(shù)34來獲得新的內(nèi)部節(jié)點密鑰。第二方法在存儲方面更加有效,而第一方法在計算內(nèi)部節(jié)點密鑰需要的處理時間較少。
B.離開協(xié)議當(dāng)一個成員22離開時,其相鄰成員啟動重新分配密鑰過程。如果相鄰成員是離開的成員的兄弟成員,則假定其父節(jié)點在密鑰分配樹中的位置。否則它通知離開成員的兄弟成員的后代改變其ID。在兩種情況中,相鄰成員改變其私有密鑰28并且啟動重新分配密鑰過程。它向其密鑰關(guān)聯(lián)分組的成員發(fā)送新密鑰,而這些成員負(fù)責(zé)向其子分組中的適當(dāng)成員傳播新密鑰。在本章節(jié)的其它部分中,我們將描述ID更新過程和之后的重新分配密鑰過程。
在步驟112中X是離開節(jié)點而Y(=Neighbor(X))是其相鄰節(jié)點。如果Y的ID長度與X相同,則Y將其ID右移一個位位置以得到其新ID。如果Y的ID長于X的ID,則X的兄弟及其后代按以下方式改變其ID。注意,X的兄弟的各個后代Z與X共享一個密鑰。在步驟114,如果Z=bhbh-1...bi+1bibi-1...b2b1,則離開之后Z的ID將是bhbh-1...bi+1bi- 1...b2b1,其中i是Z的ID和X的ID的長度差值加1。在兩個情況下,Y在步驟116產(chǎn)生新私有密鑰并且啟動重新分配密鑰。在圖4中,如果E離開,則F得到ID 10并且產(chǎn)生一個新私有密鑰;如果G離開,則H和I分別得到ID 110,111并且H產(chǎn)生新私有密鑰。
在圖4中,C 50離開多點傳送組。J 56發(fā)現(xiàn)離開,將其ID從0101改變成010,并且為自身產(chǎn)生一個新私有密鑰28。因此,J到根54的路徑上的內(nèi)部節(jié)點密鑰發(fā)生改變并且J 56負(fù)責(zé)啟動與其對等方,即本章節(jié)前面定義的011(D),000(A)和110(G)的密鑰交換。J 56向D 48發(fā)送屏蔽密鑰k′010。J 56和D 48現(xiàn)在可以計算k01。J56接著向A 52發(fā)送k′01,A 52負(fù)責(zé)與所有具有k00的成員共享k′01。最終,J 56向G 44發(fā)送k′0,而G 44依次向所有具有k1的成員發(fā)送k′0。注意在步驟118 J56不需要從D 48,A 52,或G 44返回任何密鑰;在步驟120它已經(jīng)具有計算根密鑰所需的屏蔽密鑰。雖然離開成員C 50也知道所有那些屏蔽密鑰,但它不知道任何所需的非屏蔽密鑰,因而不能計算或獲得根密鑰。一次離開產(chǎn)生O(log n)個多點傳送消息,每個消息傳送一個加密私有密鑰。下面,我們概括了成員離開分組之后的重新分配密鑰過程。
Table IV.
離開模塊Leave(X)begin
Y=Find_Neighbor(X);for each Z in{descendants(sibling(X))}U(Y)Z=delete_ith_bit(Z,length(Z)-length(X)+1);ky=generate_new_key();compute_internal_node_keys(Y);i=1;while(i=<length(Y))begin(M,k′)=Find_Key_Association(Y,i);outgoing_key=k′right_shift(Y,i-1);right_shift(y,i-1)send_key_from_to(outgoing_key,Y,M);scoped_secure_multicast(outgoing_key,M,k);/*M alreadyhas k*/,i=i+1;endend注意·descendants(X)返回多點傳送組中是X的后代的成員·如果X=bhbh-1...b2b1,則sibling(X)=bhbh-1...b2y1·delete_ith_bit(X,i)以一個二進(jìn)制ID和一個整數(shù)作為其輸入并且返回刪除了位位置i的X。例如如果X=bhbh-1...bi+1bibi-1...b2b1,則函數(shù)返回bhbh-1...bi+1bi-1...b2b1。
·generate_new_key()返回一個新私有密鑰。
·compute_internal_node_keys(Y)指示Y本地計算所有內(nèi)部節(jié)點密鑰及其屏蔽密鑰。
·right_shift(X,i)以一個二進(jìn)制ID X=bhbh-1...b2,b1,和一個數(shù)值,i,作為其輸入并且將X右移i次。輸出將是bhbh-1...bi+1。
·send_keys_from_to(key,X,Y)指示X向Y發(fā)送″key″。
·scope_secure_multicast(key1,X,key2)指示X用key2加密key1并且本地多點傳送key1。
·length(X)返回二進(jìn)制ID X中的位數(shù)。
·m()是混合函數(shù)。
安全數(shù)據(jù)通信多點傳送組中的所有成員可以用指定密鑰計算根密鑰。一個有數(shù)據(jù)要發(fā)送的成員使用根密鑰加密數(shù)據(jù)并且通過傳統(tǒng)多點傳送通道(例如MBONE)發(fā)送數(shù)據(jù)。其它成員可以在不進(jìn)行任何其它的密鑰交換的情況下解密數(shù)據(jù)。協(xié)議還允許進(jìn)行安全子分組通信。一個發(fā)送方通過加密與子分組共享的密鑰可以向一個成員子分組發(fā)送保密數(shù)據(jù)。
分組合并可以有效合并根據(jù)本發(fā)明原理構(gòu)造的獨(dú)立通信系統(tǒng)以構(gòu)成一個單獨(dú)的多對多多點傳送組。為了合并兩個大小近似相等的分組,我們通過對現(xiàn)有根密鑰使用混合函數(shù)34來計算一個新公共分組密鑰。具有ID 1+(例子1,11,111等等。)或ID 0+(例子0,00,000等等。)的成員可以充當(dāng)一個分組的缺省代表并且啟動分組合并。如果一個分組層次高于其它分組,則層次較高的分組加入到層次較深的樹的最高層次點上。這種分組加入類似于一個加入,具有ID 0+(或1+)的成員22改變其私有密鑰并且啟動重新分配密鑰。
網(wǎng)絡(luò)分區(qū)和分組離開操作通過一個重復(fù)發(fā)現(xiàn)過程相鄰成員可以注意到網(wǎng)絡(luò)分區(qū)。例如,當(dāng)一個成員相鄰成員不發(fā)送心跳消息時,對應(yīng)成員22可以假定相鄰成員不可用,或者成員可以啟動一個發(fā)現(xiàn)過程以確定子分組中有其它成員可用。子分組多點傳送地址可以用于這個發(fā)現(xiàn)過程。
注意,密鑰樹中每個子樹的成員可以使用其共有的內(nèi)部節(jié)點的屏蔽密鑰在其內(nèi)部進(jìn)行通信。因而在有網(wǎng)絡(luò)的情況下所有連接子分組均可以在其內(nèi)部進(jìn)行通信。
平衡密鑰樹為了有效進(jìn)行私有密鑰分配,密鑰樹應(yīng)當(dāng)是平衡的。使用智能加入算法防止形成非均衡樹。加入?yún)f(xié)議需要未來成員在一個具有最小ID長度的現(xiàn)有發(fā)送方上加入。然而由于加入請求被發(fā)送到一個限定范圍(本地)內(nèi)的發(fā)送方,我們可以不具有一個全局平衡的樹。并且一系列的離開可以產(chǎn)生一個非均衡樹。通過強(qiáng)制執(zhí)行一個分組離開和分組合并操作可以重新平衡樹。在使用智能位置選擇進(jìn)行分組合并的情況下我們可以重構(gòu)一個平衡樹。
少對多安全分組通信本發(fā)明的一個可選實施例提供了安全少對多分組通信。一類多點傳送應(yīng)用具有較小的成員集合,其中發(fā)送方發(fā)送數(shù)據(jù)和其它內(nèi)容而接收方接收數(shù)據(jù)。所有發(fā)送方也是接收方。互聯(lián)網(wǎng)上的面板討論多點傳送,部門經(jīng)理討論策略而其它雇員傾聽的在線公司會議是少對多分組通信的例子。上述某些應(yīng)用也需要適用的數(shù)據(jù)保密性。在設(shè)計一個信任模型時,由于發(fā)送方擁有數(shù)據(jù),顯然它們必須對多點傳遞分組擁有控制。在我們的范圍內(nèi),控制包括分組訪問控制,私有密鑰分配等等。期望發(fā)送方具有相等控制,得到平等的信任,并且平等分?jǐn)倕f(xié)議處理開銷。
子分組參照圖9,其中圖解了一個基于本發(fā)明原理的少對多通信系統(tǒng)122。發(fā)送方屬于一個發(fā)送方子分組124,上述子分組共享一個公共分組密鑰(Root Key0)并且使用本發(fā)明的原理。加入和離開期間的重新分配密鑰與多對多通信實施例的重新分配密鑰相同。接收方構(gòu)成n個接收方子分組126;接收方子分組126的成員在其間共享一個公共分組密鑰(RootKeyI,1<I<n)并且使用本發(fā)明的原理。通過使用對應(yīng)的根密鑰,各個子分組成員22可以與相同子分組的其它成員通信。
各個接收方子分組至少有一個發(fā)送方是圖9所示的成員22b。換言之,某些發(fā)送方屬于兩個子分組,即發(fā)送方分組和一個接收方分組。屬于一個接收方子分組的發(fā)送方22b負(fù)責(zé)對該子分組進(jìn)行分組控制。然而注意,根據(jù)本發(fā)明的原理,分組管理開銷被分布在接收方子分組的所有成員中間。
少對多分組構(gòu)成可以通過若干種不同方式構(gòu)成少對多分組。例如,發(fā)送方首先構(gòu)成發(fā)送方子分組124。某些發(fā)送方則可以在開始時接受接收方的成員資格請求并且構(gòu)成接收方子分組126。我們的協(xié)議也允許某些接收方限制數(shù)據(jù)傳輸。當(dāng)一個接收方希望發(fā)送數(shù)據(jù)時,它與控制其所屬的子分組的發(fā)送方聯(lián)系。如果發(fā)送方批準(zhǔn)接收方的數(shù)據(jù)傳輸,它向少對多分組122的所有成員傳遞許可。
可選地,可以首先構(gòu)成接收方子分組126并且接著由子分組的領(lǐng)導(dǎo)構(gòu)成發(fā)送方子分組124以便啟動少對多通信。公司會議是這種少對多分組的例子。例如如果ABC公司具有若干個部門M,N,...,Z,則各個部門首先構(gòu)成接收方子分組126。各個分組的經(jīng)理(領(lǐng)導(dǎo))接著構(gòu)成發(fā)送方子分組124并且啟動少對多分組通信。
安全通信各個發(fā)送方產(chǎn)生一個會話密鑰并且向少對多分組發(fā)送經(jīng)過會話密鑰加密的數(shù)據(jù)。它接著向發(fā)送方子分組124傳遞經(jīng)過Root Key0加密的會話密鑰。屬于一個接收方子分組126的成員的各個發(fā)送方22b解密會話密鑰,用接收方子分組密鑰加密會話密鑰并且傳遞會話密鑰。在圖9中,S1使用Root Key0解密會話密鑰并且使用Root Key1加密會話密鑰。使用隨機(jī)產(chǎn)生的會話密鑰進(jìn)行數(shù)據(jù)傳輸保證接收方不能發(fā)送數(shù)據(jù)。
可選地,可以使用發(fā)送方子分組密鑰Root Key0進(jìn)行數(shù)據(jù)傳輸。在那種情況下,多點傳送路由器需要過濾接收方發(fā)送的所有數(shù)據(jù)。
雖然在當(dāng)前最優(yōu)實施例中描述了本發(fā)明,但可以理解的是,在不偏離如所附權(quán)利要求書提出的本發(fā)明的宗旨的前提下能夠修改或調(diào)整本發(fā)明。
權(quán)利要求
1.一個在多個成員之間提供安全通信的分布式分組密鑰管理系統(tǒng),其中包括一個定義某個通信結(jié)構(gòu)的二進(jìn)制分配樹,上述通信結(jié)構(gòu)包含一個內(nèi)部節(jié)點,上述內(nèi)部節(jié)點具有一個第一分支和一個第二分支,上述兩個分支從屬于上述內(nèi)部節(jié)點,上述內(nèi)部節(jié)點具有一個屏蔽密鑰和一個非屏蔽密鑰,各個上述分支均包含一個第一成員,上述第一成員被分配給一個對應(yīng)葉節(jié)點,上述第一成員與一個密鑰關(guān)聯(lián)分組相關(guān),上述密鑰關(guān)聯(lián)分組包括至少一個其它成員;上述第一成員包含一個與第一成員被分配到的對應(yīng)葉節(jié)點相關(guān)的唯一二進(jìn)制ID;一個用于產(chǎn)生內(nèi)部節(jié)點屏蔽密鑰的第一私有密鑰;和一個根據(jù)上述第一私有密鑰導(dǎo)出以便和至少一個其它成員的一個屏蔽密鑰進(jìn)行交換的屏蔽密鑰;其中上述第一成員使用至少一個其它成員的屏蔽密鑰和第一成員第一私有密鑰計算第一內(nèi)部節(jié)點的一個非屏蔽密鑰,上述非屏蔽密鑰被用于加密在位于從屬于第一內(nèi)部節(jié)點的分支上的成員之間傳送的數(shù)據(jù)。
2.如權(quán)利要求1所述的分布式分組密鑰管理系統(tǒng),其中上述第一成員還包含一個產(chǎn)生上述第一成員第一私有密鑰的私有密鑰發(fā)生器。
3.如權(quán)利要求1所述的分布式分組密鑰管理系統(tǒng),其中上述第一成員還包含一個確定與第一成員相關(guān)的密鑰關(guān)聯(lián)分組的密鑰關(guān)聯(lián)分組模塊。
4.如權(quán)利要求1所述的分布式分組密鑰管理系統(tǒng),其中上述第一成員還包含一個根據(jù)第一成員第一私有密鑰產(chǎn)生第一成員屏蔽密鑰的屏蔽密鑰模塊。
5.如權(quán)利要求4所述的分布式分組密鑰管理系統(tǒng),其中屏蔽密鑰模塊包含一個產(chǎn)生第一成員屏蔽密鑰的單向函數(shù)。
6.如權(quán)利要求1所述的分布式分組密鑰管理系統(tǒng),其中第一內(nèi)部節(jié)點是一個根節(jié)點。
7.如權(quán)利要求1所述的分布式分組密鑰管理系統(tǒng),其中上述第一成員還包含一個確定與第一成員相關(guān)的密鑰關(guān)聯(lián)分組的密鑰關(guān)聯(lián)分組模塊;一個產(chǎn)生第一成員第一私有密鑰的私有密鑰發(fā)生器;和一個根據(jù)第一成員第一私有密鑰產(chǎn)生第一成員屏蔽密鑰的屏蔽密鑰模塊。
8.如權(quán)利要求1所述的分布式分組密鑰管理系統(tǒng),其中上述第二分支包含一個第一成員,上述第一成員是密鑰關(guān)聯(lián)分組中與第一分支第一成員相關(guān)的一個成員;并且第一成員還包含一個非屏蔽密鑰模塊,上述非屏蔽密鑰模塊具有一個根據(jù)第一分支第一成員的屏蔽密鑰和第二分支第一成員的屏蔽密鑰確定第一內(nèi)部節(jié)點的非屏蔽密鑰的混合函數(shù),其中上述第二分支第一成員是一個與第一分支第一成員相關(guān)的密鑰關(guān)聯(lián)分組成員。
9.如權(quán)利要求1所述的分布式分組密鑰管理系統(tǒng),其中上述第一成員還包含確定與第一成員相關(guān)的密鑰關(guān)聯(lián)分組的密鑰關(guān)聯(lián)分組模塊;一個產(chǎn)生第一成員第一私有密鑰的私有密鑰發(fā)生器;和一個屏蔽密鑰模塊,上述屏蔽密鑰模塊具有一個根據(jù)第一成員第一私有密鑰產(chǎn)生第一成員屏蔽密鑰的單向函數(shù);和一個非屏蔽密鑰模塊,上述非屏蔽密鑰模塊具有一個確定第一內(nèi)部節(jié)點的非屏蔽密鑰的混合函數(shù)。
10.一個在至少兩個當(dāng)前成員之間提供安全通信的方法,其中包括的步驟有提供一個二進(jìn)制樹,上述二進(jìn)制樹具有至少一個內(nèi)部節(jié)點和至少兩個葉節(jié)點,一個上述內(nèi)部節(jié)點是根節(jié)點,各個上述內(nèi)部節(jié)點均具有兩個從其發(fā)出的分支,一個第一分支在一個上述葉節(jié)點上結(jié)束,另一個分支在另一個上述葉節(jié)點上結(jié)束,一個根路徑從各個上述葉節(jié)點延伸到上述根節(jié)點;將各個上述當(dāng)前成員分配到上述葉節(jié)點上,其中各個上述當(dāng)前成員均具有一個從某個葉節(jié)點延伸到上述根節(jié)點的根路徑;將一個二進(jìn)制ID分配給上述內(nèi)部節(jié)點和葉節(jié)點;將一個私有密鑰和一個屏蔽密鑰與各個上述葉節(jié)點關(guān)聯(lián)起來,其中根據(jù)私有密鑰導(dǎo)出屏蔽密鑰;確定一個與某個當(dāng)前成員相關(guān)的密鑰關(guān)聯(lián)分組以便分割密鑰分配任務(wù),密鑰關(guān)聯(lián)分組包含一個分組節(jié)點,上述分組節(jié)點對應(yīng)于當(dāng)前成員的根路徑中的各個內(nèi)部節(jié)點,各個分組節(jié)點具有一個關(guān)聯(lián)成員,上述當(dāng)前成員被分配到上述根路徑內(nèi)部節(jié)點的第一分支中的一個葉節(jié)點上,各個關(guān)聯(lián)成員被分配到上述根路徑內(nèi)部節(jié)點的其它分支中的一個葉節(jié)點上;當(dāng)前成員向密鑰關(guān)聯(lián)分組的關(guān)聯(lián)成員發(fā)送一個屏蔽密鑰,上述屏蔽密鑰與根路徑內(nèi)部節(jié)點的第一分支中的分組節(jié)點相關(guān);密鑰關(guān)聯(lián)分組的關(guān)聯(lián)成員向第一成員發(fā)送一個與根路徑內(nèi)部節(jié)點的其它分支中的分組節(jié)點相關(guān)聯(lián)的屏蔽密鑰;根據(jù)與其它分支分組節(jié)點相關(guān)的屏蔽密鑰和與第一分支分組節(jié)點相關(guān)的屏蔽密鑰確定根路徑內(nèi)部節(jié)點的一個非屏蔽密鑰;使用根路徑內(nèi)部節(jié)點屏蔽密鑰加密數(shù)據(jù);并且在位于從屬于根路徑內(nèi)部節(jié)點的分支上的成員之間傳送加密數(shù)據(jù)。
11.如權(quán)利要求10所述的方法,其中關(guān)聯(lián)一個私有密鑰的步驟還包括產(chǎn)生私有密鑰。
12.如權(quán)利要求10所述的方法,其中關(guān)聯(lián)一個私有密鑰的步驟還包括使用一個單向函數(shù)根據(jù)私有密鑰產(chǎn)生屏蔽密鑰。
13.如權(quán)利要求10所述的方法,其中發(fā)送步驟還包含使用一個安全通道。
14.如權(quán)利要求13所述的方法,其中使用安全通道的步驟還包含使用一個公開密鑰加密當(dāng)前成員的屏蔽密鑰和關(guān)聯(lián)成員的屏蔽密鑰。
15.如權(quán)利要求10所述的方法,其中確定根路徑內(nèi)部節(jié)點非屏蔽密鑰的步驟還包含針對與第二分支節(jié)點相關(guān)的屏蔽密鑰和與第一分支節(jié)點相關(guān)的屏蔽密鑰使用一個混合函數(shù)。
16.如權(quán)利要求10所述的方法,還包括從二進(jìn)制樹清除一個離開成員的步驟。
17.如權(quán)利要求16所述的方法,其中清除步驟包含的步驟有更新當(dāng)前成員的二進(jìn)制ID;為離開成員的一個相鄰成員產(chǎn)生一個新私有密鑰,其中相鄰成員是位置與離開成員相鄰的當(dāng)前成員,上述相鄰成員具有一個根路徑和一個密鑰關(guān)聯(lián)分組,而上述密鑰關(guān)聯(lián)分組包含至少一個關(guān)聯(lián)成員;在相鄰成員和相鄰成員的密鑰關(guān)聯(lián)分組的關(guān)聯(lián)成員之間啟動一個屏蔽密鑰交換,其中相鄰成員啟動密鑰交換;并且確定相鄰成員的根路徑上的內(nèi)部節(jié)點的非屏蔽密鑰。
18.如權(quán)利要求10所述的方法,還包括向二進(jìn)制樹加入一個新成員的步驟。
19.如權(quán)利要求18所述的方法,其中加入步驟還包括從新成員向上述當(dāng)前成員中的一個本地成員發(fā)送一個加入請求;批準(zhǔn)加入請求;將本地成員的二進(jìn)制ID分割成一個第一ID和一個第二ID,其中第一ID被分配給本地成員而第二ID被分配給新成員;為本地成員產(chǎn)生一個新私有密鑰;為新成員產(chǎn)生一個第一私有密鑰;根據(jù)新私有密鑰產(chǎn)生一個本地成員屏蔽密鑰;根據(jù)第一私有密鑰產(chǎn)生一個新成員屏蔽密鑰;將新成員的屏蔽密鑰與本地成員的屏蔽密鑰交換;確定一個與新成員相關(guān)的密鑰關(guān)聯(lián)分組以便分割密鑰分配任務(wù),新成員密鑰關(guān)聯(lián)分組包含一個分組節(jié)點,上述分組節(jié)點對應(yīng)于新成員的根路徑中的各個內(nèi)部節(jié)點,上述新成員被分配到上述根路徑內(nèi)部節(jié)點的第一分支中的一個葉節(jié)點上,上述分組節(jié)點具有一個關(guān)聯(lián)成員,各個關(guān)聯(lián)成員被分配到新成員的根路徑內(nèi)部節(jié)點的其它分支中的一個葉節(jié)點上;新成員向新成員密鑰關(guān)聯(lián)分組的關(guān)聯(lián)成員發(fā)送一個屏蔽密鑰,上述屏蔽密鑰與根路徑內(nèi)部節(jié)點的第一分支中的一個第一節(jié)點相關(guān);新成員密鑰關(guān)聯(lián)分組關(guān)聯(lián)成員向新成員發(fā)送一個屏蔽密鑰,上述屏蔽密鑰與根路徑內(nèi)部節(jié)點的其它分支中的分組節(jié)點相關(guān);并且根據(jù)與新成員其它分支分組節(jié)點相關(guān)的屏蔽密鑰和與新成員第一分支分組節(jié)點相關(guān)的屏蔽密鑰確定新成員根路徑內(nèi)部節(jié)點的一個非屏蔽密鑰。
20.向一個分布式通信系統(tǒng)加入一個新成員以便在多個本地成員之間進(jìn)行安全通信的方法,其中包括的步驟有提供一個二進(jìn)制樹,上述二進(jìn)制樹具有至少一個內(nèi)部節(jié)點和至少兩個葉節(jié)點,一個上述內(nèi)部節(jié)點是根節(jié)點,各個上述內(nèi)部節(jié)點均具有兩個從其發(fā)出的分支,一個第一分支延伸到至少一個上述葉節(jié)點上,一個第二分支延伸到至少另一個上述葉節(jié)點上,一個根路徑從各個上述葉節(jié)點延伸到上述根節(jié)點;各個上述本地成員具有一個二進(jìn)制ID并且被分配給一個葉節(jié)點;從一個新成員向通信系統(tǒng)的一個上述本地成員發(fā)送一個加入請求;確定一個與本地成員相關(guān)的密鑰關(guān)聯(lián)分組以便分割密鑰分配任務(wù),本地成員密鑰關(guān)聯(lián)分組包含一個分組節(jié)點,上述分組節(jié)點對應(yīng)于本地成員的根路徑中的各個內(nèi)部節(jié)點,上述本地成員被分配到上述根路徑內(nèi)部節(jié)點的第一分支中的一個葉節(jié)點上,上述分組節(jié)點具有一個關(guān)聯(lián)成員,各個關(guān)聯(lián)成員被分配到本地成員的根路徑內(nèi)部節(jié)點的其它分支中的一個葉節(jié)點上;批準(zhǔn)加入請求;將本地成員的二進(jìn)制ID分割成一個第一ID和一個第二ID,其中第一ID被分配給本地成員而第二ID被分配給新成員;產(chǎn)生一個本地成員新私有密鑰;產(chǎn)生一個新成員第一私有密鑰;根據(jù)本地成員新私有密鑰產(chǎn)生一個本地成員屏蔽密鑰;根據(jù)新成員第一私有密鑰產(chǎn)生一個新成員屏蔽密鑰;向本地成員發(fā)送新成員屏蔽密鑰;向新成員發(fā)送本地成員屏蔽密鑰;計算本地成員根路徑內(nèi)部節(jié)點的屏蔽密鑰和非屏蔽密鑰;向本地成員密鑰關(guān)聯(lián)分組關(guān)聯(lián)成員發(fā)送本地成員根路徑內(nèi)部節(jié)點屏蔽密鑰,上述關(guān)聯(lián)成員對應(yīng)于分組節(jié)點,而上述分組節(jié)點對應(yīng)于本地成員根路徑內(nèi)部節(jié)點;向本地成員發(fā)送對應(yīng)于本地成員根路徑內(nèi)部節(jié)點的分組節(jié)點的一個屏蔽密鑰;并且向新成員傳遞對應(yīng)于本地成員根路徑內(nèi)部節(jié)點的分組節(jié)點屏蔽密鑰。
21.如權(quán)利要求20所述的方法,其中發(fā)送新成員屏蔽密鑰的步驟還包括向本地成員單點傳送新成員的屏蔽密鑰。
22.如權(quán)利要求20所述的方法,其中發(fā)送分組節(jié)點屏蔽密鑰的步驟還包括向本地成員單點傳送分組節(jié)點屏蔽密鑰。
23.如權(quán)利要求20所述的方法,其中上述內(nèi)部節(jié)點還包含一個屏蔽密鑰,上述方法還包括的步驟有維護(hù)一個與內(nèi)部節(jié)點屏蔽密鑰相關(guān)的版本;接收內(nèi)部節(jié)點的屏蔽密鑰;確定是否已經(jīng)接收內(nèi)部節(jié)點屏蔽密鑰的不止一個版本;并且使用一個混合函數(shù)混合內(nèi)部節(jié)點屏蔽密鑰的各個版本。
24.如權(quán)利要求20所述的方法,其中各個上述內(nèi)部節(jié)點還包含一個舊屏蔽密鑰,上述方法還包括的步驟有接收一個對應(yīng)于某個內(nèi)部節(jié)點的新屏蔽密鑰;并且對舊屏蔽密鑰和新屏蔽密鑰使用一個混合函數(shù)。
25.如權(quán)利要求20所述的方法,其中二進(jìn)制ID包含一個長度,上述方法還包括的步驟有確定二進(jìn)制ID具有最短長度的當(dāng)前成員;其中具有最短長度二進(jìn)制ID的當(dāng)前成員的二進(jìn)制ID被分割成第一ID和第二ID。
26.將一個第一安全通信系統(tǒng)與一個第二安全通信系統(tǒng)合并的方法,各個上述通信系統(tǒng)包含具有一個二進(jìn)制ID的多個成員,各個上述通信系統(tǒng)具有一個二進(jìn)制樹結(jié)構(gòu),上述二進(jìn)制樹結(jié)構(gòu)具有一個根節(jié)點,上述根節(jié)點具有一個屏蔽密鑰,其中包括的步驟有發(fā)送一個將第一通信系統(tǒng)與第二通信系統(tǒng)合并的請求;批準(zhǔn)合并請求;使用一個混合函數(shù)將第一通信系統(tǒng)根節(jié)點的屏蔽密鑰與第二通信系統(tǒng)根節(jié)點的屏蔽密鑰混合;向上述第一通信系統(tǒng)多個成員的二進(jìn)制ID附加一個1;并且向第二通信系統(tǒng)各個成員的二進(jìn)制ID附加一個0。
27.一個在多個成員之間提供安全通信的分布式分組密鑰管理系統(tǒng),其中包括至少一個發(fā)送方二進(jìn)制分配樹以便構(gòu)成一個發(fā)送方分組;上述至少一個發(fā)送方二進(jìn)制分配樹定義一個通信結(jié)構(gòu),上述通信結(jié)構(gòu)具有一個發(fā)送方內(nèi)部節(jié)點,上述發(fā)送方內(nèi)部節(jié)點具有一個第一分支和一個第二分支,上述兩個分支從屬于上述發(fā)送方內(nèi)部節(jié)點,各個上述分支均包含一個第一成員,上述第一成員被分配給一個對應(yīng)葉節(jié)點,上述第一成員與一個密鑰關(guān)聯(lián)分組相關(guān),上述密鑰關(guān)聯(lián)分組包括至少一個其它成員;上述發(fā)送方分組第一成員包含一個與發(fā)送方分組第一成員被分配到的對應(yīng)葉節(jié)點相關(guān)的唯一二進(jìn)制ID;一個第一私有密鑰;和一個根據(jù)上述第一私有密鑰導(dǎo)出以便和其它發(fā)送方分組成員的一個屏蔽密鑰進(jìn)行交換的屏蔽密鑰;其中上述發(fā)送方分組第一成員使用至少一個其它發(fā)送方分組成員的屏蔽密鑰和第一私有密鑰計算發(fā)送方內(nèi)部節(jié)點的一個非屏蔽密鑰,上述非屏蔽密鑰被用于加密和解密在位于從屬于發(fā)送方內(nèi)部節(jié)點的分支上的發(fā)送組成員之間傳送的發(fā)送分組數(shù)據(jù);和至少一個構(gòu)成接收方分組的接收方二進(jìn)制分配樹,上述接收方分組包含至少一個與上述發(fā)送方分組通信的發(fā)送方;上述至少一個接收方二進(jìn)制分配樹定義一個通信結(jié)構(gòu),上述通信結(jié)構(gòu)具有一個接收方內(nèi)部節(jié)點,上述接收方內(nèi)部節(jié)點具有一個第一分支和一個第二分支,上述兩個分支從屬于上述接收方內(nèi)部節(jié)點,各個上述分支均包含一個第一成員,上述第一成員被分配給一個對應(yīng)葉節(jié)點,上述第一成員與一個密鑰關(guān)聯(lián)分組相關(guān),上述密鑰關(guān)聯(lián)分組包括至少一個其它成員;上述接收方分組第一成員包含一個與接收方分組第一成員被分配到的對應(yīng)葉節(jié)點相關(guān)的唯一二進(jìn)制ID;一個可以加密數(shù)據(jù)的第一私有密鑰;和一個根據(jù)上述第一私有密鑰導(dǎo)出以便和其它接收方分組成員的一個屏蔽密鑰進(jìn)行交換的屏蔽密鑰;其中各個上述發(fā)送方是一個上述發(fā)送方分組第一成員和一個上述接收方分組第一成員,上述發(fā)送方使用其它接收方分組成員的屏蔽密鑰和發(fā)送方的第一私有密鑰計算接收方內(nèi)部節(jié)點的一個非屏蔽密鑰,上述非屏蔽密鑰被用于加密和解密在位于從屬于接收方內(nèi)部節(jié)點的分支上的上述接收方分組成員之間傳送的接收方分組數(shù)據(jù)。
28.如權(quán)利要求27所述的分布式分組密鑰管理系統(tǒng),其中接收方分組數(shù)據(jù)和發(fā)送方分組數(shù)據(jù)是一個會話密鑰,上述會話密鑰解密用會話密鑰加密的第二數(shù)據(jù)。
29.如權(quán)利要求27所述的分布式分組密鑰管理系統(tǒng),其中接收方分組數(shù)據(jù)和發(fā)送方分組數(shù)據(jù)是在發(fā)送方分組成員和接收方分組成員之間傳送的通信數(shù)據(jù)。
全文摘要
提供一個進(jìn)行安全多對多通信的分組密鑰管理系統(tǒng)(20)和方法。系統(tǒng)(20)使用一個二進(jìn)制分配樹結(jié)構(gòu)(26)。二進(jìn)制樹(26)包含一個第一內(nèi)部節(jié)點,第一內(nèi)部節(jié)點具有一個第一分支和一個第二分支,這兩個分支從屬于上述第一內(nèi)部節(jié)點。每個分支均包含一個第一成員(22,22a),第一成員被分配到一個對應(yīng)的葉節(jié)點上。第一成員(22,22a)具有一個唯一二進(jìn)制ID(24),上述唯一二進(jìn)制ID與第一成員(22,22a)被分配到的對應(yīng)葉節(jié)點相關(guān)。第一成員(22,22a)的一個第一私有密鑰(28)可以加密被發(fā)送到其它成員(22,22a)的數(shù)據(jù)。第一成員(22,22a)與一個包括其它成員(22,22a)的密鑰關(guān)聯(lián)分組(33)相關(guān)。其它成員(22,22a)具有屏蔽密鑰(30)。根據(jù)第一成員(22,22a)的第一私有密鑰(28)導(dǎo)出的一個屏蔽密鑰(30)被發(fā)送到密鑰關(guān)聯(lián)分組(33)。其中第一成員(22,22a)使用從密鑰關(guān)聯(lián)分組(33)接收的屏蔽密鑰(30)和第一私有密鑰(28)計算第一內(nèi)部節(jié)點的一個非屏蔽密鑰。非屏蔽密鑰被用于加密數(shù)據(jù)在位于從屬于第一內(nèi)部節(jié)點的分支上的成員(22,22a)之間傳送的數(shù)據(jù)。
文檔編號H04L12/18GK1363160SQ00810280
公開日2002年8月7日 申請日期2000年7月6日 優(yōu)先權(quán)日1999年7月6日
發(fā)明者拉克斯米納斯·R·東戴提, 薩里特·穆克黑吉, 阿謝克·塞默爾 申請人:松下電器產(chǎn)業(yè)株式會社