OFT(One-way Function Tree)

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu vấn đề quản lý và phân phối khóa nhóm trong việc đảm bảo an toàn dữ liệu multicast (Trang 54 - 59)

CHƢƠNG 3 : CÁC THUẬT TOÁN QUẢN LÝ KHÓA NHÓM

3.4. OFT(One-way Function Tree)

OFT là các cây khóa sử dụng hàm một chiều, được sử dụng cho việc thay khóa hiệu quả, nhưng có thể nói khả năng thay khóa khi có thành viên rời nhóm tốt hơn so với LKH [1]. OFT trong một vài trường hợp sẽ tương tự như LKH. Khóa gốc được sử dụng như khóa nhóm và mỗi thành viên gắn với nút lá duy nhất và hiểu khóa mật của nút đó. Hơn thế nữa, mỗi thành viên hiểu được khóa mật của các thành viên gắn kèm tổ chức từ khóa tại nút lá tới gốc. Tuy nhiên, GCKS không gửi các khóa mật này tới các thành viên. Thay thế vào đó, nó cung cấp khóa khác, khóa đó các thành viên sử dụng để tính toán các khóa của ông bà tổ tiên của chúng, bao gồm cả khóa nhóm.

GCKS sử dụng hàm g (one-way function ) để tính toán khóa tạo ra khóa áp dụng hàm ―Mù (blinded)‖ tương ứng với mỗi KEK trong cây khóa. Đưa ra g(x) nó tính toán khả năng không thể đưa ra giá trị của x. Mỗi khóa nút trong được tính toán bằng cách áp dụng một hàm trộn gọi là hàm f để sinh khóa ―blinded‖ của nút con của nó (hình 3.9).

Luật phân phối khóa OFT là mỗi thành viên nhận được khóa ―blinded‖ của các anh chị liền kề của các nút trong đường dẫn từ tổ chức lá đến gốc của cây.

Chúng ta minh hoạ phân phối khóa OFT trong hình 3.9, GCKS chia sẻ khóa mật duy nhất, Ka với A theo luồng kênh thiết lập khi đăng ký giao thức. Nó gửi khóa ―blinded‖ K0

b, K0cd, và K0e.h, vì vậy A có thể tính toán khóa ―unblinded‖ Kab and Ka:d, và Ka.h thuộc về từng cá thể.

Hình 3.9: Phân phối khóa OFT.

Cho phép chúng ta khảo sát f và g kỹ hơn với sự trợ giúp của hình 3.9 và 3.10 trong hình: K0b= g(Kb) và and f (Kab)=f(K0a, K0b). g là một hàm băm (MD5 hoặc SHA1), f là một hàm XOR.

3.4.1 Khởi tạo một OFT

OFT khởi tạo hiệu quả nếu GCKS gửi từng khóa ―blinded ‖ một tới nhóm, thay thế việc gửi cụ thể đến từng thành viên. Chúng ta thiết lập OFT như sau: GCKS chia sẻ việc bảo mật duy nhất với mỗi thành viên của nhóm trong quá trinhg đăng ký. Việc bảo mật này đáp ứng khóa của nút lá. Mỗi thành viên tính toán phiên bản khác nhau hàm ―blinded ‖ của mỗi khóa nút lá sở hữu. GCKS như vậy sẽ tính toán khóa ―blinded ‖ và gửi tới mỗi khóa ―blinded ‖ của nút lá, được bảo mật với khóa ―unblinded ‖ của anh em liền kề với nó. Ví dụ: hình 6.10, CGKS gửi K‘b được bảo mật với khóa Ka. GCKS tính toán khóa ―unblinded ‖ của mỗi nút ni trong các mức tiếp theo của cây bằng cách áp dụng hàm trộn các khóa ―blinded ‖ của các nút con của ni.

Hình 3.10: Khởi tạo OFT

Tương tự, mỗi thành viên tính toán khóa ―unblinded ‖ của nút cha mà nó sở hữu và khóa ―blinded ‖ của anh em liền kề nó. Tiếp tục xử lý cho đến khi tất cá các thành viên được tính toán khóa nhóm.

Tóm lại, GCKS gửi khóa ―blinded ‖ K‘ni được mã hoát với khóa ―unblinded ‖ của anh em liền kề của ni. Khóa được xử lý từ các nút lá tới gốc.

3.4.2 Thay khoá khi có thành viên mới tham gia trong OFT

Khi có một thành viên tham gia, GCKS tạo ra một vị trí mới trong cây bằng cách phân đối một nút. Lưu ý rằng khóa OFT tính toán yêu cầu của mỗi nút trong để có được 2 nút con. Do đó nó có thể chon phân chia tốt nhất cho một nút lá. Như vậy sẽ tạo ra một vị trí trống duy nhất cho thành viên mới. Nút trong và nút gốc thực hiện phân chia không được hiệu quả lắm. Để sửa đổi cân bằng và tạo ra một cây khóa hiệu quả, điều mong muốn là GCKS phân chia nút lá gần nhất tính tù gốc. Sau khi thành viên mới dễ dàng được sắp xếp trong cây, GCKS chia sẻ khóa mật với thành viên mới. GCKS sẽ thay đổi

khóa nút lá của anh em liền kề với thành viên mới và tính toán tất cả các khóa nút trong mới. Nó sẽ gửi các khóa ―blinded ‖ thành viên mới mà được quyền cho phép, sau khi đã bảo mật chúng với khóa mật duy nhất của mỗi thành viên. Các thành viên có sẵn như vậy cần cập nhập khóa ―blinded ‖ thay đổi, khi thêm thành viên tới cây khóa. Có thể nói rằng tất cả các khóa ―blinded ‖ trong đường dẫn từ vị trí thành viên mới đến gốc thay đổi. GCKS mã hoá mỗi khóa này với khóa ―unblinded ‖ của anh em liền kề tương ứng và gửi tới nhóm.

