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

Tìm hiểu về trao đổi và thoả thuận khoá, phân phối khóa diffie hellman

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 (498.45 KB, 21 trang )

KHOA CƠNG NGHỆ THƠNG TIN
-----***-----

CƠ SỞ AN NINH MẠNG
ĐỀ TÀI
Tìm hiểu về trao đổi và thoả thuận khoá, phân phối khóa DiffieHellman

Hà Nội – 2021


LỜI MỞ ĐẦU
Trao đổi thông tin luôn là nhu cầu cần thiết của con người, đặc biệt là trong cuộc sống
hiện đại ngày nay khi mà mạng máy tính và Internet phát triển một cách mạnh mẽ và giữ vai
trò quan trọng trong mọi lĩnh vực của đời sống xã hội như: chính trị, quân sự, học tập, mua
sắm, kinh doanh, … Tất cả những thông tin liên quan đến những cơng việc này đều được máy
vi tính quản lý và truyền đi trên hệ thống mạng. Đối với những thơng tin bình thường thì khơng
ai chú đến, nhưng đối với những thơng tin mang tính chất sống cịn đối với một cá nhân hay
một tổ chức thì vấn đề bảo mật thông tin là rất quan trọng và được đặt lên hàng đầu. Chính vì
vậy nên rất nhiều tổ chức, cá nhân đã nghiên cứu, tìm kiếm và đưa ra rất nhiều giải pháp bảo
mật thơng tin. Trong đó giao thức Diffie - Hellman rất thích hợp trong truyền thơng tin giữ liệu
và có tính bảo mật khá cao.
Bài Tiểu luận do nhóm sinh viên chúng em biên soạn dựa trên những kiến thức mà thầy
ThS. Đặng Quốc Trung đã chỉ dạy và thơng qua sự tìm hiểu, nghiên cứu tích cực của chúng em.
Tiểu luận của chúng em đi sâu vào trình bày giao thức thỏa thuận khóa Diffie Hellman. Mặc dù
chúng em đã rất cố gắng song vẫn khơng tránh khỏi một số thiếu sót mong thầy đóng góp ý
kiến để chúng em hồn thiện hơn tiểu luận này.

2
2



MỤC LỤC

DANH MỤC HÌNH VẼ
HÌNH 1.2.3.1: GIAO THỨC THOẢ THUẬN KHỐ.
HÌNH 1.2.4.1: TRƯỚC KHI PHA MÀU
HÌNH 1.2.4.2: BẮT ĐẦU TRỘN MÀU BÍ MẬT VỚI KHƠNG KHAI
HÌNH 1.2.4.3: ALICE VÀ BOB GỬI MÀU VỪA TRỘN CHO NHAU
HÌNH 1.2.4.4: KẾT QUẢ
HÌNH 1.3.1: GIAO THỨC TRAO ĐỔI KHỐ
HÌNH 1.4.1: KHỐ BẤT ĐỐI XỨNG

3
3


ĐỀ TÀI: Tìm hiểu về trao đổi và thoả thuận khố, phân phối khóa Diffie-Hellman.
1. TRAO ĐỔI VÀ THOẢ THUẬN KHỐ, PHÂN PHỐI KHĨA DIFFIE-HELLMAN.
1.1. Giới thiệu về giao thức Diffie-Hellman.
Thuật toán Diffie-Hellman được phát triển vào năm 1976 bởi Whitfield Diffie và Martin
Hellman. Vì vậy, cái tên Diffie Hellman. Ngồi ra, đi theo tên thuật tốn này khơng được sử
dụng để mã hóa dữ liệu, thay vào đó nó được sử dụng để tạo khóa bí mật giữa người gửi và
người nhận.
Trước thời kì này, hầu hết các thuật toán mã hoá hiện đại đều là những thuật toán khố đối
xứng, trong đó cả người gửi và người nhận phải dùng chung 1 khoá, tức khoá dùng trong thuật
toán mật mã và cả hai người đều phải giữ bí mật về khoá này. Tất cả các máy điện cơ dùng
trong thế chiến II, kể cả mã Caesar và mã Atbash, và về bản chất mà nói thì hầu hết các hệ
thống mã sẽ được dùng trong suốt quá trình lịch sử đều thuộc về loại này.
Do nhu cầu an ninh, khoá cho mỗi một hệ thống như vậy nhất thiết phải được trao đổi
giữa các bên liên lạc bằng một cách thức an toàn nào đấy, trước khi họ sử dụng hệ thống
(thường được gọi là “thông qua một kênh an tồn”), ví dụ như việc sử dụng 1 người đưa thưa

đáng tin cậy với một cặp tài liệu được khoá vào cổ tay bằng cắp khoá tay, hay bằng cuộc giao
lưu mặt đối mặt,… Vấn đề này chưa bao giờ được xem là dễ dàng, và nó trở thành một việc
gần như khơng thể kiểm sốt được khi số lượng người tham gia tăng lên, hay khi người dùng
khơng cịn các kênh an tồn để trao đổi kháo nữa. Cụ thể là mỗi một cặp mạng lưới truyền
thông cần phải có một khố riêng nếu, theo như thiết kế hệ thống mật mã không một người thứ
ba nào, kể cả đó là một người dùng được phép giải mã thông điệp. Hệ thống thuộc loại này gọi
là hệ thống dùng chìa khố mật, hoặc hệ thống mật mã hoá dùng khoá đối xứng. Hệ thống trao
đổi khoá Diffie-Hellman tạo điều kiện cho các hoạt động trong các hệ thống trở nên dễ dàng rất
nhiều, đồng thời cũng an tồn hơn.
Mặc dù, bản thân thuật tốn là một giao thức chọn khố nặc danh nhưng nó đã tạo ra một
cơ sở cho các giao thức xác thực khác nhau khá hoàn hảo.

4
4


Mã hóa bất đối xứng yêu cầu truyền khóa riêng giữa người gửi và người nhận dữ liệu.
Một trong những phần đầy thách thức với Mã hóa bất đối xứng là việc chuyển khóa bí mật an
tồn và an tồn giữa người gửi và người nhận. Khơng ai nên có quyền truy cập hoặc chặn khóa
bí mật trong q trình chuyển. Việc chuyển giao hay đúng hơn là tạo ra khóa bí mật ở cả hai
bên được tạo điều kiện bởi thuật toán Diffie-Hellman.
1.2. Giao thức thoả thuận khoá Diffie-Hellman.
1.2.1. Khái niệm thoả thuận khoá
Trong mật mã học, giao thức thỏa thuận khóa là một giao thức theo đó hai hoặc nhiều bên
có thể trao đổi khố với nhau được thiết lập một cách tự do giữa bất cứ hai người nào khi có
nhu cầu trao đổi thơng tin.
1.2.2. Giao thức thoả thuận khố Diffie-Hellman.
Trao đổi khóa Diffie-Hellman là phương pháp đầu tiên được sử dụng rộng rãi để phát
triển và trao đổi khóa một cách an tồn qua một kênh khơng an tồn.
Làm thế nào bạn có thể trao đổi thơng tin một cách an tồn với ai đó nếu bạn chưa có cơ

hội chia sẻ khóa trước thời hạn? Trao đổi khóa Diffie-Hellman là cơ chế được sử dụng công
khai đầu tiên để giải quyết vấn đề này. Thuật toán cho phép những người chưa bao giờ gặp
nhau trước đây tạo khóa được chia sẻ một cách an tồn, ngay cả trên một kênh khơng an tồn
mà đối thủ có thể đang theo dõi.
Phương pháp này khơng cần có sự can thiệp của TA (cơ quan uỷ thác) làm nhiệm vụ điều
hành hoặc phân phối khoá.
1.2.3. Cách thiết lập giao thức thoả thuận khoá Diffie-Hellman.
Cơ bản, giao thức thỏa thuận khóa Diffie hellman được thực hiện như sau: Giả sử hai bên
liên lạc A và B muốn thực hiện trao đổi khóa để mã hóa thơng tin truyền trên kênh công cộng,
trước tiên A và B sẽ thống nhất sử dụng chung một nhóm cyclic hữu hạn G và một yếu tố tạo ra
g trong G. Sau đó A chọn một số a và giữ bí mật số a này. B cũng chọn một số b và giữ bí mật
số b.
Tiếp theo A tính và gửi cho B, B tính và gửi cho A.
5
5


Trên cơ sở đó A tính được khố:
B tính được khố:
Do đó A và B có chung giá trị . Giá trị này có thể dùng để dẫn xuất ra các khóa phiên bí
mật sử dụng cho các thuật tốn mã hóa khóa đối xứng. Giao thức thỏa thuận khóa Diffie
Hellman nguyên thủy được thể hiện như sau:

