Tải bản đầy đủ (.pdf) (21 trang)

Xây dựng giải pháp an ninh trong mạng Ad-hoc đa trạm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (524.66 KB, 21 trang )

1

Xây dựng giải pháp an ninh trong
mạng Ad-hoc đa trạm
Security solution in multi-hop ad hocnetwork
NXB H. : ĐHCN, 2012 Số trang 70 tr. +


Đinh Quang Vũ


Trường Đại học Công nghệ
Chuyên ngành: Công nghệ Thông tin; Mã số:60 48 15
Cán bộ hướng dẫn khoa học: Tiến sĩ Phạm Thanh Giang
Năm bảo vệ: 2012


Abstract. Chương 1. Mạng ad hoc và các vấn đề an ninh trong mạng ad hoc: Tổng quan về
mạng ad hoc, sự thiếu an ninh và các mối đe dọa trong mạng ad hoc, đồng thời chỉ ra giải
pháp an ninh trong mạng ad hoc thông qua quản lý khóa. Chương 2. Quản lý khóa trong mạng
ad hoc dựa vào giao thức thỏa thuận khóa: Trình bày các giao thức thỏa thuận khóa trong
mạng ad hoc và đánh giá các giao thức. Chương 3. Xây dựng chương trình mô phỏng giao
thức thỏa thuận khóa CliquesI: Xây dựng chương trình mô phỏng giao thức thỏa thuận khóa
Cliques I-II và chạy thử các kịch bản mô phỏng để chứng minh tính đúng đắn của thuật toán .

Keywords: Công nghệ thông tin; Mạng truyền thông; Mạng AD hoc; Phương tiện truyền
thông

Content.
MỞ ĐẦU
Ngày nay, mạng không dây trong đời sống con người đang ngày càng đóng vị trí quan trọng.


Đã có rất nhiều mô hình, kiến trúc mạng không dây được đề xuất nhằm làm cho mạng không dây
dần thoát khỏi hoàn toàn sự phụ thuộc vào cơ sở hạ tầng. Một trong những mô hình mạng được đề
xuất đó chính là mạng Ad hoc (Mobile Adhoc Network) thường được viết tắt là MANET. Các mạng
này thường được thiết lập trong các tình huống khẩn cấp, cho các hoạt động tạm thời hoặc đơn giản là
do không có nguồn lực để thiết lập một mạng lưới phức tạp. Việc các mạng không dây ít phụ thuộc vào
cơ sở hạ tầng là một điều rất thuận lợi nhưng bên cạnh đó lại có những vấn đề khác đặt ra như tốc độ
mạng không ổn định, các nút mạng hay di chuyển, topo mạng thay đổi liên tục và những thách thức rất
lớn về bảo mật đường truyền. Các thách thức về an ninh trong mạng ad hoc thường tập trung vào ba
phần: bảo mật tầng liên kết, bảo mật đinh tuyến và trao đổi, quản lý khóa. Trong khuôn khổ luận văn
này, tập trung chủ yếu vào việc trao đổi và quản lý khóa trong mạng ad hoc
Luận văn được bố cục thành 3 chương chính :
2

Chương 1. Mạng ad hoc và các vấn đề an ninh trong mạng ad hoc.
Tổng quan về mạng ad hoc, sự thiếu an ninh và các mối đe dọa trong mạng ad hoc, đồng
thời chỉ ra giải pháp an ninh trong mạng ad hoc thông qua quản lý khóa.
Chương 2. Quản lý khóa trong mạng ad hoc dựa vào giao thức thỏa thuận khóa.
Trình bày các giao thức thỏa thuận khóa trong mạng ad hoc và đánh giá các giao thức.
Chương 3. Xây dựng chương trình mô phỏng giao thức thỏa thuận khóa CliquesI.
Xây dựng chương trình mô phỏng giao thức thỏa thuận khóa Cliques-I và chạy thử các
kịch bản mô phỏng để chứng minh tính đúng đắn của thuật toán
Chương 1 - MẠNG AD-HOC VÀ CÁC VẤN ĐỀ AN NINH TRONG MẠNG AD-HOC
1.1. GIỚI THIỆU VỀ MẠNG AD HOC
Với sự cải tiến của công nghệ truyền thông không dây như Bluetooth, IEEE 802.11 hoặc
Hiperlan, trong vài năm trở lại đây mạng di động đã thu hút đc sự chú ý và phát triển ngày càng
mạnh mẽ. Dựa theo tính phụ thuộc vào các thiết bị hạ tầng cố định, mạng di động có thể được chia
thành hai loại: mạng hạ tầng (Infrastructure-based Network) và mạng ad hoc (Mobile Ad hoc
Network, MANET).
Trong tương lai, công nghệ mạng Ad hoc có thể sẽ là lựa chọn rất hữu ích. Ví dụ, hãy xem tình
huống sau. Một cơn động đất khủng khiếp đã tàn phá thành phố của chúng ta, trong đó có hầu hết

các cơ sở hạ tầng viễn thông (như các đường điện thoại, trạm vô tuyến cơ sở …). Nhiều đội cứu hộ
(như lính cứu hỏa, cảnh sát, bác sĩ, các tình nguyện viên …) đang nỗ lực để cứu mọi người khỏi cơn
động đất và chữa trị cho những người bị thương. Để hỗ trợ tốt hơn cho đội cứu hộ, các hoạt động
cứu hộ của họ phải được hợp tác với nhau. Rõ ràng là một hoạt động hợp tác như thế chỉ đạt được
thành quả khi đội cứu hộ có thể giao tiếp, thông tin với nhau, cả với đồng nghiệp của mình (ví dụ
một cảnh sát với một cảnh sát khác) và cả với thành viên của đội. Khó khăn này có thể được giải
quyết đáng kể nếu chúng ta áp dụng những công nghệ dựa vào mạng Ad hoc : bằng cách sử dụng
các giao tiếp không dây phân tán giữa nhiều điểm truy cập khác nhau, thậm chí các đội cứu hộ ở
cách xa nhau cũng có thể liên lạc với nhau.
1.2. SỰ THIẾU AN NINH VÀ CÁC MỐI ĐE DỌA TRONG MẠNG AD HOC
1) 1.2.1. Sự thiếu an ninh trong mạng ad hoc
Những điểm yếu an ninh do đặc điểm của mạng ad hoc:
[+] Sự thay đổi thường xuyên và không đoán trước được của topo mạng và các nút trong mạng.
[+] Các liên kết không dây trong mạng ad hoc rất dễ bị tấn công
[+] Việc mở rộng mạng và định tuyến cũng tồn tại nhiều yếu tố dễ bị tấn công.
2) 1.2.2. Các mối đe dọa an ninh trong mạng ad hoc
a) 1.2.2.1. Các hình thức tấn công
[+] Các cuộc tấn công bên trong mạng:
3

 Thụ động: các cuộc tấn công thường chỉ liên quan đến việc nghe trộm dữ liệu.
 Chủ động: các cuộc tấn công liên quan đến hành động thực hiện bởi đối thủ ví dụ sự sao
chép, sửa đổi và xóa dữ liệu trao đổi.
[+] Các cuộc tấn công từ bên ngoài mạng: thường nhắm đến một số mục tiêu ví dụ như gây ùn
tắc, làm sai lệch thông tin định tuyến, ngăn chặn các dịch vụ hoặc tắt chúng hoàn toàn.
b) 1.2.2.2. Tấn công từ chối dịch vụ
Tấn công từ chối dịch vụ luôn là mối đe doạ hàng đầu đến các hệ thống công nghệ thông tin
trên thế giới. Trong mạng ad hoc thì hậu quả của các cuộc tấn công thường phụ thuộc vào lĩnh vực
ứng dụng của mạng ad hoc.
c) 1.2.2.3. Mạo danh

Các cuộc tấn công mạo danh tạo thành một nguy cơ bảo mật nghiêm trọng trong tất cả các cấp
độ của mạng ad hoc . Nếu sự xác thực của các bên tham gia không được hỗ trợ, một nút bị tổn hai
trong mạng có thể cố tình gửi sai thông tin của một nút trong mạng
d) 1.2.2.4. Nghe lén
Trong mạng adhoc, các thông tin nghe lén có thể bao gồm bất cứ điều gì ví dụ như tình trạng
chi tiết cụ thể của một nút, vị trí của các nút, các thông điệp riêng tư hay bí mật, mật khẩu… Đôi
khi các dữ liệu điều khiển thông tin lại có ý nghĩa quan trọng hơn so với các dữ liêu trao đổi.
3) 1.2.3. Mục tiêu an toàn
Các mục tiêu an toàn cần đạt tới trong mạng ad hoc như sau:
[+] Tính sẵn sàng: Đảm bảo cho mạng và các dich vụ trong mạng luôn hoạt động kể cả khi bị tấn
công DOS.
[+] Tính bí mật: Đảm bảo thông tin không bao giờ bị tiết lộ cho các tổ chức trái phép.
[+] Tính toàn vẹn: Luôn đảm bảo dữ liệu truyền thông không bao giờ bị hỏng .
[+] Tính xác thực: Cho phép một nút đảm bảo danh tính của mình là xác thực và đáng tin cậy với
các nút ngang hàng mà nó tiếp xúc.
[+] Tính không khoái thác: Khi thông điệp gửi đi, đảm bảo người chủ của thông điệp không thể
phủ nhận nguồn gốc gói tin hay những thao tác mà người đó đã thực hiện.
4) 1.2.4. Các thách thức
[+] Bảo mật tầng liên kết
[+] Bảo mật định tuyến
[+] Quản lý khóa
1.3. GIẢI PHÁP AN NINH TRONG MẠNG AD HOC THÔNG QUA QUẢN LÝ KHÓA
5) 1.3.1. Thỏa thuận khóa có chứng thực mật khẩu
A và B là hai thành viên sẽ trao đổi thông tin với nhau dựa trên một khóa bí mật p, (E
A,
S
A
) là khóa
của A
4


[1] A > B : A, P(E
A
).
[2] B > A : P(E
A
(R)).
[3] A > B : R((challenge)
A
, S
A
).
[4] B > A : R(h((challenge)
A
), (challenge)
B
, S
B
).
[5] A > B : R(h(challenge)
B
).
6) 1.3.2. Giao thức thỏa thuận khóa Diffie-Hellman
Trong giao thức trao đổi khóa Diffie-Hellman cơ bản, hai bên A và B sẽ cùng khởi tạo một số
nguyên tố lớn p (ít nhất là 512 bit) và một số g là căn nguyên thủy modulo p (2 ≤ g ≤ p-2) hay g còn
gọi là phần tử sinh của nhóm cyclic Z
p
*
.
Các bước trao đổi khóa trong giao thức Diffie-Hellman:

[1] A chọn a (bí mật) ( 1 ≤ a ≤ p-2)
A > B : (g
a
) mod p
[2] B chọn số tự nhiên b (bí mật) ( 1 ≤ b ≤ p-2)
B > A : (g
b
) mod p
A tính : (g
b
mod p)
a
mod p
B tính : (g
a
mod p)
b
mod p
Sau các bước trên A và B đều có khóa chung là:
(g
b
mod p)
a
mod p = (g
a
mod p)
b
mod p = g
(a*b)
mod p

Kẻ tấn công chỉ có thể nghe trôm được trên đường truyền giá trị của (g
a
mod p) và (g
b
mod p).
Nếu chỉ dựa vào hai giá trị trên kẻ tấn công sẽ rất khó để tìm ra khóa chung K vì để tìm được K kẻ
tấn công phải giải mã để biết được giá tri a và b, lúc này độ an toàn của giao thức được quyết định
bởi tính khó của bài toán logarit rời rạc.
Chƣơng 2 - QUẢN LÝ KHÓA TRONG MẠNG AD HOC DỰA VÀO GIAO THỨC THỎA
THUẬN KHÓA
2.1. BỘ GIAO THỨC ASOKAN-GINZBOORG CHO MẠNG AD HOC TĨNH
7) 2.1.1. Bộ giao thức 2d-cube và 2d-octopus
a) 2.1.1.1. 2d-cube
[+] Giả sử có n thành viên tương ứng với n nút sẽ tham gia vào giao thức. Toàn bộ quá trình trao
đổi khóa của n=2
d
nút sẽ chạy với d vòng. Các nút sẽ được đánh số theo cơ số 2 từ 1 đến n.
[+] Ở vòng j các nút có địa chỉ A sẽ tiến hành trao đổi khóa DH với nút có địa chỉ là A xor 2
j-1
. Sau
vòng j sẽ có 2
d-j
cặp khóa
[+] Sau d vòng thì tất cả các nút có khóa giống nhau.
b) 2.1.1.2. 2d-octopus
[+] Giả sử có n nút với n không là lũy thừa của 2 (2
d
<n <2
d+1
)

5

Các nút sẽ được đánh số theo cơ số 2 từ 1 đến n. Những người tham gia có địa chỉ A<2
d
đóng vai
trò của bộ điều khiển trung tâm. Các nút có địa chỉ A>2
d
sẽ liên kết với các nút trung tâm.
[+] Ở vòng đầu tiên các nút có địa chỉ A với A>2
d
sẽ tiến hành trao đổi khóa DH với các nút có địa
chỉ A-2
d
.
[+] Vòng tiếp theo 2
d
nút còn lại sẽ tiến hành trao đổi khóa theo giao thức 2d-cube
[+] Cuối cùng khóa sẽ được các nút 2
d
phân phối cho các nút có địa chỉ A>2
d
.
8) 2.1.2. Bộ giao thức Asokan-Ginzboorg
a) 2.1.2.1. Xác thực khóa
Ban đầu hai bên A và B cùng khởi tạo một số nguyên tố lớn p và một số g là bội số của tập Zp*
{1, 2, …, p-1}. A và B chọn khóa bí mật của mình S
A
, S
B
với 1 <= S

A
, S
B
<= p-2 .
[1] A > B : A, P(g
SA
).
[2] B > A : P(S
B
), K(C
B
).
[3] A > B : K(C
A
, C
B
).
[4] B > A : K(C
A
).
b) 2.1.2.2. Khả năng để đối phó với các sự kiện bị lỗi
Giả sử chúng ta có 2
d
thành viên tham gia vào nhóm, mỗi thành viên có một địa chỉ d bit. Trong
quá trình trao đổi khóa với bất kỳ vòng k nào, số lượng các thành viên có thể trao đổi khóa DH tìm
được cho một nút là 2
k-1
. Trong vòng k, một nút có khả năng là đối tác trao đổi khóa cần phải có
cùng d-k bit đầu tiên nhưng khác nhau k bit cuối. Trong số những thành viên có khả năng trao đổi
khóa DH, nút cho trước (giả sử N) sẽ cố gắng trao đổi khóa DH với nút có số lượng bit khác nhau ít

nhất so với N. Nếu thất bại, N sẽ cố gắng với nút có số lượng bit khác nhau thứ 2. Nếu có nhiều hơn
một nút có số lượng bit khác k bit so với N, các nút với địa chỉ đánh thứ tự cao hơn sẽ được ưu tiên.
Nếu những nỗ lực trao đổi khóa thất bại một lần nữa, N sẽ cố gắng với nút có số lượng bit khác
nhau thứ ba…
2.2. SỰ MỞ RỘNG CỦA GIAO THỨC DIFFIE-HELLMAN CHO MỘT NHÓM
9) 2.2.1. Giao thức Cliques-I
a) 2.2.1.1. Khởi tạo khóa ban đầu
Quá trình tạo khóa ban đầu có thể chia thành 2 giai đoạn:
[+] Giai đoạn 1 gồm n-1 vòng :
- Các thành viên thống nhất chọn p là một số nguyên tố lớn, q là ước số nguyên tố của p-1 và G
là nhóm cyclic con bậc q của Zp
*
,còn α là phần tử sinh của G.
- Các thành viên tự chọn cho mình khóa bí mật r (thuộc Zq
*
), tính toán khóa của mình rồi lần
lượt gửi cho nhau.
[+] Giai đoạn 2 gồm 1 vòng :
6

- Khi thành viên cuối cùng nhận được khóa, sẽ đóng vai trò như người điều khiển tạm thời tính
toán các kết quả và gửi lại cho tất cả các thành viên trong nhóm.
- Các thành viên trong nhóm sẽ tính toán ra khóa dùng chung theo công thức

Sau khi tính toán các thành viên có khóa chung là α
r1*r2*…*rn

b) 2.2.1.2. Quá trình gia nhập thành viên mới và hợp nhất các nhóm
(1) a. Quá trình gia nhập thành viên mới
Quá trình tạo này chia thành 2 bước:

[+] Bước 1:
- Khi 1 thành viên (n+1) muốn gia nhập vào nhóm, thì thành viên n đang tạm thời đảm nhận vai
trò “người điều khiển” sẽ thay đổi (hay chọn lại) khóa bí mật của minh rn’, tính toán lại các kết
quả khóa đang lưu trữ.
- Sau đó n sẽ chuyển tất cả các tính toán cho thành viên mới.
[+] Bước 2:
- Thành viên mới sẽ chọn cho mình một khóa r
n+1
(thuộc Zq
*
)
- Sau đó thành viên mới sẽ tiếp nhận vai trò “người điều khiển” mới, tính toán các kết quả và gửi
lại cho các thành viên trong nhóm
- Các thành viên sẽ tính toán khóa dùng chung

(2) b. Quá trình hợp nhất các nhóm
Khi một nhóm có n phần tử hợp nhất với một nhóm có k phần tử thành viên n đang tạm thời
đảm nhận vai trò “người điều khiển” sẽ chọn lại khóa bí mật của minh rn’, tính toán lại các kết quả
khóa đang lưu trữ. Sau đó Mn sẽ chuyển tất cả các tính toán cho thành viên mới M
n+1
. Quá trình này
sẽ được lập lại đến hết các thành viên mới. Lúc này thành viên đảm nhận vai trò “người điều khiển”
sẽ chuyển các kết quả tính toán cho các thành viên trong nhóm. Các thành viên trong nhóm sẽ kết
hợp với khóa của mình tính toán ra khóa dung chung của nhóm
c) 2.2.1.3. Quá trình rời nhóm và chía nhỏ nhóm trong Cliques-I
(1) a. Quá trình rời nhóm
Khi 1 thành viên rời khỏi 1 nhóm, thì giả sử thành viên n đang tạm thời đảm nhận vai trò “người
điều khiển” sẽ thay đổi (hay chọn lại) khóa bí mật của mình là rn’ và tiến hành tính toán lại rồi
chuyển các kết quả tính toán cho các thành viên trong nhóm trừ thành viên mới rời nhóm.
(2) b. Quá trình chia nhỏ nhóm

7

Khi có k phần tử rời khỏi một nhóm n phần tử thì quá trình này ta vẫn tính toán tương tự. “Người
điều khiển” tạm thời sẽ thay đổi (hay chọn lại) khóa bí mật của mình là rn’ và tiến hành tính toán lại
rồi chuyển các kết quả tính toán cho các thành viên trong nhóm trừ k thành viên mới rời nhóm. Các
thành viên trong nhóm sẽ tiến hành tính toán lại để sinh ra khóa mới.
10) 2.2.2. Giao thức Cliques-II
a) 2.2.2.1. Khởi tạo khóa ban đầu trong Cliques-II
Quá trình tạo khóa ban đầu có thể chia thành các bước:
[+] Bước 1:
- Các thành viên sẽ thống nhất chọn p là một số nguyên tố lớn, q là ước số nguyên tố của p-1 và G
là nhóm cyclic con bậc q của Zp
*
,còn α là phần tử sinh của G.
- Các thành viên tự chọn cho mình khóa bí mật r (thuộc Zq
*
)
- Mỗi thành viên M
i
sẽ chuyển cho M
i+1
kết quả tính toán α
r1*r2*…*ri

(với 0<i<n-1)
[+] Bước 2: Thành viên M
n-1
sau khi nhận được kết quả tính toán của M
n-2
sẽ tính toán α

r1*r2*…*rn-1

và gửi broadcasts kết quả tính toán cho tất cả các thành viên trong nhóm
[+] Bước 3: Các thành viên trong nhóm sau khi nhận được gói tin từ M
n-1
sẽ tiến hành tính toán và
gủi kết quả đến M
n

[+] Bước 4: M
n
sau nhận được các gói tin từ các thành viên sẽ tính toán và gửi broadcasts lại cho tất
cả các thành viên
Các thành viên tính toán ra khóa dùng chung theo công thức

b) 2.2.2.2. Quá trình gia nhập thành viên mới và hợp nhất các nhóm trong Cliques-I
Quá trình này tương tự như trong giao thức CLIQUES-I
c) 2.2.2.3.Quá trình rời nhóm và chía nhỏ nhóm trong Cliques-II
Quá trình này tương tự như trong giao thức CLIQUES-I.
2.3. QUẢN LÝ KHÓA TRONG MẠNG AD HOC DỰA TRÊN CÂY KHÓA
11) 2.3.1. Giao thức STR
STR sử dụng một cây chìa khóa để quản lý nhóm khóa. Mỗi một nút M
i
được gắn với một nút lá
LN
i
. Mỗi nút nội bộ IN
i
lại được liên kết với hai con là : nút con trái IN
i-1

và nút con phải LN
i
. Mỗi
nút lá LN
i
chọn ngẫu nhiên một khóa r
i
bí mật, và tính br
i
= g
ri
mod p. Một nút nội bộ IN
i
có một
khóa k
i
và một khóa công khai bk
i
= g
ki
mod p
Dễ dàng chứng minh

Kết quả k
i
chính là khóa chung của i phần tử sau khi các phần tủ trao đổi khóa DH
8

a) 2.3.1.1. Khởi tạo khóa ban đầu
[+] Mỗi thành viên M

i
ban đầu chọn ngẫu nhiên một khóa r
i
bí mật ngẫu nhiên, và tính br
i
= g
ri
.
Sau
đó gửi broadcasts br
i
đến toàn mạng
[+] Thành viên M1

:
 Tính toán đệ quy tất cả




Sau quá trình tính toán trên M1 sẽ tính được khóa chung là K
n

 M1

gửi broadcasts các giá trị bk
i
với i = 2,…, n-1
[+] Các thành viên M
i

với i>1 sẽ tính toán k
i
= (bk
i-1
)
ri
và tính toán đệ quy tất cả giá trị k
j
với :

Sau quá trình tính đệ quy trên M
i
sẽ tìm được khóa chung là K
n
b) 2.3.1.2. Quá trình gia nhập nhóm
Giả sử nhóm hiện tại có n thành viên, một thành viên mới tham gia vào nhóm là M
n +1
. Cây sẽ
được cập nhật bằng cách tăng số nút lên n +1 và thêm một nút nội bộ IN
n+1
mới với hai con: con trái
là nút nội bộ IN
n
và con phải là nút lá LN
n+1
. Nút IN
n+1
sẽ trở thành nút gốc của cây mới. Quá trình
tính toán lại khóa sẽ theo thuật toán sau:
[+] Thành viên mới sẽ chọn cho mình một khóa bí mật r

n+1
và tính br
n+1
gửi br
n+1
đến cho toàn bộ
các thành viên trong nhóm.
Thành viên gốc cũ M
n
:
 Chọn lại cho mình một khóa r
n
và tính lại br
n

 Tính lại k
n
và bk
n

 Gửi broadcasts đến toàn mạng giá trị br
n
và bk
n



[+] Đối với mỗi thành viên M
i
tính toán lại khóa :

 Nếu i = 1,…,n-2 tính k
n
và k
n+1

 Nếu i = n (gốc cũ) tính k
n+1
= (br
n+1
)
kn

 Nếu i = n+1 (nút mới) tính ra khóa k
n+1
= (bk
n
)^r
n+1

Sau quá trình tính như trên ta được khóa chung cả nhóm là k
n+1

c) 2.3.1.3. Quá trình rời nhóm
Giả sử chúng ta có một nhóm n thành viên n và M
j
là thành viên rời khỏi nhóm, với 1 ≤ j ≤ n. Nút
đóng vai trò nút “bảo đảm” M
s
sẽ cập nhật các khóa ngẫu nhiên. Nếu j > 1, nút M
s

là nút lá trực tiếp
9

dưới nút dời đi tức là M
j-1
, nếu j=1 thì nút “bảo đảm” là M
2
. Sau đó cây sẽ được cập nhật và đánh số
lại. Quá trình tính toán lại khóa sẽ theo thuật toán sau:
[+] Tất cả các thành viên cập nhật lại số nút n = n – 1
Nút đóng vai trò nút cập nhật M
s
:
 Chọn lại cho mình một khóa r
s
và tính lại br
s


Tính lại k
n
và k
i
, bk
i

 Gửi broadcasts đến toàn mạng giá trị br
s
và bk
i

với i = s…n-1
[+] Đối với mỗi thành viên M
i
tính toán lại khóa :
 Nếu i < s tính

 Nếu i > s thì
Ta tính :

Sau đó đệ quy tính các khóa


Sau quá trình tính như trên ta được khóa chung cả nhóm là k
n

d) 2.3.1.4. Quá trình hợp nhất giữa các nhóm
(1) a. Quá trình hợp nhất giữa hai nhóm
Khi các nhóm nhỏ được sáp nhập vào một nhóm lớn hơn, tức là đặt một cây nhỏ trực tiếp lên trên
một cây có lớn hơn. Nếu kích thước hai nhóm bằng nhau, chúng ta có thể đặt thứ tự trên dưới theo
một số tiêu chí khác. Khi hợp nhất hai nhóm ta sẽ có một nút nội bộ IN
mới
với hai nút con được tạo
ra. Nút nội bộ của cây lớn hơn sẽ trở thành con trái của IN
mới
, trong khi lá thấp nhất của cây nhỏ
hơn sẽ trở thành con phải của IN
mới
. Nút gốc của cây nhỏ hơn sẽ trở thành nút gốc của cây mới.
Quá trình tính toán lại khóa sẽ theo thuật toán sau:
Giả sử chúng ta có hai cây, lớn hơn T1 với n1 thành viên, và T2 ít hơn với n2 thành viên. Hai nút

“ bảo đảm” cả hai cây được biểu thị bởi M
s1
và M
s2

[+] Hai nút “bảo đảm” sẽ trao đổi tất cả các khóa br và bk của hai nhóm cho nhau. Sau khi hai cây
hợp làm một thì nút “bảo đảm” là M
s1

[+] Nút “bảo đảm” M
s
(s=s
1
)
 Chọn lại khóa r
s
và tính br
s

 Tính lại k
i
và bk
i
với i = n
1
-1,…,n
1
+n
2
-1 và tính k

n1+n2
(khóa của nhóm)
 Gửi broadcasts đến toàn mạng giá trị br
s
và bk
i
với i = n
1
,…, n
1
+n
2
-1
10

[+] Đối với mỗi thành viên M
i
với n=(n
1
+n
2
) tính toán lại khóa :
Nếu i < s tính :

 Nếu i > s thì
Ta tính :

Sau đó đệ quy tính các khóa



(2) b. Quá trình hợp nhất giữa m nhóm
Cũng tương tự như quá trình hợp nhất giữa hai nhóm, nhưng khác nhau ở bước thứ nhất khi các
nút “bảo đảm” sẽ không lần lượt truyền unicast các br và bk cho nhau mà thay vào đó các nút “bảo
đảm” sẽ truyền broadcasts các br và bk đến toàn mạng. Giả sử ta có m nhóm với m nút “bảo đảm”
M
si
(1≤ i≤ m).
[+] Các nút “bảo đảm” sẽ trao đổi broadcasts tất cả các khóa br và bk của nhóm mình cho toàn
mạng.
Sau khi các cây hợp làm một thì nút “bảo đảm” là M
s1

[+] Tất cả các thành viên :
 Cập nhật lại cây
 Tính lại số nút

Nút “bảo đảm” M
s
(s=s
1
)
 Chọn lại khóa r
s
và tính br
s

 Tính lại k
i
và bk
i

với i = s,…, n-1

và tính k
n
(khóa của nhóm)
 Gửi broadcasts đến toàn mạng giá trị br
s
và bk
i
với i = s,…, n-1
[+] Đối với mỗi thành viên M
i
với n=(n
1
+n
2
) tính toán lại khóa :
Nếu i < s tính :

 Nếu i > s thì
Ta tính :

Sau đó đệ quy tính các khóa

11


e) 2.3.1.5. Quá trình chia nhỏ nhóm
Việc chia nhỏ nhóm cũng tương tự như quá trình rời nhóm, chỉ khác việc chọn nút “bảo
đảm”. Ta sẽ chọn nút “bảo đảm” là nút lá trực tiếp dưới nút dời đi thấp nhất, nếu M

1
rời đi thì ta sẽ
chọn nút “bảo đảm” là nút lá thấp nhất của cây còn lại.
Quá trình tính toán lại khóa sẽ theo thuật toán sau:
[+] Mỗi thành viên trong nhóm :
 Cập nhật cây và các thành viên, cập nhật số nút n = n-p
Với nút “bảo đảm” M
s
:
 Chọn lai khóa r
s
và tính br
s


Tính lại k
n
và k
i
, bk
i

 Gửi broadcasts đến toàn mạng giá trị br
s
và bk
i
với i = s…n-1
[+] Đối với mỗi thành viên M
i
tính toán lại khóa :

 Nếu i < s tính

 Nếu i > s thì
Ta tính :

Sau đó đệ quy tính các khóa


Sau quá trình tính như trên ta được khóa chung cả nhóm là k
n
f) 2.3.1.6. Thiết lập lại khóa
Giả sử nhóm có n thành viên, và 1 thành viên M
r
chọn lại khóa bí mật của mình.
[+] Đối với nút M
r

 Chọn lại khóa r
r
và tính br
r

 Tính k
n
và (k
i
, bk
i
) với i=r,…,n-1
 Gửi broadcasts đến toàn mạng giá trị br

r
và bk
i
với i = r…n-1
[+] Đối với mỗi thành viên trong nhóm
 Nếu i < r tính k
j
với j = r…n
 Nếu i > r tính k
j
với j = i…n
12) 2.3.2. Giao thức TGDH
Các khái niệm cần nắm rõ :
12

(l,v) : Nốt thứ v ở cấp cây thứ l
k
(l,v)
: Khóa k của nốt (l,v)
bk
(l,v)
: Khóa công khai của nốt (l,v)
T
(i,j)
: Cây con với nút gốc là (i,j)
Trong cây TGDH nút (0,0) là nút gốc là cấp 0. Chiều cao của một cây là cấp cao nhất của cây.
Bất cứ thành viên nào cũng được liên kết với một nút lá. Một nút (l,v) không là nút lá được gọi là
nút nội bộ với hai nút con. Nút con trái của (l,v) là nút (l+1,2v) và nút con phải là nút (l+1,2v+1).
Một nút (l,v) có khóa là k
(l,v)

và một khóa bkeys công khai tương ứng là bk
(l,v)
=g
k(l,v)
mod p . Khóa
k
(l,v)
có thể được tính toán đệ quy như sau:

a) 2.3.2.1. Khởi tạo khóa ban đầu
Giả sử chúng ta có một nhóm với n thành viên, đầu tiên các thành viên M
i
và M
i+1
sẽ trao đổi
khóa DH cho nhau với i=1 n. Sau bước này ta sẽ có n/2 nhóm nhỏ gồm các cây con T
1
,T
2
…T
n/2
,
mỗi cây gồm một nút gốc và hai nút lá. Đối với mỗi cây con này ta chọn các thành viên gắn với nút
là ngoài cùng bên phải làm nút “bảo đảm”. Các nút “bảo đảm” của các cây con T
i
và T
i+1
lại tiến
hành gửi broadcasts toàn bộ khóa công khai cho nhau và các nút gốc của hai cây con sẽ tiến hành
trao đổi khóa DH cho nhau tạo thành một cây mới với hai nút gốc cũ là hai nút nội bộ. Nếu cây con

nào không tìm thấy cây để trao đổi khóa DH thì nó giữ nguyên sẽ không làm gì cả. Quá trình cứ lặp
lại như vậy đến khi nào chỉ còn một nhóm duy nhất.
Việc tính toán khởi tạo nhóm khóa theo thuật toán sau :
[+] Đầu tiên tất cả các thành viên M
i
với i=1…n sẽ gửi broadcasts cho toàn mạng khóa bk
i
của
mình.
[+] Tiếp theo các thành viên sẽ tiến hành tạo cây TDGH như trên đã nói. Để tiết kiệm chi phí bộ
nhớ nó sẽ loại bỏ toàn bộ các bkeys, chỉ giữ lại bkeys của bản thân và hàng xóm của nó.
Mỗi thành viên (l,v) với v lẻ sẽ tạo một danh sách gồm các nút (l-i, v/2
i
) thỏa mãn:
 1<i<l
 Phần nguyên của v/2
i-1
và v/2
i-2
là số lẻ hoặc nút đó là một nút lá
Mỗi thành viên v lẻ sẽ tính toán khóa bkeys của nút nội bộ gắn với nó rồi gửi broadcasts cho toàn
mạng. Các thành viên với v lẻ sẽ loại bỏ khỏi danh sách nút nội bộ gắn với nó (nút cha).
[+] Trong bước tiếp theo mỗi thành viên trong mạng sau khi nhận được các khóa bkeys ở bước trên
sẽ tự mình tính toán các khóa bkeys trên đường dẫn đến nút gốc (0,0). Nếu nút nào nằm trong danh
sách của thành viên ở bước trên thì khi tính toán bkeys của nó, thành viên đó sẽ gửi broadcasts cho
toàn mạng và loại bỏ nút đó khỏi danh sách.
13

[+] Sau các bước trên thì mỗi thành viên đều nắm được tất các bkeys trên đường dẫn đến nút gôc
(0,0). Các thành viên sẽ tự động tính toán ra khóa chung cả nhóm

b) 2.3.2.2. Quá trình gia nhập nhóm của giao thức TGDH
Giả sử có thành viên M
n+1
gia nhập vào nhóm có n thành viên {M1,…,Mn}. Thành viên mới sẽ
gửi broadcasts cho toàn mạng thông điệp gia nhập nhóm cùng khóa bkeys của nó. Sau khi nhận
được thông điệp của thành viên mới, các thành viên cũ sẽ xác định điểm sẽ chèn nút thành viên mới
trên cây TGDH. Nếu cây hoàn toàn cân bằng tức n=2
h
(với h là chiều cao của cây) thì thành viên
mới sẽ gia nhập vào nút gốc, ngược lại nút mới sẽ được chèn vào lá ngoài cùng bên phải. Lý do ta
chọn như vậy để giữ cho cây TGDH cân bằng nhất có thể.
Khi cây cập nhật nút mới, giống như giao thức STR ta chọn nút “bảo đảm” sẽ là lá ngoài cùng
bên phải của cây con tại nút mới chèn vào. Một nút nội bộ mới sẽ được tạo ra. Thành viên mới gia
nhập sẽ trở thành cây con phải và nút tại điểm chèn sẽ trở thành cây con trái của nút nội bộ mới.
Quá trình tính toán lại khóa sẽ theo thuật toán sau:
[+] Thành viên mới sẽ gửi broadcasts cho toàn mạng thông điệp gia nhập nhóm cùng khóa bkeys
của nó
[+] Tất cả các thành viên trong nhóm :
 Cập nhật lại cây, loại bỏ tất cả khóa của các nút trên đường dẫn từ nút “bảo đảm” đến nút
gốc (0,0)
Đối với nút “bảo đảm” M
s
:
 Chọn lại khóa và tính bkeys của mình
 Tính toán toàn bộ khóa và bkeys của các nút trên đường dẫn từ nút “bảo đảm” đến nút gốc
(0,0)
 Gửi broadcast toàn bộ giá trị bkeys các nút trên đường dẫn từ nút “bảo đảm” và nút mới đến
nút gốc (0,0)
[+] Tất cả các thành viên sau khi nhận được giá trị bkeys ở bước trên sẽ tính lại toàn bộ khóa.
c) 2.3.2.3. Quá trình rời nhóm của giao thức TGDH

Giả sử chúng ta có một nhóm gồm n thành viên và thành viên M
l
sẽ rời khỏi nhóm. Khi đó
nút lá ngoài cùng bên phải của cây con hàng xóm với thành viên rời đi sẽ được chọn làm nút “bảo
đảm”. Sau khi có thông báo nút M
l
rời đi, các nút còn lại sẽ cập nhật cây bằng cách xóa đi M
l

hàng xóm của nút rời đi sẽ được đẩy lên thay thế nút cha của nút rời đi. Nút là bên phải ngoài cùng
sẽ được chọn làm nút “bảo đảm”.
Quá trình tính toán lại khóa sẽ theo thuật toán sau:
[+] Đối với mỗi thành viên :
 Loại bỏ nút rời đi và nút cha liên quan trên cây TGDH
 Xóa toàn bộ khóa của các nút trên đường dẫn từ nút “bảo đảm” đến nút gốc (0,0).
14

Đối với nút “bảo đảm”:
 Chọn lại khóa cho mình và tính bkeys
 Tính lại toàn bộ khóa của các nút trên đường dẫn từ nút “bảo đảm” đến nút gốc (0,0).
 Gửi broadcasts khóa bkeys của các nút trên đường dẫn từ nút “bảo đảm” đến nút gốc (0,0).
[+] Các nút nhận được bkeys tính toán lại khóa của cây.
d) 2.3.2.4. Quá trình hợp nhất giữa các nhóm của TGDH
Ta giả sử có m thành viên muốn gia nhập vào nhóm G1. m thành viên này lập thành một nhóm
TGDH là G2 (bằng cách sử dụng thuật toán khởi tạo khóa TGDH ban đầu). Sau đó G2 sẽ hợp nhất
với G1. Nếu có nhiều hơn 2 nhóm k>2 thì đơn giản ta chỉ cần thực hiện quá trình hợp nhất 2 nhóm
k-1 lần.
Với hai nhóm G1 và G2, ta giả sử hai cây của hai nhóm là T1 và T2. T2 sẽ tham gia vào T1.
Chúng ta cần tìm điểm chèn cây T2. Nếu hai cây có cùng chiều cao thì chúng ta đơn giản chỉ cần
nối T2 với nút gốc của T1. Ngược lại khi hai cây không cùng chiều cao ta sẽ tìm nút ngoài cùng bên

phải của T1, nút mà khi T2 tham gia vào T1 sẽ không làm tăng chiều cao của cây T1. Nếu không có
nút như thế tồn tại thì điểm chèn sẽ là nút gốc.
Quá trình tính toán lại khóa sẽ theo thuật toán sau:
[+] Đối với các nút “bảo đảm” của các cây M
si
, i=1 m:
 Chọn lại khóa và tính bkeys của mình.
 Tính toàn bộ khóa trên đường dẫn từ nó đến nút gốc
 Gửi broadcasts cho toàn bộ các thành viên của cây mới toàn bộ các khóa bkeys trên đường
dẫn từ nút “bảo đảm” đến nút gốc (0,0) bao gồm cả bk(0,0).
Đối với các thành viên trong nhóm:
 Cập nhật lại cây và xác định nút “bảo đảm” mới.
 Loại bỏ toàn bộ khóa trên đường dẫn từ nút “bảo đảm” đến nút gốc (0,0).
[+] Ta lặp lại quá trình tính như sau cho đến khi tất cả các nút bảo đảm tính được khóa của nhóm:
Mỗi nút “bảo đảm” M
si
với 1≤i≤t :
 Tính toàn bộ khóa trên đường dẫn khóa xa nhất có thể.
 Gửi broadcasts cho toàn bộ các thành viên trong nhóm giá trị bkeys của các nút trên đường
dẫn từ nút “bảo đảm” đến nút gốc (0,0).
[+] Tất cả các thành viên sau khi nhận được giá trị bkeys ở bước trên sẽ tính lại khóa của nhóm.
e) 2.3.2.5. Quá trình chia nhỏ nhóm của TGDH
Giả sử có một nhóm n thành viên và có k thành viên rời khỏi nhóm. Tất cả các thành viên
còn lại sẽ cập nhật lai cây TGDH bằng cách xóa tất cả các nút của thành viên rời đi (hoặc cây con
gồm các nút rời đi) cũng như nút cha của các nút rời đi đấy. Sau đó nút hàng xóm với nút rời đi sẽ
15

