第二章 相關研究
2.3 子集差別的相關方法
2.3.2 Shamir等人提出的層級子集差別方法(LSD)
在子集差別方法中,曾經用圖表 4 左邊的圖示來說明Si,j,其中的白色區域
2.4 Tomoyuki 所提出的冪集合演算法
Tomoyuki 在 2002 年的 asiacrypt 發表了新的演算法[6],用計算量換取儲存 空間與傳輸訊息量,這就是冪集合演算法(power set method),這個方法需要比子 集差別方法來的有效多的儲存效率,所犧牲的代價是使用者在計算出 SK 時,需 要花費較多的計算時間。
2.4.1 架構金鑰分配
跟一般的無狀態行機制一樣,冪集合演算法首先定義一群子集合,屬於此 子集合的使用者就會分配到一把金鑰,假設冪集合裡面所建構的樹中,每個中間 節點擁有a個子節點(degree),在此演算法所定義的子集合是以 來表示,
其中第一個k是表示這個集合是以從根節點開始寬先次序第k個中間節點來做考
合的金鑰給此節點,例如,分配給V5 SK2,100、SK2,101、跟SK2,110這三把金鑰,因為 我們多定義了S1,11…1這個集合,所以根節點的每個子節點都額外分配到SK1,11…1。
定義完這些參數後,管理中心要分配每一個使用者uj一把金鑰MKj,首先我 們考慮從根節點V1到葉節點uj的路徑,總共會經過 個中間節點,這些中間 節點總共被分配到
a
N log
( 2
−1− 1 ) log
aN + 1
a 把子集質數,把這些子集的Pk,B全部相乘
起來得到屬於uj的wj,則使用者uj所分配到的金鑰MK Kwj M
T
j = mod ,例如,
MK1就是用P1,100、P1,110、P1,101、P1,111、P2,100、P2,110、P2,101、P5,100、P5,110、P5,101這些子集質
數所得到的w1加以運算而來。
圖表 5.中間節點的金鑰
2.4.2 加密與解密
當管理中心要發送一個金鑰更新訊息時,他必須先針對目前架構數中被註 銷使用者分佈的情況,決定要使用哪些加密金鑰來加密資料加密金鑰,管理中心 決定的方法非常簡單,就是把被註銷的使用者uj從結構樹上拔除,這樣一個動 作,會使得從uj到根節點所有路徑上的連結消失,舉例來說,假如u2跟另一個中 間的使用者uk被註銷權限,我們將被註銷者到根節點的路徑拔除,形成下面圖表
6 的結構,於是剩下了S5,101、S2,011、S3,110、…這幾個子集合,管理中心就使用屬於
量相當重視的環境時,是非常不適合的。
2.5 區間穿刺方法
在 2005 年的 Eurocrypt,Nam-su Jho 等人發表了一篇新的廣播加密方法[9],
這個方法的子集合定義與子集差別方法大有不同,是近年來新的突破,這個方法 定義了許多可以彈性調整的參數,經過作者的實驗,在相當多的應用情況上,都 較子集差別方法來的有效率。
2.5.1 子集合定義 (p,c)-π
在這個方法中所定義的子集合較為彈性。所用的子集合是以(p,c)區間來表 示,說的是一個 p 穿刺 c 區間的區段,這個區段中,最多有 c 個使用者,此區段 的開始與結尾都是合法使用者,而且中間最多只能有 p 個非法使用者。我們以下 面圖表 7 說明:
圖表 7.(1,6)區間的例子
上圖是一些(1,6)區段的例子,第二個跟第三個區段都是可以達到最大量,六 個,的區段,而當中的非法使用者也都不超過一個,屬於定義範圍,至於第一個 區段,因為右邊有連續兩個非法使用者,要是想含括到第六個合法使用者的話,
就得覆蓋到這兩個非法者,與(1,6)的定義相違背,應此變成上圖所示的結果:第 一個區段只有三個使用者。
定義了上述的子集合之後,管理中心就要分配每位使用者所需要儲存的金 鑰。一個使用者 i,會有可能位居哪些(c,p)區間呢?首先我們從每一個區間的開 始點 j 開始看,因為一個區間不會有超過 c 個使用者,所以
i − c + 1 < j < i
,所以總共有 c-1 個可能。
在這個方法中,利用了很多不可逆函式(one-way function),使得擁有某些金 鑰的使用者,可以利用不可逆函式,繼續往下推算,卻無法推算出此金鑰的反函 數。在這一類的應用中,通常會幫每一個點k分配一個最初始的值Kk,靠這個初 始值,擁有此金鑰的使用者可以利用公開的不可逆函式
f (• )
,推算出F(Kk),甚 至f(f(Kk))等其他含數值,在這種應用下,通常使用者k至少會拿到Kk,假如要讓k 的下一位使用者k+1 也可以做出f(Kk),卻不想把完全只屬於k的祕密金鑰Kk給其他 人知道的話,我們可以直接給使用者k+1 一個已經算好的值f(Kk),如此一來,使 用者k+1 幾乎擁有跟使用者k一樣的計算能力,也可以計算f(f(Kk))等其他值。在區間穿刺方法裡面,就是利用上面所說的技巧安排給使用者的金鑰,只 是稍微複雜了些,不只定義一個不可逆函式,而是需要h0、h1、…hp等p個不可逆 雜湊函式,其中每個雜湊函式的數字下標i表示hi這個函式是當上一個金鑰到下一 個金鑰中間經過多少個註銷使用者,我們利用圖表 8 來說明此概念,並藉此說 明一位使用者必須擁有哪些金鑰。
圖表 8.當c=5 時,u5 所從K1,1推導而來的金鑰
這個圖所表示的是使用者u5 所必須儲存的金鑰,首先管理中心分配給每一位使 用者i一把金鑰Ki,i,從每一把金鑰可以用眾多的雜湊函式得到Ki,j,而當一把金鑰
要從Ki,j變成Ki,j+1或Ki,j+2時,這分別表示j+1 到j中間沒有註銷使用者(Ki,j+1的例子)以及
j+2 到j中間有一個註銷使用者(Ki,j+2的例子)。因此,我們會利用h0函式對Ki,j作用來
個(p,c)-π方法最多可以切出
⎣ ⎦
⎥⎥ ⎤
⎢⎢ ⎡ − + +
⎥⎦ +
⎢⎣ ⎥
⎢
+ c
p r p
N P
r
( 2) /( 1)1 個區間來,而
所需要的儲存複雜度是
∑
+!( )
− ,這樣的方法,只要被註銷使用者的數量大於0 p 1
c
k
c
N
2 時,就會比子集差別方法來的有效率,作者還另外提出對非法者較少的情況做出 改良的方法。第三章 子集差別法演算法
(pseudo random generator)G,在給G m個位元長度的輸入下,G會輸出 3m 位元長 度的資料,我們用這樣的G,來為以i為根節點的子樹中的節點j,定義他的標籤。3.2 覆蓋的定義及尋找覆蓋
管理中心在處理好金鑰分配後,如同一般無狀態型機制一樣,把處理好前 置工作的金鑰儲存裝置分配給使用者,就完成了新增使用者的工作,這裡我們討 論如何註銷使用者。
當管理中心要送出訊息時,必須考慮目前 r 個註銷使用者的分佈,找出適當 的 m 個子集合,使得沒有任一個非法的使用者屬於這些集合,而因為合法使用 者分別屬於所選出的其中一個子集合中,我們稱這些被選出來的子集合為覆蓋 (cover),因為這些選出來的子集合必須能夠包含所有合法使用者的緣故。我們稱 尋找這些子集的動作為尋找覆蓋。
一開始管理中心擁有一個覆蓋集合,用以收集找到的子集合,當結構樹上 還有兩個以上的註銷使用者時,管理中心必須找出同時包含任意兩個註銷使用者 的最小子樹,我們假設這棵子樹的根節點為v,v的左子節點為k,右子節點為p,
而所包含的兩個註銷使用者中,左邊為l,右邊為q,將Sk,l與Sp,q增加到覆蓋集合 中(假如k=l或是p=q,則代表所對應的集合是空集合,就不需要加進覆蓋中),
v
k p
l q
圖表 9.圖示表示註銷方法所找到的最小子樹,以及各節點名稱
接著把v標示為註銷節點,並且刪除v以下的所有節點,重複這樣的步驟,直到我 們將整個結構樹的根節點r標示為註銷節點,或是整棵樹只剩下一個註銷節點v為
止,在第二個情況的話,我們要將Sr,v加進覆蓋集合中。
log log ...
根節點 i
n
u
圖表 10.圖示表示使用者u所需要儲存的Si,j標籤,當i是根節點時的情形
接下來我們要討論廣播時所需的訊息複雜度,在廣播的訊息中,包含管理 中心選擇的覆蓋集合的訊息說明、用各個覆蓋集合的金鑰所加密的金鑰密文、以 及用加密金鑰所加密的訊息密文,其中,覆蓋集合的訊息說明相較起來相當的 短,所以在討論訊息複雜度時,我們變成討論管理中心用了多少的覆蓋集合。回 顧之前討論的尋找覆蓋的方法,在每一個階段中,我們最多新增兩個覆蓋集合,
並且刪除一個註銷節點,所以在最後一步之前,我們最多新增了 2r-2 個覆蓋集 合,而在最後一步,我們頂多新增一個覆蓋集合,因此最壞情況,會需要 2r-1 個訊息。
第四章 考慮特殊路由器下對子集差別方法的改 良
經過上ㄧ章節對相關研究的介紹,以及對子集差別方法的認識,我們將開 始介紹本篇論文所提出的演算法,首先我們會先從廣播訊息如何再網路上傳輸做 一個說明,再介紹子集差別方法中較無效率的覆蓋情形,接著就是本篇的論文。
4.1 廣播的網路處理方式
在這一節,我們介紹在現行網路架構上,multicast 所使用的傳播方式。
4.1.1 host 端加入廣播群組
在 IP(Internet Protocol)位址中,有一部份的位址是保留給廣播群組用的,32 位元的 IP 位址,當高的四個位元為 1110 時的位址,就是一個廣播用的位置,其 值為 224.0.0.0 到 255.255.255.255。當一個 host 想加入一個廣播群組時,必須利 用 IGMP 協定(Internet Group Management Protocol)向路由器報告,申請加入某個 群組,此後路由器若收到廣播給此群組的封包,就會廣播到子網域中。
4.1.2 路由器的傳播
當一個訊息由一個 host 傳送出去,當到了路由器時,路由器就需要決定出 要將此封包傳送出去的路徑,有別於一般網路封包的傳送,在 multicast 時,路 由器有可能將一個封包送達多個路由器。一個支援 multicast 的路由器除了跑 IGMP 協定讓主機可以註冊廣播群組外,還必須執行 Multicast Routing Protocol
例如 DVMRP 等,用以決定出所需傳算的路徑。
4.1.3 網路傳輸的特性
網路傳輸在硬體層與連結層上有一些特性,例如:每一個位元的值有一定的 機率會因為誤差而產生錯誤;參與的路由器越多,找尋路由路徑所要考慮的節點 數量越龐大,演算法出現失誤或找出較差路由方式所發生的機率就越大;應用層 所製造的訊息,在實際下放到連結層時,必須切成符合實際硬體規定的網路封 包,資料量越大,切出來的封包越多;…等。在這些因素的引響下,在廣播者到 接收者中間的漫長路途中,所能夠使用的頻寬會是實際用作時的瓶頸。相對的,
我們可以把最後接段( last mile)的頻寬,視為較不重要的因素,因此,縮小中間 傳輸所需要的訊息量,將是一個不可忽視的改善。
假如有兩個廣播加密方法,他們所需的訊息複雜度,從使用者端看來也需一 樣多,若是某一個方法可以減少必須在廣播者到接收端中間漫長路途的訊息量,
那麼這個方法的訊息將較不容易出現意外,而以較快的時間到達接收端。
那麼這個方法的訊息將較不容易出現意外,而以較快的時間到達接收端。