Hình 1.2.3.1: Giao thức thoả thuận khố.
 Ví dụ minh họa:
A và B thống nhất với nhau chọn số nguyên tố p = 17 và g=4.
Sau đó A chọn một số a = 3 và giữ bí mật số a này.
+ A tính
+ A gửi XA = 13 cho B
B cũng chọn một số b = 6 và giữ bí mật số b.

+ B tính
+ B gửi XB = 16 cho A
A nhận được XB = 16 sau đó tính tốn khố, sử dụng công thức sau:
+
6
6


B nhận được XA = 13 sau đó tính tốn khố, sử dụng cơng thức sau:
+
Như vậy ta có thể thấy, cả hai bên đã kết thúc với cùng một kết quả . Đây là bí mật chung,
mà chỉ A và B mới biết. Sau đó hai người có thể sử dụng điều này để thiết lập khoá mã hoá đối
xứng, cho phép họ gửi thông tin giữa hai người một cách ann toàn theo cách mà chỉ hai người
họ mới có thể truy cập nó.
1.2.4. Sơ đồ thoả thuận khố Diffie-Hellman.
Giao thức trao đổi khóa Diffie-Hellman được sử dụng để khắc phục nhược điểm của các
hệ mật khóa đối xứng. Bằng cách cung cấp một quy trình kết hợp với việc sử dụng các bài tốn
khó, giao thức cho phép 2 bên thỏa thuận và xác định khóa chung mà khơng cần truyền khóa
qua mơi trường mạng Internet.
Cụ thể giao thức Diffie-Hellman hoạt động thế nào thì chúng ta sẽ cùng xem ví dụ sau,
câu chuyện về Bob và Alice (Tương ứng với A và B) họ sẽ chơi trò "pha màu".
Đầu tiên, bản thân Bob và Alice đều tự chọn cho mình 1 màu bí mật, khơng ai ngồi chính
bản thân họ biết về màu đó. Ngồi mơi trường mạng Internet cơng khai thì có sẵn 1 màu, cơng
khai, và ai cũng biết màu đó là gì. Ở đây, Alice chọn cho mình màu đỏ, Bob chọn màu xanh lá,
cịn màu cơng khai ngồi Internet là màu vàng.

7
7



Hình 1.2.4.1: Trước khi pha màu
Alice và Bob sẽ trộn màu bí mật của họ với màu cơng khai:

8
8


Hình 1.2.4.2: Bắt đầu trộn màu bí mật với khơng khai

9
9


Giờ thì Bob và Alice đã sẵn sàng cho việc thỏa thuận khóa. Họ sẽ gửi màu vừa trộn được
ở trên cho nhau qua môi trường Internet. Tất nhiên giờ kẻ xấu cũng có thể nhận được 2 màu
mới này, nhưng chẳng sao cả.

Hình 1.2.4.3: Alice và Bob gửi màu vừa trộn cho nhau

10
10


Mỗi người sẽ trộn màu bí mật từ đầu của mình, với màu vừa nhận được. Và màu trộn ra
cuối cùng này chính là màu chung của cả 2.

Hình 1.2.4.4: Kết quả
11
11



1.3. Giao thức trao đổi khoá Diffie-Hellman
Hệ phân phối khoá Diffie-Hellman nói trong mục trước có thể dễ dàng biến đổi thànhmột
giao thức trao đổi (hay thoả thuận) khoá trực tiếp giữa những người sử dụng màkhơng cần có
sự can thiệp của một TA làm nhiệm vụ điều hành hoặc phân phối khố.Một nhóm bất kỳ người
sử dụng có thể thoả thuận cùng dùng chung một số nguyên tốlớn p và một phần tử nguyên thuỷ
α theo mod p, hai người bất kỳ trong nhóm A và Bmỗi khi muốn truyền tin bảo mật cho nhau
có thể cùng thực hiện giao thức sau đây để trao đổi khoá:
1. A chọn ngẫu nhiên số a (0 ≤ a ≤p -2), giữ bí mật a, tính gửi XA cho B.
2. Tương tự, B chọn ngẫu nhiên số b (0 ≤ b ≤ p -2), giữ bí mật b, tính gửi XB cho A.
3. A và B cùng tính được khố chung:

Hình 1.3.1: Giao thức trao đổi khoá

12
12


