Двойное шифрование более безопасно, чем однократное шифрование, хотя поначалу это может быть не совсем понятно.
Интуитивно понятно, что двойное шифрование с использованием одного и того же алгоритма не дает дополнительной защиты, поскольку злоумышленник может найти ключ, который расшифровывает весь путь от окончательного шифрованного текста обратно до открытого текста. ... Но это не так.
например. Я начинаю с открытого текста A и шифрую его ключом K1 , чтобы получить B . Затем я шифрую B ключом K2 , чтобы получить C .
Интуитивно кажется разумным предположить, что вполне может существовать ключ K3 , который я мог бы использовать для шифрования A и получения C напрямую. Если это так, то злоумышленник, использующий грубую силу, в итоге наткнется на K3 и сможет расшифровать C , в результате чего дополнительный этап шифрования не повысит безопасность.
Однако вряд ли такой ключ существует (для любой современной схемы шифрования). (Когда я говорю здесь «крайне маловероятно», я имею в виду то, что нормальный человек выразил бы словом «невозможно»).
Почему?
Рассматривайте ключи как функции, которые обеспечивают отображение от простого текста к зашифрованному тексту.
Если все наши ключи имеют длину KL битов, то существует 2 ^ KL таких отображений.
Однако, если я использую 2 ключа KL бит каждый, это дает мне (2 ^ KL) ^ 2 сопоставления.
Не все из них могут быть эквивалентны одноэтапному шифрованию.
Другое преимущество двойного шифрования, , если используются 2 разных алгоритма , заключается в том, что если в одном из алгоритмов обнаружена уязвимость, другой алгоритм все же обеспечивает некоторую безопасность.
Как уже отмечали другие, грубое форсирование ключа обычно является последним средством. Злоумышленник часто пытается прервать процесс в какой-то другой точке (например, используя социальную инженерию для обнаружения ключевой фразы).
Еще один способ повысить безопасность - просто использовать более длинный ключ с одним алгоритмом шифрования.
... Не стесняйтесь исправлять мою математику!