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

Bài tập lớn môn an toàn bảo mật thông tin đề tài xây dựng chương trình mã hóa và giải mã rsa

29 2 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 đề Xây Dựng Chương Trình Mã Hóa Và Giải Mã RSA
Tác giả Trịnh Thị Lệ Nhung, Phạm Lê Hà Trang, Nguyễn Lam Trường, Hoàng Thị Xuân
Người hướng dẫn Nguyễn Bá Nghiễn
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành An Toàn Bảo Mật Thông Tin
Thể loại Bài Tập Lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 29
Dung lượng 756,85 KB

Nội dung

Kiến thức lĩnh hội và bài học kinh nghiệm...253.1 Nội dung đã thực hiện...253.2 Hướng phát triển...25KẾT LUẬN...27 Trang 3 Lời nói đầuTrước đây khi công nghệ máy tính chưa phát triển, k

Trang 1

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 MÔN: AN TOÀN BẢO MẬT THÔNG TIN

Đề tài:Xây dựng chương trình mã hóa và giải mã RSA

Hà Nội, 2023

Trang 2

MỤC LỤC

Chương 1 Tổng quan 4

1.1 Giới thiệu về an toàn thông tin 4

1.2 Khái niệm cơ bản về mật mã học 5

1.3 Mã hóa RSA 7

Chương 2 Kết quả nghiên cứu 11

2.1 Giới thiệu 11

2.2 Nội dung thuật toán 11

2.2.1 Thuật toán Euclid 11

2.2.2 Định lý Fermat 13

2.2.3 Hàm số Euler 13

2.2.4 Thuật toán Miller-Rabin - Kiểm tra số nguyên tố lớn 14

2.2.5 Định lý phần dư Trung Hoa 17

2.2.6 Mật mã khóa công khai 18

2.3 Thiết kế giao diện 20

2.4 Cài đặt và triển khai 20

2.5 Thực hiện bài toán 21

2.5.1 Phạm Lê Hà Trang 22

2.5.2 Trịnh Thị Lệ Nhung 22

2.5.3 Nguyễn Lam Trường 22

2.5.4 Hoàng Thị Xuân 23

Chương 3 Kiến thức lĩnh hội và bài học kinh nghiệm 25

3.1 Nội dung đã thực hiện 25

3.2 Hướng phát triển 25

KẾT LUẬN 27

TÀI LIỆU THAM KHẢO 28

Trang 3

Lời nói đầu

Trước đây khi công nghệ máy tính chưa phát triển, khi nói đến vấn

đề an toàn bảo mật thông tin, chúng ta thường hay nghĩ đến các biện phápnhằm đảm bảo cho thông tin được trao đổi hay cất giữ một cách an toàn

và bí mật, chẳng hạn là các biện pháp như: Đóng dấu và ký niêm phongmột bức thư để biết rằng lá thư có được chuyển nguyên vẹn đến ngườinhận hay không, dùng mật mã mã hóa thông điệp để chỉ có người gửi vàngười nhận hiểu được thông điệp, lưu giữ tài liệu trong các két sắt có khóatại nơi được bảo vệ nghiêm ngặt

Ngày nay với sự phát triển của khoa học công nghệ, đặt biệt là sựphát triển của Internet, việc sử dụng máy tính và điện thoại cá nhân càngtrở lên rộng rãi, dẫn đến càng nhiều thông tin được lưu trữ trên máy tính

và gửi đi trên mạng Internet Do đó nhu cầu về an toàn và bảo mật thôngtin trên máy tính càng nhiều và việc sử dụng mật mã mã hóa càng đượcphổ biến Trong bài tập lớn này, chúng tôi thực hiện xây dựng chươngtrình mã hóa và giải mã mật mã hóa công khai RSA

Trang 4

Chương 1 Tổng quan1.1 Giới thiệu về an toàn thông tin

An toàn thông tin mạng là sự bảo vệ thông tin, hệ thống thông tintrên mạng tránh bị truy nhập, sử dụng, tiết lộ, gián đoạn, sửa đổi hoặc pháhoại trái phép nhằm bảo đảm tính nguyên vẹn, tính bảo mật và tính khảdụng của thông tin Ba tính chất là tính bảo mật, tính nguyên vẹn và tínhkhả dụng trong an toàn thông tin mạng được gọi là tam giác bảo mật CIA(Confidentiality - Integrity - Availability)

 C: (Confidentialily) Bảo mật thông tin nghĩa là chỉ những người,máy tính được cấp phép mới có quyền truy cập và sử dụng thông tincủa doanh nghiệp, hay nói cách khác, bảo mật là tránh để rò rỉ thôngtin ra bên ngoài hệ thống Những tin tặc có vô vàn cách thức để đánhcắp thông tin với mục đích xấu như giám sát hệ thống mạng của doanhnghiệp, hay Social Engineering Vì vậy, các doanh nghiệp cần cải tiến

