Nếu mật mã AEAD có thể xác thực khi chìa khóa sai một khóa ngẫu nhiên đã được sử dụng thì tôi đoán mật mã sẽ được coi là không an toàn. Vì vậy, tôi nghĩ rằng việc loại trừ khóa trong phép tính sẽ tạo ra nhiều sự khác biệt.
Mặt khác, rất khó có khả năng một AD đầu vào sẽ được xử lý như một khóa trong mật mã khối. Vì vậy, việc đưa nó vào AD cũng không làm cho hầu hết các thuật toán trở nên không an toàn. Mặc dù vậy, tôi vẫn hơi lo lắng về thuật toán MAC bên trong; nó có thể là có một mối quan hệ toán học kỳ lạ có thể được khai thác; Tôi không nghĩ có bất kỳ yêu cầu cụ thể nào để tránh điều đó.
Tuy nhiên, nói chung tôi sẽ không coi khóa là dữ liệu. Đó có lẽ là thiết kế khôn ngoan và nguy hiểm hơn. Các khóa có thể được lưu trữ trong các vùng chứa không cung cấp dữ liệu (ví dụ: trong kho khóa phần cứng hoặc TPM). Ngay cả khi bạn không có kế hoạch sử dụng các khóa được bảo vệ ngay bây giờ, nó sẽ loại trừ tùy chọn này trong tương lai.
Vì vậy, những lựa chọn khác là có:
Bao gồm bản mã của khóa được bọc dưới dạng dữ liệu AEAD. Bằng cách đó, chìa khóa được bảo vệ kép. Tuy nhiên, nếu bạn sử dụng sai chế độ (chẳng hạn như chế độ bộ đếm) thì kẻ tấn công có thể thực hiện các thay đổi theo bit trong khóa và dữ liệu bổ sung, điều này sẽ khiến tôi hơi khó chịu. Vì vậy, tôi sẽ sử dụng chế độ gói khóa được thiết kế cho mục đích này trong trường hợp đó hoặc quay trở lại CBC với IV bằng không (yuk). Điều đó sẽ không cung cấp cho kẻ tấn công nhiều quyền kiểm soát đối với giá trị khóa.
Thay vì gói khóa, lấy khóa bằng cách sử dụng dữ liệu dẫn xuất khóa (ví dụ: nhãn/thông tin/bộ đếm trình tự/muối) được lưu trữ cùng với bản mã. Nếu muốn, bạn có thể bao gồm dữ liệu phái sinh khóa được lưu trữ trong AD.Điều này có nhược điểm là bạn không thể trực tiếp sử dụng các khóa ngẫu nhiên (được tạo cục bộ) để mã hóa dữ liệu.
Kết luận: Tôi sẽ lo lắng hơn về cách bạn bọc hoặc lấy các khóa được sử dụng với dữ liệu. Bao gồm chính các khóa dẫn xuất trong AD là một ý tưởng tồi, nhưng bạn có thể bao gồm khác dữ liệu chẳng hạn như bản mã hoặc dữ liệu dẫn xuất trong AD và khiến đối thủ khó tạo tổ hợp khóa/bản mã được bao bọc hơn.
Ngoài chế độ gói đặc biệt, tôi cũng khuyên bạn nên sử dụng các phím 256 bit để tránh các cuộc tấn công đa mục tiêu. Sử dụng chế độ gói đặc biệt hoặc dẫn xuất khóa sẽ bảo vệ chống lại các cuộc tấn công khóa liên quan. Với loại trường hợp sử dụng này, bạn cũng có thể phải lo lắng về thay đổi trong tập tin và kẻ thù tráo đổi nội dung bản mã của tệp.