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

NGHIÊN CỨU MỘT SỐ PHƯƠNG THỨC PHÂN PHỐI VÀ THỎA THUẬN KHÓA

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 (329.99 KB, 25 trang )



HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
*******************



NGUYỄN THỊ KIM OANH

NGHIÊN CỨU MỘT SỐ PHƢƠNG THỨC PHÂN PHỐI VÀ
THỎA THUẬN KHÓA

Chuyên ngành: KỸ THUẬT VIỄN THÔNG
Mã số: 60.52.02.08

TÓM TẮT LUẬN VĂN THẠC SĨ



HÀ NỘI - 2014





Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG



Người hướng dẫn khoa học: GS.TS. NGUYỄN BÌNH





Phản biện 1: … ……………………………………………………………
Phản biện 2: ……………………………………………………………








Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học
viện Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm




Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông



1
LỜI NÓI ĐẦU

Hiện nay, ở các nước phát triển cũng như đang phát triển, mạng máy tính
và Internet đang ngày càng đóng vai trò thiết yếu trong mọi lĩnh vực hoạt động

của xã hội, và một khi nó trở thành phương tiện làm việc trong các hệ thống thì
nhu cầu bảo mật thông tin được đặt lên hàng đầu. Nhu cầu này không chỉ có ở
các bộ máy An ninh, Quốc phòng, Quản lý Nhà nước, mà đã trở thành cấp thiết
trong nhiều hoạt động kinh tế xã hội: tài chính, ngân hàng, thương mại…thậm
chí trong cả một số hoạt động thường ngày của người dân (thư điện tử, thanh
toán tín dụng,…). Do ý nghĩa quan trọng này mà những năm gần đây công nghệ
mật mã và an toàn thông tin đã có những bước tiến vượt bậc và thu hút sự quan
tâm của các chuyên gia trong nhiều lĩnh vực khoa học, công nghệ.
Chúng ta thấy, trong hệ mật mã cần phải sử dụng khóa mật (ngoại trừ
hàm băm). Chiều dài khóa thì phải đủ lớn, và bản thân khóa cũng phải được
chọn lựa ngẫu nhiên và phân bố đều từ không gian khóa. Nếu đảm bảo được
điều kiện này thì sẽ tránh được tấn công đơn giản nhất, như trên cơ sở dự đoán
khóa mật hay trên cơ sở vét cạn khóa. Khi mà chiều dài khóa không đủ lớn thì
hệ mật dù có phức tạp đến đâu cũng không thể đảm bảo được độ an toàn cao.
Sử dụng thuật toán mật mã an toàn là điều cần thiết, nhưng chưa đủ để đảm bảo
độ an toàn cao của hệ mật.
Thông thường thì thám mã thường tấn công lên hệ thống khóa hơn là tấn
công trực tiếp lên thuật toán của hệ mật. Do vậy, điều khiển hệ thống khóa là
một thành phần quan trọng xác định được độ an toàn của hệ mật sử dụng. Cũng
chính vì lý do đó mà tôi đã chọn đề tài : “Nghiên cứu một số phương thức
phân phối và thỏa thuận khóa” làm Luận văn tốt nghiệp.


2
Nội dung Luận văn gồm có 4 chương :
Chương 1 : Tổng quan về phân phối và thỏa thuận khóa
Chương 2 : Một số thủ tục phân phối khóa
Chương 3 : Một số giao thức thỏa thuận khóa
Chương 4 : Mô phỏng các sơ đồ























3
CHƢƠNG I
TỔNG QUAN VỀ PHÂN PHỐI VÀ THỎA THUẬN KHÓA
1.1. Hệ mật mã
Định nghĩa:
Hệ mật mã được định nghĩa là một bộ năm (P, C, K, E, D) trong đó:
- P là tập hữu hạn các bản rõ có thể.
- C là tập hữu hạn các bản mã có thể.
- K là tập hữu hạn các khoá có thể.

- E là tập các hàm lập mã.
- D là tập các hàm giải mã.
- C = E
K
(P)
Với mỗi
kK
, có một hàm lập mã
,:
kk
e E e P C
và một hàm giải mã
,:
kk
d D d C P
sao cho d
k
(e
k
(x)) = x ,
xP