Chúng ta minh họa tham gia thay khóa trong hình 3.11. Trong hình này E tham gia và chúng ta có thể phân đôi nút lá tương ứng tới D để tạo ra nút lá trống cho E. GCKS sinh ra Ke và thay đổi khóa Kold

d thành Kd. Lưu ý rằng C hiểu K‘d sẽ vi phạm luật phân phối khóa OFT. Như vậy, GCKS thay đổi Kd và tính toán khóa mới. Khi đó nó gửi:

+ Khóa nút lá mới ―unblinded‖, Kd và K‘e được mã hóa với khóa Koldd cho D

+ K‘ab, K‘c và K‘d được mã hóa với Ke cho E

+ Khóa mới ―blinded ‖ K‘c.e và K‘de được mã hóa với khóa Kab va Kc một cách tương ứng

Tất cả các thành viên khi đó tính toán các KEK khác bao gồm khóa nhóm mới

Hình 3.11: Tham gia thay khóa trong OFT.

Độ phức tạp thuật toán khi thêm mới thành viên trong OFT

Xem xét một thành viên tham gia cây nhị phân cân bằng OFT với n thành viên (sau khi tham gia). GCKS cần gửi log2n khóa ―blinded‖ thành viên mới. Điều này tương ứng với số thành viên không thuộc nút lá từ thành viên tới nút gốc. Dẫn tới

GCKS cần gửi log2(n-1) khóa nút trong từ thành viên mới đến gốc sẽ thay đổi. Như vậy về tổng thể GCKS cần tính toán log2(n+1) khóa ―blinded‖ mới khi một thành viên tham gia. Số lượng này tương ứng với log2(n+1) phép tính toán hàm một chiều (one-way function).

3.4.3 Thay khoá khi có thành viên rời nhóm trong OFT

Khi một thành viên rời khỏi nhóm, GCKS thực hiện thay khóa nhóm để duy trì điều khiển truy nhập. Không giống như LKH, GCKS không thay đổi tất cả các khóa thuộc bộ phận thành viên hiểu được khóa đó. Lưu ý rằng nó không cần thay đổi tất cả các khóa ―blinded‖ đã cung cấp cho bộ phận các thành viên. Bởi vì GCKS không sử dụng các khóa ―blinded‖ để gửi khóa mật bất kỳ nào. Hơn thế nữa các bộ phận thành viên không thể lấy được các khóa nhóm trong tương lai hoặc các khóa khác.

Đầu tiên GCKS có các giành buộc với cây. Nếu bộ phận anh em liền kề thành viên là một nút lá, nó sẽ gắn kết với nút cha. Mặt khác nút anh em liền kề thừa nhận vị trí nút cha trong OFT. GCKS có một cơ chế tự động thay khóa như sau: Nếu nút anh em liền kề là nút lá, GCKS thay đổi khóa ―unblinded ‖ của nó và gửi khóa ―unblinded ‖ mới được mã hóa với khóa ―unblinded ‖ hiện thời

Nếu nút anh em liền kề là nút trong GCKS cần chọn lọc một trong những nút con của nút trong để tạo ra cơ chế tự động thay khóa trong nhóm. Bằng cách chuyển đổi, GCKS chọn con bên trái nhất và thay đổi khóa ―unblinded ‖ của nó. Kết quả là tất cả các khóa từ vị trí của nút khóa được thay (vị trí của nút cha của thành viên thuộc bộ phận) trong cây khóa tới gốc.

Hình 3.12: E rời khỏi nhóm. GCKH thay cha của E với anh em liền kề của E là D. Khi đó nó thay đổi Kd và gửi bản đã mã hóa với khóa Kold . Trả lại khóa mới Kd , chúng ta có 2 khóa mới ―blinded ‖ đó là K‘dvà K‘ cd . GCKS gửi các khóa đã được mã hóa với khóa ―unblinded ‖ của anh em của chúng, đó là Kc và Kab tương ứng.

Độ phức tạp thay khóa khi có thành viên rời nhóm trong OFT

Xem xét một OFT dạng cây nhị phân cân bằng đầy đủ sau khi xóa bộ phận thành viên từ cây khóa. GCKS cần gửi rất nhiều khóa ―blinded ‖ theo chiều dài từ nút thay khóa tới gốc. Mặc dù nó cần gửi log2n khóa ―blinded ‖ tới nhóm. Thêm vào đó GCKS cần gửi khóa mới ―blinded ‖ tới nút thay khóa. Về tổng thể GCKS gửi log2(n+1) các khóa tới nhóm. Trường hợp đơn giản hơn tham gia thay khóa, GCKS cần thực hiện một vài hàm tính toán một chiều one-way function sẽ tốt hơn.

Lưu ý rằng thay khóa khi có thành viên rời nhóm làm thay đổi của nút lá và log (n- 1) khóa nút trong. GCKS cần tính toán các khóa ―blinded‖ của khóa mới và thực hiện log2(n) phép toán hàm một chiều (one-way function)

Hình 3.12: Thay khóa khi rời thành viên trong OFT.

Lưu ý rằng các khái niệm của khóa thành viên được gửi tới nhóm, OFT chỉ gửi một nửa của số khóa so với LKH tới nhóm. Tuy nhiên, chi phí tính toán của GCKS không giảm hơn so với cách tính toán hàm một chiều (one-way function).

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu vấn đề quản lý và phân phối khóa nhóm trong việc đảm bảo an toàn dữ liệu multicast (Trang 54 - 59)

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

(102 trang)