hệ thống bảo mật thông tin (sử dụng firewall hoặc ACL, yêu cầungười dung cung cấp credential…) để tránh những việc đáng tiếc xảy

ra Tính mật của thông tin được đại diện bởi quyền READ

 I: (Intergrity) Đảm bảo tính toàn vẹn của thông tin nghĩa là chỉngười có thẩm quyền mới được chỉnh sửa thông tin nhưng không làmthay đổi sự chính xác của dữ liệu Một cách phổ biến nhất để tội phạmmạng thay đổi thông tin chính là xâm nhập vào các lỗ hổng bảo mậttrong hệ thống của doanh nghiệp Tính toàn vẹn của thông tin đượcđại diện bởi quyền MODIFY

 A: (Availability) Có nghĩa là hệ thống lưu trữ và xử lý thông tinluôn sẵn sàng để được truy xuất ở bất cứ thời điểm nào với mục đíchtránh những rủi ro về phần cứng, phần mềm, hay thậm chí tránh được

Trang 5

hình thức tấn công từ chối dịch vụ (DoS).

 Non-Repudiation: Tính không thể chối bỏ, nghĩa là dữ liệu ngườinào gửi đi thì họ phải có trách nhiệm với các thông tin của mình thôngqua các xác nhận nguồn gốc như chữ kí điện tử

Hình 1.1 An toàn thông tin

Để thực hiện điều này chúng ta áp dụng các biện pháp xác thực và

mã hóa Và mật mã học là nghiên cứu về vấn đề mã hóa Mã hóa là mộttiến trình biến đổi dữ liệu từ dạng plaintext (văn bản thuần túy dễ dàngnhận biết) thành kết quả ciphertext, dạng dữ liệu không thể đọc được nếukhông được giải mã bằng các khóa thích hợp Mục tiêu của mã hóa làngăn ngừa việc tấn công đánh cắp dữ liệu trái phép hoặc phòng ngừa việcmất mát dữ liệu khi bị tấn công vật lý như trộm đĩa cứng, máy tính xáchtay hay thậm chí đột nhập vào hệ thống vẫn không thể xem được dữ liệuriêng tư, bí mật đã được bảo vệ bằng các thuật toán mã hóa mạnh mẽ

1.2 Khái niệm cơ bản về mật mã học

Mật mã học là một lĩnh vực nghiên cứu về các phương pháp bảo vệcác thông tin quan trọng, nhằm đảm bảo tính bảo mật và riêng tư của dữliệu Trong mật mã học, các thuật toán được sử dụng để mã hóa thông tin

Trang 6

sao cho chỉ có người nhận cụ thể mới có thể giải mã, trong khi người kháckhông thể đọc được.

Hình 1.2.1: Mật mã học

Mật mã học hiện đại được ứng dụng nhiều trong:

 Lưu trữ mật khẩu và dữ liệu: Ngăn chặn dữ liệu bị rò rỉ thiệt hại

nếu ổ cứng bị đánh cắp

 Giao tiếp bảo mật: Thường thấy trong giao tiếp giữa người dùng

(client) và máy chủ (server)

 Thương mại điện tử: Bao gồm thanh toán điện tử, tiền tệ điện tử, v.v

 Chữ ký điện tử (digital signature) và nhiều loại dấu vết điện tử

khác (digital footprint)

Trong cuộc sống hằng ngày, chúng ta thường gặp các hệ thốngmật mã hóa, chẳng hạn như khi sử dụng Internet để trao đổi thông tinnhạy cảm hoặc khi sử dụng thẻ tín dụng để thanh toán

Các kỹ thuật mật mã hóa của mật mã học gồm có mã hóa đối xứng,

mã hóa không đối xứng, hash functions và chữ ký số Mỗi kỹ thuật cónhững ứng dụng riêng biệt và có độ an toàn khác nhau.Mật mã học baogồm hai nhánh, là mật mã học lập mã và mật mã học phân tích Mật mã

Trang 7

học lập mã với ý là tiến hành mã hoá thông tin để thực hiện việc che giấuthông tin, còn mật mã học phân tích là ngành học nghiên cứu phân tíchgiải dịch mật mã Hai cái đối lập với nhau, nhưng lại thúc đẩy lẫn nhau.

