暗号化だけでなく、認証付き暗号化を使用する必要があるのはなぜですか?

ブロック暗号を使用するためのさまざまな動作モードがあり、その一部は「暗号化」とその一部は認証付き暗号化を提供します。

なぜ使用する必要があるのですか単なる暗号化モードではなく、認証付き暗号化モードですか?

この質問はそうではありません認証付き暗号化のさまざまなモードと暗号化モードについて説明することを目的としています(ただし、良い答えを選択することもできます)。その目的は、AEが「プレーン」暗号化よりも優れている理由と時期を正当化することです。

コメント

回答

プレーン暗号化と認証付き暗号化(AE)の決定的な違いAEがさらに提供するということです真正性はありませんが、プレーン暗号化は機密性のみを提供します。これら2つの概念を詳しく調べてみましょう。

次のテキストでは、 $ K $ を秘密鍵と想定しています。これは既知の情報です。許可された関係者に送信されますが、攻撃者には不明です。

目標

機密性(プライバシー)は、攻撃者が暗号文pan class = “math-container”から平文 $ P $ に関する情報を取得できないことを意味します。 > $ E_K(P)$ は、おそらく長さを除いて。言い換えると、暗号文は、 $ K $ 、たとえ平文をある程度制御できるとしても。ワンタイムパッドからエニグマまでのすべての民間伝承の暗号化方法は、(いくつかの仮定の下で)機密性を提供し、それだけを提供します。

データ信頼性(完全性)とは、 $ K $ を所有する承認された当事者(受信者)が、受信したかどうかを確認できることを意味しますvedデータ $ D $ は本物です。つまり、 $ K $ を知っている送信者によってのみ作成されています。 。データはクリアテキストまたは暗号文にすることができ、それぞれの場合に本物であるものには微妙な違いがあります。暗号文が認証されている場合、キーの所有者が暗号文を承認したことがわかりますが、必ずしも平文である必要はありません。信頼性を実現する従来の方法は、メッセージ認証コード(MAC)を使用することです。 $$ H_K(D)= T、$$ ここで、 $ T $ タグと呼ばれます。公開鍵暗号の世界では、デジタル署名でも同じ目標が達成されます。

必要なもの

ユーザーは通常、これらのプロパティのどれを探しているかを決定できます。たとえば、攻撃者がデータを変更できないことがわかっている場合は、データを認証する必要がない可能性があります。ただし、両方が必要な場合は、2つのタイプのスキームを組み合わせるための安全な方法と安全でない方法があります。たとえば、両方のスキームで同じキー $ K $ を使用する単純なアプローチは、ほとんどのインスタンス化で危険なほど安全ではありません。したがって、組み合わせたスキームをお勧めします。

認証付き暗号化

認証付き暗号化(AE)は、機密性とデータの信頼性を同時に提供します。 AEスキームは通常、機密性のみまたは信頼性のみのスキームよりも複雑です。ただし、通常は1つのキーしか必要としないため、使いやすく、ユーザーが何か間違ったことをする自由が少ないため、より堅牢です(も参照)。より詳細な回答)。

別の機能として、認証された暗号化スキームは、入力の一部を認証できますが、暗号化はできません。これは、関連データと呼ばれます。 。たとえば、インターネットパケットの内容を暗号化したいが、ヘッダーは暗号化せずに内部データにバインドしたままにする必要があります。

セキュリティ

セキュアスキームの意味はまだ指定されていません。どうやら、いくつかのセキュリティの概念があり、ユーザーは敵に期待する能力に応じてそれらの中から選択する必要があります。

最も人気のある機密性のみの操作モードセキュリティの概念は、選択平文攻撃を扱います。 $ E $ を暗号化スキームとします。攻撃者はいくつかの平文 $ P $ を知っているだけでなく、暗号化のためにそれらのいくつかを選択できると想定しています(これは非常に実用的な状況です)。したがって、敵対者が暗号化のために任意の平文を、何度も続けて選択できるようにします。安全なスキームにまだ必要なのは、それぞれの場合にランダムに見える暗号文を出力することです: $$ E_K(P_1)、E_K(P_2)、\ ldots、E_K(P_n)\ sim RandomString(| P_1 | + | P_2 | + \ cdots + | P_n |)$$

