3.2 改良後之金鑰協同協定
3.2.3 演算法
本論文所提的演算法有二: 1.產生初始會議金鑰的演算法 2.會議金鑰更新 的演算法,此二種演算法的作用是不同的,詳細說明如下:
一.產生初始會議金鑰的演算法
本論文所提的初始金鑰演算法用於產生初始會議金鑰,此演算法同樣分 成二個階段,第一個階段是讓 n -1 個成員合作產生子金鑰,第二個階段則 是讓 n 個成員合作產生會議金鑰,演算法內容說明如下:
[本論文所提金鑰起始演算法之第一階段:n -1 個成員合作產生子金鑰]
成員們的合作順序是由樹的最高階(階度= h)往最低階(階 度 = 0),對每一個階度而言,依成員編號及角色的不同而有不 同的處理:
若Mc =Mi ,則Mp =M⎣i/2⎦
若IDc =IDi ,則IDp = ID⎣i/2⎦ CASE 1 (i
≠
n)Step1.
M
c⎯ ⎯→ M
p:IDc、Ep(IDc ||noncec)Step2.
M
c← ⎯⎯ M
p:IDp、Ep(IDp ||noncec ||noncep)Step3.
M
c⎯ ⎯→ M
p:IDc、E
p( ID
c|| nonce
p|| K
i′ )
若(2i > n-1),Mi為葉節點:
i
i S
K′ =
若(2i < n-1),Mi為有左右子節點的父節點:
1 2
2′ ⊕ ′+
⊕
′ = i i i
i S K K
K
若(2i = n-1),Mi為有左子節點的父節點:
i i
i S K
K′ = ⊕ 2′ CASE 2 (i = 1):
[本論文所提金鑰起始演算法之第二階段:n 個成員合作產生會議金鑰]
為了和Huang & Chang的方法做比較,如同第三章所舉之例子,同樣以 11 個成員為例子說明此演算法的執行過程,在第一階段演算法中:
nonce
nonce
j)
||
||
(
j i jp
ID nonce nonce
E ID
jE
p( ID
j|| nonce
i|| nonce
j)
子節點。
在第二階段演算法中:
(1).成員M1產生一隨機數值nonce1,並計算
E
p( ID
1||
π|| nonce
1)
後,利用廣 播(broadcast)的方式將ID1、E
p( ID
1||
π|| nonce
1)
送給其它成員Mi(i = 2,3,…,11)。(2).成員 收到成員 送來的資料後,選擇二個隨機數 (貢獻值)、
,並利用
M11 M1 S11
nocne11
f ( P ||
π)
做為對稱式加密法的金鑰對 加密後,將、 利用廣播送給各個成員 (i = 1,2,…,10)。
)
||
(S11 nonce11
ID11
E
f(p||π)( S
n|| nonce
n)
Mi(3).成員 (i = 1,2,…,10)收到由 送來的資料後,執行解密得到 ,並計 算出最終的會議金鑰
Mi M11 S11
S11
Ki =
π
⊕ ,再將IDi、f ( K
i)
送給成員M11。(4).最後,成員 檢查其它成員所送來的會議金鑰是否一致,完成第二階 段演算法,結果如圖 3-3 所示。。
M11
1
2 3
4 5 6 7
8 9 10
11
S
11註: 只要加密一次即可將 資料送出
Mn
M
11 Broadcast:nonce S
E
f(p||π
)(
11||
11)
圖 3-3. 本論文所提初始金鑰演算法之第二階段結果
說明:
會議金鑰K =
π
⊕S11 =S1⊕S2 ⊕S3⊕...⊕S10 ⊕S11二.更新金鑰的演算法
在初始金鑰產生之後,群組通訊便得以安全地開始進行,但假使持 續一段時間沒有成員加入或進開會議環境時,會議金鑰並不會變動,為 了提高會議金鑰的安全強度,本論文提出用於此環境下的更新金鑰演算 法,說明如下:
[本論文所提更新金鑰演算法:在沒有成員離開或加入的情況下更新金鑰]
Step1. M1⎯⎯Broadcast⎯⎯→Mi ; ( i = 2,3,….n):
ID
1、Ep(ID1 ||S1′′||nonce1)Step2. Mi計算新的會議金鑰Knew =Kold ⊕S1′′ ; ( i = 1,2,…,n)
Step3. Mi ⎯⎯→M1 ; (i =2,3,…n ):
ID 、i
f ( K
new)
Step4.
M
1檢查每位成員的新會議金鑰( K
new)
是否相同假使沒有成員離開或加入會議的情況維持了一定的時間後,便可運用金鑰更 新演算法:
(1).成員M1會產生一個新的貢獻值S ′′ 及一個新的隨機數值1 ,並計算 後,利用廣播(broadcast)的方式將 、
送給其它成員 (i = 2,3,…,11)。
nonce1
)
||
||
( ID
1S
1nonce
1E
p′′
ID1E
p( ID
1|| S
1′′ || nonce
1)
Mi
(2).成員 (i = 2,3,…,11)收到成員 送來的資料後,便可以計算出新的會
議金鑰 。
Mi M1
S1
K
Knew = old ⊕ ′′
(3). 成員Mi將IDi、
f ( K
new)
送給成員M1。(4).最後,成員 檢查其它成員所送來的會議金鑰是否一致,完成金鑰新演 算法,結果如圖 3-4 所示。
M1
1
2 3
4 5 6 7
8 9 10
11
S ′′
1M
1 Broadcast:)
||
||
(ID1 S1 nonce1 Ep ′′
圖 3-4. 本論文所提的金鑰更新演算法執行結果
說明:
新的會議金鑰
K
new= K
old⊕ S
1′′
四.分析與比較
在第三章中,本論文基於 Huang & Chang 的方法,提出了一個改良後的金鑰 協同協定,主要是針對本論文所分析出的問題做改進;此章則進一步對本論文所 提出的方法做分析與比較,主要包括安全及效率兩方面。