Giao thức trao đổi khố Diffie-Hellman có các tính chất sau:
- Giao thức là an toàn đối với việc tấn công thụ động, nghĩa là một người thứ ba, dù biết
XA và XB sẽ khó mà biết được .
+ Ta biết rằng bài tốn “biết XA và XB tìm ” chính là bài tốn Diffie-Hellman ta có nói
rằng bài tốn đó tương đương với bài tốn phá mật mã El Gamal. Bây giờ ta chứng minh điều
này. Phép mật mã El Gamal với khoá K = (p, g, c, s), trong đó s = , cho ta từ một bản rõ x và
một số ngẫu nhiên k ∈ 1 lập được mật mã:
(x, k) = (,)
Trong đó: =
Và phép giải mã được cho bởi: (,) = mod p
Giả sử ta có thuật tốn A giải bài tốn Diffie-Hellman. Ta sẽ dùng A để phá mã ElGamal
như sau: Cho mật mã (,). Trước hết, dùng A cho = và s = , ta được:

A (, s) = =
và sau đó ta thu được bản rõ x từ và y2 như sau:

Ngược lại, giả sử có thuật tốn B phá mã El Gamal, tức là:
B (p, g, c, s,,)= x = mod p
Áp dụng B cho s = XA,= XB,= 1, ta được:
== tức là giải được bài toán Diffie-Hellman.
- Giao thức là khơng an tồn đối với việc tấn cơng chủ động bằng cách đánh tráo giữa
đường, nghĩa là một người thứ ba C có thể đánh tráo các thơng tin trao đổi giữa A và B, chẳng
hạn, C thay mà A định gửi cho B bởi ,và thay mà B định gửi cho A bởi , như vậy, sau khi thực
hiện giao thức trao đổi khoá, A đã lập một khoá chung với C mà vẫn tưởng là với B, đồng thời
B đã lập một khoá chung với C mà vẫn tưởng là với A; C có thể giải mã mọi thơng báo mà A
tưởng nhầm là mình gửi đến B, cũng như mọi thông báo mà B tưởng nhầm là mình gửi đến A!
13
13


Một cách khắc phục kiểu tấn cơng chủ động nói trên là làm sao để A và B có thể kiểm
chứng để xác thực tính đúng đắn của các khố công khai XA và XB. Đưa vào giao thức trao đổi
khố Diffie-Hellman thêm vai trị điều phối của một TA để được một hệ phân phối khoá DiffieHellman.
Trong hệ phân phối khoá Diffie-Hellman, sự can thiệp của TA là rất yếu, thực ra TA chỉ
làm mỗi một việc là cấp chứng chỉ xác nhực khố cơng khai cho từng người dùng chứ khơng
địi hỏi biết thêm bất cứ một bí mật nào của người dùng. Tuy nhiên, nếu chưa thoả mãn với vai
trị hạn chế đó của TA, thì có thể cho TA một vai trò xác nhận yếu hơn, khơng liên quan gì đến
khố, chẳng hạn như xác nhận thuật tốn kiểm thử chữ ký của người dùng, cịn bản thân các
thơng tin về khố (cả bí mật và cơng khai) thì do những người dùngtrao đổi trực tiếp với nhau.
Với cách khắc phục có vai trị rất hạn chế đó của TA, ta có được giao thức ở phần sau.
1.4. Mã hố bất đối xứng
Thuật tốn mã hóa bất đối xứng phổ biến nhất là Thuật toán Diffie-Hellman và RSA.
Mã hóa bất đối xứng là một kỹ thuật mã hóa sử dụng một cặp khóa (khóa riêng và khóa

chung) để mã hóa và giải mã. Mã hóa bất đối xứng sử dụng khóa chung để mã hóa và khóa
riêng để giải mã. Khóa cơng khai có sẵn miễn phí cho bất cứ ai quan tâm đến ing. Khóa riêng
được giữ bí mật với người nhận của. Bất kỳ thứ gì được mã hóa bởi khóa chung và thuật toán,
đều được giải mã bằng cùng một thuật toán và khóa riêng phù hợp của khóa chung tương ứng.

Hình 1.4.1: Khố bất đối xứng
Việc thực thi thuật tốn mã hóa bất đối xứng là chậm. Vì thuật tốn mã hóa bất đối xứng
có bản chất phức tạp và có gánh nặng tính tốn cao. Do đó, mã hóa bất đối xứng được sử dụng
cho trao đổi chìa khóa một cách an tồn thay vì truyền dữ liệu số lượng lớn. Mã hóa bất đối

