1. Trang chủ
  2. » Tất cả

Trao đổi khóa diffie hellman và ứng dụng

25 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Trao đổi Khóa Diffie-Hellman Và Ứng Dụng
Người hướng dẫn Ths. Nguyễn Thanh Trà
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành An Ninh Mạng Thông Tin
Thể loại Tiểu luận cuối kỳ
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 25
Dung lượng 0,97 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

19 BẢNG ĐỐI CHIẾU THUẬT NGỮ VIẾT TẮT DLP Discrete Logarithm Problem Bài toán Logarit rời rạc EDH Ephemeral Diffie-Hellman FTP File Transfer Protocol Giao thức truyền tệp tin GCHQ Gove

Trang 1

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

KHOA VIỄN THÔNG 1

===  ===

TIỂU LUẬN KẾT THÚC HỌC PHẦN MÔN: AN NINH MẠNG THÔNG TIN

ĐỂ TÀI: “TRAO ĐỔI KHÓA DIFFIE-HELLMAN VÀ ỨNG DỤNG”

Hà nội, 2021

Trang 2

Tiểu luận cuối kì ANMTT Mục lục và các danh mục kèm theo

Thực hiện: Nhóm 21 i GV: Ths.Nguyễn Thanh Trà

MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU GIAO THỨC DIFFIE-HELLMAN 1

1.1 ĐẶT VẤN ĐỀ 1

1.2 LỊCH SỬ PHÁT TRIỂN 1

1.3 CÁC KHÁI NIỆM CƠ BẢN 3

1.3.1 Bài toán logarit rời rạc 3

1.3.2 Trao đổi khóa Diffie-Hellman 3

1.4 ƯU, NHƯỢC ĐIỂM CỦA DIFFIE-HELLMAN 4

CHƯƠNG 2: GIAO THỨC THỎA THUẬN KHÓA DIFFIE-HELLMAN 5

2.1 CÁCH THIẾT LẬP GIAO THỨC DIFFIE-HELLMAN 5

2.2 SƠ ĐỒ GIAO THỨC DIFFIE-HELLMAN 7

2.3 PHẦN VÍ DỤ 8

2.4 MỞ RỘNG BÀI TOÁN CHO NHIỀU BÊN 9

CHƯƠNG 3: TÍNH AN TOÀN CỦA GIAO THỨC DIFFIE-HELLMAN 12

3.1 GIAO THỨC LÀ AN TOÀN VỚI VIỆU TẤN CÔNG THỤ ĐỘNG 12

3.2 GIAO THỨC LÀ KHÔNG AN TOÀN VỚI VIỆC TẤN CÔNG CHỦ ĐỘNG 14

CHƯƠNG 4: ỨNG DỤNG CỦA TRAO ĐỔI KHÓA DIFIE-HELLMAN 16

4.1 EPHEMRAL DIFFIE-HELLMAN HANDSHAKE TRONG SSL 16

4.2 KHÓA CÔNG KHAI 19

4.3 MỘT SỐ ỨNG DỤNG KHÁC 20

TỔNG KẾT 21

TÀI LIỆU THAM KHẢO 22

DANH MỤC HÌNH VẼ VÀ BẢNG BIỂU Bảng 2 1:Mô tả giao thức Diffie-Hellman 6

Hình 2 1: Sơ đồ giao thức Diffie-Hellman 7

Hình 2 2: Ví dụ trao đổi khoá giữa hai bên 8

Hình 2 3: Sơ đồ mở rộng giao thức Diffie-Hellman trong kịch bản cho ba bên 9

Hình 3 1: Kẻ tấn công ở giữa 15

Trang 3

Tiểu luận cuối kì ANMTT Mục lục và các danh mục kèm theo

Thực hiện: Nhóm 21 ii GV: Ths.Nguyễn Thanh Trà

Hình 4 1: Ephemeral Diffie-Hellman handshake trong SSL 17 Hình 4 2: Quá trình gửi tin sử dụng khóa công khai 19

