Hướng dẫn về mật mã
⚡ Tóm tắt thông minh
Mật mã học bảo vệ thông tin bằng cách chuyển đổi nó thành dạng không thể đọc được bằng mắt thường, chỉ người sở hữu khóa chính xác mới có thể giải mã ngược lại. Trang này sẽ giới thiệu các tính năng, ứng dụng, thuật toán và bài tập thực hành với CrypTool.

Thông tin đóng vai trò thiết yếu trong kinh doanh, chính phủ và các hoạt động quân sự, và thông tin rơi vào tay kẻ xấu có thể gây thiệt hại về doanh thu hoặc thậm chí tệ hơn. Để bảo mật thông tin liên lạc, các tổ chức sử dụng mật mã học để mã hóa thông tin — chuyển đổi nó thành định dạng mà con người không thể đọc được và ngược lại.
Trong bài viết về mật mã học và an ninh mạng này, bạn sẽ tìm hiểu cách thức hoạt động của mật mã học và cách bảo vệ thông tin khỏi kẻ xấu.
Mật mã là gì?
Mật mã học là ngành nghiên cứu và ứng dụng các kỹ thuật che giấu ý nghĩa thực sự của thông tin bằng cách biến đổi nó thành các định dạng mà con người không thể đọc được và ngược lại.
Hãy xem xét một ví dụ. Để gửi "Tôi yêu táo", bạn thay thế mỗi chữ cái bằng chữ cái thứ ba kế tiếp trong bảng chữ cái, tạo ra "K NQXG CRRNGU". Để đọc được nó, người nhận phải lùi lại ba chữ cái, như hình minh họa bên dưới.

