(57)【特許請求の範囲】
【請求項１】
アプリケーションがＴＣＰ／ＩＰネットワークで相互に接続した各計算機上で実行され、各計算機上には名前解決モジュールが存在し、各計算機上のアプリケーションは名前解決ライブラリをプログラム中に所有するシステムを用い、自アプリケーションから問い合わせ先アプリケーションの所在に対する問い合わせを受けた場合における問い合わせメッセージの発信処理を行い、且つ問い合わせ元アプリケーションからの自アプリケーションに対する問い合わせを受けた場合における問い合わせメッセージの受信処理を行うメッセージ伝達方法において、
問い合わせ元計算機の名前解決ライブラリで処理され、相手先に伝える問い合わせメッセージを作成する問い合わせメッセージ作成ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、前記問い合わせメッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して問い合わせメッセージに添付する署名作成ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、問い合わせ毎に共通鍵を作成し、この共通鍵を用いて問い合わせメッセージと署名を暗号化するメッセージ・署名暗号化ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、前記共通鍵を問い合わせ先の公開鍵で暗号化して問い合わせメッセージに添付する共通鍵暗号化ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、暗号化メッセージにメッセージの最大生存時間の情報を添付して問い合わせ元計算機の名前解決モジュールに暗号化メッセージの配送を依頼するメッセージ配送依頼ステップと、
問い合わせ元計算機の名前解決モジュールで処理され、暗号化メッセージを隣接する計算機に同報配送する同報配送ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、隣接する計算機から配送された問い合わせメッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、解読された共通鍵を適用して、問い合わせメッセージと署名にかけられた共通鍵暗号を解くメッセージ・署名抽出ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、公開鍵を適用して署名の暗号を解き得られた値と、先に得られた問い合わせメッセージに署名用関数を適用して得られた値を比較する署名確認ステップと
を具備することを特徴とするメッセージ伝達方法。
【請求項２】
アプリケーションがＴＣＰ／ＩＰネットワークで相互に接続した各計算機上で実行され、各計算機上には名前解決モジュールが存在し、各計算機上のアプリケーションは名前解決ライブラリをプログラム中に所有するシステムを用い、自アプリケーションから問い合わせ先アプリケーションの所在に対する問い合わせを受けた場合における問い合わせメッセージの発信処理および回答メッセージの受信処理を行うメッセージ伝達方法において、
問い合わせ元計算機の名前解決ライブラリで処理され、相手先に伝える自計算機のＩＰアドレスが記された問い合わせメッセージを作成する問い合わせメッセージ作成ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、前記問い合わせメッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して問い合わせメッセージに添付する署名作成ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、問い合わせ毎に共通鍵を作成し、この共通鍵を用いて問い合わせメッセージと署名を暗号化するメッセージ・署名暗号化ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、前記共通鍵を問い合わせ先の公開鍵で暗号化して問い合わせメッセージに添付する共通鍵暗号化ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、暗号化メッセージにメッセージの最大生存時間の情報を添付して問い合わせ元計算機の名前解決モジュールに暗号化メッセージの配送を依頼するメッセージ配送依頼ステップと、
問い合わせ元計算機の名前解決モジュールで処理され、暗号化メッセージを隣接する計算機に同報配送する同報配送ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、問い合わせ先計算機から配送された回答メッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、解読された共通鍵を適用して、回答メッセージと署名にかけられた共通鍵暗号を解く回答メッセージ・署名抽出ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、公開鍵を適用して署名の暗号を解き得られた値と、先に得られた回答メッセージに署名用関数を適用して得られた値を比較する署名確認ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、回答メッセージで得られた問い合わせ先計算機のＩＰアドレスを依頼元アプリケーションに渡す回答ステップと
を具備することを特徴とするメッセージ伝達方法。
【請求項３】
アプリケーションがＴＣＰ／ＩＰネットワークで相互に接続した各計算機上で実行され、各計算機上には名前解決モジュールが存在し、各計算機上のアプリケーションは名前解決ライブラリをプログラム中に所有するシステムを用い、問い合わせ元アプリケーションからの自アプリケーションに対する問い合わせを受けた場合における問い合わせメッセージの受信処理および回答メッセージの発信処理を行なうメッセージ伝達方法において、
問い合わせ先計算機の名前解決ライブラリで処理され、隣接する計算機から配送された問い合わせメッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、解読された共通鍵を適用して、問い合わせメッセージと署名にかけられた共通鍵暗号を解くメッセージ・署名抽出ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、公開鍵を適用して署名の暗号を解き得られた値と、先に得られた問い合わせメッセージに署名用関数を適用して得られた値を比較する署名確認ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、問い合わせメッセージで得られた問い合わせ元計算機のＩＰアドレスを問い合わせ先アプリケーションに渡す回答ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、問い合わせを受けたアプリケーションからの回答として自計算機のＩＰアドレスが記された回答メッセージを作成する回答メッセージ作成ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、前記回答メッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して回答メッセージに添付する署名作成ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、回答毎に共通鍵を作成し、この共通鍵を用いて回答メッセージと署名を暗号化するメッセージ・署名暗号化ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、共通鍵を問い合わせ元の公開鍵で暗号化して回答メッセージに添付する共通鍵暗号化ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、問い合わせメッセージに基づいて作成された暗号化メッセージの配送を問い合わせ先計算機の名前解決モジュールに依頼するメッセージ配送依頼ステップと、
問い合わせ先計算機の名前解決モジュールで処理され、暗号化メッセージを問い合わせ元計算機に配送するメッセージ配送ステップと
を具備することを特徴とするメッセージ伝達方法。
【請求項４】
アプリケーションがＴＣＰ／ＩＰネットワークで相互に接続した各計算機上で実行され、各計算機上には名前解決モジュールが存在し、各計算機上のアプリケーションは名前解決ライブラリをプログラム中に所有するシステムを用い、自アプリケーションから問い合わせ先アプリケーションの所在に対する問い合わせを受けた場合における問い合わせメッセージの発信処理および回答メッセージの受信処理を行うメッセージ伝達装置において、
相手先に伝える自計算機のＩＰアドレスが記された問い合わせメッセージを作成する問い合わせメッセージ作成手段と、
前記問い合わせメッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して問い合わせメッセージに添付する署名作成手段と、
問い合わせ毎に共通鍵を作成し、この共通鍵を用いて問い合わせメッセージと署名を暗号化するメッセージ・署名暗号化手段と、
前記共通鍵を問い合わせ先の公開鍵で暗号化して問い合わせメッセージに添付する共通鍵暗号化手段と、
前記問い合わせ先の公開鍵に簡易識別子生成用関数を適用して求められる簡易識別子を問い合わせメッセージに添付する簡易識別子添付手段と、
暗号化メッセージにメッセージの最大生存時間の情報を添付して問い合わせ元計算機の名前解決モジュールに暗号化メッセージの配送を依頼するメッセージ配送依頼手段と、
問い合わせメッセージに対応した回答メッセージ中に含まれた簡易識別子が、自らの簡易識別子と等しいかどうかを確認する簡易識別子確認手段と、
前記回答メッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読手段と、
解読された共通鍵を適用して、回答メッセージと署名にかけられた共通鍵暗号を解く回答メッセージ・署名抽出手段と、
公開鍵を適用して署名の暗号を解き得られた値と、先に得られた回答メッセージに署名用関数を適用して得られた値を比較する署名確認手段と、
回答メッセージで得られた問い合わせ先計算機のＩＰアドレスを依頼元アプリケーションに渡す回答手段と
を有する名前解決ライブラリと、
前記メッセージ配送依頼手段によって依頼された暗号化メッセージを隣接する計算機に同報配送する同報配送手段を有する名前解決モジュールと
を問い合わせ元計算機上に有することを特徴とするメッセージ伝達装置。
【請求項５】
アプリケーションがＴＣＰ／ＩＰネットワークで相互に接続した各計算機上で実行され、各計算機上には名前解決モジュールが存在し、各計算機上のアプリケーションは名前解決ライブラリをプログラム中に所有するシステムを用い、問い合わせ元アプリケーションからの自アプリケーションに対する問い合わせを受けた場合における問い合わせメッセージの受信処理および回答メッセージの発信処理を行なうメッセージ伝達装置において、
隣接する計算機から配送された問い合わせメッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読手段と、
解読された共通鍵を適用して、問い合わせメッセージと署名にかけられた共通鍵暗号を解くメッセージ・署名抽出手段と、
公開鍵を適用して署名の暗号を解き得られた値と、先に得られた問い合わせメッセージに署名用関数を適用して得られた値を比較する署名確認手段と、
問い合わせ先計算機の名前解決ライブラリで処理され、問い合わせメッセージで得られた問い合わせ元計算機のＩＰアドレスを問い合わせ先アプリケーションに渡す回答手段と、
問い合わせを受けたアプリケーションからの回答として自計算機のＩＰアドレスが記された回答メッセージを作成する回答メッセージ作成手段と、
前記回答メッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して回答メッセージに添付する署名作成手段と、
回答毎に共通鍵を作成し、この共通鍵を用いて回答メッセージと署名を暗号化するメッセージ・署名暗号化手段と、
共通鍵を問い合わせ元の公開鍵で暗号化して回答メッセージに添付する共通鍵暗号化手段と、
問い合わせ元の公開鍵に簡易識別子生成用関数を適用して求められる簡易識別子を回答メッセージに添付する簡易識別子添付手段と、
問い合わせメッセージに基づいて作成された暗号化メッセージの配送を問い合わせ先計算機の名前解決モジュールに依頼するメッセージ配送依頼手段と
を有する名前解決ライブラリと、
前記メッセージ配送依頼手段によって依頼された暗号化メッセージを問い合わせ元計算機に配送するメッセージ配送手段を有する名前解決モジュールと
を問い合わせ先計算機上に有することを特徴とするメッセージ伝達装置。
【請求項６】
アプリケーションがＴＣＰ／ＩＰネットワークで相互に接続した各計算機上で実行され、各計算機上には名前解決モジュールが存在し、各計算機上のアプリケーションは名前解決ライブラリをプログラム中に所有するシステムを用い、自アプリケーションから問い合わせ先アプリケーションの所在に対する問い合わせを受けた場合における問い合わせメッセージの発信処理および回答メッセージの受信処理を行うメッセージ伝達プログラムにおいて、
問い合わせ元計算機の名前解決ライブラリで処理され、相手先に伝える自計算機のＩＰアドレスが記された問い合わせメッセージを作成する問い合わせメッセージ作成手順、
問い合わせ元計算機の名前解決ライブラリで処理され、前記問い合わせメッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して問い合わせメッセージに添付する署名作成手順と、
問い合わせ元計算機の名前解決ライブラリで処理され、問い合わせ毎に共通鍵を作成し、この共通鍵を用いて問い合わせメッセージと署名を暗号化するメッセージ・署名暗号化手順、
問い合わせ元計算機の名前解決ライブラリで処理され、前記共通鍵を問い合わせ先の公開鍵で暗号化して問い合わせメッセージに添付する共通鍵暗号化手順、
問い合わせ元計算機の名前解決ライブラリで処理され、暗号化メッセージにメッセージの最大生存時間の情報を添付して問い合わせ元計算機の名前解決モジュールに暗号化メッセージの配送を依頼するメッセージ配送依頼手順、
問い合わせ元計算機の名前解決モジュールで処理され、暗号化メッセージを隣接する計算機に同報配送する同報配送手順、
問い合わせ元計算機の名前解決ライブラリで処理され、問い合わせ先計算機から配送された回答メッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読手順、
問い合わせ元計算機の名前解決ライブラリで処理され、解読された共通鍵を適用して、回答メッセージと署名にかけられた共通鍵暗号を解く回答メッセージ・署名抽出手順、
問い合わせ元計算機の名前解決ライブラリで処理され、公開鍵を適用して署名の暗号を解き得られた値と、先に得られた回答メッセージに署名用関数を適用して得られた値を比較する署名確認手順、
問い合わせ元計算機の名前解決ライブラリで処理され、回答メッセージで得られた問い合わせ先計算機のＩＰアドレスを依頼元アプリケーションに渡す回答手順
を問い合わせ元計算機に実行させるためのメッセージ伝達プログラム。
【請求項７】
アプリケーションがＴＣＰ／ＩＰネットワークで相互に接続した各計算機上で実行され、各計算機上には名前解決モジュールが存在し、各計算機上のアプリケーションは名前解決ライブラリをプログラム中に所有するシステムを用い、問い合わせ元アプリケーションからの自アプリケーションに対する問い合わせを受けた場合における問い合わせメッセージの受信処理および回答メッセージの発信処理を行なうメッセージ伝達プログラムにおいて、
問い合わせ先計算機の名前解決ライブラリで処理され、隣接する計算機から配送された問い合わせメッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読手順、
問い合わせ先計算機の名前解決ライブラリで処理され、解読された共通鍵を適用して、問い合わせメッセージと署名にかけられた共通鍵暗号を解くメッセージ・署名抽出手順、
問い合わせ先計算機の名前解決ライブラリで処理され、公開鍵を適用して署名の暗号を解き得られた値と、先に得られた問い合わせメッセージに署名用関数を適用して得られた値を比較する署名確認手順、
問い合わせ先計算機の名前解決ライブラリで処理され、問い合わせメッセージで得られた問い合わせ元計算機のＩＰアドレスを問い合わせ先アプリケーションに渡す回答手順、
問い合わせ先計算機の名前解決ライブラリで処理され、問い合わせを受けたアプリケーションからの回答として自計算機のＩＰアドレスが記された回答メッセージを作成する回答メッセージ作成手順、
問い合わせ先計算機の名前解決ライブラリで処理され、前記回答メッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して回答メッセージに添付する署名作成手順、
問い合わせ先計算機の名前解決ライブラリで処理され、回答毎に共通鍵を作成し、この共通鍵を用いて回答メッセージと署名を暗号化するメッセージ・署名暗号化手順、
問い合わせ先計算機の名前解決ライブラリで処理され、共通鍵を問い合わせ元の公開鍵で暗号化して回答メッセージに添付する共通鍵暗号化手順、
問い合わせ先計算機の名前解決ライブラリで処理され、問い合わせメッセージに基づいて作成された暗号化メッセージの配送を問い合わせ先計算機の名前解決モジュールに依頼するメッセージ配送依頼手順、
問い合わせ先計算機の名前解決モジュールで処理され、暗号化メッセージを問い合わせ元計算機に配送するメッセージ配送手順
を問い合わせ先計算機に実行させるためのメッセージ伝達プログラム。
【請求項８】
アプリケーションがＴＣＰ／ＩＰネットワークで相互に接続した各計算機上で実行され、各計算機上には名前解決モジュールが存在し、各計算機上のアプリケーションは名前解決ライブラリをプログラム中に所有するシステムを用い、自アプリケーションから問い合わせ先アプリケーションの所在に対する問い合わせを受けた場合における問い合わせメッセージの発信処理および回答メッセージの受信処理を行い、且つ問い合わせ元アプリケーションからの自アプリケーションに対する問い合わせを受けた場合における問い合わせメッセージの受信処理および回答メッセージの発信処理を行なうメッセージ伝達方法において、
問い合わせ元計算機の名前解決ライブラリで処理され、相手先に伝える自計算機のＩＰアドレスが記された問い合わせメッセージを作成する問い合わせメッセージ作成ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、前記問い合わせメッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して問い合わせメッセージに添付する署名作成ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、問い合わせ毎に共通鍵を作成し、この共通鍵を用いて問い合わせメッセージと署名を暗号化するメッセージ・署名暗号化ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、前記共通鍵を問い合わせ先の公開鍵で暗号化して問い合わせメッセージに添付する共通鍵暗号化ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、暗号化メッセージにメッセージの最大生存時間の情報を添付して問い合わせ元計算機の名前解決モジュールに暗号化メッセージの配送を依頼するメッセージ配送依頼ステップと、
問い合わせ元計算機の名前解決モジュールで処理され、暗号化メッセージを隣接する計算機に同報配送する同報配送ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、問い合わせ先計算機から配送された回答メッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、解読された共通鍵を適用して、回答メッセージと署名にかけられた共通鍵暗号を解く回答メッセージ・署名抽出ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、公開鍵を適用して署名の暗号を解き得られた値と、先に得られた回答メッセージに署名用関数を適用して得られた値を比較する署名確認ステップと、
問い合わせ元計算機の名前解決ライブラリで処理され、回答メッセージで得られた問い合わせ先計算機のＩＰアドレスを依頼元アプリケーションに渡す回答ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、隣接する計算機から配送された問い合わせメッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、解読された共通鍵を適用して、問い合わせメッセージと署名にかけられた共通鍵暗号を解くメッセージ・署名抽出ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、公開鍵を適用して署名の暗号を解き得られた値と、先に得られた問い合わせメッセージに署名用関数を適用して得られた値を比較する署名確認ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、問い合わせメッセージで得られた問い合わせ元計算機のＩＰアドレスを問い合わせ先アプリケーションに渡す回答ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、問い合わせを受けたアプリケーションからの回答として自計算機のＩＰアドレスが記された回答メッセージを作成する回答メッセージ作成ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、前記回答メッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して回答メッセージに添付する署名作成ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、回答毎に共通鍵を作成し、この共通鍵を用いて回答メッセージと署名を暗号化するメッセージ・署名暗号化ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、共通鍵を問い合わせ元の公開鍵で暗号化して回答メッセージに添付する共通鍵暗号化ステップと、
問い合わせ先計算機の名前解決ライブラリで処理され、問い合わせメッセージに基づいて作成された暗号化メッセージの配送を問い合わせ先計算機の名前解決モジュールに依頼するメッセージ配送依頼ステップと、
問い合わせ先計算機の名前解決モジュールで処理され、暗号化メッセージを問い合わせ元計算機に配送するメッセージ配送ステップと
を具備することを特徴とするメッセージ伝達方法。
【請求項９】
アプリケーションがＴＣＰ／ＩＰネットワークで相互に接続した各計算機上で実行され、各計算機上には名前解決モジュールが存在し、各計算機上のアプリケーションは名前解決ライブラリをプログラム中に所有するシステムを用い、自アプリケーションから問い合わせ先アプリケーションの所在に対する問い合わせを受けた場合における問い合わせメッセージの発信処理および回答メッセージの受信処理を行い、且つ問い合わせ元アプリケーションからの自アプリケーションに対する問い合わせを受けた場合における問い合わせメッセージの受信処理および回答メッセージの発信処理を行なうメッセージ伝達装置において、
相手先に伝える自計算機のＩＰアドレスが記された問い合わせメッセージを作成する問い合わせメッセージ作成手段と、
前記問い合わせメッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して問い合わせメッセージに添付する署名作成手段と、
問い合わせ毎に共通鍵を作成し、この共通鍵を用いて問い合わせメッセージと署名を暗号化するメッセージ・署名暗号化手段と、
前記共通鍵を問い合わせ先の公開鍵で暗号化して問い合わせメッセージに添付する共通鍵暗号化手段と、
前記問い合わせ先の公開鍵に簡易識別子生成用関数を適用して求められる簡易識別子を問い合わせメッセージに添付する簡易識別子添付手段と、
暗号化メッセージにメッセージの最大生存時間の情報を添付して問い合わせ元計算機の名前解決モジュールに暗号化メッセージの配送を依頼するメッセージ配送依頼手段と、
問い合わせメッセージに対応した回答メッセージ中に含まれた簡易識別子が、自らの簡易識別子と等しいかどうかを確認する簡易識別子確認手段と、
前記回答メッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読手段と、
解読された共通鍵を適用して、回答メッセージと署名にかけられた共通鍵暗号を解く回答メッセージ・署名抽出手段と、
公開鍵を適用して署名の暗号を解き得られた値と、先に得られた回答メッセージに署名用関数を適用して得られた値を比較する署名確認手段と、
回答メッセージで得られた問い合わせ先計算機のＩＰアドレスを依頼元アプリケーションに渡す回答手段と
を有する名前解決ライブラリを問い合わせ元計算機上に有し、
前記メッセージ配送依頼手段によって依頼された暗号化メッセージを隣接する計算機に同報配送する同報配送手段を有する名前解決モジュールを問い合わせ元計算機上に有し、
隣接する計算機から配送された問い合わせメッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読手段と、
解読された共通鍵を適用して、問い合わせメッセージと署名にかけられた共通鍵暗号を解くメッセージ・署名抽出手段と、
公開鍵を適用して署名の暗号を解き得られた値と、先に得られた問い合わせメッセージに署名用関数を適用して得られた値を比較する署名確認手段と、
問い合わせ先計算機の名前解決ライブラリで処理され、問い合わせメッセージで得られた問い合わせ元計算機のＩＰアドレスを問い合わせ先アプリケーションに渡す回答手段と、
問い合わせを受けたアプリケーションからの回答として自計算機のＩＰアドレスが記された回答メッセージを作成する回答メッセージ作成手段と、
前記回答メッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して回答メッセージに添付する署名作成手段と、
回答毎に共通鍵を作成し、この共通鍵を用いて回答メッセージと署名を暗号化するメッセージ・署名暗号化手段と、
共通鍵を問い合わせ元の公開鍵で暗号化して回答メッセージに添付する共通鍵暗号化手段と、
問い合わせ元の公開鍵に簡易識別子生成用関数を適用して求められる簡易識別子を回答メッセージに添付する簡易識別子添付手段と、
問い合わせメッセージに基づいて作成された暗号化メッセージの配送を問い合わせ先計算機の名前解決モジュールに依頼するメッセージ配送依頼手段と
を有する名前解決ライブラリを問い合わせ先計算機上に有し、
前記メッセージ配送依頼手段によって依頼された暗号化メッセージを問い合わせ元計算機に配送するメッセージ配送手段を有する名前解決モジュールを問い合わせ先計算機上に有することを特徴とするメッセージ伝達装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信機器と通信機器間のデータ通信を実現する通信ネットワーク上で通信機器上に存在して通信を行なう通信主体が、目標の通信主体が存在する通信機器を探索して通信を開始する通信システムにおいて、各通信主体が公開鍵暗号の鍵（公開鍵と秘密鍵）を持ち、鍵自体を各通信主体を同定するための識別子として使用する通信対象へのメッセージ伝達方法、伝達装置および伝達プログラムに関する。
【０００２】
【従来の技術】
計算機（パケット）ネットワークでは、機器に割りふられた識別子（アドレス）を用いて各データの宛先を示すことによって、目的の通信相手までデータを配送する。しかしながら、通信機器上の通信主体、すなわちアプリケーションサービスや、それを操作するユーザからの立場からみた通信相手は、通信相手となる通信機器そのものではなく、通信機器上に存在する別の通信主体である。これは、通信主体同士の通信を実現するためには、通信主体と通信機器の識別子を関連づけて管理する名前解決システムで不可欠であることを意味する。
【０００３】
［名前解決サーバ方式］
図１２は従来の名前解決サーバ方式を示す系統図である。図において、１１は通信機器、１２は通信主体、１３は名前解決サーバ、１４は位置データベースである。すなわち、通信主体１２が名前解決サーバ１３に位置登録をし、通信主体１２と名前解決サーバ１３間で探索要求・回答が行なわれる。
【０００４】
個々の通信主体が属している通信機器が常に同一でほぼ変化しない場合は、個々の通信主体と通信機器との対応を静的なデータベースシステムで管理する方法が広く用いられている。例えば、ＴＣＰ／ＩＰネットワークでは、ホスト名（アプリケーションサービスと直結されるＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ，ＲＦＣ２３９６）の一部を成す）とＩＰアドレスの対応づけを行なうために階層型データベースサービスであるＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ，ＲＦＣ１０３４，１０３５）が広く用いられている。
【０００５】
通信主体が複数の通信機器間を渡り歩く場合や（例：職場では職場の計算機、自宅では自宅の計算機を使うユーザ）、通信機器そのものの識別子が変化する移動端末（例：接続先ＩＳＰやＬＡＮからＩＰＣＰ，ＤＨＣＰを用いて動的にアドレス割り当てを受けているＩＰ端末）が存在する場合には動的に位置データベースを再構築するような仕組みが必要である。
【０００６】
旧来のＤＮＳに動的ＩＰアドレス割当てシステムとの連携機能を追加した動的ＤＮＳ（Ｄｙｎａｍｉｃ  ＤＮＳ）や、データベースサーバとユーザ端末上のアドレス登録ツールを連携させることによってユーザとＩＰアドレスの対応を集中管理するＩＣＱサービスは動的なデータベースを用いた名前解決システムである。また、頻繁に移動する端末を追尾してデータを中継する固定中継装置（基地局）を用いることによって、ユーザ端末の所在に関わらず端末とＩＰアドレスを一意に固定するＭｏｂｉｌｅ  ＩＰのような技術も、動的なデータベースを用いた名前解決の一種であるといえる。
【０００７】
［同報問合せ方式］
図１３は従来の同報問合せ方式を示す系統図である。図において、１１は通信機器、１２は通信主体、１５は同報中継ネットワークである。すなわち、通信主体１２は同報中継ネットワーク１５を経由して他の各通信主体１２に問い合わせを同報（ブロードキャスト）し、目標の探索対象からの応答は同報中継ネットワーク１５を経由して問い合わせ通信主体１２に送信される。
【０００８】
このように、名前管理サーバを用いない名前解決方式として、探索対象の通信主体が存在し得る通信機の接続されているネットワーク全てに問い合わせを同報（ブロードキャスト）し、目標の探索対象から返答が帰ってくることを期待する手法を挙げることができる。データリンク層のネットワークアドレスとＩＰアドレスの対応付けを解決するＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ，ＲＦＣ８２６），ＲＡＲＰ（Ｒｅｖｅｒｓｅ  ＡｄｄｒｅｓｓＲｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ，ＲＦＣ９０３）や、ファイル名から目的のファイルの所在するサーバを探索するＧｎｕｔｅｌｌａは、同報問い合わせ方式を用いた名前解決システムの一例である。
【０００９】
【発明が解決しようとする課題】
ところで、通信主体間の通信行為や、通信主体の所在の位置に関する情報は、各通信主体に関わる私的な情報である。従って本来は、当事者以外に知られることがあってはならない。しかしながら、既存方式には通信主体の私的情報（プライバシー）が十分に保護できないという問題がある。
【００１０】
名前解決サーバ方式では、通信主体が存在する通信機器をサーバで追尾管理している。従ってサーバ管理者は、サーバに所属する全ての通信主体の所在と、ある通信主体が別の通信主体を探すためにサーバに発した依頼、およびその結果をすべて把握することが可能である。また、サーバが探索要求に対する回答処理を行なうということは、所在を公開するか否かを制御する直接の権限はサーバにあるということでもある。各通信主体が自分の所在に関する情報の制御（公開制限など）を直接行なうことはできず、必ず名前解決サーバを介して間接的に制御せざるを得ない。すなわちこれは、名前解決サーバ方式においては、各通信主体が自分の所在と通信相手の探索に関する行動、さらには情報自体の管理についても全てサーバ管理者に把握されることを許容しなければならないということを意味している。
【００１１】
ところで、サーバが位置情報を集中管理するという名前解決サーバ方式の特性上、何らかの要因によってサーバのセキュリティが損われると、蓄積された位置情報が一時に大量流出してしまう可能性が高い。不慮の事故によるデータ流出や、悪意をもった侵入者による通信機器への不正アクセスを完全に回避して十分なセキュリティを確保するためには、名前解決サーバの運営に最新の注意が必要不可欠である。これは、プライバシー確保のための運営コストとして利用者に影響する問題でもある。
【００１２】
また、同報問い合わせ方式には管理サーバが存在しないことから、ある特定の通信機器から情報がまとめて流出するような問題は発生し得ない。また、問い合わせには各通信主体（もしくは通信主体が属する通信機器）が直接回答するので、要求を回答するか拒絶するかについても自らが直接制御することができる。
【００１３】
ただし、問い合わせそのものが多くの通信機器に同報されることから、ある通信主体の動向が、当事者とは全く関係ない他の通信機器にも把握され易くなるという弊害が存在する。これは、Ｇｎｕｔｅｌｌａにおけるファイル共有のように問い合わせ対象の位置情報自体が不特定多数のコミュニティ全体に開かれていることに意味がある場合には問題にはならない。しかしながら、ある人が知人の所在を探す場合など、不特定多数に公開されるべきではないプライベートな情報に関する問い合わせは関係者以外には秘匿されるべきである。
【００１４】
また、１つのネットワークの内部に存在する通信主体／通信機器が増大すると、名前解決のための問い合わせ処理も通信主体数に比例して増大する。同報問い合わせ方式の場合、１つの通信主体の問い合わせによって全ての通信機器に対する通信が発生するため、通信機器数による適用限界の影響を受けやすい。例えばａｒｐ／ｒａｒｐは、同一ＬＡＮ上に存在する高々数百台規模のネットワークに適用範囲が限定することによって実用性を確保していると言える。
【００１５】
一方名前解決サーバ方式では、複数のサーバ間で処理を分担することによって適用規模を拡大することが可能である。ただし複数サーバ間で分散処理を実現する場合は、サーバ登録情報や運用形態に分散処理による制限が伴うという問題がある。例えばＤＮＳでは、名前空間自体を階層的に構成し、名前管理サーバ（すなわちＤＮＳサーバ）の管理範囲を階層ごとに限定することによって、サーバ間で連携をとった検索を実現している。
【００１６】
以上のように、
▲１▼プライバシー情報を一箇所で掌握するサーバが存在する。
【００１７】
したがって、サーバ管理者に対する情報秘匿が困難である。またデータ流出時の被害が甚大である。
【００１８】
▲２▼当事者以外による問い合わせ／応答の傍受・解析が容易である。
【００１９】
したがって、当事者以外に情報を秘匿することが困難である。
【００２０】
▲３▼拡張性（Ｓｃａｌａｂｉｌｉｔｙ）とプライバシー確保の両立ができない。
【００２１】
等の問題がある。
【００２２】
本発明は上記の事情に鑑みてなされたもので、通信内容を当事者以外から秘匿することができ、データ流出時の被害がなく、拡張性とプライバシー確保が両立できるメッセージ伝達方法、伝達装置および伝達プログラムを提供することを目的とする。
【００２３】
【課題を解決するための手段】
上記目的を達成するために本発明は、アプリケーションがＴＣＰ／ＩＰネットワークで相互に接続した各計算機上で実行され、各計算機上には名前解決モジュールが存在し、各計算機上のアプリケーションは名前解決ライブラリをプログラム中に所有するシステムを用い、自アプリケーションから問い合わせ先アプリケーションの所在に対する問い合わせを受けた場合における問い合わせメッセージの発信処理および回答メッセージの受信処理を行うメッセージ伝達方法において、問い合わせ元計算機の名前解決ライブラリで処理され、相手先に伝える自計算機のＩＰアドレスが記された問い合わせメッセージを作成する問い合わせメッセージ作成ステップと、問い合わせ元計算機の名前解決ライブラリで処理され、前記問い合わせメッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して問い合わせメッセージに添付する署名作成ステップと、問い合わせ元計算機の名前解決ライブラリで処理され、問い合わせ毎に共通鍵を作成し、この共通鍵を用いて問い合わせメッセージと署名を暗号化するメッセージ・署名暗号化ステップと、問い合わせ元計算機の名前解決ライブラリで処理され、前記共通鍵を問い合わせ先の公開鍵で暗号化して問い合わせメッセージに添付する共通鍵暗号化ステップと、問い合わせ元計算機の名前解決ライブラリで処理され、暗号化メッセージにメッセージの最大生存時間の情報を添付して問い合わせ元計算機の名前解決モジュールに暗号化メッセージの配送を依頼するメッセージ配送依頼ステップと、問い合わせ元計算機の名前解決モジュールで処理され、暗号化メッセージを隣接する計算機に同報配送する同報配送ステップと、問い合わせ元計算機の名前解決ライブラリで処理され、問い合わせ先計算機から配送された回答メッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読ステップと、問い合わせ元計算機の名前解決ライブラリで処理され、解読された共通鍵を適用して、回答メッセージと署名にかけられた共通鍵暗号を解く回答メッセージ・署名抽出ステップと、問い合わせ元計算機の名前解決ライブラリで処理され、公開鍵を適用して署名の暗号を解き得られた値と、先に得られた回答メッセージに署名用関数を適用して得られた値を比較する署名確認ステップと、問い合わせ元計算機の名前解決ライブラリで処理され、回答メッセージで得られた問い合わせ先計算機のＩＰアドレスを依頼元アプリケーションに渡す回答ステップとを具備することを特徴とする。
【００２４】
また本発明は、問い合わせ先計算機の名前解決ライブラリで処理され、隣接する計算機から配送された問い合わせメッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読ステップと、問い合わせ先計算機の名前解決ライブラリで処理され、解読された共通鍵を適用して、問い合わせメッセージと署名にかけられた共通鍵暗号を解くメッセージ・署名抽出ステップと、問い合わせ先計算機の名前解決ライブラリで処理され、公開鍵を適用して署名の暗号を解き得られた値と、先に得られた問い合わせメッセージに署名用関数を適用して得られた値を比較する署名確認ステップと、問い合わせ先計算機の名前解決ライブラリで処理され、問い合わせメッセージで得られた問い合わせ元計算機のＩＰアドレスを問い合わせ先アプリケーションに渡す回答ステップと、問い合わせ先計算機の名前解決ライブラリで処理され、問い合わせを受けたアプリケーションからの回答として自計算機のＩＰアドレスが記された回答メッセージを作成する回答メッセージ作成ステップと、問い合わせ先計算機の名前解決ライブラリで処理され、前記回答メッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して回答メッセージに添付する署名作成ステップと、問い合わせ先計算機の名前解決ライブラリで処理され、回答毎に共通鍵を作成し、この共通鍵を用いて回答メッセージと署名を暗号化するメッセージ・署名暗号化ステップと、問い合わせ先計算機の名前解決ライブラリで処理され、共通鍵を問い合わせ元の公開鍵で暗号化して回答メッセージに添付する共通鍵暗号化ステップと、問い合わせ先計算機の名前解決ライブラリで処理され、問い合わせメッセージに基づいて作成された暗号化メッセージの配送を問い合わせ先計算機の名前解決モジュールに依頼するメッセージ配送依頼ステップと、問い合わせ先計算機の名前解決モジュールで処理され、暗号化メッセージを問い合わせ元計算機に配送するメッセージ配送ステップとを具備することを特徴とする。
【００２５】
尚、本発明は、サーバ集中管理による問題を解決するために、同報問い合わせとインデックス（Ｉｎｄｅｘ）登録型サーバ管理方式を用いる。
【００２６】
また、公開鍵暗号を用いて探索要求を秘匿する。すなわち、通信主体毎に、公開鍵暗号のための鍵ペア（秘密鍵＋公開鍵）を持つ。探索対象の通信主体の公開鍵を用いて要求内容を秘匿する。もしくはセッション毎に生成した秘密鍵（セッション鍵）を用いて要求内容を秘匿し、セッション鍵を相手の公開鍵で暗号化したものを暗号化されたメッセージとあわせて用いる。秘匿された内容は探索対象となる通信主体以外内容を知ることはできない。公開鍵暗号の特徴を用いて、要求内容に自ら署名を添付する。署名によって、要求元の身元が証明される。公開鍵のアブストラクト（Ｆｉｎｇｅｒｐｒｉｎｔ）を簡易識別子とした選択配送を用いることによって拡張性を確保する。
【００２７】
【発明の実施の形態】
以下図面を参照して本発明の実施形態例を詳細に説明する。
【００２８】
尚、ここでは、以下に定める略記を用いる。
【００２９】
・Ｐｘ…通信主体ｘの公開鍵
・Ｓｘ…通信主体ｘの秘密鍵
・Ｅ（Ｋ，Ｘ）…データＸに鍵Ｋを適用して生成された暗号文
・Ｄ（Ｋ，Ｘ）…データＸに鍵Ｋを適用して復号された平文
・Ｓｉｇ（Ｓｘ，Ｘ）…秘密鍵Ｓｘを用いて生成されたＸの署名
［実施形態例１］
図１は本発明に係る公開鍵暗号を用いた名前解決方式の概要を示す系統図である。図において、ａ，ｂ，ｃ，ｄは通信主体、ｉ，ｊ，ｋ，ｌは通信機器、Ｓｘはｘの秘密鍵、Ｐｘはｘの公開鍵であり、Ｅ（Ｋｘ，Ａ）はｘの暗号鍵Ｋｘを用いてＡに暗号をかける。Ｓｉｇ（Ｓｘ，Ａ）はｘの秘密鍵Ｓｘを用いてＡに署名する。
【００３０】
本方式では、問題▲２▼を解決するために、公開鍵番号を用いた問い合わせ／応答の秘匿を行なう。このために、各通信主体はそれぞれ固有の暗号鍵を所有する。暗号鍵は公開鍵暗号系で用いられる公開鍵と暗号鍵から構成される１対の鍵ペアである。従来方式では、問い合わせ内容は平文のまま送信されていたが、本方式では問い合わせ先の通信主体の公開鍵を用いて暗号化される。また同時に問い合わせ元の通信主体の秘密鍵をもちいた署名を添付する。
【００３１】
暗号をかけられた問い合わせの配送には、他の通信主体に問い合わせを発送する同報問い合わせ方式を用いる。これによってサーバ集中管理方式に起因する問題▲１▼が解決される。
【００３２】
以下、図１に沿って解決策の実施形態例について述べる。図中の通信機器はネットワークを介して接続され、相互に通信可能な状態にある。また通信主体ａ，ｂ，ｃ，ｄは、ある時点において図中の通信機器上に存在している通信主体である。各通信主体は、それぞれ固有の公開鍵暗号用鍵ペア（Ｓｘ，Ｐｘ）を所有している。秘密鍵Ｓｘは通信主体ｘのみが知る鍵である。一方公開鍵Ｐｘは通信主体ｘだけではなくｘと通信する通信主体全てに公開されている鍵（公知の鍵）である。ここでは、通信主体ａが通信主体ｂと通信するために問い合わせする場合を実施形態例について図２の処理フロー図に沿って述べる。
【００３３】
図２は本発明に係る公開鍵暗号を用いた名前解決の流れの処理を示すフロー図である。
【００３４】
まず、通信主体ａは通信主体ｂに対して送信する問い合わせメッセージＴを作成する（［１］）。メッセージＴには通信主体ａの存在する通信機器のネットワークアドレス、使用する通信アプリケーション（プロトコル）など、回答に必要となる通信主体ａの情報が含まれる。
【００３５】
次に、生成されたメッセージＴは、通信主体ｂに配送するために、通信主体ａの署名を施したうえでＰｂを用いて暗号化する（［２］）。最後に通信主体ａは、暗号を施したメッセージＥ（Ｐｂ，Ｔ＋Ｓｉｇ（Ｓａ，Ｔ））を全ての通信機器に対して同報したのち、通信主体ｂからの回答を待つ（［３］）。
【００３６】
同報された問い合わせメッセージＥ（Ｐｂ，Ｔ＋Ｓｉｇ（Ｓａ，Ｔ））は、各通信機器上の通信主体ｂ，ｃ，ｄによって受信される（［１１］）。問い合わせを受信した各通信主体は、まず問い合わせメッセージの暗号解読を試みる（［１２］）。ここで、公開鍵暗号の特性上、Ｅ（Ｐｂ，Ｔ＋Ｓｉｇ（Ｓａ，Ｔ））は、Ｐｂと対となる鍵Ｓｂがなければ解読できない。従って、秘密鍵Ｓｂを持つ通信主体ｂ以外は何者も問い合わせメッセージの内容を知ることができない。通信主体ｃ，ｄは解読できなかったメッセージを破棄して処理を終了する。
【００３７】
Ｅ（Ｐｂ，Ｔ＋Ｓｉｇ（Ｓａ，Ｔ））を解読した通信主体ｂは、得られたＳｉｇ（Ｓａ，Ｔ）をＰａを用いて検証することによって、メッセージＴが通信主体ａから来たことを確認する（［１３］）。通信主体ａはこの時点で初めてメッセージＴを有効な問い合わせメッセージであると確定する。
【００３８】
通信主体ｂは受けとった問い合わせＴに応じて、自らの所在する通信機器の位置などのａとの通信に必要となる情報を含む回答Ｒを作成し（［１４］）、通信主体ａに対して返送する。このとき回答Ｒの送信方式およびその宛先は、メッセージＴから得る。
【００３９】
通信主体ａに配送される回答Ｒは問い合わせＴと同様に、ｂにより署名と暗号化が施された後（［１５］）通信主体ａめざして配送される（［１６］）。暗号化された情報Ｅ（Ｐａ，Ｒ＋Ｓｉｇ（Ｓｂ，Ｒ））は通信主体ａ以外によって解読することはできない。すなわち返答Ｒの内容もＴ同様に通信当事者以外から秘匿されている。
【００４０】
返答を待っていた通信主体ａは（［４］）、Ｅ（Ｐａ，Ｒ＋Ｓｉｇ（Ｓｂ，Ｒ））を暗号解読した結果、通信主体ｂと通信するための方法を知ることができる（［５］）。またＰｂを用いてＳｉｇ（Ｓｂ，Ｒ）を確認することによって、返答がｂからのものであることを確認することができ（［６］）、回答Ｒの取得を完了する（［７］）。
【００４１】
以上の手順をふまえることによって、通信主体ａに対して通信主体ｂの所在を知らせる、安全な名前解決の手段を提供することが可能となる。
【００４２】
［実施形態例２］
前記実施形態例１を前提とした方式で、問い合わせ内容の秘匿に公開鍵暗号そのものではなく、問い合わせごとに生成した共有鍵（セッション鍵）を用いた共有鍵暗号を用いる。問い合わせメッセージには、共有鍵で暗号化された問い合わせメッセージ、およびメッセージに対する問い合わせ元の署名と共に、問い合わせ先の通信主体の公開鍵をもちいて暗号化された共有鍵そのものを添付する。
【００４３】
実施形態例１と実施形態例２の相違は、問い合わせメッセージＴの秘匿手法にある。実施形態例２において通信主体ａが通信主体ｂに問い合わせを行なう場合、通信主体ａは共有鍵暗号を適用するための共有鍵Ｑを用意する。Ｑは、各問い合わせ処理に固有で、問い合わせ処理の度に新規に生成される暗号鍵である。
【００４４】
通信主体ａは、問い合わせメッセージＴを通信主体ｂに配送するために、まずＴおよび自らの署名Ｓｉｇ（Ｓａ，Ｔ）に対して共有鍵Ｑを適用して暗号化する（Ｅ（Ｑ，Ｔ＋Ｓｉｇ（Ｓａ，Ｔ）））。次に、共有鍵Ｑそのものを宛先である通信主体ｂの公開鍵Ｐｂで暗号化する（Ｅ（Ｐｂ，Ｑ））。最後に、暗号を施したメッセージＥ（Ｐｂ，Ｑ）＋Ｅ（Ｑ，Ｔ＋Ｓｉｇ（Ｓａ，Ｔ））を全ての通信機器に対して同報したのち、通信主体ｂからの回答を待つ。
【００４５】
同報されたメッセージＥ（Ｐｂ，Ｑ）＋Ｅ（Ｑ，Ｔ＋Ｓｉｇ（Ｓａ，Ｔ））を受信した各通信主体は、実施形態例１の場合と同様にメッセージの暗号解読を試みる。ただし実施形態例２では、共有鍵Ｑの抽出とＱによるメッセージおよび署名の摘出という２段階の解読処理が必要である。解読を試行して得られたメッセージＤ（Ｄ（Ｓｂ，Ｅ（Ｐｂ，Ｑ）），Ｅ（Ｑ，Ｔ＋Ｓｉｇ（Ｓａ，Ｔ）））から正しいＴを得ることが可能なのは、Ｐｂと対応する秘密鍵Ｓｂをもつ通信主体ｂだけである。無効なＴを受信した他の通信主体は処理を終了する。
【００４６】
通信主体ｂは実施形態例１の場合と同様に、署名を確認した後に通信主体ａに対して回答Ｒを返答する。ただし返答Ｒの暗号化については、問い合わせメッセージＴと同様に共有鍵Ｑ′を適用する。従って、通信主体に配送されるメッセージはＥ（Ｐａ，Ｑ′）＋Ｅ（Ｑ′，Ｒ＋Ｓｉｇ（Ｓｂ，Ｒ））となる。
【００４７】
以上の手順をふまえることによって、通信主体ａに対して通信主体ｂの所在を知らせる安全な名前解決の手段を提供することが可能である。実施形態例２では、通信メッセージ本文に対して適用される暗号鍵が問い合わせごとに変化するので、実施形態例１と比較してより堅牢（Ｓｅｃｕｒｅ）なシステムを提供できる。
【００４８】
［実施形態例３］
同報問い合わせ方式を用いた場合の問題▲３▼を解決するために、実施形態例１，２に通信主体の公開鍵の簡易識別子（アブストラクト）と中継先との対応を、ネットワーク内の同報中継装置で保有してメッセージの中継先を限定する。
【００４９】
実施形態例３は、実施形態例１または実施形態例２を前提とした実施形態例の問い合わせメッセージ同報中継機能を改変することにより実現される。図３に、実施形態例１を前提とした場合における実施形態例３の概要を、通信主体ａによる通信主体ｂへの問い合わせ例を用いて示す。ここでは、通信主体ａが通信主体ｂと通信するために問い合わせする場合を例に実施形態例３における改変点について述べる。尚、Ｉｘはｘの公開鍵の簡易識別子（アブストラクト）である。
【００５０】
実施形態例３では、通信主体の識別子である各通信主体ｘの公開鍵Ｐｘから、公開鍵の簡易識別子Ｉｘを生成する関数Ｉ（Ｐｘ）を１つ定義する。通信主体ａからｂに対して問い合わせメッセージを送信する場合、暗号化したメッセージにＩｂ＝Ｉ（Ｐｂ）を付加して同報を行なう。従って、暗号化手順に解決策Ａの方式を用いた場合の解決策Ｃの同報メッセージはＩｂ＋Ｅ（Ｐｂ，Ｔ＋Ｓｉｇ（Ｓａ，Ｔ））となる。
【００５１】
また、各通信主体から届いたメッセージを中継する同報中継装置は、通信主体ｘへのメッセージを送信すべき方向を、簡易識別子Ｉｘと宛先の通信機器との対応を示した経路制御テーブルとして所有している。通常、同報中継装置では、受信した問い合わせメッセージを、自らと隣接する受信したメッセージの発信元以外の全ての通信装置に対して中継する。ただし解決策Ｃでは、受信した問い合わせメッセージに添付された簡易識別子を持つ通信機器への経路が記録されていた場合は、経路制御テーブルに記録された宛先に対してのみメッセージを中継し、ブロードキャスト処理は実行しない。
【００５２】
例えば図３の例において、通信主体ａからの問い合わせメッセージを受信した同報中継装置は、経路制御テーブルを参照して問い合わせメッセージ中のＩｂに対応する宛先（ＩＦ２）を知ることができる。この結果、問い合わせメッセージＩｂ＋Ｅ（Ｐｂ，Ｔ＋Ｓｉｇ（Ｓａ，Ｔ））は通信機器ｊにのみ中継配送され、通信機器ｋに送られることはない。これが実施形態例３による同報制限の抑制動作である。
【００５３】
【実施例】
［実施例１］
本発明の実施例として、ＴＣＰ／ＩＰネットワークで相互に接続した各計算機上で実行中のアプリケーションにおいて、あるアプリケーションが、所在不明の特定アプリケーションを、識別子、すなわち公開鍵を検索キーとして探索する名前解決システムの例を示す。
【００５４】
なお、実施例１は実施形態例１，２に対応する。
【００５５】
図４に、本実施例におけるシステム構成を示す。Ｈｏｓｔ１〜６は、ネットワークによって相互に通信可能な計算機である。各計算機上には、計算機間の論理的な接続を管理して計算機間のメッセージ交換をハンドリングする、名前解決モジュールが各１つづつ存在する。名前解決モジュールは、論理的に隣接する計算機の一覧表を管理する。名前解決のための探索は、各計算機の名前解決モジュールが管理する接続の連鎖によって構成される仮想ネットワーク上で実行される。
【００５６】
各計算機上のアプリケーションは、名前解決ライブラリをプログラム中に所有する。名前解決ライブラリは、名前解決処理を利用するアプリケーションのための実行モジュールで、暗号化機能や名前解決モジュールとのプロセス間通信の機能を持つ。また、各アプリケーションは、識別子および暗号鍵として固有の公開鍵暗号鍵（公開鍵＋秘密鍵）をすくなくとも１つ所有する。
【００５７】
なお名前解決に用いる公開鍵暗号および共通鍵暗号のアルゴリズムについては、実施例の処理に依存しない独立の事項であり、特に規定しない。同様に、メッセージの署名や、公開鍵の簡易識別子を生成するために使用するハッシュ関数のアルゴリズムについても同様に規定しない。
【００５８】
以後、凡例に沿って以下の略記を用いる。
【００５９】
・Ｈｏｓｔ  ｎ…計算機ｎ
・Ｐnx…計算機ｎ上のアプリケーションｘ固有の公開鍵
・Ｉnx…公開鍵Ｐnxの簡易識別子
・Ｓnx…計算機ｎ上のアプリケーションｘ固有の秘密鍵
図５に、３台の計算機によって構成されたネットワーク上における名前解決システムの適用例を示す。図５の例では、Ｈｏｓｔ１〜３の各計算機で名前解決システムと連携したアプリケーションが１つづつ実行されている。また、各計算機上の名前解決モジュールは、Ｈｏｓｔ２がＨｏｓｔ１，３と隣接するように（仮想的に）隣接登録がなされている。Ｈｏｓｔ１と３の名前解決モジュール間は直接接続されていない。
【００６０】
以下に、図５のシステムにおいて、Ｈｏｓｔ１上のアプリケーション１ａが、Ｈｏｓｔ３上のアプリケーション３ａを探索して、ＴＣＰコネクションを生成するまでの処理過程を例に、名前解決システムの動作手順を示す（図６）。
【００６１】
アプリケーション１ａが、アプリケーション３ａとの間にＴＣＰコネクションを開設するためには、双方のアプリケーションが互いの計算機のＩＰアドレスを知らなければならない。そこで、アプリケーション１ａは、自計算機内の名前解決ライブラリ１ａに対して、アプリケーション３ａの所在の探索を要請する（問い合わせ（３ａ）要求（１））。このときアプリケーション１ａは、アプリケーション３ａとの間で使用する通信プロトコル種別に関する情報と（本例ではＴＣＰ）、アプリケーション３ａの識別子、すなわちＰ3aを名前解決ライブラリ１ａに渡す。
【００６２】
要請を受けた名前解決ライブラリ１ａは、受けとった情報を元に問い合わせメッセージＴを作成し（２）、名前解決モジュール１に渡す（問い合わせメッセージ配送要求（３））。この処理の詳細に関しては後で述べる。
【００６３】
問い合わせメッセージを受けとった名前解決モジュール１は、隣接計算機一覧に基いて、隣接する計算機すなわちＨｏｓｔ２に問い合わせメッセージを中継する（４）。同様に、中継されたメッセージを受信したＨｏｓｔ２上の名前解決モジュール２も、Ｈｏｓｔ３に問い合わせメッセージを中継する（隣接計算機に中継（５））。Ｈｏｓｔ３上の名前解決モジュール３は、メッセージ中の簡易識別子Ｉ3aをみて、簡易識別子の一致した名前解決ライブラリ３ａに問い合わせメッセージを渡す（６）。名前解決モジュールによる処理（４）−（６）の詳細については後で述べる。
【００６４】
名前解決ライブラリ３ａでは、受信した問い合わせメッセージの解読と検証を行って（７）、問題がなければ問い合わせ内容をアプリケーション３ａに通知する（応答伺い（８））。本処理の詳細については後で述べる。
【００６５】
アプリケーション３ａは、名前解決ライブラリから得たアプリケーション１ａのＩＰアドレスおよび、使用プロトコルに関する情報から応答の是非を判断して（９）、必要ならば名前解決ライブラリ３ａに応答処理を要請する（１０）。このときアプリケーション３ａは、アプリケーション１ａとの間で通信を確立するための準備を行なうとともに、アプリケーション１ａがコネクション確立に必要とする情報を回答情報として名前解決ライブラリ３ａに渡す。本例の場合、アプリケーション３ａは、応答処理要請まえに、アプリケーション１ａとのＴＣＰコネクション確立のためにＴＣＰポートを開き接続待機状態に入る。また応答処理要請時に、接続待機中のＴＣＰポートの番号を回答情報として名前解決ライブラリ３ａに渡す。
【００６６】
応答処理要請をうけた名前解決ライブラリ３ａは、回答メッセージを作成したのち（１１）名前解決モジュール１ａにむけて直送する（回答メッセージの配送（１２））。一方、直送されてきたメッセージを受信した名前解決モジュール１は、メッセージ中の簡易識別子Ｉ1aをみて、簡易識別子の一致する名前解決ライブラリ１ａに回答メッセージを中継する（１３）。名前解決ライブラリ１ａでは、回答メッセージの内容を確認した後（１４）、問題がなければアプリケーション１ａに回答を返す（１５）。これら一連の処理の詳細な流れについては後で述べる。
【００６７】
以上のような一連の処理によって、アプリケーション１ａは、アプリケーション３ａの公開鍵Ｐ3aから３ａのＩＰアドレスおよびＴＣＰコネクション接続待ちポート番号を知ることができる。この情報をもとに、アプリケーション１ａは３ａとＴＣＰコネクションを接続することが可能となる（１６）。
【００６８】
［名前解決ライブラリ］
名前解決ライブラリは、アプリケーションからの問い合わせ要求を受けて問い合わせ内容を当事者以外から秘匿した上で、名前解決モジュールに対して他のアプリケーションへの同報配送を依頼し、その回答を処理する機能をもつ。また、他のアプリケーションから届いた問い合わせ要求を処理して、（必要ならば）これに応答するメッセージを返す処理を行うのも名前解決ライブラリである。
【００６９】
図７に、アプリケーションｘからアプリケーションｙの所在に対する問い合わせを受けた場合における名前解決ライブラリのｔ処理の流れを示す。（添字ｘは、自アプリケーション、ｙは問い合わせ先アプリケーションを表わす。）以下、順を追って各項目の内容について解説する。
【００７０】
・問い合わせメッセージの発信処理（図６（２）−（３））
１．問い合わせメッセージＴの作成
問い合わせを受けてから最初に実行されるのが、相手先に伝える問い合わせメッセージ（以下Ｔと略記）の作成である。Ｔには、アプリケーションから受けとった通信プロトコル種別に関する情報と共に、自計算機のＩＰアドレスと名前解決モジュールのＵＤＰ通信ポートが記される。なお、Ｔはこの段階では平文の情報で、秘匿されてはいない。
【００７１】
２．署名の作成
Ｔを元にＴの署名を作成する。署名は、Ｔの内容を署名用関数にかけた結果値を自らの秘密鍵Ｓx で暗号化したものである。
【００７２】
３．共通鍵Ｑの作成とメッセージの暗号化
本実施例では、問い合わせメッセージと署名の暗号化に、問い合わせ毎に生成される共通鍵（以下Ｑと略記）を用いた共通鍵暗号を用いる。
【００７３】
４．Ｑを問い合わせ先公開鍵Ｐy で暗号化
Ｑを秘匿するために、Ｑそのものを問い合わせ先の公開鍵Ｐy で暗号化する。この処理によって、正しいＱを得てＴとＴの署名にかけられた暗号を解読できるのは、Ｐy とペアとなる鍵Ｓy をもつ問い合わせ先アプリケーションに限定される。
【００７４】
５．Ｐy の簡易識別子（Ｉy ）を添付
簡易識別子Ｉy は、Ｐy に簡易識別子生成用関数を適用して求められるもので、名前解決モジュールでの配送判別処理で使用する。
【００７５】
６．メッセージの配送を行なう
メッセージの処理の最後に、作成された暗号化メッセージＩy ＋Ｅ（Ｐy ，Ｑ）＋Ｅ（Ｑ，Ｔ＋Ｓｉｇ（Ｓx ，Ｔ））にメッセージの最大生存時間ＴＴＬ（Ｔｉｍｅ  ｔｏ  Ｌｉｖｅ）の情報を添付したのち、同一計算機内の名前解決モジュールに配送を依頼する。ＴＴＬについては後で述べる。
【００７６】
７．問い合わせ先アプリケーションからの回答を待つ
問い合わせメッセージに対応した回答が、問い合わせ先より戻ってくるまで待機する。
【００７７】
・回答メッセージの受信処理（図６（１４）−（１５））
１．簡易識別子の確認
回答メッセージ中に含まれた簡易識別子が、自らの簡易識別子Ｉx と等しいかどうか確認する。簡易識別子が異なる場合は、メッセージの処理を中断して、回答受信待ちに戻る。
【００７８】
２．共通鍵Ｑ′の解読
Ｓx を用いて回答メッセージ中に含まれている暗号化された共通鍵Ｑ′の解読を行なう。解読できなかった場合は、メッセージの処理を中断して、回答受信待ちに戻る。なお、暗号解読に失敗するのは、回答メッセージが自分宛ではない場合である。
【００７９】
３．Ｑ′で平文の回答メッセージとその署名を抽出する。解読されたＱ′を適用して、回答メッセージ本文とその署名にかけられた共通鍵暗号を解く。
【００８０】
４．署名の確認
公開鍵Ｐy を適用して添付された署名の暗号を解き、得られた値と、先に得られた回答メッセージに署名用関数を適用して得られた値を比較する。値が異なっていた場合は、Ｓy を知り得ない第３者によるなりすまし回答であると判断して処理を中断し、回答受信待ちに戻る。
【００８１】
５．回答を依頼元アプリケーションに渡す
以上の処理で得られた回答、すなわち、問い合わせ先アプリケーションの存在する計算機のＩＰアドレスと使用する通信プロトコルに関する情報をアプリケーションに渡して、名前解決ライブラリ内での問い合わせ処理を終了する。
【００８２】
なお、図７の名前解決ライブラリの処理における問い合わせ要求処理はメッセージ伝達装置を用いて行われる。すなわち、自アプリケーションから問い合わせ先アプリケーションの所在に対する問い合わせを受けた場合における問い合わせメッセージの発信処理および回答メッセージの受信処理を行うメッセージ伝達装置において、相手先に伝える問い合わせメッセージを作成する問い合わせメッセージ作成手段と、前記問い合わせメッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して問い合わせメッセージに添付する署名作成手段と、問い合わせ毎に共通鍵を作成し、この共通鍵を用いて問い合わせメッセージと署名を暗号化するメッセージ・署名暗号化手段と、前記共通鍵を問い合わせ先の公開鍵で暗号化して問い合わせメッセージに添付する共通鍵暗号化手段と、前記問い合わせ先の公開鍵に簡易識別子生成用関数を適用して求められる簡易識別子を問い合わせメッセージに添付する簡易識別子添付手段と、暗号化メッセージにメッセージの最大生存時間の情報を添付してメッセージの配送を行なうメッセージ配送手段と、問い合わせメッセージに対応した回答メッセージ中に含まれた簡易識別子が、自らの簡易識別子と等しいかどうかを確認する簡易識別子確認手段と、前記回答メッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読手段と、解読された共通鍵を適用して、回答メッセージと署名にかけられた共通鍵暗号を解く回答メッセージ・署名抽出手段と、公開鍵を適用して署名の暗号を解き得られた値と、先に得られた回答メッセージに署名用関数を適用して得られた値を比較する署名確認手段と、回答メッセージを依頼元アプリケーションに渡す回答手段とを具備することを特徴とするものである。
【００８３】
また、図７の名前解決ライブラリの処理における問い合わせ要求処理は具体的にはパーソナルコンピュータ（ＰＣ）等のコンピュータにより、予め所定のメッセージ伝達プログラムに基づいて実行される。すなわち、自アプリケーションから問い合わせ先アプリケーションの所在に対する問い合わせを受けた場合における問い合わせメッセージの発信処理および回答メッセージの受信処理を行うメッセージ伝達プログラムにおいて、相手先に伝える問い合わせメッセージを作成する問い合わせメッセージ作成手順、前記問い合わせメッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して問い合わせメッセージに添付する署名作成手順、問い合わせ毎に共通鍵を作成し、この共通鍵を用いて問い合わせメッセージと署名を暗号化するメッセージ・署名暗号化手順、前記共通鍵を問い合わせ先の公開鍵で暗号化して問い合わせメッセージに添付する共通鍵暗号化手順、前記問い合わせ先の公開鍵に簡易識別子生成用関数を適用して求められる簡易識別子を問い合わせメッセージに添付する簡易識別子添付手順、暗号化メッセージにメッセージの最大生存時間の情報を添付してメッセージの配送を行なうメッセージ配送手順、問い合わせメッセージに対応した回答メッセージ中に含まれた簡易識別子が、自らの簡易識別子と等しいかどうかを確認する簡易識別子確認手順、前記回答メッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読手順、解読された共通鍵を適用して、回答メッセージと署名にかけられた共通鍵暗号を解く回答メッセージ・署名抽出手順、公開鍵を適用して署名の暗号を解き得られた値と、先に得られた回答メッセージに署名用関数を適用して得られた値を比較する署名確認手順、回答メッセージを依頼元アプリケーションに渡す回答手順をコンピュータに実行させる。
【００８４】
図８に、アプリケーションｙからのアプリケーションｘに対する問い合わせを受けた名前解決ライブラリｘの処理の流れを示す。（添字ｘは、自アプリケーション、ｙは問い合わせ元アプリケーションを表わす）。以下、順を追って各項目の内容について解説する。
【００８５】
・問い合わせメッセージの受信処理（図６（７）−（８））
１．簡易識別子の確認
問い合わせメッセージ中に含まれた簡易識別子が、自らの簡易識別子Ｉx と等しいかどうか確認する。簡易識別子が異なる場合は、メッセージの処理を中断して、問い合わせ受信待ち状態に戻る。
【００８６】
２．共通鍵Ｑの解読
Ｓx を用いて問い合わせメッセージ中に含まれている暗号化された共通鍵Ｑの解読を行なう。解読できなかった場合は、メッセージの処理を中断して、問い合わせ受信待ちに戻る。なお、暗号解読に失敗するのは、問い合わせメッセージが自分宛ではない場合である。
【００８７】
３．Ｑで平文の問い合わせとその署名を抽出する。解読されたＱを適用して、問い合わせメッセージ本文とその署名にかけられた共通鍵暗号を解く。
【００８８】
４．署名の確認
公開鍵Ｐy を適用して添付された署名の暗号を解き、得られた値と、先に得られた問い合わせメッセージに署名用関数を適用して得られた値を比較する。値が異なっていた場合は、Ｓy を知り得ない第３者によるなりすまし問い合わせであると判断して処理を中断し、問い合わせ受信待ちに戻る。
【００８９】
５．問い合わせ内容をアプリケーションに渡す
以上の処理で得られた問い合わせ、すなわち、問い合わせ元アプリケーションの存在する計算機のＩＰアドレスと使用する通信プロトコルに関する情報をアプリケーションに渡し、名前解決ライブラリ内での問い合わせ受信処理を終了する。
【００９０】
・回答メッセージの発信処理（図６（１１）−（１２））
１．回答メッセージＲの作成
アプリケーションが、応答判断の結果回答を返すことを名前解決ライブラリに要求した場合、名前解決ライブラリは、最初に相手先に伝える回答メッセージ（以下Ｒと略記）を作成する。Ｒには、問い合わせを受けたアプリケーションからの回答として、自計算機のＩＰアドレスなど、指定された通信プロトコルに必要となる情報が記される。なおこの段階では、Ｒは平文の情報で秘匿されてはいない。
【００９１】
２．署名の作成
Ｒを元にＲの署名を作成する。署名は、Ｒの内容を署名用関数にかけた結果値を自らの秘密鍵Ｓx で暗号化したものである。
【００９２】
３．共通鍵Ｑ′の作成とメッセージの暗号化
本実施例では、回答メッセージと署名の暗号化に、回答毎に生成される共通鍵（以下Ｑ′と略記）を用いた共通鍵暗号を用いる。
【００９３】
４．Ｑ′を公開鍵Ｐy で暗号化
Ｑ′を秘匿するために、Ｑ′そのものを問い合わせ元の公開鍵Ｐy で暗号化する。この処理によって、正しいＱ′を得てＴとＴの署名にかけられた暗号を解読できるのは、Ｐy とペアとなる鍵Ｓy をもつ問い合わせ元アプリケーションに限定される。
【００９４】
５．Ｐy の簡易識別子（Ｉy ）を添付
簡易識別子Ｉy は、Ｐy に簡易識別子生成用関数を適用して求められるもので、名前解決モジュールでの配送判別処理で使用する。
【００９５】
６．メッセージの配送を行なう
問い合わせメッセージ中の、問い合わせ元計算機の名前解決モジュールに関する情報に基づいて、作成された暗号化メッセージＩy ＋Ｅ（Ｐy ，Ｑ′）＋Ｅ（Ｑ′，Ｒ＋Ｓｉｇ（Ｓx ，Ｒ））を問い合わせ元計算機の名前解決モジュールに直送する。
【００９６】
なお、図８の名前解決ライブラリの処理における問い合わせ応答処理はメッセージ伝達装置を用いて行われる。すなわち、問い合わせ元アプリケーションからの自アプリケーションに対する問い合わせを受けた場合における問い合わせメッセージの受信処理および回答メッセージの発信処理を行なうメッセージ伝達装置において、問い合わせメッセージ中に含まれた簡易識別子が、自らの簡易識別子と等しいかどうか確認する簡易識別子確認手段と、前記問い合わせメッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読手段と、解読された共通鍵を適用して、問い合わせメッセージと署名にかけられた共通鍵暗号を解くメッセージ・署名抽出手段と、公開鍵を適用して署名の暗号を解き得られた値と、先に得られた問い合わせメッセージに署名用関数を適用して得られた値を比較する署名確認手段と、問い合わせを受けたアプリケーションからの回答として回答メッセージを作成する回答メッセージ作成手段と、前記回答メッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して回答メッセージに添付する署名作成手段と、回答毎に共通鍵を作成し、この共通鍵を用いて回答メッセージと署名を暗号化するメッセージ・署名暗号化手段と、共通鍵を問い合わせ元の公開鍵で暗号化して回答メッセージに添付する共通鍵暗号化手段と、問い合わせ元の公開鍵に簡易識別子生成用関数を適用して求められる簡易識別子を回答メッセージに添付する簡易識別子添付手段と、問い合わせメッセージに基づいて作成された暗号化メッセージの配送を行なうメッセージ配送手段とを具備することを特徴とするものである。
【００９７】
また、図８の名前解決ライブラリの処理における問い合わせ応答処理は具体的にはパーソナルコンピュータ（ＰＣ）等のコンピュータにより、予め所定のメッセージ伝達プログラムに基づいて実行される。すなわち、問い合わせ元アプリケーションからの自アプリケーションに対する問い合わせを受けた場合における問い合わせメッセージの受信処理および回答メッセージの発信処理を行なうメッセージ伝達プログラムにおいて、問い合わせメッセージ中に含まれた簡易識別子が、自らの簡易識別子と等しいかどうか確認する簡易識別子確認手順、前記問い合わせメッセージ中に含まれている暗号化された共通鍵の解読を自らの秘密鍵を用いて行なう共通鍵解読手順、解読された共通鍵を適用して、問い合わせメッセージと署名にかけられた共通鍵暗号を解くメッセージ・署名抽出手順、公開鍵を適用して署名の暗号を解き得られた値と、先に得られた問い合わせメッセージに署名用関数を適用して得られた値を比較する署名確認手順、問い合わせを受けたアプリケーションからの回答として回答メッセージを作成する回答メッセージ作成手順、前記回答メッセージの内容を署名用関数にかけた結果値を自らの秘密鍵で暗号化した署名を作成して回答メッセージに添付する署名作成手順、回答毎に共通鍵を作成し、この共通鍵を用いて回答メッセージと署名を暗号化するメッセージ・署名暗号化手順、共通鍵を問い合わせ元の公開鍵で暗号化して回答メッセージに添付する共通鍵暗号化手順、問い合わせ元の公開鍵に簡易識別子生成用関数を適用して求められる簡易識別子を回答メッセージに添付する簡易識別子添付手順、問い合わせメッセージに基づいて作成された暗号化メッセージの配送を行なうメッセージ配送手順をコンピュータに実行させる。
【００９８】
［名前解決モジュール］
名前解決モジュールは、他の計算機もしくは同一計算機内のアプリケーションに付随する名前解決ライブラリから受けとった問い合わせメッセージＴを隣接する名前解決モジュール、および簡易識別子の等しい自計算機内のアプリケーションに転送する。また、回答メッセージＲを受信して、宛先の名前解決ライブラリに中継する機能も持つ。図９に名前解決モジュールの処理フローを示す。
【００９９】
・問い合わせメッセージＴの転送処理（図９（ａ））
１．無限転送の抑制
名前解決モジュールは、問い合わせメッセージＴを隣接する計算機もしくは自計算機内のアプリケーションに付随する名前解決ライブラリから受信する。Ｔを受信した名前解決モジュールは、最初にＴ内のメッセージ最大生存時間ＴＴＬの値を１減らす。この時点でＴＴＬ値が０以下になった場合は、Ｔを隣接計算機に中継しない。
【０１００】
この処置によって、隣接名前解決モジュール間の連鎖によって構成された仮想ネットワークにループがある場合でも、Ｔがループ内で無限に中継される現象を防ぐことができる。
【０１０１】
２．隣接計算機への中継転送
ＴＴＬを１減らした結果、ＴＴＬが１以上の場合は、ＴＴＬ値が更新されたＴを発信元計算機以外の隣接計算機に対して中継転送する。
【０１０２】
３．アプリケーションへの問い合わせ伝達
最後に、自計算機内のアプリケーションのうち、Ｔと簡易識別子が等しくなる公開鍵を所有するものがあるかどうかを調べる。もし該当するアプリケーションがあるならば、そのアプリケーションの名前解決ライブラリにＴを転送する（図６（８）参照）。
【０１０３】
・回答メッセージＲの転送処理（図９（ｂ））
回答メッセージＲを受信した場合、Ｒの簡易識別子と等しい簡易識別子となる公開鍵を所有するアプリケーションが自計算機にないかを調べる。もし、該当するアプリケーションがあるならば、そのアプリケーションの名前解決ライブラリにＲを渡す（図６（１５）参照）。
【０１０４】
［実施例２］
実施形態例３の実施例として、実施例１に示した名前解決システムにおける名前解決モジュールの機能拡張例である隣接アプリケーション登録型名前解決モジュールを示す。
【０１０５】
実施例１の名前解決モジュールは、計算機間のメッセージ交換をハンドリングするために、自らと論理的に隣接している名前管理モジュールへのメッセージ宛先一覧を管理していた。実施例２の名前解決モジュールでは、隣接する名前管理モジュールの宛先だけではなく、隣接先にあるアプリケーションとの対応まで管理して、問い合わせメッセージの転送判断に用いる。
【０１０６】
図１０は、実施例１の図５に対応した実施例２のネットワーク構成例である。実施例２では、隣接名前管理モジュールのみを管理する方式（Ｈｏｓｔ３）と隣接先のアプリケーション対応まで管理する方式（Ｈｏｓｔ１，２）の２種類の名前管理モジュールが混在している。
【０１０７】
隣接先のアプリケーション対応まで管理する場合は、隣接Ｈｏｓｔ／Ａｐｐｌｉｃａｔｉｏｎ一覧には、隣接する名前管理モジュールが存在する計算機と共に、そのモジュールの先で管理されているアプリケーションの簡易識別子をあわせて登録する。例えばＨｏｓｔ１の先にはアプリケーション１ａ，１ｂが存在するので、一覧にはＨｏｓｔ１に対応する簡易識別子としてＩ1a，Ｉ1bが登録される。同様に図１０の例では、Ｈｏｓｔ１の隣接登録においてＨｏｓｔ２に対応する簡易識別子としてＩ2a，Ｉ3aが登録される。ここで、Ｉ3aはＨｏｓｔ３上のアプリケーション３ａの簡易識別子であるが、ネットワーク構成上、Ｈｏｓｔ１からみたアプリケーション３ａメッセージの中継先はＨｏｓｔ２となることから、Ｈｏｓｔ１上の名前解決モジュールではＨｏｓｔ２と対応づけられることになる。
【０１０８】
図１１に、実施例２における名前解決モジュールの問い合わせメッセージＴの転送処理手順を示す。回答メッセージの処理については、前述した実施例１における処理フローと同一である。
【０１０９】
１．アプリケーションへの問い合わせ伝達
名前解決モジュールは、問い合わせメッセージＴを隣接する計算機もしくは自計算機内のアプリケーションに付随する名前解決ライブラリから受信する。Ｔを受信した名前解決モジュールは、自計算機内のアプリケーションのうち、Ｔと簡易識別子が等しくなる公開鍵を所有するものがあるかどうかを調べる。もし該当するアプリケーションがあるならば、そのアプリケーションの名前解決ライブラリにＴを転送する（図６（８）参照）。
【０１１０】
２．無限転送の抑制
次に、Ｔ内のメッセージ最大生存時間ＴＴＬの値を１減らす。この時点でＴＴＬ値が０以下になった場合は、Ｔを隣接計算機に中継しない。この処置によって、隣接名前解決モジュール間の連鎖によって構成された仮想ネットワークにループがある場合でも、Ｔがループ内で無限に中継される現象を防ぐことができる。
【０１１１】
ＴＴＬを１減らした結果、ＴＴＬが１以上の場合は、ＴＴＬ値が更新されたＴを発信元計算機以外の隣接計算機に対して中継転送する。
【０１１２】
３．簡易識別子対応テーブルを用いた選択中継
Ｔの中継先を決めるために、隣接計算機と対応づけられている簡易識別子のなかにＴと合致するものがあるかどうかを調べる。登録されている簡易識別子のなかにＴと等しいものがあった場合は、対応する隣接計算機にＴを中継する。
【０１１３】
４．簡易識別子対応テーブルを用いない中継
最後に、対応づけられた簡易識別子を持たない隣接計算機のうち、Ｔの発信元である計算機を除いた計算機に対してＴを中継して処理を終了する。
【０１１４】
３および４の処理によって、簡易識別子と転送先との対応が隣接計算機に登録されている名前解決モジュールについては、自計算機もしくはメッセージ転送元からみて自計算機より下流に位置する計算機に対する問い合わせメッセージが配送されない。これはすなわち、隣接計算機に、自らと関係するアプリケーションの簡易識別子のみを登録することによって、関係ないメッセージを受信する処理を省略することが可能であることを意味している。
【０１１５】
【発明の効果】
以上説明したように本発明によれば、通信内容を当事者以外から秘匿することができ、データ流出時の被害がなく、拡張性とプライバシー確保が両立できるメッセージ伝達方法、伝達装置および伝達プログラムを提供することができる。
【図面の簡単な説明】
【図１】本発明に係る公開鍵暗号を用いた名前解決の一例を示す系統図である。
【図２】本発明に係る公開鍵暗号を用いた名前解決の一例を示すフロー図である。
【図３】本発明に係る同報問い合わせの制限の一例を示す系統図である。
【図４】本発明の実施例１を示すシステム構成説明図である。
【図５】本発明の実施例１の処理例を示すネットワーク構成説明図である。
【図６】本発明の実施例に係るアプリケーション１ａから３ａに問い合わせ動作を示すシーケンス図である。
【図７】本発明の実施例１に係る名前解決ライブラリの処理における問い合わせ要求処理を示すフロー図である。
【図８】本発明の実施例１に係る名前解決ライブラリの処理における問い合わせ応答処理を示すフロー図である。
【図９】本発明の実施例１に係る名前解決モジュールの処理において、（ａ）は問い合わせメッセージ転送処理を示すフロー図、（ｂ）は回答メッセージ転送処理を示すフロー図である。
【図１０】本発明の実施例２を示すネットワーク構成説明図である。
【図１１】本発明の実施例２に係る問い合わせメッセージ転送処理を示すフロー図である。
【図１２】従来の名前解決サーバ方式を示す系統図である。
【図１３】従来の同報問い合わせ方式を示す系統図である。
【符号の説明】
Ｐｘ  通信主体ｘの公開鍵
Ｓｘ  通信主体ｘの秘密鍵
Ｅ（Ｋ，Ｘ）  データＸに鍵Ｋを適用して生成された暗号文
Ｄ（Ｋ，Ｘ）  データＸに鍵Ｋを適用して復号された平文
Ｓｉｇ（Ｓｘ，Ｘ）  秘密鍵Ｓｘを用いて生成されたＸの署名
ａ，ｂ，ｃ，ｄ  通信本体
ｉ，ｊ，ｋ，ｌ  通信機器
【図１】
0003891333.tif 000002
【図２】
0003891333.tif 000003
【図３】
0003891333.tif 000004
【図４】
0003891333.tif 000005
【図５】
0003891333.tif 000006
【図６】
0003891333.tif 000007
【図７】
0003891333.tif 000008
【図８】
0003891333.tif 000009
【図９】
0003891333.tif 000010
【図１０】
0003891333.tif 000011
【図１１】
0003891333.tif 000012
【図１２】
0003891333.tif 000013
【図１３】
0003891333.tif 000014