lOMoARcPSD| 60701415
NỘI DUNG MỞ ĐẦU
1.1. Lý do chọn đề tài
Nhóm quan tâm đến việc phát triển một ứng dụng chatbot nhóm nhận thấy sự gia
tăng của nhu cầu giao tiếp thông qua các nền tảng trực tuyến. Chatbot không chỉ giúp tối ưu
hóa trải nghiệm người dùng mà còn cung cấp một cách tiếp cận tiện lợi và tức thì để tương tác
với người dùng.
Chọn thuật toán Vigenere để mã hóa tin nhắn trong ứng dụng của mình tính đơn
giản độ bảo mật cao của nó. Vigenere một trong những phương pháp hóa cổ điển
được sử dụng từ thế kỷ 16 vẫn được coi một phương pháp bảo mật đáng tin cậy trong
nhiều trường hợp.
Nhóm tin rằng việc sử dụng thuật toán Vigenere thể cung cấp mức độ bảo mật đủ
đáng cho tin nhắn giữa hai máy tính trong trường hợp của ứng dụng của mình. Tuy nhiên, để
tăng cường bảo mật, nhóm cũng đang xem xét sử dụng các phương pháp bổ sung như mã hóa
đối xứng và băm.
Thông qua việc tích hợp chatbot và mã hóa tin nhắn, nhóm mong muốn xây dựng một
ứng dụng cung cấp giao tiếp an toàn và bảo mật giữa người dùng. Ứng dụng này có thể được
sử dụng trong nhiều tình huống khác nhau, từ giao tiếp cá nhân đến giao tiếp doanh nghiệp.
Trong tương lai, nhóm dự định cải thiện tính năng hiệu suất của ứng dụng bằng cách
tối ưu hóa thuật toán mã hóa, cải thiện giao diện người dùng thêm các tính năng mới như
giao diện đa ngôn ngữ và tích hợp trí tuệ nhân tạo để cải thiện trải nghiệm người dùng.
1.2. Mục tiêu đề tài
Mục tiêu của dự án "Xây dựng ứng dụng chatbot sử dụng thuật toán Vigenere để
hóa tin nhắn giữa hai thiết bị máy tính" thể được phân thành các mục tiêu cụ thể như
sau:
Phát triển một ứng dụng chatbot đơn giản và dễ sử dụng: Mục tiêu này nhằm tạo ra một
giao diện người dùng thân thiện trực quan để người dùng thể tương tác gửi tin nhắn
một cách thuận tiện.
Tích hợp thuật toán Vigenere để mã hóa tin nhắn: Mục tiêu này đòi hỏi việc triển khai
thuật toán Vigenere vào ứng dụng để mã hóa và giải mã tin nhắn giữa hai máy tính, đảm bảo
tính bảo mật và an toàn cho thông điệp.
lOMoARcPSD| 60701415
Đảm bảo tính bảo mật của ứng dụng: Mục tiêu này yêu cầu việc kiểm tra cải thiện
tính bảo mật của ứng dụng, bao gồm cả việc bảo vệ dữ liệu người dùng và đảm bảo rằng thuật
toán mã hóa được triển khai đúng cách.
Kiểm tra và thử nghiệm ứng dụng: Mục tiêu này để đảm bảo rằng ứng dụng hoạt
động một cách chính xác và ổn định trước khi phát hành, bằng cách thực hiện các bước kiểm
tra và thử nghiệm kỹ lưỡng.
Tối ưu hóa hiệu suất và trải nghiệm người dùng: Mục tiêu y nhằm cải thiện hiệu suất
và trải nghiệm người dùng của ứng dụng thông qua việc tối ưu hóa mã nguồn, cải thiện tốc độ
phản hồi và giảm thiểu lỗi hệ thống.
Tổng thể, mục tiêu của dự án là xây dựng một ứng dụng chatbot an toàn, bảo mật và dễ
sử dụng, cho phép người dùng gửi nhận tin nhắn một cách riêng tư và an toàn giữa hai thiết
bị máy tính.
1.3. Bố cục triển khai đề tài
Bố cục triển khai cho dự án "Xây dựng ứng dụng chatbot sử dụng thuật toán Vigenere
để mã hóa tin nhắn giữa hai thiết bị máy tính" có thể được tổ chức như sau:
Thu thập u cầu: Xác định các yêu cầu chính của ứng dụng chatbot, bao gồm khả
năng giao tiếp giữa người dùng và chatbot, mã hóa và giải mã tin nhắn, và tích hợp thuật toán
Vigenere với bảng mã ASCII 256 ký tự.
Thiết kế Kiến trúc: Thiết kế giao diện đơn giản dễ sử dụng cho ng dụng chatbot
trên cả hai thiết bị máy tính. Bố cục giao diện gồm các ô nhập tin nhắn, nút gửi, khu vực
hiển thị tin nhắn đã mã hóa và giải mã.
Logic Ứng dụng: Xây dựng logic ứng dụng để xử các tin nhắn được gửi nhận từ
người dùng. Tích hợp thuật toán mã hóa giải mã Vigenere cho việc hóa giải tin
nhắn.
Triển khai Thuật toán Vigenere: Để mã hóa và giải mã tin nhắn theo bảng mã ASCII
256 ký tự. Xây dựng các hàm hoặc lớp để thực hiện quá trình mã hóa và giải mã, bao gồm cả
việc xử lý độ dài khóa và chuỗi tin nhắn.
Tích hợp Giao tiếp Máy tính: Sử dụng các giao thức truyền thông như TCP/IP hoặc
WebSocket để thiết lập kết nối giữa hai thiết bị máy tính. Triển khai logic để gửi và nhận các
tin nhắn đã mã hóa và giải mã qua kết nối mạng.
Kiểm thử Debug: Tiến hành kiểm thử chức năng tính năng của ứng dụng, bao
gồm cả việc kiểm tra việc mã hóa và giải mã tin nhắn.
lOMoARcPSD| 60701415
Sửa lỗi và điều chỉnh ứng dụng dựa trên phản hồi từ quá trình kiểm thử.
Tối ưu hóa Cải tiến: Tối ưu hóa nguồn tăng cường hiệu suất của ứng dụng.
Cải tiến tính bảo mật và tính ổn định của hệ thống mã hóa và giải mã.
Triển khai và Phát hành:Triển khai ứng dụng chatbot trên hai thiết bị máy nh và công
bố cho người dùng. Theo dõihỗ trợ người dùng trong quá trình sử dụnggiải quyết vấn
đề.
Mỗi bước trong quá trình triển khai dự án đều quan trọng đóng vai trò quan trọng
trong việc xây dựng triển khai một ứng dụng chatbot thành công. Tuy nhiên, một số
bước có thể được coi là quan trọng nhất trong quá trình này:
Thiết kế Kiến trúc: Bước nàycơ sở để xây dựng ứng dụng và đặt nền tảng cho toàn
bộ dự án. Việc thiết kế kiến trúc ứng dụng đòi hỏi sự cân nhắc kỹ lưỡng về cách tổ chức logic
ứng dụng, giao diện người dùng tích hợp các thành phần chức năng. Một kiến trúc tốt sẽ
giúp dễ dàng mở rộng và bảo trì ứng dụng trong tương lai.
Triển khai Thuật toán Vigenere: dự án yêu cầu sử dụng thuật toán Vigenere để
hóa và giải mã tin nhắn, việc triển khai thuật toán này là một bước quan trọng. Đảm bảo rằng
thuật toán được triển khai đúng cách hoạt động một ch chính xác điều cực kỳ quan
trọng để đảm bảo tính bảo mật và chính xác của hệ thống mã hóa và giải mã.
Kiểm thử Debug: Bước kiểm thử debug quan trọng để đảm bảo tính ổn định
chất lượng của ứng dụng. Việc phát hiện sửa lỗi sớm giúp tránh được các vấn đề tiềm
ẩn cải thiện trải nghiệm người dùng. Một quy trình kiểm thử kỹ lưỡng sẽ giúp đảm bảo
rằng ứng dụng hoạt động như mong đợi và đáp ứng được yêu cầu của người dùng.
Tuy nhiên, không một bước cụ thể nào được xác định là quan trọng nhất trong quá
trình triển khai. Mỗi bước đều có ý nghĩa riêng và đóng góp vào thành công của dự án. Quan
trọng nhất phải thực hiện mỗi bước một ch cẩn thận n nhắc để đảm bảo rằng ứng
dụng được xây dựng và triển khai một cách thành công và hiệu quả.
CƠ SỞ LÝ THUYẾT
1.4. Mã hóa và giải mã
Mã hóa giải mã là hai khái niệm bản trong lĩnh vực bảo mật thông tin truyền
thông. Chúng đóng vai trò quan trọng trong việc bảo vệ dữ liệu khỏi việc truy cập trái phép
và đảm bảo tính bảo mật của thông tin được truyền tải qua các kênh không an toàn.
Hóa: hóa quá trình chuyển đổi thông tin từ dạng ràng (plaintext) thành
dạng không thể đọc được (ciphertext) một cách có hệ thống và theo một qui tắc nhất định, sử
lOMoARcPSD| 60701415
dụng một thuật toán mã hóa cụ thể và một khóa (key). Mục tiêu của mã hóa là làm cho thông
tin trở nên không thể hiểu được nếu không có khóa giải mã phù hợp. Có hai loại mã hóa chính
là mã hóa đối xứng và mã hóa không đối xứng.
hóa đối xứng: Trong loại hóa này, cùng một khóa được sử dụng cho cả quá trình
hóa giải mã. dụ phổ biến cho loại hóa này AES (Advanced Encryption
Standard) và DES (Data Encryption Standard).
hóa không đối xứng: Trong loại hóa này, hai loại khóa: khóa công khai
(public key) và khóa bí mật (private key). Một khóa dùng để mã hóa thông tin và khóa còn lại
được sử dụng để giải mã. dụ phổ biến nhất cho loại hóa này RSA (RivestShamir-
Adleman).
Giải Mã: Giải là quá trình ngược lại của hóa, trong đó dữ liệu được chuyển từ
dạng không thể đọc được (ciphertext) trở lại thành dạng rõ ng (plaintext) bằng cách sử dụng
một khóa giải phù hợp. Khóa giải y thường được tạo ra hoặc được cung cấp bởi
người gửi thông tin cho người nhận.
Mã hóa và giải mã mang lại ý nghĩa to lớn với quá trình công nghiệp hóa, hiện đại nói
chung và ngành an toàn bảo mật thông tin nói riêng, dưới đây là một trong những ý nghĩa mà
mã hóa và giải mã mang lại
Bảo mật dữ liệu: Mã hóa đảm bảo rằng dữ liệu không thể đọc được nếu không có khóa
giải mã. Điều này giúp bảo vệ thông tin quan trọng khỏi việc truy cập trái phép.
Bảo mật truyền thông: Mã hóa đảm bảo rằng thông tin được truyền tải qua mạng hoặc
các kênh không an toàn không bị đánh cắp hoặc thay đổi bởi bên thứ ba.
Quyền riêng tư: Việc sử dụng hóa đảm bảo tính riêng của dữ liệu nhân
thông tin nhạy cảm.
An toàn trực tuyến: Mã hóa đóng vai trò quan trọng trong việc bảo vệ các giao dịch
trực tuyến, thông tin tài khoản và dữ liệu cá nhân của người ng khi sử dụng c dịch vụ trực
tuyến
Trong tổ chức và cá nhân, việc hiểu và áp dụng đúng các phương pháp mã hóa và giải
mã là rất quan trọng để đảm bảo tính bảo mật của thông tin và dữ liệu.
1.5. Mã hóa và phá khóa
Trong lĩnh vực bảo mật, ngoài hoạt động mã hóa, còn tồn tại hoạt động ngược lại được
gọi mã thám, đó là việc khám phá bí mật từ các bản mật "lấy trộm" được. Mã thám đóng
vai trò quan trọng không kém trong lĩnh vực này, các thuật toán hóa giải không
lOMoARcPSD| 60701415
nhất thiết phải được giữ mật. thám thường tập trung vào việc tìm khóa mật mã, do
đó, cũng được biết đến với tên gọi phá khóa.
Bài toán hóa bản thường liên quan đến việc tìm ra khóa mật K hoặc khóa
giải Kd để giải mã thông tin được mã hóa. Trong trường hợp mà người thám mã biết thông
tin về sơ đồ hệ mật mã, bao gồm cả các phép lập mã và giải mã tổng quát E và D, việc này có
thể giúp họ tìm ra khóa mật mã.
Ngoài ra, người thám cũng thể biết thêm một số thông tin khác, dựa trên
những thông tin này, bài toán thám thể được phân loại thành các bài toán cụ thể khác
nhau. Điều này có thể bao gồm việc biết các điều kiện ban đầu, các đặc điểm của thông tin
được mã hóa, hoặc các thuật toán cụ thể được sử dụng trong quá trình mã hóa và giải mã. Phụ
thuộc vào các thông tin cụ thể này, người thám mã sẽ phát triển các chiến lược khác nhau để
tìm ra khóa mật mã.:
Bài toán thám chỉ biết bản : i toán phổ biến nhất , khi người thám chỉ
biết một bản mật mã Y.
Bài toán thám mã khi chỉ biết bản rõ : người thám mã biết một bản mật mã Y cùng với
bản rõ tưng ứng với X.
Bài toán thám mã khi có bản rõ được chọn : người thám mã có thể chọn một bản rõ X,
và biết bản mật tương ứng Y. Điều này thể xảy ra khi người thám mã chiếm được tạm
thời máy lập mã.
Bài toán thám khi có bản mã được chọn : người thám mã có thể chọn một bản mật
Y , và biết bản rõ tương ứng X. điều này có thể xảy ra khi một người thám mã tham chiếm
được tạm thời máy giải
1.6. Các khái niệm liên quan khác
Bản rõ (Plaintext): Bản rõ là dạng của dữ liệu ban đầu, thông tin được biểu diễn một
cách rõ ràng và dễ đọc. Đây là dữ liệu mà bạn muốn bảo vệ hoặc truyền đi một cách an toàn.
Bản mã (Ciphertext): Bản mã là dữ liệu sau khi đã được mã hóa và không thể đọc được
trực tiếp. Nó là kết quả của quá trình mã hóa bản rõ, thường là một chuỗi ký tự hoặc một dãy
bit không gian sắp xếp.
Khóa (Key): Khóa một giá trị hoặc tập hợp các giá trị được sử dụng trong quá trình
hóa giải . Khóa xác định cách dữ liệu bản được biến đổi thành bản và
ngược lại. Sự an toàn của hệ thống mã hóa thường phụ thuộc vào việc bảo vệ quản lý khóa.
lOMoARcPSD| 60701415
hóa (Encryption): hóa qtrình biến đổi bản rõ thành bản sử dụng một
thuật toán hóa khóa tương ứng. Mục đích chính của hóa là bảo vệ thông tin khỏi
việc truy cập trái phép bằng cách biến đổi nó thành dạng không thể đọc được.
Giải (Decryption): Giải quá trình ngược lại của mã a, trong đó bản mã được
chuyển đổi trở lại thành bản rõ sử dụng khóa giải mã tương ứng. Quá trình giải cho phép
người nhận dữ liệu khôi phục lại thông tin ban đầu từ dữ liệu đã được mã hóa.
Những thuật ngữ này đóng vai trò quan trọng trong lĩnh vực bảo mật thông tin và truyền
thông, giúp đảm bảo tính bảo mật và toàn vẹn của thông tin khi truyền tải hoặc lưu trữ.
1.7. Các thành phần của hệ mật mã
Việc mã hóa hay giải mã theo quy tắc nhất định , quy tắc đó được gọi là hệ mật mã.
Định nghĩa : Một hệ mật là một bộ 5 (P,C,K,E,D) thoả mãn các điều kiện sau:
P là một tập hợp hữu hạn các bản rõ (PlainText), nó được gọi là không gian bản rõ.
C là tập các hữu hạn các bản (Crypto), còn được gọi là không gian các bản mã.
Mỗi phần tử của C có thể nhận được bằng cách áp dụng phép mã hoá Ek lên một phần tử của
P, với k K.
K là tập hữu hạn các khoá hay còn gọi là không gian khoá. Đối với mỗi phần tử k của
K được gọi là một khoá (Key). Số lượng của không gian khoá phải đủ lớn để “kẻđịch: không
có đủ thời gian để thử mọi khoá có thể(phương pháp vét cạn).
Các thành phần này đều liên quan mật thiết đến nhau nhằm tạo ra một hệ mật mạnh,
có logic cũng như đáp ứng như cầu người dùng
Đối với mỗi k K một quy tắc eK: P C một quy tắc giải tương ứng
dK D. Mỗi eK: P → C và dK: C → P là những hàm mà: dK (eK(x))=x với mọi bản rõ x P
Dưới đây chúng ta sẽ có sơ đồ sơ lược về thành phần của hệ mật mã và sự liên quan giữa các
thành phần.
lOMoARcPSD| 60701415
Hình 2.4. Sơ đồ sơ lược thành phần của hệ mật mã
1.8. Phân loại hệ mật
nhiều cách để phân loại hệ mật mã. Dựa vào cách truyền khóa thể phân các hệ
mật mã thành hai loại:
Mật mã đối xứng (Symmetric Cryptography): Trong mật mã đối xứng, cùng một khóa
được sử dụng cho cả quá trình mã hóa giải mã. Cụ thể, khóa được sử dụng để hóa thông
tin cũng khóa được sdụng để giải mã nó. Điều này có nghĩa là cả người gửi và người nhận
đều phải biết giữ mật khóa này. Mật đối xứng thường nhanh chóng hiệu quả v
mặt tính toán, làm cho chúng phổ biến trong nhiều ứng dụng. Tuy nhiên, một thách thức quan
trọng là việc quản lý và phân phối khóa một cách an toàn.
Hình 2.5.1.1. Mô tả Hệ mật đối xứng Một
vài thuật toán của hệ mật mã đối xứng như sau:
lOMoARcPSD| 60701415
AES (Advanced Encryption Standard): một thuật toán mật đối xứng tiêu biểu,
được sử dụng rộng rãi trên toàn thế giới cho việc mã hóa dữ liệu. Nó thường được xem là một
trong những thuật toán mật mã mạnh nhất hiện nay.
Hình 2.5.2. Mô tả thuật toán AES
Ứng dụng: AES được sử dụng trong nhiều ứng dụng, bao gồm mã hóa dữ liệu trên các
kết nối mạng không dây (Wi-Fi, Bluetooth), mã hóa dữ liệu trên ổ đĩa cứng (disk encryption),
mã hóa dữ liệu trong các ứng dụng như email và tin nhắn, và trong các giao thức bảo mật như
TLS/SSL.
Độ an toàn: Hệ mật AES (Advanced Encryption Standard) là một trong những thuật
toán mã hóa đối xứng phổ biến nhất hiện nay. Tính an toàn của AES dựa trên sự khó khăn của
việc giải quyết các vấn đề toán học mà nó dựa trên, đặc biệt là vấn đề phá mã khóa thông qua
việc tìm kiếm giải pháp cho các hộp thay thế và hoán vị. Dưới đây là một số yếu tố quan trọng
ảnh hưởng đến độ an toàn của AES:
Kích thước khóa: AES hỗ trợ ba kích thước khóa chính là 128 bits, 192 bits và 256 bits.
Kích thước khóa càng lớn thì càng khó khăn cho kẻ tấn công thực hiện các cuộc tấn công
brute-force (cố gắng tất cả các khả năng cho từng khóa) hoặc các phương pháp tấn công khác
như tìm kiếm giải pháp thông qua việc phân tích về cấu trúc của thuật toán AES.
Sự ngẫu nhiên của các khóa: Khóa được chọn ngẫu nhiên từ không gian khóa lớn, điều
này làm tăng khả năng ngăn chặn các cuộc tấn công dựa trên việc tìm kiếm giải pháp thông
qua việc tìm ra mẫu hoặc dãy nhất định trong các khóa.
Quản lý khóa và công cụ: Sự an toàn của hệ mật mã AES cũng phụ thuộc vào việc
lOMoARcPSD| 60701415
quản bảo vệ khóa mật, bao gồm việc sử dụng các biện pháp bảo mật phù hợp như việc
lưu trữ khóa mật an toàn, và chỉ cho phép quyền truy cập tới các người dùng cần thiết.
Khả năng chống các cuộc tấn công chế hóa hàng loạt (ciphertext-only attacks):
AES được thiết kế để chống lại các cuộc tấn công này bằng cách m cho mối quan hệ giữa
đầu ra khóa trở nên rất phức tạp, làm cho việc phân tích mối quan hệ này trở nên cùng
khó khăn.
DES (Data Encryption Standard) và 3DES (Triple Data Encryption Standard):một
trong những thuật toán mật đối xứng đầu tiên và đã từng được sử dụng phổ biến trong quá
khứ. Tuy nhiên, do DES bị coi không đủ mạnh trước các phương pháp tấn công hiện đại,
3DES đã được phát triển để cung cấp mức độ bảo mật cao hơn bằng ch áp dụng DES ba lần.
Hình 2.5.3. Mô tả thuật toán DES
Ứng dụng: Mặc không còn được sử dụng rộng rãi trong các hệ thống mới, DES
3DES vẫn được sử dụng trong một số ứng dụng trong một số quốc gia do tương
thích hoặc yêu cầu pháp lý.
Độ an toàn: DES (Data Encryption Standard) một trong những thuật toán hóa
đối xứng đầu tiên phổ biến nhất từ trước đến nay. Tuy nhiên, với sự phát triển của công
nghệ, DES đã trở nên không còn an toàn như trước. ới đây một số do sao DES
không còn được coi là an toàn:
Kích thước khóa nhỏ: DES sử dụng khóa kích thước là 56 bits, làm cho việc thực
hiện các cuộc tấn công brute-force (cố gắng tất cả các khả năng cho từng khóa) trở n khả
thi trong thời gian ngắn, đặc biệt là với sức mạnh tính toán hiện đại.
Sự tiên đoán được (Predictable): Cấu trúc của DES đã trở nên dễ dàng bị tiên đoán
lOMoARcPSD| 60701415
được và các phương pháp tấn công đã được phát triển để tận dụng điều này. Cụ thể, các cuộc
tấn công như tấn công "meet-in-the-middle" "chosen-plaintext attack" đã được chứng minh
là hiệu quả đối với DES.
Quản lý khóa và công cụ: Sự an toàn của DES cũng phụ thuộc vào việc quản và bảo
vệ khóa mật, bao gồm việc sử dụng các biện pháp bảo mật phù hợp như việc lưu trữ khóa mật
an toàn, chỉ cho phép quyền truy cập tới các người dùng cần thiết. Tuy nhiên, với kích
thước khóa nhỏ, việc này trở nên khó khăn.
Tiến triển của công nghệ hóa: Các thuật toán hóa đối xứng hiện đại như AES
(Advanced Encryption Standard) được coi là an toàn hơn DES, do sử dụng khóa kích thước
lớn hơn và độ phức tạp cao hơn trong quá trình mã hóa và giải mã.
Blowfish và Twofish: Là hai thuật toán hóa đối xứng khác nhau nhưng cùng được
phát triển bởi Bruce Schneier. Blowfish một thuật toán hóa khối, trong khi Twofish là
một thuật toán mã hóa dựa trên mạng Feistel.
lOMoARcPSD| 60701415
Hình 2.5.4. Mô tả thuật toán Blowfish
Ứng dụng: Cả Blowfish Twofish đã được sử dụng trong các ứng dụng a dữ
liệu như phần mềm mã hóa file và trong giao thức mã hóa VPN (Virtual Private Network).
Độ an toàn: Blowfish và Twofish đều là thuật toán mã hóa đối xứng có khả năng cung
cấp mức độ an toàn cao. Dưới đây một cái nhìn tổng quan về độ an toàn của cả hai thuật
toán:
Kích thước khóa: Blowfish sử dụng khóa độ dài từ 32 bits đến 448 bits. Với kích
thước khóa lớn, Blowfish có khả năng chống lại các cuộc tấn công brute-force.
Tiền xử lý: Blowfish thực hiện một số bước tiền xử lý để tạo ra các bản mã khác nhau
từ cùng một khóa, điều này làm tăng độ phức tạp và độ an toàn của thuật toán.
lOMoARcPSD| 60701415
Tiến triển công nghệ: Mặc dù vẫn được coi là an toàn, Blowfish đã không còn được sử
dụng rộng rãi trong các ứng dụng mới vì có sự ra đời của các thuật toán mã hóa mới hơn như
AES, cũng như các vấn đề về bản quyền và sự phát triển của các thuật toán mã hóa mã nguồn
mở.
Kích thước khóa: Twofish sử dụng khóa độ dài từ 128 bits đến 256 bits, giúp tăng
cường độ an toàn của thuật toán.
Sự linh hoạt: Twofish được thiết kế để khả năng hoạt động hiệu quả trên nhiều nền
tảng và môi trường khác nhau, làm cho nó trở thành một lựa chọn phổ biến cho các ứng dụng
mã hóa đa dạng.
Khả năng chống các cuộc tấn công: Twofish có thể chống lại các cuộc tấn công như tấn
công phân tích miền văn bản (plaintext), tấn công đối với bản đã biết (knownplaintext
attack), và tấn công phân tích trực tiếp (brute-force attack) trong điều kiện có kích thước khóa
đủ lớn.
Hình 2.5.5. Mô tả thuật toán RC4
Ứng dụng: RC4 đã được sử dụng rộng rãi trong các giao thức bảo mật như WEP (Wired
Equivalent Privacy) SSL (Secure Sockets Layer), mặc sau y đã bị thay thế bởi c
thuật toán mạnh hơn do các lỗ hổng bảo mật.
Độ an toàn: Thuật toán RC4 (Rivest Cipher 4) đã từng được sử dụng rộng rãi trong các
ứng dụng bảo mật, nhưng hiện nay không còn được coi an toàn do các vấn đề bảo mật
đã được phát hiện và được công bố. Dưới đây là một số lý do vì sao RC4 không còn được coi
là an toàn:
Cấu trúc yếu: Cấu trúc của RC4 một số vấn đề an ninh, bao gồm sự hiệu quả của
thuật toán tìm kiếm và các lỗi trong quá trình khởi tạo khóa.
lOMoARcPSD| 60701415
Cuộc tấn công đối với khóa: các phương pháp tấn công như "fluhrer, mantin and
shamir" (FMS) attack và "key reconstruction" attack cho phép tấn công viên phục hồi khóa từ
dữ liệu được mã hóa. Điều này làm cho RC4 trở nên dễ dàng bị tấn công.
Thiên về hiệu suất: Mặc dù nhanh chóng và đơn giản, RC4 không được thiết kế để đối
phó với một số vấn đề bảo mật quan trọng, bao gồm việc chống lại các cuộc tấn công phổ biến
như các cuộc tấn công với văn bản đã biết.
Khả năng đối phó với tấn công đáng ngờ: nhiều cuộc tấn công đối với RC4 đã được
công bố và đã được nghiên cứu rộng rãi, làm giảm sự tin cậy vào thuật toán.
Mật không đối xứng (Asymmetric Cryptography): Ti ngược với mật đối xứng,
mật không đối xứng sử dụng cặp khóa: một khóa công khai (public key) một khóa
mật (private key). Khóa công khai được chia sẻ công khai được sử dụng để hóa thông
tin, trong khi khóa mật được giữ mật được sử dụng để giải thông tin. Mật
không đối xứng làm giảm đáng kể vấn đề của việc quản khóa trong mật đối xứng, bởi
vì khóa công khai có thể được phổ biến mà không gây nguy cơ cho tính bảo mật.
Hình 2.5.6. Mô tả Hệ mật mã bất đối xứng Một
vài thuật toán của hệ mật mã không đối xứng như sau:
RSA (Rivest-Shamir-Adleman): một thuật toán mật không đối xứng phổ biến
nhất, dựa trên việc sử dụng hai khóa: khóa công khai và khóa bí mật.
lOMoARcPSD| 60701415
Hình 2.5.7. Mô tả thuật toán RSA
Ứng dụng: RSA được sử dụng rộng rãi trong bảo mật dữ liệu truyền tải trên internet,
như trong giao thức HTTPS để bảo vệ thông tin nhân, giao dịch tài chính trực tuyến, ch
ký số, và trong việc tạo ra các kênh truyền tải an toàn.
Độ an toàn: Hệ mật mã RSA (Rivest-Shamir-Adleman) là một trong những hệ mật
công khai phổ biến nhất và được sử dụng rộng rãi trong thực tế. Tính an toàn của hệ mật
RSA phụ thuộc vào khả năng của người tấn công để phá vỡ các thuật toán toán học RSA
dựa trên, chẳng hạn như phân tích số nguyên tố lớn, dựa vào sự khó khăn của bài toán nguyên
tố lớn, giải phương trình đồng dư và các thuật toán tìm kiếm giải pháp khác.
Kích thước khóa: Kích thước của khóa RSA ảnh hưởng trực tiếp đến độ an toàn của hệ
thống. Kích thước khóa lớn hơn thì cần nhiều tính toán hơn cho cả hai quá trình hóa
giải mã, đồng thời cũng khó khăn hơn cho người tấn công để phá vỡ hệ thống. Hiện nay, kích
thước khóa an toàn thường được sử dụng là 2048 bits hoặc cao hơn.
Sự ngẫu nhiên của khóa: Việc tạo ra các khóa ngẫu nhiên và đủ lớn là rất quan trọng để
tránh các cuộc tấn công dựa trên việc tìm ra mẫu hoặc dãy nhất định trong các khóa.
Sự an toàn của các thuật toán toán học liên quan: Độ an toàn của RSA phụ thuộc vào
sự khó khăn của các i toán toán học liên quan, chẳng hạn như việc phân tích một số nguyên
tố thành các thừa số nguyên tố, giải phương trình đồng các thuật toán tìm kiếm giải pháp
khác.
Quản khóa công cụ: Sự an toàn của hệ mật RSA cũng phụ thuộc vào việc quản
bảo vệ khóa mật các thông tin mật khác, bao gồm việc sử dụng các công cụ hóa
và giải mã một cách an toàn.
ECC (Elliptic Curve Cryptography): Sử dụng các điểm trên đường cong elliptic để tạo
ra các cặp khóa công khai và khóa bí mật.
lOMoARcPSD| 60701415
Hình 2.5.8. Mô tả thuật toán ECC
Ứng dụng: ECC thường được sử dụng trong các thiết bị có tài nguyên hạn chế, như các
thiết bị di động và IoT (Internet of Things), do nó cung cấp mức độ bảo mật tương đương với
RSA nhưng với kích thước khóa nhỏ hơn, giảm bớt tải cho hệ thống và tiết kiệmng lượng.
Độ an toàn: Thuật toán ECC (Elliptic Curve Cryptography) là một trong những phương
pháp hóa khóa công khai phổ biến nhất hiện nay. ECC sử dụng các phép toán trên điểm
trên các đường cong elip để thực hiện hóa chữ số. ới đây một số yếu tquan
trọng ảnh hưởng đến độ an toàn của thuật toán ECC:
Kích thước khóa nhỏ: So với các thuật toán khóa công khai truyền thống như RSA,
ECC yêu cầu kích thước khóa nhỏ hơn để cung cấp cùng mức độ an toàn. Điều y làm cho
ECC trở thành một lựa chọn hấp dẫn trong các ứng dụng yêu cầu i nguyên tính toán và băng
thông hạn chế.
Kích thước khóa độ an toàn: ECC cung cấp mức đan toàn tương đương với RSA
khi sử dụng ch thước khóa nhỏ hơn. Ví dụ, một khóa ECC với độ dài 256 bits có độ an toàn
tương đương với một khóa RSA có độ dài 3072 bits.
Quản khóa công cụ: Sự an toàn của hệ mật ECC cũng phụ thuộc vào việc quản
lý và bảo vệ khóa mật, bao gồm việc sử dụng các biện pháp bảo mật phù hợp như việc lưu trữ
khóa mật an toàn và chỉ cho phép quyền truy cập tới các người dùng cần thiết.
lOMoARcPSD| 60701415
Tóm lại, ECC một thuật toán hóa mạnh mẽ hiệu quả, được sử dụng rộng rãi
trong các ứng dụng bảo mật ngày nay. Độ an toàn của nó phụ thuộc vào sự khó khăn của vấn
đề ECDLP và việc sử dụng kích thước khóa phù hợp.
DSA (Digital Signature Algorithm): một thuật toán tạo chữ số, sử dụng trong quy
trình xác nhận danh tính và xác minh tính toàn vẹn của thông tin.
Hình 2.5.9. Mô tả thuật toán RSA
Ứng dụng: DSA được sử dụng trong các giao thức xác nhận chứng thực, như giao
thức SSH (Secure Shell) và giao thức TLS (Transport Layer Security).
Độ an toàn: Hệ mật DSA (Digital Signature Algorithm)một thuật toán chữ ký số
dựa trên hệ mật khóa công khai. Tính an toàn của hệ mật DSA phụ thuộc vào sự khó
khăn của bài toán phân tích nhỏ hơn hoặc tìm kiếm giải pháp cho các vấn đề toán học mà thuật
toán DSA dựa trên. Dưới đây là một số yếu tố quan trọng ảnh hưởng đến độ an toàn của DSA:
Kích thước khóa: Kích thước của các tham số trong hệ mật DSA, như kích thước
của số nguyên tố và khóa, ảnh hưởng trực tiếp đến độ an toàn của thuật toán. Kích thước lớn
hơn thì làm tăng độ khó của việc tìm kiếm giải pháp cho các vấn đề toán học liên quan, và do
đó tăng cường độ an toàn của hệ thống DSA.
Ngẫu nhiên: Việc tạo ra các tham số ngẫu nhiên, bao gồm cả khóa số nguyên tố,
rất quan trọng đngăn chặn các cuộc tấn công dựa trên việc m ra các mẫu hoặc dãy nhất
định trong các tham số.
Phát hiện số nguyên tố không an toàn: DSA dựa trên việc chọn một số nguyên tố ngẫu
nhiên. Nếu một số nguyên tố không an toàn được chọn, thì sẽ dễ dàng cho người tấn công phá
vỡ hệ thống. Do đó, quá trình chọn số nguyên tố phải được thực hiện một cách cẩn thận.
lOMoARcPSD| 60701415
Quản khóa công cụ: Sự an toàn của hệ mật DSA cũng phụ thuộc vào việc quản
bảo vệ khóa mật các thông tin mật khác, bao gồm việc sử dụng các công cụ hóa
và giải mã một cách an toàn.
ElGamal: Là một thuật toán mã hóa khóa công khai, dựa trên vấn đề Diffie-Hellman.
Nó được sử dụng chủ yếu trong các hệ thống trao đổi khóa và mật mã.
Hình 2.5.10. Mô tả thuật toán ElGamal
Ứng dụng: ElGamal được sử dụng trong các giao thức bảo mật như PGP (Pretty Good
Privacy) và OpenPGP để mã hóa và ký số dữ liệu.
Độ an toàn: Hệ mật ElGamal một hệ mật khóa công khai dựa trên vấn đề
logarithm rời rạc (Discrete Logarithm Problem - DLP), được sử dụng cho các mục đích
như hóa chữ số. Tính an toàn của hệ mật ElGamal cũng phụ thuộc vào sự khó
khăn của việc giải quyết vấn đề logarithm rời rạc, và có một số yếu tố khác ảnh hưởng đến độ
an toàn của nó:
Kích thước khóa: Kích thước của các tham số trong hệ mật ElGamal, như kích
thước của nhóm số nguyên tố, ảnh hưởng trực tiếp đến độ an toàn của thuật toán. Kích thước
lớn hơn thì làm tăng độ khó của việc giải quyết vấn đề logarithm rời rạc và do đó tăng cường
độ an toàn của hệ thống ElGamal.
Sự ngẫu nhiên: Việc tạo ra các tham số ngẫu nhiên, bao gồm cả khóa và số nguyên tố,
là rất quan trọng để ngăn chặn các cuộc tấn công dựa trên việc tìm ra các mẫu hoặc dãy nhất
định trong các tham số.
lOMoARcPSD| 60701415
Phát hiện số nguyên tkhông an toàn: ElGamal cũng dựa trên việc chọn một số nguyên
tố ngẫu nhiên. Nếu một số nguyên tố không an toàn được chọn, thì sẽ dễ dàng cho người tấn
công phá vỡ hệ thống. Do đó, quá trình chọn số nguyên tố phải được thực hiện một cách cẩn
thận.
Quản lý khóa và công cụ: Sự an toàn của hệ mật mã ElGamal cũng phụ thuộc vào việc
quản lý và bảo vệ khóa mật và các thông tin mật khác, bao gồm việc sử dụng các công cụ mã
hóa và giải mã một cách an toàn.
Bằng cách phân loại hệ mật thành hai loại dựa vào cách truyền khóa này, người ta
có thể hiểu rõ hơn về cách các hệ mật hoạt động cách chúng được triển khai trong
các ứng dụng bảo mật thông tin.
1.9. Tiêu chuẩn đánh giá hệ mật mã
Để đi đến tìm hiểu về tiêu chuẩn của một mật nào đó, ta cần hiểu khái niệm về
đánh giá hệ mật mã .
Đánh giá hệ mật quá trình đánh giá kiểm tra tính bảo mật, hiệu quả tính
phù hợp của một hệ thống hóa. Đây một quy trình kỹ thuật tổng hợp các phương pháp
và công cụ để đảm bảo rằng hệ mật mã hoạt động đúng cách và đáp ứng được các yêu cầu
tiêu chuẩn cụ thể. Dưới đây là một mô tả chi tiết về khái niệm này:
Phạm vi của Đánh giá:
Yêu cầu và Tiêu chuẩn: Đánh giá hệ mật mã bắt đầu bằng việc xác định và hiểu rõ yêu
cầu và tiêu chuẩn áp dụng cho hệ mật mã. Điều này bao gồm cả yêu cầu về bảo mật, hiệu suất,
tính linh hoạt và tiện lợi.
Mục tiêu Đánh giá: Mục tiêu của quá trình đánh giá đảm bảo rằng hệ mật đáp
ứng được các yêu cầu và tiêu chuẩn đã được xác định, cũng như đảm bảo rằng nóan toàn,
hiệu quả và phù hợp với môi trường triển khai.
Các bước trong Đánh giá:
Phân tích Đánh giá Rủi ro: Đánh giá bắt đầu bằng việc phân tích các rủi ro tiềm ẩn
mối đe dọa hệ mật thể phải đối mặt. Các rủi ro này thể bao gồm cả các tấn
công thông tin và các lỗ hổng bảo mật tiềm ẩn.
Kiểm tra Hiệu suất: Đánh giá cũng bao gồm việc kiểm tra hiệu suất của hệ mật mã, bao
gồm tốc độ mã hóa và giải mã, tải trọng hệ thống, và sử dụng tài nguyên tính toán.
Kiểm tra Tính Phù hợp: Một phần quan trọng của đánh giá kiểm tra tính phù hợp của
hệ mật mã với yêu cầu và môi trường triển khai cụ thể, bao gồm cả tính linh hoạt và tiện lợi.
lOMoARcPSD| 60701415
Các phương pháp Đánh giá:
Kiểm tra hóa: Đánh giá bao gồm việc kiểm tra các thuật toán mã hóa giải
được sử dụng trong hệ mật mã để đảm bảo tính an toàn và hiệu quả của chúng.
Kiểm tra Quản Khóa: Một phần quan trọng của đánh giá kiểm tra quản khóa,
bao gồm việc tạo ra, lưu trữ, phân phối và thu hồi khóa một cách an toàn và hiệu quả.
Kiểm tra Tương thích: Đánh giá cũng bao gồm việc kiểm tra tính ơng thích của hệ
mật mã với các hệ thống và tiêu chuẩn khác nhau, đảm bảo rằng nó có thể hoạt động hiệu quả
trong môi trường được xác định.
Kết quả và Cải thiện:
Báo cáo Đánh gKết quả: Sau quá trình đánh giá, một báo cáo chi tiết về kết quả
và đánh giá sẽ được tạo ra, đưa ra các khuyến nghị cải thiện và biện pháp bảo mật cần thiết.
Cải thiện Liên tục: Đánh giá hệ mật không chỉ một quy trình một lần còn
một phần của việc liên tục cải thiện và nâng cao tính bảo mật và hiệu suất của hệ mật mã theo
thời gian.
Tóm lại, đánh giá hệ mật mã một quá trình quan trọng để đảm bảo tính bảo mật, hiệu
quả tính phù hợp của một hệ mật trong các ứng dụng môi trường triển khai khác
nhau.
Sau khi chúng ta đã có cái nhìn tổng quan về đánh giá của 1 hệ mật mã, dựa trên đó ta
một số tiêu chí sau để đánh giá 1 hệ mật mã, dựa trên các tiêu chí này, ta sẽ lấy đó để cải
thiện hệ mật mã đó Bảo mật:
Độ mạnh của thuật toán: Xác định cường độ bảo mật của thuật toán mã hóa bằng cách
đánh giá sức mạnh của hệ thống mã hóa đối với các phương pháp tấn công phổ biến, bao gồm
tấn công brute force, tấn công plaintext/ciphertext tấn công phân tích phổ. Đảm bảo thuật
toán đáp ứng các tiêu chuẩn quốc tế về bảo mật đã được kiểm tra chứng minh qua các
cuộc kiểm tra bảo mật độc lập.
Kích thước quản khóa: Xác định kích thước khóa phù hợp để đảm bảo mức độ
bảo mật mong muốn. Đánh giá các phương pháp chế quản khóa để đảm bảo rằng
khóa được sinh ra, lưu trữ và quản lý một cách an toàn và hiệu quả.
Khả năng chống lại c tấn công hiện đại: Đánh giá khả năng chống lại các tấn công
hiện đại như tấn công quyền tương quan, tấn công mạng và tấn công phân tích bên trong.
Xác định các cải tiến và bảo vệ bổ sung để củng cố hệ thống chống lại các mối đe dọa mới.
Hiệu suất và tính linh hoạt:
lOMoARcPSD| 60701415
Tốc độ hiệu suất: Đánh giá tốc đthực thi của thuật toán hóa giải mã, bao
gồm thời gian cần thiết để xử lý dữ liệu lớn và nhỏ. Xác định tỷ lệ nén dữ liệu, nếu có, và ảnh
hưởng của nó đến hiệu suất tổng thể của hệ thống.
Tính linh hoạt và tính tương thích: Đánh giá khả năng tích hợp của thuật toán vào các
hệ thống và ứng dụng hiện tại mà không yêu cầu sự thay đổi lớn trong cơ sở hạ tầng.
Xác định khả năng tương thích với các tiêu chuẩn giao thức bảo mật phổ biến để
đảm bảo tính tương thích và tính mở rộng.
Hiệu quả và chi phí:
Chi phí triển khai và duy trì: Đánh giá chi phí triển khai và duy trì hệ mật mã, bao gồm
chi phí cho phần cứng, phần mềm nhân lực. Xác định các yếu tố chi phí khác nhau như
giấy phép, quản lý và bảo trì khóa, và các cải tiến và nâng cấp sau này.

