AEAD xác định cung cấp phương thức mã hoá với thuộc tính xác định: mã hoá cùng một dữ liệu luôn cho ra cùng một bản mật mã. Hình thức mã hoá này hữu ích cho việc gói khoá hoặc cho một số giao thức để tìm kiếm dữ liệu đã mã hoá (xem RFC 5297, Mục 1.3 để biết thêm thông tin). Do thuộc tính tất định của nó, việc triển khai dữ liệu gốc này có thể dẫn đến mất bí mật vì kẻ tấn công chỉ cần tìm ra bản mã hoá của một thông báo nhất định là có thể xác định các thực thể khác của thông báo đó.
AEAD xác định có các tính chất sau:
- Tính bí mật: Không có thông tin nào về văn bản thuần tuý được xác định, ngoại trừ độ dài và đẳng thức của các văn bản thuần tuý lặp lại.
- Tính xác thực: Bạn không thể thay đổi văn bản thuần tuý đã mã hoá nằm dưới bản mật mã nếu không được phát hiện.
- Symmetric (Đối xứng): Quá trình mã hoá văn bản thuần tuý và giải mã bản mật mã được thực hiện bằng cùng một khoá.
- Có tính xác định: Miễn là khoá chính không thay đổi, việc mã hoá một văn bản thuần tuý hai lần với các tham số giống nhau sẽ dẫn đến cùng một bản mật mã.
Dữ liệu liên quan
AEAD xác định cũng có thể dùng để liên kết văn bản mật mã với dữ liệu liên quan cụ thể. Giả sử bạn có một cơ sở dữ liệu với các trường user-id
và encrypted-medical-history
. Trong trường hợp này, bạn có thể dùng user-id
làm dữ liệu liên kết khi mã hoá encrypted-medical-history
. Nhờ đó, kẻ tấn công không thể di chuyển bệnh án từ người dùng này sang người dùng khác.
Chọn một loại khoá
Bạn nên dùng loại khoá AES256_SIV cho mọi trường hợp sử dụng.
Đảm bảo tính bảo mật
- Độ mạnh xác thực tối thiểu là 80 bit.
- Văn bản thuần tuý và dữ liệu liên kết có thể có độ dài tuỳ ý (trong khoảng 0,.232 byte).
- Cấp độ bảo mật 128 bit chống lại các cuộc tấn công khôi phục khoá cũng như trong các cuộc tấn công nhiều người dùng có tối đa 232 khoá — điều đó có nghĩa là nếu đối thủ nhận được 232 thuật toán mật mã của cùng một thông báo được mã hoá dưới 232 khoá, chúng cần thực hiện 2128 phép tính để có được một khoá duy nhất.
- Khả năng mã hoá 238 thông báo một cách an toàn, miễn là mỗi thông báo có thời lượng dưới 1 MB.
Trường hợp sử dụng mẫu
Xem bài viết Tôi muốn mã hoá dữ liệu theo cách quyết định và Tôi muốn liên kết văn bản mật mã với ngữ cảnh của dữ liệu đó.