lOMoARcPSD| 60701415
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN
HỌC PHẦN: AN TOÀN BẢO MẬT THÔNG TIN
ĐỀ TÀI 1: NGHIÊN CỨU VỀ HỆ MÃ HÓA VÀ GIẢI MÃ RSA TRONG DOANH
NGHIỆP VỪA VÀ NHỎ
Sinh viên thực hiện
Lớp
Khóa
Trần Văn Bá
DC.CNTT.12.10.13
12
Nguyễn Ngọc Hải
DC.CNTT.12.10.13
12
Nguyễn Thị Thu Phương
DC.CNTT.12.10.13
12
Đào Huy Toàn
DC.CNTT.12.10.13
12
Nguyễn Tuấn Việt
DC.CNTT.12.10.13
12
Bắc Ninh, năm 2024
lOMoARcPSD| 60701415
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN
HỌC PHẦN: AN TOÀN BẢO MẬT THÔNG TIN
Nhóm: 1
ĐỀ TÀI 1: NGHIÊN CỨU VỀ HỆ MÃ HÓA VÀ GIẢI MÃ RSA TRONG DOANH
NGHIỆP VỪA VÀ NHỎ
STT
Sinh viên thực hiện
Điểm bằng số
Điểm bằng chữ
1
Trần Văn Bá
2
Nguyễn Ngọc Hải
3
Nguyễn Thị Thu Phương
4
Đào Huy Toàn
5
Nguyễn Tuấn Việt
CÁN BỘ CHẤM 1 CÁN BỘ CHẤM 2
(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)
lOMoARcPSD| 60701415
MỤC LỤC
DANH MỤC BẢNG BIỂU VÀ SƠ ............................................................................. 4
Chương 1. Tổng quan về đề tài..................................................................................... 5
1.1. Giới thiệu ............................................................................................................... 5
1.2. Lý do chn đề tài ................................................................................................... 5
Chương 2. Giới thiệu thuật toán ................................................................................... 7
2.1. Giới thiệu ............................................................................................................... 7
2.2. Yêu cầu thuật toán RSA ...................................................................................... 11
2.3. Ứng dụng ca thuật toán RSA ............................................................................. 17
2.4. Ưu và nhược điểm của thuật toán RSA ............................................................... 19
Chương 3. Cài đặt ....................................................................................................... 20
3.1. Giới thiệu về ngôn ngữ ........................................................................................ 20
3.2. Cài đặt .................................................................................................................. 21
3.2.1 Mã hoá......................................................................................................... 21
3.2.2 Kết quả ........................................................................................................ 42
Kết luận ....................................................................................................................... 44
Kết quả đạt được ......................................................................................................... 44
Hướng phát triển ......................................................................................................... 44
DANH MỤC SÁCH THAM KHẢO.......................................................................... 46
lOMoARcPSD| 60701415
DANH MỤC BẢNG BIỂU VÀ SƠ
Hình 1: đồ cách thực hoạt động về thuật toán RSA................................................7
Hình 2: hoá đối xứng............................................................................................10
Hình 3: Giao diện hoá rsa.....................................................................................22
Hình 4: Giao diện khi tạo khoá tự động......................................................................36
Hình 5: Giao diện mã hoá và giải mã.........................................................................36
Hình 6: Giao diện khi tạo mã tuỳ chọn.......................................................................37
Hình 7: Giao diện mã hoá và giải mã.........................................................................37
lOMoARcPSD| 60701415
Chương 1. Tổng quan về đề tài
1.1. Giới thiệu
Đề tài nghiên cứu về hệ hóa và giải mã RSA trong doanh nghiệp vừa nhỏ
một chủ đề quan trọng trong lĩnh vực an ninh thông tin. RSAmột thuật toán mã hóa
giải chìa khóa công khai phổ biến được sử dụng rộng rãi trong việc bảo vệ thông
tin quan trọng trên mạng Internet và trong các hệ thống máy tính. Trong bối cảnh môi
trường kinh doanh ngày càng phức tạp mối đe dọa về an ninh thông tin ngày càng
gia tăng, việc hiểu triển khai RSA trong các doanh nghiệp vừa nhỏ (SMEs)
cực kỳ quan trọng.
Đề tài này nhằm mục đích nghiên cứu về cách thức triển khai hệ thống hóa
giải mã RSA trong các doanh nghiệp vừa và nhỏ, đặc biệt là trong ngữ cảnh của ngân
hàng dữ liệu, bảo vệ thông tin khách hàng, giao dịch điện tử và quản lý rủi ro an ninh
thông tin.
Các mục tiêu cụ thể của nghiên cứu bao gồm:
- Phân tích và đánh giá hiệu quả của RSA trong việc bảo vệ dữ liệu nhạy cảm của
doanh nghiệp vừa và nhỏ.
- Nghiên cứu về các ứng dụng cụ thể của RSA trong các lĩnh vực như giao dịch
tài chính trực tuyến, chứng thực người dùng, và bảo mật email.
- Đề xuất các phương pháp triển khai RSA phù hợp với tài nguyên nhu cầu của
các doanh nghiệp vừa và nhỏ.
- Phân tích rủi ro và các biện pháp phòng ngừa đđảm bảo tính bảo mật của hệ
thống RSA trong môi trường doanh nghiệp.
1.2. Lý do chọn đề tài.
- Bảo mật thông tin: Trong thời đại số, việc bảo vệ thông tin nhân dữ liệu
doanh nghiệp là vô cùng quan trọng. RSA là một trong những thuật toán mã hóa công
khai phổ biến, giúp đảm bảo tính bảo mật cao cho quá trình trao đổi thông tin.
lOMoARcPSD| 60701415
- Ứng dụng rộng rãi: RSA được sử dụng trong nhiều lĩnh vực như chsố, giao
dịch ngân hàng, và quản lý truy cập web, làm cho nó trở thành một chủ đnghiên cứu
hữu ích cho các doanh nghiệp muốn áp dụng công nghệ này.
- Tính khả thi: Doanh nghiệp vừa và nhỏ có thể không có nguồn lực lớn như các
tập đoàn lớn, nhưng việc triển khai hệ thống mã hóa RSA là khả thi về mặt kthuật và
tài chính, giúp họ cạnh tranh bằng cách sử dụng công nghệ tiên tiến.
- Nhu cầu thực tế: Với sự gia tăng các mối đe dọa an ninh mạng, việc nghiên cứu
áp dụng các giải pháp a mạnh mẽ nRSA trở nên cấp thiết, đặc biệt trong
bối cảnh doanh nghiệp vừa và nhỏ thường xuyên trở thành mục tiêu của các cuộc tấn
công mạng.
- Đổi mới công nghệ: Nghiên cứu về RSA cũng mở ra hội cho doanh nghiệp
cập nhật và đổi mới hệ thống công nghệ thông tin của mình, giúp họ duy trì san toàn
và hiệu quả trong kinh doanh.
lOMoARcPSD| 60701415
Chương 2. Giới thiệu thuật toán
2.1. Giới thiệu.
RSAmột thuật toán hay còn gọi là hệ mã hóa đối xứng được sử dụng cho các mục
đích bảo mật. Nó cho phép mã hóa khóa công khai và được sử dụng phổ biến, rộng rãi
để đảm bảo an toàn cho các dữ liệu nhạy cảm đặc biệt là những dữ liệu gửi qua mạng
Internet. Thuật toán này sử dụng mật mã khóa công khai (còn gọi là mã hóa không đối
xứng asymmetric encryption), vậy sử dụng hai khóa khác nhau để hóa
(encrypt) và giải(decrypt) dữ liệu. Trong RSA, một cặp khóa được tạo ra trong đó
một khóa tiết lộ với thế giới bên ngoài, được gọi khóa công khai (public key)
khóa còn lại giữ bí mật cho người dùng, được gọi là khóa riêng tư (private key). Họ đã
phát triển thuật toán này để giải quyết hai vấn đchính: tạo thông tin liên lạc an toàn
không cần phải tin tưởng một điều phối viên phân phối khóa riêng biệt với khóa
của bạn và để xác minh một thư đến từ người gửi đã xác nhận quyền sở hữu.
Hình 1: Sơ đồ cách thực hoạt động về thuật toán RSA
Thuật toán mã hóa RSA có những đặc điểm nổi bật sau đây:
Hệ mã hóa bất đối xứng: đặc biệt là thuật toán RSA (Rivest-Shamir Adleman), là một
trong những phương pháp quan trọng nhất trong lĩnh vực bảo mật thông tin. Thuật toán
lOMoARcPSD| 60701415
này đã trở thành một trong những công cụ bản không thể thiếu trong việc bảo vệ
thông tin trên Internet trong các ứng dụng khác đòi hỏi tính bảo mật cao. RSA sử
dụng một cặp khóa, bao gồm khóa công khai (public key) và khóa mật (private key),
để mã hóa và giải mã thông tin.
Cặp khóa quá trình hóa/giải khóa công khai khóa mật: RSA sử dụng
cặp khóa này để thực hiện quá trình mã hóa giải mã. Khóa công khai được chia sẻ
công khai dùng để hóa dữ liệu trước khi gửi đi. Trong khi đó, khóa mật chỉ
được người nhận giữ và sử dụng để giải mã dữ liệu nhận được.
Quá trình mã hóa:
Khi A muốn gửi một thông điệp cho B, A sử dụng khóa công khai của B để hóa
thông điệp của mình trước khi gửi đi. Cách mã hóa này đảm bảo rằng chỉ có B (người
khóa mật tương ứng) mới thể giải thông điệp đó. Điều này giúp bảo vệ
thông điệp trên đường truyền mà không cần phải tiết lộ khóa bí mật của B.
Quá trình giải mã:
B nhận được thông điệp đã được mã hóa và sử dụng khóa bí mật của mình để giải mã.
Với khóa mật, B thể dễ dàng giải thông điệp chỉ B mới khả năng
đọc được.
Mô tả hệ mã RSA:
Sinh khóa.
Chọn hai số nguyên tố phân biệt 𝑝,𝑞 và tính tích của chúng 𝑛 = 𝑝𝑞.
Chọn một số nguyên 𝑑 nguyên tố cùng nhau với 𝜑(𝑛)=(𝑝−1)(𝑞1).
Tính 𝑒 𝑑1(𝑚𝑜𝑑𝜑(𝑛)).
Công bố khóa chung 𝑒 và giữ 𝑑 làm khóa riêng .𝑛 là thông tin công khai.
Mã hóa.
Không gian văn bản là ℤ𝑛={0,1,2,...,𝑛−1}.
Một văn bản 𝑚 𝑛 được mã hóa thanh 𝑐 𝑚𝑒(𝑚𝑜𝑑𝑛).
lOMoARcPSD| 60701415
Giải mã.
𝑐 được giải mã bằng cách tính 𝑐𝑑 𝑚(𝑚𝑜𝑑𝑛).
Chú ý về hệ mã RSA:
Theo quy ước, một hệ trong đó các quá trình hóa giải được tiến hành
bằng lũy thừa sẽ được gọi là một biến thể của RSA.
Phương trình 𝑚𝑒𝑑 𝑚(𝑚𝑜𝑑𝑛)là yếu tố quan trọng đảm bảo smã hóa 𝑚𝑒𝑐(𝑚𝑜𝑑𝑛)
giải 𝑐𝑑 𝑚(𝑚𝑜𝑑𝑛). Nói tổng quát, một khi được phương trình 𝑚𝑒𝑑=𝑚,
chúng ta có thể thiết lập được một biến thể của RSA. Do đó, trong mục tiếp theo đây,
chúng tôi chỉ đưa ra các điều kiện đảm bảo cho phươngtrình 𝑚𝑒𝑑=𝑚. Một biến thể
của RSA sẽ được ngầm nói đến đằng sau phương trình này.
Khóa công khai và khóa riêng tư trong RSA:
Khóa công khai (Public Key): Trong hệ hóa RSA, khóa công khai được chia sẻ
công khai với mọi người. Đây là khóa được sử dụng để mã hóa dữ liệu trước khi gửi
đi. Khóa công khai thường được đại diện bằng một số nguyên nhiều bit, và ai cũng có
thể biết được khóa công khai của một người nào đó.
Khóa riêng tư (Private Key): Khóa bí mật được giữ mật và ch người nhận có thsử
dụng nó để giải dữ liệu đã được mã hóa bằng khóa công khai tương ứng. Khóa bí
mật cũng được đại diện bằng một số nguyên gồm 2048 bit không được tiết lộ cho
bất kỳ ai ngoài chủ sở hữu.
Quá trình mã hóa và giải mã trong RSA: Quá trình mã hóa khi A muốn gửi một thông
điệp cho B bằng RSA, tA sẽ sử dụng khóa công khai của B để hóa thông điệp.
Quá trình mã hóa này là một phép tính toán số học phức tạp, đảm bảo rằng thông điệp
sau khi được mã hóa sẽ trở thành một dãy số không thể đọc được trực tiếp. Quá trình
giải Khi B nhận được thông điệp đã được hóa, B sẽ sử dụng khóa mật của
mình để giải mã. Điều này đảm bảo rằng chỉ B mới khnăng đọc được thông
điệp ban đầuA đã gửi.
lOMoARcPSD| 60701415
Hình 2: Mã hoá đối xứng
Mặc RSA một thuật toán mạnh, nhưng tốc độ hóa giải của không
phải là nhanh nhất. Với các khối dữ liệu lớn, việc sử dụng RSA để mã hóa và giải mã
thể gây ra hiệu năng chậm. Do đó, trong các ứng dụng yêu cầu tốc độ cao, thường
sử dụng RSA để mã hóa khóa bí mật và sử dụng một thuật toán mã hóa đối xứng như
AES để mã hóa dữ liệu thực tế. Tóm lại, thuật toán mã hóa RSA nổi tiếng với tính bảo
mật cao, tính linh hoạt và khả năng tạo chữ ký điện tử.
Tuy nhiên, tốc độ hóa và giải chậm, nó thường được sử dụng để hóa khóa
bí mật trong các ứng dụng thực tế.
Cơ sở toán học của RSA:
RSA dựa trên vấn đề về tính toán khó của việc phân tích một số thành tích của hai số
nguyên tố lớn. Để tạo ra các khóa, trước hết, người tạo khóa phải chọn hai số nguyên
tố lớn p và q. Sau đó, họ tính n = p * q và tính toán hàm Euler của n: φ(n) = (p-1)(q1).
Khóa công khai e được chọn sao cho 1 < e < φ(n) và e là số nguyên tố cùng nhau với
φ(n). Khóa bí mật d được chọn sao cho e * d ≡ 1 (mod φ(n)).
Tính bảo mật của RSA
An toàn với cuộc tấn công brute-force. Một cuộc tấn công brute-force để tìm ra khóa
bí mật trong RSAmột nhiệm vụ không thể thực hiện trong thời gian ngắn, đặc biệt
lOMoARcPSD| 60701415
khi sử dụng các số nguyên tố lớn. Việc tính toán ngược lại từ khóa công khai để tìm ra
khóa bí mật đòi hỏi một lượng lớn thời gian và tài nguyên tính toán.
Sự phức tạp của việc phân tích số nguyên tố lớn Sự phân tích số nguyên tố lớn là một
trong những vấn đề khó nhất trong toán học và khoa học máy tính. RSA sử dụng tính
toán này để tạo ra các khóa độ dài lớn, từ 1024 bit trở lên, tăng cường độ an toàn
của hệ thống mã hóa.
RSA được coi một trong những thuật toán hóa khóa công khai mạnh nhất hiện
nay. Nó dựa trên vấn đề tính toán khó của việc phân tích số nguyên tố lớn. Việc tìm ra
khóa bí mật từ khóa công khaimột bài toán rất khó, thậm chí là không khả thi trong
thời gian hợp lý.
Tính linh hoạt:
RSA thể được sdụng để mã hóa và giảivới các khối dliệu khác nhau, không
giới hạn kích thước của dliệu. Điều này làm cho thuật toán này phù hợp cho việc bảo
mật thông tin trong các ứng dụng khác nhau, từ gửi email, thanh toán trực tuyến cho
đến truyền thông an toàn.
Chữ ký số điện tử:
Thuật toán RSA cũng được sử dụng để tạo ra chữ điện tử, cho phép xác minh tính
toàn vẹn và nguồn gốc của dữ liệu. Bằng cách sử dụng khóa bí mật để ký một tệp tin,
người nhận thể sử dụng khóa công khai tương ứng để xác minh tính xác thực của
chữ ký.
2.2. Yêu cầu thut toán RSA
Thuật toán mã hóa RSA thoả măn 5 yêu cầu của một hệ mã hiện đại:
Độ bảo mật cao (nghĩa là để giải mã được mà không biết khoá mt thì
phải tốn hàng triệu năm)
Thuật toán RSA nổi tiếng với tính bảo mật cao trong lĩnh vực hóa bất đối xứng.
Dưới đây là những lý do chính khiến RSA được coi là mt trong những thuật toán bảo
mật mạnh nhất:
lOMoARcPSD| 60701415
Sự Phức Tạp của Việc Phân Tích Số Nguyên Tố Lớn:
RSA dựa trên vấn đề về tính toán khó của việc phân tích một số thành tích của hai số
nguyên tố lớn. Điều này có nghĩa là đgiải mã một thông điệp đã được mã hóa, kẻ tấn
công cần phải giải quyết bài toán phân tích một số thành tích của hai số nguyên tố lớn.
Với các số nguyên tố có hàng trăm chữ số, việc này trở nên cùng khó khăn và tốn
kém về thời gian và tài nguyên tính toán.
Kích thước khóa lớn:
RSA sdụng các khóa có kích thước lớn, thường từ 1024 bit trở lên, để tăng cường độ
bảo mật. Việc các khóa lớn làm cho việc thử tất cả các khả năng để tìm ra khóa bí
mật trở nên không khả thi trong thời gian hợp lý. Kích thước của khóa ảnh hưởng trực
tiếp đến khả năng chịu được các cuộc tấn công brute-force.
Khó khăn trong việc tìm số nguyên tố ngược:
Một trong nhữngớc quan trọng khi tạo khóa RSA là chọn hai số nguyên tố lớn p và
q, sau đó tính n = p * q. Để tính toán ngược lại từ n để tìm ra p và q, kẻ tấn công phải
phân tích n thành các thành phần nguyên tố của nó, điều này rất khó với các số nguyên
tố lớn.
Tính ngẫu nhiên của các khóa:
Khi tạo ra các cặp khóa RSA, quá trình chọn các số nguyên tố p và q là ngẫu nhiên, từ
đó tạo ra sự không đoán trước và không thể dự đoán được của các khóa. Điều này làm
cho việc dự đoán hoặc suy luận khóa bí mật từ khóa công khai trở nên rất khó khăn.
Bảo mật đối với các cuộc tấn công phân tích văn bản mã hóa RSA cũng chống lại các
cuộc tấn công thông tin bằng cách chống lại việc phân tích văn bản hóa (ciphertext-
only attacks). Điều này có nghĩa là khi kẻ tấn công chỉ n bản đã được mã hóa mà
không có thông tin khác, việc giải mã trở nên vô cùng khó khăn.
Sự đa dạng trong ứng dụng sử dụng:
lOMoARcPSD| 60701415
RSA không chỉ sử dụng để mã hóa thông điệp mà còn được sử dụng để tạo chữ ký số
(digital signatures), xác thực người dùng các ứng dụng khác. Sự đa dạng trong cách
sử dụng RSA giúp tăng cường tính bảo mật của nó.
Thao tác nhanh (thao tác mã hoá và giải mã tốn ít thời gian).
Khi sử dụng thuật toán RSA trong các ứng dụng thực tế, việc thao tác nhanh hiệu
quả một yêu cầu cần thiết. Dù RSA tính bảo mật cao, nhưng cũng đặt ra một số
thách thức khi áp dụng trong các hệ thống thời gian thực hoặc yêu cầu xử lý nhanh.
Dưới đây là những điểm cần lưu ý:
Mã hóa và giải mã nhanh:
RSA yêu cầu các phép tính số học phức tạp, đặc biệt là trong quá trình mã hóa và giải
mã. Đối với thông điệp dài và khóa có độ dài lớn, việc tính toán có thể tốn nhiều thời
gian. Do đó, trong các ứng dụng yêu cầu thao tác nhanh, cần phải có cơ chế tối ưu hóa
để giảm thiểu thời gian tính toán.
Tối ưu hóa thuật toán:
Có nhiều kỹ thuật được sử dụng để tối ưu hóa việc thực hiện thuật toán RSA. Một số
trong số đó bao gồm:
Tính chất cộng cuối: RSA sử dụng phép toán để hóa giải mã. Trong quá trình
tính toán , người ta thường áp dụng tính chất cộng cuối để giảm slần tính toán
và tăng tốc độ xử lý.
Chọn khóa công khai thích hợp: Việc chọn một số e phù hợp làm khóa công khai cũng
ảnh hưởng đến tốc độ xử lý. Cần chọn e sao cho số lần lặp lại phép nhân là ít nhất để
tối ưu hóa hiệu suất.
Sử dụng các thư viện mã nguồn mở:
Để giảm thiểu thời gian phát triển tối ưu hóa hiệu suất, nhiều nhà phát triển chọn sử
dụng các thư viện nguồn mở đã được tối ưu hóa cho việc thao tác RSA. Các thư
viện như OpenSSL, Bouncy Castle, hay PyCrypto giúp giảm thiểu việc viết lại thuật
toán và tận dụng những cải tiến được thực hiện bởi cộng đồng lập trình viên.
lOMoARcPSD| 60701415
Phân phối tính toán:
Trong môi trường nhiều người dùng cùng lúc, việc phân phối tính toán quan trọng
để tăng tc độ xử . Sử dụng các máy chủ khả năng xử song song hoặc phân tán
tính toán sẽ giúp cải thiện hiệu suất khi sử dụng RSA trong hệ thống lớn.
Xử lý thời gian thực:
Trong một số trường hợp, như trong giao thức HTTPS hoặc các ứng dụng tương tác
trực tiếp với người dùng, yêu cầu xử lý thời gian thực là quan trọng. Trong trường hợp
này, việc tối ưu hóa hiệu suất của RSA trở nên đặc biệt quan trọng để đảm bảo trải
nghiệm người dùng không bgián đoạn. Trong tổng thể, việc thao tác nhanh hiệu
quả khi sdụng thuật toán RSA đòi hỏi stối ưu hóa kỹ thuật và sự chọn lựa khéo léo
của các thông số và cách thức thực hiện. Với sự cần thiết của tính bảo mật cao và yêu
cầu về hiệu suất, việc phát triển triển khai RSA trong môi trường yêu cầu xử
nhanh là một thách thức đồng thời cũng là một cơ hội để tối ưu hóa hệ thống bảo mật.
Có thế dùng để xác định chủ nhân (dùng làm chữ ký điện từ)
Khi một bên muốn sử dụng khóa công khai của ai đó, việc xác nhận chủ nhân của khóa
này quan trọng. Để chứng thực khóa công khai, người sử dụng cần xác định rằng
khóa công khai đó đến từ người nào, và không bị sửa đổi hay giả mạo.
Chữ số một phần quan trọng của việc xác nhận chủ nhân trong RSA. Khi một
bên gửi thông điệp và chữ ký số của họ, bên nhận có thể sử dụng khóa công khai của
người gửi để kiểm tra tính hợp lệ của chữ ký.
Xác thực người dùng: RSA cũng được sử dụng trong việc xác thực người dùng, nơi
người dùng cần chứng minh họ là chủ nhân của một khóa bằng cách giải mã thông
điệp mật. Xác định chủ nhân của dữ liệu: Khi một bên nhận được dữ liệu đã được
mã hóa bằng khóa công khai, việc xác định chủ nhân của dữ liệu này là quan trọng để
đảm bảo tính bảo mật.
Cơ chế bảo vệ khóa:
lOMoARcPSD| 60701415
Khóa mật cần được bảo vệ chặt chẽ, chỉ cho phép người sở hữu khóa thể truy
cập. Một cách phổ biến để làm điều này sử dụng hệ thống quản khóa an toàn
(KMS) hoặc hóa khoa. Khóa công khai cần được phân phối một cách an toàn để
tránh bị lộ thông tin và sử dụng sai mục đích. Các phương thức an toàn như SSL/TLS
trong giao thức HTTPS được sử dụng để chắc chắn rằng khóa công khai không bị lộ.
Bảo vệ khóa bí mật: Khóa bí mật cần được quản lý một cách an toàn và chặt chẽ. Chỉ
chủ sở hữu khóa mới thể truy cập sử dụng khóa này. Việc lưu trữ khóa trên
hệ thống cần được mã hóa và bảo vệ chng lại các cuộc tấn công từ bên ngoài.
Mật khẩu mạnh: Đối với các ứng dụng yêu cầu nhập mật khẩu để truy cập vào khóa
mật, yêu cầu mật khẩu phải mạnh và khó bị đoán được. Việc sử dụng hàm hash và salt
là cách thức ph biến để bảo vệ mật khẩu.
hóa khóa bí mật: Trước khi lưu trữ khóa mật trên hệ thống, thể được mã
hóa để đảm bảo tính bảo mật. hóa khóa bí mật sẽ ngăn chặn kẻ tấn công truy cập
trực tiếp vào khóa nếu hệ thống bị xâm nhập.
Sử dụng Hardware Security Module (HSM): HSM một thiết bị vật hoặc phần
mềm được sdụng để bảo vvà quản khóa mật một cách an toàn. HSM cung cấp
một môi trường bảo mật đáng tin cậy để lưu trữ xlý các khóa, ngăn chặn việc truy
cập trái phép.
Mô hình quản lý khóa an toàn (KMS): Mô hình KMS cung cấp một cơ chế để quản lý
khóa mật trên toàn bộ hệ thống. bao gồm việc tạo, quản lý, phân phối các
khóa một cách an toàn và có cấu trúc.
Phân quyền truy cập: Yêu cầu đặt quyền truy cập chính xác vào các khóa bí mật. Chỉ
những người được ủy quyền mới có thể truy cập và sử dụng các khóa này.
Audit Logs: Việc ghi lại mọi hoạt động liên quan đến quản lý và sử dụng khóa bí mật
trong logs giúp kiểm tra phát hiện các hoạt động không bình thường hoặc xâm nhập.
lOMoARcPSD| 60701415
Tái phân phối khóa: Trong trường hợp khẩn cấp, như khi khóa bị mất hoặc bị đánh
cắp, cần có cơ chế tái phân phối khóa mới. Quá trình này đòi hỏi một quy trình an toàn
để thu hồi khóa cũ và cấp phát khóa mới.
Quản tuổi thọ khóa: Khóa mật cần được thay đổi định kỳ đđảm bảo tính an toàn.
Việc đánh giá và thay đổi tuổi thọ ca khóa là một phần quan trọng của quản lý khóa.
Sử dụng môi trường tách biệt: Để ngăn chặn việc lộ khóa mật thông qua các tấn
công side-channel, có thể sử dụng môi trường tách biệt (sandboxing) để chạy các quy
trình liên quan đến khóa mật mã.
Tính chính xác và an toàn:
Trong quá trình hóa giải mã, yêu cầu đảm bảo rằng không sự thay đổi nào
xảy ra với dữ liệu. Một lỗi nhỏ trong quá trình tính toán thể dẫn đến dữ liệu bị hỏng
hoặc mất mát.
Tính chính xác trong hóa giải mã: Trong quá trình hóa, mỗi bit của thông
điệp cần được mã hóa chính xác bằng khóa công khai. Bất kỳ thay đổi nào cũng có thể
dẫn đến việc thông điệp không được giải mã đúng. Khi giải mã, thông điệp phải được
khôi phục một cách chính xác đúng đắn. Bất kỳ lỗi nào trong quá trình giải cũng
có thể dẫn đến mất mát thông tin hoặc thông điệp không chính xác.
Bảo mật khóa: Khóa công khai và khóa bí mật phải được tạo một cách ngẫu nhiên và
có độ dài đủ lớn để đảm bảo tính bảo mật cao. Kích thước khóa thường được lựa chọn
ít nhất 2048 bit. Khóa mật, đặc biệt là, phải được bảo vệ chặt chẽ. Nếu khóa bí mật
bị lộ, toàn bộ hệ thống mã hóa RSA có thể bị đe dọa.
Chữ ký số hợp lệ: RSA cũng được sử dụng để tạo và kiểm tra chữ ký số, một cách để
xác minh tính hợp lệ của một thông điệp. Người gửi sử dụng khóa mật để tạo ch
ký, trong khi người nhận sử dụng khóa công khai để kiểm tra chữ này. Nếu chữ ký
không hợp lệ, thông điệp được coi là không tin cậy.
Quản khóa an toàn: Việc quản khóa mật một phần quan trọng của tính an
toàn trong RSA. Khóa mật cần được lưu trữ quản một cách an toàn, thường
lOMoARcPSD| 60701415
thông qua việc mã hóa hoặc sử dụng các hệ thống quản khóa an toàn (KMS). Đồng
thời, cần các quy trình để thu hồi khóa nếu cần, chẳng hạn khi một nhân viên rời
khỏi công ty hoặc nếu có nghi ngờ về sự an toàn của khóa.
Xác thực người dùng dữ liệu: RSA cung cấp chế xác thực mạnh mẽ, nơi
người dùng cần chứng minh họ có khóa bí mật bằng cách giải mã thông điệp hoặc tạo
chữ số. Đối với dữ liệu, việc sử dụng RSA để và xác minh chữ số đảm bảo
rằng dữ liệu không bị sửa đổi trong quá trình truyền tải.
Kiểm tra tính đúng đắn của dữ liệu: Sau khi giải mã, thông điệp được nhận phải được
kiểm tra để đảm bảo tính nguyên vẹn đúng đắn của dữ liệu. Các thuật toán băm
cũng thường được sử dụng để kiểm tra tính toàn vẹn của dữ liệu.
2.3. Ứng dụng ca thuật toán RSA
RSA là một thuật toán mã hóa bất đối xứng, được sử dụng chủ yếu trong lĩnh vực bảo
mật thông tin. Dưới đây là mục đích sử dụng của RSA trong bảo mật thông tin:
Mã hóa với khóa công khai:
RSA cho phép hóa dữ liệu bằng khóa công khai (public key encryption). Người gửi
sử dụng khóa công khai của người nhận để hóa thông điệp. Chỉ người nhận với
khóa riêng tư (private key) phợp mới thể giải được thông điệp. Điều này đảm
bảo tính bảo mật của thông tin trong quá trình truyền.
Giải mã với khóa riêng tư:
RSA cho phép người nhận giải thông điệp bằng khóa riêng của mình. Khóa riêng
tư chỉ thuộc sở hữu của người nhận và không được tiết lộ cho bất kỳ ai khác.
Nhờ đó, thông tin chỉ được giải mã bởi người nhận duy nhất.
Chữ ký điện tử:
RSA cũng được sử dụng để tạo chữ điện tử. Người gửi sử dụng khóa riêng của
mình để tạo ra chữ điện tử cho thông điệp. Khi người nhận nhận được thông điệp
và chữ ký điện tử, họ sẽ sử dụng khóa công khai của người gửi để xác minh tính toàn
vẹn xác thực của thông điệp. Trên các thẻ ATM luôn phần chữ điện tử đã được
lOMoARcPSD| 60701415
hóa từ chữ ký của khách hàng khi đăng tài khoản tại ngân hàng. thể nói,
trong lĩnh vực ngân hàng, vấn đề bảo mật thông tin của khách hàng cần được đặt n
hàng đầu, chúng quyết định chất lượng của dịch vụ. RSA được ứng dụng để bảo mật
dữ liệu khi người dùng thực hiện những giao dịch ngân hàng, đem lại trải nghiệm tốt
và giúp khách hàng an tâm hơn.
Giao thức an toàn:
Hiện nay tình trạng nghe lén, theo dõi hoạt động cũng như lấy cắp dữ liệu cá nhân trên
mạng xã hội bị lên án và chỉ trích rất nhiều, bao gồm cả ông lớn Facebook. Không chỉ
những trang mạng hội, các trang web cũng không tránh khỏi việc lưu lại các hoạt
động, hành vi truy cập để phục vụ các mục đích Marketing. Do đó với thuật toán RSA
giúp dữ liệu khỏi các cuộc tấn công của kẻ xấu.RSA được sử dụng trong nhiều giao
thức an toàn như SSL/TLS để bảo vệ quá trình giao tiếp trực tuyến. Khi thiết lập kết
nối an toàn, RSA được sử dụng để trao đổi khóa mật giữa hai bên thông qua quá
trình giao tiếp. Khóa này sau đó được sử dụng để hóa giải dữ liệu được
truyền qua kết nối. Tóm lại, RSA được sử dụng trong bảo mật thông tin để mã hóa dữ
liệu, giải mã dữ liệu, tạo chữ ký điện tử và thiết lập các giao thức an toàn. Thuật toán
này đóng vai trò quan trọng trong việc đảm bảo tính toàn vẹn, xác thực và bảo mật của
thông tin trong quá trình truyền và lưu trữ.
Thuật toán RSA trong công nghệ thông tin:
Trong ngôn ngữ lập trình Java, các nhà lập trình viên thường sử dụng những đoạn code
chứa RSA để tăng tính bảo mật cho trang webứng dụng cũng như đảm bảo an toàn
cho người sử dụng. Các đoạn code RSA này có thể hoạt động dưới bất kỳ sự thay đổi
nào của môi trường. Ngoài ra, các lập trình viên cũng sử dụng các ngôn ngữ lập trình
khác bên cạnh Java có thể tìm hiểu và ứng dụng những tính năng của RSA trong hoạt
động làm việc và bảo mật thông tin. Ngày nay việc sử dụng các ứng dụng, trang web
trên internet ngày càng gia tăng khiến cho vấn đề bảo mật dữ liệu càng được chú trọng.
Những dữ liệu này có thể là những thông tin bí mật cá nhân, thông tin về tài chính, ...
gây không ít nguy hại cho người sử dụng. Cũng chính vì lý do này mà thuật toán RSA
lOMoARcPSD| 60701415
được biết đến sử dụng nhiều hơn trong tất cả các lĩnh vực đặc biệt trong ngành
ngân hàng.
2.4. Ưu và nhược điểm của thuật toán RSA
Ưu điểm của RSA:
Bảo mật cao: RSA sử dụng một cặp khóa, khóa công khai và khóa mật, giúp tăng
cường bảo mật cho việc hóa giải dliệu. Độ bảo mật của RSA phụ thuộc
vào độ dài của khóa, thường được đo bằng số bit. Khóa 2048 bit được coi là an toàn
trong thời gian dài.
Phân phối khóa dễ dàng: Khóa công khai thể được phân phối một cách công khai
an toàn không lo sợ rỉ thông tin. Bất kỳ ai muốn gửi tin nhắn cho người sở
hữu khóa công khai đều có thể sử dụng nó để mã hóa tin nhắn.
Xác thực: RSA được sử dụng rộng rãi trong việc xác thực người dùng, xác thực dữ liệu
và xác thực tài liệu trên internet. Khi người dùngmột tài liệu bằng chữ ký số RSA,
điều này có nghĩa là họ chấp nhận và cam kết với nội dung ca tài liệu đó.
Kích thước khóa linh hoạt: RSA cho phép sử dụng khóa độ dài khác nhau, từ 512
bit đến hàng nghìn bit, tùy thuộc vào mức độ bảo mật mong muốn hiệu suất yêu
cầu. Điều này cho phép lựa chọn kích thước khóa phù hợp với ứng dụng cụ thể
không ảnh hưởng đến bảo mật.
Không thể giải mã ngược (One-way Function): Một trong những điểm mạnh nhất của
RSA khả năng không thể giải ngược từ khóa công khai sang khóa mật trong
thời gian hợp lý. Điều này đảm bảo rằng người nhận thông điệp chỉ thể giải
được nó nếu có khóa bí mật.
Nhược Điểm của RSA:
Tính siệu suất: RSA có thể tốn nhiều thời gian và tài nguyên tính toán, đặc biệt là khi
sử dụng các khóa độ dài lớn. Quá trình hóa và giải trong RSA thể làm
giảm hiệu suất của hệ thống. Điều này khiến RSA không phù hợp cho các ứng dụng
yêu cầu xử lý nhanh và hiệu suất cao.
lOMoARcPSD| 60701415
Khả năng tấn công Brute-Force: Khi sử dụng các khóa nhỏ, RSA trở nên dễ bị tấn công
bằng kỹ thuật brute-force, nơi mà kẻ tấn công thử từng khóa mật cóthể có để giải
mã dữ liệu. Điều này đặc biệt đáng quan ngại khi sử dụng khóa có độ dài thấp.
Khả năng tấn công chọn lọc: RSA thể bị tấn công thông qua việc chọn lọc khóa
công khai. Kẻ tấn công thể tìm kiếm những khóa dễ dàng để giải thông điệp.
Đây là một vấn đề nếu không sử dụng khóa có đ dài đ lớn và ngẫu nhiên đủ.
Không thích hợp cho dữ liệu lớn: RSA không hiệu quả cho việc mã hóa dữ liệu lớn do
yêu cầu xử lớn tốn nhiều tài nguyên tính toán. Điều này khiến RSA không phù
hợp cho việc mã hóa và giải mã dữ liệu lớn như trong các ứng dụng lưu trữ đám mây
hoặc truyền tải dữ liệu lớn.
Cần phải đảm bảo khóa bí mật an toàn: Khóa bí mật trong RSA cần được bảo mật một
cách tuyệt đối. Nếu khóa bị rò rỉ hoặc bị đánh cắp, toàn bộ hệ thống mã hóa có thể bị
đe da. Việc quản lý và bảo vkhóa bí mật là một thách thức đối với các tổ chức và
nhân sử dụng RSA.
Chương 3. Cài đặt
3.1. Giới thiệu về ngôn ngữ
Trong bài tôi đã sử dụng hai công nghệ quan trọng trong việc phát triển ứng dụng
Windows hiện đại:
C# (C Sharp) một ngôn ngữ lập trình đa năng, phát triển bởi Microsoft, được sử
dụng rộng rãi trong việc xây dựng các ứng dụng Windows, web di động. Với
pháp dễ đọc hiểu, C# một ngôn ngữ lập trình hướng đối tượng mạnh mẽ, mang
lại tính linh hoạt và hiệu suất cao cho các nhà phát triển. Được tích hợp sâu vào.NET
Framework .NET Core, C# cung cấp một nền tảng ổn định mạnh mẽ cho việc
phát triển ứng dụng đa nền tảng.
WPF (Windows Presentation Foundation) một công nghệ phát triển giao diện
người dùng (GUI) mạnh mẽ của Microsoft, cho phép các nhà phát triển tạo ra các ứng
dụng Windows với giao diện đẹp mắt linh hoạt. Sử dụng XAML (eXtensible

Preview text:

lOMoAR cPSD| 60701415
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN
HỌC PHẦN: AN TOÀN BẢO MẬT THÔNG TIN
ĐỀ TÀI 1: NGHIÊN CỨU VỀ HỆ MÃ HÓA VÀ GIẢI MÃ RSA TRONG DOANH
NGHIỆP VỪA VÀ NHỎ
Sinh viên thực hiện Lớp Khóa Trần Văn Bá DC.CNTT.12.10.13 12 Nguyễn Ngọc Hải DC.CNTT.12.10.13 12 Nguyễn Thị Thu Phương DC.CNTT.12.10.13 12 Đào Huy Toàn DC.CNTT.12.10.13 12 Nguyễn Tuấn Việt DC.CNTT.12.10.13 12 Bắc Ninh, năm 2024 lOMoAR cPSD| 60701415
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN
HỌC PHẦN: AN TOÀN BẢO MẬT THÔNG TIN Nhóm: 1
ĐỀ TÀI 1: NGHIÊN CỨU VỀ HỆ MÃ HÓA VÀ GIẢI MÃ RSA TRONG DOANH
NGHIỆP VỪA VÀ NHỎ STT
Sinh viên thực hiện
Mã sinh viên Điểm bằng số Điểm bằng chữ 1 Trần Văn Bá 20213849 2 Nguyễn Ngọc Hải 20210688 3 Nguyễn Thị Thu Phương 20213656 4 Đào Huy Toàn 20213765 5 Nguyễn Tuấn Việt 20213704 CÁN BỘ CHẤM 1 CÁN BỘ CHẤM 2
(Ký và ghi rõ họ tên)
(Ký và ghi rõ họ tên) lOMoAR cPSD| 60701415 MỤC LỤC
DANH MỤC BẢNG BIỂU VÀ SƠ ............................................................................. 4
Chương 1. Tổng quan về đề tài..................................................................................... 5
1.1. Giới thiệu ............................................................................................................... 5
1.2. Lý do chọn đề tài ................................................................................................... 5
Chương 2. Giới thiệu thuật toán ................................................................................... 7
2.1. Giới thiệu ............................................................................................................... 7
2.2. Yêu cầu thuật toán RSA ...................................................................................... 11
2.3. Ứng dụng của thuật toán RSA ............................................................................. 17
2.4. Ưu và nhược điểm của thuật toán RSA ............................................................... 19
Chương 3. Cài đặt ....................................................................................................... 20
3.1. Giới thiệu về ngôn ngữ ........................................................................................ 20
3.2. Cài đặt .................................................................................................................. 21
3.2.1 Mã hoá......................................................................................................... 21
3.2.2 Kết quả ........................................................................................................ 42
Kết luận ....................................................................................................................... 44
Kết quả đạt được ......................................................................................................... 44
Hướng phát triển ......................................................................................................... 44
DANH MỤC SÁCH THAM KHẢO.......................................................................... 46 lOMoAR cPSD| 60701415
DANH MỤC BẢNG BIỂU VÀ SƠ
Hình 1: Sơ đồ cách thực hoạt động về thuật toán RSA................................................7
Hình 2: Mã hoá đối xứng............................................................................................10
Hình 3: Giao diện mã hoá rsa.....................................................................................22
Hình 4: Giao diện khi tạo khoá tự động......................................................................36
Hình 5: Giao diện mã hoá và giải mã.........................................................................36
Hình 6: Giao diện khi tạo mã tuỳ chọn.......................................................................37
Hình 7: Giao diện mã hoá và giải mã.........................................................................37 lOMoAR cPSD| 60701415
Chương 1. Tổng quan về đề tài 1.1. Giới thiệu
Đề tài nghiên cứu về hệ mã hóa và giải mã RSA trong doanh nghiệp vừa và nhỏ là
một chủ đề quan trọng trong lĩnh vực an ninh thông tin. RSA là một thuật toán mã hóa
và giải mã chìa khóa công khai phổ biến được sử dụng rộng rãi trong việc bảo vệ thông
tin quan trọng trên mạng Internet và trong các hệ thống máy tính. Trong bối cảnh môi
trường kinh doanh ngày càng phức tạp và mối đe dọa về an ninh thông tin ngày càng
gia tăng, việc hiểu và triển khai RSA trong các doanh nghiệp vừa và nhỏ (SMEs) là cực kỳ quan trọng.
Đề tài này nhằm mục đích nghiên cứu về cách thức triển khai hệ thống mã hóa và
giải mã RSA trong các doanh nghiệp vừa và nhỏ, đặc biệt là trong ngữ cảnh của ngân
hàng dữ liệu, bảo vệ thông tin khách hàng, giao dịch điện tử và quản lý rủi ro an ninh thông tin.
Các mục tiêu cụ thể của nghiên cứu bao gồm:
- Phân tích và đánh giá hiệu quả của RSA trong việc bảo vệ dữ liệu nhạy cảm của
doanh nghiệp vừa và nhỏ.
- Nghiên cứu về các ứng dụng cụ thể của RSA trong các lĩnh vực như giao dịch
tài chính trực tuyến, chứng thực người dùng, và bảo mật email.
- Đề xuất các phương pháp triển khai RSA phù hợp với tài nguyên và nhu cầu của
các doanh nghiệp vừa và nhỏ.
- Phân tích rủi ro và các biện pháp phòng ngừa để đảm bảo tính bảo mật của hệ
thống RSA trong môi trường doanh nghiệp.
1.2. Lý do chọn đề tài.
- Bảo mật thông tin: Trong thời đại số, việc bảo vệ thông tin cá nhân và dữ liệu
doanh nghiệp là vô cùng quan trọng. RSA là một trong những thuật toán mã hóa công
khai phổ biến, giúp đảm bảo tính bảo mật cao cho quá trình trao đổi thông tin. lOMoAR cPSD| 60701415
- Ứng dụng rộng rãi: RSA được sử dụng trong nhiều lĩnh vực như chữ ký số, giao
dịch ngân hàng, và quản lý truy cập web, làm cho nó trở thành một chủ đề nghiên cứu
hữu ích cho các doanh nghiệp muốn áp dụng công nghệ này.
- Tính khả thi: Doanh nghiệp vừa và nhỏ có thể không có nguồn lực lớn như các
tập đoàn lớn, nhưng việc triển khai hệ thống mã hóa RSA là khả thi về mặt kỹ thuật và
tài chính, giúp họ cạnh tranh bằng cách sử dụng công nghệ tiên tiến.
- Nhu cầu thực tế: Với sự gia tăng các mối đe dọa an ninh mạng, việc nghiên cứu
và áp dụng các giải pháp mã hóa mạnh mẽ như RSA trở nên cấp thiết, đặc biệt là trong
bối cảnh doanh nghiệp vừa và nhỏ thường xuyên trở thành mục tiêu của các cuộc tấn công mạng.
- Đổi mới công nghệ: Nghiên cứu về RSA cũng mở ra cơ hội cho doanh nghiệp
cập nhật và đổi mới hệ thống công nghệ thông tin của mình, giúp họ duy trì sự an toàn
và hiệu quả trong kinh doanh. lOMoAR cPSD| 60701415
Chương 2. Giới thiệu thuật toán 2.1. Giới thiệu.
RSA là một thuật toán hay còn gọi là hệ mã hóa đối xứng được sử dụng cho các mục
đích bảo mật. Nó cho phép mã hóa khóa công khai và được sử dụng phổ biến, rộng rãi
để đảm bảo an toàn cho các dữ liệu nhạy cảm đặc biệt là những dữ liệu gửi qua mạng
Internet. Thuật toán này sử dụng mật mã khóa công khai (còn gọi là mã hóa không đối
xứng – asymmetric encryption), vì vậy nó sử dụng hai khóa khác nhau để mã hóa
(encrypt) và giải mã (decrypt) dữ liệu. Trong RSA, một cặp khóa được tạo ra trong đó
một khóa tiết lộ với thế giới bên ngoài, được gọi là khóa công khai (public key) và
khóa còn lại giữ bí mật cho người dùng, được gọi là khóa riêng tư (private key). Họ đã
phát triển thuật toán này để giải quyết hai vấn đề chính: tạo thông tin liên lạc an toàn
mà không cần phải tin tưởng một điều phối viên phân phối khóa riêng biệt với khóa
của bạn và để xác minh một thư đến từ người gửi đã xác nhận quyền sở hữu.
Hình 1: Sơ đồ cách thực hoạt động về thuật toán RSA
Thuật toán mã hóa RSA có những đặc điểm nổi bật sau đây:
Hệ mã hóa bất đối xứng: đặc biệt là thuật toán RSA (Rivest-Shamir Adleman), là một
trong những phương pháp quan trọng nhất trong lĩnh vực bảo mật thông tin. Thuật toán lOMoAR cPSD| 60701415
này đã trở thành một trong những công cụ cơ bản không thể thiếu trong việc bảo vệ
thông tin trên Internet và trong các ứng dụng khác đòi hỏi tính bảo mật cao. RSA sử
dụng một cặp khóa, bao gồm khóa công khai (public key) và khóa bí mật (private key),
để mã hóa và giải mã thông tin.
Cặp khóa và quá trình mã hóa/giải mã khóa công khai và khóa bí mật: RSA sử dụng
cặp khóa này để thực hiện quá trình mã hóa và giải mã. Khóa công khai được chia sẻ
công khai và dùng để mã hóa dữ liệu trước khi gửi đi. Trong khi đó, khóa bí mật chỉ
được người nhận giữ và sử dụng để giải mã dữ liệu nhận được. Quá trình mã hóa:
Khi A muốn gửi một thông điệp cho B, A sử dụng khóa công khai của B để mã hóa
thông điệp của mình trước khi gửi đi. Cách mã hóa này đảm bảo rằng chỉ có B (người
có khóa bí mật tương ứng) mới có thể giải mã thông điệp đó. Điều này giúp bảo vệ
thông điệp trên đường truyền mà không cần phải tiết lộ khóa bí mật của B.
Quá trình giải mã:
B nhận được thông điệp đã được mã hóa và sử dụng khóa bí mật của mình để giải mã.
Với khóa bí mật, B có thể dễ dàng giải mã thông điệp mà chỉ có B mới có khả năng đọc được. Mô tả hệ mã RSA: Sinh khóa.
Chọn hai số nguyên tố phân biệt 𝑝,𝑞 và tính tích của chúng 𝑛 = 𝑝𝑞.
Chọn một số nguyên 𝑑 nguyên tố cùng nhau với 𝜑(𝑛)=(𝑝−1)(𝑞−1).
Tính 𝑒 ≡ 𝑑−1(𝑚𝑜𝑑𝜑(𝑛)).
Công bố khóa chung 𝑒 và giữ 𝑑 làm khóa riêng .𝑛 là thông tin công khai. Mã hóa.
Không gian văn bản là ℤ𝑛={0,1,2,...,𝑛−1}.
Một văn bản 𝑚 ∈ ℤ𝑛 được mã hóa thanh 𝑐 ≡ 𝑚𝑒(𝑚𝑜𝑑𝑛). lOMoAR cPSD| 60701415 Giải mã.
𝑐 được giải mã bằng cách tính 𝑐𝑑 ≡ 𝑚(𝑚𝑜𝑑𝑛).
Chú ý về hệ mã RSA:
Theo quy ước, một hệ mã trong đó các quá trình mã hóa và giải mã được tiến hành
bằng lũy thừa sẽ được gọi là một biến thể của RSA.
Phương trình 𝑚𝑒𝑑 ≡ 𝑚(𝑚𝑜𝑑𝑛)là yếu tố quan trọng đảm bảo sự mã hóa 𝑚𝑒 ≡𝑐(𝑚𝑜𝑑𝑛)
và giải mã 𝑐𝑑 ≡ 𝑚(𝑚𝑜𝑑𝑛). Nói tổng quát, một khi có được phương trình 𝑚𝑒𝑑=𝑚,
chúng ta có thể thiết lập được một biến thể của RSA. Do đó, trong mục tiếp theo đây,
chúng tôi chỉ đưa ra các điều kiện đảm bảo cho phươngtrình 𝑚𝑒𝑑=𝑚. Một biến thể
của RSA sẽ được ngầm nói đến đằng sau phương trình này.
Khóa công khai và khóa riêng tư trong RSA:
Khóa công khai (Public Key): Trong hệ mã hóa RSA, khóa công khai được chia sẻ
công khai với mọi người. Đây là khóa được sử dụng để mã hóa dữ liệu trước khi gửi
đi. Khóa công khai thường được đại diện bằng một số nguyên nhiều bit, và ai cũng có
thể biết được khóa công khai của một người nào đó.
Khóa riêng tư (Private Key): Khóa bí mật được giữ bí mật và chỉ người nhận có thể sử
dụng nó để giải mã dữ liệu đã được mã hóa bằng khóa công khai tương ứng. Khóa bí
mật cũng được đại diện bằng một số nguyên gồm 2048 bit và không được tiết lộ cho
bất kỳ ai ngoài chủ sở hữu.
Quá trình mã hóa và giải mã trong RSA: Quá trình mã hóa khi A muốn gửi một thông
điệp cho B bằng RSA, thì A sẽ sử dụng khóa công khai của B để mã hóa thông điệp.
Quá trình mã hóa này là một phép tính toán số học phức tạp, đảm bảo rằng thông điệp
sau khi được mã hóa sẽ trở thành một dãy số không thể đọc được trực tiếp. Quá trình
giải mã Khi B nhận được thông điệp đã được mã hóa, B sẽ sử dụng khóa bí mật của
mình để giải mã. Điều này đảm bảo rằng chỉ có B mới có khả năng đọc được thông
điệp ban đầu mà A đã gửi. lOMoAR cPSD| 60701415
Hình 2: Mã hoá đối xứng
Mặc dù RSA là một thuật toán mạnh, nhưng tốc độ mã hóa và giải mã của nó không
phải là nhanh nhất. Với các khối dữ liệu lớn, việc sử dụng RSA để mã hóa và giải mã
có thể gây ra hiệu năng chậm. Do đó, trong các ứng dụng yêu cầu tốc độ cao, thường
sử dụng RSA để mã hóa khóa bí mật và sử dụng một thuật toán mã hóa đối xứng như
AES để mã hóa dữ liệu thực tế. Tóm lại, thuật toán mã hóa RSA nổi tiếng với tính bảo
mật cao, tính linh hoạt và khả năng tạo chữ ký điện tử.
Tuy nhiên, vì tốc độ mã hóa và giải mã chậm, nó thường được sử dụng để mã hóa khóa
bí mật trong các ứng dụng thực tế.
Cơ sở toán học của RSA:
RSA dựa trên vấn đề về tính toán khó của việc phân tích một số thành tích của hai số
nguyên tố lớn. Để tạo ra các khóa, trước hết, người tạo khóa phải chọn hai số nguyên
tố lớn p và q. Sau đó, họ tính n = p * q và tính toán hàm Euler của n: φ(n) = (p-1)(q1).
Khóa công khai e được chọn sao cho 1 < e < φ(n) và e là số nguyên tố cùng nhau với
φ(n). Khóa bí mật d được chọn sao cho e * d ≡ 1 (mod φ(n)).
Tính bảo mật của RSA
An toàn với cuộc tấn công brute-force. Một cuộc tấn công brute-force để tìm ra khóa
bí mật trong RSA là một nhiệm vụ không thể thực hiện trong thời gian ngắn, đặc biệt lOMoAR cPSD| 60701415
khi sử dụng các số nguyên tố lớn. Việc tính toán ngược lại từ khóa công khai để tìm ra
khóa bí mật đòi hỏi một lượng lớn thời gian và tài nguyên tính toán.
Sự phức tạp của việc phân tích số nguyên tố lớn Sự phân tích số nguyên tố lớn là một
trong những vấn đề khó nhất trong toán học và khoa học máy tính. RSA sử dụng tính
toán này để tạo ra các khóa có độ dài lớn, từ 1024 bit trở lên, tăng cường độ an toàn của hệ thống mã hóa.
RSA được coi là một trong những thuật toán mã hóa khóa công khai mạnh nhất hiện
nay. Nó dựa trên vấn đề tính toán khó của việc phân tích số nguyên tố lớn. Việc tìm ra
khóa bí mật từ khóa công khai là một bài toán rất khó, thậm chí là không khả thi trong thời gian hợp lý. Tính linh hoạt:
RSA có thể được sử dụng để mã hóa và giải mã với các khối dữ liệu khác nhau, không
giới hạn kích thước của dữ liệu. Điều này làm cho thuật toán này phù hợp cho việc bảo
mật thông tin trong các ứng dụng khác nhau, từ gửi email, thanh toán trực tuyến cho
đến truyền thông an toàn.
Chữ ký số điện tử:
Thuật toán RSA cũng được sử dụng để tạo ra chữ ký điện tử, cho phép xác minh tính
toàn vẹn và nguồn gốc của dữ liệu. Bằng cách sử dụng khóa bí mật để ký một tệp tin,
người nhận có thể sử dụng khóa công khai tương ứng để xác minh tính xác thực của chữ ký.
2.2. Yêu cầu thuật toán RSA
Thuật toán mã hóa RSA thoả măn 5 yêu cầu của một hệ mã hiện đại:
Độ bảo mật cao (nghĩa là để giải mã được mà không biết khoá mật thì
phải tốn hàng triệu năm)
Thuật toán RSA nổi tiếng với tính bảo mật cao trong lĩnh vực mã hóa bất đối xứng.
Dưới đây là những lý do chính khiến RSA được coi là một trong những thuật toán bảo mật mạnh nhất: lOMoAR cPSD| 60701415
Sự Phức Tạp của Việc Phân Tích Số Nguyên Tố Lớn:
RSA dựa trên vấn đề về tính toán khó của việc phân tích một số thành tích của hai số
nguyên tố lớn. Điều này có nghĩa là để giải mã một thông điệp đã được mã hóa, kẻ tấn
công cần phải giải quyết bài toán phân tích một số thành tích của hai số nguyên tố lớn.
Với các số nguyên tố có hàng trăm chữ số, việc này trở nên vô cùng khó khăn và tốn
kém về thời gian và tài nguyên tính toán.
Kích thước khóa lớn:
RSA sử dụng các khóa có kích thước lớn, thường từ 1024 bit trở lên, để tăng cường độ
bảo mật. Việc có các khóa lớn làm cho việc thử tất cả các khả năng để tìm ra khóa bí
mật trở nên không khả thi trong thời gian hợp lý. Kích thước của khóa ảnh hưởng trực
tiếp đến khả năng chịu được các cuộc tấn công brute-force.
Khó khăn trong việc tìm số nguyên tố ngược:
Một trong những bước quan trọng khi tạo khóa RSA là chọn hai số nguyên tố lớn p và
q, sau đó tính n = p * q. Để tính toán ngược lại từ n để tìm ra p và q, kẻ tấn công phải
phân tích n thành các thành phần nguyên tố của nó, điều này rất khó với các số nguyên tố lớn.
Tính ngẫu nhiên của các khóa:
Khi tạo ra các cặp khóa RSA, quá trình chọn các số nguyên tố p và q là ngẫu nhiên, từ
đó tạo ra sự không đoán trước và không thể dự đoán được của các khóa. Điều này làm
cho việc dự đoán hoặc suy luận khóa bí mật từ khóa công khai trở nên rất khó khăn.
Bảo mật đối với các cuộc tấn công phân tích văn bản mã hóa RSA cũng chống lại các
cuộc tấn công thông tin bằng cách chống lại việc phân tích văn bản mã hóa (ciphertext-
only attacks). Điều này có nghĩa là khi kẻ tấn công chỉ có văn bản đã được mã hóa mà
không có thông tin khác, việc giải mã trở nên vô cùng khó khăn.
Sự đa dạng trong ứng dụng sử dụng: lOMoAR cPSD| 60701415
RSA không chỉ sử dụng để mã hóa thông điệp mà còn được sử dụng để tạo chữ ký số
(digital signatures), xác thực người dùng và các ứng dụng khác. Sự đa dạng trong cách
sử dụng RSA giúp tăng cường tính bảo mật của nó.
Thao tác nhanh (thao tác mã hoá và giải mã tốn ít thời gian).
Khi sử dụng thuật toán RSA trong các ứng dụng thực tế, việc thao tác nhanh và hiệu
quả là một yêu cầu cần thiết. Dù RSA có tính bảo mật cao, nhưng cũng đặt ra một số
thách thức khi áp dụng trong các hệ thống thời gian thực hoặc yêu cầu xử lý nhanh.
Dưới đây là những điểm cần lưu ý:
Mã hóa và giải mã nhanh:
RSA yêu cầu các phép tính số học phức tạp, đặc biệt là trong quá trình mã hóa và giải
mã. Đối với thông điệp dài và khóa có độ dài lớn, việc tính toán có thể tốn nhiều thời
gian. Do đó, trong các ứng dụng yêu cầu thao tác nhanh, cần phải có cơ chế tối ưu hóa
để giảm thiểu thời gian tính toán.
Tối ưu hóa thuật toán:
Có nhiều kỹ thuật được sử dụng để tối ưu hóa việc thực hiện thuật toán RSA. Một số trong số đó bao gồm:
Tính chất cộng cuối: RSA sử dụng phép toán mũ để mã hóa và giải mã. Trong quá trình
tính toán mũ, người ta thường áp dụng tính chất cộng cuối để giảm số lần tính toán mũ
và tăng tốc độ xử lý.
Chọn khóa công khai thích hợp: Việc chọn một số e phù hợp làm khóa công khai cũng
ảnh hưởng đến tốc độ xử lý. Cần chọn e sao cho số lần lặp lại phép nhân là ít nhất để tối ưu hóa hiệu suất.
Sử dụng các thư viện mã nguồn mở:
Để giảm thiểu thời gian phát triển và tối ưu hóa hiệu suất, nhiều nhà phát triển chọn sử
dụng các thư viện mã nguồn mở đã được tối ưu hóa cho việc thao tác RSA. Các thư
viện như OpenSSL, Bouncy Castle, hay PyCrypto giúp giảm thiểu việc viết lại thuật
toán và tận dụng những cải tiến được thực hiện bởi cộng đồng lập trình viên. lOMoAR cPSD| 60701415
Phân phối tính toán:
Trong môi trường có nhiều người dùng cùng lúc, việc phân phối tính toán là quan trọng
để tăng tốc độ xử lý. Sử dụng các máy chủ có khả năng xử lý song song hoặc phân tán
tính toán sẽ giúp cải thiện hiệu suất khi sử dụng RSA trong hệ thống lớn.
Xử lý thời gian thực:
Trong một số trường hợp, như trong giao thức HTTPS hoặc các ứng dụng tương tác
trực tiếp với người dùng, yêu cầu xử lý thời gian thực là quan trọng. Trong trường hợp
này, việc tối ưu hóa hiệu suất của RSA trở nên đặc biệt quan trọng để đảm bảo trải
nghiệm người dùng không bị gián đoạn. Trong tổng thể, việc thao tác nhanh và hiệu
quả khi sử dụng thuật toán RSA đòi hỏi sự tối ưu hóa kỹ thuật và sự chọn lựa khéo léo
của các thông số và cách thức thực hiện. Với sự cần thiết của tính bảo mật cao và yêu
cầu về hiệu suất, việc phát triển và triển khai RSA trong môi trường yêu cầu xử lý
nhanh là một thách thức đồng thời cũng là một cơ hội để tối ưu hóa hệ thống bảo mật.
Có thế dùng để xác định chủ nhân (dùng làm chữ ký điện từ)
Khi một bên muốn sử dụng khóa công khai của ai đó, việc xác nhận chủ nhân của khóa
này là quan trọng. Để chứng thực khóa công khai, người sử dụng cần xác định rằng
khóa công khai đó đến từ người nào, và không bị sửa đổi hay giả mạo.
Chữ ký số là một phần quan trọng của việc xác nhận chủ nhân trong RSA. Khi một
bên gửi thông điệp và chữ ký số của họ, bên nhận có thể sử dụng khóa công khai của
người gửi để kiểm tra tính hợp lệ của chữ ký.
Xác thực người dùng: RSA cũng được sử dụng trong việc xác thực người dùng, nơi
mà người dùng cần chứng minh họ là chủ nhân của một khóa bằng cách giải mã thông
điệp bí mật. Xác định chủ nhân của dữ liệu: Khi một bên nhận được dữ liệu đã được
mã hóa bằng khóa công khai, việc xác định chủ nhân của dữ liệu này là quan trọng để
đảm bảo tính bảo mật.
Cơ chế bảo vệ khóa: lOMoAR cPSD| 60701415
Khóa bí mật cần được bảo vệ chặt chẽ, chỉ cho phép người sở hữu khóa có thể truy
cập. Một cách phổ biến để làm điều này là sử dụng hệ thống quản lý khóa an toàn
(KMS) hoặc mã hóa khoa. Khóa công khai cần được phân phối một cách an toàn để
tránh bị lộ thông tin và sử dụng sai mục đích. Các phương thức an toàn như SSL/TLS
trong giao thức HTTPS được sử dụng để chắc chắn rằng khóa công khai không bị lộ.
Bảo vệ khóa bí mật: Khóa bí mật cần được quản lý một cách an toàn và chặt chẽ. Chỉ
có chủ sở hữu khóa mới có thể truy cập và sử dụng khóa này. Việc lưu trữ khóa trên
hệ thống cần được mã hóa và bảo vệ chống lại các cuộc tấn công từ bên ngoài.
Mật khẩu mạnh: Đối với các ứng dụng yêu cầu nhập mật khẩu để truy cập vào khóa bí
mật, yêu cầu mật khẩu phải mạnh và khó bị đoán được. Việc sử dụng hàm hash và salt
là cách thức phổ biến để bảo vệ mật khẩu.
Mã hóa khóa bí mật: Trước khi lưu trữ khóa bí mật trên hệ thống, nó có thể được mã
hóa để đảm bảo tính bảo mật. Mã hóa khóa bí mật sẽ ngăn chặn kẻ tấn công truy cập
trực tiếp vào khóa nếu hệ thống bị xâm nhập.
Sử dụng Hardware Security Module (HSM): HSM là một thiết bị vật lý hoặc phần
mềm được sử dụng để bảo vệ và quản lý khóa bí mật một cách an toàn. HSM cung cấp
một môi trường bảo mật đáng tin cậy để lưu trữ và xử lý các khóa, ngăn chặn việc truy cập trái phép.
Mô hình quản lý khóa an toàn (KMS): Mô hình KMS cung cấp một cơ chế để quản lý
khóa mật mã trên toàn bộ hệ thống. Nó bao gồm việc tạo, quản lý, và phân phối các
khóa một cách an toàn và có cấu trúc.
Phân quyền truy cập: Yêu cầu đặt quyền truy cập chính xác vào các khóa bí mật. Chỉ
những người được ủy quyền mới có thể truy cập và sử dụng các khóa này.
Audit Logs: Việc ghi lại mọi hoạt động liên quan đến quản lý và sử dụng khóa bí mật
trong logs giúp kiểm tra và phát hiện các hoạt động không bình thường hoặc xâm nhập. lOMoAR cPSD| 60701415
Tái phân phối khóa: Trong trường hợp khẩn cấp, như khi khóa bị mất hoặc bị đánh
cắp, cần có cơ chế tái phân phối khóa mới. Quá trình này đòi hỏi một quy trình an toàn
để thu hồi khóa cũ và cấp phát khóa mới.
Quản lý tuổi thọ khóa: Khóa bí mật cần được thay đổi định kỳ để đảm bảo tính an toàn.
Việc đánh giá và thay đổi tuổi thọ của khóa là một phần quan trọng của quản lý khóa.
Sử dụng môi trường tách biệt: Để ngăn chặn việc lộ khóa bí mật thông qua các tấn
công side-channel, có thể sử dụng môi trường tách biệt (sandboxing) để chạy các quy
trình liên quan đến khóa mật mã.
Tính chính xác và an toàn:
Trong quá trình mã hóa và giải mã, yêu cầu đảm bảo rằng không có sự thay đổi nào
xảy ra với dữ liệu. Một lỗi nhỏ trong quá trình tính toán có thể dẫn đến dữ liệu bị hỏng hoặc mất mát.
Tính chính xác trong mã hóa và giải mã: Trong quá trình mã hóa, mỗi bit của thông
điệp cần được mã hóa chính xác bằng khóa công khai. Bất kỳ thay đổi nào cũng có thể
dẫn đến việc thông điệp không được giải mã đúng. Khi giải mã, thông điệp phải được
khôi phục một cách chính xác và đúng đắn. Bất kỳ lỗi nào trong quá trình giải mã cũng
có thể dẫn đến mất mát thông tin hoặc thông điệp không chính xác.
Bảo mật khóa: Khóa công khai và khóa bí mật phải được tạo một cách ngẫu nhiên và
có độ dài đủ lớn để đảm bảo tính bảo mật cao. Kích thước khóa thường được lựa chọn
ít nhất 2048 bit. Khóa bí mật, đặc biệt là, phải được bảo vệ chặt chẽ. Nếu khóa bí mật
bị lộ, toàn bộ hệ thống mã hóa RSA có thể bị đe dọa.
Chữ ký số hợp lệ: RSA cũng được sử dụng để tạo và kiểm tra chữ ký số, một cách để
xác minh tính hợp lệ của một thông điệp. Người gửi sử dụng khóa bí mật để tạo chữ
ký, trong khi người nhận sử dụng khóa công khai để kiểm tra chữ ký này. Nếu chữ ký
không hợp lệ, thông điệp được coi là không tin cậy.
Quản lý khóa an toàn: Việc quản lý khóa bí mật là một phần quan trọng của tính an
toàn trong RSA. Khóa bí mật cần được lưu trữ và quản lý một cách an toàn, thường lOMoAR cPSD| 60701415
thông qua việc mã hóa hoặc sử dụng các hệ thống quản lý khóa an toàn (KMS). Đồng
thời, cần có các quy trình để thu hồi khóa nếu cần, chẳng hạn khi một nhân viên rời
khỏi công ty hoặc nếu có nghi ngờ về sự an toàn của khóa.
Xác thực người dùng và dữ liệu: RSA cung cấp cơ chế xác thực mạnh mẽ, nơi mà
người dùng cần chứng minh họ có khóa bí mật bằng cách giải mã thông điệp hoặc tạo
chữ ký số. Đối với dữ liệu, việc sử dụng RSA để ký và xác minh chữ ký số đảm bảo
rằng dữ liệu không bị sửa đổi trong quá trình truyền tải.
Kiểm tra tính đúng đắn của dữ liệu: Sau khi giải mã, thông điệp được nhận phải được
kiểm tra để đảm bảo tính nguyên vẹn và đúng đắn của dữ liệu. Các thuật toán băm
cũng thường được sử dụng để kiểm tra tính toàn vẹn của dữ liệu.
2.3. Ứng dụng của thuật toán RSA
RSA là một thuật toán mã hóa bất đối xứng, được sử dụng chủ yếu trong lĩnh vực bảo
mật thông tin. Dưới đây là mục đích sử dụng của RSA trong bảo mật thông tin:
Mã hóa với khóa công khai:
RSA cho phép mã hóa dữ liệu bằng khóa công khai (public key encryption). Người gửi
sử dụng khóa công khai của người nhận để mã hóa thông điệp. Chỉ người nhận với
khóa riêng tư (private key) phù hợp mới có thể giải mã được thông điệp. Điều này đảm
bảo tính bảo mật của thông tin trong quá trình truyền.
Giải mã với khóa riêng tư:
RSA cho phép người nhận giải mã thông điệp bằng khóa riêng tư của mình. Khóa riêng
tư chỉ thuộc sở hữu của người nhận và không được tiết lộ cho bất kỳ ai khác.
Nhờ đó, thông tin chỉ được giải mã bởi người nhận duy nhất.
Chữ ký điện tử:
RSA cũng được sử dụng để tạo chữ ký điện tử. Người gửi sử dụng khóa riêng tư của
mình để tạo ra chữ ký điện tử cho thông điệp. Khi người nhận nhận được thông điệp
và chữ ký điện tử, họ sẽ sử dụng khóa công khai của người gửi để xác minh tính toàn
vẹn và xác thực của thông điệp. Trên các thẻ ATM luôn có phần chữ ký điện tử đã được lOMoAR cPSD| 60701415
mã hóa từ chữ ký của khách hàng khi đăng ký tài khoản tại ngân hàng. Có thể nói,
trong lĩnh vực ngân hàng, vấn đề bảo mật thông tin của khách hàng cần được đặt lên
hàng đầu, chúng quyết định chất lượng của dịch vụ. RSA được ứng dụng để bảo mật
dữ liệu khi người dùng thực hiện những giao dịch ngân hàng, đem lại trải nghiệm tốt
và giúp khách hàng an tâm hơn. Giao thức an toàn:
Hiện nay tình trạng nghe lén, theo dõi hoạt động cũng như lấy cắp dữ liệu cá nhân trên
mạng xã hội bị lên án và chỉ trích rất nhiều, bao gồm cả ông lớn Facebook. Không chỉ
những trang mạng xã hội, các trang web cũng không tránh khỏi việc lưu lại các hoạt
động, hành vi truy cập để phục vụ các mục đích Marketing. Do đó với thuật toán RSA
giúp dữ liệu khỏi các cuộc tấn công của kẻ xấu.RSA được sử dụng trong nhiều giao
thức an toàn như SSL/TLS để bảo vệ quá trình giao tiếp trực tuyến. Khi thiết lập kết
nối an toàn, RSA được sử dụng để trao đổi khóa bí mật giữa hai bên thông qua quá
trình giao tiếp. Khóa này sau đó được sử dụng để mã hóa và giải mã dữ liệu được
truyền qua kết nối. Tóm lại, RSA được sử dụng trong bảo mật thông tin để mã hóa dữ
liệu, giải mã dữ liệu, tạo chữ ký điện tử và thiết lập các giao thức an toàn. Thuật toán
này đóng vai trò quan trọng trong việc đảm bảo tính toàn vẹn, xác thực và bảo mật của
thông tin trong quá trình truyền và lưu trữ.
Thuật toán RSA trong công nghệ thông tin:
Trong ngôn ngữ lập trình Java, các nhà lập trình viên thường sử dụng những đoạn code
chứa RSA để tăng tính bảo mật cho trang web và ứng dụng cũng như đảm bảo an toàn
cho người sử dụng. Các đoạn code RSA này có thể hoạt động dưới bất kỳ sự thay đổi
nào của môi trường. Ngoài ra, các lập trình viên cũng sử dụng các ngôn ngữ lập trình
khác bên cạnh Java có thể tìm hiểu và ứng dụng những tính năng của RSA trong hoạt
động làm việc và bảo mật thông tin. Ngày nay việc sử dụng các ứng dụng, trang web
trên internet ngày càng gia tăng khiến cho vấn đề bảo mật dữ liệu càng được chú trọng.
Những dữ liệu này có thể là những thông tin bí mật cá nhân, thông tin về tài chính, ...
gây không ít nguy hại cho người sử dụng. Cũng chính vì lý do này mà thuật toán RSA lOMoAR cPSD| 60701415
được biết đến và sử dụng nhiều hơn trong tất cả các lĩnh vực đặc biệt là trong ngành ngân hàng.
2.4. Ưu và nhược điểm của thuật toán RSA
Ưu điểm của RSA:
Bảo mật cao: RSA sử dụng một cặp khóa, khóa công khai và khóa bí mật, giúp tăng
cường bảo mật cho việc mã hóa và giải mã dữ liệu. Độ bảo mật của RSA phụ thuộc
vào độ dài của khóa, thường được đo bằng số bit. Khóa 2048 bit được coi là an toàn trong thời gian dài.
Phân phối khóa dễ dàng: Khóa công khai có thể được phân phối một cách công khai
và an toàn mà không lo sợ rò rỉ thông tin. Bất kỳ ai muốn gửi tin nhắn cho người sở
hữu khóa công khai đều có thể sử dụng nó để mã hóa tin nhắn.
Xác thực: RSA được sử dụng rộng rãi trong việc xác thực người dùng, xác thực dữ liệu
và xác thực tài liệu trên internet. Khi người dùng ký một tài liệu bằng chữ ký số RSA,
điều này có nghĩa là họ chấp nhận và cam kết với nội dung của tài liệu đó.
Kích thước khóa linh hoạt: RSA cho phép sử dụng khóa có độ dài khác nhau, từ 512
bit đến hàng nghìn bit, tùy thuộc vào mức độ bảo mật mong muốn và hiệu suất yêu
cầu. Điều này cho phép lựa chọn kích thước khóa phù hợp với ứng dụng cụ thể mà
không ảnh hưởng đến bảo mật.
Không thể giải mã ngược (One-way Function): Một trong những điểm mạnh nhất của
RSA là khả năng không thể giải mã ngược từ khóa công khai sang khóa bí mật trong
thời gian hợp lý. Điều này đảm bảo rằng người nhận thông điệp chỉ có thể giải mã
được nó nếu có khóa bí mật.
Nhược Điểm của RSA:
Tính siệu suất: RSA có thể tốn nhiều thời gian và tài nguyên tính toán, đặc biệt là khi
sử dụng các khóa có độ dài lớn. Quá trình mã hóa và giải mã trong RSA có thể làm
giảm hiệu suất của hệ thống. Điều này khiến RSA không phù hợp cho các ứng dụng
yêu cầu xử lý nhanh và hiệu suất cao. lOMoAR cPSD| 60701415
Khả năng tấn công Brute-Force: Khi sử dụng các khóa nhỏ, RSA trở nên dễ bị tấn công
bằng kỹ thuật brute-force, nơi mà kẻ tấn công thử từng khóa mật mã cóthể có để giải
mã dữ liệu. Điều này đặc biệt đáng quan ngại khi sử dụng khóa có độ dài thấp.
Khả năng tấn công chọn lọc: RSA có thể bị tấn công thông qua việc chọn lọc khóa
công khai. Kẻ tấn công có thể tìm kiếm những khóa dễ dàng để giải mã thông điệp.
Đây là một vấn đề nếu không sử dụng khóa có độ dài đủ lớn và ngẫu nhiên đủ.
Không thích hợp cho dữ liệu lớn: RSA không hiệu quả cho việc mã hóa dữ liệu lớn do
yêu cầu xử lý lớn và tốn nhiều tài nguyên tính toán. Điều này khiến RSA không phù
hợp cho việc mã hóa và giải mã dữ liệu lớn như trong các ứng dụng lưu trữ đám mây
hoặc truyền tải dữ liệu lớn.
Cần phải đảm bảo khóa bí mật an toàn: Khóa bí mật trong RSA cần được bảo mật một
cách tuyệt đối. Nếu khóa bị rò rỉ hoặc bị đánh cắp, toàn bộ hệ thống mã hóa có thể bị
đe dọa. Việc quản lý và bảo vệ khóa bí mật là một thách thức đối với các tổ chức và cá nhân sử dụng RSA.
Chương 3. Cài đặt
3.1. Giới thiệu về ngôn ngữ
Trong bài tôi đã sử dụng hai công nghệ quan trọng trong việc phát triển ứng dụng Windows hiện đại:
C# (C Sharp) là một ngôn ngữ lập trình đa năng, phát triển bởi Microsoft, được sử
dụng rộng rãi trong việc xây dựng các ứng dụng Windows, web và di động. Với cú
pháp dễ đọc và hiểu, C# là một ngôn ngữ lập trình hướng đối tượng mạnh mẽ, mang
lại tính linh hoạt và hiệu suất cao cho các nhà phát triển. Được tích hợp sâu vào.NET
Framework và .NET Core, C# cung cấp một nền tảng ổn định và mạnh mẽ cho việc
phát triển ứng dụng đa nền tảng.
WPF (Windows Presentation Foundation) là một công nghệ phát triển giao diện
người dùng (GUI) mạnh mẽ của Microsoft, cho phép các nhà phát triển tạo ra các ứng
dụng Windows với giao diện đẹp mắt và linh hoạt. Sử dụng XAML (eXtensible