1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu về trao đổi và thoả thuận khoá, phân phối khóa DiffieHellman. Lập trình Hệ mật Vigenere.

33 71 2

Đ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 đề Tìm Hiểu Về Trao Đổi Và Thoả Thuận Khoá, Phân Phối Khóa Diffie-Hellman. Lập Trình Hệ Mật Vigenere.
Tác giả Trần Thị Khánh
Người hướng dẫn ThS. Đỗ Như Hải
Trường học Trường Đại Học Mỏ - Địa Chất
Chuyên ngành Công Nghệ Thông Tin
Thể loại tiểu luận
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 33
Dung lượng 1,48 MB

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

Nội dung

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.

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

-*** -LÝ THUYẾT MẬT MÃ + BTL

ĐỀ TÀI Tìm hiểu về trao đổi và thoả thuận khoá, phân phối khóa Diffie-

Hellman Lập trình Hệ mật Vigenere.

Giảng viên hướng dẫn:

Sinh viên thực hiện:

Lớp:

ThS Đỗ Như Hải Trần Thị Khánh (1721050490) MMT K62B

Hà Nội – 2021

Trang 2

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ốnghiệ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ữ vaitrò 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, muasắ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 haymộ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ảomậ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 sinh viên Trần Thị Khánh biên soạn dựa trên những kiến thức mà thầyThS Đỗ Như Hải đã chỉ dạy và thông qua sự tìm hiểu, nghiên cứu tích cực của em Tiểu luậncủa em đi sâu vào trình bày giao thức thỏa thuận khóa Diffie Hellman và Lập trình Hệ mậtVigenere Mặc dù 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 để em hoàn thiện hơn tiểu luận này

Trang 3

MỤC LỤC

DANH MỤC HÌNH VẼ

HÌNH 1.2.3.1: GIAO THỨC THOẢ THUẬN KHOÁ.

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

Trang 4

ĐỀ TÀI: Tìm hiểu về trao đổi và thoả thuận khoá, phân phối khóa Diffie-Hellman Lập

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 khoá đốixứ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ậttoá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ùngtrong 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 đổigiữ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 toà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 giaolư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ệcgần như không thể kiểm soát được khi số lượng người tham gia tăng lên, hay khi người dùngkhông còn các kênh an toàn để trao đổi kháo nữa Cụ thể là mỗi một cặp mạng lưới truyềnthông cần phải có một khoá 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 khoá 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ấtnhiều, đồng thời cũng an toàn hơn

Mặc dù, bản thân thuật toán là một giao thức chọn khoá nặc danh nhưng nó đã tạo ra một

Trang 5

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 antoàn và an toà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 quá trình chuyển Việc chuyển giao hay đúng hơn là tạo ra khóa bí mật ở cả haibê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 khoá 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 khoá 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áttriển và trao đổi khóa một cách an toàn qua một kênh không an toàn

Làm thế nào bạn có thể trao đổi thông tin một cách an toà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ôngkhai đầ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ặpnhau trước đây tạo khóa được chia sẻ một cách an toàn, ngay cả trên một kênh không an toà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ềuhà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ênliê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

Trang 6

Tiếp theo A tính và gửi cho B, B tính và gửi cho A.

Trên cơ sở đó A tính được khoá:

B tính được khoá:

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 toán mã hóa khóa đối xứng Giao thức thỏa thuận khóa DiffieHellman nguyên thủy được thể hiện như sau:

Hình 1.2.3.1: Giao thức thoả thuận khoá.

 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

Trang 7

+

B nhận được XA = 13 sau đó tính toán khoá, 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á đốixứ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 khoá 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 toánkhó, 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óaqua 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 ngoài chínhbản thân họ biết về màu đó Ngoài môi trường mạng Internet công khai thì có sẵn 1 màu, côngkhai, 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 ngoài Internet là màu vàng

Trang 8

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:

Trang 9

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

Trang 10

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àumớ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

Trang 11

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 racuối cùng này chính là màu chung của cả 2.

Hình 1.2.4.4: Kết quả

Trang 12

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ộtgiao 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 khoá.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 khoá chung:

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

Trang 13

Giao thức trao đổi khoá 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 toán “biết XA và XB tìm ” chính là bài toán Diffie-Hellman ta có nóirằng bài toán đó tương đương với bài toán phá mật mã El Gamal Bây giờ ta chứng minh điềunà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 toán A giải bài toán Diffie-Hellman Ta sẽ dùng A để phá mã ElGamalnhư 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 toá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 toà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ẳnghạ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ựchiệ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à Atưở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!

Trang 14

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ểmchứng để xác thực tính đúng đắn của các khoá công khai XA và XB Đưa vào giao thức trao đổikhoá Diffie-Hellman thêm vai trò điều phối của một TA để được một hệ phân phối khoá Diffie-Hellman

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 khoá 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 vaitrò 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ì đếnkhoá, chẳng hạn như xác nhận thuật toán kiểm thử chữ ký của người dùng, còn bản thân cácthông tin về khoá (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ã hoá bất đối xứng

Thuật toá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óachung) để 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óariê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: Khoá bất đối xứng

Việc thực thi thuật toán mã hóa bất đối xứng là chậm Vì thuật toá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 toán cao Do đó, mã hóa bất đối xứng được sử dụngcho trao đổi chìa khóa một cách an toàn thay vì truyền dữ liệu số lượng lớn Mã hóa bất đối

Trang 15

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 luôn 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 toán mã hóa bất đối xứng chậm hơn so với thuật toán mã hóa đốixứng Điều này là do các thuật toán mã hóa bất đối xứng phức tạp hơn và có gánh nặng tínhtoán cao

Các thuật toá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 đốixứ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 khoá 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 khoá bí mật chung, thì một trong hai người chọnkhoá ngẫu nhiên K, sau đó truyền nó một cách an toàn đến người kia bằng phương pháp nào

đó, ví dụ bằng mã khoá công khai hay phương pháp “giấu tin” Phương pháp này phải dùngnhiều thông tin truyền đi và cất giữ, mặt khác độ an toàn thấp vì phải truyền đi “trọn vẹn” mộtkhoá 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 toàn các thông tin về khoá bí mật

Trang 16

Tức là bảo đảm rằng kẻ xấu khó có thể khám phá hay tráo đổi khoá mật.

+ 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ườidùng tính toán được khoá 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 khoá 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 độ antoà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 khoá bí mật,chứ không truyền trực tiếp khoá bí mật

Kẻ xấu có trộm được tin trên đường truyền, cũng khó tính được khoá mật vì không biếtvật liệu bí mật của từng người dùng

1.6 Hệ phân phối khoá Diffie-Hellman.

Hệ phân phối khoá 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 khoáchung bí mậtcho 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 Ngoài ra, TA có một sơ đồ chữ kývới thuật toán ký (bí mật) và thuật toá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 Agiữ 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ệucô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

Trang 17

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ệucô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

Khi hai thành viên A và B trong mạng cần có một khoá bí mật chung để truyền tin bảomậ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 khoá:

Khoá 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ủamì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ậttoá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 toán Diffie-Hellman tương đương: biết và , tính Đây là một bài toán khó tương đương bài toá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 khoá Diffie-Hellman không chỉ giới hạn để thương lượng một khoá dùngchung 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ấymod 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 khoá bí mật, đặt tên là a, b, c

3 A tính và gửi nó cho B

Ngày đăng: 17/08/2021, 10:31

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w