Введение

Процесс шифрования сообщения один или несколько раз. Многократное шифрование — это процесс шифрования уже зашифрованного сообщения один или несколько раз, используя один и тот же или другой алгоритм. Оно также известно как каскадное шифрование, каскадное шифрование, многократное шифрование и супершифрование. Супершифрование относится к внешнему уровню шифрования при многократном шифровании. Некоторые криптографы, такие как Мэтью Грин из Университета Джона Хопкинса, считают, что многократное шифрование решает проблему, которая в основном не существует: современные шифры редко взламываются. Гораздо вероятнее столкнуться с вредоносным ПО или ошибкой реализации, чем пострадать от катастрофической атаки на AES. И в этой цитате заключается причина многократного шифрования, а именно – недостатки реализации. Использование двух различных криптомодулей и процессов формирования ключей от двух разных поставщиков требует компрометации продуктов обоих поставщиков для полной потери безопасности.

Независимые ключи

Выбирая любые два шифра, если для обоих используется один и тот же ключ, второй шифр может частично или полностью обратить действие первого. Это справедливо для шифров, в которых процесс дешифрования полностью идентичен процессу шифрования — в этом случае второй шифр полностью отменит первый. Если злоумышленнику удастся восстановить ключ с помощью криптоанализа первого слоя шифрования, он потенциально сможет расшифровать все последующие слои, при условии, что для всех слоев используется один и тот же ключ. Чтобы предотвратить такую возможность, следует использовать статистически независимые ключи для каждого слоя (например, с помощью независимых генераторов случайных чисел). В идеале, каждый ключ должен генерироваться, распространяться и управляться по отдельным и различным процедурам.

Независимые векторы инициализации

Для процессов шифрования/дешифрования, требующих совместного использования вектора инициализации (IV) / nonce, они обычно открыто передаются или становятся известны получателю (и всем остальным). Хорошей практикой безопасности является никогда не предоставлять одни и те же данные в открытом виде и в зашифрованном виде при использовании одного и того же ключа и IV. Поэтому рекомендуется (хотя на данный момент это не подтверждено конкретными данными) использовать отдельные IV для каждого уровня шифрования.