web-dev-qa-db-ja.com

Zipや7-Zipなどの暗号化された圧縮コンテナは最初に圧縮または暗号化しますか?

" 圧縮してから暗号化する、またはその逆 "の議論から、次の質問について考えました。Zip7zrarなどの多くの圧縮コンテナはこれらのコンテナの暗号化をサポートしています。たとえば、 7-Zip7zファイルを作成する場合、プログラムでは暗号化パスワードを入力できます。

これらのファイルタイプの場合、前述の質問で推奨されているように、ファイルは圧縮されてから暗号化されますか、それともその逆ですか?または、これらがデータの圧縮と暗号化を同時に行うことができる方法はありますか?

暗号化された7zファイルを作成すると、暗号化されたアーカイブ内のファイル名を表示できますが、パスフレーズを入力せずにそれらのファイルのコンテンツを表示できません。これはどのように可能ですか?余談ですが、パスフレーズを使用せずにファイル名とディレクトリ構造が表示されないように、7zまたは同様のアーカイブを暗号化する方法はありますか?

推測だけでなく、明確な情報源/参照を含む回答を希望します。私たちは皆これについて推測することができますが、誰かがそれが何らかの方法で機能することを証明するドキュメントを見せてくれるなら、それは理想的です。

7
nhinkle

リンクされたブログ投稿に記載されている理由により、7-Zipおよびその他のアーカイブツールは before 暗号化を圧縮すると思います。しかし、それを確認するドキュメントを見つけることができませんでした。また、 7-Zipソースコード を見てすぐに確認することもできませんでした。

ただし、ファイル名が暗号化されない理由は説明できます。ご存知かもしれませんが、7z形式には、ファイル情報やその他のメタデータを含むヘッダーが含まれています。 7-Zipは、明示的に有効にしない限り、このヘッダーを暗号化しません。これを行うには、Windowsのアーカイブ作成画面の暗号化セグメントの下部にあるファイル名の暗号化ボックスをチェックします。下の赤。

7-Zip archive creation screen with encryption segment highlighted

Linuxおよびその他のUnixライクなオペレーティングシステム(およびおそらくWindowsのコマンドライン7-Zipツール)では、-mhe=onコマンドに7zスイッチを追加することでヘッダー暗号化を有効にできます。

10
Patches

憶測だけでなく、明確な情報源/参考文献を使った回答を希望します。

ああ、あなたはそれよりもはるかにうまくやることができます。自分で試して、論理と事実に基づいて結論を出すことができます。ここで推測する必要は本当にありません。

これらのプログラムはすべて、最初に圧縮してから暗号化します。これは、自分で簡単に確認できるという事実です。

膨大な数の.txtテキストファイル(たとえばASCIIテキストファイル))のような圧縮可能なデータを取得します。

  1. これらの.txtファイルのみを圧縮し、結果のファイルサイズを確認してください。

  2. 次に、前述のプログラムを使用して.txtファイルを圧縮および暗号化し、ファイルサイズを確認します。

  3. 次に、最初に.txtファイルを暗号化してから、暗号化されたファイルを「圧縮」してファイルサイズを確認します。

この実験は何を示しますか? 1と2は基本的に同じサイズになり、3は非圧縮データと同じサイズになります。

暗号化アルゴリズムによる保証の1つは、暗号化されたデータがランダムに見えることです(そうでない場合は、暗号化アルゴリズムが壊れています。これも事実です)。

そして、ランダム性を圧縮することはできません。

それは参考文献よりもさらに優れています。それは「試してみて、自分の目で確かめてください」です。

事実1:優れた暗号化アルゴリズムは一見ランダムなデータを生成します

事実2:ランダムデータは圧縮できません

したがって、すべてのファイルのサイズの合計よりも小さいファイルサイズを取得した場合、暗号化の前に圧縮が行われたことは明らかです。

また、圧縮可能なファイルのセットを「圧縮して暗号化」し、サイズが大きくならない場合、「圧縮して暗号化」するソフトウェアは修復不可能なほど壊れており、ゴミとして安全に廃棄できることは明らかです。無知な人々によって; )

それは事実の面白さです。事実について議論することはできませんし、事実を述べるときに間違っていることもありません。

追記:たとえば、.pngファイルのセットなど、すでに圧縮されているファイルでは機能しません

9
Weezy

これらのファイルタイプの場合、前述の質問で推奨されているように、ファイルは圧縮されてから暗号化されますか、それともその逆ですか?または、これらがデータの圧縮と暗号化を同時に行うことができる方法はありますか?

私の最初の質問は理由ですが、これは技術ドキュメント(ソースコード、特許など)にアクセスしたいものです。 Zipソフトウェアの背後にある考え方は、問題を解決し、それについて考える必要がないということです。

暗号化された7zファイルを作成すると、暗号化されたアーカイブ内のファイル名を表示できますが、パスフレーズを入力しないとそれらのファイルの内容を表示できません。これはどのように可能ですか?

ファイルの内容は暗号化されていますが、ディレクトリ(ファイル名のリスト、暗号化されたファイルデータの相対的な場所、およびファイル属性)は暗号化されていません。

余談ですが、パスフレーズを使用せずにファイル名とディレクトリ構造が表示されないように、7zまたは同様のアーカイブを暗号化する方法はありますか?

承知しました。他のファイル暗号化ソフトウェアを使用してください。 Truecrypt、OpenSSLのさまざまなツールなど。

1
Slartibartfast