• 検索結果がありません。

Forward-secure タグ成りすまし不可能性

第 4 章 RFID システムの提案と安全性検証

4.6 人手による証明

4.6.3 Forward-secure タグ成りすまし不可能性

OMHSOプロコトルのForward-secureタグ成りすまし不可能性を破る攻撃者Aが存在した

ら,第4.5.1節で示した単純化 OMHSOプロコトルのタグ成りすまし不可能性を破る攻撃者

Bが存在することを示す.ここでは,Aを利用すると,Bが構成できることを示すことで,

OMHSOプロコトルの安全性証明を行う.第4.6.2節と同様に,Aは,ServerオラクルSA

高々 n回まで問い合わせを行い,Tag オラクルTA に高々n回まで問い合わせを行うとする.

さらに,ランダムオラクルOH0,A,OH1,A,OH2,Aに対して,合計qH 回の問い合わせを行うと する.そして,Aは,任意のタイミングでSAにTest()クエリを送り,X を受け取って,SA

に受理されるような(α, β)—つまり,β = H0S Ki,ID,X, αまたはβ = H0S Ki−1,ID,X, α なる(α, β).—を出力することで,タグに成りすまそうとする.

Bは,Serverオラクル SB に高々n 回まで問い合わせを行い,Tag オラクル TB に高々 n

回まで問い合わせを行うとする.さらに,ランダムオラクル OH0,B,OH1,B,OH2,B に対して,

合計qH 回の問い合わせを行うとする.そして,() をChallengeオラクルに送り,X を受け 取ったら,受理される(α, β)を出力しようとする.まず,Bの構成を示す.Bは,SA,TAOH0,A,OH1,A,OH2,AをシミュレートしてAを動作させ,Challengeオラクルからのチャレン ジにこたえようとする.Bは次のように各オラクルをシミュレートし,シミュレートが成功し たときにAが出力するX,Zを得て,Bはそれを出力する.

■初期設定 第4.6.2節と同様の手順で,シミュレートを行う.まず,Bは,ターゲットとな るRFIDのIDと,攻撃のターゲットするセッションの次のセッション鍵SK2を受け取る.B は,Aがターゲットとするセッション鍵のインデックス iR [1,n]を予測し,S Ki+1 ← SK2

と設定する.そして,ランダムにS K1 を選択して,H2,Bに対して問い合わせを行い,H2,Aに 対して

S K2 = H2,A(S K1,ID) :=H2,B(S K1,ID), ...

S Ki−1 = H2,A(S Ki−2,ID) := H2,B(S Ki−2,ID)

と設定する.また,H2,Bに問い合わせを行い,H2,Aに対して S Ki+2 = H2,A(S Ki+1,ID) := H2,B(S Ki+1,ID),

...

S Kn = H2,A(S Kn−1,ID) := H2,B(S Kn−1,ID) と設定する.

そして,Bは,IDをAに与え,Aを動作させる.

■ラ ン ダ ム オ ラ ク ル の シ ミ ュ レ ー ト 第 4.6.2 節 と 同 様 に ,特 に 断 り が な い 限 り , OH0,A,OH1,A,OH2,A へ の 問 い 合 わ せ は ,そ の ま ま OH0,B,OH1,B,OH2,B に 転 送 さ れ , OH0,B,OH1,B,OH2,Bからの出力をそのまま返す.

■SAのシミュレート

j,i,i+1の場合:

– ()を受け取ったら,Xsid

← {R 0,1}t を選択して,Xsid を出力する.

– αsid, βsidを受け取ったら,

∗ βsid = H0,A(S Kj,ID,Xsid, αsid) が成立すれば,ZsidH1,A(S Kj,ID,Xsid, αsid) を計算し,Zsidを返す.

∗ βsid = H0,A(S Kj−1,ID,Xsid, αsid)が成立すれば,ZsidH1,A(S Kj−1,ID,Xsid, αsid) を計算し,Zsidを返す.

成立しなければ,Zsid

R h1 を返す.

Testクエリ()を受け取ったら動作を停止する.

j=iの場合:

– ()を受け取ったら,()をSBに送って,Xsid を受け取り,Xsidを出力する.

– αsid, βsidを受け取ったら,

∗ βsid = H0,A(S Ki−1,ID,Xsid, αsid)が成立すれば,ZsidH1,A(S Ki−1,ID,Xsid, αsid) を計算し,Zsidを返す.

成立しなければ,αsid, βsidをSBに送って,Zsid を受け取り,Zsidを返す.

Testクエリ ()を受け取ったら()をChallengeに転送し,X を受け取り,X を返 す.そして,(α, β)を受け取り,それをChallengeに転送して動作を停止する.

j=i+1の場合:

– ()を受け取ったら,()をSBに送って,Xsid を受け取り,Xsidを出力する.

– αsid, βsidを受け取ったら,

∗ βsid = H0,A(S Ki+1,ID,Xsid, αsid)が成立すれば,ZsidH1,A(S Ki+1,ID,Xsid, αsid) を計算し,Zsidを返す.

成立しなければ,αsid, βsidをSBに送って,Zsid を受け取り,Zsidを返す.

Testクエリ()を受け取ったらi+1がRevealedならば停止する.Revealed でなけ れば,()をChallengeに転送し,Xを受け取り,Xを返す.そして,(α, β)を受 け取り,それをChallengeに転送して動作を停止する.

■TAのシミュレート

j,iの場合:

Xsid を受け取ったら,αsid

← {R 0,1}t を選択し,βsidH0,A(S Kj,ID, j,Xsid, αsid)を 計算し,(αsid, βsid)を出力する.

Zsidを受け取ったら()を出力する.

Reveal(sid)クエリ を受け取ったら,

j<iの場合,動作を停止する.

j>iの場合,S Kj を返す.

j=iの場合:

Xsidを受け取ったら,XsidをTBに送り,(αsid, βsid)を受け取り,(αsid, βsid)を返す.

Zsidを受け取ったら,Zsid をTBに送り,()を受け取り,()を返す.

Reveal(sid)クエリを受け取ったら,動作を停止する.

Aが攻撃の対象とするセッション鍵のインデックスiの推測に成功し,Aが攻撃に成功する とき,Bも攻撃に成功することを示す.G,S,F,Cは,第4.6.2節と同じイベントとする.

セッション鍵のインデックス i の推測に成功した場合,つまり G が生じたとき,B は,

sid =i||ssidまたはsid= i+1||ssidで,SAsidTestクエリを受ける.

sid=i||sidでTestクエリを受けた場合,Bは,問い合わされるTest()を,Challengeオラク ルに転送し,Xを受け取る.そして,Bは,XをAに返し,AよりTest(α, β)を受け取っ たら,Challengeオラクルに(α, β)を転送する.Aが攻撃に成功する場合,

β = H0,B(S Ki,ID,X, α)= H0,B(SK1,ID,X, α) (4.19)

β = H0,B(S Ki−1,ID,X, α) (4.20)

のいずれか満たす(α, β)を返す.ここで,Aが攻撃対象とするセッション鍵のインデックス iの推測に成功していることに注意すると,Aが出力する, β)は,式(4.19)であることが わかる.よって,Challengeオラクルは,(α, β)をacceptするため,Bは,ATestクエリ を出力することで,攻撃に成功することが示せた.

また,sid =i+1||sidでTestクエリを受けた場合,S Ki+1Revealedでなければ,Bは,問 い合わされるTest()を,Challengeオラクルに転送し,X を受け取る.そして,Bは,X を Aに返し,AよりTest(α, β)を受け取ったら,Challengeオラクルに(α, β)を転送する.A が攻撃に成功する場合,

β = H0,B(S Ki+1,ID,X, α)=H0,B(SK2,ID,X, α) (4.21) β = H0,B(S Ki,ID,X, α)= H0,B(SK1,ID,X, α) (4.22) のいずれか満たす(α, β)を返す.ここで,Aが攻撃対象とするセッション鍵のインデックス iの推測に成功していることに注意すると,Aが出力する, β)は,式(4.22)であることが わかる.よって,Challengeオラクルは,(α, β)をacceptするため,Bは,ATestクエリ を出力することで,攻撃に成功することが示せた.

上記のように,Challengeオラクルを用いると,SK1 に対応するTestクエリを構成できる ため,Aは,Testクエリに対する返り値がシミュレートされたものだと識別できない.また,

Testクエリに対する振る舞い以外は,第4.6.2節のオラクルと同様の構成であるため,Aは,

S,F,Cのいずれかが生じない限り,各オラクルがシミュレートされたものだと識別できず,式 (4.15),(4.16),(4.17),(4.18)が同様に成り立つ.以上をまとめ,第4.6.2節と同様に評価する ことで,次の式が得られる.

Pr[Bwins]≥ Pr[Awins∧G∧ ¬S∧ ¬F∧ ¬C]

= 1 n ·

(

1− qH +1

|key| )2

· (

1− 2t! 2nt(2tn)!

)

·AdvAFT I.

攻撃者Bの成功確率が無視できるとすると,攻撃者Aの成功確率も無視できることが示 せた.