Mật mã
Trong mật mã học, mật mã là một thuật toán có thể mã hóa văn bản thuần túy để làm cho nó không đọc được, và giải mã dữ liệu đã được mã hóa trở lại thành văn bản thuần túy.
Các mật mã đã phổ biến từ rất lâu trước kỷ nguyên thông tin (ví dụ: mật mã thay thế, mật mã hoán vị, và mật mã hoán đổi vị trí), nhưng không ai trong số chúng an toàn về mặt mật mã học ngoại trừ one-time pad.
Trong thời đại hiện đại, các mật mã đã phát triển đáng kể. AES, RSA và Blowfish là ví dụ về các mật mã là thành phần không thể thiếu của các tiêu chuẩn và hệ thống mã hóa hiện đại.
Các mật mã hiện đại được thiết kế để chịu đựng các cuộc tấn công được phát hiện thông qua phân tích mật mã. Không có gì đảm bảo rằng tất cả các phương thức tấn công đã được phát hiện, vì vậy mỗi thuật toán được khuyến nghị cho các mục đích khác nhau dựa trên các loại tấn công đã biết.
Các mật mã hoạt động theo một trong hai cách: như mật mã khối trên các khối (hoặc bộ đệm) dữ liệu liên tiếp, hoặc như mật mã dòng trên một luồng dữ liệu liên tục (thường là âm thanh hoặc video).
Các mật mã cũng được phân loại theo cách xử lý khóa của chúng:
- Các thuật toán khóa đối xứng sử dụng cùng một khóa để mã hóa và giải mã tin nhắn. Khóa cũng phải được gửi một cách an toàn nếu tin nhắn cần giữ bí mật.
- Các thuật toán khóa bất đối xứng sử dụng một khóa để mã hóa và khóa kia để giải mã.