Việc chuyển đổi thông tin thành dạng mà con người không thể đọc được được gọi là mã hóavà việc đảo ngược nó được gọi là giải mãKết quả được mã hóa được gọi là . vô giá trị.
Quá trình giải mã sử dụng một khóa bí mật mà chỉ những người nhận hợp pháp mới biết. Vì khóa này là bắt buộc, nên việc liên lạc vẫn được bảo mật ngay cả khi kẻ tấn công chặn được mã hóa, điều mà nếu không có khóa thì hoàn toàn vô nghĩa.
Đặc điểm của mật mã
Một hệ thống mật mã được đánh giá dựa trên các đặc điểm dưới đây.
| Tính năng | Nghĩa là gì |
|---|---|
| Thuật toán | Quy trình toán học được công bố thực hiện phép biến đổi. |
| Bảo mật | Chỉ người sở hữu khóa mới có thể đọc được dữ liệu được bảo vệ. |
| Integrity | Mọi thay đổi đối với dữ liệu đều có thể phát hiện được. |
| Khả năng thích ứng | Hệ thống này tự điều chỉnh theo kích thước phím và mức độ nguy hiểm khác nhau. |
| Khả năng cộng tác | Các hệ thống và nhà cung cấp khác nhau trao đổi dữ liệu được bảo mật. |
| Xác thực | Nguồn gốc của một thông điệp có thể được chứng minh. |
| khả năng mở rộng | Hiệu năng vẫn được duy trì khi khối lượng dữ liệu tăng lên. |
| Quản lý khóa | Các chìa khóa được tạo, lưu trữ, xoay vòng và loại bỏ một cách an toàn. |
Ứng dụng của mật mã
Những đặc điểm đó trở thành những dịch vụ thường nhật mà mọi người dựa vào mà không hề nhận ra.
| Các Ứng Dụng | Cách thức sử dụng mật mã |
|---|---|
| Mã hóa TLS | Bảo vệ lưu lượng truy cập giữa trình duyệt và trang web. |
| Lưu trữ mật khẩu | Lưu trữ các mã băm có thêm muối thay vì mật khẩu dễ đọc. |
| Ngân hàng trực tuyến | Đảm bảo an toàn giao dịch và xác minh ngân hàng. |
| TIỀN ĐIỆN TỬ | Ký các giao dịch và liên kết các khối bằng mã băm. |
| Email được mã hóa | Giữ kín nội dung tin nhắn trong quá trình truyền tải và lưu trữ. |
| Digichữ ký Tal | Chứng minh quyền tác giả và tính xác thực của tài liệu. |
| Nhắn tin an toàn | Áp dụng mã hóa đầu cuối giữa các thiết bị. |
| Thương mại điện tử | Bảo vệ thông tin thẻ trong quá trình thanh toán. |
Phân tích mật mã là gì?
Giải mã mật mã là nghệ thuật giải mã thông điệp mà không cần khóa dùng để mã hóa chúng. Nó áp dụng phân tích toán học và thuật toán để giải mã mật mã, và được sử dụng cả để xâm nhập hệ thống lẫn để phòng thủ, nhằm đánh giá mức độ bảo vệ mà thuật toán cung cấp.
Sự thành công của một cuộc tấn công phân tích mật mã phụ thuộc vào:
- Lượng thời gian có sẵn
- Sức mạnh tính toán có sẵn
- Dung lượng lưu trữ có sẵn
Sau đây là các kiểu tấn công phân tích mật mã thường được thảo luận:
- Tấn công vũ lực — thử mọi tổ hợp có thể của văn bản gốc hoặc khóa, mã hóa từng tổ hợp và so sánh với bản mã hóa gốc.
- Tấn công từ điển — sử dụng danh sách từ để so khớp với văn bản gốc hoặc khóa. Phương pháp này chủ yếu được sử dụng khi cố gắng bẻ khóa mật khẩu được mã hóa.
- Tấn công bàn cầu vồng — So sánh văn bản mã hóa với các hàm băm đã được tính toán trước để tìm các kết quả trùng khớp. Việc thêm "muối" vào mỗi mật khẩu được lưu trữ sẽ vô hiệu hóa thuật toán này.
Mật mã học là gì?
Mật mã học là lĩnh vực bao quát kết hợp giữa mật mã học và giải mã học. Cả hai phần đều quan trọng: một thuật toán chỉ được tin cậy khi các nhà giải mã học đã cố gắng và thất bại trong việc phá vỡ nó.
Encryption Algorithms
Các thuật toán dưới đây xuất hiện nhiều lần trong công tác bảo mật. Hãy lưu ý những thuật toán nào vẫn được chấp thuận và những thuật toán nào chỉ còn tồn tại trong các hệ thống cũ.
- MD5 — viết tắt của Message-Digest 5, nó tạo ra các giá trị băm 128 bit. MD5 là một hàm băm chứ không phải là một hàm băm khác. mã hóaVì vậy, theo thiết kế, nó không thể đảo ngược. Nó không có khả năng chống va chạm — hai đầu vào khác nhau có thể tạo ra cùng một mã băm — và không phù hợp để sử dụng cho mật khẩu hoặc chữ ký.
- SHA — viết tắt của Secure Hash Algorithm (Thuật toán băm an toàn), nhóm thuật toán này tạo ra các biểu diễn cô đọng của một thông điệp, được gọi là bản tóm tắt thông điệp:
- SHA-0Thuật toán này tạo ra giá trị băm 160 bit. Nó đã bị thu hồi do một lỗi nghiêm trọng và được thay thế bằng SHA-1.
- SHA-1Hàm này tạo ra các giá trị băm 160 bit. Một trường hợp xung đột thực tế đã được chứng minh vào năm 2017 và NIST đã không cho phép sử dụng nó trong chữ ký số, vì vậy hãy tránh sử dụng nó.
- SHA-2: một nhóm gồm sáu hàm, bao gồm SHA-256 và SHA-512, hoạt động trên các từ 32-bit và 64-bit tương ứng. Cả hai đều vẫn được chấp thuận.
- SHA-3Được chuẩn hóa vào năm 2015 và trước đây được gọi là Keccak, nó sử dụng một thiết kế nội bộ khác làm phương án dự phòng cho SHA-2.
- AES — Chuẩn mã hóa nâng cao (AES) là thuật toán mã hóa khối đối xứng bảo vệ hầu hết dữ liệu khi lưu trữ và truyền tải hiện nay, với các khóa 128-, 192- và 256-bit. Nó đã thay thế DES và là chuẩn mặc định cho các hệ thống mới.
- RC4 — một thuật toán mã hóa luồng từng phổ biến trong Giao thức Lớp Ổ cắm Bảo mật (SSL) và Giao thức Bảo mật Tương đương Có dây (WEP). Cả hai giao thức này đều đã lỗi thời, và RFC 7465 đã cấm sử dụng RC4 trong mọi phiên bản TLS vào năm 2015. Nó vẫn được giữ lại ở đây như một ví dụ để giảng dạy.
- Blowfish — một thuật toán mã hóa khối đối xứng có khóa, được sử dụng trong lịch sử cho mật khẩu và tập tin. Kích thước khối 64 bit của nó khiến AES trở thành lựa chọn hiện đại tốt hơn.
Nhìn về phía trước, NIST đã công bố các tiêu chuẩn hậu lượng tử đầu tiên vào tháng 8 năm 2024 — ML-KEM cho việc trao đổi khóa, ML-DSA và SLH-DSA cho chữ ký — sẽ dần thay thế các thuật toán khóa công khai hiện nay.
Hoạt động hack: Cách tạo mật mã bằng CrypTool
Trong bài tập thực hành CrypTool này, bạn sẽ tạo một thuật toán mã hóa đơn giản bằng RC4 và sau đó khôi phục nó bằng phương pháp phân tích vét cạn, giả sử khóa được biết là có 24 bit. Mục đích là để chứng minh tại sao một khóa ngắn và một thuật toán mã hóa bị phá vỡ không mang lại sự bảo vệ thực sự.
Tạo mật mã luồng RC4
Bước 1) Tải xuống và cài đặt CrypTool
CrypTool 1 là một công cụ giáo dục mã nguồn mở dành cho ngành mật mã học. Việc phát triển tích cực hiện đã chuyển sang CrypTool 2, nhưng phiên bản 1.4.42 vẫn đang hoạt động. Windows và khớp với các hình ảnh bên dưới. Tải xuống từ cryptool.org.
Bước 2) Mở CrypTool và thay thế đoạn văn bản.
Cụm từ cần mã hóa là Đừng bao giờ đánh giá thấp quyết tâm của một đứa trẻ giàu thời gian và nghèo tiềnMã khóa là 00 00 00.
- Mở CrypTool 1.
- Hãy thay thế đoạn văn bản này bằng cụm từ phía trên.
Bước 3) Mã hóa văn bản
- Nhấp vào menu Mã hóa/Giải mã.
- Trỏ chuột vào Symmetric (hiện đại), sau đó chọn RC4.
Bước 4) Chọn khóa mã hóa
- Chọn độ dài khóa là 24 bit.
- Đặt giá trị thành 00 00 00.
- Nhấp vào Mã hóa để tạo chuỗi mã hóa bên dưới.
Tấn công mật mã luồng
Bước 5) Bắt đầu phân tích
- Nhấp vào menu Phân tích.
- Chọn Mã hóa đối xứng (hiện đại), sau đó chọn RC4.
- Giả định rằng khóa bí mật có độ dài 24 bit, vì vậy hãy chọn 24 bit làm độ dài khóa.
- Nhấp vào Bắt đầu.
- Lưu ý: Thời gian thực hiện phụ thuộc vào khả năng xử lý của máy tính và độ dài khóa. Khóa dài hơn sẽ mất nhiều thời gian hơn, đó là lý do tại sao các khóa hiện đại thường có độ dài từ 128 bit trở lên.
Bước 6) Phân tích kết quả
- Khi quá trình phân tích hoàn tất, các khóa ứng cử viên sẽ được xếp hạng như sau.
- Lưu ý: Giá trị entropy thấp hơn thường cho thấy kết quả chính xác, mặc dù giá trị cao hơn cũng có thể đúng.
- Chọn dòng văn bản có nội dung dễ hiểu, sau đó nhấp vào "Chấp nhận lựa chọn".









