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.

  • 🔐 Ý tưởng cốt lõi: Mã hóa chuyển đổi văn bản gốc thành dạng mã; giải mã đảo ngược quá trình này bằng cách sử dụng một khóa bí mật.
  • 🧩 Ba lĩnh vực: Mật mã học che giấu ý nghĩa, giải mã học phá vỡ ý nghĩa đó, còn mật mã học bao gồm cả hai.
  • 📐 Các họ thuật toán: Hàm băm, thuật toán mã hóa đối xứng và hệ thống khóa công khai giải quyết các vấn đề khác nhau.
  • Tiêu chuẩn hiện hành: AES và SHA-2 vẫn được chấp thuận, trong khi MD5, SHA-1 và RC4 được coi là đã bị phá vỡ.
  • 🧪 Thực hành thực tế: CrypTool 1 trình bày phương pháp mã hóa RC4 và phân tích vét cạn khóa 24 bit.
  • 🔮 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 của mình vào tháng 8 năm 2024.

Hướng dẫn về mật mã

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.

Mã hóa và giải mã bằng cách dịch chuyển mỗi chữ cái ba vị trí.
Mã hóa và giải mã mật mã

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.

Cửa sổ chính của CrypTool 1 trước khi văn bản mẫu được thay thế.

  • Hãy thay thế đoạn văn bản này bằng cụm từ phía trên.

Tài liệu CrypTool chứa cụm từ thay thế

Bước 3) Mã hóa văn bản

  • Nhấp vào menu Mã hóa/Giải mã.

Menu Mã hóa/Giải mã CrypTool với tùy chọn Symmetric modern đã chọn

  • Trỏ chuột vào Symmetric (hiện đại), sau đó chọn RC4.

Hộp thoại nhập khóa CrypTool 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.

Kết quả mã hóa luồng RC4 được hiển thị trong CrypTool.

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.

Menu Phân tích CrypTool với Mã hóa Đối xứng hiện đại được làm nổi bật

  • Chọn Mã hóa đối xứng (hiện đại), sau đó chọn RC4.

Hộp thoại phân tích tấn công vét cạn của CrypTool cho 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.

Cửa sổ tiến trình phân tích vét cạn của CrypTool

  • 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.

Kết quả tấn công vét cạn của CrypTool được xếp hạng theo độ phức tạp (entropy).

  • 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".

Câu Hỏi Thường Gặp

Mã hóa đối xứng sử dụng một khóa chung và có tốc độ nhanh, do đó nó bảo vệ được lượng dữ liệu lớn. Mã hóa bất đối xứng sử dụng một cặp khóa công khai và khóa riêng tư, giải quyết vấn đề phân phối khóa và cho phép sử dụng chữ ký số.

Không. Mã hóa có thể đảo ngược bằng khóa; băm là một phép biến đổi một chiều thành một bản tóm tắt có độ dài cố định. Hệ thống mật khẩu lưu trữ các bản băm có thêm muối chính vì giá trị gốc không thể khôi phục được.

Salt là một giá trị ngẫu nhiên duy nhất được lưu trữ bên cạnh mỗi mã băm mật khẩu. Nó làm cho các mật khẩu giống hệt nhau có mã băm khác nhau, vô hiệu hóa các bảng cầu vồng được tính toán trước và buộc kẻ tấn công phải xử lý từng tài khoản riêng lẻ.

Chứng chỉ số liên kết khóa công khai với một danh tính đã được xác minh và được ký bởi một tổ chức cấp chứng chỉ. Trình duyệt kiểm tra chữ ký đó trước khi tin tưởng kết nối được mã hóa với một trang web.

Một máy tính lượng tử mạnh mẽ sẽ phá vỡ các khóa RSA và khóa đường cong elip, trong khi các thuật toán mã hóa đối xứng chỉ cần khóa lớn hơn. NIST đã đáp trả bằng cách công bố các tiêu chuẩn hậu lượng tử vào năm 2024 để quá trình chuyển đổi có thể bắt đầu sớm.

Máy học không phá vỡ được các thuật toán mã hóa hiện đại mạnh mẽ. Thay vào đó, nó được sử dụng để phân tích kênh phụ, phát hiện các khóa yếu hoặc được sử dụng lại trên quy mô lớn và gắn cờ lưu lượng truy cập được mã hóa bất thường trong quá trình phát hiện mối đe dọa.

Copilot giúp tăng tốc quá trình viết mã lặp lại nhưng thường đề xuất các thuật toán lỗi thời hoặc các khóa được mã hóa cứng. Hãy coi mọi đề xuất như một bản nháp, ưu tiên sử dụng thư viện đã được kiểm duyệt hơn là mã tự viết và nhờ người đánh giá kiểm tra việc xử lý khóa.

Các kỹ sư bảo mật, chuyên gia kiểm thử xâm nhập và nhà phân tích pháp y sử dụng nó hàng ngày, và nó tạo thành một lĩnh vực hoàn chỉnh của công nghệ. Chứng nhận CISSPHầu hết các vai trò đều cấu hình các thư viện đã được kiểm duyệt thay vì thiết kế thuật toán.

Tóm tắt bài viết này với: