Cây Steiner ST({ u2, u4, u7, u8 }) và các nút kề nó

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Giải pháp lưu vết và thu hồi thiết bị thu bất hợp pháp Luận văn ThS. Công nghệ thông tin 1.01.10 (Trang 62)

b. NCCDL chọn khóa phiên ngẫu nhiên K.

c. NCCDL mã hóa khóa phiên K (một lần) với từng khóa L8,L10,L6 và truyền đi bản mã:

[

3) Giải mã

a. Tất cả 8 TBTDL đều nhận được bản mã: [

 8, 10, 6, E(K,L8),E(K,L10),E(K,L6)],FK(M)

b. Phần đầu (Header) dùng các khóa “dài” L8,L10,L6 để mã hóa khóa phiên K, nên chỉ những TBTDL thuộc các tập S8,S10,S6 mới tính được K. Sau khi có khóa phiên K, các TBTDL hợp pháp này sẽ giải mã được bản tin M.

+ TBTDL u muốn tính được K, phải biết mình thuộc tập S nào, từ đó biết được ij nút gốc v của các TBTDL ij S . ij

TBTDL u dùng khóa “dài” L tại nút gốc ij v , để giải mã ij E(K,Lij).

+ Ví dụ u muốn tính được K, phải biết mình thuộc tập 5 S , từ đó biết được nút 6 gốc của các TBTDL S là 6 v . 6

5

3.2.2 Giải thuật CS

Giải thuật CS thực chất là giải thuật phân hoạch tập P các TBTDL hợp pháp thành tập các cây nhị phân con đầy đủ, và dùng các khóa “dài” tại gốc các cây con này, để mã hóa khóa phiên K [3].

Giả thiết có tập N gồm n TBTDL, n=2k, đã biết tập R các TBTDL làm rò rỉ khóa. NCCDL biểu diễn các TBTDL thành cây nhị phân đầy đủ T, các TBTDL tương ứng với các lá của cây nhị phân, ký hiệu u1,u2,..,un. Các nút thuộc cây, kể cả lá được gán tên gọi v1,v2,...,v2n1.

Hình 3. 5: Cây nhị phân T biểu diễn n TBTDL

1) Khởi tạo

a. NCCDL định danh (gán tên gọi) cho các nút trong cây nhị phân đầy đủ, kể cả lá. Tập định danh là v1,v2,...,v2n1.

b. NCCDL thiết lập các khóa “dài” tương ứng với các nút là L1,L2,...,L2n1. Có các loại khóa “dài”:

 Khóa tại gốc, được dùng chung cho tất cả các lá (TBTDL).  Khóa tại lá, chỉ được dùng cho lá (TBTDL) đó.

2) Mã hóa

a. NCCDL dùng giải thuật CS phân hoạch P thành các tập con

m 2

1 i i

i ,S ,...,S

S chứa

các TBTDL hợp pháp. Khóa “dài” tương ứng là Li1,Li2,...,Lim.

Phương pháp phân hoạch CS:

 NCCDL xác định cây Steiner ST(R) bằng cách nối các lá thuộc R và gốc.

 NCCDL tìm các nút còn lại trong cây nhị phân đầy đủ T, liền kề với các nút thuộc cây ST(R): được các nút

m 2

1 i i

i ,v ,...,v

v .

 Ký hiệu S là tập các lá của cây con gốc ij v . ij  m 2 1 i i i ,S ,...,S S chính là các tập con của tập phủ P cần tìm: P={ m 2 1 i i i ,S ,...,S S }.  Các nhãn m 2 1 i i i ,L ,...,L L tương ứng với các nút m 2 1 i i i ,v ,...,v v được dùng làm

khóa “dài” cho các tập Si1,Si2,...,Sim. b. NCCDL chọn khóa phiên K ngẫu nhiên.

c. NCCDL mã hóa khóa phiên K (một lần) với từng khóa Li1,Li2,...,Lim và truyền đi bản mã:  [i1,i2,...,im,E(K,Li1),E(K,Li2),...,E(K,Lim)],FK(M) 3) Giải mã a. TBTDL nhận được bản mã:  [i1,i2,...,im,E(K,Li ),E(K,Li ),...,E(K,Li )],FK(M) m 2 1

b. Phần đầu (Header) của bản mã dùng khóa “dài” Lijđể mã hóa khóa phiên K, với j=1, 2,…, m. Nên chỉ những TBTDL thuộc các tập m 2 1 i i i ,S ,...,S S mới tính được khóa phiên K.

3.2.3 Hiệu năng của giải thuật CS

a. Độ dài phần đầu bản mã (message header)

Độ dài phần đầu (header) trong bản mã C được tính bằng số lượng tập con M các TBTDL hợp pháp tìm được trong phân hoạch của P, qua giải thuật CS [3].

 [i ,i ,...,i ,E(K,L ),E(K,L ),...,E(K,L )],F (M)

CM 1 2 m i1 i2 im K

Xét tập R các TBTDL làm rò rỉ khóa, |R| =r. Xét cây Steiner ST(R) là con của cây nhị phân đầy đủ. Chiều cao của bất kỳ TBTDL tới gốc đều là log(n): tức là với một TBTDL u có thể tìm được nhiều nhất là log(n) cây con của nó (ở đây u là lá).

Do có r TBTDL bất hợp pháp nên khi phân hoạch theo giải thuật CS, có nhiều nhất là r.log(n) tập con của tập phủ P. Như vậy độ dài phần đầu nhiều nhất là

) n log( .

r (vì liên quan tới r.log(n) khóa “dài”).

b. Số lượng các khóa ”dài” tại mỗi TBTDL

TBTDL u nhận các khóa “dài” Li từ các nút thuộc đường đi từ u tới gốc, kể cả khóa của lá. Một cây nhị phân đầy đủ n lá có chiều cao là log(n), dó đó số lượng khóa “dài” của mỗi TBTDL là log(n) [3].

c. Thời gian giải mã thông điệp M tại TBTDL

Để giải mã được thông điệp M thì phải tìm chỉ số ij sao cho

j i S u [3].

Tìm ij theo phương pháp [8]:

+ CS áp dụng SCF để phát tin, nên CS sẽ duy trì các tập S1,S2,...,Sw N, N Si w 1 i   . Đặt S={S1,S2,...,Sw}.

+ NCCDL khởi tạo hàm băm h: IndSI, trong đó:

o IndS là tập chỉ số của S={S1,S2,...,Sw}, nên IndS={1,..,w}.

o I là tập số nguyên, I = [0,k-1].

+ NCCDL chọn một tập gồm w hàm băm h1,h2,...,hw ngẫu nhiên.

+ NCCDL biểu diễn tập chỉ số IndS thành một ma trận kích thước w.w, trong đó mỗi chỉ số gồm w phần tử trên w dòng.

+ Mỗi hàm băm h ánh xạ {1,…,w} tới {1,…,w}, i=1,…,w . Một tập w số ngẫu i nhiên được chọn cho mỗi dòng. Tập Ai {ai,1,ai,2,..,ai,w} ứng với chỉ số thứ i trong IndS. Ma trận biểu diễn InS như sau:

1 , 1 a a1,2 … a1,w 1 , 2 a a2,2 a2,w … … … … 1 , w a aw,2 aw,w

+ Để gửi bản tin tới TBTDL, CS phân hoạch P={Si1,Si2,...,Sim}. Đặt IndP là tập chỉ số của P: IndP={i1,i2,...,im}  IndS.

+ Khi TBTDL u nhận được bản mã thông điệp M, u phải tìm chỉ số ij sao cho j

i S

u . Do đó u cần tính toán O(m.log(w)) phép toán.

Như vậy thời gian xử lý bản tin cần O(m.log(w)) phép toán và 1 phép giải mã thông điệp M.

Tóm lại, trong giải thuật CS [3]:

 Độ dài phần đầu bản mã nhiều nhất là r.log(n) khóa (vì liên quan tới nhiều nhất )

n log( .

r khóa “dài”).

 Số lượng các khóa “dài” của mỗi TBTDL là log(n).

3.3 GIẢI THUẬT HIỆU HAI TẬP CON (Subset Difference)

Nhược điểm của giải thuật CS là phân hoạch P thành một số lượng lớn các tập con. Giải thuật “Hiệu hai tập con” (Subset Difference - SD) sẽ khắc phục nhược điểm này bằng cách giảm số lượng các tập con [3].

Giải thuật SD cũng dựa trên cây, gần giống giải thuật CS, cũng sử dụng cây nhị phân để xác định các tập con của các TBTDL dùng chung các khóa “dài”.

Trong giải thuật SD, NCCDL phân hoạch tập P các TBTDL hợp pháp thành các tập Si,jsao cho: Si,j Si Sj. Trong đó:

 S là tập các lá (TBTDL) của cây nhị phân gốc i v . i

 S là tập các lá (TBTDL bất hợp pháp) của cây nhị phân gốc j v . j  v là cha của nút i v . j

Khóa “dài” của S là i,j L . i,j

Các lá trong cây được gán nhãn vn,...,v2n1, mỗi TBTDL tương ứng với một lá. Tập con S các TBTDL hợp pháp là hiệu số: các lá của cây gốc i,j v , trừ đi các lá i của cây gốc v . j

Vì v là cha i v , nên j S chỉ có các lá của i,j S , nhưng không có các lá của i S . j

3.3.1 Bộ sinh số ngẫu nhiên G

Gọi G:{0,1}k  {0,1}3k

là bộ sinh số ngẫu nhiên sinh 3 giá trị GL, GR, GM. Xét mầm sinh S=Labeli (seed) là nhãn tại nút vi, các giá trị có thể sinh từ G là: GL(Labeli), GR(Labeli), GM(Labeli), trong đó: GL(Labeli) là nhãn tại nút là con trái của vi, GR(Labeli) là nhãn tại nút là con phải của vi. GM(Labeli) là khóa tại nút vi [3].

Hình 3. 7: Bộ sinh số ngẫu nhiên G với mầm sinh Labeli

Ký hiệu Label là nhãn tại nút i,j v : j j

, i

Label =Label , j v là con hoặc cháu của j v . i i

Label là nhãn tại nút v . i j

Label là nhãn tại nút v , được tính theo bộ sinh số ngẫu nhiên G, với mầm j sinh Label , dựa trên đường đi từ i v xuống i v . j

Ví dụ :

Cho cây nhị phân đầy đủ T có 8 lá như hình vẽ, các nút kể cả lá được gán tên gọi từ v1,v2,…,v15. Các nút không kể lá được gán nhãn Labeli (i=1, 2,…, 7) dựa trên bộ sinh số ngẫu nhiên G.

Hình 3. 8: Tính L1,5 dựa vào Label1

Tính khóa L1,5 tương ứng với tập S1,5 như sau:

))) Label ( G ( G ( G )) Label ( G ( G ) Label ( G ) Label ( G L1,5  M 1,5  M 5  M R 2  M R L 1

3.3.1 Ví dụ về giải thuật SD

Để dễ hình dung giải thuật, ta lấy ví dụ với tập 8 TBTDL, trong đó tập các TBTDL bất hợp pháp là R{u2,u4,u7,u8}, P{u1,u3,u5,u6} là tập các TBTDL hợp pháp. Các nút kể cả lá được gán tên gọi v1,v2,...,v15.

Hình 3. 9: Minh họa phân hoạch P thành các tập con của giải thuật SD

1) Khởi tạo

a. NCCDL thiết lập cây nhị phân đầy đủ T gồm các nút v1,v2,...,v15, trong đó các lá tương ứng với các TBTDL u1,u2,...,u8.

b. Các nút v1,v2,...,v7 (không phải là lá) được gán nhãn Label1,Label2,...,Label7. c. Các TBTDL u1,u2,...,u8 được thiết lập tập khóa “dài” là hàm của các nhãn

Giải thuật thiết lập khóa ”dài”, ví dụ cho TBTDL ui u3:

Hình 3. 10: Cây T biểu diễn toàn bộ 8 TBTDL

 Xác định cây Steiner ST(u ): nối i u với gốc. i

ST(u ) gồm các nút 3 v1,v2,v5,v10. (Xem hình 3.12)

+ Đặt V(ST(ui)) là các nút thuộc ST(ui), trừ nút ui. V(ST(u ))={3 v1,v2,v5}.

+ Tìm các nút trên cây T (kể cả lá), liền kề với các nút thuộc V(ST(u )), ký hiệu i KeV(ST(u )). Các nút này thuộc cây T, nhưng không thuộc ST(i u ). i KeV(ST(u ))={3 v3,v4,v11}.

Hình 3. 11: Minh họa cây ST(u3) và các nút KeV(ST(u3))

Sinh khóa cho ui:

} Label {

Lui  i,j , trong đó:

vi V(ST(ui)), vj KeV(ST(ui)) vj là con, hoặc cháu của vi

Theo giải thuật thiết lập khóa “dài” trên, tập khóa của các TBTDL u1,u2,...,u8 là:  Lu {Label1,3,Label1,5,Label1,9,Label2,5,Label2,9,Label4,9}

1  .

 Lu2 {Label1,3,Label1,5,Label1,8,Label2,5,Label2,8,Label4,8}.  Lu {Label1,3,Label1,4,Label1,11,Label2,4,Label2,11,Label5,11}

3  .

 Lu {Label1,3,Label1,4,Label1,10,Label2,4,Label2,10,Label5,10}

4  .

 Lu5 {Label1,2,Label1,7,Label1,13,Label3,7,Label3,13,Label6,13}.  Lu {Label1,2,Label1,7,Label1,12,Label3,7,Label3,12,Label6,12}

6  .

 Lu7 {Label1,2,Label1,6,Label1,15,Label3,6,Label3,15,Label7,15}.  Lu {Label1,2,Label1,6,Label1,4,Label3,6,Label3,14,Label7,4}

8  .

2) Mã hóa

a. NCCDL dùng giải thuật SD, phân hoạch P thành ba tập con gồm các TBTDL hợp pháp: (P{u1,u3,u5,u6})

 Tập con 1: S4,9 S4S9 {u1,u2}{u2}{u1} sử dụng khóa “dài” L4,9.  Tập con 2: S5,11S5 S11{u3,u4}{u4}{u3} sử dụng khóa “dài” L5,11.  Tập con 3: S3,7 S3S7 {u5,u6,u7,u8}{u7,u8}{u5,u6} sử dụng khóa

Phân hoạch P thành các tập con:

 Xác định cây Steiner ST(R): nối gốc và R.  Khởi tạo S={}, T= ST(R).

+ Bƣớc 1: Tìm hai lá (vi,vj) trong T, tìm v là cha chung thấp nhất của (vi,vj). Đặt v là cha riêng của h v , i v là cha riêng của k v . j

(Nếu T chỉ có một lá, thì vi vj và vh vk v). + Bƣớc 2:

o Nếu vvh vi thì SSSh,i; Nếu vvh vi thì S không thay đổi.

o Nếu vvk vj thì SSSk,j; Nếu vvk vj thì S không thay đổi. + Bƣớc 3: T = T - {các con của v}, đánh dấu v là lá.

Tức là giữ lại cha chung thấp nhất v.

 Lặp lại các bước từ 1 đến 3 cho đến khi T chỉ là 1 nút. Nếu còn v i  gốc thì S=S  Sgốc, i

Ví dụ: với R={u2,u4,u7,u8}:

 Khởi tạo S={}, T=ST(R);

+ Bƣớc 1: Tìm hai lá (v9,v11) thuộc T, v2 là cha chung thấp nhất của (v9,v11), 4

v là cha riêng của v , 9 v là cha riêng của 5 v . 11 + Bƣớc 2:

Do v4 v9, nên SSS4,9 {S4,9}; Do v5 v11, nên SSS5,11{S4,9,S5,11};

+ Bƣớc 3: Loại bỏ v4,v9,v5,v11 khỏi T, đánh dấu v là lá. 2 Tức là giữ lại cha chung thấp nhất v . 2

+ Bƣớc 1: Tìm hai lá (v14,v15) thuộc T, v là 7 cha chung thấp nhất của (v14,v15). Đồng thời v là cha riêng của 7 v , 14 v cũng là cha riêng của 7 v . 15 + Bƣớc 2:

Do v trùng với cha riêng của 7 v , nên S không thay đổi, 14 S{S4,9,S5,11}; Do v trùng với cha riêng của 7 v , nên S không thay đổi, 15 S{S4,9,S5,11}; + Bƣớc 3: Loại bỏ v14,v15 khỏi T, đánh dấu v là lá. 7

Tức là giữ lại cha chung thấp nhất v . 7

Hình 3. 14: Cây Steiner ST(R) với R={v2, v7}

+ Bƣớc 1: Tìm hai lá (v2,v7) thuộc T, v là 1 cha chung thấp nhất của (v2,v7), 1

v là cha riêng của v , 2 v là cha riêng của 3 v . 7 + Bƣớc 2:

Do v trùng với cha riêng của 1 v , nên S không thay đổi, 2 S{S4,9,S5,11}; Do v1 v3 v7, nên SSS3,7 {S4,9,S5,11,S3,7};

+ Bƣớc 3: Loại bỏ v2,v3,v7 khỏi T, đánh dấu v là lá. 1 Tức là giữ lại cha chung thấp nhất v . 1

Kết quả: phân hoạch P là tập {S4,9,S5,11,S3,7}.

Các tập S4,9,S5,11,S3,7 có các khóa “dài” tương ứng L4,9,L5,11,L3,7, được sinh nhờ bộ sinh số ngẫu nhiên G:

 L4,9 GM(Label4,9).  L5,11GM(Label5,11).  L3,7 GM(Label3,7). b. NCCDL chọn khóa phiên K.

c. NCCDL mã hóa khóa phiên K (một lần) với từng khóa L4,9,L5,11,L3,7 và truyền đi bản mã:  [(4,9),(5,11),(3,7),E(K,L4,9),E(K,L5,11),E(K,L3,7)],FK(M) 3) Giải mã a. Tất cả 8 TBTDL nhận được bản mã:  [(4,9),(5,11),(3,7),E(K,L4,9),E(K,L5,11),E(K,L3,7)],FK(M)

