User device, method, and computer program
Patent Information
- Application Number
- JP2021000170
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-01-04
- Publication Date
- 2025-01-06
- Estimated Expiration
- 2041-01-04
AI Technical Summary
【0014】 サーバ装置がサーバ装置演算部を持つとき、サーバ装置演算部で行われる演算は、上述したように可逆的なものでなければならない。さもなくば、ユーザ装置が第1同期情報又は第2同期情報から、基礎情報を取り出せないからである。サーバ装置演算部で行われる可逆的な演算の例は、基礎情報と解の排他的論理和を取ること、或いは基礎情報と解の積を取ることである。 また、サーバ装置がサーバ装置解生成部を持つとき、前記ユーザ解生成部で生成される解と、前記サーバ装置解生成部で生成される解とが常に、前記基礎情報生成部で生成される基礎情報と同じかそれより大きな情報量を持っても良い。これは、特に、サーバ装置演算部で行われる可逆的な演算が、基礎情報と解の排他的論理和を取ることである場合に次のような大きな効果を生じる。 サーバ装置において、基礎情報と解に対して行われる演算は、上述のように、排他的論理和の演算である場合がある。排他的論理和の演算は、暗号化通信の一種であるバーナム暗号やワンタイムパッド暗号で使用されている。そして、これらバーナム暗号等は、ある一定の条件を満たす場合には、完全に解読不可能であることが数学的に証明されている。その条件は、「隠したい文字列と同じだけの情報量を持つ乱数で、隠したい文字列に対して排他的論理和の演算を行うこと」である。 第1サーバ装置が、特定ユーザ装置である2つのユーザ装置に第1同期情報を送る際に隠したい情報は、第1サーバ装置が生成した基礎情報である。同様に、第2サーバ装置が、特定ユーザ装置である2つのユーザ装置に第2同期情報を送る際に隠したい情報は、第2サーバ装置が生成した基礎情報である。第1サーバ装置は、特定ユーザ装置の双方と、同じ解を生成することができる。第2サーバ装置も同様である。したがって、第1サーバ装置、第2サーバ装置、及び2つの特定ユーザ装置で生成される解を、バーナム暗号等でいうところの乱数として用いれば、第1サーバ装置で生成される第1同期情報は、完全に解読不可能に暗号化された状態となり、第2サーバ装置で生成される第2同期情報は、完全に解読不可能に暗号化された状態となる。したがって、仮に、悪意の第三者が第1同期情報や第2同期情報を得たとしても、それらに内包された正しい基礎情報を知り得ないということになる。特に、第1サーバ装置或いはその管理者が第2同期情報を入手したとしても、第1サーバ装置或いはその管理者は第2同期情報に内包された第2サーバ装置で生成された基礎情報を知ることができず、第2サーバ装置或いはその管理者が第1同期情報を入手したとしても、第2サーバ装置或いはその管理者は第1同期情報に内包された第1サーバ装置で生成された基礎情報を知ることができないことになる。もちろん、第1同期情報と第2同期情報は、更に暗号化された状態で特定ユーザ装置へ送られても良いが、第1サーバ装置と特定ユーザ装置間の、或いは第2サーバ装置と特定ユーザ装置間の暗号化通信が破られたとしても、基礎情報が、或いは2つの基礎情報によって生成される特定ユーザ装置間で使用される初期解が漏洩することがなくなる。 つまり、この方法によれば、第1サーバ装置の管理者と第2サーバ装置の管理者とが共謀するという人的な理由以外の理由で、特定ユーザ装置間で使用される初期解が漏洩する可能性が理論的には無くなる。
Smart Images

