1. Trang chủ
  2. » Giáo Dục - Đào Tạo

AN TOÀN và bảo mật hệ THỐNG THÔNG TIN đề tài các THUẬT TOÁN mã hóa bất đối XỨNG

17 38 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

Định dạng
Số trang 17
Dung lượng 681,34 KB

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

Nội dung

Phương pháp trao đổi khóa Diffie–Hellman 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ôn

Trang 1

AN TOÀN VÀ BẢO MẬT HỆ THỐNG THÔNG TIN

Thành Viên Nhóm: Hoàng Thị Thùy Giang

Nguyễn Đức Việt Nguyễn Văn Thản Nguyễn Thị Nụ Trần Đức Long

Đề tài

CÁC THUẬT TOÁN MÃ HÓA BẤT ĐỐI XỨNG

Giảng viên hướng dẫn: ThS Bùi Hải Phong

Trang 2

NỘI DUNG

1

2

TRAO ĐỔI KHÓA DIFFIE-HELLMAN

MÃ HÓA CÔNG KHAI RSA

Trang 3

1 TRAO ĐỔI KHÓA DIFFIE-HELLMAN

1 1 Trao đổi khóa diffie-hellman là gì?

- Trao đổi khóa Diffie–Hellman (D-H) là một phương pháp trao đổi khóa được phát minh sớm nhất

trong mật mã học Phương pháp trao đổi khóa Diffie–Hellman 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

- 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 pháp này được áp dụng sau đó cho thuật toán RSA

Trang 4

1.2 PHƯƠNG PHÁP TRAO ĐỔI KHÓA DIFFIE – HELLMAN

- Phương pháp trao đổi khóa Diffie-Hellman dùng để thiết lập một khóa bí mật giữa người gửi và người nhận mà không cần dùng đến mã hóa công khai Phương pháp này dùng hàm một chiều làm hàm logarith rời rạc Diffie-Hellman không có ý nghĩa về mặt mã hóa giống như RSA

- Trước tiên Alice và Bob sẽ thống nhất sử dụng chung một số nguyên tố p và một số g nhỏ hơn p và là primitive root của p (nghĩa là phép toán gx mod p khả nghịch) Hai số pvà g không cần giữ bí mật Sau

đó Alice chọn một số a và giữ bí mật số a này Bob cũng chọn một số b và giữ bí mật số b Tiếp theo Alice tính và gửi ga mod p cho Bob, Bob tính và gửi gb mod p cho Bob

Trên cơ sở đó Alice tính:

(gb)a mod p = gab mod p

Bob tính:

(ga)b mod p = gab mod p

Trang 5

1.2 PHƯƠNG PHÁP TRAO ĐỔI KHÓA DIFFIE – HELLMAN

mã hóa đối xứng

không thể dùng cách:

gagb mod p = ga+b mod p ≠ gab mod p

theo công thức:

a = dlogg, p ga hay b = dlogg, p gb

là không khả thi do tính phức tạp của phép logarith rời rạc Vậy Trudy không thể nào tính

Trang 6

2.2 PHƯƠNG PHÁP TRAO ĐỔI KHÓA DIFFIE – HELLMAN

+Tuy nhiên, thuật toán Diffie-Hellman lại thất bại đối với

cách tấn công kẻ đứng giữa

+Trong phương pháp tấn công này, Trudy đứng giữa Alice

và Bob Trudy chặn các thông điệp của Alice và Bob, giả

mạo các thông điệp mà Alice và Bob không hay biết Alice

vẫn nghĩ là nhận dữ liệu từ Bob và ngược lại

+Do đó Trudy có thể thiết lập khóa Diffie-Hellman gat mod

p với Alice và khóa gbt mod p với Bob Khi Alice gửi dữ

liệu, Trudy giải mã bằng khóa gat mod p, sau đó mã hóa lại

bằng gbt mod p và gửi cho Bob Như vậy Alice và Bob

không hay biết còn Trudy thì xem trộm được dữ liệu

Trang 7

2.3 CHƯƠNG TRÌNH THUẬT TOÁN MÃ HÓA RSA.

Trang 8

2 MÃ HÓA CÔNG KHAI RSA

2.1 RSA là gì?

Mật mã hóa khóa công khai là một dạng mật mã hóa cho phép người sử dụng trao đổi

các thông tin mật mà không cần phải trao đổi các khóa chung bí mật trước đó Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai và khóa cá nhân (hay khóa bí mật).

Trong mật mã hóa khóa công khai, khóa cá nhân phải được giữ bí mật trong khi khóa công khai được phổ biến công khai Trong 2 khóa, một dùng để mã hóa và khóa còn lại dùng để giải mã Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí mật nếu chỉ biết khóa công khai.

Trang 9

2.1 RSA LÀ GÌ?

- Thuật toán được 3 nhà khoa học Ronald Rivest, Adi Shamir và Leonard Adleman phát minh năm

1977 tên giải thuật RSA lấy theo chữ cái đầu của tên 3 ông Độ an toàn của RSA dựa trên tính khó của việc phân tích số nguyên rất lớn

- RSA sử dụng một cặp khóa:

• Khóa công khai (Public key) dùng để mã hóa;

• Khóa riêng (Private key) dùng để giải mã

• Chỉ khóa riêng cần giữ bí mật Khóa công khai có thể công bố rộng rãi

Kích thước khóa của RSA:

• Khóa < 1024 bít không an toàn hiện nay

• Khuyến nghị dùng khóa >= 2048 bít với các ứng dụng mật mã dân sự hiện nay

• Tương lai nên dùng khóa >=3072 bít

Trang 10

2.2 QUÁ TRINH HOẠT ĐÔNG CỦA RSA

Trang 11

2.2.1 Thủ tục sinh khóa RSA

Mấu chốt cơ bản của việc sinh khóa trong RSA là tìm được bộ 3 số tự nhiên e, d và n sao cho:

Cụ thể, khóa của RSA được sinh như sau:

Chọn 2 số nguyên tố p và q

Tính n = pq Sau này, n sẽ được dùng làm modulus trong cả public key và private key.

Tính một số giả nguyên tố bằng phi hàm Carmichael như sau: λ(n) = BCNN(λ(p),λ(q)) = BCNN(p

− 1, q − 1) Giá trị này sẽ được giữ bí mật.

Trang 12

2.2.1 THỦ TỤC SINH KHÓA RSA

- Chọn một số tự nhiên e trong khoảng (1, λ(n)) sao cho ƯCLN(e, λ(n)) = 1, tức

là e và λ(n) nguyên tố cùng nhau.

- Tính toán số d sao cho d ≡ 1/e (mod λ(n)) hay viết dễ hiểu hơn thì de ≡ 1 (mod λ(n)) Số d được gọi là số nghịch đảo modulo của e (theo modulo mod λ(n)).

- Public key sẽ là bộ số (n, e), và private key sẽ là bộ số (n, d) Chúng ta cần giữ private key thật cẩn thận cũng như các số nguyên tố p và q vì từ đó có thể tính toán các khóa rất dễ dàng.

Trang 13

2.2.2 THỦ TỤC MÃ HÓA, GIẢI MÃ RSA

Tiến hành mã hóa với public key (n, e) và giải mã với private key (n, d).

Nếu chúng ta có bản rõ M, chúng ta cần chuyển nó thành một số tự nhiên m trong khoảng (0, n) sao cho m, n nguyên tố cùng nhau Việc này rất dễ dàng thực hiện bằng cách thêm một các kỹ thuật padding Tiếp theo, chúng ta sẽ má hóa m, thành c như sau

Sau đó giá trị c sẽ được chuyển cho người nhận.Ở phía người nhận, họ sẽ giải mã từ c để lấy được m như sau:

Từ m có thể lấy lại được bản tin bằng cách đảo ngược padding

Trang 14

2.2.3 MỘT SỐ YÊU CẦU VỚI QUÁ TRÌNH SINH KHÓA RSA

-Các số nguyên tố p và q phải được chọn sao cho việc phân tích n (n = pq) là không khả thi về

mặt tính toán, p và q nên có cùng độ lớn (tính bằng bit) và phải là các số đủ lớn;

• Nếu n có kích thước 1024 bít thì p và q nên có kích thước khoảng 512 bít

• Nếu n có kích thước 2048 bít thì p và q nên có kích thước khoảng 1024 bít.

- Hiệu số p – q không nên quá nhỏ, do nếu p q quá nhỏ, tức p gần bằng q và p gần bằng √n à chọn các số nguyên lẻ ở gần √n và thử nhiều lần.

• Khi có được p và tính q, và tìm ra d là khóa bí mật từ khóa công khai e và F(n)

• Nếu p và q được chọn ngẫu nhiên thì p – q đủ lớn, khả năng hai số này bị phân tích từ n giảm đi

Trang 15

- Trao đổi khóa Diffie-Hellman thường được thực hiện cùng với RSA hoặc các thuật toán khác để cung cấp xác thực cho kết nối RSA cho phép các bên chưa từng gặp nhau giao tiếp an toàn

• RSA cho phép người dùng mã hóa tin nhắn bằng khóa chung công khai của họ, do đó họ chỉ có thể được giải mã bằng khóa riêng phù hợp Tuy nhiên, trong thực tế, RSA không được sử dụng để mã hóa toàn bộ thông tin liên lạc, điều này sẽ quá kém hiệu quả RSA thường chỉ được sử dụng như một phương tiện để xác thực cả hai bên

• Để xác thực lẫn nhau, mỗi bên sẽ ký một tin nhắn bằng khóa riêng của họ và sau đó gửi cho đối tác liên lạc của họ Mỗi người nhận có thể xác minh danh tính của bên kia bằng cách kiểm tra các tin nhắn

đã ký so với khóa chung trên chứng nhận kỹ thuật số đối tác truyền thông của họ

TỔNG KẾT

Trang 16

Khi cả hai bên đã được xác thực, về mặt kỹ thuật, có thể tiếp tục sử dụng RSA để gửi tin nhắn được mã hóa một cách an toàn giữa họ, tuy nhiên điều đó không hiệu quả

• Để giải quyết vấn đề này, nhiều giao thức bảo mật sử dụng một thuật toán như trao đổi khóa Diffie-Hellman để đưa ra một bí mật chung có thể được sử dụng để thiết lập khóa đối xứng được chia sẻ Khóa đối xứng này sau đó được sử dụng trong thuật toán khóa đối xứng, như AES, để mã hóa dữ liệu rằng hai bên có ý định gửi an toàn giữa họ

• Ngoài ra còn có một số nhược điểm khác từ việc chỉ sử dụng RSA RSA cần đệm để đảm bảo an toàn,

do đó, một thuật toán bổ sung sẽ cần được triển khai phù hợp cùng với nó để làm cho nó an toàn Trong nhiều tình huống, tốt nhất là chỉ áp dụng RSA kết hợp với trao đổi khóa Diffie-Hellman Ngoài

ra, trao đổi khóa Diffie-Hellman có thể được kết hợp với một thuật toán như Tiêu chuẩn Chữ ký số (DSS) để cung cấp xác thực, trao đổi khóa, bảo mật và kiểm tra tính toàn vẹn của dữ liệu

TỔNG KẾT

Ngày đăng: 29/07/2021, 11:42

TỪ KHÓA LIÊN QUAN

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

w