敵対者が検証オラクルを持っている場合のMACの保護


8

メッセージ認証コード(MAC)は、効率的なアルゴリズムの三重によって定義される(定義はセクション4.3から取得され、次を満たす、カッツ・リンデル帳) :(Gen,MAC,Verif)

  • 入力上の、アルゴリズムGのE Nキー生成K Nを1nGenkn
  • 入力にによって生成されたG 、E 、N、およびいくつかのメッセージM { 0 1 } *、アルゴリズムM A Cは、タグ生成Tをt M A C km と書く。kGenm{0,1}MACttMACk(m)
  • 入力トリプルで、アルゴリズムV e r i fは単一ビットbを生成します。b V e r i f km t と書く。(k,m,t)VerifbbVerifk(m,t)

それはそれはすべてのために必要とされるによって出力GのE Nと、全てのM { 0 1 } *、我々はVのEのR I F KM M A Cの KM = 1kGenm{0,1}Verifk(m,MACk(m))=1

セキュリティ要件は、チャレンジャーと敵対者間の次の実験によって定義されます。A

  1. kGen(1n)
  2. (m,t)AMACk()(1n)
  3. してみましょうあること、すべてのクエリのセット表し、Aはその神託に尋ねたが。QA
  4. 実験の出力は、次の場合にのみ1として定義されます。
    • 、およびVerifk(m,t)=1
    • mQ

実験が1を出力する確率がで無視できる場合、MACは安全であると見なされます。n


上記の実験は、対称暗号化スキームに対する「選択された平文」実験に似ており、攻撃者は選択したメッセージに対応する暗号文を取得できます。「選択された暗号文」攻撃と呼ばれるより強力な攻撃では、攻撃者は復号化オラクルへのアクセスも許可されます。

だから、私の質問は:

MAC攻撃者が検証オラクルにもアクセスできるようにするとどうなりますか?つまり、実験の2行目が次のように置き換えられた場合はどうなるでしょうか。

(m,t)AMACk(),  Verifk(,)(1n)

新しい実験では、AM A C kオラクルから要求するクエリのみが含まれていることに注意してください。QAMACk


回答:


6

どちらかの定義に従って 安全なメッセージ認証コードがある場合
、本の定義が安全な
メッセージ認証コードとして分類され、定義が安全でないと分類されるシステムが あります。

しましょう Gen,MAC,Verif どちらかの定義に従って安全であること。 本の定義
はあなたの定義よりも弱いので、本の定義に よれば特に安全です。
効率的に計算可能で効率的に逆変換可能な
順序付けされたペアのコーディングを修正 します。たとえば、効率的に計算可能で
効率的に逆変換可能な 左のエントリの表現を右のエントリに連結します 。
ましょうMAC kの出力を空の文字列とペアにすることで機能します。 ましょう VERIFのkはMACkMACk
[[ Verif kがメッセージと タグの左のエントリを受け入れる]および[入力の右のエントリが kのプレフィックスである ]場合にのみ受け入れます 。VerifkVerifk
k Gen,MAC,Verif 明らかに効率的で、要件を満たしています。 [タグと空の文字列をペアにする]
と[出力の左側のエントリを取得する]ので、本の
セキュリティの定義を攻撃する実行可能な敵対者 Gen,MAC,Verif
の本のセキュリティの定義を破る無視できない確率を持つことはできません Gen,MAC,Verif本の
定義も分類しますGen,MAC,Verif安全なメッセージ認証コードとして。
ただし、攻撃者がkの有効なメッセージタグペアを取得するとk2(length(k)+1)
Verif k への適応クエリ kを学習するのに十分ですVerifkk、どのメッセージでも偽造が可能です。
したがって、あなたの定義は分類しますGen,MAC,Verif 安全ではない。 QED



2つの定義の強力な偽造防止バージョンは同等です。


Q
Q+

初期化 Q+ 空のセットとして、 m,tQ+
MACktm

Verifk すでに入れられたペア Q+
クエリを試行し ていて、試行したクエリの後に来なかった場合にのみ 、クエリを早期試行するように定義します。
Verifk


BMACk()(1n,q,j)A

未満を使用 jr{1,2,3,...,q2,q1,q}ほぼ均一。
すべてを「転送」AMACk() クエリ MACk()
A0r1
1Verifk試みていないそれへのクエリで。
もしAMACk(),Verifk(,)(1n)r
AMACk(),Verifk(,)(1n)出力を与え、次に同じ出力を与えます。


すべてのランダム性が修正された場合、AMACk(),Verifk(,)(1n) 正確に作る r1
BA,MACk()(1n,q,j) 強力な偽造不可バージョンの本の実験に成功。

Bϵ
q
(1qq2^j)ϵ
Bj
q
MACk
MACk そのクエリへの応答]、そしてそれ以上にささいな追加の複雑さしかありません。

Verifk






弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.