Зашифрованные контейнеры сжатия, такие как ZIP и 7-Zip, сжимают или шифруют в первую очередь?

Обсуждение « сжатия, а затем шифрования или наоборот » заставило меня задуматься над следующим вопросом: многие контейнеры для сжатия, такие как ZIP , 7z и rar поддерживают шифрование этих контейнеров. Например, при создании 7z файла в 7-Zip программа позволяет ввести пароль шифрования.

Для этих типов файлов сжаты и затем зашифрованы файлы, как рекомендовано в вышеупомянутом вопросе, или наоборот? Или, есть ли способ, который они могут сжимать и шифровать данные одновременно?

Когда я создаю зашифрованный файл 7z, я могу просматривать имена файлов внутри зашифрованного архива, но я не могу просмотреть содержимое этих файлов, не вводя кодовую фразу. Как это возможно? В стороне, есть ли способ зашифровать 7z или аналогичный архив, чтобы имена файлов и структура каталогов внутри не были видны без использования кодовой фразы?

Я бы предпочел ответы с окончательными источниками / ссылками, а не только спекуляциями . Мы все можем догадываться об этом, но если кто-то может показать мне документацию, подтверждающую, что она работает так или иначе, это было бы идеально.

  • Извлеките все Zip в каталог (включая вложенные папки) с файлом .bat или командой dos
  • Что случилось с опцией .gzip в 7-zip?
  • Как создать отдельные zip-файлы для каждого выбранного файла / каталога в 7zip?
  • Извлеките определенный файл из архива с помощью 7-Zip из командной строки
  • Как сделать «Файлы для хранения без сжатия» в 7-zip?
  • 7-zip для linux
  • Команда 7zip не извлекает в указанный выходной каталог
  • 7zip: как извлечь в вывод std?
  • 3 Solutions collect form web for “Зашифрованные контейнеры сжатия, такие как ZIP и 7-Zip, сжимают или шифруют в первую очередь?”

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

    Однако я могу объяснить, почему имена файлов не шифруются. Как вам известно, формат 7z содержит заголовок с информацией о файле и другими метаданными. 7-Zip не будет шифровать этот заголовок, если вы явно не включите его. Вы можете сделать это, установив флажок « Шифровать имена файлов» в нижней части сегмента шифрования экрана создания архива в Windows, выделенного красным цветом ниже.

    Экран создания архива 7-Zip с выделенным сегментом шифрования

    В Linux и других Unix-подобных операционных системах (и, предположительно, в командной строке 7-Zip-инструмент в Windows) вы можете включить шифрование заголовка, добавив параметр -mhe=on в команду 7z .

    Я бы предпочел ответы с окончательными источниками / ссылками, а не только спекуляциями.

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

    Все эти программы сначала сжимают, а затем шифруют, и это факт, который вы можете легко проверить самостоятельно.

    Возьмите сжимаемые данные, например огромное количество текстовых файлов .txt (скажем, текстовые файлы ASCII).

    1. Сжимайте только эти .txt-файлы и смотрите на полученный размер файла.

    2. Теперь сжимайте и шифруйте файлы .txt с помощью вышеупомянутого запрограммированного и смотрите размер файла.

    3. Теперь зашифруйте сначала .txt-файлы, а затем попробуйте «сжать» зашифрованный файл и посмотреть размер файла.

    Что покажет этот эксперимент? 1 и 2 будут иметь в основном одинаковый размер, а 3 должны иметь тот же размер, что и ваши несжатые данные.

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

    И вы не можете сжимать случайность.

    Это даже лучше, чем ссылки: это «попробуйте и убедитесь сами».

    Факт 1: хорошие алгоритмы шифрования производят кажущиеся случайными данные

    Факт 2: случайные данные не могут быть сжаты

    Таким образом, очевидно, что если размер файла меньше, чем общий размер всех файлов, то сжатие произошло до шифрования.

    Кроме того, совершенно очевидно, что если вы «сжимаете и шифруете» набор сжимаемых файлов и не получаете прирост размера, тогда ваше программное обеспечение «сжимать и шифровать» прерывается без ремонта и может быть безопасно выбрано как мусор, написанный Невежественными людьми; )

    Это забавная вещь с фактами: вы не можете спорить с фактами, и вы не можете ошибаться при написании фактов.

    PS: Не пытайтесь с уже сжатыми файлами, например, набором .png-файлов, которые не будут работать

    Для этих типов файлов сжаты и затем зашифрованы файлы, как рекомендовано в вышеупомянутом вопросе, или наоборот? Или, есть ли способ, который они могут сжимать и шифровать данные одновременно?

    Мой первый вопрос – почему, но это то, что вы хотели бы поразить в технических документах (как исходный код, так и патенты и т. П.). Идея программного обеспечения для zip заключается в том, что они решают проблему, и вам не нужно об этом думать.

    Когда я создаю зашифрованный файл 7z, я могу просматривать имена файлов внутри зашифрованного архива, но не могу просматривать содержимое этих файлов, не вводя кодовую фразу. Как это возможно?

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

    В стороне, есть ли способ зашифровать 7z или аналогичный архив, чтобы имена файлов и структура каталогов внутри не были видны без использования кодовой фразы?

    Конечно. Используйте любое другое программное обеспечение для шифрования файлов. Truecrypt, различные инструменты OpenSSL и т. Д.

    Давайте будем гением компьютера.