Hình 1.1 : Quá trình mã hóa và giải mã [1]
1.1.1. Hệ mật mã khóa bí mật (Hệ mật mã khóa đối xứng)

4
 Ƣu và nhƣợc điểm của hệ mật mã khóa đối xứng
 Hệ mật mã DES

1.1.2. Hệ mật mã khóa công khai
 Ƣu nhƣợc điểm của hệ mật mã khóa công khai
 Hệ mật RSA
1.2.Tổng quan về điều khiển khóa
Điều khiển khóa trong hệ mật gồm các chức năng sau:
- Tạo ra khóa mật mã
- Phân phối và chứng thực khóa mật
- Chứng thực khóa công cộng
- Sử dụng khóa
- Bảo quản khóa
- Thay thế khóa
- Hủy khóa
- Xóa khóa
1.2.1. Sơ đồ phân phối khóa
1.2.2. Trung tâm phân phối khóa
Trung tam phan phoi khoa
A1
A2
Ai
Aj
AN
K
1
K
2
K
i
K
j
K

N
E
K
i
(K
ij
)
E
K
j
(K
ij
)
Kenh mat

Hình 1.6. Sơ đồ phân phối khóa của Trung tâm

5
Trung tâm phân phối cung cấp cho tất cả các thành viên các khóa mật
khác nhau K
i
(i=1,2,…,N), các thành viên sử dụng khóa này chỉ liên lạc với
trung tâm mà thôi. Khóa mật chung giữa hai bên i và j được thực hiện như sau:
- Bên A
i
muốn liên kết với bên A
j
, thì A
i
chuyển đến trung tâm khóa liên

hệ của mình là k
ij
, khóa này được mã hóa bằng k
i
.
- Trung tâm nhận được bản mã từ A
i
sẽ giải mã bằng khóa k
i
, nhận thấy chỉ
thị cần liên kết A
i
với A
j
, thì trung tâm thực hiện mã hóa k
ij
bằng k
j
, sau
đó chuyển bản mã này đến A
j
.
- A
j
giải mã bằng khóa k
j
của mình và nhận được khóa k
ij
.
- Sau bước liên kết mật này thì mọi việc sau đó có thể thực hiện theo kênh

công cộng.
1.2.3. Phân phối và thỏa thuận khóa trong hệ mật
Chúng ta phân biệt giữa sơ đồ phân phối khóa và giao thức thỏa thuận
khóa:
- Phân phối khóa là một nhóm chọn khóa mật, sau đó truyền nó đến các
nhóm khác
- Thỏa thuận khóa là giao thức gồm tổ hợp các thao tác (lệnh) giữa hai hay
nhiều nhóm liên kết với nhau cùng thiết lập một khóa mật bằng cách liên lạc
trên kênh công khai. Trong sơ đồ thỏa thuận khóa, giá trị khóa được xác định
như hàm của các đầu vào do cả hai nhóm cung cấp.
1.3.Tổng kết chƣơng I





6
CHƢƠNG II
CÁC THỦ TỤC PHÂN PHỐI KHÓA
2.1 Phân phối khoá trƣớc
2.1.1 Sơ đồ phân phối khóa Blom
2.1.1.1. Xét trường hợp k =1















Hình 2.1: Sơ đồ phân phối khoá của Blom (k =1) [4]
1. Số nguyên tố p công khai, còn với mỗi người sử dụng U, phần tử r
U
 Z
P
là công
khai. Phần tử r
U
phải khác biệt.
2. TA chọn 3 phần tử ngẫu nhiên a, b, c  Z
P
(không cần khác biệt) và thiết lập đa
thức
f(x, y) = a + b(x + y) + cxy mod p.
3. Với người sử dụng U, TA tính đa thức:
g
U
(x) = f(x, r
U
) mod p
và truyền g
U
(x) đến U trên kênh an toàn.
Chú ý: g