được chuyển vị trí thành nút cha của các nút rời đi. Đối với mỗi nút rời đi ta chọn nút lá ngoài cùng
bên phải của cây con hàng xóm với nút rời đi sẽ được chọn làm nút “bảo đảm”.
Quá trình tính toán lại khóa sẽ theo thuật toán sau:

[+] Tất cả các thành viên ;
 Cập nhật lại cây TGDH bằng cách xóa bỏ tất cả cá nút rời đi cũng như cha của nó.
 Xóa bỏ tất cả các khóa trên đường dẫn từ nút “bảo đảm” đến nút gốc (0,0)
Các nút “bảo đảm” sẽ chọn lại khóa và tính bkeys của nó.
[+] Ta lặp lại quá trình tính như sau cho đến khi tất cả các nút bảo đảm tính được khóa của nhóm:
Mỗi nút “bảo đảm” M
si
:
 Tính toàn bộ khóa trên đường dẫn khóa xa nhất có thể.
 Gửi broadcasts giá trị bkeys của các nút trên đường dẫn từ nút “bảo đảm” đến nút gốc (0,0).
[+] Tất cả các thành viên sau khi nhận được giá trị bkeys ở bước trên sẽ tính lại khóa của nhóm.
f) 2.3.2.6. Thiết lập lại khóa trong TGDH
Giả sử nhóm có n thành viên, và 1 thành viên M
r
chọn lại khóa bí mật của mình. Quá trình thiết
lập lại nhóm khóa sẽ diễn ra theo thuật toán sau :
[+] Đối với nút M
r

 Chọn lại khóa r
r
và tính br
r

 Tính lại khóa trên đường dẫn từ nó đến nút gốc (0,0)
 Gửi broadcasts giá trị bkeys của các nút trên đường dẫn từ nó đến nút gốc (0,0)
[+] Đối với mỗi thành viên trong nhóm
 Xóa toàn bộ khóa các nút trên đường dẫn từ nút M
r
đến nút gốc (0,0).

 Cập nhật lại các bkeys do M
r
broadcasts ở bước trên gồm bkeys các nút trên đường dẫn từ
M
r
đến nút gốc
 Tính lại toàn bộ khóa trên đường dẫn đến gốc (0,0).
16

2.4. ĐÁNH GIÁ CÁC GIAO THỨC
13) 2.4.1. So sánh về chi phí truyền thông

Bảng so sánh về chi phí truyền thông giữa bốn giao thức
Trong đó:
 n: Là số thành viên hay số nút trong nhóm
 h : Chiều cao cây = [ log
2
n ]
 k: Là số thành viên mới tham gia vào nhóm
 Msgs: Số tin truyền thông
 m: Số nhóm hợp nhất
 p: Số thành viên tách khỏi nhóm
 : Chiều cao cây cập nhật
Các biểu đồ so sánh:
17

14) 2.4.2. So sánh về chi phí tính toán

Bảng so sánh về độ chi phí tính toán giữa bốn giao thức
Trong đó:

 n: Là số thành viên hay số nút trong nhóm
 h : Chiều cao cây =[log
2
n]
 k: Là số thành viên mới tham gia vào nhóm
 : Chiều cao cây cập nhật
 p : Số thành viên rời nhóm.
Một số đánh giá: Nhìn vào bảng so sánh chi phí truyền thông và chi phí tính toán giữa bốn giao
thức ta có thể thấy giao thức STR hoạt động hiệu quả hơn cả đặc biệt là trong quá trình “chia nhỏ”
và “hợp nhất” các nhóm, là hai quá trình đòi hỏi yêu cầu truyền thông liên tục.
[+] Quá trình khởi tạo: Về số vòng thì STR chỉ mất hai vòng để khởi tạo một nhóm mới trong khi
CLIQUES-II là giao thức truyền thông tốn kém nhất nó đòi hỏi n+1 vòng. Còn giao thức TGDH thì
tương đối hiệu quả vì số lượng vòng tính toán bằng log
2
tổng số thành viên trong nhóm.
Độ phức tạp tính toán của CLIQUES và STR đều là độ phức tạp tuyến tính, còn TGDH chỉ cần
độ phức tạp logarit. Vậy trong quá trình khởi tạo giao thức STR là giao thức truyền thông hiệu quả
nhất kể cả về số vòng và số gói tin truyền thông.
[+] Quá trình gia nhập nhóm : Tất cả các giao thức đều yêu cầu hai vòng và hai gói tin. Nhưng
hai giao thức STR và TGDH lại yêu cầu hai tin broadcast trong khi hai giao thức CLIQUES lại chỉ
yêu cầu một tin broadcast và một tin unicast. Do đó hai giao thức CLIQUES có hiệu quả truyền
thông hơn hai giao thức STR và TGDH.
18

Tuy nhiên giao thức CLIQUES lại là tốn kém nhất trong tính toán, nó đòi hỏi độ phức tạp tuyến
tính. TGDH thì tương đối hiệu quả, số lượng tính toán là O(logn), trong khi STR thì yêu cầu độ
phức tạp hằng không phụ thuộc vào độ lớn nhóm .
[+] Quá trình rời nhóm: Tất cả các giao thức đều yêu cầu một vòng và một gói tin broadcast.
CLIQUES và STR yêu cầu độ phức tạp tuyến tính, còn TGDH thì tính toán lại có hiệu quả hơn khi
chỉ cần độ phức tạp logarit.

[+] Quá trình hợp nhất các nhóm: Đầu tiên ta xem xét về chi phí truyền thông. Hai giao thức
CLIQUES-I và CLIQUE-II đều tốn số vòng là (k+1), trong đó k là số thành viên tham gia vào
nhóm. Giao thức STR là hiệu quả nhất khi số vòng sử dụng luôn là 2. Tuy số vòng của giao thức
TGDH phụ thuộc vào m (số lượng các nhóm hợp nhất) nhưng do m thường là nhỏ nên số vòng của
TGDH cũng rất khả thi bằng [log
2
m]+1.
Còn về chi phí tính toán thì giao thức hiệu quả hơn cả lại là TGDH khi độ phúc tạp chỉ là logarit,
trong khi giao thức STR độ phức tạp là tuyến tính. Giao thức CLIQUES là giao thức kém hiệu quả
nhất để xủ lý các sự kiện hợp nhất khi độ phức tạp là (k
2
+2nk+k+2n)/2.
[+] Quá trình chia nhỏ nhóm: Theo bảng thống kê bên trên ta thấy trong quá trình này giao thức
CLIQUES và SRT hoạt động khá hiệu quả khi chỉ dùng một vòng và một tin broadcast, trong khi
giao thức TGDH lại đòi hỏi số vòng là tối thiểu của chiều cao cây cập nhật và ([log
2
p] +1). Do đó
STR và CLIQUES là thích hợp nhất để xử lý các sự kiện chia nhỏ nhóm có liên quan đến chi phí
truyền thông.
Đối với chi phí tính toán, giao thức TGDH chỉ đòi hỏi độ phức tạp logarit, trong khi CLIQUES
và STR cần độ phức tạp tuyến tính. Giao thức STR đòi hỏi chi phí tính toán khoảng 50% so với
CLIQUES. Do đó TGDH là thích hợp nhất đối với chi phí tính toán.
Chƣơng 3 - XÂY DỰNG CHƢƠNG TRÌNH MÔ PHỎNG GIAO THỨC CLIQUES-I
3.1. PHÂN TÍCH THIẾT KẾ
Chương trình mô phỏng dựa trên dự án Player (trước đây là dự án Player/Stage) là một dự án
để tạo ra phần mềm miễn phí cho nghiên cứu robot và các hệ thống cảm biến.

