JP4523847B2 - コミュニケーション端末、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法 - Google Patents

コミュニケーション端末、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法 Download PDF

Info

Publication number
JP4523847B2
JP4523847B2 JP2005018410A JP2005018410A JP4523847B2 JP 4523847 B2 JP4523847 B2 JP 4523847B2 JP 2005018410 A JP2005018410 A JP 2005018410A JP 2005018410 A JP2005018410 A JP 2005018410A JP 4523847 B2 JP4523847 B2 JP 4523847B2
Authority
JP
Japan
Prior art keywords
application data
terminal
module
message
terminals
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005018410A
Other languages
English (en)
Other versions
JP2006211118A (ja
Inventor
仁士 益谷
育生 依田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2005018410A priority Critical patent/JP4523847B2/ja
Publication of JP2006211118A publication Critical patent/JP2006211118A/ja
Application granted granted Critical
Publication of JP4523847B2 publication Critical patent/JP4523847B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Description

本発明は、フルメッシュ型モデルの多地点通信において、他の参加者同士のコネクションが正常に確立されていて、データ通信が正常に行われているかどうかを各端末が確実に確認する方法に関する。
従来、IPネットワーク上において複数の端末が参加する多人数チャットのようなシステムでは、ある複数の端末により一時的にコミュニティを構築し、その中で各端末はアプリケーションデータをやり取りする。このとき、各端末間はデータを送受信するセッションをセットアップするために関係(コネクションと呼ぶ)を持たなければならず、そのコネクションの構築モデルは複数存在する。一般的に普及しているモデルは、コミュニティの端末以外のコンポーネントとして、コネクションを管理するサーバを利用し、各端末はそのサーバとだけコネクションを構築するモデル(中央型モデルと呼ぶ)である。
しかし、中央型モデルでは一つのサーバでコネクションを管理するために、そのサーバに障害が発生した場合、そのサーバを利用して構築された全コミュニティ内の全コネクションが切断されるため、通信断が発生してしまう。つまり、中央型モデルは一般的に単一箇所障害(single point of failure)に弱いシステムであり、可用性が低いといえる。
ここで可用性とはアベイラビリティのことであり、一般的にシステムの壊れにくさ、障害の発生しにくさ、障害発生時の修復速度などによって計られる。アベイラビリティの高いシステムと言えば、めったに障害が発生せずいつでも安心して使えるシステムを指し、逆にアベイラビリティの低いシステムとは障害が頻発し、しかもなかなか復旧しないシステムのことを意味している。
また、中央型モデルでは、コネクションはサーバで一括管理しているため、多くの場合、アプリケーションデータは一度、サーバに送られ、ミキシングなどのデータ加工が行われた後に、他の端末に送信される。このようなデータ送受信方法は、比較的データ量の大きさが小さい場合や厳密なリアルタイム性を必要としないアプリケーションには適するが、反対にテレビ会議や音声通話などの、送受信するデータ量が大きく、厳密なリアルタイム性を必要とするアプリケーションには不適切である。
一方、コネクションのモデルとしては各端末間のコネクションを直接フルメッシュに構築するフルメッシュ型のモデルが存在する。このモデルは中央型モデルと異なり、コミュニティに参加する端末を除いて、コネクションを一括管理するサーバなどは必要なく、各端末自身が代わりに複数のコネクションを管理する。また、コネクションの管理が各端末に分散することにより、中央型モデルに比べ、可用性が高い。これにより、ある端末に障害が起きたとしてもその影響は最小限に抑えられ、コミュニティ全体の通信が切断されることはない。さらに、このモデルでは多くの場合、アプリケーションのデータはサーバを介さず、直接端末へ送信されるため、厳密なリアルタイム性を必要とするアプリケーションに適している。
しかし、コネクションが集中的に管理されないために各端末は自端末と他の端末間のコネクションが構築されていることを直接確認できても、一方で他の端末間同士のコネクションが実際、確立されているかどうかを知る手段はない。中央型モデルではサーバが一括してコネクションを管理しているため、サーバにとってはどの端末が実際にコネクションを確立しているかを直接知ることができる。
関連文献としては、以下に示すように、コネクション構築モデルについての非特許文献1、秘密分散法(Secret Sharing Schemes)についての非特許文献2および3が開示されている。
J.Lennnox, H.Schulzrinne,"A Protocol for Reliable Decentralized Conferencing,"ACM International Workshop on Network and Operating Systems Support for Digital Audio and Video (NOSSDAV), Monterrey, California, June 2003. A.Shamir,"How to share a secret,"Communications of the ACM, page612-613, 1979. 岡本龍明,山本博資,"現代暗号シリーズ/情報科学の数学,"産業図書出版,page209-219 July 1997.
以上のように、フルメッシュ型モデルでは一元的なコネクション制御機関が存在しないために、自端末と各端末間のコネクションが接続されているかどうかを直接確認することができても、他の参加者間同士のコネクションが正常に確立され、アプリケーションデータをやり取りしているかどうかを知る手段がない。
本発明は、フルメッシュ型モデルの多地点通信において、他の参加者同士のコネクションが正常に確立されていて、データ通信が正常に行われているかどうかを各端末が確実に確認する方法を提案することを目的とする。
上記課題を解決するために、請求項1の本発明は、ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、(k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、アプリケーションから直接渡されるアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、2つのアプリケーションデータを比較し、一致するかどうかを判断するデータ比較モジュールと、他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたアプリケーションデータを含むメッセージを生成する手段、を有するメッセージ生成モジュールと、他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたアプリケーションデータ、を取り出す手段を有するメッセージ処理モジュールと、メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータ、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェア、の保存・取得要求を行う手段と、SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたアプリケーションデータ、を受信する手段と、共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵を利用して、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末をもって解決手段とする。
請求項2の本発明は、請求項1記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、前記データベースモジュールにそのアプリケーションデータを保存しておくとともに、前記SSS分散符号化モジュールで((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、そのメッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、そのメッセージの発信元端末と自端末を除く全端末に対して転送するとともに、アプリケーションデータのシェアは自端末の前記データベースモジュールに保存するステップ2と、ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し0に設定されているので転送を終了し、各端末が全てメッセージの転送を終了すると、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元しアプリケーションに渡すとともに、そのアプリケーションデータを、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化データを、発信元端末に送り返すステップ3と、ステップ1における発信元端末は他の全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化データをステップ3により受信し、受け取った各暗号化データを、それぞれ対応する共通鍵で復号化して得られるアプリケーションデータと、データベースモジュールに保存しているアプリケーションデータとを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法をもって解決手段とする。
請求項3の本発明は、アプリケーションデータの送信ステップをコミュニティに参加する全ての端末が実施する、請求項2に記載のフルメッシュ網において各端末が他の全端末間のコネクション接続を確実に接続する方法をもって解決手段とする。
請求項4の本発明は、ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、(k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、アプリケーションデータのハッシュ値と、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、アプリケーションデータをハッシュ値に変換するハッシュモジュールと、2つのハッシュ値を比較し、一致するかどうかを判断するデータ比較モジュールと、他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたハッシュ値を含むメッセージを生成する手段、とを有するメッセージ生成モジュールと、他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたハッシュ値、を取り出す手段を有するメッセージ処理モジュールと、メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータのハッシュ値、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェアの、保存・取得要求を行う手段と、SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたハッシュ値、を受信する手段と、ハッシュモジュールに対して、SSS復号化モジュールを利用して復元したアプリケーションデータをハッシュ値に変換するように要求する手段と、共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵により、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末をもって解決手段とする。
請求項5の本発明は、請求項4記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、前記ハッシュモジュールを利用してアプリケーションデータのハッシュ値を前記データベースモジュールに保存しておくとともに、前記分散符号化モジュールで、((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、メッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、前記メッセージの発信元端末と自端末を除く全端末に対して送信するとともに、得られたシェアは自端末の前記データベースモジュールに保存するステップ2と、ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し、0に設定されているので、転送を終了するとともに、全端末のメッセージの転送終了後、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元し、アプリケーションに渡すとともに、そのアプリケーションデータをハッシュモジュールによりハッシュ値に変換し、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化ハッシュ値を、発信元端末に送り返すステップ3と、ステップ1における発信元端末を除く全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化ハッシュ値を、発信元端末はステップ3により受信し、受け取った各暗号化ハッシュ値をそれぞれ対応する共通鍵で復号化し、得られるハッシュ値とデータベースモジュールに保存しているハッシュ値とを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法をもって解決手段とする。
請求項6の本発明は、アプリケーションデータの送信ステップをコミュニティに参加する全ての端末が実施する、請求項5に記載のフルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法をもって解決手段とする。
請求項7の本発明は、ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、(k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、アプリケーションから直接渡されるアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、2つのアプリケーションデータを比較し、一致するかどうかを判断するデータ比較モジュールと、他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたアプリケーションデータを含むメッセージを生成する手段、を有するメッセージ生成モジュールと、他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたアプリケーションデータ、を取り出す手段を有するメッセージ処理モジュールと、メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータ、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェア、の保存・取得要求を行う手段と、SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたアプリケーションデータ、を受信する手段と、共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵を利用して、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末としてコンピュータを機能させるためのコンピュータプログラムをもって解決手段とする。
請求項8の本発明は、請求項1記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、前記データベースモジュールにそのアプリケーションデータを保存しておくとともに、前記SSS分散符号化モジュールで((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、そのメッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、そのメッセージの発信元端末と自端末を除く全端末に対して転送するとともに、アプリケーションデータのシェアは自端末の前記データベースモジュールに保存するステップ2と、ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し0に設定されているので転送を終了し、各端末が全てメッセージの転送を終了すると、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元しアプリケーションに渡すとともに、そのアプリケーションデータを、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化データを、発信元端末に送り返すステップ3と、ステップ1における発信元端末は他の全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化データをステップ3により受信し、受け取った各暗号化データを、それぞれ対応する共通鍵で復号化して得られるアプリケーションデータと、データベースモジュールに保存しているアプリケーションデータとを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法をコンピュータに実行させるためのコンピュータプログラムをもって解決手段とする。 請求項9の本発明は、ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、(k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、アプリケーションデータのハッシュ値と、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、アプリケーションデータをハッシュ値に変換するハッシュモジュールと、2つのハッシュ値を比較し、一致するかどうかを判断するデータ比較モジュールと、他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたハッシュ値を含むメッセージを生成する手段、とを有するメッセージ生成モジュールと、他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたハッシュ値、を取り出す手段を有するメッセージ処理モジュールと、メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータのハッシュ値、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェアの、保存・取得要求を行う手段と、SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたハッシュ値、を受信する手段と、ハッシュモジュールに対して、SSS復号化モジュールを利用して復元したアプリケーションデータをハッシュ値に変換するように要求する手段と、共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵により、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末としてコンピュータを機能させるためのコンピュータプログラムをもって解決手段とする。
請求項10の本発明は、請求項4記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、前記ハッシュモジュールを利用してアプリケーションデータのハッシュ値を前記データベースモジュールに保存しておくとともに、前記分散符号化モジュールで、((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、メッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、前記メッセージの発信元端末と自端末を除く全端末に対して送信するとともに、得られたシェアは自端末の前記データベースモジュールに保存するステップ2と、ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し、0に設定されているので、転送を終了するとともに、全端末のメッセージの転送終了後、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元し、アプリケーションに渡すとともに、そのアプリケーションデータをハッシュモジュールによりハッシュ値に変換し、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化ハッシュ値を、発信元端末に送り返すステップ3と、ステップ1における発信元端末を除く全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化ハッシュ値を、発信元端末はステップ3により受信し、受け取った各暗号化ハッシュ値をそれぞれ対応する共通鍵で復号化し、得られるハッシュ値とデータベースモジュールに保存しているハッシュ値とを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法をコンピュータに実行させるためのコンピュータプログラムをもって解決手段とする。
以上、本発明によれば、ステップ1からステップ4を通し、発信元端末はアプリケーションデータを他の端末へ直接送信するのでなく、他の端末経由で送信するため、他の端末同士のコネクションが正常でないと、他の端末はステップ3において、発信元端末が生成したアプリケーションデータの部分情報であるシェアをすべて手に入れることができず、結局、発信元端末が生成したアプリケーションデータと同じものを復元することもできず、ステップ4のアプリケーションデータの比較ができない。よって、各端末がステップ1からステップ4を通して、他の端末にアプリケーションデータを送信することで、最終的に発信元端末は、他の端末同士のコネクション、データ通信が正常であるかどうかを確実に確認することができる。
また、本発明によれば、ステップ4において発信元端末に送り返されるデータを含むメッセージが、発信元端末とその他の端末間で一意に共有している共通鍵を利用して暗号化されていることで、コミュニティに参加している端末からのメッセージであることを一意に認証することができる。
また、本発明によれば、ステップ1において、アプリケーションデータを直接、他の端末に送信するのではなく、一度、部分情報(シェア)に分解し、さらに他の端末を経由して、発信元端末を除く全端末にデータを送信するため、コミュニティに参加する端末以外の不正な端末によって、そのシェアが盗聴されたとしても、それがアプリケーションの部分情報であるため、元のアプリケーションデータを取得することができず、よって、コミュニティ内のデータ通信に対しセキュリティレベルを向上させることが可能である。
また、本発明によれば、ステップ3で他の端末がアプリケーションデータを送り返すときに、アプリケーションデータを含んだメッセージをそのまま共通鍵を利用して、暗号化するのではなく、アプリケーションデータのハッシュ値を求めてから、そのハッシュ値を含んだメッセージを共通鍵で暗号化するため、発信元端末に送り返すためのデータ量を小さくすることができ、データ通信に必要となる帯域を抑制することができる。
また、本発明によれば、ステップ1において、アプリケーションデータをハッシュ値としてデータベースに保存しておくため、各端末のデータ保存に必要な容量を抑えることができる。
以下、本発明の実施の形態を、図面を参照して説明する。
図1は、本発明の実施の形態に係る端末間の関係を表したネットワークの構成を示す図である。
端末1、端末2、端末3はネットワーク1000に接続しており、それらの間で通信可能であるとする。図1の状態では、各端末間ではコネクションが確立されていないとする。ネットワーク1000は任意の情報をやり取りするためのインフラであり、例えば、インターネットやプライベートネットワークを表す。
[第1の実施の形態]
図2は、図1で示された端末1、端末2、端末3のそれぞれが有する共通の機能モジュールの構成を示した図である。
ここで、コミュニティとは複数の端末間でフルメッシュにコネクションを確立することで形成されるものとし、最低2つの端末間で構築される1対1のコネクションが必要となる。
制御モジュール10は、データベースモジュール11、秘密分散法(Secret Sharing Schemes、以下SSSという)分散符号化モジュール13、メッセージ生成モジュール14、データ比較モジュール15、SSS復号化モジュール16、メッセージ処理モジュール17、共通鍵暗号方式暗号化・復号化モジュール19とのインタフェースを有する。
制御モジュール10はデータベースモジュール11に対し、コミュニティに参加している参加者リスト、アプリケーションデータ、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェア、の保存・取得要求を行う。
制御モジュール10はSSS分散符号化モジュール13に対し、SSS分散符号化モジュール13がアプリケーション12から受信するアプリケーションデータを、指定した閾値でSSSにより分散符号化を行うように依頼する。
制御モジュール10はメッセージ生成モジュール14に対し、SSS分散符号化モジュール13または制御モジュール10から受信するアプリケーションのシェア、指定した転送回数、要求する宛先情報を含んだメッセージを生成するように依頼する。
また、制御モジュール10はメッセージ生成モジュール14に対し、共通鍵により暗号化されたアプリケーションデータ、指定した宛先情報を含んだメッセージを生成するように依頼する。
また、制御モジュール10はデータ比較モジュール15に対し、アプリケーション12が以前に生成しデータベースモジュール11に保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータとを比較するように依頼する。
また、制御モジュール10はSSS復号化モジュール16に対し、取得したアプリケーションデータの複数のシェアから元のアプリケーションデータを復元するように依頼する。
また、制御モジュール10はメッセージ処理モジュール17から、他の端末から受信されたメッセージから取り出されたシェア、転送回数、共通鍵により暗号化されたアプリケーションデータ、を受信する。
また、制御モジュール10は共通鍵暗号方式暗号化・復号化モジュール19に対し、任意のデータを共通鍵を利用して、暗号化、または復号化するように依頼する。
データベースモジュール11は制御モジュール10、アプリケーション12、とのインタフェースを有する。データベースモジュール11は、各端末間で共有する共通鍵、参加者のリスト(主に宛先情報が含まれる)、各端末から受信するアプリケーションデータが分散符号化されたシェア、アプリケーションデータそのものを管理する。
アプリケーション12は例えば、音声データを入出力する音声アプリケーションなど、アプリケーションデータを入出力する任意のアプリケーションである。ただし、これらのアプリケーションデータはどの端末が生成したものかを識別するための識別情報(ID)を含む。
アプリケーション12はデータベースモジュール11、SSS分散符号化モジュール13、とのインタフェースを有する。
アプリケーション12はデータベースモジュール11に対し、毎回出力するアプリケーションデータを保存してもらう。
アプリケーション12は、SSS分散符号化モジュール13に対して毎回出力するアプリケーションデータを、制御モジュール10によってSSS分散符号化モジュール13にあらかじめ設定された閾値で、SSS分散符号化モジュール13により分散符号化してもらう。
SSS分散符号化モジュール13は、制御モジュール10、アプリケーション12、メッセージ生成モジュール14、とのインタフェースを有する。SSS分散符号化モジュール13は、(k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成する。
SSS分散符号化モジュール13は、制御モジュール10から指定された((コミュニティの全端末数−1)、(コミュニティの全端末数−1))の閾値で、アプリケーション12から受信するデータを分散符号化し、得られた(コミュニティの全端末数−1))個のシェアをメッセージ生成モジュール14に渡すように依頼される。
メッセージ生成モジュール14は、制御モジュール10、SSS分散符号化モジュール13、メッセージ送受信モジュール18、とのインタフェースを有する。
メッセージ生成モジュール14は制御モジュール10から、自端末を除くコミュニティに参加する全端末の宛先情報を受信し、SSS分散符号化モジュール13から受信する(コミュニティの全端末数−1)個のシェアにそれぞれ、他の端末の宛先情報と指定された転送回数を付与してメッセージを生成するように依頼される。これにより、(コミュニティの全端末数−1)個のメッセージを生成することになる。
また、メッセージ生成モジュール14は、SSS分散符号化モジュール13からシェアを受信する場合、メッセージ生成時には転送回数を1に設定する。一方、制御モジュール10からシェアが直接渡された場合は、転送回数を0に設定して、要求された宛先情報を付与してメッセージを生成する。
また、メッセージ生成モジュール14は制御モジュール10から、共通鍵で暗号化されたアプリケーションデータを、指定された宛先情報を付与してメッセージを生成するように依頼される。
データ比較モジュール15は、制御モジュール10、とのインタフェースを有する。
データ比較モジュール15は制御モジュール10から、アプリケーション12が以前に生成しデータベースモジュール11に保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータとを比較するように依頼される。
SSS復号化モジュール16は、制御モジュール10、アプリケーション12、とのインタフェースを有する。
SSS復号化モジュール16は制御モジュール10から、SSSを利用し、複数のシェアから一つのアプリケーションデータを復元するように依頼される。
また、SSS復号化モジュール16はアプリケーション12に対し、復元したアプリケーションデータを渡す。
メッセージ処理モジュール17は、制御モジュール10、メッセージ送受信モジュール18、とのインタフェースを有する。
メッセージ処理モジュール17は制御モジュール10に対し、メッセージ送受信モジュール18が他の端末から受信したメッセージからアプリケーションデータのシェア、転送回数を取り出し、渡す。
メッセージ送受信モジュール18は、メッセージ生成モジュール14、メッセージ処理モジュール17、とのインタフェースを有するだけでなく、外部の端末と直接ネットワークで結ばれている。
メッセージ送受信モジュール18は、メッセージ生成モジュール14から渡されたメッセージをそのメッセージの宛先情報を参考にして、他の端末に送信する。
また、メッセージ送受信モジュール18は、受信したメッセージをメッセージ処理モジュール17に渡す。
共通鍵暗号方式暗号化・復号化モジュール19は、制御モジュール10、とのインタフェースを有する。
共通鍵暗号方式暗号化・復号化モジュール19は制御モジュール10から、共通鍵を渡されるとともに、その鍵を利用した暗号化、または復号化を要求される。
なお、これらの機能を有する端末は、コンピュータプログラムで動作するコンピュータで実現することもできる。そのコンピュータプログラム、つまりコンピュータをこの端末として機能させるコンピュータプログラムは、例えば、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に格納したり、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
端末20、21は図1に示される端末1から端末3の2つを示している。
図3は、既に端末1と端末2の間でコネクション50が、端末2と端末3の間でコネクション51が、端末3と端末1の間でコネクション52が構築されている状態を示す図である。
図3では端末1、端末2、端末3の間でフルメッシュにコネクションが構築されているだけでなく、それぞれコネクション確立時に認証を行い、既に端末1と端末2の間で共通鍵(1−1−2)が、端末2と端末3の間で共通鍵(1−2−3)が、端末3と端末1の間で共通鍵(1−3−1)がそれぞれの端末間で共有されているものとする。第1の実施の形態では端末1が端末2と端末3の間で正常にコネクションが確立されているかどうかを確認する例について示す。以下で説明する第1の実施の形態のプロセスは端末2、端末3もアプリケーションデータをやり取りしている最中に実施される。
コネクション構築後、端末間のデータ通信に先立ち端末1では以下のような設定を内部で行う。ここでは端末1を例に説明を行う。
端末1において、制御モジュール10がデータベースモジュール11に、参加者リストを要求する。そして、その参加者リストから参加者数とその参加者の宛先を取得する。
全参加者数は3なので、自身を除いた端末2と端末3に対して、アプリケーションデータを送信するために、(2、2)の閾値でアプリケーションデータを秘密分散法により分散符号化するように、SSS分散符号化モジュール13に設定を行う。これにより、SSS分散符号化モジュール13はアプリケーションから受信するアプリケーションデータを毎回、(2、2)の閾値で分散符号化し、2個のシェアをメッセージ生成モジュール14に対して渡す制御内容に設定される。
次に、制御モジュール10はメッセージ送受信モジュール18がアプリケーションデータのシェアを含むメッセージを正しい宛先へ送信するために、既にデータベースモジュール11から取得している宛先情報を利用し、各シェアを端末2または端末3の宛先情報を含んだメッセージを生成するようにメッセージ生成モジュール14に依頼する。また、このとき、転送回数を1に設定するようにメッセージ生成モジュール14に依頼する。
メッセージ生成モジュール14は制御モジュール10からの依頼を受け、毎回SSS分散符号化モジュール13から受信する2つのシェアのうち、一方のシェアと端末2の宛先情報を含んだメッセージを生成するとともに、もう一方のシェアと端末3の宛先情報を含んだメッセージを生成する。つまり、第1の実施の形態ではアプリケーションデータ1つに対して、毎回2つのメッセージを生成することになる。
以上、各端末間でアプリケーションデータをやり取りするための前準備を説明してきたが、実際のデータのやり取りについては、図4以降で説明する。
図4は、端末1のあるアプリケーションデータAD1を(2、2)の閾値で分散符号化して得られた2つのシェア(1−1−2)、シェア(1−1−3)をそれぞれ、端末2と端末3に対して、端末1が送信する様子を示した図である(メッセージ100、101)。
端末1において、アプリケーション12によって生成されたアプリケーションデータAD1はSSS分散符号化モジュール13を通して、2つのシェア(1−1−2)、シェア(1−1−3)に分散符号化される。そして、メッセージ生成モジュール14によって、端末2の宛先情報、シェア(1−1−2)を含むメッセージ100と、端末3の宛先情報、シェア(1−1−3)を含むメッセージ101が生成される。メッセージ生成モジュール14は各メッセージ生成時にアプリケーションデータのシェアの転送回数を1に設定する。
2つのメッセージ100、101はメッセージ送受信モジュール18に渡され、メッセージ送受信モジュール18が各メッセージの宛先情報を見て、メッセージ100は端末2へ、メッセージ101は端末3に送信する。
また、端末1のアプリケーションデータAD1はそのまま、データベースモジュール11に保存される。
一方、端末2のメッセージ送受信モジュール18は端末1からメッセージ100を受信し、それをメッセージ処理モジュール17に渡す。メッセージ処理モジュール17はメッセージ100からシェア(1−1−2)と転送回数を取り出し、制御モジュール10にそれを渡す。
端末2の制御モジュール10はシェア(1−1−2)をデータベースモジュール11に保存する。また、転送回数を参照し、シェア(1−1−2)を転送するかどうかを決定する。ここでは1に設定されていたので、再度転送しなければならない。制御モジュール10は自端末とメッセージ100の発信元端末を除く全端末(つまり、端末3)に対して、シェア(1−1−2)を転送するために、メッセージ生成モジュール14に対してそれを渡す。また、転送回数を0にするように要求する。
メッセージ生成モジュール14は転送回数を0に設定し、シェア(1−1−2)、端末3の宛先情報を含むメッセージ102を生成する。生成されたメッセージ102はメッセージ送受信モジュール18に渡され、端末3に対して送信される(図5のメッセージ102)。
同様に端末3も同様にメッセージ101を処理し、転送回数が0に設定され、シェア(1−1−3)を含んだメッセージ103を端末2に対して送信する。
図5は、端末2、端末3が端末1からそれぞれメッセージ100、101を受信した後にそれぞれのメッセージに含まれるシェア(1−1−2)、(1−1−3)を含んだ、メッセージ102、103を端末3、端末2に対し送信する様子を示した図である。
端末2のメッセージ送受信モジュール18はメッセージ103を受信し、メッセージ100と同様にメッセージ処理モジュール17がメッセージから、転送回数とシェア(1−1−3)を取り出し、これらを制御モジュール10に渡す。制御モジュール10は転送回数が0に設定されているのを見て、シェアの転送を行わないと判断する。そして、取得したシェア(1−1−3)とデータベースモジュール11に保存されていたシェア(1−1−2)を利用して、もとのアプリケーションデータAD1を復元するために、制御モジュール10はSSS復号化モジュール16に対し、復号化を行うように依頼する。
SSS復号化モジュール16は2つのシェア(1−1−2)、(1−1−3)を利用して元のアプリケーションデータAD1を復元した後、アプリケーション12にそのアプリケーションデータAD1を渡す。また、端末1が端末2と端末3の間のコネクションが確立され、データ通信が正常に行われているかどうかを確認するために、端末1に必要となるデータを生成するために、そのアプリケーションデータAD1は制御モジュール10にも返される。
端末2の制御モジュール10はアプリケーションデータAD1に含まれるIDを参照して、端末1のアプリケーションデータであると判断する。そして、端末1が端末2と端末3の間のデータ通信が正常に行われていることを確認できるようにするために、アプリケーションデータAD1を、端末1と共有している共通鍵(1−1−2)を利用して、共通鍵暗号方式暗号化・復号化モジュール19を利用して暗号化する。そして、得られた暗号化データ(1−2)を端末1に対して、送信するために、メッセージ生成モジュール14、メッセージ送受信モジュール18を利用して送信する(図6のメッセージ104)。
同様に端末3は端末2と同じ処理を行い、復元されたアプリケーションデータAD1を共通鍵(1−3−1)を利用して暗号化し、得られた暗号化データ(1−3)を端末1に対して送信する(図6のメッセージ105)。
図6は、端末2と端末3がそれぞれ暗号化データ(1−2)、(1−3)を含んだメッセージ104、105を端末1に送信する様子を示した図である。
端末1は端末2からメッセージ104を受信すると、メッセージ送受信モジュール18およびメッセージ処理モジュール17を介して、暗号化データ(1−2)を得る。
端末1の制御モジュール10は暗号化データ(1−2)を、共通鍵(1−1−2)を利用し共通鍵暗号方式暗号化・復号化モジュールを介して、復号化を行い、アプリケーションデータAD1’を得る。
アプリケーションデータAD1’とデータベースモジュール11に保存しているアプリケーションデータAD1とが等しいかどうかを、データ比較モジュール15を利用して比較する。比較結果が正常(AD1=AD1’)であれば、端末3から端末2への方向のデータ通信が正常であることが確認できる。
同様に、端末1は端末3からメッセージ105を受信し、同様の方法でアプリケーションデータAD1との比較を行う。比較結果が正常であれば、端末2から端末3への方向のデータ通信が正常であることを確認できる。
また、同様に端末2、端末3は端末1と同様の処理を行う。他の端末経由でアプリケーションデータを送信することで、端末2にとっては端末1と端末3間、端末3にとっては端末1と端末2間、においてコネクションが確立され、データ通信が正常に行われているかどうかを確実に確認することができる。
以上、発信元端末はアプリケーションデータを他の端末に直接送るのではなく、他の端末経由で送信するため、他の端末同士のコネクションが正常でなく、データ通信が正常でないと、他の端末は発信元端末が生成したアプリケーションデータの部分情報であるシェアをすべて手に入れることができず、結局、発信元端末が生成したアプリケーションデータと同じものを復元することもできない。そして、発信元端末に送り返される暗号化データを復号化したアプリケーションデータと、発信元端末が保存しているアプリケーションデータとが比較できない。よって、各端末が第1の実施の形態のように他の端末にアプリケーションデータを送信することで、最終的に発信元端末は、他の端末同士のコネクション、データ通信が正常であるかどうかを確実に確認することができる。
また、アプリケーションデータをそのまま発信元端末に送り返すのではなく、発信元端末とその他の端末間で一意に共有している共通鍵を利用して暗号化して送り返すことで、コミュニティに参加している端末からのメッセージであることを一意に認証することができる。
また、アプリケーションデータを直接、他の端末に送信するのではなく、一度、部分情報(シェア)に分解して、他の端末を経由して、発信元端末を除く全端末にデータを送信するため、コミュニティに参加する端末以外の不正な端末によって、そのシェアが盗聴されたとしても、アプリケーションの部分情報であるため、元のアプリケーションデータを取得することができず、コミュニティ内のデータ通信に対しセキュリティレベルを向上させることが可能である。
なお、このように、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法を、コンピュータにより動作する端末に実行させるコンピュータプログラムは、上記した記録媒体に格納したり、通信網を介して伝送させることができる。[第2の実施の形態]
図7は、図1で示された端末1、端末2、端末3、それぞれが有する共通の機能モジュールの構成を示した図である。
制御モジュール30は、データベースモジュール31、SSS分散符号化モジュール33、メッセージ生成モジュール34、データ比較モジュール35、SSS復号化モジュール36、メッセージ処理モジュール37、共通鍵暗号方式暗号化・復号化モジュール39、ハッシュモジュール42とのインタフェースを有する。
制御モジュール30はデータベースモジュール31に対し、コミュニティに参加している参加者リスト、アプリケーションデータのハッシュ値、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェア、の保存・取得要求を行う。
制御モジュール30はSSS分散符号化モジュール33に対し、SSS分散符号化モジュール33がアプリケーション32から受信するアプリケーションデータを、指定した閾値でSSSにより分散符号化を行うように依頼する。
制御モジュール30はメッセージ生成モジュール34に対し、SSS分散符号化モジュールから受信するアプリケーションのシェアを要求する宛先に対して送信するようにメッセージ生成時に設定するように依頼する。
また、制御モジュール30はメッセージ生成モジュール34に対し、SSS分散符号化モジュールまたは制御モジュール30から受信するアプリケーションのシェア、指定した転送回数、要求する宛先情報を含んだメッセージを生成するように依頼する。
また、制御モジュール30はメッセージ生成モジュール34に対し、共通鍵により暗号化されたアプリケーションデータのハッシュ値、指定した宛先情報を含んだメッセージを生成するように依頼する。
また、制御モジュール30はデータ比較モジュール35に対し、アプリケーション32が以前にハッシュモジュール42を利用して生成しデータベースモジュール31に保存しているハッシュ値と、他の端末から受信するハッシュ値とを比較するように依頼する。
また、制御モジュール30はSSS復号化モジュール36に対し、取得したアプリケーションデータの複数のシェアから元のアプリケーションデータを復元するように依頼する。
また、制御モジュール30はメッセージ処理モジュール37から、他の端末から受信されたメッセージから取り出されたシェア、転送回数、共通鍵により暗号化されたハッシュ値、を受信する。
また、制御モジュール30は共通鍵暗号方式暗号化・復号化モジュール39に対し、共通鍵により任意のデータを、暗号化、または復号化するように依頼する。
また、制御モジュール30はハッシュモジュール42に対し、アプリケーションデータをハッシュ値に変換するように依頼する。
データベースモジュール31は制御モジュール30、ハッシュモジュール42、とのインタフェースを有する。データベースモジュール31は、各端末間で共有する共通鍵、参加者のリスト(主に宛先情報が含まれる)、各端末から受信するアプリケーションデータが分散符号化されたシェア、アプリケーションデータのハッシュ値を管理する。
アプリケーション32は例えば、音声データを入出力する音声アプリケーションなど、データを入出力する任意のアプリケーションである。ただし、これらのアプリケーションデータはどの端末が生成したものかを識別するためのIDを含む。
アプリケーション32はSSS分散符号化モジュール33、ハッシュモジュール42、とのインタフェースを有する。
アプリケーション32はSSS分散符号化モジュール33に対し、毎回出力するアプリケーションデータを制御モジュール30によって、SSS分散符号化モジュール33にあらかじめ設定された閾値で、分散符号化してもらう。
アプリケーション32はハッシュモジュール42に対し、毎回出力するアプリケーションデータをハッシュ値に変換し、データベースモジュール31に保存してもらう。
SSS分散符号化モジュール33は、制御モジュール30、アプリケーション32、メッセージ生成モジュール34、とのインタフェースを有する。
SSS分散符号化モジュール33は、制御モジュール30から指定された((コミュニティの全端末数−1)、(コミュニティの全端末数−1))の閾値で、アプリケーション32から受信するデータを分散符号化し、得られた(コミュニティの全端末数−1)個のシェアをメッセージ生成モジュール34に対し渡すように依頼される。
メッセージ生成モジュール34は、制御モジュール30、SSS分散符号化モジュール33、メッセージ送受信モジュール38、とのインタフェースを有する。
メッセージ生成モジュール34は制御モジュール30から、自端末を除くコミュニティに参加する全端末の宛先情報を受信し、SSS分散符号化モジュール33から受信する(コミュニティの全端末数−1)個のシェアにそれぞれ、他の端末の宛先情報と指定された転送回数を付与してメッセージを生成するように依頼される。これにより、(コミュニティの全端末数−1)個のメッセージを生成することになる。
また、メッセージ生成モジュール34は、SSS分散符号化モジュール33からシェアを受信する場合、メッセージ生成時には転送回数を1に設定する。一方、制御モジュール30から直接シェアが渡された場合は、転送回数を0に設定して、要求された宛先情報を付与してメッセージを生成する。
また、メッセージ生成モジュール34は制御モジュール30から、共通鍵で暗号化されたアプリケーションデータのハッシュ値を、指定された宛先情報を付与してメッセージを生成するように依頼される。
データ比較モジュール35は、制御モジュール30、とのインタフェースを有する。
データ比較モジュール35は制御モジュール30から、アプリケーション32がハッシュモジュール42を利用して生成しデータベースモジュール31に保存しているハッシュ値と、他の端末から受信するハッシュ値とを比較するように依頼される。
SSS復号化モジュール36は、制御モジュール30、アプリケーション32、とのインタフェースを有する。
SSS復号化モジュール36は制御モジュール30から、SSSを利用し、複数のシェアから一つのアプリケーションデータを復元するように依頼される。
また、SSS復号化モジュール36はアプリケーション32に対し、復元したアプリケーションデータを渡す。
メッセージ処理モジュール37は、制御モジュール30、メッセージ送受信モジュール38、とのインタフェースを有する。
メッセージ処理モジュール37は制御モジュール30に対し、メッセージ送受信モジュール38が他の端末から受信したメッセージからアプリケーションデータのシェア、転送回数、共通鍵により暗号化されたハッシュ値、を取り出し渡す。
メッセージ送受信モジュール38は、メッセージ生成モジュール34、メッセージ処理モジュール37、とのインタフェースを有するだけでなく、外部の端末と直接ネットワークで結ばれている。
メッセージ送受信モジュール38はメッセージ生成モジュール34から渡されたメッセージをそのメッセージの宛先情報を参考にして、他の端末に送信する。
また、メッセージ送受信モジュール38は、受信したメッセージをメッセージ処理モジュール37に渡す。
共通鍵暗号方式暗号化・復号化モジュール39は、制御モジュール30、とのインタフェースを有する。
共通鍵暗号方式暗号化・復号化モジュール39は制御モジュール30から、共通鍵を渡されるとともに、その鍵を利用した暗号化、または復号化を要求される。
ハッシュモジュール42は、制御モジュール30、データベースモジュール31、アプリケーション32、とのインタフェースを持つ。
ハッシュモジュール42は制御モジュール30から、アプリケーションデータをハッシュ値に変換するように依頼される。
また、ハッシュモジュール42は、アプリケーション32から受信するアプリケーションデータをハッシュ値に変換し、データベースモジュール31に保存する。
なお、これらの機能を有する端末はコンピュータで実現することもでき、そのコンピュータをこの端末として機能させるコンピュータプログラムは、例えば、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に格納したり、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
端末40、41は図1に示される端末1から端末3の2つを示している。
図8は、既に端末1と端末2の間でコネクション60が、端末2と端末3の間でコネクション61が、端末3と端末1の間でコネクション62が構築されている状態を示す図である。
図8では端末1、端末2、端末3の間でフルメッシュにコネクションが構築されているだけでなく、それぞれコネクション確立時に認証を行い、既に端末1と端末2の間で共通鍵(2−1−2)が、端末2と端末3の間で共通鍵(2−2−3)が、端末3と端末1の間で共通鍵(2−3−1)がそれぞれの端末間で共有されているものとする。第2の実施の形態では端末1が端末2と端末3の間で正常にコネクションが確立されているかどうかを確認する例について示す。以下で説明する第2の実施の形態のプロセスは端末2、端末3もアプリケーションデータをやり取りしている最中に実施される。
コネクション構築後、端末間のデータ通信に先立ち端末1では以下のような設定を内部で行う。ここでは端末1を例に説明を行う。
端末1において、制御モジュール30がデータベースモジュール31に、参加者リストを要求する。そして、その参加者リストから参加者数とその参加者の宛先を取得する。
全参加者数は3なので、自身を除いた端末2と端末3に対して、アプリケーションデータを送信するために、(2、2)の閾値でアプリケーションデータを秘密分散法により分散符号化するように、SSS分散符号化モジュール33に設定を行う。これにより、SSS分散符号化モジュール33はアプリケーション32から受信するアプリケーションデータを毎回、(2、2)の閾値で分散符号化し、2個のシェアをメッセージ生成モジュール34に対して渡す制御内容に設定される。
次に、制御モジュール30はメッセージ送受信モジュール38がアプリケーションデータのシェアを含むメッセージを正しい宛先へ送信するために、既にデータベースモジュール31から取得している宛先情報を利用し、各シェアと端末2または端末3の宛先情報を含んだメッセージを生成するようにメッセージ生成モジュール34に依頼する。また、このとき、転送回数を1に設定するようにメッセージ生成モジュール34に依頼する。
メッセージ生成モジュール34は制御モジュール30からの依頼を受け、毎回SSS分散符号化モジュール33から受信する2つのシェアのうち、一方のシェアと端末2の宛先情報を含んだメッセージを生成するとともに、もう一方のシェアと端末3の宛先情報を含んだメッセージを生成する。つまり、第2の実施の形態ではアプリケーションデータ1つに対して、毎回2つのメッセージを生成することになる。
以上、各端末間でアプリケーションデータをやり取りするための前準備を説明してきたが、実際のデータのやり取りについては、図9以降で説明する。
図9は端末1のあるアプリケーションデータAD1を(2、2)の閾値で分散符号化して得られた2つのシェア(2−1−2)、シェア(2−1−3)をそれぞれ、端末2と端末3に対して、端末1が送信する様子を示した図である(メッセージ200、201)。
端末1において、アプリケーション32によって生成されたアプリケーションデータAD1はSSS分散符号化モジュール33を通して、2つのシェア(2−1−2)、シェア(2−1−3)に分散符号化される。そして、メッセージ生成モジュール34によって、端末2の宛先情報、シェア(2−1−2)を含むメッセージ200と、端末3の宛先情報、シェア(2−1−3)を含むメッセージ201が生成される。メッセージ生成モジュール34は各メッセージ生成時にアプリケーションデータのシェアの転送回数を1に設定する。
2つのメッセージ200、201はメッセージ送受信モジュール38に渡され、メッセージ送受信モジュール38が各メッセージの宛先情報を見て、メッセージ200は端末2へ、メッセージ201は端末3に送信する。
また、端末1のアプリケーションデータAD1はハッシュモジュール42を介して、ハッシュ値HD1として変換され、データベースモジュール31に保存される。
一方、端末2のメッセージ送受信モジュール38は端末1からメッセージ200を受信し、それをメッセージ処理モジュール37に渡す。メッセージ処理モジュール37はメッセージ200からシェア(2−1−2)と転送回数を取り出し、制御モジュール30にそれを渡す。
端末2の制御モジュール30はシェア(2−1−2)をデータベースモジュール31に保存する。また、転送回数を参照し、シェア(2−1−2)を転送するかどうかを決定する。ここでは1に設定されていたので、再度転送しなければならない。制御モジュール30は自端末とメッセージ200の発信元端末を除く全端末(つまり、端末3)に対して、シェア(2−1−2)を転送するために、メッセージ生成モジュール34に対してそれを渡す。また、転送回数を0にするように要求する。
メッセージ生成モジュール34は転送回数を0に設定し、シェア(2−1−2)、端末3の宛先情報を含むメッセージ202を生成する。生成されたメッセージ202はメッセージ送受信モジュール38に渡され、端末3に対して送信される(図10のメッセージ202)。
同様に端末3も同様にメッセージ201を処理し、転送回数が0に設定され、シェア(2−1−3)を含んだメッセージ203を端末2に対して送信する。
図10は、端末2、端末3が端末1からそれぞれメッセージ200、201を受信した後にそれぞれのメッセージに含まれるシェア(2−1−2)、(2−1−3)を含んだ、メッセージ202、203を端末3、端末2に対し送信する様子を示した図である。
端末2のメッセージ送受信モジュール38はメッセージ203を受信し、メッセージ200と同様にメッセージ処理モジュール37がメッセージから、転送回数とシェア(2−1−3)を取り出し、これらを制御モジュール30に渡す。制御モジュール30は転送回数が0に設定されているのを見て、シェアの転送を行わないと判断する。そして、取得したシェア(2−1−3)とデータベースモジュール31に保存されていたシェア(2−1−2)を利用して、もとのアプリケーションデータAD1を復元するために、制御モジュール30はSSS復号化モジュール36に対し、復号化を行うように依頼する。
SSS復号化モジュール36は2つのシェア(2−1−2)、(2−1−3)を利用して元のアプリケーションデータAD1を復元した後、アプリケーション32にそのアプリケーションデータAD1を渡す。また、端末1が端末2と端末3の間のコネクションが確立され、データ通信が正常に行われているかどうかを確認するために、端末1に必要となるデータを生成するために、そのアプリケーションデータAD1は制御モジュール30にも返される。
端末2の制御モジュール30はアプリケーションデータAD1に含まれるIDを参照して、端末1のアプリケーションデータであると判断する。そして、端末1が端末2と端末3の間のデータ通信が正常に行われていることを確認できるようにするために、ハッシュモジュール42を利用して、アプリケーションデータAD1のハッシュ値を求めた後、そのハッシュ値を、端末1と共有している共通鍵(2−1−2)を利用して、共通鍵暗号方式暗号化・復号化モジュール39が暗号化する。そして、得られた暗号化ハッシュ値(2−2)を端末1に対して、送信するために、メッセージ生成モジュール34、メッセージ送受信モジュール38を利用して送信する(図11のメッセージ204)。
同様に端末3は端末2と同じ処理を行い、復元されたアプリケーションデータAD1のハッシュ値を共通鍵(2−3−1)により暗号化し、得られた暗号化ハッシュ値(2−3)を端末1に対して送信する(図11のメッセージ205)。
図11は、端末2と端末3がそれぞれ暗号化ハッシュ値(2−2)、(2−3)を含んだメッセージ204、205を端末1に送信する様子を示した図である。
端末1は端末2からメッセージ204を受信すると、メッセージ送受信モジュール38およびメッセージ処理モジュール37を介して、暗号化ハッシュ値(2−2)を得る。
端末1の制御モジュール30は暗号化ハッシュ値(2−2)を、共通鍵(2−1−2)を利用し共通鍵暗号方式暗号化・復号化モジュール39を介して、復号化を行い、ハッシュ値HD1’を得る。
ハッシュ値HD1’とデータベースモジュール31に保存しているハッシュ値HD1とが等しいかどうかを、データ比較モジュール35を利用して比較する。比較結果が正常(HD1=HD1’)であれば、端末3から端末2への方向のデータ通信が正常であることが確認できる。
同様に、端末1は端末3からメッセージ205を受信し、同様の方法でデータ1との比較を行う。比較結果が正常であれば、端末2から端末3への方向のデータ通信が正常であることを確認できる。
また、同様に端末2、端末3は端末1と同様の処理を行う。他の端末経由でアプリケーションデータを送信することで、端末2にとっては端末1と端末3間、端末3にとっては端末1と端末2間、においてコネクションが確立され、データ通信が正常に行われているかどうかを確実に確認することができる。
以上、発信元端末はアプリケーションデータを直接送るのではなく、他の端末経由で送信するため、他の端末同士のコネクションが正常でなく、データ通信が正常でないと、他の端末は発信元端末が生成したアプリケーションデータと同じものを復元することもできない。そして、発信元端末に送り返される暗号化データを復号化して得られたアプリケーションデータのハッシュ値と、発信元端末が保存しているアプリケーションデータのハッシュ値とを比較できない。よって、各端末が第2の実施の形態のように他の端末にアプリケーションデータのハッシュ値を送信することで、最終的に発信元端末は、他の端末同士のコネクション、データ通信が正常であるかどうかを確実に確認することができる。
また、アプリケーションデータをそのまま発信元端末に送り返すのではなく、発信元端末とその他の端末間で一意に共有している共通鍵を利用して暗号化して送り返すことで、コミュニティに参加している端末からのメッセージであることを一意に認証することができる。
また、アプリケーションデータを直接、他の端末に送信するのではなく、一度、部分情報(シェア)に分解して、他の端末を経由して、発信元端末を除く全端末にデータを送信するために、コミュニティに参加する端末以外の不正な端末によって、そのシェアが盗聴されたとしても、アプリケーションの部分情報であるため、元のアプリケーションデータを取得することができず、コミュニティ内のデータ通信に対しセキュリティレベルを向上させることが可能である。
また、他の端末がアプリケーションデータを送り返すときに、アプリケーションデータを含んだメッセージをそのまま共通鍵を利用して、暗号化するのではなく、アプリケーションデータのハッシュ値を求めてから、そのハッシュ値を含んだメッセージを共通鍵で暗号化するため、発信元端末に送り返すためのデータ量を小さくすることができ、データ通信に必要となる帯域を抑制することができる。
また、発信元端末はアプリケーションデータをハッシュ値としてデータベースモジュールに保存しておくため、各端末のデータ保存に必要な容量を抑えることができる。
また、このように、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法を、コンピュータにより動作する端末に実行させるコンピュータプログラムは、上記した記録媒体に格納したり、通信網を介して伝送させることができる。
本発明の実施の形態に係るネットワークの構成を示す図である。 図1に示された端末1から端末3における内部のモジュール構成の例を示す図であり、第1の実施の形態に係る図である。 端末1、端末2、端末3の間で1対1にコネクション確立されている状態を示す図であり、第1の実施の形態に係る図である。 図3において、端末1が端末2、端末3に対してメッセージを送信する様子を示す図である。 図3において、端末2と端末3がそれぞれお互いにメッセージを送信する様子を示す図である。 図3において、端末2と端末3が端末1に対してメッセージを送信する様子を示す図である。 図1に示された端末1から端末3における内部のモジュール構成の例を示す図であり、第2の実施の形態に係る図である。 端末1、端末2、端末3の間で1対1にコネクション確立されている状態を示す図であり、第2の実施の形態に係る図である。 図8において、端末1が端末2、端末3に対してメッセージを送信する様子を示す図である。 図8において、端末2と端末3がそれぞれお互いにメッセージを送信する様子を示す図である。 図8において、端末2と端末3が端末1に対してメッセージを送信する様子を示す図である。
符号の説明
1、2、3、20、21、40、41・・・端末(コミュニケーション端末)
10、30・・・制御モジュール
11、31・・・データベースモジュール
12、32・・・アプリケーション
13、33・・・SSS分散符号化モジュール
14、34・・・メッセージ生成モジュール
15、35・・・データ比較モジュール
16、36・・・SSS復号化モジュール
17、37・・・メッセージ処理モジュール
18、38・・・メッセージ送受信モジュール
19、39・・・共通鍵暗号方式暗号化・復号化モジュール
42・・・ハッシュモジュール
50、51、52、60、61、62・・・コネクション
100、101、102、103、104、105、200、201、202、203、204、205・・・メッセージ
1000・・・ネットワーク

Claims (10)

  1. ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、
    アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、
    共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、
    (k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、
    アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、
    アプリケーションから直接渡されるアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、
    2つのアプリケーションデータを比較し、一致するかどうかを判断するデータ比較モジュールと、
    他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたアプリケーションデータを含むメッセージを生成する手段、を有するメッセージ生成モジュールと、
    他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたアプリケーションデータ、を取り出す手段を有するメッセージ処理モジュールと、
    メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、
    データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータ、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェア、の保存・取得要求を行う手段と、
    SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、
    メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、
    SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、
    データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、
    メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたアプリケーションデータ、を受信する手段と、
    共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵を利用して、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末。
  2. 請求項1記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、
    前記データベースモジュールにそのアプリケーションデータを保存しておくとともに、前記SSS分散符号化モジュールで((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、
    ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、そのメッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、そのメッセージの発信元端末と自端末を除く全端末に対して転送するとともに、アプリケーションデータのシェアは自端末の前記データベースモジュールに保存するステップ2と、
    ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し0に設定されているので転送を終了し、各端末が全てメッセージの転送を終了すると、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元しアプリケーションに渡すとともに、そのアプリケーションデータを、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化データを、発信元端末に送り返すステップ3と、
    ステップ1における発信元端末は他の全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化データをステップ3により受信し、受け取った各暗号化データを、それぞれ対応する共通鍵で復号化して得られるアプリケーションデータと、データベースモジュールに保存しているアプリケーションデータとを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法。
  3. アプリケーションデータの送信ステップをコミュニティに参加する全ての端末が実施する、請求項2に記載のフルメッシュ網において各端末が他の全端末間のコネクション接続を確実に接続する方法。
  4. ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、
    アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、
    共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、
    (k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、
    アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、
    アプリケーションデータのハッシュ値と、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、
    アプリケーションデータをハッシュ値に変換するハッシュモジュールと、
    2つのハッシュ値を比較し、一致するかどうかを判断するデータ比較モジュールと、
    他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたハッシュ値を含むメッセージを生成する手段、とを有するメッセージ生成モジュールと、
    他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたハッシュ値、を取り出す手段を有するメッセージ処理モジュールと、
    メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、
    データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータのハッシュ値、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェアの、保存・取得要求を行う手段と、
    SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、
    メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、
    SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、
    データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、
    メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたハッシュ値、を受信する手段と、
    ハッシュモジュールに対して、SSS復号化モジュールを利用して復元したアプリケーションデータをハッシュ値に変換するように要求する手段と、
    共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵により、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末。
  5. 請求項4記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、
    前記ハッシュモジュールを利用してアプリケーションデータのハッシュ値を前記データベースモジュールに保存しておくとともに、前記分散符号化モジュールで、((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、
    ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、メッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、前記メッセージの発信元端末と自端末を除く全端末に対して送信するとともに、得られたシェアは自端末の前記データベースモジュールに保存するステップ2と、
    ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し、0に設定されているので、転送を終了するとともに、全端末のメッセージの転送終了後、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元し、アプリケーションに渡すとともに、そのアプリケーションデータをハッシュモジュールによりハッシュ値に変換し、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化ハッシュ値を、発信元端末に送り返すステップ3と、
    ステップ1における発信元端末を除く全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化ハッシュ値を、発信元端末はステップ3により受信し、受け取った各暗号化ハッシュ値をそれぞれ対応する共通鍵で復号化し、得られるハッシュ値とデータベースモジュールに保存しているハッシュ値とを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法。
  6. アプリケーションデータの送信ステップをコミュニティに参加する全ての端末が実施する、請求項5に記載のフルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法。
  7. ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、
    アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、
    共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、
    (k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、
    アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、
    アプリケーションから直接渡されるアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、
    2つのアプリケーションデータを比較し、一致するかどうかを判断するデータ比較モジュールと、
    他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたアプリケーションデータを含むメッセージを生成する手段、を有するメッセージ生成モジュールと、
    他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたアプリケーションデータ、を取り出す手段を有するメッセージ処理モジュールと、
    メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、
    データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータ、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェア、の保存・取得要求を行う手段と、
    SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、
    メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、
    SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、
    データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、
    メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたアプリケーションデータ、を受信する手段と、
    共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵を利用して、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末としてコンピュータを機能させるためのコンピュータプログラム。
  8. 請求項1記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、
    前記データベースモジュールにそのアプリケーションデータを保存しておくとともに、前記SSS分散符号化モジュールで((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、
    ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、そのメッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、そのメッセージの発信元端末と自端末を除く全端末に対して転送するとともに、アプリケーションデータのシェアは自端末の前記データベースモジュールに保存するステップ2と、
    ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し0に設定されているので転送を終了し、各端末が全てメッセージの転送を終了すると、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元しアプリケーションに渡すとともに、そのアプリケーションデータを、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化データを、発信元端末に送り返すステップ3と、
    ステップ1における発信元端末は他の全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化データをステップ3により受信し、受け取った各暗号化データを、それぞれ対応する共通鍵で復号化して得られるアプリケーションデータと、データベースモジュールに保存しているアプリケーションデータとを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法をコンピュータに実行させるためのコンピュータプログラム。
  9. ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、
    アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、
    共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、
    (k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、
    アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、
    アプリケーションデータのハッシュ値と、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、
    アプリケーションデータをハッシュ値に変換するハッシュモジュールと、
    2つのハッシュ値を比較し、一致するかどうかを判断するデータ比較モジュールと、
    他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたハッシュ値を含むメッセージを生成する手段、とを有するメッセージ生成モジュールと、
    他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたハッシュ値、を取り出す手段を有するメッセージ処理モジュールと、
    メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、
    データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータのハッシュ値、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェアの、保存・取得要求を行う手段と、
    SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、
    メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、
    SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、
    データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、
    メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたハッシュ値、を受信する手段と、
    ハッシュモジュールに対して、SSS復号化モジュールを利用して復元したアプリケーションデータをハッシュ値に変換するように要求する手段と、
    共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵により、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末としてコンピュータを機能させるためのコンピュータプログラム。
  10. 請求項4記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、
    前記ハッシュモジュールを利用してアプリケーションデータのハッシュ値を前記データベースモジュールに保存しておくとともに、前記分散符号化モジュールで、((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、
    ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、メッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、前記メッセージの発信元端末と自端末を除く全端末に対して送信するとともに、得られたシェアは自端末の前記データベースモジュールに保存するステップ2と、
    ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し、0に設定されているので、転送を終了するとともに、全端末のメッセージの転送終了後、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元し、アプリケーションに渡すとともに、そのアプリケーションデータをハッシュモジュールによりハッシュ値に変換し、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化ハッシュ値を、発信元端末に送り返すステップ3と、
    ステップ1における発信元端末を除く全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化ハッシュ値を、発信元端末はステップ3により受信し、受け取った各暗号化ハッシュ値をそれぞれ対応する共通鍵で復号化し、得られるハッシュ値とデータベースモジュールに保存しているハッシュ値とを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法をコンピュータに実行させるためのコンピュータプログラム。









JP2005018410A 2005-01-26 2005-01-26 コミュニケーション端末、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法 Expired - Fee Related JP4523847B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005018410A JP4523847B2 (ja) 2005-01-26 2005-01-26 コミュニケーション端末、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005018410A JP4523847B2 (ja) 2005-01-26 2005-01-26 コミュニケーション端末、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法

Publications (2)

Publication Number Publication Date
JP2006211118A JP2006211118A (ja) 2006-08-10
JP4523847B2 true JP4523847B2 (ja) 2010-08-11

Family

ID=36967503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005018410A Expired - Fee Related JP4523847B2 (ja) 2005-01-26 2005-01-26 コミュニケーション端末、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法

Country Status (1)

Country Link
JP (1) JP4523847B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5181139B2 (ja) 2008-06-30 2013-04-10 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータプログラム、共有オブジェクト制御装置及び共有オブジェクト制御方法
KR101596479B1 (ko) * 2015-06-12 2016-03-07 주식회사 엔오디비즈웨어 분산 키 교환 프로토콜과 자기 방어 보안 기술을 이용한 보안 채팅 방법
KR102528051B1 (ko) * 2020-12-01 2023-05-02 주식회사 엘지유플러스 결제를 위한 단말 및 단말의 동작 방법 및

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3620138B2 (ja) * 1996-02-05 2005-02-16 松下電器産業株式会社 鍵共有システム

Also Published As

Publication number Publication date
JP2006211118A (ja) 2006-08-10

Similar Documents

Publication Publication Date Title
CN108600227B (zh) 一种基于区块链的医疗数据共享方法及装置
US5748736A (en) System and method for secure group communications via multicast or broadcast
US7813510B2 (en) Key management for group communications
US9240980B2 (en) Management of group secrets by group members
TW201008195A (en) Key management for communication networks
CN108847928B (zh) 基于群组型量子密钥卡实现信息加解密传输的通信系统和通信方法
TW202032942A (zh) 物件共享系統及方法
JP2022500920A (ja) コンピュータにより実施される、共通シークレットを共有するシステム及び方法
CN113239403A (zh) 一种数据共享方法及装置
JP2023552263A (ja) 秘密分散の再分配
CN109962924B (zh) 群聊构建方法、群消息发送方法、群消息接收方法及系统
CN111884988A (zh) 数据的安全传输方法
CN113642738B (zh) 基于层次式网络结构的多方安全协作机器学习方法及系统
JP4523847B2 (ja) コミュニケーション端末、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法
CN116112458B (zh) 通信方法、装置、设备及存储介质
KR20220142254A (ko) 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템
US11411744B2 (en) Encryption communication method, information processing apparatus, and program
CN110912691A (zh) 一种云环境下基于格上访问控制加密算法的密文分发方法、装置、系统及存储介质
CN117294422A (zh) 一种跨链数据共享方法
WO2000019652A1 (en) Distributed shared key generation and management using fractional keys
CN116389673B (en) Quantum secret video conference system and method combining blockchain
JP4547233B2 (ja) コミュニケーションシステム、コミュニケーション方法およびそのプログラム
KR101215802B1 (ko) 피투피 네트워크에 있어서 컨텐츠 서비스 제공 방법
JP7254296B2 (ja) 鍵交換システム、情報処理装置、鍵交換方法及びプログラム
CN111865972B (zh) 一种匿名通信方法与系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100525

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100528

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130604

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140604

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees