web-dev-qa-db-ja.com

メッセージを暗号化してから圧縮するか、またはその逆の方がよいでしょうか。どちらがより多くのセキュリティを提供しますか?

追加の保護はまったくないと思います。

26
john

提供されるセキュリティに違いはありませんが、圧縮アルゴリズムの動作方法により、最初に圧縮してから暗号化すると、おそらくより良い圧縮が得られます。

圧縮アルゴリズムは、データの統計的冗長性(自然言語や多くのファイル形式で存在するものなど)を利用します。データは、暗号化するときに削除する必要があります。したがって、暗号化されたメッセージそれだけうまく圧縮できないはずです。

ウィキペディアの記事 から:

ただし、ロスレスデータ圧縮アルゴリズムは常に一部のファイルの圧縮に失敗します。実際、圧縮アルゴリズムは、識別可能なパターンを含まないデータの圧縮に必然的に失敗します。したがって、すでに圧縮されているデータを圧縮しようとすると、通常は拡張が発生し、最も簡単に暗号化されたデータを除くすべてのデータを圧縮しようとします。

24
Reese Moore

警告:攻撃者が圧縮される平文の一部を制御し、結果として得られる暗号化された暗号文のサイズを観察できる場合、暗号文の長さまで制御する部分を調整することで、残りの平文を推測できる可能性があります減少します(これは、彼らが制御する平文の部分と平文の秘密の部分の間にいくらかの繰り返しがあったことを意味します)。

たとえば、 https://en.wikipedia.org/wiki/CRIME を参照してください。

14
John Mellor

暗号化は、シンボルが均一に分散されているため、ショートメッセージでより適切に機能します。圧縮は、シンボルの不均一な分布を持つメッセージを、より均一に分布された別のより短いシンボルのシーケンスに置き換えます。

したがって、暗号化する前に圧縮する方が数学的に安全です。暗号化後の圧縮は暗号化に影響を与えません。暗号化は、平文の不均一な分布のために比較的弱いままです。

もちろん、AES256のようなものを使用していて、NSAが後を追っていない場合、これはすべて理論です。

9
MSalters

追加のセキュリティはありませんが(圧縮はセキュリティメカニズムではないため)、適切に暗号化されたメッセージは簡単に圧縮できないはずです(つまり、経験則:暗号化されたメッセージを大幅に圧縮できる場合は、何かが間違っています)。

したがって、圧縮してから暗号化します。

4
Piskvor

ここを見てください: 圧縮&&暗号化またはその逆に関するスーパーユーザースレッド

彼らはあなたの質問に対する完全で詳細な答えを持っています(ちなみに、魔女は圧縮してから暗号化します)。

3
user430051

暗号化する前に圧縮する必要があります。

暗号化は、データを高エントロピーデータに変換します。通常、ランダムストリームと区別できません。圧縮は、サイズを縮小するためにパターンに依存します。暗号化はそのようなパターンを破壊するため、暗号化されたデータに適用した場合、圧縮アルゴリズムではサイズを大幅に縮小することはできません。暗号化が適切に行われると、結果は基本的にランダムデータになります。ほとんどの圧縮スキームは、何らかの方法で除外できるデータ内のパターンを見つけることによって機能します。

暗号化前の圧縮は、攻撃者が圧縮されていない平文しか制御できない場合、差分解読法(およびその他の特定の攻撃)に対する実際の抵抗をわずかに増加させます。これは、結果の出力を推測するのが難しい場合があるためです。

0
Swatantra Kumar