Hình 3.1: Cấu trúc điều khiển server/client của player/stage
Để xây dựng chương trình mô phỏng giao thức CLIQUES-I ta trước tiên xây dựng một môi
trường cho các robot hoạt động.

19

 Môi trường này là một căn phòng rộng 30x30=900m
2
.
 Môi trường giả lập gồm 6 robot tương ứng cho 6 nút.
 Mỗi robot có vùng phủ sóng bán kính 5m.
 Tốc độ di chuyển của các robot là 1.5 m/s
 Các robot có thể liên lạc với nhau bằng hình thức unicast, multicast hoặc broadcast.
Ta sẽ xây dựng các kịch bản để mô phỏng
[+] Kịch bản 1: Mô phỏng quá trình khởi tạo nhóm với 5 nút.
[+] Kịch bản 2: Mô phỏng quá trình gia nhập nhóm, một robot sẽ gia nhập vào nhóm 5 robot ban
đầu
[+] Kịch bản 3: Mô phỏng quá trình rời nhóm
3.2. MỘT SỐ KẾT QUẢ MÔ PHỎNG
[+] Kịch bản 1: Mô phỏng quá trình khởi tạo nhóm, ta mặc định 5 nút ban đầu trong căn phòng đã
tạo thành một nhóm.
Time init Key of Group 1 : [ 8018 ] milliseconds
[+] Kịch bản 2: Mô phỏng quá trình gia nhập nhóm, một robot gia nhập vào nhóm 5 robot
Time join Key : [ 1026 ] milliseconds
[+] Kịch bản 3: Mô phỏng quá trình rời nhóm, một robot trong nhóm 6 robot vừa hình thành sẽ rời
khỏi nhóm.
Time leave Key : [ 1025 ] milliseconds

KẾT LUẬN
Kết quả đạt được
- Tìm hiểu mạng ad hoc và các vấn đề an ninh trong mạng ad hoc.
 Các khái niệm và đặc điểm của mạng ad hoc
 Các thách thức và mục tiêu an toàn trong mạng ad hoc
- Tìm hiểu các giao thức thỏa thuận khóa trong mạng ad hoc

 Tìm hiểu bộ giao thức Asokan-Ginzboorg cho mạng ad hoc tĩnh.
 Quản lý khóa trong mạng ad hoc dựa trên cây khóa với hai giao thức STR và TGDH
 Mở rộng của giao thức Diffie-Hellman với giao thức Cliques-I và Cliques-II
 So sánh, đánh giá các giao thức trên phương diện chi phí truyền thông và chi phí tính
toán
- Mô phỏng được các giao thức thỏa thuận khóa trong mạng ad hoc.
Việc áp dụng các giao thức thỏa thuận khóa giúp cho khả năng bảo mật trong mạng ad-hoc
được nâng cao hơn do các khóa luôn được thay đổi và làm mới mỗi khi có sự thay đổi về thành viên
20

trong nhóm, đồng thời đảm bảo tính bí mật về khóa giữa các thành viên trong nhóm do khóa chính
của nhóm đều được hình thành do sự đóng góp khóa của tất cả các thành viên.
Hiện nay giải pháp an ninh trong mạng ad hoc dựa trên giao thức thỏa thuận khóa đã được sử
dụng nhiều trong các ứng dụng nhóm khác nhau bao gồm cả điện thoại và video hội nghị, tư vấn từ
xa, hệ thống chẩn đoán cho y tế… và hứa hẹn trong tương lai sẽ còn phát triển hơn nữa do đặc tính
tiện dụng và bảo mật của nó.
Hướng phát triển
Nghiên cứu khả năng kết hợp giữa các giao thức thỏa thuận khóa đồng thời tìm hiểu thêm về
các giải pháp bảo đảm an ninh khác như bảo mật tầng liên kết, bảo mật routing trong mạng ad hoc
để có thế xây dựng một giải pháp toàn diện đảm bảo an toàn truyền thông trong mạng ad hoc.

References.
Tiếng Việt
[1] TS. Nguyễn Đại Thọ (2008), Giáo trình: An ninh mạng, ĐH Công nghệ, ĐHQG HN.
Tiếng Anh
[2] Hong Tang, Liehuang Zhu, Zijian Zhang, “Efficient ID-Based Two Round Authenticated
Group Key Agreement Protocol”, In Proceeding of 2008 InternationalConference on Wireless
Communications, Networking and Mobile Computing(WiCOM08), pp.1-4, 2008.
[3] Klas Fokin, “Key management in Ad hoc networks”, Linköpings University, Master
Dissertation, 2002.

[4] L. Ji and M. S. Corson, “Differential Destination Multicast (DDM)”, Specification. Internet
draft (work in progress), draft-ietf-manet-ddm-00.txt, July 2000.
[5] L. Zhou and Z.J. Haas, “Securing Ad hoc Networks”, IEEE Networks, 13(6): 24-30,
Nov/Dec 1999
[6] L. Zhou and Z. Haas, “Securing ad hoc networks”, IEEE Network Magazine, vol. 13, no. 6,
pp. 24-30, Nov./Dec. 1999.
[7] M. Steiner, “Secure Group Key Agreement. PhD thesis”, Naturwissenschaftlich-
Technischen Fakultat I der Universitat des Saarlandes, December 2001.
[8] N. Asokan and P. Ginzboorg, ”Key Agreement in Ad-hoc Networks”, Communication
Systems Labo-ratory, Nokia Research Center, February 2001.
[9] W. Diffie and M. E. Hellman, “New Directions in Cryptography”, IEEE Transactions on
Information Theory, IT-22(6):644–654, November 1976.
[10] Wang Wei, “Group key management: theory and key technologies”, XiDian University,
PhD Dissertation, 2008.
21

[11] Yongdae Kim, Adrian Perrig, Gene Tsudik, “Tree-based group key agreement”, ACM
Transactions on Information and System Security, ACM, vol. 7, no. 1, pp.60-96, 2004.
Zhou Fucai, Xu Jian, Xu Haifeng, “Research of STR multicast key management protocol based
on bilinear pairing in ad hoc network”, Journal on Communications, Editorial Board of
Journal on Communications, vol. 29, no. 10, pp.1

×