U
(x) là đa thức tuyến tính theo x, nên có thể viết:
g
U
(x) = a
U
+ b
U
x , trong đó:
a
U
= a + b r
U
mod p
b
U
= b + c r
U
mod p
4. Nếu U và V muốn liên lạc với nhau, họ sẽ dùng khoá chung:
K
U, V
= K
V,U
= f(r
U
, r
V
) = a + b (r
U

+ r
V
) + cr
U
r
V
mod p
U tính K
U,V
như sau : f(r
U
, r
V
) = g
U
(r
V
)
V tính K
V,U
như sau : f(r
U
,r
V
) = g
V
(r
U
)



7
 Mức độ an toàn :
+ Sơ đồ Blom với k = 1 an toàn với một người sử dụng khác
Định lý 2.1: [4]
“Sơ đồ Blom với k =1 là an toàn không điều kiện trước bất kì người sử
dụng cá biệt nào”
+ Sơ đồ Blom với k = 1 không an toàn với liên minh của 2 người sử
dụng khác
2.1.1.2. Xét trường hợp k > 1
Để tạo lập sơ đồ phân phối khoá có độ an toàn chống lại được sự liên
minh của k người sử dụng, thay đổi duy nhất là ở bước 2. Khi đó TA sẽ dùng đa
thức f(x,y) có dạng sau:
,
00
( , ) mod
kk
ij
ij
ij
f x y a x y p




Trong đó:
,
(0 , 0 )
i j p
a Z i k j k    

và a
i,j
= a
j,i
với mọi i, j.
Các phần còn lại của giao thức như sơ đồ phân phối với k =1.
2.1.2. Sơ đồ phân phối khóa trước Diffie – Hellman







Hình 2.2: Sơ đồ phân phối khóa trƣớc của Diffie-Hellman [4]
- Số nguyên tố p và phần tử nguyên thủy
*
p
Z


công khai.
- V tính :
,
mod mod
U V V
a a a
U V U
K p b p




- U tính :
,
mod mod
U V U
a a a
U V V
K p b p





8
 Mức độ an toàn :
 Với loại tấn công chủ động, không cần lo lắng nhiều, vì:
Chữ kí của TA trên các dấu xác thực của người sử dụng ngăn chặn hiệu
quả W khỏi biến đổi bất kỳ thông tin nào trên dấu xác thực của người sử dụng
nào đó.
 Với loại tấn công thụ động, cũng không cần lo lắng nhiều, vì:
Người dùng W (khác U,V) “khó” có thể tính được khoá chung K
U,V
của
U,V. Kể cả khi biết
mod
U
a
p



mod
V
a
p

(song không phải a
U
cũng không phải
a
V
) thì cũng “khó” có thể tính được khoá chung của U và V là
,
mod
UV
aa
UV
Kp


.
Bài toán này được gọi là bài toán Diffie-Hellman.




Hình 2.3: Bài toán Diffie-Hellman [4]
2.2.Kerboros

Bài toán : I= (p,α,β,γ), trong đó p là số nguyên tố,

*
p
Z


là phần
tử nguyên thủy, còn
*
,
p
Z



Mục tiêu : Tính
log log
mod ( mod )pp







9




















Hình 2.4: Truyền khoá session trong Kerboros [4]
2.3. Tổng kết chƣơng II




1. U hỏi TA khóa session để liên lạc với V
2. TA chọn một khóa session ngẫu nhiên K, thời gian hệ thống T và thời
gian tồn tại L.
3. TA tính:
1
( , D( ), , )
U
K
m e K I V T L


2
( , D( ), , )
V
K
m e K I U T L

Sau đó gửi m
1
và m
2
đến U.
4. U dùng hàm giải mã
U
K
d
để tính K,T,L và ID(V) từ m
1
. Sau đó U tính :
3
( D( ), )
K
m e I U T

và gửi m
3
đến V cùng với bức điện m
2
mà U nhận được từ TA.
5. V dùng hàm giải mã
d

V
K
để tính K,T,L và ID(U) từ m
2
. Sau đó V dùng
d
K
để tính T và ID(U) từ m
3
. Sau đó V kiểm tra xem 2 giá trị của T và 2
giá trị của ID(U) có giống nhau không. Nếu đúng thì V tính :
4
( 1)
K
m e T

và gửi nó đến U.
6. U giải mã m
4
bằng e
K
và xác minh thấy kết quả bằng T+1



10
CHƢƠNG III
CÁC GIAO THỨC THỎA THUẬN KHÓA
3.1 Giao thức thỏa thuận khoá Diffie - Hellman
















Hình 3.1 : Trao đổi khóa Diffie – Hellman [4]
 Mức độ an toàn :
 Hạn chế : Không có xác thực danh tính U và V
Giao thức trao đổi khóa Diffie-Hellman này dễ bị tổn thương trước đối
phương tích cực – những người sử dụng cách tấn công “kẻ xâm nhập vào giữa
cuộc”. Đó là tình tiết của vở “The Lucy show”, trong đó nhân vật Vivian Vance
1. Người dùng U chọn a
U
ngẫu nhiên,
0 a 2
U
p  

U tính :
mod
U

a
p


và gửi nó đến V.
2. Người dùng V chọn a
V
ngẫu nhiên,
0 a 2
V
p  

V tính :
mod
V
a
p


và gửi nó đến U.
3/ U tính khoá :
( ) dp
VU
aa
K mo



4/ V tính khoá:
( ) dp

UV
aa
K mo



Hai giá trị khoá bằng nhau!


11
đang dùng bữa tối với người bạn, còn Lucille Ball đang trốn dưới bàn. Vivian
và người bạn của cô đang cầm tay nhau dưới bàn. Lucy cố tránh bị phát hiện đã
nắm lấy tay của cả hai người, còn hai người trên bàn vẫn nghĩ rằng họ đang
cầm tay nhau.
Cuộc tấn công kiểu “kẻ xâm nhập vào giữa cuộc” trên giao thức trao đổi
khoá Diffie-Hellman hoạt động cũng như vậy. W sẽ ngăn chặn các bức điện
trao đổi giữa U và V và thay thế bằng các bức điện của anh ta theo như sơ đồ
dưới đây :
Tại thời điểm cuối giao thức, U thiết lập thực sự khóa mật
'
UV
aa

cùng với
W, còn V thiết lập khóa mật
'
UV
aa

với W. Khi U cố giải mã bức điện để gửi cho

V, W cũng có khả năng giải mã nó song V thì không thể, (tương tự tình huống
nắm tay nhau nếu V gửi bức điện cho U).
 Cải tiến: Bổ sung xác thực danh tính U và V
Điều cơ bản đối với U và V là bảo đảm rằng, họ đang trao đổi khoá cho
nhau mà không có W. Trước khi trao đổi khoá, U và V có thể thực hiện những
giao thức tách bạch để thiết lập danh tính cho nhau.
3.2. Giao thức trạm tới trạm STS
STS là giao thức 3 lần truyền tin. Thông tin được trao đổi như sau:
U
a


, ( , )
V V U
a a a
V
sig
  

U V
( , )
UV
aa
U
sig




12























Hình 3.2 Giao thức trạm tới trạm đơn giản [4]
 Mức độ an toàn:
Giao thức có thể bảo vệ trước tấn công của “kẻ xâm nhập giữa cuộc”
1. U chọn số ngẫu nhiên a
U
,
0 a 2
U

p  

U tính:
mod
U
a
p


và gửi nó đến V.
2. V chọn số ngẫu nhiên a
V
,
0 a 2
V
p  

V tính:
mod
V
a
p


Sau đó tính :
( ) mod
UV
aa
Kp





( , )
VU
aa
VV
y sig



3. V gửi (C(V),
V
a

,y
V
) đến U.
4. U tính :
( ) mod
VU
aa
Kp



và dùng ver
V
xác minh y
V

và xác minh C(V) nhờ ver
TA
U tính :
( , )
UV
aa
UU
y sig



và gửi (C(U),y
U
) đến V
5. V xác minh y
U
bằng ver
U
và xác minh C(U) bằng ver
TA



13
+ Giống như giao thức phân phối khóa Diffie-Hellman, W sẽ chặn bắt
U
a


thay nó bằng

'
U
a

. Sau đó W nhận được
'
, ( , )
V V U
a a a
V
sig
  
từ V
+ W cũng muốn thay
V
a

bằng
'
V
a