BẢNG ĐỐI CHIẾU THUẬT NGỮ VIẾT TẮT

DLP Discrete Logarithm Problem Bài toán Logarit rời

rạc EDH Ephemeral Diffie-Hellman

FTP File Transfer Protocol Giao thức truyền tệp

tin

GCHQ Government Communications

Headquarters

Trụ sở truyền thông chính phủ

IETF Internet Engineering Task

Force

Nhóm đặc trách kỹ thuật Internet

IKE Internet Key Exchange Trao đổi khóa Internet

IP Internet Protocol Giao thức Internet

IPSec Internet Protocol Security Bảo mật giao thức

internet

SNI Server Name Indication Chỉ dẫn tên máy chủ

TLS Transport Layer Security Bảo mật lớp vận

chuyển

Trang 4

Tiểu luận cuối kì ANMTT Chương 1: Giới thiệu về giao thức Diffie-Hellman

Thực hiện: Nhóm 21 1 GV: Ths.Nguyễn Thanh Trà

CHƯƠNG 1: GIỚI THIỆU GIAO THỨC DIFFIE-HELLMAN

1.1 ĐẶT VẤN ĐỀ

Từ xưa đến nay việc trao đổi thông tin trong cuộc sống hàng ngày luôn là một nhu cầu tất yếu Trải qua nhiều thời kì việc trao đổi thông tin đòi hỏi nhiều dịch vụ hơn để đáp ứng nhu cầu ngày càng cao của con người Nếu như trước kia việc truyền tin giữa hai khu vực xa nhau sử dụng thư viết tay và thực hiện chuyển tiếp qua các phương tiện giao thông thông thường, việc này mất khá nhiều thời gian nên có thể dẫn đến tin truyền

đi có thể không còn giá trị sử dụng đối với người nhận nữa Còn ngày nay với sự phát triển của công nghệ chỉ cần mỗi người dùng sử dụng một thiết bị thông minh kèm theo dịch vụ truyền tin qua mạng internet là có thể trao đổi thông tin trực tiếp với nhau Điều này làm tăng tính hiệu quả về mặt thời gian của việc truyền tin khi chỉ mất vài giây để thực hiện Tuy nhiên có nhiều bất cập nảy sinh xoay quanh việc truyền tin qua mạng

mà tiêu biểu là vấn đề bảo mật thông tin Việc thông tin bị đánh cắp hay tráo đổi đã gây

ra nhiều hệ lụy cho người sử dụng Do đó nhiều tổ chức hay cá nhân đã bắt đầu nghiên cứu, tìm kiếm và đưa ra các giải pháp đề bảo mật thông tin và một trong nhữn giải pháp đầu tiên cho vấn đề này là giao thức trao đổi khóa Diffie-Hellman

1.2 LỊCH SỬ PHÁT TRIỂN

Năm 1976, một sự đột phá đã thay đổ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óa Đó chính là 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 là trao đổ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)

Giao thức này được công bố đầu tiên bởi Whitfield Diffie và Martin Hellman vào năm 1976, dù rằng trước đó vài năm nó đã được phát minh một cách độc lập trong GCHQ, cơ quan tình báo Anh, bởi James H Ellis, Clifford Cocks và Malcolm J

Trang 5

Tiểu luận cuối kì ANMTT Chương 1: Giới thiệu về giao thức Diffie-Hellman

Thực hiện: Nhóm 21 2 GV: Ths.Nguyễn Thanh Trà

Williamson nhưng được giữ bí mật Năm 2002, Hellman đề xuất thuật toán nên được gọi là trao đổi khóa Diffie–Hellman–Merkle để ghi nhận sự đóng góp của Ralph Merkle trong phát minh lĩnh vực mật mã hóa khóa công khai (Hellman, 2002) Năm

2002, Martin Hellman viết: “Hệ thống này cho tới nay được biết đến với tên gọi Trao đổi khóa Diffie–Hellman Khi hệ thống lần đầu tiên được mô tả trong bài báo của Diffie