攻撃者は、の真のランダムビットジェネレータの出力から取得した暗号文のセット全体を区別できません。たとえ敵が彼の平文を繰り返しても、同じ長さ。後者の要件は、スキームが非決定論的でなければならないことを意味し、実際、これらの要件を満たす機密性のみのモードは、確率論的またはノンスベースのいずれかです。

関連する民間伝承のセキュリティ概念があることに注意してください。キー $ K $ 自体を回復する機能を備えたスキームのセキュリティ。これは、キーを他の場所で使用できる場合に関連していましたが、現在ではあまり一般的ではなく、上記のセキュリティの概念が普及しています。

認証モードのセキュリティは次のように定義されています。別の方法。 $ H_K $ を、秘密鍵 $ K $ を使用したそのようなスキームとします。攻撃者がまだ認証されていないデータ $ D $ を選択した場合、タグ $を推測するチャンスが必要です。 $$ H_K(D)= T $$ が無視できるようなT $ 。ペア $(D、T)$ を検証者に送信すると、答えは $ \ perp $ (エラー)。

機密性のみのモードでの選択暗号文攻撃については説明していません。これらは、攻撃者が復号化のために自分の暗号文を送信することもできる場合の攻撃です。この設定も実際には表示されますが(選択平文攻撃よりも頻度は低いですが)、機密性のみのスキームではそのような攻撃に抵抗できません。この種のセキュリティを確立するには、ユーザーは再び認証された暗号化に目を向ける必要があります。

認証された暗号化スキームのセキュリティは2つの部分で定義されます。まず、機密性のみのモードと同様に、攻撃者は暗号文とランダムな文字列を区別できない必要があります。次に、復号化のために送信する偽の( $ K $ で作成されていない)暗号文が何であれ、彼女は $ \ perpを取得する可能性があります。応答として$

したがって、認証された暗号化モードは、必要に応じて選択暗号文攻撃に対するセキュリティも提供します。

仕組み

CCM、GCM、OCB、EAXなどの多数の統合認証付き暗号化スキームがあります、機密性と信頼性を確立するメカニズムが緊密に結合されている場合。これらのスキームの設計は、トピックをはるかに超えています。ただし、次のように機能するEncrypt-then-MACとしてよく知られている単純な構成スキームがあります。 $ K_1、K_2 $ を秘密鍵、 $ P $ を平文、 $ E $ は暗号化モードであり、 $ H $ はMACです。次に、スキーム $$ \ Pi_ {K_1、K_2}:M \ rightarrow E_ {K_1}(M)|| H_ {K_2}(E_ {K_1}(M))$$ は、 $ E $ が安全な機密モードであり、 $ H $ は安全な認証モードです。

認証付き暗号化スキームの追加機能

機密性と信頼性の両方を提供することに加えて、認証付き暗号化スキームには多くの追加機能がある場合があります。すべてを備えたスキームはないため、最適な選択はユーザーの設定によって決まります。

  • セキュリティレベル。スキームは、機密性とデータの信頼性のみを保証します。暗号化されたデータまたは復号化要求の量にはある程度の制限があります。この制限は通常、キースペースよりもはるかに低く、AESベースのモードの場合は通常 $ 2 ^ {64} $を超えません。

  • 並列処理多くのリソースが利用可能な場合、暗号化、復号化、または検証を並行して実行することをお勧めします。連鎖を使用するモード(CBC暗号化やスポンジ構造から派生したモードなど)は、並列化が困難です。

  • オンライン暗号化。スキームがオンラインであり、データが利用可能になったときに、その長さを知らなくてもすぐに暗号化できる場合。

  • 特許の使用。最も興味深いAEスキームの1つであるOCBモードは特許を取得しており、頻度は低くなります。この特性のために使用され、分析されました。スキームに特許がないことが望ましい場合がよくあります。

  • タグの更新。 GCMのようないくつかの例外を除いて、ほとんどのスキームでは、平文のごく一部が変更された場合、ほぼ全体の暗号文を再計算する必要があります。暗号文をすばやく更新できれば、ハードドライブ暗号化など、大量の暗号化データをはるかに高速に処理できます。

  • ノンスまたはランダムの使用IV 。ノンスとランダムIVは、しばしば互換性のない別個のセキュリティモデルにつながります(スキームはノンスでは安全かもしれませんが、同じ長さのランダムIVでは安全ではないかもしれません。逆もまた同様です)。ナンスの一意性を確保するのは難しいかもしれませんが、ランダムIVには別個の乱数生成メカニズムが必要であり、暗号文の拡張につながります。

  • 可変キー、ナンス、またはタグの長さ。 3つのパラメーターはすべて、通常、AEスキームを使用するアプリケーションによって制限されます。同様に、AEスキームには独自の、場合によっては互換性のない制限があります。スキームの変動性が高いほど、適したアプリケーションも多くなります。

  • 関連データの処理。最新のスキームはすべて、暗号化されていない関連データの認証を可能にします。ただし、一部のファイルでは、プレーンテキストが終了する前にADを前処理できないため、パフォーマンスが低下する可能性があります。

追加資料

Rogawayによるテクニカルレポートは、機密性の包括的な調査です。 -モード、MAC、および一部の認証付き暗号化モードのみ。また、セキュリティの概念に関するすべての正式な詳細も含まれています。

コメント

  • 多くの実際の状況では、認証付き暗号化スキームの選択が大きく左右されることを付け加えておきます。適切な規則またはプロトコルによって。認証付き暗号化に眉をひそめることは非常に一般的ですが、実際には、MAC-then-encryptとencrypt-then-MACの両方のカスタム実装に使用よりも欠陥があることを確認しました’認証された暗号化の。これは、組み合わせを正しく実装するために細部に非常に注意を払う必要があるためです。
  • 追加のプロパティに関しては、サイドチャネル(特にタイミングサイドチャネル)の作成を回避することがセキュリティを評価する上で重要です。 AE(AD)暗号スイートの実際問題として、これは、キーや入力プレーンテキストの影響を受けない時間で実行されるように暗号を実装できることを意味します。

回答

安全でないチャネルを介して情報を送信する場合、データが安全であることを望んでいます。

では、これはどういう意味ですか?これらについて説明するために、「アリスとボブの標準的な暗号化状況を使用します。アリスは、安全でないチャネル(これが何を意味するかについて説明します)を介して何か(平文)をボブに送信したいと考えています。このチャネルはイブ(盗聴者)とマロリー(悪意を持って干渉しようとする)に耳を傾けてください。これが何を意味するのかについては、後ほど説明します。

機密性:アリスがボブにメッセージを送信するとき、通信を聞いている盗聴者イブはメッセージの内容について何も学ぶことができないように要求します。

正当化:そうでなければ、イブはアリス/ボブが共有したくないことを学ぶかもしれません

解決策:平文を(情報理論的な意味で)暗号化テキストに変換する暗号化を使用します)は、実行可能に抽出できない平文に関する情報のみを含みます。これは、( Goldwasser を言い換えると)イブは暗号文を知っていれば平文について学ぶことができますが、暗号文なしで推測することもできます。

この場合でも、注意が必要です。スキームが受動的な攻撃者(メッセージストリームをリッスンするだけの人)に耐えるからといって、能動的な攻撃者に対して強力になるわけではありません。たとえば、 CBCを検討してください。 モードが使用されます。 IND CPA ゲームでは安全です。安全だと感じるかもしれませんが、 CCA ゲームでは、攻撃者がメッセージの復号化を要求できるようにしています(暗号文の復号化ではありません)。 。暗号文$ c = {\ small IV} \ mathbin \ | c_1 \ mathbin \ | \ dots \ mathbin \ | c_n $が与えられた場合、彼ができることは、$ c “=の復号化を要求することです。 a \ mathbin \ | c $、ここで$ a $は空でないメッセージです。これは暗号文と同じではないため、ゲームで許可されており、最後の$ n $ブロックだけを取ることで、暗号文の復号化を抽出できます。