. Điều này có nghĩa là W cũng phải thay
'
( , )
VU
aa
V
sig


bằng
'
( , )
VU
aa
V
sig

. Đáng tiếc W khó thể tính chữ ký của V
trên
'
,
VU
aa

vì không biết thuật toán kí sig
V
của V.
+ Tương tự, W không thể thay
'
( , )
UV
aa
U
sig

bằng
'
( , )
UV

aa
U
sig

do W
không biết thuật toán kí của U.
Giao thức STS không đưa ra sự khẳng định khóa, tức là y
V
được gửi tới
U, y
U
được gửi tới V nhưng chưa bảo đảm thật an toàn.
Tuy nhiên, có thể bảo đảm an toàn y
V
và y
U
bằng cách:
+ Mã hoá y
V
bằng khoá K:
( ( , ))
VU
aa
V K V
y e sig



+ Mã hoá y
U

bằng khoá K:
( ( , ))
UV
aa
U K U
y e sig



3.3. Các giao thức thoả thuận khoá MTI







14










Hình 3.3: Giao thức thỏa thuận khóa MTI [4]
 Mức độ an toàn :

Đây là một mối nguy hiểm có thể xem xét: Khi không dùng chữ kí trong
suốt quá trình thực hiện giao thức, có thể xuất hiện tình huống không có sự bảo
vệ nào trước tấn công xâm nhập vào điểm giữa. Quả thực, có khả năng W có
thể chọn các giá trị mà U và V gửi cho nhau. Dưới đây mô tả một tình huống
quan trọng có thể xuất hiện:

( ),
U
r
CU


'
( ),
U
r
CU



U W V

'
( ),
V
r
CV


( ),

V
r
CV




1. Người dùng U chọn r
U
ngẫu nhiên,
02
U
rp  

Và tính :
mod
U
r
U
sp


. U gửi (C(U),s
U
) đến V
2. Người dùng V chọn r
V
ngẫu nhiên,
02
V

rp  

Và tính :
mod
V
r
V
sp


. V gửi (C(V),s
V
) đến U
3. U tính khoá :
dp
UU
ar
VV
K s b mo

Tại đây, U nhận được giá trị b
V
từ C(V).
- V tính khóa :
dp
VV
ar
UU
K s b mo


Tại đây, V nhận được giá trị b
U
từ C(U)


15
Trong trường hợp này, U và V sẽ tính các khoá khác nhau:
+ U tính:
'
mod
U V V U
r a r a
Kp




Trong khi đó V tính:
'
mod
U V V U
r a r a
Kp




Tuy nhiên, W không thể tính toán ra khoá của U và V vì chúng đòi hỏi phải biết số
mũ mật a
U

và a
V
tương ứng. Thậm chí ngay cả khi U và V tính ra các khoá khác nhau (mà dĩ
nhiên là không dùng chúng) thì W cũng không thể tính được khoá nào trong số đó.
3.4. Thoả thuận khoá dùng các khoá tự xác nhận







Hình 3.4: Nhận khoá tự xác nhận từ TA [4]







1.U chọn số mũ mật a
U
và tính:
mod
U
a
U
bn




2.U đưa a
U
và b
U
cho TA
3.TA tính:
p
U
= (b
U
- ID(U))
d
mod n
4.TA đưa p
U
cho U


16















Hình 3.5: Giao thức thoả thuận khoá của Girault [4]
 Mức độ an toàn :
Xem xét cách các khoá tự xác thực bảo vệ chống lại một kiểu tấn công:
Vì các giá trị b
U
, p
U
và ID(U) không được TA kí nên không có cách nào
để ai đó xác minh trực tiếp tính xác thực của chúng. Giả thiết thông tin này bị
W - người muốn giả danh U - giả mạo (tức là không hợp tác với TA để tạo ra
nó). Nếu W bắt đầu bằng ID(U) và giá trị giả b

U
. Khi đó không có cách nào để
cô ta tính được số mũ a

U
tương ứng với b

U
nếu bài toán logarithm rời rạc khó
giải. Không có a

U
, W không thể tính được khoá.
Tình huống tương tự nếu W hoạt động như kẻ xâm nhập giữa cuộc. W sẽ

