Лучше ли зашифровать сообщение и затем сжать его или наоборот? Что обеспечивает большую безопасность? - PullRequest
24 голосов
/ 09 декабря 2010

У меня есть предположение, что дополнительной защиты вообще нет.

Ответы [ 8 ]

23 голосов
/ 09 декабря 2010

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

Из статьи википедии :

Однако алгоритмы сжатия данных без потерь всегда не сжимают некоторые файлы;действительно, любой алгоритм сжатия обязательно не сможет сжать любые данные, не содержащие видимых шаблонов.Поэтому попытки сжать уже сжатые данные обычно приводят к расширению, а также к сжатию всех данных, кроме самых зашифрованных.

14 голосов
/ 04 июня 2015

Предупреждение: если злоумышленник контролирует часть открытого текста, которая сжимается, и может наблюдать размер результирующего зашифрованного зашифрованного текста, он может вывести остальную часть открытого текста, настраивая часть, которой он управляет, до длиныколичество зашифрованного текста уменьшается (что подразумевает некоторое повторение между частью открытого текста, которой они управляют, и секретной частью открытого текста).

См., например, https://en.wikipedia.org/wiki/CRIME.

9 голосов
/ 09 декабря 2010

Шифрование лучше работает с короткими сообщениями, с равномерным распределением символов. Сжатие заменяет сообщение с неравномерным распределением символов другой, более короткой последовательностью символов, которые распределены более равномерно.

Следовательно, математически безопаснее сжимать перед шифрованием. Сжатие после шифрования не влияет на шифрование, которое остается относительно слабым из-за неравномерного распределения открытого текста.

Конечно, если вы используете что-то вроде AES256, а АНБ не за вами, это все теория.

4 голосов
/ 09 декабря 2010

Нет дополнительной защиты (поскольку сжатие не является механизмом защиты), но должным образом зашифрованное сообщение не должно быть легко сжимаемым (т.е. практическое правило: если вы можете значительно сжать зашифрованное сообщение, что-то не так).

Поэтому сожмите, а затем зашифруйте.

3 голосов
/ 27 января 2012

Смотрите здесь: Поток суперпользователя о сжатии && шифрование или наоборот

У них есть полный и подробный ответ на ваш вопрос (кстати, он сжимается, а затем шифруется)).

0 голосов
/ 18 октября 2015

Вы должны сжать перед шифрованием.

Шифрование превращает ваши данные в данные с высокой энтропией, обычно неотличимые от случайного потока.Сжатие опирается на шаблоны, чтобы получить любое уменьшение размера.Поскольку шифрование уничтожает такие шаблоны, алгоритм сжатия не сможет дать вам значительного (если вообще) уменьшения в размере, если вы примените его к зашифрованным данным.Если шифрование выполнено правильно, то результатом являются в основном случайные данные.Большинство схем сжатия работают путем нахождения шаблонов в ваших данных, которые могут быть каким-то образом учтены.

Сжатие перед шифрованием также немного увеличивает ваше практическое сопротивление дифференциальному криптоанализу (и некоторым другим атакам), если злоумышленник может контролировать тольконесжатый открытый текст, так как результирующий вывод может быть трудно вывести.

0 голосов
/ 09 декабря 2010

Да, в обеспечении безопасности не должно быть никакой разницы.

0 голосов
/ 09 декабря 2010

Нет никакой разницы в обеспечении безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...