• 沒有找到結果。

主要演算法

第四章 考慮特殊路由器下對子集差別方法的改良

4.3 主要演算法

本演算法分成管理中心處理部分跟路由器處理部分,以下就兩方面所要處理的演 算法,個別說明。

4.3.1 管理中心的處理

當目前集合中還有兩個以上的被註銷節點時,嘗試選擇一個同時包含任意兩個被 註銷節點的最小子樹,我們假設這兩個被註銷節點為r1 跟r2,這棵子樹的根節點 是i,i的左子節點為l,i的右子節點為m,因為r1 與r2 一定分別為l及m的後代節點,

在不失一般性下,我們假設r1 屬於以l為根的子樹中,而r2 屬於以m為根的子樹 中,與子差別分法類似的,我們找出了Sl,r1與Sm,r2兩個集合,在子集差別的方法 中,找到這兩個可覆蓋被註銷節點的集合後,便可以把相對應的金鑰加入到實際 所要使用的金鑰集合中,但在這裡我們稍停一步多做處理。我們考慮l與r1 以及 m與r2 分別差距多少層,假如其他一組的差距為一層,假設為l與r1,我們就把這 組的祖先節點,也就是l,標示為保留節點,在考慮完這兩個集合後,要根據下 面三種情形作處理:

(1) 假如l跟m都被標示為保留節點,這表示剛好滿足上一節所說的保留性模式,

我們像子集差別方法一樣,拔除Sl,r1,Sm,r2兩集合的節點,但我們不將這兩個 集合加入到覆蓋集合中,為了可以讓保留的屬性往樹狀結構的更上層移動,

我們將i節點標示為保留節點,然後跟子集差別方法一樣,將i節點設為被註銷 節點。

(2) 假如l節點跟m節點兩個只有一各是保留節點的話,我們假設l為保留節點,這 表示Sm,r2所包含的節點不少,用這一個集合所屬的金鑰來加密的話,可以服 務到很多合法節點,因此不能省略掉,所以我們把Sm,r2加入到覆蓋集合中,

而另一邊因為有保留節點,表示在之前的步驟中,有可能已經省略掉了一些 集合,為了使從l節點以下的所有合法節點都能夠有一個加密訊息服務,我們

把Si,m加入到覆蓋集合中,相同的,拔除Sl,r1,Sm,r2兩集合的節點,並且將i節 點設為被註銷節點。

(3) 假如l節點與m節點都沒被標示為保留,這種情形跟子集差別方法的情況一模 一樣,只需將Sl,r1,Sm,r2加入覆蓋集合中,拔除Sl,r1,Sm,r2兩集合的節點,並且 將i節點設為被註銷節點就可以。

圖表 13 分別表示上面所說的三個情形:

圖表 13.圖示表示 l 與 m 的三種情形

整個管理中心要做的就是不斷進行這樣的步驟,直到根節點變成被註銷節點,或 是整棵樹只剩下一個被註銷節點為止,接著將覆蓋集合中的集合所對應的金鑰加 密金鑰,拿來對資料加密金鑰做加密,就可以廣播出去了。

4.3.2 路由器端的動作

本篇論文定義的路由器必須有能力知道所需服務的使用者中,有哪些使用 者是合法使用者及哪些是已經被註銷的。在接收到管理中心送出的廣播訊息時,

路由器要找從管理中心所使用的S={S1,S2,S3,…,Si}的覆蓋集合中,找出能 使所有底下的合法使用者都能夠得到訊息的子集合S’={S1’,S2’,…,Sa’},這當 中會有些訊息某些被註銷使用者也有能力解開,所以路由器必須根據底下的註銷 使用者,找出S’’={S1’’,S2’’,…,Sb’’}覆蓋所有底下的註銷使用者,而S’’’=S'

∩S’’就是有可能被註銷使用者解開的加密訊息,我們得將用這些金鑰做加密的 密文用路由器與使用者共有的短時間金鑰再做一次加密。

以下面圖表 14 為例,假設節點 1 是管理中心,將內容廣播出去。當訊息來 到路由器 2 時,因為他底下的群組成員中,只有節點 15 是被註銷的,而此使用 者並沒有能力解開訊息,所以可以直接廣播到區域網路中;不同的是,路由器 1

底下的群組成員中,因為節點 11 是被註銷使用者,而他又有能力可以解開 EK1,3(SK),因此,我們需要路由器 1 幫我們再做另一次加密,製作出Ek10(EK1,3(SK)) 再廣播到區域網路中。

圖表 14.圖示中,節點 1 為管理者,把所選擇的覆蓋加密金鑰後廣播出去,當兩個不同網域的路由 器收到訊息後,所需採取的動作將不一樣

相關文件