(57)【特許請求の範囲】
【請求項１】
賛成および反対のいずれかの値を取る第１の投票情報を与えられた第１の利用者装置と、賛成および反対のいずれかの値を取る第２の投票情報を与えられた第２の利用者装置とが、矛盾なくそれぞれ第１の合意情報と第２の合意情報とを得る合意情報取得方法であって、
前記第１の利用者装置が、
前記第１の投票情報を取得するステップと、
乱数を発生するステップと、
前記乱数のハッシュ値を計算するステップと、
前記第２の利用者装置に対し、前記ハッシュ値と、前記第１の投票情報とを含む情報である第１のメッセージを送信するステップと、
前記第１の投票情報の値が反対であった場合、第１の合意情報として中止を示す情報を出力して停止するステップと、
を含む第１の処理を実行し、
前記第２の利用者装置が、
前記第１のメッセージを取得するステップと、
前記第２の投票情報を取得するステップと、
前記第１のメッセージに含まれる前記第１の投票情報の値が反対であった場合、第２の合意情報として中止を示す情報を出力して停止するステップと、
前記第１の利用者装置に対し、前記第１のメッセージに含まれる前記ハッシュ値と、前記第２の投票情報とを含む情報である第２のメッセージを送信するステップと、
前記第２の投票情報の値が反対であった場合、前記第２の合意情報として中止を示す情報を出力して停止するステップと、
を含む第２の処理を実行し、
前記第１の利用者装置が、
前記第２のメッセージを取得するステップと、
前記第２のメッセージに含まれる前記ハッシュ値が前記乱数のハッシュ値と等しいことを検証するステップと、
前記第２のメッセージに含まれる前記第２の投票情報の値が反対であった場合、前記第１の合意情報として中止を示す情報を出力して停止するステップと、
前記第２の利用者装置に対し、前記乱数を含む情報である第３のメッセージを送信するステップと、
前記第１の合意情報として完了を示す情報を出力して停止するステップと、
を含む第３の処理を実行し、
前記第２の利用者装置が、
前記第３のメッセージを取得するステップと、
前記第３のメッセージに含まれる前記乱数のハッシュ値を計算するステップと、
前記計算されたハッシュ値が、前記第１のメッセージに含まれるハッシュ値と等しいことを検証するステップと、
前記第２の合意情報として完了を示す情報を出力して停止するステップと、
を含む第４の処理を実行する、
合意情報取得方法。
【請求項２】
前記第１の利用者装置と前記第２の利用者装置とは、同値の電子情報である第１の秘密鍵を備え、
前記第１のメッセージおよび前記第２のメッセージの送受信は、前記第１の秘密鍵を用いた暗号化メッセージの送受信である、
請求項１に記載の合意情報取得方法。
【請求項３】
前記第１の利用者装置が前記第１の処理を実行した後に、合意取得の強制終了を指示する情報である第１の終了指示情報を入力として取得した場合には、
前記ハッシュ値と中止の依頼を示す情報である中止依頼情報とを含む情報である中止依頼メッセージを、記憶装置を備えた第三者装置に送信するステップ、
を含む中止依頼処理を実行し、
前記第三者装置が、
前記中止依頼メッセージを取得するステップと、
前記中止依頼メッセージと、前記記憶装置に記憶された情報とを用いて、合意の完了および中止のいずれかを判定するステップと、
前記判定に基づき、完了および中止のいずれかを示す情報である裁定情報を生成するステップと、
前記裁定情報と前記中止依頼メッセージに含まれるハッシュ値とを含む情報である第１の調停メッセージを、前記第１の利用者装置に対し送信するステップと、
を含む第１の調停処理を実行し、
前記第１の利用者装置が、
前記第１の調停メッセージを取得するステップと、
前記第１の調停メッセージに含まれるハッシュ値が、前記乱数のハッシュ値と等しいことを検証するステップと、
前記裁定情報に基づき前記第１の合意情報を出力して停止するステップと、
を含む第１の調停受諾処理を実行する、
請求項１または２に記載の合意情報取得方法。
【請求項４】
前記第１の利用者装置と前記第三者装置とは、同値の電子情報である第２の秘密鍵を備え、
前記中止依頼メッセージおよび第１の調停メッセージの送受信は、前記第２の秘密鍵を用いた暗号化メッセージの送受信である、
請求項３に記載の合意情報取得方法。
【請求項５】
前記第１の利用者装置が前記第１の処理を実行し、前記第２の利用者装置が前記第２の処理を実行した後に、前記第２の利用者装置が合意取得の強制終了を指示する情報である第２の終了指示情報を入力として取得した場合には、
前記第１のメッセージに含まれるハッシュ値と完了の依頼を示す情報である完了依頼情報とを含む情報である完了依頼メッセージを、前記第三者装置に送信するステップ、
を含む完了依頼処理を実行し、
前記第三者装置が、
前記完了依頼メッセージを取得するステップと、
前記完了依頼メッセージと前記記憶装置に記憶された情報とを用いて、合意の完了および中止のいずれかを判定するステップと、
前記判定に基づき、前記裁定情報を生成するステップと、
前記裁定情報と前記完了依頼メッセージに含まれるハッシュ値とを含む情報である第２の調停メッセージを、前記第２の利用者装置に対し送信するステップ
と、
を含む第２の調停処理を実行し、
前記第２の利用者装置が、
前記第２の調停メッセージを取得するステップと、
前記第２の調停メッセージに含まれるハッシュ値が、前記第１のメッセージに含まれるハッシュ値と等しいことを検証するステップと、
前記裁定情報に基づき前記第２の合意情報を出力して停止するステップと、
を含む第２の調停受諾処理を実行する、
請求項３または４に記載の合意情報取得方法。
【請求項６】
前記第２の利用者装置と前記第三者装置とは、同値の電子情報である第３の秘密鍵を備え、
前記完了依頼メッセージおよび第２の調停メッセージの送受信は、前記第３の秘密鍵を用いた暗号化メッセージの送受信である、
請求項５に記載の合意情報取得方法。
【請求項７】
前記第三者装置は、前記記憶装置内に中止済みリストと完了済みリストとを備え、
前記第１の調停処理は、
前記中止依頼メッセージに含まれるハッシュ値が前記完了済みリストに登録されているか否かを参照するステップと、
前記中止依頼メッセージに含まれるハッシュ値が登録されていた場合、合意の完了を判定するステップと、
前記中止依頼メッセージに含まれるハッシュ値が登録されていなかった場合、前記中止済みリストに前記ハッシュ値を登録し、合意の中止を判定するステップと、
を含み、
前記第２の調停処理は、
前記完了依頼メッセージに含まれるハッシュ値が前記中止済みリストに登録されているか否かを参照するステップと、
前記完了依頼メッセージに含まれるハッシュ値が登録されていた場合、合意の中止を判定するステップと、
前記完了依頼メッセージに含まれるハッシュ値が登録されていなかった場合、前記完了済みリストに前記ハッシュ値を登録し、合意の完了を判定するステップと、
を含む請求項５または６に記載の合意情報取得方法。
【請求項８】
前記第１の利用者装置は第１の署名鍵を備え、前記第２の利用者装置は第２の署名鍵を備え、前記第三者装置は第３の署名鍵を備え、
前記第１の利用者装置が、前記第１のメッセージおよび中止依頼メッセージのいずれかを送信する際に、前記第１の署名鍵を用いて送信されるメッセージに電子署名を付与するステップを含み、
前記第２の利用者装置が、前記第２のメッセージおよび完了依頼メッセージのいずれかを送信する際に、前記第２の署名鍵を用いて送信されるメッセージに電子署名を付与するステップを含み、
前記第三者装置が、前記第１の調停メッセージおよび第２の調停メッセージのいずれかを送信する際に、前記第３の署名鍵を用いて送信されるメッセージに電子署名を付与するステップを含む、
請求項５〜７のいずれか１項に記載の合意情報取得方法。
【請求項９】
他の利用者装置との間で、当該他の利用者装置に与えられた賛成および反対のいずれかの値を取る第２の投票情報と、自装置に与えられた賛成および反対のいずれかの値を取る第１の投票情報とによって、当該他の利用者装置が得た第２の合意情報と矛盾なく自装置が第１の合意情報を得る利用者装置であって、
前記第１の投票情報を取得する手段と、
乱数を発生する手段と、
前記乱数のハッシュ値を計算する手段と、
前記他の利用者装置に対し、前記ハッシュ値と、前記第１の投票情報とを含む情報である第１のメッセージを送信する手段と、
前記第１の投票情報の値が反対であった場合、第１の合意情報として中止を示す情報を出力して停止する手段と、
前記第１のメッセージに含まれる前記ハッシュ値と、前記第２の投票情報とを含む情報である第２のメッセージを、前記他の利用者装置から取得する手段と、
前記第２のメッセージに含まれる前記ハッシュ値が前記乱数のハッシュ値と等しいことを検証する手段と、
前記第２のメッセージに含まれる前記第２の投票情報の値が反対であった場合、前記第１の合意情報として中止を示す情報を出力して停止する手段と、
前記他の利用者装置に対し、前記乱数を含む情報である第３のメッセージを送信する手段と、
前記第１の合意情報として完了を示す情報を出力して停止する手段と、
を備える利用者装置。
【請求項１０】
他の利用者装置との間で、当該他の利用者装置に与えられた賛成および反対のいずれかの値を取る第１の投票情報と、自装置に与えられた賛成および反対のいずれかの値を取る第２の投票情報とによって、当該他の利用者装置が得た第１の合意情報と矛盾なく自装置が第２の合意情報を得る利用者装置であって、
前記他の利用者装置が計算した乱数のハッシュ値と、前記第１の投票情報とを含む情報である第１のメッセージを、前記他の利用者装置から取得する手段と、
前記第２の投票情報を取得する手段と、
前記第１のメッセージに含まれる前記第１の投票情報の値が反対であった場合、第２の合意情報として中止を示す情報を出力して停止する手段と、
前記他の利用者装置に対し、前記第１のメッセージに含まれる前記ハッシュ値と、前記第２の投票情報とを含む情報である第２のメッセージを送信する手段と、
前記第２の投票情報の値が反対であった場合、前記第２の合意情報として中止を示す情報を出力して停止する手段と、
前記乱数を含む情報である第３のメッセージを、前記他の利用者装置から取得する手段と、
前記第３のメッセージに含まれる前記乱数のハッシュ値を計算する手段と、
前記計算されたハッシュ値が、前記第１のメッセージに含まれるハッシュ値と等しいことを検証する手段と、
前記第２の合意情報として完了を示す情報を出力して停止する手段と、
を備える利用者装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２つの利用者装置間で、楽観的に矛盾のない合意を得る合意情報取得方法および利用者装置に関する。
【背景技術】
【０００２】
電子商取引を安心して利用可能とするためには、取引の公平性を保証することが重要である。たとえば映像データや音楽データなどのコンテンツ情報を購入する際、購入対象となるコンテンツ情報と支払い情報とが、相互に不可分に交換されることを保証する必要がある。二者以上の間で電子情報が相互に不可分に交換されるとき、これを公平な交換（fair exchange）と呼ぶ。
【０００３】
公平な交換を実現する技術として、公平な交換が、信頼できるプロセス間における非ブロック原子コミットメント（ＮＢＡＣ：Non-Blocking Atomic Commitment）と呼ばれる問題に帰着可能であることに基づく方法が提案されている。ＮＢＡＣとは、賛成／反対を初期値として持つ複数のプロセスが、交渉を介して完了（commit）／中止（abort）のいずれかを有限時間内に共通の合意として得ることを意味する（例えば、非特許文献１および２参照）。
【０００４】
ＮＢＡＣは、独立したプロセス間で処理やリソースの一貫性を持たせるために必要な性質であり、典型的には分散トランザクションシステムなどにおいて実現される。
【非特許文献１】ノン−ブロッキング  アトミック  コミット(Non-Blocking Atomic Commit)、[２００５年１０月２１日検索]、インターネット＜URL：http://www-i4.informatik.rwth-aachen.de/lufg/teaching/ss2004/dds/06coordination2.pdf
【非特許文献２】ギルダス・アヴォワンヌ(Gildas Avoine)、外５名、“レデューシング  フェア  エクスチェンジ  トウ  アトミック  コミット(Reducing FairExchange to Atomic Commit)”、テクニカル  レポート  アイシー  ２００４年１１月（Technical Report IC/2004/11）、［online］、２００４年２月３日、スイス  フェデラル  インスティチュート  オブ  テクノロジー  （イーピーエフエル）  スクール  オブ  コンピュータ  アンド  コミュニケーション  サイエンスズ（Swiss Federal Institute of Technology (EPFL) School of Computer andCommunication Sciences）、[２００５年１０月２１日検索]、インターネット＜URL：http://icwww.epfl.ch/publications/documents/IC_TECH_REPORT_200411.pdf
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、ＮＢＡＣは分散処理における困難な問題の一つであり、プロセス間の通信路が信頼できない(unreliable)場合には、ＮＢＡＣをプロセス間の相互通信のみによって実現することは不可能とされる。ＮＢＡＣを実現するプロセスとしてＩＣカードなどの耐タンパ装置を用いた場合を仮定しても、それらのプロセス間の通信路が信頼できるという仮定を置くことはできない。
【０００６】
典型的な分散トランザクションシステムの実現においては、コーディネータ（調停装置）と呼ばれるサブシステムを配置し、コーディネータとプロセス間の通信路は信頼できるという仮定を置くことによりこの問題を解決する。コーディネータは信頼できる第三者（ＴＴＰ）として中央集権的に完了／中止の判断を行い、各プロセスはコーディネータの判断に従い完了／中止を決定する（２相コミットメント）。しかし、この手法によりＮＢＡＣを実現した場合、合意のたびにコーディネータによる仲介が必須となり、通信負荷の集中が問題となる。
【０００７】
ここで上記非特許文献２に記載のMonte-CarloＮＢＡＣにおいては、上記のＮＢＡＣの定義を弱め、合意が「確率ｐで実現される」確率的なＮＢＡＣプロトコルを耐タンパ装置間で実現する。しかし、Monte-Carlo ＮＢＡＣはコーディネータなどのＴＴＰを用いないため負荷集中は問題とならないが、合意の保証が確率的であるため、これに基づく交換の公平性も確率的にしか保証できないことや、合意が保証できる確率を大きくするためには多くの通信回数を必要とすることなどが問題となる。
【０００８】
本発明は上記に鑑みなされたもので、本発明の目的は、ＩＣカード等の利用者装置間で有限時間内に一貫した合意、すなわちＮＢＡＣを楽観的に得ることができる合意情報取得方法および利用者装置を提供することにある。なお、ここで楽観的とは、通常時には当事者（すなわちＩＣカード）間のみの相互通信で処理を実行し、処理中に（相手が途中で音信不通になるなど）異常が発生して相互通信のみでは合意が達成できなくなった際にのみＴＴＰを用いて一貫性を持つ合意を得ることを意味する。
【課題を解決するための手段】
【０００９】
上記課題を解決するための本発明は、賛成および反対のいずれかの値を取る第１の投票情報を与えられた第１の利用者装置と、賛成および反対のいずれかの値を取る第２の投票情報を与えられた第２の利用者装置とが、矛盾なくそれぞれ第１の合意情報と第２の合意情報とを得る合意情報取得方法であって、第１の利用者装置が、第１の投票情報を取得するステップと、乱数を発生するステップと、乱数のハッシュ値を計算するステップと、第２の利用者装置に対し、ハッシュ値と、第１の投票情報とを含む情報である第１のメッセージを送信するステップと、第１の投票情報の値が反対であった場合、第１の合意情報として中止を示す情報を出力して停止するステップと、を含む第１の処理を実行し、第２の利用者装置が、第１のメッセージを取得するステップと、第２の投票情報を取得するステップと、第１のメッセージに含まれる第１の投票情報の値が反対であった場合、第２の合意情報として中止を示す情報を出力して停止するステップと、第１の利用者装置に対し、第１のメッセージに含まれるハッシュ値と、第２の投票情報とを含む情報である第２のメッセージを送信するステップと、第２の投票情報の値が反対であった場合、第２の合意情報として中止を示す情報を出力して停止するステップと、を含む第２の処理を実行し、第１の利用者装置が、第２のメッセージを取得するステップと、第２のメッセージに含まれるハッシュ値が乱数のハッシュ値と等しいことを検証するステップと、第２のメッセージに含まれる第２の投票情報の値が反対であった場合、第１の合意情報として中止を示す情報を出力して停止するステップと、第２の利用者装置に対し、乱数を含む情報である第３のメッセージを送信するステップと、第１の合意情報として完了を示す情報を出力して停止するステップと、を含む第３の処理を実行し、第２の利用者装置が、第３のメッセージを取得するステップと、第３のメッセージに含まれる乱数のハッシュ値を計算するステップと、計算されたハッシュ値が、第１のメッセージに含まれるハッシュ値と等しいことを検証するステップと、第２の合意情報として完了を示す情報を出力して停止するステップと、を含む第４の処理を実行することを特徴とする。
【００１０】
この構成によれば、通信に障害がない場合（第1のメッセージから第3のメッセージまでが正常に送受された場合）においては、ＴＴＰを介さずに、第1および第２の利用者装置間のハッシュ値を用いた信頼できる相互通信のみで処理を行うため、第1の利用者装置と第２の利用者装置との間で、「完了」もしくは「中止」のいずれかを、調停装置の助けなしに両方の利用者装置の合意として得ることができ、ＮＢＡＣを楽観的に得ることができる。
【００１１】
この場合、第１の利用者装置と第２の利用者装置とは、同値の電子情報である第１の秘密鍵を備え、第１のメッセージおよび第２のメッセージの送受信は、第１の秘密鍵を用いた暗号化メッセージの送受信であることが好適である。
【００１２】
この構成によれば、第１のメッセージおよび第２のメッセージの送受信は、第１の秘密鍵を用いた暗号化を行うため、第1の利用者装置と第２の利用者装置との間の通信路が安全でない場合であっても、合意を正しく得ることができる。
【００１３】
この場合、第１の利用者装置が第１の処理を実行した後に、合意取得の強制終了を指示する情報である第１の終了指示情報を入力として取得した場合には、ハッシュ値と中止の依頼を示す情報である中止依頼情報とを含む情報である中止依頼メッセージを、記憶装置を備えた第三者装置に送信するステップを含む中止依頼処理を実行し、第三者装置が、中止依頼メッセージを取得するステップと、中止依頼メッセージと、記憶装置に記憶された情報とを用いて、合意の完了および中止のいずれかを判定するステップと、判定に基づき、完了および中止のいずれかを示す情報である裁定情報を生成するステップと、裁定情報と中止依頼メッセージに含まれるハッシュ値とを含む情報である第１の調停メッセージを、第１の利用者装置に対し送信するステップと、を含む第１の調停処理を実行し、第１の利用者装置が、第１の調停メッセージを取得するステップと、第１の調停メッセージに含まれるハッシュ値が、乱数のハッシュ値と等しいことを検証するステップと、裁定情報に基づき第１の合意情報を出力して停止するステップと、を含む第１の調停受諾処理を実行することが好適である。
【００１４】
この構成によれば、第三者装置が第１の調停処理を実行し、第１の利用者装置が第１の調停受諾処理を実行するため、第1のメッセージもしくは第2のメッセージが正常に到達しなかった場合でも、第1の利用者装置が合意を得ることが可能となる。
【００１５】
この場合、第１の利用者装置と第三者装置とは、同値の電子情報である第２の秘密鍵を備え、中止依頼メッセージおよび第１の調停メッセージの送受信は、第２の秘密鍵を用いた暗号化メッセージの送受信であることが好適である。
【００１６】
この構成によれば、中止依頼メッセージおよび第１の調停メッセージの送受信は、第２の秘密鍵を用いた暗号化を行うため、第1の利用者装置と第三者装置との間の通信路が安全でない場合であっても、合意を正しく得ることができる。
【００１７】
この場合、第１の利用者装置が第１の処理を実行し、第２の利用者装置が第２の処理を実行した後に、第２の利用者装置が合意取得の強制終了を指示する情報である第２の終了指示情報を入力として取得した場合には、第１のメッセージに含まれるハッシュ値と完了の依頼を示す情報である完了依頼情報とを含む情報である完了依頼メッセージを、第三者装置に送信するステップ、を含む完了依頼処理を実行し、第三者装置が、完了依頼メッセージを取得するステップと、完了依頼メッセージと記憶装置に記憶された情報とを用いて、合意の完了および中止のいずれかを判定するステップと、判定に基づき、裁定情報を生成するステップと、裁定情報と完了依頼メッセージに含まれるハッシュ値とを含む情報である第２の調停メッセージを、第２の利用者装置に対し送信するステップと、を含む第２の調停処理を実行し、第２の利用者装置が、第２の調停メッセージを取得するステップと、第２の調停メッセージに含まれるハッシュ値が、第１のメッセージに含まれるハッシュ値と等しいことを検証するステップと、裁定情報に基づき第２の合意情報を出力して停止するステップと、を含む第２の調停受諾処理を実行することが好適である。
【００１８】
この構成によれば、第三者装置が第２の調停処理を実行し、第２の利用者装置が第２の調停受諾処理を実行するため、第2のメッセージが正常に到達しなかった場合でも、第２の利用者装置が合意を得ることが可能となる。
【００１９】
この場合、第２の利用者装置と第三者装置とは、同値の電子情報である第３の秘密鍵を備え、完了依頼メッセージおよび第２の調停メッセージの送受信は、第３の秘密鍵を用いた暗号化メッセージの送受信であることが好適である。
【００２０】
この構成によれば、完了依頼メッセージおよび第２の調停メッセージの送受信は、第３の秘密鍵を用いた暗号化を行うため、第２の利用者装置と第三者装置との間の通信路が安全でない場合であっても、合意を正しく得ることができる。
【００２１】
この場合、第三者装置は、記憶装置内に中止済みリストと完了済みリストとを備え、第１の調停処理は、中止依頼メッセージに含まれるハッシュ値が完了済みリストに登録されているか否かを参照するステップと、中止依頼メッセージに含まれるハッシュ値が登録されていた場合、合意の完了を判定するステップと、中止依頼メッセージに含まれるハッシュ値が登録されていなかった場合、中止済みリストにハッシュ値を登録し、合意の中止を判定するステップと、を含み、第２の調停処理は、完了依頼メッセージに含まれるハッシュ値が中止済みリストに登録されているか否かを参照するステップと、完了依頼メッセージに含まれるハッシュ値が登録されていた場合、合意の中止を判定するステップと、完了依頼メッセージに含まれるハッシュ値が登録されていなかった場合、完了済みリストにハッシュ値を登録し、合意の完了を判定するステップとを含むことが好適である。
【００２２】
この構成によれば、第三者装置は、第１の調停処理において完了済みリストを参照し、第２の調停処理において中止済みリストを参照するため、第１のメッセージもしくは第２のメッセージが正常に到達しなかった場合でも、第1の利用者装置と第2の利用者装置とが得る合意が、一貫性を持つ（合意の結果が等しくなる）ことが保証される。
【００２３】
この場合、第１の利用者装置は第１の署名鍵を備え、第２の利用者装置は第２の署名鍵を備え、第三者装置は第３の署名鍵を備え、第１の利用者装置が、第１のメッセージおよび中止依頼メッセージのいずれかを送信する際に、第１の署名鍵を用いて送信されるメッセージに電子署名を付与するステップを含み、第２の利用者装置が、第２のメッセージおよび完了依頼メッセージのいずれかを送信する際に、第２の署名鍵を用いて送信されるメッセージに電子署名を付与するステップを含み、第三者装置が、第１の調停メッセージおよび第２の調停メッセージのいずれかを送信する際に、第３の署名鍵を用いて送信されるメッセージに電子署名を付与するステップを含むことが好適である。
【００２４】
この構成によれば、第１および第２の利用者装置と第三者装置とが、それぞれ署名鍵を用いた電子署名をメッセージに付与するため、それぞれの利用者装置ないし第三者装置との間の通信路が安全ではなく、かつ予め秘密情報が共有されておらずとも、各メッセージの改竄を防ぎ合意を正しく得ることができる。
【００２５】
また、本発明の別の態様によれば、他の利用者装置との間で、当該他の利用者装置に与えられた賛成および反対のいずれかの値を取る第２の投票情報と、自装置に与えられた賛成および反対のいずれかの値を取る第１の投票情報とによって、当該他の利用者装置が得た第２の合意情報と矛盾なく自装置が第１の合意情報を得る利用者装置であって、第１の投票情報を取得する手段と、乱数を発生する手段と、乱数のハッシュ値を計算する手段と、他の利用者装置に対し、ハッシュ値と、第１の投票情報とを含む情報である第１のメッセージを送信する手段と、第１の投票情報の値が反対であった場合、第１の合意情報として中止を示す情報を出力して停止する手段と、第１のメッセージに含まれるハッシュ値と、第２の投票情報とを含む情報である第２のメッセージを、他の利用者装置から取得する手段と、第２のメッセージに含まれるハッシュ値が乱数のハッシュ値と等しいことを検証する手段と、第２のメッセージに含まれる第２の投票情報の値が反対であった場合、第１の合意情報として中止を示す情報を出力して停止する手段と、他の利用者装置に対し、乱数を含む情報である第３のメッセージを送信する手段と、第１の合意情報として完了を示す情報を出力して停止する手段と、を備える利用者装置が提供される。
【００２６】
また、本発明の別の態様によれば、他の利用者装置との間で、当該他の利用者装置に与えられた賛成および反対のいずれかの値を取る第１の投票情報と、自装置に与えられた賛成および反対のいずれかの値を取る第２の投票情報とによって、当該他の利用者装置が得た第１の合意情報と矛盾なく自装置が第２の合意情報を得る利用者装置であって、他の利用者装置が計算した乱数のハッシュ値と、第１の投票情報とを含む情報である第１のメッセージを、他の利用者装置から取得する手段と、第２の投票情報を取得する手段と、第１のメッセージに含まれる第１の投票情報の値が反対であった場合、第２の合意情報として中止を示す情報を出力して停止する手段と、他の利用者装置に対し、第１のメッセージに含まれるハッシュ値と、第２の投票情報とを含む情報である第２のメッセージを送信する手段と、第２の投票情報の値が反対であった場合、第２の合意情報として中止を示す情報を出力して停止する手段と、乱数を含む情報である第３のメッセージを、他の利用者装置から取得する手段と、第３のメッセージに含まれる乱数のハッシュ値を計算する手段と、計算されたハッシュ値が、第１のメッセージに含まれるハッシュ値と等しいことを検証する手段と、第２の合意情報として完了を示す情報を出力して停止する手段と、を備える利用者装置が提供される。
【発明の効果】
【００２７】
本発明の合意情報取得方法によれば、第1の利用者装置と第２の利用者装置との間で、「完了」もしくは「中止」のいずれかを、調停装置の助けなしに両方の利用者装置の合意として得ることができ、ＮＢＡＣを楽観的に得ることができる。
【発明を実施するための最良の形態】
【００２８】
本発明の実施形態にかかる合意情報取得方法について、図面を用いて説明する。同一の構成要素には同一の符号を付し、重複する説明は省略する。
【００２９】
図１は本発明の実施形態に係る合意情報取得システムの構成を示す図であり、図２は第１のＩＣカードを示す図であり、図３は第２のＩＣカードを示す図であり、図４は調停装置を示す図である。また、図５は本発明の実施形態に係る合意情報取得方法の原理構成を示す図であり、図６は矛盾がない合意の定義を示す図である。
【００３０】
図５に示すように、本実施形態の合意情報取得方法は、賛成／反対の二値をとる第１の投票情報が与えられた第１のＩＣカード１００（第１の利用者装置）と、賛成／反対の二値をとる第２の投票情報が与えられた第２のＩＣカード２００（第２の利用者装置）との間で、第１、第２、および第３のメッセージを送受することにより、矛盾なく、第１のＩＣカード１００が第１の合意情報を、第２のＩＣカード２００が第２の合意情報を、それぞれ出力する手法を提供する。なお、図６に、本実施形態における「矛盾がない合意」の定義を示す。
【００３１】
図１〜３に示すように、第１のＩＣカード１００および第２のＩＣカード２００は耐タンパ性を持つ電子計算機であり、接触ないし非接触の端子を用いてそれぞれホスト１０，２０等の外部機器を介してネットワーク３０と通信する機能を持つ（もしくは、直接ネットワーク３０と接続し、通信する機能を持ってもよい）。以下、第１のＩＣカード１００および第２のＩＣカード２００を、便宜上ＩＣカードと呼称するが、いわゆるカード形状である必要はなく、携帯電話に用いられるＳＩＭ／ＵＳＩＭチップなどを用いることが可能である。また、ＩＣカードが物理的に耐タンパ性を備えない場合でも本発明は実施可能であるが、その場合は、ソフトウェア的に、もしくは運用により、ＩＣカード上の各処理の処理ロジックが改変されたり、また、各処理で用いられる内部データが漏洩しないように対処することが望ましい。この対処が不十分な場合、なんらかの攻撃により合意に矛盾が発生する可能性があるからである。また、ネットワーク３０には調停装置３００（第三者装置）が接続されている。
【００３２】
図２に示すように、本発明の第１のＩＣカード１００は、第１の処理部１０２と第３の処理部１０４、および後述の調停装置３００を用いた合意情報取得を実施する場合には、さらに中止依頼処理部１０８と第１の調停受諾処理部１１０と第１の合意情報出力部１１０とを備える。各部の処理の詳細については後述する。
【００３３】
図３に示すように、本発明の第２のＩＣカード２００は、第２の処理部２０２と第４の処理部２０４、および後述の調停装置３００を用いた合意情報取得を実施する場合には、さらに完了依頼処理部２０８と第２の調停受諾処理部２１０と第２の合意情報出力部２１０とを備える。同様に、各部の処理の詳細については後述する。
【００３４】
また、各処理の実行のために、第１のＩＣカード１００は、乱数生成部１１２と、ハッシュ値計算部１１４とをさらに備え、第２のＩＣカード２００は、ハッシュ値計算部２１４をさらに備える。ここで、ハッシュ値の計算手段は、ＳＨＡ−２５６，ＳＨＡ−１などの衝突困難な一方向ハッシュ関数を用いることが望ましい。また、両ＩＣカードのハッシュ値計算手段１１４，２１４は同一のアルゴリズムによるものとする。各処理における乱数生成部１１２、ハッシュ値計算部１１４，２１４の具体的な利用方法は後述する。
【００３５】
上記の各処理を実施する上で、それぞれのＩＣカード１００，２００間で第１ないし第３のメッセージを送受する。この通信は、それぞれのＩＣカード１００，２００に接続されたホスト１０，２０、およびホスト１０，２０間を接続するネットワーク３０を経由して行われる。すなわち、第１のＩＣカード１００−−ホスト１０−−ネットワーク３０−−ホスト２０−−第２のＩＣカード２００などとして接続される。もしＩＣカード１００，２００がネットワーク３０に直接接続する機能を有する場合は、当然ながらホスト１０，２０を経由する必要はない。ネットワーク３０について、通信プロトコルないし媒体の有線／無線は問わず、本実施形態に係る方法の開始から終了までの間だけ存在すればよい。以下の説明において特に断りのない場合、ＩＣカード１００，２００間で送受されるメッセージは上記ホスト１０，２０を経由する経路によるものとする。本実施形態で、この通信路はメッセージの盗聴に対して安全である必要はない。また、メッセージの偽造や改竄に対しても安全である必要はないが、その場合はメッセージの暗号化もしくは署名付与によりこれらを防止することが望ましい。暗号化および署名付与の具体的な方法については後述する。
【００３６】
また、本方法によれば、ＩＣカード１００，２００間の通信路が失われることがないのであれば、ＩＣカード１００，２００間の通信のみにより合意情報を取得することができる。さらに、たとえば片方のＩＣカードの所有者が音信不通になるなどの理由から第１のＩＣカード１００と第２のＩＣカード２００との間で相互に通信することができなくなったとしても、第１ないし第２の終了指示を与えることにより、第三者装置である調停装置３００を用いて、やはり矛盾なく合意情報を得ることができる。終了指示は、外部（たとえば接続されたホスト）から、たとえば利用者の指示に応じて与えても良いし、ＩＣカードが時間を計測可能であればタイムアウトなどにより前処理の終了から一定時間の経過後にＩＣカード内部で自動的に与えても構わない。
【００３７】
図４に示すように、本実施形態の調停装置３００は、第１調停処理部３０２および第２の調停処理部３０４を備えた電子計算機である。それぞれの処理の詳細については後述する。調停装置３００は上記処理を実施するために、中止依頼メッセージ、完了メッセージ、第１および第２の調停メッセージを、第１もしくは第２のＩＣカード１００，２００との間で送受する。この通信は、典型的には、第１のＩＣカード１００−−ホスト１０−−ネットワーク３０−−調停装置３００などの経路を用いて行われる。第２のＩＣカード２００についても同様である。ただし、応用によっては調停処理を行う際に調停装置３００とＩＣカード１００，２００を直接接続する方法をとっても構わない。この通信路についても、上記のＩＣカード１００，２００間の通信路と同様に、メッセージの盗聴に対して安全である必要はなく、メッセージの偽造や改竄に対しても安全である必要はないが、後者の場合はメッセージの暗号化もしくは署名付与によりこれらを防止することが望ましい。暗号化および署名付与の具体的な方法については後述する。
【００３８】
また、調停装置３００はさらに第１および第２の調停処理を実行する際に用いられる中止済みリスト格納部３０８、完了済みリスト格納部を備えた記憶装置３０６を備える。この記憶装置３０６として、典型的には磁気ディスクなどの不揮発記憶装置を用いることができるが、高速化のためなどの理由により揮発性の半導体メモリを利用しても構わない。ただし、後者の構成を採る場合は、電源断などによりリストの内容が失われないよう、無停電電源装置などを用いて対処することが望ましい。
【００３９】
以下、本実施形態の合意情報取得方法の具体的な実施態様を説明する。なお、以下において、Ｈ（）は、前述のハッシュ計算部１１４，２１４が提供するハッシュ値を計算するためのハッシュ関数である。また、入力となる第１の投票情報をｖ１、第２の投票情報をｖ２とする。ｖ１およびｖ２は賛成を示す値／反対を示す値のいずれかを値としてとるものとする。具体的な値として、たとえば賛成：１，反対：０と１ｂｉｔの数値を割りふっても良いし、賛成：“ｙｅｓ”，反対：“ｎｏ”など文字列で表現しても構わない。以下、賛成をｙｅｓ，反対をｎｏとして記述する。出力となる第１の合意情報をｒ１，第２の合意情報をｒ２とする。ｒ１およびｒ２は完了を示す値／中止を示す値のいずれかを値としてとるものとする。投票情報と同様に、数値で表現しても文字列で表現しても構わない。以下、完了をｃｏｍｍｉｔ，中止をａｂｏｒｔと表記する。
【００４０】
図７は、本実施形態に係る合意情報取得方法における第1の処理のフローを示す図である。図７に示すように、第１の処理は、第１のＩＣカード１００の第１処理部１０２により以下の手順で実施される。第１の投票情報ｖ１を取得する（Ｓ１０１）。乱数生成部１１２を用いて乱数ｒを発生する（Ｓ１０２）。ハッシュ値計算部１１４においてハッシュ関数Ｈ（）を用いて、乱数ｒのハッシュ値ｓ：＝Ｈ（ｒ）を計算する（Ｓ１０３）。第２のＩＣカード２００に対し、第１のメッセージｍ１：＝｛ｓ，ｖ１｝を送信する（Ｓ１０４）。第１の調停受諾処理部１１０により、ｖ１＝ｎｏであれば、第１の合意情報をｒ１：＝ａｂｏｒｔとして出力し、停止する（Ｓ１０５，Ｓ１０５ａ）。ｖ１＝ｙｅｓであれば、第２のメッセージｍ２の到着を待つ（Ｓ１０５，Ｓ１０５ｂ）。到着後、第３の処理を実行する。
【００４１】
図８は、本実施形態に係る合意情報取得方法における第2の処理のフローを示す図である。図８に示すように、第２の処理は、第２のＩＣカード２００の第２の処理部２０２により以下の手順で実施される。第１のメッセージｍ１を取得する（Ｓ２０１）。もし、ｍ１の取得前に終了指示が入力された場合、第２の合意情報をｒ２：＝ａｂｏｒｔとして出力し、停止する（Ｓ２００，Ｓ２００ａ）。第２の投票情報ｖ２を取得する（Ｓ２０２）。ｍ１に含まれるｖ１について、ｖ１＝ｎｏであれば、ｒ２：＝ａｂｏｒｔを出力し、停止する（Ｓ２０３，Ｓ２０３ａ）。第１のＩＣカード１００に対し、第２のメッセージｍ２：＝｛ｓ，ｖ２｝を送信する（Ｓ２０４）。ｖ２＝ｎｏであれば、ｒ２：＝ａｂｏｒｔとして停止する（Ｓ２０５，Ｓ２０５ａ）。ｖ２＝ｙｅｓであれば、第３のメッセージｍ３の到着を待つ（Ｓ２０５，Ｓ２０５ｂ）。
【００４２】
図９は、本実施形態に係る合意情報取得方法における第3の処理のフローを示す図である。図９に示すように、第３の処理は、第１のＩＣカード１００の第３の処理部１０４により以下の手順で実施される。第２のメッセージｍ２を取得する（Ｓ３０１）。もしｍ２の取得前に終了指示が入力された場合、後述する中止依頼処理を実行する（Ｓ３００，Ｓ３００ａ）。ｍ２に含まれるｓと、第１の処理で生成した乱数ｒとの間に、Ｈ（ｒ）＝ｓが成立することを検証する（Ｓ３０２）。成立しない場合、再度ｍ２の到着を待つ。ｍ２に含まれるｖ２について、ｖ２＝ｎｏであれば、ｒ１：＝ａｂｏｒｔを出力し、停止する（Ｓ３０３，Ｓ３０３ａ）。第２のＩＣカード２００に対し、第３のメッセージｍ３：＝｛ｒ｝を送信する（Ｓ３０４）。ｒ１：＝ｃｏｍｍｉｔを出力し、停止する（Ｓ３０５）。
【００４３】
図１０は、本実施形態に係る合意情報取得方法における第４の処理のフローを示す図である。図１０に示すように、第４の処理は、第２のＩＣカード２００の第４の処理部２０４により以下の手順で実施される。第３のメッセージｍ３を取得する（Ｓ４０１）。もしｍ３の取得前に終了指示が入力された場合、後述する完了依頼処理を実行する（Ｓ４００，Ｓ４００ａ）。ハッシュ値計算部２１４により、ｍ３に含まれるｒからハッシュ値Ｈ（ｒ）を計算する（Ｓ４０２）。上記のＨ（ｒ）と、第１のメッセージｍ１に含まれるハッシュ値ｓについて、Ｈ（ｒ）＝ｓが成立することを検証する（Ｓ４０３）。成立しない場合、再度ｍ３の到着を待つ。ｒ２：＝ｃｏｍｍｉｔを出力し、停止する（Ｓ４０４）。
【００４４】
このように上記第１〜第４の処理においては、第1のメッセージから第3のメッセージまでが正常に送受された場合においては、調停装置３００を介さずに、第1および第２の利用者装置１００，２００間のハッシュ値を用いた信頼できる相互通信のみで処理を行うため、第１のＩＣカード１００と第２のＩＣカード２００との間で、「完了」もしくは「中止」のいずれかを、調停装置３００の助けなしに両方の利用者装置１００，２００の合意として得ることができ、ＮＢＡＣを楽観的に得ることができる。
【００４５】
図１１は、本実施形態に係る合意情報取得方法における中止依頼処理のフローを示す図である。図１１に示すように、中止依頼処理は、第１のＩＣカード１００の中止依頼処理部１０８により以下の手順で実施される。第１の終了指示情報を取得する（Ｓ５０１）。中止依頼メッセージｍａ：＝｛ｓ，ａｂｏｒｔ｝を調停装置３００に送信する（Ｓ５０２）。ここで、ｓは第１の処理で生成したハッシュ値、ａｂｏｒｔは中止を示す情報である（中止依頼情報）。第１の調停メッセージを待ち受ける（Ｓ５０３）。
【００４６】
図１２は、本実施形態に係る合意情報取得方法における第1の調停処理のフローを示す図である。図１２に示すように、第１の調停処理は、調停装置３００の第１の調停処理部３０２により以下の手順で実施される。中止依頼メッセージｍａを取得する（Ｓ６０１）。ｍａに含まれるハッシュ値ｓが完了済みリストＳｒに登録されているか否かを検証する。すなわち、ｓ∈Ｓｒの判定を行う（Ｓ６０２）。登録されていれば、合意の完了を判定して裁定情報ｔ＝ｃｏｍｍｉｔとする（Ｓ６０２ａ）。登録されていなければ、合意の中止を判定して裁定情報ｔ＝ａｂｏｒｔとし、中止済みリストＳａにｓを登録する（Ｓ６０２ｂ）。調停メッセージｍｔ１：＝｛ｓ，ｔ｝を、第１のＩＣカード１００に送信する（Ｓ６０３）。
【００４７】
図１３は、本実施形態に係る合意情報取得方法における第1の調停受諾処理のフローを示す図である。第１の調停受諾処理７００は、第１のＩＣカード１００の第１の調停受諾処理部１１０により以下の手順で実施される。第１の調停メッセージｍｔ１を取得する（Ｓ７０１）。第１の処理で計算したｒとｍｔ１に含まれるハッシュ値ｓについて、Ｈ（ｒ）＝ｓが成立することを検証する（Ｓ７０２）。成立しなかった場合、再度ｍｔ１の到着を待つ。第１の調停メッセージに含まれる裁定情報ｔを用い、ｒ１：＝ｔとして停止する（Ｓ７０３）。
【００４８】
このように、調停装置３００が第１の調停処理を実行し、第１のＩＣカード１００が第１の調停受諾処理を実行するため、第1のメッセージもしくは第2のメッセージが正常に到達しなかった場合でも、第1のＩＣカード１００が合意を得ることが可能となる。
【００４９】
図１４は、本実施形態に係る合意情報取得方法における完了依頼処理のフローを示す図である。完了依頼処理８００は、第２のＩＣカード２００の完了依頼処理部２０８により以下の手順で実施される。第２の終了指示情報を取得する（Ｓ８０１）。完了依頼メッセージｍｒ：＝｛ｓ，ｃｏｍｍｉｔ｝を調停装置３００に送信する（Ｓ８０２）。ここで、ｓは第１のメッセージｍ１に含まれるハッシュ値、ｃｏｍｍｉｔは完了を示す情報である（完了依頼情報）。第２の調停メッセージを待ち受ける（Ｓ８０３）
【００５０】
図１５は、本実施形態に係る合意情報取得方法における第2の調停処理のフローを示す図である。第２の調停処理は、調停装置３００の第２の調停処理部３０４により以下の手順で実施される。完了依頼メッセージｍｒを取得する（Ｓ９０１）。ｍｒに含まれるハッシュ値ｓが中止済みリストＳａに登録されているか否かを検証する。つまりｓ∈Ｓａの判定を行う（Ｓ９０２）。登録されていれば、合意の中止を判定して裁定情報ｔ＝ａｂｏｒｔとする（Ｓ９０２ａ）。登録されていなければ、合意の完了を判定して裁定情報ｔ＝ｃｏｍｍｉｔとし、完了済みリストＳｒにｓを登録する（Ｓ９０２ｂ）。第２の調停メッセージｍｔ２：＝｛ｓ，ｔ｝を、第２のＩＣカード２００に送信する（Ｓ９０３）。
【００５１】
図１６は、本実施形態に係る合意情報取得方法における第２の調停受諾処理のフローを示す図である。第２の調停受諾処理は、第２のＩＣカード２００の第２の調停受諾処理部２１０により以下の手順で実施される。第２の調停メッセージｍｔ２を取得する（Ｓ１００１）。第１のメッセージｍ１に含まれるｓとｍｔ２に含まれるとが等しいことを検証する（Ｓ１００２）。等しくなかった場合、再度ｍｔ２の到着を待つ。第２の調停メッセージに含まれる裁定情報ｔを用い、ｒ２：＝ｔとして停止する（Ｓ１００３）。
【００５２】
このように、調停装置３００が第２の調停処理を実行し、第２のＩＣカード２００が第２の調停受諾処理を実行するため、第２のメッセージが正常に到達しなかった場合でも、第２の利用者装置が合意を得ることが可能となる。
【００５３】
以下、偽造や改竄に対して安全でない通信路を用いて本発明を実施する際に望ましい構成として、暗号鍵を用いた方法と電子署名を用いた方法について説明する。
【００５４】
まず、暗号鍵を用いた方法について説明する。Ｅ（ｋ，ｍ）は共通鍵ｋを用いてメッセージｍを暗号化した暗号メッセージを表し、Ｓ＝Ｅ（ｋ，ｍ）のときｍ＝Ｅ（ｋ，Ｓ）が成立するものとする。すなわち、演算手段Ｅ（）は暗号メッセージの生成と復号との両方に用いることができる。このような暗号メッセージの生成／復号の方法として、一般的な共通鍵暗号、たとえばＡＥＳ暗号などを用いることができる。
【００５５】
第１のＩＣカード１００と第２のＩＣカード２００、および調停装置３００は、前述した各処理の実行手段に加え、上記の暗号メッセージ演算部１１６，２１６，３１２を備えるものとする。また、第１のＩＣカード１００は共通鍵ｋ０およびｋ１を、第２のＩＣカード２００は共通鍵ｋ０およびｋ２を、調停装置は共通鍵ｋ１およびｋ２をあらかじめ保持する。ここで、共通鍵ｋ０〜ｋ２はそれぞれ異なる値であることが安全性の観点からは望ましいが、同一の値であっても構わない。
【００５６】
本方法において、共通鍵ｋ０は第１もしくは第２のメッセージを暗号化するために用いられる。以下、第１のメッセージを送信する場合を例として具体的に説明する。前述の第１の処理は、ステップＳ１０４においてｍ１を送信している。これを、ｍ１をｋ０で暗号化したメッセージＥ（ｋ０，ｍ１）の送信に置き換える。すなわち、ステップＳ１０４を下記のステップＳ１１４に置換する。
【００５７】
第２のＩＣカード２００に対し、第１のメッセージｍ１：＝｛ｓ，ｖ１｝をｋ０で暗号化したメッセージＥ（ｋ０，ｍ１）を送信する（Ｓ１１４）。
【００５８】
また、第２の処理２００におけるｍ１の取得処理であるステップＳ２０１について、これに応じてｋ０による復号処理を追加する。すなわち、ステップＳ２０１を下記のステップＳ２１１に置換する。
【００５９】
暗号メッセージＥ（ｋ０，ｍ１）をｋ０を用いて復号することにより、第１のメッセージｍ１を取得する。具体的には、暗号演算手段Ｅ（）と鍵ｋ０を用い、Ｅ（ｋ０，Ｅ（ｋ０，ｍ１））を計算することによりｍ１を復号する。正しく復号できなかった場合、再度ｍ１の到着を待つ。もしｍ１の取得前に終了指示が入力された場合、第２の合意情報をｒ２：＝ａｂｏｒｔとして出力し、停止する（Ｓ２１１）。
【００６０】
第２のメッセージの送受信についても同様である。また、第１のＩＣカード１００と調停装置３００の間の通信にはｋ０のかわりにｋ１を、第２のＩＣカード２００と調停装置３００の間の通信にはｋ２を、それぞれ同様に用いてメッセージを暗号化する。
【００６１】
なお、第３のメッセージｍ３についてはｋ０などによる暗号化は必要ない（当然ながら暗号化しても構わない）。これは、ｍ３に含まれる乱数ｒの値を、（ｍ３を送信するまで）第１のＩＣカード１００以外は知りえないためである。もし悪意ある者がｍ３’＝｛ｒ’｝（ｒ’≠ｒ）を偽造し、送信したとしてもステップＳ４０３の検証処理に失敗することにより、安全に無視される。
【００６２】
つぎに、電子署名を用いた方法について説明する。Ｓｉｇ（ｓｋ，ｍ）は、署名鍵ｓｋを用いて、メッセージｍに対して電子署名を付与した署名付きメッセージを表すものとする。署名鍵ｓｋには対となる検証鍵ｐｋが存在し、これを用いることによりＳｉｇ（ｓｋ，ｍ）の偽造および改竄の有無を検証できるものとする。これを検証関数Ｖ（ｐｋ，Ｓｉｇ）として表現する。Ｓｉｇ＝Ｓｉｇ（ｓｋ，ｍ）のとき、Ｖ（ｐｋ，Ｓｉｇ）＝ｔｒｕｅとなり、それ以外のとき、たとえばＳｉｇ（ｓｋ，ｍ）が署名付与後に改竄されたときやｓｋ以外の署名鍵による署名が付与されていた場合は、Ｖ（ｐｋ，Ｓｉｇ）＝ｆａｌｓｅとなるものとする。このような電子署名の付与および検証の方法として、ＤＳＡ署名などを用いることができる。
【００６３】
第１のＩＣカード１００、第２のＩＣカード２００および調停装置３００は、各処理の実行手段に加え、上記の署名付与部１１８，２１８，３１４および署名検証部１２０，２２０，３１６を備え、それぞれ相異なる署名鍵ｓｋ１，ｓｋ２，ｓｋ３を保持するものとする。
【００６４】
第１のＩＣカード１００、第２のＩＣカード２００および調停装置３００は、さらに、それぞれ公開鍵証明書Ｃ１，Ｃ２，Ｃ３を保持するものとする。ここでＣｎ（ｎ＝｛１，２，３｝）とは、Ｃｎ＝Ｓｉｇ（ｓｋ０，ｐｋｎ）、すなわち検証鍵ｐｋｎに対する署名鍵ｓｋ０による署名つきメッセージであるものとする。また、それぞれのＩＣカード１００，２００および調停装置３００は、Ｃｎを検証するための検証鍵ｐｋ０を保持するものとする。
【００６５】
本実施形態において、第１のＩＣカード１００は、第１のメッセージｍ１および中止依頼メッセージｍａの送信時にｓｋ１を用いて署名を付与し、証明書Ｃ１とともに送信する。同様に、第２のＩＣカード２００は、第２のメッセージｍ２および完了依頼メッセージｍｒの送信時に、ｓｋ２を用いて署名を付与し、証明書Ｃ２とともに送信する。また、調停装置は、第１の調停メッセージｍｔ１および第２の調停メッセージｍｔ２の送信時に、ｓｋ３を用いて署名を付与し、証明書Ｃ３とともに送信する。それぞれの署名つきメッセージを受信したＩＣカード１００，２００もしくは調停装置３００は、署名つきメッセージとともに送信された証明書および保持するｐｋ０を用いてメッセージの改竄および偽造の有無を検証する。
【００６６】
以下、第１のメッセージｍ１を送信する場合を例として具体的に説明する。第１の処理１００は、ステップＳ１０４においてｍ１を送信している。これを、ｓｋ１によるｍ１に対する署名つきのメッセージと証明書Ｃ１の組、｛Ｓｉｇ（ｓｋ１，ｍ１），Ｃ１｝に置き換える。すなわち、ステップ１０４を下記のステップＳ１２４に置換する。
【００６７】
署名付与手段と署名鍵ｓｋ１を用い、第１のメッセージｍ１：＝｛ｓ，ｖ１｝に対し署名を付与したメッセージＳｉｇ（ｓｋ１，ｍ１）を生成し、第２のＩＣカードに対して公開鍵証明書Ｃ１とともに送信する（Ｓ１２４）。
【００６８】
また、第２の処理２００におけるｍ１の取得処理であるステップＳ２０１について、これに応じてｐｋ１による署名検証処理を追加する。すなわち、ステップＳ２０１を下記のステップＳ２２１に置換する。
【００６９】
第１のＩＣカード１００から送信されたＳｉｇ（ｓｋ１，ｍ１）とＣ１について、署名検証部２２０および保持する検証鍵ｐｋ０を用いて署名の検証を行う。まず、Ｃ１について、Ｖ（ｐｋ０，Ｃ１）＝ｔｒｕｅが成立することを検証する。つぎに、Ｃ１に含まれるｐｋ１を用い、Ｖ（ｐｋ１，Ｓｉｇ（ｓｋ１，ｍ１））＝ｔｒｕｅが成立することを検証する。いずれかの検証が失敗した（上記式が成立しなかった）場合、再度到着を待つ。両方とも成功した場合、Ｓｉｇ（ｓｋ１，ｍ１）からｍ１を取得する。もしｍ１の取得前に終了指示が入力された場合、第２の合意情報をｒ２：＝ａｂｏｒｔとして出力し、停止する（Ｓ２２１）。
【００７０】
第２のメッセージ、および中止依頼メッセージ、完了依頼メッセージ、第１および第２の調停メッセージについても同様である。
【００７１】
なお、第３のメッセージｍ３については、暗号鍵を用いた方法の説明に記載した理由により、署名の付与を行う必要はない（当然ながら署名の付与を行ってもよい）。
【００７２】
尚、本発明の合意情報取得方法は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施形態に係る合意情報取得システムの構成を示す図である。
【図２】本発明の実施形態に係る第１のＩＣカードを示す図である。
【図３】本発明の実施形態に係る第２のＩＣカードを示す図である。
【図４】本発明の実施形態に係る調停装置を示す図である。
【図５】本発明の実施形態に係る合意情報取得方法の原理構成を示す図である。
【図６】本発明の実施形態に係る合意情報取得方法における矛盾がない合意の定義を示す図である。
【図７】本発明の実施形態に係る合意情報取得方法における第1の処理のフローを示す図である。
【図８】本発明の実施形態に係る合意情報取得方法における第2の処理のフローを示す図である。
【図９】本発明の実施形態に係る合意情報取得方法における第3の処理のフローを示す図である。
【図１０】本発明の実施形態に係る合意情報取得方法における第4の処理のフローを示す図である。
【図１１】本発明の実施形態に係る合意情報取得方法における中止依頼処理のフローを示す図である。
【図１２】本発明の実施形態に係る合意情報取得方法における第1の調停処理のフローを示す図である。
【図１３】本発明の実施形態に係る合意情報取得方法における第1の調停受諾処理のフローを示す図である。
【図１４】本発明の実施形態に係る合意情報取得方法における完了依頼処理のフローを示す図である。
【図１５】本発明の実施形態に係る合意情報取得方法における第2の調停処理のフローを示す図である。
【図１６】本発明の実施形態に係る合意情報取得方法における第2の調停受諾処理のフローを示す図である。
【符号の説明】
【００７４】
１０，２０…ホスト、３０…ネットワーク、１００…第１のＩＣカード、１０２…第１の処理部、１０４…第３の処理部、１０６…第１の合意情報出力部、１０８…中止依頼処理部、１１０…第１の調停受諾処理部、１１２…乱数生成部、１１４…ハッシュ値計算部、１１６…暗号メッセージ演算部、１１８…署名付与部、１２０…署名検証部、２００…第２のＩＣカード、２０２…第２の処理部、２０４…第４の処理部、２０６…第２合意情報出力部、２０８…完了依頼処理部、２１０…第２の調停受諾処理部、２１４…ハッシュ値計算部、２１６…暗号メッセージ演算部、２１８…署名付与部、２２０…署名検証部、３００…調停装置、３０２…第１の調停処理部、３０４…第２の調停処理部、３０６…記憶装置、３０８…中止済みリスト格納部、３１０…完了済みリスト格納部、３１２…暗号メッセージ演算部、３１４…署名付与部、３１６…署名検証部。
【図１】
0004722668.tif 000002
【図２】
0004722668.tif 000003
【図３】
0004722668.tif 000004
【図４】
0004722668.tif 000005
【図５】
0004722668.tif 000006
【図６】
0004722668.tif 000007
【図７】
0004722668.tif 000008
【図８】
0004722668.tif 000009
【図９】
0004722668.tif 000010
【図１０】
0004722668.tif 000011
【図１１】
0004722668.tif 000012
【図１２】
0004722668.tif 000013
【図１３】
0004722668.tif 000014
【図１４】
0004722668.tif 000015
【図１５】
0004722668.tif 000016
【図１６】
0004722668.tif 000017