multilevel data security (mds)

25
1 Multilevel Data Security (MDS)

Upload: hestia

Post on 05-Jan-2016

41 views

Category:

Documents


2 download

DESCRIPTION

Multilevel Data Security (MDS). 問題:若存在一個 multilevel security hierarchy 如下圖: C 1 C 2 C 3 C 4 C 5 C 6 [ 圖 1] 存在一個 Key Center(KC) 負責 key 之製作與分配 , 每一個 Security Class C i 擁有一個由 KC 製作的 key K i , 而且可以使用這個 key K i 去算 K i 所管轄之所有 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Multilevel Data Security (MDS)

1

Multilevel Data Security (MDS)

Page 2: Multilevel Data Security (MDS)

2

問題:若存在一個 multilevel security hierarchy 如下圖:            C1

C2 C3

C4 C5 C6 [ 圖 1]

存在一個 Key Center(KC) 負責 key 之製作與分配 ,

每一個 Security Class Ci 擁有一個由 KC 製作的 key Ki,

而且可以使用這個 key Ki 去算 Ki所管轄之所有Classes 的秘密金匙。另 , 一個 Ki或某幾個 Classes Kj

絕無法推算出管轄它 ( 或它們 ) 的 Class( 即上司 ) 的金匙。

如何設計一個 algorithm( 或 scheme) 來完成上述要求?

Page 3: Multilevel Data Security (MDS)

3

分析:1. 直覺地,有人會將圖 1 中之每一個 Class 指定一個金鑰 ( 由 KC 製作後分配之 ) 。由於上位者有權知道受其管轄之 Classes 之金鑰,故每一 Class 握有金鑰如表 1 所示。

Security class Keys held

C1 K1, K2, K3, K4, K5, K6

C2 K2, K4, K5

C3 K3, K5, K6

C4 K4

C5 K5

C6 K6

Page 4: Multilevel Data Security (MDS)

4

[ 缺失 ]

  一旦 Classes 數量龐大,則上位者貯存之金匙數量由於太過龐大而有安全上與應用上之危機。此即“金匙管理上所探究的問題”。

  因此,我們的目標就是去設計一個 protocol, 使得每一個 class 僅知道自己的秘密金匙,而若要知道受其所管轄之 classes 的秘密金匙,可以藉自己的金匙 ( 加上一些額外資訊 )計算出來。

   [ 以下介紹研究者之見解 ]  

Page 5: Multilevel Data Security (MDS)

5

2.Akl & Taylor 於 1982 年提出一個利用 cryptographic techniques 以解決 key management 的問題。

(a) 先介紹他們如何產生金匙 (Key Generation Procedure)

Step1. Assign each security class Ci an associated

distinct prime Pi, such that Pi Pj if Ci Cj.

Step2. Generate ti for each security class Ci,

where ti is the following function of the

primes from the previous step.

ti = Pj, then publish ti.

Cj Ci

Page 6: Multilevel Data Security (MDS)

6

Step3. The KC chooses a secret pair of large

prime numbers p and q, with product M =

pq, and a random secret key K0, 2 K0 M-1,

gcd(K0,M)=1. M is made public.

  Step4. The secret keys for all security classes C j     can now be computed by KC as follows :

Kj = K0tj mod M.

Page 7: Multilevel Data Security (MDS)

7

(b) 每一 class 有 key Ki’s, 1 i n, 之後 , 當任一 user

uCi要送一明文 X 給某一 user u’, u’Cj , 他先用 (c ) 之方法求得 Kj, 再用 Kj加密 X 得 X’.

X’ = Ekj(X)

然後送出 [X’, j] 出去。 在網路中之所有使用者,唯有擁有 Kj之使用者能解密

X’ 而得 X : X = Dkj(X’)

(c) 若 Cj Ci , 則 Ci可用自己的 Ki外加公開資訊 ti, tj, M

  求得K j:K j = K i tj/ti mod M iff Cj Ci.

Page 8: Multilevel Data Security (MDS)

8

How Come ?(A) 由 (a) 知 tj is divisible by ti iff Cj Ci..

[ 缺失 ] 在 practical implementation 上,有兩個問題   尚待克服:

  (1) 一旦網路上 classes 數量龐大, ti值驚人!  (2) 新加入任一 class, 務必整體重新計算所有資料。例示: C1

C2 C3

C4 C5 C6       

t1=1

P1=2

t2 = 2 * 3 * 7

P2=3t2 = 2 * 5 * 13

P3=5

P4=7 P5=11 P6=13t4 = 2 * 3 * 5 *11*13

t5 = 2*3*5*7*13t6 = 2 * 3 * 5 * 7 * 11

Page 9: Multilevel Data Security (MDS)

9

3. Mackinnon, Taylor, Meijer 與 Akl 於 1985 年提出一種利用“ chain decomposition”( 鏈分解 ) 技術以減小 ti值之方法。

 “金匙之產生方法”與上一個方法有所不同,其餘相同。

Step1 :將上圖分解成 3 disjoint chains(as less as

possible).

         C1

C2 C3

C4 C5 C6

Page 10: Multilevel Data Security (MDS)

10

Step2 :對每一個 chain 指定一個相異質數。而且,對   該 chain(p 質數被指定給它 ) 中之每一個節點 i ,   我們定義 ni = pm 此處 i 即此 chain自 top( 頂點 ) 算   下來之第 m 個節點。

Step3 :利用公式 ti = lcm nj 可求得所有 ti 。 [ 設 t1=1] 例示: C1

C2 C3

C4 C5 C6     

t1=1

t3=23n3=31

n6=51n5=32n4=23

n2=22

t6=23 * 32t5=23 * 31 * 51t4=22 * 32 * 51

t2=21 * 31 * 51

j i

Page 11: Multilevel Data Security (MDS)

11

[ 缺失 ]

雖 ti值降下來。 (Harn 仍覺得 ti is still sizable).但如何才能最適化處理“ chain decomposition”, 仍舊是 open problem.另外,新增 class 造成全盤再次重新規劃之不便處仍舊存在。另外,如何最適化解決指定哪些質數給各 chain ,仍舊opened(sorting 後由小而大,再給 primes( 由小而大 ) ? )

由於此篇論文宣稱本身是 optimal alg. 故 Harn 教授 ( 在他自己的論文中 ) 道: Therefore there is no other way

to reduce the value of ti and the sizable ti problem is thus left unsolved.[ 我們卻對此點觀點存疑 ]

Page 12: Multilevel Data Security (MDS)

12

1987,Sandhu 提出一個用 ID 為基的方法;即任

一 user 之 key 均由自己的 ID 及其 supervisor的

secret key 藉 one-way fun 推算出。 ( 此方法用於

a tree structured multilevel data security

environment) 。另外,新加入新 class 可處理。然而,算出 key 值需 computational overhead.

[ 於是 Harn 教授的方法被介紹於後 ]

Page 13: Multilevel Data Security (MDS)

13

4. Harn & Lin 提出一個由下而上產生 keys 的方法, 此法是基於“ the difficulty of solving” “ factoring a product of two large primes ”.

其 key generation 之 alg. 如下 :

Step1: KC 選用 3 個參數為了 key generation; 兩個質

數 p 、 q , 第三個參數 a. 此處 p 、 q 為了 n= p‧

q 而設 , a [2, n-1] 且 gcd(a, n)=1

[a≡K0… 在 Akl & Taylor方法上 ]

Page 14: Multilevel Data Security (MDS)

14

Step2: KC 指定給每一個 Security class Ci 一個

相異質數 ei, 並且公開它 ( 採由下而上 ,由

小而大質數方式指定 ) [ei≡Pi ]

Step3: KC 計算 multiplicative inverse di = ei -1

mod (n) ( 亦即 eidi mod (n)=1 )

Step4: KC 計算 ( 公開的 ) ti 值及秘密金匙 Ki 滿足

ti = Πej

Ki = aΠdj mod (n) mod n (for all j s.t. Cj ≤ Ci)

Page 15: Multilevel Data Security (MDS)

15

說明 : 若 hierarchy 如圖

C1

C2 C3

C4 C5 C6

求得 ei, di

其 ei, di, ti, ki 可求得 ( with 上述之 alg. )

Keep secret

Page 16: Multilevel Data Security (MDS)

16

設 ei, di 均求得之後

舉例而言 : t1 = e1 e2 e3 e4 e5 e6

t2 = e2 e4 e5

t3 = e3 e5 e6

t4 = e4

t5 = e5

t6 = e6

K2 = ad2d4d5 mod (n) mod n ( 以此類推 ). . .

K6 = ad6 mod (n) mod n

Page 17: Multilevel Data Security (MDS)

17

