暗号プロトコル安全性検証装置、方法およびプログラム
【課題】理想機能の種類や個数を限定することなく、種々の理想機能を部品として暗号化プロトコルの安全性検証を正確に行うこと。
【解決手段】暗号プロトコル安全性検証装置100において、検証対象の暗号プロトコルの部品であって汎用結合可能安全性で定義される理想機能の記述である理想機能記述データの入力を受け付ける入力受付部101と、入力された理想機能記述データに含まれる処理の記述が、処理の要求元のパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージの授受の処理を行わない局所的処理の記述を含むか否かを判断する局所判定部102と、理想機能記述データから、局所的処理の記述のみからなる攻撃者規則データ110を生成する攻撃者規則生成部103と、攻撃者規則データ110に基づいて検証対象の暗号プロトコルの安全性を検証する検証部106とを備えた。
【解決手段】暗号プロトコル安全性検証装置100において、検証対象の暗号プロトコルの部品であって汎用結合可能安全性で定義される理想機能の記述である理想機能記述データの入力を受け付ける入力受付部101と、入力された理想機能記述データに含まれる処理の記述が、処理の要求元のパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージの授受の処理を行わない局所的処理の記述を含むか否かを判断する局所判定部102と、理想機能記述データから、局所的処理の記述のみからなる攻撃者規則データ110を生成する攻撃者規則生成部103と、攻撃者規則データ110に基づいて検証対象の暗号プロトコルの安全性を検証する検証部106とを備えた。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号プロトコルに欠陥があるか否かの安全性を検証する暗号プロトコル安全性検証装置、方法およびプログラムに関する。
【背景技術】
【0002】
暗号プロトコルに欠陥があるか否かの安全性を検証する暗号プロトコル安全性検証の手法として、複雑な暗号プロトコルに対して直接に安全性証明を与えることは困難であるが、その暗号プロトコルが単純なプロトコルを部品として呼び出す場合には、その部品の安全性証明と、その部品の安全性を仮定した上での全体の安全性証明という比較的容易な二つの証明を与えることにより、全体の安全性証明を与えるモジューラアプローチという手法が提案されている。
【0003】
しかし、暗号プロトコルは、そのプロトコルを一回だけ実行する場合(スタンドアロン実行)は安全であると証明されている場合でも、そのプロトコルを複数回実行した場合や、他の暗号プロトコルと混在させて実行した場合においても安全である保証はない。これは、ある暗号プロトコル実行を破ろうとする場合、攻撃者は、その暗号プロトコルの実行だけでなく他の暗号プロトコル実行から得た情報も使用して攻撃を行うことができるためである。
【0004】
このような問題を解決するため、ユニバーサリィ・コンポーザブル安全性(UC 安全性)という暗号プロトコルの安全性の定式化の概念が提案されている(非特許文献1参照)。このUC安全性の手法では、暗号プロトコルがスタンドアロン実行でUC 安全であるならば、プロトコルを複数回実行した場合や、他の暗号プロトコルと混在させて実行した場合においてもUC 安全であることを保証しているため、安全な部品を組み合わることで複雑な暗号プロトコルを安全に構築することが可能となる。
【0005】
ここで、Canetti-Herzog は、汎用結合可能安全な、認証された公開鍵暗号の理想機能FCPKEを定義し、FCPKE−ハイブリッドモデルでの相互認証と鍵交換のプロトコルがUC安全であるための記号的安全性基準を与えて、Blanchetが定義したstrong secrecyの概念(非特許文献2参照)を流用して鍵交換の記号的安全性基準を記述し、Blanchet が開発した定理証明ツールProVerif を用いて安全性証明を行っている(非特許文献3参照)。この手法の特徴は、もとの計算量的な安全性を持つ暗号プロトコルの安全性を証明するために、暗号プロトコルを記号的なプロトコルに変換し、その変換されたプロトコルが記号的な安全性基準を満たすことを確認すれば、その暗号プロトコルの安全性は証明される点にある。
【0006】
このCanetti-Herzog による理想機能を用いた暗号プロトコルの安全性検証の手法は、1種類の理想機能FCPKEのハイブリッドモデルが対象であって、2種類以上の理想機能を対象とはしていない。このため、複数の異なる理想機能F1,・ ・ ・ ,Fnを用いる(F1,・ ・ ・ ,Fn)−ハイブリッドモデル(以下、「マルチハイブリッドモデル」といい、マルチハイブリッドモデルで構成された暗号プロトコルを「マルチハイブリッド暗号プロトコル」という。)で記述されている暗号プロトコルに対して記号的安全性記述を与えることができない。
【0007】
Canetti-Herzogは、FCPKE−ハイブリッドモデルにおける2−パーティ相互認証と2−パーティ鍵交換のUC安全性のために必要十分である記号的安全性基準を与えているが、FCPKE-ハイブリッドモデル以外のハイブリッドモデルについては類似の定式化は行っていない。
【0008】
一方、Patil は, 公開鍵暗号理想機能FCPKEだけでなく, 署名理想機能FSIGも用いるマルチハイブリッドモデルへの拡張の手法を提案している(非特許文献4参照)。この手法では、Canetti-Herzog の手法を署名理想機能と公開鍵暗号理想機能のハイブリッドモデルへ拡張するものである。しかしながら、この手法は、署名の理想機能が公開鍵暗号の理想機能と近似する構造を有しているため実現可能となっているが、これら以外の理想機能を用いた暗号プロトコルの安全性検証について適用することはできない。
【0009】
このように、複数の理想機能を用いた暗号プロトコルの安全性検証の実現が望まれている。
【0010】
【非特許文献1】R. Canetti. Universally Composable Security: A New Paradigm for Cryptographic Protocols. In FOCS’01, pp.136-145. IEEE, 2001. Full version: http://eprint.iacr.org/2000/067.
【非特許文献2】B. Blanchet. Automatic Proof of Strong Secrecy for Security Protocols. In S&P’04, pp. 86-102. IEEE, 2004.
【非特許文献3】R. Canetti and J. Herzog. Universally Composable Symbolic Analysis of Cryptographic Protocols. Cryptology ePrint Archive Report 2004/334 http://eprint.iacr.org, 2004.
【非特許文献4】A. Patil. On symbolic analysis of cryptographic protocols. Mater’s thesis, 2005
【発明の開示】
【発明が解決しようとする課題】
【0011】
ここで、公開鍵暗号理想機能が提供するインタフェースは、暗号化の要求命令(Encrypt,SID,m)と復号化の要求命令(Decrypt,SID,c)のフェーズにおいて、その要求命令を行ったパーティにそれぞれ暗号文cと平文mが返送され、当該パーティ以外のパーティとのメッセージ授受はない。このような、要求元のパーティ以外のパーティとメッセージの授受がないインタフェースを局所的なインタフェースという。署名理想機能は、公開鍵暗号理想機能と同様、局所的なインタフェースのみを有している。Canetti−Herzogの手法やPatilによる拡張は,理想機能が局所的インタフェースのみを持つことに依存している。
【0012】
しかしながら、零知識証明の理想機能は、あるパーティが理想機能に証明を要求すると、理想機能は、要求元のパーティ以外の別のパーティにメッセージを送信するようになっている。このような要求元のパーティ以外のパーティとメッセージの授受を行うインタフェースを非局所的なインタフェースと呼ぶことにする。
【0013】
攻撃者は、局所的インタフェースを利用して自分の知りうる情報を増やすことができるのに対して、非局所的インタフェースを利用しても、そのようなことはできない。
【0014】
このため、非局所的インタフェースを含む理想機能を部品として暗号化プロトコルの安全性検証をUC安全性に基づいて行う場合には、Canetti-Herzogの手法やPatilの拡張を用いても,正確な安全性検証を行うことができないという問題がある。
【0015】
一方、局所的インタフェースのみを有する理想機能は、公開鍵暗号理想機能と署名理想機能等に限られており、種々の理想機能を部品として暗号化プロトコルの正確な安全性検証を行うことはできないという問題がある。
【0016】
本発明は、上記に鑑みてなされたものであって、暗号プロトコルの部品としての理想機能の種類や個数を限定することなく、種々の理想機能を部品として暗号化プロトコルの安全性検証を正確に行うことができる暗号プロトコル安全性検証装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0017】
上述した課題を解決し、目的を達成するために、本発明にかかる暗号プロトコル安全性検証装置は、検証対象の暗号プロトコルの部品であって汎用結合可能安全性で定義される理想機能の記述である理想機能記述データの入力を受け付ける入力受付手段と、入力された前記理想機能記述データに含まれる処理の記述が、処理の要求元のパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージの授受の処理を行わない局所的処理の記述を含むか否かを判断する局所判定手段と、前記理想機能記述データから、前記局所的処理の記述のみからなる攻撃者規則データを生成する攻撃者規則生成手段と、前記攻撃者規則データに基づいて前記検証対象の暗号プロトコルの安全性を検証する検証手段と、を備えたことを特徴とする。
【0018】
また、本発明は、上記暗号プロトコル安全性検証装置で実行される暗号プロトコル安全性検証方法およびプログラムである。
【発明の効果】
【0019】
本発明によれば、暗号プロトコルの部品としての理想機能の種類や個数を限定することなく、種々の理想機能を部品として暗号化プロトコルの安全性検証を正確に行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【0020】
以下に添付図面を参照して、この発明にかかる暗号プロトコル安全性検証装置、方法およびプログラムの最良な実施の形態を詳細に説明する。
【0021】
(実施の形態1)
図1は、実施の形態1にかかる暗号プロトコル安全性検証装置の機能的構成を示すブロック図である。本実施の形態にかかる暗号プロトコル安全性検証装置100は、図1に示すように、入力受付部101と、局所判定部102と、攻撃者規則生成部103と、プロトコル変換部104と、導出部105と、検証部106とを主に備えている。
【0022】
入力受付部101は、検証対象の暗号プロトコルのプロトコル記述データと、検証対象の暗号プロトコルの部品として使用される理想機能F1〜FNの記述である理想機能F1記述データ〜理想機能FN記述データの入力を受け付ける処理部である。
【0023】
理想機能とは、検証対象の暗号プロトコルの部品として使用され、汎用結合可能安全性で定義されるもので、理想機能におけるUC安全性が証明された場合には、検証対象の暗号プロトコルの安全性が証明される。理想機能F記述データは、この理想機能における処理を記述したデータである。
【0024】
図2は、理想機能F記述データのデータ構造図である。図2に示すように、理想機能F記述データは、複数のインタフェース記述から構成され、各インタフェース記述は、一または複数のコンストラクタ/デストラクタによる処理記述から構成される。
【0025】
インタフェース記述は、例えば、暗号化の処理記述や復号化の処理記述が該当する。各インタフェース記述は、処理の関数であるコンストラクタやデストラクタによる処理記述から構成される。
【0026】
図3は、理想機能F記述データの具体例を示す説明図である。図3の理想機能F記述データは、公開鍵暗号の理想機能FCPKEの理想機能記述データの例を示している。図3に示すように、301が初期化処理記述である。
【0027】
また、公開鍵暗号理想機能が提供するインタフェースは暗号化の要求(Encrypt,SID,m)と復号化の要求(Decrypt,SID,c)であり、初期化処理のインタフェース記述301、「Encryption」のインタフェース記述302と、「Decryption」のインタフェース記述303とから構成される。図3の各インタフェース記述において、例えば、暗号化を行う関数EK(r)がコンストラクタ、復号化を行う関数D(c)がデストラクタである。
【0028】
局所判定部102は、入力された理想機能F1記述データ〜理想機能FN記述データの局所性判定処理を行う処理部である。すなわち、局所判定部102は、入力された理想機能F1記述データ〜理想機能FN記述データのインタフェース記述のコンストラクタとデストラクタによる処理記述を解析して、各インタフェース記述が、局所的インタフェースであるか非局所的インタフェースであるかを判断し、インタフェース記述に局所的処理であるか否かを示す付加情報を付加する処理を行う。
【0029】
ここで、局所的インタフェースとは、要求元のパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージの授受の処理を行わない記述である。図4は、公開鍵暗号理想機能における局所的インタフェースを説明するための模式図である。
【0030】
図4に示すように、公開鍵暗号理想機能が提供するインタフェースは暗号化の要求(Encrypt,SID,m)と復号化の要求(Decrypt,SID,c)であり、ぞれぞれ各命令を発したパーティに暗号文cと平文mが返され、それ以外のパーティとのメッセージ授受はない。従って、公開鍵暗号理想機能は、局所的インタフェースのみを有していることがわかる。この他、署名理想機能も局所的インタフェースのみを有している。
【0031】
これに対し、非局所的インタフェースとは、要求元のパーティ以外のパーティまたは攻撃者以外のパーティとのメッセージの授受の処理を行う記述である。図5は、零知識証明理想機能における非局所的インタフェースを説明するための模式図である。
【0032】
零知識証明理想機能では、図5に示すように、あるパーティPPIDが理想機能FCPKEに証明を要求すると、理想機能FCPKEは、要求元のパーティPPID以外の他のパーティPPIDッセージを伝達している。従って、零知識証明理想機能は、非局所的インタフェースを有していることがわかる。
【0033】
本実施の形態にかかる暗号プロトコル安全性検証装置100では、局所判定部102によって、入力された理想機能F記述データを解析して、理想機能F記述データを各インタフェース記述に分割し、分割されたインタフェース記述に記述されているコンストラクタ/デストラクタによる処理記述からインタフェース記述が局所的か非局所的かを判断する。
【0034】
具体的には、コンストラクタ/デストラクタによる処理記述において、理想機能と他のパーティとの間のメッセージ授受を解析し、そのインタフェースを呼び出した要求元のパーティとメッセージ授受の相手先のパーティと一致するか否かを調べることによって局所的インタフェースか非局所的インタフェースかを判断する。
【0035】
そして、理想機能が、そのインタフェースを呼び出したパーティでも攻撃者でもないパーティとの間でメッセージを授受しており場合には、そのインタフェース記述は非局所的であると判断する。
【0036】
例えば、図3に示す公開鍵暗号の理想機能FCPKEの理想機能記述データの場合には、初期化処理のインタフェース記述301、Encryptionのインタフェース記述302、Decryptionのインタフェース記述に分割する。そして、各インタフェース記述のインタフェースを解析すると、Encryptionのインタフェース記述302の2.(a)において、平文mを攻撃者に渡しており、暗号化要求の要求元のパーティPと攻撃者以外のパーティに対するメッセージの授受はない。このため、局所判定部102は、Encryptionのインタフェース記述302は局所的インタフェースであると判断する。
【0037】
また、Decryptionのインタフェース記述303では、1.において対(m,c)を暗号化要求の要求元のパーティPに返し、他のパーティとのメッセージ授受の記述は存在しない。このため、局所判定部102は、Decryptionのインタフェース記述303は、局所インタフェースであると判断する。
【0038】
そして、局所判定部102は、Encryptionのインタフェース記述302およびDecryptionのインタフェース記述303に局所的インタフェースを示す付加情報を付与する。
【0039】
図6は、付加情報が付与された理想機能記述データのデータ構造図である。図6に示し召すように、各インタフェース記述に対して付加情報が付加されている。
【0040】
ここで、付加情報は、局所的インタフェースであるか非局所的インタフェースであるかを示す情報であればよく例えば、数値や文字などで局所的インタフェースであるか非局所的インタフェースであるかを識別するように構成すればよい。
【0041】
攻撃者規則生成部103は、理想機能F1記述データ〜理想機能FN記述データに付加された付加情報を参照して、理想機能F1記述データ〜理想機能FN記述データから局所的インタフェースの処理の記述のみを抽出して(あるいは非局所的インタフェースの処理の記述を削除して)、攻撃者規則データ110を生成し、ハードディスクドライブ装置(HDD)やメモリ等の記憶媒体である記憶部に保存する処理部である。
【0042】
図7は、攻撃者規則データの一例を示す説明図である。攻撃者規則データには、(Rf)、(Rg)、(Rt)におけるコンストラクタやデストラクタとして、非局所的インタフェースと判定されたインタフェース記述のコンストラクタ、デストラクタを含めないで生成される。
【0043】
これは以下の理由による。すなわち、攻撃者が非局所的なインタフェースを利用しようとすると、第3者とのメッセージの授受により、コンストラクタおよびデストラクタを適用した結果が第3者に渡ってしまい、攻撃者の手に入らないからである。これに対して、局所的インタフェースの場合は、コンストラクタおよびデストラクタを適用した結果が、第3者に渡らずに、そのまま攻撃者に返されるので攻撃者規則に加えるのが妥当であるからである。また、インタフェース記述が複数のコンストラクタおよびデストラクタの組み合わせの場合には、個々のコンストラクタおよびデストラクタではなく、これらの組み合せをひとまとめにした処理を攻撃者が利用できるようにするためである。
【0044】
プロトコル変換部104は、入力受付部101によって入力された検証対象の暗号プロトコル記述データをプロトコル規則111に変換して、HDDやメモリ等の記憶媒体である記憶部に保存する処理部である。図8は、プロトコル規則の一例を示す説明図である。
【0045】
導出部105は、記憶部に保存されているプロトコル規則データ111と攻撃者規則データ110とを読み出して、両データを合併した規則データ113を生成し、HDDやメモリ等の記憶媒体である記憶部に規則集合として保存し、この規則データ113から安全性検証のための判断情報を導出する処理部である。
【0046】
導出部105によって合併されたプロトコルP0に対する規則データ113の規則集合RP0は、(1)式で示される。
【0047】
【数1】
【0048】
ここで、(RP0)・ρは、(2)式で示される。また、σ0は、プロセスP0のすべての自由変数をSecrの相異なる元へ写像する代入とする。
【0049】
また、導出部105は、具体的には、この規則データ113の規則集合RP0の中から判断情報として「bad」を導出する。導出部105は、規則集合RP0の中から判断情報として「bad」を導出するため、B.Blanchet and A.Podelski. Verification of Cryptographic Protocols: Tagging Enforces Termination. In FoDDaCS'03, Vol.2620 of LNCS, pp.136-152. Springer-Verlag, 2003に記載された手法を拡張した自由選択による導出に基づく解決アルゴリズムを用いている。
【0050】
解決アルゴリズムでは、2つの節R=H→CとR’=F∧H’→Aから、(3)式によってRoFR’=σH∧σH’→σC’を導出する。
【0051】
【数2】
【0052】
(3)式において、CとFは単一化可能で、σは最汎単一化である。複数の項に対して、その単一化が存在する場合に、それらの項を単一化可能という。単一化とは、複数の項に対して、変数に適当な項を代入することで、それらを同一の項にすることをいう。また、最汎単一化とは、複数の項の単一化の中で、最も一般的なものをいう。
【0053】
導出部105では、規則集合を構成するプロトコル規則データ111と攻撃者規則データ110の各集合を二つの節(項)として、(3)式により、σC’としての「bad」を導出している。
【0054】
ここで、導出は、(4)式に定義される選択関数selとして誘導される。 かかる導出は、sel(R)=0かつF∈sel(R’)の場合にのみ実行される。
【0055】
【数3】
【0056】
検証部106は、解決部105によって導出した判断情報「bad」から検証対象の暗号プロトコルの安全性を検証する処理部である。具体的には、検証部106は、導出部105によって規則データ113の規則集合から「bad」が導出された場合には、暗号プロトコルの安全性が証明されたと判断し、導出部105によって規則データ113の規則集合から「bad」が導出されなかった場合には、暗号プロトコルの安全性が証明されなかったと判断する。
【0057】
次に、以上のように構成された実施の形態1にかかる暗号プロトコル安全性検証装置100による暗号プロトコルの安全性検証処理について説明する。図9は、暗号プロトコルの安全性検証処理の手順を示すフローチャートである。
【0058】
まず、入力受付部101によって、プロトコル記述データの入力を受付け(ステップS11)、入力されたプロトコル記述データをプロトコル規則に変換してプロトコル規則データ111を記憶部にプロトコル規則集合として保存する(ステップS12)。
【0059】
かかる処理と並行して、入力受付部101によって、理想機能F記述データの入力を受付け(ステップS13)、局所判定部102によって、入力した理想機能F記述データを解析して局所性判定処理を行う(ステップS14)。
【0060】
ここで、局所性判定処理について詳述する。図10は、実施の形態1の局所性判定処理の手順を示すフローチャートである。
【0061】
局所判定部102は、入力された理想機能F記述データを解析して、理想機能F記述データを各インタフェース記述に分割する(ステップS21)。そして、分割されたインタフェース記述の中のコンストラクタ/デストラクタによる処理記述の解析を行う(ステップS22)。
【0062】
そして、インタフェース記述の中のコンストラクタ/デストラクタによる処理記述のすべてにおいて、そのインタフェースを呼び出したパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージ授受の処理記述があるかどうか調べる(ステップS23)。そして、呼び出したパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージ授受の処理記述がない場合には(ステップS23:No)、そのインタフェース記述は局所的インタフェースであると判定し(ステップS24)、局所的の付加情報をインタフェース記述に付加する(ステップS25)。
【0063】
一方、ステップS23において、インタフェース記述の中のコンストラクタ/デストラクタによる処理記述のいずれかにおいて、呼び出したパーティ以外のパーティまたは攻撃者以外のパーティとのメッセージ授受の処理記述がある場合には(ステップS23:Yes)、そのインタフェース記述は、非局所的インタフェースであると判定し(ステップS26)、非局所的の付加情報をインタフェース記述に付加する(ステップS27)。
【0064】
そして、ステップS22からS27までの処理を、全てのインタフェース記述に対して繰り返し行う(ステップS28)。
【0065】
図9に戻り、以上のように理想機能記述データの局所性判定処理が終了したら、攻撃者規則生成部103によって、付加情報が付加された理想機能記述データから局所的インタフェースのインタフェース記述のみを抽出した攻撃者規則データ110を生成して記憶部に保存する(ステップS15)。
【0066】
そして、導出部105によって、記憶部に保存されているプロトコル規則データ111と攻撃者規則データ110とを合併して規則データ113の規則集合を生成し(ステップS16)、この規則集合から判断情報「bad」を導出する判断情報の導出処理を行う(ステップS17)。
【0067】
次に、検証部106によって、検証処理を行う(ステップS18)。すなわち、規則集合から判断情報「bad」を導出できた場合には、検証部106は、プロトコル記述データの暗号プロトコルは安全性が証明されたと判断し、規則集合から判断情報「bad」を導出できなかった場合には、プロトコル記述データの暗号プロトコルは安全性が証明されなかったと判断する。そして、最後に、検証部106は、この検証結果を表示装置や印刷装置などに出力する(ステップS19)。
【0068】
このように実施の形態1にかかる暗号プロトコル安全性検証装置100では、理想機能記述データのインタフェース記述が局所的インタフェースか非局所的インタフェースかを判定し、局所的インタフェースのみからなる攻撃者規則データを生成して、暗号プロトコルの安全性検証を行っているので、理想機能が局所的インタフェースを含むか否かという種別や、理想機能の個数に限定されることなく、種々の理想機能を部品として暗号化プロトコルの安全性検証を正確に行うことができる。
【0069】
(実施の形態2)
実施の形態1にかかる暗号プロトコル安全性検証装置100は、入力した理想機能記述データの中のメッセージ授受の処理記述を解析して局所インタフェースであるか否かを判定していたが、この実施の形態2にかかる暗号プロトコル安全性検証装置100は、予め局所インタフェースか否かの付加情報が含まれた理想理想機能記述データを入力して局所インタフェースがあるか否かを判定している。
【0070】
実施の形態2にかかる暗号プロトコル安全性検証装置100の機能的構成は実施の形態1と同様である。本実施の形態では、局所判定部102が、予め局所インタフェースか否かの付加情報が含まれた理想機能記述データの付加情報からインタフェース記述が局所インタフェースであるか否かを判定しており、理想機能記述データに付加情報を付加する処理は行わない。
【0071】
実施の形態2にかかる暗号プロトコル安全性検証装置100に入力される理想機能記述データのデータ構造は、図6で示したデータ構造と同様のものである。
【0072】
次に、以上のように構成された実施の形態2にかかる暗号プロトコル安全性検証装置100による暗号プロトコルの安全性検証処理について説明する。本実施の形態の暗号プロトコルの安全性検証の全体処理については実施の形態1の図9の処理手順と同様に行われる。実施の形態2では、ステップS14における局所判定部102による局所性判定処理が実施の形態1と異なっている。
【0073】
図11は、実施の形態2の局所性判定処理の手順を示すフローチャートである。まず、局所判定部102は、入力された理想機能F記述データを解析して、理想機能F記述データを各インタフェース記述に分割する(ステップS31)。そして、分割されたインタフェース記述に付加されている付加情報を抽出する(ステップS32)。
【0074】
次に、抽出した付加情報が局所的を示すか否かを調べる(ステップS33)。そして、付加情報が局所的を示す場合には(ステップS33:Yes)、当該インタフェース記述は局所インタフェースであると判定する(ステップS34)。
【0075】
一方、ステップS33において、付加情報が局所的を示さない場合、すなわち非局所的である旨を示す場合には(ステップS33:No)、、当該インタフェース記述は非局所インタフェースであると判定する(ステップS35)。
【0076】
そして、ステップS32からS35までの処理を、全てのインタフェース記述に対して繰り返し行う(ステップS36)。
【0077】
このようにして理想機能記述データの局所性判定が終了したら、実施の形態1と同様に、攻撃者規則情報の生成から暗号プロトコルの安全性の検証までの処理が行われる。
【0078】
図12は、実施の形態1および2の暗号プロトコル安全性検証装置100のハードウェア構成を示すブロック図である。実施の形態1および2の暗号プロトコル安全性検証装置100は、CPU51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置と、HDD、CDドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置、通信インタフェース57とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0079】
実施の形態1および2にかかる暗号プロトコル安全性検証装置100で実行される暗号プロトコル安全性検証プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0080】
また、実施の形態1および2にかかる暗号プロトコル安全性検証装置100で実行される暗号プロトコル安全性検証プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、実施の形態1および2にかかる暗号プロトコル安全性検証装置100で実行される暗号プロトコル安全性検証プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【0081】
また、実施の形態1および2にかかる暗号プロトコル安全性検証装置100で実行される暗号プロトコル安全性検証プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0082】
実施の形態1および2にかかる暗号プロトコル安全性検証装置100で実行される暗号プロトコル安全性検証プログラムは、上述した各部(入力受付部101、局所判定部102、攻撃者規則生成部103、プロトコル変換部104、導出部105、検証部106)を含むモジュール構成となっており、実際のハードウェアとしてはCPU51(プロセッサ)が上記記憶媒体から暗号プロトコル安全性検証プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、入力受付部101、局所判定部102、攻撃者規則生成部103、プロトコル変換部104、導出部105、検証部106が主記憶装置上に生成されるようになっている。
【0083】
このように実施の形態2にかかる暗号プロトコル安全性検証装置100では、理想機能記述データのインタフェース記述が局所的インタフェースか非局所的インタフェースかを判定し、局所的インタフェースのみからなる攻撃者規則データを生成して、暗号プロトコルの安全性検証を行っているので、理想機能が局所的インタフェースを含むか否かという種別や、理想機能の個数に限定されることなく、種々の理想機能を部品として暗号化プロトコルの安全性検証を正確に行うことができる。
【0084】
また、実施の形態2にかかる暗号プロトコル安全性検証装置100では、予め局所インタフェースか否かの付加情報が含まれた理想機能記述データの付加情報からインタフェース記述が局所インタフェースであるか否かを判定しているので、局所性の判定処理を正確かつ迅速に行うことが可能となる。
【0085】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。
【図面の簡単な説明】
【0086】
【図1】実施の形態1にかかる暗号プロトコル安全性検証装置の機能的構成を示すブロック図である。
【図2】理想機能記述データのデータ構造図である。
【図3】理想機能F記述データの具体例を示す説明図である。
【図4】公開鍵暗号理想機能における局所的インタフェースを説明するための模式図である。
【図5】零知識証明理想機能における非局所的インタフェースを説明するための模式図である。
【図6】付加情報が付与された理想機能記述データのデータ構造図である。
【図7】攻撃者規則データの一例を示す説明図である。
【図8】プロトコル規則の一例を示す説明図である。
【図9】暗号プロトコルの安全性検証処理の手順を示すフローチャートである。
【図10】実施の形態1の局所性判定処理の手順を示すフローチャートである。
【図11】実施の形態2の局所性判定処理の手順を示すフローチャートである。
【図12】実施の形態1および2の暗号プロトコル安全性検証装置100のハードウェア構成を示すブロック図である。
【符号の説明】
【0087】
101 入力受付部
102 局所判定部
103 攻撃者規則生成部
104 プロトコル変換部
105 導出部
106 検証部
110 攻撃者規則データ
111 プロトコル規則データ
113 規則データ
301〜302 インタフェース記述
【技術分野】
【0001】
本発明は、暗号プロトコルに欠陥があるか否かの安全性を検証する暗号プロトコル安全性検証装置、方法およびプログラムに関する。
【背景技術】
【0002】
暗号プロトコルに欠陥があるか否かの安全性を検証する暗号プロトコル安全性検証の手法として、複雑な暗号プロトコルに対して直接に安全性証明を与えることは困難であるが、その暗号プロトコルが単純なプロトコルを部品として呼び出す場合には、その部品の安全性証明と、その部品の安全性を仮定した上での全体の安全性証明という比較的容易な二つの証明を与えることにより、全体の安全性証明を与えるモジューラアプローチという手法が提案されている。
【0003】
しかし、暗号プロトコルは、そのプロトコルを一回だけ実行する場合(スタンドアロン実行)は安全であると証明されている場合でも、そのプロトコルを複数回実行した場合や、他の暗号プロトコルと混在させて実行した場合においても安全である保証はない。これは、ある暗号プロトコル実行を破ろうとする場合、攻撃者は、その暗号プロトコルの実行だけでなく他の暗号プロトコル実行から得た情報も使用して攻撃を行うことができるためである。
【0004】
このような問題を解決するため、ユニバーサリィ・コンポーザブル安全性(UC 安全性)という暗号プロトコルの安全性の定式化の概念が提案されている(非特許文献1参照)。このUC安全性の手法では、暗号プロトコルがスタンドアロン実行でUC 安全であるならば、プロトコルを複数回実行した場合や、他の暗号プロトコルと混在させて実行した場合においてもUC 安全であることを保証しているため、安全な部品を組み合わることで複雑な暗号プロトコルを安全に構築することが可能となる。
【0005】
ここで、Canetti-Herzog は、汎用結合可能安全な、認証された公開鍵暗号の理想機能FCPKEを定義し、FCPKE−ハイブリッドモデルでの相互認証と鍵交換のプロトコルがUC安全であるための記号的安全性基準を与えて、Blanchetが定義したstrong secrecyの概念(非特許文献2参照)を流用して鍵交換の記号的安全性基準を記述し、Blanchet が開発した定理証明ツールProVerif を用いて安全性証明を行っている(非特許文献3参照)。この手法の特徴は、もとの計算量的な安全性を持つ暗号プロトコルの安全性を証明するために、暗号プロトコルを記号的なプロトコルに変換し、その変換されたプロトコルが記号的な安全性基準を満たすことを確認すれば、その暗号プロトコルの安全性は証明される点にある。
【0006】
このCanetti-Herzog による理想機能を用いた暗号プロトコルの安全性検証の手法は、1種類の理想機能FCPKEのハイブリッドモデルが対象であって、2種類以上の理想機能を対象とはしていない。このため、複数の異なる理想機能F1,・ ・ ・ ,Fnを用いる(F1,・ ・ ・ ,Fn)−ハイブリッドモデル(以下、「マルチハイブリッドモデル」といい、マルチハイブリッドモデルで構成された暗号プロトコルを「マルチハイブリッド暗号プロトコル」という。)で記述されている暗号プロトコルに対して記号的安全性記述を与えることができない。
【0007】
Canetti-Herzogは、FCPKE−ハイブリッドモデルにおける2−パーティ相互認証と2−パーティ鍵交換のUC安全性のために必要十分である記号的安全性基準を与えているが、FCPKE-ハイブリッドモデル以外のハイブリッドモデルについては類似の定式化は行っていない。
【0008】
一方、Patil は, 公開鍵暗号理想機能FCPKEだけでなく, 署名理想機能FSIGも用いるマルチハイブリッドモデルへの拡張の手法を提案している(非特許文献4参照)。この手法では、Canetti-Herzog の手法を署名理想機能と公開鍵暗号理想機能のハイブリッドモデルへ拡張するものである。しかしながら、この手法は、署名の理想機能が公開鍵暗号の理想機能と近似する構造を有しているため実現可能となっているが、これら以外の理想機能を用いた暗号プロトコルの安全性検証について適用することはできない。
【0009】
このように、複数の理想機能を用いた暗号プロトコルの安全性検証の実現が望まれている。
【0010】
【非特許文献1】R. Canetti. Universally Composable Security: A New Paradigm for Cryptographic Protocols. In FOCS’01, pp.136-145. IEEE, 2001. Full version: http://eprint.iacr.org/2000/067.
【非特許文献2】B. Blanchet. Automatic Proof of Strong Secrecy for Security Protocols. In S&P’04, pp. 86-102. IEEE, 2004.
【非特許文献3】R. Canetti and J. Herzog. Universally Composable Symbolic Analysis of Cryptographic Protocols. Cryptology ePrint Archive Report 2004/334 http://eprint.iacr.org, 2004.
【非特許文献4】A. Patil. On symbolic analysis of cryptographic protocols. Mater’s thesis, 2005
【発明の開示】
【発明が解決しようとする課題】
【0011】
ここで、公開鍵暗号理想機能が提供するインタフェースは、暗号化の要求命令(Encrypt,SID,m)と復号化の要求命令(Decrypt,SID,c)のフェーズにおいて、その要求命令を行ったパーティにそれぞれ暗号文cと平文mが返送され、当該パーティ以外のパーティとのメッセージ授受はない。このような、要求元のパーティ以外のパーティとメッセージの授受がないインタフェースを局所的なインタフェースという。署名理想機能は、公開鍵暗号理想機能と同様、局所的なインタフェースのみを有している。Canetti−Herzogの手法やPatilによる拡張は,理想機能が局所的インタフェースのみを持つことに依存している。
【0012】
しかしながら、零知識証明の理想機能は、あるパーティが理想機能に証明を要求すると、理想機能は、要求元のパーティ以外の別のパーティにメッセージを送信するようになっている。このような要求元のパーティ以外のパーティとメッセージの授受を行うインタフェースを非局所的なインタフェースと呼ぶことにする。
【0013】
攻撃者は、局所的インタフェースを利用して自分の知りうる情報を増やすことができるのに対して、非局所的インタフェースを利用しても、そのようなことはできない。
【0014】
このため、非局所的インタフェースを含む理想機能を部品として暗号化プロトコルの安全性検証をUC安全性に基づいて行う場合には、Canetti-Herzogの手法やPatilの拡張を用いても,正確な安全性検証を行うことができないという問題がある。
【0015】
一方、局所的インタフェースのみを有する理想機能は、公開鍵暗号理想機能と署名理想機能等に限られており、種々の理想機能を部品として暗号化プロトコルの正確な安全性検証を行うことはできないという問題がある。
【0016】
本発明は、上記に鑑みてなされたものであって、暗号プロトコルの部品としての理想機能の種類や個数を限定することなく、種々の理想機能を部品として暗号化プロトコルの安全性検証を正確に行うことができる暗号プロトコル安全性検証装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0017】
上述した課題を解決し、目的を達成するために、本発明にかかる暗号プロトコル安全性検証装置は、検証対象の暗号プロトコルの部品であって汎用結合可能安全性で定義される理想機能の記述である理想機能記述データの入力を受け付ける入力受付手段と、入力された前記理想機能記述データに含まれる処理の記述が、処理の要求元のパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージの授受の処理を行わない局所的処理の記述を含むか否かを判断する局所判定手段と、前記理想機能記述データから、前記局所的処理の記述のみからなる攻撃者規則データを生成する攻撃者規則生成手段と、前記攻撃者規則データに基づいて前記検証対象の暗号プロトコルの安全性を検証する検証手段と、を備えたことを特徴とする。
【0018】
また、本発明は、上記暗号プロトコル安全性検証装置で実行される暗号プロトコル安全性検証方法およびプログラムである。
【発明の効果】
【0019】
本発明によれば、暗号プロトコルの部品としての理想機能の種類や個数を限定することなく、種々の理想機能を部品として暗号化プロトコルの安全性検証を正確に行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【0020】
以下に添付図面を参照して、この発明にかかる暗号プロトコル安全性検証装置、方法およびプログラムの最良な実施の形態を詳細に説明する。
【0021】
(実施の形態1)
図1は、実施の形態1にかかる暗号プロトコル安全性検証装置の機能的構成を示すブロック図である。本実施の形態にかかる暗号プロトコル安全性検証装置100は、図1に示すように、入力受付部101と、局所判定部102と、攻撃者規則生成部103と、プロトコル変換部104と、導出部105と、検証部106とを主に備えている。
【0022】
入力受付部101は、検証対象の暗号プロトコルのプロトコル記述データと、検証対象の暗号プロトコルの部品として使用される理想機能F1〜FNの記述である理想機能F1記述データ〜理想機能FN記述データの入力を受け付ける処理部である。
【0023】
理想機能とは、検証対象の暗号プロトコルの部品として使用され、汎用結合可能安全性で定義されるもので、理想機能におけるUC安全性が証明された場合には、検証対象の暗号プロトコルの安全性が証明される。理想機能F記述データは、この理想機能における処理を記述したデータである。
【0024】
図2は、理想機能F記述データのデータ構造図である。図2に示すように、理想機能F記述データは、複数のインタフェース記述から構成され、各インタフェース記述は、一または複数のコンストラクタ/デストラクタによる処理記述から構成される。
【0025】
インタフェース記述は、例えば、暗号化の処理記述や復号化の処理記述が該当する。各インタフェース記述は、処理の関数であるコンストラクタやデストラクタによる処理記述から構成される。
【0026】
図3は、理想機能F記述データの具体例を示す説明図である。図3の理想機能F記述データは、公開鍵暗号の理想機能FCPKEの理想機能記述データの例を示している。図3に示すように、301が初期化処理記述である。
【0027】
また、公開鍵暗号理想機能が提供するインタフェースは暗号化の要求(Encrypt,SID,m)と復号化の要求(Decrypt,SID,c)であり、初期化処理のインタフェース記述301、「Encryption」のインタフェース記述302と、「Decryption」のインタフェース記述303とから構成される。図3の各インタフェース記述において、例えば、暗号化を行う関数EK(r)がコンストラクタ、復号化を行う関数D(c)がデストラクタである。
【0028】
局所判定部102は、入力された理想機能F1記述データ〜理想機能FN記述データの局所性判定処理を行う処理部である。すなわち、局所判定部102は、入力された理想機能F1記述データ〜理想機能FN記述データのインタフェース記述のコンストラクタとデストラクタによる処理記述を解析して、各インタフェース記述が、局所的インタフェースであるか非局所的インタフェースであるかを判断し、インタフェース記述に局所的処理であるか否かを示す付加情報を付加する処理を行う。
【0029】
ここで、局所的インタフェースとは、要求元のパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージの授受の処理を行わない記述である。図4は、公開鍵暗号理想機能における局所的インタフェースを説明するための模式図である。
【0030】
図4に示すように、公開鍵暗号理想機能が提供するインタフェースは暗号化の要求(Encrypt,SID,m)と復号化の要求(Decrypt,SID,c)であり、ぞれぞれ各命令を発したパーティに暗号文cと平文mが返され、それ以外のパーティとのメッセージ授受はない。従って、公開鍵暗号理想機能は、局所的インタフェースのみを有していることがわかる。この他、署名理想機能も局所的インタフェースのみを有している。
【0031】
これに対し、非局所的インタフェースとは、要求元のパーティ以外のパーティまたは攻撃者以外のパーティとのメッセージの授受の処理を行う記述である。図5は、零知識証明理想機能における非局所的インタフェースを説明するための模式図である。
【0032】
零知識証明理想機能では、図5に示すように、あるパーティPPIDが理想機能FCPKEに証明を要求すると、理想機能FCPKEは、要求元のパーティPPID以外の他のパーティPPIDッセージを伝達している。従って、零知識証明理想機能は、非局所的インタフェースを有していることがわかる。
【0033】
本実施の形態にかかる暗号プロトコル安全性検証装置100では、局所判定部102によって、入力された理想機能F記述データを解析して、理想機能F記述データを各インタフェース記述に分割し、分割されたインタフェース記述に記述されているコンストラクタ/デストラクタによる処理記述からインタフェース記述が局所的か非局所的かを判断する。
【0034】
具体的には、コンストラクタ/デストラクタによる処理記述において、理想機能と他のパーティとの間のメッセージ授受を解析し、そのインタフェースを呼び出した要求元のパーティとメッセージ授受の相手先のパーティと一致するか否かを調べることによって局所的インタフェースか非局所的インタフェースかを判断する。
【0035】
そして、理想機能が、そのインタフェースを呼び出したパーティでも攻撃者でもないパーティとの間でメッセージを授受しており場合には、そのインタフェース記述は非局所的であると判断する。
【0036】
例えば、図3に示す公開鍵暗号の理想機能FCPKEの理想機能記述データの場合には、初期化処理のインタフェース記述301、Encryptionのインタフェース記述302、Decryptionのインタフェース記述に分割する。そして、各インタフェース記述のインタフェースを解析すると、Encryptionのインタフェース記述302の2.(a)において、平文mを攻撃者に渡しており、暗号化要求の要求元のパーティPと攻撃者以外のパーティに対するメッセージの授受はない。このため、局所判定部102は、Encryptionのインタフェース記述302は局所的インタフェースであると判断する。
【0037】
また、Decryptionのインタフェース記述303では、1.において対(m,c)を暗号化要求の要求元のパーティPに返し、他のパーティとのメッセージ授受の記述は存在しない。このため、局所判定部102は、Decryptionのインタフェース記述303は、局所インタフェースであると判断する。
【0038】
そして、局所判定部102は、Encryptionのインタフェース記述302およびDecryptionのインタフェース記述303に局所的インタフェースを示す付加情報を付与する。
【0039】
図6は、付加情報が付与された理想機能記述データのデータ構造図である。図6に示し召すように、各インタフェース記述に対して付加情報が付加されている。
【0040】
ここで、付加情報は、局所的インタフェースであるか非局所的インタフェースであるかを示す情報であればよく例えば、数値や文字などで局所的インタフェースであるか非局所的インタフェースであるかを識別するように構成すればよい。
【0041】
攻撃者規則生成部103は、理想機能F1記述データ〜理想機能FN記述データに付加された付加情報を参照して、理想機能F1記述データ〜理想機能FN記述データから局所的インタフェースの処理の記述のみを抽出して(あるいは非局所的インタフェースの処理の記述を削除して)、攻撃者規則データ110を生成し、ハードディスクドライブ装置(HDD)やメモリ等の記憶媒体である記憶部に保存する処理部である。
【0042】
図7は、攻撃者規則データの一例を示す説明図である。攻撃者規則データには、(Rf)、(Rg)、(Rt)におけるコンストラクタやデストラクタとして、非局所的インタフェースと判定されたインタフェース記述のコンストラクタ、デストラクタを含めないで生成される。
【0043】
これは以下の理由による。すなわち、攻撃者が非局所的なインタフェースを利用しようとすると、第3者とのメッセージの授受により、コンストラクタおよびデストラクタを適用した結果が第3者に渡ってしまい、攻撃者の手に入らないからである。これに対して、局所的インタフェースの場合は、コンストラクタおよびデストラクタを適用した結果が、第3者に渡らずに、そのまま攻撃者に返されるので攻撃者規則に加えるのが妥当であるからである。また、インタフェース記述が複数のコンストラクタおよびデストラクタの組み合わせの場合には、個々のコンストラクタおよびデストラクタではなく、これらの組み合せをひとまとめにした処理を攻撃者が利用できるようにするためである。
【0044】
プロトコル変換部104は、入力受付部101によって入力された検証対象の暗号プロトコル記述データをプロトコル規則111に変換して、HDDやメモリ等の記憶媒体である記憶部に保存する処理部である。図8は、プロトコル規則の一例を示す説明図である。
【0045】
導出部105は、記憶部に保存されているプロトコル規則データ111と攻撃者規則データ110とを読み出して、両データを合併した規則データ113を生成し、HDDやメモリ等の記憶媒体である記憶部に規則集合として保存し、この規則データ113から安全性検証のための判断情報を導出する処理部である。
【0046】
導出部105によって合併されたプロトコルP0に対する規則データ113の規則集合RP0は、(1)式で示される。
【0047】
【数1】
【0048】
ここで、(RP0)・ρは、(2)式で示される。また、σ0は、プロセスP0のすべての自由変数をSecrの相異なる元へ写像する代入とする。
【0049】
また、導出部105は、具体的には、この規則データ113の規則集合RP0の中から判断情報として「bad」を導出する。導出部105は、規則集合RP0の中から判断情報として「bad」を導出するため、B.Blanchet and A.Podelski. Verification of Cryptographic Protocols: Tagging Enforces Termination. In FoDDaCS'03, Vol.2620 of LNCS, pp.136-152. Springer-Verlag, 2003に記載された手法を拡張した自由選択による導出に基づく解決アルゴリズムを用いている。
【0050】
解決アルゴリズムでは、2つの節R=H→CとR’=F∧H’→Aから、(3)式によってRoFR’=σH∧σH’→σC’を導出する。
【0051】
【数2】
【0052】
(3)式において、CとFは単一化可能で、σは最汎単一化である。複数の項に対して、その単一化が存在する場合に、それらの項を単一化可能という。単一化とは、複数の項に対して、変数に適当な項を代入することで、それらを同一の項にすることをいう。また、最汎単一化とは、複数の項の単一化の中で、最も一般的なものをいう。
【0053】
導出部105では、規則集合を構成するプロトコル規則データ111と攻撃者規則データ110の各集合を二つの節(項)として、(3)式により、σC’としての「bad」を導出している。
【0054】
ここで、導出は、(4)式に定義される選択関数selとして誘導される。 かかる導出は、sel(R)=0かつF∈sel(R’)の場合にのみ実行される。
【0055】
【数3】
【0056】
検証部106は、解決部105によって導出した判断情報「bad」から検証対象の暗号プロトコルの安全性を検証する処理部である。具体的には、検証部106は、導出部105によって規則データ113の規則集合から「bad」が導出された場合には、暗号プロトコルの安全性が証明されたと判断し、導出部105によって規則データ113の規則集合から「bad」が導出されなかった場合には、暗号プロトコルの安全性が証明されなかったと判断する。
【0057】
次に、以上のように構成された実施の形態1にかかる暗号プロトコル安全性検証装置100による暗号プロトコルの安全性検証処理について説明する。図9は、暗号プロトコルの安全性検証処理の手順を示すフローチャートである。
【0058】
まず、入力受付部101によって、プロトコル記述データの入力を受付け(ステップS11)、入力されたプロトコル記述データをプロトコル規則に変換してプロトコル規則データ111を記憶部にプロトコル規則集合として保存する(ステップS12)。
【0059】
かかる処理と並行して、入力受付部101によって、理想機能F記述データの入力を受付け(ステップS13)、局所判定部102によって、入力した理想機能F記述データを解析して局所性判定処理を行う(ステップS14)。
【0060】
ここで、局所性判定処理について詳述する。図10は、実施の形態1の局所性判定処理の手順を示すフローチャートである。
【0061】
局所判定部102は、入力された理想機能F記述データを解析して、理想機能F記述データを各インタフェース記述に分割する(ステップS21)。そして、分割されたインタフェース記述の中のコンストラクタ/デストラクタによる処理記述の解析を行う(ステップS22)。
【0062】
そして、インタフェース記述の中のコンストラクタ/デストラクタによる処理記述のすべてにおいて、そのインタフェースを呼び出したパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージ授受の処理記述があるかどうか調べる(ステップS23)。そして、呼び出したパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージ授受の処理記述がない場合には(ステップS23:No)、そのインタフェース記述は局所的インタフェースであると判定し(ステップS24)、局所的の付加情報をインタフェース記述に付加する(ステップS25)。
【0063】
一方、ステップS23において、インタフェース記述の中のコンストラクタ/デストラクタによる処理記述のいずれかにおいて、呼び出したパーティ以外のパーティまたは攻撃者以外のパーティとのメッセージ授受の処理記述がある場合には(ステップS23:Yes)、そのインタフェース記述は、非局所的インタフェースであると判定し(ステップS26)、非局所的の付加情報をインタフェース記述に付加する(ステップS27)。
【0064】
そして、ステップS22からS27までの処理を、全てのインタフェース記述に対して繰り返し行う(ステップS28)。
【0065】
図9に戻り、以上のように理想機能記述データの局所性判定処理が終了したら、攻撃者規則生成部103によって、付加情報が付加された理想機能記述データから局所的インタフェースのインタフェース記述のみを抽出した攻撃者規則データ110を生成して記憶部に保存する(ステップS15)。
【0066】
そして、導出部105によって、記憶部に保存されているプロトコル規則データ111と攻撃者規則データ110とを合併して規則データ113の規則集合を生成し(ステップS16)、この規則集合から判断情報「bad」を導出する判断情報の導出処理を行う(ステップS17)。
【0067】
次に、検証部106によって、検証処理を行う(ステップS18)。すなわち、規則集合から判断情報「bad」を導出できた場合には、検証部106は、プロトコル記述データの暗号プロトコルは安全性が証明されたと判断し、規則集合から判断情報「bad」を導出できなかった場合には、プロトコル記述データの暗号プロトコルは安全性が証明されなかったと判断する。そして、最後に、検証部106は、この検証結果を表示装置や印刷装置などに出力する(ステップS19)。
【0068】
このように実施の形態1にかかる暗号プロトコル安全性検証装置100では、理想機能記述データのインタフェース記述が局所的インタフェースか非局所的インタフェースかを判定し、局所的インタフェースのみからなる攻撃者規則データを生成して、暗号プロトコルの安全性検証を行っているので、理想機能が局所的インタフェースを含むか否かという種別や、理想機能の個数に限定されることなく、種々の理想機能を部品として暗号化プロトコルの安全性検証を正確に行うことができる。
【0069】
(実施の形態2)
実施の形態1にかかる暗号プロトコル安全性検証装置100は、入力した理想機能記述データの中のメッセージ授受の処理記述を解析して局所インタフェースであるか否かを判定していたが、この実施の形態2にかかる暗号プロトコル安全性検証装置100は、予め局所インタフェースか否かの付加情報が含まれた理想理想機能記述データを入力して局所インタフェースがあるか否かを判定している。
【0070】
実施の形態2にかかる暗号プロトコル安全性検証装置100の機能的構成は実施の形態1と同様である。本実施の形態では、局所判定部102が、予め局所インタフェースか否かの付加情報が含まれた理想機能記述データの付加情報からインタフェース記述が局所インタフェースであるか否かを判定しており、理想機能記述データに付加情報を付加する処理は行わない。
【0071】
実施の形態2にかかる暗号プロトコル安全性検証装置100に入力される理想機能記述データのデータ構造は、図6で示したデータ構造と同様のものである。
【0072】
次に、以上のように構成された実施の形態2にかかる暗号プロトコル安全性検証装置100による暗号プロトコルの安全性検証処理について説明する。本実施の形態の暗号プロトコルの安全性検証の全体処理については実施の形態1の図9の処理手順と同様に行われる。実施の形態2では、ステップS14における局所判定部102による局所性判定処理が実施の形態1と異なっている。
【0073】
図11は、実施の形態2の局所性判定処理の手順を示すフローチャートである。まず、局所判定部102は、入力された理想機能F記述データを解析して、理想機能F記述データを各インタフェース記述に分割する(ステップS31)。そして、分割されたインタフェース記述に付加されている付加情報を抽出する(ステップS32)。
【0074】
次に、抽出した付加情報が局所的を示すか否かを調べる(ステップS33)。そして、付加情報が局所的を示す場合には(ステップS33:Yes)、当該インタフェース記述は局所インタフェースであると判定する(ステップS34)。
【0075】
一方、ステップS33において、付加情報が局所的を示さない場合、すなわち非局所的である旨を示す場合には(ステップS33:No)、、当該インタフェース記述は非局所インタフェースであると判定する(ステップS35)。
【0076】
そして、ステップS32からS35までの処理を、全てのインタフェース記述に対して繰り返し行う(ステップS36)。
【0077】
このようにして理想機能記述データの局所性判定が終了したら、実施の形態1と同様に、攻撃者規則情報の生成から暗号プロトコルの安全性の検証までの処理が行われる。
【0078】
図12は、実施の形態1および2の暗号プロトコル安全性検証装置100のハードウェア構成を示すブロック図である。実施の形態1および2の暗号プロトコル安全性検証装置100は、CPU51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置と、HDD、CDドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置、通信インタフェース57とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0079】
実施の形態1および2にかかる暗号プロトコル安全性検証装置100で実行される暗号プロトコル安全性検証プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0080】
また、実施の形態1および2にかかる暗号プロトコル安全性検証装置100で実行される暗号プロトコル安全性検証プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、実施の形態1および2にかかる暗号プロトコル安全性検証装置100で実行される暗号プロトコル安全性検証プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【0081】
また、実施の形態1および2にかかる暗号プロトコル安全性検証装置100で実行される暗号プロトコル安全性検証プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0082】
実施の形態1および2にかかる暗号プロトコル安全性検証装置100で実行される暗号プロトコル安全性検証プログラムは、上述した各部(入力受付部101、局所判定部102、攻撃者規則生成部103、プロトコル変換部104、導出部105、検証部106)を含むモジュール構成となっており、実際のハードウェアとしてはCPU51(プロセッサ)が上記記憶媒体から暗号プロトコル安全性検証プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、入力受付部101、局所判定部102、攻撃者規則生成部103、プロトコル変換部104、導出部105、検証部106が主記憶装置上に生成されるようになっている。
【0083】
このように実施の形態2にかかる暗号プロトコル安全性検証装置100では、理想機能記述データのインタフェース記述が局所的インタフェースか非局所的インタフェースかを判定し、局所的インタフェースのみからなる攻撃者規則データを生成して、暗号プロトコルの安全性検証を行っているので、理想機能が局所的インタフェースを含むか否かという種別や、理想機能の個数に限定されることなく、種々の理想機能を部品として暗号化プロトコルの安全性検証を正確に行うことができる。
【0084】
また、実施の形態2にかかる暗号プロトコル安全性検証装置100では、予め局所インタフェースか否かの付加情報が含まれた理想機能記述データの付加情報からインタフェース記述が局所インタフェースであるか否かを判定しているので、局所性の判定処理を正確かつ迅速に行うことが可能となる。
【0085】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。
【図面の簡単な説明】
【0086】
【図1】実施の形態1にかかる暗号プロトコル安全性検証装置の機能的構成を示すブロック図である。
【図2】理想機能記述データのデータ構造図である。
【図3】理想機能F記述データの具体例を示す説明図である。
【図4】公開鍵暗号理想機能における局所的インタフェースを説明するための模式図である。
【図5】零知識証明理想機能における非局所的インタフェースを説明するための模式図である。
【図6】付加情報が付与された理想機能記述データのデータ構造図である。
【図7】攻撃者規則データの一例を示す説明図である。
【図8】プロトコル規則の一例を示す説明図である。
【図9】暗号プロトコルの安全性検証処理の手順を示すフローチャートである。
【図10】実施の形態1の局所性判定処理の手順を示すフローチャートである。
【図11】実施の形態2の局所性判定処理の手順を示すフローチャートである。
【図12】実施の形態1および2の暗号プロトコル安全性検証装置100のハードウェア構成を示すブロック図である。
【符号の説明】
【0087】
101 入力受付部
102 局所判定部
103 攻撃者規則生成部
104 プロトコル変換部
105 導出部
106 検証部
110 攻撃者規則データ
111 プロトコル規則データ
113 規則データ
301〜302 インタフェース記述
【特許請求の範囲】
【請求項1】
検証対象の暗号プロトコルの部品であって汎用結合可能安全性で定義される理想機能の記述である理想機能記述データの入力を受け付ける入力受付手段と、
入力された前記理想機能記述データに含まれる処理の記述が、処理の要求元のパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージの授受の処理を行わない局所的処理の記述を含むか否かを判断する局所判定手段と、
前記理想機能記述データから、前記局所的処理の記述のみからなる攻撃者規則データを生成する攻撃者規則生成手段と、
前記攻撃者規則データに基づいて前記検証対象の暗号プロトコルの安全性を検証する検証手段と、
を備えたことを特徴とする暗号プロトコル安全性検証装置。
【請求項2】
前記局所判定手段は、前記理想機能記述データの処理の記述を解析して、前記局所的処理の記述を含むか否かを判断し、処理の記述に前記局所的処理であるか否かを示す付加情報を付加し、
前記攻撃者規則生成手段は、前記付加情報に基づいて前記理想機能記述データから前記局所的処理の記述を抽出して、前記攻撃者規則データを生成することを特徴とする請求項1に記載の暗号プロトコル安全性検証装置。
【請求項3】
前記理想機能記述データは、処理の記述に前記局所的処理であるか否かを示す付加情報が付加されており、
前記局所判定手段は、前記付加情報に基づいて、前記理想機能記述データに前記局所的処理の記述を含むか否かを判断し、
前記攻撃者規則生成手段は、前記付加情報に基づいて前記理想機能記述データから前記局所的処理の記述を抽出して、前記攻撃者規則データを生成することを特徴とする請求項1に記載の暗号プロトコル安全性検証装置。
【請求項4】
前記検証対象の暗号プロトコルの記述である暗号プロトコル記述データのプロトコル規則と前記攻撃者規則データとから、安全性検証のための判断情報を導出する導出手段、をさらに備え、
前記検証手段は、導出された判断情報に基づいて前記検証対象の暗号プロトコルの安全性を検証することを特徴とする請求項1〜3のいずれか一つに記載の暗号プロトコル安全性検証装置。
【請求項5】
入力受付手段によって、検証対象の暗号プロトコルの部品であって汎用結合可能安全性で定義される理想機能の記述である理想機能記述データの入力を受け付けるステップと、
局所判断手段によって、入力された前記理想機能記述データに含まれる処理の記述が、処理の要求元のパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージの授受の処理を行わない局所的処理の記述を含むか否かを判断するステップと、
攻撃者規則生成手段によって、前記理想機能記述データから、前記局所的処理の記述のみからなる攻撃者規則データを生成するステップと、
検証手段によって、前記攻撃者規則データに基づいて前記検証対象の暗号プロトコルの安全性を検証するステップと、
を含むことを特徴とする暗号プロトコル安全性検証方法。
【請求項6】
検証対象の暗号プロトコルの部品であって汎用結合可能安全性で定義される理想機能の記述である理想機能記述データの入力を受け付けるステップと、
入力された前記理想機能記述データに含まれる処理の記述が、処理の要求元のパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージの授受の処理を行わない局所的処理の記述を含むか否かを判断するステップと、
前記理想機能記述データから、前記局所的処理の記述のみからなる攻撃者規則データを生成するステップと、
前記攻撃者規則データに基づいて前記検証対象の暗号プロトコルの安全性を検証するステップと、
をコンピュータに実行させる暗号プロトコル安全性検証プログラム。
【請求項1】
検証対象の暗号プロトコルの部品であって汎用結合可能安全性で定義される理想機能の記述である理想機能記述データの入力を受け付ける入力受付手段と、
入力された前記理想機能記述データに含まれる処理の記述が、処理の要求元のパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージの授受の処理を行わない局所的処理の記述を含むか否かを判断する局所判定手段と、
前記理想機能記述データから、前記局所的処理の記述のみからなる攻撃者規則データを生成する攻撃者規則生成手段と、
前記攻撃者規則データに基づいて前記検証対象の暗号プロトコルの安全性を検証する検証手段と、
を備えたことを特徴とする暗号プロトコル安全性検証装置。
【請求項2】
前記局所判定手段は、前記理想機能記述データの処理の記述を解析して、前記局所的処理の記述を含むか否かを判断し、処理の記述に前記局所的処理であるか否かを示す付加情報を付加し、
前記攻撃者規則生成手段は、前記付加情報に基づいて前記理想機能記述データから前記局所的処理の記述を抽出して、前記攻撃者規則データを生成することを特徴とする請求項1に記載の暗号プロトコル安全性検証装置。
【請求項3】
前記理想機能記述データは、処理の記述に前記局所的処理であるか否かを示す付加情報が付加されており、
前記局所判定手段は、前記付加情報に基づいて、前記理想機能記述データに前記局所的処理の記述を含むか否かを判断し、
前記攻撃者規則生成手段は、前記付加情報に基づいて前記理想機能記述データから前記局所的処理の記述を抽出して、前記攻撃者規則データを生成することを特徴とする請求項1に記載の暗号プロトコル安全性検証装置。
【請求項4】
前記検証対象の暗号プロトコルの記述である暗号プロトコル記述データのプロトコル規則と前記攻撃者規則データとから、安全性検証のための判断情報を導出する導出手段、をさらに備え、
前記検証手段は、導出された判断情報に基づいて前記検証対象の暗号プロトコルの安全性を検証することを特徴とする請求項1〜3のいずれか一つに記載の暗号プロトコル安全性検証装置。
【請求項5】
入力受付手段によって、検証対象の暗号プロトコルの部品であって汎用結合可能安全性で定義される理想機能の記述である理想機能記述データの入力を受け付けるステップと、
局所判断手段によって、入力された前記理想機能記述データに含まれる処理の記述が、処理の要求元のパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージの授受の処理を行わない局所的処理の記述を含むか否かを判断するステップと、
攻撃者規則生成手段によって、前記理想機能記述データから、前記局所的処理の記述のみからなる攻撃者規則データを生成するステップと、
検証手段によって、前記攻撃者規則データに基づいて前記検証対象の暗号プロトコルの安全性を検証するステップと、
を含むことを特徴とする暗号プロトコル安全性検証方法。
【請求項6】
検証対象の暗号プロトコルの部品であって汎用結合可能安全性で定義される理想機能の記述である理想機能記述データの入力を受け付けるステップと、
入力された前記理想機能記述データに含まれる処理の記述が、処理の要求元のパーティ以外のパーティおよび攻撃者以外のパーティとのメッセージの授受の処理を行わない局所的処理の記述を含むか否かを判断するステップと、
前記理想機能記述データから、前記局所的処理の記述のみからなる攻撃者規則データを生成するステップと、
前記攻撃者規則データに基づいて前記検証対象の暗号プロトコルの安全性を検証するステップと、
をコンピュータに実行させる暗号プロトコル安全性検証プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2008−35117(P2008−35117A)
【公開日】平成20年2月14日(2008.2.14)
【国際特許分類】
【出願番号】特願2006−205261(P2006−205261)
【出願日】平成18年7月27日(2006.7.27)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成20年2月14日(2008.2.14)
【国際特許分類】
【出願日】平成18年7月27日(2006.7.27)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]