WO2022145496A1 - ユーザ装置、方法、コンピュータプログラム - Google Patents
ユーザ装置、方法、コンピュータプログラム Download PDFInfo
- Publication number
- WO2022145496A1 WO2022145496A1 PCT/JP2022/000049 JP2022000049W WO2022145496A1 WO 2022145496 A1 WO2022145496 A1 WO 2022145496A1 JP 2022000049 W JP2022000049 W JP 2022000049W WO 2022145496 A1 WO2022145496 A1 WO 2022145496A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- user
- solution
- server device
- information
- generated
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 163
- 238000004590 computer program Methods 0.000 title claims description 35
- 238000004891 communication Methods 0.000 claims abstract description 232
- 230000001360 synchronised effect Effects 0.000 claims abstract description 46
- 230000005540 biological transmission Effects 0.000 claims description 141
- 230000008569 process Effects 0.000 claims description 72
- 238000004364 calculation method Methods 0.000 claims description 44
- 230000002441 reversible effect Effects 0.000 claims description 19
- 230000007246 mechanism Effects 0.000 description 32
- 230000004048 modification Effects 0.000 description 25
- 238000012986 modification Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 6
- 239000000284 extract Substances 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 239000000969 carrier Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/03—Protecting confidentiality, e.g. by encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
Definitions
- the present invention relates to communication technology, more specifically to cryptographic communication technology.
- the inventor of the present application has developed a certain technique in advance and is striving to disseminate it.
- the technique proposed by the inventor of the present application is the following technique.
- the two communication devices communicate with each other via a network such as the Internet.
- the two communication devices include a solution generation unit that generates a solution in which at least one of letters, numbers, and symbols is continuously arranged in a predetermined number.
- a solution generation unit generates a solution based on the initial solution, and the ones generated under the same conditions are always the same. That is, the solution has an initial value dependency.
- the solution generated by the solution generator is a pseudo-random number.
- the two communication devices include an encryption unit.
- the encryption unit executes a process of encrypting the transmission target data to be transmitted by using the solution generated by the solution generation unit to convert it into encrypted data.
- the two communication devices include a transmission unit that transmits the encrypted data generated by the encryption unit to the communication device that is the communication partner.
- the two communication devices include a receiving unit that receives encrypted data from a communication device that is a communication partner.
- the two communication devices include a decryption unit that executes a process of decrypting the received encrypted data using the solution generated by the solution generation unit into the data to be transmitted. Then, the two communication devices that are going to perform encrypted communication have a common initial solution, and therefore, the solution generation unit that they both have can generate the same solution. In the present invention, such a situation is referred to as allowing two devices to generate a synchronized solution. Then, since the two communication devices can generate a synchronized solution, the encrypted communication in such a communication device becomes extremely secure.
- the two devices when two devices execute communication of a common key method, the two devices use an algorithm that defines an encryption or decryption process and a common key that is used when executing the algorithm. Sharing.
- new synchronized common solutions are generated one after another by the solution generation unit in the two communication devices that perform communication.
- the encryption unit and the decryption unit in the above two communication devices use the common solution as a common key (or common information for generating a common key) that changes at a common timing. Achieves extremely high communication security.
- the above-mentioned communication device proposed by the inventor of the present application not only generates a solution for each communication, but also disconnects the transmission target data at a plurality of timings when encrypting the transmission target data, and in the most frequent case. This makes it possible to generate a new solution each time a unit of data to be encrypted or decrypted is generated at one time. That is, the above-mentioned communication device proposed by the inventor of the present application updates the common key when the encrypted communication is executed at least once each communication, and in some cases, at a more frequent timing. For example, since disposable common keys are generated one after another for encrypted communication, the strength of the encryption is extremely high.
- the target changed by the above solution does not necessarily have to be a common key or other key, and may be an algorithm.
- the two communication devices are encrypted communication. Can't do. Therefore, the two communication devices are required to share the same initial solution required to synchronize the solutions before performing encrypted communication. However, it can be difficult. It is a case where there are a large number of communication devices and two of the many communication devices perform encrypted communication. For example, when a large number of personal computers, mobile phones, and smartphones are the above-mentioned communication devices, and two of the communication devices exchange e-mails as an example of communication, the two communication devices are used. , Must have a common initial solution before the start of communication. In this case, the number of pairs of two communication devices that need to perform encrypted communication is enormous, and it is troublesome to have a common initial solution for the two communication devices in all the pairs. , Also difficult.
- the technique is to prepare a control device that manages encrypted communication between two communication devices, which is also connected to the Internet, in addition to a large number of communication devices connected to the Internet.
- Such a control device is adapted to transmit synchronization information, which is information necessary for each communication device to generate a common initial solution, to two communication devices before starting encrypted communication.
- the two communication devices that communicate can share a common initial solution by generating a common initial solution from the synchronization information.
- the two communication devices that have obtained a common initial solution will be able to generate synchronized solutions by their solution generation units when performing encrypted communication thereafter.
- the two communication devices can share the initial solution and generate the synchronized solution. Therefore, the two communication devices can perform encrypted communication with extremely high confidentiality. Such encrypted communication is extremely unlikely to be eavesdropped by a malicious third party.
- the control device knows the synchronization information, if the control device or its administrator has malicious intent, the control can generate an initial solution used by the two communication devices based on the synchronization information. A device, its administrator, or someone who colludes with that administrator can eavesdrop on encrypted communication between two communication devices.
- the present invention provides two communication devices, which are intended to perform encrypted communication, among a large number of communication devices, to have a common initial solution required to generate a synchronized continuous solution used for encrypted communication.
- the challenge is to provide highly safe technology for this purpose.
- the invention of the present application for solving the above-mentioned problems is as follows.
- the present invention includes three or more user devices that can communicate with each other via a network, and two or more server devices connected to the network that control communication between the user devices. Is a method executed by a specific user device described later, which is two of the user devices configured by the combination of the two or more server devices.
- Each of the user devices included in the above-mentioned communication system is a solution in which at least one of letters, numbers, and symbols is enumerated in a predetermined number based on an initial solution, and those generated under the same conditions are always generated.
- the user solution generation unit that can continuously generate the same data and the transmission target data to be transmitted are encrypted using the solution generated by the user solution generation unit and encrypted data.
- the encrypted data generated by encrypting the transmission target data by the user encryption unit of the other party by generating the common solution by the user solution generation unit of the other party, respectively.
- the data sent from the user transmission / reception unit and received by the user transmission / reception unit can be decoded by the user decoding unit to be used as the transmission target data.
- a specific user device can perform encrypted communication.
- the method in the present invention is a method executed by the specific user device, and the user transmission / reception unit provides specific information that is information that identifies both of the specific user devices by any of the specific user devices.
- the first server device which is one of the server devices
- one of the specific user devices sends specific information, which is information that identifies both of the specific user devices, by the user transmission / reception unit.
- the transmitted first synchronization information which is unique synchronization information for each server device, is information necessary for the specific user device to obtain the same initial solution and synchronize the solution between the specific user devices.
- the second process which is received by the user transmission / reception unit of each of the specific user devices, and the second server device, which receives the specific information, are generated and transmitted to both the specific user device specified by the specific information.
- the user device and the server device in the present invention generally correspond to the communication device and the control device described in the column of background art.
- Each user device is provided with a user solution generation unit corresponding to the solution generation unit in the communication device described in the background technique column, and the user solution generation unit can continuously generate solutions. .. If a specific user device, which is two user devices that perform encrypted communication among the user devices, has a common initial solution, the user device is similar to the communication device described in the background technique section.
- the same solution can be generated in a synchronized state by the solution generation unit, and encrypted communication can be performed using the solution.
- the solution is a random number, more specifically a pseudo-random number because it is a random number that can be generated by a computer.
- the two user devices In order for the two user devices that communicate with the specific user device to synchronize the solutions, the two user devices must have a common initial solution. is necessary. In the present invention, this is realized by executing the following first to fourth processes.
- the first process one of the specific user devices transmits specific information, which is information that identifies both of the specific user devices, to the first server device, which is one of the server devices, by the user transmission / reception unit, and is specified.
- One of the user devices transmits specific information, which is information that identifies both of the specific user devices, to the second server device, which is the other one of the server devices, by the user transmission / reception unit.
- the first process is which of the two user devices that communicate with the two server devices, the first server device and the second server device, which is one of the specific user devices that will be communicating from now on. It is to notify that. For example, if a unique identifier, for example, an ID, an IP address, a telephone number, or the like is assigned to each user device, it is assigned to two user devices that are specific user devices. One of the user devices included in the specific user device notifies the first server device and the second server device of the identifier as specific information. The user device that gives the notification to the first server device and the user device that gives the notification to the second server device may or may not be the same.
- a unique identifier for example, an ID, an IP address, a telephone number, or the like
- the first server device that received the specific information generated and transmitted to both of the specific user devices specified by the specific information.
- the specific user device obtained the same initial solution and solved the solution between the specific user devices.
- the first synchronization information which is unique synchronization information for each server device, which is information necessary for synchronization, is received by the user transmission / reception unit of each specific user device.
- synchronization information is generated by the first server device that received the specific information, and the first synchronization information, which is the generated synchronization information, is sent to the two user devices specified by the specific information. Be done.
- the two user devices which are specific user devices, receive the first synchronization information.
- the first synchronization information may or may not be the same, as will be described later.
- the second synchronization information which is the synchronization information generated by the second server device that received the specific information and transmitted to both of the specific user devices specified by the specific information, is transmitted and received by each user of the specific user device. It is accepted by the department.
- 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 device appears in place of the first server device.
- synchronization information is generated by the second server device that received the specific information, and the second synchronization information, which is the generated synchronization information, is sent to the two user devices specified by the specific information. Be done.
- the two user devices which are specific user devices, receive the second synchronization information.
- the second synchronization information may or may not be the same, as will be described later.
- the fourth process is that each of the user devices obtains a common initial solution by performing a predetermined predetermined operation using the first synchronization information and the second synchronization information. As a result, the two user devices will share a common initial solution.
- the first synchronization information sent by the first server device to each of the specific user devices in the second process is the same
- the second synchronization information sent by the second server device to each of the specific user devices in the third process is the same.
- the two user devices which are specific user devices, can be obtained by multiplying the first synchronization information and the second synchronization information, respectively, or by taking an exclusive logical sum thereof.
- the advantages of giving the specific user device the same initial solution by such a method are as follows.
- the initial solution that the specific user apparatus will have by such a 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
- the second server device knows the second synchronization information but does not know the first synchronization information.
- 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, so that the two user devices that are specific user devices can be used. Unable to generate the generated initial solution.
- the administrator of the first server device and the administrator of the second server device collude, both the first synchronization information and the second synchronization information can be known, so that the initial generation generated by the specific user device can be known. It may be possible to figure out the solution, but such possibilities are possible with the first server device or its administrator and the second server device or its administrator, as in the prior art described in the Background Techniques section. Compared to the possibility that only one of them has malicious intent, it is extremely low and easy to expose. Therefore, the process in which two user devices as specific user devices have an initial solution by the method of the present invention is extremely safe as compared with the conventional case.
- the server device in the present invention may include a server device solution generation unit similar to the user solution generation unit of each user device. That is, the server device is the same as the solution generated by the user solution generation unit of each of the user devices based on the same initial solution as the initial solution in the user device that is different in each of the user devices. , The server device solution generation unit capable of generating the solution synchronized with the one generated by each user solution generation unit of the user device may be provided.
- the "initial solution” here is not an initial solution for generating a solution in a state synchronized between specific user devices, but an initial solution for generating a solution in a state synchronized between a server device and each user device. be.
- each server device has a basic information generation unit that continuously generates basic information that is unique information for each server device, and the basic information generated by the basic information generation unit and the server device solution generation. It may be provided with a server device calculation unit that performs a reversible operation using the solution generated by the unit.
- the second to fourth processes in the method of the present invention can be as follows.
- the first server device that has received the specific information has the basic information generated by the basic information generation unit of the first server device, and the server device solution generation unit of the first server device.
- the first synchronization information is generated by calculating with the server device calculation unit of the first server device using the solution that can be generated by the user solution generation unit of one of the specific user devices generated in.
- the first synchronization information transmitted to one of the specific user devices specified by the specific information is received by one of the specific user devices at the user transmission / reception unit, and the first server that receives the specific information.
- the device has the basic information generated by the basic information generation unit of the first server device and the other user solution generation unit of the specific user device generated by the server device solution generation unit of the first server device.
- the first synchronization information is generated by calculating in the server device calculation unit of the first server device, and transmitted to one of the specific user devices specified by the specific information.
- the other side of the specific user device receives the first synchronization information different from the one sent to one of the specific user devices by the user transmission / reception unit.
- the first server device is generated by performing a reversible operation on the basic information generated by the first server device and the solution that can be generated by one of the specific user devices.
- the first synchronization information generated by sending the generated first synchronization information to one of the specific user devices and performing a reversible operation on the same basic information as the above basic information and a solution that can be generated by the other of the specific user devices.
- the first synchronization information received by one of the specific user devices and the other is based on the same basic information, but is different from each other because the operations are performed by different solutions.
- the second server device that has received the specific information has the basic information generated by the basic information generation unit of the second server device and the server device solution generation unit of the second server device.
- the second synchronization information is generated by calculating with the server device calculation unit of the second server device using the solution that can be generated by the user solution generation unit of one of the specific user devices generated in.
- the second synchronization information transmitted to one of the specific user devices specified by the specific information is received by one of the specific user devices at the user transmission / reception unit, and the second server that receives the specific information.
- the device has the basic information generated by the basic information generation unit of the second server device and the other user solution generation unit of the specific user device generated by the server device solution generation unit of the second server device.
- the second synchronization information is generated by calculating in the server device calculation unit of the second server device, and transmitted to one of the specific user devices specified by the specific information.
- the other side of the specific user device receives the second synchronization information different from the one sent to one of the specific user devices by the user transmission / reception 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 device appears in place of the first server device.
- the second server device is generated by performing a reversible operation on the basic information generated by the second server device and the solution that can be generated by one of the specific user devices.
- the second synchronization information generated is sent to one of the specific user devices, and a reversible operation is performed on the same basic information as the above basic information and a solution that can be generated by the other of the specific user devices.
- the second synchronization information received by one of the specific user devices and the other is based on the same basic information, but is different from each other because the operations are performed by different solutions.
- the fourth process when one of the specific user devices generates the first synchronization information generated by the user solution generation unit with respect to the first synchronization information received from the first server device.
- the first server device uses the same solution generated by the first server device to perform the inverse calculation of the calculation performed by the server device calculation unit of the first server device.
- the second server is generated by using the same solution as that generated by the second server device to perform the inverse calculation of the calculation performed by the server device calculation unit of the second server device.
- the basic information generated when the device generates the second synchronization information is taken out, and the other of the specific user devices generates the user solution for the first synchronization information received from the first server device.
- the basic information generated when the first synchronization information is generated by the first server device is taken out, and the second synchronization information received from the second server device is obtained.
- the second synchronization information is performed by the arithmetic unit of the second server device.
- both of the specific user devices perform a predetermined predetermined operation on the two common basic information generated by the first server device and the second server device, respectively, thereby performing the common initial stage.
- Get a solution To put it plainly, one of the specific user devices takes out the basic information generated by the first server device from the first synchronization information received from the first server device, and the second synchronization information received from the second server device. The basic information generated by the second server device is taken out from, and a predetermined calculation is performed on the two basic information to generate an initial solution.
- the first synchronization information generated by the first server device performs 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.
- the solution used in the first server device when performing a reversible operation that can be generated by one of the specific user devices is used in the first server device for the first synchronization information. If the reverse calculation of the calculation is performed, one of the specific user devices can extract the basic information generated by the first server device from the first synchronization information. Similarly, 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 basic information extracted in this way, one of the specific user devices can obtain an initial solution. The same process is performed on the other side of the specific user device.
- the other side of the specific user device extracts the basic information generated by the first server device from the first synchronization information received from the first server device, and the second synchronization information received from the second server device.
- the basic information generated by the second server device is taken out from, and a predetermined calculation is performed on the two basic information to generate an initial solution.
- the other of the specific user devices can retrieve the basic information generated by the first server device from the first synchronization information received from the first server device, and the second synchronization received from the second server device.
- the reason why the basic information generated by the second server device can be extracted from the information is the same as the reason why they are possible on the other side of the specific user device.
- the other side of the specific user device performs a predetermined operation on the two 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 from the first synchronization information and the second synchronization information by the other of the specific user devices are one of the specific user devices. Since it is the same as the basic information generated by the first server device and the basic information generated by the second server device extracted in, a predetermined operation is performed on the two basic information extracted in this way. By doing so, the initial solution obtained by the other of the specific user devices is the same as the initial solution obtained by one of the specific user devices.
- the server device 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 operation performed by the server device arithmetic unit is to take the exclusive OR of the basic information and the solution, or to take the product of the basic information and the solution.
- the server device has a server device solution generation unit
- the solution generated by the user solution generation unit and the solution generated by the server device solution generation unit are always generated by the basic information generation unit.
- the amount of information may be the same as or larger than the basic information.
- the operation performed on the basic information and the solution may be an exclusive-OR operation as described above.
- the exclusive OR operation is used in Burnham encryption and one-time pad encryption, which are a type of encrypted communication. It has been mathematically proved that these Burnham ciphers and the like are completely undecipherable if certain conditions are met.
- the condition is "to perform an exclusive OR operation on the character string to be hidden with a random number having the same amount of information as the character string to be hidden".
- the information that the first server device wants to hide 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.
- the information that the second server device wants to hide 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 applies to the second server device. Therefore, if the solution generated by the first server device, the second server device, and the two specific user devices is used as a random number in Burnham encryption or the like, the first synchronization information generated by the first server device can be obtained. ,
- the second synchronization information generated by the second server device is in a completely undecipherable encrypted state.
- the first server device or its administrator obtains the second synchronization information
- the first server device or its administrator knows the basic information generated by the second server device included in the second synchronization information.
- the second server device or its administrator is the basis generated by the first server device included in the first synchronization information. You will not be able to know the information.
- the first synchronization information and the second synchronization information may be sent to the specific user device in a further encrypted state, but between the first server device and the specific user device, or between the second server device and the specific user. Even if the encrypted communication between the devices 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. That is, according to this method, the initial solution used between the specific user devices is leaked for reasons other than the human reason that the administrator of the first server device and the administrator of the second server device collude. The possibility disappears theoretically.
- the inventor of the present application also proposes a user device capable of executing the method of the present invention as one aspect of the present invention.
- the effect of such a user device is equal to the effect of the method of the present invention.
- An example user device includes three or more user devices that can communicate with each other via a network, and two or more server devices connected to the network that control communication between the user devices. It is a user apparatus which comprises the communication system including the above, and configures by the combination with two or more said server apparatus.
- This user device is a solution in which at least one of letters, numbers, and symbols is enumerated in a predetermined number based on the initial solution, and the ones generated under the same conditions are always the same.
- User encryption that executes a process of encrypting the user solution generation unit that can be generated and the transmission target data to be transmitted using the solution generated by the user solution generation unit into encrypted data.
- the encrypted data received by the user transmission / reception unit, the user transmission / reception unit that transmits / receives data via the network, and the encrypted data received by the user transmission / reception unit are decoded using the solution generated by the user solution generation unit. It has a user decryption unit that executes a process of making data to be transmitted. Then, the user device is synchronized between the two user devices when the specific user device, which is the two user devices trying to perform encrypted communication, has the common initial solution to each other.
- the specification is such that what is sent from the user transmission / reception unit and received by the user transmission / reception unit can be decoded by the user decoding unit and used as the transmission target data.
- the user device can perform encrypted communication. Further, when the user device becomes the specific user device, the user device uses the user transmission / reception unit to transmit specific information, which is information that identifies both of the specific user devices, to the server device.
- one of the specific user devices sends specific information, which is information that identifies both of the specific user devices, to the server device by the user transmission / reception unit.
- the transmission to the second server device, which is another one, and the transmission to both the specific user device generated by the first server device that received the specific information and specified by the specific information.
- the specific user device obtains the same initial solution, and the first synchronization information, which is unique synchronization information for each server device, is information necessary for synchronizing the solution between the specific user devices.
- the second synchronization information which is received by each of the user transmission / reception units, is generated by the second server device that has received the specific information, and is transmitted to both the specific user device specified by the specific information.
- the synchronization information is received by the user transmission / reception unit of each of the specific user devices, and each of the user devices performs a predetermined predetermined calculation using the first synchronization information and the second synchronization information. To obtain the common initial solution and to execute.
- the inventor of the present application also proposes, as an aspect of the present invention, a computer program for enabling the method of the present application to be executed on a predetermined computer.
- the effect of such a computer program is equal to the effect of the method according to the present invention, and it is also one of the effects to allow a predetermined (for example, general-purpose) computer to carry out the method of the present invention.
- An example computer program includes three or more user devices that can communicate with each other via a network, and two or more server devices connected to the network that control communication between the user devices. It is a computer program for making a predetermined computer function as a user apparatus which comprises the communication system including the above, which is configured by the combination with two or more said server apparatus.
- the computer program is a solution in which at least one of letters, numbers, and symbols is enumerated in a predetermined number based on the initial solution of the computer, and the ones generated under the same conditions are always the same.
- the user encryption unit to be executed the user transmission / reception unit that transmits / receives via the network, and the encrypted data received by the user transmission / reception unit, the solution generated by the user solution generation unit is used. It is intended to function as a user decryption unit that executes a process of decrypting and converting the data to be transmitted.
- the computer program is synchronized between the two user devices when the specific user device, which is the two user devices trying to perform encrypted communication, has the common initial solution to each other.
- the encrypted data generated by encrypting the transmission target data by the user encryption unit of the other party by generating the common solution by the user solution generation unit of the other party, respectively.
- the data sent from the user transmission / reception unit and received by the user transmission / reception unit can be decoded by the user decoding unit to be used as the transmission target data.
- It is a computer program for enabling a specific user device to perform encrypted communication. Then, when the user device becomes the specific user device, the computer program provides the specific user device with specific information that is information that any one of the specific user devices identifies both of the specific user devices.
- the user transmission / reception unit transmits to the first server device, which is one of the server devices, and one of the specific user devices transmits / receives specific information which is information for specifying both of the specific user devices.
- the specific user device generated by the first server device that receives the specific information and that is transmitted to the second server device, which is another one of the server devices, and is specified by the specific information.
- First synchronization which is unique synchronization information for each server device, which is information necessary for the specific user device to obtain the same initial solution and synchronize the solution between the specific user devices, which is transmitted to both of the above.
- the information was received by the user transmission / reception unit of each of the specific user devices, and was generated by the second server device that received the specific information and transmitted to both the specific user device specified by the specific information.
- the second synchronization information which is the synchronization information, is received by the user transmission / reception unit of each of the specific user devices, and each of the user devices is predetermined by using the first synchronization information and the second synchronization information. It is a computer program for obtaining a common initial solution by performing a predetermined operation and executing the operation.
- the figure which shows the whole structure of the communication system by this embodiment The figure which shows the appearance of the user apparatus included in the communication system shown in FIG.
- the figure which shows the hardware configuration of the user apparatus included in the communication system shown in FIG. The block diagram which shows the functional block generated inside the user apparatus included in the communication system shown in FIG.
- the block diagram which shows the functional block generated inside the server apparatus included in the communication system shown in FIG. The figure which shows the flow of the process which is executed when the communication is performed in the communication system shown in FIG.
- FIG. 1 schematically shows the overall configuration of a communication system as an embodiment of the transmission / reception system of the present invention.
- the communication system of this embodiment includes a large number of user devices 100-1 to 100-N (hereinafter, may be simply referred to as "user device 100"), and a plurality of server devices 200-1 to 200-n. (Hereinafter, it may be simply referred to as “server device 200".). All of these are made connectable to the network 400. There are at least three user devices 100 and at least two server devices 200. In addition, the number of server devices 200 is generally much smaller 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 referred to in the present application.
- the server device 200 in this embodiment corresponds to the server device referred to in the present application.
- the user devices 100-1 to 100-N are premised on the fact that two of them communicate with each other.
- the user devices 100-1 to 100-N are owned by each user.
- the communication is encrypted communication using continuously generated solutions as described later, and the user devices 100-1 to 100-N are used for such encrypted communication.
- the user device 100 may be a computer for causing another user device 100 to browse a home page via the network 400.
- Each server device 200 may manage all the user devices 100, but may manage a part of the user device 100 one by one. Although not limited to this, in this embodiment, it is assumed that all the server devices 200 manage all the user devices 100. "Management" can generate a solution common to the user device 100 to be managed, or can transmit synchronization information (first synchronization information or second synchronization information) to the user device 100. It means that. These points will be described later.
- the server device 200 in this embodiment is a company having a certain degree of public property, for example, a company having a credit enough to be a certificate authority in SSL or TSL, or a public company. It can be managed by an organization.
- the server device 200 is managed by a provider that connects 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. You may be.
- the user device 100 includes a computer. More specifically, the user apparatus 100 in this embodiment is composed of a general-purpose computer.
- the configurations of the user devices 100-1 to 100-N are the same in relation to the present invention.
- the user device 100 is a mobile phone, a smartphone, a tablet, a notebook personal computer, a desktop personal computer, or the like. All of the user devices 100 need to be capable of communicating via the network 400, and by installing a computer program described later, a functional block described later is generated inside the user apparatus 100, and a functional block described later is generated therein. It is also required to be able to execute the process. However, as long as they are possible, other specifications of the user apparatus 100 are not particularly limited.
- 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 GK
- the user device 100 as a tablet may be, for example, Apple. It may be an iPad series product manufactured and sold by Japan GK.
- the discussion will proceed assuming that the user device 100 is a smartphone.
- FIG. 2 shows an example of the appearance of the user device 100.
- the user device 100 includes a display 101.
- the display 101 is for displaying a still image or a moving image, and a known or well-known display 101 can be used.
- 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 the user to perform a desired input to the user device 100.
- a known or well-known input device 102 can be used as the input device 102.
- the input device 102 of the user device 100 in this embodiment is a button type, but the input device 102 is not limited to this, and a numeric keypad, a keyboard, a trackball, a mouse, or the like can also be used.
- the input device 102 may be a keyboard, a mouse, or the like.
- the display 101 is a touch panel, the display 101 also has a function of the input device 102, which is the case in this embodiment.
- the hardware configuration of the user device 100 is shown in FIG.
- the hardware includes a CPU (central processing unit) 111, a ROM (read only memory) 112, a RAM (random access memory) 113, and an interface 114, which are connected to each other by a bus 116.
- the CPU 111 is an arithmetic unit that performs arithmetic operations.
- the CPU 111 executes a process described later, for example, by executing a computer program recorded in the ROM 112 or the RAM 113.
- the user device 100 may include an HDD (hard disk drive) or other large-capacity recording device, and the computer program may be recorded on the large-capacity recording device.
- the computer program referred to here includes at least a computer program for operating the user apparatus 100 as the user apparatus of the present invention.
- This computer program may be pre-installed in the user apparatus 100 or may be post-installed.
- the computer program may be installed in the user apparatus 100 via a predetermined recording medium such as a memory card, or may be installed via a network such as a LAN or the Internet.
- the ROM 112 records computer programs and data necessary for the CPU 111 to execute a process described later.
- the computer program recorded in the ROM 112 is not limited to this, and if the user device 100 is a smartphone, computer programs and data necessary for making the user function as a smartphone, for example, for executing a call or e-mail. Is recorded.
- the user device 100 is also capable of browsing a home page based on data received via the network 400, and implements a known web browser to enable this.
- the RAM 113 provides a work area required for the CPU 111 to perform processing. In some cases, the above-mentioned computer programs and data may be recorded.
- the interface 114 exchanges data between the CPU 111, the RAM 113, and the like connected by the bus 116 and the outside.
- the display 101 described above and the input device 102 are connected to the interface 114.
- the operation content input from the input device 102 is input to the bus 116 from the interface 114.
- 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 transmission / reception mechanism (not shown) which is a known means for communicating with the outside via the network 400 which is the Internet, whereby the user apparatus 100 connects the network 400 to the network 400. It is possible to transmit data via the network 400 and to receive data via the network 400. Data transmission / 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 normally be performed wirelessly. As long as it is possible, the configuration of the transmission / reception mechanism can be known or well-known.
- the data received by the transmission / reception mechanism from the network 400 is received by the interface 114, and the data passed from the interface 114 to the transmission / reception mechanism is transmitted to the external, for example, another user via the network 400 by the transmission / reception mechanism. It is designed to be sent to the device 100 or the server device 200.
- the data received by the transmission / reception mechanism from the network 400 includes at least synchronization information (first synchronization information and second synchronization information) sent from the server device 200 and encrypted data sent from another user device 100. ..
- the data sent to the outside from the transmission / reception mechanism includes at least specific information sent to the server device 200 and encrypted data sent to another user device 100.
- a functional block as shown in FIG. 4 is generated inside the user apparatus 100.
- the following functional blocks may be generated by the function of the above-mentioned computer program alone for making the user device 100 function as the user device of the present invention, but are installed in the above-mentioned computer program and the user device 100. It may be generated in collaboration with the OS and other computer programs.
- 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, and the user encryption / decryption unit are contained in the user apparatus 100 in relation to the functions of the present invention.
- the output unit 127 is generated.
- 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 are the functions of the user device 100. If, for example, has a SIM card such as a smartphone, it may exist on the SIM card built in the user device 100. In that case, those functions are not always generated by the computer program installed in the user apparatus 100.
- the input unit 121 receives the 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 about the user device 100 on the side of communicating with the user device 100 is required to be unique information for all the user devices 100, for example, the IP address, the e-mail address, the URL, and the SNS of the user device 100. (Social networking service) ID and the like, and the same applies to the user device 100 on the side receiving communication.
- both of the two user devices 100, which are specific user devices are specified by the IP address, although not limited to this.
- the IP of the user device 100 is input.
- Specific information that identifies both the address and the IP address of the other user device 100 is automatically generated.
- the specific information may be generated by inputting both of the IP addresses of the two user devices 100 for which the user performs encrypted communication into the input device 102.
- the user can generate the data of the server identifier for specifying the server device 200 to which the specific information is transmitted by operating the input device 102.
- each server device 200 is assigned a unique server identifier for each server device 200 for identifying each server device 200, and the user inputs or selects the server device 200. By doing so, it is possible to select the server device 200 to which the specific information is transmitted.
- the server identifier is, for example, the IP address of each server device 200.
- the user can generate or specify the transmission target data by operating the input device 102.
- the transmission target data is data to be transmitted / received when the transmission / reception is performed between the user devices 100 in an encrypted state. For example, when such transmission / reception is transmission / reception of e-mail, the data becomes e-mail data, and one user device 100 provides a homepage of a virtual store on the Internet and the other user device.
- the data sent to the customer from the user device 100 side of the virtual store may be, for example, a product selection screen, customer information, destination information, or the like.
- the data for providing the customer's user device 100 with a format for causing the description to be performed, and the data sent from the customer's user device 100 side to the virtual store user device 100 is selected by the customer as a purchase target. It may be information that specifies the product and its quantity, or it may be customer information or destination information that the customer has entered in the format as described above.
- the data to be transmitted may be in any format such as text data, image data, and voice data.
- the data to be transmitted does not have to be the data itself input by the user operating the input device 102, but may be the data created by the user device 100 performing a predetermined process on the data, rather than the data. Is more normal.
- Other data input 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 from the transmission / reception mechanism to the interface 114.
- the input unit 121 is input with specific information as input from the input device 102, transmission target data as input from the transmission / reception mechanism, synchronization information, and encrypted data. become.
- the input unit 121 When the input unit 121 receives these, when the specific information and the synchronization information are received, they are sent to the main control unit 122, and when the transmission target data and the encrypted data are received, they are user-encrypted / decrypted. It is designed to be sent to each unit 126.
- the main control unit 122 controls the entire functional block generated in the user device 100.
- the main control unit 122 may receive specific information and a server identifier from the input unit 121. When the specific information and the server identifier are received, the main control unit 122 sends them to the output unit 127.
- the main control unit 122 may receive synchronization information. When the synchronization information is received, the main control unit 122 sends the synchronization information to the user initial solution generation unit 125.
- the user solution generation unit 123 generates a solution.
- the method of generating the solution will be described later, but the solution in this embodiment is a predetermined number of letters, numbers, and symbols, and is generated under the same conditions based on the initial solution. The things are always the same.
- the solutions are pseudo-random numbers, and in this embodiment, each solution is generated so that the number of digits or the number of characters is always constant. The amount of information possessed by a large number of generated solutions is always constant.
- the user solution generation unit 123 generates a solution when the user encryption / decryption unit 126 first performs encryption processing or decryption processing as described later.
- the case where the user encryption / decryption unit 126 performs encryption processing or decryption processing is when the user equipment 100 performs encrypted communication with another user equipment 100, but the details thereof will be described later.
- the user solution generation unit 123 sends a solution created for encrypted communication between the user devices 100 to the user encryption / decryption unit 126. Further, the user solution generation unit 123 in the user apparatus 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 used for encrypted communication.
- the solution generated for the purpose of generating the initial solution used for the encrypted communication is sent from the user solution generation unit 123 to the user initial solution generation unit 125.
- the user solution recording unit 124 records information required when the user solution generation unit 123 generates a solution.
- the data that may be recorded in the user solution recording unit 124 are the data of the true initial solution and the data of the initial solution.
- the true initial solution is an initial solution used to generate a solution in a state where 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, to generate a solution in a state where one user device 100 and another user device 100 are synchronized with each other. It is used for. Both the data of the true initial solution and the data of the initial solution affect the solution generated later.
- the true initial solution and the data of the initial solution are in the same format as the data of the solution, that is, at least one of a character, a number, and a symbol is enumerated in a predetermined number, and the number of digits or the number of characters is the same as that of the solution. It may or may not be a thing.
- the data of the true initial solution and the initial solution are in the same format as the data of the solution, and the true initial solution and the initial solution have the same number of digits or characters as the solution.
- each user device 100 in this embodiment can generate a solution in synchronization with all the server devices 200.
- each user apparatus 100 has the same true initial solution as the true initial solution for the user apparatus 100 included in each server apparatus 200 in the initial state. That is, in the 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 has a server identifier for identifying each server device 200 unique to each server device 200 in order to clarify which server device 200 has the true initial solution. It is recorded in the user solution recording unit 124 in a linked state.
- the initial solution may be recorded in the user solution recording unit 124.
- the initial solution is generated by both of the two user devices 100, which are specific user devices, as described later.
- the initial solution since the initial solution does not exist before the process of generating the initial solution is executed, the initial solution is not recorded in the user solution recording unit 124 before the process is executed. ..
- the initial solution is recorded in the user solution recording unit 124.
- each user device is used. It is recorded in the user solution recording unit 124 in a state of being associated with, for example, the IP address of each user device 100, which is an identifier for identifying each user device 100 unique to each 100. Both the data of the true initial solution and the data of the initial solution may be updated as described later.
- the user solution generation unit 123 When generating a solution, the user solution generation unit 123 reads necessary data from the data recorded in the user solution recording unit 124 and uses it to generate a solution. When the user device 100 and the server device 200 need to generate a solution in synchronization with each other, the user solution generation unit 123 reads out the true initial solution or the solution described later and performs the solution. When generating at least the first solution, the user solution generation unit 123 uses the data of the very initial solution recorded in the user solution recording unit 124 and other data as needed. On the other hand, when the user devices 100 generate a synchronized solution in both user devices 100 when the user devices 100 synchronize the solutions with each other, the user solution generation unit 123 records the solutions in the user solution recording unit 124 in principle. Read the data of the initial solution that has been done and do this. The details of the solution generation method in the user solution generation unit 123 will be described in detail later.
- the user initial solution generation unit 125 is for generating an initial solution required when two user devices 100, which are specific user devices, synchronize the solutions and perform encrypted communication by using the synchronization information. .. 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 synchronize the solutions for encrypted communication. As described above, synchronization information may be sent from the main control unit 122 to the user initial solution generation unit 125. When such synchronization information is received, the user initial solution generation unit 125 is adapted to generate an initial solution based on the synchronization information. When generating the initial solution, the user initial solution generation unit 125 may need the solution generated by the user solution generation unit 123.
- Such a solution is a solution synchronized with the solution generated by the server device 200.
- the user initial solution generation unit 125 sends an instruction to the user solution generation unit 123 to generate a solution.
- the user solution generation unit 123 Upon receiving such an instruction, the user solution generation unit 123 generates a solution and sends it to the user initial solution generation unit 125.
- the user encryption / decryption unit 126 performs at least one of encryption and decryption processing, and is not limited to this, but in this embodiment, both encryption and decryption processing are performed. Has been done. Such encryption and decryption are processes necessary for performing encrypted communication between the user devices 100.
- the user encryption / decryption unit 126 performs encryption / decryption processing only when the main control unit 122 permits that encryption / decryption be performed. The details of the encryption method will be described later, but 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.
- the data encrypted in this embodiment is transmission target data generated based on the data input from the input device 102.
- the transmission target data generated by the input device 102 is plain text data, but it becomes encrypted data as a result of being encrypted by the user encryption / decryption unit 126.
- the encrypted data generated by the user encryption / decryption unit 126 is sent to the output unit 127.
- 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.
- the data 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 apparatus 100 that sent the encrypted data, and as a result of being decrypted by the user encryption / decryption unit 126, the original transmission target data.
- the plaintext transmission target data generated by the user encryption / decryption unit 126 is sent to the output unit 127.
- the output unit 127 outputs the data generated by the functional block in the user apparatus 100 to the interface 114.
- the output unit 127 may receive specific information and a server identifier 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 to the server device 200 specified by the server identifier via the network 400.
- Encrypted data may also be sent to the output unit 127 from the user encryption / decryption unit 126. When the encrypted data is received, the output unit 127 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 to another user device 100 which is the other party of the encrypted communication via the network 400.
- the user encryption / decryption unit 126 may send plain text transmission target data to the output unit 127.
- This transmission target data is generated by another user device 100.
- the output unit 127 outputs the transmission target data to the interface 114.
- the transmission target data is appropriately used in the user apparatus 100, and is sent to, for example, the display 101, and the display 101 that receives the transmission target data is made to display according to the transmission target data.
- the server device 200 may be an existing known or well-known server device. Further, the hardware configuration may be general, and although not shown, roughly speaking, it follows the hardware configuration of the user device 100 in which the CPU 111, ROM 112, RAM 113, and interface 114 are connected by a bus 116. can do. However, the server device 200 will generally have an HDD or other large-capacity recording device, and this is also the case with this embodiment.
- the configurations and functions of the CPU, ROM, RAM, interface, bus, and large-capacity recording apparatus included in the server apparatus 200 are the same as those configurations and functions in the user apparatus 100.
- the interface provided in the server device 200 is connected to a transmission / reception mechanism for communicating with a device other than the server device 200 via the network 400, similar to that provided in the user device 100.
- a display and an input device similar to those provided in the user device 100 may be connected to the interface provided in the server device 200, but the description thereof will be omitted because it has little relation to the present application.
- a functional block as described below is generated inside the server device 200.
- the following functional blocks may be generated by the function of a single computer program for making the server device 200 function as the server device of the present invention, but the computer program, the OS installed in the server device 200, and the like may be generated. It may be generated in collaboration with a computer program of. Further, the computer program may be pre-installed in the server device 200, or may be installed in the server device 200 after shipment.
- the installation of the computer program on the server device 200 may be performed via a predetermined recording medium such as a memory card, or may be performed via a network such as a LAN or the Internet. These circumstances are the same as in the case of the user apparatus 100.
- the input unit 221, the main control unit 222, the server device solution generation unit 223, the server device solution recording unit 224, the synchronization information generation unit 225, the output unit 227, and the like in relation to the functions of the present invention.
- the basic information generation unit 228 is generated (FIG. 5).
- the input unit 221 receives an input from the interface.
- the input from the interface has, for example, specific information.
- the specific information is sent from the user device 100 via the network 400, and is received by the server device 200 by the transmission / reception mechanism.
- the input unit 221 sends the specific information to the main control unit 222.
- the main control unit 222 controls the entire functional block generated in the server device 200.
- the main control unit 222 may receive data of specific information from the input unit 221. When the data of the specific information is received, the main control unit 222 sends the data to the synchronization information generation unit 225.
- the server device solution generation unit 223 generates a solution when it receives an instruction to generate a solution.
- the server device solution generation unit 223 may receive an instruction to generate a solution from the synchronization information generation unit 225 as described later, and when such an instruction is received, the solution is generated. There is. Two solutions are generated in that case.
- the method of generating the solution will be described later, but the generation of the solution executed by the server device solution generation unit 223 is the same as the method of generating the solution executed by the user solution generation unit 123 of each user device 100.
- the server device solution generation unit 223 reads necessary data from the data recorded in the server device solution recording unit 224 and uses it to generate a solution.
- the server device solution recording unit 224 records information required when the server device solution generation unit 223 generates a solution. Such information is mainly the data of the very 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 apparatus 100.
- the true initial solution is used when generating a solution, but the server device 200 in this embodiment is synchronized with all user devices 100 (user devices 100-1 to 100-N). Since it is necessary to generate the solved solutions, N true initial solutions, which are the same as the number of the user devices 100, are recorded in the server device solution recording unit 224 in a state where at least one solution has not been generated. ing.
- each true initial solution is used for each user device. It is recorded in the server device solution recording unit 224 in a state of being linked one-to-one with the information for specifying 100.
- the information for identifying each user device 100 is information unique to each user device 100 that can be included in the specific information, and is not limited to this, but in this embodiment, it is an IP address of each user device 100. ..
- the server device solution generation unit 223 in the server device 200 needs to generate a solution in synchronization with the user device 100 and the server device 200, the server device solution generation unit 223 of the two user devices 100 specified by the specific information.
- the server device solution generation unit 223 uses the data of the true initial solution recorded in the server device solution recording unit 224, and uses other data as necessary. As described above, the server device solution generation unit 223 may receive an instruction from the synchronization information generation unit 225 to generate a solution, but in that case, the two specific user devices included in the specific information. Two IP addresses, which are information for specifying the above, are also received from the synchronization information generation unit 225. When two IP addresses are received from the synchronization information generation unit 225, the server device solution generation unit 223 reads out the two true initial solutions or solutions associated with each of the two IP addresses from the server device solution recording unit 224. It has become like.
- the server device solution generation unit 223 is adapted to generate two new solutions by using those read-out true initial solutions. Based on this very early solution, subsequent solutions will be generated. Details will be given later, but this allows the server device solution generation unit 223 to generate the same solution as the solution generated by each user solution generation unit 123 in each user device 100. That is, 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 generation unit 223 are sent to the synchronization information generation unit 225.
- the basic information generation unit 228 generates basic information.
- the basic information is information used to generate an initial solution in the user apparatus 100, as will be described later.
- the basic information generation unit 228 may receive an instruction from the synchronization information generation unit 225 to generate basic information, and when receiving the instruction, generate basic information.
- the basic information is, like the solution, a predetermined number of letters, numbers, and symbols.
- the basic information has the same number of digits or less than the number of digits or characters of the solution, and the amount of information is smaller than that of the solution.
- the number of digits or the number of characters of the characters, numbers, and symbols constituting the basic information is the same as the number of digits or the number of characters of the solution characters, numbers, and symbols.
- the basic information generated by the basic information generation unit 228 is not limited to this, but 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 generation unit 228 is sent to the synchronization information generation unit 225.
- the synchronization information generation unit 225 generates synchronization information.
- the synchronization information is information required by both of the two user devices 100 in order to perform the encrypted communication when the two user devices 100 included in the specific user device perform the encrypted communication.
- the synchronization information is information necessary for synchronizing the solutions in the two user devices 100, and is not the solution itself. Details of the synchronization information will be described later. It should be noted that such synchronization information is required for the server device 200 and each user device 100 as described above in this embodiment when the two devices generate a synchronized solution. To know the initial solution of the other party, where a common solution (initial solution in the present application) is required for the two user devices 100 included in the specific user device that performs encrypted communication so as to have a true initial solution.
- 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.
- the synchronization information generation unit 225 receives the specific information from the main control unit 222, it issues an instruction to the server device solution generation unit 223 to generate a solution, receives two solutions from the server device solution generation unit 223, and receives the basics.
- the information generation unit 228 is instructed to generate basic information, and the basic information is received from the basic information generation unit 228.
- the synchronization information generation unit 225 generates two 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. Generate. One of the two synchronization information is for one of the two user devices 100 specified by the specific information, and the other of the two synchronization information is the other of the two user devices 100 specified by the specific information. Is for. A predetermined operation is a reversible operation. The details of the synchronization information generation method will be described later.
- the synchronization information generation unit 225 sends the two synchronization information together with the specific information to the output unit 227.
- the output unit 227 outputs the data generated by the functional block in the server device 200 to the interface.
- the synchronization information generation unit 225 sends the synchronization information and the specific information to the output unit 227.
- the output unit 227 receives the synchronization information, it outputs it to the interface together with the specific information.
- the synchronization information and the specific 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 specified by the specific information via the network 400.
- the two synchronization information for one of the specific user devices 100 goes to one of the specific user devices 100, and the two synchronization information for the other of the specific user device 100 is for the specific user device 100. It will be sent to the other.
- the transmission / reception mechanism of the server device 200 transmits the synchronization information to the user device 100
- the transmission / reception mechanism of the server device 200 attaches the server identifier of the server device 200 to the synchronization information.
- a user who intends to perform encrypted communication between his / her own user device 100 and another user device 100 first operates an input device 102 of his / her own user device 100 to attempt encrypted communication.
- Input specific information for specifying the user device 100 on the other side is generated (S1001).
- the data of the specific information is sent from the input device 102 to the input unit 121 via the interface 114, and is sent from the input unit 121 to the main control unit 122.
- the user operates the input device 102 to input two server identifiers for identifying the two server devices 200 for transmitting 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.
- the main control unit 122 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 the server identifier to the interface 114.
- Interface 114 further sends the received specific information and the server identifier to the transmission / reception mechanism.
- the specific information is simultaneously sent from the transmission / reception mechanism to the two server devices 200 specified by the server identifier via the network 400 (S1002).
- the two server devices 100 basically need to manage both of the two user devices 100 that will perform encrypted communication specified by the specific information. That is, the server identifier to be input by the user needs to manage both of the two user devices 100 specified by the specific information.
- the two server devices 200 that the user should specify by the server identifier are the server devices. Any two of the 200 will do.
- the specific information is sent from one user device 100 on the side owned by the user who intends to start communication among the specific user devices to the two server devices 200. Not as long. For example, while sending specific information to a server device 200 having a user device 100 on the side owned by a user who is about to start communication among specific user devices, the other user device 100 is specified to another server device 200. You may send the information.
- the specific information is sent from the user device 100 on the side owned by the user who intends to start communication among the specific user devices to the two server devices 200 at the same time. This is not always the case.
- two synchronization information is sent from the first server device 200 to both of the two user devices 100, which are specific user devices.
- the first synchronization information is sent to the two user devices 100.
- specific information may be transmitted to the second server device 200.
- the two server devices 200 receive the specific information sent from the user device 100 by their transmission / reception mechanism (S2001).
- the specific information is sent to the interface of the server device 200, and is sent from the interface to the input unit 221.
- the input unit 221 receives the data of the specific information from the interface
- the input unit 221 sends it to the main control unit 222.
- 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 generation unit 225.
- the synchronization information generation unit 225 is necessary for synchronizing the solutions required for encrypted communication in the two user devices 100 included in the specific user device specified by the specific information. Synchronous information, which is the information that becomes, is generated (S2002).
- the synchronization information generation unit 225 Upon receiving the specific information, the synchronization information generation unit 225 sends an instruction to generate a solution together with the specific information to the server device solution generation unit 223, and an instruction to generate basic information to the basic information generation unit 228. To send. Then, the server device solution generation unit 223 generates two solutions and sends them to the synchronization information generation unit 225, and the basic information generation unit 228 generates the basic information and sends it to the synchronization information generation unit 225. Using them, the synchronization information generation unit 225 generates synchronization information.
- the server device solution generation unit 223 in this embodiment reads out two true initial solutions associated with the two IP addresses included in the specific information.
- the true initial solution is an initial solution as an initial value used for generating a solution synchronized between the server device 200 and each user device 100.
- the server device solution generation unit 223 in this embodiment reads out the data of the true initial solution recorded in the server device solution recording unit 224 in the initial state at least when the solution is generated for the first time.
- the data of the true initial solution is, for example, a character string in which a 20-digit number and a lowercase alphabetic character are mixed. This is the same for the initial solution data and the solution data.
- Such a true initial solution is unique to each user device 100, and is assigned to each user device 100 by the server device 200 or by the administrator of the server device 200. There may be one true initial solution, but there may be multiple. Since there is only one true initial solution in this embodiment, the server device solution generation unit 223 reads one true initial solution from the server device solution recording unit 224. The server device solution generation unit 223 generates a solution at that time by performing an operation on those true initial solutions. First, the true initial solution is changed to numbers only so that the calculation is possible. If the true initial solution contains an alphabetic character, replace it with a two-digit number. The numbers to be replaced are in the alphabetical order of the alphabet.
- the result of this operation is a sequence of numbers that is the source of the solution. Assuming that the sequence of numbers is X, X is obtained as follows according to the year, month, day, hour, and minute of the Christian era at a predetermined time. X 1 in the following formula is a numerical conversion of the true initial solution. The reason why the number of true initial solutions is five in this embodiment is that the solutions are changed according to the five elements of the year, month, day, hour, and minute of the Christian era. It should be noted that such a method of synchronizing solutions according to time is the same as the conventional method of time synchronization.
- X X 1 P X 1 Q + X 1 R X 1 S + X 1 T
- P year number divided by 5 and 1 added
- Q month number divided by 5 and 1 added
- R day number divided by 5 1 is added
- S hour number is divided by 5 and 1 is added
- T minute number is divided by 5 and 1 is added.
- any two digits in the sequence of numbers contain the numbers 01-26, follow the convention of replacing letters with numbers, and make them az. Replace with the alphabet.
- the character string in which the numbers and lowercase letters are mixed obtained in this manner usually has 20 or more digits. When it is 20 digits or more, for example, 20 characters are extracted from the front of the character string and the solution is taken. If the character string obtained as described above, which is a mixture of numbers and lowercase letters, has exactly 20 digits, it is used as it is. If the number of digits obtained as described above and the character string in which lowercase letters are mixed is less than 20 digits, the number of digits is increased based on some rule.
- some number or character based on the first digit or alphabet of the string may be inserted into the string up to 20 digits.
- a new character string mixed with lowercase letters and numbers can be created. The work of generating and connecting it after mixing the original number and lowercase letters is repeated until the number of digits becomes at least 20 digits, and 20 characters are extracted from the front and solved. Method can also be adopted. In any case, this will generate a solution corresponding to the date and time at a certain point in time based on the very initial solution.
- the server device solution generation unit 223 of the server device 200 determines the time when the user device 100 transmits the specific information to the server device 200 (for example, the specific information at the time of transmitting the specific information). It is assumed that a solution is generated at a time of, for example, "5 minutes later" of the time specified by the time stamp attached by the user apparatus 100 to the packet of data for transmitting the information. The same applies to the following, but the time may be set regardless of whether or not the time has actually arrived. In this way, the server device solution generation unit 223 generates a solution that can be generated on one side of the user device 100 by using the true initial solution for one of the user devices 100 specified by the specific information.
- the server device solution generation unit 223 uses the true initial solution for the other side of the user device 100 specified by the specific information to generate a solution that can be generated by the other side of the user device 100.
- the server device solution generation unit 223 sends the generated two solutions to the synchronization information generation unit 225.
- the solution that can be generated on one side of the user device 100 is associated with the information that identifies one of the user devices 100 included in the specific information, and the solution that can be generated on the other side of the user device 100 is used as the specific information.
- Which solution is for one of the user devices 100 and which solution is for the other of the user device 100, such as by associating it with information that identifies the other of the included user devices 100.
- the two solutions are sent to the synchronization information generation unit 225.
- the method for generating the basic information by the basic information generation unit 228 may be an appropriate method for generating a pseudo-random number.
- the basic information generation unit 228 has an appropriate initial solution for generating the basic information, and the server device solution generation unit 223 generates the basic information in the same way as the new solution is generated. You can do it.
- the basic information generation unit 228 generates the basic information in the same way as the server device solution generation unit 223 generates the solution, and the basic information unique to each server device 200. Based on the initial solution for generation, basic information shall be generated as a character string in which 20-digit numbers and lowercase letters are mixed.
- the basic information generation unit 228 sends the generated basic information to the synchronization information generation unit 225.
- the synchronization information generation unit 225 receives the two solutions and the basic information as described above. Based on them, the synchronization information generation unit 225 generates synchronization information.
- the method of generating synchronization information is as follows.
- the synchronization information generation unit 225 performs a predetermined operation on the synchronization information and the solution for one of the user devices 100, and in this embodiment, performs a reversible operation to obtain the synchronization information for one of the user devices 100. Generate. Examples of reversible operations are multiplication and exclusive-OR, but in this embodiment, the reversible operation is performed by taking exclusive-OR.
- the synchronization information generation unit 225 performs a predetermined operation on the synchronization information and the solution for the other side of the user apparatus 100, and in this embodiment, performs a reversible operation for the other side of the user apparatus 100. Generate synchronization information. Although the synchronization information is the same, the solutions for one and the other of the user apparatus 100 are different, so that the two synchronization information generated by performing an operation on the synchronization information and the solution are different from each other. It becomes a thing. The synchronization information generation unit 225 sends the two generated synchronization information to the output unit 227.
- the synchronization information for one of the user devices 100 is associated with the information for specifying one of the user devices 100 included in the specific information, and the synchronization information for the other of the user devices 100 is used as the specific information.
- Which synchronization information is for one of the user devices 100 and which synchronization information is for the other of the user devices 100 such as by associating the other of the included user devices 100 with information that identifies the other.
- the two synchronization information is sent to the output unit 227 in a clear state.
- the output unit 227 sends the two synchronization information in which one and the other of the user device 100 are associated with the specific information to the transmission / reception mechanism via the interface.
- the transmission / reception mechanism sends the two synchronization information to the two user devices 100 specified by the specific information (S2003).
- S2003 specific information
- the synchronization information for one of the user devices 100 is transferred to one of the user devices 100 included in the specific user device, and the synchronization information for the other of the user devices 100 is transmitted to the other of the user devices 100 included in the specific user device.
- a server identifier is attached to the synchronization information sent to the user device 100 by the transmission / reception mechanism of the server device 200.
- the above processes from S2001 to S2003 are executed in the same manner by the two server devices 200.
- synchronization information is sent from one server device 200 and the other server device 200 to the two user devices 100, which are specific user devices, respectively.
- the information sent from one of the server devices 200 is the first synchronization information
- the information sent from the other server device 200 is the second synchronization information.
- the words "first" and "second" in the names of the first synchronization information and the second synchronization information are irrelevant to the order in which the user apparatus 100 receives the synchronization information.
- the synchronization information may be further encrypted.
- Both user devices 100 which are specific user devices, receive synchronization information sent from one server device 200 and the other server device 200 (S1003).
- the two synchronization information is received by the transmission / reception mechanism of the user apparatus 100 together with the server identifier attached to each of them.
- the two received synchronization information is sent to the input unit 121 via the interface 114 together with the server identifier, and is sent from the input unit 121 to the user initial solution generation unit 125 via the main control unit 122. Be done.
- the user initial solution generation unit 125 of the user apparatus 100 that has received the two synchronization information with the server identifier generates an initial solution as follows based on the two synchronization information (S1004). As described above, when the user initial solution generation unit 125 receives the synchronization information with the server identifier, the user solution generation unit 123 gives an instruction to generate a solution and the server identifier attached to the two synchronization information. Send to.
- the user solution generation unit 123 Upon receiving an instruction from the user initial solution generation unit 125 to generate a solution, the user solution generation unit 123 generates a solution.
- the user solution generation unit 123 generates a new solution as follows.
- the user solution generation 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 generation unit 123 generates a solution in the same manner as when the server device solution generation unit 223 of the server device 200 specified by the server identifier generates the solution.
- the solution used when the server device solution generation unit 223 generates the solution is the same as the solution used when the user solution generation unit 123 generates the solution, and the server device solution generation unit 223 generates the solution.
- the same solution as the solution generated by the server device solution generation unit 223 is generated by the user solution generation unit 123. That is, the user solution generation unit 123 generates the same solution generated by the server device 200 specified by one of the two server identifications. Further, the user solution generation unit 123 reads out the true initial solution associated with the other of the two server identifiers from the user solution recording unit 124. By using the true initial solution, the user solution generation unit 123 generates the same solution generated by the server device 200 specified by the other of the two server identifications. The two solutions thus generated are sent from the user solution generation unit 123 to the user initial solution generation unit 125.
- the user initial solution generation unit 125 has previously obtained two synchronization information.
- the user initial solution generation unit 125 obtains two solutions from the user solution generation unit 123. Using them, the user initial solution generation unit 125 generates an initial solution.
- the user initial solution generation unit 125 is sent from the user solution generation unit 123 that can be generated by the server device 200 to the synchronization information sent from the server device 200 specified by one of the two server identifiers.
- the inverse operation of the reversible operation performed by the synchronization information generation unit 225 of the server device 200 is performed.
- the user initial solution generation unit 125 can extract the basic information generated by the basic information generation unit 228 of the server device 200 specified by one of the two server identifiers from the synchronization information.
- the user initial solution generation unit 125 is sent from the user solution generation unit 123 that can be generated by the server device 200 to the synchronization information sent from the server device 200 specified by the other of the two server identifiers.
- the inverse of the reversible operation performed by the synchronization information generation unit 225 of the server device 200 is performed.
- the user initial solution generation unit 125 can extract the basic information generated by the basic information generation unit 228 of the server device 200 specified by the other of the two server identifiers from the synchronization information.
- the user initial solution generation unit 125 obtains the two server devices 200 specified by the two server identifiers, that is, the two basic information generated by the two server devices 200 that sent the synchronization information. Can be done.
- the user initial solution generation unit 125 obtains an initial solution by performing a predetermined operation predetermined for the two basic information.
- the predetermined operation may be, for example, a product of two basic information or an operation of exclusive-ORing. Although not limited to this, the latter is adopted in this embodiment.
- the generated initial solution is sent from the user initial solution generation unit 125 to the user solution recording unit 124, and is recorded in the user solution recording unit 124.
- this solution is used when performing encrypted communication with the other user device 100 that performs encrypted communication among the two user devices 100 specified by the specific information, in order to clarify it.
- the information for identifying the user device 100 on the other side (in this embodiment, the IP address of the user device 100 on the other side) is recorded in the user solution recording unit 124. ..
- Similar processing that is, the processing of S1003 and S1004, is executed on the other of the two user devices 100 which are specific user devices.
- the two basic information used when the user initial solution generator 125 generates the initial solution in the other of the two user devices 100 is the two used when generating the initial solution in one of the two user devices 100. It is the same as the basic information, and the operation performed on the two basic information when both generate the initial solution is the same predetermined operation. Therefore, the initial solutions generated by the two user devices 100 included in the specific user device are the same. Also in the other of the two user devices 100, the generated initial solution is recorded in the user solution recording unit 124.
- the solution is recorded in the user solution recording unit 124 in a state of being associated with one of the IP addresses of the two user devices 100, which are specific user devices.
- the initial solution common to each of the user solution recording units 124 in the two user devices 100, which are the specific user devices is recorded.
- a state is formed in which two user devices 100, which are specific user devices, have a common initial solution. That is, as a result, the two user devices 100, which are specific user devices, are ready to perform encrypted communication.
- one of the two user devices that perform encrypted communication which is 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. ..
- the user who handles one of the user devices 100 operates the input device 102 of the user device 100 to generate or select transmission target data.
- the data to be transmitted is plain text data.
- the data to be transmitted is sent from the interface 114 to the input unit 121 and further to the user encryption / decryption unit 126 in one of the user devices 100.
- the data to be transmitted is encrypted by the user encryption / decryption unit 126, and a solution is used for that purpose.
- 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 can generate the solution. Upon receiving such an instruction, the user solution generation unit 123 generates a new solution.
- the user solution generation unit 123 generates a solution is free as long as the solutions generated by the user solution generation unit 123 in the two user devices 100 are synchronized.
- the method for synchronizing the solution generated in the user solution generation unit 123 and the server device solution generation unit 223 and the solution generated in the user solution generation unit 123 in the two user devices 100 which are specific user devices are synchronized. It does not matter whether the method for making them is the same or different.
- the user solution generation unit 123 in one user apparatus 100 has a year of the above-mentioned time used when generating the initial solution, regardless of the time at that time, in this embodiment. It is assumed that the solution corresponding to the time of January, 1 day, 1 hour, and 1 minute later is generated.
- the user solution generation unit 123 uses the initial solution read from the user solution recording unit 124, and also uses the above-mentioned method and the above-mentioned time to generate a new solution.
- the new solution is sent from the user solution generation unit 123 to the user encryption / decryption unit 126 in one user device 100.
- the user encryption / decryption unit 126 receives a new solution from the user solution generation unit 123 and uses it to encrypt the data to be transmitted. You are free to use the solution in this case.
- the user encryption / decryption unit 126 can use the new solution as the common key. That is, the solution can be used as a key for encryption.
- the solution can also be used as the source information for generating the common key.
- the solution can also be used to change the encryption algorithm. It is also possible to use a solution such as selecting one algorithm from a plurality of types of algorithms based on the solution.
- the data to be transmitted is encrypted by the user encryption / decryption unit 126 to be encrypted data.
- the generated encrypted data is sent from the user encryption / decryption unit 126 to the output unit 127.
- the output unit 127 in one user device 100 sends the encrypted data to the transmission / reception mechanism via the interface 114.
- the encrypted data is sent to the other user device 100 via the network 400.
- the other user device 100 receives the encrypted data sent from the user device 100 by its transmission / reception mechanism.
- the encrypted data is sent from the transmission / reception mechanism to the input unit 121 via the interface 114.
- the input unit 121 sends the encrypted data to the user encryption / decryption unit 126.
- the user encryption / decryption unit 126 in the other user apparatus 100 that has received the encrypted data decrypts the encrypted data. Therefore, 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 can generate the solution.
- the user solution generation unit 123 Upon receiving such an instruction, the user solution generation unit 123 generates a new solution.
- the method in which the user solution generation unit 123 in the other user device 100 generates a solution is the same as the method adopted by the user solution generation unit 123 in one user device 100, and the user solution generation unit 123 records the user solution.
- the initial solution read from the unit 124 is common to the initial solution used in one of the user devices 100.
- the user solution generation unit 123 in the other user device 100 generates the same new solution as that generated by the user solution generation unit 123 in the one user device 100. That is, the two user devices 100 will 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 a new solution from the user solution generation unit 123 and uses it to decrypt the encrypted data.
- the method of using the solution in this case follows the method of using the solution in the user encryption / decryption unit 126 of one user apparatus 100. For example, if two user devices 100 use a solution as a common key for encrypted communication of a common key method, and if the solution is used in that way in one user device 100, the user in the other user device 100 The encryption / decryption unit 126 also uses the new solution as a common key. In any case, the user encryption / decryption unit 126 decrypts the encrypted data and returns it to the original plaintext transmission target data.
- the data to be transmitted is sent from the user encryption / decryption unit 126 to the output unit 127, and is sent from the output unit 127 to, for example, another application in the other user device 100 via the interface 114, or to the display 101. It will be sent and an appropriate display will be made.
- the arrangement to generate the solution corresponding to the time after 1 minute is generated after that, for example, between all the user solution generation unit 123 and the server device solution generation unit 223.
- the solution to be solved is a solution generated at the time of 1 minute, 2 minutes, 3 minutes, etc., in order, and so on, for example, between the user solution generation units 123 of all the user devices 100. You can go there. Of course, it is possible to make more complicated arrangements between the two.
- the common key for performing the encrypted communication of the common key method is changed one after another, and the encryption and decryption are performed by the user encryption / decryption unit 126 of the two user devices 100 which are the specific user devices.
- the timing for changing the solution used in the processing of can be appropriately determined.
- the newly generated solution may be changed or updated with the solution used for encryption or decryption, or the encrypted data may be changed or updated.
- the solution may be changed or updated each time the amount exceeds a certain amount of data.
- encrypting data with plain text usually, instead of performing some operation on the entire data, the data with plain text is usually cut into small data by a predetermined number of bits. Therefore, a method is used in which an operation for encryption is performed on each of the small data. For example, every time 10 small pieces of data are encrypted, a new solution is generated and the common key is changed.
- the decryption side also generates a solution by the same method as the encryption side, and changes the solution that is the common key by the same method. Such a thing can be executed by both of two user devices 100 which are specific user devices.
- the two user devices 100 which are the specific user devices, synchronize the solutions once as described above, the two user devices 100, which are the specific user devices, synchronize the solutions. Can be kept permanently while functioning.
- the final solution generated by both user devices 100 when the above-mentioned encrypted communication is completed is sent to the user solution recording unit 124 in both user devices 100 as an initial solution to be used in the next encrypted communication.
- the two user devices 100 use the synchronized solution without having the server device 200 generate the synchronization information with the help of the server device 200. Encrypted communication can be executed.
- each user device 100 does not save the initial solution as described above, receives synchronization information from the server device 200 each time encrypted communication is performed, and repeats the above process. do not have.
- the communication system described below differs from the communication system of the above-described embodiment in that the solution is synchronized between the server device 200 and each user device 100, and the solution between the two user devices 100, which are specific user devices. It is only how to synchronize. In other parts, there is no difference in the configuration of the communication system of the first embodiment and the embodiment, and there is no difference in the usage method and operation thereof.
- the method of generating the solution in the user solution generation unit 123 included in the user device 100 and the server device solution generation unit 223 included in the server device 200 is a conventional one-time method using a token or the like.
- a method of synchronizing solutions such as time synchronization was adopted.
- the method of synchronizing the solutions based on ()) is adopted.
- the method for generating a new solution by the user solution generation unit 123 and the server device solution generation unit 223 is, for example, to obtain a solution by performing a predetermined operation on a certain initial solution. Next, the next solution is obtained by performing the determined operation on the solution again, and then the next solution is obtained by performing the determined operation on the solution again, and so on. Then, it is possible to continuously generate a solution.
- a technique for generating a pseudo-random number is well known as a technique for generating a pseudo-random number.
- a more specific method in which the user solution generation unit 123 and the server device solution generation unit 223 generate a solution will be described. Since it is common to the method of generating a new solution by the user solution generation unit 123 of the user device 100 and the method of generating a new solution by the server device solution generation unit 223 of the server device 200, they are distinguished in the following description. I will explain without. In addition, the initial solution and the true initial solution are not distinguished, and both of them are collectively explained as the initial solution. To generate a solution, use a certain initial solution (there may be two or more as in (a) and (c) below), and substitute the past solution into a predetermined function to generate a new solution. The method of sequentially creating the above can be executed every time a solution is needed.
- the solution in this case is a pseudo-random number that depends on the initial solution.
- the following (a) to (c) are given as examples of the functions used to create the above solution.
- the following (a) to (c) are all equations for creating XN, which is the Nth solution. Further, P, Q, R and S are appropriate natural numbers.
- a new solution is generated by extracting a number, extracting an appropriate number of digits from the end, or extracting an appropriate number of digits from an appropriate part of the value.
- the solution is assumed to be 20 digits.
- one of the past solutions is used, and the number of digits of the solution multiplied by P is arranged as described above, and the new solution is used.
- (C) uses four past solutions, takes the product of the P-th power, Q-th power, R-th power, and S-th power, respectively, and then arranges the number of digits as described above as the new solution. Is.
- the above-mentioned (a) to (c) are examples of algorithms for generating a solution, and changes are made to the algorithm when generating the solution, for example, the above-mentioned (a) to (c) are used in order. It is also possible to add changes to.
- the above-mentioned method using the mathematical formulas (a) to (c) can be used when the solution is composed only of numbers. If you want to include letters and symbols in the solution, you can adopt the method of assigning numbers to letters and symbols described in the embodiment. According to the method of making the solutions continuous using the mathematical formula as described above, the solutions generated in the same order are always the same when the initial solutions are the same.
- the server device solution generation unit 223 in the server device 200 and the user solution generation unit 123 in the user device 100 are synchronized in common.
- the solution can be generated, and the user solution generation unit 123 in each of the two user devices 100 in the specific user device can generate a common synchronized solution.
- the user solution generation unit 123 and the server device solution generation unit 223 of the modification 1 are supposed to generate a solution by using the algorithm of the above (a).
- the user solution generation unit 123 in the two user devices 100 included in the specific user device in the first modification (or, considering that all the user devices 100 can be the specific user devices 100). Will generate a solution using the algorithm of (a) above.
- 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.
- the steps S1001 to S1002 in the specific user device and the steps S2001 in the server device 200 are completely the same as in the case of the embodiment.
- the two server devices 200 receive specific information.
- the specific information is sent to the synchronization information generation unit 225 via the transmission / reception mechanism, the interface, the input unit 221 and the main control unit 222.
- the synchronization information generation unit 225 in the two server devices 200 synchronizes the solutions required for encrypted communication in the two user devices 100 included in the specific user device specified by the specific information. Generate synchronization information, which is necessary information (S2002).
- the server can generate two solutions that can be generated by both of the two user devices 100 specified by the specific information sent to the server device 200. It is generated by the device solution generation unit 223.
- the server device solution generation unit 223 generates two solutions, as in the case of the embodiment, the synchronization information generation unit 225 sends an instruction to generate a solution together with the specific information to the server device solution generation unit 223. It was when.
- the server device solution generation unit 223 in the first modification calls the true initial solution or solution associated with each of the two IP addresses included in the specific information.
- the server device solution generation 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 the solution is generated for the first time.
- the server device solution recording unit 224 of the server device 200 of the modification 1 in addition to the true initial solution, information on how many solutions have been generated in the past using the true initial solution is recorded. ..
- the server device solution generation unit 223 reads 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.
- the server device solution generation unit 223 of the modification 1 When the server device solution generation unit 223 of the modification 1 generates a solution, for example, it is assumed that the server device solution generation unit 223 has generated three solutions in the past. Then, the server device solution generation 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 generation unit 223 generates the first solution (X 1 ) from the true initial solution ((X 0 ), (X -1 )) by using the above formula (a), and the first solution. To generate a second solution (more precisely, using (X 1 ), (X 0 )) and repeat it to generate a fourth solution (X 4 ).
- the server device solution generation unit 223 increases the number of previously generated solutions recorded in the server device solution recording unit 224 by 1 to "4". As a result, the solution generated next by the server device solution generation unit 223 becomes the fifth solution (X 5 ).
- the server device solution generation unit 223 generates two solutions for the two user devices 100 specified by the specific information and sends them to the synchronization information generation unit 225, as in the case of the embodiment.
- the basic information generation unit 228 generates the basic information and sends it to the synchronization information generation unit 225 at the request from the synchronization information generation unit 225.
- the synchronization information generation unit 225 generates two synchronization information based on the two solutions received from the server device solution generation unit 223 and the basic information received from the basic information generation unit 228.
- the method may be the same as in the embodiment, and is so in the first modification.
- the synchronization information is sent to the two user devices 100, which are the specific user devices (S2003). Synchronization information is sent from the two server devices 200 to the two user devices 100, which are specific user devices.
- the synchronization information is sent to the user initial solution generation unit 125 as in the case of the embodiment.
- the user initial solution generation unit 125 in the two user devices 100 sends the two server identifiers attached to the synchronization information to the user solution generation unit 123, as in the case of the embodiment.
- the user solution generation unit 123 that has received it reads out the true initial solution (or solution) recorded in the user solution recording unit 124 that is associated with the two received server identifiers.
- the two true initial solutions (or solutions) read out are the same as those used in the server device 200 when generating the synchronization information sent to the user device 100.
- the user solution generation unit 123 reads out information on how many solutions have been generated in the past based on the solution.
- the user solution generation unit 123 generates a new solution by using the read information.
- the solution generation method is the same as the solution generation method in the server device solution generation unit 223.
- the true initial solution or solution used to generate a new solution is used when the server device solution generation unit 223 generates a solution when the server device 200 generates the synchronization information sent to the user device 100.
- the user solution generation unit 123 will generate the same solution as the solution generated by the server device solution generation unit 223 that has sent the synchronization information.
- the user solution generation unit 123 generates the same two solutions as the solutions generated by the two server devices 200 that have sent the synchronization information.
- the user solution generation unit 123 sends these two solutions to the user initial solution generation unit 125.
- the process from that point onward is the same as that of the embodiment.
- the user initial solution generation unit 125 is generated by each of the two server devices 200 from the two synchronization information by performing a predetermined operation using the two synchronization information received earlier and the two solutions. Generate basic information. Then, the user initial solution generation unit 125 generates an initial solution by performing a predetermined operation on the basic information generated by each of the two server devices 200.
- the initial solutions generated by the two user devices 100, which are the specific user devices are the same as in the case of the embodiment. As a result, the same initial solution is shared by the two user devices 100, which are specific user devices.
- Subsequent processing may be completely the same as in the case of the embodiment. That is, the process for generating a solution continuously and synchronously, which is required to realize the encrypted communication (S1005) performed in the two user devices which are specific user devices, is referred to as a token or the like. It may be achieved by time synchronization.
- the first modification it is possible to realize the synchronization of the solution by the event synchronization realized by the token or the like, and in the first modification, the solution is generated in this way as follows. Give an explanation.
- one of the two user devices that perform encrypted communication which is a specific user device, is referred to as one user device 100, and the other is referred to as the other user device 100.
- the user who handles one of the user devices 100 operates the input device 102 of the user device 100 to generate transmission target data.
- the data to be transmitted is transmitted from the interface 114 to the user encryption / decryption unit 126 via the input unit 121 in one user device 100.
- the data to be transmitted is encrypted by the user encryption / decryption unit 126, and a solution is used for that purpose.
- 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 can generate the solution.
- the user solution generation unit 123 Upon receiving such an instruction, the user solution generation unit 123 generates a new solution.
- the user solution recording unit 124 records two solutions (X 4 ) and (X 5 ).
- the user solution generation unit 123 of one user device 100 reads out these two solutions. By substituting these into the above-mentioned equation (a), the user solution generation unit 123 in one user apparatus 100 can generate the sixth solution (X 6 ).
- the user solution generation unit 123 records (X 4 ) and (X 5 ) in the user solution recording unit 124 in order to generate the next solution, and is a solution generated in the user encryption / decryption unit 126.
- the user encryption / decryption unit 126 uses this solution (X 6 ) to encrypt the data to be transmitted.
- the method of using the solution in the encryption process may be the same as in the case of the embodiment.
- the data to be transmitted is encrypted by the user encryption / decryption unit 126 and converted into encrypted data.
- the generated encrypted data is sent from the user encryption / decryption unit 126 to the output unit 127. Such encrypted data is sent from one user device 100 to the other user device 100 as in the case of the embodiment.
- the other user device 100 receives the encrypted data sent from the user device 100 by 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 apparatus 100 that has received the encrypted data decrypts the encrypted data. Therefore, 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 can generate the solution. Upon receiving such an instruction, the user solution generation unit 123 generates a new solution.
- the method in which the user solution generation unit 123 in the other user device 100 generates a solution is the same as the method adopted by the user solution generation unit 123 in one user device 100, and the user solution generation unit 123 records the user solution.
- the initial solution read from the unit 124 is common to the initial solutions ((X 4 ) and (X 5 )) used in one of the user devices 100.
- the user solution generation unit 123 in the other user device 100 generates the same new solution as that generated by the user solution generation unit 123 in the one user device 100. That is, the two user devices 100 will 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 a new solution from the user solution generation unit 123 and uses it to decrypt the encrypted data.
- the method of decoding is the same as in the case of the embodiment.
- the user encryption / decryption unit 126 decrypts the encrypted data and returns it to the original plaintext transmission target data.
- Subsequent processing in the communication system of the first modification is the same as in the case of the embodiment.
- the encrypted data is transmitted from the other user device 100 to the one user device 100, the roles of the one user device 100 and the other user device 100 in the above description are switched.
- encrypted communication ends.
- the communication system of the first modification only one solution or a fixed solution is used in the process of S1005 for performing encrypted communication.
- two user devices which are specific user devices, have a solution to be used for encryption or decryption, for example, such as changing the common key for performing encrypted communication of the common key method one after another.
- the user solution generation unit 123 of 100 can continuously generate the data. As described above, if the same immediately preceding solution (but not limited to one) is used, the user solution generation unit 123 in the two user devices 100 can generate synchronized solutions one after another.
- the two user devices 100 By generating synchronized common solutions one after another by the user solution generation unit 123 in the two user devices 100, the two user devices 100, which are specific user devices, perform encrypted communication using the synchronized solutions. be able to.
- the timing that can be adopted as the timing for generating a new solution is as described in the embodiment. In the case of the embodiment, whether or not the solution once synchronized between the user devices 100 included in the specific user device is used in the subsequent encrypted communication between the two user devices 100 included in the specific user device is used. Free as well.
- the synchronization information is sent to the user apparatus 100 on the side where the initial solution cannot be generated.
- any one of the solutions that can be generated only by the other user device 100 that transmits the synchronization information to both user devices 100 and is extracted from the synchronization information by both user devices 100 using their own solution can be used as the initial solution.
- the communication system of 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 in that the solution is synchronized between the server device 200 and each user device 100, and the solution between the two user devices 100, which are specific user devices. It is only how to synchronize. In other parts, there is no difference in the configuration of the communication system of the first embodiment and the embodiment, and there is no difference in the usage method and operation thereof.
- each server device 200 manages all user devices 100, can generate a solution common to all user devices 100, and synchronizes information (first) for all user devices 100.
- the server device 200 of the second modification manages only a part of a large number of user devices 100.
- each of the mobile phone carriers for example, company A, company D, and company S, manages only the user device 100 owned by its own user. It can occur in such cases.
- the user equipment 100 included in the communication system of the second modification is 1000 of the user equipment 100-1 to the user equipment 100-1000, and the server equipment 200 is six of the server equipment 200-1 to the server equipment 200-6.
- Each user device 100 may have the same configuration as that described in the embodiment. The same applies to the server devices 200-1 to the server devices 200-4 among the server devices 200. However, among the server devices 200, those described below are capable of performing encrypted communication with each other.
- the server device 200-1 manages the user device 100-1 to the user device 100-300 in the above-mentioned sense. That is, the server device 200-1 can generate a solution synchronized with the solution generated in all of the user devices 100-1 to the user device 100-300. Further, the server device 200-1 provides synchronization information (first synchronization information or second synchronization information) to any two user devices 100 among the user devices 100-1 to the user devices 100-300. You can do it. Similarly, the server device 200-2 manages the user device 100-301 to the user device 100-600, and the server device 200-3 manages the user device 100-601 to the user device 100-800.
- the server device 200-4 manages the user device 100-1 to the user device 100-1000, that is, all the user devices 100. Then, the server device 200-1 and the server device 200-2 can realize encrypted communication between them. Such encrypted communication may or may not be encrypted communication performed using a synchronously generated solution realized between two user devices 100 which are specific user devices in the embodiment. May be.
- 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.
- the server device 200-5 can perform encrypted communication with the server device 200-1 and the server device 200-3, and the server device 200-6 is the server device 200-2 and the server. Encrypted communication can be performed with the device 200-4.
- Encrypted communication performed by the server device 200-5 with the server device 200-1 or the server device 200-3, and performed by the server device 200-6 with the server device 200-2 or the server device 200-4.
- the encrypted communication may or may not be encrypted communication performed using a synchronously generated solution realized between two user devices 100 which are specific user devices in the embodiment. Is also good.
- any two user devices 100 managed by the common server device 200 which form a specific user device, are the server devices that manage them in common.
- synchronization information (first synchronization information or second synchronization information) supplied from the server device 200 can be obtained. That is, the user equipment 100-1 to the user equipment 100-300 can obtain common synchronization information from the server equipment 200-1, and the user equipment 100-301 to the user equipment 100-600 can be obtained from the server equipment 200-2.
- Common synchronization information can be obtained, and the user equipment 100-601 to the user equipment 100-800 can obtain common synchronization information from the server equipment 200-3, and the user equipment 100-1 to the user equipment 100 can be obtained. -1000, that is, all user devices 100 can obtain synchronization information from the server device 200-4.
- the user device 100-1 and the user device 100-2 require a common initial solution in order to execute encrypted communication using a solution generated in synchronization. ..
- the user device 100-1 and the user device 100-2 which are specific user devices, have two common synchronization information, that is, the first synchronization information and the second synchronization information. It is necessary to receive the provision from each of the two server devices 200. In that case, the user apparatus 100-1 and the user apparatus 100-2 transmit specific information to the server apparatus 200-1 that manages them in common and the server apparatus 200-4, thereby transmitting the specific information to the server apparatus 200-1.
- the first synchronization information can be received from one of the server devices 200-4, and the second synchronization information can be received from the other of the server device 200-1 and the server device 200-4.
- the method of generating and receiving the first synchronization information and the second synchronization information is as described in the embodiment.
- the user apparatus 100-1 and the user apparatus 100-2 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. Obtainable.
- the user device 100-1 and the user device 100-2 can execute encrypted communication using the solution generated in synchronization. In this case, it is the same as the case of the first embodiment described above.
- the administrator of the server device 200-1 and the server device 200-4 cannot know the initial solution used by the user device 100-1 and the user device 100-2 unless the managers collude with each other.
- the user apparatus 100-1 and the user apparatus 100-400 require a common initial solution in order to execute encrypted communication using the solutions generated in synchronization.
- the user device 100-1 which is a specific user device and the user device 100-400 provide the first synchronization information and the second synchronization information which are two common synchronization information, respectively, of the two server devices 200. It is necessary to receive from.
- the server device 200 that manages the user device 100-1 and the user device 100-400 in common there is a server device 200-4. Therefore, the user device 100-1 and the user device 100-400 send the specific information to the server device 200-4, so that the server device 200-4 sends the first synchronization information and the second synchronization.
- the user device 100-1 and the user device 100-400 have the first synchronization information from which server device 200.
- the question is whether to receive the other provision of the second synchronization information.
- the user device 100-1 sends specific information to the server device 200-1 that manages itself.
- the server device 200-1 manages the user device 100-1
- the user specified by the specific information does not manage the other user device 100-400 specified by the specific information.
- a server device 200 that manages the devices 100-400 and is capable of executing encrypted communication by itself is searched for.
- the server device 200-1 issues an inquiry to each server device 200 as to whether or not the user device 100-400 is managed.
- 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 one that generated the synchronization information of the server device 200-1 and the server device 200-2 did not generate the synchronization information of the server device 200-1 and the server device 200-2. The other of the 1 synchronization information and the 2nd synchronization information is sent. The server device 200-1 or the server device 200-2, which receives the other of the encrypted first synchronization information and the second synchronization information, returns 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 was shared between the server device 200-1 and the server device 200-2.
- 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 capable of performing encrypted communication because the solutions are synchronized.
- 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 that can perform encrypted communication because the solutions are synchronized.
- the user apparatus 100-1 and the user apparatus 100-400 decode the other of the encrypted first synchronization information and the second synchronization information. As a result, the user apparatus 100-1 and the user apparatus 100-400 are in a state of having the other of the common first synchronization information and the second synchronization information.
- the user apparatus 100-1 and the user apparatus 100-400 are in a state of having common first synchronization information and second synchronization information.
- the user apparatus 100-1 and the user apparatus 100-400 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. Obtainable.
- the user apparatus 100-1 and the user apparatus 100-400 can execute encrypted communication using the solution generated synchronously.
- the server device 200-4 can grasp only one of the first synchronization information and the second synchronization information, and the server device 200-1 and the server device 200-2 have the first synchronization information and the second synchronization information. Only the other side of the synchronization information can be grasped. 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 collude, the initial solution used by the user device 100-1 and the user device 100-400 is known. Can't.
- two server devices 200 that each manage two user devices 100 as specific user devices, and those capable of performing encrypted communication with each other, cooperate with each other to form one server device 200.
- By executing the process to be executed it becomes possible to provide at least one of the first synchronization information and the second synchronization information to the user device 100 managed by the two server devices 200.
- the user device 100-1 which is a specific user device and the user device 100-800 provide the first synchronization information and the second synchronization information which are two common synchronization information, respectively, of the two server devices 200. It is necessary to receive from.
- the server device 200 that manages the user device 100-1 and the user device 100-400 in common, there is a server device 200-4. Therefore, the user apparatus 100-1 and the user apparatus 100-400 receive the first synchronization information and the second synchronization information from the server apparatus 200-4 by sending specific information to the server apparatus 200-4.
- One of the synchronization information can be obtained. However, since there is no other server device 200 that manages both the user device 100-1 and the user device 100-800, the user device 100-1 and the user device 100-400 have the first synchronization information from which server device 200. The question is whether to receive the other provision of the second synchronization information.
- the user device 100-1 sends specific information to the server device 200-1 that manages itself.
- the server device 200-1 manages the user device 100-1
- the user specified by the specific information does not manage the other user device 100-800 specified by the specific information.
- a server device 200 that manages the devices 100-800 and is capable of executing encrypted communication by itself is searched for.
- the server device 200-1 is encrypted with the server device 200-3, which is a server device 200 capable of executing encrypted communication by itself and is a server device 200 that manages the user devices 100-800. Search for a server device 200 capable of communicating.
- the server device 200-1 can perform encrypted communication with the server device 200-3, which is the server device 200 that manages the user device 100-800, for each server device 200 capable of performing encrypted communication. Make an inquiry as to whether or not. Then, the server device 200-1 finds the server device 200-5 as the server device 200 capable of performing encrypted communication with the server device 200-3 as the server device 200 that manages the user device 100-800. .. To put it plainly, the server device 200-1 can perform encrypted communication with the server device 200-3 via the server device 200-5.
- one of the server device 200-1, the server device 200-3, and the server device 200-5 When it is found, one of the server device 200-1, the server device 200-3, and the server device 200-5 generates the other of the first synchronization information and the second synchronization information. Then, the server device 200-1, the server device 200-3, and the server device 200-5 are able to perform encrypted communication with each other by performing encrypted communication with each other to obtain the first synchronization information. The other of the second synchronization information is shared. As a result, the other of the first synchronization information and the second synchronization information is shared by the server device 200-1 and the 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 capable of performing encrypted communication because the solutions are synchronized.
- 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 that can perform encrypted communication by synchronizing the solutions.
- the user apparatus 100-1 and the user apparatus 100-800 decode the other of the encrypted first synchronization information and the second synchronization information.
- the user apparatus 100-1 and the user apparatus 100-800 are in a state of having the other of the common first synchronization information and the second synchronization information.
- the user apparatus 100-1 and the user apparatus 100-800 are in a state of having common first synchronization information and second synchronization information.
- the user apparatus 100-1 and the user apparatus 100-800 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. Obtainable.
- the user device 100-1 and the user device 100-800 can execute encrypted communication using the solution generated in synchronization.
- the server device 200-4 can grasp only one of the first synchronization information and the second synchronization information, and the server device 200-1, the server device 200-3, and the server device 200-5 are the first. Only the other of the synchronization information and the second synchronization information can be grasped.
- all the administrators of the four server devices 200 involved in the supply of the synchronization information are the administrator of any one of the server device 200-1, the server device 200-3, and the server device 200-5, and the server device 200-. Unless the administrator of 4 colludes, the initial solution used by the user device 100-1 and the user device 100-800 cannot be known.
- the first synchronization information or the second synchronization information or the second synchronization information is obtained by causing the two user devices 100 as the specific user devices to be processed as one server device 200 by the three or more cooperating server devices 200. It is possible to distribute synchronization information (or both). However, it is necessary that there is no overlap between the server device 200 related to the supply of one of the first synchronization information and the second synchronization information and the server device 200 related to the supply of the other of the first synchronization information and the second synchronization information. .. If there is such duplication, it is possible that there is a server device 200 that can grasp both the first synchronization information and the second synchronization information, and by extension, can grasp the initial solution used in the specific user device. Because there is sex.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Telephonic Communication Services (AREA)
- Computer And Data Communications (AREA)
Abstract
暗号化通信を行う2つの通信装置に共通の初期解を持たせるための安全な技術を提供する。 多数のユーザ装置はすべて、同じ初期解を持つのであれば同じ条件下では同じ解を生成する機能を持ち、同じ初期解から連続して生成される同期した解を用いて暗号化通信を行えるようになっている。2つのサーバ装置は、通信を行う2つのユーザ装置が同じ初期解を生成するために必要な初期解そのものではない情報であるそれぞれ同期情報を生成し(S2002)、暗号化通信を行う2つのユーザ装置に送信する(S2003)。2つのユーザ装置はそれぞれ、2つのサーバ装置200から受取った2つの同期情報に対して所定の演算を行い、同じ初期解を生成する(S1004)。その後2つのユーザ装置は、同じ初期解に基づいて暗号化通信を行う(S1005)。
Description
本発明は、通信技術、より詳細には暗号通信技術に関する。
例えば、インターネット上でインターネット上に存在する店舗への支払いを行う、インターネットバンキングで自らの口座の残高を見たり第三者への送金を行う等という場合には、それらを行うユーザは自らの端末と上記店舗等のサーバ装置との間でインターネットを介して通信を行う。かかる通信ではもちろん、悪意の第三者による通信の盗聴を防ぐことが必要である。
金銭にまつわるサービスをインターネットで受ける場合における上述の如き場合はもちろん、それ以外の一般的な通信を行う場合にも、通信の盗聴を防ぐ目的で、暗号化通信の技術が広く用いられている。
金銭にまつわるサービスをインターネットで受ける場合における上述の如き場合はもちろん、それ以外の一般的な通信を行う場合にも、通信の盗聴を防ぐ目的で、暗号化通信の技術が広く用いられている。
そのような技術の1つとして、本願発明者は予てからある技術を開発し、その普及に努めている。本願発明者が提唱する技術は、次のような技術である。
概略を説明すると、その技術では、2つの通信装置がインターネット等のネットワークを介して通信を行う。この場合、2つの通信装置は、連続して文字、数字、記号の少なくとも1つを所定数羅列したものである解を生成する解生成部を備えている。かかる解生成部は、初期解に基づいて解を生成するものであり同じ条件下で生成されたものが常に同じものとなるようになっている。つまり、解には初期値依存性がある。例を挙げるのであれば、解生成部が生成する解は、擬似乱数である。
また、2つの通信装置は、暗号化部を備えている。暗号化部は、送信の対象となる送信対象データを、解生成部で生成された解を用いて暗号化して暗号化データにする処理を実行する。また、2つの通信装置は、暗号化部が生成した暗号化データを通信の相手方となる通信装置に送信する送信部を備えている。
また、2つの通信装置は、暗号化データを通信の相手方となる通信装置から受信する受信部を備えている。また、2つの通信装置は、受信した暗号化データを、解生成部で生成された解を用いて復号化して送信対象データにする処理を実行する復号化部を備えている。
そして、暗号化通信を行おうとしている2つの通信装置は、共通の初期解を有しており、それ故それらがともに持つ解生成部で同じ解を生成することができるようになっている。本願発明では、そのような状況を、2つの装置が同期した解を生成することができるようになっている、と称することとする。そして、2つの通信装置が同期した解を生成することができるようになっていることにより、かかる通信装置における暗号化通信は、極めて安全なものとなる。
概略を説明すると、その技術では、2つの通信装置がインターネット等のネットワークを介して通信を行う。この場合、2つの通信装置は、連続して文字、数字、記号の少なくとも1つを所定数羅列したものである解を生成する解生成部を備えている。かかる解生成部は、初期解に基づいて解を生成するものであり同じ条件下で生成されたものが常に同じものとなるようになっている。つまり、解には初期値依存性がある。例を挙げるのであれば、解生成部が生成する解は、擬似乱数である。
また、2つの通信装置は、暗号化部を備えている。暗号化部は、送信の対象となる送信対象データを、解生成部で生成された解を用いて暗号化して暗号化データにする処理を実行する。また、2つの通信装置は、暗号化部が生成した暗号化データを通信の相手方となる通信装置に送信する送信部を備えている。
また、2つの通信装置は、暗号化データを通信の相手方となる通信装置から受信する受信部を備えている。また、2つの通信装置は、受信した暗号化データを、解生成部で生成された解を用いて復号化して送信対象データにする処理を実行する復号化部を備えている。
そして、暗号化通信を行おうとしている2つの通信装置は、共通の初期解を有しており、それ故それらがともに持つ解生成部で同じ解を生成することができるようになっている。本願発明では、そのような状況を、2つの装置が同期した解を生成することができるようになっている、と称することとする。そして、2つの通信装置が同期した解を生成することができるようになっていることにより、かかる通信装置における暗号化通信は、極めて安全なものとなる。
例えば、2つの装置が共通鍵方式の通信を実行する場合には、それら2つの装置は、暗号化或いは復号化の処理を規定するアルゴリズムと、そのアルゴリズムを実行する場合に用いられる共通鍵とを共有している。本願発明者が提唱する上述の通信装置では、通信を行う2つの通信装置における解生成部で、上述のように次々と新しい同期された共通の解が生成される。そして、上記2つの通信装置における暗号化部と復号化部とは、それら共通する解を、共通のタイミングで変化する共通鍵(或いは、共通鍵を生成するための共通する情報)として用いることにより、極めて高い通信の安全性を実現する。
本願発明者が提唱する上述の通信装置は、通信毎に解を発生させるのみならず、送信対象データを暗号化する場合の複数のタイミングで、最も頻繁な場合には、送信対象データを切断することにより、暗号化又は復号化の処理を一度に行う対象となる一単位のデータが生成される毎に新たな解を発生させることも可能である。つまり、本願発明者が提唱する上述の通信装置は、少なくとも1回の通信が行われる度に、場合によってはそれ以上のより頻繁なタイミングで暗号化通信を実行する場合の共通鍵を更新する、例えるなら、使い捨ての共通鍵を次々に生成して暗号化通信を行うものであるから、その暗号の強度が極めて高いのである。
なお、一応付言すると、上述の解によって変更される対象は、必ずしも共通鍵その他の鍵である必要はなく、アルゴリズムの方であっても構わない。
本願発明者が提唱する上述の通信装置は、通信毎に解を発生させるのみならず、送信対象データを暗号化する場合の複数のタイミングで、最も頻繁な場合には、送信対象データを切断することにより、暗号化又は復号化の処理を一度に行う対象となる一単位のデータが生成される毎に新たな解を発生させることも可能である。つまり、本願発明者が提唱する上述の通信装置は、少なくとも1回の通信が行われる度に、場合によってはそれ以上のより頻繁なタイミングで暗号化通信を実行する場合の共通鍵を更新する、例えるなら、使い捨ての共通鍵を次々に生成して暗号化通信を行うものであるから、その暗号の強度が極めて高いのである。
なお、一応付言すると、上述の解によって変更される対象は、必ずしも共通鍵その他の鍵である必要はなく、アルゴリズムの方であっても構わない。
上述の通信装置においては、2つの通信装置における解生成部で生成される解が互いに同期されていることが重要であり、かかる解の同期が達成できないのであれば2つの通信装置は暗号化通信を行うことができない。したがって、2つの通信装置は、暗号化通信を行う前に、解を同期させるために必要となる同じ初期解を共有することが要求される。
しかしながら、それが難しい場合もある。それは、通信装置が多数であって、且つそれら多数の通信装置のうちの2つが暗号化通信を行うような場合である。例えば、多数のパーソナルコンピュータ、携帯電話、スマートフォンが上述の通信装置である場合において、それら通信装置のうちの2つが通信の一例となる電子メールのやり取りを行う場合には、それら2つの通信装置が、通信の開始前に共通する初期解を持つ必要がある。この場合において、暗号化通信を行う必要のある2つの通信装置の対の数は膨大であり、そのすべての対における2つの通信装置に対して共通の初期解を持たせるのには手間がかかり、また困難である。
しかしながら、それが難しい場合もある。それは、通信装置が多数であって、且つそれら多数の通信装置のうちの2つが暗号化通信を行うような場合である。例えば、多数のパーソナルコンピュータ、携帯電話、スマートフォンが上述の通信装置である場合において、それら通信装置のうちの2つが通信の一例となる電子メールのやり取りを行う場合には、それら2つの通信装置が、通信の開始前に共通する初期解を持つ必要がある。この場合において、暗号化通信を行う必要のある2つの通信装置の対の数は膨大であり、そのすべての対における2つの通信装置に対して共通の初期解を持たせるのには手間がかかり、また困難である。
もっとも本願発明者は、2つの通信装置に共通の初期解をどのようにして持たせるかという上述の問題を解決するための技術をも既に提案している。その技術は、インターネットに接続される多数の通信装置以外に、2つの通信装置間での暗号化通信を管理する、これもインターネットに接続される制御装置を用意するというものである。かかる制御装置は、暗号化通信を開始する前の2つの通信装置に対して、各通信装置が共通の初期解を生成するために必要な情報である同期情報を送信するようになっている。通信を行う2つの通信装置は、同期情報から共通の初期解を生成することにより、共通の初期解を共有することができる。
それにより、共通の初期解を得た2つの通信装置は、それ以降、暗号化通信を行う際に、同期した解をそれらの持つ解生成部で生成できるようになる。
それにより、共通の初期解を得た2つの通信装置は、それ以降、暗号化通信を行う際に、同期した解をそれらの持つ解生成部で生成できるようになる。
上述したように、制御装置から2つの通信装置に対して同期情報を送信することにより、2つの通信装置では初期解を共有すること、及び同期した解を生成することが可能となる。したがって、2つの通信装置は、極めて秘匿性が高い暗号化通信を実行することができる。
かかる暗号化通信は、悪意のある第三者に盗聴される可能性は極めて低い。しかしながら、制御装置は同期情報を知っているのであるから、制御装置或いはその管理者が悪意を持っていた場合、同期情報に基づいて2つの通信装置で用いられる初期解を生成することのできる制御装置、その管理者、或いはその管理者と共謀した者に、2つの通信装置間の暗号化通信を盗聴される可能性がある。
かかる暗号化通信は、悪意のある第三者に盗聴される可能性は極めて低い。しかしながら、制御装置は同期情報を知っているのであるから、制御装置或いはその管理者が悪意を持っていた場合、同期情報に基づいて2つの通信装置で用いられる初期解を生成することのできる制御装置、その管理者、或いはその管理者と共謀した者に、2つの通信装置間の暗号化通信を盗聴される可能性がある。
本願発明は、多数の通信装置のうちの暗号化通信を行おうとする2つの通信装置に、暗号化通信に用いる同期された連続した解を生成するために必要となる共通の初期解を持たせるための、安全性の高い技術を提供することをその課題とする。
上述の課題を解決するための本願発明は、以下のようなものである。
本願発明は、ネットワークを介して互いに通信可能とされた、3つ以上のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続された2つ以上のサーバ装置と、を含んでなる通信システムを、2つ以上の前記サーバ装置との組合せによって構成するユーザ装置のうちの2つである、後述する特定ユーザ装置にて実行される方法である。
上述の通信システムに含まれる前記ユーザ装置はそれぞれ、初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成部と、送信の対象となる送信対象データを、前記ユーザ解生成部で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化部と、前記ネットワークを介しての送受信を行うユーザ送受信部と、前記ユーザ送受信部で受信した前記暗号化データを、前記ユーザ解生成部で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化部と、を有している。また、各ユーザ装置は、暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成部でそれぞれ生成することにより、相手方の前記ユーザ暗号化部で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送受信部から送られてきて自らの前記ユーザ送受信部により受取ったものを、自らの前記ユーザ復号化部によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっている。
本願発明における方法は、前記特定ユーザ装置にて実行される方法であって、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの1つである第1サーバ装置へ送信するとともに、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの他の1つである第2サーバ装置へ送信する第1過程と、前記特定情報を受付けた前記第1サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である前記サーバ装置ごとにユニークな同期情報である第1同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付ける第2過程と、前記特定情報を受付けた前記第2サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記同期情報である第2同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付ける第3過程と、前記ユーザ装置のそれぞれが、前記第1同期情報と前記第2同期情報とを用いて予め定めた所定の演算を行うことにより共通の前記初期解を得る第4過程と、を含む。
本願発明は、ネットワークを介して互いに通信可能とされた、3つ以上のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続された2つ以上のサーバ装置と、を含んでなる通信システムを、2つ以上の前記サーバ装置との組合せによって構成するユーザ装置のうちの2つである、後述する特定ユーザ装置にて実行される方法である。
上述の通信システムに含まれる前記ユーザ装置はそれぞれ、初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成部と、送信の対象となる送信対象データを、前記ユーザ解生成部で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化部と、前記ネットワークを介しての送受信を行うユーザ送受信部と、前記ユーザ送受信部で受信した前記暗号化データを、前記ユーザ解生成部で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化部と、を有している。また、各ユーザ装置は、暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成部でそれぞれ生成することにより、相手方の前記ユーザ暗号化部で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送受信部から送られてきて自らの前記ユーザ送受信部により受取ったものを、自らの前記ユーザ復号化部によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっている。
本願発明における方法は、前記特定ユーザ装置にて実行される方法であって、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの1つである第1サーバ装置へ送信するとともに、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの他の1つである第2サーバ装置へ送信する第1過程と、前記特定情報を受付けた前記第1サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である前記サーバ装置ごとにユニークな同期情報である第1同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付ける第2過程と、前記特定情報を受付けた前記第2サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記同期情報である第2同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付ける第3過程と、前記ユーザ装置のそれぞれが、前記第1同期情報と前記第2同期情報とを用いて予め定めた所定の演算を行うことにより共通の前記初期解を得る第4過程と、を含む。
本願発明におけるユーザ装置とサーバ装置とは、概ね、背景技術の欄で説明した通信装置と制御装置とにそれぞれ該当する。
各ユーザ装置は、背景技術の欄で説明した通信装置における解生成部に相当するユーザ解生成部を備えており、かかるユーザ解生成部で解を連続して生成することが可能となっている。ユーザ装置のうちの暗号化通信を行う2つのユーザ装置である特定ユーザ装置は、それらが共通の初期解を持っている場合には、背景技術の欄で説明した通信装置と同様に、そのユーザ解生成部で同期された状態で同じ解を生成することができるようになっており、その解を用いて暗号化通信を行えるようになっている。解は、乱数であり、より詳細には、コンピュータで生成できる乱数であるから擬似乱数である。
各ユーザ装置は、背景技術の欄で説明した通信装置における解生成部に相当するユーザ解生成部を備えており、かかるユーザ解生成部で解を連続して生成することが可能となっている。ユーザ装置のうちの暗号化通信を行う2つのユーザ装置である特定ユーザ装置は、それらが共通の初期解を持っている場合には、背景技術の欄で説明した通信装置と同様に、そのユーザ解生成部で同期された状態で同じ解を生成することができるようになっており、その解を用いて暗号化通信を行えるようになっている。解は、乱数であり、より詳細には、コンピュータで生成できる乱数であるから擬似乱数である。
背景技術の欄で説明したように、特定ユーザ装置と本願発明で称する通信を行う2つのユーザ装置が解を同期した状態とするには、2つのユーザ装置が共通する初期解を持ち合うことが必要である。それを、本願発明では、以下のような第1から第4過程を実行することにより実現している。
第1過程は、特定ユーザ装置のいずれかが、特定ユーザ装置の双方を特定する情報である特定情報をユーザ送受信部によりサーバ装置のうちの1つである第1サーバ装置へ送信するとともに、特定ユーザ装置のいずれかが、特定ユーザ装置の双方を特定する情報である特定情報をユーザ送受信部によりサーバ装置のうちの他の1つである第2サーバ装置へ送信するというものである。
平たく言うと、第1過程は、これから通信を行う特定ユーザ装置のいずれかが、第1サーバ装置と第2サーバ装置という2つのサーバ装置に、通信を行う2つのユーザ装置がどれであるかということを通知する、というものである。例えば、各ユーザ装置に対して、各ユーザ装置毎にユニークな識別子、例えば、ID、IPアドレス、電話番号等が振られているのであれば、特定ユーザ装置である2つのユーザ装置に振られた識別子を、特定ユーザ装置に含まれるユーザ装置のいずれかが、第1サーバ装置と第2サーバ装置とに、特定情報として通知する。第1サーバ装置にかかる通知を行うユーザ装置と、第2サーバ装置にかかる通知を行うユーザ装置とは、同じであっても良いし、そうでなくても良い。
第2過程は、特定情報を受付けた第1サーバ装置が生成し、特定情報によって特定される特定ユーザ装置の双方に送信した、特定ユーザ装置が同じ初期解を得て特定ユーザ装置間で解を同期させるために必要な情報であるサーバ装置ごとにユニークな同期情報である第1同期情報を、特定ユーザ装置それぞれのユーザ送受信部で受付けるというものである。
平たく言うと、第2過程では、特定情報を受取った第1サーバ装置で同期情報が生成され、生成された同期情報である第1同期情報が、特定情報で特定された2つのユーザ装置に送られる。特定ユーザ装置である2つのユーザ装置は第1同期情報を受取る。第1同期情報は、後述するように、同じものである場合もあるし、そうでない場合もある。
第3過程は、特定情報を受付けた第2サーバ装置が生成し、特定情報によって特定される特定ユーザ装置の双方に送信した、同期情報である第2同期情報を、特定ユーザ装置それぞれのユーザ送受信部で受付けるというものである。
第3過程は、第2過程と殆ど同じである。第1サーバ装置の代わりに第2サーバ装置が登場するのが、第2過程と第3過程の違いである。平たく言うと、第3過程では、特定情報を受取った第2サーバ装置で同期情報が生成され、生成された同期情報である第2同期情報が、特定情報で特定された2つのユーザ装置に送られる。特定ユーザ装置である2つのユーザ装置は第2同期情報を受取る。第2同期情報は同じものである場合もあるし、後述するように、そうでない場合もある。
第4過程は、ユーザ装置のそれぞれが、第1同期情報と第2同期情報とを用いて予め定めた所定の演算を行うことにより共通の初期解を得るというものである。結果として、2つのユーザ装置は、共通の初期解を持ち合うことになる。例えば、第2過程で第1サーバ装置が特定ユーザ装置のそれぞれに送る第1同期情報が同じものであり、第3過程で第2サーバ装置が特定ユーザ装置のそれぞれに送る第2同期情報が同じものであるのであれば、2つのユーザ装置がそれぞれ、第1同期情報と第2同期情報とを乗算するとか、それらの排他的論理和を取ることにより、特定ユーザ装置である2つのユーザ装置は、同じ初期解を持ち合うことになる。
かかる方法により特定ユーザ装置に同一の初期解を持たせることによる利点は、以下の通りである。
かかる方法によって特定ユーザ装置が持つことになる初期解は、第1同期情報と第2同期情報との双方を用いずには生成できないものである。そして、第1サーバ装置は第1同期情報を知っているが、第2同期情報を知らず、第2サーバ装置は第2同期情報を知っているが、第1同期情報を知らない。したがって、第1サーバ装置或いはその管理者も、第2サーバ装置或いはその管理者も、第1同期情報と第2同期情報の双方を知ることが無いので、特定ユーザ装置である2つのユーザ装置で生成された初期解を生成することができない。
もちろん、第1サーバ装置の管理者と第2サーバ装置の管理者とが共謀すれば、第1同期情報と第2同期情報との双方を知ることができるため、特定ユーザ装置で生成された初期解を把握することも可能であろうが、そのような可能性は、背景技術の欄で説明した従来技術のように、第1サーバ装置或いはその管理者と、第2サーバ装置或いはその管理者の片方のみが悪意を持つ可能性に比較すれば極めて低いし、露見しやすい。したがって、本願発明の方法によって特定ユーザ装置としての2つのユーザ装置が初期解を持ち合う過程は、従来に比して極めて安全性が高い。
第1過程は、特定ユーザ装置のいずれかが、特定ユーザ装置の双方を特定する情報である特定情報をユーザ送受信部によりサーバ装置のうちの1つである第1サーバ装置へ送信するとともに、特定ユーザ装置のいずれかが、特定ユーザ装置の双方を特定する情報である特定情報をユーザ送受信部によりサーバ装置のうちの他の1つである第2サーバ装置へ送信するというものである。
平たく言うと、第1過程は、これから通信を行う特定ユーザ装置のいずれかが、第1サーバ装置と第2サーバ装置という2つのサーバ装置に、通信を行う2つのユーザ装置がどれであるかということを通知する、というものである。例えば、各ユーザ装置に対して、各ユーザ装置毎にユニークな識別子、例えば、ID、IPアドレス、電話番号等が振られているのであれば、特定ユーザ装置である2つのユーザ装置に振られた識別子を、特定ユーザ装置に含まれるユーザ装置のいずれかが、第1サーバ装置と第2サーバ装置とに、特定情報として通知する。第1サーバ装置にかかる通知を行うユーザ装置と、第2サーバ装置にかかる通知を行うユーザ装置とは、同じであっても良いし、そうでなくても良い。
第2過程は、特定情報を受付けた第1サーバ装置が生成し、特定情報によって特定される特定ユーザ装置の双方に送信した、特定ユーザ装置が同じ初期解を得て特定ユーザ装置間で解を同期させるために必要な情報であるサーバ装置ごとにユニークな同期情報である第1同期情報を、特定ユーザ装置それぞれのユーザ送受信部で受付けるというものである。
平たく言うと、第2過程では、特定情報を受取った第1サーバ装置で同期情報が生成され、生成された同期情報である第1同期情報が、特定情報で特定された2つのユーザ装置に送られる。特定ユーザ装置である2つのユーザ装置は第1同期情報を受取る。第1同期情報は、後述するように、同じものである場合もあるし、そうでない場合もある。
第3過程は、特定情報を受付けた第2サーバ装置が生成し、特定情報によって特定される特定ユーザ装置の双方に送信した、同期情報である第2同期情報を、特定ユーザ装置それぞれのユーザ送受信部で受付けるというものである。
第3過程は、第2過程と殆ど同じである。第1サーバ装置の代わりに第2サーバ装置が登場するのが、第2過程と第3過程の違いである。平たく言うと、第3過程では、特定情報を受取った第2サーバ装置で同期情報が生成され、生成された同期情報である第2同期情報が、特定情報で特定された2つのユーザ装置に送られる。特定ユーザ装置である2つのユーザ装置は第2同期情報を受取る。第2同期情報は同じものである場合もあるし、後述するように、そうでない場合もある。
第4過程は、ユーザ装置のそれぞれが、第1同期情報と第2同期情報とを用いて予め定めた所定の演算を行うことにより共通の初期解を得るというものである。結果として、2つのユーザ装置は、共通の初期解を持ち合うことになる。例えば、第2過程で第1サーバ装置が特定ユーザ装置のそれぞれに送る第1同期情報が同じものであり、第3過程で第2サーバ装置が特定ユーザ装置のそれぞれに送る第2同期情報が同じものであるのであれば、2つのユーザ装置がそれぞれ、第1同期情報と第2同期情報とを乗算するとか、それらの排他的論理和を取ることにより、特定ユーザ装置である2つのユーザ装置は、同じ初期解を持ち合うことになる。
かかる方法により特定ユーザ装置に同一の初期解を持たせることによる利点は、以下の通りである。
かかる方法によって特定ユーザ装置が持つことになる初期解は、第1同期情報と第2同期情報との双方を用いずには生成できないものである。そして、第1サーバ装置は第1同期情報を知っているが、第2同期情報を知らず、第2サーバ装置は第2同期情報を知っているが、第1同期情報を知らない。したがって、第1サーバ装置或いはその管理者も、第2サーバ装置或いはその管理者も、第1同期情報と第2同期情報の双方を知ることが無いので、特定ユーザ装置である2つのユーザ装置で生成された初期解を生成することができない。
もちろん、第1サーバ装置の管理者と第2サーバ装置の管理者とが共謀すれば、第1同期情報と第2同期情報との双方を知ることができるため、特定ユーザ装置で生成された初期解を把握することも可能であろうが、そのような可能性は、背景技術の欄で説明した従来技術のように、第1サーバ装置或いはその管理者と、第2サーバ装置或いはその管理者の片方のみが悪意を持つ可能性に比較すれば極めて低いし、露見しやすい。したがって、本願発明の方法によって特定ユーザ装置としての2つのユーザ装置が初期解を持ち合う過程は、従来に比して極めて安全性が高い。
本願発明におけるサーバ装置は、各ユーザ装置が持つユーザ解生成部と同様のサーバ装置解生成部を備えていてもよい。つまり、サーバ装置は、前記ユーザ装置のそれぞれにおいて異なる前記ユーザ装置における前記初期解と同一の前記初期解に基づいて、前記ユーザ装置のそれぞれが持つ前記ユーザ解生成部で生成される前記解と同じ、前記ユーザ装置のそれぞれの前記ユーザ解生成部で生成されるものと同期された前記解を生成することができるサーバ装置解生成部を備えていてもよい。ここでいう「初期解」は、特定ユーザ装置間で同期した状態で解を生成するための初期解ではなく、サーバ装置と各ユーザ装置間で同期した状態で解を生成するための初期解である。この場合、各サーバ装置は、前記サーバ装置毎にユニークな情報である基礎情報を連続して生成する基礎情報生成部と、前記基礎情報生成部で生成された前記基礎情報と前記サーバ装置解生成部で生成された前記解とを用いて可逆的な演算を行うサーバ装置演算部とを備えていてもよい。
サーバ装置がそのようなものである場合、本願発明の方法における第2過程から第4過程は、以下のようなものとすることができる。
前記第2過程では、前記特定情報を受付けた前記第1サーバ装置が、当該第1サーバ装置の前記基礎情報生成部で生成した前記基礎情報と、当該第1サーバ装置の前記サーバ装置解生成部で生成した前記特定ユーザ装置の一方の前記ユーザ解生成部で生成可能な前記解とを用いて、当該第1サーバ装置の前記サーバ装置演算部で演算することによって前記第1同期情報を生成し、前記特定情報によって特定される前記特定ユーザ装置の一方に送信した前記第1同期情報を、前記特定ユーザ装置の一方がその前記ユーザ送受信部で受付けるとともに、前記特定情報を受付けた前記第1サーバ装置が、当該第1サーバ装置の前記基礎情報生成部で生成した前記基礎情報と、当該第1サーバ装置の前記サーバ装置解生成部で生成した前記特定ユーザ装置の他方の前記ユーザ解生成部で生成可能な前記解とを用いて、当該第1サーバ装置の前記サーバ装置演算部で演算することによって前記第1同期情報を生成し、前記特定情報によって特定される前記特定ユーザ装置の一方に送信した前記特定ユーザ装置の一方に送られたものとは異なる前記第1同期情報を、前記特定ユーザ装置の他方がその前記ユーザ送受信部で受付ける。
平たく言うと、この場合の第2過程では、第1サーバ装置が、第1サーバ装置が生成した基礎情報と、特定ユーザ装置の一方で生成可能な解とに可逆的な演算を行うことによって生成された第1同期情報を特定ユーザ装置の一方に送るとともに、上記基礎情報と同じ基礎情報と、特定ユーザ装置の他方で生成可能な解とに可逆的な演算を行うことによって生成された第1同期情報を特定ユーザ装置の他方に送る。この場合、特定ユーザ装置の一方と他方が受取る第1同期情報は、同じ基礎情報に基づくものではあるが、異なる解による演算がなされたものなので、互いに異なるものとなる。
前記第3過程では、前記特定情報を受付けた前記第2サーバ装置が、当該第2サーバ装置の前記基礎情報生成部で生成した前記基礎情報と、当該第2サーバ装置の前記サーバ装置解生成部で生成した前記特定ユーザ装置の一方の前記ユーザ解生成部で生成可能な前記解とを用いて、当該第2サーバ装置の前記サーバ装置演算部で演算することによって前記第2同期情報を生成し、前記特定情報によって特定される前記特定ユーザ装置の一方に送信した前記第2同期情報を、前記特定ユーザ装置の一方がその前記ユーザ送受信部で受付けるとともに、前記特定情報を受付けた前記第2サーバ装置が、当該第2サーバ装置の前記基礎情報生成部で生成した前記基礎情報と、当該第2サーバ装置の前記サーバ装置解生成部で生成した前記特定ユーザ装置の他方の前記ユーザ解生成部で生成可能な前記解とを用いて、当該第2サーバ装置の前記サーバ装置演算部で演算することによって前記第2同期情報を生成し、前記特定情報によって特定される前記特定ユーザ装置の一方に送信した前記特定ユーザ装置の一方に送られたものとは異なる前記第2同期情報を、前記特定ユーザ装置の他方がその前記ユーザ送受信部で受付ける。
第3過程は、第2過程と殆ど同じである。第1サーバ装置の代わりに第2サーバ装置が登場するのが、第2過程と第3過程の違いである。平たく言うと、この場合の第3過程では、第2サーバ装置が、第2サーバ装置が生成した基礎情報と、特定ユーザ装置の一方で生成可能な解とに可逆的な演算を行うことによって生成された第2同期情報を特定ユーザ装置の一方に送るとともに、上記基礎情報と同じ基礎情報と、特定ユーザ装置の他方で生成可能な解とに可逆的な演算を行うことによって生成された第2同期情報を特定ユーザ装置の他方に送る。この場合、特定ユーザ装置の一方と他方が受取る第2同期情報は、同じ基礎情報に基づくものではあるが、異なる解による演算がなされたものなので、互いに異なるものとなる。
前記第4過程では、前記特定ユーザ装置の一方が、前記第1サーバ装置から受付けた前記第1同期情報に対して、そのユーザ解生成部で生成された、当該第1同期情報を生成する際に前記第1サーバ装置で生成されたのと同じ前記解を用いて、前記第1サーバ装置の前記サーバ装置演算部で行われた演算の逆演算を行うことにより前記第1サーバ装置で前記第1同期情報を生成する際に生成された前記基礎情報を取り出すとともに、前記第2サーバ装置から受付けた前記第2同期情報に対して、そのユーザ解生成部で生成された、当該第2同期情報を生成する際に前記第2サーバ装置で生成されたのと同じ前記解を用いて、前記第2サーバ装置の前記サーバ装置演算部で行われた演算の逆演算を行うことにより前記第2サーバ装置で前記第2同期情報を生成する際に生成された前記基礎情報を取り出し、前記特定ユーザ装置の他方が、前記第1サーバ装置から受付けた前記第1同期情報に対して、そのユーザ解生成部で生成された、当該第1同期情報を生成する際に前記第1サーバ装置で生成されたのと同じ前記解を用いて、前記第1サーバ装置の前記サーバ装置演算部で行われた演算の逆演算を行うことにより前記第1サーバ装置で前記第1同期情報を生成する際に生成された前記基礎情報を取り出すとともに、前記第2サーバ装置から受付けた前記第2同期情報に対して、そのユーザ解生成部で生成された、当該第2同期情報を生成する際に前記第2サーバ装置で生成されたのと同じ前記解を用いて、前記第2サーバ装置の前記演算部で行われた演算の逆演算を行うことにより前記第2サーバ装置で前記第2同期情報を生成する際に生成された前記基礎情報を取り出す。そして、前記特定ユーザ装置の双方が、前記第1サーバ装置と前記第2サーバ装置がそれぞれ生成した、2つの共通の前記基礎情報に対して予め定めた所定の演算を行うことにより共通の前記初期解を得る。
平たく言うと、特定ユーザ装置の一方は、第1サーバ装置から受取った第1同期情報から、第1サーバ装置で生成された基礎情報を取り出し、また、第2サーバ装置から受取った第2同期情報から、第2サーバ装置で生成された基礎情報を取り出し、それら2つの基礎情報に対して所定の演算を行うことにより、初期解を生成する。上述したように、第1サーバ装置で生成された第1同期情報は、第1サーバ装置で生成された基礎情報に、特定ユーザ装置の一方で生成可能な解を用いて可逆的な演算を行ったものであるから、特定ユーザ装置の一方で生成可能な、可逆的な演算を行う際に第1サーバ装置で使われた解を用いて第1同期情報に対して第1サーバ装置で行われた演算の逆演算を行えば、特定ユーザ装置の一方は、第1同期情報から第1サーバ装置で生成された基礎情報を取出すことができる。同様に、特定ユーザ装置の一方は、第2同期情報から第2サーバ装置で生成された基礎情報を取出すことができる。そのようにして取り出した2つの基礎情報に対して所定の演算を行うことにより、特定ユーザ装置の一方は、初期解を得ることができる。
同様の処理を特定ユーザ装置の他方も行う。平たく言うと、特定ユーザ装置の他方は、第1サーバ装置から受取った第1同期情報から、第1サーバ装置で生成された基礎情報を取り出し、また、第2サーバ装置から受取った第2同期情報から、第2サーバ装置で生成された基礎情報を取り出し、それら2つの基礎情報に対して所定の演算を行うことにより、初期解を生成する。特定ユーザ装置の他方が、第1サーバ装置から受取った第1同期情報から、第1サーバ装置で生成された基礎情報を取り出すことが可能であり、また、第2サーバ装置から受取った第2同期情報から、第2サーバ装置で生成された基礎情報を取り出すことが可能な理由は、特定ユーザ装置の一方でそれらが可能な理由と同じである。そして、特定ユーザ装置の他方は、それら2つの基礎情報に対して所定の演算を行い、初期解を得る。特定ユーザ装置の他方が第1同期情報と第2同期情報とからそれぞれ取り出した、第1サーバ装置で生成された基礎情報、及び第2サーバ装置で生成された基礎情報は、特定ユーザ装置の一方で取り出された、第1サーバ装置で生成された基礎情報、及び第2サーバ装置で生成された基礎情報と同じであるから、そのようにして取り出した2つの基礎情報に対して所定の演算を行うことにより、特定ユーザ装置の他方が得た初期解は、特定ユーザ装置の一方が得た初期解と同じものとなる。
サーバ装置がそのようなものである場合、本願発明の方法における第2過程から第4過程は、以下のようなものとすることができる。
前記第2過程では、前記特定情報を受付けた前記第1サーバ装置が、当該第1サーバ装置の前記基礎情報生成部で生成した前記基礎情報と、当該第1サーバ装置の前記サーバ装置解生成部で生成した前記特定ユーザ装置の一方の前記ユーザ解生成部で生成可能な前記解とを用いて、当該第1サーバ装置の前記サーバ装置演算部で演算することによって前記第1同期情報を生成し、前記特定情報によって特定される前記特定ユーザ装置の一方に送信した前記第1同期情報を、前記特定ユーザ装置の一方がその前記ユーザ送受信部で受付けるとともに、前記特定情報を受付けた前記第1サーバ装置が、当該第1サーバ装置の前記基礎情報生成部で生成した前記基礎情報と、当該第1サーバ装置の前記サーバ装置解生成部で生成した前記特定ユーザ装置の他方の前記ユーザ解生成部で生成可能な前記解とを用いて、当該第1サーバ装置の前記サーバ装置演算部で演算することによって前記第1同期情報を生成し、前記特定情報によって特定される前記特定ユーザ装置の一方に送信した前記特定ユーザ装置の一方に送られたものとは異なる前記第1同期情報を、前記特定ユーザ装置の他方がその前記ユーザ送受信部で受付ける。
平たく言うと、この場合の第2過程では、第1サーバ装置が、第1サーバ装置が生成した基礎情報と、特定ユーザ装置の一方で生成可能な解とに可逆的な演算を行うことによって生成された第1同期情報を特定ユーザ装置の一方に送るとともに、上記基礎情報と同じ基礎情報と、特定ユーザ装置の他方で生成可能な解とに可逆的な演算を行うことによって生成された第1同期情報を特定ユーザ装置の他方に送る。この場合、特定ユーザ装置の一方と他方が受取る第1同期情報は、同じ基礎情報に基づくものではあるが、異なる解による演算がなされたものなので、互いに異なるものとなる。
前記第3過程では、前記特定情報を受付けた前記第2サーバ装置が、当該第2サーバ装置の前記基礎情報生成部で生成した前記基礎情報と、当該第2サーバ装置の前記サーバ装置解生成部で生成した前記特定ユーザ装置の一方の前記ユーザ解生成部で生成可能な前記解とを用いて、当該第2サーバ装置の前記サーバ装置演算部で演算することによって前記第2同期情報を生成し、前記特定情報によって特定される前記特定ユーザ装置の一方に送信した前記第2同期情報を、前記特定ユーザ装置の一方がその前記ユーザ送受信部で受付けるとともに、前記特定情報を受付けた前記第2サーバ装置が、当該第2サーバ装置の前記基礎情報生成部で生成した前記基礎情報と、当該第2サーバ装置の前記サーバ装置解生成部で生成した前記特定ユーザ装置の他方の前記ユーザ解生成部で生成可能な前記解とを用いて、当該第2サーバ装置の前記サーバ装置演算部で演算することによって前記第2同期情報を生成し、前記特定情報によって特定される前記特定ユーザ装置の一方に送信した前記特定ユーザ装置の一方に送られたものとは異なる前記第2同期情報を、前記特定ユーザ装置の他方がその前記ユーザ送受信部で受付ける。
第3過程は、第2過程と殆ど同じである。第1サーバ装置の代わりに第2サーバ装置が登場するのが、第2過程と第3過程の違いである。平たく言うと、この場合の第3過程では、第2サーバ装置が、第2サーバ装置が生成した基礎情報と、特定ユーザ装置の一方で生成可能な解とに可逆的な演算を行うことによって生成された第2同期情報を特定ユーザ装置の一方に送るとともに、上記基礎情報と同じ基礎情報と、特定ユーザ装置の他方で生成可能な解とに可逆的な演算を行うことによって生成された第2同期情報を特定ユーザ装置の他方に送る。この場合、特定ユーザ装置の一方と他方が受取る第2同期情報は、同じ基礎情報に基づくものではあるが、異なる解による演算がなされたものなので、互いに異なるものとなる。
前記第4過程では、前記特定ユーザ装置の一方が、前記第1サーバ装置から受付けた前記第1同期情報に対して、そのユーザ解生成部で生成された、当該第1同期情報を生成する際に前記第1サーバ装置で生成されたのと同じ前記解を用いて、前記第1サーバ装置の前記サーバ装置演算部で行われた演算の逆演算を行うことにより前記第1サーバ装置で前記第1同期情報を生成する際に生成された前記基礎情報を取り出すとともに、前記第2サーバ装置から受付けた前記第2同期情報に対して、そのユーザ解生成部で生成された、当該第2同期情報を生成する際に前記第2サーバ装置で生成されたのと同じ前記解を用いて、前記第2サーバ装置の前記サーバ装置演算部で行われた演算の逆演算を行うことにより前記第2サーバ装置で前記第2同期情報を生成する際に生成された前記基礎情報を取り出し、前記特定ユーザ装置の他方が、前記第1サーバ装置から受付けた前記第1同期情報に対して、そのユーザ解生成部で生成された、当該第1同期情報を生成する際に前記第1サーバ装置で生成されたのと同じ前記解を用いて、前記第1サーバ装置の前記サーバ装置演算部で行われた演算の逆演算を行うことにより前記第1サーバ装置で前記第1同期情報を生成する際に生成された前記基礎情報を取り出すとともに、前記第2サーバ装置から受付けた前記第2同期情報に対して、そのユーザ解生成部で生成された、当該第2同期情報を生成する際に前記第2サーバ装置で生成されたのと同じ前記解を用いて、前記第2サーバ装置の前記演算部で行われた演算の逆演算を行うことにより前記第2サーバ装置で前記第2同期情報を生成する際に生成された前記基礎情報を取り出す。そして、前記特定ユーザ装置の双方が、前記第1サーバ装置と前記第2サーバ装置がそれぞれ生成した、2つの共通の前記基礎情報に対して予め定めた所定の演算を行うことにより共通の前記初期解を得る。
平たく言うと、特定ユーザ装置の一方は、第1サーバ装置から受取った第1同期情報から、第1サーバ装置で生成された基礎情報を取り出し、また、第2サーバ装置から受取った第2同期情報から、第2サーバ装置で生成された基礎情報を取り出し、それら2つの基礎情報に対して所定の演算を行うことにより、初期解を生成する。上述したように、第1サーバ装置で生成された第1同期情報は、第1サーバ装置で生成された基礎情報に、特定ユーザ装置の一方で生成可能な解を用いて可逆的な演算を行ったものであるから、特定ユーザ装置の一方で生成可能な、可逆的な演算を行う際に第1サーバ装置で使われた解を用いて第1同期情報に対して第1サーバ装置で行われた演算の逆演算を行えば、特定ユーザ装置の一方は、第1同期情報から第1サーバ装置で生成された基礎情報を取出すことができる。同様に、特定ユーザ装置の一方は、第2同期情報から第2サーバ装置で生成された基礎情報を取出すことができる。そのようにして取り出した2つの基礎情報に対して所定の演算を行うことにより、特定ユーザ装置の一方は、初期解を得ることができる。
同様の処理を特定ユーザ装置の他方も行う。平たく言うと、特定ユーザ装置の他方は、第1サーバ装置から受取った第1同期情報から、第1サーバ装置で生成された基礎情報を取り出し、また、第2サーバ装置から受取った第2同期情報から、第2サーバ装置で生成された基礎情報を取り出し、それら2つの基礎情報に対して所定の演算を行うことにより、初期解を生成する。特定ユーザ装置の他方が、第1サーバ装置から受取った第1同期情報から、第1サーバ装置で生成された基礎情報を取り出すことが可能であり、また、第2サーバ装置から受取った第2同期情報から、第2サーバ装置で生成された基礎情報を取り出すことが可能な理由は、特定ユーザ装置の一方でそれらが可能な理由と同じである。そして、特定ユーザ装置の他方は、それら2つの基礎情報に対して所定の演算を行い、初期解を得る。特定ユーザ装置の他方が第1同期情報と第2同期情報とからそれぞれ取り出した、第1サーバ装置で生成された基礎情報、及び第2サーバ装置で生成された基礎情報は、特定ユーザ装置の一方で取り出された、第1サーバ装置で生成された基礎情報、及び第2サーバ装置で生成された基礎情報と同じであるから、そのようにして取り出した2つの基礎情報に対して所定の演算を行うことにより、特定ユーザ装置の他方が得た初期解は、特定ユーザ装置の一方が得た初期解と同じものとなる。
サーバ装置がサーバ装置演算部を持つとき、サーバ装置演算部で行われる演算は、上述したように可逆的なものでなければならない。さもなくば、ユーザ装置が第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サーバ装置の管理者とが共謀するという人的な理由以外の理由で、特定ユーザ装置間で使用される初期解が漏洩する可能性が理論的には無くなる。
また、サーバ装置がサーバ装置解生成部を持つとき、前記ユーザ解生成部で生成される解と、前記サーバ装置解生成部で生成される解とが常に、前記基礎情報生成部で生成される基礎情報と同じかそれより大きな情報量を持っても良い。これは、特に、サーバ装置演算部で行われる可逆的な演算が、基礎情報と解の排他的論理和を取ることである場合に次のような大きな効果を生じる。
サーバ装置において、基礎情報と解に対して行われる演算は、上述のように、排他的論理和の演算である場合がある。排他的論理和の演算は、暗号化通信の一種であるバーナム暗号やワンタイムパッド暗号で使用されている。そして、これらバーナム暗号等は、ある一定の条件を満たす場合には、完全に解読不可能であることが数学的に証明されている。その条件は、「隠したい文字列と同じだけの情報量を持つ乱数で、隠したい文字列に対して排他的論理和の演算を行うこと」である。
第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サーバ装置の管理者とが共謀するという人的な理由以外の理由で、特定ユーザ装置間で使用される初期解が漏洩する可能性が理論的には無くなる。
本願発明者は、本願発明の方法を実行することができるユーザ装置をも、本願発明の一態様として提案する。かかるユーザ装置の効果は、本願発明の方法の効果に等しい。
一例となるユーザ装置は、ネットワークを介して互いに通信可能とされた、3つ以上のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続された2つ以上のサーバ装置と、を含んでなる通信システムを、2つ以上の前記サーバ装置との組合せによって構成するユーザ装置である。
このユーザ装置は、初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成部と、送信の対象となる送信対象データを、前記ユーザ解生成部で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化部と、前記ネットワークを介しての送受信を行うユーザ送受信部と、前記ユーザ送受部で信受信した前記暗号化データを、前記ユーザ解生成部で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化部と、を有している。
そして、ユーザ装置は、暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成部でそれぞれ生成することにより、相手方の前記ユーザ暗号化部で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送受信部から送られてきて自らの前記ユーザ送受信部により受取ったものを、自らの前記ユーザ復号化部によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっている。
また、ユーザ装置は、前記ユーザ装置が前記特定ユーザ装置となるとき、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの1つである第1サーバ装置へ送信するとともに、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの他の1つである第2サーバ装置へ送信することと、前記特定情報を受付けた前記第1サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である前記サーバ装置ごとにユニークな同期情報である第1同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付けることと、前記特定情報を受付けた前記第2サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記同期情報である第2同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付けることと、前記ユーザ装置のそれぞれが、前記第1同期情報と前記第2同期情報とを用いて予め定めた所定の演算を行うことにより共通の前記初期解を得ることと、を実行するようになっている。
一例となるユーザ装置は、ネットワークを介して互いに通信可能とされた、3つ以上のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続された2つ以上のサーバ装置と、を含んでなる通信システムを、2つ以上の前記サーバ装置との組合せによって構成するユーザ装置である。
このユーザ装置は、初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成部と、送信の対象となる送信対象データを、前記ユーザ解生成部で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化部と、前記ネットワークを介しての送受信を行うユーザ送受信部と、前記ユーザ送受部で信受信した前記暗号化データを、前記ユーザ解生成部で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化部と、を有している。
そして、ユーザ装置は、暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成部でそれぞれ生成することにより、相手方の前記ユーザ暗号化部で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送受信部から送られてきて自らの前記ユーザ送受信部により受取ったものを、自らの前記ユーザ復号化部によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっている。
また、ユーザ装置は、前記ユーザ装置が前記特定ユーザ装置となるとき、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの1つである第1サーバ装置へ送信するとともに、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの他の1つである第2サーバ装置へ送信することと、前記特定情報を受付けた前記第1サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である前記サーバ装置ごとにユニークな同期情報である第1同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付けることと、前記特定情報を受付けた前記第2サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記同期情報である第2同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付けることと、前記ユーザ装置のそれぞれが、前記第1同期情報と前記第2同期情報とを用いて予め定めた所定の演算を行うことにより共通の前記初期解を得ることと、を実行するようになっている。
本願発明者は、本願の方法を所定のコンピュータで実行できるようにするためのコンピュータプログラムをも、本願発明の一態様として提案する。かかるコンピュータプログラムの効果は、本願発明による方法の効果と等しく、また、所定の(例えば、汎用の)コンピュータに本願発明の方法を実施させられるようにすることも、その効果の一つである。
一例となるコンピュータプログラムは、ネットワークを介して互いに通信可能とされた、3つ以上のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続された2つ以上のサーバ装置と、を含んでなる通信システムを、2つ以上の前記サーバ装置との組合せによって構成するユーザ装置として所定のコンピュータを機能させるためのコンピュータプログラムである。
前記コンピュータプログラムは、前記コンピュータを、初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成部と、送信の対象となる送信対象データを、前記ユーザ解生成部で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化部と、前記ネットワークを介しての送受信を行うユーザ送受信部と、前記ユーザ送受部で信受信した前記暗号化データを、前記ユーザ解生成部で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化部と、して機能させるためのものである。
また、そのコンピュータプログラムは、暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成部でそれぞれ生成することにより、相手方の前記ユーザ暗号化部で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送受信部から送られてきて自らの前記ユーザ送受信部により受取ったものを、自らの前記ユーザ復号化部によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようするためのコンピュータプログラムである。
そして、そのコンピュータプログラムは、前記ユーザ装置が前記特定ユーザ装置となるとき、前記特定ユーザ装置に、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの1つである第1サーバ装置へ送信するとともに、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの他の1つである第2サーバ装置へ送信することと、前記特定情報を受付けた前記第1サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である前記サーバ装置ごとにユニークな同期情報である第1同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付けることと、前記特定情報を受付けた前記第2サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記同期情報である第2同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付けることと、前記ユーザ装置のそれぞれが、前記第1同期情報と前記第2同期情報とを用いて予め定めた所定の演算を行うことにより共通の前記初期解を得ることと、を実行させるためのコンピュータプログラムである。
一例となるコンピュータプログラムは、ネットワークを介して互いに通信可能とされた、3つ以上のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続された2つ以上のサーバ装置と、を含んでなる通信システムを、2つ以上の前記サーバ装置との組合せによって構成するユーザ装置として所定のコンピュータを機能させるためのコンピュータプログラムである。
前記コンピュータプログラムは、前記コンピュータを、初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成部と、送信の対象となる送信対象データを、前記ユーザ解生成部で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化部と、前記ネットワークを介しての送受信を行うユーザ送受信部と、前記ユーザ送受部で信受信した前記暗号化データを、前記ユーザ解生成部で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化部と、して機能させるためのものである。
また、そのコンピュータプログラムは、暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成部でそれぞれ生成することにより、相手方の前記ユーザ暗号化部で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送受信部から送られてきて自らの前記ユーザ送受信部により受取ったものを、自らの前記ユーザ復号化部によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようするためのコンピュータプログラムである。
そして、そのコンピュータプログラムは、前記ユーザ装置が前記特定ユーザ装置となるとき、前記特定ユーザ装置に、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの1つである第1サーバ装置へ送信するとともに、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの他の1つである第2サーバ装置へ送信することと、前記特定情報を受付けた前記第1サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である前記サーバ装置ごとにユニークな同期情報である第1同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付けることと、前記特定情報を受付けた前記第2サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記同期情報である第2同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付けることと、前記ユーザ装置のそれぞれが、前記第1同期情報と前記第2同期情報とを用いて予め定めた所定の演算を行うことにより共通の前記初期解を得ることと、を実行させるためのコンピュータプログラムである。
以下、本発明の好ましい実施形態とその変形例について説明する。
なお、実施形態及びその変形例の説明では、共通の対象には重複する符号を付すものとし、且つ共通する説明は場合により省略するものとする。また、各実施形態及びそれらの変形例は、それらを組合せ或いはそれらの一部同士を置換することに特に矛盾することがない場合には、それらの2つ或いはそれ以上を適宜組合せ或いはそれらの一部を適宜置換することが可能である。
なお、実施形態及びその変形例の説明では、共通の対象には重複する符号を付すものとし、且つ共通する説明は場合により省略するものとする。また、各実施形態及びそれらの変形例は、それらを組合せ或いはそれらの一部同士を置換することに特に矛盾することがない場合には、それらの2つ或いはそれ以上を適宜組合せ或いはそれらの一部を適宜置換することが可能である。
図1に、本願発明の送受信システムの実施形態としての通信システムの全体構成を概略で示す。
この実施形態の通信システムは、多数のユーザ装置100-1~100-N(以後、単に、「ユーザ装置100」と記載する場合もある。)、及び複数のサーバ装置200-1~200-n(以後、単に、「サーバ装置200」と記載する場合もある。)を含んで構成されている。これらはすべて、ネットワーク400に接続可能とされている。ユーザ装置100は少なくとも3つ以上存在し、サーバ装置200は少なくとも2つ以上存在する。また、サーバ装置200は一般に、ユーザ装置100よりもその数は圧倒的に少ない。
ネットワーク400は、これには限られないが、この実施形態ではインターネットである。
この実施形態におけるユーザ装置100は、本願でいうユーザ装置に相当するものである。また、この実施形態におけるサーバ装置200は本願でいうサーバ装置に相当する。
ユーザ装置100-1~100-Nは、それらのうちの2つが互いに通信を行うことを前提としている。ユーザ装置100-1~100-Nは各ユーザが所有するものとされる。この実施形態ではその通信は後述するような、連続して発生させられる解を用いた暗号化通信であるものとするが、ユーザ装置100-1~100-Nは、そのような暗号化通信に加えて暗号化通信以外の平文での通信を行えるようになっていてももちろん構わない。かかる暗号化通信以外の通信は公知又は周知の技術によって実現すれば良い。ユーザ装置100は、他のユーザ装置100にネットワーク400を介してホームページを閲覧させるためのコンピュータであってもよい。
各サーバ装置200は、すべてのユーザ装置100を管理していても良いが、ユーザ装置100の一部ずつを管理していても構わない。これには限られないが、この実施形態では、すべてのサーバ装置200は、すべてのユーザ装置100を管理しているものとする。「管理」というのは、管理対象となるユーザ装置100と共通した解を生成できる、或いは、ユーザ装置100に対して同期情報(第1同期情報又は第2同期情報)を送信することができる、という意味である。これらの点については後述する。
これには限られないが、この実施形態におけるサーバ装置200は、ある程度の公的な性質を有する企業、例えば、SSLやTSLにおける認証局となれる程度の信用を持っている企業、或いは公的な団体が管理するものとすることができる。或いは、サーバ装置200は、ユーザ装置100がネットワーク400に接続する場合においてそのネットワーク400への接続をなすプロバイダや、ユーザ装置100が例えばスマートフォンであれば、携帯電話キャリアがその管理を行うものとなっていてもよい。
ユーザ装置100は、コンピュータを含んでいる。より詳細には、この実施形態におけるユーザ装置100は、汎用のコンピュータにより構成されている。
この実施形態の通信システムは、多数のユーザ装置100-1~100-N(以後、単に、「ユーザ装置100」と記載する場合もある。)、及び複数のサーバ装置200-1~200-n(以後、単に、「サーバ装置200」と記載する場合もある。)を含んで構成されている。これらはすべて、ネットワーク400に接続可能とされている。ユーザ装置100は少なくとも3つ以上存在し、サーバ装置200は少なくとも2つ以上存在する。また、サーバ装置200は一般に、ユーザ装置100よりもその数は圧倒的に少ない。
ネットワーク400は、これには限られないが、この実施形態ではインターネットである。
この実施形態におけるユーザ装置100は、本願でいうユーザ装置に相当するものである。また、この実施形態におけるサーバ装置200は本願でいうサーバ装置に相当する。
ユーザ装置100-1~100-Nは、それらのうちの2つが互いに通信を行うことを前提としている。ユーザ装置100-1~100-Nは各ユーザが所有するものとされる。この実施形態ではその通信は後述するような、連続して発生させられる解を用いた暗号化通信であるものとするが、ユーザ装置100-1~100-Nは、そのような暗号化通信に加えて暗号化通信以外の平文での通信を行えるようになっていてももちろん構わない。かかる暗号化通信以外の通信は公知又は周知の技術によって実現すれば良い。ユーザ装置100は、他のユーザ装置100にネットワーク400を介してホームページを閲覧させるためのコンピュータであってもよい。
各サーバ装置200は、すべてのユーザ装置100を管理していても良いが、ユーザ装置100の一部ずつを管理していても構わない。これには限られないが、この実施形態では、すべてのサーバ装置200は、すべてのユーザ装置100を管理しているものとする。「管理」というのは、管理対象となるユーザ装置100と共通した解を生成できる、或いは、ユーザ装置100に対して同期情報(第1同期情報又は第2同期情報)を送信することができる、という意味である。これらの点については後述する。
これには限られないが、この実施形態におけるサーバ装置200は、ある程度の公的な性質を有する企業、例えば、SSLやTSLにおける認証局となれる程度の信用を持っている企業、或いは公的な団体が管理するものとすることができる。或いは、サーバ装置200は、ユーザ装置100がネットワーク400に接続する場合においてそのネットワーク400への接続をなすプロバイダや、ユーザ装置100が例えばスマートフォンであれば、携帯電話キャリアがその管理を行うものとなっていてもよい。
ユーザ装置100は、コンピュータを含んでいる。より詳細には、この実施形態におけるユーザ装置100は、汎用のコンピュータにより構成されている。
次に、ユーザ装置100の構成を説明する。各ユーザ装置100-1~100-Nの構成は、本願発明との関連でいえば同じである。
ユーザ装置100は、携帯電話、スマートフォン、タブレット、ノート型パソコン、デスクトップ型パソコン等である。ユーザ装置100はすべて、ネットワーク400を介しての通信が可能なものであることが必要であり、また、後述するコンピュータプログラムをインストールすることによって後述する機能ブロックをその内部に生成し、そして後述する処理を実行できるものであることも求められる。もっともそれらが可能であるのであれば、ユーザ装置100のそれ以外の仕様は特に問わない。
例えば、ユーザ装置100がスマートフォンかタブレットなのであれば、スマートフォンとしてのユーザ装置100は例えば、Apple Japan合同会社が製造、販売を行うiPhoneシリーズの製品で良いし、タブレットとしてのユーザ装置100は例えば、Apple Japan合同会社が製造、販売を行うiPadシリーズの製品でよい。以下、これには限られないが、ユーザ装置100がスマートフォンであることとして話を進める。
ユーザ装置100は、携帯電話、スマートフォン、タブレット、ノート型パソコン、デスクトップ型パソコン等である。ユーザ装置100はすべて、ネットワーク400を介しての通信が可能なものであることが必要であり、また、後述するコンピュータプログラムをインストールすることによって後述する機能ブロックをその内部に生成し、そして後述する処理を実行できるものであることも求められる。もっともそれらが可能であるのであれば、ユーザ装置100のそれ以外の仕様は特に問わない。
例えば、ユーザ装置100がスマートフォンかタブレットなのであれば、スマートフォンとしてのユーザ装置100は例えば、Apple Japan合同会社が製造、販売を行うiPhoneシリーズの製品で良いし、タブレットとしてのユーザ装置100は例えば、Apple Japan合同会社が製造、販売を行うiPadシリーズの製品でよい。以下、これには限られないが、ユーザ装置100がスマートフォンであることとして話を進める。
ユーザ装置100の外観の一例を図2に示す。
ユーザ装置100は、ディスプレイ101を備えている。ディスプレイ101は、静止画又は動画を表示するためのものであり、公知、或いは周知のものを用いることができる。ディスプレイ101は例えば、液晶ディスプレイである。ユーザ装置100は、また入力装置102を備えている。入力装置102は、ユーザが所望の入力をユーザ装置100に対して行うためのものである。入力装置102は、公知或いは周知のものを用いることができる。この実施形態におけるユーザ装置100の入力装置102はボタン式のものとなっているが、これには限られず、テンキー、キーボード、トラックボール、マウスなどを用いることも可能である。特に、ユーザ装置100がノート型パソコン、デスクトップ型パソコンである場合には、入力装置102はキーボードや、マウス等になるであろう。また、ディスプレイ101がタッチパネルである場合、ディスプレイ101は入力装置102の機能を兼ねることになり、この実施形態ではそうされている。
ユーザ装置100は、ディスプレイ101を備えている。ディスプレイ101は、静止画又は動画を表示するためのものであり、公知、或いは周知のものを用いることができる。ディスプレイ101は例えば、液晶ディスプレイである。ユーザ装置100は、また入力装置102を備えている。入力装置102は、ユーザが所望の入力をユーザ装置100に対して行うためのものである。入力装置102は、公知或いは周知のものを用いることができる。この実施形態におけるユーザ装置100の入力装置102はボタン式のものとなっているが、これには限られず、テンキー、キーボード、トラックボール、マウスなどを用いることも可能である。特に、ユーザ装置100がノート型パソコン、デスクトップ型パソコンである場合には、入力装置102はキーボードや、マウス等になるであろう。また、ディスプレイ101がタッチパネルである場合、ディスプレイ101は入力装置102の機能を兼ねることになり、この実施形態ではそうされている。
ユーザ装置100のハードウェア構成を、図3に示す。
ハードウェアには、CPU(central processing unit)111、ROM(read only memory)112、RAM(random access memory)113、インターフェイス114が含まれており、これらはバス116によって相互に接続されている。
CPU111は、演算を行う演算装置である。CPU111は、例えば、ROM112、或いはRAM113に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。図示をしていないが、ユーザ装置100は、HDD(hard disk drive)その他の大容量記録装置を備えていてもよく、コンピュータプログラムは大容量記録装置に記録されていても構わない。
ここでいうコンピュータプログラムには、本願発明のユーザ装置としてこのユーザ装置100を機能させるためのコンピュータプログラムが少なくとも含まれる。このコンピュータプログラムは、ユーザ装置100にプリインストールされていたものであっても良いし、ポストインストールされたものであっても良い。このコンピュータプログラムのユーザ装置100へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、LAN或いはインターネットなどのネットワークを介して行なわれても構わない。
ROM112は、CPU111が後述する処理を実行するために必要なコンピュータプログラムやデータを記録している。ROM112に記録されたコンピュータプログラムとしては、これに限られず、ユーザ装置100がスマートフォンであれば、ユーザをスマートフォンとして機能させるために必要な、例えば、通話や電子メールを実行するためのコンピュータプログラムやデータが記録されている。ユーザ装置100は、また、ネットワーク400を介して受取ったデータに基づいて、ホームページを閲覧することも可能とされており、それを可能とするための公知のwebブラウザを実装している。
RAM113は、CPU111が処理を行うために必要なワーク領域を提供する。場合によっては、上述のコンピュータプログラムやデータが記録されていてもよい。
インターフェイス114は、バス116で接続されたCPU111やRAM113等と外部との間でデータのやり取りを行うものである。インターフェイス114には、上述のディスプレイ101と、入力装置102とが接続されている。入力装置102から入力された操作内容は、インターフェイス114からバス116に入力されるようになっている。また、周知のようにディスプレイ101に画像を表示するための画像データは、インターフェイス114から、ディスプレイ101に出力されるようになっている。
インターフェイス114は、また、インターネットであるネットワーク400を介して外部と通信を行うための公知の手段である送受信機構(図示を省略)に接続されており、それにより、ユーザ装置100は、ネットワーク400を介してデータを送信することと、ネットワーク400を介してデータを受信することとが可能になっている。かかるネットワーク400を介してのデータの送受信は、有線で行われる場合もあるが無線で行われる場合もある。例えば、ユーザ装置100がスマートフォンである場合には、かかる通信は無線で行われるのが通常であろう。それが可能な限り、送受信機構の構成は、公知或いは周知のものとすることができる。送受信機構がネットワーク400から受取ったデータは、インターフェイス114により受取られるようになっており、インターフェイス114から送受信機構にわたされたデータは、送受信機構によって、ネットワーク400を介して外部、例えば、他のユーザ装置100かサーバ装置200に送られるようになっている。送受信機構がネットワーク400から受取るデータとしては、少なくともサーバ装置200から送られてきた同期情報(第1同期情報及び第2同期情報)と、他のユーザ装置100から送られてきた暗号化データがある。送受信機構から外部に送られるデータとしては、少なくともサーバ装置200に送られる特定情報と、他のユーザ装置100に送られる暗号化データがある。
ハードウェアには、CPU(central processing unit)111、ROM(read only memory)112、RAM(random access memory)113、インターフェイス114が含まれており、これらはバス116によって相互に接続されている。
CPU111は、演算を行う演算装置である。CPU111は、例えば、ROM112、或いはRAM113に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。図示をしていないが、ユーザ装置100は、HDD(hard disk drive)その他の大容量記録装置を備えていてもよく、コンピュータプログラムは大容量記録装置に記録されていても構わない。
ここでいうコンピュータプログラムには、本願発明のユーザ装置としてこのユーザ装置100を機能させるためのコンピュータプログラムが少なくとも含まれる。このコンピュータプログラムは、ユーザ装置100にプリインストールされていたものであっても良いし、ポストインストールされたものであっても良い。このコンピュータプログラムのユーザ装置100へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、LAN或いはインターネットなどのネットワークを介して行なわれても構わない。
ROM112は、CPU111が後述する処理を実行するために必要なコンピュータプログラムやデータを記録している。ROM112に記録されたコンピュータプログラムとしては、これに限られず、ユーザ装置100がスマートフォンであれば、ユーザをスマートフォンとして機能させるために必要な、例えば、通話や電子メールを実行するためのコンピュータプログラムやデータが記録されている。ユーザ装置100は、また、ネットワーク400を介して受取ったデータに基づいて、ホームページを閲覧することも可能とされており、それを可能とするための公知のwebブラウザを実装している。
RAM113は、CPU111が処理を行うために必要なワーク領域を提供する。場合によっては、上述のコンピュータプログラムやデータが記録されていてもよい。
インターフェイス114は、バス116で接続されたCPU111やRAM113等と外部との間でデータのやり取りを行うものである。インターフェイス114には、上述のディスプレイ101と、入力装置102とが接続されている。入力装置102から入力された操作内容は、インターフェイス114からバス116に入力されるようになっている。また、周知のようにディスプレイ101に画像を表示するための画像データは、インターフェイス114から、ディスプレイ101に出力されるようになっている。
インターフェイス114は、また、インターネットであるネットワーク400を介して外部と通信を行うための公知の手段である送受信機構(図示を省略)に接続されており、それにより、ユーザ装置100は、ネットワーク400を介してデータを送信することと、ネットワーク400を介してデータを受信することとが可能になっている。かかるネットワーク400を介してのデータの送受信は、有線で行われる場合もあるが無線で行われる場合もある。例えば、ユーザ装置100がスマートフォンである場合には、かかる通信は無線で行われるのが通常であろう。それが可能な限り、送受信機構の構成は、公知或いは周知のものとすることができる。送受信機構がネットワーク400から受取ったデータは、インターフェイス114により受取られるようになっており、インターフェイス114から送受信機構にわたされたデータは、送受信機構によって、ネットワーク400を介して外部、例えば、他のユーザ装置100かサーバ装置200に送られるようになっている。送受信機構がネットワーク400から受取るデータとしては、少なくともサーバ装置200から送られてきた同期情報(第1同期情報及び第2同期情報)と、他のユーザ装置100から送られてきた暗号化データがある。送受信機構から外部に送られるデータとしては、少なくともサーバ装置200に送られる特定情報と、他のユーザ装置100に送られる暗号化データがある。
CPU111がコンピュータプログラムを実行することにより、ユーザ装置100内部には、図4で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、ユーザ装置100を本願発明のユーザ装置として機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、ユーザ装置100にインストールされたOSその他のコンピュータプログラムとの協働により生成されても良い。
ユーザ装置100内には、本願発明の機能との関係で、入力部121、主制御部122、ユーザ解生成部123、ユーザ解記録部124、ユーザ初期解生成部125、ユーザ暗号化復号化部126、出力部127が生成される。なお、以上の入力部121、主制御部122、ユーザ解生成部123、ユーザ解記録部124、ユーザ初期解生成部125、ユーザ暗号化復号化部126、出力部127の機能は、ユーザ装置100が例えばスマートフォン等のSIMカードを有するものである場合には、ユーザ装置100に内蔵されたSIMカード上に存在していても構わない。その場合、それらの機能は、ユーザ装置100にインストールされたコンピュータプログラムによって生成されるものとは限らない。
ユーザ装置100内には、本願発明の機能との関係で、入力部121、主制御部122、ユーザ解生成部123、ユーザ解記録部124、ユーザ初期解生成部125、ユーザ暗号化復号化部126、出力部127が生成される。なお、以上の入力部121、主制御部122、ユーザ解生成部123、ユーザ解記録部124、ユーザ初期解生成部125、ユーザ暗号化復号化部126、出力部127の機能は、ユーザ装置100が例えばスマートフォン等のSIMカードを有するものである場合には、ユーザ装置100に内蔵されたSIMカード上に存在していても構わない。その場合、それらの機能は、ユーザ装置100にインストールされたコンピュータプログラムによって生成されるものとは限らない。
入力部121は、インターフェイス114からの入力を受取るものである。
インターフェイス114からの入力には、例えば、入力装置102によって入力された特定情報がある。特定情報は、暗号化通信をこれから行おうとする2つのユーザ装置100(本願発明における特定ユーザ装置)を特定するためのものである。通信を自分から行う側のユーザ装置100に関する特定情報は、すべてのユーザ装置100についてユニークな情報であることが最低限必要とされ、例えば、ユーザ装置100のIPアドレス、電子メールアドレス、URL、SNS(social networking service)のID等であり、通信を受ける側のユーザ装置100についても同様である。この実施形態では、これには限られないが、特定ユーザ装置である2つのユーザ装置100の双方をともにIPアドレスで特定するものとする。なお、この実施形態ではこれには限られないが、ユーザが入力装置102を操作して暗号化通信をこれから行おうとする相手方のユーザ装置100を特定する情報を入力すると、そのユーザ装置100のIPアドレスと相手方のユーザ装置100のIPアドレスの双方を特定する特定情報が自動的に生成されるようになっている。これに代えて、ユーザが暗号化通信を行う2つのユーザ装置100のIPアドレスの双方を入力装置102に入力することによって、特定情報が生成されるようになっていても構わない。
また、ユーザは、入力装置102を操作することにより、特定情報を送信する先のサーバ装置200を特定するためのサーバ識別子のデータを生成することができる。各サーバ装置200には、ユーザ装置100と同様に、各サーバ装置200を識別するための各サーバ装置200毎にユニークなサーバ識別子が振られており、ユーザは、そのサーバ装置200を入力乃至選択することにより、特定情報の送信先となるサーバ装置200を選択することが可能となっている。サーバ識別子は例えば、各サーバ装置200のIPアドレスである。
また、ユーザは、入力装置102を操作することにより、送信対象データを生成或いは指定することができる。かかる送信対象データは、ユーザ装置100間で暗号化した状態で送受信される場合における送受信の対象となるデータである。例えば、かかる送受信が電子メールの送受信である場合には、そのデータは電子メールのデータになるし、一方のユーザ装置100がインターネット上の仮想店舗のホームページを提供するものであって他方のユーザ装置100がその仮想店舗で商品を購入しようとする顧客である場合には、仮想店舗のユーザ装置100側から顧客に送られるデータは、例えば、商品の選択画面や、顧客情報、送付先情報等の記載を顧客に行わせるためのフォーマットを顧客のユーザ装置100に提供するためのデータであり、顧客のユーザ装置100側から仮想店舗のユーザ装置100に送られるデータは、顧客が購入対象として選択した商品及びその数量を特定する情報であったり、上述の如きフォーマットに顧客が記入を行った顧客情報、送付先情報であったりする。送信対象データは、テキストデータ、画像データ、音声データ等その形式を問わない。送信対象データは、ユーザが入力装置102を操作して入力したデータそのものである必要はなく、それに対してユーザ装置100が所定の処理を行うことによって作られたデータであってもよく、むしろその方が通常である。
入力部121にインターフェイス114から入力されるものとしては他に、送受信機構からインターフェイス114に送られてくる、上述した同期情報(第1同期情報及び第2同期情報)と暗号化データがある。
以上のように、入力部121には、入力装置102から入力されるものとして特定情報と、送信対象データが、送受信機構から入力されるものとして、同期情報と、暗号化データが入力されることになる。
入力部121は、これらを受取ると、特定情報と同期情報を受取った場合には、それらを主制御部122へ、送信対象データと暗号化データを受取った場合にはそれらをユーザ暗号化復号化部126へと、それぞれ送るようになっている。
インターフェイス114からの入力には、例えば、入力装置102によって入力された特定情報がある。特定情報は、暗号化通信をこれから行おうとする2つのユーザ装置100(本願発明における特定ユーザ装置)を特定するためのものである。通信を自分から行う側のユーザ装置100に関する特定情報は、すべてのユーザ装置100についてユニークな情報であることが最低限必要とされ、例えば、ユーザ装置100のIPアドレス、電子メールアドレス、URL、SNS(social networking service)のID等であり、通信を受ける側のユーザ装置100についても同様である。この実施形態では、これには限られないが、特定ユーザ装置である2つのユーザ装置100の双方をともにIPアドレスで特定するものとする。なお、この実施形態ではこれには限られないが、ユーザが入力装置102を操作して暗号化通信をこれから行おうとする相手方のユーザ装置100を特定する情報を入力すると、そのユーザ装置100のIPアドレスと相手方のユーザ装置100のIPアドレスの双方を特定する特定情報が自動的に生成されるようになっている。これに代えて、ユーザが暗号化通信を行う2つのユーザ装置100のIPアドレスの双方を入力装置102に入力することによって、特定情報が生成されるようになっていても構わない。
また、ユーザは、入力装置102を操作することにより、特定情報を送信する先のサーバ装置200を特定するためのサーバ識別子のデータを生成することができる。各サーバ装置200には、ユーザ装置100と同様に、各サーバ装置200を識別するための各サーバ装置200毎にユニークなサーバ識別子が振られており、ユーザは、そのサーバ装置200を入力乃至選択することにより、特定情報の送信先となるサーバ装置200を選択することが可能となっている。サーバ識別子は例えば、各サーバ装置200のIPアドレスである。
また、ユーザは、入力装置102を操作することにより、送信対象データを生成或いは指定することができる。かかる送信対象データは、ユーザ装置100間で暗号化した状態で送受信される場合における送受信の対象となるデータである。例えば、かかる送受信が電子メールの送受信である場合には、そのデータは電子メールのデータになるし、一方のユーザ装置100がインターネット上の仮想店舗のホームページを提供するものであって他方のユーザ装置100がその仮想店舗で商品を購入しようとする顧客である場合には、仮想店舗のユーザ装置100側から顧客に送られるデータは、例えば、商品の選択画面や、顧客情報、送付先情報等の記載を顧客に行わせるためのフォーマットを顧客のユーザ装置100に提供するためのデータであり、顧客のユーザ装置100側から仮想店舗のユーザ装置100に送られるデータは、顧客が購入対象として選択した商品及びその数量を特定する情報であったり、上述の如きフォーマットに顧客が記入を行った顧客情報、送付先情報であったりする。送信対象データは、テキストデータ、画像データ、音声データ等その形式を問わない。送信対象データは、ユーザが入力装置102を操作して入力したデータそのものである必要はなく、それに対してユーザ装置100が所定の処理を行うことによって作られたデータであってもよく、むしろその方が通常である。
入力部121にインターフェイス114から入力されるものとしては他に、送受信機構からインターフェイス114に送られてくる、上述した同期情報(第1同期情報及び第2同期情報)と暗号化データがある。
以上のように、入力部121には、入力装置102から入力されるものとして特定情報と、送信対象データが、送受信機構から入力されるものとして、同期情報と、暗号化データが入力されることになる。
入力部121は、これらを受取ると、特定情報と同期情報を受取った場合には、それらを主制御部122へ、送信対象データと暗号化データを受取った場合にはそれらをユーザ暗号化復号化部126へと、それぞれ送るようになっている。
主制御部122は、ユーザ装置100内に生成された各機能ブロック全体の制御を行うものである。
主制御部122は、入力部121から特定情報とサーバ識別子とを受取る場合がある。特定情報とサーバ識別子を受取った場合、主制御部122はそれらを出力部127に送るようになっている。
主制御部122は、同期情報を受取る場合がある。同期情報を受取った場合、主制御部122は、その同期情報をユーザ初期解生成部125に送るようになっている。
主制御部122は、入力部121から特定情報とサーバ識別子とを受取る場合がある。特定情報とサーバ識別子を受取った場合、主制御部122はそれらを出力部127に送るようになっている。
主制御部122は、同期情報を受取る場合がある。同期情報を受取った場合、主制御部122は、その同期情報をユーザ初期解生成部125に送るようになっている。
ユーザ解生成部123は、解を生成するものである。解の生成の仕方については後述するが、この実施形態における解は、文字、数字、記号の少なくとも1つを所定数羅列したものであり、また、初期解に基いて、同じ条件下で生成されたものが常に同じものとなるようにされている。典型的には、解は擬似乱数であり、各解はこの実施形態では、その桁数乃至文字数が常に一定となるようにして生成されるようになっている。多数生成される解の持つ情報量は、常に一定である。
ユーザ解生成部123が解を生成するのは、まず、ユーザ暗号化復号化部126が後述するが如き暗号化の処理、又は復号化の処理を行う場合である。ユーザ暗号化復号化部126が暗号化の処理又は復号化の処理を行う場合というのは、このユーザ装置100が、他のユーザ装置100と暗号化通信を行うときであるが、その詳細は後に譲る。ユーザ解生成部123は、ユーザ装置100間での暗号化通信のために作られた解を、ユーザ暗号化復号化部126に送るようになっている。
また、ユーザ装置100におけるユーザ解生成部123は、同期情報(第1同期情報、及び第2同期情報)がユーザ初期解生成部125に送られた場合においても、解を生成する場合がある。このときに生成される解は、暗号化通信に用いられる初期解を生成する目的で生成される。暗号化通信に用いられる初期解を生成する目的で生成された解は、ユーザ解生成部123からユーザ初期解生成部125へと送られるようになっている。
ユーザ解生成部123が解を生成するのは、まず、ユーザ暗号化復号化部126が後述するが如き暗号化の処理、又は復号化の処理を行う場合である。ユーザ暗号化復号化部126が暗号化の処理又は復号化の処理を行う場合というのは、このユーザ装置100が、他のユーザ装置100と暗号化通信を行うときであるが、その詳細は後に譲る。ユーザ解生成部123は、ユーザ装置100間での暗号化通信のために作られた解を、ユーザ暗号化復号化部126に送るようになっている。
また、ユーザ装置100におけるユーザ解生成部123は、同期情報(第1同期情報、及び第2同期情報)がユーザ初期解生成部125に送られた場合においても、解を生成する場合がある。このときに生成される解は、暗号化通信に用いられる初期解を生成する目的で生成される。暗号化通信に用いられる初期解を生成する目的で生成された解は、ユーザ解生成部123からユーザ初期解生成部125へと送られるようになっている。
ユーザ解記録部124は、ユーザ解生成部123が解を生成する場合に必要となる情報が記録されている。ユーザ解記録部124に記録されることがあるデータは、真初期解のデータと初期解のデータである。
真初期解は、ユーザ装置100とサーバ装置200とが同期した状態での解の生成を行うために使用される、初期解である。初期解は、ユーザ装置100が他のユーザ装置100と暗号化通信を行う際に使用される、つまり、あるユーザ装置100と他のユーザ装置100とが同期した状態での解の生成を行うために使用されるものである。真初期解のデータ及び初期解のデータはともに、後に生成される解に影響を与えるものである。真初期解、及び初期解のデータは、解のデータと同じ形式、即ち、文字、数字、記号の少なくとも1つを所定数羅列したものであって、その桁数乃至文字数が解と同数であるものである場合もあるし、そうでない場合もある。この実施形態ではこれには限られないが、真初期解、及び初期解のデータは解のデータと同じ形式で、真初期解、及び初期解は解と同じ桁数乃至文字数とされている。
これには限られないがこの実施形態における各ユーザ装置100は、すべてのサーバ装置200と、同期した状態での解の生成を行えるようになっている。それ故、各ユーザ装置100は、各サーバ装置200が備えるそのユーザ装置100用の真初期解と同じ真初期解を、初期状態で有している。つまり、ユーザ解記録部124には、初期状態において、サーバ装置200の数と同数の真初期解が記録されている。各真初期解は、その真初期解がどのサーバ装置200が持つ真初期解であるのかを明らかにするために、各サーバ装置200毎にユニークな各サーバ装置200を識別するためのサーバ識別子と紐付けた状態で、ユーザ解記録部124に記録されている。
ユーザ解記録部124には、初期解が記録される場合もある。初期解は、後述するようにして、特定ユーザ装置である2つのユーザ装置100の双方で生成される。つまり、初期解の生成の処理が実行される以前においては、そもそも初期解が存在していないため、かかる処理が実行される以前においては、初期解はユーザ解記録部124には記録されていない。初期解が生成されたら初期解はユーザ解記録部124に記録されるが、そのとき、その初期解がどのユーザ装置100と共有される初期解であるのかを明らかにするために、各ユーザ装置100毎にユニークな各ユーザ装置100を識別するための識別子である例えば各ユーザ装置100のIPアドレスと紐付けた状態で、ユーザ解記録部124に記録されている。
真初期解のデータ、初期解のデータともに、後述するようにして更新される場合もあり得る。
ユーザ解生成部123は、解を生成する場合、ユーザ解記録部124に記録されているデータの中から、必要なデータを読み出しそれを用いて解を生成する。
ユーザ解生成部123は、ユーザ装置100とサーバ装置200とが同期して解を発生させることが必要になった場合には、真初期解か、後述する解を読み出してこれを行う。少なくとも最初の解を生成する場合、ユーザ解生成部123は、ユーザ解記録部124に記録されている真初期解のデータや必要に応じてその他のデータを用いる。
他方、ユーザ解生成部123は、ユーザ装置100同士が解を同期しての暗号化通信を行うにあたり両ユーザ装置100で同期した解を発生させる場合には、原則としてユーザ解記録部124に記録されている初期解のデータを読み出してこれを行う。
ユーザ解生成部123での解の生成方法の詳細については追って詳述することとする。
真初期解は、ユーザ装置100とサーバ装置200とが同期した状態での解の生成を行うために使用される、初期解である。初期解は、ユーザ装置100が他のユーザ装置100と暗号化通信を行う際に使用される、つまり、あるユーザ装置100と他のユーザ装置100とが同期した状態での解の生成を行うために使用されるものである。真初期解のデータ及び初期解のデータはともに、後に生成される解に影響を与えるものである。真初期解、及び初期解のデータは、解のデータと同じ形式、即ち、文字、数字、記号の少なくとも1つを所定数羅列したものであって、その桁数乃至文字数が解と同数であるものである場合もあるし、そうでない場合もある。この実施形態ではこれには限られないが、真初期解、及び初期解のデータは解のデータと同じ形式で、真初期解、及び初期解は解と同じ桁数乃至文字数とされている。
これには限られないがこの実施形態における各ユーザ装置100は、すべてのサーバ装置200と、同期した状態での解の生成を行えるようになっている。それ故、各ユーザ装置100は、各サーバ装置200が備えるそのユーザ装置100用の真初期解と同じ真初期解を、初期状態で有している。つまり、ユーザ解記録部124には、初期状態において、サーバ装置200の数と同数の真初期解が記録されている。各真初期解は、その真初期解がどのサーバ装置200が持つ真初期解であるのかを明らかにするために、各サーバ装置200毎にユニークな各サーバ装置200を識別するためのサーバ識別子と紐付けた状態で、ユーザ解記録部124に記録されている。
ユーザ解記録部124には、初期解が記録される場合もある。初期解は、後述するようにして、特定ユーザ装置である2つのユーザ装置100の双方で生成される。つまり、初期解の生成の処理が実行される以前においては、そもそも初期解が存在していないため、かかる処理が実行される以前においては、初期解はユーザ解記録部124には記録されていない。初期解が生成されたら初期解はユーザ解記録部124に記録されるが、そのとき、その初期解がどのユーザ装置100と共有される初期解であるのかを明らかにするために、各ユーザ装置100毎にユニークな各ユーザ装置100を識別するための識別子である例えば各ユーザ装置100のIPアドレスと紐付けた状態で、ユーザ解記録部124に記録されている。
真初期解のデータ、初期解のデータともに、後述するようにして更新される場合もあり得る。
ユーザ解生成部123は、解を生成する場合、ユーザ解記録部124に記録されているデータの中から、必要なデータを読み出しそれを用いて解を生成する。
ユーザ解生成部123は、ユーザ装置100とサーバ装置200とが同期して解を発生させることが必要になった場合には、真初期解か、後述する解を読み出してこれを行う。少なくとも最初の解を生成する場合、ユーザ解生成部123は、ユーザ解記録部124に記録されている真初期解のデータや必要に応じてその他のデータを用いる。
他方、ユーザ解生成部123は、ユーザ装置100同士が解を同期しての暗号化通信を行うにあたり両ユーザ装置100で同期した解を発生させる場合には、原則としてユーザ解記録部124に記録されている初期解のデータを読み出してこれを行う。
ユーザ解生成部123での解の生成方法の詳細については追って詳述することとする。
ユーザ初期解生成部125は、同期情報を用いて、特定ユーザ装置たる2つのユーザ装置100が解を同期させての暗号化通信を行う場合において必要になる初期解を生成するためのものである。生成される初期解は、上述のように、ユーザ装置100同士が解を同期しての暗号化通信を行うにあたり両ユーザ装置100で同期した初期解を発生させるために用いられる。
上述したようにユーザ初期解生成部125には、主制御部122から、同期情報が送られてくる場合がある。かかる同期情報を受取った場合には、ユーザ初期解生成部125は、当該同期情報に基いて初期解を生成するようになっている。初期解を生成する際に、ユーザ初期解生成部125はユーザ解生成部123が生成した解を必要とする場合がある。かかる解は、サーバ装置200で生成された解と同期した解である。ユーザ初期解生成部125が解を必要とした場合には、ユーザ初期解生成部125は、ユーザ解生成部123に対して解を生成せよとの指示を送る。
かかる指示を受取ったユーザ解生成部123は、解を生成し、それをユーザ初期解生成部125に送るようになっている。
上述したようにユーザ初期解生成部125には、主制御部122から、同期情報が送られてくる場合がある。かかる同期情報を受取った場合には、ユーザ初期解生成部125は、当該同期情報に基いて初期解を生成するようになっている。初期解を生成する際に、ユーザ初期解生成部125はユーザ解生成部123が生成した解を必要とする場合がある。かかる解は、サーバ装置200で生成された解と同期した解である。ユーザ初期解生成部125が解を必要とした場合には、ユーザ初期解生成部125は、ユーザ解生成部123に対して解を生成せよとの指示を送る。
かかる指示を受取ったユーザ解生成部123は、解を生成し、それをユーザ初期解生成部125に送るようになっている。
ユーザ暗号化復号化部126は、暗号化と復号化の処理の少なくとも一方を行うものであり、これには限られないが、この実施形態では暗号化と復号化の処理の双方を行うものとされている。かかる暗号化と復号化は、ユーザ装置100同士で暗号化通信を行うために必要な処理である。
ユーザ暗号化復号化部126が暗号化、及び復号化の処理を行うのは、主制御部122から、暗号化、復号化を行って良いとの許可があったときのみである。
暗号化の方法の詳細は後述するが、暗号化を行う場合ユーザ暗号化復号化部126は、ユーザ解生成部123に対して解を生成せよとの指示を送る。ユーザ解生成部123は当該指示に基いて解を生成し、それをユーザ暗号化復号化部126に送る。その解がユーザ暗号化復号化部126における暗号化に用いられる。これには限られないが、この実施形態で暗号化されるデータは、入力装置102から入力されたデータに基いて生成された送信対象データである。入力装置102で生成された送信対象データは平文のデータであるが、それがユーザ暗号化復号化部126で暗号化された結果暗号化データになる。ユーザ暗号化復号化部126で生成された暗号化データは、出力部127に送られるようになっている。
復号化の方法の詳細は後述するが、復号化を行う場合ユーザ暗号化復号化部126は、ユーザ解生成部123に対して解を生成せよとの指示を送る。ユーザ解生成部123は当該指示に基いて解を生成し、それをユーザ暗号化復号化部126に送る。その解がユーザ暗号化復号化部126における復号化に用いられる。これには限られないが、この実施形態で復号化されるデータは、他のユーザ装置100から送られてきた暗号化データである。暗号化データは、それを送ってきたユーザ装置100におけるユーザ暗号化復号化部126で生成されたものであり、それがユーザ暗号化復号化部126で復号化された結果、元の送信対象データに戻る。ユーザ暗号化復号化部126で生成された平文の送信対象データは、出力部127に送られるようになっている。
ユーザ暗号化復号化部126が暗号化、及び復号化の処理を行うのは、主制御部122から、暗号化、復号化を行って良いとの許可があったときのみである。
暗号化の方法の詳細は後述するが、暗号化を行う場合ユーザ暗号化復号化部126は、ユーザ解生成部123に対して解を生成せよとの指示を送る。ユーザ解生成部123は当該指示に基いて解を生成し、それをユーザ暗号化復号化部126に送る。その解がユーザ暗号化復号化部126における暗号化に用いられる。これには限られないが、この実施形態で暗号化されるデータは、入力装置102から入力されたデータに基いて生成された送信対象データである。入力装置102で生成された送信対象データは平文のデータであるが、それがユーザ暗号化復号化部126で暗号化された結果暗号化データになる。ユーザ暗号化復号化部126で生成された暗号化データは、出力部127に送られるようになっている。
復号化の方法の詳細は後述するが、復号化を行う場合ユーザ暗号化復号化部126は、ユーザ解生成部123に対して解を生成せよとの指示を送る。ユーザ解生成部123は当該指示に基いて解を生成し、それをユーザ暗号化復号化部126に送る。その解がユーザ暗号化復号化部126における復号化に用いられる。これには限られないが、この実施形態で復号化されるデータは、他のユーザ装置100から送られてきた暗号化データである。暗号化データは、それを送ってきたユーザ装置100におけるユーザ暗号化復号化部126で生成されたものであり、それがユーザ暗号化復号化部126で復号化された結果、元の送信対象データに戻る。ユーザ暗号化復号化部126で生成された平文の送信対象データは、出力部127に送られるようになっている。
出力部127は、ユーザ装置100内の機能ブロックで生成されたデータをインターフェイス114に出力するものである。
出力部127には、上述のように主制御部122から特定情報とサーバ識別子とが送られてくる場合がある。出力部127は、かかる特定情報とサーバ識別子とを、インターフェイス114に出力する。この特定情報は、インターフェイス114から送受信機構に送られ、送受信機構から、ネットワーク400を介してサーバ識別子で特定されるサーバ装置200に送られるようになっている。
出力部127にはまた、ユーザ暗号化復号化部126から、暗号化データが送られてくる場合がある。暗号化データを受取った場合には、出力部127は、その暗号化データを、インターフェイス114に出力する。この暗号化データは、インターフェイス114から送受信機構に送られ、送受信機構から、ネットワーク400を介して暗号化通信の相手側となる他のユーザ装置100に送られるようになっている。
出力部127にはまた、ユーザ暗号化復号化部126から、平文の送信対象データが送られてくる場合がある。この送信対象データは、他のユーザ装置100で生成されたものである。送信対象データを受取った場合には、出力部127は、その送信対象データを、インターフェイス114に出力する。送信対象データは、ユーザ装置100内で適当に利用されるが、例えばディスプレイ101に送られ、それを受取ったディスプレイ101に送信対象データに応じた表示を行わせるようになっている。
出力部127には、上述のように主制御部122から特定情報とサーバ識別子とが送られてくる場合がある。出力部127は、かかる特定情報とサーバ識別子とを、インターフェイス114に出力する。この特定情報は、インターフェイス114から送受信機構に送られ、送受信機構から、ネットワーク400を介してサーバ識別子で特定されるサーバ装置200に送られるようになっている。
出力部127にはまた、ユーザ暗号化復号化部126から、暗号化データが送られてくる場合がある。暗号化データを受取った場合には、出力部127は、その暗号化データを、インターフェイス114に出力する。この暗号化データは、インターフェイス114から送受信機構に送られ、送受信機構から、ネットワーク400を介して暗号化通信の相手側となる他のユーザ装置100に送られるようになっている。
出力部127にはまた、ユーザ暗号化復号化部126から、平文の送信対象データが送られてくる場合がある。この送信対象データは、他のユーザ装置100で生成されたものである。送信対象データを受取った場合には、出力部127は、その送信対象データを、インターフェイス114に出力する。送信対象データは、ユーザ装置100内で適当に利用されるが、例えばディスプレイ101に送られ、それを受取ったディスプレイ101に送信対象データに応じた表示を行わせるようになっている。
次に、サーバ装置200の構成について説明する。
サーバ装置200は、ハードウェアとして見た場合には、既存の公知又は周知のサーバ装置で構わない。また、そのハードウェア構成も一般的なものでよく、図示を省略するが、大雑把に言えば、CPU111、ROM112、RAM113、インターフェイス114をバス116で接続するという、ユーザ装置100のハードウェア構成を踏襲することができる。もっとも、サーバ装置200は通常、HDDその他の大容量記録装置を有するのが一般的であろうし、この実施形態でもそうなっている。
サーバ装置200が備えるCPU、ROM、RAM、インターフェイス、バス、及び大容量記録装置の構成、機能は、ユーザ装置100におけるそれらの構成、機能と変わらない。また、サーバ装置200が備えるインターフェイスには、ユーザ装置100が備えていたのと同様の、サーバ装置200外の機器とネットワーク400を介しての通信を行うための送受信機構が接続されている。サーバ装置200が備えるインターフェイスには、ユーザ装置100が備えていたのと同様のディスプレイ、入力装置が接続されていても構わないが、本願とはあまり関係がないのでその説明は省略する。
サーバ装置200は、ハードウェアとして見た場合には、既存の公知又は周知のサーバ装置で構わない。また、そのハードウェア構成も一般的なものでよく、図示を省略するが、大雑把に言えば、CPU111、ROM112、RAM113、インターフェイス114をバス116で接続するという、ユーザ装置100のハードウェア構成を踏襲することができる。もっとも、サーバ装置200は通常、HDDその他の大容量記録装置を有するのが一般的であろうし、この実施形態でもそうなっている。
サーバ装置200が備えるCPU、ROM、RAM、インターフェイス、バス、及び大容量記録装置の構成、機能は、ユーザ装置100におけるそれらの構成、機能と変わらない。また、サーバ装置200が備えるインターフェイスには、ユーザ装置100が備えていたのと同様の、サーバ装置200外の機器とネットワーク400を介しての通信を行うための送受信機構が接続されている。サーバ装置200が備えるインターフェイスには、ユーザ装置100が備えていたのと同様のディスプレイ、入力装置が接続されていても構わないが、本願とはあまり関係がないのでその説明は省略する。
サーバ装置200の内部におけるROM、大容量記録装置等に記録されていたコンピュータプログラムを実行することによって、サーバ装置200の内部には以下に説明するような機能ブロックが生成される。なお、以下の機能ブロックは、サーバ装置200を本願発明のサーバ装置として機能させるためのコンピュータプログラム単体の機能により生成されていても良いが、かかるコンピュータプログラムと、サーバ装置200にインストールされたOSその他のコンピュータプログラムとの協働により生成されても良い。また、上記コンピュータプログラムは、サーバ装置200にプリインストールされたものでもよいが、出荷後のサーバ装置200にインストールされたものでもあってもよい。その場合、上記コンピュータプログラムのサーバ装置200へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、LAN或いはインターネットなどのネットワークを介して行なわれても構わない。これらの事情は、ユーザ装置100の場合と同様である。
サーバ装置200内には、本願発明の機能との関係で、入力部221、主制御部222、サーバ装置解生成部223、サーバ装置解記録部224、同期情報生成部225、出力部227、及び基礎情報生成部228が生成される(図5)。
サーバ装置200内には、本願発明の機能との関係で、入力部221、主制御部222、サーバ装置解生成部223、サーバ装置解記録部224、同期情報生成部225、出力部227、及び基礎情報生成部228が生成される(図5)。
入力部221は、インターフェイスからの入力を受取るものである。
インターフェイスからの入力には、例えば特定情報がある。特定情報は、ユーザ装置100からネットワーク400を介して送られてきたものであり、サーバ装置200がその送受信機構で受取ったものである。入力部221は、特定情報を受取った場合には、それらを主制御部222に送るようになっている。
インターフェイスからの入力には、例えば特定情報がある。特定情報は、ユーザ装置100からネットワーク400を介して送られてきたものであり、サーバ装置200がその送受信機構で受取ったものである。入力部221は、特定情報を受取った場合には、それらを主制御部222に送るようになっている。
主制御部222は、サーバ装置200内に生成された各機能ブロック全体の制御を行うものである。
主制御部222は、入力部221から特定情報のデータを受取る場合がある。特定情報のデータを受取った場合、主制御部222は、当該データを同期情報生成部225に送るようになっている。
主制御部222は、入力部221から特定情報のデータを受取る場合がある。特定情報のデータを受取った場合、主制御部222は、当該データを同期情報生成部225に送るようになっている。
サーバ装置解生成部223は、解を生成せよとの指示を受取った場合に解を生成するものである。サーバ装置解生成部223は、解を生成せよとの指示を、後述するように、同期情報生成部225から受取る場合があり、そのような指示を受取った場合に解を生成するようになっている。その場合に生成される解は2つである。
解の生成の仕方については後述するが、サーバ装置解生成部223が実行する解の生成は、各ユーザ装置100のユーザ解生成部123が実行する解の生成と同じ方法とされる。
サーバ装置解生成部223は、解を生成する場合、サーバ装置解記録部224に記録されているデータの中から、必要なデータを読み出しそれを用いて解を生成する。
サーバ装置解記録部224には、サーバ装置解生成部223が解を生成する場合に必要となる情報が記録されている。かかる情報は、主に真初期解のデータである。真初期解のデータは、各ユーザ装置100のユーザ解記録部124に記録される真初期解のデータと同じものである。真初期解は、解を生成する場合に用いられるが、これには限られないがこの実施形態におけるサーバ装置200はすべてのユーザ装置100(ユーザ装置100-1~ユーザ装置100-N)と同期した解を生成する必要があるから、少なくとも1つも解が生成されていない状態では、サーバ装置解記録部224には、ユーザ装置100の数と同じ数の、N個の真初期解が記録されている。また、各真初期解は、どの真初期解がどのユーザ装置100に対応する真初期解であるかをサーバ装置解生成部223が把握する必要があるため、各真初期解は、各ユーザ装置100を特定するための情報と一対一で紐付けられた状態で、サーバ装置解記録部224に記録されている。各ユーザ装置100を特定するための情報は、特定情報に含まれうる各ユーザ装置100にユニークな情報であり、これには限られないがこの実施形態では、各ユーザ装置100のIPアドレスである。
サーバ装置200におけるサーバ装置解生成部223は、ユーザ装置100とサーバ装置200とが同期して解を発生させることが必要になった場合には、特定情報で特定される2つのユーザ装置100のIPアドレスと紐付けられた真初期解を読み出してこれを行う。少なくとも最初の解を生成する場合、サーバ装置解生成部223は、サーバ装置解記録部224に記録されている真初期解のデータを用い、必要に応じてその他のデータを用いる。
サーバ装置解生成部223は、上述のように同期情報生成部225から、解を生成せよとの指示を受ける場合があるが、その場合には特定情報に含まれていた、2つの特定ユーザ装置を特定するための情報である2つのIPアドレスをも同期情報生成部225から受取るようになっている。同期情報生成部225から2つのIPアドレスを受取った場合、サーバ装置解生成部223はそれら2つのIPアドレスのそれぞれと紐付けられた2つの真初期解又は解をサーバ装置解記録部224から読み出すようになっている。そして、サーバ装置解生成部223は、読み出したそれら真初期解を用いて、新たな2つの解を生成するようになっている。かかる真初期解に基いて、それに続く解は生成されることになる。詳細は後に譲るが、これにより、サーバ装置解生成部223は、各ユーザ装置100における各ユーザ解生成部123が生成する解と同じ解を生成することができるようになっている。つまり、サーバ装置200で生成される解と、ユーザ装置100で生成される解とは、互いに同期したものとなるようになっている。
サーバ装置解生成部223が生成した2つの解は、同期情報生成部225に送られるようになっている。
解の生成の仕方については後述するが、サーバ装置解生成部223が実行する解の生成は、各ユーザ装置100のユーザ解生成部123が実行する解の生成と同じ方法とされる。
サーバ装置解生成部223は、解を生成する場合、サーバ装置解記録部224に記録されているデータの中から、必要なデータを読み出しそれを用いて解を生成する。
サーバ装置解記録部224には、サーバ装置解生成部223が解を生成する場合に必要となる情報が記録されている。かかる情報は、主に真初期解のデータである。真初期解のデータは、各ユーザ装置100のユーザ解記録部124に記録される真初期解のデータと同じものである。真初期解は、解を生成する場合に用いられるが、これには限られないがこの実施形態におけるサーバ装置200はすべてのユーザ装置100(ユーザ装置100-1~ユーザ装置100-N)と同期した解を生成する必要があるから、少なくとも1つも解が生成されていない状態では、サーバ装置解記録部224には、ユーザ装置100の数と同じ数の、N個の真初期解が記録されている。また、各真初期解は、どの真初期解がどのユーザ装置100に対応する真初期解であるかをサーバ装置解生成部223が把握する必要があるため、各真初期解は、各ユーザ装置100を特定するための情報と一対一で紐付けられた状態で、サーバ装置解記録部224に記録されている。各ユーザ装置100を特定するための情報は、特定情報に含まれうる各ユーザ装置100にユニークな情報であり、これには限られないがこの実施形態では、各ユーザ装置100のIPアドレスである。
サーバ装置200におけるサーバ装置解生成部223は、ユーザ装置100とサーバ装置200とが同期して解を発生させることが必要になった場合には、特定情報で特定される2つのユーザ装置100のIPアドレスと紐付けられた真初期解を読み出してこれを行う。少なくとも最初の解を生成する場合、サーバ装置解生成部223は、サーバ装置解記録部224に記録されている真初期解のデータを用い、必要に応じてその他のデータを用いる。
サーバ装置解生成部223は、上述のように同期情報生成部225から、解を生成せよとの指示を受ける場合があるが、その場合には特定情報に含まれていた、2つの特定ユーザ装置を特定するための情報である2つのIPアドレスをも同期情報生成部225から受取るようになっている。同期情報生成部225から2つのIPアドレスを受取った場合、サーバ装置解生成部223はそれら2つのIPアドレスのそれぞれと紐付けられた2つの真初期解又は解をサーバ装置解記録部224から読み出すようになっている。そして、サーバ装置解生成部223は、読み出したそれら真初期解を用いて、新たな2つの解を生成するようになっている。かかる真初期解に基いて、それに続く解は生成されることになる。詳細は後に譲るが、これにより、サーバ装置解生成部223は、各ユーザ装置100における各ユーザ解生成部123が生成する解と同じ解を生成することができるようになっている。つまり、サーバ装置200で生成される解と、ユーザ装置100で生成される解とは、互いに同期したものとなるようになっている。
サーバ装置解生成部223が生成した2つの解は、同期情報生成部225に送られるようになっている。
基礎情報生成部228は、基礎情報を生成するものである。基礎情報は、後述するように、ユーザ装置100で初期解を生成するために用いられる情報である。基礎情報生成部228は、後述するように、同期情報生成部225から基礎情報を生成せよとの指示を受ける場合があり、それを受けた場合に基礎情報を生成する。
この実施形態では、基礎情報は、解と同様に、文字、数字、記号の少なくとも1つを所定数羅列したものである。基礎情報は、解の桁数乃至文字数と同じかそれよりも少ない桁数乃至文字数とされ、解よりもその情報量が小さくされる。これには限られないが、この実施形態では、基礎情報を構成する文字、数字、記号の桁数乃至文字数は、解の文字、数字、記号の桁数乃至文字数と同じである。基礎情報生成部228が生成する基礎情報は、これには限られないが、この実施形態では擬似乱数である。各サーバ装置200が生成する基礎情報は、各サーバ装置200毎にユニークである。
基礎情報生成部228が生成した基礎情報は、同期情報生成部225に送られるようになっている。
この実施形態では、基礎情報は、解と同様に、文字、数字、記号の少なくとも1つを所定数羅列したものである。基礎情報は、解の桁数乃至文字数と同じかそれよりも少ない桁数乃至文字数とされ、解よりもその情報量が小さくされる。これには限られないが、この実施形態では、基礎情報を構成する文字、数字、記号の桁数乃至文字数は、解の文字、数字、記号の桁数乃至文字数と同じである。基礎情報生成部228が生成する基礎情報は、これには限られないが、この実施形態では擬似乱数である。各サーバ装置200が生成する基礎情報は、各サーバ装置200毎にユニークである。
基礎情報生成部228が生成した基礎情報は、同期情報生成部225に送られるようになっている。
同期情報生成部225は、同期情報を生成するものである。同期情報は、特定ユーザ装置に含まれる2つのユーザ装置100が暗号化通信を行うに当って、当該暗号化通信を行うために2つのユーザ装置100の双方で必要となる情報である。同期情報は、2つのユーザ装置100で解を同期させるために必要な情報であって、解それ自体ではないものである。同期情報の詳細は追って説明する。
なお、このような同期情報が必要となるのは、2つの装置が同期した解を生成する場合には、この実施形態で既に説明したように、サーバ装置200と各ユーザ装置100とが共通する真初期解を有するように、暗号化通信を行う特定ユーザ装置に含まれる2つのユーザ装置100が共通する解(本願でいう初期解)が必要であるところ、相手が持つ初期解を知ることのできない2つのユーザ装置100に何らかの情報を提供しなければ、2つのユーザ装置100が解を同期させることができないからである。
同期情報生成部225は、同期情報生成部225が主制御部222から特定情報を受取った場合に同期情報を生成する。同期情報生成部225は、主制御部222から特定情報を受取ると、サーバ装置解生成部223に解を生成せよとの指示を出してサーバ装置解生成部223から2つの解を受取るとともに、基礎情報生成部228に基礎情報を生成せよとの指示を出して基礎情報生成部228から基礎情報を受取る。
同期情報生成部225は、基礎情報と2つの解の一方とに所定の演算を行うことによって、また、基礎情報と2つの解の他方とに所定の演算を行うことによって、2つの同期情報を生成する。2つの同期情報の一方は、特定情報で特定される2つのユーザ装置100の一方のためのものであり、2つの同期情報の他方は、特定情報で特定される2つのユーザ装置100の他方のためのものである。所定の演算は可逆的な演算である。同期情報の生成方法の詳細については後述する。
同期情報生成部225が2つの同期情報を生成した場合、同期情報生成部225は、それら2つの同期情報を特定情報とともに出力部227に送るようになっている。
なお、このような同期情報が必要となるのは、2つの装置が同期した解を生成する場合には、この実施形態で既に説明したように、サーバ装置200と各ユーザ装置100とが共通する真初期解を有するように、暗号化通信を行う特定ユーザ装置に含まれる2つのユーザ装置100が共通する解(本願でいう初期解)が必要であるところ、相手が持つ初期解を知ることのできない2つのユーザ装置100に何らかの情報を提供しなければ、2つのユーザ装置100が解を同期させることができないからである。
同期情報生成部225は、同期情報生成部225が主制御部222から特定情報を受取った場合に同期情報を生成する。同期情報生成部225は、主制御部222から特定情報を受取ると、サーバ装置解生成部223に解を生成せよとの指示を出してサーバ装置解生成部223から2つの解を受取るとともに、基礎情報生成部228に基礎情報を生成せよとの指示を出して基礎情報生成部228から基礎情報を受取る。
同期情報生成部225は、基礎情報と2つの解の一方とに所定の演算を行うことによって、また、基礎情報と2つの解の他方とに所定の演算を行うことによって、2つの同期情報を生成する。2つの同期情報の一方は、特定情報で特定される2つのユーザ装置100の一方のためのものであり、2つの同期情報の他方は、特定情報で特定される2つのユーザ装置100の他方のためのものである。所定の演算は可逆的な演算である。同期情報の生成方法の詳細については後述する。
同期情報生成部225が2つの同期情報を生成した場合、同期情報生成部225は、それら2つの同期情報を特定情報とともに出力部227に送るようになっている。
出力部227は、サーバ装置200内の機能ブロックで生成されたデータをインターフェイスに出力するものである。
出力部227には、上述のように、同期情報生成部225から同期情報と特定情報とが送られてくる。出力部227は、同期情報を受取ると、それを特定情報とともにインターフェイスに出力する。これら同期情報及び特定情報は、インターフェイスから送受信機構に送られ、送受信機構から、ネットワーク400を介して、特定情報によって特定された2つのユーザ装置100の双方に送られるようになっている。当然に、2つの同期情報のうち特定ユーザ装置100の一方のためのものは特定ユーザ装置100の一方へ、2つの同期情報のうち特定ユーザ装置100の他方のためのものは特定ユーザ装置100の他方へ送られることになる。なお、サーバ装置200の送受信機構は、同期情報をユーザ装置100へ送信するとき、同期情報にサーバ装置200のサーバ識別子を付す。
出力部227には、上述のように、同期情報生成部225から同期情報と特定情報とが送られてくる。出力部227は、同期情報を受取ると、それを特定情報とともにインターフェイスに出力する。これら同期情報及び特定情報は、インターフェイスから送受信機構に送られ、送受信機構から、ネットワーク400を介して、特定情報によって特定された2つのユーザ装置100の双方に送られるようになっている。当然に、2つの同期情報のうち特定ユーザ装置100の一方のためのものは特定ユーザ装置100の一方へ、2つの同期情報のうち特定ユーザ装置100の他方のためのものは特定ユーザ装置100の他方へ送られることになる。なお、サーバ装置200の送受信機構は、同期情報をユーザ装置100へ送信するとき、同期情報にサーバ装置200のサーバ識別子を付す。
次に、以上で説明した通信システムの使用方法、及び動作について、図6を参照して説明する。
自分のユーザ装置100と他のユーザ装置100との間で暗号化通信を行おうとするユーザは、まず、自らが所有するユーザ装置100の入力装置102を操作して、暗号化通信をしようとする相手側のユーザ装置100を特定するための特定情報を入力する。これにより、暗号化通信を行おうとする特定ユーザ装置である2つのユーザ装置100の双方を特定するための情報である特定情報が生成される(S1001)。特定情報のデータは、入力装置102から、インターフェイス114を介して入力部121に送られ、入力部121から主制御部122に送られる。
同様に、ユーザは入力装置102を操作して、特定情報を送信する2つのサーバ装置200をそれぞれ特定するための2つのサーバ識別子を入力する。2つのサーバ識別子のデータは、特定情報のデータと同様にして、主制御部122へ送られる。
自分のユーザ装置100と他のユーザ装置100との間で暗号化通信を行おうとするユーザは、まず、自らが所有するユーザ装置100の入力装置102を操作して、暗号化通信をしようとする相手側のユーザ装置100を特定するための特定情報を入力する。これにより、暗号化通信を行おうとする特定ユーザ装置である2つのユーザ装置100の双方を特定するための情報である特定情報が生成される(S1001)。特定情報のデータは、入力装置102から、インターフェイス114を介して入力部121に送られ、入力部121から主制御部122に送られる。
同様に、ユーザは入力装置102を操作して、特定情報を送信する2つのサーバ装置200をそれぞれ特定するための2つのサーバ識別子を入力する。2つのサーバ識別子のデータは、特定情報のデータと同様にして、主制御部122へ送られる。
特定情報及びサーバ識別子のデータを受取ると、主制御部122は、特定情報とサーバ識別子のデータを出力部127に送る。出力部127は、受取った特定情報とサーバ識別子をインターフェイス114に送る。インターフェイス114は、受取った特定情報とサーバ識別子を更に送受信機構に送る。特定情報は、送受信機構からネットワーク400を介して、サーバ識別子で特定される2つのサーバ装置200に同時に送られる(S1002)。
なお、2つのサーバ装置100は、基本的には、特定情報で特定される暗号化通信をこれから行う2つのユーザ装置100の双方を管理するものである必要がある。つまり、ユーザが入力すべきサーバ識別子は、特定情報で特定される2つのユーザ装置100の双方を管理しているものである必要がある。もっとも、この実施形態では、これには限られないが、すべてのサーバ装置200がすべてのユーザ装置100を管理しているので、ユーザがサーバ識別子で特定すべき2つのサーバ装置200は、サーバ装置200の中の任意の2つで良い。
この実施形態では、特定情報は、特定ユーザ装置のうち通信を開始しようとするユーザが所有する側の1つのユーザ装置100から、2つのサーバ装置200へと送られることとしていたが、これはこの限りではない。例えば、特定ユーザ装置のうち通信を始めようとするユーザが所有する側のユーザ装置100があるサーバ装置200へと特定情報を送るとともに、相手側のユーザ装置100が他のサーバ装置200へと特定情報を送っても良い。
また、この実施形態では、特定情報は、特定ユーザ装置のうち通信を開始しようとするユーザが所有する側のユーザ装置100から、2つのサーバ装置200へと同時に送られることとしていたが、これは必ずしもこの限りではない。特定ユーザ装置である2つのユーザ装置100にはともに、後述するように1つ目のサーバ装置200から2つの同期情報が送られるが、例えば、2つのユーザ装置100に1つ目の同期情報が到着した後に、2つ目のサーバ装置200に特定情報が送信されても良い。
なお、2つのサーバ装置100は、基本的には、特定情報で特定される暗号化通信をこれから行う2つのユーザ装置100の双方を管理するものである必要がある。つまり、ユーザが入力すべきサーバ識別子は、特定情報で特定される2つのユーザ装置100の双方を管理しているものである必要がある。もっとも、この実施形態では、これには限られないが、すべてのサーバ装置200がすべてのユーザ装置100を管理しているので、ユーザがサーバ識別子で特定すべき2つのサーバ装置200は、サーバ装置200の中の任意の2つで良い。
この実施形態では、特定情報は、特定ユーザ装置のうち通信を開始しようとするユーザが所有する側の1つのユーザ装置100から、2つのサーバ装置200へと送られることとしていたが、これはこの限りではない。例えば、特定ユーザ装置のうち通信を始めようとするユーザが所有する側のユーザ装置100があるサーバ装置200へと特定情報を送るとともに、相手側のユーザ装置100が他のサーバ装置200へと特定情報を送っても良い。
また、この実施形態では、特定情報は、特定ユーザ装置のうち通信を開始しようとするユーザが所有する側のユーザ装置100から、2つのサーバ装置200へと同時に送られることとしていたが、これは必ずしもこの限りではない。特定ユーザ装置である2つのユーザ装置100にはともに、後述するように1つ目のサーバ装置200から2つの同期情報が送られるが、例えば、2つのユーザ装置100に1つ目の同期情報が到着した後に、2つ目のサーバ装置200に特定情報が送信されても良い。
2つのサーバ装置200は、それらの送受信機構で、ユーザ装置100から送られてきた特定情報を受取る(S2001)。
両サーバ装置200において、特定情報は、サーバ装置200のインターフェイスに送られ、インターフェイスから入力部221に送られる。入力部221は、特定情報のデータをインターフェイスから受取ると、それを主制御部222に送る。
主制御部222は、入力部221から特定情報のデータを受取ると、特定情報を同期情報生成部225に送る。それをきっかけとして、同期情報生成部225は、特定情報によって特定される特定ユーザ装置に含まれる2つのユーザ装置100において、それらが暗号化通信を行う際に必要となる解を同期させるために必要となる情報である同期情報を生成する(S2002)。
両サーバ装置200において、特定情報は、サーバ装置200のインターフェイスに送られ、インターフェイスから入力部221に送られる。入力部221は、特定情報のデータをインターフェイスから受取ると、それを主制御部222に送る。
主制御部222は、入力部221から特定情報のデータを受取ると、特定情報を同期情報生成部225に送る。それをきっかけとして、同期情報生成部225は、特定情報によって特定される特定ユーザ装置に含まれる2つのユーザ装置100において、それらが暗号化通信を行う際に必要となる解を同期させるために必要となる情報である同期情報を生成する(S2002)。
一例となる同期情報の生成方法について説明する。
特定情報を受取ると、同期情報生成部225は、サーバ装置解生成部223に特定情報とともに、解を生成せよとの指示を送り、また、基礎情報生成部228に基礎情報を生成せよとの指示を送る。
そうすると、サーバ装置解生成部223は2つの解を生成し、それを同期情報生成部225へと送り、基礎情報生成部228は基礎情報を生成し、それを同期情報生成部225へと送る。
それらを用いて、同期情報生成部225は同期情報を生成する。
特定情報を受取ると、同期情報生成部225は、サーバ装置解生成部223に特定情報とともに、解を生成せよとの指示を送り、また、基礎情報生成部228に基礎情報を生成せよとの指示を送る。
そうすると、サーバ装置解生成部223は2つの解を生成し、それを同期情報生成部225へと送り、基礎情報生成部228は基礎情報を生成し、それを同期情報生成部225へと送る。
それらを用いて、同期情報生成部225は同期情報を生成する。
この実施形態におけるサーバ装置解生成部223は、特定情報に含まれる2つのIPアドレスにそれぞれ紐付けられている2つの真初期解を読み出す。真初期解は、既に述べたように、サーバ装置200と、各ユーザ装置100とが同期した解を生成するために用いられる初期値としての初期解である。
上述したように、この実施形態におけるサーバ装置解生成部223は、少なくとも初めて解を生成するとき、サーバ装置解記録部224に初期状態で記録されている真初期解のデータを読み出す。真初期解のデータは、例えば、20桁の数字と小文字の英字混じりの文字列である。これは、初期解のデータ、解のデータも同じである。かかる真初期解は、各ユーザ装置100毎にユニークなものであり、各ユーザ装置100に対して、サーバ装置200が、或いはサーバ装置200の管理者が割り当てたものである。真初期解は1つのこともあるが、複数の場合もある。この実施形態では真初期解は1つであるので、サーバ装置解生成部223は、1つの真初期解をサーバ装置解記録部224からを読み出す。
サーバ装置解生成部223は、それら真初期解に対して演算を行うことにより、その時点における解を生成する。
まず、演算が可能なように、真初期解を数字のみに直す。真初期解の中に、英字が含まれている場合には、それを2桁の数字に置き換える。置き換えの対象となる数字は、その英字のアルファベット中の順番である。例えば、「a」なら「01」に、「b」なら「02」に、「z」なら「26」にそれぞれ置き換える。例えば、真初期解が「5a6458p6556ff4272149」というものだったとする。この場合、真初期解を上述の約束にしたがって数字のみにすると、「501645816655606064272149」となる。数字のみにした場合の桁数は、真初期解に含まれていた英字の数に応じて増えることになる。なお、(、)、!、&、:等の記号をも解に含めたいのであれば、「(」に「27」、「)」に「28」、「!」に「29」等の適当な数字の割当てを行うようにすればよい。
次に、数字に対して演算を行う。この演算の結果求められるのは、解の元となる数字の列である。その数字の列をXとすると、Xは、所定の時点における西暦の年、月、日、時、分にしたがって以下のようにして求められる。以下の数式におけるX1は、真初期解を数字に直したものである。この実施形態で真初期解を5つとしているのは、西暦の年、月、日、時、分という5つの要素にしたがって解を変化させることにしているからである。なお、時刻によって解の同期を取るこのような手法は、従来から存在する時間同期の手法と同様のものである。
X=X1 PX1 Q+X1 RX1 S+X1 T
ここで、P=西暦の年の数字を5で割った余りに1を足したもの、Q=月の数字を5で割った余りに1を足したもの、R=日の数字を5で割った余りに1を足したもの、S=時の数字を5で割った余りに1を足したもの、T=分の数字を5で割った余りに1を足したものである。このようにすることで、そのときの時刻に応じて異なる数列を得ることができる。なお、P~Tのすべてにおいて、1を足す過程を加えているのは、P~Tのすべてがたまたま0になった場合に最終的に得られる解Xが5になるが、そのような簡単な数字が頻出することを避けるためである。
上述の演算を行った結果、解の元となる数字の列Xが得られる。次いで、その数字の列の中の任意の2桁の中に01~26という数字が含まれていたら、先ほどの英字から数字への置き換えの約束事とは逆の約束事にしたがい、それらをa~zの英字に置き換える。
このようにして得られた数字と小文字の英字混じりの文字列は通常、20桁以上の桁数である。それが20桁以上であるときには、その文字列の例えば前から20文字を抜き出し、それを解とする。上述のようにして得られた数字と小文字の英字混じりの文字列がちょうど20桁の場合には、それをそのまま解とする。また、上述のようにして得られた数字と小文字の英字混じりの文字列が20桁よりも少ない場合には、何らかの決まり事に基いて桁数を増やす。例えば、その文字列の最初の数字又は英字に基いて何らかの数字又は文字を、桁数が20桁に至るまでに、その文字列中に挿入するようにしてもよい。或いは、上述の数式におけるPとTとを入れ替えて演算を行って得られる数字の列に対して数字を英字に置き換える上述の過程を実行することによって新たな数字と小文字の英字混じりの文字列を生成して、それを元の数字と小文字の英字混じりの後に繋げるというような作業を、その桁数が少なくとも20桁になるまで繰り返して、その前から20文字を抜き出して解とする、というような方法も採用しうる。
いずれにせよ、これにより、真初期解に基いて、ある時点の日時に対応した解が生成されることになる。これには限られないが、この実施形態では、サーバ装置200のサーバ装置解生成部223は、ユーザ装置100がサーバ装置200に特定情報を送信した時刻(例えば、特定情報の送信時において特定情報を送信するためのデータのパケットにユーザ装置100で付されたタイムスタンプで特定される時刻)の例えば「5分後」の時刻における解を生成するものとする。なお、以下も同様であるが、かかる時刻は、実際にその時刻が到来しているかどうかを問わない。
このようにして、サーバ装置解生成部223は、特定情報で特定されるユーザ装置100の一方についての真初期解を用いて、ユーザ装置100の一方で生成可能な解を生成する。同様にして、サーバ装置解生成部223は、特定情報で特定されるユーザ装置100の他方についての真初期解を用いて、ユーザ装置100の他方で生成可能な解を生成する。
サーバ装置解生成部223は生成した2つの解を、同期情報生成部225へ送る。そのとき、ユーザ装置100の一方で生成可能な解を、特定情報に含まれるユーザ装置100の一方を特定する情報と紐付け、また、ユーザ装置100の他方で生成可能な解を、特定情報に含まれるユーザ装置100の他方を特定する情報と紐付ける等して、どちらの解がユーザ装置100の一方のためのもので、どちらの解がユーザ装置100の他方のためのものであるかを明らかな状態として、2つの解を同期情報生成部225へと送る。
上述したように、この実施形態におけるサーバ装置解生成部223は、少なくとも初めて解を生成するとき、サーバ装置解記録部224に初期状態で記録されている真初期解のデータを読み出す。真初期解のデータは、例えば、20桁の数字と小文字の英字混じりの文字列である。これは、初期解のデータ、解のデータも同じである。かかる真初期解は、各ユーザ装置100毎にユニークなものであり、各ユーザ装置100に対して、サーバ装置200が、或いはサーバ装置200の管理者が割り当てたものである。真初期解は1つのこともあるが、複数の場合もある。この実施形態では真初期解は1つであるので、サーバ装置解生成部223は、1つの真初期解をサーバ装置解記録部224からを読み出す。
サーバ装置解生成部223は、それら真初期解に対して演算を行うことにより、その時点における解を生成する。
まず、演算が可能なように、真初期解を数字のみに直す。真初期解の中に、英字が含まれている場合には、それを2桁の数字に置き換える。置き換えの対象となる数字は、その英字のアルファベット中の順番である。例えば、「a」なら「01」に、「b」なら「02」に、「z」なら「26」にそれぞれ置き換える。例えば、真初期解が「5a6458p6556ff4272149」というものだったとする。この場合、真初期解を上述の約束にしたがって数字のみにすると、「501645816655606064272149」となる。数字のみにした場合の桁数は、真初期解に含まれていた英字の数に応じて増えることになる。なお、(、)、!、&、:等の記号をも解に含めたいのであれば、「(」に「27」、「)」に「28」、「!」に「29」等の適当な数字の割当てを行うようにすればよい。
次に、数字に対して演算を行う。この演算の結果求められるのは、解の元となる数字の列である。その数字の列をXとすると、Xは、所定の時点における西暦の年、月、日、時、分にしたがって以下のようにして求められる。以下の数式におけるX1は、真初期解を数字に直したものである。この実施形態で真初期解を5つとしているのは、西暦の年、月、日、時、分という5つの要素にしたがって解を変化させることにしているからである。なお、時刻によって解の同期を取るこのような手法は、従来から存在する時間同期の手法と同様のものである。
X=X1 PX1 Q+X1 RX1 S+X1 T
ここで、P=西暦の年の数字を5で割った余りに1を足したもの、Q=月の数字を5で割った余りに1を足したもの、R=日の数字を5で割った余りに1を足したもの、S=時の数字を5で割った余りに1を足したもの、T=分の数字を5で割った余りに1を足したものである。このようにすることで、そのときの時刻に応じて異なる数列を得ることができる。なお、P~Tのすべてにおいて、1を足す過程を加えているのは、P~Tのすべてがたまたま0になった場合に最終的に得られる解Xが5になるが、そのような簡単な数字が頻出することを避けるためである。
上述の演算を行った結果、解の元となる数字の列Xが得られる。次いで、その数字の列の中の任意の2桁の中に01~26という数字が含まれていたら、先ほどの英字から数字への置き換えの約束事とは逆の約束事にしたがい、それらをa~zの英字に置き換える。
このようにして得られた数字と小文字の英字混じりの文字列は通常、20桁以上の桁数である。それが20桁以上であるときには、その文字列の例えば前から20文字を抜き出し、それを解とする。上述のようにして得られた数字と小文字の英字混じりの文字列がちょうど20桁の場合には、それをそのまま解とする。また、上述のようにして得られた数字と小文字の英字混じりの文字列が20桁よりも少ない場合には、何らかの決まり事に基いて桁数を増やす。例えば、その文字列の最初の数字又は英字に基いて何らかの数字又は文字を、桁数が20桁に至るまでに、その文字列中に挿入するようにしてもよい。或いは、上述の数式におけるPとTとを入れ替えて演算を行って得られる数字の列に対して数字を英字に置き換える上述の過程を実行することによって新たな数字と小文字の英字混じりの文字列を生成して、それを元の数字と小文字の英字混じりの後に繋げるというような作業を、その桁数が少なくとも20桁になるまで繰り返して、その前から20文字を抜き出して解とする、というような方法も採用しうる。
いずれにせよ、これにより、真初期解に基いて、ある時点の日時に対応した解が生成されることになる。これには限られないが、この実施形態では、サーバ装置200のサーバ装置解生成部223は、ユーザ装置100がサーバ装置200に特定情報を送信した時刻(例えば、特定情報の送信時において特定情報を送信するためのデータのパケットにユーザ装置100で付されたタイムスタンプで特定される時刻)の例えば「5分後」の時刻における解を生成するものとする。なお、以下も同様であるが、かかる時刻は、実際にその時刻が到来しているかどうかを問わない。
このようにして、サーバ装置解生成部223は、特定情報で特定されるユーザ装置100の一方についての真初期解を用いて、ユーザ装置100の一方で生成可能な解を生成する。同様にして、サーバ装置解生成部223は、特定情報で特定されるユーザ装置100の他方についての真初期解を用いて、ユーザ装置100の他方で生成可能な解を生成する。
サーバ装置解生成部223は生成した2つの解を、同期情報生成部225へ送る。そのとき、ユーザ装置100の一方で生成可能な解を、特定情報に含まれるユーザ装置100の一方を特定する情報と紐付け、また、ユーザ装置100の他方で生成可能な解を、特定情報に含まれるユーザ装置100の他方を特定する情報と紐付ける等して、どちらの解がユーザ装置100の一方のためのもので、どちらの解がユーザ装置100の他方のためのものであるかを明らかな状態として、2つの解を同期情報生成部225へと送る。
他方、基礎情報生成部228が基礎情報を生成する方法は、擬似乱数を生成するための適当な方法とすれば良い。
例えば、基礎情報生成部228は、基礎情報を生成するための適当な初期解を有しており、サーバ装置解生成部223が新たな解を生成するのと同じ方法で基礎情報を生成するようにしても良い。これには限られないが、この実施形態では、基礎情報生成部228は、基礎情報を、サーバ装置解生成部223が解を生成するのと同じ方法で、サーバ装置200毎にユニークな基礎情報生成用の初期解に基づいて、20桁の数字と小文字の英字混じりの文字列として基礎情報を生成するものとする。
したがって、各サーバ装置200で生成される基礎情報はユニークであり、且つ、各サーバ装置200で生成される基礎情報を他のサーバ装置200或いはその管理者は、不正が無い限り知ることができない状態となる。
基礎情報生成部228は生成した基礎情報を、同期情報生成部225へ送る。
例えば、基礎情報生成部228は、基礎情報を生成するための適当な初期解を有しており、サーバ装置解生成部223が新たな解を生成するのと同じ方法で基礎情報を生成するようにしても良い。これには限られないが、この実施形態では、基礎情報生成部228は、基礎情報を、サーバ装置解生成部223が解を生成するのと同じ方法で、サーバ装置200毎にユニークな基礎情報生成用の初期解に基づいて、20桁の数字と小文字の英字混じりの文字列として基礎情報を生成するものとする。
したがって、各サーバ装置200で生成される基礎情報はユニークであり、且つ、各サーバ装置200で生成される基礎情報を他のサーバ装置200或いはその管理者は、不正が無い限り知ることができない状態となる。
基礎情報生成部228は生成した基礎情報を、同期情報生成部225へ送る。
同期情報生成部225は、以上のようにして、2つの解と基礎情報とを受取る。
それらに基づいて、同期情報生成部225は、同期情報を生成する。同期情報の生成方法は以下の通りである。
同期情報生成部225は、同期情報と、ユーザ装置100の一方のための解とに所定の演算、この実施形態では、可逆的な演算を行って、ユーザ装置100の一方のための同期情報を生成する。可逆的な演算の例は乗算や排他的論理和を取ることであるが、これには限られないがこの実施形態では、排他的論理和を取ることにより、可逆的な演算を行う。
同様に、同期情報生成部225は、同期情報と、ユーザ装置100の他方のための解とに所定の演算、この実施形態では、可逆的な演算を行って、ユーザ装置100の他方のための同期情報を生成する。
同期情報は同じであるが、ユーザ装置100の一方と他方とのための解はそれぞれ異なるものであるため、同期情報と解とに演算を行うことによって生成される2つの同期情報は、互いに異なるものとなる。
同期情報生成部225は、生成した2つの同期情報を出力部227へと送る。そのとき、ユーザ装置100の一方のための同期情報を、特定情報に含まれるユーザ装置100の一方を特定する情報と紐付け、また、ユーザ装置100の他方のための同期情報を、特定情報に含まれるユーザ装置100の他方を特定する情報と紐付ける等して、どちらの同期情報がユーザ装置100の一方のためのもので、どちらの同期情報がユーザ装置100の他方のためのものであるかを明らかな状態として、2つの同期情報を出力部227へと送る。
それらに基づいて、同期情報生成部225は、同期情報を生成する。同期情報の生成方法は以下の通りである。
同期情報生成部225は、同期情報と、ユーザ装置100の一方のための解とに所定の演算、この実施形態では、可逆的な演算を行って、ユーザ装置100の一方のための同期情報を生成する。可逆的な演算の例は乗算や排他的論理和を取ることであるが、これには限られないがこの実施形態では、排他的論理和を取ることにより、可逆的な演算を行う。
同様に、同期情報生成部225は、同期情報と、ユーザ装置100の他方のための解とに所定の演算、この実施形態では、可逆的な演算を行って、ユーザ装置100の他方のための同期情報を生成する。
同期情報は同じであるが、ユーザ装置100の一方と他方とのための解はそれぞれ異なるものであるため、同期情報と解とに演算を行うことによって生成される2つの同期情報は、互いに異なるものとなる。
同期情報生成部225は、生成した2つの同期情報を出力部227へと送る。そのとき、ユーザ装置100の一方のための同期情報を、特定情報に含まれるユーザ装置100の一方を特定する情報と紐付け、また、ユーザ装置100の他方のための同期情報を、特定情報に含まれるユーザ装置100の他方を特定する情報と紐付ける等して、どちらの同期情報がユーザ装置100の一方のためのもので、どちらの同期情報がユーザ装置100の他方のためのものであるかを明らかな状態として、2つの同期情報を出力部227へと送る。
出力部227は、ユーザ装置100の一方と他方とを特定情報と紐付けられたそれら2つの同期情報を、インターフェイスを介して送受信機構に送る。送受信機構は2つの同期情報を、特定情報によって特定される2つのユーザ装置100へと送る(S2003)。もちろん、ユーザ装置100の一方のための同期情報を、特定ユーザ装置に含まれるユーザ装置100の一方へ、ユーザ装置100の他方のための同期情報を、特定ユーザ装置に含まれるユーザ装置100の他方へと送る。ユーザ装置100へ送られる同期情報には、サーバ装置200の送受信機構により、サーバ識別子が付される。
以上のS2001~S2003までの処理は、2つのサーバ装置200で同じように実行される。
したがって、特定ユーザ装置である2つのユーザ装置100には、一方のサーバ装置200と他方のサーバ装置200からそれぞれ、同期情報が送られることになる。両ユーザ装置100が受取る同期情報のうち一方のサーバ装置200から送られたものが第1同期情報で、他方のサーバ装置200から送られたものが第2同期情報である。第1同期情報と第2同期情報という名称における「第1」と「第2」という文言は、ユーザ装置100が同期情報を受取った順序には関係ない。また、サーバ装置200からユーザ装置100へと同期情報を送信する際に、同期情報は更に暗号化されていても構わない。
以上のS2001~S2003までの処理は、2つのサーバ装置200で同じように実行される。
したがって、特定ユーザ装置である2つのユーザ装置100には、一方のサーバ装置200と他方のサーバ装置200からそれぞれ、同期情報が送られることになる。両ユーザ装置100が受取る同期情報のうち一方のサーバ装置200から送られたものが第1同期情報で、他方のサーバ装置200から送られたものが第2同期情報である。第1同期情報と第2同期情報という名称における「第1」と「第2」という文言は、ユーザ装置100が同期情報を受取った順序には関係ない。また、サーバ装置200からユーザ装置100へと同期情報を送信する際に、同期情報は更に暗号化されていても構わない。
一方のサーバ装置200と他方のサーバ装置200からそれぞれ、送られた同期情報を、特定ユーザ装置である双方のユーザ装置100が受取る(S1003)。
2つの同期情報はそれらにそれぞれ付されたサーバ識別子とともに、ユーザ装置100の送受信機構により受付けられる。両ユーザ装置100において、受付けられた2つの同期情報はサーバ識別子とともに、インターフェイス114を介して入力部121に送られ、入力部121から、主制御部122を介してユーザ初期解生成部125に送られる。
2つの同期情報はそれらにそれぞれ付されたサーバ識別子とともに、ユーザ装置100の送受信機構により受付けられる。両ユーザ装置100において、受付けられた2つの同期情報はサーバ識別子とともに、インターフェイス114を介して入力部121に送られ、入力部121から、主制御部122を介してユーザ初期解生成部125に送られる。
サーバ識別子の付された2つの同期情報を受取ったユーザ装置100のユーザ初期解生成部125では、2つの同期情報に基いて、以下のようにして初期解が生成される(S1004)。
ユーザ初期解生成部125は、上述のように、サーバ識別子が付された同期情報を受付けると、解を生成せよとの指示とともに、2つの同期情報に付されたサーバ識別子をユーザ解生成部123へと送る。
ユーザ初期解生成部125は、上述のように、サーバ識別子が付された同期情報を受付けると、解を生成せよとの指示とともに、2つの同期情報に付されたサーバ識別子をユーザ解生成部123へと送る。
ユーザ初期解生成部125から解を生成せよとの指示を受けたユーザ解生成部123は、解を生成する。
ユーザ解生成部123は以下のようにして新たな解を生成する。
ユーザ解生成部123は、2つのサーバ識別子のうちの一方と紐付けられていた真初期解をユーザ解記録部124から読み出す。ユーザ解生成部123は、そのサーバ識別子によって特定されるサーバ装置200のサーバ装置解生成部223が解を生成したときと同じ方法で解を生成する。サーバ装置解生成部223が解を生成したときに用いられる解と、ユーザ解生成部123が解を生成するときに用いられる解が同じで、また、サーバ装置解生成部223が解を生成した方法と、ユーザ解生成部123が解を生成する方法とが同じなのであるから、サーバ装置解生成部223で生成された解と同じ解が、ユーザ解生成部123で生成されることになる。つまり、ユーザ解生成部123は、2つのサーバ識別のうちの一方で特定されるサーバ装置200で生成されたのと同じ解を生成する。
また、ユーザ解生成部123は、2つのサーバ識別子のうちの他方と紐付けられていた真初期解をユーザ解記録部124から読み出す。その真初期解を用いることにより、ユーザ解生成部123は、2つのサーバ識別のうちの他方で特定されるサーバ装置200で生成されたのと同じ解を生成する。
このようにして生成された2つの解は、ユーザ解生成部123から、ユーザ初期解生成部125へと送られる。
ユーザ解生成部123は以下のようにして新たな解を生成する。
ユーザ解生成部123は、2つのサーバ識別子のうちの一方と紐付けられていた真初期解をユーザ解記録部124から読み出す。ユーザ解生成部123は、そのサーバ識別子によって特定されるサーバ装置200のサーバ装置解生成部223が解を生成したときと同じ方法で解を生成する。サーバ装置解生成部223が解を生成したときに用いられる解と、ユーザ解生成部123が解を生成するときに用いられる解が同じで、また、サーバ装置解生成部223が解を生成した方法と、ユーザ解生成部123が解を生成する方法とが同じなのであるから、サーバ装置解生成部223で生成された解と同じ解が、ユーザ解生成部123で生成されることになる。つまり、ユーザ解生成部123は、2つのサーバ識別のうちの一方で特定されるサーバ装置200で生成されたのと同じ解を生成する。
また、ユーザ解生成部123は、2つのサーバ識別子のうちの他方と紐付けられていた真初期解をユーザ解記録部124から読み出す。その真初期解を用いることにより、ユーザ解生成部123は、2つのサーバ識別のうちの他方で特定されるサーバ装置200で生成されたのと同じ解を生成する。
このようにして生成された2つの解は、ユーザ解生成部123から、ユーザ初期解生成部125へと送られる。
ユーザ初期解生成部125は、上述したように先に2つの同期情報を得ている。それに加えて、ユーザ初期解生成部125は、ユーザ解生成部123から2つの解を得ている。それらを用いて、ユーザ初期解生成部125は、初期解を生成する。
まず、ユーザ初期解生成部125は、2つのサーバ識別子の一方によって特定されるサーバ装置200から送られてきた同期情報に、当該サーバ装置200で生成可能なユーザ解生成部123から送られてきた解を用いて、サーバ装置200の同期情報生成部225で行われた可逆的な演算の逆演算を行う。それにより、ユーザ初期解生成部125は、2つのサーバ識別子の一方によって特定されるサーバ装置200の基礎情報生成部228で生成された基礎情報を、同期情報から取出すことができる。
同様に、ユーザ初期解生成部125は、2つのサーバ識別子の他方によって特定されるサーバ装置200から送られてきた同期情報に、当該サーバ装置200で生成可能なユーザ解生成部123から送られてきた解を用いて、サーバ装置200の同期情報生成部225で行われた可逆的な演算の逆演算を行う。それにより、ユーザ初期解生成部125は、2つのサーバ識別子の他方によって特定されるサーバ装置200の基礎情報生成部228で生成された基礎情報を、同期情報から取出すことができる。
それにより、ユーザ初期解生成部125は、2つのサーバ識別子によって特定される2つのサーバ装置200、つまり、同期情報を送ってきた2つのサーバ装置200で生成された2つの基礎情報を入手することができる。
ユーザ初期解生成部125は、それら2つの基礎情報に予め定められた所定の演算を行うことにより初期解を得る。所定の演算は、例えば、2つの基礎情報の乗算であっても良いし、排他的論理和を取る演算であっても良い。これには限られないが、この実施形態では後者を採用している。
生成された初期解は、ユーザ初期解生成部125からユーザ解記録部124へと送られ、ユーザ解記録部124に記録される。この解は、特定情報で特定される2つのユーザ装置100のうちの暗号化通信を行う相手方のユーザ装置100との暗号化通信を行う際に用いられるものであるから、それを明らかにするために、当該相手側のユーザ装置100を特定するための情報(この実施形態では、相手側のユーザ装置100のIPアドレス)と紐付けた状態で、ユーザ解記録部124に記録されることになる。
まず、ユーザ初期解生成部125は、2つのサーバ識別子の一方によって特定されるサーバ装置200から送られてきた同期情報に、当該サーバ装置200で生成可能なユーザ解生成部123から送られてきた解を用いて、サーバ装置200の同期情報生成部225で行われた可逆的な演算の逆演算を行う。それにより、ユーザ初期解生成部125は、2つのサーバ識別子の一方によって特定されるサーバ装置200の基礎情報生成部228で生成された基礎情報を、同期情報から取出すことができる。
同様に、ユーザ初期解生成部125は、2つのサーバ識別子の他方によって特定されるサーバ装置200から送られてきた同期情報に、当該サーバ装置200で生成可能なユーザ解生成部123から送られてきた解を用いて、サーバ装置200の同期情報生成部225で行われた可逆的な演算の逆演算を行う。それにより、ユーザ初期解生成部125は、2つのサーバ識別子の他方によって特定されるサーバ装置200の基礎情報生成部228で生成された基礎情報を、同期情報から取出すことができる。
それにより、ユーザ初期解生成部125は、2つのサーバ識別子によって特定される2つのサーバ装置200、つまり、同期情報を送ってきた2つのサーバ装置200で生成された2つの基礎情報を入手することができる。
ユーザ初期解生成部125は、それら2つの基礎情報に予め定められた所定の演算を行うことにより初期解を得る。所定の演算は、例えば、2つの基礎情報の乗算であっても良いし、排他的論理和を取る演算であっても良い。これには限られないが、この実施形態では後者を採用している。
生成された初期解は、ユーザ初期解生成部125からユーザ解記録部124へと送られ、ユーザ解記録部124に記録される。この解は、特定情報で特定される2つのユーザ装置100のうちの暗号化通信を行う相手方のユーザ装置100との暗号化通信を行う際に用いられるものであるから、それを明らかにするために、当該相手側のユーザ装置100を特定するための情報(この実施形態では、相手側のユーザ装置100のIPアドレス)と紐付けた状態で、ユーザ解記録部124に記録されることになる。
同様の処理、つまり、S1003とS1004の処理が、特定ユーザ装置である2つのユーザ装置100のうちの他方でも実行される。
2つのユーザ装置100の他方においてユーザ初期解生成部125が初期解を生成するときに用いられる2つの基礎情報は、2つのユーザ装置100の一方で初期解を生成するときに用いられた2つの基礎情報と同じであり、また、両者で初期解を生成するときに2つの基礎情報に対して行われる演算は予め定められた同じ演算である。したがって、特定ユーザ装置に含まれる2つのユーザ装置100で生成される初期解は同じものとなる。
2つのユーザ装置100の他方においても、生成された初期解は、ユーザ解記録部124に記録される。このとき、その解は、特定ユーザ装置である2つのユーザ装置100の一方のIPアドレスと紐付けた状態でユーザ解記録部124に記録される。
これにて、特定ユーザ装置たる2つのユーザ装置100におけるユーザ解記録部124のそれぞれに共通する初期解が記録されることになった。言い換えれば、特定ユーザ装置たる2つのユーザ装置100が共通する初期解を持つ状態が形成された。つまり、これにより、特定ユーザ装置たる2つのユーザ装置100が暗号化通信を行う準備が整った。
2つのユーザ装置100の他方においてユーザ初期解生成部125が初期解を生成するときに用いられる2つの基礎情報は、2つのユーザ装置100の一方で初期解を生成するときに用いられた2つの基礎情報と同じであり、また、両者で初期解を生成するときに2つの基礎情報に対して行われる演算は予め定められた同じ演算である。したがって、特定ユーザ装置に含まれる2つのユーザ装置100で生成される初期解は同じものとなる。
2つのユーザ装置100の他方においても、生成された初期解は、ユーザ解記録部124に記録される。このとき、その解は、特定ユーザ装置である2つのユーザ装置100の一方のIPアドレスと紐付けた状態でユーザ解記録部124に記録される。
これにて、特定ユーザ装置たる2つのユーザ装置100におけるユーザ解記録部124のそれぞれに共通する初期解が記録されることになった。言い換えれば、特定ユーザ装置たる2つのユーザ装置100が共通する初期解を持つ状態が形成された。つまり、これにより、特定ユーザ装置たる2つのユーザ装置100が暗号化通信を行う準備が整った。
この状態で、特定ユーザ装置を構成する2つのユーザ装置100の間で暗号化通信が行われる(S1005)。
暗号化通信についての以下の説明では、特定ユーザ装置である暗号化通信を行う2つのユーザ装置のうちの一方を、一方のユーザ装置100、その他方を、他方のユーザ装置100と称することにする。
まず、一方のユーザ装置100から他方のユーザ装置へ暗号化データが送信される場合について説明する。
なお、2つのユーザ装置100の間でどちらのユーザ装置100からどちらのユーザ装置100へ暗号化データが送信されるかは本来自由である。一方のユーザ装置100から他方のユーザ装置100に暗号化データが送信されても、他方のユーザ装置100から一方のユーザ装置100に暗号化データが送信されても、両ユーザ装置100で行われる処理が逆になるだけで、両ユーザ装置100で行われる処理そのものは変わらない。
一方のユーザ装置100を扱うユーザは、ユーザ装置100の入力装置102を操作して、送信対象データを生成或いは選択する。送信対象データは平文のデータである。
送信対象データは一方のユーザ装置100内で、インターフェイス114から入力部121に送られ、更にはユーザ暗号化復号化部126に送られる。ユーザ暗号化復号化部126で送信対象データは暗号化されるが、そのために解が用いられる。ユーザ暗号化復号化部126は、ユーザ解生成部123に解を生成させるべく、解を生成せよとの指示をユーザ解生成部123に送る。かかる指示を受取ると、ユーザ解生成部123は新たに解を生成する。
ユーザ解生成部123がどのようにして解を生成するかは、2つのユーザ装置100におけるユーザ解生成部123で生成される解が同期されている限り自由である。例えば、ユーザ解生成部123とサーバ装置解生成部223において生成される解を同期させるための方法と、特定ユーザ装置である2つのユーザ装置100におけるユーザ解生成部123において生成される解を同期させるための方法とが、同じものであっても、異なるものであっても構わない。
この実施形態では、一方のユーザ装置100におけるユーザ解生成部123は、この実施形態では、その時点の時刻とは無関係に、初期解を生成するときに用いられた上述の時刻の1年と、1月と、1日と、1時間と、1分後の時刻に対応した解を生成するようになっているものとする。更に、2つのユーザ装置100間で予め取り決めた、離れた場所にある2つのユーザ装置100が取得可能な共通の情報(例えば、ある都市の通信時における気温や、あるスポーツのある規則で特定される試合の勝敗)である環境情報を、解を生成するための情報として用いることもできる。
ユーザ解生成部123は、ユーザ解記録部124から読み出した初期解を用い、また上述した方法及び上述した時刻を用いて、新たな解を生成する。
新たな解は、一方のユーザ装置100内で、ユーザ解生成部123からユーザ暗号化復号化部126へと送られる。
ユーザ暗号化復号化部126は、ユーザ解生成部123から新たな解を受取り、それを用いて、送信対象データを暗号化する。
この場合の解の用い方は自由である。例えば、ユーザ装置100とサーバ装置200が共通鍵方式の暗号化通信を行う場合であれば、ユーザ暗号化復号化部126は、その新たな解を共通鍵として用いることができる。つまり、解は、暗号化の鍵として利用可能である。また、解は共通鍵を生成するための元となる情報として用いることもできる。他方、解は、暗号化のアルゴリズムを変化させるために用いることも可能である。解に基いて、複数種類のアルゴリズムの中から1つのアルゴリズムを選択する、といった解の用い方も可能である。
いずれにせよ、送信対象データはユーザ暗号化復号化部126で暗号化され、暗号化データにされる。
生成された暗号化データは、ユーザ暗号化復号化部126から出力部127へと送られる。
一方のユーザ装置100における出力部127は、暗号化データをインターフェイス114を介して送受信機構へと送る。暗号化データは、ネットワーク400を介して、他方のユーザ装置100へと送られる。
まず、一方のユーザ装置100から他方のユーザ装置へ暗号化データが送信される場合について説明する。
なお、2つのユーザ装置100の間でどちらのユーザ装置100からどちらのユーザ装置100へ暗号化データが送信されるかは本来自由である。一方のユーザ装置100から他方のユーザ装置100に暗号化データが送信されても、他方のユーザ装置100から一方のユーザ装置100に暗号化データが送信されても、両ユーザ装置100で行われる処理が逆になるだけで、両ユーザ装置100で行われる処理そのものは変わらない。
一方のユーザ装置100を扱うユーザは、ユーザ装置100の入力装置102を操作して、送信対象データを生成或いは選択する。送信対象データは平文のデータである。
送信対象データは一方のユーザ装置100内で、インターフェイス114から入力部121に送られ、更にはユーザ暗号化復号化部126に送られる。ユーザ暗号化復号化部126で送信対象データは暗号化されるが、そのために解が用いられる。ユーザ暗号化復号化部126は、ユーザ解生成部123に解を生成させるべく、解を生成せよとの指示をユーザ解生成部123に送る。かかる指示を受取ると、ユーザ解生成部123は新たに解を生成する。
ユーザ解生成部123がどのようにして解を生成するかは、2つのユーザ装置100におけるユーザ解生成部123で生成される解が同期されている限り自由である。例えば、ユーザ解生成部123とサーバ装置解生成部223において生成される解を同期させるための方法と、特定ユーザ装置である2つのユーザ装置100におけるユーザ解生成部123において生成される解を同期させるための方法とが、同じものであっても、異なるものであっても構わない。
この実施形態では、一方のユーザ装置100におけるユーザ解生成部123は、この実施形態では、その時点の時刻とは無関係に、初期解を生成するときに用いられた上述の時刻の1年と、1月と、1日と、1時間と、1分後の時刻に対応した解を生成するようになっているものとする。更に、2つのユーザ装置100間で予め取り決めた、離れた場所にある2つのユーザ装置100が取得可能な共通の情報(例えば、ある都市の通信時における気温や、あるスポーツのある規則で特定される試合の勝敗)である環境情報を、解を生成するための情報として用いることもできる。
ユーザ解生成部123は、ユーザ解記録部124から読み出した初期解を用い、また上述した方法及び上述した時刻を用いて、新たな解を生成する。
新たな解は、一方のユーザ装置100内で、ユーザ解生成部123からユーザ暗号化復号化部126へと送られる。
ユーザ暗号化復号化部126は、ユーザ解生成部123から新たな解を受取り、それを用いて、送信対象データを暗号化する。
この場合の解の用い方は自由である。例えば、ユーザ装置100とサーバ装置200が共通鍵方式の暗号化通信を行う場合であれば、ユーザ暗号化復号化部126は、その新たな解を共通鍵として用いることができる。つまり、解は、暗号化の鍵として利用可能である。また、解は共通鍵を生成するための元となる情報として用いることもできる。他方、解は、暗号化のアルゴリズムを変化させるために用いることも可能である。解に基いて、複数種類のアルゴリズムの中から1つのアルゴリズムを選択する、といった解の用い方も可能である。
いずれにせよ、送信対象データはユーザ暗号化復号化部126で暗号化され、暗号化データにされる。
生成された暗号化データは、ユーザ暗号化復号化部126から出力部127へと送られる。
一方のユーザ装置100における出力部127は、暗号化データをインターフェイス114を介して送受信機構へと送る。暗号化データは、ネットワーク400を介して、他方のユーザ装置100へと送られる。
他方のユーザ装置100は、その送受信機構でユーザ装置100から送られてきた暗号化データを受取る。暗号化データは、送受信機構から、インターフェイス114を介して入力部121へと送られる。入力部121は、ユーザ暗号化復号化部126へ暗号化データを送る。
暗号化データを受取った、他方のユーザ装置100におけるユーザ暗号化復号化部126は暗号化データを復号化する。そのために、ユーザ暗号化復号化部126は、ユーザ解生成部123が生成した解を用いる。ユーザ暗号化復号化部126は、ユーザ解生成部123に解を生成させるべく、解を生成せよとの指示をユーザ解生成部123に送る。かかる指示を受取ると、ユーザ解生成部123は新たに解を生成する。
他方のユーザ装置100におけるユーザ解生成部123が解を生成する方法は、一方のユーザ装置100のユーザ解生成部123が採用している方法と同じであり、ユーザ解生成部123がユーザ解記録部124から読み出す初期解は、一方のユーザ装置100で用いられた初期解と共通する。それにより、他方のユーザ装置100におけるユーザ解生成部123は、一方のユーザ装置100におけるユーザ解生成部123が生成するのと同じ新たな解を生成する。つまり、2つのユーザ装置100は、同期した解を生成することになる。
新たな解は、ユーザ解生成部123からユーザ暗号化復号化部126へと送られる。
ユーザ暗号化復号化部126は、ユーザ解生成部123から新たな解を受取り、それを用いて、暗号化データを復号化する。
この場合の解の用い方は、一方のユーザ装置100のユーザ暗号化復号化部126での解の用いられ方に倣う。例えば、2つのユーザ装置100が共通鍵方式の暗号化通信の共通鍵として解を用いるのであり、一方のユーザ装置100で解がそのように用いられたのであれば、他方のユーザ装置100におけるユーザ暗号化復号化部126も、その新たな解を共通鍵として用いる。
いずれにせよ、ユーザ暗号化復号化部126で、暗号化データは復号化され、元の平文の送信対象データに戻される。
送信対象データは、ユーザ暗号化復号化部126から、出力部127に送られ、出力部127からインターフェイス114を介して、他方のユーザ装置100内の例えば他のアプリケーションに送られたり、ディスプレイ101に送られて適当な表示がなされたりする。
暗号化データを受取った、他方のユーザ装置100におけるユーザ暗号化復号化部126は暗号化データを復号化する。そのために、ユーザ暗号化復号化部126は、ユーザ解生成部123が生成した解を用いる。ユーザ暗号化復号化部126は、ユーザ解生成部123に解を生成させるべく、解を生成せよとの指示をユーザ解生成部123に送る。かかる指示を受取ると、ユーザ解生成部123は新たに解を生成する。
他方のユーザ装置100におけるユーザ解生成部123が解を生成する方法は、一方のユーザ装置100のユーザ解生成部123が採用している方法と同じであり、ユーザ解生成部123がユーザ解記録部124から読み出す初期解は、一方のユーザ装置100で用いられた初期解と共通する。それにより、他方のユーザ装置100におけるユーザ解生成部123は、一方のユーザ装置100におけるユーザ解生成部123が生成するのと同じ新たな解を生成する。つまり、2つのユーザ装置100は、同期した解を生成することになる。
新たな解は、ユーザ解生成部123からユーザ暗号化復号化部126へと送られる。
ユーザ暗号化復号化部126は、ユーザ解生成部123から新たな解を受取り、それを用いて、暗号化データを復号化する。
この場合の解の用い方は、一方のユーザ装置100のユーザ暗号化復号化部126での解の用いられ方に倣う。例えば、2つのユーザ装置100が共通鍵方式の暗号化通信の共通鍵として解を用いるのであり、一方のユーザ装置100で解がそのように用いられたのであれば、他方のユーザ装置100におけるユーザ暗号化復号化部126も、その新たな解を共通鍵として用いる。
いずれにせよ、ユーザ暗号化復号化部126で、暗号化データは復号化され、元の平文の送信対象データに戻される。
送信対象データは、ユーザ暗号化復号化部126から、出力部127に送られ、出力部127からインターフェイス114を介して、他方のユーザ装置100内の例えば他のアプリケーションに送られたり、ディスプレイ101に送られて適当な表示がなされたりする。
他方のユーザ装置100から一方のユーザ装置100へ暗号化データが送信される場合には、以上の説明における一方のユーザ装置100と他方のユーザ装置100の役割が入れ替わる。
暗号化通信を行う必要がなくなったら、暗号化通信が終了する。
なお、この実施形態における通信システムでは、暗号化通信を行うS1005の過程で用いられる解は1つだけ、或いは固定であった。これに代えて、例えば共通鍵方式の暗号化通信を行うための共通鍵を次々と変更していくが如くに、暗号化或いは復号化に用いるための解を、特定ユーザ装置たる2つのユーザ装置100のユーザ解生成部123で、連続的に生成するようにすることも可能である。その場合には、例えば、認証に用いた解の次の新たな解を生成するために、認証に用いられた解が生成された時刻の1年と、1月と、1日と、1時間と、1分後の時刻に対応した解を生成するという取極めを、例えばすべてのユーザ解生成部123と、サーバ装置解生成部223との間でしていたのと同様に、その後に生成する解は、順にその1分後、2分後、3分後…の時刻に生成される解である、等の取極めを、例えば、すべてのユーザ装置100のユーザ解生成部123同士の間で行っておけばよい。もちろん、両者の間で、もっと複雑な取極めを交わしておくことも可能である。
他方、共通鍵方式の暗号化通信を行うための共通鍵を、次々と変更していくがごとくに、特定ユーザ装置たる2つのユーザ装置100のユーザ暗号化復号化部126において暗号化と復号化の処理を行う際に用いられる解を変更するタイミングは、適当に決定することができる。例えば、暗号化通信が開始されてから所定の時間が経過する度に、新しく生成された解に暗号化或いは復号化のために用いられる解が変更或いは更新されてもよく、或いは暗号化データの量が一定のデータ量を超える度に、解が変更或いは更新されても良い。例えば、平文のあるデータを暗号化する場合には通常、データの全体に対して何らかの演算を行うのではなく、通常は、平文のあるデータを所定のビット数毎に切断して小さいデータにしてから、その小さいデータのそれぞれに対して暗号化のための演算を行っていくという手法が用いられる。例えば、その小さいデータを10個暗号化する毎に新しい解を生成して共通鍵を変えるとか、場合によってはその小さいデータを1個暗号化する毎に新しい解を生成して共通鍵を変えるとか、そのような手法を採用しても良い。もちろんこのような暗号化を行う場合には、復号化を行う側でも暗号化を行う側と同じ方法で解を発生させ、同じ方法で共通鍵となる解を変更していく。そのようなことを、特定ユーザ装置たる2つのユーザ装置100の双方で実行することができる。
なお、この実施形態における通信システムでは、暗号化通信を行うS1005の過程で用いられる解は1つだけ、或いは固定であった。これに代えて、例えば共通鍵方式の暗号化通信を行うための共通鍵を次々と変更していくが如くに、暗号化或いは復号化に用いるための解を、特定ユーザ装置たる2つのユーザ装置100のユーザ解生成部123で、連続的に生成するようにすることも可能である。その場合には、例えば、認証に用いた解の次の新たな解を生成するために、認証に用いられた解が生成された時刻の1年と、1月と、1日と、1時間と、1分後の時刻に対応した解を生成するという取極めを、例えばすべてのユーザ解生成部123と、サーバ装置解生成部223との間でしていたのと同様に、その後に生成する解は、順にその1分後、2分後、3分後…の時刻に生成される解である、等の取極めを、例えば、すべてのユーザ装置100のユーザ解生成部123同士の間で行っておけばよい。もちろん、両者の間で、もっと複雑な取極めを交わしておくことも可能である。
他方、共通鍵方式の暗号化通信を行うための共通鍵を、次々と変更していくがごとくに、特定ユーザ装置たる2つのユーザ装置100のユーザ暗号化復号化部126において暗号化と復号化の処理を行う際に用いられる解を変更するタイミングは、適当に決定することができる。例えば、暗号化通信が開始されてから所定の時間が経過する度に、新しく生成された解に暗号化或いは復号化のために用いられる解が変更或いは更新されてもよく、或いは暗号化データの量が一定のデータ量を超える度に、解が変更或いは更新されても良い。例えば、平文のあるデータを暗号化する場合には通常、データの全体に対して何らかの演算を行うのではなく、通常は、平文のあるデータを所定のビット数毎に切断して小さいデータにしてから、その小さいデータのそれぞれに対して暗号化のための演算を行っていくという手法が用いられる。例えば、その小さいデータを10個暗号化する毎に新しい解を生成して共通鍵を変えるとか、場合によってはその小さいデータを1個暗号化する毎に新しい解を生成して共通鍵を変えるとか、そのような手法を採用しても良い。もちろんこのような暗号化を行う場合には、復号化を行う側でも暗号化を行う側と同じ方法で解を発生させ、同じ方法で共通鍵となる解を変更していく。そのようなことを、特定ユーザ装置たる2つのユーザ装置100の双方で実行することができる。
なお、上述のようにして特定ユーザ装置たる2つのユーザ装置100が一度解を同期させたのであれば、特定ユーザ装置たる2つのユーザ装置100は解を同期させた状態を2つのユーザ装置100が機能している間永続的に保つことができる。
例えば、上述の暗号化通信が終わったときに双方のユーザ装置100で発生させた最後の解を、双方のユーザ装置100におけるユーザ解記録部124に、次回の暗号化通信の際に用いる初期解として記録するようにすれば、次回の暗号化通信の場合には、サーバ装置200の力を借りて同期情報をサーバ装置200に生成させずとも、2つのユーザ装置100は同期した解を用いての暗号化通信を実行することができる。特に、解を生成するときに上記の如き環境情報を用いることとすれば、サーバ装置200及びその管理者を含めた第三者には、解及び初期解を知得される可能性が略無くなる。
他方、各ユーザ装置100は、上記の如き初期解の保存を行わず、暗号化通信を行うたびにサーバ装置200から同期情報の提供を受け、上述の処理を繰り返すようになっていてももちろん構わない。
例えば、上述の暗号化通信が終わったときに双方のユーザ装置100で発生させた最後の解を、双方のユーザ装置100におけるユーザ解記録部124に、次回の暗号化通信の際に用いる初期解として記録するようにすれば、次回の暗号化通信の場合には、サーバ装置200の力を借りて同期情報をサーバ装置200に生成させずとも、2つのユーザ装置100は同期した解を用いての暗号化通信を実行することができる。特に、解を生成するときに上記の如き環境情報を用いることとすれば、サーバ装置200及びその管理者を含めた第三者には、解及び初期解を知得される可能性が略無くなる。
他方、各ユーザ装置100は、上記の如き初期解の保存を行わず、暗号化通信を行うたびにサーバ装置200から同期情報の提供を受け、上述の処理を繰り返すようになっていてももちろん構わない。
<変形例1>
以下、上述した通信システムの変形例について説明する。
以下に説明する通信システムで上述の実施形態の通信システムと異なるのは、サーバ装置200と各ユーザ装置100とにおける解の同期のさせ方、及び特定ユーザ装置たる2つのユーザ装置100間での解の同期のさせ方のみである。
他の部分においては、変形例1と実施形態の通信システムの構成には違いがなく、またその使用方法、及び動作についても違いはない。
以下、上述した通信システムの変形例について説明する。
以下に説明する通信システムで上述の実施形態の通信システムと異なるのは、サーバ装置200と各ユーザ装置100とにおける解の同期のさせ方、及び特定ユーザ装置たる2つのユーザ装置100間での解の同期のさせ方のみである。
他の部分においては、変形例1と実施形態の通信システムの構成には違いがなく、またその使用方法、及び動作についても違いはない。
実施形態においては、ユーザ装置100が備えるユーザ解生成部123、及びサーバ装置200が備えるサーバ装置解生成部223における解の発生のさせ方は、トークン等を用いて行われていた従来のワンタイムパスワードの生成の方法でいえば、時間同期の如き解の同期のさせ方を採用していた。これに対して、変形例1では、ワンタイムパスワードの発生のさせ方でいえば、イベント同期の如き、過去に発生させた解の数(或いは発生させられた解の順番(その解が幾つ目の解かということ))に基づき解を同期させる方法を採用している。
変形例1では、ユーザ解生成部123、及びサーバ装置解生成部223で新しい解を生成するための手法は、例えば、ある初期解に対して決められた演算を行うことで解を得て、次いでその解に対して再び決められた演算を行うことで次の解を得て、次いでその解に対して再び決められた演算を行うことで次の解を得て…、という処理を繰り返すことで、連続して解を生成するものとすることができる。このような技術は、擬似乱数を生成するための技術として周知である。
ユーザ解生成部123、及びサーバ装置解生成部223が、解を生成するより具体的な方法について説明する。ユーザ装置100のユーザ解生成部123で新しい解を生成する方法、及びサーバ装置200のサーバ装置解生成部223で新しい解を生成する方法とも共通であるので、以下の説明ではそれらの区別を行わずに説明を行う。また、初期解と真初期解も区別せずにそれらをともに初期解としてまとめて説明を行う。
解を生成するには、ある初期解(以下の、(a)、(c)のように2つ以上の場合もある)を用い、過去の解を所定の関数に代入することにより、新しい解を順次作るという方法を、解が必要となる度に実行すれば良い。そうすることにより、上記解を連続して生成することができる。この場合の解は、初期解依存性のある擬似乱数となる。
上述の解を作るのに使われる関数の例として、以下の(a)~(c)を挙げる。以下の(a)~(c)はいずれも、N番目の解であるXNを作るための式である。また、P、Q、R、Sは適当な自然数である。
(a)(XN)=(XN-1)P+(XN-2)Q
(b)(XN)=(XN-1)P
(c)(XN)=(XN-1)P(XN-2)Q(XN-3)R(XN-4)S
(a)は、過去の解2つを用い、それらをそれぞれP乗とQ乗したものを足し合わせることにより、新しい解を生成する。なお、正確には、過去の解2つを用い、それらをP乗とQ乗したものを足し合わせると通常、桁数が増えるため、実際には得られた値のうちの頭から適当な桁数を抜き出す、末尾から適当な桁数を抜き出す、或いはその値のうちの適当な部分から適当な桁数を抜き出すこと等により、新しい解を生成する。これには限られないが、実施形態では、解は20桁であるものとする。
(b)は、過去の解1つを用い、それをP乗したものの桁数を上述のように整理したものを新しい解とするものである。
(c)は、過去の解4つを用い、それらをそれぞれP乗、Q乗、R乗、S乗したものの積を取り、その後上述したように桁数を整理したものを新しい解とするものである。
上述の(a)~(c)は解を生成するためのアルゴリズムの一例であり、解を生成する際にアルゴリズムに変化を加える、例えば、上述の(a)~(c)を順番に用いる等の変化を加えることも可能である。
なお、上述の(a)~(c)の数式を用いる手法は、解が数字のみで構成されている場合に使用可能である。解に、文字、記号を含めたいのであれば、実施形態で説明した、文字、記号に数字を割り振る手法を採用すればよい。
上述の如き数式を用いて解を連続させる方法によれば、同じ順番で生成された解は、初期解が同一である場合においては常に同一のものとなる。
したがって、共通のアルゴリズムを用い、且つ共通の初期解を有するのであれば、サーバ装置200にあるサーバ装置解生成部223と、ユーザ装置100にあるユーザ解生成部123とは、共通する同期された解を生成することができ、また、特定ユーザ装置における2つのユーザ装置100にそれぞれあるユーザ解生成部123は、共通する同期された解を生成することができることになる。
これには限られないが、変形例1のユーザ解生成部123とサーバ装置解生成部223とは、上記(a)のアルゴリズムを用いて解を生成することとしている。また、変形例1における特定ユーザ装置に含まれる2つのユーザ装置100(或いは、すべてのユーザ装置100が特定ユーザ装置になり得ることまで考慮すれば、すべてのユーザ装置100)におけるユーザ解生成部123は、上記(a)のアルゴリズムを用いて解を生成することとしている。
解を生成するには、ある初期解(以下の、(a)、(c)のように2つ以上の場合もある)を用い、過去の解を所定の関数に代入することにより、新しい解を順次作るという方法を、解が必要となる度に実行すれば良い。そうすることにより、上記解を連続して生成することができる。この場合の解は、初期解依存性のある擬似乱数となる。
上述の解を作るのに使われる関数の例として、以下の(a)~(c)を挙げる。以下の(a)~(c)はいずれも、N番目の解であるXNを作るための式である。また、P、Q、R、Sは適当な自然数である。
(a)(XN)=(XN-1)P+(XN-2)Q
(b)(XN)=(XN-1)P
(c)(XN)=(XN-1)P(XN-2)Q(XN-3)R(XN-4)S
(a)は、過去の解2つを用い、それらをそれぞれP乗とQ乗したものを足し合わせることにより、新しい解を生成する。なお、正確には、過去の解2つを用い、それらをP乗とQ乗したものを足し合わせると通常、桁数が増えるため、実際には得られた値のうちの頭から適当な桁数を抜き出す、末尾から適当な桁数を抜き出す、或いはその値のうちの適当な部分から適当な桁数を抜き出すこと等により、新しい解を生成する。これには限られないが、実施形態では、解は20桁であるものとする。
(b)は、過去の解1つを用い、それをP乗したものの桁数を上述のように整理したものを新しい解とするものである。
(c)は、過去の解4つを用い、それらをそれぞれP乗、Q乗、R乗、S乗したものの積を取り、その後上述したように桁数を整理したものを新しい解とするものである。
上述の(a)~(c)は解を生成するためのアルゴリズムの一例であり、解を生成する際にアルゴリズムに変化を加える、例えば、上述の(a)~(c)を順番に用いる等の変化を加えることも可能である。
なお、上述の(a)~(c)の数式を用いる手法は、解が数字のみで構成されている場合に使用可能である。解に、文字、記号を含めたいのであれば、実施形態で説明した、文字、記号に数字を割り振る手法を採用すればよい。
上述の如き数式を用いて解を連続させる方法によれば、同じ順番で生成された解は、初期解が同一である場合においては常に同一のものとなる。
したがって、共通のアルゴリズムを用い、且つ共通の初期解を有するのであれば、サーバ装置200にあるサーバ装置解生成部223と、ユーザ装置100にあるユーザ解生成部123とは、共通する同期された解を生成することができ、また、特定ユーザ装置における2つのユーザ装置100にそれぞれあるユーザ解生成部123は、共通する同期された解を生成することができることになる。
これには限られないが、変形例1のユーザ解生成部123とサーバ装置解生成部223とは、上記(a)のアルゴリズムを用いて解を生成することとしている。また、変形例1における特定ユーザ装置に含まれる2つのユーザ装置100(或いは、すべてのユーザ装置100が特定ユーザ装置になり得ることまで考慮すれば、すべてのユーザ装置100)におけるユーザ解生成部123は、上記(a)のアルゴリズムを用いて解を生成することとしている。
かかる通信システムの使用方法、及び動作をより具体的に説明することで、通信システムの構成をより明確にする。
変形例1の通信システムの動作は、図6に示した通りであり、大まかに言えば、実施形態の場合と変わらない。特に、特定ユーザ装置におけるS1001~S1002のステップとサーバ装置200におけるS2001のステップは、実施形態の場合と完全に同一である。
2つのサーバ装置200は、特定情報を受取る。特定情報は、送受信機構、インターフェイス、入力部221、主制御部222を経て、同期情報生成部225へと送られる。2つのサーバ装置200における同期情報生成部225は、特定情報によって特定される特定ユーザ装置に含まれる2つのユーザ装置100において、それらが暗号化通信を行う際に必要となる解を同期させるために必要となる情報である同期情報を生成する(S2002)。
変形例1の通信システムの動作は、図6に示した通りであり、大まかに言えば、実施形態の場合と変わらない。特に、特定ユーザ装置におけるS1001~S1002のステップとサーバ装置200におけるS2001のステップは、実施形態の場合と完全に同一である。
2つのサーバ装置200は、特定情報を受取る。特定情報は、送受信機構、インターフェイス、入力部221、主制御部222を経て、同期情報生成部225へと送られる。2つのサーバ装置200における同期情報生成部225は、特定情報によって特定される特定ユーザ装置に含まれる2つのユーザ装置100において、それらが暗号化通信を行う際に必要となる解を同期させるために必要となる情報である同期情報を生成する(S2002)。
変形例1の場合も、実施形態の場合と同様に、サーバ装置200に送られてきた特定情報で特定される2つのユーザ装置100のうちの双方で生成することができる2つの解を、サーバ装置解生成部223が生成する。
サーバ装置解生成部223が2つの解を生成するのは、実施形態の場合と同様に、同期情報生成部225が特定情報とともに、解を生成せよとの指示をサーバ装置解生成部223に送ったときである。
変形例1におけるサーバ装置解生成部223は、特定情報に含まれる2つのIPアドレスにそれぞれ紐付けられた真初期解又は解を呼び出す。上述したように、実施形態におけるサーバ装置解生成部223は、少なくとも初めて解を生成するとき、サーバ装置解記録部224に記録されている真初期解のデータを読み出す。もっとも、変形例1のサーバ装置200におけるサーバ装置解記録部224には、真初期解に加えて、その真初期解を用いて過去に幾つの解を生成したか、という情報が記録されている。サーバ装置解生成部223は、真初期解のデータと、その真初期解に基いて過去に幾つの解を生成したかという情報とをサーバ装置解記録部224から読み出す。
サーバ装置解生成部223が2つの解を生成するのは、実施形態の場合と同様に、同期情報生成部225が特定情報とともに、解を生成せよとの指示をサーバ装置解生成部223に送ったときである。
変形例1におけるサーバ装置解生成部223は、特定情報に含まれる2つのIPアドレスにそれぞれ紐付けられた真初期解又は解を呼び出す。上述したように、実施形態におけるサーバ装置解生成部223は、少なくとも初めて解を生成するとき、サーバ装置解記録部224に記録されている真初期解のデータを読み出す。もっとも、変形例1のサーバ装置200におけるサーバ装置解記録部224には、真初期解に加えて、その真初期解を用いて過去に幾つの解を生成したか、という情報が記録されている。サーバ装置解生成部223は、真初期解のデータと、その真初期解に基いて過去に幾つの解を生成したかという情報とをサーバ装置解記録部224から読み出す。
変形例1のサーバ装置解生成部223が解を生成する場合において、例えば、サーバ装置解生成部223は過去に3つの解を生成したとする。そうすると、サーバ装置解生成部223は、サーバ装置解記録部224から、真初期解と、過去に生成した解の数である3という数字を読み出す。サーバ装置解生成部223は、上述の数式(a)を用いて、真初期解((X0)、(X-1))から1番目の解(X1)を生成し、1番目の解を用いて(より正確には、(X1)、(X0)を用いて)2番目の解を生成し、それを繰り返して、4番目の解(X4)を生成する。そして、サーバ装置解生成部223は、サーバ装置解記録部224に記録されていた過去に生成した解の数を1増やし「4」とする。これにより、次にサーバ装置解生成部223で生成される解は、5番目の解である(X5)になる。
サーバ装置解生成部223は、実施形態の場合と同様に、特定情報で特定される2つのユーザ装置100のための2つの解を生成し、それを同期情報生成部225へと送る。
他方、実施形態の場合と同様に、同期情報生成部225からの求めにより、基礎情報生成部228は基礎情報を生成して、それを同期情報生成部225に送る。
同期情報生成部225は、サーバ装置解生成部223から受付けた2つの解と、基礎情報生成部228から受付けた基礎情報とに基づいて、2つの同期情報を生成する。その方法は、実施形態の場合と同じでよく、変形例1ではそうされている。
サーバ装置解生成部223は、実施形態の場合と同様に、特定情報で特定される2つのユーザ装置100のための2つの解を生成し、それを同期情報生成部225へと送る。
他方、実施形態の場合と同様に、同期情報生成部225からの求めにより、基礎情報生成部228は基礎情報を生成して、それを同期情報生成部225に送る。
同期情報生成部225は、サーバ装置解生成部223から受付けた2つの解と、基礎情報生成部228から受付けた基礎情報とに基づいて、2つの同期情報を生成する。その方法は、実施形態の場合と同じでよく、変形例1ではそうされている。
実施形態の場合と同様に、同期情報は、特定ユーザ装置である2つのユーザ装置100に対して送られる(S2003)。
特定ユーザ装置である2つのユーザ装置100には、2つのサーバ装置200から、それぞれ同期情報が送られることになる。
特定ユーザ装置である2つのユーザ装置100には、2つのサーバ装置200から、それぞれ同期情報が送られることになる。
同期情報を受取った2つのユーザ装置において、同期情報は、実施形態の場合と同様に、ユーザ初期解生成部125に送られる。
2つのユーザ装置100におけるユーザ初期解生成部125は、実施形態の場合と同様に、同期情報に付されていた2つのサーバ識別子をユーザ解生成部123へと送る。
それを受取ったユーザ解生成部123は、ユーザ解記録部124に記録されている真初期解(或いは解)のうち、受取った2つのサーバ識別子と紐付けられていたものを読み出す。読み出される2つの真初期解(或いは解)は、ユーザ装置100に送られてきた同期情報を生成する場合に、サーバ装置200で使用されたものと同じである。読み出されるのが真初期解ではなく幾つか目に生成された解である場合には、サーバ解記録部224に記録されていたのと同様にユーザ解記録部124に記録されている、真初期解に基いて過去に幾つの解を生成したかという情報をユーザ解生成部123は読み出す。
ユーザ解生成部123、読みだしたそれら情報を用いて、新しい解を生成する。解の生成方法は、サーバ装置解生成部223における解の生成方法と同じである。新しい解を生成するために用いられる真初期解又は解は、ユーザ装置100に送られてきた同期情報をサーバ装置200が生成したときにおいて、サーバ装置解生成部223が解を生成する際に用いられた真初期解又は解と同じであり、また、それらに基づいて解を生成する方法もサーバ装置解生成部223で解を生成するときに用いられた方法と同じである。したがって、ユーザ解生成部123は、同期情報を送ってきたサーバ装置解生成部223で生成された解と同じ解を生成することになる。
ユーザ解生成部123は、同期情報を送ってきた2つのサーバ装置200で生成された解のそれぞれと同じ2つの解を生成する。
ユーザ解生成部123は、それら2つの解をユーザ初期解生成部125へと送る。
2つのユーザ装置100におけるユーザ初期解生成部125は、実施形態の場合と同様に、同期情報に付されていた2つのサーバ識別子をユーザ解生成部123へと送る。
それを受取ったユーザ解生成部123は、ユーザ解記録部124に記録されている真初期解(或いは解)のうち、受取った2つのサーバ識別子と紐付けられていたものを読み出す。読み出される2つの真初期解(或いは解)は、ユーザ装置100に送られてきた同期情報を生成する場合に、サーバ装置200で使用されたものと同じである。読み出されるのが真初期解ではなく幾つか目に生成された解である場合には、サーバ解記録部224に記録されていたのと同様にユーザ解記録部124に記録されている、真初期解に基いて過去に幾つの解を生成したかという情報をユーザ解生成部123は読み出す。
ユーザ解生成部123、読みだしたそれら情報を用いて、新しい解を生成する。解の生成方法は、サーバ装置解生成部223における解の生成方法と同じである。新しい解を生成するために用いられる真初期解又は解は、ユーザ装置100に送られてきた同期情報をサーバ装置200が生成したときにおいて、サーバ装置解生成部223が解を生成する際に用いられた真初期解又は解と同じであり、また、それらに基づいて解を生成する方法もサーバ装置解生成部223で解を生成するときに用いられた方法と同じである。したがって、ユーザ解生成部123は、同期情報を送ってきたサーバ装置解生成部223で生成された解と同じ解を生成することになる。
ユーザ解生成部123は、同期情報を送ってきた2つのサーバ装置200で生成された解のそれぞれと同じ2つの解を生成する。
ユーザ解生成部123は、それら2つの解をユーザ初期解生成部125へと送る。
そこから先の処理は実施形態と同じである。
ユーザ初期解生成部125は先に受取っていた2つの同期情報と、2つの解を用いて、所定の演算を行うことにより、2つの同期情報から、2つのサーバ装置200のそれぞれで生成された基礎情報を生成する。そして、ユーザ初期解生成部125は、2つのサーバ装置200のそれぞれで生成された基礎情報に予め定められた演算を行うことによって、初期解を生成する。
特定ユーザ装置である2つのユーザ装置100で生成される初期解は、実施形態の場合と同じく、同じものとなる。それにより、特定ユーザ装置である2つのユーザ装置100で同じ初期解が共有されることになる。
ユーザ初期解生成部125は先に受取っていた2つの同期情報と、2つの解を用いて、所定の演算を行うことにより、2つの同期情報から、2つのサーバ装置200のそれぞれで生成された基礎情報を生成する。そして、ユーザ初期解生成部125は、2つのサーバ装置200のそれぞれで生成された基礎情報に予め定められた演算を行うことによって、初期解を生成する。
特定ユーザ装置である2つのユーザ装置100で生成される初期解は、実施形態の場合と同じく、同じものとなる。それにより、特定ユーザ装置である2つのユーザ装置100で同じ初期解が共有されることになる。
以後の処理は、完全に実施形態の場合と同じでも良い。つまり、特定ユーザ装置である2つのユーザ装置において行われる暗号化通信(S1005)を実現するために必要とされる連続して、しかも同期して解を発生させるための処理は、トークン等でいう時間同期によってそれが実現されても構わない。
他方、変形例1では、かかる解の同期がトークン等で実現されるイベント同期により実現されるようにすることも可能であり、変形例1ではそのようにして解が生成されることとして以下の説明を行う。
他方、変形例1では、かかる解の同期がトークン等で実現されるイベント同期により実現されるようにすることも可能であり、変形例1ではそのようにして解が生成されることとして以下の説明を行う。
実施形態の場合と同様、以下の説明では、特定ユーザ装置である暗号化通信を行う2つのユーザ装置のうちの一方を、一方のユーザ装置100、その他方を、他方のユーザ装置100と称することにする。
まず、一方のユーザ装置100から他方のユーザ装置100へ暗号化データが送信される場合について説明する。
一方のユーザ装置100を扱うユーザは、ユーザ装置100の入力装置102を操作して、送信対象データを生成する。
送信対象データは一方のユーザ装置100内で、インターフェイス114から入力部121を介してユーザ暗号化復号化部126に送られる。ユーザ暗号化復号化部126で送信対象データは暗号化されるが、そのために解が用いられる。ユーザ暗号化復号化部126は、ユーザ解生成部123に解を生成させるべく、解を生成せよとの指示をユーザ解生成部123に送る。かかる指示を受取ると、ユーザ解生成部123は新たに解を生成する。
ユーザ解記録部124には、上述したように、2つの解である(X4)と(X5)とが記録されている。一方のユーザ装置100のユーザ解生成部123は、これら2つの解を読みだす。これらを上述した式(a)に代入すると、一方のユーザ装置100におけるユーザ解生成部123は、6番目の解である(X6)を生成することができる。ユーザ解生成部123は、次の解を生成するために(X4)と(X5)とをユーザ解記録部124に記録するとともに、ユーザ暗号化復号化部126に、生成した解である(X6)を送る。
ユーザ暗号化復号化部126は、この解(X6)を用いて送信対象データを暗号化する。暗号化の処理における解の用い方は実施形態の場合と同じで良い。送信対象データはユーザ暗号化復号化部126で暗号化され、暗号化データにされる。生成された暗号化データは、ユーザ暗号化復号化部126から出力部127へと送られる。
かかる暗号化データは、実施形態の場合と同様に、一方のユーザ装置100から、他方のユーザ装置100へと送られる。
まず、一方のユーザ装置100から他方のユーザ装置100へ暗号化データが送信される場合について説明する。
一方のユーザ装置100を扱うユーザは、ユーザ装置100の入力装置102を操作して、送信対象データを生成する。
送信対象データは一方のユーザ装置100内で、インターフェイス114から入力部121を介してユーザ暗号化復号化部126に送られる。ユーザ暗号化復号化部126で送信対象データは暗号化されるが、そのために解が用いられる。ユーザ暗号化復号化部126は、ユーザ解生成部123に解を生成させるべく、解を生成せよとの指示をユーザ解生成部123に送る。かかる指示を受取ると、ユーザ解生成部123は新たに解を生成する。
ユーザ解記録部124には、上述したように、2つの解である(X4)と(X5)とが記録されている。一方のユーザ装置100のユーザ解生成部123は、これら2つの解を読みだす。これらを上述した式(a)に代入すると、一方のユーザ装置100におけるユーザ解生成部123は、6番目の解である(X6)を生成することができる。ユーザ解生成部123は、次の解を生成するために(X4)と(X5)とをユーザ解記録部124に記録するとともに、ユーザ暗号化復号化部126に、生成した解である(X6)を送る。
ユーザ暗号化復号化部126は、この解(X6)を用いて送信対象データを暗号化する。暗号化の処理における解の用い方は実施形態の場合と同じで良い。送信対象データはユーザ暗号化復号化部126で暗号化され、暗号化データにされる。生成された暗号化データは、ユーザ暗号化復号化部126から出力部127へと送られる。
かかる暗号化データは、実施形態の場合と同様に、一方のユーザ装置100から、他方のユーザ装置100へと送られる。
他方のユーザ装置100は、その送受信機構でユーザ装置100から送られてきた暗号化データを受取る。暗号化データは、送受信機構から、インターフェイス114を介して入力部121へと送られ、更には、ユーザ暗号化復号化部126へ送られる。
暗号化データを受取った、他方のユーザ装置100におけるユーザ暗号化復号化部126は暗号化データを復号化する。そのために、ユーザ暗号化復号化部126は、ユーザ解生成部123が生成した解を用いる。ユーザ暗号化復号化部126は、ユーザ解生成部123に解を生成させるべく、解を生成せよとの指示をユーザ解生成部123に送る。かかる指示を受取ると、ユーザ解生成部123は新たに解を生成する。
他方のユーザ装置100におけるユーザ解生成部123が解を生成する方法は、一方のユーザ装置100のユーザ解生成部123が採用している方法と同じであり、ユーザ解生成部123がユーザ解記録部124から読み出す初期解は、一方のユーザ装置100で用いられた初期解((X4)と(X5))と共通する。それにより、他方のユーザ装置100におけるユーザ解生成部123は、一方のユーザ装置100におけるユーザ解生成部123が生成するのと同じ新たな解を生成する。つまり、2つのユーザ装置100は、同期した解を生成することになる。
新たな解は、ユーザ解生成部123からユーザ暗号化復号化部126へと送られる。ユーザ暗号化復号化部126は、ユーザ解生成部123から新たな解を受取り、それを用いて、暗号化データを復号化する。復号化の方法は、実施形態の場合と同様である。ユーザ暗号化復号化部126で、暗号化データは復号化され、元の平文の送信対象データに戻される。
暗号化データを受取った、他方のユーザ装置100におけるユーザ暗号化復号化部126は暗号化データを復号化する。そのために、ユーザ暗号化復号化部126は、ユーザ解生成部123が生成した解を用いる。ユーザ暗号化復号化部126は、ユーザ解生成部123に解を生成させるべく、解を生成せよとの指示をユーザ解生成部123に送る。かかる指示を受取ると、ユーザ解生成部123は新たに解を生成する。
他方のユーザ装置100におけるユーザ解生成部123が解を生成する方法は、一方のユーザ装置100のユーザ解生成部123が採用している方法と同じであり、ユーザ解生成部123がユーザ解記録部124から読み出す初期解は、一方のユーザ装置100で用いられた初期解((X4)と(X5))と共通する。それにより、他方のユーザ装置100におけるユーザ解生成部123は、一方のユーザ装置100におけるユーザ解生成部123が生成するのと同じ新たな解を生成する。つまり、2つのユーザ装置100は、同期した解を生成することになる。
新たな解は、ユーザ解生成部123からユーザ暗号化復号化部126へと送られる。ユーザ暗号化復号化部126は、ユーザ解生成部123から新たな解を受取り、それを用いて、暗号化データを復号化する。復号化の方法は、実施形態の場合と同様である。ユーザ暗号化復号化部126で、暗号化データは復号化され、元の平文の送信対象データに戻される。
変形例1の通信システムにおける以後の処理は、実施形態の場合と同様である。
他方のユーザ装置100から一方のユーザ装置100へ暗号化データが送信される場合には、以上の説明における一方のユーザ装置100と他方のユーザ装置100の役割が入れ替わる。
暗号化通信を行う必要がなくなったら、暗号化通信が終了する。
他方のユーザ装置100から一方のユーザ装置100へ暗号化データが送信される場合には、以上の説明における一方のユーザ装置100と他方のユーザ装置100の役割が入れ替わる。
暗号化通信を行う必要がなくなったら、暗号化通信が終了する。
なお、変形例1の通信システムでは、暗号化通信を行うS1005の過程で用いられる解は1つだけ、或いは固定であった。これに代えて、例えば共通鍵方式の暗号化通信を行うための共通鍵を次々と変更していくが如くに、暗号化或いは復号化に用いるための解を、特定ユーザ装置たる2つのユーザ装置100のユーザ解生成部123で、連続的に生成するようにすることも可能である。
上述したように、同じ直前の解(1つとは限らないが)を用いれば、2つのユーザ装置100におけるユーザ解生成部123は、同期した解を次々と生成することができる。同期された共通の解を、2つのユーザ装置100におけるユーザ解生成部123で次々と生成することによって、特定ユーザ装置たる2つのユーザ装置100は、同期された解を用いて暗号化通信を行うことができる。
新たな解を生成するタイミングとして採用しうるタイミングは、実施形態で説明した通りである。
特定ユーザ装置に含まれるユーザ装置100間で一度同期させた解を、当該特定ユーザ装置に含まれる2つのユーザ装置100間での以後の暗号化通信でも使用するか否かは、実施形態の場合と同様に自由である。
なお、実施形態では、初期解となる解を生成できない側のユーザ装置100に同期情報が送られる。もっとも、双方のユーザ装置100に同期情報を送信して、双方のユーザ装置100で自らの解を用いて同期情報から取り出した相手側のユーザ装置100でしか生成できない解のうちの任意の一方(例えば双方のユーザ装置100の間で決定したもの)を、初期解とすることも可能である。
上述したように、同じ直前の解(1つとは限らないが)を用いれば、2つのユーザ装置100におけるユーザ解生成部123は、同期した解を次々と生成することができる。同期された共通の解を、2つのユーザ装置100におけるユーザ解生成部123で次々と生成することによって、特定ユーザ装置たる2つのユーザ装置100は、同期された解を用いて暗号化通信を行うことができる。
新たな解を生成するタイミングとして採用しうるタイミングは、実施形態で説明した通りである。
特定ユーザ装置に含まれるユーザ装置100間で一度同期させた解を、当該特定ユーザ装置に含まれる2つのユーザ装置100間での以後の暗号化通信でも使用するか否かは、実施形態の場合と同様に自由である。
なお、実施形態では、初期解となる解を生成できない側のユーザ装置100に同期情報が送られる。もっとも、双方のユーザ装置100に同期情報を送信して、双方のユーザ装置100で自らの解を用いて同期情報から取り出した相手側のユーザ装置100でしか生成できない解のうちの任意の一方(例えば双方のユーザ装置100の間で決定したもの)を、初期解とすることも可能である。
<変形例2>
変形例2の通信システムについて説明する。
変形例2の通信システムは、殆ど実施形態で説明した通信システムと同じである。両者の間で異なるのは以下の点である。
以下に説明する通信システムで上述の実施形態の通信システムと異なるのは、サーバ装置200と各ユーザ装置100とにおける解の同期のさせ方、及び特定ユーザ装置たる2つのユーザ装置100間での解の同期のさせ方のみである。
他の部分においては、変形例1と実施形態の通信システムの構成には違いがなく、またその使用方法、及び動作についても違いはない。
上述の実施形態では、各サーバ装置200は、すべてのユーザ装置100を管理しており、すべてのユーザ装置100と共通した解を生成でき、また、すべてのユーザ装置100に対して同期情報(第1同期情報又は第2同期情報)を送信することができるようにされていた。それに対して、変形例2のサーバ装置200の少なくとも一部は、多数のユーザ装置100のうちの一部しか管理していない。このような状況は、例えば、ユーザ装置100がスマートフォンである場合において、携帯電話キャリアである例えばA社、D社、S社のそれぞれが、自社ユーザが所有するユーザ装置100のみを管理しているような場合に生じうる。
変形例2の通信システムについて説明する。
変形例2の通信システムは、殆ど実施形態で説明した通信システムと同じである。両者の間で異なるのは以下の点である。
以下に説明する通信システムで上述の実施形態の通信システムと異なるのは、サーバ装置200と各ユーザ装置100とにおける解の同期のさせ方、及び特定ユーザ装置たる2つのユーザ装置100間での解の同期のさせ方のみである。
他の部分においては、変形例1と実施形態の通信システムの構成には違いがなく、またその使用方法、及び動作についても違いはない。
上述の実施形態では、各サーバ装置200は、すべてのユーザ装置100を管理しており、すべてのユーザ装置100と共通した解を生成でき、また、すべてのユーザ装置100に対して同期情報(第1同期情報又は第2同期情報)を送信することができるようにされていた。それに対して、変形例2のサーバ装置200の少なくとも一部は、多数のユーザ装置100のうちの一部しか管理していない。このような状況は、例えば、ユーザ装置100がスマートフォンである場合において、携帯電話キャリアである例えばA社、D社、S社のそれぞれが、自社ユーザが所有するユーザ装置100のみを管理しているような場合に生じうる。
変形例2の通信システムに含まれるユーザ装置100は、ユーザ装置100-1~ユーザ装置100-1000の1000個であり、サーバ装置200はサーバ装置200-1~サーバ装置200-6の6つであるものとする。
各ユーザ装置100は、実施形態で説明したものとその構成は変わらないものとすることができる。サーバ装置200のうちサーバ装置200-1~サーバ装置200-4も同様である。もっとも、サーバ装置200のうち以下に説明するものはそれらの間で互いに暗号化通信を行うことが可能になっている。
各ユーザ装置100は、実施形態で説明したものとその構成は変わらないものとすることができる。サーバ装置200のうちサーバ装置200-1~サーバ装置200-4も同様である。もっとも、サーバ装置200のうち以下に説明するものはそれらの間で互いに暗号化通信を行うことが可能になっている。
これには限られないが、変形例2では、サーバ装置200-1はユーザ装置100-1~ユーザ装置100-300を上述した意味で管理するものとする。つまり、サーバ装置200-1は、ユーザ装置100-1~ユーザ装置100-300のすべてにおいて発生する解と同期した解を発生させることが可能である。また、サーバ装置200-1は、ユーザ装置100-1~ユーザ装置100-300のうちの任意の2つのユーザ装置100に対して、同期情報(第1同期情報又は第2同期情報)を提供することができるようになっている。
同様に、サーバ装置200-2はユーザ装置100-301~ユーザ装置100-600を管理し、サーバ装置200-3はユーザ装置100-601~ユーザ装置100-800を管理するようになっている。また、サーバ装置200-4はユーザ装置100-1~ユーザ装置100-1000、つまりすべてのユーザ装置100を管理するようになっている。
そして、サーバ装置200-1とサーバ装置200-2は、それらの間で暗号化通信を実現できるようになっている。かかる暗号化通信は、実施形態において特定ユーザ装置たる2つのユーザ装置100の間で実現された、同期して発生させられる解を用いて行われる暗号化通信であっても良いし、そうでなくても良い。
他方、変形例2におけるサーバ装置200-5とサーバ装置200-6は、いずれのユーザ装置100をも第1実施形態で説明した意味では管理しない。ただし、サーバ装置200-5は、サーバ装置200-1、及びサーバ装置200-3との間で暗号化通信を行えるようになっており、サーバ装置200-6はサーバ装置200-2、及びサーバ装置200-4との間で暗号化通信を行えるようになっている。サーバ装置200-5が、サーバ装置200-1又はサーバ装置200-3との間で行う暗号化通信、及びサーバ装置200-6がサーバ装置200-2又はサーバ装置200-4との間で行う暗号化通信は、実施形態において特定ユーザ装置たる2つのユーザ装置100の間で実現された、同期して発生させられる解を用いて行われる暗号化通信であっても良いし、そうでなくても良い。
同様に、サーバ装置200-2はユーザ装置100-301~ユーザ装置100-600を管理し、サーバ装置200-3はユーザ装置100-601~ユーザ装置100-800を管理するようになっている。また、サーバ装置200-4はユーザ装置100-1~ユーザ装置100-1000、つまりすべてのユーザ装置100を管理するようになっている。
そして、サーバ装置200-1とサーバ装置200-2は、それらの間で暗号化通信を実現できるようになっている。かかる暗号化通信は、実施形態において特定ユーザ装置たる2つのユーザ装置100の間で実現された、同期して発生させられる解を用いて行われる暗号化通信であっても良いし、そうでなくても良い。
他方、変形例2におけるサーバ装置200-5とサーバ装置200-6は、いずれのユーザ装置100をも第1実施形態で説明した意味では管理しない。ただし、サーバ装置200-5は、サーバ装置200-1、及びサーバ装置200-3との間で暗号化通信を行えるようになっており、サーバ装置200-6はサーバ装置200-2、及びサーバ装置200-4との間で暗号化通信を行えるようになっている。サーバ装置200-5が、サーバ装置200-1又はサーバ装置200-3との間で行う暗号化通信、及びサーバ装置200-6がサーバ装置200-2又はサーバ装置200-4との間で行う暗号化通信は、実施形態において特定ユーザ装置たる2つのユーザ装置100の間で実現された、同期して発生させられる解を用いて行われる暗号化通信であっても良いし、そうでなくても良い。
以上の説明を、図7に示す。図中の太い矢印は、矢印で結ばれたサーバ装置200同士が暗号化通信を行うことができるということを示している。なお、図7ではネットワーク400は捨象する。
以上のような通信システムにおいては、もちろん、共通するサーバ装置200に管理されている任意の2つのユーザ装置100同士であって、特定ユーザ装置をなすものは、それらを共通して管理するサーバ装置200の下で、当該サーバ装置200から供給される同期情報(第1同期情報又は第2同期情報)を得ることができる。
つまり、ユーザ装置100-1~ユーザ装置100-300は、サーバ装置200-1から共通する同期情報を得ることができ、ユーザ装置100-301~ユーザ装置100-600は、サーバ装置200-2から共通する同期情報を得ることができ、ユーザ装置100-601~ユーザ装置100-800は、サーバ装置200-3から共通する同期情報を得ることができ、また、ユーザ装置100-1~ユーザ装置100-1000、つまりすべてのユーザ装置100は、サーバ装置200-4から同期情報を得ることができる。
以上のような通信システムにおいては、もちろん、共通するサーバ装置200に管理されている任意の2つのユーザ装置100同士であって、特定ユーザ装置をなすものは、それらを共通して管理するサーバ装置200の下で、当該サーバ装置200から供給される同期情報(第1同期情報又は第2同期情報)を得ることができる。
つまり、ユーザ装置100-1~ユーザ装置100-300は、サーバ装置200-1から共通する同期情報を得ることができ、ユーザ装置100-301~ユーザ装置100-600は、サーバ装置200-2から共通する同期情報を得ることができ、ユーザ装置100-601~ユーザ装置100-800は、サーバ装置200-3から共通する同期情報を得ることができ、また、ユーザ装置100-1~ユーザ装置100-1000、つまりすべてのユーザ装置100は、サーバ装置200-4から同期情報を得ることができる。
例えば、ユーザ装置100-1と、ユーザ装置100-2とが、同期して発生させられる解を用いての暗号化通信を実行するために、共通する初期解を必要とする状況が生じたとする。その場合、特定ユーザ装置であるユーザ装置100-1と、ユーザ装置100-2とは、上述した実施形態で説明したように、共通する2つの同期情報である第1同期情報と第2同期情報の提供を2つのサーバ装置200のそれぞれから受けることが必要となる。
その場合、ユーザ装置100-1とユーザ装置100-2は、それらを共通して管理するサーバ装置200-1と、サーバ装置200-4とに特定情報を送信することにより、サーバ装置200-1と、サーバ装置200-4の一方から第1同期情報を、サーバ装置200-1と、サーバ装置200-4の他方から第2同期情報をそれぞれ受取ることができる。第1同期情報と第2同期情報の生成方法、受取り方は、実施形態で説明した通りである。
それにより、ユーザ装置100-1とユーザ装置100-2とは、それぞれが受取った第1同期情報と第2情報に対して例えば、排他的論理和の演算を行うことによって、共通する初期解を得ることができる。
この初期解を用いて、ユーザ装置100-1とユーザ装置100-2とは、同期して発生させられる解を用いての暗号化通信を実行することができる。
この場合は、上述の第1実施形態の場合と同じである。サーバ装置200-1とサーバ装置200-4の管理者は、それらの管理者が共謀しない限り、ユーザ装置100-1とユーザ装置100-2とが用いる初期解を知ることができない。
その場合、ユーザ装置100-1とユーザ装置100-2は、それらを共通して管理するサーバ装置200-1と、サーバ装置200-4とに特定情報を送信することにより、サーバ装置200-1と、サーバ装置200-4の一方から第1同期情報を、サーバ装置200-1と、サーバ装置200-4の他方から第2同期情報をそれぞれ受取ることができる。第1同期情報と第2同期情報の生成方法、受取り方は、実施形態で説明した通りである。
それにより、ユーザ装置100-1とユーザ装置100-2とは、それぞれが受取った第1同期情報と第2情報に対して例えば、排他的論理和の演算を行うことによって、共通する初期解を得ることができる。
この初期解を用いて、ユーザ装置100-1とユーザ装置100-2とは、同期して発生させられる解を用いての暗号化通信を実行することができる。
この場合は、上述の第1実施形態の場合と同じである。サーバ装置200-1とサーバ装置200-4の管理者は、それらの管理者が共謀しない限り、ユーザ装置100-1とユーザ装置100-2とが用いる初期解を知ることができない。
これに対して、例えば、ユーザ装置100-1と、ユーザ装置100-400とが、同期して発生させられる解を用いての暗号化通信を実行するために、共通する初期解を必要とする状況が生じたとする。その場合、特定ユーザ装置であるユーザ装置100-1と、ユーザ装置100-400とは、共通する2つの同期情報である第1同期情報と第2同期情報の提供を2つのサーバ装置200のそれぞれから受けることが必要となる。
ユーザ装置100-1とユーザ装置100-400とを共通して管理するサーバ装置200としては、サーバ装置200-4が存在する。したがって、ユーザ装置100-1と、ユーザ装置100-400とは、それらのどちらかがサーバ装置200-4に特定情報を送ることにより、サーバ装置200-4から、第1同期情報と第2同期情報の一方を得ることができる。しかしながら、ユーザ装置100-1とユーザ装置100-400の双方を管理するサーバ装置200が他に無いため、ユーザ装置100-1及びユーザ装置100-400は、どのサーバ装置200から第1同期情報と第2同期情報の他方の提供を受けるかが問題となる。
ユーザ装置100-1とユーザ装置100-400とを共通して管理するサーバ装置200としては、サーバ装置200-4が存在する。したがって、ユーザ装置100-1と、ユーザ装置100-400とは、それらのどちらかがサーバ装置200-4に特定情報を送ることにより、サーバ装置200-4から、第1同期情報と第2同期情報の一方を得ることができる。しかしながら、ユーザ装置100-1とユーザ装置100-400の双方を管理するサーバ装置200が他に無いため、ユーザ装置100-1及びユーザ装置100-400は、どのサーバ装置200から第1同期情報と第2同期情報の他方の提供を受けるかが問題となる。
変形例2では、この問題を次のように解決する。
例えば、ユーザ装置100-1は、自己を管理するサーバ装置200-1に特定情報を送る。この場合、サーバ装置200-1は、ユーザ装置100-1を管理しているものの、特定情報によって特定されるもう1つのユーザ装置100-400を管理していないため、特定情報によって特定されるユーザ装置100-400を管理しているサーバ装置200であって、自己が暗号化通信を実行することのできるサーバ装置200を探す。例えば、サーバ装置200-1は、各サーバ装置200に対して、ユーザ装置100-400を管理しているか否かの問い合わせを出す。そして、サーバ装置200-1は、ユーザ装置100-400を管理しているサーバ装置200として、サーバ装置200-2を見出す。
サーバ装置200-1とサーバ装置200-2の一方が、第1同期情報と第2同期情報の他方を生成する。そして、サーバ装置200-1とサーバ装置200-2の同期情報を生成したものが、サーバ装置200-1とサーバ装置200-2の同期情報を生成しなかったものに、暗号化した状態で第1同期情報と第2同期情報との他方を送る。暗号化された状態の第1同期情報と第2同期情報との他方を受取ったサーバ装置200-1又はサーバ装置200-2は、第1同期情報と第2同期情報の他方を平文に戻す。この状態で、第1同期情報と第2同期情報の他方は、サーバ装置200-1とサーバ装置200-2との間で共有された。
次いで、サーバ装置200-1は、解の同期ができていることにより暗号化通信を行うことができるユーザ装置100-1に、暗号化した第1同期情報と第2同期情報の他方を送り、サーバ装置200-2は、解の同期ができていることにより暗号化通信を行うことができるユーザ装置100-400に、暗号化した第1同期情報と第2同期情報の他方を送る。ユーザ装置100-1とユーザ装置100-400は、暗号化された第1同期情報と第2同期情報の他方を復号化する。それにより、ユーザ装置100-1とユーザ装置100-400は、共通の第1同期情報と第2同期情報の他方を持ち合った状態となる。
これにて、ユーザ装置100-1とユーザ装置100-400とは、共通の第1同期情報と第2同期情報とを持ち合った状態となる。それにより、ユーザ装置100-1とユーザ装置100-400とは、それぞれが受取った第1同期情報と第2情報に対して例えば、排他的論理和の演算を行うことによって、共通する初期解を得ることができる。
この初期解を用いて、ユーザ装置100-1とユーザ装置100-400とは、同期して発生させられる解を用いての暗号化通信を実行することができる。
この例では、サーバ装置200-4は、第1同期情報と第2同期情報の一方しか把握することができず、サーバ装置200-1とサーバ装置200-2とは第1同期情報と第2同期情報の他方しか把握することができない。したがって、サーバ装置200-1又はサーバ装置200-2の管理者と、サーバ装置200-4の管理者とが共謀しない限り、ユーザ装置100-1とユーザ装置100-400とが用いる初期解を知ることができない。
例えば、ユーザ装置100-1は、自己を管理するサーバ装置200-1に特定情報を送る。この場合、サーバ装置200-1は、ユーザ装置100-1を管理しているものの、特定情報によって特定されるもう1つのユーザ装置100-400を管理していないため、特定情報によって特定されるユーザ装置100-400を管理しているサーバ装置200であって、自己が暗号化通信を実行することのできるサーバ装置200を探す。例えば、サーバ装置200-1は、各サーバ装置200に対して、ユーザ装置100-400を管理しているか否かの問い合わせを出す。そして、サーバ装置200-1は、ユーザ装置100-400を管理しているサーバ装置200として、サーバ装置200-2を見出す。
サーバ装置200-1とサーバ装置200-2の一方が、第1同期情報と第2同期情報の他方を生成する。そして、サーバ装置200-1とサーバ装置200-2の同期情報を生成したものが、サーバ装置200-1とサーバ装置200-2の同期情報を生成しなかったものに、暗号化した状態で第1同期情報と第2同期情報との他方を送る。暗号化された状態の第1同期情報と第2同期情報との他方を受取ったサーバ装置200-1又はサーバ装置200-2は、第1同期情報と第2同期情報の他方を平文に戻す。この状態で、第1同期情報と第2同期情報の他方は、サーバ装置200-1とサーバ装置200-2との間で共有された。
次いで、サーバ装置200-1は、解の同期ができていることにより暗号化通信を行うことができるユーザ装置100-1に、暗号化した第1同期情報と第2同期情報の他方を送り、サーバ装置200-2は、解の同期ができていることにより暗号化通信を行うことができるユーザ装置100-400に、暗号化した第1同期情報と第2同期情報の他方を送る。ユーザ装置100-1とユーザ装置100-400は、暗号化された第1同期情報と第2同期情報の他方を復号化する。それにより、ユーザ装置100-1とユーザ装置100-400は、共通の第1同期情報と第2同期情報の他方を持ち合った状態となる。
これにて、ユーザ装置100-1とユーザ装置100-400とは、共通の第1同期情報と第2同期情報とを持ち合った状態となる。それにより、ユーザ装置100-1とユーザ装置100-400とは、それぞれが受取った第1同期情報と第2情報に対して例えば、排他的論理和の演算を行うことによって、共通する初期解を得ることができる。
この初期解を用いて、ユーザ装置100-1とユーザ装置100-400とは、同期して発生させられる解を用いての暗号化通信を実行することができる。
この例では、サーバ装置200-4は、第1同期情報と第2同期情報の一方しか把握することができず、サーバ装置200-1とサーバ装置200-2とは第1同期情報と第2同期情報の他方しか把握することができない。したがって、サーバ装置200-1又はサーバ装置200-2の管理者と、サーバ装置200-4の管理者とが共謀しない限り、ユーザ装置100-1とユーザ装置100-400とが用いる初期解を知ることができない。
このように、特定ユーザ装置としての2つのユーザ装置100をそれぞれ管理する2つのサーバ装置200であって、互いに暗号化通信を行うことが可能なもの同士が協働して1つのサーバ装置200が実行するべき処理を実行することにより、それら2つのサーバ装置200が管理しているユーザ装置100に対して、第1同期情報と第2同期情報の少なくとも一方を提供することが可能となる。
もちろん、互いに暗号化通信を行うことが可能な3つ以上のサーバ装置200に、それらの協働により、1つのサーバ装置200が実行するべき処理を実行させるようにすることも可能である。
もちろん、互いに暗号化通信を行うことが可能な3つ以上のサーバ装置200に、それらの協働により、1つのサーバ装置200が実行するべき処理を実行させるようにすることも可能である。
たとえば、ユーザ装置100-1とユーザ装置100-800とが、同期して発生させられる解を用いての暗号化通信を実行するために、共通する初期解を必要とする状況が生じたとする。その場合、特定ユーザ装置であるユーザ装置100-1と、ユーザ装置100-800とは、共通する2つの同期情報である第1同期情報と第2同期情報の提供を2つのサーバ装置200のそれぞれから受けることが必要となる。
ユーザ装置100-1とユーザ装置100-400とを共通して管理するサーバ装置200としては、サーバ装置200-4が存在する。したがって、ユーザ装置100-1と、ユーザ装置100-400とは、それらのどちらかが、サーバ装置200-4に特定情報を送ることにより、サーバ装置200-4から、第1同期情報と第2同期情報の一方を得ることができる。しかしながら、ユーザ装置100-1とユーザ装置100-800の双方を管理するサーバ装置200が他に無いため、ユーザ装置100-1及びユーザ装置100-400は、どのサーバ装置200から第1同期情報と第2同期情報の他方の提供を受けるかが問題となる。
ユーザ装置100-1とユーザ装置100-400とを共通して管理するサーバ装置200としては、サーバ装置200-4が存在する。したがって、ユーザ装置100-1と、ユーザ装置100-400とは、それらのどちらかが、サーバ装置200-4に特定情報を送ることにより、サーバ装置200-4から、第1同期情報と第2同期情報の一方を得ることができる。しかしながら、ユーザ装置100-1とユーザ装置100-800の双方を管理するサーバ装置200が他に無いため、ユーザ装置100-1及びユーザ装置100-400は、どのサーバ装置200から第1同期情報と第2同期情報の他方の提供を受けるかが問題となる。
この問題は次のようにして解決される。
例えば、ユーザ装置100-1は、自己を管理するサーバ装置200-1に特定情報を送る。この場合、サーバ装置200-1は、ユーザ装置100-1を管理しているものの、特定情報によって特定されるもう1つのユーザ装置100-800を管理していないため、特定情報によって特定されるユーザ装置100-800を管理しているサーバ装置200であって、自己が暗号化通信を実行することのできるサーバ装置200を探す。しかしながら、そのようなサーバ装置200は存在しない。そこで、サーバ装置200-1は、自己が暗号化通信を実行することのできるサーバ装置200であって、ユーザ装置100-800を管理しているサーバ装置200であるサーバ装置200-3と暗号化通信を行うことのできるサーバ装置200を探す。例えば、サーバ装置200-1は、自己が暗号化通信を行える各サーバ装置200に対して、ユーザ装置100-800を管理しているサーバ装置200であるサーバ装置200-3と暗号化通信が可能か否かの問い合わせを出す。そして、サーバ装置200-1は、ユーザ装置100-800を管理しているサーバ装置200としてのサーバ装置200-3と暗号化通信を行うことができるサーバ装置200として、サーバ装置200-5を見出す。
平たく言えば、サーバ装置200-1は、サーバ装置200-5を介して、サーバ装置200-3と暗号化通信を行うことが可能である。
例えば、ユーザ装置100-1は、自己を管理するサーバ装置200-1に特定情報を送る。この場合、サーバ装置200-1は、ユーザ装置100-1を管理しているものの、特定情報によって特定されるもう1つのユーザ装置100-800を管理していないため、特定情報によって特定されるユーザ装置100-800を管理しているサーバ装置200であって、自己が暗号化通信を実行することのできるサーバ装置200を探す。しかしながら、そのようなサーバ装置200は存在しない。そこで、サーバ装置200-1は、自己が暗号化通信を実行することのできるサーバ装置200であって、ユーザ装置100-800を管理しているサーバ装置200であるサーバ装置200-3と暗号化通信を行うことのできるサーバ装置200を探す。例えば、サーバ装置200-1は、自己が暗号化通信を行える各サーバ装置200に対して、ユーザ装置100-800を管理しているサーバ装置200であるサーバ装置200-3と暗号化通信が可能か否かの問い合わせを出す。そして、サーバ装置200-1は、ユーザ装置100-800を管理しているサーバ装置200としてのサーバ装置200-3と暗号化通信を行うことができるサーバ装置200として、サーバ装置200-5を見出す。
平たく言えば、サーバ装置200-1は、サーバ装置200-5を介して、サーバ装置200-3と暗号化通信を行うことが可能である。
それが判明したところで、サーバ装置200-1、サーバ装置200-3、サーバ装置200-5の一つが、第1同期情報と第2同期情報の他方を生成する。そして、サーバ装置200-1、サーバ装置200-3、サーバ装置200-5は、それらのうちの互いに暗号化通信を行うことができるもの同士が暗号化通信を行うことによって、第1同期情報と第2同期情報の他方を共有する。
それにより、第1同期情報と第2同期情報の他方は、サーバ装置200-1とサーバ装置200-3で共有されることになる。
次いで、サーバ装置200-1は、解の同期ができていることにより暗号化通信を行うことができるユーザ装置100-1に、暗号化した第1同期情報と第2同期情報の他方を送り、サーバ装置200-3は、解の同期ができていることにより暗号化通信を行うことができるユーザ装置100-800に、暗号化した第1同期情報と第2同期情報の他方を送る。ユーザ装置100-1とユーザ装置100-800は、暗号化された第1同期情報と第2同期情報の他方を復号化する。それにより、ユーザ装置100-1とユーザ装置100-800は、共通の第1同期情報と第2同期情報の他方を持ち合った状態となる。
これにて、ユーザ装置100-1とユーザ装置100-800とは、共通の第1同期情報と第2同期情報とを持ち合った状態となる。それにより、ユーザ装置100-1とユーザ装置100-800とは、それぞれが受取った第1同期情報と第2情報に対して例えば、排他的論理和の演算を行うことによって、共通する初期解を得ることができる。
この初期解を用いて、ユーザ装置100-1とユーザ装置100-800とは、同期して発生させられる解を用いての暗号化通信を実行することができる。
この例では、サーバ装置200-4は、第1同期情報と第2同期情報の一方しか把握することができず、サーバ装置200-1、サーバ装置200-3、サーバ装置200-5は第1同期情報と第2同期情報の他方しか把握することができない。したがって、同期情報の供給にかかわった4つのサーバ装置200の管理者のすべては、サーバ装置200-1、サーバ装置200-3、サーバ装置200-5のいずれかの管理者と、サーバ装置200-4の管理者とが共謀しない限り、ユーザ装置100-1とユーザ装置100-800とが用いる初期解を知ることができない。
それにより、第1同期情報と第2同期情報の他方は、サーバ装置200-1とサーバ装置200-3で共有されることになる。
次いで、サーバ装置200-1は、解の同期ができていることにより暗号化通信を行うことができるユーザ装置100-1に、暗号化した第1同期情報と第2同期情報の他方を送り、サーバ装置200-3は、解の同期ができていることにより暗号化通信を行うことができるユーザ装置100-800に、暗号化した第1同期情報と第2同期情報の他方を送る。ユーザ装置100-1とユーザ装置100-800は、暗号化された第1同期情報と第2同期情報の他方を復号化する。それにより、ユーザ装置100-1とユーザ装置100-800は、共通の第1同期情報と第2同期情報の他方を持ち合った状態となる。
これにて、ユーザ装置100-1とユーザ装置100-800とは、共通の第1同期情報と第2同期情報とを持ち合った状態となる。それにより、ユーザ装置100-1とユーザ装置100-800とは、それぞれが受取った第1同期情報と第2情報に対して例えば、排他的論理和の演算を行うことによって、共通する初期解を得ることができる。
この初期解を用いて、ユーザ装置100-1とユーザ装置100-800とは、同期して発生させられる解を用いての暗号化通信を実行することができる。
この例では、サーバ装置200-4は、第1同期情報と第2同期情報の一方しか把握することができず、サーバ装置200-1、サーバ装置200-3、サーバ装置200-5は第1同期情報と第2同期情報の他方しか把握することができない。したがって、同期情報の供給にかかわった4つのサーバ装置200の管理者のすべては、サーバ装置200-1、サーバ装置200-3、サーバ装置200-5のいずれかの管理者と、サーバ装置200-4の管理者とが共謀しない限り、ユーザ装置100-1とユーザ装置100-800とが用いる初期解を知ることができない。
このように、特定ユーザ装置としての2つのユーザ装置100に対して、協働する3つ以上のサーバ装置200に1つのサーバ装置200としての処理を事項させることにより、第1同期情報又は第2同期情報(或いはその双方)を配布することが可能である。
ただし、第1同期情報と第2同期情報の一方の供給にかかわるサーバ装置200と、第1同期情報と第2同期情報の他方の供給にかかわるサーバ装置200には重複がないことが必要である。かかる重複があると、第1同期情報と第2同期情報の双方を把握することができる、ひいては、特定ユーザ装置で用いられる初期解を把握することのできるサーバ装置200が存在することとなる可能性があるからである。
ただし、第1同期情報と第2同期情報の一方の供給にかかわるサーバ装置200と、第1同期情報と第2同期情報の他方の供給にかかわるサーバ装置200には重複がないことが必要である。かかる重複があると、第1同期情報と第2同期情報の双方を把握することができる、ひいては、特定ユーザ装置で用いられる初期解を把握することのできるサーバ装置200が存在することとなる可能性があるからである。
Claims (6)
- ネットワークを介して互いに通信可能とされた、3つ以上のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続された2つ以上のサーバ装置と、を含んでなる通信システムを、2つ以上の前記サーバ装置との組合せによって構成するユーザ装置であり、
初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成部と、
送信の対象となる送信対象データを、前記ユーザ解生成部で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化部と、
前記ネットワークを介しての送受信を行うユーザ送受信部と、
前記ユーザ送受信部で受信した前記暗号化データを、前記ユーザ解生成部で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化部と、
を有しているとともに、
暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成部でそれぞれ生成することにより、相手方の前記ユーザ暗号化部で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送受信部から送られてきて自らの前記ユーザ送受信部により受取ったものを、自らの前記ユーザ復号化部によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっている場合において、
前記特定ユーザ装置にて実行される方法であって、
前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの1つである第1サーバ装置へ送信するとともに、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの他の1つである第2サーバ装置へ送信する第1過程と、
前記特定情報を受付けた前記第1サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である前記サーバ装置ごとにユニークな同期情報である第1同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付ける第2過程と、
前記特定情報を受付けた前記第2サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記同期情報である第2同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付ける第3過程と、
前記ユーザ装置のそれぞれが、前記第1同期情報と前記第2同期情報とを用いて予め定めた所定の演算を行うことにより共通の前記初期解を得る第4過程と、
を含む、方法。 - 前記サーバ装置は、前記ユーザ装置のそれぞれにおいて異なる前記ユーザ装置における前記初期解と同一の前記初期解に基づいて、前記ユーザ装置のそれぞれが持つ前記ユーザ解生成部で生成される前記解と同じ、前記ユーザ装置のそれぞれの前記ユーザ解生成部で生成されるものと同期された前記解を生成することができるサーバ装置解生成部と、前記サーバ装置毎にユニークな情報である基礎情報を連続して生成する基礎情報生成部と、前記基礎情報生成部で生成された前記基礎情報と前記サーバ装置解生成部で生成された前記解とを用いて可逆的な演算を行うサーバ装置演算部とを備えており、
前記第2過程では、
前記特定情報を受付けた前記第1サーバ装置が、当該第1サーバ装置の前記基礎情報生成部で生成した前記基礎情報と、当該第1サーバ装置の前記サーバ装置解生成部で生成した前記特定ユーザ装置の一方の前記ユーザ解生成部で生成可能な前記解とを用いて、当該第1サーバ装置の前記サーバ装置演算部で演算することによって前記第1同期情報を生成し、前記特定情報によって特定される前記特定ユーザ装置の一方に送信した前記第1同期情報を、前記特定ユーザ装置の一方がその前記ユーザ送受信部で受付けるとともに、
前記特定情報を受付けた前記第1サーバ装置が、当該第1サーバ装置の前記基礎情報生成部で生成した前記基礎情報と、当該第1サーバ装置の前記サーバ装置解生成部で生成した前記特定ユーザ装置の他方の前記ユーザ解生成部で生成可能な前記解とを用いて、当該第1サーバ装置の前記サーバ装置演算部で演算することによって前記第1同期情報を生成し、前記特定情報によって特定される前記特定ユーザ装置の一方に送信した前記特定ユーザ装置の一方に送られたものとは異なる前記第1同期情報を、前記特定ユーザ装置の他方がその前記ユーザ送受信部で受付け、
前記第3過程では、
前記特定情報を受付けた前記第2サーバ装置が、当該第2サーバ装置の前記基礎情報生成部で生成した前記基礎情報と、当該第2サーバ装置の前記サーバ装置解生成部で生成した前記特定ユーザ装置の一方の前記ユーザ解生成部で生成可能な前記解とを用いて、当該第2サーバ装置の前記サーバ装置演算部で演算することによって前記第2同期情報を生成し、前記特定情報によって特定される前記特定ユーザ装置の一方に送信した前記第2同期情報を、前記特定ユーザ装置の一方がその前記ユーザ送受信部で受付けるとともに、
前記特定情報を受付けた前記第2サーバ装置が、当該第2サーバ装置の前記基礎情報生成部で生成した前記基礎情報と、当該第2サーバ装置の前記サーバ装置解生成部で生成した前記特定ユーザ装置の他方の前記ユーザ解生成部で生成可能な前記解とを用いて、当該第2サーバ装置の前記サーバ装置演算部で演算することによって前記第2同期情報を生成し、前記特定情報によって特定される前記特定ユーザ装置の一方に送信した前記特定ユーザ装置の一方に送られたものとは異なる前記第2同期情報を、前記特定ユーザ装置の他方がその前記ユーザ送受信部で受付け、
前記第4過程では、
前記特定ユーザ装置の一方が、
前記第1サーバ装置から受付けた前記第1同期情報に対して、そのユーザ解生成部で生成された、当該第1同期情報を生成する際に前記第1サーバ装置で生成されたのと同じ前記解を用いて、前記第1サーバ装置の前記サーバ装置演算部で行われた演算の逆演算を行うことにより前記第1サーバ装置で前記第1同期情報を生成する際に生成された前記基礎情報を取り出すとともに、前記第2サーバ装置から受付けた前記第2同期情報に対して、そのユーザ解生成部で生成された、当該第2同期情報を生成する際に前記第2サーバ装置で生成されたのと同じ前記解を用いて、前記第2サーバ装置の前記サーバ装置演算部で行われた演算の逆演算を行うことにより前記第2サーバ装置で前記第2同期情報を生成する際に生成された前記基礎情報を取り出し、
前記特定ユーザ装置の他方が、
前記第1サーバ装置から受付けた前記第1同期情報に対して、そのユーザ解生成部で生成された、当該第1同期情報を生成する際に前記第1サーバ装置で生成されたのと同じ前記解を用いて、前記第1サーバ装置の前記サーバ装置演算部で行われた演算の逆演算を行うことにより前記第1サーバ装置で前記第1同期情報を生成する際に生成された前記基礎情報を取り出すとともに、前記第2サーバ装置から受付けた前記第2同期情報に対して、そのユーザ解生成部で生成された、当該第2同期情報を生成する際に前記第2サーバ装置で生成されたのと同じ前記解を用いて、前記第2サーバ装置の前記サーバ装置演算部で行われた演算の逆演算を行うことにより前記第2サーバ装置で前記第2同期情報を生成する際に生成された前記基礎情報を取り出し、
そして、前記特定ユーザ装置の双方が、前記第1サーバ装置と前記第2サーバ装置がそれぞれ生成した、2つの共通の前記基礎情報に対して予め定めた所定の演算を行うことにより共通の前記初期解を得る、
請求項1記載の方法。 - 前記サーバ装置演算部で行われる演算が、前記基礎情報と前記解の排他的論理和を取ることである、
請求項2記載の方法。 - 前記ユーザ解生成部で生成される解と、前記サーバ装置解生成部で生成される解とが常に、前記基礎情報生成部で生成される基礎情報と同じかそれより大きな情報量を持つ、
請求項2又は3のいずれかに記載の方法。 - ネットワークを介して互いに通信可能とされた、3つ以上のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続された2つ以上のサーバ装置と、を含んでなる通信システムを、2つ以上の前記サーバ装置との組合せによって構成するユーザ装置であり、
初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成部と、
送信の対象となる送信対象データを、前記ユーザ解生成部で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化部と、
前記ネットワークを介しての送受信を行うユーザ送受信部と、
前記ユーザ送受信部で受信した前記暗号化データを、前記ユーザ解生成部で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化部と、
を有しているとともに、
暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成部でそれぞれ生成することにより、相手方の前記ユーザ暗号化部で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送受信部から送られてきて自らの前記ユーザ送受信部により受取ったものを、自らの前記ユーザ復号化部によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようになっており、
前記ユーザ装置が前記特定ユーザ装置となるとき、
前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの1つである第1サーバ装置へ送信するとともに、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの他の1つである第2サーバ装置へ送信することと、
前記特定情報を受付けた前記第1サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である前記サーバ装置ごとにユニークな同期情報である第1同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付けることと、
前記特定情報を受付けた前記第2サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記同期情報である第2同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付けることと、
前記ユーザ装置のそれぞれが、前記第1同期情報と前記第2同期情報とを用いて予め定めた所定の演算を行うことにより共通の前記初期解を得ることと、
を実行するようになっている、ユーザ装置。 - ネットワークを介して互いに通信可能とされた、3つ以上のユーザ装置と、前記ユーザ装置間の通信の制御を行う前記ネットワークに接続された2つ以上のサーバ装置と、を含んでなる通信システムを、2つ以上の前記サーバ装置との組合せによって構成するユーザ装置として所定のコンピュータを機能させるためのコンピュータプログラムであって、
前記コンピュータプログラムは、前記コンピュータを、
初期解に基づいて、文字、数字、記号の少なくとも1つを所定数羅列したものである解であり、同じ条件下で生成されたものが常に同じものとなるものを連続して生成することができるユーザ解生成部と、
送信の対象となる送信対象データを、前記ユーザ解生成部で生成された前記解を用いて暗号化して暗号化データにする処理を実行するユーザ暗号化部と、
前記ネットワークを介しての送受信を行うユーザ送受信部と、
前記ユーザ送受信部で受信した前記暗号化データを、前記ユーザ解生成部で生成された前記解を用いて復号化して前記送信対象データにする処理を実行するユーザ復号化部と、
して機能させるためのものであるとともに、
暗号化通信を行おうとしている2つの前記ユーザ装置である特定ユーザ装置が共通の前記初期解を互いに有している場合には、2つの前記ユーザ装置間で同期された共通の前記解をそれらの前記ユーザ解生成部でそれぞれ生成することにより、相手方の前記ユーザ暗号化部で前記送信対象データを暗号化することにより生成された暗号化データであって、相手方の前記ユーザ送受信部から送られてきて自らの前記ユーザ送受信部により受取ったものを、自らの前記ユーザ復号化部によって復号化して前記送信対象データにすることができるようになっていることで、前記特定ユーザ装置が暗号化通信を行えるようし、
且つ、前記ユーザ装置が前記特定ユーザ装置となるとき、前記特定ユーザ装置に、
前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの1つである第1サーバ装置へ送信するとともに、前記特定ユーザ装置のいずれかが、前記特定ユーザ装置の双方を特定する情報である特定情報を前記ユーザ送受信部により前記サーバ装置のうちの他の1つである第2サーバ装置へ送信することと、
前記特定情報を受付けた前記第1サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記特定ユーザ装置が同じ前記初期解を得て前記特定ユーザ装置間で前記解を同期させるために必要な情報である前記サーバ装置ごとにユニークな同期情報である第1同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付けることと、
前記特定情報を受付けた前記第2サーバ装置が生成し、前記特定情報によって特定される前記特定ユーザ装置の双方に送信した、前記同期情報である第2同期情報を、前記特定ユーザ装置それぞれの前記ユーザ送受信部で受付けることと、
前記ユーザ装置のそれぞれが、前記第1同期情報と前記第2同期情報とを用いて予め定めた所定の演算を行うことにより共通の前記初期解を得ることと、
を実行させるためのコンピュータプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/259,670 US20240214198A1 (en) | 2021-01-04 | 2022-01-04 | User device, method, and computer program |
EP22734789.5A EP4274153A1 (en) | 2021-01-04 | 2022-01-04 | User device, method, and computer program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021-000170 | 2021-01-04 | ||
JP2021000170A JP2022105403A (ja) | 2021-01-04 | 2021-01-04 | ユーザ装置、方法、コンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022145496A1 true WO2022145496A1 (ja) | 2022-07-07 |
Family
ID=82260853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/000049 WO2022145496A1 (ja) | 2021-01-04 | 2022-01-04 | ユーザ装置、方法、コンピュータプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240214198A1 (ja) |
EP (1) | EP4274153A1 (ja) |
JP (1) | JP2022105403A (ja) |
WO (1) | WO2022145496A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017526304A (ja) * | 2014-09-04 | 2017-09-07 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 鍵共有のために設けられた暗号システム |
JP2018093417A (ja) * | 2016-12-06 | 2018-06-14 | 株式会社 エヌティーアイ | 通信システム、サーバ装置、ユーザ装置、方法、コンピュータプログラム |
-
2021
- 2021-01-04 JP JP2021000170A patent/JP2022105403A/ja active Pending
-
2022
- 2022-01-04 EP EP22734789.5A patent/EP4274153A1/en active Pending
- 2022-01-04 US US18/259,670 patent/US20240214198A1/en active Pending
- 2022-01-04 WO PCT/JP2022/000049 patent/WO2022145496A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017526304A (ja) * | 2014-09-04 | 2017-09-07 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 鍵共有のために設けられた暗号システム |
JP2018093417A (ja) * | 2016-12-06 | 2018-06-14 | 株式会社 エヌティーアイ | 通信システム、サーバ装置、ユーザ装置、方法、コンピュータプログラム |
Non-Patent Citations (1)
Title |
---|
See also references of EP4274153A1 * |
Also Published As
Publication number | Publication date |
---|---|
EP4274153A1 (en) | 2023-11-08 |
JP2022105403A (ja) | 2022-07-14 |
US20240214198A1 (en) | 2024-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Fine-grained private matching for proximity-based mobile social networking | |
US20200145208A1 (en) | Method and device for encrypting and decrypting softphone, and computer-readable storage medium | |
CN1964257A (zh) | 用于利用共享硬件生成密文和消息认证代码的方法和*** | |
CN101405759A (zh) | 用户中心私人数据管理的方法和设备 | |
CN107483432A (zh) | 文件加密处理方法及装置 | |
JP2001211156A (ja) | 共通鍵生成方法、共通鍵生成器、暗号通信方法、暗号通信システム及びプログラムを記録した記録媒体 | |
CN112889240A (zh) | 服务器装置、通信终端、通信***、以及程序 | |
CA3102933C (en) | Encryption device, a communication system and method of exchanging encrypted data in a communication network | |
WO2022145496A1 (ja) | ユーザ装置、方法、コンピュータプログラム | |
KR20040097016A (ko) | 암호화를 활용한 웹저장공간 제공 서비스 시스템 및 방법 | |
JP7158693B2 (ja) | 通信システム、サーバ装置、ユーザ装置、方法、コンピュータプログラム | |
JP2001211157A (ja) | 秘密鍵登録方法、秘密鍵登録器、秘密鍵発行方法、暗号通信方法、暗号通信システム及び記録媒体 | |
JP2013186337A (ja) | 情報処理装置、情報処理方法、情報処理システム及び通信端末 | |
Abdulhamid et al. | Development of blowfish encryption scheme for secure data storage in public and commercial cloud computing environment | |
JP2004343812A (ja) | 暗号通信システム、暗号通信方法、サーバ及び暗号通信プログラム | |
WO2018052090A1 (ja) | 送受信システム、送信装置、受信装置、方法、コンピュータプログラム | |
CN111431728B (zh) | 一种分布式应用程序的用户群组管理方法 | |
Anbazhagan et al. | Cloud Computing Security Through Symmetric Cipher Model | |
JP2001156766A (ja) | 暗号通信方法及び暗号通信システム | |
Vaidya et al. | A Review on Cryptography Using Armstrong Numbers and Colors | |
WO2018181934A2 (ja) | 通信システム、第1通信装置、第2通信装置、方法、コンピュータ装置、コンピュータプログラム | |
WO2019054518A2 (ja) | 通信システム、第1通信装置、第2通信装置、方法、コンピュータプログラム | |
JPH11110350A (ja) | コンピュータとパスワード管理方法並びにパスワード管理プログラムを記憶したコンピュータに読み取り可能な記録媒体及びパスワード管理データを記憶したコンピュータに読み取り可能な記録媒体 | |
JP2001156768A (ja) | 秘密鍵発行方法,暗号通信方法及び暗号通信システム | |
JP2001156767A (ja) | 暗号通信方法及び暗号通信システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22734789 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2022734789 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2022734789 Country of ref document: EP Effective date: 20230804 |