có thể ngăn được U và V tính ra khoá chung, song W không thể đồng thời thực
hiện các tính toán của U và V. Như vậy, sơ đồ cho khả năng xác thực ngầm như
giao thức MTI.
1. U chọn r
U
ngẫu nhiên và tính
mod
U
r
U
sn



2. U gửi ID(U), p
U
và s
U
cho V.
3. V chọn r
V
ngẫu nhiên và tính :
s
V
=
n
V
r
mod



4. V gửi ID(V), p
V
và s
V
cho U
5. U tính:
K =
nVIDps
UU
r
e
V
a
V
mod))(( 

Và V tính:
K =
nUIDps
vV
r
e
U
a
U
mod))(( 




17
3.5. Ứng dụng thỏa thuận khóa Diffie-Hellman vào PGPfone
PGPfone là một phần mềm cho phép ta chuyển một máy tính thành một
máy mã thoại. Nó sử dụng các thủ tục nén tiếng nói và các thủ tục mã hóa để
cho ta khả năng thực hiện hội thoại mật trong thời gian thoại.
PGPfone lấy tín hiệu tiếng nói từ microphone sau đó số hóa liên tục, nén,
mã hóa và gửi qua modem tới một người khác cũng dùng PGPfone. Mọi thủ tục
nén tiếng nói và mã hóa được thỏa thuận một cách linh động và trong suốt
nhằm cung cấp một giao diện sử dụng tự nhiên tương tự như sử dụng điện thoại
thông thường. Các thủ tục mật mã khóa công khai được dùng để thỏa thuận
khóa mà không cần một kênh mật.
PGPfone không cần bất cứ một kênh mật nào để trao đổi khóa trước,
trước khi tiến hành đàm thoại. Hai người đàm thoại sẽ thỏa thuận khóa của họ
bằng cách dùng thủ tục trao đổi khóa Diffie-Hellman nhằm không để lộ một
chút thông tin nào để thám mã sử dụng và cho phép hai bên đàm thoại sử dụng
khóa chung để mã hóa và giải mã dòng tín hiệu thoại. PGPfone sử dụng chữ ký
sinh trắc học (giọng nói) để xác thực việc trao đổi khóa.
 Kiểm tra chữ ký sinh trắc học trong PGPfone:
PGPfone sẽ chỉ thị một số từ đặc biệt để xác thực cuộc gọi và ta có thể
dùng những từ này như một phương tiện đảm bảo rằng không một ai có thể
nghe trộm cuộc gọi. Ta phải đọc to những từ này cho bên nghe đàm thoại và họ
phải đọc chúng trở lại cho ta để xác định rằng cả hai bên cùng có một dãy xác
thực được chỉ thị trên màn hình. Nếu các từ giống nhau ở cả hai đầu và ta xác
nhận rằng đó là giọng của người quen đang đọc các từ xác thực thì ta đã có lý
do xác đáng để tin rằng cuộc gọi là an toàn.
Nếu các từ không phù hợp hoặc âm thanh không giống với giọng của
người quen đang đọc các từ này thì có thể có “người xâm nhập giữa cuộc” đã

18
xuất hiện trong PGPfone hoặc đã gắn một thiết bị thám mã tinh vi để chen vào

cuộc gọi.
Danh sách các từ xác thực đặc biệt mà PGPfone sử dụng đã được chọn kỹ
lưỡng để có thể phân biệt rõ về ngữ âm và dễ hiểu mà không có sự nhập nhằng
về ngữ âm.
 Thỏa thuận số nguyên tố Diffie-Hellman trong PGPfone
Thủ tục thỏa thuận khóa Diffie-Hellman yêu cầu cả hai bên phải thỏa
thuận cùng sử dụng một số nguyên tố p và một phần tử nguyên thủy α.
PGPfone dùng thống nhất α=2 để tăng tốc độ tính toán.
Thủ tục Diffie-Hellman dựa trên sự khó khăn của việc tìm các logarit rời
rạc theo modulo của một số nguyên tố. Đây là khó khăn đối với hầu hết các số
nguyên tố. Nhưng bằng tìm kiếm có cân nhắc có thể tạo ra các số nguyên tố đã
được xử lý để khiến bài toán trở nên dễ dàng hơn. Hiển nhiên là ta sẽ phải tránh
dùng các số nguyên tố như vậy. Tuy nhiên, không có một yêu cầu riêng nào để
giữ bí mật số nguyên tố hoặc thay đổi nó một cách thường xuyên. Bởi vậy
PGPfone coi rằng mỗi bên trước hết sẽ tạo ra tất cả các số nguyên tố mà sẽ
được dùng bằng một thuật toán chung. Như vậy thì mỗi bên có thể biết được
các số nguyên tố tốt.
Lý do chính để phải có nhiều số nguyên tố là cần phải có sự cân đối giữa
bảo mật và tốc độ. Tuy nhiên, có một số người thích dùng các số nguyên tố bí
mật. Các số này không bao giờ bị lộ trên kênh. Điều này sẽ làm bài toán của
thám mã khó hơn đôi chút. PGPfone cho phép hai bên hình dung ra các số
nguyên tố mà họ có chung bằng cách trao đổi các hàm băm của chúng.
Tuy nhiên, sơ đồ này vẫn còn để lộ cho bất kỳ người nào trên kênh một
loại mã định danh (hàm băm) của các số nguyên tố chưa biết. Nếu ta có một số

19
nguyên tố bí mật đó thì một ai đó nghe trộm có thể phán đoán rằng chúng ta có
các mối liên hệ chặt chẽ cho dù chúng ta không gọi nhau thường xuyên.
Để tránh khỏi kiểu phân tích đường truyền như vậy, PGPfone đưa thêm
“mầm” vào các hàm băm của số nguyên tố được gửi. Mỗi bên sẽ chọn một giá

trị ngẫu nhiên 8 bytes và băm nó vào mỗi số nguyên tố. Mầm này được gửi rõ
cùng với các hàm băm của các số nguyên tố.
Ta có thể sử dụng mầm để băm các số nguyên tố mà ta có và so sánh hàm
băm với danh sách mà ta đã nhận được. Nếu ta thấy có sự phù hợp thì bên gửi
cho ta cũng có số nguyên tố đó. Cũng tương tự như vậy đối với bên liên lạc với
ta. Thủ tục đơn giản như sau : Tôi gửi cho bạn mầm và các hàm băm và bạn gửi
trả lời tôi mầm và các hàm băm của bạn. Cả hai yêu cầu có thể gửi đồng thời và
rồi lại gửi trả lời lặp lại (thừa), tuy nhiên điều này là vô hại.
Công việc còn lại là chọn số nguyên tố trong các số mà hai bên đã có mà
cả hai bên đều có một số sẽ sử dụng. Thuật toán đơn giản như sau:
Mỗi bên gửi các hàm băm của các số nguyên tố của mình theo thứ tự
giảm dần của mức ưu tiên. Như vậy, số nguyên tố mà hàm băm của nó được liệt
kê đầu tiên là số được ưu tiên nhất, số nguyên tố được liệt kê tiếp sau là số được
ưu tiên thứ hai, … Mỗi bên có thể tìm trong các số nguyên tố mà cả hai đều sử
dụng số nào là số mà bên này ưu tiên nhất (được liệt kê đầu tiên trong danh
sách) và số nào là số bên kia ưa thích nhất. Sau đó hai bên chỉ cần chọn giữa hai
số này. Để bắt tay bí mật, số được chọn là số có giá trị lớn hơn.
 Thỏa thuận khóa Diffie-Hellman trong PGPfone
Một khi hai bên liên lạc đã thỏa thuận một số nguyên tố sử dụng p thì bên
gọi B sẽ chọn một số ngẫu nhiên bí mật X
B
và tính :
mod
B
X
B
Yp





20
B sẽ băm Y
B
và gửi hàm băm này cho bên gọi A.
Khi A thu được gói này, A sẽ chọn một số ngẫu nhiên bí mật X
A
rồi tính :
mod
A
X
A
Yp



A sẽ băm Y
A
và gửi hàm băm này cho bên B.
B sẽ gửi trả lời bằng cách gửi Y
B
và A sẽ kiểm tra xem hàm băm có phù
hợp không. Tương tự, A sẽ gửi Y
A
của mình và B sẽ kiểm tra xem hàm băm có
phù hợp không. (α được chọn là phần tử nguyên thủy của trường GF(p))
Sau khi các thủ tục trên đã hoàn tất, cả hai bên sẽ tính khóa:
X X . X
AB
( ) ( )

B A B A B B A A
X X X X X
K Y Y
  
    

3.6.Tổng kết chƣơng III















21
CHƢƠNG IV
CHƢƠNG TRÌNH C TÍNH TOÁN KHÓA CHUNG GIỮA CÁC
CẶP NGƢỜI DÙNG
4.1. Sử dụng sơ đồ phân phối khóa trƣớc BLOM với k = 1
- Yêu cầu phần mềm: Turbo C++
- Các thành phần của chương trình:
+ Input: - Số nguyên tố p

- Các phần tử công khai
- Các phần tử ngẫu nhiên
+ Output: Khóa tương ứng giữa những cặp người dùng.
4.2. Sử dụng sơ đồ phân phối khóa trƣớc BLOM với k > 1
- Yêu cầu phần mềm: Tubo C++
- Các thành phần của chương trình:
+ Input: - Số lượng người dùng, hệ số k, số nguyên tố p
- Các phần tử công khai và hệ số a ngẫu nhiên bí mật.
+ Output: Khóa tương ứng giữa những cặp người dùng.
4.3. Sử dụng sơ đồ phân phối khóa trƣớc Diffie-Hellman
- Yêu cầu phần mềm: Turbo C++
- Thành phần của chương trình gồm :
+ Input: - Số nguyên tố p
- α

22
- Số mũ bí mật a
U
, a
V

+ Output: Khóa chung của U và V
4.4. Sử dụng giao thức thỏa thuận khóa MTI
- Yêu cầu phần mềm: Turbo C++
- Thành phần của chương trình gồm :
+ Input: - Số nguyên tố p
- α
- Số mũ bí mật a
U
, a

V

- Số ngẫu nhiên r
U
, r
V

+ Output: Khóa chung của U và V
















23

KẾT LUẬN
Vấn đề nghiên cứu trong luận văn rất cần thiết trong nghiên cứu về mật
mã, và sử dụng chúng trong các ứng dụng, đặc biệt là ngày nay khi mà hầu hết
các hoạt động trao đổi thông tin của con người đều được thực hiện thông qua

mạng truyền thông công cộng như Internet. Trong bối cảnh đó kể cả khi hệ
thống sử dụng phương pháp mã hóa công khai thì việc quản lý và điều phối việc
sử dụng khóa vẫn cực kỳ cần thiết. Còn nếu hệ thống sử dụng thuật toán mã hóa
đối xứng thì việc trao đổi, phân phối, chuyển vận khóa một cách an toàn cho hai
bên là yêu cầu tất yếu.
 Kết quả đạt đƣợc của Luận văn
- Tìm hiểu, nghiên cứu và phân tích các thủ tục phân phối, các giao thức
thỏa thuận khóa
- Đưa ra các chương trình tính toán khóa giữa các người dùng khi sử dụng
các phương thức phân phối và thỏa thuận khóa đã nghiên cứu
Do thời gian nghiên cứu có hạn, nên luận văn mới chỉ dừng lại ở bước
viết chương trình tính khóa đơn giản để bản thân có thể kiểm chứng lại các lý
thuyết đã nghiên cứu, chưa xây dựng được chương trình mô phỏng hoàn chỉnh
một hệ mật với các cách phân phối và thỏa thuận khóa cùng các kiểu tấn công
của thám mã.
 Hƣớng phát triển của Luận văn
- Nghiên cứu thêm các thủ tục và giao thức trên khi đưa vào thực tế nhằm
làm tăng thêm độ an toàn và tin cậy cho hệ mật.
- Nghiên cứu các khả năng tấn công và các biện pháp để tránh được các
tấn công của thám mã, bảo vệ khóa cũng như bảo đảm sự an toàn cho hệ
thống.

×