6.1. Định nghĩa
Mã hóa là biến đổi dữ liệu để chỉ có các thành phần được xác nhận mới có thể giải mã được nó. Quá trình mã hóa là kết hợp plaintext với một khóa để tạo thành văn bản mật (Ciphertext). Sự giải mã được bằng cách kết hợp Ciphertext với khóa để tái tạo lại plaintext gốc như hình 3-6. Quá trình xắp xếp và phân bố các khóa gọi là sự quản lý khóa.
6.2 Phân loại Có hai loại mật mã Có hai loại mật mã
6.2.1 Mật mã dòng (stream ciphers)
Mật mã dòng phương thức mã hóa theo từng bit, mật mã dòng phát sinh chuỗi khóa liên tục dựa trên giá trị của khóa, ví dụ một mật mã dòng có thể sinh ra một chuỗi khóa dài 15 byte để mã hóa một frame và môt chuỗi khóa khác dài 200 byte để mã hóa một frame khác.
6.2.2 Mật mã khối ( block ciphers)
Ngược lại, mật mã khối sinh ra một chuỗi khóa duy nhất và có kích thước cố định(64 hoặc 128 bit). Chuỗi kí tự chưa được mã hóa( plaintext) sẽ được phân mảnh thành những
khối(block) và mỗi khối sẽ được trộn với chuỗi khóa một cách độc lập. Nếu như khối plaintext nhỏ hơn khối chuỗi khóa thì plaintext sẽ được đệm thêm vào để có được kích thước thích hợp. Tiến trình phân mảnh cùng với một số thao tác khác của mật mã khối sẽ làm tiêu tốn nhiều tài nguyên CPU.
Tiến trình mã hóa dòng và mã hóa khối còn được gọi là chế độ mã hóa khối mã điện tử ECB ( Electronic Code Block). Chế độ mã hóa này có đặc điểm là cùng một đầu
vào plaintext ( input plain) sẽ luôn luôn sinh ra cùng một đầu ra ciphertext (output ciphertext). Đây chính là yếu tố mà kẻ tấn công có thể lợi dụng để nhận dạng của
ciphertext và đoán được plaintext ban đầu.
6.3 Một số kỹ thuật mã hóa có thể khắc phục được vấn đề trên:
Sử dụng vector khởi tạo IV ( Initialization Vector)
Vector khởi tạo IV là một số được thêm vào khóa và làm thay đổi khóa . IV được nối vào khóa trước khi chuỗi khóa được sinh ra, khi IV thay đổi thì chuỗi khóa cũng sẽ thay đổi theo và kết quả là ta sẽ có ciphertext khác nhau. Ta nên thay đổi giá trị IV theo từng frame. Theo cách này nếu một frame được truyền 2 lần thì chúng ta sẽ có 2
ciphertext hoàn toàn khác nhau cho từng
Chế độ phản hồi (FeedBack)
Chế độ phản hồi cải tiến quá trình mã hóa để tránh việc một plaintext sinh ra cùng một ciphertext trong suốt quá trình mã hóa. Chế độ phản hồi thường được sử dụng với mật mã khối.