14
14


xứng thường được sử dụng để thiết lập kênh bảo mật trên phương tiện khơng bảo mật như
internet.
Mã hóa đối xứng ln sử dụng một khóa duy nhất để mã hóa và giải mã. Tuy nhiên, trong
mã hóa bất đối xứng, er sử dụng khóa chung cho mã hóa và khóa riêng để giải mã.
Việc thực hiện các thuật tốn mã hóa bất đối xứng chậm hơn so với thuật tốn mã hóa đối
xứng. Điều này là do các thuật tốn mã hóa bất đối xứng phức tạp hơn và có gánh nặng tính
tốn cao.
Các thuật tốn mã hóa đối xứng được sử dụng phổ biến nhất là DES, 3DES, AES và RC4.
Mặt khác, Diffie-Hellman và RSA là thuật toán phổ biến nhất được sử dụng để mã hóa bất đối
xứng.
Mã hóa bất đối xứng thường được sử dụng để trao đổi các khóa bí mật trong khi đó, mã
hóa đối xứng được sử dụng để trao đổi một lượng lớn dữ liệu.
1.5. Các phương pháp phân phối khoá Diffie-Hellman.
Hiện nay có hai phương pháp chính để “Thoả thuận khố mật”:
- Phương pháp thông thường
- Phương pháp hiệu quả

1.5.1. Phương pháp thơng thường
Khi hai người dùng thống nhất có một khố bí mật chung, thì một trong hai người chọn
khố ngẫu nhiên K, sau đó truyền nó một cách an tồn đến người kia bằng phương pháp nào
đó, ví dụ bằng mã khố cơng khai hay phương pháp “giấu tin”. Phương pháp này phải dùng
nhiều thông tin truyền đi và cất giữ, mặt khác độ an tồn thấp vì phải truyền đi “trọn vẹn” một
khố trên mạng cơng khai.
1.5.2. Phương pháp hiệu quả
Phương pháp hiệu quả để thoả thuận khoá phải đạt được hai tiêu chí sau:
+ Bảo đảm an tồn các thơng tin về khố bí mật.
Tức là bảo đảm rằng kẻ xấu khó có thể khám phá hay tráo đổi khoá mật.
15
15


+ Giảm được thông tin cần truyền đi và cất giữ, trong khi vẫn cho phép các cặp người
dùng tính tốn được khố bí mật.
Theo phương pháp hiệu quả, người dùng khơng truyền cho nhau trên mạng “trọn vẹn”
một khố K, mà chỉ truyền vật liệu công khai và cách thức tạo khoá K đến cặp người dùng A và
B.
Phương pháp này không phải dùng nhiều thông tin truyền đi và cất giữ, mặt khác độ an
tồn cao, vì người dùng chỉ truyền trên mạng vật liệu công khai và cách thức tạo khố bí mật,
chứ khơng truyền trực tiếp khố bí mật.
Kẻ xấu có trộm được tin trên đường truyền, cũng khó tính được khố mật vì khơng biết
vật liệu bí mật của từng người dùng
1.6. Hệ phân phối khố Diffie-Hellman.
Hệ phân phối khố Diffie-Hellman khơng địi hỏi TA phải biết và chuyển bất kỳ thơngtin
bí mật nào về khoá của các người tham gia trong mạng để họ thiết lập được khốchung bí mật
cho việc truyền tin với nhau.
Trong một hệ phân phối khoá Diffie-Hellman, TA chỉ việc chọn một số nguyên tố lớn p và
một phần tử nguyên thuỷ g theo mod p, sao cho bài toán tính trong p là rất khó. Các số p và g

được công bố công khai cho mọi người tham gia trong mạng. Ngồi ra, TA có một sơ đồ chữ ký
với thuật tốn ký (bí mật) và thuật tốn kiểm chứng (công khai) .
Một thành viên bất kỳ A với danh tính ID(A) tuỳ ý chọn một số a (0 ≤ a≤ p − 2) và tính . A
giữ bí mật a và đăng ký các thông tin (ID(A), XA) với TA. TA cấp cho A chứng chỉ:
C(A) = (ID(A), XA, (ID(A), XA)).
Các chứng chỉ của các thành viên trong mạng có thể được lưu giữ trong một cơ sở dữ liệu
công khai hoặc uỷ thác cho TA lưu giữ và cung cấp công khai cho các thành viên mỗi khi cần
đến.
Các chứng chỉ của các thành viên trong mạng có thể được lưu giữ trong một cơ sở dữ liệu
công khai hoặc uỷ thác cho TA lưu giữ và cung cấp công khai cho các thành viên mỗi khi cần
đến.
16
16


