Mật mã (Encryption) là một kỹ thuật cơ sở quan trọng trong bảo mật thông tin. Nguyên tắc của mật mã là biến đổi thông tin gốc thành dạng thông tin bí mật mà chỉ có những thực thể tham gia xử lý thông tin một cách hợp lệ mới hiểu đƣợc. Một thực thể hợp lệ có thể là một ngƣời, một máy tính hay một phần mềm nào đó đƣợc phép nhận thông tin. Để có thể giải mã đƣợc thông tin mật, thực thể đó cần phải biết cách giải mã (tức là biết đƣợc thuật toán giải mã) và các thông tin cộng thêm (khóa bí mật).[4].
Quá trình chuyển thông tin gốc thành thông tin mật theo một thuật toán nào đó đƣợc gọi là quá trình mã hoá (encryption). Quá trình biến đổi thông tin mật về dạng thông tin gốc ban đầu gọi là quá trình giải mã (decryption). Đây là hai quá trình không thể tách rời của một kỹ thuật mật mã bởi vì mật mã (giấu thông tin) chỉ có ý nghĩa khi ta có thể giải mã (phục hồi lại) đƣợc thông tin đó. Do vậy, khi chỉ dùng thuật ngữ mật mã thì nó có nghĩa bao hàm cả mã hóa và giải mã.
Kỹ thuật mã hoá đƣợc chia thành hai loại: mã hoá dùng khoá đối xứng (symmetric key encryption) và mã hoá dùng khoá bất đối xứng (asymmetric key encryption).
Các thành phần của một hệ thống mã hoá:
Hình trên mô tả nguyên tắc chung của một hệ thống mật mã quy ƣớc. Các thành phần trong một hệ thống mật mã điển hình bao gồm:
- Plaintext: Là thông tin gốc cần truyền đi giữa các hệ thống thông tin - Encryption algorithm: Thuật toán mã hóa, đây là cách thức tạo ra thông tin mật từ thông tin gốc.
- Key: Khóa mật mã, gọi tắt là khóa. Đây là thông tin cộng thêm mà thuật toán mã hóa sử dụng để trộn với thông tin gốc tạo thành thông tin mật.
- Ciphertext: Thông tin đã mã hóa (thông tin mật). Đây là kết quả của thuật toán mã hóa.
- Decryption algorithm: Thuật toán giải mã. Đầu vào của thuật toán này là thông tin đã mã hóa (ciphertext) cùng với khóa mật mã. Đầu ra của thuật toán là thông tin gốc (plaintext) ban đầu
Các tiêu chí đặc trƣng của một hệ thống mã hoá:
Một hệ thống mã hóa bất kỳ đƣợc đặc trƣng bởi 3 tiêu chí sau đây:
- Phương pháp mã (operation): có hai phƣơng pháp mật mã bao gồm thay thế (substitution) và chuyển vị (transposition). Trong phƣơng pháp mã thay thế, các đơn vị thông tin (bit, ký tự, byte hoặc khối) trong thông tin gốc đƣợc thay thế bằng các đơn vị thông tin khác theo một quan hệ nào đó. Trong phƣơng pháp mã chuyển vị, các đơn vị thông tin trong thông tin gốc đƣợc đổi chỗ cho nhau để tạo thành thông tin mã hóa. Các hệ thống mã hoá hiện đại thƣờng kết hợp cả hai phƣơng pháp thay thế và chuyển vị.
- Số khóa sử dụng (number of keys): nếu phía mã hóa (phía gửi) và phía giải mã (phía nhận) sử dụng chung một khóa, ta có hệ thống mã dùng khoá đối xứng (symmetric key) gọi tắt là mã đối xứng hay còn có các tên gọi khác nhƣ mã một khóa (single-key), mã khóa bí mật (secret key) hoặc mã quy ƣớc (conventional cryptosystem). Nếu phía mã hóa và phía giải mã dùng 2 khóa khác nhau, hệ thống này đƣợc gọi là mã bất đối xứng (asymmetric key), mã hai khóa (two key) hoặc mã khóa công khai (public key).
- Cách xử lý thông tin gốc (mode of cipher): thông tin gốc có thể đƣợc xử lý liên tục theo từng phần tử , khi đó ta có hệ thống mã dòng (stream cipher). Ngƣợc lại, nếu thông tin gốc đƣợc xử lý theo từng khối, ta có hệ
thống mã khối (block cipher). Các hệ thống mã dòng thƣờng phức tạp và không đƣợc phổ biến công khai, do đó chỉ đƣợc dùng trong một số ứng dụng nhất định (ví dụ trong thông tin di động GSM). Các thuật toán mật mã đƣợc giới thiệu trong tài liệu này chỉ tập trung vào cơ chế mã khối.