キーとランダムIVを使用してAESCBCモードを使用して暗号化されたファイルがあるとします。攻撃者は暗号化されたテキストと使用されたIVにアクセスしますが、キーにはアクセスしません。
このシナリオでは、IVがランダムであるため、脆弱性はありません。
ここで、攻撃者が使用された平文に関する情報を取得するとします。平文は、ユーザーが記入する調査フォームです。したがって、暗号化されるデータには固定形式があります。その場合、攻撃者が(質問を含む)空の調査フォームにアクセスできると仮定すると、暗号化されたデータの推定セキュリティが変更されますか?ランダムIVはもう重要ではありません。この状況は、選択された平文攻撃に適しています。ここで何かが足りませんか?
この場合、どのようにデータを保護しますか?
編集:キーはランダムに生成され、暗号化されたデータから完全に分離されたデータベースに保存されます。
対称暗号化の要点は、攻撃者が鍵を持っていない場合、データを復号化できないことです。 AESには、2全体をブルートフォースするよりも、公に知られている計算上実行可能な攻撃(大幅に)はありません。128 このシナリオに関連するキースペース)。
データが保存されている場合、選択された平文攻撃はありません。選択された平文を受け入れて暗号化するシステムはありません。選択された平文攻撃を実行できるのは、攻撃者が任意の平文を暗号化して暗号文を吐き出すシステムに送信できる場合のみです。
ここで、攻撃対象領域を攻撃対象領域に拡張して、攻撃者がプレーンテキストを不明なキーで暗号化するように要求できる場合、プレーンテキストを送信する前にIVが再利用されるか、攻撃者に知られていると、選択されたプレーンテキスト攻撃の可能性があります。
拡張された攻撃対象領域で、(1)IVが修正された場合または平文を送信する前に攻撃者に知られている場合および(2)攻撃者はシステムを説得する可能性があります(それは鍵を持っています)彼らによって提出された任意のテキストを暗号化するために、そして(3)各ブロックのメッセージスペースはかなり小さいです(数千/百万/十億の可能性を言うだけで、それははるかに小さいですフル2128 平文の16バイトブロックごとに16の任意のバイトで許可されるオプション)、そうすれば、攻撃者は、それぞれに一致するものが見つかるまで、同じ固定IVで任意の平文を効率的に送信できます(または平文を推測するときに変化するIVを考慮します)彼らが解読したい暗号文のブロック。彼らはこのブロックごとに(AESブロックは128ビット= 16バイト)、(小さなメッセージスペースの)ブルートフォースによって元の平文を順番に推測することができます。
ただし、事前に知られていないランダムな128ビットIVでは、この攻撃は機能しません。どうして? CBCモードではc[0] = E(k, p[0] XOR IV)
、c[i] = E(k, p[i] XOR c[i-1])
for i> 0であり、IVは毎回変化するため(プレーンテキストを送信すると不明になるため、IVの変化を説明できません)そして、p [0]の推測の変化)。
この場合、どのようにデータを保護しますか?
データはすでに保護されています。
データは保護されています。攻撃者は、(部分的な)平文であっても、その内容を復号化することはできません(そうでなければ、AESを壊れた暗号として話します)。
ただし、整合性も保護する必要があります。
たとえば、調査に「はい/いいえ」の質問がいくつか含まれていて、CTRモードで暗号化していたとします。イブが他の従業員からの調査への回答にアクセスできる場合、彼女は嫌いな人の回答を盲目的に変更して、見栄えを悪くすることができます(たとえば、質問が「あなたはテロリストですか?」であると想像してください)。
CBCを使用すると、次のブロックが破損するため、攻撃が難しくなりますが、破棄しません。解決策は、最後にハッシュを保存し、それが復号化されたメッセージと一致することを確認することです。