Khi hai thành viên A và B trong mạng cần có một khố bí mật chung để truyền tin bảo
mật cho nhau thì A dùng thơng tin cơng khai XB có trong C(B) kết hợp với số bí mật của mình
là a để tạo nên khố:

Khố chung đó B cũng tạo ra được từ các thông tin công khai XA của A và số bí mật của
mình:

Để bảo đảm được các thơng tin về và XB và XAl à chính xác, A và B có thể dùng thuật
tốn để kiểm chứng chữ ký xác thực của TA trong các chứng chỉ C(B) và C(A)tương ứng.
Độ an toàn của hệ phân phối khoá Diffie-Hellman được bảo đảm bởi yếu tố sau đây:
Biết XAvà XB để tính chính là bài tốn Diffie-Hellman tương đương: biết và , tính .
Đây là một bài tốn khó tương đương bài tốn tính lơgarit rời rạc hay bài toán phá mật mã
ElGamal.
1.7. Mở rộng bài toán cho nhiều bên
Thoả thuận khố Diffie-Hellman khơng chỉ giới hạn để thương lượng một khoá dùng

chung giữa hai bên. Bất cứ một số lượng người dùng nào cũng có thể tham gia vào một thoả
thuận như thế bằng cách lặp các giao thức thoả thuận và trao đổi dữ liệu trung gian. Ví dụ, A, B
và C có thể tham gia vào một thoả thuận Diffie-Hellman như sau (với tất cả phép toán đều lấy
mod p):
1. Các bên đồng ý với các tham số của giải thuật là p và g.
2. Các bên tự sinh khố bí mật, đặt tên là a, b, c.
3. A tính và gửi nó cho B
4. B tính = và gửi nó cho C
5. C tính và dùng nó làm khố bí mật
6. B tính và gửi nó cho C
17
17


7. C tính = và gửi nó cho A
8. A tính = và dùng nó làm khố bí mật
9. C tính

và gửi nó cho A

10. A tính = và gửi nó cho B
11. B tính = và dung nó làm khố bí mật
Một kẻ trộm có thể biết , nhưng không thể nào kết hợp chúng để sinh lại . Để mở rộng cơ
chế này cho các nhóm lớn hơn cần phải tuân thủ hai nguyên tắc cơ bản sau:
+Bắt đầu với một khố “rỗng” chỉ gồm có g, khố bí mật được tạo ra bằng cách tăng giá
trị hiện tại theo số mũ bí mật của những bên tham gia một lần, theo thứ tự bất kỳ.
+Bất kỳ giá trị trung gian nào (số mũ sẽ lên tới tích N-1 số mũ, trong đó N là số bên tham
gia vào nhóm) đều có thể bị cơng khai, nhưng giá trị cuối cùng (khi cả N số mũ đều được dùng)
sẽ tạo thành khố bí mật dùng chung và do đó phải tránh bị cơng khai. Vì vậy, mỗi người dùng
cần thu về bản sao của khoá mật bằng cách sử dụng khố mật của chính họ lúc cuối cùng (mặt

khác, khơng có cách nào để bên tham gia cuối cùng trao đổi khố cuối cho bên nhận của nó, vì
bên này phải giữ bí mật khố)
Những ngun tắc này mở ra rất nhiều tuỳ chọn để sắp xếp các bên tham gia đóng góp tạo
khố. Phương pháp đơn giản và rõ ràng nhất là sắp xếp N bên tham gia vào một vịng trịn và
có N khố quay quanh vịng trịn này, cho tới khi mỗi khố đều đã được N bên đóng góp xây
dựng (kết thúc với chính bên sở hữu của nó) và mội bên tham gia đều đóng góp vào N khố
(kết thúc với khố của họ). Tuy nhiên, điều này yêu cầu mỗi bên phải tính N số mũ thành phần.
Bằng cách chọn một thứ tự tối ưu hơn, phụ thuộc vào thực tế là các khố có thể trùng lặp,
chúng ta có thể giảm khối lượng tính tốn số mũ của mỗi bên là sử dụng phương pháp Chia để
trị, được đề xuất sau đây đối với 8 bên.
1. Các bên A, B, C và D mỗi bên thực hiện tính tốn , giá trị này được gửi cho E, F, G, H.
Ngược lại họ cũng nhận được .
2. Các bên A và B mỗi bên tính , gửi cho C và D, khi đó C và D cũng làm việc tương tự
gửi cho A và B.
18
18


3. Bên A tính tốn và gửi cho B, tương tự, B gửi lại cho A. C và D cũng làm việc tương
tự.
4. Bên A tính số mũ cuối thu được trong khi B làm điều tương tự để nhận được . C và D
cũng làm điều tương tự.
5. Các bên từ E qua H đồng thời thực hiện tính tốn sử dụng làm điểm khởi đầu.
Sau khi hồn thành thuật toán, tất cả các bên tham gia đều sở hữu khố mật , nhưng mỗi
bên chỉ phải tính tốn 4 lần số mũ thành phần, thay vì phải tính tốn 8 lần như trong sắp xếp
vịng trịn đơn giản.
1.8. Giao thức trao đổi khố D-H có chứng chỉ xác thực
Mỗi người dùng A có một danh tính ID(A) và một sơ đồ chữ ký với thuật toán ký và thuật
tốn kiểm chứng . TA cũng có một vai trị xác thực, nhưng không phải xácthực bất kỳ thông tin
nào liên quan đến việc tạo khoá mật mã của người dùng (dù làkhố bí mật hay là khố cơng

khai), mà chỉ là xác thực một thơng tin ít quan hệ khácnhư thuật tốn kiểm chứng chữ ký của
người dùng. Cịn bản thân các thông tin liên quan đến việc tạo khố mật mã thì các người dùng
sẽ trao đổi trực tiếp với nhau. TA cũng có một sơ đồ chữ ký của mình, gồm một thuật tốn ký
và một thuật tốn kiểm chứng (cơng khai) . Chứng chỉ mà TA cấp cho mỗi người dùng A sẽ là:
C(A) = (ID(A), , (ID(A), )).
Rõ ràng trong chứng chỉ đó TA khơng xác thực bất kỳ điều gì liên quan đến việc tạo khoá
của A cả. Việc trao đổi khoá giữa hai người dùng A và B được thực hiện theo giao thức sau đây:
1. A chọn ngẫu nhiên số a (0 ≤ a≤ p − 2), tính XA= và gửi XA cho B.
2. B chọn ngẫu nhiên số b (0 ≤ a≤ p − 2), giữ bí mật b, tính XB= , tính tiếp
K=
= (XB, XA) và gửi (C(B), XB, ) cho A.
3. A tính: K = dùng để kiểm chứng , dùng để kiểm chứng C(B), sau đó tính = (XA, XB),
và gửi (C(A), ) cho B.
4. B dùng để kiểm chứng ,và dùng để kiểm chứng C(A).

19
19


Nếu tất cả các bước đó được thực hiện và các phép kiểm chứng đều cho kết quả đúngđắn,
thì giao thức kết thúc, cả A và B đều có được khoá chung K. Do việc dùng các thuậttoán kiểm
chứng nên A biết chắc giá trị XB là của B và B biết chắc giá trị XA là của A,loại trừ khả năng
một người C nào khác đánh tráo các giá trị đó giữa đường
1.9. Kết luận
Giao thức thỏa thuận khóa Diffie – Hellman đóng một vai trị quan trọng trong việc ứng
dụng vào các sản phẩm mật mã dân sự để đảm bảo an tồn bảo mật thơng tin. Tuy nhiên, để
đảm bảo an toàn cài đặt, việc lựa chọn (hoặc tạo ra) các bộ tham số dùng cho giao thức trên
đóng vai trị cốt lõi và các tham số đó phải đáp ứng các yêu cầu theo như các tổ chức đã khuyến
nghị trong các bộ tiêu chuẩn, qui chuẩn.


20
20


Tài liệu tham khảo
(2011) Thỏa thuận chính của DH. Trong: van Tilborg H.C.A., Jajodia S. (chủ đề) Bách khoa
toàn thư về mật mã và bảo mật. Springer, Boston, MA. /> />Đề tài Giao thức thỏa thuận khóa Diffie - Hellman - Luận văn, đồ án, đề tài tốt nghiệp
(luanvan.co)
Luận văn: Nghiên cứu các sơ đồ thoả thuận khố bí mật, HAY (slideshare.net)

21
21



×