7

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

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

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

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

3 ответа3

10

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

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

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

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

8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1

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

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .