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

Đề tài giao thức thỏa thuận 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 (851.34 KB, 16 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

Bài tập lớn
An toàn bảo mật thông tin
Đề tài
Giao thức thỏa thuận khóa Diffie - Hellman
Giáo viên hướng dẫn: Th.S Trần Phương Nhung
Nhóm sinh viên: 1. Phạm Thị Yến
2. Nguyễn Thị Nhâm
3. Nguyễn Đình Triệu
4. Lê Thanh Nghị
Hà Nội, Tháng 11/2012


Giao thức thỏa thuận khóa Diffie Hellman

Mục Lục
MụC LụC ................................................................................................................... 1
PHÂN CÔNG CÔNG VIệC ...................................................................................... 2
LờI Mở ĐầU .............................................................................................................. 3
CHƯƠNG I: GIớI THIệU Về GIAO THứC DIFFIE - HELLMAN ......................... 4
CHƯƠNG II: GIAO THứC THỏA THUậN KHÓA DIFFIE - HELLMAN ............ 6
1. KHÁI NIệM THỏA THUậN KHÓA. .......................................................................... 6
2. GIAO THứC THỏA THUậN KHÓA DIFFIE - HELLMAN. ........................................... 6
2.1. Cách thiết lập giao thức thỏa thuận khóa Diffie - Hellman....................... 6
2.2. Sơ đồ giao thức thỏa thuận khóa Diffie - Hellman. .................................. 7
2.3. Ví dụ bằng số minh họa. ............................................................................ 8
2.4. Mở rộng bài toán cho nhiều bên ................................................................ 9
2.5. Các đặc điểm đặc trưng của giao thức thảo thuận khóa Diffie - Hellman.
10


2.5.1. Gi o thức à n toàn đối với việc t n c ng thụ động............................ 10
2.5.2. Giao thức à kh ng n toàn đối với việc t n công chủ động. ............... 12
2.6. Giao thức thỏa thuận khóa Diffie - Hellman có chứng chỉ xác nhận. ..... 13
TÀI LIệU THAM KHảO ......................................................................................... 15

1

Nhóm 7 : ĐHKHMT2-K5


Giao thức thỏa thuận khóa Diffie Hellman

Phân công công việc
Stt

1

2

3

4

Mã SV

0541060168

0541060137

0541060129


0541060165

Tên SV

Nguyễn Thị Nhâm

Lê Thanh Nghị

Nội dung
Tìm hiểu về
giao thức thỏa
thuận
khóa
Diffie
Hellman + Ví
dụ bằng số
minh họa
Viết
chương
trình thực hiện
giao thức Diffie
- Hellman

Trang- Nhận xét
trang
Tích cực
hoạt động,
4 - 10
và nghiên

cứu.Hoàn
thành tốt
nhiệm vụ

Tìm hiểu các
đặc điểm đặc
trưng của giao
Nguyễn Đình Triệu thức thỏa thuận 10 - 14
khóa Diffie Hellman

Phạm Thị Yến

Tìm hiểu về
giao thức thỏa
thuận
khóa 4 - 10
Diffie
Hellman + Ví
dụ bằng số min
họa

Tích cực
nghiên cứu.
Hoàn thành
tốt nhiệm vụ
Tích cực
nghiên cứu.
Hoàn thàn
tốt nhiệm vụ


Tích cực
nghiên cứu.
Hoàn thành
tốt nhiệm
vụ.

2

Nhóm 7 : ĐHKHMT2-K5


Giao thức thỏa thuận khóa Diffie Hellman

Lời mở đầu
Tr o đổi thông tin luôn là nhu cầu cần thiết củ 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 ĩnh vực củ đời sống xã hội như:
chính trị, quân sự, học tập, mua sắm, kinh do nh,… T t cả những thông tin liên
qu n đế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 i 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 ê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à đư r r t nhiều giải
pháp bảo mật thông tin. Trong đó gi o 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áo cáo này do nhóm biên
soạn dựa trên những kiến thức ĩnh hội được từ cô giáo Th.S. Trần Phương Nhung,
và thông qua sự tìm hiểu, nghiên cứu tích cực của các thành viên trong nhóm.Báo
cáo củ nhóm đi sâu về đi sâu vào trình bày gi o thức thỏa thuận khóa Diffie Hellman với nội dung 3 chương được chia thành các chủ đề khác nhau, từ việc giới
thiệu sơ bộ, trình bày khái niệm, cách thiết lập, sơ đồ và các ví dụ minh họa cụ thể
về giao thức thỏa thuận khóa. Mặc dù nhóm đã r t cố gắng song vẫn không tránh

khỏi một số thiếu sót mong thầy cô và bạn bè đóng góp ý kiến để nhóm hoàn thiện
hơn báo cáo này.
Xin chân thành cảm ơn tới bạn bè, người thân đã góp ý, giúp đỡ nhóm. Đặc biệt
cảm ơn c giáo Th.S. Trần Phương Nhung người đã hướng dẫn nhóm hoàn thành
báo của mình!

3

Nhóm 7 : ĐHKHMT2-K5


Giao thức thỏa thuận khóa Diffie Hellman

Chương I: Giới thiệu về giao thức Diffie - Hellman
Năm 1976, một sự đột phá đã th y đổi nền tảng cơ bản trong cách làm việc
của các hệ thống mật mã hó . Đó chính à việc công bố của bài viết phương hướng
mới trong mật mã học (New Directions in Cryptography) của Whitfield Diffie và
Martin Hellman. Bài viết giới thiệu một phương pháp hoàn toàn mới về cách thức
phân phối các khóa mật mã. Là hệ thống đầu tiên sử dụng "public-key" hoặc các
khóa mật mã "kh ng đối xứng", và nó được gọi à tr o đổi khóa Diffie-Hellman
(Diffie-Hellman key exchange). Bài viết còn kích thích sự phát triển gần như tức
thời của một lớp các thuật toán mật mã hóa mới, các thuật toán chìa khóa b t đối
xứng (asymmetric key algorithms).
Tr o đổi khóa Diffie-Hellman bị cáo buộc rằng nó đã được phát minh ra một
cách độc lập một vài năm trước đó trong Trụ sở Truyền Thông Chính phủ Anh
(GCHQ) bởi M co m J. Wi i mson). Vào năm 2002, He m n đã đư r thuật
toán được gọi chung à tr o đổi khóa Diffie–Hellman–Merkle công nhận sự đóng
góp của cả R ph Merk e, người đã phát minh r thuật toán mã hóa công khai.
Trước thời kỳ này, hầu hết các thuật toán mật mã hóa hiện đại đều là những
thuật toán khó đối xứng (symmetric key gorithms), trong đó cả người gửi và

người nhận phải dùng chung một khóa, tức khóa dùng trong thuật toán mật mã, và
cả h i người đều phải giữ bí mật về khóa 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, kể cả hầu hết
các hệ thống mã được dùng trong suốt quá trình lịch sử nữ đều thuộc về loại này.
Đương nhiên, khó của một mã chính à sách mã (codebook), và à cái cũng phải
được phân phối và giữ gìn một cách bí mật tương tự.
Do nhu cầu an ninh, khóa cho mỗi một hệ thống như vậy nh t thiết phải
được tr o đổi giữa các bên giao thông liên lạc bằng một phương thức an toàn nào
đ y, trước khi họ sử dụng hệ thống (thuật ngữ thường được dùng là 'thông qua một
kênh an toàn'), ví dụ như bằng việc sử dụng một người đư thư đáng tin cậy với
một cặp tài liệu được khóa vào cổ tay bằng một cặp khóa tay, hoặc bằng cuộc gặp
gỡ mặt đối mặt, hay bằng một con chim bồ câu đư thư trung thành... V n đề này
chư b o giờ được xem là dễ thực hiện, và nó nhanh chóng trở nên một việc gần
như kh ng thể quản ý được khi số ượng người th m gi tăng ên, h y khi người ta
kh ng còn các kênh n toàn để tr o đổi khóa nữa, hoặc lúc họ phải liên tục th y đổi
4

Nhóm 7 : ĐHKHMT2-K5


Giao thức thỏa thuận khóa Diffie Hellman
các chìa khóa-một thói quen nên thực hiện trong khi làm việc với mật mã. Cụ thể
là mỗi một cặp truyền thông cần phải có một khóa riêng nếu, theo như thiết kế của
hệ thống mật mã, không một người thứ ba nào, kể cả khi người y là một người
dùng, được phép giải mã các th ng điệp. Một hệ thống thuộc loại này được gọi là
một hệ thống dùng chìa khóa mật, hoặc một hệ thống mật mã hó dùng khó đối
xứng. Hệ thống tr o đổi khóa Diffie-Hellman (cùng những phiên bản được nâng
c p kế tiếp hay các biến thể của nó) tạo điều kiện cho các hoạt động này trong các
hệ thống trở nên dễ dàng hơn r t nhiều, đồng thời cũng n toàn hơn, hơn t t cả
những gì có thể àm trước đây.

Mặc dù, bản thân thuật toán là một giao thức chọn khóa nặc danh (không cần thông
qua xác thực) nhưng nó đã cung c p ra một cơ sở cho các giao thức xác thực khác
nhau khá hoàn hảo.
Phương thức tiếp nối ngay sau Diffie – Hellman là RSA, một thể hiện của mã khóa
công khai sử dụng thuật toán b t đối xứng.

5

Nhóm 7 : ĐHKHMT2-K5


Giao thức thỏa thuận khóa Diffie Hellman

Chương II: Giao thức thỏa thuận khóa Diffie - Hellman
1. Khái niệm thỏa thuận khóa.
Thoả thuận khoá: việc tr o đổi khoá giữ các chủ thể trong một cộng đồng nào đó
có thể được thiết ập một cách tự do giữ b t cứ h i người nào khi có nhu cầu tr o
đổi th ng tin.
2. Giao thức thỏa thuận khóa Diffie - Hellman.
- Tr o đổi khóa Diffie – Hellman là thiết lập một khóa chia sẻ bí mật được sử
dụng cho thông tin liên lạc bí mật bằng cách tr o đổi dữ liệu thông qua mạng công
cộng. Đây mà một trong số nhiều phương thức dùng để tr o đổi khóa trong ngành
mật mã học.
- Phương pháp này kh ng cần có sự can thiệp của một TA ( cơ qu n ủy thác) làm
nhiệm vụ điều hành hoặc phân phối khóa.
- Phương pháp này cho phép những người sử dụng có thể cùng nhau tạo ra một
khóa bí mật thông qua một kênh truyền th ng kh ng đảm bảo về độ bảo mật. Khóa
bí mật này sẽ được dùng để người sử dụng tr o đổi thông tin với nhau.
2.1. Cách thiết lập giao thức thỏa thuận khóa Diffie - Hellman.
Tình huống:

+ Alice và Bob muốn chia sẻ thông tin bảo mật cho nh u nhưng phương tiện
truyền thông duy nh t của họ là không an toàn. T t cả các thông tin mà họ tr o đổi
được quan sát bởi Eve kẻ thù của họ.
+ Làm thế nào để Alice và Bob chia sẻ thông tin bảo mật cho nhau mà không làm
cho Eve biết được?
+ Thoạt nhìn ta th y Alice và Bob phải đối mặt với một nhiệm vụ không thể.
Giải quyết tình huống trên:
+ A ice và Bob đồng ý dùng chung về một nhóm cyclic hữu hạn G và một yếu
tố tạo ra g trong G. (Điều này thường được thực hiện r t âu trước khi phần còn lại
của giao thức, g được giả định à được biết đến bởi t t cả các kẻ t n công)
+ Khi Alice và Bob muốn truyền thông tin bảo mật cho nhau có thể cùng thực hiện
theo giao thức s u để tr o đổi:
1. A ice chọn ngẫu nhiên số A (0 ≤ A ≤ p-2) bí mật, tính
bA  g a mod p và gửi bA cho Bob .
2. Tương tự, Bob chọn ngẫu nhiên số B (0 ≤ B ≤ p-2) bí mật, tính
bB  g a mod p và gửi bB cho Alice.
3. Alice tính được khóa: K A  bBa mod p
A

B

A

6

Nhóm 7 : ĐHKHMT2-K5


Giao thức thỏa thuận khóa Diffie Hellman
4. Bob tính được khóa: K B  bAa mod p

B

+ Bây giờ Alice và Bob có cùng khóa chung là:
K A  K B  g a AaB mod p

+ Mô tả giao thức Diffie - Hellman bằng bảng sau:
Alice
Bí mật
aA
aA
aA
aA, KA

Công khai Tính toán
Gửi
p, g

a
p, g, bA
bA  g mod p bA→
←bB
p, g, bA, bB
A

Bob
Tính toán

Công khai

p, g

bB  g a mod p p, g, bB
p, g, bA, bB
B

Bí mật
aB
aB
aB
aB, KB

Chú ý là chỉ có aA, aB và KA, KB à được giữ bí mật. T t cả các giá trị còn lại
như p, g, bA, bB đều công khai. Một khi A ice và Bob tính được khóa bí mật dùng
chung, họ có thể dùng nó làm khóa mã hóa chỉ họ biết để gửi các th ng điệp qua
cùng kênh giao tiếp mở. Đương nhiên, để đảm bảo an toàn, các giá trị aA, aB và p
cần được l y lớn hơn, g kh ng cần l y giá trị quá lớn. Thực tế thì g thường l y giá
trị 2 hoặc 5

2.2. Sơ đồ giao thức thỏa thuận khóa Diffie - Hellman.
Sơ đồ dưới đây minh họa phần nào ý tưởng chung.
Đầu tiên, A ice và Bob đã thống nh t về màu sơn chung (màu vàng), Alice và Bob
tr o đổi màu sắc đã được trộn của họ. Cuối cùng, điều này tạo ra một màu bí mật
giống hệt nhau mà kẻ khác không có khả năng tạo được ra giống vậy. Kể từ đây,
Alice và Bob sẽ tr o đổi bằng cách mã hóa và giải mã sử dụng khóa bí mật đó (thể
hiện bằng màu sơn bí mật cuối cùng).

7

Nhóm 7 : ĐHKHMT2-K5



Giao thức thỏa thuận khóa Diffie Hellman

Hình 1: Sơ đồ giao thức thỏa thuận khóa Diffie - Hellman
2.3. Ví dụ bằng số minh họa.
1. Alice và Bob thống nh t với nhau chọn số nguyên tố p = 37 và g = 5.
2. Alice chọn một giá trị ngẫu nhiên b t kỳ aA = 7 và bí mật aA.
Alice tính bA = 57 mod 37 = 18.
S u đó A ice gửi bA = 18 cho Bob.
3. Bob chọn một giá trị ngẫu nhiên b t kỳ aB = 5 và bí mật aB
Bob tính bB = 55 mod 37 = 17.
S u đó Bob gửi bB = 17 cho Alice.
4. Bob nhận được bA = 18 và tính khóa chung: KB = 184 mod 37=15, và bí mật KB
8

Nhóm 7 : ĐHKHMT2-K5


Giao thức thỏa thuận khóa Diffie Hellman
5. Alice nhận được bB =17 và tính khóa chung: KA= 177 mod 37=15, và bí mật KA
2.4. Mở rộng bài toán cho nhiều bên
Thỏ thuận khó Diffie-He m n kh ng chỉ giới hạn để thương ượng một khó
dùng chung giữ h i bên. B t cứ một số ượng người dùng nào cũng có thể th m
gi vào một thỏ thuận như thế bằng cách ặp các gi o thức thỏ thuận và tr o đổi
dữ iệu trung gi n. Ví dụ, A ice, Bob và C ro có thể th m gi vào một thỏ thuận
Diffie-He m n như s u (với t t cả phép toán đều y mod p):
1. Các bên đồng ý với các th m số củ giải thuật à p và g.
2. Các bên tự sinh khó bí mật, đặt tên à A, aB và ac.
3. Alice tính g a và gửi nó cho Bob.
A


4. Bob tính ( g a ) a = g a a và gửi nó cho C ro .
A

B

5. Carol tính ( g a

AaB

A B

) a C = g aAaBaC và dùng nó àm khó bí mật.

6. Bob tính g a và gửi nó cho C ro .
B

7. Carol tính ( g a ) a = g a a và gửi nó cho A ice.
B

C

B C

8. Alice tính ( g a a ) a = g a a a = g a a a và dùng nó àm khó bí mật.
B C

A

B C A


A B C

9. Carol tính g a và gửi nó cho A ice.
C

10.Alice tính ( g a ) a = g a a và gửi nó cho Bob.
C

A

A C

11.Bob tính g a a a = g a a a = g a a a và dùng nó àm khó bí mật.
C A B

C A B

A B C

Một kẻ nghe trộm có thể biết g a , g a , g a , g a a , g a a , g a a nhưng kh ng thể nào
kết hợp chúng để sinh ại g a a a . Để mở rộng cơ chế này cho các nhóm ớn hơn cần
phải tuân thủ 2 nguyên tắc cơ bản s u:
 Bắt đầu với một khó “rỗng” chỉ gồm có g, khó bí mật được tạo r bằng cách
tăng giá trị hiện tại theo số mũ bí mật củ những bên th m gi một ần, theo thứ tự
b t kỳ.
 B t kỳ giá trị trung gi n nào (số mũ sẽ ên tới tích N-1 số mũ, trong đó N à số
bên th m gi vào nhóm) đều có thể bị c ng kh i, 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 kh i. Vì vậy, mỗi người dùng cần thu về bản s o củ khó mật bằng cách sử
dụng khó mật củ chính họ úc cuối cùng (mặt khác, kh ng có cách nào để bên

th m gi cuối cùng tr o khó cuối cho bên nhận củ nó, vì bên này phải giữ bí mật
khóa)
A

B

C

A B

B C

C A

A B C

Những nguyên tắc này mở r r t nhiều tùy chọn để sắp xếp các bên th m gi đóng
góp tạo khó . Phương pháp đơn giản và rõ ràng nh t à sắp N bên th m gi vào
một vòng tròn và có N khó qu y qu nh 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 nó) và mỗi bên
th m gi đều đã đóng góp vào N khó (kết thúc với khó củ 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ế à các khó có thể
9

Nhóm 7 : ĐHKHMT2-K5


Giao thức thỏa thuận khóa Diffie Hellman
trùng ặp, chúng t có thể giảm khối ượng tính toán số mũ củ mỗi bên à og2(N)

+ 1 sử dụng phương pháp Chi để trị, được đề xu t s u đâ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 toán g a a a a , giá trị này được
gửi cho E, F, G, H. Ngược ại, họ cũng nhận được g a a a a .
2. Các bên A và B mỗi bên tính g a a a a a a , gửi cho C và D, khi đó C và D
cũng àm việc tương tự à gửi g a a a a a a cho A và B.
3. Bên A tính toán g a a a a a a a và gửi cho B, tương tự, B gửi ại g a a a a a a a
cho A. C và D cũng àm việc tương tự.
4. Bên A tính số mũ cuối thu được g a a a a a a a a = g a a a a a a a a , trong khi B
àm điều tương tự để nhận được g a a a a a a a a = g a a a a a a a a . C và D cũng
àm điều tương tự.
5. Các bên từ E qu H đồng thời thực hiện tính toán sử dụng g bcd àm điểm
khởi đầu.
A B C D

E F G H

E F G H A B

E F G H C D

E F G H C D A

E F G H D C B

E F G H C D B A

A B C D E F G H

E F G H C D A B


A B C D E F G H

S u khi hoàn thành thuật toán, t t cả các bên th m gi đều đã sở hữu khó mật
g a a a a a a a a , nhưng mỗi bên chỉ phải tính toán 4 ần số mũ thành phần, th y vì
phải tính 8 ần như trong sắp xếp vòng tròn đơn giản.
A B C D E F G H

2.5. Các đặc điểm đặc trưng của giao thức thảo thuận khóa Diffie - Hellman.
2.5.1. Giao thức à an toàn đối ới iệc t n c ng thụ động.
Gi o thức à n toàn đối với việc t n c ng thụ động, nghĩ à một người thứ b
dù biết bA và bB sẽ khó mà biết được A,B.
Xét ví dụ:
1. Alice và Bob thống nh t với nhau chọn số nguyên tố p = 17 và g = 2.
2. Alice chọn một giá trị ngẫu nhiên b t kỳ aA = 6 và bí mật aA.
Alice tính bA = 26 mod 17 = 13.
S u đó Alice gửi bA = 13 cho Bob.
3. Bob chọn một giá trị ngẫu nhiên b t kỳ aB = 9 và bí mật aB
Bob tính bB = 29 mod 17 = 2.
S u đó Bob gửi bB = 2 cho Alice.
4. Bob nhận được bA = 13 và tính khóa chung: KB = 139 mod 17=13, và bí mật
KB
5. Alice nhận được bB = 2 và tính khóa chung: KA= 26 mod 17=13, và bí mật KA
Eve là một kẻ nghe trộm – cô ta theo dõi những gì Alice và Bob gửi cho nhau
nhưng kh ng thể th y đổi nội dung các cuộc liên lạc.
Eve muốn tái thiết lại những thông tin bảo mật mà Alice và Bob chia sẻ cho nhau.
 Eve sẽ phải đối mặt với một nhiệm vụ thực sự khó khăn.
 Dưới đây à các biểu đồ giúp xác định ai biết được giá trị nào. (Eve là một kẻ
nghe trộm.)
10


Nhóm 7 : ĐHKHMT2-K5


Giao thức thỏa thuận khóa Diffie Hellman

Alice
Biết
p = 17

Không biết
aB= ?

g=5
aA = 6
bA = 26 mod 17 = 13
bB  2 aB mod 17  2

KA= 26 mod 17=13
K B  13aB mod 17  13
K A,B  26 mod 17  13aB mod 17

KA,B = 13

Bob
Biết
p = 17
g=2
aB = 9
bB = 29 mod 17 = 2


Không biết
aA =?

bA  2 a A mod 17  13

KB = 139 mod 17=13
K A  2 aA mod 17  13

K A,B  2 aA mod 17  139 mod 17

KA,B= 13
Eve
Biết
p = 17
g=2
bA  2 a A mod 17  13
bB  2 aB mod 17  2

Không biết
aA = ?
aB =?
KA,B = ?

K A  2 aA mod 17
K B  13aB mod 17

K A,B  2aA mod 17  13aB mod 17
11

Nhóm 7 : ĐHKHMT2-K5



Giao thức thỏa thuận khóa Diffie Hellman
Ta th y Eve rơi vào tình thế tiến thoái ưỡng nam. Cô y biết được giá trị của
bA, bB vì vậy cô y biết được g a , g a . Cô y cũng biết những giá trị của g và p,
nhưng ại không biết được các giá trị của aA, aB và KA, B
 Đây chính à bài toán Diffie - Hellman mà khi biết bA, bB tìm KA,B, bài toán này
tương đương với bài toán phá mã ElGammal. Bây giờ t đi chứng minh điều này.
- Phép mật mã E G mm với khoá = (p, g, , β), trong đó β = ga mod p cho t từ
một bản rõ x và một số ngẫu nhiên k ∈ Zp-1 ập được mật mã eK(x, k) = (y1, y2) với
y1 = gk mod p, y2 = xβk mod p . Và phép giải mã được cho bởi y1 = gk mod p. Giả sử
t có thuật toán A giải bài toán Diffie-Hellman. Ta sẽ dùng A để phá mã
E G mm như s u:
 Cho mật mã (y1, y2). Trước tiên, dung A cho y1 = gk mod p và β=ga mod p t
được A(y1,B) = gka =βk mod p . S u đó, t thu được bản rõ x từ βkvà y2 như
sau:
A

B

x = y2(βk)-1 mod p.
 Ngược ại, giả sử có một thuật toán khác à B dùng để phá mã E G mm ,
tức à B (p, g, β, y1, y2) = x = y2 (y1a)-1 mod p . p dụng B cho β=bA ,
y1 = bB, y2 =1, t được B( p, , bA , bB ,1) 1  (1.(bBa ) 1 ) 1   a a mod p tức giải
được bài toán Diffie-Hellman.
Trên thực tế các giá trị của p, aA, aB là r t lớn. Nếu p là số nguyên tố có ít nh t
300 chữ số, aA và aB có ít nh t 100 chữ số thì thậm chí ngay cả thuật toán tốt nh t
được biết đến hiện n y cũng kh ng thể giải được nếu chỉ biết g, p, bA, bB kể cả khi
sử dụng t t cả khả năng tính toán của nhân loại. Bài toán này còn được biết đến với
tên gọi bài toán logarit rời rạc. Bài toán logarit rời rạc vẫn còn đ ng gây r t nhiều

tr nh cãi và chư có thuật giải cụ thể nào.
A

A B

2.5.2. Giao thức à kh ng an toàn đối với việc t n công chủ động.
Gi o thức à kh ng n toàn đối với việc t n c ng chủ động bằng cách đánh tráo
giữ đường. Nghĩ à một người thứ b Eve có thể đánh tráo các th ng tin tr o đổi
giữa Alice và Bob.
Ch ng hạn, Eve thay g a mà Alice định gửi cho Bob bởi g a ' và thay g a mà
Bob định gửi cho Alice bởi g a ' . Như vậy, s u khi thực hiện gi o thức tr o đổi
khoá, A ice đã ập một khoá chung g a a ' với Eve mà vẫn tưởng à với Bob đồng
thời Bob cũng ập một khoá chung g a ' a với Eve mà vẫn tưởng à với Alice. Eve có
A

A

B

B

A

B

A B

12

Nhóm 7 : ĐHKHMT2-K5



Giao thức thỏa thuận khóa Diffie Hellman
thể giải mã mọi th ng báo mà Alice tưởng nhầm à mình gửi đến Bob cũng như
mọi th ng báo mà Bob tưởng nhầm à mình gửi đến Alice.
Một cách khắc phục kiểu t n c ng này à àm s o để Alice và Bob có kiểm thử
để xác nhận tính đúng đắn củ các khoá c ng kh i bAvà bB. Người t đư vào gi o
thức tr o đổi khoá Diffie-He m n thêm v i trò điều phối củ một TA để được một
hệ phân phối khoá Diffie-He m n như một cách khắc phục nhược điểm này. Trong
hệ phân phối khoá Diffie-He m n, sự c n thiệp củ TA à r t yếu, thực r TA chỉ
àm mỗi việc à c p chứng chỉ xác nhận khoá c ng kh i 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ủ người dùng. Tuy nhiên, nếu
chư thoả mãn với v i trò hạn chế đó củ TA thì có thể cho TA một v i trò xác
nhận yếu hơn, kh ng iên qu n gì đến khoá, ch ng hạn như xác nhận thuật toán
kiểm thử chữ ký củ người dùng, còn bản thân các th ng tin về khoá (cả bí mật
ẫn c ng kh i) thì do các người dùng tr o đổi trực tiếp với nh u. Với cách khắc
phục có vai trò hết sức hạn chế đó củ TA, t được giao thức s u đây:
2.6. Giao thức thỏa thuận khóa Diffie - Hellman có chứng chỉ xác nhận.
Mỗi người dùng A có một d nh tính ID(A) và một sơ đồ chữ ký với thuật toán
ký sigA và thuật toán kiểm thử verA. TA cũng có một v i trò xác nhận, nhưng
kh ng phải xác nhận b t kỳ th ng tin nào iên qu n đến việc tạo khoá mật mã củ
người dùng (dù à khoá bí mật h y khoá c ng kh i), mà chỉ à xác nhận một th ng
tin ít qu n hệ khác như thuật toán kiểm thử chữ ký củ người dùng. Còn bản thân
các th ng tin iên qu n đến việc tạo khoá mật mã thì các người dùng sẽ tr o đổi
trực tiếp với nh u. TA cũng có một sơ đồ chữ ký củ mình, gồm một thuật toán ký
sigTA và một thuật toán kiểm thử công khai verTA. Chứng chỉ mà TA c p cho mỗi
người A sẽ à:
C(A) = (ID(A), verA, sigTA (ID(A), verA )).
Rõ ràng trong chứng chỉ đó TA kh ng xác nhận b t kỳ điều gì iên qu n đến việc
tạo khoá củ A cả.

Cơ chế giao thức thỏa thuận khóa Diffie - Hellman có chứng chỉ xác nhận
Việc tr o đổi khoá giữ h i người dùng A và B được thực hiện theo gi o thức s u
đây:
1. A chọn ngẫu nhiên số A (0 ≤ A(≤ p-2), tính bA  g a mod p và gửi bA cho B.
2. B chọn ngẫu nhiên số B (0 ≤ B≤ p-2), tính bB  g a mod p , tính tiếp K  bAa mod p
, yB  sig B (bA , bB ) và gửi (C(Alice), bB, yB) cho A.
3. A tính K  bBa mod p dùng verB để kiểm thử yB , dùng verTA để kiểm thử C(B),
s u đó tính yA= sigA(bA, bB ) và gửi (C(A), yA) cho B.
A

B

B

A

13

Nhóm 7 : ĐHKHMT2-K5


Giao thức thỏa thuận khóa Diffie Hellman
4. B dùng verA để kiểm thử yA và dùng verTA để kiểm thử C(A).
Nếu t t cả các bước đó được thực hiện và các phép kiểm thử đều cho kết quả đúng
đắn thì gi o thức được kết thúc, và cả A và B đều có được khoá chung . Do việc
dùng các thuật toán kiểm thử nên A biết chắc giá trị bB à củ B và B biết chắc giá
trị bA củ A, oại trừ khả năng một người C nào khác đánh tráo các giá trị đó giữ
đường.

14


Nhóm 7 : ĐHKHMT2-K5


Giao thức thỏa thuận khóa Diffie Hellman
Tài liệu tham khảo
1. Giáo trình an toàn và bảo mật thông tin – Trường ĐH Hàng Hải
2. Giáo trình an toàn bảo mật thông tin – Trường ĐH Gi o Th ng Vân Tải
3. Whitfie d Diffie, M rtin E. He m n, “ New Directions in Cryptogr phy”, IEEE
transactions on information theory, Vol. IT-22, No.6, November 1976.
4. A Review of the Diffie-Hellman Algorithm and its Use in Secure Internet
Protocols - David A. Carts
5. Diffie-Hellman Key Exchange – A Non-M them tici n’s Exp n tion
/>6. Discrete Logarithms and Diffie - Hellman.
7. />8. />9. />10. />11. />12. />modulo_n
13. modulo-p-in-the-diffie-hellman?rq=1
14. Cryptography in C and C++ - Michael Welschenbach 2nd Edition (2005)
15. Primitive Roots - David Savtt
16. The Primitive Root Theorem - Philadelphia University
17. New Directions in Cryptography - Invited Paper - Whitfield Diffie and Martin
E. Hellman
18. A Review of the Diffie-Hellman Algorithm and its Use in Secure Internet
Protocols - David A. Carts
19. Video:
Public Key Cryptography- Diffie-Hellman Key Exchange
Primitive Root Calculator
20. Và một số tài liệu và các trang web khác.

15


Nhóm 7 : ĐHKHMT2-K5



×