問 : 如何由 Ki 求得 Kj iff Ci ≥ Cj

(A) 完全靠公式 Kj = Ki ti/tj mod n (cf. Akl & Taylor’s

Kj = Ki tj/ti mod n )

例 : K4 = K2t2/t4 mod n (因為 C2 ≥ C4)

= K2e2e4e5/e4 mod n

= K2e2e5 mod n

= ad2d4d5e2e5 mod (n) mod n

= ad4 mod (n) mod n

≡ K4

Page 18: Multilevel Data Security (MDS)

18

[ 優點 ]

(1) ti 值可以有效 ( 大部分 ) 降低 , 詳細情形可參考

下表 .Akl & Taylor’s scheme Harn & Lin‘s Scheme

K1 at (t = 1) ad1d2d3d4d5d6 (t =e1e2e3e4e5e6)

K2 at (t = e1e3e6) ad2d4d5 (t =e2e4e5)

K3 at (t = e1e2e4) ad3d5d6 (t =e3e5e6)

K4 at (t = e1e2e3e5e6) ad4 (t = e4)

K5 at (t = e1e2e3e4e6)

ad5 (t = e5)

K6 at (t = e1e2e3e4e5 ) ad6 (t = e6)

Page 19: Multilevel Data Security (MDS)

19

(2) 若有一新 class of users C7 被加入 hierarchy中

( 隸屬於 C3), 則只有 K1 與 K3 需要 updated

參考圖示如下 :

C1

C2 C3

C4 C5C6 C7

Page 20: Multilevel Data Security (MDS)

20

[ 研讀心得 ]

(1) 由於此法是用 bottom-up 方式求 ti 值 , 故 root

t1 之值最大 ( 比 Akl & Taylor’s scheme 都大 ) 另

外也因兒子之 ti 值比父親小 , 故

kj = ki ti/tj mod n 當 Ci ≥ Cj

換言之 , 此時之 ti/tj I+ 且 tj/ti I+

與 Akl & Taylor’s 方法剛好反過來

Page 21: Multilevel Data Security (MDS)

21

(2) 由於本方法中 Ci ≥ Cj ti > tj . 若要從 Ki

推算 Kj , 則 Ki ti/tj = (aΠdj mod (n)) ti/tj

= aΠdk mod (n)

= Kj

上式中之 aΠdk mod (n) 之 dk 代表經過 Πdj ∙ti/tj之

運算 (i.e. ei di mod (n) = 1), 得到的剩下 di’s值

用 dk 表示 (這些 dk 中形成一 subtree, 其 subroot

即 j ) 。

Page 22: Multilevel Data Security (MDS)

22

以圖形說明較清晰 :

C1

C2 C3

C4 C5C6

( 一 ) 若要推算 K5( 自 K3)

K3t3/t5 mod n = K3

e3e5e6/e5 mod n

= K3e3e6 mod n

= ad3d5d6e3e6 mod (n) mod n

Page 23: Multilevel Data Security (MDS)

23

= ad5 mod (n) mod n

= K5

自 K1 推算 K3

K1t1/t3 mod n = K1

e1…e6/e3e5e6 mod n

= K1e1e2e4 mod n

= ad1…d6e1e2e4 mod (n) mod n

= ad3d5d6 mod (n) mod n

= K3

[ 另 K4 可由 C2, 及 C1 推知 ]

Page 24: Multilevel Data Security (MDS)

24

(3) 結論至今為止之研究

(a) 若用 Ki ti/tj 或 Ki tj/ti mod n 來求 Kj

則由於”整除與否”特性 , 故若 Top-Down方式

求 ti , 則 tj/ti I+ , 若 Bottom-up 方式求 ti , 則 ti/tj I+ 。

(b) 若用 B-U 方式 , 則 t1 之值最大 , 若再考慮上層

classes 被引用之機會 (frequency) 大 , 則 Top-

Down 較佳。

(c) 泰半方法均由兩個 equations 共同配合而建立

Page 25: Multilevel Data Security (MDS)

25

Multilevel Data Security 。

(d) 所有研究均屬 static, 增加 class 對某 path 之全 部或部分必須 updated 。

若要用 dynamic 方式處理 , 則由於新增之 class

不必馬上 update 所有有關在 path 上之 class 之

key 值 。故需將 class 間之關係 hold 住 , 以便後

來在由 Ki 求 Kj 值時 , 再將這些 attributes 整合 再傳遞。