Nhiều mã hóa để bảo mật nhiều khóa
Tôi có một câu hỏi giả định về đa mã hóa sau khi đọc blog của Matthew Green về đa mã hóa. Đối với những người đã quen thuộc với GCMâ¦Tôi muốn hiểu hiệu quả của bảo mật nhiều khóa thông qua việc triển khai nhiều mã hóa với một hình thức mã hóa được xác thực an toàn, chẳng hạn như AES-256-GCM.
https://blog.cryptographyengineering.com/2012/02/02/multiple-encryption/
Hãy giả sử rằng chúng ta đang xếp tầng cùng một sơ đồ mã hóa an toàn:
C = EncryptA(KC, EncryptA(KB,(EncryptA(KA,P))))
• EncryptA là thuật toán đã xuất bản, được triển khai hoàn hảo cho AES-256-GCM.
• Mỗi IV chỉ được sử dụng một lần, có độ dài 96 bit và mỗi IV được tạo bởi Bộ tạo số ngẫu nhiên mã hóa (CSPRNG) mới.
• Mỗi khóa (KA, KB và KC) chỉ được sử dụng một lần, có độ dài 256 bit và mỗi khóa được tạo bởi Bộ tạo số ngẫu nhiên mã hóa (CSPRNG) mới.
• Mỗi trong số ba IV và thẻ đều là kiến thức công khai
• Bản mã cuối cùng, C, là kiến thức chung
• P là 1 trong số 2^132 bản rõ có thể có
Mỗi khóa được lưu trữ riêng. Giả sử ba cá nhân, mỗi người có một chìa khóa trong két an toàn của riêng họ và không có bản sao nào khác của những chìa khóa này tồn tại ở bất kỳ nơi nào khác.
Bây giờ, hãy giả sử hai cá nhân đến cùng với khóa của họ để giải mã, nhưng lại thiếu khóa thứ ba:
P = DecryptA(KA, DecryptA(KB,(DecryptA(KC,C))))
Có kịch bản nào (tất nhiên là có thể xảy ra theo thống kê) trong đó P có thể được tiết lộ mà không cần khóa thứ ba không? Có vấn đề gì khi thiếu chìa khóa không? Quan tâm để nghe suy nghĩ của bạn!