Множественное шифрование для многоключевой безопасности
У меня возник гипотетический вопрос о множественном шифровании после прочтения блога Мэтью Грина о множественном шифровании. Для тех, кто знаком с GCM… я хочу понять эффективность защиты с несколькими ключами посредством реализации множественного шифрования с безопасной формой шифрования с проверкой подлинности, такой как AES-256-GCM.
https://blog.cryptographyengineering.com/2012/02/02/multiple-encryption/
Давайте предположим, что мы каскадируем одну и ту же схему безопасного шифрования:
C = ЗашифроватьA(KC, ЗашифроватьA(KB,(ЗашифроватьA(KA,P))))
• EncryptA — это опубликованный, безупречно реализованный алгоритм для AES-256-GCM.
• Каждый IV используется только один раз, имеет длину 96 бит, и каждый генерируется новым криптографическим генератором случайных чисел (CSPRNG).
• Каждый ключ (KA, KB и KC) используется только один раз, имеет длину 256 бит, и каждый генерируется новым криптографическим генератором случайных чисел (CSPRNG).
¢ Каждый из трех IV и тегов является общедоступным
Окончательный зашифрованный текст C общеизвестен.
¢ P является 1 из 2^132 возможных открытых текстов
Каждый ключ хранится отдельно. Давайте предположим, что у трех человек есть по одному ключу в их собственных сейфовых ячейках, и никаких других копий этих ключей больше нигде не существует.
Теперь давайте предположим, что два человека приходят вместе со своими ключами для расшифровки, но не имеют третьего ключа:
P = DecryptA(KA, DecryptA(KB,(DecryptA(KC,C))))
Существует ли какой-либо сценарий (статистически вероятный, конечно), при котором P может быть раскрыт без третьего ключа? Имеет ли значение, какой ключ пропал? Интересно услышать ваши мысли!