Preview text:

lOMoAR cPSD| 60701415 NỘI DUNG MỞ ĐẦU
1.1. Lý do chọn đề tài
Nhóm quan tâm đến việc phát triển một ứng dụng chatbot vì nhóm nhận thấy sự gia
tăng của nhu cầu giao tiếp thông qua các nền tảng trực tuyến. Chatbot không chỉ giúp tối ưu
hóa trải nghiệm người dùng mà còn cung cấp một cách tiếp cận tiện lợi và tức thì để tương tác với người dùng.
Chọn thuật toán Vigenere để mã hóa tin nhắn trong ứng dụng của mình là vì tính đơn
giản và độ bảo mật cao của nó. Vigenere là một trong những phương pháp mã hóa cổ điển
được sử dụng từ thế kỷ 16 và vẫn được coi là một phương pháp bảo mật đáng tin cậy trong nhiều trường hợp.
Nhóm tin rằng việc sử dụng thuật toán Vigenere có thể cung cấp mức độ bảo mật đủ
đáng cho tin nhắn giữa hai máy tính trong trường hợp của ứng dụng của mình. Tuy nhiên, để
tăng cường bảo mật, nhóm cũng đang xem xét sử dụng các phương pháp bổ sung như mã hóa đối xứng và băm.
Thông qua việc tích hợp chatbot và mã hóa tin nhắn, nhóm mong muốn xây dựng một
ứng dụng cung cấp giao tiếp an toàn và bảo mật giữa người dùng. Ứng dụng này có thể được
sử dụng trong nhiều tình huống khác nhau, từ giao tiếp cá nhân đến giao tiếp doanh nghiệp.
Trong tương lai, nhóm dự định cải thiện tính năng và hiệu suất của ứng dụng bằng cách
tối ưu hóa thuật toán mã hóa, cải thiện giao diện người dùng và thêm các tính năng mới như
giao diện đa ngôn ngữ và tích hợp trí tuệ nhân tạo để cải thiện trải nghiệm người dùng.
1.2. Mục tiêu đề tài
Mục tiêu của dự án "Xây dựng ứng dụng chatbot sử dụng thuật toán Vigenere để mã
hóa tin nhắn giữa hai thiết bị máy tính" có thể được phân rã thành các mục tiêu cụ thể như sau:
Phát triển một ứng dụng chatbot đơn giản và dễ sử dụng: Mục tiêu này nhằm tạo ra một
giao diện người dùng thân thiện và trực quan để người dùng có thể tương tác và gửi tin nhắn một cách thuận tiện.
Tích hợp thuật toán Vigenere để mã hóa tin nhắn: Mục tiêu này đòi hỏi việc triển khai
thuật toán Vigenere vào ứng dụng để mã hóa và giải mã tin nhắn giữa hai máy tính, đảm bảo
tính bảo mật và an toàn cho thông điệp. lOMoAR cPSD| 60701415
Đảm bảo tính bảo mật của ứng dụng: Mục tiêu này yêu cầu việc kiểm tra và cải thiện
tính bảo mật của ứng dụng, bao gồm cả việc bảo vệ dữ liệu người dùng và đảm bảo rằng thuật
toán mã hóa được triển khai đúng cách.
Kiểm tra và thử nghiệm ứng dụng: Mục tiêu này là để đảm bảo rằng ứng dụng hoạt
động một cách chính xác và ổn định trước khi phát hành, bằng cách thực hiện các bước kiểm
tra và thử nghiệm kỹ lưỡng.
Tối ưu hóa hiệu suất và trải nghiệm người dùng: Mục tiêu này nhằm cải thiện hiệu suất
và trải nghiệm người dùng của ứng dụng thông qua việc tối ưu hóa mã nguồn, cải thiện tốc độ
phản hồi và giảm thiểu lỗi hệ thống.
Tổng thể, mục tiêu của dự án là xây dựng một ứng dụng chatbot an toàn, bảo mật và dễ
sử dụng, cho phép người dùng gửi và nhận tin nhắn một cách riêng tư và an toàn giữa hai thiết bị máy tính.
1.3. Bố cục triển khai đề tài
Bố cục triển khai cho dự án "Xây dựng ứng dụng chatbot sử dụng thuật toán Vigenere
để mã hóa tin nhắn giữa hai thiết bị máy tính" có thể được tổ chức như sau:
Thu thập Yêu cầu: Xác định các yêu cầu chính của ứng dụng chatbot, bao gồm khả
năng giao tiếp giữa người dùng và chatbot, mã hóa và giải mã tin nhắn, và tích hợp thuật toán
Vigenere với bảng mã ASCII 256 ký tự.
Thiết kế Kiến trúc: Thiết kế giao diện đơn giản và dễ sử dụng cho ứng dụng chatbot
trên cả hai thiết bị máy tính. Bố cục giao diện gồm các ô nhập tin nhắn, nút gửi, và khu vực
hiển thị tin nhắn đã mã hóa và giải mã.
Logic Ứng dụng: Xây dựng logic ứng dụng để xử lý các tin nhắn được gửi và nhận từ
người dùng. Tích hợp thuật toán mã hóa và giải mã Vigenere cho việc mã hóa và giải mã tin nhắn.
Triển khai Thuật toán Vigenere: Để mã hóa và giải mã tin nhắn theo bảng mã ASCII
256 ký tự. Xây dựng các hàm hoặc lớp để thực hiện quá trình mã hóa và giải mã, bao gồm cả
việc xử lý độ dài khóa và chuỗi tin nhắn.
Tích hợp Giao tiếp Máy tính: Sử dụng các giao thức truyền thông như TCP/IP hoặc
WebSocket để thiết lập kết nối giữa hai thiết bị máy tính. Triển khai logic để gửi và nhận các
tin nhắn đã mã hóa và giải mã qua kết nối mạng.
Kiểm thử và Debug: Tiến hành kiểm thử chức năng và tính năng của ứng dụng, bao
gồm cả việc kiểm tra việc mã hóa và giải mã tin nhắn. lOMoAR cPSD| 60701415
Sửa lỗi và điều chỉnh ứng dụng dựa trên phản hồi từ quá trình kiểm thử.
Tối ưu hóa và Cải tiến: Tối ưu hóa mã nguồn và tăng cường hiệu suất của ứng dụng.
Cải tiến tính bảo mật và tính ổn định của hệ thống mã hóa và giải mã.
Triển khai và Phát hành:Triển khai ứng dụng chatbot trên hai thiết bị máy tính và công
bố cho người dùng. Theo dõi và hỗ trợ người dùng trong quá trình sử dụng và giải quyết vấn đề.
Mỗi bước trong quá trình triển khai dự án đều quan trọng và đóng vai trò quan trọng
trong việc xây dựng và triển khai một ứng dụng chatbot thành công. Tuy nhiên, có một số
bước có thể được coi là quan trọng nhất trong quá trình này:
Thiết kế Kiến trúc: Bước này là cơ sở để xây dựng ứng dụng và đặt nền tảng cho toàn
bộ dự án. Việc thiết kế kiến trúc ứng dụng đòi hỏi sự cân nhắc kỹ lưỡng về cách tổ chức logic
ứng dụng, giao diện người dùng và tích hợp các thành phần chức năng. Một kiến trúc tốt sẽ
giúp dễ dàng mở rộng và bảo trì ứng dụng trong tương lai.
Triển khai Thuật toán Vigenere: Vì dự án yêu cầu sử dụng thuật toán Vigenere để mã
hóa và giải mã tin nhắn, việc triển khai thuật toán này là một bước quan trọng. Đảm bảo rằng
thuật toán được triển khai đúng cách và hoạt động một cách chính xác là điều cực kỳ quan
trọng để đảm bảo tính bảo mật và chính xác của hệ thống mã hóa và giải mã.
Kiểm thử và Debug: Bước kiểm thử và debug là quan trọng để đảm bảo tính ổn định
và chất lượng của ứng dụng. Việc phát hiện và sửa lỗi sớm giúp tránh được các vấn đề tiềm
ẩn và cải thiện trải nghiệm người dùng. Một quy trình kiểm thử kỹ lưỡng sẽ giúp đảm bảo
rằng ứng dụng hoạt động như mong đợi và đáp ứng được yêu cầu của người dùng.
Tuy nhiên, không có một bước cụ thể nào được xác định là quan trọng nhất trong quá
trình triển khai. Mỗi bước đều có ý nghĩa riêng và đóng góp vào thành công của dự án. Quan
trọng nhất là phải thực hiện mỗi bước một cách cẩn thận và cân nhắc để đảm bảo rằng ứng
dụng được xây dựng và triển khai một cách thành công và hiệu quả. CƠ SỞ LÝ THUYẾT
1.4. Mã hóa và giải mã
Mã hóa và giải mã là hai khái niệm cơ bản trong lĩnh vực bảo mật thông tin và truyền
thông. Chúng đóng vai trò quan trọng trong việc bảo vệ dữ liệu khỏi việc truy cập trái phép
và đảm bảo tính bảo mật của thông tin được truyền tải qua các kênh không an toàn.
Mã Hóa: Mã hóa là quá trình chuyển đổi thông tin từ dạng rõ ràng (plaintext) thành
dạng không thể đọc được (ciphertext) một cách có hệ thống và theo một qui tắc nhất định, sử lOMoAR cPSD| 60701415
dụng một thuật toán mã hóa cụ thể và một khóa (key). Mục tiêu của mã hóa là làm cho thông
tin trở nên không thể hiểu được nếu không có khóa giải mã phù hợp. Có hai loại mã hóa chính
là mã hóa đối xứng và mã hóa không đối xứng.
Mã hóa đối xứng: Trong loại mã hóa này, cùng một khóa được sử dụng cho cả quá trình
mã hóa và giải mã. Ví dụ phổ biến cho loại mã hóa này là AES (Advanced Encryption
Standard) và DES (Data Encryption Standard).
Mã hóa không đối xứng: Trong loại mã hóa này, có hai loại khóa: khóa công khai
(public key) và khóa bí mật (private key). Một khóa dùng để mã hóa thông tin và khóa còn lại
được sử dụng để giải mã. Ví dụ phổ biến nhất cho loại mã hóa này là RSA (RivestShamir- Adleman).
Giải Mã: Giải mã là quá trình ngược lại của mã hóa, trong đó dữ liệu được chuyển từ
dạng không thể đọc được (ciphertext) trở lại thành dạng rõ ràng (plaintext) bằng cách sử dụng
một khóa giải mã phù hợp. Khóa giải mã này thường được tạo ra hoặc được cung cấp bởi
người gửi thông tin cho người nhận.
Mã hóa và giải mã mang lại ý nghĩa to lớn với quá trình công nghiệp hóa, hiện đại nói
chung và ngành an toàn bảo mật thông tin nói riêng, dưới đây là một trong những ý nghĩa mà
mã hóa và giải mã mang lại
Bảo mật dữ liệu: Mã hóa đảm bảo rằng dữ liệu không thể đọc được nếu không có khóa
giải mã. Điều này giúp bảo vệ thông tin quan trọng khỏi việc truy cập trái phép.
Bảo mật truyền thông: Mã hóa đảm bảo rằng thông tin được truyền tải qua mạng hoặc
các kênh không an toàn không bị đánh cắp hoặc thay đổi bởi bên thứ ba.
Quyền riêng tư: Việc sử dụng mã hóa đảm bảo tính riêng tư của dữ liệu cá nhân và thông tin nhạy cảm.
An toàn trực tuyến: Mã hóa đóng vai trò quan trọng trong việc bảo vệ các giao dịch
trực tuyến, thông tin tài khoản và dữ liệu cá nhân của người dùng khi sử dụng các dịch vụ trực tuyến
Trong tổ chức và cá nhân, việc hiểu và áp dụng đúng các phương pháp mã hóa và giải
mã là rất quan trọng để đảm bảo tính bảo mật của thông tin và dữ liệu.
1.5. Mã hóa và phá khóa
Trong lĩnh vực bảo mật, ngoài hoạt động mã hóa, còn tồn tại hoạt động ngược lại được
gọi là mã thám, đó là việc khám phá bí mật từ các bản mã mật "lấy trộm" được. Mã thám đóng
vai trò quan trọng không kém trong lĩnh vực này, vì các thuật toán mã hóa và giải mã không lOMoAR cPSD| 60701415
nhất thiết phải được giữ bí mật. Mã thám thường tập trung vào việc tìm khóa mật mã, và do
đó, cũng được biết đến với tên gọi phá khóa.
Bài toán mã hóa cơ bản thường liên quan đến việc tìm ra khóa mật mã K hoặc khóa
giải mã Kd để giải mã thông tin được mã hóa. Trong trường hợp mà người thám mã biết thông
tin về sơ đồ hệ mật mã, bao gồm cả các phép lập mã và giải mã tổng quát E và D, việc này có
thể giúp họ tìm ra khóa mật mã.
Ngoài ra, người thám mã cũng có thể biết thêm một số thông tin khác, và dựa trên
những thông tin này, bài toán thám mã có thể được phân loại thành các bài toán cụ thể khác
nhau. Điều này có thể bao gồm việc biết các điều kiện ban đầu, các đặc điểm của thông tin
được mã hóa, hoặc các thuật toán cụ thể được sử dụng trong quá trình mã hóa và giải mã. Phụ
thuộc vào các thông tin cụ thể này, người thám mã sẽ phát triển các chiến lược khác nhau để tìm ra khóa mật mã.:
Bài toán thám mã chỉ biết bản mã : là bài toán phổ biến nhất , khi người thám mã chỉ
biết một bản mật mã Y.
Bài toán thám mã khi chỉ biết bản rõ : người thám mã biết một bản mật mã Y cùng với
bản rõ tưng ứng với X.
Bài toán thám mã khi có bản rõ được chọn : người thám mã có thể chọn một bản rõ X,
và biết bản mật mã tương ứng Y. Điều này có thể xảy ra khi người thám mã chiếm được tạm thời máy lập mã.
Bài toán thám mã khi có bản mã được chọn : người thám mã có thể chọn một bản mật
mã Y , và biết bản rõ tương ứng X. điều này có thể xảy ra khi một người thám mã tham chiếm
được tạm thời máy giải mã
1.6. Các khái niệm liên quan khác
Bản rõ (Plaintext): Bản rõ là dạng của dữ liệu ban đầu, thông tin được biểu diễn một
cách rõ ràng và dễ đọc. Đây là dữ liệu mà bạn muốn bảo vệ hoặc truyền đi một cách an toàn.
Bản mã (Ciphertext): Bản mã là dữ liệu sau khi đã được mã hóa và không thể đọc được
trực tiếp. Nó là kết quả của quá trình mã hóa bản rõ, thường là một chuỗi ký tự hoặc một dãy bit không gian sắp xếp.
Khóa (Key): Khóa là một giá trị hoặc tập hợp các giá trị được sử dụng trong quá trình
mã hóa và giải mã. Khóa xác định cách mà dữ liệu bản rõ được biến đổi thành bản mã và
ngược lại. Sự an toàn của hệ thống mã hóa thường phụ thuộc vào việc bảo vệ và quản lý khóa. lOMoAR cPSD| 60701415
Mã hóa (Encryption): Mã hóa là quá trình biến đổi bản rõ thành bản mã sử dụng một
thuật toán mã hóa và khóa tương ứng. Mục đích chính của mã hóa là bảo vệ thông tin khỏi
việc truy cập trái phép bằng cách biến đổi nó thành dạng không thể đọc được.
Giải mã (Decryption): Giải mã là quá trình ngược lại của mã hóa, trong đó bản mã được
chuyển đổi trở lại thành bản rõ sử dụng khóa giải mã tương ứng. Quá trình giải mã cho phép
người nhận dữ liệu khôi phục lại thông tin ban đầu từ dữ liệu đã được mã hóa.
Những thuật ngữ này đóng vai trò quan trọng trong lĩnh vực bảo mật thông tin và truyền
thông, giúp đảm bảo tính bảo mật và toàn vẹn của thông tin khi truyền tải hoặc lưu trữ.
1.7. Các thành phần của hệ mật mã
Việc mã hóa hay giải mã theo quy tắc nhất định , quy tắc đó được gọi là hệ mật mã.
Định nghĩa : Một hệ mật là một bộ 5 (P,C,K,E,D) thoả mãn các điều kiện sau:
P là một tập hợp hữu hạn các bản rõ (PlainText), nó được gọi là không gian bản rõ.
C là tập các hữu hạn các bản mã (Crypto), nó còn được gọi là không gian các bản mã.
Mỗi phần tử của C có thể nhận được bằng cách áp dụng phép mã hoá Ek lên một phần tử của P, với k ∈ K.
K là tập hữu hạn các khoá hay còn gọi là không gian khoá. Đối với mỗi phần tử k của
K được gọi là một khoá (Key). Số lượng của không gian khoá phải đủ lớn để “kẻđịch: không
có đủ thời gian để thử mọi khoá có thể(phương pháp vét cạn).
Các thành phần này đều liên quan mật thiết đến nhau nhằm tạo ra một hệ mật mã mạnh,
có logic cũng như đáp ứng như cầu người dùng
Đối với mỗi k ∈ K có một quy tắc mã eK: P → C và một quy tắc giải mã tương ứng
dK∈ D. Mỗi eK: P → C và dK: C → P là những hàm mà: dK (eK(x))=x với mọi bản rõ x ∈ P
Dưới đây chúng ta sẽ có sơ đồ sơ lược về thành phần của hệ mật mã và sự liên quan giữa các thành phần. lOMoAR cPSD| 60701415
Hình 2.4. Sơ đồ sơ lược thành phần của hệ mật mã
1.8. Phân loại hệ mật mã
Có nhiều cách để phân loại hệ mật mã. Dựa vào cách truyền khóa có thể phân các hệ mật mã thành hai loại:
Mật mã đối xứng (Symmetric Cryptography): Trong mật mã đối xứng, cùng một khóa
được sử dụng cho cả quá trình mã hóa và giải mã. Cụ thể, khóa được sử dụng để mã hóa thông
tin là cũng khóa được sử dụng để giải mã nó. Điều này có nghĩa là cả người gửi và người nhận
đều phải biết và giữ bí mật khóa này. Mật mã đối xứng thường nhanh chóng và hiệu quả về
mặt tính toán, làm cho chúng phổ biến trong nhiều ứng dụng. Tuy nhiên, một thách thức quan
trọng là việc quản lý và phân phối khóa một cách an toàn.
Hình 2.5.1.1. Mô tả Hệ mật mã đối xứng Một
vài thuật toán của hệ mật mã đối xứng như sau: lOMoAR cPSD| 60701415
AES (Advanced Encryption Standard): Là một thuật toán mật mã đối xứng tiêu biểu,
được sử dụng rộng rãi trên toàn thế giới cho việc mã hóa dữ liệu. Nó thường được xem là một
trong những thuật toán mật mã mạnh nhất hiện nay.
Hình 2.5.2. Mô tả thuật toán AES
Ứng dụng: AES được sử dụng trong nhiều ứng dụng, bao gồm mã hóa dữ liệu trên các
kết nối mạng không dây (Wi-Fi, Bluetooth), mã hóa dữ liệu trên ổ đĩa cứng (disk encryption),
mã hóa dữ liệu trong các ứng dụng như email và tin nhắn, và trong các giao thức bảo mật như TLS/SSL.
Độ an toàn: Hệ mật mã AES (Advanced Encryption Standard) là một trong những thuật
toán mã hóa đối xứng phổ biến nhất hiện nay. Tính an toàn của AES dựa trên sự khó khăn của
việc giải quyết các vấn đề toán học mà nó dựa trên, đặc biệt là vấn đề phá mã khóa thông qua
việc tìm kiếm giải pháp cho các hộp thay thế và hoán vị. Dưới đây là một số yếu tố quan trọng
ảnh hưởng đến độ an toàn của AES:
Kích thước khóa: AES hỗ trợ ba kích thước khóa chính là 128 bits, 192 bits và 256 bits.
Kích thước khóa càng lớn thì càng khó khăn cho kẻ tấn công thực hiện các cuộc tấn công
brute-force (cố gắng tất cả các khả năng cho từng khóa) hoặc các phương pháp tấn công khác
như tìm kiếm giải pháp thông qua việc phân tích về cấu trúc của thuật toán AES.
Sự ngẫu nhiên của các khóa: Khóa được chọn ngẫu nhiên từ không gian khóa lớn, điều
này làm tăng khả năng ngăn chặn các cuộc tấn công dựa trên việc tìm kiếm giải pháp thông
qua việc tìm ra mẫu hoặc dãy nhất định trong các khóa.
Quản lý khóa và công cụ: Sự an toàn của hệ mật mã AES cũng phụ thuộc vào việc lOMoAR cPSD| 60701415
quản lý và bảo vệ khóa mật, bao gồm việc sử dụng các biện pháp bảo mật phù hợp như việc
lưu trữ khóa mật an toàn, và chỉ cho phép quyền truy cập tới các người dùng cần thiết.
Khả năng chống các cuộc tấn công cơ chế mã hóa hàng loạt (ciphertext-only attacks):
AES được thiết kế để chống lại các cuộc tấn công này bằng cách làm cho mối quan hệ giữa
đầu ra và khóa trở nên rất phức tạp, làm cho việc phân tích mối quan hệ này trở nên vô cùng khó khăn.
DES (Data Encryption Standard) và 3DES (Triple Data Encryption Standard): Là một
trong những thuật toán mật mã đối xứng đầu tiên và đã từng được sử dụng phổ biến trong quá
khứ. Tuy nhiên, do DES bị coi là không đủ mạnh trước các phương pháp tấn công hiện đại,
3DES đã được phát triển để cung cấp mức độ bảo mật cao hơn bằng cách áp dụng DES ba lần.
Hình 2.5.3. Mô tả thuật toán DES
Ứng dụng: Mặc dù không còn được sử dụng rộng rãi trong các hệ thống mới, DES và
3DES vẫn được sử dụng trong một số ứng dụng cũ và trong một số quốc gia vì lý do tương
thích hoặc yêu cầu pháp lý.
Độ an toàn: DES (Data Encryption Standard) là một trong những thuật toán mã hóa
đối xứng đầu tiên và phổ biến nhất từ trước đến nay. Tuy nhiên, với sự phát triển của công
nghệ, DES đã trở nên không còn an toàn như trước. Dưới đây là một số lý do vì sao DES
không còn được coi là an toàn:
Kích thước khóa nhỏ: DES sử dụng khóa có kích thước là 56 bits, làm cho việc thực
hiện các cuộc tấn công brute-force (cố gắng tất cả các khả năng cho từng khóa) trở nên khả
thi trong thời gian ngắn, đặc biệt là với sức mạnh tính toán hiện đại.
Sự tiên đoán được (Predictable): Cấu trúc của DES đã trở nên dễ dàng bị tiên đoán lOMoAR cPSD| 60701415
được và các phương pháp tấn công đã được phát triển để tận dụng điều này. Cụ thể, các cuộc
tấn công như tấn công "meet-in-the-middle" và "chosen-plaintext attack" đã được chứng minh
là hiệu quả đối với DES.
Quản lý khóa và công cụ: Sự an toàn của DES cũng phụ thuộc vào việc quản lý và bảo
vệ khóa mật, bao gồm việc sử dụng các biện pháp bảo mật phù hợp như việc lưu trữ khóa mật
an toàn, và chỉ cho phép quyền truy cập tới các người dùng cần thiết. Tuy nhiên, với kích
thước khóa nhỏ, việc này trở nên khó khăn.
Tiến triển của công nghệ mã hóa: Các thuật toán mã hóa đối xứng hiện đại như AES
(Advanced Encryption Standard) được coi là an toàn hơn DES, do sử dụng khóa có kích thước
lớn hơn và độ phức tạp cao hơn trong quá trình mã hóa và giải mã.
Blowfish và Twofish: Là hai thuật toán mã hóa đối xứng khác nhau nhưng cùng được
phát triển bởi Bruce Schneier. Blowfish là một thuật toán mã hóa khối, trong khi Twofish là
một thuật toán mã hóa dựa trên mạng Feistel. lOMoAR cPSD| 60701415
Hình 2.5.4. Mô tả thuật toán Blowfish
Ứng dụng: Cả Blowfish và Twofish đã được sử dụng trong các ứng dụng mã hóa dữ
liệu như phần mềm mã hóa file và trong giao thức mã hóa VPN (Virtual Private Network).
Độ an toàn: Blowfish và Twofish đều là thuật toán mã hóa đối xứng có khả năng cung
cấp mức độ an toàn cao. Dưới đây là một cái nhìn tổng quan về độ an toàn của cả hai thuật toán:
Kích thước khóa: Blowfish sử dụng khóa có độ dài từ 32 bits đến 448 bits. Với kích
thước khóa lớn, Blowfish có khả năng chống lại các cuộc tấn công brute-force.
Tiền xử lý: Blowfish thực hiện một số bước tiền xử lý để tạo ra các bản mã khác nhau
từ cùng một khóa, điều này làm tăng độ phức tạp và độ an toàn của thuật toán. lOMoAR cPSD| 60701415
Tiến triển công nghệ: Mặc dù vẫn được coi là an toàn, Blowfish đã không còn được sử
dụng rộng rãi trong các ứng dụng mới vì có sự ra đời của các thuật toán mã hóa mới hơn như
AES, cũng như các vấn đề về bản quyền và sự phát triển của các thuật toán mã hóa mã nguồn mở.
Kích thước khóa: Twofish sử dụng khóa có độ dài từ 128 bits đến 256 bits, giúp tăng
cường độ an toàn của thuật toán.
Sự linh hoạt: Twofish được thiết kế để có khả năng hoạt động hiệu quả trên nhiều nền
tảng và môi trường khác nhau, làm cho nó trở thành một lựa chọn phổ biến cho các ứng dụng mã hóa đa dạng.
Khả năng chống các cuộc tấn công: Twofish có thể chống lại các cuộc tấn công như tấn
công phân tích miền văn bản (plaintext), tấn công đối với bản mã đã biết (knownplaintext
attack), và tấn công phân tích trực tiếp (brute-force attack) trong điều kiện có kích thước khóa đủ lớn.
Hình 2.5.5. Mô tả thuật toán RC4
Ứng dụng: RC4 đã được sử dụng rộng rãi trong các giao thức bảo mật như WEP (Wired
Equivalent Privacy) và SSL (Secure Sockets Layer), mặc dù sau này đã bị thay thế bởi các
thuật toán mạnh hơn do các lỗ hổng bảo mật.
Độ an toàn: Thuật toán RC4 (Rivest Cipher 4) đã từng được sử dụng rộng rãi trong các
ứng dụng bảo mật, nhưng hiện nay nó không còn được coi là an toàn do các vấn đề bảo mật
đã được phát hiện và được công bố. Dưới đây là một số lý do vì sao RC4 không còn được coi là an toàn:
Cấu trúc yếu: Cấu trúc của RC4 có một số vấn đề an ninh, bao gồm sự hiệu quả của
thuật toán tìm kiếm và các lỗi trong quá trình khởi tạo khóa. lOMoAR cPSD| 60701415
Cuộc tấn công đối với khóa: Có các phương pháp tấn công như "fluhrer, mantin and
shamir" (FMS) attack và "key reconstruction" attack cho phép tấn công viên phục hồi khóa từ
dữ liệu được mã hóa. Điều này làm cho RC4 trở nên dễ dàng bị tấn công.
Thiên về hiệu suất: Mặc dù nhanh chóng và đơn giản, RC4 không được thiết kế để đối
phó với một số vấn đề bảo mật quan trọng, bao gồm việc chống lại các cuộc tấn công phổ biến
như các cuộc tấn công với văn bản đã biết.
Khả năng đối phó với tấn công đáng ngờ: Có nhiều cuộc tấn công đối với RC4 đã được
công bố và đã được nghiên cứu rộng rãi, làm giảm sự tin cậy vào thuật toán.
Mật mã không đối xứng (Asymmetric Cryptography): Trái ngược với mật mã đối xứng,
mật mã không đối xứng sử dụng cặp khóa: một khóa công khai (public key) và một khóa bí
mật (private key). Khóa công khai được chia sẻ công khai và được sử dụng để mã hóa thông
tin, trong khi khóa bí mật được giữ bí mật và được sử dụng để giải mã thông tin. Mật mã
không đối xứng làm giảm đáng kể vấn đề của việc quản lý khóa trong mật mã đối xứng, bởi
vì khóa công khai có thể được phổ biến mà không gây nguy cơ cho tính bảo mật.
Hình 2.5.6. Mô tả Hệ mật mã bất đối xứng Một
vài thuật toán của hệ mật mã không đối xứng như sau:
RSA (Rivest-Shamir-Adleman): Là một thuật toán mật mã không đối xứng phổ biến
nhất, dựa trên việc sử dụng hai khóa: khóa công khai và khóa bí mật. lOMoAR cPSD| 60701415
Hình 2.5.7. Mô tả thuật toán RSA
Ứng dụng: RSA được sử dụng rộng rãi trong bảo mật dữ liệu truyền tải trên internet,
như trong giao thức HTTPS để bảo vệ thông tin cá nhân, giao dịch tài chính trực tuyến, chữ
ký số, và trong việc tạo ra các kênh truyền tải an toàn.
Độ an toàn: Hệ mật mã RSA (Rivest-Shamir-Adleman) là một trong những hệ mật mã
công khai phổ biến nhất và được sử dụng rộng rãi trong thực tế. Tính an toàn của hệ mật mã
RSA phụ thuộc vào khả năng của người tấn công để phá vỡ các thuật toán toán học mà RSA
dựa trên, chẳng hạn như phân tích số nguyên tố lớn, dựa vào sự khó khăn của bài toán nguyên
tố lớn, giải phương trình đồng dư và các thuật toán tìm kiếm giải pháp khác.
Kích thước khóa: Kích thước của khóa RSA ảnh hưởng trực tiếp đến độ an toàn của hệ
thống. Kích thước khóa lớn hơn thì cần nhiều tính toán hơn cho cả hai quá trình mã hóa và
giải mã, đồng thời cũng khó khăn hơn cho người tấn công để phá vỡ hệ thống. Hiện nay, kích
thước khóa an toàn thường được sử dụng là 2048 bits hoặc cao hơn.
Sự ngẫu nhiên của khóa: Việc tạo ra các khóa ngẫu nhiên và đủ lớn là rất quan trọng để
tránh các cuộc tấn công dựa trên việc tìm ra mẫu hoặc dãy nhất định trong các khóa.
Sự an toàn của các thuật toán toán học liên quan: Độ an toàn của RSA phụ thuộc vào
sự khó khăn của các bài toán toán học liên quan, chẳng hạn như việc phân tích một số nguyên
tố thành các thừa số nguyên tố, giải phương trình đồng dư và các thuật toán tìm kiếm giải pháp khác.
Quản lý khóa và công cụ: Sự an toàn của hệ mật mã RSA cũng phụ thuộc vào việc quản
lý và bảo vệ khóa mật và các thông tin mật khác, bao gồm việc sử dụng các công cụ mã hóa
và giải mã một cách an toàn.
ECC (Elliptic Curve Cryptography): Sử dụng các điểm trên đường cong elliptic để tạo
ra các cặp khóa công khai và khóa bí mật. lOMoAR cPSD| 60701415
Hình 2.5.8. Mô tả thuật toán ECC
Ứng dụng: ECC thường được sử dụng trong các thiết bị có tài nguyên hạn chế, như các
thiết bị di động và IoT (Internet of Things), do nó cung cấp mức độ bảo mật tương đương với
RSA nhưng với kích thước khóa nhỏ hơn, giảm bớt tải cho hệ thống và tiết kiệm năng lượng.
Độ an toàn: Thuật toán ECC (Elliptic Curve Cryptography) là một trong những phương
pháp mã hóa khóa công khai phổ biến nhất hiện nay. ECC sử dụng các phép toán trên điểm
trên các đường cong elip để thực hiện mã hóa và chữ ký số. Dưới đây là một số yếu tố quan
trọng ảnh hưởng đến độ an toàn của thuật toán ECC:
Kích thước khóa nhỏ: So với các thuật toán khóa công khai truyền thống như RSA,
ECC yêu cầu kích thước khóa nhỏ hơn để cung cấp cùng mức độ an toàn. Điều này làm cho
ECC trở thành một lựa chọn hấp dẫn trong các ứng dụng yêu cầu tài nguyên tính toán và băng thông hạn chế.
Kích thước khóa và độ an toàn: ECC cung cấp mức độ an toàn tương đương với RSA
khi sử dụng kích thước khóa nhỏ hơn. Ví dụ, một khóa ECC với độ dài 256 bits có độ an toàn
tương đương với một khóa RSA có độ dài 3072 bits.
Quản lý khóa và công cụ: Sự an toàn của hệ mật mã ECC cũng phụ thuộc vào việc quản
lý và bảo vệ khóa mật, bao gồm việc sử dụng các biện pháp bảo mật phù hợp như việc lưu trữ
khóa mật an toàn và chỉ cho phép quyền truy cập tới các người dùng cần thiết. lOMoAR cPSD| 60701415
Tóm lại, ECC là một thuật toán mã hóa mạnh mẽ và hiệu quả, được sử dụng rộng rãi
trong các ứng dụng bảo mật ngày nay. Độ an toàn của nó phụ thuộc vào sự khó khăn của vấn
đề ECDLP và việc sử dụng kích thước khóa phù hợp.
DSA (Digital Signature Algorithm): Là một thuật toán tạo chữ ký số, sử dụng trong quy
trình xác nhận danh tính và xác minh tính toàn vẹn của thông tin.
Hình 2.5.9. Mô tả thuật toán RSA
Ứng dụng: DSA được sử dụng trong các giao thức xác nhận và chứng thực, như giao
thức SSH (Secure Shell) và giao thức TLS (Transport Layer Security).
Độ an toàn: Hệ mật mã DSA (Digital Signature Algorithm) là một thuật toán chữ ký số
dựa trên hệ mật mã khóa công khai. Tính an toàn của hệ mật mã DSA phụ thuộc vào sự khó
khăn của bài toán phân tích nhỏ hơn hoặc tìm kiếm giải pháp cho các vấn đề toán học mà thuật
toán DSA dựa trên. Dưới đây là một số yếu tố quan trọng ảnh hưởng đến độ an toàn của DSA:
Kích thước khóa: Kích thước của các tham số trong hệ mật mã DSA, như kích thước
của số nguyên tố và khóa, ảnh hưởng trực tiếp đến độ an toàn của thuật toán. Kích thước lớn
hơn thì làm tăng độ khó của việc tìm kiếm giải pháp cho các vấn đề toán học liên quan, và do
đó tăng cường độ an toàn của hệ thống DSA.
Ngẫu nhiên: Việc tạo ra các tham số ngẫu nhiên, bao gồm cả khóa và số nguyên tố, là
rất quan trọng để ngăn chặn các cuộc tấn công dựa trên việc tìm ra các mẫu hoặc dãy nhất định trong các tham số.
Phát hiện số nguyên tố không an toàn: DSA dựa trên việc chọn một số nguyên tố ngẫu
nhiên. Nếu một số nguyên tố không an toàn được chọn, thì sẽ dễ dàng cho người tấn công phá
vỡ hệ thống. Do đó, quá trình chọn số nguyên tố phải được thực hiện một cách cẩn thận. lOMoAR cPSD| 60701415
Quản lý khóa và công cụ: Sự an toàn của hệ mật mã DSA cũng phụ thuộc vào việc quản
lý và bảo vệ khóa mật và các thông tin mật khác, bao gồm việc sử dụng các công cụ mã hóa
và giải mã một cách an toàn.
ElGamal: Là một thuật toán mã hóa khóa công khai, dựa trên vấn đề Diffie-Hellman.
Nó được sử dụng chủ yếu trong các hệ thống trao đổi khóa và mật mã.
Hình 2.5.10. Mô tả thuật toán ElGamal
Ứng dụng: ElGamal được sử dụng trong các giao thức bảo mật như PGP (Pretty Good
Privacy) và OpenPGP để mã hóa và ký số dữ liệu.
Độ an toàn: Hệ mật mã ElGamal là một hệ mật mã khóa công khai dựa trên vấn đề
logarithm rời rạc (Discrete Logarithm Problem - DLP), nó được sử dụng cho các mục đích
như mã hóa và chữ ký số. Tính an toàn của hệ mật mã ElGamal cũng phụ thuộc vào sự khó
khăn của việc giải quyết vấn đề logarithm rời rạc, và có một số yếu tố khác ảnh hưởng đến độ an toàn của nó:
Kích thước khóa: Kích thước của các tham số trong hệ mật mã ElGamal, như kích
thước của nhóm số nguyên tố, ảnh hưởng trực tiếp đến độ an toàn của thuật toán. Kích thước
lớn hơn thì làm tăng độ khó của việc giải quyết vấn đề logarithm rời rạc và do đó tăng cường
độ an toàn của hệ thống ElGamal.
Sự ngẫu nhiên: Việc tạo ra các tham số ngẫu nhiên, bao gồm cả khóa và số nguyên tố,
là rất quan trọng để ngăn chặn các cuộc tấn công dựa trên việc tìm ra các mẫu hoặc dãy nhất định trong các tham số. lOMoAR cPSD| 60701415
Phát hiện số nguyên tố không an toàn: ElGamal cũng dựa trên việc chọn một số nguyên
tố ngẫu nhiên. Nếu một số nguyên tố không an toàn được chọn, thì sẽ dễ dàng cho người tấn
công phá vỡ hệ thống. Do đó, quá trình chọn số nguyên tố phải được thực hiện một cách cẩn thận.
Quản lý khóa và công cụ: Sự an toàn của hệ mật mã ElGamal cũng phụ thuộc vào việc
quản lý và bảo vệ khóa mật và các thông tin mật khác, bao gồm việc sử dụng các công cụ mã
hóa và giải mã một cách an toàn.
Bằng cách phân loại hệ mật mã thành hai loại dựa vào cách truyền khóa này, người ta
có thể hiểu rõ hơn về cách mà các hệ mật mã hoạt động và cách chúng được triển khai trong
các ứng dụng bảo mật thông tin.
1.9. Tiêu chuẩn đánh giá hệ mật mã
Để đi đến tìm hiểu về tiêu chuẩn của một hê mật mã nào đó, ta cần hiểu khái niệm về đánh giá hệ mật mã .
Đánh giá hệ mật mã là quá trình đánh giá và kiểm tra tính bảo mật, hiệu quả và tính
phù hợp của một hệ thống mã hóa. Đây là một quy trình kỹ thuật tổng hợp các phương pháp
và công cụ để đảm bảo rằng hệ mật mã hoạt động đúng cách và đáp ứng được các yêu cầu và
tiêu chuẩn cụ thể. Dưới đây là một mô tả chi tiết về khái niệm này: Phạm vi của Đánh giá:
Yêu cầu và Tiêu chuẩn: Đánh giá hệ mật mã bắt đầu bằng việc xác định và hiểu rõ yêu
cầu và tiêu chuẩn áp dụng cho hệ mật mã. Điều này bao gồm cả yêu cầu về bảo mật, hiệu suất,
tính linh hoạt và tiện lợi.
Mục tiêu Đánh giá: Mục tiêu của quá trình đánh giá là đảm bảo rằng hệ mật mã đáp
ứng được các yêu cầu và tiêu chuẩn đã được xác định, cũng như đảm bảo rằng nó là an toàn,
hiệu quả và phù hợp với môi trường triển khai.
Các bước trong Đánh giá:
Phân tích và Đánh giá Rủi ro: Đánh giá bắt đầu bằng việc phân tích các rủi ro tiềm ẩn
và mối đe dọa mà hệ mật mã có thể phải đối mặt. Các rủi ro này có thể bao gồm cả các tấn
công thông tin và các lỗ hổng bảo mật tiềm ẩn.
Kiểm tra Hiệu suất: Đánh giá cũng bao gồm việc kiểm tra hiệu suất của hệ mật mã, bao
gồm tốc độ mã hóa và giải mã, tải trọng hệ thống, và sử dụng tài nguyên tính toán.
Kiểm tra Tính Phù hợp: Một phần quan trọng của đánh giá là kiểm tra tính phù hợp của
hệ mật mã với yêu cầu và môi trường triển khai cụ thể, bao gồm cả tính linh hoạt và tiện lợi. lOMoAR cPSD| 60701415
Các phương pháp Đánh giá:
Kiểm tra Mã hóa: Đánh giá bao gồm việc kiểm tra các thuật toán mã hóa và giải mã
được sử dụng trong hệ mật mã để đảm bảo tính an toàn và hiệu quả của chúng.
Kiểm tra Quản lý Khóa: Một phần quan trọng của đánh giá là kiểm tra quản lý khóa,
bao gồm việc tạo ra, lưu trữ, phân phối và thu hồi khóa một cách an toàn và hiệu quả.
Kiểm tra Tương thích: Đánh giá cũng bao gồm việc kiểm tra tính tương thích của hệ
mật mã với các hệ thống và tiêu chuẩn khác nhau, đảm bảo rằng nó có thể hoạt động hiệu quả
trong môi trường được xác định.
Kết quả và Cải thiện:
Báo cáo và Đánh giá Kết quả: Sau quá trình đánh giá, một báo cáo chi tiết về kết quả
và đánh giá sẽ được tạo ra, đưa ra các khuyến nghị cải thiện và biện pháp bảo mật cần thiết.
Cải thiện Liên tục: Đánh giá hệ mật mã không chỉ là một quy trình một lần mà còn là
một phần của việc liên tục cải thiện và nâng cao tính bảo mật và hiệu suất của hệ mật mã theo thời gian.
Tóm lại, đánh giá hệ mật mã là một quá trình quan trọng để đảm bảo tính bảo mật, hiệu
quả và tính phù hợp của một hệ mật mã trong các ứng dụng và môi trường triển khai khác nhau.
Sau khi chúng ta đã có cái nhìn tổng quan về đánh giá của 1 hệ mật mã, dựa trên đó ta
có một số tiêu chí sau để đánh giá 1 hệ mật mã, dựa trên các tiêu chí này, ta sẽ lấy đó để cải
thiện hệ mật mã đó Bảo mật:
Độ mạnh của thuật toán: Xác định cường độ bảo mật của thuật toán mã hóa bằng cách
đánh giá sức mạnh của hệ thống mã hóa đối với các phương pháp tấn công phổ biến, bao gồm
tấn công brute force, tấn công plaintext/ciphertext và tấn công phân tích phổ. Đảm bảo thuật
toán đáp ứng các tiêu chuẩn quốc tế về bảo mật và đã được kiểm tra và chứng minh qua các
cuộc kiểm tra bảo mật độc lập.
Kích thước và quản lý khóa: Xác định kích thước khóa phù hợp để đảm bảo mức độ
bảo mật mong muốn. Đánh giá các phương pháp và cơ chế quản lý khóa để đảm bảo rằng
khóa được sinh ra, lưu trữ và quản lý một cách an toàn và hiệu quả.
Khả năng chống lại các tấn công hiện đại: Đánh giá khả năng chống lại các tấn công
hiện đại như tấn công quyền tương quan, tấn công mạng và tấn công phân tích bên trong.
Xác định các cải tiến và bảo vệ bổ sung để củng cố hệ thống chống lại các mối đe dọa mới.
Hiệu suất và tính linh hoạt: lOMoAR cPSD| 60701415
Tốc độ và hiệu suất: Đánh giá tốc độ thực thi của thuật toán mã hóa và giải mã, bao
gồm thời gian cần thiết để xử lý dữ liệu lớn và nhỏ. Xác định tỷ lệ nén dữ liệu, nếu có, và ảnh
hưởng của nó đến hiệu suất tổng thể của hệ thống.
Tính linh hoạt và tính tương thích: Đánh giá khả năng tích hợp của thuật toán vào các
hệ thống và ứng dụng hiện tại mà không yêu cầu sự thay đổi lớn trong cơ sở hạ tầng.
Xác định khả năng tương thích với các tiêu chuẩn và giao thức bảo mật phổ biến để
đảm bảo tính tương thích và tính mở rộng. Hiệu quả và chi phí:
Chi phí triển khai và duy trì: Đánh giá chi phí triển khai và duy trì hệ mật mã, bao gồm
chi phí cho phần cứng, phần mềm và nhân lực. Xác định các yếu tố chi phí khác nhau như
giấy phép, quản lý và bảo trì khóa, và các cải tiến và nâng cấp sau này.