説明

暗号プロトコル安全性検証装置、暗号プロトコル設計装置、暗号プロトコル安全性検証方法、暗号プロトコル設計方法、暗号プロトコル安全性検証プログラムおよび暗号プロトコル設計プログラム

【課題】暗号プロトコルのプリミティブな安全性を確保して、複雑な暗号プロトコルでも安全性検証の労力を軽減すること。
【解決手段】暗号プロトコル安全性検証装置であって、暗号プロトコルの実行に関与するパーティに関する処理が記述された第1記述部と、理想のプロトコルと対応し、暗号プロトコルの実行に関与するパーティおよび暗号プロトコルの実行に関与しない第1の仮想のエンティティに関する処理が記述され、暗号プロトコルの実行に関与しない第2の仮想のエンティティに関する記述を含まない第2記述部とを含み、第1の仮想のエンティティは理想のプロトコルにおける理想機能に対応し、第2の仮想のエンティティは理想のプロトコルにおけるシミュレータに対応する暗号プロトコル仕様データを入力する暗号プロトコル仕様入力処理部110と、パーティおよび第1の仮想のエンティティに関する処理の欠陥の有無を検証する形式的検証部120を備えた。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号プロトコルに欠陥があるか否かの安全性を検証する暗号プロトコル安全性検証装置、暗号プロトコル安全性検証方法、暗号プロトコル安全性検証プログラムおよび、暗号プロトコルの安全性を検証して暗号プロトコルを設計する暗号プロトコル設計装置、暗号プロトコル設計方法および暗号プロトコル設計プログラムに関する。
【背景技術】
【0002】
暗号学的な手法を利用した暗号プロトコルの安全性を検証する手法としては、従来から形式的検証(FV:Formal Verification)と計算量理論的証明(Complex-Theoretic Proof)が知られている。
【0003】
形式的検証は、プロトコルの正当性を暗号プロトコル仕様の記述から形式的に検証する手法である(例えば、非特許文献1参照)。 計算量理論的証明は、プロトコルの安全性を破ることを数学的な問題の困難性に帰着させる手法である。
【0004】
そして、計算量理論的証明としてmodular アプローチという検証手法が提案されている。このmodular アプローチは、ある仮定の下でプロトコルの安全性を証明しておき、次に、その仮定部分を現実的な状況でも安全なプロトコルに変換するものである。このmodular アプローチに基づいて暗号プロトコルの安全性検証を行う手法として、近年、汎用的結合可能性(UC:Universal Composability)による証明が提案されている。
【0005】
このUCによる証明は、シミュレーションパラダイムに基づき定式化されており、あるプロトコルπが理想機能(ideal functionality)Fを安全に実現しているとは、現実モデルと理想プロセスの2つの系を確率的多項式時間Turing 機械E(以下、環境Eという) が識別できないこと、厳密には、現実モデルの任意の敵Aに対して、理想プロセスのシミュレータSが存在し、いかなる環境Eによっても2つの系は識別できないことと定義されている。UCでは、あるプロトコルπ が理想機能Fを安全に実現していることを証明することができれば、そのプロトコルπをサブルーチンとして呼び出すプロトコルρを実行した場合にも、プロトコルρの中でプロトコルπが何回呼び出されても、プロトコルπの安全性は保たれることがUniversal composability theoremとして証明されている(例えば、非特許文献2参照)。
【0006】
【非特許文献1】Abadi, M., Rogaway, P.: Reconciling Two Views of Cryptography. In: IFIP International Conference on Theoretical Computer Science. (2000)
【非特許文献2】Canetti, R.: Universally Composable Security: A New Paradigm for Cryptographic Protocols. In: FOCS’01, IEEE(2001) 136−145
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、このような従来の暗号プロトコル安全性検証の手法には、以下のような問題がある。形式的検証では、複雑な暗号プロトコルの検証が計算量が多くなり困難であり、またプリミティブの安全性の仮定が必要となってくる。
【0008】
また、計算量理論的証明では、安全性証明が与えられている暗号プロトコルは限られており、暗号プロトコルに修正を加えると、その修正がわずかなものであっても新たな安全性の証明を付与しなければならず、暗号プロトコルの安全性検証に多大な労力が必要となる。
【0009】
UC等のmodular アプローチでは、ある仮定の下でプロトコルの安全性を証明しておき、次に、その仮定部分を現実的な状況でも安全なプロトコルに変換するという構造的な証明方法によって暗号プロトコルの安全性証明の労力を軽減しているが、複雑な暗号プロトコルでは安全性証明の労力を効率的に行うことができない。
【0010】
本発明は、上記に鑑みてなされたものであって、暗号プロトコルのプリミティブな安全性を確保しつつ、複雑な暗号プロトコルでも安全性検証の労力を軽減することができる暗号プロトコル安全性検証装置、暗号プロトコル設計装置、暗号プロトコル安全性検証方法、暗号プロトコル設計方法、暗号プロトコル安全性検証プログラムおよび暗号プロトコル設計プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上述した課題を解決し、目的を達成するために、本発明は、現実に暗号プロトコルの実行に関与するパーティに関する処理が記述された第1記述部と、汎用結合可能安全性で定義される理想のプロトコルと対応し、現実に暗号プロトコルの実行に関与するパーティおよび現実に暗号プロトコルの実行に関与しない第1の仮想のエンティティに関する処理が記述され、現実に暗号プロトコルの実行に関与しない第2の仮想のエンティティに関する記述を含まない第2記述部とを含む検証可能な暗号プロトコル仕様データであって、前記第1の仮想のエンティティは、前記理想のプロトコルにおける理想機能に対応し、前記第2の仮想のエンティティは、前記理想のプロトコルにおけるシミュレータに対応する検証可能な暗号プロトコル仕様データにおける前記パーティおよび第1の仮想のエンティティに関する処理の欠陥の有無を、前記検証可能な暗号プロトコル仕様データの記述に基づいて検証する形式的検証手段を備えたことを特徴とする暗号プロトコル安全性検証装置である。
【0012】
また、本発明は、現実に暗号プロトコルの実行に関与するパーティに関する処理の記述である第1記述部を構成する第1記述部品と、前記第1記述部により安全に実現されることが証明されている、現実に暗号プロトコルの実行に関与するパーティに関する処理と現実に暗号プロトコルの実行に関与しない第1の仮想のエンティティと第2の仮想のエンティティに関する処理の記述である第2記述部を構成する第2記述部品とを記憶する暗号プロトコル部品記憶手段と、前記暗号プロトコル部品記憶手段に記憶された前記第2記述部品と新たに追加した前記第1記述部とを含む暗号プロトコル仕様データを生成する暗号プロトコル仕様設計手段と、前記暗号プロトコル仕様設計手段によって生成された前記暗号プロトコル仕様データに対して、前記第2記述部に対して前記第2の仮想のエンティティに関する記述を削除して、検証可能な暗号プロトコル仕様データを生成する検証可能暗号プロトコル生成手段と、前記検証可能暗号プロトコル仕様生成手段によって生成された前記検証可能な暗号プロトコル仕様データにおける前記パーティおよび前記第1の仮想のエンティティの両方に関する処理の欠陥の有無を、前記検証可能な暗号プロトコル仕様データの記述に基づいて検証する形式的検証手段と、前記形式的検証手段によって欠陥なしと証明された前記検証可能な暗号プロトコル仕様データに基づいて実現可能な暗号プロトコルを生成する暗号プロトコル実行手段と、を備えたことを特徴とする暗号プロトコル設計装置である。
【0013】
また、本発明は、上記装置に対応する方法およびプログラムである。
【発明の効果】
【0014】
本発明にかかる暗号プロトコル安全性検証装置、暗号プロトコル安全性検証方法および暗号プロトコル安全性検証プログラムでは、汎用的結合可能安全性で定義される理想機能に関するエンティティを含むとともに攻撃者としてのシミュレータに関する記述が存在しない検証可能な暗号プロトコルの安全性検証を行っている。このため、本発明によれば、計算量的証明における暗号プロトコル仕様と形式的検証における暗号プロトコル仕様とを整合性をとった上で、プリミティブな安全性を計算量的証明により確保しつつ、複雑な暗号プロトコルについては形式的検証による機械的な検証処理により安全性検証の労力を軽減することができるという効果を奏する。
【0015】
また、本発明にかかる暗号プロトコル設計装置、暗号プロトコル設計方法および暗号プロトコル設計プログラムでは、暗号プロトコル仕様データを設計し、設計した暗号プロトコル仕様データから汎用的結合可能安全性で定義される理想機能に関するエンティティを含むとともに攻撃者としてのシミュレータに関する記述が存在しない検証可能な暗号プロトコルを生成してその安全性検証を行っている。そして、安全性が証明された暗号プロトコル仕様データに基づいて実現可能な暗号プロトコルを生成するので、本発明によれば、計算量的証明における暗号プロトコル仕様と形式的検証における暗号プロトコル仕様とを整合性をとった上で、プリミティブな安全性を計算量的証明により確保しつつ、複雑な暗号プロトコルについては形式的検証による機械的な検証処理により安全性検証の労力を軽減することともに、確実な暗号プロトコルを設計することができるという効果を奏する。
【発明を実施するための最良の形態】
【0016】
以下に添付図面を参照して、この発明にかかる暗号プロトコル安全性検証装置、暗号プロトコル設計装置、暗号プロトコル安全性検証方法、暗号プロトコル設計方法、暗号プロトコル安全性検証プログラムおよび暗号プロトコル設計プログラムの最良な実施の形態を詳細に説明する。
【0017】
(実施の形態1)
実施の形態1にかかる暗号プロトコル安全性検証装置は、現実に暗号プロトコルの実行に関与するパーティに関する処理が記述された第1記述部と、汎用的結合可能安全性で定義される理想機能に関するエンティティを含むとともに攻撃者としてのシミュレータに関する記述が存在せず、現実に暗号プロトコルの実行に関与するパーティに関する処理と現実に暗号プロトコルの実行に関与しない第1の仮想のエンティティに関する処理が記述された第2記述部とを含む検証可能な暗号プロトコル仕様データを入力して、当該暗号プロトコル仕様データの安全性を検証するものである。
【0018】
図1は、実施の形態1にかかる暗号プロトコル安全性検証装置の機能的構成を示すブロック図である。本実施の形態にかかる暗号プロトコル安全性検証装置100は、図1に示すように、暗号プロトコル仕様入力処理部110と、形式的検証部120と、検証結果出力部130と、初期条件記憶部141と、プロトコル記憶部142と、定義記憶部143と、ユーザ目標記憶部144と、デフォルト目標記憶部145と、推論規則記憶部151と、証明済み文記憶部152とを主に備えた構成となっている。
【0019】
暗号プロトコル仕様入力処理部110は、検証可能な暗号プロトコル仕様データの入力処理をおこなう処理部である。検証可能な暗号プロトコル仕様データは、形式的検証(FV)におけるプロトコル仕様で記述された第1記述部と、計算量的証明のUC(Universal Composability)におけるプロトコル仕様に基づいて記述された第2記述部とからなる暗号プロトコル仕様である。第2記述部では、暗号プロトコルが単にUCにおけるプロトコル仕様で記述されているのではなく、UCにおける記述から第1の仮想のエンティティとしての理想機能が付加され、第2の仮想のエンティティとしての攻撃者であるシミュレータの記述が含まれていないものとなっている。すなわち、UCにおける仕様と形式的証明における仕様とを整合性をとって記述して、暗号プロトコルによるプリミティブな安全性を確保しつつ形式的証明による機械的な安全性検証が可能な暗号プロトコル仕様となっている。この暗号プロトコル仕様データには、初期条件部、定義部、プロトコル実行定義部、ゴール部に分割されて記述されている。
【0020】
形式的検証部120は、入力された上記検証可能な暗号プロトコル仕様データに記述された暗号プロトコル仕様に対し形式的検証(FV)によって安全性の検証を行う処理部であり、後述する第1記述部において現実に暗号プロトコルの実行に関与するパーティおよび第1記述部および第2記述部における現実に暗号プロトコルの実行に関与しない第1の仮想のエンティティの両方に関する処理の欠陥の有無を検証する。形式的検証部120は、図1に示すように、プロトコル解析部123とデフォルト目標生成部121と推論実行部122とを有している。
【0021】
解析部123は、検証可能な暗号プロトコル仕様データを解析して、初期条件部、定義部、プロトコル実行定義部、ゴール部を抽出し、初期条件部の記述を初期条件記憶部141に、定義部を定義記憶部142にそれぞれ保存する処理部である。また、解析部123は、検証可能な暗号プロトコル仕様データを解析して、ゴール部を後ろ向き推論において証明すべき目標となる文をユーザ目標としてユーザ目標記憶部144に保存する。
【0022】
デフォルト目標生成部121は、検証可能な暗号プロトコル仕様データにおけるプロトコル実行定義部の各段階であるステージの上記パーティおよび仮想パーティの両方に関する処理の記述から後ろ向き推論において証明すべき目標となる文であるデフォルト目標をステージごとに設定してデフォルト目標記憶部145に保存する処理部である。ここで、デフォルト目標としては、例えば、各ステージにおいて、送信者がそのメッセージを送信することができたか、受信者がそのメッセージの暗号化部分を復号化できたか、受信者がそのメッセージの暗号化されたあるいはハッシュされたフィールドをどのパーティが伝達したかを決定可能か、受信者はそのメッセージの送信にバインドされた関連文を信じる根拠を有するか等の文が該当する。
【0023】
推論実行部122は、デフォルト目標の文およびユーザ目標の文と、初期条件記憶部141あるいは証明済み文記憶部152と推論規則記憶部151に格納されている推論規則から後向き推論を行って検証可能な暗号プロトコル仕様データに欠陥があるか否か、すなわち暗号プロトコルの安全性を検証する処理部である。具体的には、推論実行部122は、プロトコル実行定義部のステージ順に、デフォルト目標の文と等価な文が、検証の初期段階で正しいことを仮定された文を記録している初期条件記憶部141あるいは現ステージより以前のステージに対する検証の過程において正しいことが検証された文を記憶している証明済み文記憶部152に存在するか否かを検索する。また、推論実行部122は、ユーザ目標の文と等価な文が初期条件記憶部141あるいは証明済み文記憶部152に存在するか否かを検索する。そして、推論実行部122は、このような処理を全てのステージのデフォルト目標における全ての文、およびユーザ目標における全ての文について等価な文が初期条件記憶部141あるいは証明済み文記憶部152に存在した場合に、暗号プロトコルは欠陥なしとしてその安全性を証明する。
【0024】
検証結果出力部130は、推論実行部122による暗号プロトコルの安全性の検証結果(安全性あり/なし)をディスプレイ装置などの表示装置やプリンタ装置等に出力する処理部である。
【0025】
初期条件記憶部141は、解析部123により暗号プロトコル仕様データから抽出された初期条件部の記述内容、すなわち検証の初期段階で正しいことを仮定された文を保存するものである。プロトコル記憶部142は、解析部123により暗号プロトコル仕様データから抽出されたプロトコル実行定義部の記述内容を保存するものである。定義記憶部143は、解析部123により暗号プロトコル仕様データから抽出された定義部の記述内容を保存するものである。ユーザ目標記憶部144は、解析部123により暗号プロトコル仕様データから抽出されたゴール部の記述内容を保存するものである。
【0026】
デフォルト目標記憶部145は、デフォルト目標生成部121によって上述したデフォルト目標を保存するものである。
【0027】
推論規則記憶部151は、前提部や連言形で表現された結論部を有する既存の推論規則が保存されたものであり、本実施の形態では、GNY(Gong-Needham-Yahalom) logicから派生した証明推論を定式化した規則であるBGNY2の推論規則が保存されている。なお、本実施の形態では、推論実行部122が行う後向き推論に対応してBGNY2の推論規則が推論規則記憶部151に保存されているが、これに限定されるものではなく、実行する推論の手法に応じて任意の推論規則を推論規則記憶部151に保存することができる。
【0028】
証明済み文記憶部152は、推論実行部122により検証の過程において現ステージより以前のステージで既に欠陥無し(真である)と証明された文を記憶したものである。
【0029】
これらの初期条件記憶部141、プロトコル記憶部142、定義記憶部143、ユーザ目標記憶部144、デフォルト目標記憶部145、推論規則記憶部151、証明済み文記憶部152は、メモリ、HDD(Hard Disk Drive)等の記憶媒体である。
【0030】
次に、汎用的結合可能性(以下、「UC」という)の概要を説明する。図2は、UCの概要を説明するための模式図である。図2には、現実にプロトコル実行に関与するパーティPi間、パーティPiと攻撃者である敵Aとのメッセージの授受などをプロトコルπに従って行う現実モデルの系と、この現実モデルに対応して、現実にプロトコル実行に関与するパーティPi間、攻撃者としてのシミュレータSとのメッセージの授受などを現実にプロトコル実行に関与しない第1の仮想のエンティティである理想機能Fを利用して行う理想プロセスの系とを示している。
【0031】
UCでは、あるプロトコルπが理想機能(ideal functionality)Fを安全に実現しているとは、現実モデルと理想プロセスの2つの系を確率的多項式時間チューリング機械(PPT)(以下、「環境E」という)が識別できないことと定義される。すなわち、現実モデルの任意の敵Aに対して、理想プロセスのあるシミュレータSが存在し、いかなる環境Eによっても2つの系は識別できない。UCでは、あるプロトコルπが理想機能Fを安全に実現していることが証明できれば、そのプロトコルをサブルーチンとして呼び出すプロトコルρを実行した場合にも、プロトコルπがρの中で何回呼び出されても、プロトコルπの安全性は保たれることが証明できる(universal composability theorem)。
【0032】
UCには、いくつかの定式化があるが、そのうちのひとつの定式化では、シミュレータSは、理想機能Fと各パーティPiの間で授受されるメッセージの宛先を読むことができるが、そのメッセージの中身までは見ることができない。さらに、シミュレータS(敵)は、理想機能Fから依頼されてパーティPiへメッセージの配送を即座に行う。ただし、依頼されても配信しないこともできる。さらに、依頼されていないメッセージを配信することもできる。
【0033】
また、UCの別の定式化では、理想機能FとパーティPiの間のメッセージの授受はシミュレータを介さず、直接行われる。この場合、シミュレータSは、理想機能FとパーティPiの間で授受されるメッセージについて、そのパーティがcorruptされていない限り認識することはできない。ただし、理想機能Fが、その仕様上明示的にシミュレータSに対してメッセージ配信の許可を場合には、シミュレータSはそのメッセージの内容を知ることができる。
【0034】
UCでは、暗号プロトコル(またはその一部)は理想機能Fと等価である。ここで等価とは、現実モデルにおいて敵Aが行う任意の攻撃は、理想プロセスにおいてシミュレータSが行う攻撃と計算量的に識別できないというものである。従って、理想機能Fが暗号プロトコルのメッセージの授受や計算の詳細を隠蔽しメッセージの中身を秘匿する仕様になっているならば、現実モデルにおいて、敵Aがいくらそれら詳細な情報を集めたところで、少なくともその理想機能で記述されている暗号プロトコルの部分に関して、シミュレータSから見えていない情報を使ったからといって、シミュレータができない攻撃ができるわけではない。
【0035】
図3は、署名に関する理想機能である署名理想機能FSIGの一例を示す説明図である。署名理想機能FSIGでは、敵としてのシミュレータSが検証鍵を付与することが特徴となっている。Piは、現実にプロトコル実行に関与しない仮想的なパーティである。
【0036】
これに対し、形式的検証(FV)におけるプロトコルでは、明示的に敵Sが仕様記述中には現れてこないので、形式的検証を行う形式的検証部120に理想機能を含む仕様記述を入力する際には、検証手法の差異に対する考慮が必要となってくる。本実施の形態では、検証可能な暗号プロトコル仕様として、理想機能Fを使用した第2記述部を、シミュレータに関する処理を削除して、理想機能がシミュレータに代わって処理を行う記述にしたプロトコルとしている。
【0037】
また、署名検証において受理するか拒否するかを決定するのが敵Sの役割になっている。敵Sからは理想機能FSIGの内部の処理は知ることができないが、理想機能FSIGが他のパーティと授受するメッセージはシミュレータSに知られてしまうと定式化されている。
【0038】
また、理想機能FSIGを実現するプロトコル署名スキームS=(gen,sig,ver)に対して、プロトコルπSを図4に示すように定義する。このとき、「スキームSが適応性選択文書攻撃に対する存在的偽造不可能な署名スキームであることと、プロトコルπSが理想機能FSIGを安全に実現することは等価であることが知られている。Piは、現実にプロトコル実行に関与するパーティである。
【0039】
図5は、実施の形態1にかかる暗号プロトコル安全性検証装置で入力される検証可能な暗号プロトコル仕様データのデータ構造を示す模式図である。図5に示すように、検証可能な暗号プロトコル仕様データ500には、第1記述部501と第2記述部502とから構成され、第1記述部501には形式的検証(FV)におけるプロトコル仕様で、現実モデルのプロトコルが記述される。一方、第2記述部502では、第1記述部501の現実モデルのプロトコルπに対応して理想機能Fを利用したプロトコル仕様の記述から、シミュレータSの処理に関する記述を理想機能がシミュレータに代わって処理を行う記述にしたプロトコルが記述される。
【0040】
図6は、検証可能な暗号プロトコル仕様データ500の第1記述部501の例を示す説明図である。図6の例では、電子署名を利用した相互認証プロトコルISO/IEC 9798−3の初期バーションの仕様をISL2(Interface Specification Language, Version 2)を拡張した言語で記述したものを示してある。暗号プロトコル仕様データは、図6に示すように、定義部、初期条件部、プロトコル実行定義部、ゴール部から構成されており、現実に暗号プロトコル実行に関与するパーティに関する処理が記述されている。
【0041】
本来、ISL2における電子署名の記述仕様は、[x](f,h)(k)のように定義される。かかる定義は、署名を伴っているメッセージxを表しており、その署名は、xにハッシュ関数hを施した上で暗号化関数fで暗号化して得られることを示している。ここで、kは暗号鍵である。しかしながら、安全性証明が与えられている電子署名方式の多くは、より複雑な形をしており、上のような形で表現されない。また、メッセージと切り離して電子署名だけを送信したい場合、その記述をすることができない。そこで、本実施の形態では、暗号プロトコル仕様記述言語の記述能力を向上させるため、図6のように記述している。
【0042】
図6の例では、定義部で、署名関数(SIGN FUNCTIONS)がSig、検証関数(VERIFY FUNCTIONS)がVer、鍵生成関数(GENKEYS FUNCTIONS)がGであることを定義している。ここで、定義部の記述において、
Sig WITH KS ISVERIFIEDBY Ver
WITH KV SUCHTHAT (KS;;KV) = G(); ・・・(1)
(1)式の記述は、鍵生成関数G()は署名鍵KSと検証鍵KVの対(KS;;KV)を生成することを示す。このため、図6の定義部では、鍵生成関数G()は署名鍵KSAと検証鍵KVAの対(KSA;;KVA)を生成し、また、鍵生成関数G()は署名鍵KSBと検証鍵KVBの対(KSB;;KVB)を生成することを定義している。
【0043】
なお、図6の例では、鍵生成関数Gは引数を有さない関数としているが、セキュリティパラメータやその他のパラメータを引数とするように構成してもよい。また、鍵生成関数Gは決定性の関数である他、確率性の関数として構成することもできる。鍵生成関数をGを確率性の関数として構成する場合は、鍵生成関数Gは呼び出されるたびに、鍵対全体の空間からランダムに選んだ鍵対を生成することになる。
【0044】
初期条件部、プロトコル実行定義部、ゴール部における仕様記述の意味は以下のとおりである。
【0045】
<x>Sig(k) :署名関数Sigによるメッセージxの署名。kは署名鍵。
VerificationKey P V K :パーティPによる署名の検証アルゴリズムVの検証鍵はKである。
A Believes <Stmt> :パーティAが<Stmt>を信じる理由があった。
A Possesses <Stmt> :パーティAは、<Stmt>を受信したか、あるいは、受信した複数の<Stmt>の中からその<Stmt>を計算できる。
A Received <Stmt> :パーティAは、<Stmt>を現在のプロトコル実行より前に受け取った、または現在のプロトコル実行よりも前に受け取ったあるメッセージまたはその一部として受け取った。
A Conveyed <Stmt> :パーティAが<Stmt>の現在のプロトコル実行の間の生成者でソースである。
【0046】
従って、図6において初期条件部は、以下の意味を示している。
・パーティAは、署名関数Sig、検証関数Ver、署名鍵KSBを現在のプロトコル実行より前に受け取った、または現在のプロトコル実行よりも前に受け取ったあるメッセージまたはその一部として受け取った。
・パーティAは、署名鍵KSAを受信した。
・パーティAは、パーティBによる署名の検証アルゴリズムVerの検証鍵はKSBであることを信じる理由があった。
・パーティBは、署名関数Sig、検証関数Ver、署名鍵KSAを現在のプロトコル実行より前に受け取った、または現在のプロトコル実行よりも前に受け取ったあるメッセージまたはその一部として受け取った。
・パーティBは、署名鍵KSBを受信した。
・パーティBは、パーティAによる署名の検証アルゴリズムVerの検証鍵はKSAであることを信じる理由があった。
【0047】
また、図6において、プロトコル実行定義部は以下の意味を示している。ここで、図6の最左端の番号は実行段階を示すステージである。
ステージ1:BからAにメッセージNoBを送信。
ステージ2:AからBに、メッセージNoA,NoB,B,署名関数SigによるメッセージNoA,NoB,Bの署名(署名鍵KSA)を送信。
ステージ3:BからAに、メッセージNoB2,NoA,A,署名関数SigによるメッセージNoB2,NoA,Aの署名(署名鍵KSB)を送信。
【0048】
また、図6において、ゴール部は以下の意味を示している。
ステージ1:Bは、Aが署名関数SigによるメッセージNoA,NoB,Bの署名(署名鍵KSA)の現在のプロトコル実行の間の生成者でソースであることを信じる理由があった。
ステージ2:Aは、Bが署名関数SigによるメッセージNoB2,NoA,Aの署名(署名鍵KSB)の現在のプロトコル実行の間の生成者でソースであることを信じる理由があった。
【0049】
図7−1は、暗号プロトコル仕様における理想機能を使用した記述例を示す説明図である。図7−1では、プロトコル実行定義部における署名のプロトコルと検証のプロトコルの2つを示している。図7−1において、Pは、現実にプロトコル実行に関与するパーティ、Fは理想機能、Sはシミュレータ(敵)を示している。
【0050】
署名のプロトコルでは、以下の意味を示している。
ステージ1:パーティPから理想機能Fに署名要求送信。
ステージ2:理想機能SからシミュレータSに署名要求送信。
ステージ3:シミュレータSから理想機能Sに署名送信。
ステージ4:理想機能SからパーティPに署名送信。
【0051】
検証のプロトコルでは、以下の意味を示している。
ステージ1:パーティPから理想機能Fに検証要求送信。
ステージ2:理想機能SからシミュレータSに検証要求送信。
ステージ3:シミュレータSから理想機能Sに検証送信。
ステージ4:理想機能SからパーティPに検証送信。
【0052】
この図7−1に示すプロトコル仕様では、シミュレータSについての記述があるが、本実施の形態の検証可能な暗号プロトコル仕様では、UCにおける記述から理想機能のエンティティが付加され、攻撃者としてのシミュレータの記述が削除または理想機能に対する記述に置換されたものとしている。具体的には、シミュレータSと理想機能Fとの間の授受情報を攻撃時に利用可能な情報に置換し、シミュレータに対する理想機能からの即座の配信要求の記述を、理想機能による即座の配信の記述に置換した第2記述部502を有する暗号プロトコル仕様となっている。
【0053】
図7−2は、検証可能な暗号プロトコル仕様データ500の第2記述部502のプロトコル実行定義部の例を示す説明図である。図7−2では、図7−1のプロトコル実行定義部の記述においてシミュレータSの記述を上記のように置換した署名のプロトコルと検証のプロトコルを示したものとなっている。すなわち、図7−1の署名のプロトコルにおける理想機能FからのシミュレータSに対する署名要求が理想機能による即座の署名の記述に置換され、以下のようになる。
【0054】
ステージ1:パーティPから理想機能Fに署名要求送信。
ステージ2:理想機能SからパーティPに署名送信。
【0055】
同様に、検証のプロトコルは以下の意味となる。
ステージ1:パーティPから理想機能Fに検証要求送信。
ステージ2:理想機能SからパーティPに検証送信。
【0056】
このように、本実施の形態では、シミュレータSに関する記述を削除した第2記述部502を含む暗号プロトコル仕様を入力して暗号プロトコルの安全性検証を行っている。
【0057】
次に、以上のように構成された本実施の形態にかかる暗号プロトコル安全性検証装置による暗号プロトコルの安全性検証処理について説明する。図8は、実施の形態1の暗号プロトコルの安全性検証処理の手順を示すフローチャートである。
【0058】
暗号プロトコル仕様入力処理部110により図6に示すような第1記述部501と図7−2に示すような第2記述部502を有する検証可能な暗号プロトコル仕様データ500が入力されると、形式的検証部120の解析部121によって暗号プロトコル仕様データを解析し、暗号プロトコル仕様データから初期条件部の記述を抽出して初期条件記憶部141に保存する(ステップS801)。次いで、解析部121によって暗号プロトコル仕様データからプロトコル実行定義部の記述を抽出してプロトコル記憶部142に保存する(ステップS802)。同様に、解析部121によって暗号プロトコル仕様データから定義部の記述を抽出して定義記憶部143に保存する(ステップS803)。さらに、解析部121によって暗号プロトコル仕様データからゴール部の記述を抽出してユーザ目標としてユーザ目標記憶部144に保存する(ステップS804)。なお、ゴール部の存在しない検証可能な暗号プロトコル仕様データ500の場合には、かかるステップS804の処理はおこなわれない。
【0059】
次いで、解析部123により、プロトコル記憶部142からプロトコル実行定義部の記述を読み出して、プロトコル実行定義部の記述をステージごとの文に分割する(ステップS805)。なお、図6および図7−1の例では、各ステージが単一の文から構成されているが、各ステージが複数の文から構成される場合もある。そして、定義記憶部143に保存されている定義部の記述を参照しながら、ステージごとに推論におけるデフォルト目標を生成し、デフォルト目標記憶部145に保存する(ステップS806)。
【0060】
そして、推論実行部122によってデフォルト目標、ユーザ目標、証明済み文記憶部152、推論規則記憶部151の推論規則とから推論を実行して暗号プロトコル仕様の安全性を検証する(ステップS807)。そして、その検証結果として、暗号プロトコル仕様の安全性あり/なし、プロトコル実行定義部のステージごとの欠陥の有無、ゴール部の欠陥の有無が検証結果出力部130によって、表示装置等に出力される。
【0061】
次に、ステップS807による推論実行部122による推論実行処理について説明する。図9−1および図9−2は、推論実行部122による推論実行処理の手順を示すフローチャートである。なお、本実施の形態では、後向き推論を行っているが、前向き推論によって安全性証明を実現することも可能である。
【0062】
個々のデフォルト目標は、一般に、いくつかの連言形の文(論理積で表現される文)を選言形にしたもの(論理和で表現される文)として表現されている。まず、推論実行部122は、デフォルト目標記憶部145から一つのデフォルト目標を選択する(ステップS901)。そして、選択したデフォルト目標に含まれる連言形の中の文と等価な文を初期条件記憶部141と証明済み文記憶部152から検索する(ステップS902)。ここで、デフォルト目標に含まれる連言形の中の文と等価な文とは、デフォルト目標に含まれる連言形の中の文と同一の文の他、デフォルト目標に含まれる連言形の中の文中の変数に値を代入すると同一になる文をいう。
【0063】
そして、検索結果がある場合、すなわち選択したデフォルト目標に含まれる連言形の中の文と等価な文が初期条件記憶部141あるいは証明済み文記憶部15に存在した場合には(ステップS903:Yes)、選択したデフォルト目標から検索された文を含む連言形の部分を削除する(ステップS904)。一方、ステップS903において検索結果がなしの場合、すなわち選択したデフォルト目標に含まれる連言形の中の文と等価な文が初期条件記憶部141と証明済み文記憶部15のいずれにも存在しない場合には(ステップS903:No)、デフォルト目標からの文の削除は行われない。
【0064】
次に、推論実行部122は、デフォルト目標に含まれる連言形の中の文と等価な文を連言形で表現した結論を含む推論規則を推論規則記憶部151から検索する(ステップS905)。ここで、推論規則記憶部に格納されている推論規則は、その結論を連言形で表現された形で格納されているとする。そして、検索結果がある場合、すなわちデフォルト目標に含まれる連言形の中の文と等価な文を連言形で表現した結論を含む推論規則が推論規則記憶部151に存在する場合には(ステップS906:Yes)、デフォルト目標の当該文を検索された推論規則の前提部で置換する(ステップS907)。一方、ステップS906において検索結果がない場合、すなわちデフォルト目標に含まれる連言形の中の文と等価な文が、連言形で表現した結論を含む推論規則が推論規則記憶部151に存在しない場合には(ステップS906:No)、置換は行わない。
【0065】
そして、このようなステップS902からS907までの処理を、デフォルト目標の中の全ての文に対して実行する(ステップS908)。デフォルト目標の中の全ての文に対してステップS902からS907までの処理を実行したら、ステップS904でデフォルト目標の中の全ての文が削除されたか否かを判断する(ステップS909)。
【0066】
そして、デフォルト目標の中の全ての文が削除されている場合には(ステップS909:Yes)、そのデフォルト目標を欠陥なしと判定する(ステップS910)。一方、デフォルト目標の中の全ての文が削除されていない場合には(ステップS909:No)、そのデフォルト目標を欠陥ありと判定する(ステップS911)。そして、検証可能な暗号プロトコルのプロトコル実行定義部のすべてのステージに対して、上記ステップS901からS910またはS911までの処理を実行する(ステップS912)。
【0067】
次に、推論実行部122は、ユーザ目標記憶部144からユーザ目標(すなわちゴール部の記述)を選択する(ステップS913)。個々のユーザ目標も、いくつかの連言形の文(論理積で表現された文)を選言形にしたもの(論理和で表現された文)として表現されている。そして、選択したユーザ目標に含まれる連言形の中の文と等価な文を初期条件記憶部141と証明済み文記憶部152から検索する(ステップS914)。
【0068】
そして、検索結果がある場合、すなわち選択したユーザ目標に含まれる連言形の中の文と等価な文が初期条件記憶部141あるいは証明済み文記憶部15に存在した場合には(ステップS915:Yes)、選択したユーザ目標から検索された文を含む連言形の部分を削除する(ステップS916)。一方、ステップS915において検索結果がなしの場合、すなわち選択したユーザ目標に含まれる連言形の中の文と等価な文が初期条件記憶部141と証明済み文記憶部15のいずれにも存在しない場合には(ステップS915:No)、ユーザ目標からの文の削除は行われない。
【0069】
次に、推論実行部122は、ユーザ目標に含まれる連言形の中の文と等価な文を連言形で表現した結論を含む推論規則を推論規則記憶部151から検索する(ステップS917)。そして、検索結果がある場合、すなわちユーザ目標に含まれる連言形の中の文と等価な文を連言形で表現した結論を含む推論規則が推論規則記憶部151に存在する場合には(ステップS918:Yes)、ユーザ目標の当該文を検索された推論規則の前提部で置換する(ステップS919)。この際、結論部と同じ変数に同一の値を代入した上で置換する。
【0070】
一方、ステップS918において検索結果がない場合、すなわちユーザ目標に含まれる連言形の文と等価な文を連言形で表現した結論を含む推論規則が推論規則記憶部151に存在しない場合には(ステップS918:No)、置換は行わない。
【0071】
そして、このようなステップS914からS919までの処理を、ユーザ目標の中の全ての文に対して実行する(ステップS920)。ユーザ目標の中の全ての文に対してステップS914からS919までの処理を実行したら、ステップS916によりユーザ目標の中の全ての文が削除されたか否かを判断する(ステップS921)。
【0072】
そして、ユーザ目標の中の全ての文が削除されている場合には(ステップS921:Yes)、そのユーザ目標を欠陥なしと判定する(ステップS922)。一方、ユーザ目標の中の全ての文が削除されていない場合には(ステップS921:No)、そのユーザ目標を欠陥ありと判定する(ステップS923)。この場合において、さらに推論規則を変更して同様の処理を繰り返してもよい。
【0073】
このような推論実行部122によるデフォルト目標を利用した推論によって、検証可能な暗号プロトコル仕様データ500のプロトコル実行定義部の記述の欠陥の有無、すなわち安全性の検証が行われ、またユーザ目標を利用した推論によって、検証可能な暗号プロトコル仕様データ500のゴール部の記述の欠陥の有無、すなわち安全性の検証が行われることになる。 なお、ゴール部の存在しない検証可能な暗号プロトコル仕様データ500の場合には、上記ステップS913からS922またはS923までのユーザ目標に対する処理はおこなわれない。
【0074】
そして、推論実行部122による推論による検証結果として、暗号プロトコル仕様の安全性あり/なし、プロトコル実行定義部のステージごとの欠陥の有無、ゴール部の欠陥の有無が検証結果出力部130によって、表示装置等に出力される。ここで、プロトコル実行定義部の全ステージで欠陥が存在せず、かつゴール部にも欠陥が存在しない場合には、暗号プロトコル仕様の安全性が証明されたことになる。
【0075】
このように実施の形態1にかかる暗号プロトコル安全性検証装置100では、汎用的結合可能安全性で定義される理想機能に関するエンティティを含むとともに攻撃者としてのシミュレータに関する記述が存在しない検証可能な暗号プロトコルの安全性検証を形式的検証部120で行うので、計算量的証明における暗号プロトコル仕様と形式的検証における暗号プロトコル仕様とを整合性をとった上で、プリミティブな安全性を計算量的証明により確保しつつ、複雑な暗号プロトコルについては形式的検証による機械的な検証処理により安全性検証の労力を軽減することができる。
【0076】
(実施の形態2)
実施の形態1にかかる暗号プロトコル安全性検証装置100は、図6のような第1記述部501と図7−2に示すような第2記述部502を有する暗号プロトコル仕様データ、すなわち予め検証可能となっている暗号プロトコル仕様データを入力して、暗号プロトコルの安全性検証を行っていたが、この実施の形態2にかかる暗号プロトコル安全性検証装置は、入力された暗号プロトコル仕様データから、検証可能な暗号プロトコル仕様データ500を生成して、生成された検証可能な暗号プロトコル仕様データ500の安全性検証を行うものである。
【0077】
図10は、実施の形態2にかかる暗号プロトコル安全性検証装置の機能的構成を示すブロック図である。本実施の形態にかかる暗号プロトコル安全性検証装置1000は、図10に示すように、暗号プロトコル仕様入力処理部110と、検証可能暗号プロトコル仕様生成部1010と、形式的検証部120と、検証結果出力部130と、初期条件記憶部141と、プロトコル記憶部142と、定義記憶部143と、ユーザ目標記憶部144と、デフォルト目標記憶部145と、推論規則記憶部151と、証明済み文記憶部152とを主に備えた構成となっている。
【0078】
ここで、形式的検証部120、検証結果出力部130、初期条件記憶部141、プロトコル記憶部142、定義記憶部143、ユーザ目標記憶部144、デフォルト目標記憶部145、推論規則記憶部151、証明済み文記憶部152は、実施の形態1の暗号プロトコル安全性検証装置100と同様の構成および機能を有している。
【0079】
暗号プロトコル仕様入力処理部110は、暗号プロトコル仕様データを入力する処理部である。入力する暗号プロトコル仕様データは、形式的検証(FV)におけるプロトコル仕様で記述された第1記述部501と、計算量的証明のUCにおけるプロトコル仕様で記述された第2記述部とからなる暗号プロトコル仕様であり、UCによる第2記述部が形式的検証と整合性をとって記述されたものでない点で、実施の形態1で入力される検証可能な暗号プロトコル仕様データ500と異なっている。
【0080】
検証可能暗号プロトコル仕様生成部1010は、暗号プロトコル仕様入力処理部110によって入力された暗号プロトコル仕様データから検証可能な暗号プロトコル仕様データ500を生成する処理部である。検証可能な暗号プロトコル仕様データ500は、実施の形態1と同様に、形式的検証(FV)におけるプロトコル仕様で記述された第1記述部501と、計算量的証明のUC(Universal Composability)におけるプロトコル仕様に基づいて記述された第2記述部502とからなる暗号プロトコル仕様であり、UCにおける仕様と形式的証明における仕様とを整合性をとって記述したものである。
【0081】
具体的には、検証可能暗号プロトコル仕様生成部1010は、入力した暗号プロトコル仕様データの第2記述部のUCにおける記述から理想機能のエンティティが付加し、攻撃者としてのシミュレータの記述を削除して理想機能に対する記述に置換することによって、UCにおける仕様と形式的証明における仕様とを整合性をとって記述された検証可能な暗号プロトコル仕様データ500を生成している。本実施の形態においても、検証可能な暗号プロトコル仕様データ500の例としては、実施の形態1と同様に、第1記述部501は例えば図6で示した記述であり、第2記述部502は図7−2で示した記述である。また、本実施の形態でも、検証可能な暗号プロトコル仕様データ500は、実施の形態1と同様に、初期条件部、定義部、プロトコル実行定義部、ゴール部に分割されて記述されている。
【0082】
次に、以上のように構成された本実施の形態にかかる暗号プロトコル安全性検証装置1000による暗号プロトコルの安全性検証処理について説明する。
【0083】
暗号プロトコル仕様入力処理部110により図6に示すような第1記述部501と図7−1に示すような第2記述部を有する暗号プロトコル仕様データが入力されると、検証可能暗号プロトコル仕様生成部1010によって、入力された暗号プロトコル仕様データから図6に示すような第1記述部501と図7−2に示すような第2記述部502を有する検証可能な暗号プロトコル仕様データ500が生成される。そして、この生成された検証可能な暗号プロトコル仕様データ500に対して形式的検証部120によって暗号プロトコルの安全性検証が行われ、検証結果出力部130によって検証結果が出力される。
【0084】
次に、検証可能暗号プロトコル仕様生成部1010による検証可能な暗号プロトコル仕様データ500の生成処理について説明する。図11は、検証可能暗号プロトコル仕様生成部1010による検証可能な暗号プロトコル仕様データ500の生成処理の手順を示すフローチャートである。
【0085】
まず、検証可能暗号プロトコル仕様生成部1010は、第2記述部に理想機能のエンティティの記述を追加する(ステップS1101)。なお、第2記述部に最初から理想機能の記述が存在する場合には、かかるステップS1101は行われない。そして、検証可能暗号プロトコル仕様生成部1010は、第2記述部にシミュレータ(敵)Sに関する記述部分があるか否かを調べる(ステップS1102)。そして、シミュレータ(敵)Sに関する記述部分がない場合には(ステップS1102:No)、そのまま処理を抜ける。
【0086】
一方、シミュレータ(敵)Sに関する記述部分がある場合には(ステップS1102:Yes)、検証可能暗号プロトコル仕様生成部1010は、さらに、第2記述部にシミュレータ(敵)Sと理想機能との間の情報の授受の記述があるか否かを調べる(ステップS1103)。そして、シミュレータ(敵)Sと理想機能との間の情報の授受の記述がある場合には(ステップS1103:Yes)、検証可能暗号プロトコル仕様生成部1010は、シミュレータ(敵)Sと理想機能との間の授受情報を攻撃に利用可能な情報として変換する(ステップS1104)。シミュレータ(敵)Sと理想機能との間の情報の授受の記述がない場合には(ステップS1103:No)、かかるS1104の処理は行わない。
【0087】
次に、検証可能暗号プロトコル仕様生成部1010は、第2記述部にシミュレータ(敵)Sが理想機能からパーティへのメッセージの即座の配信を要求される記述があるか否かを調べる(ステップS1105)。そして、シミュレータ(敵)Sが理想機能からパーティへのメッセージの即座の配信を要求される記述がある場合には(ステップS1105:Yes)、かかる記述を理想機能がパーティへメッセージの即座の配信を行う記述に変換する(ステップS1106)。一方、シミュレータ(敵)Sが理想機能からパーティへのメッセージの即座の配信を要求される記述がない場合には(ステップS1105:No)、かかるS1106の処理はおこなわれない。
【0088】
以上のような処理によって、入力された暗号プロトコル仕様データから、図6や図7−1のような形式的検証部120によって検証可能な暗号プロトコル仕様データ500が生成されることになる。この生成された検証可能な暗号プロトコル仕様データ500の安全性検証処理は、実施の形態1の図8、図9−1および図9−2で説明した処理と同様に行われ、その検証結果も実施の形態1と同様に検証結果出力部130によって表示装置等に出力される。
【0089】
このように実施の形態2にかかる暗号プロトコル安全性検証装置1000では、入力された暗号プロトコル仕様データから、検証可能な暗号プロトコル仕様データ500を生成して、生成された検証可能な暗号プロトコル仕様データ500の安全性検証を行うので、利用者によって計算量的証明における暗号プロトコル仕様と形式的検証における暗号プロトコル仕様との整合性をとることを意識させることなく、プリミティブな安全性を計算量的証明により確保しつつ、複雑な暗号プロトコルについては形式的検証による機械的な検証処理により安全性検証の労力を軽減することができる。
【0090】
(変形例)
UCの定式化として、シミュレータは現実に暗号プロトコルの実行に関与するパーティと理想機能の間のメッセージを認識できないとする定式化がある。例えば、図12は、実施の形態2の変形例における定式化によって定義された認証された通信路の理想機能FAUTHである。この理想機能は以下のような処理を行う。
【0091】
あるパーティPiから(send,sid,Pj,m)というメッセージを受信したときは、sidが(Pj,sid‘)の形をしているか否かを判定する。そして、sidが(Pj,sid‘)の形をしている場合には、(Pj,m)を記録した上で、(send,sid,Pj,m)を攻撃者であるシミュレータに送信する。一方、sidが(Pj,sid‘)の形をしていなに場合には、理想機能は、この入力を無視する。
【0092】
一方、理想機能は、攻撃者であるシミュレータからsid=(Pi,sid’)の形をしたメッセージ(deliver,sid,Pj’,m’)を受信したときは、(Pi‘,m’)が記録されているか否か、または、Piがcorruptされているか否かを判定し、もうしそうならば、パーティPj’に対して、(sent,sid,m‘)を出力してから停止する。そうでなければ、単に停止する。
【0093】
この場合、理想機能からパーティへのメッセージの配信は、理想機能自身が行っている。ただし、その配信を行う前に、理想機能は攻撃者であるシミュレータに対して、これから配信を行う内容を通知している。この通知に対して、シミュレータは、メッセージの送信先のパーティの変更やメッセージの内容を改ざんする機会を与えられている。理想機能は、この変更や改ざんがあった場合は、それらに従ってメッセージを配信する。すなわち、理想機能はメッセージの配信に先立ち、その許可をシミュレータに求めており、理想機能はシミュレータが許可したとおりにメッセージを配信しなければならない。
【0094】
この変形例における検証可能暗号プロトコル生成手段1010は、上のような理想機能に対応する第2記述部に対して、理想機能がパーティへのメッセージ配信を行う前にシミュレータにその配信許可を要求してから配信を行う記述は、理想機能がシミュレータの許可を要求することなく配信を行う記述に置換し、シミュレータと理想機能との間で授受された情報は、攻撃時に利用可能な情報と置換する。
【0095】
次に、検証可能暗号プロトコル仕様生成部1010による検証可能な暗号プロトコル仕様データ500の生成処理について説明する。図13は、実施の形態2の変形例にかかる検証可能暗号プロトコル仕様生成部1010による検証可能な暗号プロトコル仕様データ500の生成処理の手順を示すフローチャートである。
【0096】
まず、検証可能暗号プロトコル仕様生成部1010は、第2記述部に理想機能のエンティティの記述を追加する(ステップS1301)。なお、第2記述部に最初から理想機能の記述が存在する場合には、かかるステップS1301は行われない。そして、検証可能暗号プロトコル仕様生成部1010は、第2記述部にシミュレータ(敵)Sに関する記述部分があるか否かを調べる(ステップS1302)。そして、シミュレータ(敵)Sに関する記述部分がない場合には(ステップS1302:No)、そのまま処理を抜ける。
【0097】
一方、シミュレータ(敵)Sに関する記述部分がある場合には(ステップS1302:Yes)、検証可能暗号プロトコル仕様生成部1010は、さらに、第2記述部にシミュレータ(敵)Sと理想機能との間の情報の授受の記述があるか否かを調べる(ステップS1303)。そして、シミュレータ(敵)Sと理想機能との間の情報の授受の記述がある場合には(ステップS1303:Yes)、検証可能暗号プロトコル仕様生成部1010は、シミュレータ(敵)Sと理想機能との間の授受情報を攻撃に利用可能な情報として変換する(ステップS1304)。シミュレータ(敵)Sと理想機能との間の情報の授受の記述がない場合には(ステップS1303:No)、かかるS1304の処理は行わない。
【0098】
次に、検証可能暗号プロトコル仕様生成部1010は、第2記述部にシミュレータ(敵)Sが理想機能からパーティへのメッセージの配信の許可を要求される記述があるか否かを調べる(ステップS1305)。そして、シミュレータ(敵)Sが理想機能からパーティへのメッセージの配信の許可を要求される記述がある場合には(ステップS1305:Yes)、かかる記述を理想機能が許可を要求することなく直接パーティへメッセージを配信する記述に変換する(ステップS1306)。一方、シミュレータ(敵)Sが理想機能からパーティへのメッセージの配信の許可を要求される記述がない場合には(ステップS1305:No)、かかるS1306の処理はおこなわれない。
【0099】
このように実施の形態2の変形例にかかる暗号プロトコル安全性検証装置1000では、シミュレータは現実に暗号プロトコルの実行に関与するパーティと理想機能の間のメッセージを認識できないとする定式化のUCを含む暗号プロトコル仕様データから、検証可能な暗号プロトコル仕様データ500を生成して、生成された検証可能な暗号プロトコル仕様データ500の安全性検証を行うので、利用者によって計算量的証明における暗号プロトコル仕様と形式的検証における暗号プロトコル仕様との整合性をとることを意識させることなく、プリミティブな安全性を計算量的証明により確保しつつ、複雑な暗号プロトコルについては形式的検証による機械的な検証処理により安全性検証の労力を軽減することができる。
【0100】
(実施の形態3)
実施の形態3は、実施の形態1および2で説明した検証可能暗号プロトコル仕様生成手段および形式的検証手段を使用して暗号プロトコルを設計する暗号プロトコル設計装置である。
【0101】
図14は、実施の形態3にかかる暗号プロトコル設計装置の機能的構成を示すブロック図である。本実施の形態にかかる暗号プロトコル設計装置1200は、図14に示すように、暗号プロトコル仕様設計部1210と、検証可能暗号プロトコル仕様生成部1010と、形式的検証部120と、検証結果出力部130と、暗号プロトコル実行部1220と、初期条件記憶部141と、プロトコル記憶部142と、定義記憶部143と、ユーザ目標記憶部144と、デフォルト目標記憶部145と、推論規則記憶部151と、証明済み文記憶部152と、暗号プロトコル部品記憶部1230と、暗号プロトコル記憶部1240とを主に備えた構成となっている。
【0102】
ここで、検証可能暗号プロトコル仕様生成部1010、形式的検証部120、検証結果出力部130、初期条件記憶部141、プロトコル記憶部142、定義記憶部143、ユーザ目標記憶部144、デフォルト目標記憶部145、推論規則記憶部151、証明済み文記憶部152は、実施の形態1の暗号プロトコル安全性検証装置100と同様の構成および機能を有している。
【0103】
暗号プロトコル部品記憶部1230は、暗号プロトコル仕様データを構成部品を記憶するHDDやメモリなどの記憶媒体である。暗号プロトコル部品記憶部1230は、具体的には形式的検証(FV)におけるプロトコル仕様で記述された第1記述部501の構成部品である第1記述部品と、計算量的証明のUCにおけるプロトコル仕様で記述された第2記述部の構成部品である第2記述部品が記憶されている。第1記述部品としては、実施の形態1で説明した図6に示す仕様記述を構成する文や語句などが例としてあげられる。また、第2記述部品としては、形式的検証における仕様と整合性をとっていない状態の図7−1に示す仕様記述を構成する文や語句などが例としてあげられる。
【0104】
暗号プロトコル仕様設計部1210は、暗号プロトコル部品記憶部1230に記憶されている第1記述部品と第2記述部品を読み出して、読み出した第1記述部品と第2記述部品から暗号プロトコル仕様データを生成する処理部である。具体的には、暗号プロトコル仕様設計部1210は、利用者によって指定された第1記述部品と第2記述部品を暗号プロトコル部品記憶部1230から読み出して、第1記述部品と第2記述部品を利用者の指定あるいは任意に組み合わせて暗号プロトコル仕様データの記述を生成する。このように生成された暗号プロトコル仕様データは、暗号プロトコル仕様生成部1010によって第2記述部を例えば図7−2に示すような形式的検証(FV)と整合性ととった検証可能な暗号プロトコル仕様データ500が生成され、形式的検証部120によって安全性の検証が行われる。また、生成された暗号プロトコル仕様データは暗号プロトコル実行部1220にも受け渡される。
【0105】
暗号プロトコル実行部1220は、形式的検証部120によって安全性が証明された検証可能な暗号プロトコル仕様データ500から利用者の指示入力等に従って実行可能な暗号プロトコルを生成し、生成した実行可能な暗号プロトコルを暗号プロトコルに保存する処理部である。
【0106】
暗号プロトコル記憶部1240は、暗号プロトコル実行部1220によって生成された実行可能な暗号プロトコルを記憶するHDDやメモリ等の記憶媒体である。
【0107】
次に、以上のように構成された本実施の形態にかかる暗号プロトコル設計装置1200による暗号プロトコルの設計処理について説明する。図15は、暗号プロトコル設計装置1200による暗号プロトコルの設計処理の手順を示すフローチャートである。
【0108】
まず、暗号プロトコル仕様設計部1210は、利用者の指定等により暗号プロトコル部品記憶部1230から生成に必要な第1記述部品、第2記述部品を読み出す(ステップS1501)。そして、暗号プロトコル仕様設計部1210は、読み出した第1記述部品、第2記述部品を利用者の指示等により組み合わせて暗号プロトコル仕様データを生成する(ステップS1502)。
【0109】
次に、検証可能暗号プロトコル仕様生成部1010によって、生成された暗号プロトコル仕様データから検証可能な暗号プロトコル仕様データ500を生成する(ステップS1503)。ここで、検証可能暗号プロトコル仕様生成部1010による検証可能な暗号プロトコル仕様データ500の生成処理については、図11で説明した実施の形態2と同様に行われる。すなわち、暗号プロトコル仕様データの第2記述部のUCにおける記述から理想機能のエンティティが付加し、攻撃者としてのシミュレータの記述を削除して理想機能に対する記述に置換(シミュレータ(敵)Sと理想機能との間の情報の授受の記述をシミュレータ(敵)Sと理想機能との間の授受情報を攻撃に利用可能な情報として変換し、シミュレータ(敵)Sが理想機能から即座の配信を要求される記述を理想機能が即座の配信を行う記述に変換)することによって、UCにおける仕様と形式的証明における仕様とを整合性をとって記述された検証可能な暗号プロトコル仕様データ500を生成する。
【0110】
次に、検証可能な暗号プロトコル仕様データ500が生成されたら、形式的検証部120によって、この検証可能な暗号プロトコル仕様データ500の安全性検証を行う(ステップS1504)。ここで、形式的検証部120による検証可能な暗号プロトコル仕様データ500の安全性検証の処理については、図8、図9−1及び図9−2で説明した実施の形態1および2と同様に行われる。
【0111】
形式的検証部120による安全性検証処理が完了したら、検証結果出力部130はその検証結果を出力するとともに、形式的検証部120によって検証可能な暗号プロトコル仕様データ500に欠陥がないと証明されたか否か、すなわち安全性が証明されたか否かを判断する(ステップS1505)。そして、検証可能な暗号プロトコル仕様データ500に欠陥がある場合には(ステップS1505:No)、ステップS1501からS1504までの処理を繰り返す。
【0112】
一方、ステップS1505において、検証可能な暗号プロトコル仕様データ500に欠陥がない場合、すなわち安全性が証明された場合には(ステップS1505:Yes)、暗号プロトコル実行部1220によって検証可能な暗号プロトコル仕様データ500から利用者の指示等により実行可能な暗号プロトコルを生成して暗号プロトコル記憶部1240に保存する(ステップS1506)。これにより、安全性が証明された暗号プロトコルが設計されることになる。
【0113】
このように実施の形態3にかかる暗号プロトコル設計装置1200では、第1記述部品と第2記述部品から暗号プロトコル仕様データを生成し、生成した暗号プロトコル仕様データから汎用的結合可能性証明で定義される理想機能に関するエンティティを含むとともに攻撃者としてのシミュレータに関する記述が存在しない検証可能な暗号プロトコルを生成してその安全性検証を行い、安全性が証明された暗号プロトコル仕様データに基づいて実現可能な暗号プロトコルを生成しているので、計算量的証明における暗号プロトコル仕様と形式的検証における暗号プロトコル仕様とを整合性をとった上で、プリミティブな安全性を計算量的証明により確保しつつ、複雑な暗号プロトコルについては形式的検証による機械的な検証処理により安全性検証の労力を軽減することともに、確実な暗号プロトコルを設計することができる。
【0114】
実施の形態1および2の暗号プロトコル安全性検証装置、実施の形態3の暗号プロトコル設計装置は、CPUなどの制御装置と、ROM(Read Only Memory)やRAMなどの記憶装置と、HDD、CDドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0115】
実施の形態1および2の暗号プロトコル安全性検証装置で実行される暗号プロトコル安全性検証プログラム、実施の形態3の暗号プロトコル設計装置で実行される暗号プロトコル設計プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0116】
また、実施の形態1および2の暗号プロトコル安全性検証装置で実行される暗号プロトコル安全性検証プログラム、実施の形態3の暗号プロトコル設計装置で実行される暗号プロトコル設計プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、実施の形態1および2の暗号プロトコル安全性検証装置で実行される暗号プロトコル安全性検証プログラム、実施の形態3の暗号プロトコル設計装置で実行される暗号プロトコル設計プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【0117】
また、実施の形態1および2の暗号プロトコル安全性検証装置で実行される暗号プロトコル安全性検証プログラム、実施の形態3の暗号プロトコル設計装置で実行される暗号プロトコル設計プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0118】
実施の形態1および2の暗号プロトコル安全性検証装置で実行される暗号プロトコル安全性検証プログラムは、上述した各部(暗号プロトコル仕様入力処理部110、検証可能暗号プロトコル仕様生成部1010、形式的検証部120、検証結果出力部130)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体から暗号プロトコル安全性検証プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、暗号プロトコル仕様入力処理部110、検証可能暗号プロトコル仕様生成部1010、形式的検証部120、検証結果出力部130が主記憶装置上に生成されるようになっている。
【0119】
また、実施の形態3の暗号プロトコル設計装置で実行される暗号プロトコル設計プログラムは、上述した各部(暗号プロトコル仕様設計部1210、検証可能暗号プロトコル仕様生成部1010、形式的検証部120、検証結果出力部130、暗号プロトコル実行部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体から暗号プロトコル安全性検証プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、暗号プロトコル仕様設計部1210、検証可能暗号プロトコル仕様生成部1010、形式的検証部120、検証結果出力部130、暗号プロトコル実行部が主記憶装置上に生成されるようになっている。
【0120】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【図面の簡単な説明】
【0121】
【図1】実施の形態1にかかる暗号プロトコル安全性検証装置の機能的構成を示すブロック図である。
【図2】UCの概要を説明するための模式図である。
【図3】署名に関する理想機能である署名理想機能FSIGの一例を示す説明図である。
【図4】プロトコルπSの一例を示す説明図である。
【図5】実施の形態1にかかる暗号プロトコル安全検証装置で入力される検証可能な暗号プロトコル仕様データ500のデータ構造を示す模式図である。
【図6】検証可能な暗号プロトコル仕様データ500の第1記述部501の例を示す説明図である。
【図7−1】暗号プロトコル仕様における理想機能を使用した記述例を示す説明図である。
【図7−2】検証可能な暗号プロトコル仕様データ500の第2記述部502のプロトコル実行定義部の例を示す説明図である。
【図8】実施の形態1の暗号プロトコルの安全性検証処理の手順を示すフローチャートである。
【図9−1】推論実行部122による推論実行処理の手順を示すフローチャートである。
【図9−2】推論実行部122による推論実行処理の手順を示すフローチャート(図9−1の続き)である。
【図10】実施の形態2にかかる暗号プロトコル安全性検証装置の機能的構成を示すブロック図である。
【図11】検証可能暗号プロトコル仕様生成部1010による検証可能な暗号プロトコル仕様データ500の生成処理の手順を示すフローチャートである。
【図12】認証機能を持ったチャンネルの理想機能である認証チャンネル理想機能FAUTHの一例を示す説明図である。
【図13】実施の形態2の変形例における検証可能暗号プロトコル仕様生成部1010による検証可能な暗号プロトコル仕様データ500の生成処理の手順を示すフローチャートである。
【図14】実施の形態3にかかるい暗号プロトコル設計装置の機能的構成を示すブロック図である。
【図15】暗号プロトコル設計装置1200による暗号プロトコルの設計処理の手順を示すフローチャートである。
【符号の説明】
【0122】
100,1000 暗号プロトコル安全性検証装置
110 暗号プロトコル仕様入力処理部
120 形式的検証部
121 デフォルト目標生成部
122 推論実行部
123 解析部
141 初期条件記憶部
142 プロトコル記憶部
143 定義記憶部
144 ユーザ目標記憶部
145 デフォルト目標記憶部
151 推論規則記憶部
152 証明済み文記憶部
1010 検証可能暗号プロトコル仕様生成部
1200 暗号プロトコル設計装置
1210 暗号プロトコル仕様設計部
1220 暗号プロトコル実行部
1230 暗号プロトコル部品記憶部
1240 暗号プロトコル記憶部

【特許請求の範囲】
【請求項1】
現実に暗号プロトコルの実行に関与するパーティに関する処理が記述された第1記述部と、汎用結合可能安全性で定義される理想のプロトコルと対応し、現実に暗号プロトコルの実行に関与するパーティおよび現実に暗号プロトコルの実行に関与しない第1の仮想のエンティティに関する処理が記述され、現実に暗号プロトコルの実行に関与しない第2の仮想のエンティティに関する記述を含まない第2記述部とを含む検証可能な暗号プロトコル仕様データであって、前記第1の仮想のエンティティは、前記理想のプロトコルにおける理想機能に対応し、前記第2の仮想のエンティティは、前記理想のプロトコルにおけるシミュレータに対応する検証可能な暗号プロトコル仕様データにおける前記パーティおよび前記第1の仮想のエンティティに関する処理の欠陥の有無を、前記検証可能な暗号プロトコル仕様データの記述に基づいて検証する形式的検証手段
を備えたことを特徴とする暗号プロトコル安全性検証装置。
【請求項2】
前記検証可能な暗号プロトコル仕様データを入力する暗号プロトコル仕様入力処理手段をさらに備え、
前記形式的検証手段は、前記暗号プロトコル仕様入力処理手段によって入力された前記検証可能な暗号プロトコル仕様データ検証可能な暗号プロトコル仕様データにおける前記パーティおよび前記第1の仮想のエンティティの両方に関する処理の欠陥の有無を、前記検証可能な暗号プロトコル仕様データの記述に基づいて検証することを特徴とする請求項1に記載の暗号プロトコル安全性検証装置。
【請求項3】
現実に暗号プロトコルの実行に関与するパーティに関する処理が記述された第1記述部と、現実に暗号プロトコルの実行に関与するパーティおよび現実に暗号プロトコルの実行に関与しない第1の仮想のエンティティおよび第2の仮想のエンティティに関する処理が記述された第2記述部とを含む暗号プロトコル仕様データに対して、前記第2の仮想のエンティティに関する記述を削除して、前記検証可能な暗号プロトコル仕様データを生成する検証可能暗号プロトコル生成手段をさらに備えたことを特徴とする請求項1に記載の暗号プロトコル安全性検証装置。
【請求項4】
前記検証可能暗号プロトコル生成手段は、前記第2記述部に、前記第2の仮想のエンティティに関する記述が存在するか否かを判断し、存在すると判断した場合には、前記第2の仮想のエンティティによる記述を削除して、前記検証可能な暗号プロトコル仕様データを生成することを特徴とする請求項3に記載の暗号プロトコル安全性検証装置。
【請求項5】
前記検証可能暗号プロトコル生成手段は、さらに、前記第2の仮想のエンティティと前記第1の仮想のエンティティとの間の授受情報を攻撃時に利用可能な情報に置換し、前記第2記述部に、前記第2の仮想のエンティティに関する記述が存在すると判断した場合には、前記第1の仮想のエンティティによる前記第2の仮想のエンティティに対する前記パーティへのメッセージ配信の依頼に関する記述を、前記第1の仮想のエンティティが直接前記パーティへメッセージを配信する記述に置換することにより、前記検証可能な暗号プロトコル仕様データを生成することを特徴とする請求項4に記載の暗号プロトコル安全性検証装置。
【請求項6】
前記検証可能暗号プロトコル生成手段は、さらに、前記第2の仮想のエンティティと前記第1の仮想のエンティティとの間の授受情報を攻撃時に利用可能な情報に置換し、前記第2記述部に、前記第2の仮想のエンティティに関する記述が存在すると判断した場合には、前記第1の仮想のエンティティが前記パーティへのメッセージ配信を行う前に前記第2の仮想のエンティティにその配信許可を要求してから配信を行う記述を、前記第1の仮想のエンティティが前記第2の仮想のエンティティの許可を要求することなく配信を行う記述に置換することにより、前記検証可能な暗号プロトコル仕様データを生成することを特徴とする請求項4に記載の暗号プロトコル安全性検証装置。
【請求項7】
暗号プロトコル仕様データの検証の初期過程において、正しいことを仮定された文を記憶する初期条件記憶手段と、
暗号プロトコル仕様データの検証の過程において、正しいことが検証された文を記憶する証明済み文記憶手段と、をさらに備え、
前記形式的検証手段は、
前記第2記述部に含まれるプロトコルの実行処理を記述したプロトコル実行定義部から推論の当面の目標となるデフォルト目標情報を生成するデフォルト目標生成手段と、
前記デフォルト目標生成手段によって生成された前記デフォルト目標情報に含まれる文と等価な文が前記初期条件記憶手段または前記証明済み文記憶手段に存在するか否かを判断し、前記デフォルト目標情報の全ての文が前記初期条件記憶手段または前記証明済み文記憶手段に存在する場合にはそのデフォルト目標情報は正しいと証明されたと推論する推論手段と、
を備えたことを特徴とする請求項1〜5のいずれか一つに記載の暗号プロトコル安全性検証装置。
【請求項8】
前記推論手段は、さらに、前記第2記述部に含まれる最終目標を示すゴール部の記述をユーザ目標として、当該ユーザ情報に含まれる文と等価な文が前記初期条件記憶手段または前記証明済み文記憶手段に存在するか否かを判断し、前記ユーザ目標情報の全ての文が前記初期条件記憶手段または前記証明済み文記憶手段に存在する場合には欠陥なしと証明されたと推論することを特徴とする請求項6に記載の暗号プロトコル安全性検証装置。
【請求項9】
現実に暗号プロトコルの実行に関与するパーティに関する処理の記述である第1記述部を構成する第1記述部品と、前記第1記述部により安全に実現されることが証明されている、現実に暗号プロトコルの実行に関与するパーティに関する処理と現実に暗号プロトコルの実行に関与しない第1の仮想のエンティティと第2の仮想のエンティティに関する処理の記述である第2記述部を構成する第2記述部品とを記憶する暗号プロトコル部品記憶手段と、
前記暗号プロトコル部品記憶手段に記憶された前記第2記述部品と新たに追加した前記第1記述部とを含む暗号プロトコル仕様データを生成する暗号プロトコル仕様設計手段と、
前記暗号プロトコル仕様設計手段によって生成された前記暗号プロトコル仕様データに対して、前記第2記述部に対して前記第2の仮想のエンティティに関する記述を削除して、検証可能な暗号プロトコル仕様データを生成する検証可能暗号プロトコル生成手段と、
前記検証可能暗号プロトコル仕様生成手段によって生成された前記検証可能な暗号プロトコル仕様データにおける前記パーティおよび前記第1の仮想のエンティティの両方に関する処理の欠陥の有無を、前記検証可能な暗号プロトコル仕様データの記述に基づいて検証する形式的検証手段と、
前記形式的検証手段によって欠陥なしと証明された前記検証可能な暗号プロトコル仕様データに基づいて実現可能な暗号プロトコルを生成する暗号プロトコル実行手段と、
を備えたことを特徴とする暗号プロトコル設計装置。
【請求項10】
現実に暗号プロトコルの実行に関与するパーティに関する処理が記述された第1記述部と、汎用結合可能安全性で定義される理想のプロトコルと対応し、現実に暗号プロトコルの実行に関与するパーティおよび現実に暗号プロトコルの実行に関与しない第1の仮想のエンティティに関する処理が記述され、現実に暗号プロトコルの実行に関与しない第2の仮想のエンティティに関する記述を含まない第2記述部とを含む検証可能な暗号プロトコル仕様データであって、前記第1の仮想のエンティティは、前記理想のプロトコルにおける理想機能に対応し、前記第2の仮想のエンティティは、前記理想のプロトコルにおけるシミュレータに対応する検証可能な暗号プロトコル仕様データにおける前記パーティおよび第1の仮想のエンティティに関する処理の欠陥の有無を、前記検証可能な暗号プロトコル仕様データの記述に基づいて検証する形式的検証ステップ
を含むことを特徴とする暗号プロトコル安全性検証方法。
【請求項11】
現実に暗号プロトコルの実行に関与するパーティに関する処理の記述である第1記述部を構成する第1記述部品と、前記第1記述部により安全に実現されることが証明されている、現実に暗号プロトコルの実行に関与するパーティに関する処理と現実に暗号プロトコルの実行に関与しない第1の仮想のエンティティと第2の仮想のエンティティに関する処理の記述である第2記述部を構成する第2記述部品とを記憶する暗号プロトコル部品記憶手段に記憶された前記第2記述部品と新たに追加した前記第1記述部とを含む暗号プロトコル仕様データを生成する暗号プロトコル仕様設計ステップと、
前記暗号プロトコル仕様設計ステップによって生成された前記暗号プロトコル仕様データに対して、前記第2記述部に対して前記第2の仮想のエンティティに関する記述を削除して、検証可能な暗号プロトコル仕様データを生成する検証可能暗号プロトコル生成ステップと、
前記検証可能暗号プロトコル仕様生成ステップによって生成された前記検証可能な暗号プロトコル仕様データにおける前記パーティおよび前記第1の仮想のエンティティの両方に関する処理の欠陥の有無を、前記検証可能な暗号プロトコル仕様データの記述に基づいて検証する形式的検証ステップと、
前記形式的検証ステップによって欠陥なしと証明された前記検証可能な暗号プロトコル仕様データに基づいて実現可能な暗号プロトコルを生成する暗号プロトコル実行ステップと、
を含むことを特徴とする暗号プロトコル設計方法。
【請求項12】
現実に暗号プロトコルの実行に関与するパーティに関する処理が記述された第1記述部と、汎用結合可能安全性で定義される理想のプロトコルと対応し、現実に暗号プロトコルの実行に関与するパーティおよび現実に暗号プロトコルの実行に関与しない第1の仮想のエンティティに関する処理が記述され、現実に暗号プロトコルの実行に関与しない第2の仮想のエンティティに関する記述を含まない第2記述部とを含む検証可能な暗号プロトコル仕様データであって、前記第1の仮想のエンティティは、前記理想のプロトコルにおける理想機能に対応し、前記第2の仮想のエンティティは、前記理想のプロトコルにおけるシミュレータに対応する検証可能な暗号プロトコル仕様データにおける前記パーティおよび第1の仮想のエンティティに関する処理の欠陥の有無を、前記検証可能な暗号プロトコル仕様データの記述に基づいて検証する形式的検証ステップ
をコンピュータに実行させる暗号プロトコル安全性検証プログラム。
【請求項13】
現実に暗号プロトコルの実行に関与するパーティに関する処理の記述である第1記述部を構成する第1記述部品と、前記第1記述部により安全に実現されることが証明されている、現実に暗号プロトコルの実行に関与するパーティに関する処理と現実に暗号プロトコルの実行に関与しない第1の仮想のエンティティと第2の仮想のエンティティに関する処理の記述である第2記述部を構成する第2記述部品とを記憶する暗号プロトコル部品記憶手段に記憶された前記第2記述部品と新たに追加した前記第1記述部とを含む暗号プロトコル仕様データを生成する暗号プロトコル仕様設計ステップと、
前記暗号プロトコル仕様設計ステップによって生成された前記暗号プロトコル仕様データに対して、前記第2記述部に対して前記第2の仮想のエンティティに関する記述を削除して、検証可能な暗号プロトコル仕様データを生成する検証可能暗号プロトコル生成ステップと、
前記検証可能暗号プロトコル仕様生成ステップによって生成された前記検証可能な暗号プロトコル仕様データにおける前記パーティおよび前記第1の仮想のエンティティの両方に関する処理の欠陥の有無を、前記検証可能な暗号プロトコル仕様データの記述に基づいて検証する形式的検証ステップと、
前記形式的検証ステップによって欠陥なしと証明された前記検証可能な暗号プロトコル仕様データに基づいて実現可能な暗号プロトコルを生成する暗号プロトコル実行ステップと、
をコンピュータに実行させる暗号プロトコル設計プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7−1】
image rotate

【図7−2】
image rotate

【図8】
image rotate

【図9−1】
image rotate

【図9−2】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2007−28447(P2007−28447A)
【公開日】平成19年2月1日(2007.2.1)
【国際特許分類】
【出願番号】特願2005−210533(P2005−210533)
【出願日】平成17年7月20日(2005.7.20)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】