JP2006211118A - Communication terminal, and method for each terminal to surely confirm connections among all other terminals in full-mesh network - Google Patents

Communication terminal, and method for each terminal to surely confirm connections among all other terminals in full-mesh network Download PDF

Info

Publication number
JP2006211118A
JP2006211118A JP2005018410A JP2005018410A JP2006211118A JP 2006211118 A JP2006211118 A JP 2006211118A JP 2005018410 A JP2005018410 A JP 2005018410A JP 2005018410 A JP2005018410 A JP 2005018410A JP 2006211118 A JP2006211118 A JP 2006211118A
Authority
JP
Japan
Prior art keywords
application data
module
terminal
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.)
Granted
Application number
JP2005018410A
Other languages
Japanese (ja)
Other versions
JP4523847B2 (en
Inventor
Hitoshi Masutani
仁士 益谷
Ikuo Yoda
育生 依田
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/en
Publication of JP2006211118A publication Critical patent/JP2006211118A/en
Application granted granted Critical
Publication of JP4523847B2 publication Critical patent/JP4523847B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a method whereby its own terminal can surely confirm whether or not connections among the other terminals are normally established and data communication is carried out in a full-mesh network constructed by the connections among the terminals. <P>SOLUTION: The communication terminal forms a temporary community by establishing connections to a plurality of external terminals connected to a network in a full-mesh way, carries out authentication control in the case of establishing the connections, and shares a unique common key among the terminals after the establishment of the connections, and includes: an application 12; a common key encryption system encryption/decryption module 19; an SSS sharing coding module 13; an SSS decryption module 16; a database module 11; a message generating module 34; a message processing module 37; a message transmission/reception module 38; and a control module 10. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、フルメッシュ型モデルの多地点通信において、他の参加者同士のコネクションが正常に確立されていて、データ通信が正常に行われているかどうかを各端末が確実に確認する方法に関する。   The present invention relates to a method in which each terminal reliably confirms whether or not a connection between other participants is normally established and data communication is normally performed in multi-point communication of a full mesh type model.

従来、IPネットワーク上において複数の端末が参加する多人数チャットのようなシステムでは、ある複数の端末により一時的にコミュニティを構築し、その中で各端末はアプリケーションデータをやり取りする。このとき、各端末間はデータを送受信するセッションをセットアップするために関係(コネクションと呼ぶ)を持たなければならず、そのコネクションの構築モデルは複数存在する。一般的に普及しているモデルは、コミュニティの端末以外のコンポーネントとして、コネクションを管理するサーバを利用し、各端末はそのサーバとだけコネクションを構築するモデル(中央型モデルと呼ぶ)である。   Conventionally, in a system such as multi-person chat in which a plurality of terminals participate on an IP network, a community is temporarily constructed by a plurality of terminals, and each terminal exchanges application data therein. At this time, each terminal must have a relationship (called a connection) in order to set up a session for transmitting and receiving data, and there are a plurality of models for establishing the connection. A generally popular model is a model that uses a server that manages connections as a component other than a community terminal, and each terminal constructs a connection only with that server (referred to as a central model).

しかし、中央型モデルでは一つのサーバでコネクションを管理するために、そのサーバに障害が発生した場合、そのサーバを利用して構築された全コミュニティ内の全コネクションが切断されるため、通信断が発生してしまう。つまり、中央型モデルは一般的に単一箇所障害(single point of failure)に弱いシステムであり、可用性が低いといえる。   However, in the central model, in order to manage connections with a single server, if a failure occurs in that server, all connections in all communities built using that server will be disconnected, so communication will be interrupted. Will occur. In other words, the central model is generally a system that is vulnerable to a single point of failure and has low availability.

ここで可用性とはアベイラビリティのことであり、一般的にシステムの壊れにくさ、障害の発生しにくさ、障害発生時の修復速度などによって計られる。アベイラビリティの高いシステムと言えば、めったに障害が発生せずいつでも安心して使えるシステムを指し、逆にアベイラビリティの低いシステムとは障害が頻発し、しかもなかなか復旧しないシステムのことを意味している。   Here, availability refers to availability, and is generally measured by the degree to which a system is hard to break, the difficulty of a failure, the repair speed when a failure occurs, and the like. Speaking of a highly available system, it refers to a system that rarely fails and can be used safely at any time. On the other hand, a system with low availability means a system that frequently fails and does not recover easily.

また、中央型モデルでは、コネクションはサーバで一括管理しているため、多くの場合、アプリケーションデータは一度、サーバに送られ、ミキシングなどのデータ加工が行われた後に、他の端末に送信される。このようなデータ送受信方法は、比較的データ量の大きさが小さい場合や厳密なリアルタイム性を必要としないアプリケーションには適するが、反対にテレビ会議や音声通話などの、送受信するデータ量が大きく、厳密なリアルタイム性を必要とするアプリケーションには不適切である。   In the central model, connections are managed collectively by the server, so in many cases, application data is sent to the server once, and after data processing such as mixing is performed, it is sent to other terminals. . Such a data transmission / reception method is suitable for applications where the amount of data is relatively small or applications that do not require strict real-time properties, but on the contrary, the amount of data to be transmitted / received, such as video conferences and voice calls, is large. It is unsuitable for applications that require strict real-time characteristics.

一方、コネクションのモデルとしては各端末間のコネクションを直接フルメッシュに構築するフルメッシュ型のモデルが存在する。このモデルは中央型モデルと異なり、コミュニティに参加する端末を除いて、コネクションを一括管理するサーバなどは必要なく、各端末自身が代わりに複数のコネクションを管理する。また、コネクションの管理が各端末に分散することにより、中央型モデルに比べ、可用性が高い。これにより、ある端末に障害が起きたとしてもその影響は最小限に抑えられ、コミュニティ全体の通信が切断されることはない。さらに、このモデルでは多くの場合、アプリケーションのデータはサーバを介さず、直接端末へ送信されるため、厳密なリアルタイム性を必要とするアプリケーションに適している。   On the other hand, as a connection model, there is a full mesh type model in which connections between terminals are directly constructed in a full mesh. Unlike the central model, this model does not require a server for managing connections collectively except for terminals that participate in the community, and each terminal itself manages a plurality of connections instead. In addition, since the management of the connection is distributed to each terminal, the availability is higher than that of the central model. As a result, even if a failure occurs in a certain terminal, the influence is minimized, and communication of the entire community is not cut off. Furthermore, in this model, since the application data is often transmitted directly to the terminal without going through the server, it is suitable for an application that requires strict real-time property.

しかし、コネクションが集中的に管理されないために各端末は自端末と他の端末間のコネクションが構築されていることを直接確認できても、一方で他の端末間同士のコネクションが実際、確立されているかどうかを知る手段はない。中央型モデルではサーバが一括してコネクションを管理しているため、サーバにとってはどの端末が実際にコネクションを確立しているかを直接知ることができる。   However, since the connection is not managed intensively, each terminal can directly confirm that the connection between its own terminal and the other terminal is established, but the connection between the other terminals is actually established. There is no way to know if it is. In the central model, since the server manages the connection in a lump, the server can directly know which terminal has actually established the connection.

関連文献としては、以下に示すように、コネクション構築モデルについての非特許文献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.
As related documents, as shown below, Non-Patent Document 1 regarding a connection construction model and Non-Patent Documents 2 and 3 regarding Secret Sharing Schemes are disclosed.
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, page 612-613, 1979. Tatsuaki Okamoto, Hiroshi Yamamoto, “Contemporary Cryptographic Series / Mathematics of Information Science,” Industrial Book Publishing, page209-219 July 1997.

以上のように、フルメッシュ型モデルでは一元的なコネクション制御機関が存在しないために、自端末と各端末間のコネクションが接続されているかどうかを直接確認することができても、他の参加者間同士のコネクションが正常に確立され、アプリケーションデータをやり取りしているかどうかを知る手段がない。   As described above, since there is no centralized connection control organization in the full mesh model, even if it is possible to directly check whether the connection between the terminal itself and each terminal is connected, other participants There is no way to know if the connection between them is established normally and whether application data is exchanged.

本発明は、フルメッシュ型モデルの多地点通信において、他の参加者同士のコネクションが正常に確立されていて、データ通信が正常に行われているかどうかを各端末が確実に確認する方法を提案することを目的とする。   The present invention proposes a method in which each terminal reliably confirms whether or not the data communication is performed normally when the connection between other participants is normally established in multi-point communication of the full mesh type model. The purpose is to do.

上記課題を解決するために、請求項1の本発明は、ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、(k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、アプリケーションから直接渡されるアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、2つのアプリケーションデータを比較し、一致するかどうかを判断するデータ比較モジュールと、他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたアプリケーションデータを含むメッセージを生成する手段、を有するメッセージ生成モジュールと、他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたアプリケーションデータ、を取り出す手段を有するメッセージ処理モジュールと、メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータ、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェア、の保存・取得要求を行う手段と、SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたアプリケーションデータ、を受信する手段と、共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵を利用して、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末をもって解決手段とする。   In order to solve the above-mentioned problems, the present invention of claim 1 establishes a temporary community by establishing a connection with a plurality of external terminals connected to a network to a full mesh. After authentication is established and the connection is established, each terminal shares a unique common key, generates application data, uses an application that processes application data received from an external terminal, and uses the common key. , A common key encryption / decryption module that encrypts / decrypts arbitrary data, and application data is distributedly encoded with a threshold (1 ≦ k ≦ n) of (k, n), and partial information of the application data SSS (Secret Sharing Schemes) distributed coding module that generates n shares, and application data SSS decoding module that restores original application data from multiple shares that are distributed and encoded, application data passed directly from the application, share of application data received from other terminals, and unique sharing with other terminals A database module that manages a common key that is being used, a terminal list that includes destination information of terminals participating in the community, a data comparison module that compares two application data and determines whether they match, A means for generating a message by giving a designated destination information and a transfer count to a share of application data passed from another module, and a means for generating a message including application data encrypted by a common key. Message generation module A message processing module having means for retrieving application data share, transfer count, and application data encrypted with a common key included in a message received from another terminal, and message destination information passed from the message generation module A message transmission / reception module having means for transmitting a message to the destination, means for receiving a message from another terminal, and means for passing the received message to the message processing module. On the other hand, means for requesting storage / acquisition of a list of participants participating in the community, application data, a common key shared among the participants, and a share in which application data is distributed and encoded, and SSS distribution Encoding module On the other hand, the means for requesting the application data received from the application to be distributed encoded by SSS at the requested threshold, and the share of the application data received from the SSS distributed encoding module to the message generation module, Means for requesting to generate a message by setting designated destination information and the number of transfers; means for requesting the SSS decryption module to restore the original application data from the acquired application data share; The data comparison module needs to compare the application data stored in the database module with the application data restored using the SSS decryption module from the share of application data received from other terminals. A means for requesting, a means for receiving the share of application data extracted from a message received from another terminal from the message processing module, the number of transfers, and the encrypted application data; A communication terminal characterized by comprising a control module comprising: a means for requesting the decryption module to encrypt or decrypt any data using a common key; .

請求項2の本発明は、請求項1記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、前記データベースモジュールにそのアプリケーションデータを保存しておくとともに、前記SSS分散符号化モジュールで((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、そのメッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、そのメッセージの発信元端末と自端末を除く全端末に対して転送するとともに、アプリケーションデータのシェアは自端末の前記データベースモジュールに保存するステップ2と、ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し0に設定されているので転送を終了し、各端末が全てメッセージの転送を終了すると、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元しアプリケーションに渡すとともに、そのアプリケーションデータを、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化データを、発信元端末に送り返すステップ3と、ステップ1における発信元端末は他の全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化データをステップ3により受信し、受け取った各暗号化データを、それぞれ対応する共通鍵で復号化して得られるアプリケーションデータと、データベースモジュールに保存しているアプリケーションデータとを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法をもって解決手段とする。   In the present invention of claim 2, when a terminal which is a communication terminal according to claim 1 transmits application data to all terminals participating in a community other than its own terminal, the application data is stored in the database module. In addition, the SSS distributed coding module is obtained by performing distributed coding with a threshold of ((total number of terminals participating in community-1), (total number of terminals participating in community-1)). The total number of terminals-1) The share of application data is sent to each of all terminals participating in the community excluding its own terminal in a message for each share. A message that includes the destination information and the transfer count set to 1 Step 1 is generated and transmitted for each of all terminals participating in the network, and each terminal receives the message transmitted in Step 1, and each terminal uses the message processing module to share and transfer Are transferred to the control module, and the control module refers to the transfer count, and if it is set to 1, a message including the share of the application data included in the message and the transfer count set to 0 Is generated and transferred to all terminals except the source terminal of the message and the own terminal, and the application data share is stored in the database module of the own terminal, and the message transferred in step 2 is The received control module of each terminal refers to the number of transfers as in step 2. When the transfer is finished and each terminal finishes the message transfer, each terminal excluding the message source terminal obtains the shares of (the total number of terminals participating in the community minus 1). The original application data is restored using the SSS decryption module and transferred to the application, and the application data is encrypted and decrypted using the common key shared with the source terminal. The encrypted data encrypted by the encryption module is sent back to the source terminal, and the source terminal in step 1 receives a common key that is uniquely shared between the source terminal and each terminal from all other terminals. It is obtained by receiving encrypted data encrypted by using step 3 and decrypting each received encrypted data with a corresponding common key. Step 4 for comparing the application data stored in the database module with the application data stored in the database module and confirming whether or not they match. A method for reliably confirming the connection is used as a solution.

請求項3の本発明は、アプリケーションデータの送信ステップをコミュニティに参加する全ての端末が実施する、請求項2に記載のフルメッシュ網において各端末が他の全端末間のコネクション接続を確実に接続する方法をもって解決手段とする。   In the third aspect of the present invention, in the full mesh network according to the second aspect, each terminal surely connects connection connections between all other terminals, in which all terminals participating in the community perform the application data transmission step. This method is the solution.

請求項4の本発明は、ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、(k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、アプリケーションデータのハッシュ値と、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、アプリケーションデータをハッシュ値に変換するハッシュモジュールと、2つのハッシュ値を比較し、一致するかどうかを判断するデータ比較モジュールと、他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたハッシュ値を含むメッセージを生成する手段、とを有するメッセージ生成モジュールと、他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたハッシュ値、を取り出す手段を有するメッセージ処理モジュールと、メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータのハッシュ値、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェアの、保存・取得要求を行う手段と、SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたハッシュ値、を受信する手段と、ハッシュモジュールに対して、SSS復号化モジュールを利用して復元したアプリケーションデータをハッシュ値に変換するように要求する手段と、共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵により、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末をもって解決手段とする。   According to the present invention of claim 4, a temporary community is formed by establishing a connection with a plurality of external terminals connected to the network in a full mesh, and authentication control is performed when the connection is established. Is a terminal that shares a unique common key among terminals, generates application data, processes application data received from an external terminal, and encrypts any data using the common key. Application data is distributedly encoded with a common key encryption / decryption module to be decrypted and a threshold (1 ≦ k ≦ n) of (k, n) to generate n shares that are partial information of the application data. An SSS (Secret Sharing Schemes) distributed encoding module and a plurality of shells in which application data is distributed encoded SSS decryption module that restores the original application data from the network, the hash value of the application data, the share of application data received from other terminals, the common key that is uniquely shared with other terminals, and the community A database module that manages a terminal list including destination information of participating terminals, a hash module that converts application data into a hash value, and a data comparison that compares two hash values to determine whether they match. Generates a message that includes a hash value encrypted with a common key and a means for generating a message by assigning the specified destination information and the number of transfers to the share of the application data passed from the module and another module A message generation module comprising: A message processing module having means for extracting application data share, transfer count, hash value encrypted with a common key included in a message received from another terminal, and destination information of a message passed from the message generation module. A message transmission / reception module comprising: means for transmitting a message to the destination; means for receiving a message from another terminal; and means for passing the received message to the message processing module. A means for requesting storage / acquisition of a list of participants participating in the community, a hash value of application data, a common key shared among the participants, and a share in which application data is distributedly encoded, To SSS distributed coding module Then, a means for requesting application data received from the application to be distributed encoded by SSS with the requested threshold, and a share of application data received from the SSS distributed encoding module to the message generation module, Means for requesting to generate a message by setting designated destination information and the number of transfers; means for requesting the SSS decryption module to restore the original application data from the acquired application data share; , Request the data comparison module to compare the application data stored in the database module with the application data restored using the SSS decryption module from the share of application data received from other terminals SSS decryption with respect to the hash module, means for receiving from the message processing module a share of application data extracted from a message received from another terminal, the number of transfers, and an encrypted hash value A means for requesting application data restored using the encryption module to be converted into a hash value and a common key encryption / decryption module for encrypting or decrypting arbitrary data with a common key The communication terminal is provided with a control module including a means for requesting to be converted into a solution.

請求項5の本発明は、請求項4記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、前記ハッシュモジュールを利用してアプリケーションデータのハッシュ値を前記データベースモジュールに保存しておくとともに、前記分散符号化モジュールで、((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、メッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、前記メッセージの発信元端末と自端末を除く全端末に対して送信するとともに、得られたシェアは自端末の前記データベースモジュールに保存するステップ2と、ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し、0に設定されているので、転送を終了するとともに、全端末のメッセージの転送終了後、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元し、アプリケーションに渡すとともに、そのアプリケーションデータをハッシュモジュールによりハッシュ値に変換し、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化ハッシュ値を、発信元端末に送り返すステップ3と、ステップ1における発信元端末を除く全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化ハッシュ値を、発信元端末はステップ3により受信し、受け取った各暗号化ハッシュ値をそれぞれ対応する共通鍵で復号化し、得られるハッシュ値とデータベースモジュールに保存しているハッシュ値とを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法をもって解決手段とする。   According to a fifth aspect of the present invention, when the terminal, which is the communication terminal according to the fourth aspect, transmits the application data to all the terminals participating in the community except for the terminal itself, the hash of the application data is utilized using the hash module. The value is stored in the database module, and is distributedly encoded with the threshold of ((total number of terminals participating in community-1), (total number of terminals participating in community-1)) in the distributed encoding module. Since the share of the application data (total number of terminals participating in the community minus 1) obtained in this way is included in a message for each terminal that participates in the community other than its own terminal, Destination information of the terminal to which the share is transmitted, and the number of transfers set to 1. A message is generated and transmitted for each of all terminals participating in the community except for the terminal itself. The other terminals receive the message transmitted in step 1, and each terminal uses the message processing module. Then, the share and transfer count are taken out and passed to the control module. The control module refers to the transfer count, and when it is set to 1, the application data share contained in the message is set to 0. Generating a message including the number of times of transmission and transmitting the message to all terminals except the source terminal of the message and the own terminal, and storing the obtained share in the database module of the own terminal; The control module of each terminal that has received the message transferred in step 2 Refers to the number of transmissions and is set to 0, so the transfer is completed, and after the message transfer for all terminals is completed, each terminal obtained except the message source terminal (the total number of terminals participating in the community) -1) Restore the original application data using the SSS decryption module and pass it to the application, and convert the application data into a hash value by the hash module and share it with the source terminal The encrypted hash value encrypted by the common key cryptosystem encryption / decryption module using the common key is sent back to the source terminal, and from all terminals except the source terminal in step 1, The source terminal uses an encrypted hash value encrypted using a common key that is uniquely shared between the source terminal and each terminal. Step 3 for decrypting each received encrypted hash value with the corresponding common key, comparing the obtained hash value with the hash value stored in the database module, and confirming whether or not they match 4, and each of the terminals in the full mesh network reliably confirms connection connections between all other terminals.

請求項6の本発明は、アプリケーションデータの送信ステップをコミュニティに参加する全ての端末が実施する、請求項5に記載のフルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法をもって解決手段とする。   The present invention of claim 6 is such that each terminal in the full mesh network according to claim 5 confirms connection connections between all other terminals in a full mesh network according to claim 5, wherein the application data transmission step is performed by all terminals participating in the community. This method is the solution.

請求項7の本発明は、ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、(k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、アプリケーションから直接渡されるアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、2つのアプリケーションデータを比較し、一致するかどうかを判断するデータ比較モジュールと、他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたアプリケーションデータを含むメッセージを生成する手段、を有するメッセージ生成モジュールと、他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたアプリケーションデータ、を取り出す手段を有するメッセージ処理モジュールと、メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータ、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェア、の保存・取得要求を行う手段と、SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたアプリケーションデータ、を受信する手段と、共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵を利用して、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末としてコンピュータを機能させるためのコンピュータプログラムをもって解決手段とする。   In the present invention of claim 7, a temporary community is formed by establishing a connection to a plurality of external terminals connected to the network in a full mesh, and authentication control is performed at the time of establishing the connection. Is a terminal that shares a unique common key among terminals, generates application data, processes application data received from an external terminal, and encrypts any data using the common key. Application data is distributedly encoded with a common key encryption / decryption module to be decrypted and a threshold (1 ≦ k ≦ n) of (k, n) to generate n shares that are partial information of the application data. An SSS (Secret Sharing Schemes) distributed encoding module and a plurality of shells in which application data is distributed encoded SSS decryption module that restores the original application data from the application, application data directly passed from the application, share of application data received from other terminals, a common key that is uniquely shared with other terminals, A database module that manages a terminal list including destination information of terminals participating in the community, a data comparison module that compares two application data and determines whether they match, and an application passed from another module A message generation module having means for generating a message by assigning the specified destination information to the data share, the number of transfers, and a means for generating a message including application data encrypted with a common key, and the like Received from other terminals The message processing module having means for retrieving the application data share, the number of transfers, and the application data encrypted with the common key included in the message, and the destination information of the message passed from the message generation module, to the destination A message transmission / reception module comprising: means for transmitting a message; means for receiving a message from another terminal; and means for passing the received message to the message processing module. Participant list, application data, a common key shared among the participants, a share for which application data is distributed and encoded, a means for performing a storage / acquisition request, and an SSS distributed encoding module, application Means for requesting the application data received from the SSS to be distributed-encoded with the requested threshold, and destination information to be specified for the share of the application data received from the SSS distributed encoding module to the message generation module Means for requesting to generate a message by setting the number of transfers, means for requesting the SSS decryption module to restore the original application data from the acquired application data share, and a data comparison module A means for requesting a comparison between the application data stored in the database module and the application data restored using the SSS decryption module from the share of the application data received from other terminals, and a message place A means for receiving the share of application data extracted from messages received from other terminals, the number of transfers, and encrypted application data from the management module, and the common key encryption / decryption module A computer program for causing a computer to function as a communication terminal, comprising: a control module comprising: a means for requesting to encrypt or decrypt any data using a common key Means.

請求項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復号化モジュールを利用して復元したアプリケーションデータをハッシュ値に変換するように要求する手段と、共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵により、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末としてコンピュータを機能させるためのコンピュータプログラムをもって解決手段とする。   In the present invention of claim 8, when the terminal which is the communication terminal of claim 1 transmits the application data to all the terminals participating in the community except for its own terminal, the application data is stored in the database module. In addition, the SSS distributed coding module is obtained by performing distributed coding with a threshold of ((total number of terminals participating in community-1), (total number of terminals participating in community-1)). The total number of terminals-1) The share of application data is sent to each of all terminals participating in the community excluding its own terminal in a message for each share. A message that includes the destination information and the transfer count set to 1 Step 1 is generated and transmitted for each of all terminals participating in the network, and each terminal receives the message transmitted in Step 1, and each terminal uses the message processing module to share and transfer Are transferred to the control module, and the control module refers to the transfer count, and if it is set to 1, a message including the share of the application data included in the message and the transfer count set to 0 Is generated and transferred to all terminals except the source terminal of the message and the own terminal, and the application data share is stored in the database module of the own terminal, and the message transferred in step 2 is The received control module of each terminal refers to the number of transfers as in step 2. When the transfer is finished and each terminal finishes the message transfer, each terminal excluding the message source terminal obtains the shares of (the total number of terminals participating in the community minus 1). The original application data is restored using the SSS decryption module and transferred to the application, and the application data is encrypted and decrypted using the common key shared with the source terminal. The encrypted data encrypted by the encryption module is sent back to the source terminal, and the source terminal in step 1 receives a common key that is uniquely shared between the source terminal and each terminal from all other terminals. It is obtained by receiving encrypted data encrypted by using step 3 and decrypting each received encrypted data with a corresponding common key. Step 4 for comparing the application data stored in the database module with the application data stored in the database module and confirming whether or not they match. A computer program for causing a computer to execute a method for reliably confirming the connection is established as a solution means. The present invention according to claim 9 establishes a temporary community by establishing a connection with a plurality of external terminals connected to the network to form a temporary community, and performs authentication control at the time of establishing the connection. Is a terminal that shares a unique common key among terminals, generates application data, processes application data received from an external terminal, and encrypts any data using the common key. Application data is distributedly encoded with a common key encryption / decryption module to be decrypted and a threshold (1 ≦ k ≦ n) of (k, n) to generate n shares that are partial information of the application data. An SSS (Secret Sharing Schemes) distributed encoding module and a plurality of shells in which application data is distributed encoded SSS decryption module that restores the original application data from the network, the hash value of the application data, the share of application data received from other terminals, the common key that is uniquely shared with other terminals, and the community A database module that manages a terminal list including destination information of participating terminals, a hash module that converts application data into a hash value, and a data comparison that compares two hash values to determine whether they match. Generates a message that includes a hash value encrypted with a common key and a means for generating a message by assigning the specified destination information and the number of transfers to the share of the application data passed from the module and another module A message generation module comprising: A message processing module having means for extracting application data share, transfer count, hash value encrypted with a common key included in a message received from another terminal, and destination information of a message passed from the message generation module. A message transmission / reception module comprising: means for transmitting a message to the destination; means for receiving a message from another terminal; and means for passing the received message to the message processing module. A means for requesting storage / acquisition of a list of participants participating in the community, a hash value of application data, a common key shared among the participants, and a share in which application data is distributedly encoded, To SSS distributed coding module Then, a means for requesting application data received from the application to be distributed encoded by SSS with the requested threshold, and a share of application data received from the SSS distributed encoding module to the message generation module, Means for requesting to generate a message by setting designated destination information and the number of transfers; means for requesting the SSS decryption module to restore the original application data from the acquired application data share; , Request the data comparison module to compare the application data stored in the database module with the application data restored using the SSS decryption module from the share of application data received from other terminals SSS decryption with respect to the hash module, means for receiving from the message processing module a share of application data extracted from a message received from another terminal, the number of transfers, and an encrypted hash value A means for requesting application data restored using the encryption module to be converted into a hash value and a common key encryption / decryption module for encrypting or decrypting arbitrary data with a common key A computer program for causing a computer to function as a communication terminal is provided as a solution means.

請求項10の本発明は、請求項4記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、前記ハッシュモジュールを利用してアプリケーションデータのハッシュ値を前記データベースモジュールに保存しておくとともに、前記分散符号化モジュールで、((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、メッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、前記メッセージの発信元端末と自端末を除く全端末に対して送信するとともに、得られたシェアは自端末の前記データベースモジュールに保存するステップ2と、ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し、0に設定されているので、転送を終了するとともに、全端末のメッセージの転送終了後、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元し、アプリケーションに渡すとともに、そのアプリケーションデータをハッシュモジュールによりハッシュ値に変換し、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化ハッシュ値を、発信元端末に送り返すステップ3と、ステップ1における発信元端末を除く全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化ハッシュ値を、発信元端末はステップ3により受信し、受け取った各暗号化ハッシュ値をそれぞれ対応する共通鍵で復号化し、得られるハッシュ値とデータベースモジュールに保存しているハッシュ値とを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法をコンピュータに実行させるためのコンピュータプログラムをもって解決手段とする。   According to a tenth aspect of the present invention, when the terminal, which is the communication terminal according to the fourth aspect, transmits the application data to all terminals participating in the community except for the own terminal, the hash of the application data is utilized using the hash module. The value is stored in the database module, and is distributedly encoded with the threshold of ((total number of terminals participating in community-1), (total number of terminals participating in community-1)) in the distributed encoding module. Since the share of the application data (total number of terminals participating in the community minus 1) obtained in this way is included in a message for each terminal that participates in the community other than its own terminal, Destination information of the terminal to which the share is transmitted, and the number of transfers set to 1. Message is generated and transmitted for each of all terminals participating in the community except for the terminal itself, and the other terminals receive the message transmitted in step 1, and each terminal receives the message processing module. Use it to retrieve the share and transfer count, and pass them to the control module. The control module refers to the transfer count, and if it is set to 1, sets the application data share contained in the message to 0 Generating a message including the number of times the transfer has been performed, transmitting the message to all terminals except the source terminal of the message and the own terminal, and storing the obtained share in the database module of the own terminal; The control module of each terminal that has received the message transferred in step 2 is the same as step 2. Refers to the number of transfers, and is set to 0, so the transfer is completed, and after the message transfer of all terminals is completed, each terminal except the message source terminal has obtained (the total number of terminals participating in the community -1) Restore the original application data using the SSS decryption module and pass it to the application, and convert the application data into a hash value by the hash module and share it with the source terminal The encrypted hash value encrypted by the common key cryptosystem encryption / decryption module using the common key is sent back to the source terminal, and from all terminals except the source terminal in step 1, The source terminal uses an encrypted hash value encrypted by using a common key that is uniquely shared between the source terminal and each terminal. And decrypting each received encrypted hash value with the corresponding common key, comparing the obtained hash value with the hash value stored in the database module, and confirming whether or not they match Step 4 is a solving means comprising a computer program for causing a computer to execute a method for surely confirming connection connections between all other terminals in a full mesh network.

以上、本発明によれば、ステップ1からステップ4を通し、発信元端末はアプリケーションデータを他の端末へ直接送信するのでなく、他の端末経由で送信するため、他の端末同士のコネクションが正常でないと、他の端末はステップ3において、発信元端末が生成したアプリケーションデータの部分情報であるシェアをすべて手に入れることができず、結局、発信元端末が生成したアプリケーションデータと同じものを復元することもできず、ステップ4のアプリケーションデータの比較ができない。よって、各端末がステップ1からステップ4を通して、他の端末にアプリケーションデータを送信することで、最終的に発信元端末は、他の端末同士のコネクション、データ通信が正常であるかどうかを確実に確認することができる。   As described above, according to the present invention, the connection between other terminals is normal because the source terminal does not directly transmit the application data to the other terminals but through the other terminals through the steps 1 to 4. Otherwise, in step 3, the other terminals cannot obtain all the shares that are partial information of the application data generated by the source terminal, and eventually restore the same application data generated by the source terminal. The application data in step 4 cannot be compared. Therefore, each terminal transmits application data to other terminals through step 1 to step 4, so that the source terminal finally confirms whether the connection and data communication between the other terminals are normal. Can be confirmed.

また、本発明によれば、ステップ4において発信元端末に送り返されるデータを含むメッセージが、発信元端末とその他の端末間で一意に共有している共通鍵を利用して暗号化されていることで、コミュニティに参加している端末からのメッセージであることを一意に認証することができる。   Further, according to the present invention, the message including the data sent back to the source terminal in Step 4 is encrypted using a common key that is uniquely shared between the source terminal and the other terminals. Thus, it can be uniquely authenticated that the message is from a terminal participating in the community.

また、本発明によれば、ステップ1において、アプリケーションデータを直接、他の端末に送信するのではなく、一度、部分情報(シェア)に分解し、さらに他の端末を経由して、発信元端末を除く全端末にデータを送信するため、コミュニティに参加する端末以外の不正な端末によって、そのシェアが盗聴されたとしても、それがアプリケーションの部分情報であるため、元のアプリケーションデータを取得することができず、よって、コミュニティ内のデータ通信に対しセキュリティレベルを向上させることが可能である。   Further, according to the present invention, in step 1, the application data is not directly transmitted to another terminal, but is once decomposed into partial information (share), and further via the other terminal, the source terminal Since the data is transmitted to all terminals except for, even if the share is eavesdropped by an unauthorized terminal other than the terminal participating in the community, the original application data must be obtained because it is partial information of the application. Therefore, it is possible to improve the security level for data communication within the community.

また、本発明によれば、ステップ3で他の端末がアプリケーションデータを送り返すときに、アプリケーションデータを含んだメッセージをそのまま共通鍵を利用して、暗号化するのではなく、アプリケーションデータのハッシュ値を求めてから、そのハッシュ値を含んだメッセージを共通鍵で暗号化するため、発信元端末に送り返すためのデータ量を小さくすることができ、データ通信に必要となる帯域を抑制することができる。   Further, according to the present invention, when another terminal sends back application data in step 3, the message including the application data is not encrypted as it is using the common key, but the hash value of the application data is used. Since the message including the hash value is encrypted with the common key after being obtained, the amount of data to be sent back to the source terminal can be reduced, and the bandwidth required for data communication can be suppressed.

また、本発明によれば、ステップ1において、アプリケーションデータをハッシュ値としてデータベースに保存しておくため、各端末のデータ保存に必要な容量を抑えることができる。   Further, according to the present invention, since application data is stored in the database as a hash value in step 1, the capacity required for storing data in each terminal can be suppressed.

以下、本発明の実施の形態を、図面を参照して説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図1は、本発明の実施の形態に係る端末間の関係を表したネットワークの構成を示す図である。   FIG. 1 is a diagram showing a network configuration representing a relationship between terminals according to an embodiment of the present invention.

端末1、端末2、端末3はネットワーク1000に接続しており、それらの間で通信可能であるとする。図1の状態では、各端末間ではコネクションが確立されていないとする。ネットワーク1000は任意の情報をやり取りするためのインフラであり、例えば、インターネットやプライベートネットワークを表す。   Terminal 1, terminal 2, and terminal 3 are connected to network 1000 and can communicate with each other. In the state of FIG. 1, it is assumed that no connection is established between the terminals. The network 1000 is an infrastructure for exchanging arbitrary information, and represents, for example, the Internet or a private network.

[第1の実施の形態]
図2は、図1で示された端末1、端末2、端末3のそれぞれが有する共通の機能モジュールの構成を示した図である。
[First Embodiment]
FIG. 2 is a diagram illustrating a configuration of common functional modules included in each of the terminal 1, the terminal 2, and the terminal 3 illustrated in FIG.

ここで、コミュニティとは複数の端末間でフルメッシュにコネクションを確立することで形成されるものとし、最低2つの端末間で構築される1対1のコネクションが必要となる。   Here, the community is formed by establishing a connection in a full mesh between a plurality of terminals, and a one-to-one connection constructed between at least two terminals is required.

制御モジュール10は、データベースモジュール11、秘密分散法(Secret Sharing Schemes、以下SSSという)分散符号化モジュール13、メッセージ生成モジュール14、データ比較モジュール15、SSS復号化モジュール16、メッセージ処理モジュール17、共通鍵暗号方式暗号化・復号化モジュール19とのインタフェースを有する。   The control module 10 includes a database module 11, a secret sharing scheme (hereinafter referred to as SSS) distributed encoding module 13, a message generation module 14, a data comparison module 15, an SSS decryption module 16, a message processing module 17, and a common key. It has an interface with the encryption system encryption / decryption module 19.

制御モジュール10はデータベースモジュール11に対し、コミュニティに参加している参加者リスト、アプリケーションデータ、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェア、の保存・取得要求を行う。   The control module 10 requests the database module 11 to save and acquire a list of participants participating in the community, application data, a common key shared among the participants, and a share in which application data is distributedly encoded. I do.

制御モジュール10はSSS分散符号化モジュール13に対し、SSS分散符号化モジュール13がアプリケーション12から受信するアプリケーションデータを、指定した閾値でSSSにより分散符号化を行うように依頼する。   The control module 10 requests the SSS distributed encoding module 13 to perform the application encoding received by the SSS distributed encoding module 13 from the application 12 using the SSS with the specified threshold.

制御モジュール10はメッセージ生成モジュール14に対し、SSS分散符号化モジュール13または制御モジュール10から受信するアプリケーションのシェア、指定した転送回数、要求する宛先情報を含んだメッセージを生成するように依頼する。   The control module 10 requests the message generation module 14 to generate a message including the share of the application received from the SSS distributed encoding module 13 or the control module 10, the designated number of transfers, and the requested destination information.

また、制御モジュール10はメッセージ生成モジュール14に対し、共通鍵により暗号化されたアプリケーションデータ、指定した宛先情報を含んだメッセージを生成するように依頼する。   Further, the control module 10 requests the message generation module 14 to generate a message including application data encrypted with the common key and designated destination information.

また、制御モジュール10はデータ比較モジュール15に対し、アプリケーション12が以前に生成しデータベースモジュール11に保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータとを比較するように依頼する。   In addition, the control module 10 requests the data comparison module 15 to compare the application data previously generated by the application 12 and stored in the database module 11 with the application data received from another terminal.

また、制御モジュール10はSSS復号化モジュール16に対し、取得したアプリケーションデータの複数のシェアから元のアプリケーションデータを復元するように依頼する。   Further, the control module 10 requests the SSS decryption module 16 to restore the original application data from a plurality of shares of the acquired application data.

また、制御モジュール10はメッセージ処理モジュール17から、他の端末から受信されたメッセージから取り出されたシェア、転送回数、共通鍵により暗号化されたアプリケーションデータ、を受信する。   Further, the control module 10 receives from the message processing module 17 the share extracted from the message received from another terminal, the number of transfers, and the application data encrypted with the common key.

また、制御モジュール10は共通鍵暗号方式暗号化・復号化モジュール19に対し、任意のデータを共通鍵を利用して、暗号化、または復号化するように依頼する。   Further, the control module 10 requests the common key encryption / decryption module 19 to encrypt or decrypt arbitrary data using the common key.

データベースモジュール11は制御モジュール10、アプリケーション12、とのインタフェースを有する。データベースモジュール11は、各端末間で共有する共通鍵、参加者のリスト(主に宛先情報が含まれる)、各端末から受信するアプリケーションデータが分散符号化されたシェア、アプリケーションデータそのものを管理する。   The database module 11 has an interface with the control module 10 and the application 12. The database module 11 manages a common key shared among terminals, a list of participants (mainly including destination information), a share obtained by distributing and encoding application data received from each terminal, and the application data itself.

アプリケーション12は例えば、音声データを入出力する音声アプリケーションなど、アプリケーションデータを入出力する任意のアプリケーションである。ただし、これらのアプリケーションデータはどの端末が生成したものかを識別するための識別情報(ID)を含む。   The application 12 is an arbitrary application that inputs and outputs application data, such as a voice application that inputs and outputs voice data. However, these application data include identification information (ID) for identifying which terminal has generated the application data.

アプリケーション12はデータベースモジュール11、SSS分散符号化モジュール13、とのインタフェースを有する。   The application 12 has an interface with the database module 11 and the SSS distributed encoding module 13.

アプリケーション12はデータベースモジュール11に対し、毎回出力するアプリケーションデータを保存してもらう。   The application 12 has the database module 11 store application data to be output each time.

アプリケーション12は、SSS分散符号化モジュール13に対して毎回出力するアプリケーションデータを、制御モジュール10によってSSS分散符号化モジュール13にあらかじめ設定された閾値で、SSS分散符号化モジュール13により分散符号化してもらう。   The application 12 has the application data output each time to the SSS distributed encoding module 13 be distributed and encoded by the SSS distributed encoding module 13 with a threshold value preset in the SSS distributed encoding module 13 by the control module 10. .

SSS分散符号化モジュール13は、制御モジュール10、アプリケーション12、メッセージ生成モジュール14、とのインタフェースを有する。SSS分散符号化モジュール13は、(k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成する。   The SSS distributed encoding module 13 has an interface with the control module 10, the application 12, and the message generation module 14. The SSS distributed encoding module 13 distributes and encodes application data with a threshold (1 ≦ k ≦ n) of (k, n), and generates n shares that are partial information of the application data.

SSS分散符号化モジュール13は、制御モジュール10から指定された((コミュニティの全端末数−1)、(コミュニティの全端末数−1))の閾値で、アプリケーション12から受信するデータを分散符号化し、得られた(コミュニティの全端末数−1))個のシェアをメッセージ生成モジュール14に渡すように依頼される。   The SSS distributed encoding module 13 performs distributed encoding on the data received from the application 12 with the thresholds ((total number of terminals in community-1), (total number of terminals in community-1)) specified by the control module 10. Then, it is requested that the obtained (total number of terminals in community-1)) shares be passed to the message generation module 14.

メッセージ生成モジュール14は、制御モジュール10、SSS分散符号化モジュール13、メッセージ送受信モジュール18、とのインタフェースを有する。   The message generation module 14 has an interface with the control module 10, the SSS distributed coding module 13, and the message transmission / reception module 18.

メッセージ生成モジュール14は制御モジュール10から、自端末を除くコミュニティに参加する全端末の宛先情報を受信し、SSS分散符号化モジュール13から受信する(コミュニティの全端末数−1)個のシェアにそれぞれ、他の端末の宛先情報と指定された転送回数を付与してメッセージを生成するように依頼される。これにより、(コミュニティの全端末数−1)個のメッセージを生成することになる。   The message generation module 14 receives the destination information of all terminals participating in the community excluding its own terminal from the control module 10, and receives from the SSS distributed coding module 13 (total number of terminals in community −1) shares respectively. Then, it is requested to generate a message by giving destination information of another terminal and the designated transfer count. As a result, (total number of terminals in community-1) messages are generated.

また、メッセージ生成モジュール14は、SSS分散符号化モジュール13からシェアを受信する場合、メッセージ生成時には転送回数を1に設定する。一方、制御モジュール10からシェアが直接渡された場合は、転送回数を0に設定して、要求された宛先情報を付与してメッセージを生成する。   In addition, when the message generation module 14 receives a share from the SSS distributed encoding module 13, the message generation module 14 sets the number of transfers to 1 when generating a message. On the other hand, when the share is directly passed from the control module 10, the number of transfers is set to 0, the requested destination information is added, and a message is generated.

また、メッセージ生成モジュール14は制御モジュール10から、共通鍵で暗号化されたアプリケーションデータを、指定された宛先情報を付与してメッセージを生成するように依頼される。   Further, the message generation module 14 is requested by the control module 10 to generate a message by adding the designated destination information to the application data encrypted with the common key.

データ比較モジュール15は、制御モジュール10、とのインタフェースを有する。   The data comparison module 15 has an interface with the control module 10.

データ比較モジュール15は制御モジュール10から、アプリケーション12が以前に生成しデータベースモジュール11に保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータとを比較するように依頼される。   The data comparison module 15 is requested by the control module 10 to compare application data previously generated by the application 12 and stored in the database module 11 with application data received from another terminal.

SSS復号化モジュール16は、制御モジュール10、アプリケーション12、とのインタフェースを有する。   The SSS decryption module 16 has an interface with the control module 10 and the application 12.

SSS復号化モジュール16は制御モジュール10から、SSSを利用し、複数のシェアから一つのアプリケーションデータを復元するように依頼される。   The SSS decryption module 16 is requested by the control module 10 to restore one application data from a plurality of shares using the SSS.

また、SSS復号化モジュール16はアプリケーション12に対し、復元したアプリケーションデータを渡す。   The SSS decryption module 16 passes the restored application data to the application 12.

メッセージ処理モジュール17は、制御モジュール10、メッセージ送受信モジュール18、とのインタフェースを有する。   The message processing module 17 has an interface with the control module 10 and the message transmission / reception module 18.

メッセージ処理モジュール17は制御モジュール10に対し、メッセージ送受信モジュール18が他の端末から受信したメッセージからアプリケーションデータのシェア、転送回数を取り出し、渡す。   The message processing module 17 extracts the application data share and transfer count from the message received from the other terminal by the message transmission / reception module 18 and passes it to the control module 10.

メッセージ送受信モジュール18は、メッセージ生成モジュール14、メッセージ処理モジュール17、とのインタフェースを有するだけでなく、外部の端末と直接ネットワークで結ばれている。   The message transmission / reception module 18 not only has an interface with the message generation module 14 and the message processing module 17, but is directly connected to an external terminal via a network.

メッセージ送受信モジュール18は、メッセージ生成モジュール14から渡されたメッセージをそのメッセージの宛先情報を参考にして、他の端末に送信する。   The message transmission / reception module 18 transmits the message passed from the message generation module 14 to another terminal with reference to the destination information of the message.

また、メッセージ送受信モジュール18は、受信したメッセージをメッセージ処理モジュール17に渡す。   The message transmission / reception module 18 passes the received message to the message processing module 17.

共通鍵暗号方式暗号化・復号化モジュール19は、制御モジュール10、とのインタフェースを有する。   The common key encryption / decryption module 19 has an interface with the control module 10.

共通鍵暗号方式暗号化・復号化モジュール19は制御モジュール10から、共通鍵を渡されるとともに、その鍵を利用した暗号化、または復号化を要求される。   The common key encryption / decryption module 19 receives a common key from the control module 10 and is requested to perform encryption or decryption using the key.

なお、これらの機能を有する端末は、コンピュータプログラムで動作するコンピュータで実現することもできる。そのコンピュータプログラム、つまりコンピュータをこの端末として機能させるコンピュータプログラムは、例えば、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に格納したり、インターネットなどの通信網を介して伝送させて、広く流通させることができる。   A terminal having these functions can also be realized by a computer operating with a computer program. The computer program, that is, the computer program that causes the computer to function as this terminal is stored in a computer-readable recording medium such as a semiconductor memory, a magnetic disk, an optical disk, a magneto-optical disk, or a magnetic tape, or a communication network such as the Internet. And can be widely distributed.

端末20、21は図1に示される端末1から端末3の2つを示している。   Terminals 20 and 21 are two terminals 1 to 3 shown in FIG.

図3は、既に端末1と端末2の間でコネクション50が、端末2と端末3の間でコネクション51が、端末3と端末1の間でコネクション52が構築されている状態を示す図である。   FIG. 3 is a diagram illustrating a state in which a connection 50 is already established between the terminal 1 and the terminal 2, a connection 51 is established between the terminal 2 and the terminal 3, and a connection 52 is established between the terminal 3 and the terminal 1. .

図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もアプリケーションデータをやり取りしている最中に実施される。   In FIG. 3, not only a full mesh connection is established among the terminal 1, the terminal 2, and the terminal 3, but also authentication is performed when each connection is established, and a common key (1-1) is already established between the terminal 1 and the terminal 2. -2), the common key (1-2-3) is shared between the terminal 2 and the terminal 3, and the common key (1-3-1) is shared between the terminal 3 and the terminal 1. It shall be. In the first embodiment, an example will be described in which the terminal 1 confirms whether a connection is normally established between the terminal 2 and the terminal 3. The process of the first embodiment described below is performed while the terminal 2 and the terminal 3 are also exchanging application data.

コネクション構築後、端末間のデータ通信に先立ち端末1では以下のような設定を内部で行う。ここでは端末1を例に説明を行う。   After the connection is established, the following settings are internally performed in the terminal 1 prior to data communication between the terminals. Here, the terminal 1 will be described as an example.

端末1において、制御モジュール10がデータベースモジュール11に、参加者リストを要求する。そして、その参加者リストから参加者数とその参加者の宛先を取得する。   In the terminal 1, the control module 10 requests the participant list from the database module 11. Then, the number of participants and the destination of the participant are acquired from the participant list.

全参加者数は3なので、自身を除いた端末2と端末3に対して、アプリケーションデータを送信するために、(2、2)の閾値でアプリケーションデータを秘密分散法により分散符号化するように、SSS分散符号化モジュール13に設定を行う。これにより、SSS分散符号化モジュール13はアプリケーションから受信するアプリケーションデータを毎回、(2、2)の閾値で分散符号化し、2個のシェアをメッセージ生成モジュール14に対して渡す制御内容に設定される。   Since the total number of participants is 3, in order to transmit the application data to the terminal 2 and the terminal 3 except for itself, the application data is distributedly encoded by the secret sharing method with the threshold of (2, 2). , The SSS distributed encoding module 13 is set. As a result, the SSS distributed encoding module 13 distributes and encodes application data received from the application each time with a threshold value of (2, 2), and is set to the control content that passes the two shares to the message generation module 14. .

次に、制御モジュール10はメッセージ送受信モジュール18がアプリケーションデータのシェアを含むメッセージを正しい宛先へ送信するために、既にデータベースモジュール11から取得している宛先情報を利用し、各シェアを端末2または端末3の宛先情報を含んだメッセージを生成するようにメッセージ生成モジュール14に依頼する。また、このとき、転送回数を1に設定するようにメッセージ生成モジュール14に依頼する。   Next, the control module 10 uses the destination information already acquired from the database module 11 so that the message transmission / reception module 18 transmits the message including the share of the application data to the correct destination, and each share is transferred to the terminal 2 or the terminal The message generation module 14 is requested to generate a message including the destination information 3. At this time, the message generation module 14 is requested to set the transfer count to 1.

メッセージ生成モジュール14は制御モジュール10からの依頼を受け、毎回SSS分散符号化モジュール13から受信する2つのシェアのうち、一方のシェアと端末2の宛先情報を含んだメッセージを生成するとともに、もう一方のシェアと端末3の宛先情報を含んだメッセージを生成する。つまり、第1の実施の形態ではアプリケーションデータ1つに対して、毎回2つのメッセージを生成することになる。   The message generation module 14 receives a request from the control module 10 and generates a message including one share of the two shares received from the SSS distributed encoding module 13 each time and the destination information of the terminal 2, and the other And a message including the destination information of the terminal 3 are generated. That is, in the first embodiment, two messages are generated for each piece of application data.

以上、各端末間でアプリケーションデータをやり取りするための前準備を説明してきたが、実際のデータのやり取りについては、図4以降で説明する。   The preparation for exchanging application data between the terminals has been described above. Actual data exchange will be described with reference to FIG.

図4は、端末1のあるアプリケーションデータAD1を(2、2)の閾値で分散符号化して得られた2つのシェア(1−1−2)、シェア(1−1−3)をそれぞれ、端末2と端末3に対して、端末1が送信する様子を示した図である(メッセージ100、101)。   FIG. 4 shows two shares (1-1-2) and shares (1-1-3) obtained by distributing and encoding application data AD1 of the terminal 1 with a threshold of (2, 2), respectively. 2 is a diagram illustrating a state in which the terminal 1 transmits to the terminal 2 and the terminal 3 (messages 100 and 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に設定する。   In the terminal 1, application data AD1 generated by the application 12 is distributed and encoded into two shares (1-1-2) and shares (1-1-3) through the SSS distributed encoding module 13. Then, the message generation module 14 generates a message 100 including the destination information and share (1-1-2) of the terminal 2, and a message 101 including the destination information and share (1-1-3) of the terminal 3. . The message generation module 14 sets the application data share transfer count to 1 when each message is generated.

2つのメッセージ100、101はメッセージ送受信モジュール18に渡され、メッセージ送受信モジュール18が各メッセージの宛先情報を見て、メッセージ100は端末2へ、メッセージ101は端末3に送信する。   The two messages 100 and 101 are passed to the message transmission / reception module 18, and the message transmission / reception module 18 sees the destination information of each message, and the message 100 is transmitted to the terminal 2 and the message 101 is transmitted to the terminal 3.

また、端末1のアプリケーションデータAD1はそのまま、データベースモジュール11に保存される。   Further, the application data AD1 of the terminal 1 is stored in the database module 11 as it is.

一方、端末2のメッセージ送受信モジュール18は端末1からメッセージ100を受信し、それをメッセージ処理モジュール17に渡す。メッセージ処理モジュール17はメッセージ100からシェア(1−1−2)と転送回数を取り出し、制御モジュール10にそれを渡す。   On the other hand, the message transmission / reception module 18 of the terminal 2 receives the message 100 from the terminal 1 and passes it to the message processing module 17. The message processing module 17 extracts the share (1-1-2) and the transfer count from the message 100 and passes them to the control module 10.

端末2の制御モジュール10はシェア(1−1−2)をデータベースモジュール11に保存する。また、転送回数を参照し、シェア(1−1−2)を転送するかどうかを決定する。ここでは1に設定されていたので、再度転送しなければならない。制御モジュール10は自端末とメッセージ100の発信元端末を除く全端末(つまり、端末3)に対して、シェア(1−1−2)を転送するために、メッセージ生成モジュール14に対してそれを渡す。また、転送回数を0にするように要求する。   The control module 10 of the terminal 2 stores the share (1-1-2) in the database module 11. Further, it is determined whether or not the share (1-1-2) is transferred with reference to the transfer count. Since it was set to 1 here, it must be transferred again. The control module 10 sends it to the message generation module 14 in order to transfer the share (1-1-2) to all terminals (that is, the terminal 3) except for the own terminal and the source terminal of the message 100. hand over. It also requests that the number of transfers be zero.

メッセージ生成モジュール14は転送回数を0に設定し、シェア(1−1−2)、端末3の宛先情報を含むメッセージ102を生成する。生成されたメッセージ102はメッセージ送受信モジュール18に渡され、端末3に対して送信される(図5のメッセージ102)。   The message generation module 14 sets the transfer count to 0, and generates the message 102 including the share (1-1-2) and the destination information of the terminal 3. The generated message 102 is transferred to the message transmission / reception module 18 and transmitted to the terminal 3 (message 102 in FIG. 5).

同様に端末3も同様にメッセージ101を処理し、転送回数が0に設定され、シェア(1−1−3)を含んだメッセージ103を端末2に対して送信する。   Similarly, the terminal 3 similarly processes the message 101, sets the transfer count to 0, and transmits the message 103 including the share (1-1-3) to the terminal 2.

図5は、端末2、端末3が端末1からそれぞれメッセージ100、101を受信した後にそれぞれのメッセージに含まれるシェア(1−1−2)、(1−1−3)を含んだ、メッセージ102、103を端末3、端末2に対し送信する様子を示した図である。   FIG. 5 shows message 102 including shares (1-1-2) and (1-1-3) included in each message after terminal 2 and terminal 3 receive messages 100 and 101 from terminal 1, respectively. , 103 are transmitted to terminal 3 and terminal 2.

端末2のメッセージ送受信モジュール18はメッセージ103を受信し、メッセージ100と同様にメッセージ処理モジュール17がメッセージから、転送回数とシェア(1−1−3)を取り出し、これらを制御モジュール10に渡す。制御モジュール10は転送回数が0に設定されているのを見て、シェアの転送を行わないと判断する。そして、取得したシェア(1−1−3)とデータベースモジュール11に保存されていたシェア(1−1−2)を利用して、もとのアプリケーションデータAD1を復元するために、制御モジュール10はSSS復号化モジュール16に対し、復号化を行うように依頼する。   The message transmission / reception module 18 of the terminal 2 receives the message 103, and the message processing module 17 extracts the number of transfers and the share (1-1-3) from the message in the same way as the message 100, and passes them to the control module 10. The control module 10 sees that the transfer count is set to 0, and determines not to transfer the share. The control module 10 uses the acquired share (1-1-3) and the share (1-1-2) stored in the database module 11 to restore the original application data AD1. The SSS decryption module 16 is requested to perform decryption.

SSS復号化モジュール16は2つのシェア(1−1−2)、(1−1−3)を利用して元のアプリケーションデータAD1を復元した後、アプリケーション12にそのアプリケーションデータAD1を渡す。また、端末1が端末2と端末3の間のコネクションが確立され、データ通信が正常に行われているかどうかを確認するために、端末1に必要となるデータを生成するために、そのアプリケーションデータAD1は制御モジュール10にも返される。   The SSS decryption module 16 restores the original application data AD1 using the two shares (1-1-2) and (1-1-3), and then passes the application data AD1 to the application 12. Further, in order to confirm whether the terminal 1 has established a connection between the terminal 2 and the terminal 3 and the data communication is normally performed, the application data is generated in order to generate data necessary for the terminal 1. AD1 is also returned to the control module 10.

端末2の制御モジュール10はアプリケーションデータAD1に含まれるIDを参照して、端末1のアプリケーションデータであると判断する。そして、端末1が端末2と端末3の間のデータ通信が正常に行われていることを確認できるようにするために、アプリケーションデータAD1を、端末1と共有している共通鍵(1−1−2)を利用して、共通鍵暗号方式暗号化・復号化モジュール19を利用して暗号化する。そして、得られた暗号化データ(1−2)を端末1に対して、送信するために、メッセージ生成モジュール14、メッセージ送受信モジュール18を利用して送信する(図6のメッセージ104)。   The control module 10 of the terminal 2 refers to the ID included in the application data AD1, and determines that it is application data of the terminal 1. Then, in order to enable the terminal 1 to confirm that data communication between the terminal 2 and the terminal 3 is normally performed, the application data AD1 is shared with the terminal 1 by the common key (1-1 -2), the common key encryption / decryption module 19 is used for encryption. Then, in order to transmit the obtained encrypted data (1-2) to the terminal 1, it is transmitted using the message generation module 14 and the message transmission / reception module 18 (message 104 in FIG. 6).

同様に端末3は端末2と同じ処理を行い、復元されたアプリケーションデータAD1を共通鍵(1−3−1)を利用して暗号化し、得られた暗号化データ(1−3)を端末1に対して送信する(図6のメッセージ105)。   Similarly, the terminal 3 performs the same processing as the terminal 2, encrypts the restored application data AD1 using the common key (1-3-1), and encrypts the obtained encrypted data (1-3) to the terminal 1 (Message 105 in FIG. 6).

図6は、端末2と端末3がそれぞれ暗号化データ(1−2)、(1−3)を含んだメッセージ104、105を端末1に送信する様子を示した図である。   FIG. 6 is a diagram illustrating a state in which the terminal 2 and the terminal 3 transmit the messages 104 and 105 including the encrypted data (1-2) and (1-3) to the terminal 1, respectively.

端末1は端末2からメッセージ104を受信すると、メッセージ送受信モジュール18およびメッセージ処理モジュール17を介して、暗号化データ(1−2)を得る。   When the terminal 1 receives the message 104 from the terminal 2, the terminal 1 obtains encrypted data (1-2) via the message transmission / reception module 18 and the message processing module 17.

端末1の制御モジュール10は暗号化データ(1−2)を、共通鍵(1−1−2)を利用し共通鍵暗号方式暗号化・復号化モジュールを介して、復号化を行い、アプリケーションデータAD1’を得る。   The control module 10 of the terminal 1 decrypts the encrypted data (1-2) using the common key (1-1-2) via the common key cryptosystem encryption / decryption module to obtain application data. Obtain AD1 ′.

アプリケーションデータAD1’とデータベースモジュール11に保存しているアプリケーションデータAD1とが等しいかどうかを、データ比較モジュール15を利用して比較する。比較結果が正常(AD1=AD1’)であれば、端末3から端末2への方向のデータ通信が正常であることが確認できる。   The data comparison module 15 is used to compare whether the application data AD1 'is equal to the application data AD1 stored in the database module 11. If the comparison result is normal (AD1 = AD1 '), it can be confirmed that the data communication in the direction from the terminal 3 to the terminal 2 is normal.

同様に、端末1は端末3からメッセージ105を受信し、同様の方法でアプリケーションデータAD1との比較を行う。比較結果が正常であれば、端末2から端末3への方向のデータ通信が正常であることを確認できる。   Similarly, the terminal 1 receives the message 105 from the terminal 3 and compares it with the application data AD1 in the same manner. If the comparison result is normal, it can be confirmed that the data communication in the direction from the terminal 2 to the terminal 3 is normal.

また、同様に端末2、端末3は端末1と同様の処理を行う。他の端末経由でアプリケーションデータを送信することで、端末2にとっては端末1と端末3間、端末3にとっては端末1と端末2間、においてコネクションが確立され、データ通信が正常に行われているかどうかを確実に確認することができる。   Similarly, the terminal 2 and the terminal 3 perform the same processing as the terminal 1. By transmitting application data via another terminal, is connection established between terminal 1 and terminal 3 for terminal 2 and between terminal 1 and terminal 2 for terminal 3 and data communication is normally performed? It is possible to confirm with certainty.

以上、発信元端末はアプリケーションデータを他の端末に直接送るのではなく、他の端末経由で送信するため、他の端末同士のコネクションが正常でなく、データ通信が正常でないと、他の端末は発信元端末が生成したアプリケーションデータの部分情報であるシェアをすべて手に入れることができず、結局、発信元端末が生成したアプリケーションデータと同じものを復元することもできない。そして、発信元端末に送り返される暗号化データを復号化したアプリケーションデータと、発信元端末が保存しているアプリケーションデータとが比較できない。よって、各端末が第1の実施の形態のように他の端末にアプリケーションデータを送信することで、最終的に発信元端末は、他の端末同士のコネクション、データ通信が正常であるかどうかを確実に確認することができる。   As described above, since the source terminal does not directly send application data to other terminals, but transmits the application data via other terminals, the connection between the other terminals is not normal and the data communication is not normal. It is not possible to obtain all shares that are partial information of application data generated by the transmission source terminal, and it is impossible to restore the same application data generated by the transmission source terminal. The application data obtained by decrypting the encrypted data sent back to the source terminal cannot be compared with the application data stored in the source terminal. Therefore, each terminal transmits application data to other terminals as in the first embodiment, so that the source terminal finally determines whether the connection and data communication between other terminals are normal. It can be confirmed reliably.

また、アプリケーションデータをそのまま発信元端末に送り返すのではなく、発信元端末とその他の端末間で一意に共有している共通鍵を利用して暗号化して送り返すことで、コミュニティに参加している端末からのメッセージであることを一意に認証することができる。   In addition, the application data is not sent back to the sender terminal as it is, but the terminal that participates in the community by encrypting and sending it back using a common key that is uniquely shared between the sender terminal and other terminals. The message can be uniquely authenticated.

また、アプリケーションデータを直接、他の端末に送信するのではなく、一度、部分情報(シェア)に分解して、他の端末を経由して、発信元端末を除く全端末にデータを送信するため、コミュニティに参加する端末以外の不正な端末によって、そのシェアが盗聴されたとしても、アプリケーションの部分情報であるため、元のアプリケーションデータを取得することができず、コミュニティ内のデータ通信に対しセキュリティレベルを向上させることが可能である。   In addition, application data is not sent directly to other terminals, but once it is broken down into partial information (shares) and sent to all terminals except the source terminal via other terminals. Even if the share is eavesdropped by an unauthorized terminal other than the terminal participating in the community, it is partial information of the application, so the original application data cannot be obtained, and security against data communication within the community It is possible to improve the level.

なお、このように、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法を、コンピュータにより動作する端末に実行させるコンピュータプログラムは、上記した記録媒体に格納したり、通信網を介して伝送させることができる。[第2の実施の形態]
図7は、図1で示された端末1、端末2、端末3、それぞれが有する共通の機能モジュールの構成を示した図である。
As described above, a computer program for causing a terminal operated by a computer to execute a method for reliably confirming connection connections between all other terminals in a full mesh network is stored in the recording medium described above. It can be transmitted via a communication network. [Second Embodiment]
FIG. 7 is a diagram illustrating the configuration of the common functional modules included in each of the terminal 1, the terminal 2, and the terminal 3 illustrated in FIG.

制御モジュール30は、データベースモジュール31、SSS分散符号化モジュール33、メッセージ生成モジュール34、データ比較モジュール35、SSS復号化モジュール36、メッセージ処理モジュール37、共通鍵暗号方式暗号化・復号化モジュール39、ハッシュモジュール42とのインタフェースを有する。   The control module 30 includes a database module 31, an SSS distributed encoding module 33, a message generation module 34, a data comparison module 35, an SSS decryption module 36, a message processing module 37, a common key cryptosystem encryption / decryption module 39, a hash It has an interface with the module 42.

制御モジュール30はデータベースモジュール31に対し、コミュニティに参加している参加者リスト、アプリケーションデータのハッシュ値、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェア、の保存・取得要求を行う。   The control module 30 stores, in the database module 31, a list of participants participating in the community, a hash value of application data, a common key shared among the participants, and a share in which application data is distributedly encoded. -Request acquisition.

制御モジュール30はSSS分散符号化モジュール33に対し、SSS分散符号化モジュール33がアプリケーション32から受信するアプリケーションデータを、指定した閾値でSSSにより分散符号化を行うように依頼する。   The control module 30 requests the SSS distributed encoding module 33 to perform application encoding received by the SSS distributed encoding module 33 from the application 32 using SSS with the specified threshold.

制御モジュール30はメッセージ生成モジュール34に対し、SSS分散符号化モジュールから受信するアプリケーションのシェアを要求する宛先に対して送信するようにメッセージ生成時に設定するように依頼する。   The control module 30 requests the message generation module 34 to make a setting at the time of message generation to transmit to the destination that requests the share of the application received from the SSS distributed coding module.

また、制御モジュール30はメッセージ生成モジュール34に対し、SSS分散符号化モジュールまたは制御モジュール30から受信するアプリケーションのシェア、指定した転送回数、要求する宛先情報を含んだメッセージを生成するように依頼する。   Further, the control module 30 requests the message generation module 34 to generate a message including the share of the application received from the SSS distributed encoding module or the control module 30, the designated number of transfers, and the requested destination information.

また、制御モジュール30はメッセージ生成モジュール34に対し、共通鍵により暗号化されたアプリケーションデータのハッシュ値、指定した宛先情報を含んだメッセージを生成するように依頼する。   The control module 30 requests the message generation module 34 to generate a message including the hash value of the application data encrypted with the common key and the specified destination information.

また、制御モジュール30はデータ比較モジュール35に対し、アプリケーション32が以前にハッシュモジュール42を利用して生成しデータベースモジュール31に保存しているハッシュ値と、他の端末から受信するハッシュ値とを比較するように依頼する。   In addition, the control module 30 compares the hash value previously generated by the application 32 using the hash module 42 and stored in the database module 31 with the hash value received from another terminal. Ask to do.

また、制御モジュール30はSSS復号化モジュール36に対し、取得したアプリケーションデータの複数のシェアから元のアプリケーションデータを復元するように依頼する。   In addition, the control module 30 requests the SSS decryption module 36 to restore the original application data from a plurality of shares of the acquired application data.

また、制御モジュール30はメッセージ処理モジュール37から、他の端末から受信されたメッセージから取り出されたシェア、転送回数、共通鍵により暗号化されたハッシュ値、を受信する。   Further, the control module 30 receives from the message processing module 37 the share extracted from the message received from another terminal, the number of transfers, and the hash value encrypted with the common key.

また、制御モジュール30は共通鍵暗号方式暗号化・復号化モジュール39に対し、共通鍵により任意のデータを、暗号化、または復号化するように依頼する。   Further, the control module 30 requests the common key encryption / decryption module 39 to encrypt or decrypt arbitrary data using the common key.

また、制御モジュール30はハッシュモジュール42に対し、アプリケーションデータをハッシュ値に変換するように依頼する。   The control module 30 requests the hash module 42 to convert the application data into a hash value.

データベースモジュール31は制御モジュール30、ハッシュモジュール42、とのインタフェースを有する。データベースモジュール31は、各端末間で共有する共通鍵、参加者のリスト(主に宛先情報が含まれる)、各端末から受信するアプリケーションデータが分散符号化されたシェア、アプリケーションデータのハッシュ値を管理する。   The database module 31 has an interface with the control module 30 and the hash module 42. The database module 31 manages a common key shared among terminals, a list of participants (mainly including destination information), a share obtained by distributing and encoding application data received from each terminal, and a hash value of application data To do.

アプリケーション32は例えば、音声データを入出力する音声アプリケーションなど、データを入出力する任意のアプリケーションである。ただし、これらのアプリケーションデータはどの端末が生成したものかを識別するためのIDを含む。   The application 32 is an arbitrary application that inputs and outputs data, such as an audio application that inputs and outputs audio data. However, these application data include an ID for identifying which terminal has generated the application data.

アプリケーション32はSSS分散符号化モジュール33、ハッシュモジュール42、とのインタフェースを有する。   The application 32 has an interface with the SSS distributed encoding module 33 and the hash module 42.

アプリケーション32はSSS分散符号化モジュール33に対し、毎回出力するアプリケーションデータを制御モジュール30によって、SSS分散符号化モジュール33にあらかじめ設定された閾値で、分散符号化してもらう。   The application 32 causes the SSS distributed encoding module 33 to perform distributed encoding of the application data to be output every time with the threshold set in the SSS distributed encoding module 33 by the control module 30.

アプリケーション32はハッシュモジュール42に対し、毎回出力するアプリケーションデータをハッシュ値に変換し、データベースモジュール31に保存してもらう。   The application 32 causes the hash module 42 to convert the application data to be output each time into a hash value and store it in the database module 31.

SSS分散符号化モジュール33は、制御モジュール30、アプリケーション32、メッセージ生成モジュール34、とのインタフェースを有する。   The SSS distributed encoding module 33 has an interface with the control module 30, the application 32, and the message generation module 34.

SSS分散符号化モジュール33は、制御モジュール30から指定された((コミュニティの全端末数−1)、(コミュニティの全端末数−1))の閾値で、アプリケーション32から受信するデータを分散符号化し、得られた(コミュニティの全端末数−1)個のシェアをメッセージ生成モジュール34に対し渡すように依頼される。   The SSS distributed encoding module 33 performs distributed encoding on the data received from the application 32 with the thresholds ((total number of terminals in community-1), (total number of terminals in community-1)) specified by the control module 30. The message generation module 34 is requested to pass the obtained shares (the total number of terminals in the community minus 1).

メッセージ生成モジュール34は、制御モジュール30、SSS分散符号化モジュール33、メッセージ送受信モジュール38、とのインタフェースを有する。   The message generation module 34 has an interface with the control module 30, the SSS distributed encoding module 33, and the message transmission / reception module 38.

メッセージ生成モジュール34は制御モジュール30から、自端末を除くコミュニティに参加する全端末の宛先情報を受信し、SSS分散符号化モジュール33から受信する(コミュニティの全端末数−1)個のシェアにそれぞれ、他の端末の宛先情報と指定された転送回数を付与してメッセージを生成するように依頼される。これにより、(コミュニティの全端末数−1)個のメッセージを生成することになる。   The message generation module 34 receives, from the control module 30, destination information of all terminals participating in the community excluding its own terminal, and receives from the SSS distributed coding module 33 (total number of terminals in community-1) shares. Then, it is requested to generate a message by giving destination information of another terminal and the designated transfer count. As a result, (total number of terminals in community-1) messages are generated.

また、メッセージ生成モジュール34は、SSS分散符号化モジュール33からシェアを受信する場合、メッセージ生成時には転送回数を1に設定する。一方、制御モジュール30から直接シェアが渡された場合は、転送回数を0に設定して、要求された宛先情報を付与してメッセージを生成する。   Further, when the message generation module 34 receives a share from the SSS distributed encoding module 33, the message generation module 34 sets the number of transfers to 1 at the time of message generation. On the other hand, when the share is directly passed from the control module 30, the number of transfers is set to 0, the requested destination information is added, and a message is generated.

また、メッセージ生成モジュール34は制御モジュール30から、共通鍵で暗号化されたアプリケーションデータのハッシュ値を、指定された宛先情報を付与してメッセージを生成するように依頼される。   Further, the message generation module 34 is requested by the control module 30 to generate a message by giving the hash value of the application data encrypted with the common key and the specified destination information.

データ比較モジュール35は、制御モジュール30、とのインタフェースを有する。   The data comparison module 35 has an interface with the control module 30.

データ比較モジュール35は制御モジュール30から、アプリケーション32がハッシュモジュール42を利用して生成しデータベースモジュール31に保存しているハッシュ値と、他の端末から受信するハッシュ値とを比較するように依頼される。   The data comparison module 35 is requested by the control module 30 to compare the hash value generated by the application 32 using the hash module 42 and stored in the database module 31 with the hash value received from another terminal. The

SSS復号化モジュール36は、制御モジュール30、アプリケーション32、とのインタフェースを有する。   The SSS decryption module 36 has an interface with the control module 30 and the application 32.

SSS復号化モジュール36は制御モジュール30から、SSSを利用し、複数のシェアから一つのアプリケーションデータを復元するように依頼される。   The SSS decryption module 36 is requested by the control module 30 to restore one application data from a plurality of shares using the SSS.

また、SSS復号化モジュール36はアプリケーション32に対し、復元したアプリケーションデータを渡す。   The SSS decryption module 36 passes the restored application data to the application 32.

メッセージ処理モジュール37は、制御モジュール30、メッセージ送受信モジュール38、とのインタフェースを有する。   The message processing module 37 has an interface with the control module 30 and the message transmission / reception module 38.

メッセージ処理モジュール37は制御モジュール30に対し、メッセージ送受信モジュール38が他の端末から受信したメッセージからアプリケーションデータのシェア、転送回数、共通鍵により暗号化されたハッシュ値、を取り出し渡す。   The message processing module 37 extracts the application data share, the number of transfers, and the hash value encrypted with the common key from the message received by the message transmission / reception module 38 from another terminal to the control module 30.

メッセージ送受信モジュール38は、メッセージ生成モジュール34、メッセージ処理モジュール37、とのインタフェースを有するだけでなく、外部の端末と直接ネットワークで結ばれている。   The message transmission / reception module 38 not only has an interface with the message generation module 34 and the message processing module 37, but is directly connected to an external terminal via a network.

メッセージ送受信モジュール38はメッセージ生成モジュール34から渡されたメッセージをそのメッセージの宛先情報を参考にして、他の端末に送信する。   The message transmission / reception module 38 transmits the message passed from the message generation module 34 to other terminals with reference to the destination information of the message.

また、メッセージ送受信モジュール38は、受信したメッセージをメッセージ処理モジュール37に渡す。   The message transmission / reception module 38 passes the received message to the message processing module 37.

共通鍵暗号方式暗号化・復号化モジュール39は、制御モジュール30、とのインタフェースを有する。   The common key encryption / decryption module 39 has an interface with the control module 30.

共通鍵暗号方式暗号化・復号化モジュール39は制御モジュール30から、共通鍵を渡されるとともに、その鍵を利用した暗号化、または復号化を要求される。   The common key encryption / decryption module 39 receives a common key from the control module 30 and is requested to perform encryption or decryption using the key.

ハッシュモジュール42は、制御モジュール30、データベースモジュール31、アプリケーション32、とのインタフェースを持つ。   The hash module 42 has an interface with the control module 30, the database module 31, and the application 32.

ハッシュモジュール42は制御モジュール30から、アプリケーションデータをハッシュ値に変換するように依頼される。   The hash module 42 is requested by the control module 30 to convert the application data into a hash value.

また、ハッシュモジュール42は、アプリケーション32から受信するアプリケーションデータをハッシュ値に変換し、データベースモジュール31に保存する。   Further, the hash module 42 converts application data received from the application 32 into a hash value and stores it in the database module 31.

なお、これらの機能を有する端末はコンピュータで実現することもでき、そのコンピュータをこの端末として機能させるコンピュータプログラムは、例えば、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に格納したり、インターネットなどの通信網を介して伝送させて、広く流通させることができる。   A terminal having these functions can also be realized by a computer, and a computer program that causes the computer to function as this terminal can be read by a computer such as a semiconductor memory, a magnetic disk, an optical disk, a magneto-optical disk, and a magnetic tape. It can be stored in a simple recording medium or transmitted through a communication network such as the Internet and widely distributed.

端末40、41は図1に示される端末1から端末3の2つを示している。   Terminals 40 and 41 represent two terminals 1 to 3 shown in FIG.

図8は、既に端末1と端末2の間でコネクション60が、端末2と端末3の間でコネクション61が、端末3と端末1の間でコネクション62が構築されている状態を示す図である。   FIG. 8 is a diagram illustrating a state in which a connection 60 is already established between the terminal 1 and the terminal 2, a connection 61 is established between the terminal 2 and the terminal 3, and a connection 62 is established between the terminal 3 and the terminal 1. .

図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もアプリケーションデータをやり取りしている最中に実施される。   In FIG. 8, not only a full mesh connection is established among the terminal 1, the terminal 2, and the terminal 3, but also authentication is performed when the connection is established, and a common key (2-1) has already been established between the terminal 1 and the terminal 2. -2), the common key (2-2-3) is shared between the terminal 2 and the terminal 3, and the common key (2-3-1) is shared between the terminal 3 and the terminal 1. It shall be. In the second embodiment, an example in which the terminal 1 confirms whether or not the connection is normally established between the terminal 2 and the terminal 3 will be described. The process of the second embodiment described below is performed while the terminal 2 and the terminal 3 are also exchanging application data.

コネクション構築後、端末間のデータ通信に先立ち端末1では以下のような設定を内部で行う。ここでは端末1を例に説明を行う。   After the connection is established, the following settings are internally performed in the terminal 1 prior to data communication between the terminals. Here, the terminal 1 will be described as an example.

端末1において、制御モジュール30がデータベースモジュール31に、参加者リストを要求する。そして、その参加者リストから参加者数とその参加者の宛先を取得する。   In the terminal 1, the control module 30 requests the participant list from the database module 31. Then, the number of participants and the destination of the participant are acquired from the participant list.

全参加者数は3なので、自身を除いた端末2と端末3に対して、アプリケーションデータを送信するために、(2、2)の閾値でアプリケーションデータを秘密分散法により分散符号化するように、SSS分散符号化モジュール33に設定を行う。これにより、SSS分散符号化モジュール33はアプリケーション32から受信するアプリケーションデータを毎回、(2、2)の閾値で分散符号化し、2個のシェアをメッセージ生成モジュール34に対して渡す制御内容に設定される。   Since the total number of participants is 3, in order to transmit the application data to the terminal 2 and the terminal 3 except for itself, the application data is distributedly encoded by the secret sharing method with the threshold of (2, 2). The SSS distributed encoding module 33 is set. As a result, the SSS distributed encoding module 33 distributes and encodes the application data received from the application 32 with the threshold value (2, 2) each time, and is set to the control content that passes the two shares to the message generation module 34. The

次に、制御モジュール30はメッセージ送受信モジュール38がアプリケーションデータのシェアを含むメッセージを正しい宛先へ送信するために、既にデータベースモジュール31から取得している宛先情報を利用し、各シェアと端末2または端末3の宛先情報を含んだメッセージを生成するようにメッセージ生成モジュール34に依頼する。また、このとき、転送回数を1に設定するようにメッセージ生成モジュール34に依頼する。   Next, the control module 30 uses the destination information already acquired from the database module 31 so that the message transmission / reception module 38 transmits the message including the share of the application data to the correct destination. The message generation module 34 is requested to generate a message including the destination information 3. At this time, the message generation module 34 is requested to set the transfer count to 1.

メッセージ生成モジュール34は制御モジュール30からの依頼を受け、毎回SSS分散符号化モジュール33から受信する2つのシェアのうち、一方のシェアと端末2の宛先情報を含んだメッセージを生成するとともに、もう一方のシェアと端末3の宛先情報を含んだメッセージを生成する。つまり、第2の実施の形態ではアプリケーションデータ1つに対して、毎回2つのメッセージを生成することになる。   The message generation module 34 receives a request from the control module 30 and generates a message including one share of the two shares received from the SSS distributed encoding module 33 each time and the destination information of the terminal 2, and the other And a message including the destination information of the terminal 3 are generated. That is, in the second embodiment, two messages are generated each time for one application data.

以上、各端末間でアプリケーションデータをやり取りするための前準備を説明してきたが、実際のデータのやり取りについては、図9以降で説明する。   The preparation for exchanging application data between the terminals has been described above. Actual data exchange will be described with reference to FIG.

図9は端末1のあるアプリケーションデータAD1を(2、2)の閾値で分散符号化して得られた2つのシェア(2−1−2)、シェア(2−1−3)をそれぞれ、端末2と端末3に対して、端末1が送信する様子を示した図である(メッセージ200、201)。   FIG. 9 shows two shares (2-1-2) and shares (2-1-3) obtained by distributedly encoding application data AD1 of the terminal 1 with a threshold of (2, 2). It is the figure which showed a mode that the terminal 1 transmitted with respect to the terminal 3 (message 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に設定する。   In the terminal 1, application data AD1 generated by the application 32 is distributed and encoded into two shares (2-1-2) and shares (2-1-3) through the SSS distributed encoding module 33. Then, the message generation module 34 generates the message 200 including the destination information and share (2-1-2) of the terminal 2, and the message 201 including the destination information and share (2-1-3) of the terminal 3. . The message generation module 34 sets the application data share transfer count to 1 when each message is generated.

2つのメッセージ200、201はメッセージ送受信モジュール38に渡され、メッセージ送受信モジュール38が各メッセージの宛先情報を見て、メッセージ200は端末2へ、メッセージ201は端末3に送信する。   The two messages 200 and 201 are transferred to the message transmission / reception module 38. The message transmission / reception module 38 looks at the destination information of each message, and the message 200 is transmitted to the terminal 2 and the message 201 is transmitted to the terminal 3.

また、端末1のアプリケーションデータAD1はハッシュモジュール42を介して、ハッシュ値HD1として変換され、データベースモジュール31に保存される。   The application data AD1 of the terminal 1 is converted as a hash value HD1 via the hash module 42 and stored in the database module 31.

一方、端末2のメッセージ送受信モジュール38は端末1からメッセージ200を受信し、それをメッセージ処理モジュール37に渡す。メッセージ処理モジュール37はメッセージ200からシェア(2−1−2)と転送回数を取り出し、制御モジュール30にそれを渡す。   On the other hand, the message transmission / reception module 38 of the terminal 2 receives the message 200 from the terminal 1 and passes it to the message processing module 37. The message processing module 37 extracts the share (2-1-2) and the transfer count from the message 200 and passes them to the control module 30.

端末2の制御モジュール30はシェア(2−1−2)をデータベースモジュール31に保存する。また、転送回数を参照し、シェア(2−1−2)を転送するかどうかを決定する。ここでは1に設定されていたので、再度転送しなければならない。制御モジュール30は自端末とメッセージ200の発信元端末を除く全端末(つまり、端末3)に対して、シェア(2−1−2)を転送するために、メッセージ生成モジュール34に対してそれを渡す。また、転送回数を0にするように要求する。   The control module 30 of the terminal 2 stores the share (2-1-2) in the database module 31. In addition, referring to the number of transfers, it is determined whether to transfer the share (2-1-2). Since it was set to 1 here, it must be transferred again. The control module 30 sends it to the message generation module 34 in order to transfer the share (2-1-2) to all terminals (that is, the terminal 3) except for the own terminal and the source terminal of the message 200. hand over. It also requests that the number of transfers be zero.

メッセージ生成モジュール34は転送回数を0に設定し、シェア(2−1−2)、端末3の宛先情報を含むメッセージ202を生成する。生成されたメッセージ202はメッセージ送受信モジュール38に渡され、端末3に対して送信される(図10のメッセージ202)。   The message generation module 34 sets the transfer count to 0, and generates the message 202 including the share (2-1-2) and the destination information of the terminal 3. The generated message 202 is transferred to the message transmission / reception module 38 and transmitted to the terminal 3 (message 202 in FIG. 10).

同様に端末3も同様にメッセージ201を処理し、転送回数が0に設定され、シェア(2−1−3)を含んだメッセージ203を端末2に対して送信する。   Similarly, the terminal 3 similarly processes the message 201, sets the number of transfers to 0, and transmits the message 203 including the share (2-1-3) to the terminal 2.

図10は、端末2、端末3が端末1からそれぞれメッセージ200、201を受信した後にそれぞれのメッセージに含まれるシェア(2−1−2)、(2−1−3)を含んだ、メッセージ202、203を端末3、端末2に対し送信する様子を示した図である。   FIG. 10 shows a message 202 including shares (2-1-2) and (2-1-3) included in the respective messages after the terminals 2 and 3 receive the messages 200 and 201 from the terminal 1, respectively. , 203 is transmitted to terminal 3 and terminal 2.

端末2のメッセージ送受信モジュール38はメッセージ203を受信し、メッセージ200と同様にメッセージ処理モジュール37がメッセージから、転送回数とシェア(2−1−3)を取り出し、これらを制御モジュール30に渡す。制御モジュール30は転送回数が0に設定されているのを見て、シェアの転送を行わないと判断する。そして、取得したシェア(2−1−3)とデータベースモジュール31に保存されていたシェア(2−1−2)を利用して、もとのアプリケーションデータAD1を復元するために、制御モジュール30はSSS復号化モジュール36に対し、復号化を行うように依頼する。   The message transmission / reception module 38 of the terminal 2 receives the message 203, and the message processing module 37 extracts the number of transfers and the share (2-1-3) from the message in the same manner as the message 200, and passes them to the control module 30. The control module 30 sees that the number of transfers is set to 0, and determines not to transfer the share. The control module 30 uses the acquired share (2-1-3) and the share (2-1-2) stored in the database module 31 to restore the original application data AD1. The SSS decryption module 36 is requested to perform decryption.

SSS復号化モジュール36は2つのシェア(2−1−2)、(2−1−3)を利用して元のアプリケーションデータAD1を復元した後、アプリケーション32にそのアプリケーションデータAD1を渡す。また、端末1が端末2と端末3の間のコネクションが確立され、データ通信が正常に行われているかどうかを確認するために、端末1に必要となるデータを生成するために、そのアプリケーションデータAD1は制御モジュール30にも返される。   The SSS decryption module 36 restores the original application data AD1 using the two shares (2-1-2) and (2-1-3), and then passes the application data AD1 to the application 32. Further, in order to confirm whether the terminal 1 has established a connection between the terminal 2 and the terminal 3 and the data communication is normally performed, the application data is generated in order to generate data necessary for the terminal 1. AD1 is also returned to the control module 30.

端末2の制御モジュール30はアプリケーションデータAD1に含まれるIDを参照して、端末1のアプリケーションデータであると判断する。そして、端末1が端末2と端末3の間のデータ通信が正常に行われていることを確認できるようにするために、ハッシュモジュール42を利用して、アプリケーションデータAD1のハッシュ値を求めた後、そのハッシュ値を、端末1と共有している共通鍵(2−1−2)を利用して、共通鍵暗号方式暗号化・復号化モジュール39が暗号化する。そして、得られた暗号化ハッシュ値(2−2)を端末1に対して、送信するために、メッセージ生成モジュール34、メッセージ送受信モジュール38を利用して送信する(図11のメッセージ204)。   The control module 30 of the terminal 2 refers to the ID included in the application data AD1, and determines that it is application data of the terminal 1. After the terminal 1 obtains the hash value of the application data AD1 using the hash module 42 so that the terminal 1 can confirm that the data communication between the terminal 2 and the terminal 3 is normally performed. The hash value is encrypted by the common key cryptosystem encryption / decryption module 39 using the common key (2-1-2) shared with the terminal 1. Then, in order to transmit the obtained encrypted hash value (2-2) to the terminal 1, it is transmitted using the message generation module 34 and the message transmission / reception module 38 (message 204 in FIG. 11).

同様に端末3は端末2と同じ処理を行い、復元されたアプリケーションデータAD1のハッシュ値を共通鍵(2−3−1)により暗号化し、得られた暗号化ハッシュ値(2−3)を端末1に対して送信する(図11のメッセージ205)。   Similarly, the terminal 3 performs the same process as the terminal 2, encrypts the hash value of the restored application data AD1 with the common key (2-3-1), and uses the obtained encrypted hash value (2-3) as the terminal. 1 (message 205 in FIG. 11).

図11は、端末2と端末3がそれぞれ暗号化ハッシュ値(2−2)、(2−3)を含んだメッセージ204、205を端末1に送信する様子を示した図である。   FIG. 11 is a diagram illustrating a state in which the terminal 2 and the terminal 3 transmit messages 204 and 205 including the encrypted hash values (2-2) and (2-3) to the terminal 1, respectively.

端末1は端末2からメッセージ204を受信すると、メッセージ送受信モジュール38およびメッセージ処理モジュール37を介して、暗号化ハッシュ値(2−2)を得る。   When the terminal 1 receives the message 204 from the terminal 2, the terminal 1 obtains an encrypted hash value (2-2) via the message transmission / reception module 38 and the message processing module 37.

端末1の制御モジュール30は暗号化ハッシュ値(2−2)を、共通鍵(2−1−2)を利用し共通鍵暗号方式暗号化・復号化モジュール39を介して、復号化を行い、ハッシュ値HD1’を得る。   The control module 30 of the terminal 1 decrypts the encrypted hash value (2-2) using the common key (2-1-2) through the common key encryption / decryption module 39, A hash value HD1 ′ is obtained.

ハッシュ値HD1’とデータベースモジュール31に保存しているハッシュ値HD1とが等しいかどうかを、データ比較モジュール35を利用して比較する。比較結果が正常(HD1=HD1’)であれば、端末3から端末2への方向のデータ通信が正常であることが確認できる。   It is compared using the data comparison module 35 whether or not the hash value HD1 'and the hash value HD1 stored in the database module 31 are equal. If the comparison result is normal (HD1 = HD1 ′), it can be confirmed that the data communication in the direction from the terminal 3 to the terminal 2 is normal.

同様に、端末1は端末3からメッセージ205を受信し、同様の方法でデータ1との比較を行う。比較結果が正常であれば、端末2から端末3への方向のデータ通信が正常であることを確認できる。   Similarly, the terminal 1 receives the message 205 from the terminal 3 and compares it with the data 1 in the same manner. If the comparison result is normal, it can be confirmed that the data communication in the direction from the terminal 2 to the terminal 3 is normal.

また、同様に端末2、端末3は端末1と同様の処理を行う。他の端末経由でアプリケーションデータを送信することで、端末2にとっては端末1と端末3間、端末3にとっては端末1と端末2間、においてコネクションが確立され、データ通信が正常に行われているかどうかを確実に確認することができる。   Similarly, the terminal 2 and the terminal 3 perform the same processing as the terminal 1. By transmitting application data via another terminal, is connection established between terminal 1 and terminal 3 for terminal 2 and between terminal 1 and terminal 2 for terminal 3 and data communication is normally performed? It is possible to confirm with certainty.

以上、発信元端末はアプリケーションデータを直接送るのではなく、他の端末経由で送信するため、他の端末同士のコネクションが正常でなく、データ通信が正常でないと、他の端末は発信元端末が生成したアプリケーションデータと同じものを復元することもできない。そして、発信元端末に送り返される暗号化データを復号化して得られたアプリケーションデータのハッシュ値と、発信元端末が保存しているアプリケーションデータのハッシュ値とを比較できない。よって、各端末が第2の実施の形態のように他の端末にアプリケーションデータのハッシュ値を送信することで、最終的に発信元端末は、他の端末同士のコネクション、データ通信が正常であるかどうかを確実に確認することができる。   As described above, since the source terminal does not send application data directly, but transmits it via another terminal, the connection between the other terminals is not normal and the data communication is not normal. It is also impossible to restore the same application data as generated. The hash value of the application data obtained by decrypting the encrypted data sent back to the source terminal cannot be compared with the hash value of the application data stored in the source terminal. Therefore, each terminal transmits the hash value of the application data to other terminals as in the second embodiment, so that the source terminal finally has a normal connection and data communication between the other terminals. You can be sure whether or not.

また、アプリケーションデータをそのまま発信元端末に送り返すのではなく、発信元端末とその他の端末間で一意に共有している共通鍵を利用して暗号化して送り返すことで、コミュニティに参加している端末からのメッセージであることを一意に認証することができる。   In addition, the application data is not sent back to the sender terminal as it is, but the terminal that participates in the community by encrypting and sending it back using a common key that is uniquely shared between the sender terminal and other terminals. The message can be uniquely authenticated.

また、アプリケーションデータを直接、他の端末に送信するのではなく、一度、部分情報(シェア)に分解して、他の端末を経由して、発信元端末を除く全端末にデータを送信するために、コミュニティに参加する端末以外の不正な端末によって、そのシェアが盗聴されたとしても、アプリケーションの部分情報であるため、元のアプリケーションデータを取得することができず、コミュニティ内のデータ通信に対しセキュリティレベルを向上させることが可能である。   In addition, application data is not sent directly to other terminals, but once it is broken down into partial information (shares) and sent to all terminals except the source terminal via other terminals. In addition, even if the share is eavesdropped by an unauthorized terminal other than the terminal participating in the community, the original application data cannot be obtained because it is partial information of the application. It is possible to improve the security level.

また、他の端末がアプリケーションデータを送り返すときに、アプリケーションデータを含んだメッセージをそのまま共通鍵を利用して、暗号化するのではなく、アプリケーションデータのハッシュ値を求めてから、そのハッシュ値を含んだメッセージを共通鍵で暗号化するため、発信元端末に送り返すためのデータ量を小さくすることができ、データ通信に必要となる帯域を抑制することができる。   In addition, when other terminals send back application data, a message including application data is not encrypted as it is using a common key, but a hash value of application data is obtained and the hash value is included. Since the message is encrypted with the common key, the amount of data sent back to the source terminal can be reduced, and the bandwidth required for data communication can be suppressed.

また、発信元端末はアプリケーションデータをハッシュ値としてデータベースモジュールに保存しておくため、各端末のデータ保存に必要な容量を抑えることができる。   In addition, since the source terminal stores application data as a hash value in the database module, the capacity required for storing data in each terminal can be reduced.

また、このように、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法を、コンピュータにより動作する端末に実行させるコンピュータプログラムは、上記した記録媒体に格納したり、通信網を介して伝送させることができる。   Further, in this way, a computer program that causes a terminal operating by a computer to execute a method for surely confirming connection connections between all other terminals in a full mesh network is stored in the recording medium described above, It can be transmitted via a communication network.

本発明の実施の形態に係るネットワークの構成を示す図である。It is a figure which shows the structure of the network which concerns on embodiment of this invention. 図1に示された端末1から端末3における内部のモジュール構成の例を示す図であり、第1の実施の形態に係る図である。It is a figure which shows the example of the internal module structure in the terminal 1 to the terminal 3 shown by FIG. 1, and is a figure which concerns on 1st Embodiment. 端末1、端末2、端末3の間で1対1にコネクション確立されている状態を示す図であり、第1の実施の形態に係る図である。It is a figure which shows the state by which the connection is established between the terminal 1, the terminal 2, and the terminal 3 on the one-to-one basis, and is a figure which concerns on 1st Embodiment. 図3において、端末1が端末2、端末3に対してメッセージを送信する様子を示す図である。3 is a diagram illustrating a state in which the terminal 1 transmits a message to the terminals 2 and 3 in FIG. 図3において、端末2と端末3がそれぞれお互いにメッセージを送信する様子を示す図である。In FIG. 3, it is a figure which shows a mode that the terminal 2 and the terminal 3 each transmit a message to each other. 図3において、端末2と端末3が端末1に対してメッセージを送信する様子を示す図である。3 is a diagram illustrating a state in which the terminal 2 and the terminal 3 transmit a message to the terminal 1 in FIG. 図1に示された端末1から端末3における内部のモジュール構成の例を示す図であり、第2の実施の形態に係る図である。It is a figure which shows the example of the internal module structure in the terminal 1-the terminal 3 shown by FIG. 1, and is a figure which concerns on 2nd Embodiment. 端末1、端末2、端末3の間で1対1にコネクション確立されている状態を示す図であり、第2の実施の形態に係る図である。It is a figure which shows the state by which the connection is established between the terminal 1, the terminal 2, and the terminal 3 on the one-to-one basis, and is a figure which concerns on 2nd Embodiment. 図8において、端末1が端末2、端末3に対してメッセージを送信する様子を示す図である。In FIG. 8, it is a figure which shows a mode that the terminal 1 transmits a message with respect to the terminal 2 and the terminal 3. FIG. 図8において、端末2と端末3がそれぞれお互いにメッセージを送信する様子を示す図である。In FIG. 8, terminal 2 and terminal 3 are each a figure which shows a mode that a message transmits each other. 図8において、端末2と端末3が端末1に対してメッセージを送信する様子を示す図である。FIG. 8 is a diagram illustrating a state in which the terminal 2 and the terminal 3 transmit a message to the terminal 1 in FIG.

符号の説明Explanation of symbols

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・・・ネットワーク
1, 2, 3, 20, 21, 40, 41... Terminal (communication terminal)
10, 30 ... Control module 11, 31 ... Database module 12, 32 ... Application 13, 33 ... SSS distributed coding module 14, 34 ... Message generation module 15, 35 ... Data Comparison module 16, 36 ... SSS decryption module 17, 37 ... Message processing module 18, 38 ... Message transmission / reception module 19, 39 ... Common key encryption / decryption module 42 ... Hash module 50, 51, 52, 60, 61, 62 ... connection 100, 101, 102, 103, 104, 105, 200, 201, 202, 203, 204, 205 ... message 1000 ... network

Claims (10)

ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、
アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、
共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、
(k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、
アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、
アプリケーションから直接渡されるアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、
2つのアプリケーションデータを比較し、一致するかどうかを判断するデータ比較モジュールと、
他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたアプリケーションデータを含むメッセージを生成する手段、を有するメッセージ生成モジュールと、
他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたアプリケーションデータ、を取り出す手段を有するメッセージ処理モジュールと、
メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、
データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータ、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェア、の保存・取得要求を行う手段と、
SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、
メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、
SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、
データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、
メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたアプリケーションデータ、を受信する手段と、
共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵を利用して、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末。
By establishing a full mesh connection with multiple external terminals connected to the network, a temporary community is formed, and authentication control is performed at the time of establishing a connection. A terminal sharing a key,
An application that generates application data and processes application data received from an external terminal;
A common key encryption / decryption module that encrypts / decrypts arbitrary data using a common key;
An SSS (Secret Sharing Schemes) distributed encoding module that performs distributed encoding of application data with a threshold (1 ≦ k ≦ n) of (k, n) and generates n shares that are partial information of the application data;
An SSS decoding module that restores original application data from a plurality of shares in which application data is distributed and encoded;
A terminal list that includes application data passed directly from the application, application data received from other terminals, a common key that is uniquely shared with other terminals, and destination information of terminals participating in the community, A database module that manages
A data comparison module that compares two application data and determines whether they match,
A means for generating a message by giving a designated destination information and a transfer count to a share of application data passed from another module, and a means for generating a message including application data encrypted with a common key. A message generation module having
A message processing module having means for retrieving application data share, transfer count, and application data encrypted with a common key included in a message received from another terminal;
Based on message destination information passed from the message generation module, means for transmitting a message to the destination, means for receiving a message from another terminal, and means for passing the received message to the message processing module A message sending and receiving module,
Means for making a request to store and retrieve a list of participants participating in the community, application data, a common key shared among the participants, and a share in which application data is distributedly encoded to the database module ,
Means for requesting the SSS distributed encoding module to perform application encoding received from the application by SSS with the requested threshold value;
Means for requesting the message generation module to generate a message by setting the destination information to be specified and the number of transfers to the share of the application data received from the SSS distributed encoding module;
Means for requesting the SSS decryption module to restore the original application data from the acquired application data share;
Means for requesting data comparison module to compare application data stored in database module with application data restored using share of application data received from other terminal using SSS decryption module When,
Means for receiving, from the message processing module, the share of the application data extracted from the message received from another terminal, the number of transfers, and the encrypted application data;
A control module comprising: means for requesting the common key encryption / decryption module to encrypt or decrypt arbitrary data using the common key. Communication terminal.
請求項1記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、
前記データベースモジュールにそのアプリケーションデータを保存しておくとともに、前記SSS分散符号化モジュールで((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、
ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、そのメッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、そのメッセージの発信元端末と自端末を除く全端末に対して転送するとともに、アプリケーションデータのシェアは自端末の前記データベースモジュールに保存するステップ2と、
ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し0に設定されているので転送を終了し、各端末が全てメッセージの転送を終了すると、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元しアプリケーションに渡すとともに、そのアプリケーションデータを、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化データを、発信元端末に送り返すステップ3と、
ステップ1における発信元端末は他の全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化データをステップ3により受信し、受け取った各暗号化データを、それぞれ対応する共通鍵で復号化して得られるアプリケーションデータと、データベースモジュールに保存しているアプリケーションデータとを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法。
When a terminal that is a communication terminal according to claim 1 transmits application data to all terminals that participate in a community other than its own terminal,
In addition to storing the application data in the database module, the SSS distributed encoding module distributes with threshold values of ((total number of terminals participating in community-1), (total number of terminals participating in community-1)). In order to transmit the share of the application data obtained by encoding (total number of terminals that participate in the community minus 1) pieces of application data to each of the terminals that participate in the community other than the own terminal in a message. Generating and transmitting a message including a share, destination information of a terminal to which the share is transmitted, and a transfer count set to 1 for each of all terminals participating in the community except for the own terminal; and ,
Each of the other terminals receives the message transmitted in step 1, and each of the terminals uses the message processing module to extract the share and the transfer count, and passes them to the control module. The control module refers to the transfer count. If it is set to 1, a message including the share of application data included in the message and the number of transfers set to 0 is generated, and all terminals except the source terminal of the message and its own terminal The application data share is stored in the database module of the terminal,
The control module of each terminal that has received the message transferred in step 2 refers to the transfer count as in step 2 and is set to 0, so that the transfer ends, and when each terminal ends the transfer of the message. In addition to restoring the original application data using the SSS decryption module and passing it to the application, the shares obtained by each terminal excluding the message source terminal (the total number of terminals participating in the community minus 1) are used. Step 3 of sending back the encrypted data obtained by encrypting the application data using the common key encryption / decryption module using a common key shared with the source terminal to the source terminal;
The source terminal in step 1 receives encrypted data encrypted in step 3 from all other terminals using a common key that is uniquely shared between the source terminal and each terminal. And comparing the application data obtained by decrypting the encrypted data with the corresponding common key and the application data stored in the database module, and confirming whether or not they match. In a full mesh network, each terminal reliably confirms connection connections between all other terminals.
アプリケーションデータの送信ステップをコミュニティに参加する全ての端末が実施する、請求項2に記載のフルメッシュ網において各端末が他の全端末間のコネクション接続を確実に接続する方法。   The method for reliably connecting connection connections among all other terminals in the full mesh network according to claim 2, wherein all terminals participating in the community perform the application data transmission step. ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、
アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、
共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、
(k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、
アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、
アプリケーションデータのハッシュ値と、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、
アプリケーションデータをハッシュ値に変換するハッシュモジュールと、
2つのハッシュ値を比較し、一致するかどうかを判断するデータ比較モジュールと、
他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたハッシュ値を含むメッセージを生成する手段、とを有するメッセージ生成モジュールと、
他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたハッシュ値、を取り出す手段を有するメッセージ処理モジュールと、
メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、
データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータのハッシュ値、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェアの、保存・取得要求を行う手段と、
SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、
メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、
SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、
データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、
メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたハッシュ値、を受信する手段と、
ハッシュモジュールに対して、SSS復号化モジュールを利用して復元したアプリケーションデータをハッシュ値に変換するように要求する手段と、
共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵により、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末。
By establishing a full mesh connection with multiple external terminals connected to the network, a temporary community is formed, authentication control is performed at the time of connection establishment, and a unique common among the terminals after connection establishment A terminal sharing a key,
An application that generates application data and processes application data received from an external terminal;
A common key encryption / decryption module that encrypts / decrypts arbitrary data using a common key;
An SSS (Secret Sharing Schemes) distributed encoding module that performs distributed encoding of application data with a threshold (1 ≦ k ≦ n) of (k, n) and generates n shares that are partial information of the application data;
An SSS decoding module that restores original application data from a plurality of shares in which application data is distributed and encoded;
A hash value of application data, a share of application data received from other terminals, a common key uniquely shared with other terminals, and a terminal list including destination information of terminals participating in the community, A database module to manage,
A hash module that converts application data into a hash value;
A data comparison module that compares two hash values and determines whether they match,
Means for generating a message by assigning the specified destination information to the share of application data passed from another module, the number of transfers, and means for generating a message including a hash value encrypted with a common key; A message generation module having
A message processing module having means for extracting the share of application data, the number of transfers, and a hash value encrypted with a common key, included in a message received from another terminal;
Based on message destination information passed from the message generation module, means for transmitting a message to the destination, means for receiving a message from another terminal, and means for passing the received message to the message processing module A message sending and receiving module,
A request to store / retrieve the database module for a list of participants participating in the community, a hash value of application data, a common key shared among the participants, and a share in which application data is distributed and encoded. Means to do,
Means for requesting the SSS distributed encoding module to perform application encoding received from the application by SSS with the requested threshold value;
Means for requesting the message generation module to generate a message by setting the destination information to be specified and the number of transfers to the share of the application data received from the SSS distributed encoding module;
Means for requesting the SSS decryption module to restore the original application data from the acquired application data share;
Means for requesting data comparison module to compare application data stored in database module with application data restored using share of application data received from other terminal using SSS decryption module When,
Means for receiving, from the message processing module, a share of application data extracted from a message received from another terminal, the number of transfers, and an encrypted hash value;
Means for requesting the hash module to convert the application data restored using the SSS decryption module into a hash value;
A communication terminal comprising: a control module comprising: a means for requesting a common key cryptosystem encryption / decryption module to encrypt or decrypt arbitrary data with a common key.
請求項4記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、
前記ハッシュモジュールを利用してアプリケーションデータのハッシュ値を前記データベースモジュールに保存しておくとともに、前記分散符号化モジュールで、((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、
ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、メッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、前記メッセージの発信元端末と自端末を除く全端末に対して送信するとともに、得られたシェアは自端末の前記データベースモジュールに保存するステップ2と、
ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し、0に設定されているので、転送を終了するとともに、全端末のメッセージの転送終了後、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元し、アプリケーションに渡すとともに、そのアプリケーションデータをハッシュモジュールによりハッシュ値に変換し、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化ハッシュ値を、発信元端末に送り返すステップ3と、
ステップ1における発信元端末を除く全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化ハッシュ値を、発信元端末はステップ3により受信し、受け取った各暗号化ハッシュ値をそれぞれ対応する共通鍵で復号化し、得られるハッシュ値とデータベースモジュールに保存しているハッシュ値とを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法。
When a terminal which is a communication terminal according to claim 4 transmits application data to all terminals participating in the community except for its own terminal,
The hash value of application data is stored in the database module using the hash module, and ((total number of terminals participating in the community −1)) ((all terminals participating in the community)) is stored in the distributed encoding module. The share of the application data (total number of terminals participating in the community minus 1) obtained by distributed encoding with the threshold of (number-1)) is 1 for each of all terminals participating in the community except for the own terminal. In order to send a message including each share, a message including the share, destination information of the terminal to which the share is transmitted, and the number of transfers set to 1 is sent to all the terminals participating in the community except for the own terminal. Step 1 to generate and send for each,
Each of the other terminals receives the message transmitted in step 1, and each of the terminals uses the message processing module to extract the share and the transfer count, and passes them to the control module. The control module refers to the transfer count. If it is set to 1, a message including the share of the application data included in the message and the number of transfers set to 0 is generated, and the message is transmitted to all terminals except the source terminal and the own terminal. And sending the obtained share to the database module of its own terminal, and
The control module of each terminal that has received the message transferred in step 2 refers to the number of transfers as in step 2 and is set to 0, so that the transfer is completed and the message transfer of all terminals is completed. Thereafter, the original application data is restored to the application by using the SSS decryption module for the shares of (the total number of terminals participating in the community −1) obtained by each terminal except the message source terminal. And the application data is converted into a hash value by the hash module, and the encrypted hash value encrypted by the common key encryption / decryption module using the common key shared with the source terminal is obtained. , Step 3 sent back to the originating terminal,
The source terminal receives the encrypted hash value encrypted in step 3 using a common key that is uniquely shared between the source terminal and each terminal from all terminals except the source terminal in step 1 Step 4 for decrypting each received encrypted hash value with a corresponding common key, comparing the obtained hash value with the hash value stored in the database module, and confirming whether or not they match. A method for reliably confirming connection connections between all other terminals in a full-mesh network.
アプリケーションデータの送信ステップをコミュニティに参加する全ての端末が実施する、請求項5に記載のフルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法。   6. The method of reliably confirming connection connections between all other terminals in a full mesh network according to claim 5, wherein the application data transmission step is performed by all terminals participating in the community. ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、
アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、
共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、
(k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、
アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、
アプリケーションから直接渡されるアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、
2つのアプリケーションデータを比較し、一致するかどうかを判断するデータ比較モジュールと、
他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたアプリケーションデータを含むメッセージを生成する手段、を有するメッセージ生成モジュールと、
他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたアプリケーションデータ、を取り出す手段を有するメッセージ処理モジュールと、
メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、
データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータ、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェア、の保存・取得要求を行う手段と、
SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、
メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、
SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、
データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、
メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたアプリケーションデータ、を受信する手段と、
共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵を利用して、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末としてコンピュータを機能させるためのコンピュータプログラム。
By establishing a full mesh connection with multiple external terminals connected to the network, a temporary community is formed, authentication control is performed at the time of connection establishment, and a unique common among the terminals after connection establishment A terminal sharing a key,
An application that generates application data and processes application data received from an external terminal;
A common key encryption / decryption module that encrypts / decrypts arbitrary data using a common key;
An SSS (Secret Sharing Schemes) distributed encoding module that performs distributed encoding of application data with a threshold (1 ≦ k ≦ n) of (k, n) and generates n shares that are partial information of the application data;
An SSS decoding module that restores original application data from a plurality of shares in which application data is distributed and encoded;
A terminal list that includes application data passed directly from the application, application data received from other terminals, a common key that is uniquely shared with other terminals, and destination information of terminals participating in the community, A database module that manages
A data comparison module that compares two application data and determines whether they match,
A means for generating a message by giving a designated destination information and a transfer count to a share of application data passed from another module, and a means for generating a message including application data encrypted by a common key. A message generation module having
A message processing module having means for retrieving application data share, transfer count, and application data encrypted with a common key included in a message received from another terminal;
Based on message destination information passed from the message generation module, means for transmitting a message to the destination, means for receiving a message from another terminal, and means for passing the received message to the message processing module A message sending and receiving module,
Means for making a request to store and retrieve a list of participants participating in the community, application data, a common key shared among the participants, and a share in which application data is distributedly encoded, to the database module ,
Means for requesting the SSS distributed encoding module to perform application encoding received from the application by SSS with the requested threshold value;
Means for requesting the message generation module to generate a message by setting the destination information to be specified and the number of transfers to the share of the application data received from the SSS distributed encoding module;
Means for requesting the SSS decryption module to restore the original application data from the acquired application data share;
Means for requesting data comparison module to compare application data stored in database module with application data restored using share of application data received from other terminal using SSS decryption module When,
Means for receiving, from the message processing module, the share of the application data extracted from the message received from another terminal, the number of transfers, and the encrypted application data;
A control module comprising: means for requesting the common key encryption / decryption module to encrypt or decrypt arbitrary data using the common key. A computer program for causing a computer to function as a communication terminal.
請求項1記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、
前記データベースモジュールにそのアプリケーションデータを保存しておくとともに、前記SSS分散符号化モジュールで((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、
ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、そのメッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、そのメッセージの発信元端末と自端末を除く全端末に対して転送するとともに、アプリケーションデータのシェアは自端末の前記データベースモジュールに保存するステップ2と、
ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し0に設定されているので転送を終了し、各端末が全てメッセージの転送を終了すると、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元しアプリケーションに渡すとともに、そのアプリケーションデータを、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化データを、発信元端末に送り返すステップ3と、
ステップ1における発信元端末は他の全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化データをステップ3により受信し、受け取った各暗号化データを、それぞれ対応する共通鍵で復号化して得られるアプリケーションデータと、データベースモジュールに保存しているアプリケーションデータとを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法をコンピュータに実行させるためのコンピュータプログラム。
When a terminal that is a communication terminal according to claim 1 transmits application data to all terminals that participate in a community other than its own terminal,
In addition to storing the application data in the database module, the SSS distributed encoding module distributes with threshold values of ((total number of terminals participating in community-1), (total number of terminals participating in community-1)). In order to transmit the share of the application data obtained by encoding (total number of terminals that participate in the community minus 1) pieces of application data to each of the terminals that participate in the community other than the own terminal in a message. Generating and transmitting a message including a share, destination information of a terminal to which the share is transmitted, and a transfer count set to 1 for each of all terminals participating in the community except for the own terminal; and ,
Each of the other terminals receives the message transmitted in step 1, and each of the terminals uses the message processing module to extract the share and the transfer count, and passes them to the control module. The control module refers to the transfer count. If it is set to 1, a message including the share of application data included in the message and the number of transfers set to 0 is generated, and all terminals except the source terminal of the message and its own terminal The application data share is stored in the database module of the terminal,
The control module of each terminal that has received the message transferred in step 2 refers to the transfer count as in step 2 and is set to 0, so that the transfer ends, and when each terminal ends the transfer of the message. In addition to restoring the original application data using the SSS decryption module and passing it to the application, the shares obtained by each terminal excluding the message source terminal (the total number of terminals participating in the community minus 1) are used. Step 3 of sending back the encrypted data obtained by encrypting the application data using the common key encryption / decryption module using a common key shared with the source terminal to the source terminal;
The source terminal in step 1 receives encrypted data encrypted in step 3 from all other terminals using a common key that is uniquely shared between the source terminal and each terminal. And comparing the application data obtained by decrypting the encrypted data with the corresponding common key and the application data stored in the database module, and confirming whether or not they match. A computer program for causing a computer to execute a method for reliably confirming connection connections between all other terminals in a full mesh network.
ネットワークに接続されている複数の外部端末とフルメッシュにコネクションを確立することで、一時的なコミュニティを形成し、コネクション確立の際は認証制御を行い、コネクション確立後は各端末間で一意の共通鍵を共有する端末であって、
アプリケーションデータを生成し、また外部端末から受信したアプリケーションデータを処理するアプリケーションと、
共通鍵を利用し、任意のデータを暗号化・復号化する共通鍵暗号方式暗号化・復号化モジュールと、
(k、n)の閾値(1≦k≦n)でアプリケーションデータを分散符号化し、アプリケーションデータの部分情報であるシェアをn個生成するSSS(Secret Sharing Schemes)分散符号化モジュールと、
アプリケーションデータが分散符号化された複数のシェアから元のアプリケーションデータを復元するSSS復号化モジュールと、
アプリケーションデータのハッシュ値と、他の端末から受信するアプリケーションデータのシェアと、他の端末と一意に共有している共通鍵と、コミュニティに参加している端末の宛先情報を含む端末リスト、とを管理するデータベースモジュールと、
アプリケーションデータをハッシュ値に変換するハッシュモジュールと、
2つのハッシュ値を比較し、一致するかどうかを判断するデータ比較モジュールと、
他のモジュールから渡されるアプリケーションデータのシェアに、指定された宛先情報と、転送回数を付与してメッセージを生成する手段と、共通鍵により暗号化されたハッシュ値を含むメッセージを生成する手段、とを有するメッセージ生成モジュールと、
他の端末から受信するメッセージに含まれる、アプリケーションデータのシェア、転送回数、共通鍵により暗号化されたハッシュ値、を取り出す手段を有するメッセージ処理モジュールと、
メッセージ生成モジュールから渡されるメッセージの宛先情報を基に、当該宛先へメッセージを送信する手段と、他の端末からメッセージを受信する手段と、受信したメッセージを前記メッセージ処理モジュールに渡す手段、とを有するメッセージ送受信モジュールとを備え、
データベースモジュールに対して、コミュニティに参加している参加者リスト、アプリケーションデータのハッシュ値、各参加者間で共有している共通鍵、アプリケーションデータが分散符号化されたシェアの、保存・取得要求を行う手段と、
SSS分散符号化モジュールに対して、アプリケーションから受信するアプリケーションデータを、要求した閾値でSSSにより分散符号化を行うように依頼する手段と、
メッセージ生成モジュールに対して、SSS分散符号化モジュールから受信するアプリケーションデータのシェアに、指定する宛先情報、転送回数を設定してメッセージを生成するように依頼する手段と、
SSS復号化モジュールに対して、取得したアプリケーションデータのシェアから元のアプリケーションデータを復元するように依頼する手段と、
データ比較モジュールに対して、データベースモジュールに保存しているアプリケーションデータと、他の端末から受信するアプリケーションデータのシェアからSSS復号化モジュールを利用して復元されたアプリケーションデータ、との比較を要求する手段と、
メッセージ処理モジュールから、他の端末から受信されたメッセージから取り出されたアプリケーションデータのシェア、転送回数、暗号化されたハッシュ値、を受信する手段と、
ハッシュモジュールに対して、SSS復号化モジュールを利用して復元したアプリケーションデータをハッシュ値に変換するように要求する手段と、
共通鍵暗号方式暗号化・復号化モジュールに対して、任意のデータを共通鍵により、暗号化、または復号化するように依頼する手段、とを備える制御モジュールを備えることを特徴とするコミュニケーション端末としてコンピュータを機能させるためのコンピュータプログラム。
By establishing a full mesh connection with multiple external terminals connected to the network, a temporary community is formed, and authentication control is performed at the time of establishing a connection. A terminal sharing a key,
An application that generates application data and processes application data received from an external terminal;
A common key encryption / decryption module that encrypts / decrypts arbitrary data using a common key;
An SSS (Secret Sharing Schemes) distributed encoding module that performs distributed encoding of application data with a threshold (1 ≦ k ≦ n) of (k, n) and generates n shares that are partial information of the application data;
An SSS decoding module that restores original application data from a plurality of shares in which application data is distributed and encoded;
A hash value of application data, a share of application data received from other terminals, a common key uniquely shared with other terminals, and a terminal list including destination information of terminals participating in the community, A database module to manage,
A hash module that converts application data into a hash value;
A data comparison module that compares two hash values and determines whether they match,
Means for generating a message by assigning the specified destination information to the share of application data passed from another module, the number of transfers, and means for generating a message including a hash value encrypted with a common key; A message generation module having
A message processing module having means for extracting the share of application data, the number of transfers, and a hash value encrypted with a common key, included in a message received from another terminal;
Based on message destination information passed from the message generation module, means for transmitting a message to the destination, means for receiving a message from another terminal, and means for passing the received message to the message processing module A message sending and receiving module,
A request to store / retrieve the database module for a list of participants participating in the community, a hash value of application data, a common key shared among the participants, and a share in which application data is distributed and encoded. Means to do,
Means for requesting the SSS distributed encoding module to perform application encoding received from the application by SSS with the requested threshold value;
Means for requesting the message generation module to generate a message by setting the destination information to be specified and the number of transfers to the share of the application data received from the SSS distributed encoding module;
Means for requesting the SSS decryption module to restore the original application data from the acquired application data share;
Means for requesting data comparison module to compare application data stored in database module with application data restored using share of application data received from other terminal using SSS decryption module When,
Means for receiving, from the message processing module, a share of application data extracted from a message received from another terminal, the number of transfers, and an encrypted hash value;
Means for requesting the hash module to convert the application data restored using the SSS decryption module into a hash value;
As a communication terminal, comprising a control module comprising a means for requesting a common key cryptosystem encryption / decryption module to encrypt or decrypt any data with a common key A computer program that causes a computer to function.
請求項4記載のコミュニケーション端末である端末はアプリケーションデータを、自端末を除くコミュニティに参加する全端末に送信する際に、
前記ハッシュモジュールを利用してアプリケーションデータのハッシュ値を前記データベースモジュールに保存しておくとともに、前記分散符号化モジュールで、((コミュニティに参加する全端末数−1)、(コミュニティに参加する全端末数−1))の閾値で分散符号化して得られる、(コミュニティに参加する全端末数−1)個のアプリケーションデータのシェアを、自端末を除くコミュニティに参加する全端末のそれぞれに対し、1シェアづつメッセージに含めて送信するため、シェアと、該シェアを送信される端末の宛先情報と、1に設定された転送回数、とを含むメッセージを、自端末を除くコミュニティに参加する全端末のそれぞれについて生成し送信するステップ1と、
ステップ1で送信されたメッセージを他の各端末が受信し、それら各端末は前記メッセージ処理モジュールを利用して、シェアと転送回数を取り出し、それらを制御モジュールに渡し、制御モジュールは転送回数を参照し、1に設定されている場合は、メッセージに含まれていたアプリケーションデータのシェアと0に設定した転送回数とを含むメッセージを生成し、前記メッセージの発信元端末と自端末を除く全端末に対して送信するとともに、得られたシェアは自端末の前記データベースモジュールに保存するステップ2と、
ステップ2で転送されたメッセージを受けた各端末の前記制御モジュールは、ステップ2と同様に転送回数を参照し、0に設定されているので、転送を終了するとともに、全端末のメッセージの転送終了後、メッセージの発信元端末を除く各端末が得た、(コミュニティに参加する全端末数−1)個のシェアを、前記SSS復号化モジュールを利用して元のアプリケーションデータを復元し、アプリケーションに渡すとともに、そのアプリケーションデータをハッシュモジュールによりハッシュ値に変換し、発信元端末と共有している共通鍵を利用して前記共通鍵暗号方式暗号化・復号化モジュールで暗号化した暗号化ハッシュ値を、発信元端末に送り返すステップ3と、
ステップ1における発信元端末を除く全端末から、発信元端末と各端末間で一意に共有している共通鍵を利用して暗号化された暗号化ハッシュ値を、発信元端末はステップ3により受信し、受け取った各暗号化ハッシュ値をそれぞれ対応する共通鍵で復号化し、得られるハッシュ値とデータベースモジュールに保存しているハッシュ値とを比較し、一致するかどうかを確認するステップ4と、を備えることを特徴とする、フルメッシュ網において各端末が他の全端末間のコネクション接続を確実に確認する方法をコンピュータに実行させるためのコンピュータプログラム。









When a terminal which is a communication terminal according to claim 4 transmits application data to all terminals participating in the community except for its own terminal,
The hash value of application data is stored in the database module using the hash module, and ((total number of terminals participating in the community −1)) ((all terminals participating in the community)) is stored in the distributed encoding module. The share of the application data (total number of terminals participating in the community minus 1) obtained by distributed encoding with the threshold of (number-1)) is 1 for each of all terminals participating in the community except for the own terminal. In order to send a message including each share, a message including the share, destination information of the terminal to which the share is transmitted, and the number of transfers set to 1 is sent to all the terminals participating in the community except for the own terminal. Step 1 to generate and send for each,
Each of the other terminals receives the message transmitted in step 1, and each of the terminals uses the message processing module to extract the share and the transfer count, and passes them to the control module. The control module refers to the transfer count. If it is set to 1, a message including the share of the application data included in the message and the number of transfers set to 0 is generated, and the message is transmitted to all terminals except the source terminal and the own terminal. And sending the obtained share to the database module of its own terminal, and
The control module of each terminal that has received the message transferred in step 2 refers to the number of transfers as in step 2 and is set to 0, so that the transfer is completed and the message transfer of all terminals is completed. Thereafter, the original application data is restored to the application by using the SSS decryption module for the shares of (the total number of terminals participating in the community −1) obtained by each terminal except the message source terminal. And the application data is converted into a hash value by the hash module, and the encrypted hash value encrypted by the common key encryption / decryption module using the common key shared with the source terminal is obtained. , Step 3 sent back to the originating terminal,
The source terminal receives the encrypted hash value encrypted in step 3 using a common key that is uniquely shared between the source terminal and each terminal from all terminals except the source terminal in step 1 Step 4 for decrypting each received encrypted hash value with a corresponding common key, comparing the obtained hash value with the hash value stored in the database module, and confirming whether or not they match. A computer program for causing a computer to execute a method for surely confirming connection connections between all other terminals in a full mesh network.









JP2005018410A 2005-01-26 2005-01-26 In a communication terminal or full mesh network, each terminal can reliably check the connection between all other terminals. Expired - Fee Related JP4523847B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005018410A JP4523847B2 (en) 2005-01-26 2005-01-26 In a communication terminal or full mesh network, each terminal can reliably check the connection between all other terminals.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005018410A JP4523847B2 (en) 2005-01-26 2005-01-26 In a communication terminal or full mesh network, each terminal can reliably check the connection between all other terminals.

Publications (2)

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

Family

ID=36967503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005018410A Expired - Fee Related JP4523847B2 (en) 2005-01-26 2005-01-26 In a communication terminal or full mesh network, each terminal can reliably check the connection between all other terminals.

Country Status (1)

Country Link
JP (1) JP4523847B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8195895B2 (en) 2008-06-30 2012-06-05 International Business Machines Corporation Shared object control for controlling information read/write processing
WO2016200007A1 (en) * 2015-06-12 2016-12-15 주식회사 엔오디비즈웨어 Secure chat method using distributed key exchange protocol and self-defense security technology
KR20220076934A (en) * 2020-12-01 2022-06-08 주식회사 엘지유플러스 Terminal for payment and operaing method of thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212089A (en) * 1996-02-05 1997-08-15 Matsushita Electric Ind Co Ltd Key sharing apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212089A (en) * 1996-02-05 1997-08-15 Matsushita Electric Ind Co Ltd Key sharing apparatus

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8195895B2 (en) 2008-06-30 2012-06-05 International Business Machines Corporation Shared object control for controlling information read/write processing
WO2016200007A1 (en) * 2015-06-12 2016-12-15 주식회사 엔오디비즈웨어 Secure chat method using distributed key exchange protocol and self-defense security technology
KR20220076934A (en) * 2020-12-01 2022-06-08 주식회사 엘지유플러스 Terminal for payment and operaing method of thereof
KR102528051B1 (en) * 2020-12-01 2023-05-02 주식회사 엘지유플러스 Terminal for payment and operaing method of thereof

Also Published As

Publication number Publication date
JP4523847B2 (en) 2010-08-11

Similar Documents

Publication Publication Date Title
CN108600227B (en) Medical data sharing method and device based on block chain
US5748736A (en) System and method for secure group communications via multicast or broadcast
JP4955181B2 (en) Method and apparatus for managing secure collaborative transactions
TW201008195A (en) Key management for communication networks
US9240980B2 (en) Management of group secrets by group members
CN108847928B (en) Communication system and communication method for realizing information encryption and decryption transmission based on group type quantum key card
JP2015500585A (en) Simplified management of group secrets by group members
CN113239403A (en) Data sharing method and device
CN109995739A (en) A kind of information transferring method, client, server and storage medium
WO2020082226A1 (en) Method and system for transferring data in a blockchain system
JP2023552263A (en) Redistribution of secret sharing
CN109962924B (en) Group chat construction method, group message sending method, group message receiving method and system
JP4523847B2 (en) In a communication terminal or full mesh network, each terminal can reliably check the connection between all other terminals.
CN110912691B (en) Ciphertext distribution method, device and system based on grid access control encryption algorithm in cloud environment and storage medium
CN103384233B (en) A kind of methods, devices and systems for acting on behalf of conversion
CN111884988A (en) Method for secure transmission of data
US11411744B2 (en) Encryption communication method, information processing apparatus, and program
CN113642738B (en) Multi-party safety cooperation machine learning method and system based on hierarchical network structure
KR101215802B1 (en) Method of providing a contents service in a p2p network
JP7254296B2 (en) Key exchange system, information processing device, key exchange method and program
CN111865972B (en) Anonymous communication method and system
JP2001244924A (en) Information enciphering system
TWI835684B (en) Backup system and backup method for instant messaging service data
RU2716207C1 (en) Method for decentralized distribution of key information
CN116389673A (en) Quantum secret video conference system and method combining blockchain

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