b. Phần đầu dùng các khóa “dài” L4,9,L5,11,L3,7 để mã hóa khóa phiên K, nên chỉ những TBTDL thuộc các tập S4,9,S5,11,S3,7 mới tính được K.

} {u

S4,9  1 , S5,11{u3}, S3,7 {u5,u6}.

3.3.2 Giải thuật SD

Giải thuật SD thực chất là giải thuật phân hoạch tập P các TBTDL hợp pháp thành các tập S , i,j Si,j SiSj. Trong đó:

 S là tập các lá (TBTDL) của cây nhị phân gốc i v . i

 S là tập các lá (TBTDL bất hợp pháp) của cây nhị phân gốc j v . j  v là cha của nút i v . j

Giải thuật SD dùng các khóa “dài” là hàm của nhãn tại gốc các nút v để mã i hóa khóa phiên K [3].

Giả thiết có tập N gồm n TBTDL, n=2k, đã biết tập R các TBTDL làm rò rỉ khóa. NCCDL biểu diễn các TBTDL thành cây nhị phân đầy đủ, các TBTDL tương ứng với các lá của cây nhị phân, ký hiệu u1,u2,..,un. Các nút thuộc cây, kể cả lá

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Giải pháp lưu vết và thu hồi thiết bị thu bất hợp pháp Luận văn ThS. Công nghệ thông tin 1.01.10 (Trang 62)

Tải bản đầy đủ (PDF)

(120 trang)