• 沒有找到結果。

3.2 改良後之金鑰協同協定

3.2.3 演算法

本論文所提的演算法有二: 1.產生初始會議金鑰的演算法 2.會議金鑰更新 的演算法,此二種演算法的作用是不同的,詳細說明如下:

一.產生初始會議金鑰的演算法

本論文所提的初始金鑰演算法用於產生初始會議金鑰,此演算法同樣分 成二個階段,第一個階段是讓 n -1 個成員合作產生子金鑰,第二個階段則 是讓 n 個成員合作產生會議金鑰,演算法內容說明如下:

[本論文所提金鑰起始演算法之第一階段:n -1 個成員合作產生子金鑰]

成員們的合作順序是由樹的最高階(階度= h)往最低階(階 度 = 0),對每一個階度而言,依成員編號及角色的不同而有不 同的處理:

Mc =Mi ,則Mp =Mi/2

IDc =IDi ,則IDp = IDi/2 CASE 1 (i

n)

Step1.

M

c

⎯ ⎯→ M

pIDcEp(IDc ||noncec)

Step2.

M

c

← ⎯⎯ M

pIDpEp(IDp ||noncec ||noncep)

Step3.

M

c

⎯ ⎯→ M

pIDc

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 j

p

ID nonce nonce

E ID

j

E

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 =S1S2S3⊕...⊕S10S11

二.更新金鑰的演算法

在初始金鑰產生之後,群組通訊便得以安全地開始進行,但假使持 續一段時間沒有成員加入或進開會議環境時,會議金鑰並不會變動,為 了提高會議金鑰的安全強度,本論文提出用於此環境下的更新金鑰演算 法,說明如下:

[本論文所提更新金鑰演算法:在沒有成員離開或加入的情況下更新金鑰]

Step1. M1⎯⎯Broadcast⎯⎯→Mi ; ( i = 2,3,….n):

ID

1、Ep(ID1 ||S1′′||nonce1)

Step2. Mi計算新的會議金鑰Knew =KoldS1′′ ; ( 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

1

S

1

nonce

1

E

p

′′

ID1

E

p

( ID

1

|| S

1

′′ || nonce

1

)

Mi

(2).成員 (i = 2,3,…,11)收到成員 送來的資料後,便可以計算出新的會

議金鑰 。

Mi M1

S1

K

Knew = old ⊕ ′′

(3). 成員MiIDi

f ( K

new

)

送給成員M1

(4).最後,成員 檢查其它成員所送來的會議金鑰是否一致,完成金鑰新演 算法,結果如圖 3-4 所示。

M1

1

2 3

4 5 6 7

8 9 10

11

S ′′

1

M

1 Broadcast:

)

||

||

(ID1 S1 nonce1 Ep ′′

圖 3-4. 本論文所提的金鑰更新演算法執行結果

說明:

新的會議金鑰

K

new

= K

old

S

1

′′

四.分析與比較

在第三章中,本論文基於 Huang & Chang 的方法,提出了一個改良後的金鑰 協同協定,主要是針對本論文所分析出的問題做改進;此章則進一步對本論文所 提出的方法做分析與比較,主要包括安全及效率兩方面。

相關文件