và tôi, đó là một hệ thống phân phối khóa công khai, một khái niệm nêu ra bởi Merkle,

vì vậy nó nên được gọi là Trao đổi khóa 'Diffie–Hellman–Merkle' nếu chúng ta cần một cái tên cho nó Tôi hy vọng rằng chút lời mọn của tôi ở đây sẽ giúp mọi người ghi nhận

sự đóng góp tương xứng của Merkle trong phát minh lĩnh vực mật mã hóa khó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óa đối xứng (symmetric key algorithms), 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ả hai 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ữa đều thuộc về loại này Đương nhiên, khóa của một mã chính là sách mã (codebook), và là 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 trao đổ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 đưa 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 đưa thư trung thành Vấn đề này chưa bao 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 lý được khi số lượng người tham gia tăng lên, hay khi người ta không còn các kênh an toàn để trao đổi khóa nữa, hoặc lúc họ phải liên tục thay đổi 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

Trang 6

Tiểu luận cuối kì ANMTT Chương 1: Giới thiệu về giao thức Diffie-Hellman

Thực hiện: Nhóm 21 3 GV: Ths.Nguyễn Thanh Trà

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óa dùng khóa đối xứng Hệ thống trao đổ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 an toàn hơn, hơn tất

cả những gì có thể làm trước đây

Mặc dù giao thức trao đổi khóa Diffie–Hellman bản thân nó là giao thức trao đổi khóa ẩn danh (không xác thực), nó đã đưa ra một nền tảng cơ sở cho nhiều loại giao thức xác thực và được sử dụng để tạo nên bí mật chuyển tiếp hoàn hảo trong chế độ ngắn hạn của giao thức Transport Layer Security (EDH hoặc DHE tùy theo bộ mã hóa) 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

1.3 CÁC KHÁI NIỆM CƠ BẢN

1.3.1 Bài toán logarit rời rạc

Phát biểu bài toán logarit rời rạc: “Cho số nguyên tố p, gọi g ∈ Z* là phần tử sinh (generator) và một phần tử β ∈ Z* Cần xác định số nguyên dương a ∈ Z* sao cho ga ≡

β (mod p), kí hiệu a = loggβ Trên thực tế, bài toán logarit rời rạc thuộc nhóm NP hay nói cách khác, chưa có thuật toán có thời gian đa thức nào có thể giải quyết được bài toán này Với p có tối thiểu 150 chữ số và p-1 có thừa số nguyên tố đủ lớn, phép toán lũy thừa modulo p có thể xem như là hàm một chiều hay việc giải bài toán logarit rời rạc trên Zp xem như không thể thực hiện được Lợi thế của bài toán logarit rời rạc trong xây dựng hệ mật là khó tìm được logarit rời rạc, xong bài toán lấy lũy thừa lại có thể tính toán hiệu quả theo thuật toán “bình phương và nhân” Nói cách khác, lũy thừa theo modulo p là hàm một chiều với các số nguyên tố p thích hợp

1.3.2 Trao đổi khóa Diffie-Hellman

Trao đổ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 trao đổi dữ liệu thông qua mạng công cộng Đây

là một trong số nhiều phương thức dùng để trao đổ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ơ quan ủy thác) làm nhiệm

Trang 7

Tiểu luận cuối kì ANMTT Chương 1: Giới thiệu về giao thức Diffie-Hellman

Thực hiện: Nhóm 21 4 GV: Ths.Nguyễn Thanh Trà

vụ điều hành hoặc phân phối khóa Phương pháp này cho phép hai bên (người, thực thể giao tiếp) thiết lập một khóa bí mật chung để mã hóa dữ liệu sử dụng trên kênh truyền thông không an toàn mà không cần có sự thỏa thuận trước về khóa bí mật giữa hai bên Khóa bí mật tạo ra sẽ được sử dụng để mã hóa dữ liệu với phương pháp mã hóa khóa đối xứng

Xét về bản chất, sức mạnh thật sự của Diffie-Hellman đến từ bài toán DLP (Discrete Logarithm Problem – Bài toán logarit rời rạc) Đây là bài toán ngược của phép tính Modular Exponentiation (tương ứng với việc tìm c theo công thức: c = be mod m) Ví

dụ, với b=7, e=3 và m=13 thì sẽ tính được là c=73 mod 13=343 mod 13=5 Và khi đó DLP là bài toán tìm e trong công thức c=be mod m khi biết c, b và m DLP được các bậc thầy toán học xác định là “khó nhằn” – tức là chưa có thuật toán hiệu quả để tính toán và đây chính là cơ sở cho sức mạnh bảo mật của Diffie-Hellman

1.4 ƯU, NHƯỢC ĐIỂM CỦA DIFFIE-HELLMAN

-Ưu điểm:

➢ Người gửi và người nhận không cần biết trước về nhau

➢ Sau khi các khóa được trao đổi, việc truyền dữ liệu có thể được thực hiện thông qua một kênh an toàn

➢ Việc chia sẻ khóa bí mật là an toàn

-Nhược điểm:

➢ Thuật toán không thể sử dụng cho bất kỳ trao đổi khóa bất đối xứng nào

➢ Không thể sử dụng cho chữ ký điện tử

➢ Vì nó không xác thực bất kì bên nào trong quá trình truyền, trao đổi khóa Diffie-Hellman dễ bị tấn công giữa các bên (man-in-the-middle attack)

Trang 8

Tiểu luận cuối kì ANMTT Chương 2: Giao thức thỏa thuận khóa Diffie-Hellman

Thực hiện: Nhóm 21 5 GV: Ths.Nguyễn Thanh Trà

CHƯƠNG 2: GIAO THỨC THỎA THUẬN KHÓA DIFFIE-HELLMAN

2.1 CÁCH THIẾT LẬP GIAO THỨC DIFFIE-HELLMAN

❖ Tình huống:

• Alice và Bob muốn chia sẻ thông tin bảo mật cho nhau 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ọ trao đổ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:

• Alice 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 lâu trước khi phần còn lại của giao thức, g được giả định là đượ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 sau để trao đổi:

1 Alice chọn ngẫu nhiên số XA(0 ≤ XA ≤ q-1) bí mật, tính YA = (αX Amod p) và gửi YA cho Bob

2 Tương tự, Bob chọn ngẫu nhiên số XB (0 ≤ XB ≤ q-1) bí mật, tính

YB=(αX Bmod p) và gửi YB cho Alice

3 Alice tính được khóa: KA = YBXA mod q

4 Bob tính được khóa: KB = YAXB mod q

• Bây giờ Alice và Bob có cùng khóa chung là: KA = KB = αXA XB mod q

Trang 9

Tiểu luận cuối kì ANMTT Chương 2: Giao thức thỏa thuận khóa Diffie-Hellman

Thực hiện: Nhóm 21 6 GV: Ths.Nguyễn Thanh Trà

• Mô tả giao thức Diffie - Hellman bằng bảng sau:

Bảng 2 1:Mô tả giao thức Diffie-Hellman

Chú ý là chỉ có X A , X B và K A , K B là được giữ bí mật Tất cả các giá trị còn lại như q,

α, Y A , Y B đều công khai Một khi Alice 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ị X A , X B và q cần được lấy lớn hơn, α không cần lấy giá trị quá lớn Thực tế thì α thường lấy giá trị 2 hoặc 5

Trang 10

Tiểu luận cuối kì ANMTT Chương 2: Giao thức thỏa thuận khóa Diffie-Hellman

Thực hiện: Nhóm 21 7 GV: Ths.Nguyễn Thanh Trà

2.2 SƠ ĐỒ GIAO THỨC DIFFIE-HELLMAN

Hình 2 1: Sơ đồ giao thức Diffie-Hellman

Trang 11

Tiểu luận cuối kì ANMTT Chương 2: Giao thức thỏa thuận khóa Diffie-Hellman

