Введение
Процесс шифрования сообщения один или несколько раз. Многократное шифрование — это процесс шифрования уже зашифрованного сообщения один или несколько раз, используя один и тот же или другой алгоритм. Оно также известно как каскадное шифрование, каскадное шифрование, многократное шифрование и супершифрование. Супершифрование относится к внешнему уровню шифрования при многократном шифровании. Некоторые криптографы, такие как Мэтью Грин из Университета Джона Хопкинса, считают, что многократное шифрование решает проблему, которая в основном не существует: современные шифры редко взламываются. Гораздо вероятнее столкнуться с вредоносным ПО или ошибкой реализации, чем пострадать от катастрофической атаки на AES. И в этой цитате заключается причина многократного шифрования, а именно – недостатки реализации. Использование двух различных криптомодулей и процессов формирования ключей от двух разных поставщиков требует компрометации продуктов обоих поставщиков для полной потери безопасности.
Multiple encryption is the process of encrypting an already encrypted message one or more times, either using the same or a different algorithm. It is also known as cascade encryption, cascade ciphering, multiple encryption, and superencipherment. Superencryption refers to the outer level encryption of a multiple encryption. Some cryptographers, like Matthew Green of Johns Hopkins University, say multiple encryption addresses a problem that mostly doesn't exist: Modern ciphers rarely get broken You’re far more likely to get hit by malware or an implementation bug than you are to suffer a catastrophic attack on AES. and in that quote lies the reason for multiple encryption, namely poor implementation. Using two different cryptomodules and keying processes from two different vendors requires both vendors' wares to be compromised for security to fail completely.
Независимые ключи
Выбирая любые два шифра, если для обоих используется один и тот же ключ, второй шифр может частично или полностью обратить действие первого. Это справедливо для шифров, в которых процесс дешифрования полностью идентичен процессу шифрования — в этом случае второй шифр полностью отменит первый. Если злоумышленнику удастся восстановить ключ с помощью криптоанализа первого слоя шифрования, он потенциально сможет расшифровать все последующие слои, при условии, что для всех слоев используется один и тот же ключ. Чтобы предотвратить такую возможность, следует использовать статистически независимые ключи для каждого слоя (например, с помощью независимых генераторов случайных чисел). В идеале, каждый ключ должен генерироваться, распространяться и управляться по отдельным и различным процедурам.
Независимые векторы инициализации
Для процессов шифрования/дешифрования, требующих совместного использования вектора инициализации (IV) / nonce, они обычно открыто передаются или становятся известны получателю (и всем остальным). Хорошей практикой безопасности является никогда не предоставлять одни и те же данные в открытом виде и в зашифрованном виде при использовании одного и того же ключа и IV. Поэтому рекомендуется (хотя на данный момент это не подтверждено конкретными данными) использовать отдельные IV для каждого уровня шифрования.