Encryption
Quá trình chuyển đổi dữ liệu thành định dạng không thể đọc được. Chỉ những người có khóa giải mã mới có thể khôi phục dữ liệu gốc.
Mã hóa là quá trình chuyển đổi văn bản thuần thành văn bản mã hóa để chỉ các bên được ủy quyền có khóa giải mã chính xác mới có thể đọc dữ liệu gốc. Nó thiết yếu để bảo vệ dữ liệu chống lại chặn truyền thông, truy cập cơ sở dữ liệu trái phép, trộm cắp thiết bị và các mối đe dọa khác, tạo nền tảng cho bảo mật thông tin hiện đại.
Các phương pháp mã hóa chia thành hai loại lớn. Mã hóa khóa đối xứng sử dụng cùng khóa cho cả mã hóa và giải mã, với AES (Advanced Encryption Standard) là ví dụ hàng đầu. Nó nhanh và phù hợp cho khối lượng dữ liệu lớn, nhưng trao đổi khóa an toàn là thách thức. Mã hóa khóa công khai (mã hóa bất đối xứng) sử dụng cặp khóa công khai và riêng tư, với RSA và Mật mã Đường cong Elliptic (ECC) là ví dụ nổi bật. Nó giải quyết vấn đề phân phối khóa nhưng chậm hơn mã hóa đối xứng. Sách cơ bản về mã hóa bao gồm các kiến thức cơ bản toàn diện.
Trong thực tế, mã hóa lai kết hợp cả hai phương pháp được sử dụng. Giao thức TLS trong truyền thông HTTPS đầu tiên trao đổi khóa đối xứng an toàn bằng mã hóa khóa công khai, sau đó tiến hành truyền thông tiếp theo với mã hóa đối xứng nhanh. AES-256 là một trong những mật mã đối xứng được sử dụng rộng rãi nhất hiện nay, với độ dài khóa 256-bit được coi là thực tế không thể phá vỡ bằng tấn công brute-force.
Mã hóa và băm thường bị nhầm lẫn. Mã hóa là "phép biến đổi có thể đảo ngược" có thể khôi phục dữ liệu gốc bằng khóa giải mã, trong khi băm là "phép biến đổi không thể đảo ngược" không thể khôi phục. Mật khẩu nên được lưu trữ bằng băm (bcrypt, Argon2, v.v.), trong khi dữ liệu truyền thông nên được bảo vệ bằng mã hóa. Lưu trữ mật khẩu bằng mã hóa có nguy cơ lộ tất cả mật khẩu nếu khóa bị xâm phạm.
Một công nghệ đáng chú ý gần đây là mã hóa đầu cuối (E2EE), trong đó chỉ người gửi và người nhận có thể giải mã tin nhắn, và ngay cả nhà cung cấp dịch vụ cũng không thể đọc nội dung. Nó được sử dụng trong các ứng dụng nhắn tin như Signal và WhatsApp. Nghiên cứu về mật mã hậu lượng tử cũng đang tiến triển để chuẩn bị cho sự phát triển của máy tính lượng tử, với NIST công bố các thuật toán tiêu chuẩn mới vào năm 2024. Sách cơ bản bảo mật thông tin cung cấp thêm ngữ cảnh.
Từ góc độ đếm ký tự, dữ liệu mã hóa thường dài hơn bản gốc. Mật mã khối thêm vài đến hàng chục byte qua đệm, và mã hóa Base64 thêm khoảng 33% nữa. Ví dụ, mã hóa 100 ký tự văn bản thuần bằng AES-256-CBC và mã hóa Base64 tạo ra khoảng 200 ký tự đầu ra. Khi thiết kế giới hạn kích thước yêu cầu API hoặc kích thước cột cơ sở dữ liệu, phải tính đến sự mở rộng dữ liệu từ mã hóa.