Dùng phương pháp mật mã có thể che dấu và bảo hộ những thôngtin cơ mật, làm cho người chưa được uỷ quyền không thể lấy được thôngtin, những thông tin được giấu kín kia được gọi là văn bản rõ, mật mã cóthể đem văn bản rõ biến đổi thành một loại hình khác, gọi là văn bản mật

Sự biến đổi văn bản rõ thành văn bản mật gọi là mã hoá bảo mật, quá trìnhngười thu nhận hợp pháp khôi phục từ văn bản mật trở thành văn bản rõđược gọi là quá trình giải mã (hoặc giải mật) Người thu nhận phi pháp có

ý đồ phân tích từ văn bản mật ra thành văn bản rõ, gọi là giải dịch

1.3 Mã hóa RSA

 Mục đích:

RSA là một thuật toán mã hóa khóa công khai được sử dụng rộng

rãi hiện nay Thuật toán này dựa trên sự khó khăn của việc phân tích các

số nguyên lớn thành những thừa số nguyên tố Khi tạo ra bộ khóa RSA,một khóa riêng tư và một khóa công khai sẽ được tạo ra Khóa công khai

có thể được cung cấp cho bất kỳ ai để mã hóa tin nhắn, trong khi khóariêng tư chỉ được giữ bởi người nhận để giải mã tin nhắn

 Quá trình mã hóa RSA được thực hiện như sau:

 Một khóa công khai RSA được tạo ra bao gồm hai số nguyên lớn vàngẫu nhiên (n và e) Số n được tạo bằng cách tính tích hai số nguyên

tố lớn và ngẫu nhiên (p và q) Tính n = pq Số e phải là số nguyên lớnhơn 1 và nhỏ hơn n, nó cũng phải không có ước chung lớn hơn 1 vớihàm totient (phi) của n

 Tạo ra một khóa riêng tư RSA bằng cách tính một số nguyên d để d lànghịch đảo của e trong mod phi(n) (d * e = 1 mod phi(n))

 Để mã hóa một thông điệp (m), sử dụng khóa công khai (n, e), tính c =m^e mod n

Trang 8

 Để giải mã một thông điệp mã hóa (c), sử dụng khóa riêng tư (n, d),tính m = c^d mod n.

 Ý tưởng

Năm 1977 RSA lần đầu tiên được ra mắt bởi Ron Rivest, AdiShamir và Leonard Adleman Cái tên RSA là bắt nguồn từ ba chữ cái đầutrong tên của ba nhà khoa học Mật mã khóa công khai sử dụng hai keykhác nhau là public key (khóa công khai) và private key (khóa riêng tư).Public key có thể được chia sẻ với mọi người, riêng private key thì cầnphải giữ bí mật

 Mô tả cách hoạt động của RSA:

 Tạo khóa:

Giả sử An và Bình cần trao đổi thông tin bí mật thông qua một kênhkhông an toàn (ví dụ như Internet) Với thuật toán RSA, An đầu tiên cầntạo ra cho mình cặp khóa gồm khóa công khai và khóa bí mật theo cácbước sau:

1 Chọn 2 số nguyên tố lớn p và q với p khác q , lựa chọn ngẫunhiên và độc lập

o Bước 5 có thể viết cách khác: Tìm số tự nhiên sao cho

d=(x(p-1)(q-1)+1)/e cũng là số tự nhiên Khi đó sử dụng giátrị

d mod(p - 1)(q - 1)

 Khóa công khai:

Trang 9

 Một dạng khác của khóa bí mật bao gồm:

o p và q, hai số nguyên tố chọn ban đầu,

o d mod (p-1) và d mod (q-1) (thường được gọi là dmp1 và dmq1)

o (1/q) mod p (thường được gọi là iqmp)

 Mã hóa:

Giả sử Bình muốn gửi đoạn thông tin M cho An Đầu tiên Bìnhchuyển M thành một số m < n theo một hàm có thể đảo ngược (từ m cóthể xác định lại M) được thỏa thuận trước Quá trình này được mô tả ởphần #Chuyển đổi văn bản rõ

Lúc này Bình có m và biết n cũng như e do An gửi Bình sẽ tính c làbản mã hóa của m theo công thức: c = me mod n

Hàm trên có thể tính dễ dàng sử dụng phương pháp tính hàm mũ(theo môđun) bằng (thuật toán bình phương và nhân) Cuối cùng Bình gửi

Trang 10

ed ≡ m (mod n)

Trang 11

Chương 2 Kết quả nghiên cứu2.1 Giới thiệu

o Tính: giá trị hàm số Euler φ(n) = (p-1).(q-1) (hàm phi Euler)

o Chọn một số tự nhiên sao cho 1 < e < φ(n) và là số nguyên tốcùng nhau với với φ(n) (tức là: gcd(e, φ(n)) = 1, để đảm bảo

e-1 mod φ(n) tồn tại duy nhất)

 Mã hóa : Thông điệp ban đầu: m (0 < m < n) Sử dụng khóa công khai

Ku = {e, n} để tính thông điệp mã hóa (ciphertext): c

2.2 Nội dung thuật toán

2.2.1 Thuật toán Euclid

Thuật toán Euclid còn được gọi là thuật toán Euclid's Algorithm, làmột phương pháp đơn giản để tìm ước chung lớn nhất (GCD) của hai sốnguyên dương

Cách làm như sau:

o Lấy hai số nguyên là a và b (a > b)

o Lấy phần dư của a khi chia cho b

Trang 12

o Nếu phần dư là 0 thì b bằng GCD của hai số a và b.

o Nếu phần dư khác 0 thì lấy b làm số mới, lấy phần dư làm số

kế tiếp, và tiếp tục thực hiện đến khi phần dư bằng 0

Công thức toán học cho thuật toán Euclid có thể được viết nhưsau: GCD(a, b) = GCD(b, a mod b)

Bằng cách lặp lại quá trình này liên tiếp, thuật toán sẽ trả vềGCD cuối cùng của a và b Thuật toán Euclid được sử dụng rộng rãitrong lĩnh vực toán học, đặc biệt là trong lý thuyết số học và khoa họcmáy tính

 Thuật toán Euclid mở rộng

Thuật toán Euclid mở rộng (Extended Euclidean Algorithm) là mộtphương pháp mở rộng của thuật toán Euclid để tìm ra cả GCD của hai sốnguyên dương và các hệ số Bézout (Bézout coefficients)

Cụ thể, với hai số nguyên dương a và b, với GCD(a, b) = d, thuậttoán Euclid mở rộng tìm ra các số nguyên x và y sao cho ax + by = d.Thật vậy, nếu ta tiến hành thực hiện các phép tính tìm GCD(a, b) bằngthuật toán Euclid thông thường, ta sẽ dễ dàng tính được cả 2 số x và ytheo công thức:

o Khi a mod b = 0 thì x = 0, y = 1

o Khi a mod b khác 0 thì:

x1, y1 là 2 số cần tìm cho quy ước b và a mod b:

GCD(b, a mod b) = bx1 + (a mod b)y1 => (bx1 + (a - [a/b]*b)y1)

=> ay1 + b(x1 - [a/b]y1)Vậy x sẽ bằng y1 và y sẽ bằng (x1 - [a/b]y1)

 Bổ đề bezout

Bổ đề Bézout (Bézout's Lemma), còn gọi là định lý Bézout, là mộtđịnh lý trong lý thuyết số học, xác định rằng với hai số nguyên a và b,không đồng thời bằng 0, thì luôn tồn tại các số nguyên x và y sao cho:

ax + by = gcd(a, b)Trong đó, gcd(a, b) là ước chung lớn nhất của hai số a và b

Bổ đề Bézout rất hữu ích trong việc giải nhiều bài toán trong lýthuyết số, đặc biệt là trong việc giải hệ phương trình tuyến tính Ngoài ra,định lý Bézout còn có một số ứng dụng trong các lĩnh vực khác như mãhóa RSA trong mật mã học

Một trường hợp đặc biệt của bổ đề Bézout là khi gcd(a,b) = 1, tức làhai số a và b không có ước chung ngoài 1 Khi đó, ta gọi hai số a và b là

Trang 13

cùng nhau Trong trường hợp này, ta có thể tìm được ngược modular củamột số a theo module b, và ngược lại.

Ví dụ: a = 5, b = 7, d = GCD (5, 7) = 1

Ta có: x = 3, y = (-2) thỏa mãn ax + by = 5x3 + 7x (-2) = 1

2.2.2 Định lý Fermat

Định lý Fermat (Fermat's Theorem), còn được gọi là định lý Fermat

về số nguyên tố, là một định lý nổi tiếng trong lý thuyết số học Định lýnày xác định rằng nếu p là một số nguyên tố và a là một số tự nhiên khôngchia hết cho p, thì ta có: ap-1 ≡ 1(mod p)

Lưu ý: Công thức trên luôn đúng nếu p là số nguyên tố, còn a là số

nguyên dương bé hơn p

Trang 14

o Tính chất 2 : Nếu p, q là 2 số nguyên tố cùng nhau thì

Φ(p*q) = Φp * Φq

o Tính chất 3 : Nếu p là số nguyên tố thì : Φ(pn) = pn - pn – 1Định lí Euler : Nếu a, m nguyên tố cùng nhau thì aΦ(m) đồng dư với

1 theo mod m

2.2.4 Thuật toán Miller-Rabin - Kiểm tra số nguyên tố lớn

Thuật toán Miller-Rabin thường được sử dụng để kiểm tra một sốlớn là số nguyên tố Trước khi giải thích thuật toán, ta cần một số kiếnthức căn bản Bất kì một số dương lẻ nào n ≥ 3 có thể được biểu diễn nhưsau:

n – 1 = 2k q với k > 0, q là số lẻ

Để thấy điều này, lưu ý rằng (n – 1) là 1 số nguyên Sau đó chia 1) cho 2 đến khi kết quả là số lẻ q, với tổng số lần chia là k Nếu n đượcbiểu diễn dưới dạng nhị phân số, thì kết quả đạt được bằng cách dịchchuyển số sang bên phải cho đến khi số bên phải là số 1, với tổng số k lầndịch chuyển

(n-Ví dụ: n = 23 => n-1 = 22 => n-1 = 21 × 11 => q=11 và k = 1

 Hai tính chất của số nguyên tố.

 Tính chất thứ nhất: Nếu p là số nguyên tố và a là số nguyên dương

nhỏ hơn p thì: a2 mod p = 1 khi và chỉ khi a mod p = 1 hoặc a mod p =-1 mod p = p–1 Theo quy tắc của module số học (a mod p)(a mod p)

= a2 mod p

Do đó: Nếu a mod p = 1 hoặc a mod p = -1 thì a2 mod p = 1

Ngược lại:Nếu a2 mod p = 1 thì (a mod p )2 = 1 Nó chỉ đúng với amod p = 1 hoặc a mod p = -1

 Tính chất thứ hai: Cho p là số nguyên tố lớn hơn 2 Sau đó ta có thể

viết p – 1 = 2kq với k > 0 và q là số lẻ Cho a là số nguyên bất kì trongdãy 1 < a < p–1 thì một trong hai điều kiện sau là đúng:

Trang 15

o aq là phù hợp với 1 modulo p đó là aq mod p =1 hoặc

aq≡1(mod p)

o Một trong những số aq, a2q, a4q, a2(k1)q thích hợp với

-1 modulo p, tức là có -1 số j trong dải (-1 ≤ j ≤ k) Như vậya2(j-1)q mod p = - 1 mod p= p - 1 Tương đương với a2(j-1)q ≡ -1(mod p)

số nguyên tố ta có: p – 1 = 2kq Do đó: ap-1 mod p = a2kq mod p =

Vì vậy nếu nhìn vào dãy số ta thấy:

aq mod p, a2q mod p, a4q mod p, , a2(k-1)q mod p, a2kq mod pTrong biểu thức trên ta có con số cuối cùng bằng 1 Hơn nữamỗi số trước là căn bặc 2 của số đứng sau Do đó một trong những khảnăng sau phải là đúng

1 Số đầu tiền trong danh sách và tất cả các số tiếp theo trongdanh sách bằng 1

2 Một số trong danh sách không bằng 1, nhưng bình phươngmod p của nó bằng 1 Nhờ tính chất đầu tiên của các số nguyên tốđược định nghĩa ở trên, chúng ta biết rằng số duy nhất thỏa mãn điềukiện này là (p–1) Vì vậy, trong trường hợp này danh sách chứa mộtphần tử bằng (p–1)

 Chi tiết về thuật toán

Nếu n là số nguyên tố thì phần tử đầu tiên trong danh sách dư lượnghoặc phần dư, modulo n bằng một hoặc một số phần tử trong danh sáchbằng (n–1), nếu không n là hỗn hợp (như là, không phải là số nguyên tố)

Trang 16

Mặt khác, nếu điều kiện được đáp ứng, điều đó không nhất thiết có nghĩa

là “chưa đi đến kết quả” nếu n có thể hoặc không thể là 1 số nguyên tố

Các bước để kiểm tra như sau:

1 Tìm số nguyên k, q với k > 0, q là số lẻ Sao cho (n – 1) = 2k

2 Lựa chọn 1 số nguyên ngẫu nhiên a: 1< a < n-1

3 Nếu aq mod n thì trả về kết quả là “chưa đi đến kết quả” 4 Vớij: 0 < j < k-1

5 Nếu a(2^j)q mod n = n–1 thì trả về “chưa đi đến kết quả”

o Vậy nên ta tiếp tục kiểm tra

o Tính toán tiếp theo ta thấy (107)2 mod 29 = 28 và kiểm tra trả

về là “chưa đi đến kết quả” Tức là 29 có thể là số nguyên tố

Ngày đăng: 21/03/2024, 17:25

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w