このような例は、想像するほど不自然ではありません。これは、復号化オラクルとしてモデル化したものが、攻撃者が文字列を復号化できる可能性があるが、要求できるデータが存在する可能性があるためです。復号化は特定の文字列で開始する必要がある場合があります(SQLインジェクションのアイデアと同様)。

信頼性:ボブがメッセージを受信すると、それが間違いなくアリスからのものであることがわかります。

正当化:そうでない場合、マロリーはボブにメッセージを送信して、ボブが知らないうちにアリスからのメッセージであると主張する可能性があります。 「マロリーが偽のメッセージを作成することの意味については非常に寛大です。ボブが受け入れる任意のメッセージを作成できれば(アリスがすでに送信したものとほぼ同じであっても)、彼は勝ちます。これを行うには、再生、並べ替え、ビットフリッピング攻撃など、さまざまな方法があります。

解決策:認証のみを実現するには、を使用できます。 MAC

信頼性と機密性:アリスとボブは秘密裏に通信し、各メッセージは

正当化:ストリームが機密のみである場合(つまり、暗号化であり、認証された暗号化ではない場合)、盗聴者は、これが何であるかを知らなくても、送信中のメッセージを変更できる可能性があります。たとえば、アリス&ボブが完全に安全なワンタイムパッド( OTP )秘密鍵$ k $とメッセージ$ m $を使用:

$$ A \ text {sends} c = m \ oplus k \ to B \\ \ prec M \ text {インターセプト} c \ succ \\ M \ text {送信} c “= c \ oplus h \ to B \ text {(ある値の場合} h)\\ B \ text {受信} c” \ text {Mから、しかしそれは} c \ text {から送信された} A \\ B \ text {復号化} m “= c” \ oplus k = c \ oplus h $$これは、$ B $がメッセージ$を受信したことを意味しますm “$ですが、彼はそれが$ m $だと思っています。

したがって、プロトコルが認証されておらず、マロリーがアリスがボブに送信するメッセージが「£を送信することに同意しますか? ???の一部の値については、アカウント#???? “に送信します。アカウントが正確にわからないため、自分のアカウントに支払いを送信できない場合でも、変更することができます。そのため、「アリスのアカウントではなくなりました。

解決策:認証付き暗号化!


AEの必要性を説明する優れた記事はマシューグリーンによるこのブログ投稿。操作モードのより技術的な紹介はRogawayによるこの論文です。

コメント

  • 情報理論上のセキュリティを保証する唯一の暗号化スキームはワンタイムパッドです。IND-CPA暗号化スキームは、情報が抽出されないことを保証するだけです。確率論的なポリタイムの敵による暗号テキストから。
  • ああ、それは不明確に(/間違って!)書かれていました。編集してくれてありがとう-私はそれを抽出できる情報<が含まれていません> ‘
  • 実際、多くの”機密保持のみ”モードは、実際には’アクティブな攻撃者(メッセージを変更したり、選択された平文または選択された暗号文攻撃をマウントしたりする可能性があります)によって攻撃されたときに十分な機密性を提供しません。したがって、実際には(通信チャネルの)これらのモードは、機密部分を取得する場合でも、MACと一緒に使用する必要があります。 AEモードはこれらを1つに組み合わせるだけです。
  • @PaŭloEbermann/他の人:私は’私は’ veはここに良い答えを書きました(結局のところ金曜日の夜です!)が、私はいくつかの最初の考えを書き留めたかっただけです。自由にあなた自身の答えを追加する/これを編集する/これからあなた自身を書き留めてください。私の答えが”十分に近い”であると人々が考える場合(それを読み直すと、私は’ t)次に、’編集するか、私の言葉を再利用してください。
  • AEも整合性を提供すると思います( en.wikipedia.org/wiki/Authenticated_encryption )なので、それも追加することをお勧めします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です