Thực hiện: Nhóm 21 8 GV: Ths.Nguyễn Thanh Trà

2.3 PHẦN VÍ DỤ

Hình 2 2: Ví dụ trao đổi khoá giữa hai bên

Giả sử khóa trao đổi dựa trên số nguyên q=353 và căn nguyên thủy của nó trong

trường hợp này  = 3 A và B lựa chọn những khóa riêng là XA=97 và XB=233 Việc tính ra khóa công khai sẽ là:

A tính được YA = 3 97 mod 353 = 40

B tính được YB = 3 233 mod 353 = 248

Sau khi chúng trao đổi khóa công khai, mỗi bên sẽ tính được khóa bí mật chung là:

A tính được K = (YB)XA mod 353 = 248 97 mod 353 = 160

B tính được K = (YA)XB mod 353 = 40 233 mod 353 = 160

Trang 12

Tiểu luận cuối kì ANMTT Chương 2: Giao thức thỏa thuận khóa Diffie-Hellman

Thực hiện: Nhóm 21 9 GV: Ths.Nguyễn Thanh Trà

2.4 MỞ RỘNG BÀI TOÁN CHO NHIỀU BÊN

Thoả thuận khoá DH 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ư vậy bằng cách lặp các giao thức thoả thuận và trao đổi dữ liệu trung gian

Giả sử với 3 người A, B, C:

Hình 2 3: Sơ đồ mở rộng giao thức Diffie-Hellman trong kịch bản cho ba bên

1 Các bên đạt được thoả thuận chung về tham số giải thuật là q và α

2 Các bên tự sinh khoá bí mật XA , XB , XC

Trang 13

Tiểu luận cuối kì ANMTT Chương 2: Giao thức thỏa thuận khóa Diffie-Hellman

Thực hiện: Nhóm 21 10 GV: Ths.Nguyễn Thanh Trà

3 A tính khoá công khai YA = 𝛼𝑋 𝐴mod q và gửi cho B

4 B tính YBA=(𝑌𝐴)𝑋𝐵mod q và gửi cho C

5 C tính YCBA = (𝑌𝐵)𝑋 𝐶mod q và lấy nó làm khoá bí mật

6 B tính khoá công khai YB = 𝛼𝑋 𝐵mod q và gửi cho C

7 C tính YCB=(𝑌𝐵)𝑋𝐶mod q và gửi cho A

8 A tính YACB= (𝑌𝐶)𝑋𝐴mod q và lấy nó làm khoá bí mật

9 C tính khoá công khai YC = 𝛼𝑋 𝐶mod q và gửi cho A

10 A tính YAC= (𝑌𝐶)𝑋𝐴mod q và gửi cho B

11 B tính YBAC= (𝑌𝐴)𝑋𝐵 mod q và lấy nó làm khoá bí mật

Một người khác nếu muốn phá hoại hoặc xâm nhập trái phép có thể biết được các tổ hợp YA YB Yc YAB YBC YAC nhưng sẽ không thể kết hợp chúng thành YABC Để mở rộng cơ chế này cho các nhóm lớn hơn cần tuân thủ 2 nguyên tắc:

- Bắt đầu với một khoá “rỗng”, khoá 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 cũng đều có thể bị công khai ( từ 1 đến N-1 ) nhưng giá trị cuối cùng (N) sẽ không được để công khai vì nó sẽ tạo thành khoá bí mật dùng chung Mỗi người dùng sẽ thu về bản sao của khoá mật bằng cách sử dụng khoá mật của chính họ lúc cuối cùng

Dựa vào nguyên tắc tạo khoá này, có các cách sắp xếp thứ tự chuyển khoá:

- Phương pháp 1: sắp xếp N bên tham gia vào một vòng tròn và có N khoá xoay quanh vòng tròn này, cho tới khi mỗi bên đều đã đóng góp vào N khoá 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

Ngày đăng: 26/02/2023, 16:50

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w