У меня есть предположение, что никакой дополнительной защиты нет вообще.
Лучше зашифровать сообщение, а затем сжать его или наоборот? Что обеспечивает большую безопасность?
Ответы (9)
Нет никакой разницы в обеспечиваемой безопасности, но из-за того, как работают алгоритмы сжатия, вы, вероятно, получите лучшее сжатие, если сначала сожмете, а затем зашифруете.
Алгоритмы сжатия используют статистическую избыточность (например, существующую в естественном языке или во многих форматах файлов) в данных, которая должна устраняться при шифровании, поэтому зашифрованное сообщение не должно< /em> можно так хорошо сжимать.
Однако алгоритмы сжатия данных без потерь всегда не смогут сжать некоторые файлы; действительно, любой алгоритм сжатия обязательно не сможет сжать любые данные, не содержащие различимых шаблонов. Таким образом, попытки сжать данные, которые уже были сжаты, обычно приводят к расширению, как и попытки сжать все данные, кроме наиболее тривиально зашифрованных.
Предупреждение: если злоумышленник контролирует часть открытого текста, который сжимается, и может наблюдать размер результирующего зашифрованного зашифрованного текста, он может вывести остальную часть открытого текста, изменив часть, которую он контролирует, до длины зашифрованного текста. уменьшается (что означает, что между частью открытого текста, которую они контролируют, и секретной частью открытого текста было некоторое повторение).
Например, см. https://en.wikipedia.org/wiki/CRIME.
Шифрование лучше работает на коротких сообщениях с равномерным распределением символов. Сжатие заменяет сообщение с неравномерным распределением символов другой, более короткой последовательностью символов, распределенных более равномерно.
Поэтому математически безопаснее сжимать перед шифрованием. Сжатие после шифрования не влияет на шифрование, которое остается относительно слабым из-за неравномерного распределения открытого текста.
Конечно, если вы используете что-то вроде AES256, и АНБ не преследует вас, это все теория.
Дополнительная безопасность отсутствует (поскольку сжатие не является механизмом безопасности), но правильно зашифрованное сообщение не должно легко сжиматься (т. е. практическое правило: если вы можете значительно сжать зашифрованное сообщение, что-то не так).
Поэтому сжимайте, а затем шифруйте.
Посмотрите здесь: ветка суперпользователя о сжатии и& шифровании или наоборот
У них есть полный и подробный ответ на ваш вопрос (кстати, ведьма сжимает, а затем шифрует).
Вы должны сжать перед шифрованием.
Шифрование превращает ваши данные в высокоэнтропийные данные, обычно неотличимые от случайного потока. Сжатие опирается на шаблоны, чтобы получить любое уменьшение размера. Поскольку шифрование уничтожает такие шаблоны, алгоритм сжатия не сможет дать вам значительного (если вообще) уменьшения размера, если вы примените его к зашифрованным данным. Если шифрование сделано правильно, то результатом будут в основном случайные данные. Большинство схем сжатия работают, находя закономерности в ваших данных, которые можно каким-то образом исключить.
Сжатие перед шифрованием также немного увеличивает вашу практическую устойчивость к дифференциальному криптоанализу (и некоторым другим атакам), если злоумышленник может контролировать только несжатый открытый текст, поскольку результирующий вывод может быть трудно вывести.
Согласно книге Уильяма Столлинга "Основы сетевой безопасности: приложения и стандарты, 4-е издание », опубликовано Пирсон, в главе 7, стр. 227:
По умолчанию PGP сжимает сообщение после применения подписи, но перед шифрованием. Преимущество этого заключается в экономии места как для передачи электронной почты, так и для хранения файлов. Расположение алгоритма сжатия, обозначенное буквой Z для сжатия и Z–1 для распаковки на рис. 7.1, имеет решающее значение.
Подпись создается перед сжатием по двум причинам:
- It is preferable to sign an uncompressed message so that one can store only the uncompressed message together with the signature for future verification. If one signed a compressed document, then it would be necessary either to store a compressed version of the message for later verification or to recompress the message when verification is required.
- Даже если кто-то хочет динамически генерировать повторно сжатое сообщение для проверки, алгоритм сжатия PGP представляет собой трудность. Алгоритм не является детерминированным; различные реализации алгоритма обеспечивают разные компромиссы между скоростью работы и степенью сжатия и, как следствие, создают разные сжатые формы. Однако эти разные алгоритмы сжатия совместимы, поскольку любая версия алгоритма может корректно распаковывать выходные данные любой другой версии. Применение функции hash228 и подписи после сжатия будет ограничивать все реализации PGP одной и той же версией алгоритма сжатия.
2. Шифрование сообщений применяется после сжатия для усиления криптографической защиты. Поскольку сжатое сообщение имеет меньшую избыточность, чем исходный открытый текст, криптоанализ более сложен.
Хотя эти причины объясняются для алгоритма PGP, их просто можно расширить до других подходов. Так что лучше сжать перед шифрованием.
Нет никакой разницы в обеспечении безопасности.
Да, не должно быть никакой разницы в предоставляемой безопасности.