Figure 0007607873000001 
Figure 0007607873000002 
Figure 0007607873000003
Abstract
Description
[Technical field]
[0001] The present invention relates to communication technology, and more particularly to cryptographic communication technology. [Background technology]
[0002] For example, when making a payment to a store on the Internet, checking the balance of one's account through Internet banking, or transferring money to a third party, the user communicates via the Internet between his or her own terminal and the server device of the store, etc. In such communications, it is of course necessary to prevent eavesdropping of communications by malicious third parties. Encryption technology is widely used not only in the above-mentioned cases where financial services are received over the Internet, but also in other general communications in order to prevent eavesdropping on communications.
[0003] As one such technique, the inventor of the present application has developed a certain technique and is working to popularize it. The technique proposed by the inventor of the present application is as follows. To give an overview, in this technology, two communication devices communicate over a network such as the Internet. In this case, the two communication devices are equipped with a solution generating unit that generates a solution that is a predetermined number of consecutive letters, numbers, and / or symbols. This solution generating unit generates a solution based on an initial solution, and the solution generated under the same conditions is always the same. In other words, the solution has initial value dependency. For example, the solution generated by the solution generating unit is a pseudo-random number. The two communication devices also include an encryption unit that encrypts data to be transmitted using the solution generated by the solution generating unit to generate encrypted data. The two communication devices also include a transmission unit that transmits the encrypted data generated by the encryption unit to the communication device that is the other party in the communication. The two communication devices each include a receiving unit that receives encrypted data from a communication device that is the other party of the communication, and a decrypting unit that executes a process of decrypting the received encrypted data using the solution generated by the solution generating unit to generate data to be transmitted. The two communication devices that are about to perform encrypted communication have a common initial solution, and therefore are able to generate the same solution using their respective solution generating units. In the present invention, such a situation is referred to as the two devices being able to generate synchronized solutions. Since the two communication devices are able to generate synchronized solutions, encrypted communication in such communication devices becomes extremely secure.
[0004] For example, when two devices execute communication using a common key system, the two devices share an algorithm that specifies the encryption or decryption process and a common key that is used when executing the algorithm. In the above-mentioned communication device proposed by the inventor of the present application, the solution generating units in the two communicating devices successively generate new synchronized common solutions as described above. The encryption and decryption units in the two communicating devices then use the common solutions as a common key (or common information for generating a common key) that changes at a common timing, thereby achieving extremely high security of communication. The above-mentioned communication device proposed by the present inventor not only generates a solution for each communication, but also generates a new solution at multiple times when encrypting data to be transmitted, and in the most frequent case, generates a new solution each time a unit of data to be encrypted or decrypted at one time is generated by cutting the data to be transmitted. In other words, the above-mentioned communication device proposed by the present inventor updates the common key when performing encrypted communication at least every time communication is performed, and in some cases even more frequently than that, in other words, it generates disposable common keys one after another to perform encrypted communication, and therefore the strength of the encryption is extremely high. It should be noted that the object changed by the above solution does not necessarily have to be the common key or other keys, but may be the algorithm.
[0005] In the above-mentioned communication device, it is important that the solutions generated by the solution generating units in the two communication devices are synchronized with each other, and if such synchronization of the solutions cannot be achieved, the two communication devices cannot perform encrypted communication. Therefore, the two communication devices are required to share the same initial solution necessary for synchronizing the solutions before performing encrypted communication. However, this may be difficult in some cases. This is the case when there are many communication devices and two of the communication devices perform encrypted communication. For example, when many personal computers, mobile phones, and smartphones are the above-mentioned communication devices, if two of the communication devices exchange e-mails, which is an example of communication, the two communication devices need to have a common initial solution before starting communication. In this case, the number of pairs of two communication devices that need to perform encrypted communication is huge, and it is time-consuming and difficult to provide a common initial solution to the two communication devices in all pairs.
[0006] However, the inventor of the present application has already proposed a technique for solving the above-mentioned problem of how to provide two communication devices with a common initial solution. This technique involves preparing a control device, also connected to the Internet, that manages encrypted communication between two communication devices, in addition to a large number of communication devices connected to the Internet. This control device transmits synchronization information, which is information necessary for each communication device to generate a common initial solution, to the two communication devices before they start encrypted communication. The two communication devices that communicate can share the common initial solution by generating a common initial solution from the synchronization information. As a result, two communication devices that have obtained a common initial solution will be able to generate synchronized solutions in their own solution generating units when performing encrypted communication thereafter. [Prior art documents] [Patent documents]
[0007] [Patent Document 1] Patent Publication No. 2018-093417 Summary of the Invention [Problem to be solved by the invention]
[0008] As described above, by transmitting synchronization information from the control device to the two communication devices, the two communication devices can share the initial solution and generate a synchronized solution, thereby enabling the two communication devices to perform encrypted communication with a high degree of confidentiality. The possibility of such encrypted communications being intercepted by a malicious third party is extremely low. However, since the control device knows the synchronization information, if the control device or its administrator has malicious intent, the control device, which can generate an initial solution used by the two communication devices based on the synchronization information, its administrator, or someone who conspires with the administrator, may be able to intercept the encrypted communications between the two communication devices.
[0009] The objective of the present invention is to provide a highly secure technology that enables two communication devices among multiple communication devices that wish to perform encrypted communication to have a common initial solution that is required to generate synchronized, consecutive solutions to be used in the encrypted communication. [Means for solving the problem]
[0010] The present invention for solving the above-mentioned problems is as follows. The present invention is a method executed by specific user devices, described below, which are two of the user devices that constitute a communication system comprising three or more user devices capable of communicating with each other via a network and two or more server devices connected to the network for controlling communication between the user devices, in combination with two or more server devices. Each of the user devices included in the above-mentioned communication system has a user solution generation unit that can continuously generate solutions based on an initial solution, which are a predetermined number of at least one of letters, numbers, and symbols, and which will always be the same when generated under the same conditions; a user encryption unit that performs a process of encrypting data to be transmitted using the solution generated by the user solution generation unit to turn it into encrypted data; a user transmission / reception unit that performs transmission and reception via the network; and a user decryption unit that performs a process of decrypting the encrypted data received by the user transmission / reception unit using the solution generated by the user solution generation unit to turn it into the data to be transmitted. In addition, when two specific user devices that are attempting to perform encrypted communication have a common initial solution, each user device generates a common solution synchronized between the two user devices in its user solution generating unit, and is able to decrypt, by its own user decrypting unit, the encrypted data generated by encrypting the data to be transmitted in the other user encryption unit, which is sent from the other user transceiver unit and received by its own user transceiver unit, to convert it into the data to be transmitted, thereby enabling the specific user device to perform encrypted communication. The method of the present invention is a method executed in the specific user device, the method including a first step in which one of the specific user devices transmits specific information, which is information for identifying both of the specific user devices, to a first server device, which is one of the server devices, by the user transmitting / receiving unit, and one of the specific user devices transmits specific information, which is information for identifying both of the specific user devices, to a second server device, which is another of the server devices, by the user transmitting / receiving unit; and a second step in which the first server device, which receives the specific information, generates specific information and transmits it to both of the specific user devices identified by the specific information, The method includes a second step of receiving, in the user transceiver unit of each of the specific user devices, first synchronization information, which is synchronization information unique to each of the server devices and is information necessary to obtain the initial solution and synchronize the solution between the specific user devices; a third step of receiving, in the user transceiver unit of each of the specific user devices, second synchronization information, which is the synchronization information generated by the second server device that receives the identification information and transmitted to both of the specific user devices identified by the identification information; and a fourth step of each of the user devices obtaining the common initial solution by performing a predetermined calculation using the first synchronization information and the second synchronization information.
[0011] The user device and the server device in the present invention generally correspond to the communication device and the control device described in the Background of the Invention, respectively. Each user device has a user solution generating unit equivalent to the solution generating unit in the communication device described in the Background Art section, and the user solution generating unit is capable of continuously generating solutions. When two specific user devices, which are two user devices performing encrypted communication among the user devices, have a common initial solution, the user solution generating units are capable of generating the same solution in a synchronized state, as in the communication device described in the Background Art section, and the encrypted communication can be performed using the solution. The solution is a random number, and more specifically, since it is a random number that can be generated by a computer, it is a pseudo-random number.
[0012] As explained in the Background section, in order for two user devices that communicate with a specific user device as referred to in the present invention to have synchronized solutions, the two user devices need to have a common initial solution. This is realized in the present invention by executing the following first to fourth steps. The first process involves one of the specific user devices transmitting specific information that identifies both of the specific user devices to a first server device, which is one of the server devices, via a user transmitting / receiving unit, and one of the specific user devices transmitting specific information that identifies both of the specific user devices to a second server device, which is another of the server devices, via a user transmitting / receiving unit. In simple terms, the first process is that one of the specific user devices that will communicate from now on notifies two server devices, the first server device and the second server device, which are the two user devices that will communicate. For example, if each user device is assigned a unique identifier, such as an ID, IP address, or telephone number, one of the user devices included in the specific user devices notifies the first server device and the second server device of the identifiers assigned to the two user devices that are the specific user devices as specific information. The user device that notifies the first server device and the user device that notifies the second server device may or may not be the same. The second process involves receiving first synchronization information, which is unique to each server device and is information necessary for the specific user devices to obtain the same initial solution and to synchronize the solutions between the specific user devices, generated by the first server device upon receiving the specific information and transmitted to both of the specific user devices identified by the specific information, in a user transceiver unit of each specific user device. In simple terms, in the second process, the first server device that receives the identification information generates synchronization information, and the generated synchronization information, that is, the first synchronization information, is sent to the two user devices identified by the identification information. The two user devices that are the identified user devices receive the first synchronization information. The first synchronization information may or may not be the same, as described below. The third process involves receiving second synchronization information, which is synchronization information generated by a second server device that receives the specific information and transmitted to both specific user devices identified by the specific information, in the user transceiver unit of each specific user device. The third process is almost the same as the second process. The difference between the second process and the third process is that a second server device appears instead of the first server device. Simply put, in the third process, synchronization information is generated in the second server device that receives the specific information, and the generated synchronization information, that is, second synchronization information, is sent to the two user devices that are specified by the specific information. The two user devices that are the specified user devices receive the second synchronization information. The second synchronization information may be the same or may not be the same, as described below. In the fourth step, each of the user devices performs a predetermined calculation using the first synchronization information and the second synchronization information to obtain a common initial solution. As a result, the two user devices have a common initial solution. For example, if the first synchronization information sent by the first server device to each of the specific user devices in the second step is the same, and the second synchronization information sent by the second server device to each of the specific user devices in the third step is the same, the two user devices each multiply the first synchronization information and the second synchronization information or take the exclusive OR of them, so that the two specific user devices have the same initial solution. The advantages of having a specific user device have the same initial solution using this method are as follows. The initial solution that the specific user device has by this method cannot be generated without using both the first synchronization information and the second synchronization information. The first server device knows the first synchronization information but does not know the second synchronization information, and the second server device knows the second synchronization information but does not know the first synchronization information. Therefore, neither the first server device or its administrator nor the second server device or its administrator knows both the first synchronization information and the second synchronization information, and therefore cannot generate the initial solutions generated by the two user devices that are the specific user devices. Of course, if the administrator of the first server device and the administrator of the second server device conspire, they can know both the first synchronization information and the second synchronization information, and therefore can grasp the initial solution generated by the specific user device, but such a possibility is extremely low and easily exposed compared to the possibility that only one of the first server device or its administrator and the second server device or its administrator has malicious intent, as in the conventional technology described in the background art. Therefore, the process in which two user devices as specific user devices share an initial solution by the method of the present invention is extremely safer than the conventional technology.
[0013] The server device in the present invention may include a server device solution generating unit similar to the user solution generating unit of each user device. In other words, the server device may include a server device solution generating unit capable of generating the same solution as the solution generated by the user solution generating unit of each user device and synchronized with the solution generated by the user solution generating unit of each user device based on the initial solution that is the same as the initial solution of the different user devices. The "initial solution" here is not an initial solution for generating a solution in a synchronized state between specific user devices, but an initial solution for generating a solution in a synchronized state between the server device and each user device. In this case, each server device may include a basic information generating unit that continuously generates basic information that is unique information for each server device, and a server device computing unit that performs reversible computation using the basic information generated by the basic information generating unit and the solution generated by the server device solution generating unit. When the server device is of such a type, the second to fourth steps in the method of the present invention can be as follows. In the second process, the first server device that receives the specific information generates the first synchronization information by performing calculations in the server device calculation unit of the first server device using the basic information generated in the basic information generation unit of the first server device and the solution that can be generated by the user solution generation unit of one of the specific user devices generated in the server device solution generation unit of the first server device, and one of the specific user devices receives the first synchronization information transmitted to one of the specific user devices identified by the specific information in its user transceiver unit, and the first server device that receives the specific information generates the first synchronization information by performing calculations in the server device calculation unit of the first server device using the basic information generated in the basic information generation unit of the first server device and the solution that can be generated by the user solution generation unit of the other of the specific user devices generated in the server device solution generation unit of the first server device, and the other of the specific user devices receives the first synchronization information that is different from the information sent to one of the specific user devices and that was transmitted to one of the specific user devices identified by the specific information in its user transceiver unit. In simple terms, in the second step in this case, the first server device sends to one of the specific user devices first synchronization information generated by performing a reversible operation on the basic information generated by the first server device and a solution that can be generated by one of the specific user devices, and sends to the other specific user device first synchronization information generated by performing a reversible operation on the same basic information as the above basic information and a solution that can be generated by the other specific user device. In this case, the first synchronization information received by the one and other specific user devices is based on the same basic information but is different from each other because it is calculated using different solutions. In the third step, the second server device that has received the specific information generates the second synchronization information by performing calculations in the server device calculation unit of the second server device using the basic information generated in the basic information generation unit of the second server device and the solution that can be generated by the user solution generation unit of one of the specific user devices generated in the server device solution generation unit of the second server device, and one of the specific user devices receives the second synchronization information transmitted to one of the specific user devices identified by the specific information in its user transceiver unit, and the second server device that has received the specific information generates the second synchronization information by performing calculations in the server device calculation unit of the second server device using the basic information generated in the basic information generation unit of the second server device and the solution that can be generated by the user solution generation unit of the other of the specific user devices generated in the server device solution generation unit of the second server device, and the other of the specific user devices receives the second synchronization information that is different from the information sent to one of the specific user devices and that has been transmitted to one of the specific user devices identified by the specific information in its user transceiver unit. The third process is almost the same as the second process. The difference between the second process and the third process is that the second server appears instead of the first server. In simple terms, in the third process in this case, the second server sends second synchronization information generated by performing a reversible operation on basic information generated by the second server and a solution that can be generated by one of the specific user devices to one of the specific user devices, and sends second synchronization information generated by performing a reversible operation on basic information the same as the basic information and a solution that can be generated by the other of the specific user devices to the other of the specific user devices. In this case, the second synchronization information received by one and the other of the specific user devices is based on the same basic information, but is different from each other because it is calculated using different solutions. In the fourth step, one of the specific user devices extracts the basic information generated when the first server device generates the first synchronization information by performing an inverse operation of the operation performed by the server device calculation unit of the first server device using the same solution generated by the user solution generation unit of the specific user device for the first synchronization information received from the first server device when generating the first synchronization information, and extracts the basic information generated when the second server device generates the second synchronization information by performing an inverse operation of the operation performed by the server device calculation unit of the second server device using the same solution generated by the user solution generation unit of the specific user device for the second synchronization information received from the second server device when generating the second synchronization information. the other of the specific user devices extracts the basic information generated when the first server device generates the first synchronization information by performing an inverse operation of the operation performed in the server device operation unit of the first server device using the same solution generated in its user solution generation unit and generated in the first server device when generating the first synchronization information, for the first synchronization information received from the first server device, as generated in the first server device when generating the first synchronization information, and extracts the basic information generated when the second server device generates the second synchronization information by performing an inverse operation of the operation performed in the operation unit of the second server device using the same solution generated in its user solution generation unit and generated in the second server device when generating the second synchronization information, for the second synchronization information received from the second server device. Then, both of the specific user devices obtain the common initial solution by performing a predetermined operation on the two common pieces of basic information generated by the first server device and the second server device, respectively. In simple terms, one of the specific user devices extracts basic information generated by the first server device from the first synchronization information received from the first server device, and also extracts basic information generated by the second server device from the second synchronization information received from the second server device, and generates an initial solution by performing a predetermined operation on these two pieces of basic information. As described above, the first synchronization information generated by the first server device is obtained by performing a reversible operation on the basic information generated by the first server device using a solution that can be generated by one of the specific user devices. Therefore, if an inverse operation of the operation performed by the first server device on the first synchronization information is performed using the solution used by the first server device when performing a reversible operation that can be generated by one of the specific user devices, the one of the specific user devices can extract the basic information generated by the first server device from the first synchronization information. Similarly, the one of the specific user devices can extract the basic information generated by the second server device from the second synchronization information. By performing a predetermined operation on the two pieces of basic information thus extracted, the one of the specific user devices can obtain an initial solution. The other of the specific user devices also performs a similar process. In simple terms, the other of the specific user devices extracts the basic information generated by the first server device from the first synchronization information received from the first server device, and also extracts the basic information generated by the second server device from the second synchronization information received from the second server device, and generates an initial solution by performing a predetermined calculation on these two pieces of basic information. The reason why the other of the specific user devices can extract the basic information generated by the first server device from the first synchronization information received from the first server device and can extract the basic information generated by the second server device from the second synchronization information received from the second server device is the same as the reason why one of the specific user devices is able to do so. Then, the other of the specific user devices performs a predetermined calculation on these two pieces of basic information to obtain an initial solution. The basic information generated by the first server device and the basic information generated by the second server device extracted by the other of the specific user devices from the first synchronization information and the second synchronization information, respectively, are the same as the basic information generated by the first server device and the basic information generated by the second server device extracted by one of the specific user devices, so that by performing a predetermined calculation on the two pieces of basic information thus extracted, the initial solution obtained by the other of the specific user devices becomes the same as the initial solution obtained by one of the specific user devices.
[0014] When the server device has a server device calculation unit, the calculation performed by the server device calculation unit must be reversible as described above. Otherwise, the user device cannot extract the basic information from the first synchronization information or the second synchronization information. An example of a reversible calculation performed by the server device calculation unit is to take an exclusive OR of the basic information and a solution, or to take a product of the basic information and a solution. Furthermore, when the server device has a server device solution generating unit, the solution generated by the user solution generating unit and the solution generated by the server device solution generating unit may always have the same or larger amount of information as the basic information generated by the basic information generating unit. This produces the following significant effects, particularly when the reversible operation performed by the server device calculation unit is to take the exclusive OR of the basic information and the solution. In the server device, the calculation performed on the basic information and the solution may be an exclusive OR calculation, as described above. The exclusive OR calculation is used in the Vernam cipher and one-time pad cipher, which are types of encrypted communication. It has been mathematically proven that the Vernam cipher and other codes are completely unbreakable if certain conditions are met. The condition is that "an exclusive OR calculation is performed on the character string to be hidden using a random number that has the same amount of information as the character string to be hidden." The information that the first server device wants to conceal when sending the first synchronization information to the two user devices that are specific user devices is the basic information generated by the first server device. Similarly, the information that the second server device wants to conceal when sending the second synchronization information to the two user devices that are specific user devices is the basic information generated by the second server device. The first server device can generate the same solution as both of the specific user devices. The same is true for the second server device. Therefore, if the solutions generated by the first server device, the second server device, and the two specific user devices are used as random numbers in the Vernam cipher, the first synchronization information generated by the first server device will be encrypted so that it is completely undecipherable, and the second synchronization information generated by the second server device will be encrypted so that it is completely undecipherable. Therefore, even if a malicious third party obtains the first synchronization information or the second synchronization information, the correct basic information contained therein will not be known. In particular, even if the first server device or its administrator obtains the second synchronization information, the first server device or its administrator cannot know the basic information generated by the second server device contained in the second synchronization information, and even if the second server device or its administrator obtains the first synchronization information, the second server device or its administrator cannot know the basic information generated by the first server device contained in the first synchronization information. Of course, the first synchronization information and the second synchronization information may be sent to the specific user device in an encrypted state, but even if the encrypted communication between the first server device and the specific user device or between the second server device and the specific user device is broken, the basic information or the initial solution used between the specific user devices generated by the two basic information will not be leaked. In other words, according to this method, there is theoretically no possibility that the initial solution used between specific user devices will be leaked for reasons other than human reasons such as collusion between the administrator of the first server device and the administrator of the second server device.
[0015] The inventors of the present invention also propose, as one aspect of the present invention, a user device capable of executing the method of the present invention, the effects of which are equal to the effects of the method of the present invention. An example of a user device is a user device that constitutes a communication system including three or more user devices capable of communicating with each other via a network and two or more server devices connected to the network that control communication between the user devices, in combination with two or more server devices. This user device has a user solution generation unit that can continuously generate solutions based on an initial solution, which are a predetermined number of at least one of letters, numbers, and symbols, and which will always be the same when generated under the same conditions; a user encryption unit that performs a process of encrypting data to be transmitted using the solution generated by the user solution generation unit to turn it into encrypted data; a user transmission / reception unit that performs transmission and reception via the network; and a user decryption unit that performs a process of decrypting the encrypted data received and transmitted by the user transmission / reception unit using the solution generated by the user solution generation unit to turn it into the data to be transmitted. When two specific user devices which are attempting to perform encrypted communication have a common initial solution, the specific user device is able to perform encrypted communication by respectively generating the common solution synchronized between the two user devices in their user solution generating units, and by decrypting the encrypted data generated by the other party's user encryption unit encrypting the data to be transmitted, which is sent from the other party's user transceiver unit and received by the specific user device's own user transceiver unit, in its own user decryption unit to convert it into the data to be transmitted. Further, when the user device becomes the specific user device, either of the specific user devices transmits, via the user transmitting / receiving unit, specific information that is information that identifies both of the specific user devices to a first server device that is one of the server devices, and either of the specific user devices transmits, via the user transmitting / receiving unit, specific information that is information that identifies both of the specific user devices to a second server device that is the other of the server devices; and The method is configured to receive, in the user transceiver unit of each of the specific user devices, first synchronization information, which is synchronization information unique to each server device and is information necessary to obtain an initial solution and synchronize the solution between the specific user devices; receive, in the user transceiver unit of each of the specific user devices, second synchronization information, which is the synchronization information generated by the second server device that receives the specific information and transmitted to both of the specific user devices identified by the specific information; and obtain the common initial solution by each of the user devices performing a predetermined calculation using the first synchronization information and the second synchronization information.
[0016] The inventor of the present application also proposes, as one aspect of the present invention, a computer program for enabling a specific computer to execute the method of the present application. The effects of such a computer program are equal to the effects of the method of the present invention, and one of the effects of the computer program is that it enables a specific (e.g., general-purpose) computer to execute the method of the present invention. One example computer program is a computer program for causing a specific computer to function as a user device that constitutes a communication system including three or more user devices capable of communicating with each other via a network and two or more server devices connected to the network that control communication between the user devices, in combination with two or more server devices. The computer program causes the computer to function as a user solution generation unit that can continuously generate solutions based on an initial solution, which are a predetermined number of at least one of letters, numbers, and symbols, and which will always be the same when generated under the same conditions; a user encryption unit that performs a process of encrypting data to be transmitted using the solution generated by the user solution generation unit to turn it into encrypted data; a user transmission / reception unit that performs transmission and reception via the network; and a user decryption unit that performs a process of decrypting the encrypted data received and transmitted by the user transmission / reception unit using the solution generated by the user solution generation unit to turn it into the data to be transmitted. In addition, the computer program is a computer program for enabling a specific user device to perform encrypted communication by, when two specific user devices that are to perform encrypted communication have a common initial solution, generating a common solution synchronized between the two user devices in their respective user solution generating units, thereby enabling the specific user device to perform encrypted communication by encrypting the data to be transmitted in the user encryption unit of the other device, and decrypting the encrypted data sent from the user transceiver unit of the other device and received by the specific user transceiver unit of the specific user device, in order to convert it into the data to be transmitted, in the specific user device being capable of performing encrypted communication. The computer program further includes, when the user device becomes the specific user device, causing one of the specific user devices to transmit specific information that identifies both of the specific user devices to a first server device that is one of the server devices by the user transmitting / receiving unit, and causing one of the specific user devices to transmit specific information that identifies both of the specific user devices to a second server device that is the other of the server devices by the user transmitting / receiving unit; and a process for transmitting specific information that is generated by the first server device upon receiving the specific information and transmitted to both of the specific user devices identified by the specific information, where the specific user devices are the same. A computer program for causing each of the specific user devices to receive first synchronization information, which is synchronization information unique to each server device and is information necessary to obtain the initial solution and synchronize the solution between the specific user devices, in the user transceiver unit of each of the specific user devices; receiving second synchronization information, which is the synchronization information generated by the second server device that receives the specific information and transmitted to both of the specific user devices identified by the specific information, in the user transceiver unit of each of the specific user devices; and each of the user devices obtaining the common initial solution by performing a predetermined calculation using the first synchronization information and the second synchronization information. [Brief description of the drawings]
[0017] [Figure 1] 1 is a diagram showing the overall configuration of a communication system according to this embodiment. [Diagram 2] FIG. 2 is a diagram showing the appearance of a user device included in the communication system shown in FIG. [Diagram 3] 2 is a diagram showing a hardware configuration of a user device included in the communication system shown in FIG. 1; [Figure 4] 2 is a block diagram showing functional blocks generated within a user device included in the communication system shown in FIG. 1. [Diagram 5] 2 is a block diagram showing functional blocks generated within a server device included in the communication system shown in FIG. 1; [Figure 6]2 is a diagram showing the flow of processing executed when communication is performed in the communication system shown in FIG. 1; [Figure 7] 13 is a diagram conceptually showing the management relationship between a server device and user devices in a communication system according to a second modification, and whether encrypted communication is possible between the server devices. FIG. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0018] A preferred embodiment of the present invention and its modifications will be described below. In the description of the embodiments and their modifications, common objects are given the same reference numerals, and common descriptions are omitted in some cases. Furthermore, in the respective embodiments and their modifications, two or more of them can be appropriately combined or parts of them can be appropriately substituted, provided that there is no particular contradiction in combining them or substituting parts of them.
[0019] FIG. 1 shows an outline of the overall configuration of a communication system as an embodiment of a transmission / reception system according to the present invention. The communication system of this embodiment is configured to include a large number of user devices 100-1 to 100-N (hereinafter, sometimes simply referred to as "user devices 100") and a plurality of server devices 200-1 to 200-n (hereinafter, sometimes simply referred to as "server devices 200"). All of these are connectable to a network 400. There are at least three or more user devices 100, and at least two or more server devices 200. Furthermore, the number of server devices 200 is generally far fewer than that of user devices 100. The network 400 is, but is not limited to, the Internet in this embodiment. The user device 100 in this embodiment corresponds to the user device in this application, and the server device 200 in this embodiment corresponds to the server device in this application. It is assumed that two of the user devices 100-1 to 100-N communicate with each other. The user devices 100-1 to 100-N are owned by each user. In this embodiment, the communication is encrypted communication using a solution that is generated continuously, as described later. However, the user devices 100-1 to 100-N may be capable of performing plaintext communication other than the encrypted communication in addition to such encrypted communication. Such communication other than the encrypted communication may be realized by a publicly known or well-known technology. The user device 100 may be a computer that allows other user devices 100 to browse a homepage via the network 400. Each server device 200 may manage all the user devices 100, or may manage some of the user devices 100. Although not limited to this, in this embodiment, all the server devices 200 are assumed to manage all the user devices 100. "Management" means that a solution common to the user devices 100 to be managed can be generated, or synchronization information (first synchronization information or second synchronization information) can be transmitted to the user devices 100. These points will be described later. Although not limited thereto, the server device 200 in this embodiment may be managed by a company having a certain degree of public nature, for example, a company having a credibility to be a certificate authority in SSL or TSL, or a public organization. Alternatively, the server device 200 may be managed by a provider that connects the user device 100 to the network 400 when the user device 100 connects to the network 400, or by a mobile phone carrier if the user device 100 is, for example, a smartphone. The user device 100 includes a computer. More specifically, the user device 100 in this embodiment is configured by a general-purpose computer.
[0020] Next, we will explain the configuration of the user device 100. The configuration of each of the user devices 100-1 to 100-N is the same in terms of the present invention. The user device 100 may be a mobile phone, a smartphone, a tablet, a notebook computer, a desktop computer, etc. All user devices 100 must be capable of communicating via the network 400, and must also be capable of generating functional blocks (described later) therein by installing a computer program (described later) and executing processes (described later). However, as long as these are possible, other specifications of the user device 100 are not particularly important. For example, if the user device 100 is a smartphone or a tablet, the user device 100 as a smartphone may be, for example, an iPhone series product manufactured and sold by Apple Japan, LLC, and the user device 100 as a tablet may be, for example, an iPad series product manufactured and sold by Apple Japan, LLC. In the following, the discussion will proceed assuming that the user device 100 is a smartphone, although this is not limited to the above.
[0021] An example of the external appearance of the user device 100 is shown in FIG. The user device 100 includes a display 101. The display 101 is for displaying still images or moving images, and may be a publicly known or well-known display. The display 101 is, for example, a liquid crystal display. The user device 100 also includes an input device 102. The input device 102 is for a user to input a desired input to the user device 100. The input device 102 may be a publicly known or well-known display. The input device 102 of the user device 100 in this embodiment is a button type, but is not limited to this, and may be a numeric keypad, keyboard, trackball, mouse, or the like. In particular, when the user device 100 is a notebook computer or a desktop computer, the input device 102 will be a keyboard, a mouse, or the like. In addition, when the display 101 is a touch panel, the display 101 also functions as the input device 102, which is the case in this embodiment.
[0022] The hardware configuration of the user device 100 is shown in FIG. The hardware includes a central processing unit (CPU) 111, a read only memory (ROM) 112, a random access memory (RAM) 113, and an interface 114, which are interconnected by a bus 116. The CPU 111 is a calculation device that performs calculations. The CPU 111 executes a computer program recorded in, for example, the ROM 112 or the RAM 113 to execute the processes described below. Although not shown in the figure, the user device 100 may be equipped with a HDD (hard disk drive) or other large-capacity recording device, and the computer program may be recorded in the large-capacity recording device. The computer program here includes at least a computer program for causing the user device 100 to function as the user device of the present invention. This computer program may be pre-installed in the user device 100, or may be post-installed. This computer program may be installed in the user device 100 via a predetermined recording medium such as a memory card, or via a network such as a LAN or the Internet. ROM 112 records computer programs and data necessary for CPU 111 to execute the processes described below. The computer programs recorded in ROM 112 are not limited to the above, and if user device 100 is a smartphone, computer programs and data necessary for the user to function as a smartphone, for example, for making calls and e-mails, are recorded. User device 100 is also capable of browsing homepages based on data received via network 400, and is equipped with a known web browser to enable this. The RAM 113 provides a work area necessary for the CPU 111 to perform processing. In some cases, the above-mentioned computer programs and data may be stored in the RAM 113. The interface 114 exchanges data between the CPU 111, RAM 113, etc., which are connected via a bus 116, and the outside. The above-mentioned display 101 and input device 102 are connected to the interface 114. Operation contents input from the input device 102 are input from the interface 114 to the bus 116. As is well known, image data for displaying an image on the display 101 is output from the interface 114 to the display 101. The interface 114 is also connected to a transceiver (not shown) which is a known means for communicating with the outside via the network 400, which is the Internet, and thereby the user device 100 can transmit data via the network 400 and receive data via the network 400. Such data transmission and reception via the network 400 may be performed by wire or wirelessly. For example, if the user device 100 is a smartphone, such communication will usually be performed wirelessly. As far as possible, the configuration of the transceiver can be a known or well-known one. Data received by the transceiver from the network 400 by the interface 114 is received by the interface 114, and data passed from the interface 114 to the transceiver is sent by the transceiver to the outside, for example, another user device 100 or the server device 200, via the network 400. The data received by the transceiver from the network 400 by the transceiver includes at least the synchronization information (first synchronization information and second synchronization information) sent from the server device 200 and the encrypted data sent from the other user device 100. Data sent from the transmission / reception mechanism to the outside includes at least specific information sent to the server device 200 and encrypted data sent to other user devices 100 .
[0023] 4 are generated within the user device 100 as a result of the CPU 111 executing the computer program. Note that the following functional blocks may be generated by the functions of the above-mentioned computer program alone for causing the user device 100 to function as the user device of the present invention, or may be generated by cooperation between the above-mentioned computer program and an OS or other computer programs installed in the user device 100. In the user device 100, an input unit 121, a main control unit 122, a user solution generation unit 123, a user solution recording unit 124, a user initial solution generation unit 125, a user encryption / decryption unit 126, and an output unit 127 are generated in relation to the functions of the present invention. Note that, if the user device 100 has a SIM card such as a smartphone, the functions of the input unit 121, the main control unit 122, the user solution generation unit 123, the user solution recording unit 124, the user initial solution generation unit 125, the user encryption / decryption unit 126, and the output unit 127 may be present on a SIM card built into the user device 100. In that case, these functions are not necessarily generated by a computer program installed in the user device 100.
[0024] The input unit 121 receives an input from the interface 114 . The input from the interface 114 includes, for example, specific information input by the input device 102. The specific information is for identifying two user devices 100 (specific user devices in the present invention) that are about to perform encrypted communication. The specific information on the user device 100 that is the first to perform communication is required to be unique information for all user devices 100 at the very least, and is, for example, the IP address, e-mail address, URL, SNS (social networking service) ID, etc. of the user device 100, and the same is true for the user device 100 that is the receiving side of communication. In this embodiment, although not limited to this, both of the two user devices 100 that are specific user devices are identified by IP addresses. Note that, although not limited to this in this embodiment, when a user operates the input device 102 to input information that identifies the other user device 100 that is about to perform encrypted communication, specific information that identifies both the IP address of the user device 100 and the IP address of the other user device 100 is automatically generated. Alternatively, the specific information may be generated by the user inputting into the input device 102 both IP addresses of the two user devices 100 with which encrypted communication will be performed. Furthermore, the user can generate server identifier data for identifying the server device 200 to which the specific information is to be transmitted by operating the input device 102. Like the user device 100, each server device 200 is assigned a unique server identifier for identifying each server device 200, and the user can select the server device 200 to which the specific information is to be transmitted by inputting or selecting the server device 200. The server identifier is, for example, the IP address of each server device 200. In addition, the user can generate or specify data to be transmitted by operating the input device 102. Such data to be transmitted is data to be transmitted and received when the data is transmitted and received in an encrypted state between the user devices 100. For example, if the transmission and reception is an e-mail transmission and reception, the data is e-mail data, and if one user device 100 provides a homepage of a virtual store on the Internet and the other user device 100 is a customer who is going to purchase a product at the virtual store, the data transmitted from the user device 100 of the virtual store to the customer is, for example, data for providing the customer's user device 100 with a format for allowing the customer to enter a product selection screen, customer information, delivery destination information, etc., and the data transmitted from the customer's user device 100 to the user device 100 of the virtual store is information for identifying the product selected by the customer as a purchase target and its quantity, or customer information and delivery destination information entered by the customer in the format as described above. The data to be transmitted can be in any format, such as text data, image data, and voice data. The data to be transmitted does not necessarily have to be the data itself that the user input by operating the input device 102; it may be data that is created by the user device 100 performing a specified processing on that data, and in fact this is the more common case. Other inputs to the input unit 121 from the interface 114 include the above-mentioned synchronization information (first synchronization information and second synchronization information) and encrypted data sent to the interface 114 from the transmission / reception mechanism. As described above, the input unit 121 receives the specific information and the data to be transmitted as input from the input device 102, and the synchronization information and the encrypted data as input from the transmission / reception mechanism. When the input unit 121 receives these, if it has received specific information and synchronization information, it sends them to the main control unit 122, and if it has received data to be transmitted and encrypted data, it sends them to the user encryption / decryption unit 126.
[0025] The main control unit 122 controls all of the functional blocks created in the user device 100 . The main control unit 122 may receive the specific information and the server identifier from the input unit 121. When the main control unit 122 receives the specific information and the server identifier, it sends them to the output unit 127. The main control unit 122 may receive synchronization information. When the main control unit 122 receives the synchronization information, the main control unit 122 sends the synchronization information to the user initial solution generating unit 125.
[0026] The user solution generator 123 generates solutions. The method of generating solutions will be described later, but in this embodiment, the solutions are arranged by enumerating at least one of letters, numbers, and symbols in a predetermined number, and are generated based on an initial solution under the same conditions so that the same solution is always generated. Typically, the solutions are pseudo-random numbers, and in this embodiment, each solution is generated so that the number of digits or characters is always constant. The amount of information contained in the many generated solutions is always constant. The user solution generation unit 123 generates a solution when the user encryption / decryption unit 126 performs encryption or decryption processing as described below. The user encryption / decryption unit 126 performs encryption or decryption processing when this user device 100 performs encrypted communication with another user device 100, the details of which will be described later. The user solution generation unit 123 sends the solution created for encrypted communication between user devices 100 to the user encryption / decryption unit 126. Furthermore, the user solution generation unit 123 in the user device 100 may generate a solution even when synchronization information (first synchronization information and second synchronization information) is sent to the user initial solution generation unit 125. The solution generated at this time is generated for the purpose of generating an initial solution to be used in encrypted communication. The solution generated for the purpose of generating an initial solution to be used in encrypted communication is sent from the user solution generation unit 123 to the user initial solution generation unit 125.
[0027] The user solution recording unit 124 records information required when the user solution generating unit 123 generates a solution. Data that may be recorded in the user solution recording unit 124 is data on the true initial solution and data on the initial solution. The true initial solution is an initial solution used to generate a solution when the user device 100 and the server device 200 are synchronized. The initial solution is used when the user device 100 performs encrypted communication with another user device 100, that is, it is used to generate a solution when a certain user device 100 and another user device 100 are synchronized. Both the true initial solution data and the initial solution data affect a solution that is generated later. The true initial solution and the initial solution data are in the same format as the solution data, that is, a predetermined number of at least one of letters, numbers, and symbols are arranged, and the number of digits or characters may or may not be the same as the solution. Although not limited to this in this embodiment, the true initial solution and the initial solution data are in the same format as the solution data, and the true initial solution and the initial solution have the same number of digits or characters as the solution. Although not limited thereto, in this embodiment, each user device 100 is configured to generate solutions in a synchronized state with all server devices 200. Therefore, each user device 100 has, in an initial state, a true initial solution that is the same as the true initial solution for the user device 100 provided in each server device 200. That is, in an initial state, the user solution recording unit 124 records the same number of true initial solutions as the number of server devices 200. Each true initial solution is recorded in the user solution recording unit 124 in a state linked to a server identifier for identifying each server device 200, which is unique for each server device 200, in order to clarify which server device 200 has the true initial solution. An initial solution may be recorded in the user solution recording unit 124. The initial solution is generated in both of the two user devices 100, which are specific user devices, as described later. In other words, before the process of generating an initial solution is executed, an initial solution does not exist in the first place, and therefore, before the process is executed, the initial solution is not recorded in the user solution recording unit 124. When an initial solution is generated, the initial solution is recorded in the user solution recording unit 124. At that time, in order to clarify which user device 100 the initial solution is shared with, the initial solution is recorded in the user solution recording unit 124 in a state linked to an identifier for identifying each user device 100, which is unique for each user device 100, for example, an IP address of each user device 100. Both the true initial solution data and the initial solution data may be updated as described below. When generating a solution, the user's solution generating unit 123 reads necessary data from the data recorded in the user's solution recording unit 124 and uses the data to generate the solution. When it becomes necessary for the user device 100 and the server device 200 to generate a solution in synchronization with each other, the user solution generation unit 123 reads out the true initial solution or a solution described below. When generating at least the initial solution, the user solution generation unit 123 uses data of the true initial solution recorded in the user solution recording unit 124 and other data as necessary. On the other hand, when the user devices 100 generate synchronized solutions for each other to perform encrypted communication by synchronizing the solutions, the user solution generation unit 123, in principle, does this by reading out the data of the initial solution recorded in the user solution recording unit 124. The method of generating solutions in user solution generating section 123 will be described in detail later.
[0028] The user initial solution generating unit 125 uses synchronization information to generate an initial solution that is required when two user devices 100, which are specific user devices, perform encrypted communication by synchronizing the solutions. As described above, the generated initial solution is used to generate a synchronized initial solution in both user devices 100 when the user devices 100 perform encrypted communication by synchronizing the solutions. As described above, the user initial solution generating unit 125 may receive synchronization information from the main control unit 122. When such synchronization information is received, the user initial solution generating unit 125 generates an initial solution based on the synchronization information. When generating an initial solution, the user initial solution generating unit 125 may need a solution generated by the user solution generating unit 123. Such a solution is a solution synchronized with the solution generated by the server device 200. When the user initial solution generating unit 125 needs a solution, the user initial solution generating unit 125 sends an instruction to the user solution generating unit 123 to generate a solution. Upon receiving such an instruction, the user solution generating unit 123 generates a solution and sends it to the user initial solution generating unit 125 .
[0029] The user encryption / decryption unit 126 performs at least one of encryption and decryption processing, and although not limited to this, in this embodiment, it performs both encryption and decryption processing. Such encryption and decryption are necessary for encrypted communication between user devices 100. The user encryption / decryption unit 126 performs encryption and decryption processing only when the main control unit 122 gives permission to perform encryption and decryption. Although the details of the encryption method will be described later, when performing encryption, the user encryption / decryption unit 126 sends an instruction to the user solution generation unit 123 to generate a solution. The user solution generation unit 123 generates a solution based on the instruction and sends it to the user encryption / decryption unit 126. The solution is used for encryption in the user encryption / decryption unit 126. Although not limited to this, the data to be encrypted in this embodiment is data to be transmitted that is generated based on data input from the input device 102. The data to be transmitted that is generated by the input device 102 is plain text data, but as a result of encryption by the user encryption / decryption unit 126, it becomes encrypted data. The encrypted data generated by the user encryption / decryption unit 126 is sent to the output unit 127. Although the details of the decryption method will be described later, when decryption is performed, the user encryption / decryption unit 126 sends an instruction to the user solution generation unit 123 to generate a solution. The user solution generation unit 123 generates a solution based on the instruction and sends it to the user encryption / decryption unit 126. The solution is used for decryption in the user encryption / decryption unit 126. Although not limited to this, the data to be decrypted in this embodiment is encrypted data sent from another user device 100. The encrypted data is generated by the user encryption / decryption unit 126 in the user device 100 that sent it, and as a result of the data being decrypted by the user encryption / decryption unit 126, it returns to the original data to be transmitted. The plaintext data to be transmitted generated by the user encryption / decryption unit 126 is sent to the output unit 127.
[0030] The output unit 127 outputs data generated by the functional blocks in the user device 100 to the interface 114 . As described above, there are cases where the specific information and the server identifier are sent to the output unit 127 from the main control unit 122. The output unit 127 outputs the specific information and the server identifier to the interface 114. This specific information is sent from the interface 114 to the transmission / reception mechanism, and is sent from the transmission / reception mechanism via the network 400 to the server device 200 identified by the server identifier. The output unit 127 may also receive encrypted data from the user encryption / decryption unit 126. When the output unit 127 receives encrypted data, it outputs the encrypted data to the interface 114. This encrypted data is sent from the interface 114 to the transmission / reception mechanism, and is sent from the transmission / reception mechanism via the network 400 to another user device 100 that is the other party in the encrypted communication. The output unit 127 may also receive plaintext data to be transmitted from the user encryption / decryption unit 126. This data to be transmitted is generated by another user device 100. When the output unit 127 receives the data to be transmitted, it outputs the data to be transmitted to the interface 114. The data to be transmitted is used appropriately within the user device 100, and may be sent to the display 101, for example, to cause the display 101 that receives it to display an image according to the data to be transmitted.
[0031] Next, the configuration of the server device 200 will be described. When viewed as hardware, the server device 200 may be an existing publicly known or well-known server device. The hardware configuration may also be general, and although not shown in the drawings, roughly speaking, the hardware configuration can follow that of the user device 100, in which a CPU 111, a ROM 112, a RAM 113, and an interface 114 are connected by a bus 116. However, the server device 200 generally has a HDD or other large-capacity storage device, and this is also the case in this embodiment. The configurations and functions of the CPU, ROM, RAM, interface, bus, and large-capacity storage device of the server device 200 are the same as those of the user device 100. A transmitting / receiving mechanism for communicating with devices outside the server device 200 via the network 400, similar to that of the user device 100, is connected to the interface of the server device 200. A display and an input device similar to those of the user device 100 may be connected to the interface of the server device 200, but as they are not particularly relevant to the present application, a description thereof will be omitted.
[0032] By executing a computer program recorded in a ROM, a large-capacity storage device, or the like in the server device 200, functional blocks as described below are generated in the server device 200. The functional blocks may be generated by a single function of a computer program for causing the server device 200 to function as the server device of the present invention, or may be generated by cooperation between the computer program and an OS or other computer programs installed in the server device 200. The computer program may be pre-installed in the server device 200, or may be installed in the server device 200 after shipment. In this case, the computer program may be installed in the server device 200 via a predetermined recording medium such as a memory card, or via a network such as a LAN or the Internet. These circumstances are the same as those in the case of the user device 100. Within the server device 200, in relation to the functions of the present invention, an input unit 221, a main control unit 222, a server device solution generation unit 223, a server device solution recording unit 224, a synchronization information generation unit 225, an output unit 227, and a basic information generation unit 228 are generated (Figure 5).
[0033] The input unit 221 receives an input from an interface. The input from the interface includes, for example, specific information. The specific information is sent from the user device 100 via the network 400 and received by the server device 200 via its transmission / reception mechanism. When the input unit 221 receives the specific information, it sends it to the main control unit 222.
[0034] The main control unit 222 controls all of the functional blocks created in the server device 200 . The main control unit 222 may receive specific information data from the input unit 221. When the main control unit 222 receives specific information data, the main control unit 222 sends the data to the synchronization information generation unit 225.
[0035] The server device solution generating unit 223 generates a solution when it receives an instruction to generate a solution. The server device solution generating unit 223 may receive an instruction to generate a solution from the synchronization information generating unit 225 as described later, and generates a solution when it receives such an instruction. In that case, two solutions are generated. Although the method of generating solutions will be described later, the server device solution generator 223 generates solutions in the same manner as the user solution generator 123 of each user device 100 generates solutions. When generating a solution, the server device solution generating unit 223 reads necessary data from the data recorded in the server device solution recording unit 224 and uses the data to generate a solution. The server device solution recording unit 224 records information required when the server device solution generating unit 223 generates a solution. Such information is mainly data of the true initial solution. The data of the true initial solution is the same as the data of the true initial solution recorded in the user solution recording unit 124 of each user device 100. The true initial solution is used when generating a solution, but is not limited to this. Since the server device 200 in this embodiment needs to generate a solution synchronized with all the user devices 100 (user devices 100-1 to 100-N), in a state where at least one solution has not been generated, N true initial solutions, which is the same number as the number of the user devices 100, are recorded in the server device solution recording unit 224. In addition, since the server device solution generating unit 223 needs to know which true initial solution corresponds to which user device 100, each true initial solution is recorded in the server device solution recording unit 224 in a one-to-one association with information for identifying each user device 100. The information for identifying each user device 100 is information unique to each user device 100 that can be included in the identification information, and is, but is not limited to, the IP address of each user device 100 in this embodiment. When it becomes necessary for the user device 100 and the server device 200 to generate a solution in synchronization with each other, the server device solution generating unit 223 in the server device 200 reads out the true initial solution associated with the IP addresses of the two user devices 100 identified by the identification information to perform this. When generating at least the first solution, the server device solution generating unit 223 uses the data of the true initial solution recorded in the server device solution recording unit 224, and also uses other data as necessary. As described above, the server device solution generating unit 223 may receive an instruction from the synchronization information generating unit 225 to generate a solution. In this case, the server device solution generating unit 223 also receives from the synchronization information generating unit 225 two IP addresses, which are information for identifying two specific user devices and are included in the identification information. When the server device solution generating unit 223 receives two IP addresses from the synchronization information generating unit 225, the server device solution generating unit 223 reads two true initial solutions or solutions associated with the two IP addresses from the server device solution recording unit 224. Then, the server device solution generating unit 223 generates two new solutions using the read true initial solutions. Subsequent solutions are generated based on the true initial solutions. Details will be given later, but this allows the server device solution generating unit 223 to generate the same solution as the solution generated by each user solution generating unit 123 in each user device 100. In other words, the solution generated by the server device 200 and the solution generated by the user device 100 are synchronized with each other. The two solutions generated by the server device solution generating unit 223 are sent to the synchronization information generating unit 225 .
[0036] The basic information generating unit 228 generates basic information. As described later, the basic information is information used for generating an initial solution in the user device 100. As described later, the basic information generating unit 228 may receive an instruction to generate basic information from the synchronization information generating unit 225, and generates the basic information when the instruction is received. In this embodiment, the basic information is a predetermined number of letters, numbers, and symbols, similar to the solution. The basic information has the same or fewer digits or characters as the solution, and the amount of information is smaller than that of the solution. Although not limited to this, in this embodiment, the number of digits or characters of the letters, numbers, and symbols constituting the basic information is the same as the number of digits or characters of the letters, numbers, and symbols of the solution. Although not limited to this, the basic information generated by the basic information generating unit 228 is a pseudo-random number in this embodiment. The basic information generated by each server device 200 is unique for each server device 200. The basic information generated by the basic information generating unit 228 is sent to the synchronization information generating unit 225 .
[0037] The synchronization information generating unit 225 generates synchronization information. The synchronization information is information required by both of the two user devices 100 included in a specific user device to perform encrypted communication when the two user devices 100 perform the encrypted communication. The synchronization information is information required to synchronize the solutions in the two user devices 100, and is not the solution itself. The synchronization information will be described in detail later. The reason such synchronization information is necessary is that when two devices generate synchronized solutions, as already explained in this embodiment, a common solution (initial solution in this application) is required for the two user devices 100 included in a specific user device performing encrypted communication so that the server device 200 and each user device 100 have a common true initial solution; however, unless some information is provided to the two user devices 100, which cannot know the initial solution held by the other device, the two user devices 100 cannot synchronize the solutions. The synchronization information generation unit 225 generates synchronization information when the synchronization information generation unit 225 receives specific information from the main control unit 222. When the synchronization information generation unit 225 receives specific information from the main control unit 222, it instructs the server device solution generation unit 223 to generate a solution and receives two solutions from the server device solution generation unit 223, and also instructs the basic information generation unit 228 to generate basic information and receives basic information from the basic information generation unit 228. The synchronization information generating unit 225 generates two pieces of synchronization information by performing a predetermined operation on the basic information and one of the two solutions, and by performing a predetermined operation on the basic information and the other of the two solutions. One of the two pieces of synchronization information is for one of the two user devices 100 identified by the identification information, and the other of the two pieces of synchronization information is for the other of the two user devices 100 identified by the identification information. The predetermined operation is a reversible operation. Details of the method of generating the synchronization information will be described later. When the synchronization information generating section 225 generates two pieces of synchronization information, the synchronization information generating section 225 sends the two pieces of synchronization information to the output section 227 together with the identification information.
[0038] The output unit 227 outputs data generated by the functional blocks in the server device 200 to the interface. As described above, the output unit 227 receives the synchronization information and the identification information from the synchronization information generating unit 225. When the output unit 227 receives the synchronization information, it outputs it to the interface together with the identification information. The synchronization information and the identification information are sent from the interface to the transmission / reception mechanism, and are sent from the transmission / reception mechanism to both of the two user devices 100 identified by the identification information via the network 400. Naturally, the two pieces of synchronization information for one of the specific user devices 100 are sent to one of the specific user devices 100, and the two pieces of synchronization information for the other of the specific user devices 100 are sent to the other of the specific user devices 100. When the transmission / reception mechanism of the server device 200 transmits the synchronization information to the user device 100, it attaches the server identifier of the server device 200 to the synchronization information.
[0039] Next, the method of use and operation of the above-described communication system will be described with reference to FIG. A user who wishes to perform encrypted communication between his / her own user device 100 and another user device 100 first operates the input device 102 of his / her own user device 100 to input specific information for identifying the other user device 100 with which encrypted communication is to be performed. This generates specific information for identifying both of the two user devices 100 that are the specific user devices with which encrypted communication is to be performed (S1001). Data of the specific information is sent from the input device 102 to the input unit 121 via the interface 114, and is then sent from the input unit 121 to the main control unit 122. Similarly, the user operates the input device 102 to input two server identifiers for respectively identifying the two server devices 200 that transmit the specific information. The data of the two server identifiers is sent to the main control unit 122 in the same manner as the data of the specific information.
[0040] Upon receiving the data of the specific information and the server identifier, the main control unit 122 sends the data of the specific information and the server identifier to the output unit 127. The output unit 127 sends the received specific information and server identifier to the interface 114. The interface 114 further sends the received specific information and server identifier to the transmission / reception mechanism. The specific information is simultaneously sent from the transmission / reception mechanism via the network 400 to the two server devices 200 identified by the server identifiers (S1002). Basically, the two server devices 100 need to manage both of the two user devices 100 that will perform encrypted communication and are identified by the identification information. In other words, the server identifier that the user should input needs to manage both of the two user devices 100 identified by the identification information. However, in this embodiment, although not limited to this, all of the server devices 200 manage all of the user devices 100, so the two server devices 200 that the user should identify by the server identifier may be any two of the server devices 200. In this embodiment, the specific information is sent from one of the specific user devices 100 owned by a user who is about to start communication to the two server devices 200, but this is not limited to the above. For example, the specific user device 100 owned by a user who is about to start communication may send the specific information to a certain server device 200, and the other user device 100 may send the specific information to the other server device 200. In this embodiment, the specific information is sent simultaneously from the user device 100 owned by the user who is about to start communication among the specific user devices to the two server devices 200, but this is not necessarily limited to this. Two pieces of synchronization information are sent from the first server device 200 to both of the two user devices 100 that are specific user devices, as described later, but for example, after the first synchronization information arrives at the two user devices 100, the specific information may be sent to the second server device 200.
[0041] The two server devices 200 receive the specific information sent from the user device 100 through their transmission / reception mechanisms (S2001). In both server devices 200, the specific information is sent to the interface of the server device 200, and is sent from the interface to the input unit 221. When the input unit 221 receives the specific information data from the interface, it sends it to the main control unit 222. When the main control unit 222 receives the data of the specific information from the input unit 221, the main control unit 222 sends the specific information to the synchronization information generating unit 225. This triggers the synchronization information generating unit 225 to generate synchronization information, which is information required for synchronizing solutions required when the two user devices 100 included in the specific user device identified by the specific information perform encrypted communication (S2002).
[0042] An example of a method for generating synchronization information will now be described. Upon receiving the specific information, the synchronization information generating unit 225 sends the specific information to the server device solution generating unit 223 as well as an instruction to generate a solution, and also sends an instruction to the basic information generating unit 228 to generate basic information. Then, the server device solution generating unit 223 generates two solutions and sends them to the synchronization information generating unit 225 , and the basic information generating unit 228 generates basic information and sends it to the synchronization information generating unit 225 . Using these, the synchronization information generator 225 generates synchronization information.
[0043] In this embodiment, the server device solution generating unit 223 reads out two true initial solutions associated with two IP addresses included in the specific information. As already described, the true initial solutions are initial solutions as initial values used for generating solutions synchronized between the server device 200 and each user device 100. As described above, in this embodiment, the server device solution generating unit 223 reads out data of the true initial solution recorded in the server device solution recording unit 224 in an initial state at least when generating a solution for the first time. The true initial solution data is, for example, a character string of a mixture of 20-digit numbers and lowercase English letters. This is the same for the initial solution data and the solution data. Such a true initial solution is unique for each user device 100, and is assigned to each user device 100 by the server device 200 or the administrator of the server device 200. There may be one true initial solution, but there may also be multiple true initial solutions. In this embodiment, there is one true initial solution, so the server device solution generating unit 223 reads out one true initial solution from the server device solution recording unit 224. The server device solution generating unit 223 performs calculations on these true initial solutions to generate solutions at that time point. First, the true initial solution is converted to numbers only so that calculations can be performed. If the true initial solution contains any English letters, they are replaced with two-digit numbers. The numbers to be replaced are in the order of the English letters in the alphabet. For example, "a" is replaced with "01", "b" with "02", and "z" with "26". For example, suppose the true initial solution is "5a6458p6556ff4272149". In this case, if the true initial solution is converted to numbers only according to the above rules, it becomes "501645816655606064272149". The number of digits when converted to numbers only increases according to the number of English letters contained in the true initial solution. If you want to include symbols such as (,), !, &, and : in the solution, you can assign appropriate numbers such as "27" to "(", "28" to ")", and "29" to "!". Next, an operation is performed on the numbers. The result of this operation is a string of numbers that is the basis of the solution. If the string of numbers is X, then X can be obtained as follows according to the year, month, day, hour, and minute of the Gregorian calendar at a given time. In the following formula, X1 is the true initial solution converted into a number. In this embodiment, there are five true initial solutions because the solution is changed according to the five elements of the Gregorian calendar year, month, day, hour, and minute. This method of synchronizing the solution by time is similar to the conventional time synchronization method. X=X1 P X1 Q +X1 R X1 S +X1 T Here, P = 1 added to the remainder when dividing the year by 5, Q = 1 added to the remainder when dividing the month by 5, R = 1 added to the remainder when dividing the day by 5, S = 1 added to the remainder when dividing the hour by 5, T = 1 added to the remainder when dividing the minute by 5. By doing this, we can obtain a different sequence of numbers depending on the time of day. Note that the process of adding 1 is added to all of P through T to avoid the frequent occurrence of simple numbers, such as 5, which would be the final solution X if all of P through T happened to be 0. As a result of performing the above operations, we obtain a sequence of numbers X that is the basis of the solution. Next, if any two digits in that sequence of numbers contain the numbers 01 to 26, they are replaced with the letters a to z according to the opposite rule to the previous rule for replacing letters with numbers. The character string containing numbers and lowercase English letters obtained in this manner usually has 20 or more digits. When it has 20 or more digits, for example, 20 characters are extracted from the beginning of the character string and used as the solution. If the character string containing numbers and lowercase English letters obtained in the manner described above has exactly 20 digits, it is used as the solution as is. Also, if the character string containing numbers and lowercase English letters obtained in the manner described above has fewer than 20 digits, the number of digits is increased based on some rule. For example, some number or letter may be inserted into the character string based on the first number or letter of the string until the number of digits reaches 20. Alternatively, one could also use a method in which the above-mentioned process of replacing P and T in the above formula with letters is carried out to generate a string of numbers, and then the numbers are replaced with letters. This process is then repeated to generate a new string of numbers and lowercase letters, and then the original string of numbers and lowercase letters is appended to the end of the original string of numbers and lowercase letters. This process is repeated until the number of digits is at least 20, and then 20 characters are extracted from the front to be used as the solution. In any case, this results in the generation of a solution corresponding to a certain date and time based on the true initial solution. Although not limited to this, in this embodiment, the server device solution generation unit 223 of the server device 200 generates a solution at a time, for example, "5 minutes after" the time when the user device 100 transmits the specific information to the server device 200 (for example, the time specified by the timestamp added by the user device 100 to the packet of data for transmitting the specific information at the time of transmitting the specific information). Note that, as in the following, it does not matter whether the time has actually arrived or not. In this manner, the server device solution generation unit 223 uses the true initial solution for one of the user devices 100 identified by the identification information to generate a solution that can be generated by one of the user devices 100. Similarly, the server device solution generation unit 223 uses the true initial solution for the other of the user devices 100 identified by the identification information to generate a solution that can be generated by the other of the user devices 100. Server device solution generating unit 223 sends the two generated solutions to synchronization information generating unit 225. At this time, the solution that can be generated by one of user devices 100 is linked to information that identifies one of user devices 100, which is included in the identification information, and the solution that can be generated by the other of user devices 100 is linked to information that identifies the other of user devices 100, which is included in the identification information, and the two solutions are sent to synchronization information generating unit 225 in a state where it is clear which solution is for one of user devices 100 and which solution is for the other of user devices 100.
[0044] On the other hand, the method by which the basic information generating unit 228 generates the basic information may be any suitable method for generating pseudo-random numbers. For example, the basic information generating unit 228 may have an appropriate initial solution for generating the basic information, and generate the basic information in the same manner as the server device solution generating unit 223 generates a new solution. Although not limited to this, in this embodiment, the basic information generating unit 228 generates the basic information as a character string of 20 digits and lowercase English letters based on an initial solution for generating the basic information that is unique for each server device 200, in the same manner as the server device solution generating unit 223 generates a solution. Therefore, the basic information generated by each server device 200 is unique, and the basic information generated by each server device 200 cannot be known by other server devices 200 or their administrators unless there is some tampering. The basic information generating unit 228 sends the generated basic information to the synchronization information generating unit 225 .
[0045] In this manner, the synchronization information generating unit 225 receives the two solutions and the basic information. Based on these, the synchronization information generating unit 225 generates the synchronization information. The method of generating the synchronization information is as follows. The synchronization information generating unit 225 performs a predetermined operation, in this embodiment a reversible operation, on the synchronization information and a solution for one of the user devices 100 to generate synchronization information for one of the user devices 100. Examples of reversible operations include, but are not limited to, multiplication and exclusive OR, and in this embodiment, the reversible operation is performed by taking exclusive OR. Similarly, the synchronization information generation unit 225 performs a predetermined operation, in this embodiment a reversible operation, on the synchronization information and the solution for the other of the user devices 100 to generate synchronization information for the other of the user devices 100. Although the synchronization information is the same, the solutions for one and the other user devices 100 are different, so that the two pieces of synchronization information generated by performing operations on the synchronization information and the solutions are different from each other. The synchronization information generating unit 225 sends the two pieces of generated synchronization information to the output unit 227. At this time, the synchronization information for one of the user devices 100 is linked to information identifying one of the user devices 100 included in the identification information, and the synchronization information for the other of the user devices 100 is linked to information identifying the other of the user devices 100 included in the identification information, and the two pieces of synchronization information are sent to the output unit 227 in a state in which it is clear which synchronization information is for one of the user devices 100 and which synchronization information is for the other of the user devices 100.
[0046] The output unit 227 sends the two pieces of synchronization information, each of which is associated with the identification information for one of the user devices 100 and the other of the user devices 100, to the transmission / reception mechanism via the interface. The transmission / reception mechanism sends the two pieces of synchronization information to the two user devices 100 identified by the identification information (S2003). Of course, the synchronization information for one of the user devices 100 is sent to one of the user devices 100 included in the identified user devices, and the synchronization information for the other user device 100 is sent to the other user device 100 included in the identified user devices. A server identifier is attached to the synchronization information sent to the user devices 100 by the transmission / reception mechanism of the server device 200. The above-mentioned processes from S2001 to S2003 are executed in the two server devices 200 in the same manner. Therefore, to two specific user devices 100, synchronization information is sent from one server device 200 and the other server device 200, respectively. Of the synchronization information received by both user devices 100, the information sent from one server device 200 is the first synchronization information, and the information sent from the other server device 200 is the second synchronization information. The terms "first" and "second" in the names of the first synchronization information and the second synchronization information have no relation to the order in which the user device 100 receives the synchronization information. Furthermore, when the synchronization information is sent from the server device 200 to the user device 100, the synchronization information may be further encrypted.
[0047] The synchronization information transmitted from one server apparatus 200 and the other server apparatus 200 is received by both user apparatuses 100, which are specific user apparatuses (S1003). The two pieces of synchronization information, together with the server identifiers attached thereto, are received by the transmitting / receiving mechanism of the user device 100. In both user devices 100, the received two pieces of synchronization information, together with the server identifiers, are sent to the input unit 121 via the interface 114, and then sent from the input unit 121 to the user initial solution generating unit 125 via the main control unit 122.
[0048] Upon receiving the two pieces of synchronization information with the server identifiers attached, the user initial solution generating unit 125 of the user device 100 generates an initial solution based on the two pieces of synchronization information as follows (S1004). As described above, when the user initial solution generation unit 125 receives synchronization information with a server identifier attached, it sends the server identifier attached to the two pieces of synchronization information to the user solution generation unit 123 along with an instruction to generate a solution.
[0049] The user's solution generator 123, which receives an instruction to generate a solution from the user's initial solution generator 125, generates a solution. The user solution generator 123 generates a new solution as follows. The user solution generating unit 123 reads out the true initial solution associated with one of the two server identifiers from the user solution recording unit 124. The user solution generating unit 123 generates a solution in the same manner as when the server device solution generating unit 223 of the server device 200 specified by the server identifier generated a solution. The solution used when the server device solution generating unit 223 generated a solution is the same as the solution used when the user solution generating unit 123 generates a solution, and the method by which the server device solution generating unit 223 generated a solution is the same as the method by which the user solution generating unit 123 generates a solution. Therefore, the user solution generating unit 123 generates a solution that is the same as the solution generated by the server device solution generating unit 223. In other words, the user solution generating unit 123 generates a solution that is the same as the solution generated by the server device 200 specified by one of the two server identifications. Furthermore, the user's solution generating unit 123 reads out the true initial solution associated with the other of the two server identifiers from the user's solution recording unit 124. By using the true initial solution, the user's solution generating unit 123 generates the same solution as that generated by the server device 200 identified by the other of the two server identifiers. The two solutions thus generated are sent from the user's solution generation unit 123 to the user's initial solution generation unit 125 .
[0050] As described above, the user's initial solution generating unit 125 has previously obtained two pieces of synchronization information. In addition, the user's initial solution generating unit 125 has obtained two solutions from the user's solution generating unit 123. Using these, the user's initial solution generating unit 125 generates an initial solution. First, the user's initial solution generation unit 125 performs an inverse operation of the reversible operation performed by the synchronization information generation unit 225 of the server device 200, using the synchronization information sent from the server device 200 identified by one of the two server identifiers and the solution that can be generated by the server device 200 and sent from the user's solution generation unit 123. This allows the user's initial solution generation unit 125 to extract the basic information generated by the basic information generation unit 228 of the server device 200 identified by one of the two server identifiers from the synchronization information. Similarly, the user's initial solution generation unit 125 performs an inverse operation of the reversible operation performed by the synchronization information generation unit 225 of the server device 200, using the synchronization information sent from the user solution generation unit 123 that can be generated by the server device 200, on the synchronization information sent from the server device 200 identified by the other of the two server identifiers. This allows the user's initial solution generation unit 125 to extract the basic information generated by the basic information generation unit 228 of the server device 200 identified by the other of the two server identifiers from the synchronization information. This enables the user initial solution generation unit 125 to obtain two pieces of basic information generated by the two server devices 200 identified by the two server identifiers, i.e., the two server devices 200 that sent the synchronization information. The user initial solution generating unit 125 obtains an initial solution by performing a predetermined operation on the two pieces of basic information. The predetermined operation may be, for example, multiplication of the two pieces of basic information or an exclusive OR operation. Although not limited to this, the latter operation is adopted in this embodiment. The generated initial solution is sent from the user initial solution generating unit 125 to the user solution recording unit 124 and recorded in the user solution recording unit 124. This solution is used when performing encrypted communication with the other user device 100 of the two user devices 100 identified by the identification information, and therefore, in order to clarify this, the solution is recorded in the user solution recording unit 124 in a state linked to information for identifying the other user device 100 (in this embodiment, the IP address of the other user device 100).
[0051] Similar processes, that is, the processes of S1003 and S1004, are also executed in the other of the two user devices 100 that is the specific user device. The two pieces of basic information used when the user initial solution generating unit 125 in the other of the two user devices 100 generates an initial solution are the same as the two pieces of basic information used when generating an initial solution in one of the two user devices 100, and the same predetermined calculation is performed on the two pieces of basic information when generating an initial solution in both user devices 100. Therefore, the initial solutions generated in the two user devices 100 included in a specific user device are the same. The generated initial solution is also recorded in the user solution recording unit 124 in the other of the two user devices 100. At this time, the solution is recorded in the user solution recording unit 124 in a state linked to the IP address of one of the two user devices 100, which is the specific user device. In this way, the common initial solution is recorded in each of the user solution recording units 124 of the two user devices 100 that are specific user devices. In other words, a state is formed in which the two user devices 100 that are specific user devices have a common initial solution. In other words, the two user devices 100 that are specific user devices are now ready to perform encrypted communication.
[0052] In this state, encrypted communication is performed between the two user devices 100 constituting the specific user device (S1005).
[0053] In the following description of encrypted communication, one of two user devices performing encrypted communication, which are specific user devices, will be referred to as one user device 100, and the other as the other user device 100. First, a case where encrypted data is transmitted from one user device 100 to another user device will be described. In addition, between two user devices 100, it is essentially free as to which user device 100 transmits encrypted data to which user device 100. Whether encrypted data is transmitted from one user device 100 to the other user device 100 or from the other user device 100 to one user device 100, the processes performed in both user devices 100 are simply reversed, and the processes themselves performed in both user devices 100 do not change. A user operating one of the user devices 100 generates or selects data to be transmitted by operating the input device 102 of the user device 100. The data to be transmitted is plaintext data. In one user device 100, data to be transmitted is sent from interface 114 to input unit 121 and then to user encryption / decryption unit 126. The data to be transmitted is encrypted in user encryption / decryption unit 126, and the solution is used for this purpose. The user encryption / decryption unit 126 sends an instruction to generate a solution to the user solution generation unit 123, so that the user solution generation unit 123 generates a solution. Upon receiving this instruction, the user solution generation unit 123 generates a new solution. There is no restriction on how the user solution generation unit 123 generates a solution, so long as the solutions generated by the user solution generation unit 123 in the two user devices 100 are synchronized. For example, the method for synchronizing the solutions generated by the user solution generation unit 123 and the server device solution generation unit 223 and the method for synchronizing the solutions generated by the user solution generation unit 123 in the two user devices 100 that are specific user devices may be the same or different. In this embodiment, the user solution generator 123 in one of the user devices 100 generates a solution corresponding to a time one year, one month, one day, one hour, and one minute after the time used to generate the initial solution, regardless of the time at that time. Furthermore, environmental information, which is common information that is pre-agreed between the two user devices 100 and can be acquired by two user devices 100 located at different locations (for example, the temperature in a certain city at the time of communication, or the outcome of a game specified by a certain rule of a certain sport), can also be used as information for generating a solution. The user's solution generator 123 uses the initial solution read from the user's solution recorder 124 and generates a new solution using the method and time described above. The new solution is sent from the user solution generating unit 123 to the user encryption / decryption unit 126 in one of the user devices 100 . The user encryption / decryption unit 126 receives a new solution from the user solution generation unit 123 and uses it to encrypt data to be transmitted. In this case, the solution can be used freely. For example, if the user device 100 and the server device 200 perform encrypted communication using a common key system, the user encryption / decryption unit 126 can use the new solution as a common key. That is, the solution can be used as an encryption key. The solution can also be used as information that serves as the basis for generating a common key. On the other hand, the solution can also be used to change the encryption algorithm. The solution can also be used to select one algorithm from multiple types of algorithms based on the solution. In either case, the data to be transmitted is encrypted by the user encryption / decryption unit 126 to become encrypted data. The generated encrypted data is sent from the user encryption / decryption unit 126 to the output unit 127 . The output unit 127 of one user device 100 sends the encrypted data to the transceiver mechanism via the interface 114. The encrypted data is sent to the other user device 100 via the network 400.
[0054] The other user device 100 receives the encrypted data sent from the user device 100 through its transmission / reception mechanism. The encrypted data is sent from the transmission / reception mechanism to an input unit 121 via an interface 114. The input unit 121 sends the encrypted data to a user encryption / decryption unit 126. The user encryption / decryption unit 126 in the other user device 100 that received the encrypted data decrypts the encrypted data. To do so, the user encryption / decryption unit 126 uses the solution generated by the user solution generation unit 123. The user encryption / decryption unit 126 sends an instruction to the user solution generation unit 123 to generate a solution, so that the user solution generation unit 123 generates a solution. Upon receiving such an instruction, the user solution generation unit 123 generates a new solution. The method by which user solution generation unit 123 in the other user device 100 generates a solution is the same as the method employed by user solution generation unit 123 in one user device 100, and the initial solution that user solution generation unit 123 reads from user solution recording unit 124 is common to the initial solution used in one user device 100. As a result, user solution generation unit 123 in the other user device 100 generates a new solution that is the same as that generated by user solution generation unit 123 in one user device 100. In other words, the two user devices 100 generate synchronized solutions. The new solution is sent from the user solution generation unit 123 to the user encryption / decryption unit 126 . The user encryption / decryption unit 126 receives the new solution from the user solution generation unit 123 and uses it to decrypt the encrypted data. In this case, the solution is used in accordance with the way the solution is used by the user encryption / decryption unit 126 of one of the user devices 100. For example, if two user devices 100 use the solution as a common key for encrypted communication in a common key system, and one of the user devices 100 uses the solution in this way, the user encryption / decryption unit 126 of the other user device 100 also uses the new solution as a common key. In either case, the encrypted data is decrypted by the user encryption / decryption unit 126 and restored to the original plaintext data to be transmitted. The data to be transmitted is sent from the user encryption / decryption unit 126 to the output unit 127, and from the output unit 127 via the interface 114 to, for example, another application in the other user device 100, or to the display 101 for appropriate display.
[0055] When encrypted data is transmitted from another user device 100 to one user device 100, the roles of the one user device 100 and the other user device 100 in the above description are exchanged.
[0056] When encrypted communication is no longer necessary, the encrypted communication ends. In the communication system of this embodiment, only one solution is used in the process of S1005 for performing encrypted communication, or the solution is fixed. Instead of this, it is possible to have the user solution generating units 123 of the two user devices 100, which are specific user devices, continuously generate solutions to be used for encryption or decryption, for example, in the same way that a common key for performing encrypted communication of a common key system is changed one after another. In that case, for example, in order to generate a new solution following the solution used for authentication, an agreement is made between all the user solution generating units 123 and the server device solution generating unit 223 to generate a solution corresponding to a time one year, one month, one day, one hour, and one minute after the time when the solution used for authentication is generated. In this case, an agreement may be made between the user solution generating units 123 of all the user devices 100, for example, such that the solutions to be generated thereafter are solutions generated one minute, two minutes, three minutes, etc., in order. Of course, it is also possible to exchange more complicated agreements between the two. On the other hand, just as the common key for carrying out encrypted communication in the common key system is changed one after another, the timing for changing the solution used when carrying out encryption and decryption processing in the user encryption / decryption units 126 of the two user devices 100 that are specific user devices can be appropriately determined. For example, the solution used for encryption or decryption may be changed or updated to a newly generated solution every time a predetermined time has passed since the start of encrypted communication, or the solution may be changed or updated every time the amount of encrypted data exceeds a certain amount of data. For example, when encrypting certain plaintext data, a method is usually used in which the certain plaintext data is cut into small data pieces at a predetermined number of bits and then an encryption operation is carried out on each of the small data pieces. For example, a new solution may be generated and the common key changed every time 10 pieces of the small data are encrypted, or in some cases, a new solution may be generated and the common key changed every time one piece of the small data is encrypted. Of course, when carrying out such encryption, the decryption side also generates a solution in the same way as the encryption side, and changes the solution that becomes the common key in the same way. Such an operation can be performed by both of the two user devices 100, each of which is a specific user device.
[0057] Furthermore, once two user devices 100 serving as specific user devices have synchronized the solutions in the manner described above, the two user devices 100 serving as specific user devices can maintain the synchronized state of the solutions permanently as long as the two user devices 100 are functioning. For example, if the final solutions generated by both user devices 100 when the above-mentioned encrypted communication is finished are recorded in the user solution recording units 124 of both user devices 100 as initial solutions to be used in the next encrypted communication, then in the next encrypted communication, the two user devices 100 can execute encrypted communication using synchronized solutions without relying on the server device 200 to generate synchronization information. In particular, if the above-mentioned environmental information is used when generating a solution, there is almost no possibility that a third party, including the server device 200 and its administrator, will be able to learn the solution and the initial solution. On the other hand, each user device 100 may of course not store the initial solution as described above, but may receive synchronization information from the server device 200 each time encrypted communication is performed, and repeat the above-mentioned process.
[0058] <Variation 1> A modification of the above-described communication system will now be described. The communication system described below differs from the communication system of the above-described embodiment only in the way in which solutions are synchronized between the server device 200 and each user device 100, and in the way in which solutions are synchronized between two user devices 100 that are specific user devices. In other respects, there is no difference between the configuration of the communication system of the first modification and the embodiment, and there is also no difference in the method of use and operation thereof.
[0059] In the embodiment, the method of generating solutions in the user solution generation unit 123 of the user device 100 and the server device solution generation unit 223 of the server device 200 employs a method of synchronizing solutions such as time synchronization, which is a conventional method of generating one-time passwords using tokens, etc. In contrast, in the first modification, a method of synchronizing solutions based on the number of solutions generated in the past (or the order of the solutions generated (the number of solutions that the solution is)), such as event synchronization, is employed, which is a method of generating one-time passwords.
[0060] In the first modification, the method for generating new solutions in the user solution generation unit 123 and the server device solution generation unit 223 can be, for example, a method for continuously generating solutions by performing a predetermined operation on an initial solution to obtain a solution, then performing a predetermined operation on the solution again to obtain a next solution, then performing a predetermined operation on the solution again to obtain a next solution, and so on. Such a technique is well known as a technique for generating pseudo-random numbers.
[0061] A more specific method for generating a solution by the user solution generation unit 123 and the server device solution generation unit 223 will be described. The method for generating a new solution by the user solution generation unit 123 of the user device 100 and the method for generating a new solution by the server device solution generation unit 223 of the server device 200 are common, so the following description will not distinguish between them. Also, the initial solution and the true initial solution will not be distinguished, and both will be collectively described as the initial solution. To generate a solution, use an initial solution (there may be more than one, as in (a) and (c) below), substitute previous solutions into a specified function, and create new solutions in sequence. This method can be performed every time a solution is needed. In this way, the above solutions can be generated continuously. The solutions in this case are pseudo-random numbers that are dependent on the initial solution. The following (a) to (c) are examples of functions used to create the above solutions. All of the following (a) to (c) are the Nth solution, X N where P, Q, R, and S are appropriate natural numbers. (a)(X N )=(X N-1 ) P +(X N-2 ) Q (b)(X N )=(X N-1 ) P (c)(X N )=(X N-1 ) P (X N-2 ) Q (X N-3 ) R(X N-4 ) S In (a), a new solution is generated by using two previous solutions and raising them to the Pth and Qth powers and adding them together. To be precise, when two previous solutions are used and raised to the Pth and Qth powers and added together, the number of digits usually increases, so in practice, a new solution is generated by extracting an appropriate number of digits from the beginning of the obtained value, an appropriate number of digits from the end, or an appropriate number of digits from an appropriate part of the value. Although not limited to this, in the embodiment, the solution is assumed to have 20 digits. (b) uses one previous solution, raises it to the power of P, and rearranges the number of digits as described above to obtain a new solution. (c) takes the four previous solutions, raises them to the Pth, Qth, Rth, and Sth powers, multiplies them, and then rearranges the number of digits as described above to get the new solution. The above (a) to (c) are examples of algorithms for generating a solution, and it is possible to make changes to the algorithm when generating a solution, for example by using the above (a) to (c) in order. The above-mentioned methods using the formulas (a) to (c) can be used when the solution is composed of numbers only. If you want to include letters and symbols in the solution, you can use the method of assigning numbers to letters and symbols described in the embodiment. According to the method of successively generating solutions using the above-mentioned formulas, solutions generated in the same order will always be the same if the initial solution is the same. Therefore, if a common algorithm is used and a common initial solution is possessed, the server device solution generation unit 223 in the server device 200 and the user solution generation unit 123 in the user device 100 can generate a common synchronized solution, and the user solution generation units 123 in each of the two user devices 100 in a particular user device can generate a common synchronized solution. Although not limited thereto, the user solution generating unit 123 and the server device solution generating unit 223 in Modification 1 generate solutions using the above algorithm (a). Also, the user solution generating units 123 in the two user devices 100 included in the specific user device in Modification 1 (or all user devices 100, considering that all user devices 100 may be specific user devices) generate solutions using the above algorithm (a).
[0062] The use and operation of such a communication system will now be described in more detail to make the configuration of the communication system clearer. The operation of the communication system of the first modification is as shown in Fig. 6, and is roughly the same as that of the embodiment. In particular, steps S1001 to S1002 in the specific user device and step S2001 in the server device 200 are completely the same as those in the embodiment. The two server devices 200 receive the specific information. The specific information is sent to the synchronization information generating unit 225 via the transmission / reception mechanism, the interface, the input unit 221, and the main control unit 222. The synchronization information generating units 225 in the two server devices 200 generate synchronization information, which is information required for synchronizing solutions required when the two user devices 100 included in the specific user device specified by the specific information perform encrypted communication (S2002).
[0063] In the case of variant example 1, as in the case of the embodiment, the server device solution generation unit 223 generates two solutions that can be generated by both of the two user devices 100 identified by the identification information sent to the server device 200. As in the embodiment, the server device solution generation unit 223 generates two solutions when the synchronization information generation unit 225 sends the server device solution generation unit 223 an instruction to generate a solution together with specific information. The server device solution generating unit 223 in the first modification calls the true initial solution or the solution associated with each of the two IP addresses included in the specific information. As described above, the server device solution generating unit 223 in the embodiment reads out the data of the true initial solution recorded in the server device solution recording unit 224 at least when generating a solution for the first time. However, in addition to the true initial solution, the server device solution recording unit 224 in the server device 200 in the first modification records information on how many solutions have been generated in the past using the true initial solution. The server device solution generating unit 223 reads out the data of the true initial solution and information on how many solutions have been generated in the past based on the true initial solution from the server device solution recording unit 224.
[0064] In the case where the server device solution generating unit 223 of the first modification generates a solution, for example, it is assumed that the server device solution generating unit 223 has generated three solutions in the past. In this case, the server device solution generating unit 223 reads out the true initial solution and the number 3, which is the number of solutions generated in the past, from the server device solution recording unit 224. The server device solution generating unit 223 uses the above-mentioned formula (a) to calculate the true initial solutions ((X0), (X -1 ) to generate a first solution (X1), then use the first solution (more precisely, use (X1) and (X0)) to generate a second solution, and repeat this process to generate a fourth solution (X4). Then, server device solution generating unit 223 increments the number of previously generated solutions recorded in server device solution recording unit 224 by 1 to "4". As a result, the next solution generated by server device solution generating unit 223 will be the fifth solution, (X5). The server device solution generating unit 223 generates two solutions for the two user devices 100 identified by the identification information, and sends them to the synchronization information generating unit 225, as in the embodiment. On the other hand, in the same manner as in the embodiment, in response to a request from the synchronization information generating unit 225 , the basic information generating unit 228 generates basic information and sends it to the synchronization information generating unit 225 . The synchronization information generating unit 225 generates two pieces of synchronization information based on the two solutions received from the server device solution generating unit 223 and the basic information received from the basic information generating unit 228. The method may be the same as that of the embodiment, and is so performed in the first modification.
[0065] As in the embodiment, synchronization information is sent to two user devices 100 that are specific user devices (S2003). The two user devices 100, which are specific user devices, receive synchronization information from the two server devices 200, respectively.
[0066] In the two user devices that have received the synchronization information, the synchronization information is sent to the user initial solution generating unit 125 in the same manner as in the embodiment. The user initial solution generators 125 in the two user devices 100 send the two server identifiers attached to the synchronization information to the user solution generator 123, in the same manner as in the embodiment. The user solution generation unit 123 that receives it reads out the true initial solution (or solutions) that are linked to the two received server identifiers from among the true initial solutions (or solutions) recorded in the user solution recording unit 124. The two true initial solutions (or solutions) that are read out are the same as those used by the server device 200 when generating the synchronization information sent to the user device 100. If what is read out is not the true initial solution but the solution that was generated some time ago, the user solution generation unit 123 reads out information on how many solutions have been generated in the past based on the true initial solution, which is recorded in the user solution recording unit 124 in the same way as that recorded in the server solution recording unit 224. The user solution generating unit 123 generates a new solution using the read information. The method of generating a solution is the same as the method of generating a solution in the server device solution generating unit 223. The true initial solution or solution used to generate a new solution is the same as the true initial solution or solution used when the server device solution generating unit 223 generated a solution when the server device 200 generated the synchronization information sent to the user device 100, and the method of generating a solution based on them is also the same as the method used when the server device solution generating unit 223 generated a solution. Therefore, the user solution generating unit 123 generates the same solution as the solution generated by the server device solution generating unit 223 that sent the synchronization information. The user's solution generating unit 123 generates two solutions that are the same as the solutions generated by the two server devices 200 that have sent the synchronization information. The user's solution generator 123 sends the two solutions to the user's initial solution generator 125 .
[0067] The process thereafter is the same as in the embodiment. The user initial solution generation unit 125 performs a predetermined calculation using the two previously received pieces of synchronization information and the two solutions, thereby generating basic information generated by each of the two server devices 200 from the two pieces of synchronization information. Then, the user initial solution generation unit 125 generates an initial solution by performing a predetermined calculation on the basic information generated by each of the two server devices 200. The initial solution generated in the two user devices 100 that are specific user devices is the same as in the embodiment, so that the two user devices 100 that are specific user devices share the same initial solution.
[0068] The subsequent processing may be completely the same as in the embodiment. In other words, the processing for generating solutions continuously and synchronously, which is required to realize the encrypted communication (S1005) performed between two specific user devices, may be realized by time synchronization such as a token. On the other hand, in variant 1, it is also possible to achieve such synchronization of solutions through event synchronization achieved by tokens or the like, and the following explanation will be given assuming that solutions are generated in this manner in variant 1.
[0069] As in the embodiment, in the following description, one of two user devices performing encrypted communication as a specific user device will be referred to as one user device 100, and the other will be referred to as the other user device 100. First, a case where encrypted data is transmitted from one user device 100 to another user device 100 will be described. A user operating one of the user devices 100 operates the input device 102 of the user device 100 to generate data to be transmitted. Data to be transmitted is sent from interface 114 through input unit 121 to user encryption / decryption unit 126 in one user device 100. The data to be transmitted is encrypted in user encryption / decryption unit 126, and the solution is used for this purpose. User encryption / decryption unit 126 sends an instruction to user solution generation unit 123 to generate a solution, so that user solution generation unit 123 generates a solution. Upon receiving this instruction, user solution generation unit 123 generates a new solution. As described above, two solutions, (X4) and (X5), are recorded in user solution recording unit 124. User solution generation unit 123 of one user device 100 reads out these two solutions. By substituting these into the above-mentioned equation (a), user solution generation unit 123 in one user device 100 can generate the sixth solution, (X6). User solution generation unit 123 records (X4) and (X5) in user solution recording unit 124 in order to generate the next solution, and sends the generated solution, (X6), to user encryption / decryption unit 126. The user encryption / decryption unit 126 uses this solution (X6) to encrypt the data to be transmitted. The method of using the solution in the encryption process may be the same as in the embodiment. The data to be transmitted is encrypted by the user encryption / decryption unit 126 to become encrypted data. The generated encrypted data is sent from the user encryption / decryption unit 126 to the output unit 127. The encrypted data is sent from one user device 100 to the other user device 100 in the same manner as in the embodiment.
[0070] The other user device 100 receives the encrypted data sent from the user device 100 through its transmission / reception mechanism. The encrypted data is sent from the transmission / reception mechanism to the input unit 121 via the interface 114, and further to the user encryption / decryption unit 126. The user encryption / decryption unit 126 in the other user device 100 that received the encrypted data decrypts the encrypted data. To do so, the user encryption / decryption unit 126 uses the solution generated by the user solution generation unit 123. The user encryption / decryption unit 126 sends an instruction to the user solution generation unit 123 to generate a solution, so that the user solution generation unit 123 generates a solution. Upon receiving such an instruction, the user solution generation unit 123 generates a new solution. The method by which user solution generation unit 123 in the other user device 100 generates a solution is the same as the method employed by user solution generation unit 123 in one user device 100, and the initial solution that user solution generation unit 123 reads from user solution recording unit 124 is common to the initial solutions ((X4) and (X5)) used in one user device 100. As a result, user solution generation unit 123 in the other user device 100 generates a new solution that is the same as that generated by user solution generation unit 123 in one user device 100. In other words, the two user devices 100 generate synchronized solutions. The new solution is sent from the user solution generation unit 123 to the user encryption / decryption unit 126. The user encryption / decryption unit 126 receives the new solution from the user solution generation unit 123 and uses it to decrypt the encrypted data. The decryption method is the same as in the embodiment. The user encryption / decryption unit 126 decrypts the encrypted data and returns it to the original plaintext data to be transmitted.
[0071] The subsequent processing in the communication system of the first modification is similar to that in the embodiment. When encrypted data is transmitted from another user device 100 to one user device 100, the roles of the one user device 100 and the other user device 100 in the above description are exchanged. When encrypted communication is no longer necessary, the encrypted communication ends.
[0072] In the communication system of the first modification, only one solution is used in the process of S1005 for performing encrypted communication, or the solution is fixed. Instead of this, it is possible to have the user solution generating units 123 of the two user devices 100, which are specific user devices, continuously generate solutions to be used for encryption or decryption, for example, in the same way that a common key for performing encrypted communication in a common key system is changed one after another. As described above, by using the same immediately preceding solution (not necessarily one), the user solution generators 123 in the two user devices 100 can successively generate synchronized solutions. By successively generating a synchronized common solution by the user solution generators 123 in the two user devices 100, the two user devices 100, which are specific user devices, can perform encrypted communication using the synchronized solution. The timing that can be adopted as the timing for generating a new solution is as described in the embodiment. As in the embodiment, it is up to the user whether or not to use the solution once synchronized between the user devices 100 included in a specific user device in subsequent encrypted communications between the two user devices 100 included in that specific user device. In the embodiment, the synchronization information is sent to the user device 100 that cannot generate an initial solution. However, it is also possible to transmit the synchronization information to both user devices 100 and have both user devices 100 use their own solutions to extract from the synchronization information an arbitrary one of the solutions that can only be generated by the other user device 100 (for example, one determined between both user devices 100) as the initial solution.
[0073] <Variation 2> A communication system according to the second modification will be described. The communication system of the second modification is almost the same as the communication system described in the embodiment. The differences between the two are as follows. The communication system described below differs from the communication system of the above-described embodiment only in the way in which solutions are synchronized between the server device 200 and each user device 100, and in the way in which solutions are synchronized between two user devices 100 that are specific user devices. In other respects, there is no difference between the configuration of the communication system of the first modification and the embodiment, and there is also no difference in the method of use and operation thereof. In the above embodiment, each server device 200 manages all user devices 100, can generate a solution common to all user devices 100, and can transmit synchronization information (first synchronization information or second synchronization information) to all user devices 100. In contrast, at least some of the server devices 200 in the second modification manage only some of the many user devices 100. Such a situation may occur, for example, when the user devices 100 are smartphones and each of mobile phone carriers, for example, Company A, Company D, and Company S, manages only the user devices 100 owned by its users.
[0074] The communication system of the second modification includes 1000 user devices 100, ie, user devices 100-1 to 1000, and six server devices 200, ie, server devices 200-1 to 200-6. The configuration of each user device 100 may be the same as that described in the embodiment. The same is true for server devices 200-1 to 200-4 among server devices 200. However, among server devices 200, those described below are capable of performing encrypted communication between each other.
[0075] Although not limited thereto, in the second modification, the server device 200-1 manages the user devices 100-1 to 100-300 in the above sense. That is, the server device 200-1 can generate a solution synchronized with the solutions generated in all the user devices 100-1 to 100-300. The server device 200-1 can also provide synchronization information (first synchronization information or second synchronization information) to any two of the user devices 100 among the user devices 100-1 to 100-300. Similarly, server device 200-2 manages user device 100-301 through user device 100-600, server device 200-3 manages user device 100-601 through user device 100-800, and server device 200-4 manages user device 100-1 through user device 100-1000, that is, all user devices 100. The server device 200-1 and the server device 200-2 are configured to realize encrypted communication between them. Such encrypted communication may be, or may not be, encrypted communication realized between two user devices 100 that are specific user devices in the embodiment, and performed using a solution generated synchronously. On the other hand, the server device 200-5 and the server device 200-6 in the second modification do not manage any of the user devices 100 in the sense described in the first embodiment. However, the server device 200-5 is capable of performing encrypted communication with the server device 200-1 and the server device 200-3, and the server device 200-6 is capable of performing encrypted communication with the server device 200-2 and the server device 200-4. The encrypted communication performed by the server device 200-5 with the server device 200-1 or the server device 200-3, and the encrypted communication performed by the server device 200-6 with the server device 200-2 or the server device 200-4 may be, or may not be, encrypted communication performed using a solution generated synchronously, which is realized between two user devices 100 that are specific user devices in the embodiment.
[0076] The above explanation is shown in Fig. 7. The thick arrows in the figure indicate that the server devices 200 connected by the arrows can perform encrypted communication with each other. Note that the network 400 is omitted in Fig. 7. In the above-described communication system, of course, any two user devices 100 managed by a common server device 200, which constitute a specific user device, can obtain synchronization information (first synchronization information or second synchronization information) supplied from the server device 200 under the control of the server device 200 that commonly manages them. In other words, user equipment 100-1 to user equipment 100-300 can obtain common synchronization information from server equipment 200-1, user equipment 100-301 to user equipment 100-600 can obtain common synchronization information from server equipment 200-2, user equipment 100-601 to user equipment 100-800 can obtain common synchronization information from server equipment 200-3, and user equipment 100-1 to user equipment 100-1000, i.e., all user equipment 100, can obtain synchronization information from server equipment 200-4.
[0077] For example, assume that a situation arises in which the user device 100-1 and the user device 100-2 require a common initial solution to perform encrypted communication using a solution generated synchronously. In this case, the user device 100-1 and the user device 100-2, which are specific user devices, need to receive the first synchronization information and the second synchronization information, which are the two common pieces of synchronization information, from the two server devices 200, as described in the above embodiment. In this case, user device 100-1 and user device 100-2 can receive first synchronization information from one of server device 200-1 and server device 200-4 and second synchronization information from the other of server device 200-1 and server device 200-4 by transmitting specific information to server device 200-1 and server device 200-4 that commonly manage them. The methods of generating and receiving the first synchronization information and the second synchronization information are as described in the embodiment. As a result, the user device 100-1 and the user device 100-2 can obtain a common initial solution by, for example, performing an exclusive OR operation on the first synchronization information and the second information received by each of them. Using this initial solution, user device 100-1 and user device 100-2 can perform encrypted communications using a solution that is generated synchronously. This case is the same as the case of the above-described first embodiment. The administrators of the server device 200-1 and the server device 200-4 cannot know the initial solutions used by the user devices 100-1 and 100-2 unless they conspire with each other.
[0078] In contrast to this, suppose that a situation arises in which the user device 100-1 and the user device 100-400 require a common initial solution to perform encrypted communication using a solution generated synchronously. In this case, the user device 100-1 and the user device 100-400, which are specific user devices, need to receive the first synchronization information and the second synchronization information, which are two pieces of common synchronization information, from each of the two server devices 200. The server device 200 that commonly manages the user device 100-1 and the user device 100-400 is the server device 200-4. Therefore, the user device 100-1 and the user device 100-400 can obtain either the first synchronization information or the second synchronization information from the server device 200-4 by either of them sending specific information to the server device 200-4. However, since there is no other server device 200 that manages both the user device 100-1 and the user device 100-400, a problem arises as to which server device 200 the user device 100-1 and the user device 100-400 should receive the other of the first synchronization information and the second synchronization information from.
[0079] In the second modification, this problem is solved as follows. For example, the user device 100-1 sends the identification information to the server device 200-1 that manages the user device 100-1. In this case, the server device 200-1 manages the user device 100-1 but does not manage the other user device 100-400 identified by the identification information, so it searches for a server device 200 that manages the user device 100-400 identified by the identification information and that can perform encrypted communication with the server device 200. For example, the server device 200-1 issues an inquiry to each server device 200 as to whether or not it manages the user device 100-400. Then, the server device 200-1 finds the server device 200-2 as the server device 200 that manages the user device 100-400. One of the server device 200-1 and the server device 200-2 generates the other of the first synchronization information and the second synchronization information. Then, the server device 200-1 and the server device 200-2 that generated the synchronization information sends the other of the first synchronization information and the second synchronization information in an encrypted state to the server device 200-1 and the server device 200-2 that did not generate the synchronization information. The server device 200-1 or the server device 200-2 that received the other of the first synchronization information and the second synchronization information in an encrypted state restores the other of the first synchronization information and the second synchronization information to plain text. In this state, the other of the first synchronization information and the second synchronization information is shared between the server device 200-1 and the server device 200-2. Next, the server device 200-1 sends the other of the encrypted first synchronization information and the second synchronization information to the user device 100-1, which can perform encrypted communication because the solution is synchronized, and the server device 200-2 sends the other of the encrypted first synchronization information and the second synchronization information to the user device 100-400, which can perform encrypted communication because the solution is synchronized. The user device 100-1 and the user device 100-400 decrypt the other of the encrypted first synchronization information and the second synchronization information. As a result, the user device 100-1 and the user device 100-400 have the same other of the first synchronization information and the second synchronization information. In this way, the user device 100-1 and the user device 100-400 have the same first synchronization information and second synchronization information, and can obtain a common initial solution by performing, for example, an exclusive OR operation on the first synchronization information and second information received by each of the user devices 100-1 and 100-400. Using this initial solution, user device 100-1 and user device 100-400 can perform encrypted communications using a solution generated synchronously. In this example, the server device 200-4 can only grasp either the first synchronization information or the second synchronization information, and the server device 200-1 and the server device 200-2 can only grasp the other of the first synchronization information and the second synchronization information. Therefore, unless the administrator of the server device 200-1 or the server device 200-2 and the administrator of the server device 200-4 conspire with each other, the initial solutions used by the user devices 100-1 and 100-400 cannot be known.
[0080] In this way, two server devices 200 each managing two user devices 100 as specific user devices and capable of performing encrypted communication with each other cooperate to execute the processing that should be executed by one server device 200, thereby making it possible to provide at least one of the first synchronization information and the second synchronization information to the user devices 100 managed by the two server devices 200. Of course, it is also possible to have three or more server devices 200 capable of performing encrypted communication with each other cooperate to execute the process that should be executed by one server device 200.
[0081] For example, assume that the user device 100-1 and the user device 100-800 need a common initial solution to perform encrypted communication using a solution generated synchronously. In this case, the user device 100-1 and the user device 100-800, which are specific user devices, need to receive the first synchronization information and the second synchronization information, which are two common pieces of synchronization information, from the two server devices 200, respectively. The server device 200 that commonly manages the user device 100-1 and the user device 100-400 is the server device 200-4. Therefore, the user device 100-1 and the user device 100-400 can obtain either the first synchronization information or the second synchronization information from the server device 200-4 by either sending specific information to the server device 200-4. However, since there is no other server device 200 that manages both the user device 100-1 and the user device 100-800, the problem arises as to which server device 200 the user device 100-1 and the user device 100-400 should receive the other of the first synchronization information or the second synchronization information from.
[0082] This problem is solved as follows: For example, the user device 100-1 sends the identification information to the server device 200-1 that manages the user device 100-1. In this case, the server device 200-1 manages the user device 100-1 but does not manage the other user device 100-800 that is identified by the identification information. Therefore, the server device 200-1 searches for a server device 200 that manages the user device 100-800 that is identified by the identification information and that can perform encrypted communication with the user device 100-1. However, such a server device 200 does not exist. Therefore, the server device 200-1 searches for a server device 200 that can perform encrypted communication with the server device 200-3 that is the server device 200 that manages the user device 100-800. For example, the server device 200-1 issues an inquiry to each server device 200 that can perform encrypted communication with the server device 200-3 that is the server device 200 that manages the user device 100-800, as to whether or not encrypted communication with the server device 200-3 that is the server device 200 that manages the user device 100-800 is possible. Then, the server device 200-1 finds the server device 200-5 as a server device 200 that can perform encrypted communication with the server device 200-3, which is the server device 200 that manages the user device 100-800. Simply put, server device 200-1 is capable of performing encrypted communication with server device 200-3 via server device 200-5.
[0083] Once this is determined, one of server device 200-1, server device 200-3, and server device 200-5 generates the other of the first synchronization information and the second synchronization information. Then, server device 200-1, server device 200-3, and server device 200-5 share the other of the first synchronization information and the second synchronization information by performing encrypted communication between those of them that can perform encrypted communication with each other. As a result, the other of the first synchronization information and the second synchronization information is shared between server device 200-1 and server device 200-3. Next, the server device 200-1 sends the other of the encrypted first synchronization information and the second synchronization information to the user device 100-1, which can perform encrypted communication because the solution is synchronized, and the server device 200-3 sends the other of the encrypted first synchronization information and the second synchronization information to the user device 100-800, which can perform encrypted communication because the solution is synchronized. The user device 100-1 and the user device 100-800 decrypt the other of the encrypted first synchronization information and the second synchronization information. As a result, the user device 100-1 and the user device 100-800 have the same first synchronization information and the other of the second synchronization information. In this way, the user device 100-1 and the user device 100-800 have the same first synchronization information and second synchronization information, and can obtain a common initial solution by performing, for example, an exclusive OR operation on the first synchronization information and second information received by each of the user devices 100-1 and 100-800. Using this initial solution, user device 100-1 and user device 100-800 can perform encrypted communications using a solution generated synchronously. In this example, server device 200-4 can only grasp either the first synchronization information or the second synchronization information, and server device 200-1, server device 200-3, and server device 200-5 can only grasp the other of the first synchronization information and the second synchronization information. Therefore, none of the administrators of the four server devices 200 involved in supplying the synchronization information can know the initial solutions used by user device 100-1 and user device 100-800 unless an administrator of any of server devices 200-1, 200-3, and 200-5 and an administrator of server device 200-4 conspire with each other.
[0084] In this way, it is possible to distribute the first synchronization information or the second synchronization information (or both) to two user devices 100 as specific user devices by having three or more cooperating server devices 200 perform processing as one server device 200. However, it is necessary that there is no overlap between the server device 200 involved in supplying one of the first synchronization information and the second synchronization information and the server device 200 involved in supplying the other of the first synchronization information and the second synchronization information. If there is such an overlap, there is a possibility that there will be a server device 200 that can grasp both the first synchronization information and the second synchronization information, and furthermore, that can grasp the initial solution used by a specific user device. [Explanation of symbols]
[0085] 100 User device 101 Display 102 Input Device 121 Input section 122 Main control unit 123 User Solution Generation Unit 124 User Solution Recording Section 125 User initial solution generator 126 User Encryption and Decryption Unit 127 Output section 221 Input section 222 Main control unit 223 Server device solution generation unit 224 Server Device Solution Recording Section 225 Synchronization information generation unit 227 Output unit 228 Basic information generation unit
Claims
1. A communication system including three or more user devices that are capable of communicating with each other via a network and two or more server devices that are connected to the network and control communications between the user devices, the communication system being configured by combining the user device with two or more of the server devices; a user solution generator that can continuously generate solutions that are a predetermined number of enumerations of at least one of letters, numbers, and symbols based on an initial solution, and that are always the same when generated under the same conditions; a user encryption unit that encrypts data to be transmitted using the solution generated by the user solution generation unit to generate encrypted data; a user transmission / reception unit for transmitting and receiving data via the network; a user decryption unit that executes a process of decrypting the encrypted data received by the user transmitting / receiving unit using the solution generated by the user solution generation unit to generate the data to be transmitted; In addition, When two specific user devices which are to perform encrypted communication have a common initial solution, the specific user device is capable of performing encrypted communication by generating the common solution synchronized between the two user devices in their respective user solution generating units, and by decoding the encrypted data generated by the user encryption unit of the other device encrypting the data to be transmitted, which is sent from the user transmitting / receiving unit of the other device and received by the user transmitting / receiving unit of the first user device, into the data to be transmitted by the user decrypting unit of the first user device, A method executed on the particular user device, comprising: a first step in which one of the specific user devices transmits specific information that identifies both of the specific user devices to a first server device that is one of the server devices by the user transmitting / receiving unit, and one of the specific user devices transmits specific information that identifies both of the specific user devices to a second server device that is another of the server devices by the user transmitting / receiving unit; a second step of receiving, in the user transceiver unit of each of the specific user devices, first synchronization information that is unique to each of the server devices and is information necessary for the specific user devices to obtain the same initial solution and to synchronize the solution between the specific user devices, the first synchronization information being generated by the first server device that has received the identification information and transmitted to both of the specific user devices identified by the identification information; a third step of receiving, by the user transceiver unit of each of the specific user devices, second synchronization information, which is the synchronization information generated by the second server device that has received the specific information and transmitted to both of the specific user devices identified by the specific information; a fourth step in which each of the user devices performs a predetermined calculation using the first synchronization information and the second synchronization information, without using data transmitted and received between the specific user devices, to obtain the common initial solution; A method comprising:
2. the server device includes a server device solution generation unit capable of generating, based on an initial solution identical to an initial solution in each of the user devices, a solution that is the same as the solution generated by the user solution generation unit of each of the user devices and is synchronized with a solution generated by the user solution generation unit of each of the user devices, based on an initial solution identical to an initial solution in each of the user devices, which is different from the initial solution in each of the user devices; a basic information generation unit that continuously generates basic information that is information unique to each of the server devices; and a server device calculation unit that performs reversible calculations using the basic information generated by the basic information generation unit and the solution generated by the server device solution generation unit, In the second step, the first server device that has received the specific information generates the first synchronization information by performing calculations in the server device calculation unit of the first server device using the basic information generated in the basic information generation unit of the first server device and the solution that can be generated by the user solution generation unit of one of the specific user devices and that has been generated in the server device solution generation unit of the first server device; the first synchronization information transmitted to one of the specific user devices identified by the specific information is received by one of the specific user devices in its user transmission / reception unit; the first server device that has received the specific information generates the first synchronization information by performing a calculation in the server device calculation unit of the first server device using the basic information generated in the basic information generation unit of the first server device and the solution that can be generated by the user solution generation unit of the other of the specific user devices that has been generated in the server device solution generation unit of the first server device, and the other of the specific user devices receives the first synchronization information, which is different from the information sent to one of the specific user devices identified by the specific information, in its user transmission / reception unit; In the third step, the second server device that has received the specific information generates the second synchronization information by performing calculations in the server device calculation unit of the second server device using the basic information generated in the basic information generation unit of the second server device and the solution that can be generated by the user solution generation unit of one of the specific user devices that has been generated in the server device solution generation unit of the second server device, and one of the specific user devices receives the second synchronization information transmitted to the one of the specific user devices identified by the specific information in its user transmission / reception unit, the second server device that has received the specific information generates the second synchronization information by performing a calculation in the server device calculation unit of the second server device using the basic information generated in the basic information generation unit of the second server device and the solution that can be generated by the user solution generation unit of the other of the specific user devices that has been generated in the server device solution generation unit of the second server device, and the other of the specific user devices receives the second synchronization information, which is different from the information sent to one of the specific user devices identified by the specific information, in its user transmission / reception unit; In the fourth step, One of the specific user devices: for the first synchronization information received from the first server device, the solution generated by the user solution generation unit thereof is the same as that generated by the first server device when generating the first synchronization information, to perform an inverse operation of the operation performed by the server device calculation unit of the first server device, thereby extracting the basic information generated when the first synchronization information is generated by the first server device; and for the second synchronization information received from the second server device, the solution generated by the user solution generation unit thereof is the same as that generated by the second server device when generating the second synchronization information, to perform an inverse operation of the operation performed by the server device calculation unit of the second server device, thereby extracting the basic information generated when the second synchronization information is generated by the second server device; the other of the particular user devices, for the first synchronization information received from the first server device, the solution generated by the user solution generation unit thereof is the same as that generated by the first server device when generating the first synchronization information, to perform an inverse operation of the operation performed by the server device calculation unit of the first server device, thereby extracting the basic information generated when the first synchronization information is generated by the first server device; and for the second synchronization information received from the second server device, the solution generated by the user solution generation unit thereof is the same as that generated by the second server device when generating the second synchronization information, to perform an inverse operation of the operation performed by the server device calculation unit of the second server device, thereby extracting the basic information generated when the second synchronization information is generated by the second server device; Then, both of the specific user devices obtain the common initial solution by performing a predetermined calculation on the two pieces of common basic information generated by the first server device and the second server device, respectively, without using data transmitted and received between the specific user devices. The method of claim 1.
3. The calculation performed by the server device calculation unit is to take an exclusive OR of the basic information and the solution. The method of claim 2.
4. a solution generated by the user solution generating unit and a solution generated by the server device solution generating unit always have an amount of information equal to or greater than that of basic information generated by the basic information generating unit; 4. The method according to claim 2 or 3.
5. A communication system including three or more user devices that are capable of communicating with each other via a network and two or more server devices that are connected to the network and control communications between the user devices, the communication system being configured by combining the user device with two or more of the server devices; a user solution generator that can continuously generate solutions that are a sequence of at least one of letters, numbers, and symbols in a predetermined number based on an initial solution, and that are always the same when generated under the same conditions; a user encryption unit that encrypts data to be transmitted using the solution generated by the user solution generation unit to generate encrypted data; a user transmission / reception unit for transmitting and receiving data via the network; a user decryption unit that executes a process of decrypting the encrypted data received by the user transmitting / receiving unit using the solution generated by the user solution generation unit to generate the data to be transmitted; In addition, When two specific user devices which are to perform encrypted communication have a common initial solution, the specific user device is capable of performing encrypted communication by generating the common solution synchronized between the two user devices in their respective user solution generating units, and by decoding the encrypted data generated by the other user encryption unit encrypting the data to be transmitted, which is sent from the other user transmission / reception unit and received by the user transmission / reception unit of the specific user device, in the user decryption unit of the specific user device to obtain the data to be transmitted. When the user equipment becomes the specific user equipment, One of the specific user devices transmits specific information that identifies both of the specific user devices to a first server device that is one of the server devices by the user transmitting / receiving unit, and one of the specific user devices transmits specific information that identifies both of the specific user devices to a second server device that is another of the server devices by the user transmitting / receiving unit; receiving, by the user transceiver unit of each of the specific user devices, first synchronization information that is unique to each of the server devices and is information necessary for the specific user devices to obtain the same initial solution and to synchronize the solution between the specific user devices, the first synchronization information being generated by the first server device that has received the specific information and transmitted to both of the specific user devices identified by the specific information; receiving, by the user transceiver unit of each of the specific user devices, second synchronization information that is the synchronization information generated by the second server device that has received the specific information and transmitted to both of the specific user devices identified by the specific information; each of the user devices performs a predetermined calculation using the first synchronization information and the second synchronization information without using data transmitted and received between the user devices to obtain the common initial solution; A user device configured to execute the above steps.
6. A communication system including three or more user devices that are capable of communicating with each other via a network and two or more server devices that are connected to the network and control communications between the user devices, the communication system being configured as a user device in combination with two or more server devices, the computer program being configured to cause a predetermined computer to function as the user device, The computer program causes the computer to: a user solution generator that can continuously generate solutions that are a sequence of at least one of letters, numbers, and symbols in a predetermined number based on an initial solution, and that are always the same when generated under the same conditions; a user encryption unit that encrypts data to be transmitted using the solution generated by the user solution generation unit to generate encrypted data; a user transmission / reception unit for transmitting and receiving data via the network; a user decryption unit that executes a process of decrypting the encrypted data received by the user transmitting / receiving unit using the solution generated by the user solution generation unit to generate the data to be transmitted; It is intended to function as a When two specific user devices which are to perform encrypted communication have a common initial solution, the common solution synchronized between the two user devices is generated by their respective user solution generating units, and encrypted data generated by the other user encryption unit encrypting the data to be transmitted, which is sent from the other user transmission / reception unit and received by the user transmission / reception unit of the first user device, can be decrypted by the user decryption unit of the first user device to generate the data to be transmitted, thereby enabling the specific user device to perform encrypted communication; And when the user device becomes the specific user device, the specific user device is One of the specific user devices transmits specific information that identifies both of the specific user devices to a first server device that is one of the server devices by the user transmitting / receiving unit, and one of the specific user devices transmits specific information that identifies both of the specific user devices to a second server device that is another of the server devices by the user transmitting / receiving unit; receiving, by the user transceiver unit of each of the specific user devices, first synchronization information that is unique to each of the server devices and is information necessary for the specific user devices to obtain the same initial solution and to synchronize the solution between the specific user devices, the first synchronization information being generated by the first server device that has received the specific information and transmitted to both of the specific user devices identified by the specific information; receiving, by the user transceiver unit of each of the specific user devices, second synchronization information that is the synchronization information generated by the second server device that has received the specific information and transmitted to both of the specific user devices identified by the specific information; each of the user devices performs a predetermined calculation using the first synchronization information and the second synchronization information without using data transmitted and received between the user devices to obtain the common initial solution; A computer program for executing the above.
Citation Information
Patent Citations
Communication system by shared cryptographic key, server device and client device for the system, and method for sharing cryptographic key in communication system
JP1997321748A
Mediation method and system for authentication
JP2009086802A
A cryptosystem provided for key sharing
JP2017526304A
Communication system, server device, user equipment, method, computer program
JP2018093417A