Nguyên tắc mã hoá đã xác thực có tính xác định với dữ liệu liên kết (Deterministic AEAD) cung cấp hoạt động mã hoá có thuộc tính xác định: việc mã hoá cùng một dữ liệu luôn tạo ra cùng một văn bản mã hoá. Loại mã hoá này rất hữu ích cho việc bao bọc khoá hoặc cho một số lược đồ tìm kiếm trên dữ liệu đã mã hoá (xem RFC 5297, Phần 1.3 để biết thêm thông tin). Do thuộc tính xác định của nó, việc triển khai nguyên tắc cơ bản này có thể dẫn đến việc mất tính bí mật vì kẻ tấn công chỉ cần tìm ra văn bản mã hoá cho một thông báo nhất định để xác định các phiên bản khác của thông báo đó.
AEAD xác định có các thuộc tính sau:
- Secrecy: Không có thông tin nào về văn bản thuần tuý được biết, ngoại trừ độ dài và tính bình đẳng của văn bản thuần tuý lặp lại.
- Tính xác thực: Không thể thay đổi văn bản thuần tuý được mã hoá làm cơ sở cho văn bản mã hoá mà không bị phát hiện.
- Đối xứng: Quá trình mã hoá văn bản thuần tuý và giải mã văn bản mã hoá được thực hiện bằng cùng một khoá.
- Xác định: Miễn là khoá chính không thay đổi, việc mã hoá văn bản thuần tuý hai lần bằng các tham số giống nhau sẽ cho ra cùng một văn bản mã hoá.
Dữ liệu liên quan
Bạn có thể dùng AEAD xác định để liên kết văn bản mã hoá với dữ liệu liên kết 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, user-id có thể được dùng làm dữ liệu được liên kết khi mã hoá encrypted-medical-history. Điều này ngăn chặn kẻ tấn công di chuyển nhật ký y tế từ người dùng này sang người dùng khác.
Bạn không bắt buộc phải cung cấp dữ liệu liên kết. Nếu được chỉ định, quá trình giải mã chỉ thành công nếu cùng một dữ liệu được liên kết được truyền đến cả lệnh gọi mã hoá và giải mã.
Chọn loại khoá
Bạn nên sử dụng loại khoá AES256_SIV cho mọi trường hợp sử dụng.
Đảm bảo về bảo mật
- Độ mạnh của chế độ xác thực ít nhất 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 phạm vi từ 0 đến 232 byte).
- Mức độ 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 với tối đa 232 khoá – tức là nếu đối phương thu được 232 văn bản mã hoá của cùng một thông báo được mã hoá theo 232 khoá, thì họ cần thực hiện 2128 phép tính để thu được một khoá duy nhất.
- Khả năng mã hoá an toàn 238 thư, miễn là mỗi thư có độ dài dưới 1 MB.
Trường hợp sử dụng mẫu
Xem Tôi muốn mã hoá dữ liệu một cách xác định và tôi muốn liên kết văn bản mã hoá với ngữ cảnh của văn bản đó.