WO2018025991A1 - 通信システム、通信用クライアント、通信用サーバ、通信方法、プログラム - Google Patents

通信システム、通信用クライアント、通信用サーバ、通信方法、プログラム Download PDF

Info

Publication number
WO2018025991A1
WO2018025991A1 PCT/JP2017/028391 JP2017028391W WO2018025991A1 WO 2018025991 A1 WO2018025991 A1 WO 2018025991A1 JP 2017028391 W JP2017028391 W JP 2017028391W WO 2018025991 A1 WO2018025991 A1 WO 2018025991A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication device
solution
common key
encrypted
generated
Prior art date
Application number
PCT/JP2017/028391
Other languages
English (en)
French (fr)
Inventor
中村 貴利
Original Assignee
株式会社エヌティーアイ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社エヌティーアイ filed Critical 株式会社エヌティーアイ
Priority to US16/322,508 priority Critical patent/US20190238334A1/en
Priority to EP17837092.0A priority patent/EP3496328A4/en
Publication of WO2018025991A1 publication Critical patent/WO2018025991A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Definitions

  • the present invention relates to communication technology, and more particularly to technology for encrypted communication.
  • SSL secure sockets layer
  • SSL has two main aspects. One is identity verification (authentication), and the other is encrypted communication. In order to explain how these are realized, a process executed in SSL communication will be described. In this example, it is assumed that SSL communication is performed between the client and the server.
  • the server generates a pair of secret key and public key. As is well known, both the private key and the public key can be obtained by encrypting plaintext data into encrypted data, and encrypting data encrypted by the other of them. It can be decrypted and returned to plaintext data.
  • a server is a server certificate that is data for the other party to check its validity, includes its public key, and has an electronic signature for indicating the validity of the server certificate. What is being installed. b.
  • the client prepares a common key.
  • the common key can be obtained by encrypting plaintext data to be encrypted data, and decrypting encrypted data encrypted with the same common key to return to plaintext data. It is supposed to be possible.
  • the root certificate is installed on the client.
  • the root certificate is created by the root certificate authority.
  • the root certificate authority is also a person who creates the server certificate described above and a person who attaches an electronic signature to the server certificate.
  • the client can confirm the validity of the server certificate by the combination of the root certificate and the digital signature attached to the server certificate.
  • Sharing of common key between server and client a.
  • the client makes a request for SSL communication to the server.
  • the server sends the server certificate to the client.
  • the server certificate includes the public key used by the server and has an electronic signature.
  • the client verifies the validity of the server certificate using its own root certificate and the electronic signature attached to the server certificate. If the server certificate is valid, the server that it is communicating with If the server certificate is invalid, authentication that the server is valid is not performed.
  • the client authenticates the server, the client encrypts the common key owned by itself with the public key included in the server certificate received from the server, and sends it to the server.
  • the server decrypts the encrypted public key received from the client with the private key owned by itself. Thus, the client common key is shared between the client and the server.
  • the third party does not have a secret key.
  • the client's common key itself cannot be stolen by a third party. This result is not affected at all by the public key being made public.
  • the public key sent from the server to the client is used.
  • the legitimacy of the public key itself, and the legitimacy of the person (server) who sent the public key becomes a problem here.
  • a malicious third party may send a public key to the client. It is the processes (1) and (2) described above for SSL communication that guarantee the validity of the public key or the person who sent it. Through these processes, the client confirms (authenticates) the validity of the server, thereby ensuring the validity of the SSL communication.
  • a malicious third party creates a fake server certificate that can be authenticated by the client using the tampered root certificate.
  • the server impersonates a legitimate server, enters between the client and the legitimate server, and receives the request.
  • the fake server impersonating the legitimate server then sends its fake server certificate to the client.
  • the client determines that the fake server certificate is legitimate by using the falsified root certificate, and thus authenticates the fake server as legitimate.
  • the client encrypts its own common key with the fake public key included in the fake server certificate, and transmits it to the fake server.
  • the fake server that received it decrypts the encrypted common key with the private key paired with the fake public key that it has. With this, the common key held by the client is passed to the malicious third party. Thereafter, even if the communication between the client and the server is encrypted communication using a common key, the malicious third party who owns the common key necessary for the encrypted communication is The decoding can be done freely.
  • Such an attack that a malicious third party enters between the client and the server is called a man-in-the-middle attack (MITMA), but as with other encrypted communications, This is not prevented even in the case of SSL.
  • MITMA man-in-the-middle attack
  • the present invention proposes a technique for encrypted communication that is more resistant to attacks by third parties than SSL, in particular, attacks by MITMA.
  • the invention of the present application includes both solution generation means that can be connected to a predetermined network and that can continuously generate solutions that are the same if they are generated under common conditions.
  • 1 is a communication method executed in an encrypted communication system including a first communication device and a second communication device.
  • Such a communication method may be an aspect of SSL communication that is currently popular, or may not be.
  • such a communication method can be regarded as an evolved version or an improved version of SSL communication, or can be regarded as being unrelated to SSL communication.
  • the present invention is regarded as an evolution or improved version of SSL communication (if applied as an alternative to SSL, the first communication device is a conventional server and the second communication device is a conventional client.
  • the network is typically the Internet. And this invention includes the following processes.
  • the present invention relates to a process in which the second communication device generates a solution by the solution generation means and transmits the solution to the first communication device via the network, and the first communication device transmits the second communication to the first communication device.
  • the first communication device causes the solution generation means to generate a solution, the solution generated by the solution generation means of the first communication device, and the second communication device
  • the process of authenticating the second communication device as valid, the authentication that the second communication device is valid is performed by the first communication device.
  • the second communication device uses the solution generated under a predetermined condition after the second communication device. Either the process of encrypting the common key held by itself or the second
  • the second communication device that has received notification from the first communication device that the communication device has been authenticated is generated by the solution generation means, and the second or later solution is generated by the solution generation means.
  • the first communication device encrypts the common key
  • the second communication device that transmits the encrypted common key from one communication device to the second communication device via the network and receives the encrypted common key is a 2 A first or subsequent solution
  • the first communication device uses the common key encrypted using a solution generated under a second or later predetermined condition as the first key.
  • the encrypted common key is transmitted from the second communication device to the first communication device via the network.
  • the first communication device that has received the encrypted common key generates the second or later solution by the solution generation means, and is generated under the second and subsequent predetermined conditions.
  • a process of decrypting the common key encrypted using a solution using the same algorithm as the second communication apparatus encrypts the common key, and the first communication apparatus and the second communication by the above process.
  • the above-mentioned last process in the present invention that is, the first communication device and the second communication using the common key that has been shared by the first communication device and the second communication device.
  • the process of performing the common key encrypted communication with the apparatus corresponds to the process (3) above in the case of the current SSL communication. In other words, since the common key encryption communication itself is very common, it is not always necessary to do so, but this part can follow the process (3) currently used in SSL communication as it is.
  • the present invention is characterized in that the second communication device and the first communication device use solution generation means.
  • the solution generation means used in the second communication device and the first communication device may or may not be the same, but at least solutions that are the same if they are generated under common conditions. Can be generated continuously.
  • a one-time password technique can be used as the solution generation means.
  • One-time passwords are the same when comparing two one-time passwords generated by two solution generation means in the same order, and are generated at the same time by two solution generation means There are several methods, for example, in which the two are the same when compared with each other. However, if the one-time password technology is diverted, any of the solution generation means used in the present invention may be used. Absent.
  • the second communication device and the first communication device can execute the same encryption and decryption processing when the same solution is used.
  • the solution in this case effectively functions as a common key in normal encryption and decryption processing.
  • the second communication device and the first communication device can execute encryption and decryption processes using the same algorithm.
  • the encryption and decryption processes correspond to the process (2) in the case of the current SSL communication, and the process (3) in the case of the current SSL communication, Using the common key that is to be shared between the first communication device and the second communication device, encrypted communication using a common key method is performed between the first communication device and the second communication device.
  • the encryption and decryption executed in the “performing process” are different.
  • the second communication device when performing encrypted communication between the second communication device and the first communication device, the second communication device first generates a solution by the solution generation means, and the solution is transmitted to the first communication via the network. The process of transmitting to the device is executed. Next, a process in which the first communication device receives the solution from the second communication device via the network is executed. Subsequently, authentication processing is performed in the first communication device. Specifically, the authentication process is performed as follows. The first communication device causes the solution generation unit of the first communication device to generate a solution, and compares the solution generated by the solution generation unit of the first communication device with the solution received from the second communication device.
  • the first communication device authenticates the second communication device that sent the solution as valid, and if the two do not match, the second communication device authenticates. Judge that it is not something.
  • the solution generation means possessed by the first communication device continuously generates a solution that is the same as the solution generated by the second communication device when compared with those generated under common conditions. It is something that can be done. Therefore, since the solution generation means of the first communication device can make the same solution as the solution sent from the legitimate second communication device, the authentication as described above is possible.
  • the encrypted common key is sent from the first communication device to the second communication device, so that the common key is shared between the first communication device and the second communication device.
  • the common key is shared between the first communication device and the second communication device by sending the encrypted common key from the second communication device to the first communication device.
  • the first communication device uses the solution generation means to solve the second or later solution.
  • a process of encrypting the common key owned by itself using a solution generated under the second and subsequent predetermined conditions is executed. When this process is executed, that is, when the first communication device encrypts the common key, the encrypted common key is transferred from the first communication device to the second communication device.
  • the second communication device that has transmitted the network and received the encrypted common key generates a second or later solution by the solution generation means, and sets the second and subsequent solutions in advance.
  • the order in which the solutions are created in the first communication device used to encrypt the common key is the same as the order in which the solutions are created in the second communication device).
  • a process of decrypting the common key encrypted using the generated solution is performed using the same algorithm as the first communication apparatus encrypts the common key.
  • both the first communication device and the second communication device include solution generation means for continuously generating the same solution that is common to each other.
  • the first communication device and the second communication device can perform encryption and decryption with the same algorithm using the solution.
  • the second communication device when the second communication device receives from the first communication device the data of the common key encrypted using the solution that is the first communication device, the second communication device generates the encrypted common key by itself. Can be used for decoding.
  • the solution used by the first communication device for encryption and the solution used by the second communication device for decryption are not solutions used for authentication of the second communication device, but the first communication device and That is, the solution is generated by the solution generation means of the second communication device.
  • These solutions exist only inside the first communication device or the second communication device, and are not transmitted via the network. Therefore, a third party cannot effectively steal this solution. That is, even if a malicious third party steals data of a common key that is encrypted and transmitted over the network, it cannot be decrypted.
  • the first communication device and the second communication device use the first solution generated after the solution sent from the second communication device to the first communication device for encryption and decryption of the common key. It can be determined from the beginning between the first communication device and the second communication device. For example, using the solution generated by both of the solutions sent from the second communication device to the first communication device, or using the solution generated fifth, such an arrangement is made in advance between the two. I can leave. Further, the common key encryption in the first communication device is performed by making the dependency on the solution sent from the second communication device to the first communication device or the data sent together with the solution. It is also possible to change whether to use the common key in the second communication device.
  • the first communication device for encryption and solutions used by the second communication device for decryption.
  • the first and fourth keys generated by the first communication device after the solution sent from the second communication device to the first communication device are used for encryption of the common key.
  • the solution used for the decryption of the common key by the communication device may also be arranged in advance such as the first and fourth occurrences after the solution sent from the second communication device to the first communication device. it can. That is, the solutions used in the first communication device and the second communication device need to have the same number and the order in which they are generated, and the arrangement of the number and order is determined by the first communication device. And the second communication device in advance.
  • the second communication device that has received notification from the first communication device that the second communication device has been authenticated is generating a second or later solution by the solution generation means.
  • the second communication device When a process of encrypting a common key owned by itself using a solution generated under a second and subsequent predetermined conditions is executed, that is, the second communication device encrypts the common key
  • the first communication device that has transmitted the encrypted common key from the second communication device to the first communication device via the network and has received the encrypted common key
  • a second or later solution is generated by the solution generation means, and the common key encrypted using a solution generated under a predetermined condition after the second is used as the second communication.
  • the same password that the device encrypted the common key It is also possible to execute a process of decoding using the Gorizumu.
  • the solution used by the second communication device for encryption and the solution used for the decryption by the first communication device are not solutions used for authentication of the second communication device. It is the solution generated by the solution generation means of the second communication device. These solutions exist only inside the first communication device or the second communication device, and are not transmitted via the network. Therefore, even in this case, a third party cannot effectively steal this solution.
  • a common key is shared between the first communication device and the second communication device.
  • a process of performing a common key type encrypted communication between the first communication device and the second communication device is performed using the common key to be shared. As described above, this process can follow the process (3) currently used in SSL communication as it is. This encrypted communication is secure if the common key has not been stolen by a third party.
  • a malicious third party cannot enter between the second communication device and the first communication device by MITMA. Even if a third party enters between the second communication device and the first communication device, a third party who does not have the same solution generation means as the solution generation means possessed by the second communication device is considered to be a legitimate first communication. This is because the above-described authentication performed by the device cannot be performed. However, it is also conceivable that the malicious third party authenticates the second communication device as valid for the time being, regardless of whether the sent solution is valid or not. Then, especially when the common key held by the second communication device is encrypted from the second communication device and sent to the first communication device, the common key of the second communication device may be stolen by a third party. .
  • the solution generated by the solution generation means of the first communication device can be transmitted to the second communication device.
  • the second communication device receives the solution from the first communication device, compares the solution with the solution generated by the solution generation means of the second communication device, and if the two match, the first communication device Can be certified as appropriate. Since the solution generation means possessed by the first communication device and the second communication device can continuously generate a common solution as described above, a valid first communication device is a valid second communication device.
  • a legitimate second communication device can make a common solution with a legitimate first communication device. Since the malicious third party cannot make a solution common to that of the second communication device, not only the authentication of the second communication device on the first communication device side but also the first on the second communication device side. By also authenticating the communication device, the chances of success of MITMA are almost zero.
  • the solution transmitted from the first communication device to the second communication device is a solution used to encrypt the common key in the first communication device or the second communication device and to decrypt the encrypted common key. Is not used.
  • the solution transmitted by the first communication device to the second communication device is preceded by the solution used to encrypt the common key in the first communication device or the second communication device and to decrypt the encrypted common key. It may be a generated solution or a solution generated after them, but in any case, it can be a solution generated after the solution sent from the second communication device to the first communication device.
  • the present invention can also be regarded as a communication method executed by the second communication device.
  • the effect of this communication method is as described above.
  • the method includes, for example, both solution generation means capable of being connected to a predetermined network and capable of continuously generating solutions that are the same by comparing those generated under common conditions. It is the communication method performed with the said 2nd communication apparatus of the encryption communication system comprised including a 1st communication apparatus and a 2nd communication apparatus.
  • the communication method includes the following steps executed by the second communication device. In the process, a solution is generated by the solution generation means, and the solution is transmitted to the first communication device via the network. The first communication device transmits the solution from the second communication device via the network.
  • the solution generated by the solution generation means of the first communication device is compared with the solution received from the second communication device, and the two match If the first communication device authenticates the second communication device and authenticates that the second communication device is valid, the first communication device generates a solution.
  • the common key encrypted from the first communication device is A second or later solution is generated by the solution generation means, and the encrypted solution is generated using a solution generated under a predetermined condition after the second.
  • the process of decrypting the common key using the same algorithm as the first communication apparatus encrypts the common key, and thus the first communication apparatus and the second communication apparatus share the common key.
  • the first communication device uses a plurality of solutions generated by the solution generation means in order to execute the process of encrypting the common key held by itself, and the second communication In order for the apparatus to execute the process of decrypting the encrypted common key, a plurality of solutions generated by the solution generation means may be used.
  • the communication method can also be understood as follows.
  • the effect of this communication method is as described above.
  • the method includes, for example, both solution generation means capable of being connected to a predetermined network and capable of continuously generating solutions that are the same by comparing those generated under common conditions. It is the communication method performed with the said 2nd communication apparatus of the encryption communication system comprised including a 1st communication apparatus and a 2nd communication apparatus.
  • the communication method includes the following steps executed by the second communication device. In the process, a solution is generated by the solution generation means, and the solution is transmitted to the first communication device via the network. The first communication device transmits the solution from the second communication device via the network.
  • the solution generated by the solution generation means of the first communication device is compared with the solution received from the second communication device, and the two match If the second communication device is authenticated as valid and the first communication device authenticates that the second communication device is valid, the first communication device sends the second communication to the second communication device.
  • the process of receiving notification that the device is authorized through the network, and after receiving the notification, the solution generation means generates the second or later solution and the second and later Produced under predetermined conditions A process of encrypting a common key held by itself using the obtained solution, a process of transmitting the encrypted common key to the first communication device via the network, and the first communication device generating the solution
  • the second or later solution is generated by the means, and the cipher received by the first communication device from the second communication device using the solution generated under the second and subsequent predetermined conditions.
  • the first communication device and the second communication device perform a process of decrypting the encrypted common key using the same algorithm as the second communication device encrypts the common key.
  • the second communication device uses a plurality of solutions generated by the solution generation means in order to execute the process of encrypting the common key held by itself, and the first communication
  • a plurality of solutions generated by the solution generation means may be used.
  • the present invention can also be regarded as a communication method executed by the first communication device.
  • the effect of this communication method is as described above.
  • the method includes, for example, both solution generation means capable of being connected to a predetermined network and capable of continuously generating solutions that are the same by comparing those generated under common conditions. It is the communication method performed with the said 1st communication apparatus of the encryption communication system comprised including a 1st communication apparatus and a 2nd communication apparatus.
  • the communication method includes the following steps executed by the first communication device.
  • the second communication device generates a solution by the solution generation means, receives the solution sent via the network, causes the solution generation means of the first communication device to generate a solution,
  • the solution generated by the solution generation means of the first communication device is compared with the solution received from the second communication device, and if the two match, the second communication device is authenticated as legitimate.
  • the solution generation means when the first communication device authenticates that the second communication device is valid, the solution generation means generates the second or later solution and the second and subsequent solutions in advance.
  • the second communication device generates the second or later solution by the solution generation means and uses the solution generated under the second and subsequent predetermined conditions to encrypt the common
  • the common that is to be shared between the first communication device and the second communication device by decrypting the key using the same algorithm that the first communication device encrypted the common key
  • the first communication device uses a plurality of solutions generated by the solution generation means in order to execute the process of encrypting the common key held by itself, and the second communication In order for the apparatus to execute the process of decrypting the encrypted common key, a plurality of solutions generated by the solution generation means may be used.
  • the communication method can also be understood as follows.
  • the effect of this communication method is as described above.
  • the method includes, for example, both solution generation means capable of being connected to a predetermined network and capable of continuously generating solutions that are the same by comparing those generated under common conditions. It is the communication method performed with the said 1st communication apparatus of the encryption communication system comprised including a 1st communication apparatus and a 2nd communication apparatus.
  • the communication method includes the following steps executed by the first communication device.
  • the second communication device generates a solution by the solution generation means, receives the solution sent via the network, causes the solution generation means of the first communication device to generate a solution,
  • the solution generated by the solution generation means of the first communication device is compared with the solution received from the second communication device, and if the two match, the second communication device is authenticated as legitimate.
  • the second communication device is notified via the network that the second communication device has been authenticated.
  • the second communication device that has received notification from the first communication device that the second communication device has been authenticated is the second or later solution by the solution generation means.
  • the second or later solution is generated by the solution generation means, and the encrypted solution received from the second communication device using the second or later solution generated under a predetermined condition is used.
  • the second communication device uses a plurality of solutions generated by the solution generation means in order to execute the process of encrypting the common key held by itself, and the first communication
  • a plurality of solutions generated by the solution generation means may be used.
  • the present invention can also be regarded as a second communication device that can be connected to a network for configuring an encrypted communication system in combination with the first communication device.
  • the effects of the second communication device are as described above.
  • the second communication device can perform, for example, a first communication device solution generation unit capable of continuously generating solutions and an encryption using the solution generated by the first communication device solution generation unit.
  • a second communication device that is connectable to the network for configuring an encrypted communication system by a combination with the first communication device that is connectable to a predetermined network.
  • the second communication device can continuously generate solutions that are the same by comparing the ones generated by the first communication device solution generating means with those generated under common conditions.
  • the first communication device first encryption / decryption means performs the same solution.
  • Second communication device first encryption / decryption means capable of performing the same decryption, and second communication device second encryption capable of performing encryption and decryption by a common key method using a common key Decoding means.
  • the second communication device is configured to send the solution generated by the second communication device solution generation means to the first communication device via the network, and the first communication device is configured to transmit the second communication device to the second communication device.
  • the solution received from the communication device via the network, the solution generated by the first communication device solution generation means, the solution generated by the first communication device solution generation means, and the solution received from the second communication device If the two match, the authentication means authenticates the second communication device as valid, and the authentication that the second communication device is valid is
  • the first communication device solution generation unit generates the second or later solution when the authentication unit performs the authentication, and the first communication device solution generation is performed under a second predetermined condition.
  • Using the solution generated by the means Executing a process of encrypting the common key owned by the first communication device using the first encryption / decryption means, and sending the encrypted common key to the second communication device via the network.
  • the second communication device solution generating means generates the second or later solution and the second communication device solution generating means generates the second or later solution under a predetermined condition.
  • the encrypted common key received from the first communication device is decrypted by the second communication device first encryption / decryption means.
  • the first communication device And the first communication device second encryption / decryption means encrypts and decrypts the data to be transmitted / received using the common key shared by the second communication device.
  • second encryption of the second communication device Goka means that performs encryption and decryption on the data to be transmitted and received, and performs encrypted communication common key system between the first communication device.
  • the second communication device When the present invention is regarded as a second communication device that can be connected to a network for configuring an encrypted communication system in combination with the first communication device, the second communication device is understood as follows. You can also. The effects of the second communication device are as described above.
  • the second communication device can perform, for example, a first communication device solution generation unit capable of continuously generating solutions and a decoding using the solution generated by the first communication device solution generation unit.
  • the second communication device can continuously generate solutions that are the same by comparing the ones generated by the first communication device solution generating means with those generated under common conditions. When the same solution is used by using the solutions generated by the two communication device solution generation means and the second communication device solution generation means, the first communication device first encryption / decryption means performs the same solution.
  • Second communication device first encryption / decryption means capable of performing the same encryption, and second communication device second encryption capable of performing encryption and decryption by a common key method using a common key Decoding means.
  • the second communication device is configured to send the solution generated by the second communication device solution generation means to the first communication device via the network, and the first communication device is configured to transmit the second communication device to the second communication device.
  • the solution is received from the communication device via the network, the solution is generated by the first communication device solution generation means, the solution generated by the first communication device solution generation means, and the solution received from the second communication device.
  • the authentication means authenticates the second communication device as valid, and the authentication that the second communication device is valid is When it is performed by the authentication means, a notification that the second communication device has been authenticated is sent to the second communication device via the network, and the notification is sent to the first communication device.
  • the second message received from the device The second communication device solution generating means of the device generates the second or later solution and uses the solution generated under the second and subsequent predetermined conditions to share the common key held by itself.
  • the second communication device encrypts the first encryption / decryption means and sends the encrypted common key to the first communication device via the network.
  • the present invention can also be regarded as a first communication device that can be connected to a network for configuring an encrypted communication system in combination with the second communication device.
  • the effects of the first communication device are as described above.
  • the first communication device can perform, for example, a second communication device solution generation unit capable of continuously generating solutions and a decoding using the solution generated by the second communication device solution generation unit.
  • 2 communication device first encryption / decryption means, and second communication device second encryption / decryption means capable of performing encryption and decryption by a common key method using a common key.
  • a combination of a second communication device configured to send a solution generated by the second communication device solution generating means to the first communication device via the network and connectable to a predetermined network.
  • a first communication device that is connectable to the network for configuring an encrypted communication system.
  • the first communication device can continuously generate solutions that are the same by comparing the ones generated by the second communication device solution generating means with those generated under common conditions.
  • the second communication device first encryption / decryption unit performs the same solution.
  • 1st communication apparatus 1st encryption / decryption means which can perform the same encryption
  • 1st communication apparatus 2nd encryption which can perform encryption and decryption by a common key system using a common key
  • the decryption means, the solution generated by the first communication device solution generation means, and the solution received from the second communication device are compared, and if they match, the second communication device is authorized.
  • Authenticating means adapted to authenticate the object. Further, in the first communication device, when authentication that the second communication device is valid is performed by the authentication unit, the first communication device solution generation unit generates a second or subsequent solution.
  • the first communication device first encryption / decryption means encrypts the common key held by itself using the solution generated by the first communication device solution generation means under the second and subsequent predetermined conditions.
  • the encrypted common key is sent to the second communication device via the network, and the second communication device is the second communication device solution generating means.
  • the second or later solution is generated and received from the first communication device using the solution generated by the second communication device solution generating means under the second and subsequent predetermined conditions.
  • Encrypting the common key with the second communication device The first communication device uses the common key that has been shared by the first communication device and the second communication device.
  • the second encryption / decryption means encrypts and decrypts the data to be transmitted / received, and the second communication device second encryption / decryption means encrypts the data to be transmitted / received.
  • a common key encrypted communication is performed with the second communication device.
  • the first communication device When the present invention is regarded as a first communication device that can be connected to a network for configuring an encrypted communication system in combination with the second communication device, the first communication device is understood as follows. You can also. The effects of the first communication device are as described above.
  • the first communication device can perform, for example, second communication device solution generation means capable of continuously generating solutions and encryption using the solution generated by the second communication device solution generation means.
  • a combination of a second communication device configured to send a solution generated by the second communication device solution generating means to the first communication device via the network and connectable to a predetermined network.
  • a first communication device that is connectable to the network for configuring an encrypted communication system.
  • the first communication device can continuously generate solutions that are the same by comparing the ones generated by the second communication device solution generating means with those generated under common conditions.
  • the second communication device first encryption / decryption unit performs the same solution.
  • First communication device first encryption / decryption means capable of performing the same decryption, and first communication device second encryption capable of performing encryption and decryption by a common key method using a common key
  • the decryption means, the solution generated by the first communication device solution generation means, and the solution received from the second communication device are compared, and if they match, the second communication device is authorized.
  • Authenticating means adapted to authenticate the object.
  • the first communication device sends a notification that the second communication device has been authenticated through the network when the authentication means has performed authentication that the second communication device is valid.
  • the second communication device receives the notification from the first communication device, and the second communication device solution generating means generates a second or later solution when the second communication device receives the notification from the first communication device.
  • the second communication device first encryption / decryption means encrypts and encrypts the common key held by itself using a solution generated under a second and subsequent predetermined conditions.
  • the common key is sent to the first communication device via the network, and a second or later solution is generated by the first communication device solution generation means and the second and subsequent solutions are generated.
  • the first communication device under predetermined conditions;
  • the encrypted common key received from the second communication device is decrypted by the first communication device first encryption / decryption device using the solution generated by the solution generation device,
  • the first communication device second encryption / decryption means applies to the data to be transmitted / received
  • the second communication device second encryption / decryption means encrypts and decrypts data to be transmitted / received to / from the second communication device. Common key encryption communication is performed.
  • the present invention can also be understood as a computer program for causing a general-purpose computer to function as the second communication device of the present invention.
  • the effects of such a computer program are as described above.
  • the computer program can be connected to a predetermined network, and has both solution generation means capable of continuously generating solutions that are the same by comparing those generated under common conditions.
  • a computer program for causing a computer to function as the second communication device of an encrypted communication system configured to include a first communication device and a second communication device.
  • This computer program is for causing the computer to execute the following process. In the process, a solution is generated by the solution generation means, and the solution is transmitted to the first communication device via the network. The first communication device transmits the solution from the second communication device via the network.
  • the solution generated by the solution generation means of the first communication device is compared with the solution received from the second communication device, and the two match If the first communication device authenticates the second communication device and authenticates that the second communication device is valid, the first communication device generates a solution.
  • the common key encrypted from the first communication device is The second and subsequent solutions are generated by the solution generation means and the second and subsequent solutions are encrypted using the second and subsequent predetermined conditions.
  • the common key encryption is performed between the first communication device and the first communication device using the common key shared by the first communication device and the second communication device. This is a process of performing communication.
  • the first communication device transmits the solution from the second communication device via the network.
  • the solution generated by the solution generation means of the first communication device is compared with the solution received from the second communication device, and the two match If the second communication device is authenticated as valid and the first communication device authenticates that the second communication device is valid, the first communication device sends the second communication to the second communication device.
  • the process of receiving notification that the device is authorized through the network, and after receiving the notification, the solution generation means generates the second or later solution and the second and later Produced under predetermined conditions A process of encrypting a common key held by itself using the obtained solution, a process of transmitting the encrypted common key to the first communication device via the network, and the first communication device generating the solution
  • the second or later solution is generated by the means, and the cipher received by the first communication device from the second communication device using the solution generated under the second and subsequent predetermined conditions.
  • the first communication apparatus and the second communication apparatus can be used to share the first communication apparatus with the first communication apparatus. This is a process of performing encrypted communication using a common key method.
  • the present invention can also be understood as a computer program for causing a general-purpose computer to function as the first communication device of the present invention.
  • the effects of such a computer program are as described above.
  • the computer program can be connected to a predetermined network, and has both solution generation means capable of continuously generating solutions that are the same by comparing those generated under common conditions.
  • a computer program for causing a computer to function as the first communication device of the encrypted communication system including the first communication device and the second communication device. This computer program is for causing the computer to execute the following process.
  • the second communication device generates a solution by the solution generation means, receives the solution sent via the network, causes the solution generation means of the first communication device to generate a solution,
  • the solution generated by the solution generation means of the first communication device is compared with the solution received from the second communication device, and if the two match, the second communication device is authenticated as legitimate.
  • the solution generation means when the first communication device authenticates that the second communication device is valid, the solution generation means generates the second or later solution and the second and subsequent solutions in advance.
  • the second communication device generates the second or later solution by the solution generation means and encrypts the common key encrypted using the solution generated under the second and subsequent predetermined conditions.
  • a common key type encrypted communication is performed with the second communication device.
  • the computer program can also be understood as follows.
  • the effects of such a computer program are as described above.
  • the computer program can be connected to a predetermined network, and has both solution generation means capable of continuously generating solutions that are the same by comparing those generated under common conditions.
  • a computer program for causing a computer to function as the first communication device of the encrypted communication system including the first communication device and the second communication device. This computer program is for causing the computer to execute the following process.
  • the second communication device generates a solution by the solution generation means, receives the solution sent via the network, causes the solution generation means of the first communication device to generate a solution,
  • the solution generated by the solution generation means of the first communication device is compared with the solution received from the second communication device, and if the two match, the second communication device is authenticated as legitimate.
  • the second communication device is notified via the network that the second communication device has been authenticated.
  • the second communication device that has received notification from the first communication device that the second communication device has been authenticated is the second or later solution by the solution generation means.
  • the second and subsequent predetermined clauses A process of receiving the encrypted common key transmitted from the second communication device via the network after performing a process of encrypting the common key owned by itself using the solution generated below;
  • the second or later solution is generated by the solution generation means, and the encrypted common received from the second communication device using the solution generated under the second and subsequent predetermined conditions.
  • the common key encryption is performed between the first communication device and the second communication device using the common key that has been shared by the first communication device and the second communication device. This is a process of performing communication.
  • the above-described computer program for causing a computer to function as the second communication device of the present invention performs encryption and decryption on the computer constituting the second communication device when performing the encryption communication of the common key method.
  • the program is executed between a predetermined application that handles plaintext data to be encrypted executed on the computer and TCP / IP, and the plaintext generated by the application is encrypted. Then, the data is transferred to the TCP / IP for transmission to the first communication device, the encrypted data sent from the first communication device passed from the TCP / IP is decrypted into plaintext, and then It may be passed to the application.
  • the current computer program for SSL communication performs encryption and decryption between an application and TCP / IP.
  • the computer program as described above can be easily replaced with the current computer program for SSL communication.
  • the above-described computer program for causing a computer to function as the first communication device of the present invention performs the encryption and decryption on the computer constituting the first communication device when performing the common key type encrypted communication.
  • the program is executed between a predetermined application that handles plaintext data to be encrypted executed on the computer and TCP / IP, and the plaintext generated by the application is encrypted. Then, the data is transferred to the TCP / IP for transmission to the second communication device, the encrypted data sent from the second communication device passed from the TCP / IP is decrypted into plaintext, and then It may be passed to the application. This also makes it easy to replace the current computer program for SSL communication with the computer program of the present invention.
  • the second communication device sends a solution to the first communication device, and the first communication device first sends the solution to the first communication device from the second communication device. And then authenticate, and after that, encrypt the common key that existed in one of the first communication device or the second communication device, send it to the other of them and then on the other of them By decrypting the encrypted common key, the first communication apparatus and the second communication apparatus share the common key.
  • the second communication device can send the solution and the encrypted key to the first communication device before the above-described authentication is performed by the first communication device.
  • the invention described below, which should be called the third aspect of the present application, is such an invention.
  • a method executed by the second communication apparatus includes, for example, both solution generation means that can be connected to a predetermined network and that can continuously generate solutions that are the same by comparing those generated under common conditions.
  • a communication method executed by the second communication device of an encrypted communication system configured to include a first communication device and a second communication device.
  • the second communication device executes a plurality of solutions by the solution generation means, and uses one of the solutions and the other one of the solutions.
  • the first communication device receiving the solution from the second communication device via the network, and generating the solution
  • a plurality of solutions is generated by the means, and the solution generated by the solution generation means of the first communication device and sent from the second communication device is generated by the solution generation means of the second communication device Comparing the solution generated at the same time with the solution received from the second communication device, and if both match, authenticate the second communication device as valid, and The solution generated by the solution generation means of the first communication device
  • the solution used when encrypting the encrypted common key sent from the second communication device was created under the same conditions as when the solution was generated by the solution generation means of the second communication device.
  • a method executed by the first communication apparatus includes, for example, both solution generation means that can be connected to a predetermined network and that can continuously generate solutions that are the same by comparing those generated under common conditions.
  • a communication method executed by the first communication device of an encrypted communication system including a first communication device and a second communication device.
  • the second communication device which is executed by the first communication device, causes the solution generation means to generate a plurality of solutions, and one of the solutions and the other of the solutions.
  • Is the same as the solution generated by the solution generation unit of the first communication device and the solution sent from the second communication device is generated by the solution generation unit of the second communication device. Comparing the solution generated under the conditions with the solution received from the second communication device and, if they match, authenticating the second communication device as valid, the first communication A solution generated by the solution generation means of the device and sent from the second communication device
  • the second solution is generated under the common conditions when the solution used for encrypting the encrypted common key is generated by the solution generation means of the second communication device, and the second The process of decrypting the encrypted common key received from the communication device using the same algorithm that the second communication device encrypted the common key, and the first communication device and the second Using the common key to be shared by the communication device, and performing a common key type encrypted communication with the second communication device.
  • a second communication device performs, for example, a first communication device solution generation unit capable of continuously generating a solution, and encryption and decryption using the solution generated by the first communication device solution generation unit.
  • a second communication device that is connectable to the network for configuring an encrypted communication system by a combination with the first communication device that is connectable to a predetermined network.
  • a second communication device solution that can continuously generate solutions that are the same by comparing the ones generated by the first communication device solution generating means with those generated under common conditions. Generating means and the second communication device solution generator When the same solution is used, the second communication device that can perform the same encryption and decryption as that performed by the first encryption / decryption means in the first communication device is used. 1 encryption / decryption means, and second communication device second encryption / decryption means capable of performing encryption and decryption by a common key method using a common key.
  • the second communication device uses one of a plurality of solutions generated by the second communication device solution generation means and another one of the solutions generated by the second communication device solution generation means.
  • the encrypted common key is sent to the first communication device via the network, and the first communication device transmits the first communication device from the second communication device via the network.
  • Receiving a solution and the encrypted common key, generating a plurality of solutions by the first communication device solution generation means, and generating the plurality of solutions by the first communication device solution generation means from the second communication device When the sent solution is generated by the second communication device solution generation means and the solution generated under common conditions is compared with the solution received from the second communication device, and they match In order to correct the second communication device by the authentication means, When the encrypted common key sent from the second communication device, which is a solution generated by the first communication device solution generation means and is encrypted, is encrypted.
  • the encrypted common key received from the second communication device is used when the solution used is generated by the solution generation means of the second communication device and under the common conditions.
  • the first communication device second encryption / decryption means encrypts and decrypts the data to be transmitted / received, and the second communication device second encryption / decryption means performs the data to be transmitted / received.
  • the first communication device performs, for example, a second communication device solution generation unit capable of continuously generating a solution, and encryption and decryption using the solution generated by the second communication device solution generation unit.
  • a second communication device first encryption / decryption means capable of performing encryption and decryption in a common key scheme using a common key, and a second communication device second encryption / decryption means capable of performing A second communication device capable of being connected to a predetermined network, wherein the solution generated by the second communication device solution generation means is sent to the first communication device via the network;
  • the first communication device that can be connected to the network for configuring the encrypted communication system by the combination of the first communication device and the second communication device generated by the second communication device solution generation means.
  • the first communication device solution generating means capable of continuously generating the solution and the second communication device when the same solution is used by using the solution generated by the first communication device solution generating means.
  • the first communication device the first encryption / decryption means capable of performing the same encryption and decryption as those performed by the first encryption / decryption means, and encryption / decryption by a common key method using a common key
  • the first communication device second encryption / decryption means that can perform the conversion, the solution generated by the first communication device solution generation means and the solution received from the second communication device, And the authentication means adapted to authenticate the second communication device as a valid one.
  • the first communication device includes: one of a plurality of solutions generated by the second communication device solution generation unit by the second communication device; and one of the solutions generated by the second communication device solution generation unit.
  • the other one When the other one is used to send the encrypted common key to the first communication device via the network, they are received and the first communication is received.
  • a plurality of solutions are generated by the device solution generation means, and a solution generated by the first communication device solution generation means and sent from the second communication device is generated by the solution generation means of the second communication device. If the two match when the solution generated from the second communication device and the solution generated under the common conditions are compared with each other, the authentication means authenticates the second communication device.
  • the solution generated by the solution generator for the device and used for encrypting the encrypted common key sent from the second communication device is generated by the second communication device solution generator
  • the encrypted common key received from the second communication device is decrypted by the first communication device first encryption / decryption means using the one created under the common conditions with the first communication device.
  • the first communication device second encryption / decryption means is a target of transmission / reception using the common key shared by the first communication device and the second communication device.
  • the second communication device performs encryption and decryption on the data, and the second communication device second encryption / decryption means encrypts and decrypts the data to be transmitted / received. And common key encryption communication There.
  • a computer program for causing a general-purpose computer to function as the second communication device is proposed as one of the inventions to be called the third aspect.
  • the computer program can be connected to a predetermined network, for example, and a solution generating means capable of continuously generating solutions that are the same by comparing those generated under common conditions.
  • a computer program for causing a computer to function as the second communication device of an encrypted communication system configured to include both a first communication device and a second communication device. Then, the computer program causes the computer to generate a plurality of solutions by the solution generation means, and encrypts the common key held by itself using one of the solutions and the other one of the solutions.
  • the first communication device receives the solution from the second communication device via the network, and a plurality of solutions are generated by the solution generation means.
  • the second communication device is authenticated as valid and the first communication Generated by device solution generation means And a common condition when a solution used to encrypt the encrypted common key sent from the second communication device is generated by the solution generation means of the second communication device.
  • a computer program for causing a general-purpose computer to function as the first communication device is proposed as one of the inventions to be called the third aspect.
  • the computer program can be connected to a predetermined network, for example, and a solution generating means capable of continuously generating solutions that are the same by comparing those generated under common conditions.
  • a computer program for causing a computer to function as the first communication device of an encrypted communication system configured to include both a first communication device and a second communication device. Then, the computer program causes the second communication device to generate a plurality of solutions by the solution generation means, and uses one of the solutions and the other one of the solutions.
  • a comparison is made between the generated solution and the solution received from the second communication device, and if they match, the process of authenticating the second communication device as valid, the solution of the first communication device
  • the solution generated by the generating means, the second communication When the solution used when encrypting the encrypted common key sent from the device is generated by the solution generation means of the second communication device and using the one created under common conditions Decrypting the encrypted common key received from the second communication device using the same algorithm as the second communication device encrypts the common key, and the first communication device as described above And a process for performing a common key type encrypted communication with the second communication device using the common key shared by the second communication device. ing.
  • the figure which shows the external appearance of the client contained in the communication system shown in FIG. The figure which shows the hardware constitutions of the client contained in the communication system shown in FIG.
  • generated inside the client contained in the communication system shown in FIG. The block diagram which shows the functional block produced
  • generated inside the encryption / decryption part shown in FIG. The figure which shows the flow of the process performed when communication is performed with the communication system shown in FIG.
  • FIG. 1 schematically shows the overall configuration of the communication system according to the first embodiment.
  • the communication system includes a plurality of clients 100-1 to 100 -N (hereinafter sometimes simply referred to as “client 100”) and a server 200. All of these can be connected to the network 400.
  • Network 400 is the Internet in this embodiment, although not limited thereto.
  • the client 100 in this embodiment corresponds to the second communication device referred to in the present application.
  • the server 200 in this embodiment corresponds to the second communication device referred to in this application.
  • the server 200 and the client 100 corresponding to the first communication device and the second communication device in the present application do not need to have a so-called server-client relationship, and may be two equal communication devices.
  • the client 100 corresponds to the client in the present application and includes a computer. More specifically, the client 100 in this embodiment is configured by a general-purpose computer.
  • the configuration of each of the clients 100-1 to 100-N is the same in relation to the present invention.
  • the client 100 is a mobile phone, a smartphone, a tablet, a notebook computer, a desktop computer, or the like. All of them are capable of communicating via the network 400, and by installing a computer program to be described later, function blocks to be described later can be generated therein, and processing to be described later can be executed.
  • other specifications are not particularly limited as long as it is possible.
  • the client 100 is a smartphone or a tablet
  • the client 100 as a smartphone may be, for example, iPhone manufactured and sold by Apple Japan, or the client 100 as a tablet is manufactured by Apple Japan, An iPad for sale may be used.
  • the discussion proceeds as if the client 100 is a smartphone.
  • the client 100 includes a display 101.
  • the display 101 is for displaying a still image or a moving image, and a known or known one can be used.
  • the display 101 is a liquid crystal display, for example.
  • the client 100 also includes an input device 102.
  • the input device 102 is for a user to make a desired input to the client 100.
  • a known or well-known input device 102 can be used.
  • the input device 102 of the client 100 in this embodiment is a button type, but 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 when the client 100 is a notebook personal computer or a desktop personal computer, the input device 102 will be a keyboard, a mouse, or the like.
  • the display 101 When the display 101 is a touch panel, the display 101 also functions as the input device 102, and this is the case in this embodiment.
  • the hardware configuration of the client 100 is shown in FIG.
  • the hardware includes a central processing unit (CPU) 111, a read only memory (ROM) 112, a random access memory (RAM) 113, and an interface 114, which are interconnected by a bus 116.
  • the CPU 111 is an arithmetic device that performs arithmetic operations. For example, the CPU 111 executes a process described later by executing a computer program recorded in the ROM 112 or the RAM 113.
  • the hardware may include a hard disk drive (HDD) or other large capacity recording device, and the computer program may be recorded in the large capacity recording device.
  • the computer program here includes at least a computer program for causing the client 100 to function as the client of the present invention.
  • This computer program may be preinstalled in the client 100 or may be installed afterwards.
  • the installation of the computer program on the client 100 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.
  • the ROM 112 records computer programs and data necessary for the CPU 111 to execute processing to be described later.
  • the computer program recorded in the ROM 112 is not limited to this. If the client 100 is a smartphone, for example, a computer program or data for executing a call or an e-mail necessary for the client to function as a smartphone. It is recorded.
  • the client 100 is also capable of browsing a home page based on data received via the network 400, and a known web browser is implemented to enable this.
  • the RAM 113 provides a work area necessary for the CPU 111 to perform processing.
  • the interface 114 exchanges data between the CPU 111 and the RAM 113 connected via the bus 116 and the outside.
  • the display 114 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 publicly known means for communicating with the outside via the network 400 which is the Internet, whereby the client 100 is connected via the network 400. Data can be transmitted and data can be received via the network 400.
  • the transmission / reception of data via the network 400 may be performed by wire or wirelessly.
  • the configuration of the transmission / reception mechanism may be a known or well-known configuration.
  • Data received from the network 400 by the transmission / reception mechanism is received by the interface 114, and data passed from the interface 114 to the transmission / reception mechanism is transmitted to the outside, for example, the server 200 via the network 400 by the transmission / reception mechanism. It is supposed to be sent.
  • a functional block as shown in FIG. 4 is generated in the client 100.
  • the following functional blocks may be generated by the functions of the above-described computer program for causing the client 100 to function as the client of the present invention, but the above-described computer program, the OS installed in the client 100, and the like May be generated in cooperation with other computer programs.
  • an application 121, an encryption / decryption unit 122, and a transmission / reception unit 123 are generated in relation to the function of the present invention.
  • the application 121 is known browser software, e-mail software, and the like
  • the transmission / reception unit 123 is software for transmitting / receiving data via the network 400, both of which are the present invention.
  • the application 121 generates unencrypted data that is the source of data sent from the client 100 to the server 200 and decrypts the data sent from the server 200 to the client 100. It is to be used after. As long as it is such, the application 121 is not limited to that exemplified above.
  • the application 121 is connected to the interface 114 and operates in accordance with data related to the operation content from the input device 102 received via the interface 114. As a result of the operation, the application 121 generates plaintext data to be encrypted and sent to the server 200 via the network 400. This data is sent to the encryption / decryption unit 122.
  • the application 121 also generates, for example, the above-described image data as a result of the operation.
  • the image data is sent to the interface 114, from which it is sent to the display 101.
  • the transmission / reception unit 123 is a functional block that performs transmission / reception with the server 200 or the like via the network 400.
  • the transmission / reception unit 123 determines a destination of a partner device or writes a predetermined content to transmitted data. It has a well-known function.
  • the transmission / reception unit 123 can perform communication via the network 400 using at least TCP / IP.
  • the transmission / reception unit 123 receives data received from the network 400 by the transmission / reception mechanism via the interface 114.
  • the transmission / reception unit 123 is configured to send the data received from the transmission / reception mechanism to the encryption / decryption unit 122 via the interface 114. In addition, the transmission / reception unit 123 may receive data from the encryption / decryption unit 122. The transmission / reception unit 123 sends the data received from the encryption / decryption unit 122 to the interface 114, and sends the data to the server 200 from the transmission / reception mechanism via the network 400.
  • the encryption / decryption unit 122 performs a decryption process on the necessary data among the data received from the transmission / reception unit 123, and performs a decryption process on the necessary data among the data received from the application 121.
  • it performs processing necessary for authentication of the client 100 with the server 200. That is, the encryption / decryption unit 122 plays a central role in the encrypted communication between the client 100 and the server 200 in the present invention, and the computer program for causing the computer of the present invention to function as a client It can be said that it is generated in the client 100.
  • data about the operation content input from the input device 102 may be input to the encryption / decryption unit 122 via the interface 114.
  • the encryption / decryption unit 122 includes an input unit 122A, a main control unit 122B, a client solution generation unit 122C, a solution data recording unit 122D, a client first encryption / decryption unit 122E, and a client second encryption / decryption unit 122F. , And the output unit 122G is generated.
  • the input unit 122A receives data from the interface 114 or the application 121. When data about the operation content is input from the input device 102 through the interface 114, the input unit 122A sends the data to the main control unit 122B. Also, as will be described later, encrypted data sent from the server 200 and data encrypted with a common key are sent to the input unit 122A via the interface 114 and the transmission / reception unit 123. Sometimes. Upon receiving the data, the input unit 122A sends it to the client second encryption / decryption unit 122F. In addition, as described later, the common key data transmitted in an encrypted state from the server 200 may be input to the input unit 122A via the interface 114 and the transmission / reception unit 123.
  • the input unit 122A Upon receiving such data, the input unit 122A sends it to the client first encryption / decryption unit 122E.
  • the input unit 122A may also receive data transmitted from the application 121 via the interface 114 and the transmission / reception unit 123. As will be described later, this data is intended to be encrypted before being sent to the server 200.
  • the input unit 122A Upon receipt of this data, the input unit 122A sends the data to the client second encryption / decryption unit 122F. It is like that.
  • the main control unit 122B controls the entire encryption / decryption unit 122. As described above, the main control unit 122B may receive data on the operation content from the input unit 122A, and when receiving the data, an instruction based on the data is appropriately sent to the functional block in the encryption / decryption unit 122. To send. For example, when receiving certain data, the main control unit 122B sends an instruction to generate a solution to the client solution generation unit 122C.
  • the client solution generation unit 122C can generate solutions continuously.
  • a solution is at least one sequence of numbers, letters and symbols.
  • the server 200 has a server solution generation unit, and the server solution generation unit also generates solutions continuously. However, the server solution generation unit generates a solution and a client solution generation unit.
  • the solutions generated by 122C are compared, if the solutions generated under the common conditions are compared with each other, the two always match. To put it simply, the client solution generator 122C and the server solution generator are synchronized, or the solution generated by the client solution generator 122C and the solution generated by the server solution generator are synchronized. Yes.
  • any method may be used for generating a solution by the client solution generation unit 122C and the server solution generation unit.
  • the client solution generation unit 122C and the server solution generation unit may generate any solution as long as the above-described conditions are satisfied.
  • Such a technique has already been completed and put into practical use as a technique for generating a one-time password.
  • Such technology can be used in the client solution generation unit 122C and the server solution generation unit. Since the server solution generation unit is the same, only the client solution generation unit 122C will be referred to, but more specifically, the client solution generation unit 122C performs, for example, a solution by performing a predetermined operation on a certain initial value.
  • 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.
  • B is a new solution that uses one past solution and arranges the number of digits of the solution to the P power as described above.
  • C uses the previous four solutions, takes the product of P-power, Q-power, R-power, and S-power, respectively, and then sets the number of digits as described above as the new solution It is.
  • the above-mentioned (a) to (c) are examples of an algorithm 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. Further, if time dependency is given to the above-described solution, that is, a change in accordance with the time at that time can be added.
  • the server solution generation unit in the server 200 and the client solution generation unit 122C can synchronize the solutions as described above.
  • the client solution generation unit 122C of this embodiment generates a solution using the algorithm (a). In that case, in order to generate a new solution, an initial value or a past solution is required.
  • the initial value is recorded in the solution data recording unit 122D, and each time the client solution generation unit 122C generates a new solution, the initial value is overwritten with a new solution, and the new solution is overwritten with a new solution. It is like that.
  • the initial value or the solution is recorded in the solution data recording unit 122D in this way, and the client solution generation unit 122C reads a new solution from the solution data recording unit 122D every time a new solution is generated. Yes. If the solution is generated, the client solution generation unit 122C sends the solution to the client first encryption / decryption unit 122E or the output unit 122G.
  • the client first encryption / decryption unit 122E can perform encryption and decryption processing. However, in this embodiment, it is sufficient that at least the decoding process can be performed as described later.
  • the client first encryption / decryption unit 122E can decrypt at least the data encrypted by a server first encryption / decryption unit (to be described later) of the server 200.
  • the solution is used for encryption and decryption in the client first encryption / decryption unit 122E.
  • the solution generated by the client solution generation unit 122C as described above is sent from the client solution generation unit 122C to the client first encryption / decryption unit 122E, and the solution is transmitted by the client first encryption / decryption unit 122E. Used when decryption is performed.
  • the common key data encrypted from the input unit 122A is sent to the client first encryption / decryption unit 122E.
  • the common key data is sent from the server 200 as described later, and is also encrypted by the server first encryption / decryption unit of the server 200 as described later. That is, the client first encryption / decryption unit 122E can decrypt the encrypted common key data by using the solution.
  • the client first encryption / decryption unit 122E is configured to send the decrypted common key data to the client second encryption / decryption unit 122F.
  • the client second encryption / decryption unit 122F performs encryption / decryption processing.
  • the encryption and decryption processes performed here are performed using the common key sent from the client first encryption / decryption unit 122E.
  • the target of encryption is plaintext data sent from the application 121 via the input unit 122A, and the target of decryption is from the server 200, the network 400, the transmission / reception mechanism, and the interface 114. , Encrypted data sent via the input unit 122A.
  • the encryption / decryption processing performed by the client second encryption / decryption unit 122F may be any common-key encryption / decryption performed using a common key.
  • the client second encryption / decryption unit 122F can execute the DES encryption method.
  • the client second encryption / decryption unit 122F is configured to send the encrypted data sent from the application 121 to the output unit 122G, and to send the encrypted data sent from the server 200.
  • the decrypted data is sent to the output unit 122G.
  • the output unit 122G is for outputting data generated in the encryption / decryption unit 122 to the outside.
  • a solution may be sent from the client solution generation unit 122C to the output unit 122G, and data sent from the application 121 from the client second encryption / decryption unit 122F is subjected to client second encryption / decryption. There are cases where the data encrypted by the unit 122F and the data encrypted by the client second encryption / decryption unit 122F are transmitted.
  • the output unit 122G sends the solution and the data transmitted from the application 121 encrypted by the client second encryption / decryption unit 122F to the interface 114 via the transmission / reception unit 123. ing.
  • the output unit 122G is also configured to send to the application 121 the encrypted data sent from the server 200 and decrypted by the client second encryption / decryption unit 122F. Those data are used in the application 121.
  • the server 200 may be an existing publicly known or well-known server.
  • the hardware configuration may be a general one. Roughly speaking, the hardware configuration of the client 100 in which the CPU 111, the ROM 112, the RAM 113, and the interface 114 are connected by the bus 116 can be followed.
  • the server 200 usually has a HDD or other large-capacity recording device.
  • the configurations and functions of the CPU, ROM, RAM, interface, bus, and mass storage device provided in the server 200 are the same as those in the client 100.
  • the interface included in the server 200 is connected to a transmission / reception mechanism for performing communication via the network 400 with devices outside the server 200, similar to the client 100.
  • the interface provided in the server 200 may be connected to the same display and input device as those provided in the client 100. However, the description is omitted because it is not related to the present application.
  • a computer program recorded in a ROM, a large-capacity recording device or the like inside the server 200 By executing a computer program recorded in a ROM, a large-capacity recording device or the like inside the server 200, functional blocks as described below are generated inside the server 200.
  • the following functional blocks may be generated by a function of a single computer program for causing the server 200 to function as the server of the present invention.
  • a computer program, an OS installed in the server 200, and other computer programs It may be generated in cooperation with.
  • the computer program may be installed on the server 200 via a predetermined recording medium such as a memory card or via a network such as a LAN or the Internet. These circumstances are the same as in the case of the client 100.
  • an application 221, an encryption / decryption unit 222, and a transmission / reception unit 223 are generated in relation to the function of the present invention.
  • the application 221 is publicly known software for displaying a desired image on the browser of the client 100, software for executing payment by Internet banking based on a decision of a user operating the client 100, and the like.
  • the transmission / reception unit 223 is software that transmits and receives data via the network 400, and none of them is generated by the function of the computer program referred to in the present invention. This situation is the same as in the case of the client 100.
  • the application 221 generates unencrypted data that is the source of data that is encrypted and sent from the server 200 to the client 100, and decrypts the data that is encrypted and sent from the client 100 to the server 200. It is to be used after. As long as it is such, the application 221 is not limited to that exemplified above.
  • the application 221 is connected to an interface, and automatically operates according to data relating to operation contents from an input device received via the interface or according to a program created in advance. As a result of the operation, the application 221 generates plain text data to be encrypted and sent to the client 100 via the network 400. This data is sent to the encryption / decryption unit 222.
  • the application 221 may also generate image data, for example, as a result of the operation.
  • the image data is sent to the interface, and from there, it is sent to the display of the server 200 to display the image.
  • the transmission / reception unit 223 is a functional block that performs transmission / reception with the client 100 or the like via the network 400. It has a well-known function.
  • the transmission / reception unit 223 can perform communication via the network 400 using at least TCP / IP.
  • the transmission / reception unit 223 receives data received from the network 400 by the transmission / reception mechanism via the interface.
  • the transmission / reception unit 223 sends data received from the transmission / reception mechanism to the encryption / decryption unit 222 via the interface.
  • the transmission / reception unit 223 may receive data from the encryption / decryption unit 222.
  • the transmission / reception unit 223 sends the data received from the encryption / decryption unit 222 to the interface, and sends the data to the client 100 via the network 400 from the transmission / reception mechanism.
  • the encryption / decryption unit 222 performs a decryption process on the necessary data among the data received from the transmission / reception unit 223, and performs the decryption process on the necessary data among the data received from the application 221.
  • it performs processing necessary for authentication of the client 100 with the server 200. That is, the encryption / decryption unit 222 plays a central role in encrypted communication between the client 100 and the server 200 in the present invention, and a computer program for causing the computer of the present invention to function as a server, It can be said that it is generated in the server 200.
  • data about the operation content input from the input device may be input to the encryption / decryption unit 222 via an interface.
  • the encryption / decryption unit 222 includes an input unit 222A, a main control unit 222B, a server solution generation unit 222C, a solution data recording unit 222D, a server first encryption / decryption unit 222E, and a server second encryption / decryption unit 222F. , An output unit 222G and an authentication unit 222H are generated.
  • the input unit 222A receives data from the interface or application 221. As will be described later, encrypted data sent from the client 100 or data encrypted with a common key may be sent to the input unit 222A via the interface / transmission / reception unit 223. . When receiving the data, the input unit 222A sends the data to the server second encryption / decryption unit 222F. As will be described later, solution data transmitted from the client 100 may be input to the input unit 222A via an interface. When such data is received, the input unit 222A sends it to the main control unit 222B. The input unit 222A may also receive data sent from the application 221 via the interface. As will be described later, this data is intended to be sent to the client 100 after being encrypted. Upon receipt of this data, the input unit 222A sends the data to the server second encryption / decryption unit 222F. It is like that.
  • the main control unit 222B controls the entire encryption / decryption unit 222.
  • the main control unit 222B may receive the solution data sent from the client 100 from the input unit 222A. When the data is received, the main control unit 222B sends it to the authentication unit 222H. In addition, an instruction to generate a solution is sent to the server solution generation unit 222C.
  • the main control unit 222B may also receive authentication data, which will be described later, from the authentication unit 222H. When receiving the authentication data, the main control unit 222B sends an instruction to generate a solution to the server solution generation unit 222C. ing.
  • the main control unit 222B has a function of holding or newly creating a common key.
  • the server solution generation unit 222C can generate solutions continuously as in the client solution generation unit 122C. Each of the solutions generated continuously by the server solution generation unit 222C matches the solution generated continuously by the client solution generation unit 122C under common conditions. In this embodiment, the method of continuously generating solutions by the server solution generation unit 222C and the method of continuously generating solutions by the client solution generation unit 122C are common. In the solution data recording unit 222D, data for generating a new solution, that is, initial values similar to those recorded in the solution data recording unit 122D of the client 100, or past solution data is recorded. Yes. However, the server 200 needs to authenticate many clients 100.
  • the server 200 uses data for identifying each client 100 (in this embodiment, the IP address of each client 100 is used as data for identifying each client 100.
  • data for identifying each client 100 As such data, a unique identifier or the like assigned to each client 100 from the stage at which the client 100 is sold, which is strictly managed by the seller of the client 100 or an organization for performing authentication, etc.
  • data for generating a new solution for each client 100 are recorded in a state of being linked to each other. That is, in this embodiment, the sequence of solutions continuously generated by the client solution generation unit 122C of each client 100 is different, but on the server 200 side, each of the solutions generated by each client 100 is different. The same solution sequence as the different solution sequence can be generated for each client 100.
  • the server solution generator 222C in the server 200 and each of the client solution generators 222C in each client 100 are configured to synchronize the solutions.
  • the server solution generator 222C sends the solution to the server first encryption / decryption unit 222E or the authentication unit 222H.
  • the solution generation unit 222C sends the solution to the authentication unit 222H, the data for identifying the client 100, which was recorded in the solution data recording unit 222D and referred to when generating the solution, is also authenticated. This is sent to the section 222H.
  • the server first encryption / decryption unit 222E can perform encryption / decryption processing. However, in this embodiment, it is only necessary to perform at least encryption processing as will be described later.
  • the data encrypted by the server first encryption / decryption unit 222E can be decrypted by at least the client first encryption / decryption unit 122E of the client 100.
  • the solution is used as in the case of encryption and decryption in the client first encryption / decryption unit 122E.
  • the solution generated by the server solution generation unit 222C is sent from the server solution generation unit 222C to the server first encryption / decryption unit 222E, and the solution is transmitted by the server first encryption / decryption unit 222E. Used when encryption is performed.
  • the common key data is sent from the main control unit 222B to the server first encryption / decryption unit 222E.
  • the common key data is sent to the client 100 as will be described later, and is encrypted by the server first encryption / decryption unit 222E.
  • the encrypted common key data is decrypted by the client first encryption / decryption unit 122E and returned to the common key data.
  • the server first encryption / decryption unit 222E is configured to send unencrypted common key data to the server second encryption / decryption unit 222F. Further, the server first encryption / decryption unit 222E sends the encrypted common key data to the output unit 222G.
  • the server second encryption / decryption unit 222F performs encryption / decryption processing.
  • the encryption and decryption processing performed here is performed using the common key sent from the server first encryption / decryption unit 222E.
  • the object of encryption is plaintext data sent from the application 221 via the input unit 222A, and the object of decryption is from the client 100, the network 400, the transmission / reception mechanism, the interface, This is encrypted data sent via the input unit 222A.
  • the encryption / decryption process performed by the server second encryption / decryption unit 222F may be any common key type encryption / decryption process using a common key, but the same common key
  • the data encrypted here can be decrypted by the client second encryption / decryption unit 122F, and the data encrypted by the client second encryption / decryption unit 122F is decrypted here. It is supposed to be possible.
  • the server second encryption / decryption unit 222F sends the encrypted data sent from the application 221 to the output unit 222G and sends the encrypted data sent from the client 200.
  • the decrypted data is sent to the output unit 222G.
  • the authentication unit 222H is for determining whether or not the client 100 is valid, that is, for authenticating the client 100.
  • solution data sent from the client 100 is sent from the main control unit 222B to the authentication unit 222H.
  • the solution data recording unit 222D sends solution data and data for specifying the client 100 referred to when generating the solution to the authentication unit 222H.
  • the authentication unit 222H uses these three pieces of data to determine whether or not the client 100 is valid, and generates authentication data when the client 100 is authenticated as valid. A specific authentication method will be described later. When such authentication is performed, the authentication unit 222H generates authentication data and sends the authentication data to the main control unit 222B.
  • the output unit 222G is for outputting data generated in the encryption / decryption unit 222 to the outside.
  • the data sent from the application 221 from the server second encryption / decryption unit 222F and the encryption sent from the client 100 are encrypted by the server second encryption / decryption unit 222F.
  • the encrypted data is decrypted by the server second encryption / decryption unit 222F.
  • the output unit 222G is configured to send the data transmitted from the application 221 encrypted by the server second encryption / decryption unit 222F to the interface via the transmission / reception unit 223. These data sent to the interface are sent to the client 100 via the transmission / reception mechanism and the network 400.
  • the output unit 222G is also configured to send to the application 221 the encrypted data sent from the client 100 and decrypted by the server second encryption / decryption unit 222F. Those data are used in the application 221.
  • FIG. 8 is mainly used.
  • the user operates his / her client 100 and tries to communicate between the client 100 and the server 200.
  • the user connects to the server 200 and tries to browse a website provided by the server 200.
  • the user first starts up the application 121 on the client 100 (S1001). If it is the application 121 for browsing a website, a well-known browser will usually be started.
  • the user starts up the browser by appropriately operating the input device 102.
  • the operation content for starting up the browser is sent from the input device 102 to the application 121 via the interface 114.
  • the application 121 operates and image data is sent to the display 101 via the interface 114, whereby a browser is displayed on the display 101 of the client 100.
  • the user tries to browse a website provided by the server 200.
  • the client 100 starts communication with the server 200 by designating the web address (URL) of the server 200 on the browser.
  • the client 100 first starts processing necessary for authentication of the client 100.
  • the data of the operation content is sent from the input device 102 to the input unit 122A via the interface 114.
  • the operation content data is sent from the input unit 122A to the main control unit 122B.
  • the main control unit 122B sends an instruction to generate a solution to the client solution generation unit 122C.
  • the client solution generation unit 122C generates a solution (S1002).
  • the method for generating the solution by the client solution generation unit 122C is as described above. If the client solution generation unit 122C is the first to generate a solution, the client solution generation unit 122C reads the initial value from the solution data recording unit 122D, and if it is not the first time to generate a solution, the client solution generation unit 122C The generation unit 122C reads a solution generated in the past from the solution data recording unit 122D. Based on either of them, the client solution generation unit 122C generates a new solution. The generated solution is sent from the client solution generation unit 122C to the output unit 122G.
  • the output unit 122G sends the received solution to the transmission / reception unit 123.
  • the transmission / reception unit 123 performs predetermined processing such as attaching a header to the solution data according to the TCP / IP rules.
  • the header includes the IP address of the client 100 that is information for identifying the client 100 from other clients 100, the web address of the server 200, and the like.
  • the SSL communication there is a common rule that indicates that the data including the header is a request for SSL communication by describing the number (generally 443) determined as the port number of the other party following the web address. However, this encrypted communication may follow such rules.
  • the solution data with such a header is sent from the transmission / reception unit 123 to the transmission / reception mechanism via the interface 114.
  • the solution data is sent from the transmission / reception mechanism to the server 200 via the Internet (S1003).
  • the solution data can be encrypted by the client 100 and then sent to the server 200, but in this embodiment, the solution is sent to the server 200 without being encrypted.
  • the solution is received by the server 200 (S2001). Specifically, the data including the solution is received by the transmission / reception mechanism of the server 200 and sent from the interface to the transmission / reception unit 223.
  • the transmission / reception unit 223 sends the solution data and the IP address of the client 100 that has sent the solution contained in the header to the input unit 222A. They are sent from the input unit 222A to the main control unit 222B.
  • the main control unit 222B sends the solution and IP address data to the authentication unit 222H in a state of being linked to each other.
  • the main controller 222B sends the data of the IP address to the server solution generator 222C and sends an instruction to the server solution generator 222C to generate a solution.
  • the server solution generation unit 222C receives this, the server solution generation unit 222C generates a solution (S2002).
  • the server solution generation unit 222C receives from the main control unit 222B of data (initial value or past solution data) for generating a new solution for each client 100 recorded in the solution data recording unit 222D. Read what was associated with the IP address. Then, using the initial value or past solution data, a new solution is generated by the method described above.
  • the server solution generation unit 222C transmits the generated solution and the IP address that identifies the client 100 that has transmitted the solution to the authentication unit 222H in a state where they are associated with each other.
  • the authentication unit 222 includes the solution and the IP address sent from the main control unit 222B.
  • the authentication unit 222H has a solution and an IP address sent from the server solution generation unit 222C.
  • the IP address is required from the main control unit 222B described later, which is performed in the authentication unit 222H when a large number of solutions are sent from a plurality of clients 100 in a short time. This is because it may be unclear which solution should be compared with which solution when comparing the sent solution with the solution sent from the server solution generation unit 222C.
  • the solution sent from the main control unit 222B associated with the same IP address is compared with the solution sent from the server solution generation unit 222C.
  • authentication is performed as to whether or not the client 100 that sent the solution is valid.
  • the solution generated by the server solution generation unit 222C is synchronized with the solution generated by the client solution generation unit 122C of each client 100. Therefore, if the client 100 is valid, the above two solutions to be compared should match. If the two match, the authentication unit 222H authenticates that the client 100 that sent the solution is valid, and generates authentication data indicating that (S2003). The authentication data is sent to the main control unit 222B while being associated with the IP address of the client 100 authenticated thereby. If the two solutions do not match, the authentication unit 222H notifies the main control unit 222B that the client 100 is not valid, and the communication between the client 100 and the server 200 can be terminated there. Then it does so. At this time, the server 200 may notify the client 100 that the client 100 has not been authenticated.
  • the main control unit 222B When the main control unit 222B receives the authentication data and the IP address, the main control unit 222B generates a common key for performing encrypted communication with the client 100 specified by the IP address. The generation of the common key may be performed by a known method as described above.
  • the main control unit 222B sends the common key to the server first encryption / decryption unit 222E in a state associated with the IP address, and sends an instruction to generate a new solution to the server solution generation unit 222C. .
  • the server solution generation unit 222C generates at least one solution (S2004). The generated solution is sent to the server first encryption / decryption unit 222E together with the IP address that has triggered the instruction to generate the solution.
  • the conditions under which the solution is generated by the server solution generation unit 222C for example, how many solutions are generated, and which of them (for example, the second generated or the 100th generated) Whether to send the generated data to the server first encryption / decryption unit 222E is determined in advance, and the information is shared with the client 100.
  • the server first encryption / decryption unit 222E encrypts the received common key data (S2005).
  • S2005 common key data
  • the solution sent from the server solution generation unit 222C is used.
  • the solution used when encrypting the common key it is sufficient to select the same IP addresses associated with each other.
  • data obtained as a result of the encryption depends on the solution. Any solution may be used as long as the data obtained as a result of encryption depends on the solution. For example, the solution may be used as an encryption key.
  • the IP address data associated with the common key data is not encrypted.
  • the encrypted common key data is sent to the output unit 222G together with the IP address data associated with the unencrypted common key data.
  • the server first encryption / decryption unit 222E sends the unencrypted common key data to the server second encryption / decryption unit 222F.
  • the server second encryption / decryption unit 222F has a common key necessary for performing encrypted communication using the common key method.
  • the output unit 222G sends the data to the transmission / reception unit 223.
  • the transmission / reception unit 223 attaches a header indicating the transmission destination to the encrypted common key data.
  • the transmission destination can be specified by the above-described IP address.
  • the encrypted common key data with the header is sent from the transmission / reception unit 223 to the interface, and further sent from the transmission / reception mechanism to the client 100 via the network 400 (S2006).
  • the client 100 receives the encrypted common key data (S1004).
  • the encrypted common key data is received by the transmission / reception mechanism of the client 100 and sent to the transmission / reception unit 123 via the interface 114.
  • the transmission / reception unit 123 sends the data to the input unit 122A.
  • the input unit 122A sends the encrypted common key data to the client first encryption / decryption unit 122E.
  • the input unit 122A sends a notification to the main control unit 122B that the encrypted common key data has been received. Receiving this, the main control unit 122B sends an instruction to generate a new solution to the client solution generation unit 122C.
  • the client solution generation unit 122C Upon receiving this instruction, the client solution generation unit 122C generates at least one new solution (S1005).
  • the generated solution is sent from the client solution generation unit 122C to the client first encryption / decryption unit 122E.
  • the client solution generation unit 122C generates a solution, for example, how many solutions are generated, and which one of them (for example, the second one generated, or Whether to send the 100th generated data to the first client encryption / decryption unit 122E is determined in advance, and the information is shared with the server 200. Since the client solution generation unit 122C can continuously generate a solution common to the server solution generation unit 222C under common conditions, the server first encryption / decryption unit 222E is common as a result.
  • the same solution as the solution generated by the server solution generation unit 222C and sent to the server first encryption / decryption unit 222E as the solution used to encrypt the key data is sent from the client solution generation unit 122C to the client first
  • the data is sent to the encryption / decryption unit 122E.
  • the client first encryption / decryption unit 122E decrypts the encrypted common key data and returns it to the unencrypted common key data (S1006).
  • the decryption process in the client first encryption / decryption unit 122E depends on the solution, and when the same solution is used, the data encrypted by the server solution generation unit 222C is decrypted to It is a process that can return to plaintext data.
  • the encrypted common key data returns to the common key data as generated by the main control unit 222B of the server 200. Then, the common key data is sent from the client first encryption / decryption unit 122E to the client second encryption / decryption unit 122F. As a result, the second client encryption / decryption unit 122F has a common key necessary for performing the common key encryption communication. That is, by the above processing, the server second encryption / decryption unit 222F in the server 200 and the client second encryption / decryption unit 122F in the client 100 have a common common key. In this embodiment, the common key originally present in the server 200 is provided from the server 200 to the client 100.
  • the encryption common key provided from the server 200 to the client 100 is encrypted by the server 200 and then provided to the client 100.
  • the same solutions generated respectively by the server 200 and the client 100 are used.
  • the solution exists only inside the server 200 and the client 100, and is not transmitted between the server 200 and the client 100 via the network 400. That is, in the above processing, there is no opportunity to steal a solution necessary for encrypting and decrypting the common key from the viewpoint of a malicious third party.
  • the server 200 and the client 100 Can perform encrypted communication similar to that performed in the process (3) of the conventional SSL communication.
  • Such encrypted communication is realized by sending encrypted data from the client 100 to the server 200 or from the server 200 to the client 100 as necessary (S1007, S2007).
  • the application 121 of the client 100 generates data to be encrypted and sent to the server 200, and the data is sent from the application 121 to the encryption / decryption unit 122.
  • the data is sent to the client second encryption / decryption unit 122F, where it is encrypted using the common key.
  • the encrypted data is sent from the output unit 122G to the transmission / reception unit 123, and the process with the header as described above is performed as necessary, and then sent from the interface 114 to the transmission / reception mechanism.
  • the data is sent to the server 200 via the network 400.
  • Server 200 receives the data by its transmission / reception mechanism.
  • the data is sent from the transmission / reception mechanism of the server 200 to the interface, and then sent to the input unit 222A via the transmission / reception unit 223.
  • the encrypted data is decrypted by the server second encryption / decryption unit 222F using the common key and sent to the output unit 222G.
  • the output unit 222G sends the decrypted data to the application 221, and the application 221 uses the data as appropriate.
  • the application 221 of the server 200 may generate plain text data to be encrypted and sent to the client 100.
  • the data is sent to the input unit 222A in the encryption / decryption unit 222.
  • the data is sent from the input unit 222A to the server second encryption / decryption unit 222F, where it is encrypted using the common key.
  • the data encrypted by the server second encryption / decryption unit 222F is sent to the transmission / reception unit 223 via the output unit 222G.
  • the above-described processing for attaching a header to the encrypted data is performed as necessary.
  • the data subjected to such processing is sent from the transmission / reception unit 223 to the transmission / reception mechanism of the server 200 via the interface, and from there to the client 100 via the network 400.
  • the client 100 receives the data through the transmission / reception mechanism.
  • the data is sent from the transmission / reception mechanism of the client 100 to the interface 114, and then sent to the input unit 122A via the transmission / reception unit 123.
  • the encrypted data is decrypted by the client second encryption / decryption unit 122F using the common key and sent to the output unit 122G.
  • the output unit 122G sends the decrypted data to the application 121, and the application 121 uses the data as appropriate.
  • encrypted communication using the common key method using the common key is performed between the server 200 and the client 100.
  • encryption and decryption are performed by the encryption / decryption unit 222 in the server 200 between the application 221 and the transmission / reception unit 223 that performs TCP / IP communication.
  • the encryption / decryption unit 122 is between the application 121 and the transmission / reception unit 123 that performs TCP / IP communication.
  • Executing encryption and decryption processing between an application and TCP / IP is common to conventional SSL communication protocols, so the invention of this embodiment is replaced with existing SSL communication. It is relatively easy to apply. However, the present invention does not necessarily perform encryption and decryption processing between the application and TCP / IP. When it is not necessary to perform communication, the encrypted communication between the server 200 and the client 100 ends.
  • a communication system in the first modification will be described.
  • the communication system in the first modification is generally the same as that in the first embodiment. The difference is that in the communication between the client 100 and the server 200 in the communication system according to the first embodiment, authentication that the communicating party is valid is authenticated, and the server 200 is that the client 100 is valid. This is only performed by the authentication unit 222H in the server 200. However, in the first modification, the client 100 also authenticates that the server 200 is valid.
  • the authentication unit 122H is provided in the client 100 in the first modification (FIG. 9).
  • the authentication unit 122H is for authenticating the server 200.
  • the authentication method of the server 200 performed by the authentication unit 122H is substantially the same as the authentication method of the client 100 performed by the authentication unit 222H of the server 200, but the method will be described later.
  • the server 200 according to the first modification is not different from the case of the first embodiment in terms of functional blocks, but the functions of some of the functional blocks are different from those of the first embodiment. Which of the functions of each functional block of the server 200 is different from the case of the first embodiment will be described later.
  • the usage method and operation of the communication system of the first modification will be described. Since the method executed in such a communication system is almost the same as that in the first embodiment, the difference will be mainly described (FIG. 10).
  • the processing from S1001 to S1003 in the first embodiment executed by the client 100 and the processing from S2001 to S2003 in the first embodiment executed by the server 200 are the same in the first modification.
  • the authentication unit 222H of the server 200 authenticates that the client 100 is valid (S2003). When such authentication is performed, authentication data is also generated in Modification 1 as in the case of the first embodiment.
  • the authentication unit 222H when the authentication unit 222H generates authentication data, it is sent to the main control unit 222B, followed by processing for generating a new solution (S2004), and encryption of the common key using the new solution The process of (S2005) was performed.
  • a process for authenticating the server 200 by the client 100 is executed.
  • the authentication unit 222H When the authentication unit 222H generates authentication data, the authentication data is sent to the main control unit 222B together with an IP address for identifying the client 100 that has sent the solution that triggered the generation of the authentication data.
  • the main control unit 222B When receiving the authentication data, the main control unit 222B sends the authentication data and the IP address to the server solution generation unit 222C, and sends an instruction to the server solution generation unit 222C to generate a new solution.
  • the server solution generation unit 222C Upon receiving the above data and instructions, the server solution generation unit 222C generates at least one solution for the IP address, and sends one of the generated solutions to the output unit 222G (S2003A). This solution is used when the client 200 authenticates the server 200 later.
  • what number solution is sent from the server solution generation unit 222C to the output unit 222G, that is, what number solution is used by the client 100 for authentication of the server 200 in advance. And is shared between the server 200 and the client 100.
  • the client 100 receives the newly generated solution data from the server 200 (S1003A). Specifically, the client 100 receives the solution data at the transmission / reception mechanism. The received solution data is sent from the transmission / reception mechanism to the transmission / reception unit 123 via the interface 114 and sent to the input unit 122A. The input unit 122A sends the solution data to the main control unit 122B. When the main control unit 122B receives the newly generated solution sent from the server 200, the main control unit 122B sends it to the authentication unit 122H and instructs the client solution generation unit 122C to generate a new solution. send.
  • the server solution generation unit 222C of the server 200 and the client solution generation unit 122C of the client 100 can generate a common solution continuously under common conditions. Therefore, if the server 200 and the client 100 share a condition as to which solution to use for authentication of the server 200 among the continuously generated solutions, the server 200 is valid.
  • the solution sent from the server 200 should match the solution generated by the client solution generation unit 122C.
  • the malicious third party does not know how the solution is generated by the server solution generation unit 222C. Even if the solution generated by the client 100 sent earlier is illegally obtained, the same solution as the solution generated by the server solution generation unit 222C sent from the server 200 to the client 100 is generated.
  • the authentication unit 122H When the server 200 authenticates that it is appropriate, the authentication unit 122H generates client authentication data that is information indicating that. The client authentication data is sent to the main control unit 122B and from there to the output unit 122G. Since there is no need to perform any particular processing on the client authentication data while being sent from the main control unit 122B to the output unit 122G, the route when the client authentication data is sent from the main control unit 122B to the output unit 122G is free . The output unit 122G sends the client authentication data to the transmission / reception unit 123.
  • the server 200 receives authentication data from the client 100 (S2003C).
  • the client authentication data is sent from the transmission / reception mechanism of the server 200 to the input unit 222A via the interface / transmission / reception unit 223 together with the IP address of the client 100 that has sent the client authentication data.
  • the input unit 222A sends the client authentication data together with the IP address to the main control unit 222B.
  • the main control unit 222B Upon receiving this, the main control unit 222B generates a common key.
  • the main control unit 222B sends the generated common key linked to the received IP address to the server first encryption / decryption unit 222E and generates an instruction to generate a new solution.
  • the server solution generation unit 222C generates at least one solution (S2004).
  • the processing from here on in Modification 1 is the same as in the case of the first embodiment.
  • a communication system according to the second embodiment will be described.
  • the configuration and operation of the communication system in the second embodiment are generally the same as those in the communication system in the first embodiment.
  • the communication system according to the second embodiment is different from the communication system according to the first embodiment.
  • the common key originally present in the server 200 is provided from the server 200 to the client 100 in an encrypted state.
  • the server 200 and the client 100 share the common key.
  • the common key originally existing in the client 100 is encrypted. By providing the client 100 to the server 200, the server 200 and the client 100 share the common key.
  • FIG. 11 shows functional blocks generated in the client 100 in the second embodiment
  • FIG. 12 shows functional blocks generated in the server 200 in the second embodiment.
  • the functional block itself generated therein is the same in both the client 100 of the first embodiment and the client 100 of the second embodiment.
  • the functional block itself generated therein does not change in the server 200 of the first embodiment and the server 200 of the second embodiment.
  • the functions of the function blocks in the client 100 or in the server 200 in the second embodiment may be slightly different from those in the first embodiment. The difference will be described later.
  • the authentication unit 222H when the authentication unit 222H generates authentication data, it is sent to the main control unit 222B, followed by processing for generating a new solution (S2004), and encryption of the common key using the new solution The process of (S2005) was performed.
  • the authentication unit 222H when the authentication unit 222H generates authentication data, the authentication data is sent to the client 100, and the common key is encrypted by the client 100. Details will be described below.
  • the client 100 receives the authentication data (S1008). More specifically, the authentication data is received by the transmission / reception mechanism of the client 100. The authentication data received by the transmission / reception mechanism is sent to the transmission / reception unit 123 via the interface 114, and from there to the input unit 122A of the encryption / decryption unit 122. The input unit 122A sends the received authentication data to the main control unit 122B. When receiving the authentication data, the main control unit 122B generates a common key. In the first embodiment, the main control unit 222B of the server 200 has a function of generating a common key. However, in the second embodiment, the function is transferred to the main control unit 122B of the client 100.
  • the main control unit 122B of the client 100 may generate a common key every time it is necessary. You may have a key. For the time being, the main control unit 122B in this embodiment generates the common key data every time it is needed, in other words, every time it receives authentication data. The generated common key data is sent to the client first encryption / decryption unit 122E. On the other hand, the main control unit 122B sends an instruction to generate a new solution to the client solution generation unit 122C. The client solution generation unit 122C that has received such an instruction generates at least one new solution (S1009). Among the generated solutions, a predetermined solution is sent from the client solution generation unit 122C to the client first encryption / decryption unit 122E.
  • This solution is used by the client first encryption / decryption unit 122E when encrypting the common key.
  • Which solution is used when encrypting the common key is determined in advance, and the information is shared with the server first encryption / decryption unit 222E of the server 200.
  • the client first encryption / decryption unit 122E has the common key data and the solution data generated by the client solution generation unit 122C.
  • the first client encryption / decryption unit 122E encrypts the common key data (S1010).
  • the solution data received from the client solution generation unit 122C is used.
  • the encryption processing executed by the client first encryption / decryption unit 122E is the same as the common key encryption processing performed by the server first encryption / decryption unit 222E in the first embodiment. is there.
  • the encrypted common key data is sent from the client first encryption / decryption unit 122E to the output unit 122G.
  • the encrypted common key data is sent from the output unit 122G to the transmission / reception unit 123, where the header as described above is added as necessary.
  • the encrypted common key data to which the header is attached as necessary is sent from the interface 114 to the transmission / reception mechanism of the client 100, and from there to the server 200 via the network (S1011).
  • the client first encryption / decryption unit 122E sends the unencrypted common key data to the client second encryption / decryption unit 122F.
  • the server 200 receives the encrypted common key data from the client 100 (S2009). Receiving the encrypted common key data is performed by the transmission / reception mechanism of the server 200. The encrypted common key data is sent from the transmission / reception mechanism to the transmission / reception unit 223 via the interface. The transmission / reception unit 223 sends the input unit 222A together with the IP address data of the client 100 that has sent the common key. To the main control unit 222B. Receiving them, the main control unit 222B sends the encrypted common key data to the server first encryption / decryption unit 222E. The main control unit 222B sends the received IP address data to the server solution generation unit 222C and also sends an instruction to generate a new solution to the server solution generation unit 222C.
  • the server solution generation unit 222C receives the IP address data and the above instruction, the server solution generation unit 222C reads information necessary for generating a new solution associated with the IP address from the solution data recording unit 222D and uses it. At least one new solution is generated and sent to the server first encryption / decryption unit 222E (S2010). As described above, the server solution generation unit 222C transmits which solution of the newly generated solution data to the server first encryption / decryption unit 222E is shared with the client solution generation unit 122C. Determined by the determined conditions.
  • the solution sent by the client solution generation unit 122C to the client first encryption / decryption unit 122E and the server solution generation unit 222C become the server first encryption / decryption unit 222E.
  • the solution sent to is completely consistent.
  • the server first encryption / decryption unit 222E has the encrypted common key data transmitted from the client 100 and the solution generated by the server solution generation unit 222C.
  • the server first encryption / decryption unit 222E decrypts the encrypted common key data sent from the client 100 using the solution (S2011).
  • Such decryption processing is the same as the processing performed by the client first encryption / decryption unit 122E in the first embodiment.
  • the server first encryption / decryption unit 222E can decrypt the data encrypted by the client first encryption / decryption unit 122E of the client 100, and the client first encryption / decryption unit
  • the solution used when the common key is encrypted by the encryption / decryption unit 122E and the solution sent from the server solution generation unit 222C to the server first encryption / decryption unit 222E are the same as described above. It has become a thing. Therefore, the server first encryption / decryption unit 222E can return the encrypted common key data sent from the client 100 to the original unencrypted common key data.
  • the processes executed by the client first encryption / decryption unit 122E and the server first encryption / decryption unit 222E according to the second embodiment are the same as those in the first embodiment. It is reversed. Therefore, contrary to the case of the first embodiment, the client first encryption / decryption unit 122E in the second embodiment only needs to be able to perform the encryption process, and the server first encryption in the second embodiment. It can be said that the decoding unit 222E only needs to be able to perform only the decoding process.
  • the server first encryption / decryption unit 222E sends the decrypted common key data to the server second encryption / decryption unit 222F.
  • the server second encryption / decryption unit 222F in the server 200 and the client second encryption / decryption unit 122F in the client 100 use the common common key originally present in the client 100 in the second embodiment. It will have a state.
  • the solutions for encrypting and decrypting the common key may be generated inside the client 100 and the server 200 and transmitted between the client 100 and the server 200, respectively. Because there is no third party, there is no opportunity to steal the solution.
  • the server 200 and the client 100 Can perform encrypted communication similar to that performed in the process (3) of the conventional SSL communication. Such processing is the same as the processing of S1007 and S2007 of the first embodiment.
  • the communication system according to the third embodiment corresponds to an invention that should be called the third aspect of the present application.
  • the third invention is generally the same as the communication system of the first embodiment, and includes a client 100 and a server 200 that can be connected to the network 400.
  • the hardware configuration included in the client 100 of the third embodiment and the functional blocks generated therein are the same as in the first embodiment, and the same applies to the server 200.
  • FIG. 14 is mainly used.
  • the user starts up the application 121 on the client 100 as in the case of the first embodiment (S1001).
  • the user tries to browse a website provided by the server 200.
  • the client solution generation unit 122C generates a plurality of solutions (S1102).
  • the method for generating a plurality of solutions is the same as in the first embodiment.
  • One of the solutions is sent to the client first encryption / decryption unit 122E.
  • a common key is sent from the main control unit 122B to the server first encryption / decryption unit 122E.
  • the client first encryption / decryption unit 122E encrypts the common key (S1102).
  • the solution sent from the client solution generation unit 122C is used.
  • the encrypted common key is also sent from the client first encryption / decryption unit 122E to the output unit 122G.
  • the solution sent to the output unit 122G and the encrypted common key data are sent to the server 200 (S1103).
  • the method of transmission follows the first embodiment.
  • the server 200 receives the solution and the encrypted common key data from the client 100 (S2101). The way in which they are received by the server 200 follows the first embodiment.
  • the decrypted and encrypted common key data is sent from the input unit 222A to the main control unit 222B.
  • the main control unit 222B sends the solution to the authentication unit 222H and sends the encrypted common key to the server first encryption / decryption unit 222E.
  • the main control unit 222B instructs the server solution generation unit 222C to generate a solution. Thereby, the server solution generation unit 222C generates a plurality of solutions (S2102).
  • a solution generated under a common condition (in this embodiment, in the same order) as a solution sent from the client 100 to the server 200 is sent from the server solution generation unit 222C to the authentication unit 222H.
  • the authentication unit 222H compares the solution sent from the client 100 with the solution sent from the server solution generation unit 222C, and performs authentication by the same method as in the first embodiment. That is, if the two match, authentication is performed that the client 100 that sent the solution is valid (S2103).
  • the solution is sent from the server solution generation unit 222C to the server first encryption / decryption unit 222E.
  • the server first encryption / decryption unit 222E decrypts the common key encrypted using the solution sent from the server solution generation unit 222C (S2104).
  • the solution sent from the server solution generation unit 222C to the server first encryption / decryption unit 222E is the same as the solution used to encrypt the common key in the client first encryption / decryption unit 122E (this implementation) In the same order in the form). Therefore, it is used when the client first encryption / decryption unit 122E encrypts the common key and the server first encryption / decryption unit 222E decrypts the encrypted common key.
  • the key should be the same if the client 100 is valid. Therefore, as long as there is no interference by a third party, the encrypted common key is decrypted with the same logic as in the first embodiment.
  • the encrypted common key may be decrypted before the client 100 is authenticated. In this case, even if the encrypted common key can be decrypted, if the client 100 cannot be authenticated, the decrypted common key is not used.
  • the server first encryption / decryption unit 222E sends the decrypted common key data to the server second encryption / decryption unit 222F. Through the above processing, the server second encryption / decryption unit 222F in the server 200 and the client second encryption / decryption unit 122F in the client 100 are in a state having a common common key.
  • server second encryption / decryption unit 222F in the server 200 and the client second encryption / decryption unit 122F in the client 100 have a common key, the server 200 and the client 100 Can safely perform the common key encryption communication as described in S1007 and S2007 of the first embodiment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

SSLよりも第三者による攻撃、特にはMITMAによる攻撃に強い暗号化通信の技術を提案する。 クライアントとサーバはともに、同じ条件下では同じ解を生成する機能を持つ。クライアントは、一つ目の解を作り(S1002)、それをサーバに送る(S1003)。サーバは解を受取ると自ら解を作り(S2002)、それがクライアントから受取った解と一致したらクライアントが正当だと認証する(S2003)。サーバは自らが持つ共通鍵を2番目の解を鍵として暗号化して(S2005)、クライアントに送る。クライアントは2番目の解を生成しそれを鍵として暗号化された共通鍵を復号化する(S1007)。サーバとクライアントは、共有した共通鍵で共通鍵方式の暗号化通信を行う。

Description

通信システム、通信用クライアント、通信用サーバ、通信方法、プログラム
 本発明は、通信技術、より詳細には暗号化通信のための技術に関する。
 例えば、インターネット上でインターネット上に存在する店舗への支払いを行う、インターネットバンキングで自らの口座の残高を見たり第三者への送金を行う等という場合には、それらを行うユーザは自らの端末(クライアント)と上記店舗等のサーバとの間でインターネットを介して通信を行う。かかる通信はもちろん秘匿性が高いものでなければならず、暗号化通信の技術が用いられている。
 暗号化通信の技術の1つとしてSSL(secure sockets layer)と呼ばれる技術が実用化されている。なお、本願でSSLと言う場合には、SSLを標準化したものであるTLS(transport layer security)も当然にSSLに含まれる。
 SSLには大きく分けて2つの側面がある。1つは本人確認(認証)であり、もう1つは暗号化通信である。これらがどのように実現されるかについて説明するため、SSL通信で実行される処理について説明する。
 この例では、クライアントとサーバ間でSSL通信が実行されるものとする。
(1)前提処理
 a.サーバは、一対の秘密鍵と公開鍵を生成する。秘密鍵と公開鍵とは、周知のように、そのいずれもが平文のデータを暗号化して暗号化データとすることが可能なものであるとともに、それらの他方で暗号化された暗号化データを復号化して平文のデータに戻すことができるものとされる。他方、サーバには、自己の正当性を相手方が確認するためのデータであるサーバ証明書であって、自己の公開鍵を含み、且つそのサーバ証明書の正当性を示すための電子署名が付されているものがインストールされる。
 b.クライアントは、共通鍵を準備する。共通鍵は、周知のように、平文のデータを暗号化して暗号化データとすることが可能なものであるとともに、同じ共通鍵で暗号化された暗号化データを復号化して平文のデータに戻すことができるものとされる。
 c.クライアントには、ルート証明書がインストールされる。ルート証明書は、ルート認証局が作成したものである。ルート認証局は、上述のサーバ証明書を作成する者でもあり、サーバ証明書に電子署名を付す者でもある。クライアントは、ルート証明書とサーバ証明書に付された電子署名の組合せにより、サーバ証明書の正当性を確認することができる。
(2)サーバとクライアントでの共通鍵の共有
 a.クライアントがサーバにSSL通信の要求を行う。
 b.サーバがクライアントに対して上記サーバ証明書を送信する。上述のように、サーバ証明書には、サーバが用いる公開鍵が含まれ、電子署名が付されている。
 c.クライアントは、自己が所有するルート証明書とサーバ証明書に付された電子署名とを用いてサーバ証明書の正当性を検証し、サーバ証明書が正当であれば自分が通信しているサーバが正当であると認証し、サーバ証明書が不当であればサーバが正当であるとの認証を行わない。
 d.クライアントはサーバを認証した場合には、自己が所有する共通鍵を、サーバから受取ったサーバ証明書に含まれていた公開鍵で暗号化して、サーバに送る。
 e.サーバは、クライアントから受取った暗号化された公開鍵を自己が所有する秘密鍵で復号化する。これにて、クライアントの共通鍵は、クライアントとサーバで共有されることになる。
(3)サーバとクライアント間での暗号化通信
 サーバとクライアントとはともに、自分が持つ共通鍵で暗号化した暗号化データを相手方に送る。サーバとクライアントはともに、相手から受取った暗号化データを自分が持つ共通鍵で復号化する。これにて、サーバとクライアントとの間では暗号化通信が可能となる。
 以上がSSL通信で実行される処理である。
 乱暴であることを承知で言うと、SSL通信で実行したいのは、上記(3)のサーバとクライアント間での暗号化通信のみである。これを、共通鍵を用いて行いたいというのがSSL通信の要点である。なぜ共通鍵でかかる暗号化通信を行いたいかといえば、共通鍵での暗号化通信は、特に公開鍵と秘密鍵とを用いた暗号化通信に較べてその処理が格段に軽いからである。
 もっとも、そのためには、共通鍵をサーバとクライアントとの間で共有しなければならない。それを実現するために、サーバが持つ公開鍵と秘密鍵とを用いてクライアントからサーバに共通鍵が送信されるというのが、SSL通信についての上記(2)の処理である。公開鍵と秘密鍵を使った暗号化通信では、暗号化と復号化に用いられる鍵が上述のように異なる。したがって、公開鍵で暗号化されたクライアントの共通鍵が仮に、クライアントからサーバに送られている途中で悪意のある第三者に盗まれたとしても、当該第三者は秘密鍵を持たないのでクライアントの共通鍵そのものが第三者に盗まれるということはない。この結果には、公開鍵が公開されていることはまったく影響しない。
 クライアントから第三者に共通鍵を送る際には、上述したように、サーバからクライアントに送られてきた公開鍵が用いられる。しかしながら、ここでその公開鍵自体の正当性、ひいては公開鍵を送って来た者(サーバ)の正当性が問題となる。たとえば、悪意のある第三者が公開鍵をクライアントに送ってくることがあるからである。公開鍵乃至それを送ってきた者の正当性を担保するのが、SSL通信についての上記(1)、(2)の処理である。これら処理により、クライアントが、サーバの正当性を確認(認証)することで、SSL通信の正当性が保証されることになる。
 以上の説明によればSSL通信には、悪意の第三者が付け入る隙が無いようにも思われる。しかしながら、実際にはSSL通信でも悪意の第三者による盗聴が発生しており、例えばインターネットバンキングではユーザの口座の金銭がそのユーザの預かり知らない第三者の口座に勝手に送金される等の被害が頻繁に生じている。
 そのようなことが生じる原因は複数あるが、例えば、クライアントにある上述したルート証明書が例えばハッキングや、コンピュータウィルスを用いる等の手法によって改竄されることがその一因となる。また、ルート証明書には通常有効期限があるにもかかわらず、多くのユーザは自らのクライアントにおいてルート証明書の更新をしていない。そうすると、クライアント内にあるルート証明書は改竄されたのと同様の状態となることがあり得る。
 ルート証明書が改竄された場合には、悪意のある第三者は、改竄されたルート証明書によって自らの正当性がクライアントにおいて認証されるような偽のサーバ証明書を自ら作り、ユーザが正当なサーバへとSSL通信の要求を行ったときに、正当なサーバになりすまして、クライアントと正当なサーバとの間に入り込んでその要求を受取る。そしてその正当なサーバになりすました偽のサーバは、自らが作った、偽のサーバ証明書をクライアントへと送信する。そうするとクライアントは、改竄されたルート証明書を使ってその偽のサーバ証明書を正当なものと判断し、ひいては偽のサーバを正当なものと認証する。そうすると、クライアントは自らが持つ共通鍵を偽のサーバ証明書に含まれていた偽の公開鍵で暗号化して、偽のサーバへと送信する。それを受取った偽のサーバは自らが持つ上述の偽の公開鍵と対となった秘密鍵でその暗号化された共通鍵を復号化する。これをもって、クライアントが持っていた共通鍵は、悪意の第三者の手に渡るのである。以降においては、そのクライアントとサーバとの間の通信が仮に共通鍵による暗号化通信であったとしても、その暗号化通信のために必要な共通鍵を所有している悪意の第三者は、その解読を自由に行えるようになる。
 このような、クライアントとサーバの間に悪意の第三者が入り込んで行う攻撃を中間者攻撃(man-in-the-middle attack:MITMA)と称するが、他の暗号化通信の場合と同様、SSLの場合にもこれを防げていない。
 そもそも暗号化通信の分野では、送信者と受信者が同じ鍵を持つ(つまり、共通鍵方式の通信を行う。)というのが基本であり、同じ鍵をどうやって共有するのかという点が古くから問題となっている。かかる問題は鍵の配送問題などと称されるが、SSL通信でもこの鍵の配送問題は解決されていないのである。
 上述したようにSSL通信では最終的に共通鍵方式の通信を行うが、それに先立って、クライアントが持つ共通鍵をどうやって安全にサーバに配送するのかという点が問題となる。SSL通信では上述のように、秘密鍵方式の暗号化通信を初段に用い、且つサーバ証明書とルート証明書とを用いた認証技術を組合せることで、クライアントが持つ共通鍵を安全にサーバに配送せんとしているが、その試みは上述のように、完璧に成し遂げられているとは言えないのである。
 本願発明は、SSLよりも第三者による攻撃、特にはMITMAによる攻撃に強い暗号化通信の技術を提案するものである。
 かかる課題を解決するため、本願発明者は、以下に説明する発明を提案する。
 本願発明は、所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムで実行される通信方法である。かかる通信方法は、現在普及しているSSL通信の一態様であっても良いし、そうでなくても良い。言い換えれば、かかる通信方法は、SSL通信の進化版或いは改良版と捉えることもできるし、SSL通信とは無関係のものと捉えることもできる。本願発明をSSL通信の進化版或いは改良版と捉える(SSLの代替として応用するのであれば、第1通信装置は従来のサーバ、第2通信装置は従来のクライアントという位置づけとなる。なお、本願におけるネットワークは、典型的にはインターネットである。
 そして、本願発明は、以下の過程を含む。
 本願発明は、前記第2通信装置が、その解生成手段で解を生成させ、その解を前記ネットワークを介して前記第1通信装置に送信する過程、前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取る過程、前記第1通信装置が、その解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証する過程、前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第1通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する処理か、又は前記第2通信装置を正当なものと認証したとの通知を前記第1通信装置から受けた前記第2通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する処理の一方を行う過程、前記第1通信装置が前記共通鍵を暗号化した場合には、前記第1通信装置から前記第2通信装置に暗号化された前記共通鍵を前記ネットワークを介して送信するとともに、暗号化された前記共通鍵を受取った前記第2通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて暗号化された前記共通鍵を、前記第1通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する過程、前記第2通信装置が前記共通鍵を暗号化した場合には、前記第2通信装置から前記第1通信装置に暗号化された前記共通鍵を前記ネットワークを介して送信するとともに、暗号化された前記共通鍵を受取った前記第1通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する過程、以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置と、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程、を含んでいる。
 本願発明における上述の最後の過程、つまり、以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置と、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程は、現在のSSL通信の場合でいうのであれば、上記(3)の処理に相当する。つまり、共通鍵方式の暗号化通信自体は極めて一般的であるから必ずしもそうする必要はないが、この部分はSSL通信で現在用いられている上記(3)の処理をそのまま踏襲することが可能である。
 背景技術の欄で説明したように、SSL通信では、共通鍵の配送と、通信相手の認証を如何にして行うかというのが重要である。そして、この課題は他の暗号化通信でも同様に重要である。それらを本願発明では、上述の「以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置と、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程」の前に実現しているのである。以下、その仕組について説明する。
 この発明では、第2通信装置と第1通信装置とで、解生成手段が用いられるというのが特徴的である。第2通信装置と第1通信装置とで用いられる解生成手段は同じものでも同じものでなくても構わないが、少なくとも、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできるものである。解生成手段には、例えば、ワンタイムパスワードの技術を流用することができる。ワンタイムパスワードには、2つの解生成手段で生成されたワンタイムパスワードの同じ順番で生成されたもの同士を比較した場合に両者が同じになるもの、2つの解生成手段で同じ時刻で生成されたもの同士を比較した場合に両者が同じになるもの等の幾つかの方式があるが、ワンタイムパスワードの技術を流用するのであれば、この発明で用いられる解生成手段はそれらのどれでも構わない。
 また、この発明における第2通信装置と第1通信装置とは、同じ解を用いた場合には同じ暗号化と復号化の処理を実行できるようになっている。この場合における、解は事実上、通常の暗号化と復号化の処理における共通鍵として機能する。典型的には、第2通信装置と第1通信装置とは、同じアルゴリズムを用いて、暗号化と復号化の処理を実行できるようになっている。なお、かかる暗号化と復号化の処理は、現在のSSL通信の場合における(2)の処理に相当するものであり、現在のSSL通信の場合における(3)の処理、即ち、「以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置と、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程」で実行される暗号化と復号化とは異なる。
 第1通信装置と第2通信装置とが実行する具体的な処理内容について説明する。
 まず、第2通信装置と第1通信装置との間で暗号化通信を行うにあたり、まず、第2通信装置が、その解生成手段で解を生成させ、その解をネットワークを介して第1通信装置に送信する過程が実行される。
 次に、前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取る過程、が実行される。続けて、第1通信装置にて、認証の処理が行われる。認証の処理は、具体的には以下のようにして行われる。第1通信装置は、第1通信装置の解生成手段で解を生成させ、第1通信装置の解生成手段で生成した解と、第2通信装置から受取った解とを比較する。その結果、第1通信装置は、両者が一致した場合には、解を送ってきた第2通信装置を正当なものと認証し、両者が一致しなかった場合には、第2通信装置は正当なものでないと判断する。上述したように、第1通信装置が持つ解生成手段は、共通条件下で生成されたものを比較すれば第2通信装置で生成された解と同じものとなる解を連続して生成することのできるものとなっている。したがって、正当な第2通信装置から送られてきた解と同じ解を第1通信装置の解生成手段は作ることができるのであるから、上述の如き認証は可能である。
 第1通信装置で、第2通信装置が正当なものと認証された後の処理には2つの場合がある。簡単に言うと、共通鍵を最初に持っているのが第1通信装置の場合と第2通信装置の場合の2つの場合があるのである。前者の場合には、第1通信装置から第2通信装置へ暗号化された共通鍵が送られることにより、共通鍵が第1通信装置と第2通信装置で共有される。後者の場合には、第2通信装置から第1通信装置へと暗号化された共通鍵が送られることにより共通鍵が第1通信装置と第2通信装置で共有される。
 具体的には、前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第1通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する処理が実行される。この処理が実行された場合には、つまり、前記第1通信装置が前記共通鍵を暗号化した場合には、前記第1通信装置から前記第2通信装置に暗号化された前記共通鍵を前記ネットワークを介して送信するとともに、暗号化された前記共通鍵を受取った前記第2通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下(例えば、共通鍵を暗号化するために使われた第1通信装置における解の作られた順番と、その解の第2通信装置内で作られた順番とが同じこと)で生成された解を用いて暗号化された前記共通鍵を、前記第1通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する過程が実行される。上述したように、第1通信装置と第2通信装置はともに、互いに共通する同じ解を連続して発生するための解生成手段を備えている。そして、第1通信装置と第2通信装置とはその解を用いて、同じアルゴリズムで暗号化と復号化を行えるようになっている。したがって、第2通信装置は、第1通信装置である解を用いて暗号化された共通鍵のデータを第1通信装置から受取った場合には、暗号化されたその共通鍵を自ら生成した解を用いて復号化することができる。ここで、重要なのは、第1通信装置が暗号化に用いる解、及び第2通信装置が復号化に用いる解はともに、第2通信装置の認証に使われた解ではなく、第1通信装置及び第2通信装置の解生成手段で生成された解であるということである。これらの解は、第1通信装置又は第2通信装置の内部にのみ存在するものであって、ネットワークを経由して送信されない。したがって、第三者はこの解を盗み取ることが事実上できない。それは即ち、暗号化してネットワーク上を送信される共通鍵のデータを悪意の第三者が盗んだとしても、その復号化を行えないということを意味する。本願発明では、第1通信装置と第2通信装置とが、第2通信装置から第1通信装置に送られた解の後に生成された幾つめの解を共通鍵の暗号化と復号化に用いるかは、第1通信装置と第2通信装置の間で最初から決定しておくことができる。例えば、第2通信装置から第1通信装置に送られた解の次に両者で発生された解を用いるとか、5番目に発生した解を用いるとか、そういう取極めを両者の間で予めしておくことができる。また、第2通信装置から第1通信装置に送られた解或いはそれと一緒に送られたデータ等に依存させるようにして、何番目に発生した解を第1通信装置での共通鍵の暗号化と第2通信装置での共通鍵の復号化に用いるかを変化させることも可能である。更にいえば、第1通信装置が暗号化に使う解と、第2通信装置が復号化に用いる解とは、それぞれ複数であっても良い。この場合には例えば、第1通信装置が共通鍵の暗号化に用いる鍵を、第2通信装置から第1通信装置に送られた解の後の1番目と4番目に発生したもの、第2通信装置が共通鍵の復号化に用いる解も、第2通信装置から第1通信装置に送られた解の後の1番目と4番目に発生したもの、といった取極めを予めしておくことができる。つまり、第1通信装置と第2通信装置で用いられる解は、その数とそれが生成された順番とが共通するものである必要があり、その数と順番についての取極めを第1通信装置と第2通信装置との間で予めしておく必要がある。第1通信装置が暗号化に使う解と、第2通信装置が復号化に用いる解とを複数にすれば、第三者が暗号化された共通鍵を復号化することが益々難しくなる。
 他方、前記第2通信装置を正当なものと認証したとの通知を前記第1通信装置から受けた前記第2通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する処理を実行した場合、つまり、前記第2通信装置が前記共通鍵を暗号化した場合には、前記第2通信装置から前記第1通信装置に暗号化された前記共通鍵を前記ネットワークを介して送信するとともに、暗号化された前記共通鍵を受取った前記第1通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する過程を実行するようにすることも可能である。この場合において、第2通信装置が暗号化に用いる解、及び第1通信装置が復号化に用いる解はともに、第2通信装置の認証に使われた解ではなく、その後に第1通信装置及び第2通信装置の解生成手段で生成された解である。これらの解は、第1通信装置又は第2通信装置の内部にのみ存在するものであって、ネットワークを経由して送信されない。したがって、この場合においても、第三者はこの解を盗み取ることが事実上できない。
 以上、2つの処理のいずれかが実行されることにより、前記第1通信装置と前記第2通信装置で共通鍵が共有されることになる。共有されることになった前記共通鍵を用いて、前記第1通信装置と、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程が最後に実行される。かかる過程は、既に述べた通り、SSL通信で現在用いられている上記(3)の処理をそのまま踏襲することが可能である。第三者に共通鍵が盗み取られていないのであれば、この暗号化通信は安全である。
 なお、上述の通信方法では、基本的に悪意のある第三者が、MITMAで、第2通信装置と第1通信装置との間に入り込むことはできない。第三者が仮に第2通信装置と第1通信装置との間に入り込んだ場合でも、第2通信装置が持つ解生成手段と同じ解生成手段を持たない第三者は、正当な第1通信装置が行う上述の認証を行うことができないからである。もっとも、悪意の第三者は、送られて来た解が正当か否かに関わらず、とりあえず第2通信装置を正当なものと認証してしまうということも考えられる。そうすると、特に第2通信装置が持っていた共通鍵を第2通信装置から第1通信装置に暗号化して送る場合には、第2通信装置の共通鍵を第三者に盗まれる可能性がある。そのようなことを防ぐには、認証を行った第1通信装置が第2通信装置に対して第2通信装置を正当なものだと認証したと通知する場合に、その通知と同時でもそうでなくても良いが、第1通信装置の解生成手段で生成された解を第2通信装置に送信するようにすることができる。その場合、第2通信装置は第1通信装置から解を受取り、その解と、第2通信装置の解生成手段で生成した解とを比較し、両者が一致した場合にはその第1通信装置が適正なものと認証するようにすることができる。第1通信装置と第2通信装置が持つ解生成手段は上述のように共通の解を連続して生成することができるものであるから、正当な第1通信装置が正当な第2通信装置と共通の解を作れるのと同様に、正当な第2通信装置は正当な第1通信装置と共通の解を作ることができる。悪意の第三者は第2通信装置が作るのと共通の解を作ることができないから、第1通信装置側での第2通信装置の認証だけでなく、第2通信装置側での第1通信装置の認証をも行うようにすることで、MITMAが成功する可能性は、殆ど0になる。
 この場合、第1通信装置が第2通信装置に送信する解は、第1通信装置又は第2通信装置で共通鍵を暗号化し、また暗号化された共通鍵を復号化するのに用いられる解としては用いられない。第1通信装置が第2通信装置に送信する解は、第1通信装置又は第2通信装置で共通鍵を暗号化し、また暗号化された共通鍵を復号化するのに用いられる解より先に生成された解でも良いし、それらよりも後に生成された解でも良いが、いずれにせよ第2通信装置が第1通信装置に送った解よりも後に生成された解とすることができる。
 本願発明は、第2通信装置で実行される通信方法と捉えることもできる。かかる通信方法の効果は上記のとおりである。
 その方法は例えば、所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第2通信装置で実行される通信方法である。
 そしてこの通信方法は、前記第2通信装置が実行する、以下の過程を含む。
 その過程は、その解生成手段で解を生成させ、その解を前記ネットワークを介して前記第1通信装置に送信する過程、前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取り、その解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証し、前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第1通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する処理が実行された後に、前記第1通信装置から暗号化された前記共通鍵を前記ネットワークを介して受取る過程、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて、暗号化された前記共通鍵を、前記第1通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する過程、以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置との間で、共通鍵方式の暗号化通信を行う過程、である。
 かかる通信方法では、上述の通り、前記第1通信装置が、自らが持つ共通鍵を暗号化する処理を実行するために、その解生成手段で生成された解を複数用いるとともに、前記第2通信装置が、暗号化された前記共通鍵を復号化する処理を実行するために、その解生成手段で生成された解を複数用いてもよい。
 本願発明を、第2通信装置で実行される通信方法と捉える場合、その通信方法は以下のように捉えることもできる。かかる通信方法の効果は上記のとおりである。
 その方法は例えば、所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第2通信装置で実行される通信方法である。
 そしてこの通信方法は、前記第2通信装置が実行する、以下の過程を含む。
 その過程は、その解生成手段で解を生成させ、その解を前記ネットワークを介して前記第1通信装置に送信する過程、前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取り、その解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証し、前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第1通信装置から前記第2通信装置が正当なものだと認証されたという通知を前記ネットワークを介して受取る過程、前記通知を受取った後に、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する過程、暗号化した共通鍵を、前記第1通信装置へと前記ネットワークを介して送信する過程、前記第1通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて、前記第2通信装置から前記第1通信装置が受取った暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する処理を実行することによって、前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置との間で、共通鍵方式の暗号化通信を行う過程、である。
 かかる通信方法では、上述の通り、前記第2通信装置が、自らが持つ共通鍵を暗号化する処理を実行するために、その解生成手段で生成された解を複数用いるとともに、前記第1通信装置が、暗号化された前記共通鍵を復号化する処理を実行するために、その解生成手段で生成された解を複数用いてもよい。
 本願発明は、第1通信装置で実行される通信方法と捉えることもできる。かかる通信方法の効果は上記のとおりである。
 その方法は例えば、所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第1通信装置で実行される通信方法である。
 そしてこの通信方法は、前記第1通信装置が実行する、以下の過程を含む。
 その過程は、前記第2通信装置が、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、前記第1通信装置の解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証する過程、前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する過程、前記第1通信装置から前記第2通信装置に暗号化された前記共通鍵を前記ネットワークを介して送信する過程、暗号化された前記共通鍵を受取った前記第2通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて、暗号化された前記共通鍵を、前記第1通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化することによって、前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程、である。
 かかる通信方法では、上述の通り、前記第1通信装置が、自らが持つ共通鍵を暗号化する処理を実行するために、その解生成手段で生成された解を複数用いるとともに、前記第2通信装置が、暗号化された前記共通鍵を復号化する処理を実行するために、その解生成手段で生成された解を複数用いてもよい。
 本願発明を、第1通信装置で実行される通信方法と捉える場合、その通信方法は以下のように捉えることもできる。かかる通信方法の効果は上記のとおりである。
 その方法は例えば、所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第1通信装置で実行される通信方法である。
 そしてこの通信方法は、前記第1通信装置が実行する、以下の過程を含む。
 その過程は、前記第2通信装置が、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、前記第1通信装置の解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証する過程、前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第2通信装置を正当なものと認証したとの通知を前記ネットワークを介して前記第2通信装置に送る過程、前記第2通信装置を正当なものと認証したとの通知を前記第1通信装置から受けた前記第2通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する処理を行った後に、前記第2通信装置から前記ネットワークを介して送信された暗号化された前記共通鍵を受取る過程、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて、前記第2通信装置から受取った暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する過程、以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程、である。
 かかる通信方法では、上述の通り、前記第2通信装置が、自らが持つ共通鍵を暗号化する処理を実行するために、その解生成手段で生成された解を複数用いるとともに、前記第1通信装置が、暗号化された前記共通鍵を復号化する処理を実行するために、その解生成手段で生成された解を複数用いてもよい。
 本願発明は、第1通信装置との組合せにより、暗号化通信システムを構成するための、ネットワークに接続可能とされた第2通信装置と捉えることもできる。かかる第2通信装置の効果は上記のとおりである。
 第2通信装置は例えば、解を連続して生成することのできる第1通信装置解生成手段と、前記第1通信装置解生成手段で生成された解を用いた暗号化を行うことができる第1通信装置第1暗号化復号化手段と、認証手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第1通信装置第2暗号化復号化手段と、を備えており、所定のネットワークと接続可能とされている第1通信装置との組合せにより、暗号化通信システムを構成するための、前記ネットワークに接続可能とされた第2通信装置である。
 そして、第2通信装置は、前記第1通信装置解生成手段で生成されたものと共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる第2通信装置解生成手段と、前記第2通信装置解生成手段で生成された解を用いて、同じ解が用いられる場合には前記第1通信装置第1暗号化復号化手段で行われるのと同じ復号化を行うことができる第2通信装置第1暗号化復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第2通信装置第2暗号化復号化手段と、を備えている。
 また、第2通信装置は、前記第2通信装置解生成手段で生成した解を前記ネットワークを介して前記第1通信装置に送るようになっているとともに、前記第1通信装置は、前記第2通信装置から前記ネットワークを介して前記解を受取り、前記第1通信装置解生成手段で解を生成させ、前記第1通信装置解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記認証手段で前記第2通信装置を正当なものと認証するようになっているとともに、前記第2通信装置が正当だとの認証が前記認証手段で行われた場合に、前記第1通信装置解生成手段が2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で前記第1通信装置解生成手段によって生成された解を用いて自らが持つ共通鍵を前記第1通信装置第1暗号化復号化手段で暗号化する処理を実行して、暗号化された前記共通鍵を前記ネットワークを介して前記第2通信装置に送るようになっており、前記第2通信装置解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で前記第2通信装置解生成手段によって生成された解を用いて、前記第1通信装置から受取った暗号化された前記共通鍵を前記第2通信装置第1暗号化復号化手段で復号化するようになっており、以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記第2通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記第1通信装置との間で共通鍵方式の暗号化通信を行うようになっている。
 本願発明を、第1通信装置との組合せにより、暗号化通信システムを構成するための、ネットワークに接続可能とされた第2通信装置と捉える場合、その第2通信装置は以下のように捉えることもできる。かかる第2通信装置の効果は上記のとおりである。
 その第2通信装置は例えば、解を連続して生成することのできる第1通信装置解生成手段と、前記第1通信装置解生成手段で生成された解を用いた復号化を行うことができる第1通信装置第1暗号化復号化手段と、認証手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第1通信装置第2暗号化復号化手段と、を備えており、所定のネットワークと接続可能とされている第1通信装置との組合せにより、暗号化通信システムを構成するための、前記ネットワークに接続可能とされた第2通信装置である。
 そして、第2通信装置は、前記第1通信装置解生成手段で生成されたものと共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる第2通信装置解生成手段と、前記第2通信装置解生成手段で生成された解を用いて、同じ解が用いられる場合には前記第1通信装置第1暗号化復号化手段で行われるのと同じ暗号化を行うことができる第2通信装置第1暗号化復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第2通信装置第2暗号化復号化手段と、を備えている。
 また、第2通信装置は、前記第2通信装置解生成手段で生成した解を前記ネットワークを介して前記第1通信装置に送るようになっているとともに、前記第1通信装置は、前記第2通信装置から前記ネットワークを介して前記解を受取り、前記第1通信装置解生成手段で解を生成させ、前記第1通信装置解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記認証手段で前記第2通信装置を正当なものと認証するようになっているとともに、前記第2通信装置が正当だとの認証が前記認証手段で行われた場合に、前記第2通信装置を正当なものと認証したとの通知を前記ネットワークを介して前記第2通信装置に送るようになっており、前記通知を前記第1通信装置から受けた前記第2通信装置の前記第2通信装置解生成手段が2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を前記第2通信装置第1暗号化復号化手段で暗号化するとともに暗号化された前記共通鍵を前記ネットワークを介して前記第1通信装置に送るようになっており、前記第1通信装置は、前記第1通信装置解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で前記第1通信装置解生成手段によって生成された解を用いて、前記第2通信装置から受取った暗号化された前記共通鍵を前記第1通信装置第1暗号化復号化手段で復号化するようになっており、以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記第2通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記第1通信装置との間で共通鍵方式の暗号化通信を行うようになっている。
 本願発明は、第2通信装置との組合せにより、暗号化通信システムを構成するための、ネットワークに接続可能とされた第1通信装置と捉えることもできる。かかる第1通信装置の効果は上記のとおりである。
 第1通信装置は例えば、解を連続して生成することのできる第2通信装置解生成手段と、前記第2通信装置解生成手段で生成された解を用いた復号化を行うことができる第2通信装置第1暗号化復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第2通信装置第2暗号化復号化手段と、を備えており、前記第2通信装置解生成手段で生成した解を前記ネットワークを介して前記第1通信装置に送るようになっている、所定のネットワークと接続可能とされている第2通信装置との組合せにより、暗号化通信システムを構成するための、前記ネットワークに接続可能とされた第1通信装置である。
 そして、第1通信装置は、前記第2通信装置解生成手段で生成されたものと共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる第1通信装置解生成手段と、前記第1通信装置解生成手段で生成された解を用いて、同じ解が用いられる場合には前記第2通信装置第1暗号化復号化手段で行われるのと同じ暗号化を行うことができる第1通信装置第1暗号化復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第1通信装置第2暗号化復号化手段と、前記第1通信装置解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証するようになっている認証手段と、を備えている。
 また、第1通信装置は、前記第2通信装置が正当だとの認証が前記認証手段で行われた場合に、前記第1通信装置解生成手段が2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で前記第1通信装置解生成手段によって生成された解を用いて自らが持つ共通鍵を前記第1通信装置第1暗号化復号化手段で暗号化する処理を実行して、暗号化された前記共通鍵を前記ネットワークを介して前記第2通信装置に送るようになっており、前記第2通信装置は、前記第2通信装置解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で前記第2通信装置解生成手段によって生成された解を用いて、前記第1通信装置から受取った暗号化された前記共通鍵を前記第2通信装置第1暗号化復号化手段で復号化するようになっており、以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記第2通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記第2通信装置との間で共通鍵方式の暗号化通信を行うようになっている。
 本願発明を、第2通信装置との組合せにより、暗号化通信システムを構成するための、ネットワークに接続可能とされた第1通信装置と捉える場合、その第1通信装置は以下のように捉えることもできる。かかる第1通信装置の効果は上記のとおりである。
 第1通信装置は例えば、解を連続して生成することのできる第2通信装置解生成手段と、前記第2通信装置解生成手段で生成された解を用いた暗号化を行うことができる第2通信装置第1暗号化復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第2通信装置第2暗号化復号化手段と、を備えており、前記第2通信装置解生成手段で生成した解を前記ネットワークを介して前記第1通信装置に送るようになっている、所定のネットワークと接続可能とされている第2通信装置との組合せにより、暗号化通信システムを構成するための、前記ネットワークに接続可能とされた第1通信装置である。
 そして、第1通信装置は、前記第2通信装置解生成手段で生成されたものと共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる第1通信装置解生成手段と、前記第1通信装置解生成手段で生成された解を用いて、同じ解が用いられる場合には前記第2通信装置第1暗号化復号化手段で行われるのと同じ復号化を行うことができる第1通信装置第1暗号化復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第1通信装置第2暗号化復号化手段と、前記第1通信装置解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証するようになっている認証手段と、を備えている。
 また、第1通信装置は、前記第2通信装置が正当だとの認証が前記認証手段で行われた場合に、前記第2通信装置を正当なものと認証したとの通知を前記ネットワークを介して前記第2通信装置に送るようになっており、前記第2通信装置は、前記通知を前記第1通信装置から受けたら、前記第2通信装置解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を前記第2通信装置第1暗号化復号化手段で暗号化するとともに暗号化された前記共通鍵を前記ネットワークを介して前記第1通信装置に送るようになっており、前記第1通信装置解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で前記第1通信装置解生成手段によって生成された解を用いて、前記第2通信装置から受取った暗号化された前記共通鍵を前記第1通信装置第1暗号化復号化手段で復号化するようになっており、以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記第2通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記第2通信装置との間で共通鍵方式の暗号化通信を行うようになっている。
 本願発明は、汎用のコンピュータを、本願発明の第2通信装置として機能させるためのコンピュータプログラムとして捉えることもできる。かかるコンピュータプログラムの効果は上記のとおりである。
 そのコンピュータプログラムは例えば、所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第2通信装置として、コンピュータを機能させるためのコンピュータプログラムである。
 そしてこのコンピュータプログラムは、前記コンピュータに以下の過程を実行させるためのものである。
 その過程は、その解生成手段で解を生成させ、その解を前記ネットワークを介して前記第1通信装置に送信する過程、前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取り、その解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証し、前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第1通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する処理が実行された後に、前記第1通信装置から暗号化された前記共通鍵を前記ネットワークを介して受取る過程、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて暗号化された前記共通鍵を復号化する過程、以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置との間で、共通鍵方式の暗号化通信を行う過程、である。
 本願発明を、汎用のコンピュータを、本願発明の第2通信装置として機能させるためのコンピュータプログラムとして捉える場合、そのコンピュータプログラムは以下のように捉えることもできる。かかるコンピュータプログラムの効果は上記のとおりである。
 そのコンピュータプログラムは例えば、所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第2通信装置として、コンピュータを機能させるためのコンピュータプログラムである。
 そしてこのコンピュータプログラムは、前記コンピュータに以下の過程を実行させるためのものである。
 その過程は、その解生成手段で解を生成させ、その解を前記ネットワークを介して前記第1通信装置に送信する過程、前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取り、その解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証し、前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第1通信装置から前記第2通信装置が正当なものだと認証されたという通知を前記ネットワークを介して受取る過程、前記通知を受取った後に、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する過程、暗号化した共通鍵を、前記第1通信装置へと前記ネットワークを介して送信する過程、前記第1通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて、前記第2通信装置から前記第1通信装置が受取った暗号化された前記共通鍵を復号化する処理を実行することによって、前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置との間で、共通鍵方式の暗号化通信を行う過程、である。
 本願発明は、汎用のコンピュータを、本願発明の第1通信装置として機能させるためのコンピュータプログラムとして捉えることもできる。かかるコンピュータプログラムの効果は上記のとおりである。
 そのコンピュータプログラムは例えば、所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第1通信装置として、コンピュータを機能させるためのコンピュータプログラムである。
 そしてこのコンピュータプログラムは、前記コンピュータに以下の過程を実行させるためのものである。
 その過程は、前記第2通信装置が、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、前記第1通信装置の解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証する過程、前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する過程、前記第1通信装置から前記第2通信装置に暗号化された前記共通鍵を前記ネットワークを介して送信する過程、暗号化された前記共通鍵を受取った前記第2通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて暗号化された前記共通鍵を復号化することによって、前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程、である。
 本願発明を、汎用のコンピュータを、本願発明の第1通信装置として機能させるためのコンピュータプログラムとして捉える場合、そのコンピュータプログラムは以下のように捉えることもできる。かかるコンピュータプログラムの効果は上記のとおりである。
 そのコンピュータプログラムは例えば、所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第1通信装置として、コンピュータを機能させるためのコンピュータプログラムである。
 そしてこのコンピュータプログラムは、前記コンピュータに以下の過程を実行させるためのものである。
 その過程は、前記第2通信装置が、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、前記第1通信装置の解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証する過程、前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第2通信装置を正当なものと認証したとの通知を前記ネットワークを介して前記第2通信装置に送る過程、前記第2通信装置を正当なものと認証したとの通知を前記第1通信装置から受けた前記第2通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する処理を行った後に、前記第2通信装置から前記ネットワークを介して送信された暗号化された前記共通鍵を受取る過程、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて、第2通信装置から受取った暗号化された前記共通鍵を復号化する過程、以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程、である。
 コンピュータを本願発明の第2通信装置として機能させるための上述のコンピュータプログラムは、前記共通鍵方式の暗号化通信を行う場合の暗号化と復号化を、第2通信装置を構成する前記コンピュータ上における、前記コンピュータ上で実行される暗号化の対象となる平文のデータを扱う所定のアプリケーションと、TCP/IPとの間で実行させるようになっているとともに、前記アプリケーションで生成された平文を暗号化してから前記第1通信装置に送信するために前記TCP/IPに渡し、前記TCP/IPから渡された前記第1通信装置から送られてきた暗号化されたデータを平文に復号化してから前記アプリケーションに渡すようになっていてもよい。
 現在のSSL通信のコンピュータプログラムは、アプリケーションと、TCP/IPとの間で暗号化と復号化とを行うようになっている。上述の如きコンピュータプログラムであれば、現在のSSL通信用のコンピュータプログラムに置換するのが容易である。
 コンピュータを本願発明の第1通信装置として機能させるための上述のコンピュータプログラムは、前記共通鍵方式の暗号化通信を行う場合の暗号化と復号化を、第1通信装置を構成する前記コンピュータ上における、前記コンピュータ上で実行される暗号化の対象となる平文のデータを扱う所定のアプリケーションと、TCP/IPとの間で実行させるようになっているとともに、前記アプリケーションで生成された平文を暗号化してから前記第2通信装置に送信するために前記TCP/IPに渡し、前記TCP/IPから渡された前記第2通信装置から送られてきた暗号化されたデータを平文に復号化してから前記アプリケーションに渡すようになっていてもよい。
 これによっても、本願発明の上記コンピュータプログラムで、現在のSSL通信用のコンピュータプログラムを置換するのが容易になる。
 次に、本願の更に異なる態様について説明する。ここまでの発明は、第2通信装置から第1通信装置に解を送り、第1通信装置でまず第2通信装置から第1通信装置に送られてきた解に基いて、第2通信装置についての認証を行い、かかる認証を行う、そしてその後に、第1通信装置又は第2通信装置の一方に存在した共通鍵を暗号化し、それらの他方に対してそれを送信した上でそれらの他方において暗号化された共通鍵を復号化することにより、第1通信装置と第2通信装置で共通鍵を共有する、というものであった。
 これに代えて、第2通信装置から第1通信装置に対して、第1通信装置で上述の認証が行われる前に、解と暗号化された鍵を送ってしまうことも可能である。本願の第3の態様とでもいうべき以下に説明する発明はすべてそのような発明である。
 第3の態様とでもいうべき発明の1つとして、第2通信装置が実行する方法を提案する。
 その方法は、例えば、所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第2通信装置で実行される通信方法である。
 そしてその方法は、前記第2通信装置が実行する、その解生成手段で複数の解を生成させ、その解のうちの1つと、その解のうちの他の1つを用いて自らが持つ共通鍵を暗号化したものと、を前記ネットワークを介して前記第1通信装置に送信する過程、前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取り、その解生成手段で複数の解を生成させ、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた解が前記第2通信装置の解生成手段で生成されたときと共通条件下で生成されたものと、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証するとともに、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた暗号化された前記共通鍵を暗号化する際に使用された解が前記第2通信装置の解生成手段で生成されたときと共通条件下で作成されたものを用いて、前記第2通信装置から前記第1通信装置が受取った暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する処理を実行することによって、前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置との間で、共通鍵方式の暗号化通信を行う過程、を含んでなる。
 第3の態様とでもいうべき発明の1つとして、第1通信装置が実行する方法を提案する。
 その方法は、例えば、所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第1通信装置で実行される通信方法である。
 そしてその方法は、前記第1通信装置が実行する、前記第2通信装置が、その解生成手段で複数の解を生成させ、その解のうちの1つと、その解のうちの他の1つを用いて自らが持つ共通鍵を暗号化したものとを前記ネットワークを介して送ってきた場合に前記解と暗号化された共通鍵とを受取る過程、前記第1通信装置の解生成手段で複数の解を生成させ、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた解が前記第2通信装置の解生成手段で生成されたときと共通条件下で生成されたものと、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証する過程、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた暗号化された前記共通鍵を暗号化する際に使用された解が前記第2通信装置の解生成手段で生成されたときと共通条件下で作成されたものを用いて、前記第2通信装置から受取った暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する過程、以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程、を含んでなる。
 第3の態様とでもいうべき発明の1つとして、第2通信装置を提案する。
 第2通信装置は、例えば、解を連続して生成することのできる第1通信装置解生成手段と、前記第1通信装置解生成手段で生成された解を用いた暗号化と復号化を行うことができる第1通信装置第1暗号化復号化手段と、認証手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第1通信装置第2暗号化復号化手段と、を備えており、所定のネットワークと接続可能とされている第1通信装置との組合せにより、暗号化通信システムを構成するための、前記ネットワークに接続可能とされた第2通信装置であって、前記第1通信装置解生成手段で生成されたものと共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる第2通信装置解生成手段と、前記第2通信装置解生成手段で生成された解を用いて、同じ解が用いられる場合には前記第1通信装置第1暗号化復号化手段で行われるのと同じ暗号化と復号化を行うことができる第2通信装置第1暗号化復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第2通信装置第2暗号化復号化手段と、を備えている。
 そして、第2通信装置は、前記第2通信装置解生成手段で生成した複数の解のうちの1つと、前記第2通信装置解生成手段で生成した解のうちの他の1つを用いて自らが持つ共通鍵を暗号化したものとを前記ネットワークを介して前記第1通信装置に送るようになっているとともに、前記第1通信装置は、前記第2通信装置から前記ネットワークを介して前記解と暗号化された前記共通鍵とを受取り、前記第1通信装置解生成手段で複数の解を生成させ、前記第1通信装置解生成手段で生成した解であって前記第2通信装置から送られてきた解が前記第2通信装置解生成手段で生成されたときと共通条件下で生成されたものと、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記認証手段で前記第2通信装置を正当なものと認証するようになっているとともに、前記第1通信装置解生成手段で生成した解であって前記第2通信装置から送られてきた暗号化された前記共通鍵を暗号化する際に使用された解が前記第2通信装置の解生成手段で生成されたときと共通条件下で作成されたものを用いて、前記第2通信装置から受取った暗号化された前記共通鍵を前記第1通信装置第1暗号化復号化手段で復号化するようになっており、以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記第2通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記第1通信装置との間で共通鍵方式の暗号化通信を行うようになっている。
 第3の態様とでもいうべき発明の1つとして、第1通信装置が実行する方法を提案する。
 第1通信装置は、例えば、解を連続して生成することのできる第2通信装置解生成手段と、前記第2通信装置解生成手段で生成された解を用いた暗号化と復号化を行うことができる第2通信装置第1暗号化復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第2通信装置第2暗号化復号化手段と、を備えており、前記第2通信装置解生成手段で生成した解を前記ネットワークを介して第1通信装置に送るようになっている、所定のネットワークと接続可能とされている第2通信装置との組合せにより、暗号化通信システムを構成するための、前記ネットワークに接続可能とされた第1通信装置であって、前記第2通信装置解生成手段で生成されたものと共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる第1通信装置解生成手段と、前記第1通信装置解生成手段で生成された解を用いて、同じ解が用いられる場合には前記第2通信装置第1暗号化復号化手段で行われるのと同じ暗号化と復号化を行うことができる第1通信装置第1暗号化復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第1通信装置第2暗号化復号化手段と、前記第1通信装置解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証するようになっている認証手段と、を備えている。
 そして、第1通信装置は、前記第2通信装置が、前記第2通信装置解生成手段で生成した複数の解のうちの1つと、前記第2通信装置解生成手段で生成した解のうちの他の1つを用いて自らが持つ共通鍵を暗号化したものとを前記ネットワークを介して前記第1通信装置に送ってきた場合に、それらを受取るようになっているとともに、前記第1通信装置解生成手段で複数の解を生成させ、前記第1通信装置解生成手段で生成した解であって前記第2通信装置から送られてきた解が前記第2通信装置の解生成手段で生成されたときと共通条件下で生成されたものと、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記認証手段で前記第2通信装置を正当なものと認証するようになっているとともに、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた暗号化された前記共通鍵を暗号化する際に使用された解が前記第2通信装置解生成手段で生成されたときと共通条件下で作成されたものを用いて、前記第2通信装置から受取った暗号化された前記共通鍵を前記第1通信装置第1暗号化復号化手段で復号化するようになっており、以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記第2通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記第2通信装置との間で共通鍵方式の暗号化通信を行うようになっている。
 第3の態様とでもいうべき発明の1つとして、汎用のコンピュータを第2通信装置として機能させるためのコンピュータプログラムを提案する。
 そのコンピュータプログラムは、例えば、所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第2通信装置として、コンピュータを機能させるためのコンピュータプログラムである。
 そして、そのコンピュータプログラムは、前記コンピュータに、その解生成手段で複数の解を生成させ、その解のうちの1つと、その解のうちの他の1つを用いて自らが持つ共通鍵を暗号化したものと、を前記ネットワークを介して前記第1通信装置に送信する過程、前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取り、その解生成手段で複数の解を生成させ、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた解が前記第2通信装置の解生成手段で生成されたときと共通条件下で生成されたものと、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証するとともに、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた暗号化された前記共通鍵を暗号化する際に使用された解が前記第2通信装置の解生成手段で生成されたときと共通条件下で作成されたものを用いて、前記第2通信装置から前記第1通信装置が受取った暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する処理を実行することによって、前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置との間で、共通鍵方式の暗号化通信を行う過程、を実行させるためのものとなっている。
 第3の態様とでもいうべき発明の1つとして、汎用のコンピュータを第1通信装置として機能させるためのコンピュータプログラムを提案する。
 そのコンピュータプログラムは、例えば、所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第1通信装置として、コンピュータを機能させるためのコンピュータプログラムである。
 そして、そのコンピュータプログラムは、前記コンピュータに、前記第2通信装置が、その解生成手段で複数の解を生成させ、その解のうちの1つと、その解のうちの他の1つを用いて自らが持つ共通鍵を暗号化したものとを前記ネットワークを介して送ってきた場合に前記解と暗号化された共通鍵とを受取る過程、前記第1通信装置の解生成手段で複数の解を生成させ、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた解が前記第2通信装置の解生成手段で生成されたときと共通条件下で生成されたものと、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証する過程、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた暗号化された前記共通鍵を暗号化する際に使用された解が前記第2通信装置の解生成手段で生成されたときと共通条件下で作成されたものを用いて、前記第2通信装置から受取った暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する過程、以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程、を実行させるためのものとなっている。
第1実施形態による通信システムの全体構成を示す図。 図1に示した通信システムに含まれるクライアントの外観を示す図。 図1に示した通信システムに含まれるクライアントのハードウェア構成を示す図。 図1に示した通信システムに含まれるクライアントの内部に生成される機能ブロックを示すブロック図。 図4に示した暗号化復号化部の内部に生成される機能ブロックを示すブロック図。 図1に示した通信システムに含まれるサーバの内部に生成される機能ブロックを示すブロック図。 図6に示した暗号化復号化部の内部に生成される機能ブロックを示すブロック図。 図1に示した通信システムで通信が行われるときに実行される処理の流れを示す図。 変形例1のクライアントの暗号化復号化部の内部に生成される機能ブロックを示す図。 変形例1の通信システムで通信が行われるときに実行される処理の流れを示す図。 第2実施形態のクライアントの暗号化復号化部の内部に生成される機能ブロックを示す図。 第2実施形態のサーバの暗号化復号化部の内部に生成される機能ブロックを示す図。 第2実施形態の通信システムで通信が行われるときに実行される処理の流れを示す図。 第3実施形態の通信システムで通信が行われるときに実行される処理の流れを示す図。
 以下、本発明の第1~第3実施形態について説明する。各実施形態、変形例の説明で同じ対象には同一の符号を付すものとし、重複する説明は場合により省略するものとする。
≪第1実施形態≫
 図1に、第1実施形態の通信システムの全体構成を概略で示す。
 通信システムは、複数のクライアント100-1~100-N(以後、単に、「クライアント100」と記載する場合もある。)、及びサーバ200を含んで構成されている。これらはすべて、ネットワーク400に接続可能とされている。
 ネットワーク400は、これには限られないが、この実施形態ではインターネットである。
 この実施形態におけるクライアント100は、本願でいう第2通信装置に相当するものである。また、この実施形態におけるサーバ200は本願でいう第2通信装置に相当する。もっとも本願における第1通信装置と第2通信装置に相当するサーバ200とクライアント100とは、いわゆるサーバとクライアントの関係である必要はなく、2つの互いに対等な通信装置であっても構わない。
 クライアント100は、本願でいうクライアントに相当するものであり、コンピュータを含んでいる。より詳細には、この実施形態におけるクライアント100は、汎用のコンピュータにより構成されている。
 次に、クライアント100の構成を説明する。各クライアント100-1~100-Nの構成は、本願発明との関連でいえば同じである。
 クライアント100は、携帯電話、スマートフォン、タブレット、ノート型パソコン、デスクトップ型パソコン等である。それらはすべて、ネットワーク400を介しての通信が可能なものであり、また後述するコンピュータプログラムをインストールすることによって後述する機能ブロックをその内部に生成し、そして後述する処理を実行できるものであることが求められ、それが可能であるのであればそれ以外の仕様は特に問わない。
 例えば、クライアント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のハードウェア構成を、図3に示す。
 ハードウェアには、CPU(central processing unit)111、ROM(read only memory)112、RAM(random access memory)113、インターフェイス114が含まれており、これらはバス116によって相互に接続されている。
 CPU111は、演算を行う演算装置である。CPU111は、例えば、ROM112、或いはRAM113に記録されたコンピュータプログラムを実行することにより、後述する処理を実行する。図示をしていないが、ハードウェアは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を介して外部、例えば、サーバ200に送られるようになっている。
 CPU111がコンピュータプログラムを実行することにより、クライアント100内部には、図4で示されたような機能ブロックが生成される。なお、以下の機能ブロックは、クライアント100を本願発明のクライアントとして機能させるための上述のコンピュータプログラム単体の機能により生成されていても良いが、上述のコンピュータプログラムと、クライアント100にインストールされたOSその他のコンピュータプログラムとの協働により生成されても良い。
 クライアント100内には、本願発明の機能との関係で、アプリケーション121と、暗号化復号化部122と、送受信部123とが生成される。
 もっとも、これらのうちアプリケーション121は、公知のブラウザのソフトウェア、電子メールのソフトウェア等であり、また、送受信部123はネットワーク400を介してのデータの送受信を行うソフトウェアであって、いずれもが本願発明でいうコンピュータプログラムの機能によって生成されるものではない。
 アプリケーション121は、クライアント100からサーバ200に暗号化して送られるデータの元となる暗号化されていないデータを生成するものであり、またサーバ200からクライアント100へ暗号化して送られたデータを復号化してから使用するものである。そのようなものである限り、アプリケーション121は上で例示したものに限られない。アプリケーション121はインターフェイス114と接続されており、インターフェイス114を介して受取る入力装置102からの操作内容に関するデータにしたがって動作する。アプリケーション121はその動作の結果、暗号化してネットワーク400を介してサーバ200に送るべき平文のデータを生成する。このデータは暗号化復号化部122に送られるようになっている。アプリケーション121は、また、動作の結果、例えば上述した画像データを生成する。画像データはインターフェイス114に送られ、そこからディスプレイ101に送られるようになっている。
 また、送受信部123は、サーバ200等とネットワーク400を介して送受信を行う機能ブロックであって、例えば相手装置の宛先を決定したり、送信されるデータに所定の内容を書き込んだりという、公知、周知の機能を有している。送受信部123は、少なくともTCP/IPを用いてネットワーク400を介しての通信を行えるようになっている。送受信部123は、送受信機構がネットワーク400から受取ったデータをインターフェイス114を介して受取る。送受信部123は、インターフェイス114を介して送受信機構から受取ったデータを暗号化復号化部122へ送るようになっている。また、送受信部123は、暗号化復号化部122からデータを受取る場合がある。送受信部123はその暗号化復号化部122から受取ったデータをインターフェイス114に送り、送受信機構からネットワーク400を介してサーバ200へ送るようになっている。
 暗号化復号化部122は、簡単にいうと、送受信部123から受取ったデータのうち必要なものに復号化の処理を行い、また、アプリケーション121から受取ったデータのうちの必要なものに対して暗号化の処理を行う機能を有するとともに、サーバ200との間のクライアント100の認証に必要な処理を行うものである。つまり、暗号化復号化部122は、本願発明におけるクライアント100とサーバ200の間の暗号化通信の中心的な役割を担うものであり、本願発明のコンピュータをクライアントとして機能させるためのコンピュータプログラムにより、クライアント100内に生成されるものであると言える。
 また、暗号化復号化部122には、入力装置102から入力された操作内容についてのデータが、インターフェイス114を介して入力される場合がある。
 暗号化復号化部122の中には入力部122A、主制御部122B、クライアント解生成部122C、解データ記録部122D、クライアント第1暗号化復号化部122E、クライアント第2暗号化復号化部122F、及び出力部122Gが生成される。
 入力部122Aは、インターフェイス114又はアプリケーション121からデータを受取るものである。インターフェイス114を介して入力装置102から操作内容についてのデータが入力された場合には、入力部122Aは、それを主制御部122Bに送るようになっている。また、入力部122Aには後述するように、サーバ200から送られてきた暗号化されたデータ、それも共通鍵で暗号化されたデータが、インターフェイス114、送受信部123を介して送られてくることがある。そのデータを受取ったら入力部122Aは、それをクライアント第2暗号化復号化部122Fに送るようになっている。入力部122Aには、また、後述するように、サーバ200から暗号化された状態で送られてきた共通鍵のデータが、インターフェイス114、送受信部123を介して入力される場合がある。かかるデータを受取ったら入力部122Aは、それをクライアント第1暗号化復号化部122Eに送るようになっている。入力部122Aはまた、インターフェイス114、送受信部123を介してアプリケーション121から送られてきたデータを受取ることがある。このデータは後述するように、暗号化してからサーバ200に送られることを意図したものであるが、このデータを受取ったら入力部122Aは、そのデータをクライアント第2暗号化復号化部122Fに送るようになっている。
 主制御部122Bは、暗号化復号化部122全体の制御を行うものである。主制御部122Bは上述のように、入力部122Aから操作内容についてのデータを受取る場合があり、それを受取った場合には、それに基づいた指示を適宜暗号化復号化部122内の機能ブロックに送るようになっている。例えば、あるデータを受取った場合、主制御部122Bは、クライアント解生成部122Cに対して解を生成せよとの指示を送るようになっている。
 クライアント解生成部122Cは、解を連続して生成することのできるものとされている。解は、数字、文字、記号の少なくとも1つの羅列である。後述するように、サーバ200にはサーバ解生成部が存在し、サーバ解生成部も連続して解を生成するようになっているが、サーバ解生成部が生成する解と、クライアント解生成部122Cが生成する解とを比較した場合、共通条件下で生成された解同士を比較すれば両者は常に一致するようになっている。簡単に言えば、クライアント解生成部122Cと、サーバ解生成部とは同期されており、或いはクライアント解生成部122Cで生成される解と、サーバ解生成部で生成される解とは同期されている。それが可能な限り、クライアント解生成部122C及びサーバ解生成部で解を生成する方法はどのようなものでもよい。
 クライアント解生成部122Cとサーバ解生成部で解を生成する方法が、上述の条件が充足される限りどのようなものでもよいのは既に述べたとおりである。そのような技術は既に、ワンタイムパスワードの生成の技術として完成し、実用されている。クライアント解生成部122C及びサーバ解生成部では、そのような技術を流用することができる。サーバ解生成部でも同じであるからクライアント解生成部122Cについてのみに言及するが、より詳細には、クライアント解生成部122Cは、例えば、ある初期値に対して決められた演算を行うことで解を得て、次いでその解に対して再び決められた演算を行うことで次の解を得て、次いでその解に対して再び決められた演算を行うことで次の解を得て…、という処理を繰り返すことで、連続して解を生成するものとすることができる。このような技術は、擬似乱数を生成するための技術として周知である。
 解を生成するより具体的な方法について説明する。
 解を生成するには、ある初期値(以下の、(a)、(c)のように2つ以上の場合もある)を用い、過去の値を所定の関数に代入することにより、新しい値を順次作るという方法を、解が必要となる度に実行すれば良い。そうすることにより、上記解を連続して生成することができる。この場合の解は、初期値依存性のある擬似乱数となる。
 上述の解を作るのに使われる関数の例として、以下の(a)~(c)を挙げる。以下の(a)~(c)はいずれも、N番目の解であるXを作るための式である。また、P、Q、R、Sは自然数である。
(a)(X)=(XN-1+(XN-2
(b)(X)=(XN-1
(c)(X)=(XN-1(XN-2(XN-3R(XN-4S
 (a)は、過去の解2つを用い、それらをそれぞれP乗とQ乗したものを足し合わせることにより、新しい解を生成する。なお、正確には、過去の解2つを用い、それらをP乗とQ乗したものを足し合わせると通常、桁数が増えるため、実際には得られた値のうちの頭から適当な桁数を抜き出す、末尾から適当な桁数を抜き出す、或いはその値のうちの適当な部分から適当な桁数を抜き出すこと等により、新しい解を生成する。
 (b)は、過去の解1つを用い、それをP乗したものの桁数を上述のように整理したものを新しい解とするものである。
 (c)は、過去の解4つを用い、それらをそれぞれP乗、Q乗、R乗、S乗したものの積を取り、その後上述したように桁数を整理したものを新しい解とするものである。
 上述の(a)~(c)は解を生成するためのアルゴリズムの一例であり、解を生成する際にアルゴリズムに変化を加える、例えば、上述の(a)~(c)を順番に用いる等の変化を加えることも可能である。また、上述の解に、時間依存性を与えれば、つまりそのときの時刻に合わせた変化を加えるようにすることもできる。
 いずれにせよ、サーバ200にあるサーバ解生成部と、クライアント解生成部122Cとは、上述の如く、解を同期させられるようにされている。
 これには限られないが、この実施形態のクライアント解生成部122Cは上記(a)のアルゴリズムを用いて解を生成することとしている。その場合、新しい解を生成するには、初期値乃至過去の解が必要となる。解データ記録部122Dには当初初期値が記録されており、クライアント解生成部122Cが新しい解を生成するたびに、初期値が新しい解により上書きされ、その新しい解が更に新しい解により上書きされるようになっている。解データ記録部122Dには、このように初期値又は解が記録されており、クライアント解生成部122Cは新しい解を生成するたびに、解データ記録部122Dから新しい解を読みだすようになっている。
 クライアント解生成部122Cは、また、解を生成した場合、それをクライアント第1暗号化復号化部122E又は出力部122Gに送るようになっている。
 クライアント第1暗号化復号化部122Eは、暗号化、復号化の処理を行えるようになっている。もっとも、この実施形態では、後述するように少なくとも復号化の処理を行えれば足りる。クライアント第1暗号化復号化部122Eは、サーバ200の後述するサーバ第1暗号化復号化部で暗号化されたデータを少なくとも復号化できるようになっている。クライアント第1暗号化復号化部122Eでの暗号化、復号化には、解が使われる。上述のようにクライアント解生成部122Cで生成された解はクライアント解生成部122Cからクライアント第1暗号化復号化部122Eに送られるが、その解はクライアント第1暗号化復号化部122Eで上述の復号化が行われる際に使用される。他方、クライアント第1暗号化復号化部122Eには、入力部122Aから暗号化された共通鍵のデータが送られてくる。この共通鍵のデータは、後述するようにサーバ200から送られてくるものであり、これも後述するようにサーバ200のサーバ第1暗号化復号化部で暗号化されたものである。つまり、クライアント第1暗号化復号化部122Eは、この暗号化された共通鍵のデータを、解を用いて復号化することができるようになっている。
 クライアント第1暗号化復号化部122Eは、復号化した共通鍵のデータを、クライアント第2暗号化復号化部122Fに送るようになっている。
 クライアント第2暗号化復号化部122Fは、暗号化、復号化の処理を行うものである。ここで行われる暗号化、復号化の処理は、クライアント第1暗号化復号化部122Eから送られてきた共通鍵を用いて行われる。暗号化の対象となるのは、アプリケーション121から入力部122Aを介して送られてきた平文のデータであり、また復号化の対象となるのは、サーバ200から、ネットワーク400、送受信機構、インターフェイス114、入力部122Aを介して送られてきた暗号化されたデータである。
 クライアント第2暗号化復号化部122Fで行われる暗号化、復号化の処理は共通鍵を用いて行われる共通鍵方式の暗号化、復号化であればどのようなものでもよく、例えばSSLの本願の背景技術で述べた(3)の通信で用いられている公知或いは周知の手法をこれに応用することができる。例えば、クライアント第2暗号化復号化部122Fは、DES暗号法を実行するものとすることができる。
 クライアント第2暗号化復号化部122Fは、アプリケーション121から送られてきたデータを暗号化したものを出力部122Gに送るようになっているとともに、サーバ200から送られてきた暗号化されたデータを復号化したものを出力部122Gに送るようになっている。
 出力部122Gは、暗号化復号化部122内で生成されたデータを外部に出力するためのものである。
 出力部122Gには、クライアント解生成部122Cから解が送られてくる場合があり、またクライアント第2暗号化復号化部122Fから、アプリケーション121から送られてきたデータをクライアント第2暗号化復号化部122Fで暗号化したものと、サーバ200から送られてきた暗号化されたデータをクライアント第2暗号化復号化部122Fで復号化したものとが送られてくる場合がある。
 出力部122Gは、これらのうち、解と、アプリケーション121から送られてきたデータをクライアント第2暗号化復号化部122Fで暗号化したものとを送受信部123を介してインターフェイス114に送るようになっている。インターフェイス114に送られたこれらデータは、送受信機構、ネットワーク400を介してサーバ200に送られるようになっている。出力部122Gは、また、サーバ200から送られてきた暗号化されたデータをクライアント第2暗号化復号化部122Fで復号化したものをアプリケーション121に送るようになっている。それらデータは、アプリケーション121で使用される。
 次に、サーバ200の構成について説明する。
 サーバ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へのインストールは、メモリカード等の所定の記録媒体を介して行なわれても良いし、LAN或いはインターネットなどのネットワークを介して行なわれても構わない。これらの事情は、クライアント100の場合と同様である。
 サーバ200内には、本願発明の機能との関係で、アプリケーション221と、暗号化復号化部222と、送受信部223とが生成される。
 もっとも、これらのうちアプリケーション221は、クライアント100のブラウザに所望の画像を表示させるための公知のソフトウェア、クライアント100を操作するユーザの意思決定に基いてインターネットバンキングでの決済を実行するソフトウェア等であり、また、送受信部223はネットワーク400を介してのデータの送受信を行うソフトウェアであって、いずれもが本願発明でいうコンピュータプログラムの機能によって生成されるものではない。この事情は、クライアント100の場合と同様である。
 アプリケーション221は、サーバ200からクライアント100に暗号化して送られるデータの元となる暗号化されていないデータを生成するものであり、またクライアント100からサーバ200へ暗号化して送られたデータを復号化してから使用するものである。そのようなものである限り、アプリケーション221は上で例示したものに限られない。アプリケーション221はインターフェイスと接続されており、インターフェイスを介して受取る入力装置からの操作内容に関するデータにしたがって、或いは予め作成されたプログラムにしたがって自動的に動作する。アプリケーション221はその動作の結果、暗号化してネットワーク400を介してクライアント100に送るべき平文のデータを生成する。このデータは暗号化復号化部222に送られるようになっている。アプリケーション221は、また、動作の結果、例えば画像データを生成する場合がある。画像データはインターフェイスに送られ、そこから、サーバ200のディスプレイに送られて画像を表示する。
 また、送受信部223は、クライアント100等とネットワーク400を介して送受信を行う機能ブロックであって、例えば相手装置の宛先を決定したり、送信されるデータに所定の内容を書き込んだりという、公知、周知の機能を有している。送受信部223は、少なくともTCP/IPを用いてネットワーク400を介しての通信を行えるようになっている。送受信部223は、送受信機構がネットワーク400から受取ったデータをインターフェイスを介して受取る。送受信部223は、インターフェイスを介して送受信機構から受取ったデータを暗号化復号化部222へ送るようになっている。また、送受信部223は、暗号化復号化部222からデータを受取る場合がある。送受信部223はその暗号化復号化部222から受取ったデータをインターフェイスに送り、送受信機構からネットワーク400を介してクライアント100へ送るようになっている。
 暗号化復号化部222は、簡単にいうと、送受信部223から受取ったデータのうち必要なものに復号化の処理を行い、また、アプリケーション221から受取ったデータのうちの必要なものに対して暗号化の処理を行う機能を有するとともに、サーバ200との間のクライアント100の認証に必要な処理を行うものである。つまり、暗号化復号化部222は、本願発明におけるクライアント100とサーバ200の間の暗号化通信の中心的な役割を担うものであり、本願発明のコンピュータをサーバとして機能させるためのコンピュータプログラムにより、サーバ200内に生成されるものであると言える。
 また、暗号化復号化部222には、入力装置から入力された操作内容についてのデータが、インターフェイスを介して入力される場合がある。
 暗号化復号化部222の中には入力部222A、主制御部222B、サーバ解生成部222C、解データ記録部222D、サーバ第1暗号化復号化部222E、サーバ第2暗号化復号化部222F、出力部222G、及び認証部222Hが生成される。
 入力部222Aは、インターフェイス又はアプリケーション221からデータを受取るものである。入力部222Aには後述するように、クライアント100から送られてきた暗号化されたデータ、それも共通鍵で暗号化されたデータが、インターフェイス、送受信部223を介して送られてくることがある。そのデータを受取ったら入力部222Aは、それをサーバ第2暗号化復号化部222Fに送るようになっている。入力部222Aには、また、後述するように、クライアント100から送られてきた解のデータが、インターフェイスを介して入力される場合がある。かかるデータを受取ったら入力部222Aは、それを主制御部222Bに送るようになっている。入力部222Aはまた、インターフェイスを介してアプリケーション221から送られてきたデータを受取ることがある。このデータは後述するように、暗号化してからクライアント100に送られることを意図したものであるが、このデータを受取ったら入力部222Aは、そのデータをサーバ第2暗号化復号化部222Fに送るようになっている。
 主制御部222Bは、暗号化復号化部222全体の制御を行うものである。主制御部222Bには上述のように、入力部222Aから、クライアント100から送られてきた解のデータを受取る場合があり、それを受取った場合には、それを認証部222Hへ送るようになっているとともに、サーバ解生成部222Cに対して解を生成せよとの指示を送るようになっている。主制御部222Bは、また、認証部222Hから後述する認証データを受取ることがあり、それを受取った場合には、サーバ解生成部222Cに対して解を生成せよとの指示を送るようになっている。
 主制御部222Bは、共通鍵を保有しているか、新たに作り出す機能を有している。この実施形態では主制御部222Bは共通鍵を必要になる度に作ることができるようになっている。共通鍵を製造する方法は、周知又は公知技術によればよい。主制御部222Bは、上述の認証データを受取った場合、生成した共通鍵のデータをサーバ第1暗号化復号化部222Eに送るようになっている。
 サーバ解生成部222Cは、クライアント解生成部122C同様に、解を連続して生成することのできるものとされている。サーバ解生成部222Cで連続して生成される解のそれぞれは、共通条件下においてクライアント解生成部122Cで連続して生成される解と一致するようになっている。この実施形態では、サーバ解生成部222Cで解を連続して生成する方法と、クライアント解生成部122Cで解を連続して生成する方法とは共通である。
 解データ記録部222Dには、新たな解を生成するためのデータ、つまり、クライアント100の解データ記録部122Dに記録されていたのと同様の初期値、或いは過去の解のデータが記録されている。もっとも、サーバ200は、多数のクライアント100の認証を行う必要がある。したがって、サーバ200は、各クライアント100を識別するためのデータ(この実施形態では各クライアント100のIPアドレスを、各クライアント100を識別するためのデータとして利用することとしているが、他のデータ例えば各クライアント100が販売された段階から各クライアント100に割り振られている、クライアント100の販売業者や認証を行うための組織等により厳格に管理されている各クライアント100にユニークな識別子等を、かかるデータとして利用することもできる。)と各クライアント100毎の新たな解を生成するためのデータとを、互いに紐付けた状態で記録している。つまり、この実施形態では、各クライアント100のクライアント解生成部122Cで連続して生成される解の列はそれぞれ異なるものとなっているが、サーバ200の側では、各クライアント100で生成されるそれぞれ異なる解の列と同じ解の列を、各クライアント100に対応して生成することができるようになっている。言い換えれば、サーバ200にあるサーバ解生成部222Cと、各クライアント100にあるクライアント解生成部222Cのそれぞれとは、解を同期させられるようにされている。
 サーバ解生成部222Cは、解を生成した場合、それをサーバ第1暗号化復号化部222Eか又は認証部222Hに送るようになっている。解生成部222Cが解を認証部222Hに送るときには、解データ記録部222Dに記録されていたものであり、その解を生成する際に参照された、クライアント100を特定するためのデータをも認証部222Hに送るようになっている。
 サーバ第1暗号化復号化部222Eは、暗号化、復号化の処理を行えるようになっている。もっとも、この実施形態では、後述するように少なくとも暗号化の処理を行えれば足りる。サーバ第1暗号化復号化部222Eが暗号化したデータは、クライアント100の少なくともクライアント第1暗号化復号化部122Eで復号化できるようになっている。サーバ第1暗号化復号化部222Eでの暗号化、復号化には、クライアント第1暗号化復号化部122Eでの暗号化、復号化の場合と同様に、解が使われる。上述のようにサーバ解生成部222Cで生成された解はサーバ解生成部222Cからサーバ第1暗号化復号化部222Eに送られるが、その解はサーバ第1暗号化復号化部222Eで上述の暗号化が行われる際に使用される。他方、サーバ第1暗号化復号化部222Eには、主制御部222Bから共通鍵のデータが送られてくる。この共通鍵のデータは、後述するようにクライアント100に送られるものであり、サーバ第1暗号化復号化部222Eにて暗号化される。この暗号化された共通鍵のデータが、後述するように、クライアント第1暗号化復号化部122Eで復号化され、共通鍵のデータに戻されるのである。
 サーバ第1暗号化復号化部222Eは、暗号化していない共通鍵のデータを、サーバ第2暗号化復号化部222Fに送るようになっている。また、サーバ第1暗号化復号化部222Eは、暗号化した共通鍵のデータを出力部222Gに送るようになっている。
 サーバ第2暗号化復号化部222Fは、暗号化、復号化の処理を行うものである。ここで行われる暗号化、復号化の処理は、サーバ第1暗号化復号化部222Eから送られてきた共通鍵を用いて行われる。暗号化の対象となるのは、アプリケーション221から入力部222Aを介して送られてきた平文のデータであり、また復号化の対象となるのは、クライアント100から、ネットワーク400、送受信機構、インターフェイス、入力部222Aを介して送られてきた暗号化されたデータである。
 サーバ第2暗号化復号化部222Fで行われる暗号化、復号化の処理は共通鍵を用いて行われる共通鍵方式の暗号化、復号化であればどのようなものでもよいが、同じ共通鍵を用いた場合には、ここで暗号化されたデータはクライアント第2暗号化復号化部122Fで復号化でき、クライアント第2暗号化復号化部122Fで暗号化されたデータは、ここで復号化できるものとされる。
 サーバ第2暗号化復号化部222Fは、アプリケーション221から送られてきたデータを暗号化したものを出力部222Gに送るようになっているとともに、クライアント200から送られてきた暗号化されたデータを復号化したものを出力部222Gに送るようになっている。
 認証部222Hは、クライアント100が正当か否かの判断、つまりクライアント100の認証を行うためのものである。上述したように、認証部222Hには主制御部222Bから、クライアント100から送られてきた解のデータが送られてくる。また、解データ記録部222Dから解のデータと、その解を生成する際に参照されたクライアント100を特定するためのデータが認証部222Hに送られる。認証部222Hは、これら3つのデータを用いてクライアント100が正当か否かについての判断を行い、クライアント100が正当であると認証したときに認証データを生成する。なお、具体的な認証の方法については追って説明する。
 かかる認証が行われた場合には、認証部222Hは認証データを生成し、その認証データを主制御部222Bに送るようになっている。
 出力部222Gは、暗号化復号化部222内で生成されたデータを外部に出力するためのものである。
 出力部222Gには、サーバ第2暗号化復号化部222Fから、アプリケーション221から送られてきたデータをサーバ第2暗号化復号化部222Fで暗号化したものと、クライアント100から送られてきた暗号化されたデータをサーバ第2暗号化復号化部222Fで復号化したものとが送られてくる場合がある。
 出力部222Gは、これらのうち、アプリケーション221から送られてきたデータをサーバ第2暗号化復号化部222Fで暗号化したものを、送受信部223を介してインターフェイスに送るようになっている。インターフェイスに送られたこれらデータは、送受信機構、ネットワーク400を介してクライアント100に送られるようになっている。出力部222Gは、また、クライアント100から送られてきた暗号化されたデータをサーバ第2暗号化復号化部222Fで復号化したものをアプリケーション221に送るようになっている。それらデータは、アプリケーション221で使用される。
 次に、クライアント100とサーバ200を含んでなるこの通信システムの使用方法、及び動作について説明する。
 かかる説明には、主に図8を用いる。
 まず、ユーザは、自らのクライアント100を操作し、クライアント100とサーバ200との間での通信を試みる。例えば、ユーザは、サーバ200に接続して、サーバ200が提供するウェブサイトを閲覧しようとする。
 そのために、ユーザはまず、クライアント100上のアプリケーション121を立ち上げる(S1001)。ウェブサイトを閲覧するためのアプリケーション121であれば、通常は周知のブラウザを立ち上げることになろう。ユーザは、入力装置102を適宜操作してブラウザを立ち上げる。ブラウザを立ち上げるための操作内容は、入力装置102からインターフェイス114を介してアプリケーション121に送られる。それによりアプリケーション121が動作し、画像データがインターフェイス114を介してディスプレイ101に送られることにより、ブラウザがクライアント100のディスプレイ101上に表示される。
 その状態でユーザは、サーバ200が提供するウェブサイトを閲覧しようとする。通常は、サーバ200のウェブアドレス(URL)をブラウザ上で指定することにより、クライアント100はサーバ200との通信を開始する。このとき、クライアント100は、まず、クライアント100の認証に必要な処理を始める。具体的には、サーバ200のウェブアドレスをユーザがブラウザ上で指定すると、その操作内容のデータが入力装置102からインターフェイス114を介して、入力部122Aに送られてくる。この操作内容のデータは入力部122Aから、主制御部122Bに送られる。これを受取った主制御部122Bは、クライアント解生成部122Cに解を生成せよとの指示を送る。クライアント解生成部122Cは、解を生成する(S1002)。
 クライアント解生成部122Cが解を生成する方法は上述した通りである。クライアント解生成部122Cが解を生成するのが初めてなのであれば、クライアント解生成部122Cは解データ記録部122Dから初期値を読出し、また、解を生成するのが初めてでないのであれば、クライアント解生成部122Cは解データ記録部122Dから過去に生成した解を読みだす。そのいずれかに基いて、クライアント解生成部122Cは新たな解を生成する。生成された解は、クライアント解生成部122Cから、出力部122Gへ送られる。
 出力部122Gは、受取った解を送受信部123に送る。送受信部123は、解のデータにTCP/IPの規則にのっとってヘッダを付すなどの所定の処理を行う。このときヘッダには、クライアント100を他のクライアント100から識別するための情報となるクライアント100のIPアドレスや、サーバ200のウェブアドレス等が含まれる。SSLの通信では、ウェブアドレスに続けて相手方のポート番号として決まった数字(一般には443)の記載を行うことによりそのヘッダを含むデータがSSLによる通信を求めるものであることを示すといった共通ルールがあるが、この暗号化通信でもそのようなルールに従ってもよい。いずれにせよ、そのようなヘッダが付された解のデータは、送受信部123から、インターフェイス114を介して、送受信機構に送られる。
 解のデータは、送受信機構から、インターネットを介して、サーバ200に送られる(S1003)。なお、解のデータをクライアント100で暗号化してからサーバ200に送ることも可能であるが、この実施形態では暗号化しないままで解をサーバ200に送ることとしている。
 解は、サーバ200によって受取られる(S2001)。具体的には、解を含むデータは、サーバ200の送受信機構によって受取られ、インターフェイスから、送受信部223に送られる。送受信部223は、そこから解のデータと、ヘッダに含まれていたその解を送ってきたクライアント100のIPアドレスとを入力部222Aへと送る。それらは、入力部222Aから、主制御部222Bへと送られる。
 主制御部222Bは、互いに紐付けた状態で解及びIPアドレスのデータを認証部222Hに送る。
 他方、主制御部222Bは、そのIPアドレスのデータをサーバ解生成部222Cに送るとともに、サーバ解生成部222Cに解を生成せよとの指示を送る。これを受けたサーバ解生成部222Cは、解を生成する(S2002)。サーバ解生成部222Cは、解データ記録部222Dに記録されている各クライアント100についての新たな解を生成するためのデータ(初期値か過去の解のデータ)のうち、主制御部222Bから受取ったIPアドレスと紐付けられていたものを読みだす。そして、その初期値か過去の解のデータを用いて、既に述べた方法で新たな解を生成する。サーバ解生成部222Cは、生成した解と、その解を送ってきたクライアント100を特定するIPアドレスとをそれらを互いに紐付けた状態で認証部222Hへと送る。
 認証部222には、上述のように、主制御部222Bから送られてきた解及びIPアドレスが存在する。他方、認証部222Hには、サーバ解生成部222Cから送られてきた解及びIPアドレスが存在する。ここで、IPアドレスが必要となるのは、短時間の間に複数のクライアント100から多数の解が送られて来た場合には、認証部222Hにおいて行われる、後述する、主制御部222Bから送られてきた解とサーバ解生成部222Cから送られてきた解との対比を行うにあたり、どの解とどの解を対比すべきかが不明となることがあり得るからである。これには限られないが、この実施形態では、同じIPアドレスに紐付けられている主制御部222Bから送られてきた解と、サーバ解生成部222Cから送られてきた解とを比較することにより、その解を送ってきたクライアント100が正当なものであるか否かの認証を行うこととしている。
 上述したように、サーバ解生成部222Cで生成される解は、各クライアント100のクライアント解生成部122Cで生成される解と同期させられている。したがって、クライアント100が正当なものであれば、対比の対象となる上述の2つの解は一致するはずである。両者が一致した場合には、認証部222Hは、その解を送ってきたクライアント100が正当なものであると認証し、その旨を示す認証データを生成する(S2003)。
 認証データは、それにより認証されたクライアント100のIPアドレスと紐付けた状態で、主制御部222Bへと送られる。2つの解が一致しなかったら、認証部222Hはクライアント100が正当でないという旨を主制御部222Bへ通知し、そこでクライアント100とサーバ200の間の通信を打ち切ることが可能であり、この実施形態ではそうしている。このときサーバ200はそのクライアント100に、クライアント100が認証されなかったということを通知するようになっていてももちろん良い。
 主制御部222Bは、認証データとIPアドレスとを受取った場合には、そのIPアドレスで特定されるクライアント100と暗号化通信を行うための共通鍵を生成する。共通鍵の生成は上述したように公知の方法で行えば良い。
 主制御部222Bは、その共通鍵を、上記IPアドレスと紐付けた状態でサーバ第1暗号化復号化部222Eに送るとともに、新たな解を生成せよとの指示をサーバ解生成部222Cに送る。サーバ解生成部222Cは、少なくとも1つの解を生成する(S2004)。生成された解は、その解を生成する指示のきっかけとなったIPアドレスとともにサーバ第1暗号化復号化部222Eに送られる。ここで、サーバ解生成部222Cでどのような条件で解を生成するのか、例えば幾つの解を生成するのか、またそのうちのどれを(例えば、2番目に生成されたものを、或いは100番目に生成されたものを)サーバ第1暗号化復号化部222Eに送るのかは、予め決定されており、その情報はクライアント100と共有されている。
 上述したように、サーバ第1暗号化復号化部222Eは、受取った共通鍵のデータを暗号化する(S2005)。かかる暗号化には、サーバ解生成部222Cから送られてきた解が使われる。共通鍵を暗号化する際に用いる解は、それらに互いに紐付けられたIPアドレスが同じものを選択すればよい。ここで、サーバ第1暗号化復号化部222Eで行われる暗号化は、暗号化の結果得られるデータが解に依存したものとなる。解の使い方は暗号化の結果得られるデータが解に依存する限りどのようなものでも良いが、例えば解を暗号化の鍵として用いてもよい。なお、このときその共通鍵のデータと紐付けられていたIPアドレスのデータは暗号化しない。
 暗号化された共通鍵のデータは、暗号化される前の共通鍵のデータと紐付けられていたIPアドレスのデータとともに出力部222Gへと送られる。
 他方、サーバ第1暗号化復号化部222Eは、暗号化していない状態の共通鍵のデータをサーバ第2暗号化復号化部222Fに送る。これにより、サーバ第2暗号化復号化部222Fは、共通鍵方式の暗号化通信を行うために必要となる共通鍵を持った状態となる。
 出力部222Gは、それらデータを送受信部223へと送る。送受信部223は、暗号化された共通鍵のデータに対して、その送信先を示すヘッダを付す。その送信先は、上述のIPアドレスにより特定可能である。ヘッダを付された暗号化された共通鍵のデータは、送受信部223からインターフェイスに送られ、更には送受信機構から、ネットワーク400を介してクライアント100へと送られる(S2006)。
 クライアント100は、暗号化された共通鍵のデータを受取る(S1004)。暗号化された共通鍵のデータは、クライアント100の送受信機構で受取られ、インターフェイス114を介して、送受信部123に送られる。送受信部123は、そのデータを、入力部122Aに送る。
 入力部122Aは、暗号化された共通鍵のデータをクライアント第1暗号化復号化部122Eへと送る。他方、入力部122Aは、暗号化された共通鍵のデータを受取った旨の通知を主制御部122Bへ送る。これを受取った主制御部122Bは、クライアント解生成部122Cに対して新たな解を生成せよとの指示を送る。
 この指示を受取ったクライアント解生成部122Cは新たな解を少なくとも1つ生成する(S1005)。そして、生成された解はクライアント解生成部122Cからクライアント第1暗号化復号化部122Eに送られる。
 ここで、クライアント解生成部122Cでどのような条件下で解を生成するのか、例えば幾つの解を生成するのか、また、そしてそのうちのどれを(例えば、2番目に生成されたものを、或いは100番目に生成されたものを)クライアント第1暗号化復号化部122Eに送るのかは、予め決定されており、その情報はサーバ200と共有されている。クライアント解生成部122Cは、共通の条件下ではサーバ解生成部222Cと共通の解を連続して生成できるものとなっているのであるから、結果として、サーバ第1暗号化復号化部222Eが共通鍵のデータを暗号化するのに使用する解としてサーバ解生成部222Cが生成してサーバ第1暗号化復号化部222Eに送った解とまったく同じ解が、クライアント解生成部122Cからクライアント第1暗号化復号化部122Eへと送られることになる。
 この解を用いて、クライアント第1暗号化復号化部122Eは、暗号化された共通鍵のデータを復号化して、暗号化されていない共通鍵のデータに戻す(S1006)。クライアント第1暗号化復号化部122Eにおける復号化の処理は、解に依存するものであり、且つ同じ解を用いた場合には、サーバ解生成部222Cで暗号化されたデータを復号化して元の平文のデータに戻すことが可能な処理である。したがって、暗号化された共通鍵のデータは、サーバ200の主制御部222Bが生成した通りの共通鍵のデータに戻る。
 そして、共通鍵のデータは、クライアント第1暗号化復号化部122Eから、クライアント第2暗号化復号化部122Fに送られる。これにより、クライアント第2暗号化復号化部122Fは、共通鍵方式の暗号化通信を行うために必要な共通鍵を持った状態となる。
 つまり、以上の処理により、サーバ200におけるサーバ第2暗号化復号化部222Fと、クライアント100におけるクライアント第2暗号化復号化部122Fとは、共通の共通鍵を持った状態となる。この実施形態では、元々サーバ200内に存在した共通鍵がサーバ200からクライアント100に提供されている。そして、サーバ200からクライアント100に提供される暗号共通鍵は、サーバ200で暗号化してからクライアント100に提供される。サーバ200で共通鍵を暗号化するために、また、クライアント100で暗号化された共通鍵を復号化するために、サーバ200とクライアント100とでそれぞれ生成された同じ解が用いられている。しかも、その解は、サーバ200とクライアント100の内部にのみ存在し、ネットワーク400を介してサーバ200とクライアント100との間を送信されることがない。つまり、以上の処理においては、悪意の第三者から見れば、共通鍵を暗号化し、復号化するために必要な解を盗む機会がない。
 サーバ200におけるサーバ第2暗号化復号化部222Fと、クライアント100におけるクライアント第2暗号化復号化部122Fとが、共通の共通鍵を持った状態となったのであれば、サーバ200とクライアント100とは、従来のSSL通信の上記(3)の過程で実行していたと同様の暗号化通信を行えるようになる。
 かかる暗号化通信は、必要に応じてクライアント100からサーバ200に、或いはサーバ200からクライアント100に、暗号化したデータが送られることにより実現される(S1007、S2007)。
 例えば、クライアント100のアプリケーション121で、暗号化してサーバ200に送るべきデータが生成され、そのデータがアプリケーション121から、暗号化復号化部122に送られる。暗号化復号化部122の入力部122Aがそのデータを受取ると、そのデータはクライアント第2暗号化復号化部122Fに送られ、そこで共通鍵を用いて暗号化される。暗号化されたそのデータは、出力部122Gから、送受信部123へ送られ、上述のようなヘッダを付す処理が必要に応じて行われた上で、インターフェイス114から送受信機構に送られ、そこからネットワーク400を介して、サーバ200に送られる。
 サーバ200は、その送受信機構でそのデータを受取る。そのデータは、サーバ200の送受信機構からインターフェイスに送られ、そして送受信部223を経て、入力部222Aに送られる。その暗号化されたデータは、サーバ第2暗号化復号化部222Fで共通鍵を用いて復号化され、出力部222Gへと送られる。出力部222Gは復号化されたそのデータを、アプリケーション221に送り、アプリケーション221はそのデータを適宜用いる。
 他方、サーバ200のアプリケーション221が、暗号化してクライアント100に送るべき平文のデータを生成する場合がある。アプリケーション221がそのようなデータを生成した場合、そのデータは、暗号化復号化部222中の入力部222Aに送られる。そのデータは、入力部222Aからサーバ第2暗号化復号化部222Fへと送られ、そこで共通鍵を用いて暗号化される。サーバ第2暗号化復号化部222Fで暗号化されたそのデータは、出力部222Gを介して送受信部223に送られる。送受信部223では、その暗号化されたデータにヘッダを付す上述の如き処理が必要に応じて行われる。かかる処理が行われたそのデータは、送受信部223からインターフェイスを介してサーバ200の送受信機構に送られ、そこからネットワーク400を介してクライアント100に送られる。
 クライアント100は、その送受信機構でそのデータを受取る。そのデータは、クライアント100の送受信機構からインターフェイス114に送られ、そして送受信部123を経て、入力部122Aに送られる。その暗号化されたデータは、クライアント第2暗号化復号化部122Fで共通鍵を用いて復号化され、出力部122Gへと送られる。出力部122Gは復号化されたそのデータを、アプリケーション121に送り、アプリケーション121はそのデータを適宜用いる。
 以上のようにして、サーバ200とクライアント100との間で共通鍵を用いた共通鍵方式の暗号化通信が行われる。
 上述の暗号化通信において暗号化、復号化が行われるのは、サーバ200においては、アプリケーション221と、TCP/IPの通信を行う送受信部223との間にある暗号化復号化部222であり、クライアント100においては、アプリケーション121と、TCP/IPの通信を行う送受信部123との間にある暗号化復号化部122である。アプリケーションと、TCP/IPとの間で暗号化と復号化の処理を実行するというのは、従来からのSSL通信のプロトコルに共通するものであるので、この実施形態の発明を既存のSSL通信に応用するのは比較的簡単である。もっとも、本願発明は、暗号化と復号化の処理を必ずしも、アプリケーションと、TCP/IPとの間で行うには及ばない。
 通信を行う必要がなくなれば、サーバ200とクライアント100との間の暗号化通信が終了する。
<変形例1>
 変形例1における通信システムについて説明する。
 変形例1における通信システムは、概ね第1実施形態におけるそれと同様である。異なるのは、第1実施形態における通信システムにおけるクライアント100とサーバ200との間の通信では、通信する相手方が正当であるということについての認証を、サーバ200がクライアント100が正当であるということをサーバ200における認証部222Hで行うのみであったが、変形例1では、クライアント100も、サーバ200が正当であるということを認証するようにしている、という点である。
 以上の相違点にともなって、変形例1におけるクライアント100には、認証部122Hが設けられている(図9)。かかる認証部122Hは、サーバ200の認証を行うためのものである。認証部122Hで行われるサーバ200の認証の方法は、サーバ200の認証部222Hで行われるクライアント100の認証の方法と概ね同じであるが、その方法については追って説明する。
 変形例1におけるサーバ200は、機能ブロックでいえば第1実施形態の場合と変わらないが、一部の機能ブロックの機能が第1実施形態の場合と異なる。サーバ200の各機能ブロックの機能のうちのどこが第1実施形態の場合と異なっているのかについては追って説明する。
 変形例1の通信システムの使用方法、動作について説明する。
 かかる通信システムで実行される方法は、概ね第1実施形態の場合と同じであるので、その差分を中心として説明することにする(図10)。
 まず、クライント100で実行される、第1実施形態におけるS1001~S1003の処理、及びサーバ200で実行される、第1実施形態におけるS2001~S2003までの処理は、変形例1でも同じである。
 変形例1でも、サーバ200の認証部222Hで、クライアント100が正当であるとの認証が行われる(S2003)。かかる認証が行われると、変形例1でも、第1実施形態の場合と同様に認証データが生成される。
 第1実施形態の場合、認証部222Hが認証データを生成すると、それは主制御部222Bに送られ、続けて新たな解の生成(S2004)の処理、新たな解を用いた共通鍵の暗号化(S2005)の処理が行われた。しかしながら、変形例1の場合には、認証部222Hが認証データを生成した後に、クライアント100でサーバ200を認証する処理が実行されることになる。
 認証部222Hが認証データを生成すると、認証データは、その認証データを生成するきっかけとなった解を送って来たクライアント100を特定するためのIPアドレスとともに、主制御部222Bに送られる。認証データを受取ると、主制御部222Bは、その認証データとIPアドレスとをサーバ解生成部222Cに送るとともに、サーバ解生成部222Cに対して新たな解を生成せよとの指示を送る。以上のデータ及び指示を受けると、サーバ解生成部222CはそのIPアドレスについての解を少なくとも1つ生成し、生成した解の中の1つを出力部222Gに送る(S2003A)。この解は、追ってクライアント100でサーバ200の認証が行われるときに使用されるものである。サーバ200において、何番目の解がサーバ解生成部222Cから出力部222Gに送られるのかということ、つまり何番目の解がサーバ200の認証のためにクライアント100で使用されるのかということは、予め定められており、サーバ200とクライアント100との間で共有されている。新たに生成された解は、IPアドレスのデータとともに、サーバ解生成部222Cから出力部222Gへと送られる。
 出力部222Gは、受取った解とIPアドレスのデータを、送受信部223に送る。送受信部223は、上述したようにヘッダを生成し、ヘッダの付された新たに生成された解のデータをインターフェイスを介してサーバ200の送受信機構に送る。新たに生成された解のデータは、サーバ200から、上記IPアドレスで特定されるクライアント100へと送られることになる(S2003B)。
 クライアント100は、新たに生成された解のデータをサーバ200から受取る(S1003A)。
 具体的には、クライアント100は、その解のデータを、その送受信機構にて受取る。受取られた解のデータは、送受信機構から、インターフェイス114を介して送受信部123に送られ、入力部122Aに送られる。入力部122Aは、その解のデータを主制御部122Bに送る。
 主制御部122Bは、サーバ200から送られてきた新たに生成された解を受取ると、それを認証部122Hに送るとともに、クライアント解生成部122Cに対して新たな解を生成せよとの指示を送る。かかる指示を受取るとクライアント解生成部122Cは、少なくとも1つの解を生成し、生成した解のいずれかを認証部122Hに送る(S1003B)。クライアント解生成部122Cが幾つの解を生成し、どの解をクライアント解生成部122Cに送るかという条件乃至それについての情報は、上述のようにサーバ200のサーバ解生成部222Cと共有されている。
 この状態では、クライアント100の認証部122Hには、サーバ200から送られてきた解と、クライアント100のクライアント解生成部122Cで生成された解との双方が存在している。認証部122Hでは、それら2つの解を対比する。その結果、2つの解が一致した場合には認証部122Hは、その解を送ってきたサーバ200が正当なものであると認証する(S1003C)。繰り返しになるが、サーバ200のサーバ解生成部222Cとクライアント100のクライアント解生成部122Cとは、共通の条件下では共通の解を連続して生成することができるようになっている。したがって、連続して生成される解のうちどの解をサーバ200の認証に用いるのかという条件をサーバ200とクライアント100との間で共有しているのであれば、サーバ200が正当なものである限り、サーバ200から送られてきた解は、クライアント解生成部122Cで生成された解と一致するはずである。他方、悪意の第三者がサーバ200になりすまそうとしても、当該悪意の第三者はサーバ解生成部222Cでどのように解が生成されるかを知らないので、仮にクライアント100からサーバ200に先に送られたクライアント100で生成された解を不正に入手していたとしても、サーバ200からクライアント100へ送られた上述のサーバ解生成部222Cで生成された解と同じ解を生成することができない。つまり、クライアント100でサーバ200が適正なものか否かの認証を行う場合には、悪意のある第三者はサーバ200になりすますことが事実上不可能となる。
 サーバ200が適正なものであると認証した場合、認証部122Hはその旨を示す情報であるクライアント認証データを生成する。クライアント認証データは主制御部122Bに送られ、そこから出力部122Gに送られる。クライアント認証データには主制御部122Bから出力部122Gに送られる間に特に処理を行う必要はないので、主制御部122Bから出力部122Gにクライアント認証データが送られる際のその経路は自由である。
 出力部122Gはクライアント認証データを送受信部123に送る。送受信部123は、上述の如き処理により必要に応じてクライアント認証データに対してヘッダを付し、それをインターフェイス114からクライアント100の送受信機構に送る。クライアント認証データは、送受信機構からネットワーク400を介してサーバ200へと送られる(S1003D)。
 サーバ200は、クライアント100から認証データを受取る(S2003C)。
 かかるクライアント認証データは、クライアント認証データを送ってきたクライアント100のIPアドレスとともに、サーバ200の送受信機構から、インターフェイス、送受信部223を介して入力部222Aへと送られる。入力部222Aは、クライアント認証データを上記IPアドレスとともに主制御部222Bへ送る。
 これを受取ると、主制御部222Bは共通鍵を生成する。主制御部222Bは、生成したその共通鍵を、受取った上記IPアドレスと紐付けた状態でサーバ第1暗号化復号化部222Eに送るとともに、新たな解を生成せよとの指示をサーバ解生成部222Cに送る。サーバ解生成部222Cは、少なくとも1つの解を生成する(S2004)。
 変形例1におけるここから先の処理は、第1実施形態の場合と同様である。
≪第2実施形態≫
 第2実施形態における通信システムについて説明する。第2実施形態における通信システムの構成及び動作は概ね第1実施形態における通信システムにおけるそれらと同じである。第2実施形態の通信システムが第1実施形態における通信システムと異なるのは、第1実施形態では、サーバ200内に元々存在した共通鍵を、暗号化した状態でサーバ200からクライアント100へと提供することにより共通鍵をサーバ200とクライアント100とで共有することにしていたが、第2実施形態ではこれとは逆に、クライアント100内に元々存在している共通鍵を、暗号化した状態でクライアント100からサーバ200へと提供することにより共通鍵をサーバ200とクライアント100とで共有するようにしている、という点である。
 第2実施形態におけるクライアント100の中に生成される機能ブロックを図11に示し、第2実施形態におけるサーバ200の中に生成される機能ブロックを図12に示す。
 その内部に生成される機能ブロック自体は、第1実施形態のクライアント100においても第2実施形態のクライアント100においても変わらない。同様に、その内部に生成される機能ブロック自体は、第1実施形態のサーバ200においても第2実施形態のサーバ200においても変わらない。もっとも、第2実施形態におけるクライアント100内の、或いはサーバ200内の機能ブロックの機能は、第1実施形態の場合のそれらと若干異なる場合がある。その相違については後述する。
 第2実施形態の通信システムの使用方法、動作について説明する。
 かかる通信システムで実行される方法は、概ね第1実施形態の場合と同じであるので、その差分を中心として説明することにする(図13)。
 まず、クライント100で実行される、第1実施形態におけるS1001~S1003の処理、及びサーバ200で実行される、第1実施形態におけるS2001~S2003までの処理は、第2実施形態でも同じである。
 第2実施形態でも、サーバ200の認証部222Hで、クライアント100が正当であるとの認証が行われる(S2003)。かかる認証が行われると、第2実施形態でも、第1実施形態の場合と同様に認証データが生成される。
 第1実施形態の場合、認証部222Hが認証データを生成すると、それは主制御部222Bに送られ、続けて新たな解の生成(S2004)の処理、新たな解を用いた共通鍵の暗号化(S2005)の処理が行われた。しかしながら、第2実施形態の場合には、認証部222Hが認証データを生成すると、認証データはクライアント100に送られ、クライアント100で共通鍵が暗号化されることになる。以下、詳述する。
 認証部222Hで認証データが生成されると、認証データは認証部222Hから主制御部222Bへと送られる。主制御部222Bは認証データを、出力部222Gに送る。主制御部222Bから出力部222Gに送るまでに認証データには特段の処理が行われないため、主制御部222Bから出力部222Gへ認証データを送る際の経路は不問である。
 出力部222Gに認証データが送られると、出力部222Gは認証データを送受信部223に送る。送受信部223は、上述の如きヘッダを必要に応じて生成し、ヘッダを付した認証データをインターフェイスを介してサーバ200の送受信機構に送る。送受信機構は、ネットワーク400を介して認証データをクライアント100へ送信する(S2008)。
 クライアント100は、認証データを受取る(S1008)。より詳細には、認証データはクライアント100の送受信機構によって受取られる。送受信機構によって受取られた認証データは、インターフェイス114を介して送受信部123に送られ、そこから、暗号化復号化部122の入力部122Aに送られる。入力部122Aは受取った認証データを、主制御部122Bに送るようになっている。
 認証データを受取ると、主制御部122Bは、共通鍵を生成するようになっている。第1実施形態では、サーバ200の主制御部222Bが共通鍵を生成する機能を有していたが、第2実施形態ではその機能をクライアント100の主制御部122Bに移している。したがって、クライアント100の主制御部122Bは、必要になる都度共通鍵を生成するようになっていても良いが、第1実施形態におけるサーバ200の主制御部222Bのように、当初から固定の共通鍵を持っているようにしてもよい。とりあえずこの実施形態における主制御部122Bは、必要になる都度、言い換えれば認証データを受取る都度、共通鍵のデータを生成することとしている。
 生成された共通鍵のデータは、クライアント第1暗号化復号化部122Eへと送られる。他方、主制御部122Bは、クライアント解生成部122Cに対して、新たな解を生成せよとの指示を送る。かかる指示を受取ったクライアント解生成部122Cは、少なくとも1つの新たな解を生成する(S1009)。生成された解のうち予め定められたものが、クライアント解生成部122Cからクライアント第1暗号化復号化部122Eに送られる。かかる解は、上述の共通鍵を暗号化する際に、クライアント第1暗号化復号化部122Eで用いられるものである。そして、どの解が共通鍵を暗号化する際に用いられるかということは予め決定されており、且つその情報はサーバ200のサーバ第1暗号化復号化部222Eと共有されている。
 いずれにせよ、クライアント第1暗号化復号化部122Eには、共通鍵のデータと、クライアント解生成部122Cが生成した解のデータが存在する状態となる。
 クライアント第1暗号化復号化部122Eは、共通鍵のデータを暗号化する(S1010)。かかる暗号化には、クライアント解生成部122Cから受取った解のデータが用いられる。クライアント第1暗号化復号化部122Eで実行されるかかる暗号化の処理は、第1実施形態におけるサーバ第1暗号化復号化部222Eで行われた共通鍵の暗号化の処理と同様のものである。
 暗号化された共通鍵のデータは、クライアント第1暗号化復号化部122Eから、出力部122Gへと送られる。かかる暗号化された共通鍵のデータは、出力部122Gから、送受信部123へと送られ、そこで上述した如きヘッダが必要に応じて付される。そして、ヘッダが必要に応じて付された暗号化された共通鍵のデータは、インターフェイス114からクライアント100の送受信機構に送られ、そこからネットワークを介してサーバ200へ送られる(S1011)。
 他方、クライアント第1暗号化復号化部122Eは、暗号化していない共通鍵のデータを、クライアント第2暗号化復号化部122Fに送る。
 サーバ200は、暗号化された共通鍵のデータをクライアント100から受取る(S2009)。暗号化された共通鍵のデータの受取は、サーバ200の送受信機構によって行われる。暗号化された共通鍵のデータは、送受信機構からインターフェイスを介して送受信部223へと送られ、送受信部223から、その共通鍵を送ってきたクライアント100のIPアドレスのデータとともに、入力部222Aを介して、主制御部222Bに送られる。
 それらを受取った主制御部222Bは、暗号化された共通鍵のデータを、サーバ第1暗号化復号化部222Eに送る。また、主制御部222Bは、受取ったIPアドレスのデータをサーバ解生成部222Cへと送るとともに、新たな解を生成せよとの指示をもサーバ解生成部222Cに送る。
 IPアドレスのデータと上述の指示を受取ったサーバ解生成部222Cは、そのIPアドレスと紐付けられていた新たな解を生成するために必要な情報を解データ記録部222Dから読出し、それを用いて少なくとも1つの新しい解を生成して、それをサーバ第1暗号化復号化部222Eへと送る(S2010)。サーバ解生成部222Cが、新しく生成された解のデータのうちのどの解をサーバ第1暗号化復号化部222Eへと送るかは、上述したように、クライアント解生成部122Cとの間で共有された条件によって決定される。結果、悪意のある第三者による介入がなければ、クライアント解生成部122Cがクライアント第1暗号化復号化部122Eに送った解と、サーバ解生成部222Cがサーバ第1暗号化復号化部222Eに送った解とは完全に一致したものとなる。
 以上により、サーバ第1暗号化復号化部222Eは、クライアント100から送られてきた暗号化された共通鍵のデータと、サーバ解生成部222Cで生成された解とを持った状態となる。サーバ第1暗号化復号化部222Eは、クライアント100から送られてきた暗号化された共通鍵のデータを、解を用いて復号化する(S2011)。かかる復号化の処理は、第1実施形態におけるクライアント第1暗号化復号化部122Eで行われた処理と、同様のものとなる。サーバ第1暗号化復号化部222Eは、同じ解を用いれば、クライアント100のクライアント第1暗号化復号化部122Eで暗号化されたデータを復号化できるものとなっており、且つクライアント第1暗号化復号化部122Eで共通鍵を暗号化するときに用いられた解と、サーバ第1暗号化復号化部222Eにサーバ解生成部222Cから送られてきた解とは、上述のように同一のものとなっている。したがって、サーバ第1暗号化復号化部222Eは、クライアント100から送られてきた暗号化された共通鍵のデータを、暗号化されていない元の共通鍵のデータに戻すことが可能である。
 なお、以上の説明で明らかなように、第2実施形態のクライアント第1暗号化復号化部122Eとサーバ第1暗号化復号化部222Eでそれぞれ実行される処理は、第1実施形態の場合と逆転している。したがって、第1実施形態の場合とは逆に、第2実施形態におけるクライアント第1暗号化復号化部122Eは、暗号化の処理だけを行えれば足り、第2実施形態におけるサーバ第1暗号化復号化部222Eは、復号化の処理だけを行えれば足りる、といえる。
 サーバ第1暗号化復号化部222Eは、復号化された共通鍵のデータをサーバ第2暗号化復号化部222Fに送る。
 以上の処理により、サーバ200におけるサーバ第2暗号化復号化部222Fと、クライアント100におけるクライアント第2暗号化復号化部122Fとは、第2実施形態では元々クライアント100に存在した共通の共通鍵を持った状態となる。第1実施形態の場合と同様に、共通鍵を暗号化し、また復号化するための解はそれぞれ、クライアント100とサーバ200の内部で生成され、クライアント100とサーバ200の間で送信されることがないから、第三者はその解を盗む機会がない。
 サーバ200におけるサーバ第2暗号化復号化部222Fと、クライアント100におけるクライアント第2暗号化復号化部122Fとが、共通の共通鍵を持った状態となったのであれば、サーバ200とクライアント100とは、従来のSSL通信の上記(3)の過程で実行していたと同様の暗号化通信を行えるようになる。かかる処理は、第1実施形態のS1007、S2007の処理に同じである。
 なお、第2実施形態の通信システムにおいても、第1実施形態の通信システムの変形例1のように、サーバ200でクライアント100の正当性の認証を行うだけでなく、クライアント100でサーバ200の正当性の認証を行うようにすることができる。
≪第3実施形態≫
 次に、本願発明の第3実施形態について説明する。第3実施形態の通信システムは、本願における第3の態様とでもいうべき発明に相当するものである。
 第3の発明は概ね第1実施形態の通信システムに同じであり、ネットワーク400に接続可能なクライアント100とサーバ200とから構成される。第3実施形態のクライアント100が備えるハードウェア構成、及びその内部に生成される機能ブロックは第1実施形態の場合と変わらず、サーバ200についても同様である。
 次に、クライアント100とサーバ200を含んでなるこの通信システムの使用方法、及び動作について説明する。
 かかる説明には、主に図14を用いる。
 ユーザはまず、第1実施形態の場合と同様に、クライアント100上のアプリケーション121を立ち上げる(S1001)。
 ユーザは、サーバ200が提供するウェブサイトを閲覧しようとする。サーバ200のウェブアドレスをユーザがブラウザ上で指定すると、クライアント解生成部122Cは、複数の解を生成する(S1102)。
 複数の解の生成方法は、第1実施形態の場合と同様である。そのうちの1つの解は、クライアント第1暗号化復号化部122Eに送られる。また、主制御部122Bからサーバ第1暗号化復号化部122Eには共通鍵が送られる。クライアント第1暗号化復号化部122Eは、共通鍵を暗号化する(S1102)。かかる暗号化には、クライアント解生成部122Cから送られた解が用いられる。どの解がクライアント第1暗号化復号化部122Eに送られるか、即ちどの解がかかる暗号化に用いられるかは第1実施形態の場合と同様、サーバ第1暗号化復号化部222Eと共有されている。
 他方、クライアント第1暗号化復号化部122Eは、暗号化していない状態の共通鍵を、クライアント第2暗号化復号化部122Fに送る。
 複数生成された解のうちの、共通鍵を暗号化するために用いられなかったもの1つが、クライアント解生成部122Cから、出力部122Gに送られる。この解は後述するようにサーバ200に送られるが、ここで、どの解が出力部122Gに送られるか、ひいてはサーバ200に送られるかは、予め決定されており、その情報はサーバ200と共有されている。また、暗号化された共通鍵もクライアント第1暗号化復号化部122Eから出力部122Gに送られる。
 出力部122Gに送られた解と暗号化された共通鍵のデータは、サーバ200に送られる(S1103)。それらの送信の仕方は第1実施形態に倣う。
 サーバ200は、クライアント100から、解と暗号化された共通鍵のデータとを受取る(S2101)。サーバ200におけるそれらの受信のされ方は、第1実施形態に倣う。
 解と暗号化された共通鍵のデータは、入力部222Aから、主制御部222Bに送られる。主制御部222Bは、解を認証部222Hに送るとともに、暗号化された共通鍵をサーバ第1暗号化復号化部222Eに送る。他方、主制御部222Bは、サーバ解生成部222Cに解を生成するように指示する。それにより、サーバ解生成部222Cは複数の解を生成する(S2102)。なお、解は、以下の認証と、暗号化された共通鍵の復号化が行われる前に少なくとも2つ存在していれば足り、必要となる都度生成されるようになっていてもよい。
 生成された複数の解のうち、クライアント100からサーバ200へ送られてきた解と共通条件下(この実施形態では、同じ順番)で生成された解は、サーバ解生成部222Cから認証部222Hへ送られる。認証部222Hは、クライアント100から送られてきた解と、サーバ解生成部222Cから送られてきた解とを対比して、第1実施形態の場合と同様の方法で認証を行う。即ち、両者が一致した場合には、その解を送ってきたクライアント100が正当なものであるとの認証を行う(S2103)。
 かかる認証が行われると次に、サーバ解生成部222Cからサーバ第1暗号化復号化部222Eに対して解が送られる。サーバ第1暗号化復号化部222Eは、サーバ解生成部222Cから送られた解を用いて暗号化された共通鍵を復号化する(S2104)。サーバ解生成部222Cからサーバ第1暗号化復号化部222Eに送られる解は、クライアント第1暗号化復号化部122Eで共通鍵を暗号化するために使用された解と共通条件下(この実施形態では同じ順番)で生成されたものである。したがって、クライアント第1暗号化復号化部122Eで共通鍵を暗号化する際に使われた解と、サーバ第1暗号化復号化部222Eが暗号化された共通鍵を復号化する際に使用する鍵とは、クライアント100が正当なものであるのであれば同じであるはずである。したがって、第三者による何らかの妨害がない限り、第1実施形態の場合と同様の理屈で、暗号化された共通鍵の鍵は復号化される。もっとも、暗号化された共通鍵の復号化がクライアント100の認証の前に行われても構わない。この場合には、暗号化された共通鍵が復号化できても、上述のクライアント100の認証ができなかった場合にはその復号化された共通鍵は使用されない。
 サーバ第1暗号化復号化部222Eは復号化された共通鍵のデータをサーバ第2暗号化復号化部222Fに送る。
 以上の処理により、サーバ200におけるサーバ第2暗号化復号化部222Fと、クライアント100におけるクライアント第2暗号化復号化部122Fとは、共通の共通鍵を持った状態となる。
 サーバ200におけるサーバ第2暗号化復号化部222Fと、クライアント100におけるクライアント第2暗号化復号化部122Fとが、共通の共通鍵を持った状態となったのであれば、サーバ200とクライアント100とは、第1実施形態のS1007、S2007で述べた通りの、共通鍵方式の暗号化通信を安全に行うことができる。

Claims (25)

  1.  所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムで実行される通信方法であって、
     前記第2通信装置が、その解生成手段で解を生成させ、その解を前記ネットワークを介して前記第1通信装置に送信する過程、
     前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取る過程、
     前記第1通信装置が、その解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証する過程、
     前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第1通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する処理か、又は前記第2通信装置を正当なものと認証したとの通知を前記第1通信装置から受けた前記第2通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する処理の一方を行う過程、
     前記第1通信装置が前記共通鍵を暗号化した場合には、前記第1通信装置から前記第2通信装置に暗号化された前記共通鍵を前記ネットワークを介して送信するとともに、暗号化された前記共通鍵を受取った前記第2通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて暗号化された前記共通鍵を、前記第1通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する過程、
     前記第2通信装置が前記共通鍵を暗号化した場合には、前記第2通信装置から前記第1通信装置に暗号化された前記共通鍵を前記ネットワークを介して送信するとともに、暗号化された前記共通鍵を受取った前記第1通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する過程、
     以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置と、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程、
     を含んでなる、通信方法。
  2.  所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第2通信装置で実行される通信方法であって、
     前記第2通信装置が実行する、
     その解生成手段で解を生成させ、その解を前記ネットワークを介して前記第1通信装置に送信する過程、
     前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取り、その解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証し、前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第1通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する処理が実行された後に、前記第1通信装置から暗号化された前記共通鍵を前記ネットワークを介して受取る過程、
     その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて、暗号化された前記共通鍵を、前記第1通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する過程、
     以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置との間で、共通鍵方式の暗号化通信を行う過程、
     を含んでなる、通信方法。
  3.  所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第2通信装置で実行される通信方法であって、
     前記第2通信装置が実行する、
     その解生成手段で解を生成させ、その解を前記ネットワークを介して前記第1通信装置に送信する過程、
     前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取り、その解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証し、前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第1通信装置から前記第2通信装置が正当なものだと認証されたという通知を前記ネットワークを介して受取る過程、
     前記通知を受取った後に、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する過程、
     暗号化した共通鍵を、前記第1通信装置へと前記ネットワークを介して送信する過程、
     前記第1通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて、前記第2通信装置から前記第1通信装置が受取った暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する処理を実行することによって、前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置との間で、共通鍵方式の暗号化通信を行う過程、
     を含んでなる、通信方法。
  4.  所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第1通信装置で実行される通信方法であって、
     前記第1通信装置が実行する、
     前記第2通信装置が、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、
     前記第1通信装置の解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証する過程、
     前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する過程、
     前記第1通信装置から前記第2通信装置に暗号化された前記共通鍵を前記ネットワークを介して送信する過程、
     暗号化された前記共通鍵を受取った前記第2通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて、暗号化された前記共通鍵を、前記第1通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化することによって、前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程、
     を含んでなる、通信方法。
  5.  所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第1通信装置で実行される通信方法であって、
     前記第1通信装置が実行する、
     前記第2通信装置が、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、
     前記第1通信装置の解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証する過程、
     前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第2通信装置を正当なものと認証したとの通知を前記ネットワークを介して前記第2通信装置に送る過程、
     前記第2通信装置を正当なものと認証したとの通知を前記第1通信装置から受けた前記第2通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する処理を行った後に、前記第2通信装置から前記ネットワークを介して送信された暗号化された前記共通鍵を受取る過程、
     その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて、前記第2通信装置から受取った暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する過程、
     以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程、
     を含んでなる、通信方法。
  6.  解を連続して生成することのできる第1通信装置解生成手段と、前記第1通信装置解生成手段で生成された解を用いた暗号化を行うことができる第1通信装置第1暗号化復号化手段と、認証手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第1通信装置第2暗号化復号化手段と、を備えており、所定のネットワークと接続可能とされている第1通信装置との組合せにより、暗号化通信システムを構成するための、前記ネットワークに接続可能とされた第2通信装置であって、
     前記第1通信装置解生成手段で生成されたものと共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる第2通信装置解生成手段と、
     前記第2通信装置解生成手段で生成された解を用いて、同じ解が用いられる場合には前記第1通信装置第1暗号化復号化手段で行われるのと同じ復号化を行うことができる第2通信装置第1暗号化復号化手段と、
     共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第2通信装置第2暗号化復号化手段と、
     を備えており、
     前記第2通信装置解生成手段で生成した解を前記ネットワークを介して前記第1通信装置に送るようになっているとともに、
     前記第1通信装置は、前記第2通信装置から前記ネットワークを介して前記解を受取り、前記第1通信装置解生成手段で解を生成させ、前記第1通信装置解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記認証手段で前記第2通信装置を正当なものと認証するようになっているとともに、前記第2通信装置が正当だとの認証が前記認証手段で行われた場合に、前記第1通信装置解生成手段が2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で前記第1通信装置解生成手段によって生成された解を用いて自らが持つ共通鍵を前記第1通信装置第1暗号化復号化手段で暗号化する処理を実行して、暗号化された前記共通鍵を前記ネットワークを介して前記第2通信装置に送るようになっており、
     前記第2通信装置解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で前記第2通信装置解生成手段によって生成された解を用いて、前記第1通信装置から受取った暗号化された前記共通鍵を前記第2通信装置第1暗号化復号化手段で復号化するようになっており、
     以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記第2通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記第1通信装置との間で共通鍵方式の暗号化通信を行うようになっている、
     第2通信装置。
  7.  解を連続して生成することのできる第1通信装置解生成手段と、前記第1通信装置解生成手段で生成された解を用いた復号化を行うことができる第1通信装置第1暗号化復号化手段と、認証手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第1通信装置第2暗号化復号化手段と、を備えており、所定のネットワークと接続可能とされている第1通信装置との組合せにより、暗号化通信システムを構成するための、前記ネットワークに接続可能とされた第2通信装置であって、
     前記第1通信装置解生成手段で生成されたものと共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる第2通信装置解生成手段と、
     前記第2通信装置解生成手段で生成された解を用いて、同じ解が用いられる場合には前記第1通信装置第1暗号化復号化手段で行われるのと同じ暗号化を行うことができる第2通信装置第1暗号化復号化手段と、
     共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第2通信装置第2暗号化復号化手段と、
     を備えており、
     前記第2通信装置解生成手段で生成した解を前記ネットワークを介して前記第1通信装置に送るようになっているとともに、
     前記第1通信装置は、前記第2通信装置から前記ネットワークを介して前記解を受取り、前記第1通信装置解生成手段で解を生成させ、前記第1通信装置解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記認証手段で前記第2通信装置を正当なものと認証するようになっているとともに、前記第2通信装置が正当だとの認証が前記認証手段で行われた場合に、前記第2通信装置を正当なものと認証したとの通知を前記ネットワークを介して前記第2通信装置に送るようになっており、
     前記通知を前記第1通信装置から受けた前記第2通信装置の前記第2通信装置解生成手段が2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を前記第2通信装置第1暗号化復号化手段で暗号化するとともに暗号化された前記共通鍵を前記ネットワークを介して前記第1通信装置に送るようになっており、
     前記第1通信装置は、前記第1通信装置解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で前記第1通信装置解生成手段によって生成された解を用いて、前記第2通信装置から受取った暗号化された前記共通鍵を前記第1通信装置第1暗号化復号化手段で復号化するようになっており、
     以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記第2通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記第1通信装置との間で共通鍵方式の暗号化通信を行うようになっている、
     第2通信装置。
  8.  解を連続して生成することのできる第2通信装置解生成手段と、前記第2通信装置解生成手段で生成された解を用いた復号化を行うことができる第2通信装置第1暗号化復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第2通信装置第2暗号化復号化手段と、を備えており、前記第2通信装置解生成手段で生成した解を前記ネットワークを介して第1通信装置に送るようになっている、所定のネットワークと接続可能とされている第2通信装置との組合せにより、暗号化通信システムを構成するための、前記ネットワークに接続可能とされた第1通信装置であって、
     前記第2通信装置解生成手段で生成されたものと共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる第1通信装置解生成手段と、
     前記第1通信装置解生成手段で生成された解を用いて、同じ解が用いられる場合には前記第2通信装置第1暗号化復号化手段で行われるのと同じ暗号化を行うことができる第1通信装置第1暗号化復号化手段と、
     共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第1通信装置第2暗号化復号化手段と、
     前記第1通信装置解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証するようになっている認証手段と、
     を備えており、
     前記第2通信装置が正当だとの認証が前記認証手段で行われた場合に、前記第1通信装置解生成手段が2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で前記第1通信装置解生成手段によって生成された解を用いて自らが持つ共通鍵を前記第1通信装置第1暗号化復号化手段で暗号化する処理を実行して、暗号化された前記共通鍵を前記ネットワークを介して前記第2通信装置に送るようになっており、
     前記第2通信装置は、前記第2通信装置解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で前記第2通信装置解生成手段によって生成された解を用いて、前記第1通信装置から受取った暗号化された前記共通鍵を前記第2通信装置第1暗号化復号化手段で復号化するようになっており、
     以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記第2通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記第2通信装置との間で共通鍵方式の暗号化通信を行うようになっている、
     第1通信装置。
  9.  解を連続して生成することのできる第2通信装置解生成手段と、前記第2通信装置解生成手段で生成された解を用いた暗号化を行うことができる第2通信装置第1暗号化復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第2通信装置第2暗号化復号化手段と、を備えており、前記第2通信装置解生成手段で生成した解を前記ネットワークを介して第1通信装置に送るようになっている、所定のネットワークと接続可能とされている第2通信装置との組合せにより、暗号化通信システムを構成するための、前記ネットワークに接続可能とされた第1通信装置であって、
     前記第2通信装置解生成手段で生成されたものと共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる第1通信装置解生成手段と、
     前記第1通信装置解生成手段で生成された解を用いて、同じ解が用いられる場合には前記第2通信装置第1暗号化復号化手段で行われるのと同じ復号化を行うことができる第1通信装置第1暗号化復号化手段と、
     共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第1通信装置第2暗号化復号化手段と、
     前記第1通信装置解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証するようになっている認証手段と、
     を備えており、
     前記第2通信装置が正当だとの認証が前記認証手段で行われた場合に、前記第2通信装置を正当なものと認証したとの通知を前記ネットワークを介して前記第2通信装置に送るようになっており、
     前記第2通信装置は、前記通知を前記第1通信装置から受けたら、前記第2通信装置解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を前記第2通信装置第1暗号化復号化手段で暗号化するとともに暗号化された前記共通鍵を前記ネットワークを介して前記第1通信装置に送るようになっており、
     前記第1通信装置解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で前記第1通信装置解生成手段によって生成された解を用いて、前記第2通信装置から受取った暗号化された前記共通鍵を前記第1通信装置第1暗号化復号化手段で復号化するようになっており、
     以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記第2通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記第2通信装置との間で共通鍵方式の暗号化通信を行うようになっている、
     第1通信装置。
  10.  所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第2通信装置として、コンピュータを機能させるためのコンピュータプログラムであって、
     前記コンピュータに、
     その解生成手段で解を生成させ、その解を前記ネットワークを介して前記第1通信装置に送信する過程、
     前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取り、その解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証し、前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第1通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する処理が実行された後に、前記第1通信装置から暗号化された前記共通鍵を前記ネットワークを介して受取る過程、
     その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて暗号化された前記共通鍵を復号化する過程、
     以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置との間で、共通鍵方式の暗号化通信を行う過程、
     を実行させるためのコンピュータプログラム。
  11.  所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第2通信装置として、コンピュータを機能させるためのコンピュータプログラムであって、
     前記コンピュータに、
     その解生成手段で解を生成させ、その解を前記ネットワークを介して前記第1通信装置に送信する過程、
     前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取り、その解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証し、前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第1通信装置から前記第2通信装置が正当なものだと認証されたという通知を前記ネットワークを介して受取る過程、
     前記通知を受取った後に、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する過程、
     暗号化した共通鍵を、前記第1通信装置へと前記ネットワークを介して送信する過程、
     前記第1通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて、前記第2通信装置から前記第1通信装置が受取った暗号化された前記共通鍵を復号化する処理を実行することによって、前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置との間で、共通鍵方式の暗号化通信を行う過程、
     を実行させるためのコンピュータプログラム。
  12.  所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第1通信装置として、コンピュータを機能させるためのコンピュータプログラムであって、
     前記コンピュータに、
     前記第2通信装置が、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、
     前記第1通信装置の解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証する過程、
     前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する過程、
     前記第1通信装置から前記第2通信装置に暗号化された前記共通鍵を前記ネットワークを介して送信する過程、
     暗号化された前記共通鍵を受取った前記第2通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて暗号化された前記共通鍵を復号化することによって、前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程、
     を実行させるためのコンピュータプログラム。
  13.  所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第1通信装置として、コンピュータを機能させるためのコンピュータプログラムであって、
     前記コンピュータに、
     前記第2通信装置が、その解生成手段で解を生成させ、前記ネットワークを介して送ってきた前記解を受取る過程、
     前記第1通信装置の解生成手段で解を生成させ、前記第1通信装置の解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証する過程、
     前記第2通信装置が正当だとの認証が前記第1通信装置で行われた場合に、前記第2通信装置を正当なものと認証したとの通知を前記ネットワークを介して前記第2通信装置に送る過程、
     前記第2通信装置を正当なものと認証したとの通知を前記第1通信装置から受けた前記第2通信装置が、その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて自らが持つ共通鍵を暗号化する処理を行った後に、前記第2通信装置から前記ネットワークを介して送信された暗号化された前記共通鍵を受取る過程、
     その解生成手段で2つ目或いはそれ以降の解を生成するとともに、2つ目以降の予め定められた条件下で生成された解を用いて、第2通信装置から受取った暗号化された前記共通鍵を復号化する過程、
     以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程、
     を実行させるためのコンピュータプログラム。
  14.  所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第2通信装置で実行される通信方法であって、
     前記第2通信装置が実行する、
     その解生成手段で複数の解を生成させ、その解のうちの1つと、その解のうちの他の1つを用いて自らが持つ共通鍵を暗号化したものと、を前記ネットワークを介して前記第1通信装置に送信する過程、
     前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取り、その解生成手段で複数の解を生成させ、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた解が前記第2通信装置の解生成手段で生成されたときと共通条件下で生成されたものと、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証するとともに、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた暗号化された前記共通鍵を暗号化する際に使用された解が前記第2通信装置の解生成手段で生成されたときと共通条件下で作成されたものを用いて、前記第2通信装置から前記第1通信装置が受取った暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する処理を実行することによって、前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置との間で、共通鍵方式の暗号化通信を行う過程、
     を含んでなる、通信方法。
  15.  所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第1通信装置で実行される通信方法であって、
     前記第1通信装置が実行する、
     前記第2通信装置が、その解生成手段で複数の解を生成させ、その解のうちの1つと、その解のうちの他の1つを用いて自らが持つ共通鍵を暗号化したものとを前記ネットワークを介して送ってきた場合に前記解と暗号化された共通鍵とを受取る過程、
     前記第1通信装置の解生成手段で複数の解を生成させ、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた解が前記第2通信装置の解生成手段で生成されたときと共通条件下で生成されたものと、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証する過程、
     前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた暗号化された前記共通鍵を暗号化する際に使用された解が前記第2通信装置の解生成手段で生成されたときと共通条件下で作成されたものを用いて、前記第2通信装置から受取った暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する過程、
     以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程、
     を含んでなる、通信方法。
  16.  解を連続して生成することのできる第1通信装置解生成手段と、前記第1通信装置解生成手段で生成された解を用いた暗号化と復号化を行うことができる第1通信装置第1暗号化復号化手段と、認証手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第1通信装置第2暗号化復号化手段と、を備えており、所定のネットワークと接続可能とされている第1通信装置との組合せにより、暗号化通信システムを構成するための、前記ネットワークに接続可能とされた第2通信装置であって、
     前記第1通信装置解生成手段で生成されたものと共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる第2通信装置解生成手段と、
     前記第2通信装置解生成手段で生成された解を用いて、同じ解が用いられる場合には前記第1通信装置第1暗号化復号化手段で行われるのと同じ暗号化と復号化を行うことができる第2通信装置第1暗号化復号化手段と、
     共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第2通信装置第2暗号化復号化手段と、
     を備えており、
     前記第2通信装置解生成手段で生成した複数の解のうちの1つと、前記第2通信装置解生成手段で生成した解のうちの他の1つを用いて自らが持つ共通鍵を暗号化したものとを前記ネットワークを介して前記第1通信装置に送るようになっているとともに、
     前記第1通信装置は、前記第2通信装置から前記ネットワークを介して前記解と暗号化された前記共通鍵とを受取り、前記第1通信装置解生成手段で複数の解を生成させ、前記第1通信装置解生成手段で生成した解であって前記第2通信装置から送られてきた解が前記第2通信装置解生成手段で生成されたときと共通条件下で生成されたものと、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記認証手段で前記第2通信装置を正当なものと認証するようになっているとともに、前記第1通信装置解生成手段で生成した解であって前記第2通信装置から送られてきた暗号化された前記共通鍵を暗号化する際に使用された解が前記第2通信装置の解生成手段で生成されたときと共通条件下で作成されたものを用いて、前記第2通信装置から受取った暗号化された前記共通鍵を前記第1通信装置第1暗号化復号化手段で復号化するようになっており、
     以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記第2通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記第1通信装置との間で共通鍵方式の暗号化通信を行うようになっている、
     第2通信装置。
  17.  解を連続して生成することのできる第2通信装置解生成手段と、前記第2通信装置解生成手段で生成された解を用いた暗号化と復号化を行うことができる第2通信装置第1暗号化復号化手段と、共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第2通信装置第2暗号化復号化手段と、を備えており、前記第2通信装置解生成手段で生成した解を前記ネットワークを介して第1通信装置に送るようになっている、所定のネットワークと接続可能とされている第2通信装置との組合せにより、暗号化通信システムを構成するための、前記ネットワークに接続可能とされた第1通信装置であって、
     前記第2通信装置解生成手段で生成されたものと共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる第1通信装置解生成手段と、
     前記第1通信装置解生成手段で生成された解を用いて、同じ解が用いられる場合には前記第2通信装置第1暗号化復号化手段で行われるのと同じ暗号化と復号化を行うことができる第1通信装置第1暗号化復号化手段と、
     共通鍵を用いた共通鍵方式での暗号化と復号化とを行うことのできる第1通信装置第2暗号化復号化手段と、
     前記第1通信装置解生成手段で生成した解と、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証するようになっている認証手段と、
     を備えており、
     前記第2通信装置が、前記第2通信装置解生成手段で生成した複数の解のうちの1つと、前記第2通信装置解生成手段で生成した解のうちの他の1つを用いて自らが持つ共通鍵を暗号化したものとを前記ネットワークを介して前記第1通信装置に送ってきた場合に、それらを受取るようになっているとともに、
     前記第1通信装置解生成手段で複数の解を生成させ、前記第1通信装置解生成手段で生成した解であって前記第2通信装置から送られてきた解が前記第2通信装置の解生成手段で生成されたときと共通条件下で生成されたものと、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記認証手段で前記第2通信装置を正当なものと認証するようになっているとともに、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた暗号化された前記共通鍵を暗号化する際に使用された解が前記第2通信装置解生成手段で生成されたときと共通条件下で作成されたものを用いて、前記第2通信装置から受取った暗号化された前記共通鍵を前記第1通信装置第1暗号化復号化手段で復号化するようになっており、
     以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うとともに、前記第2通信装置第2暗号化復号化手段が送受信の対象となるデータに対して暗号化と復号化を行うことで、前記第2通信装置との間で共通鍵方式の暗号化通信を行うようになっている、
     第1通信装置。
  18.  所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第2通信装置として、コンピュータを機能させるためのコンピュータプログラムであって、
     前記コンピュータに、
     その解生成手段で複数の解を生成させ、その解のうちの1つと、その解のうちの他の1つを用いて自らが持つ共通鍵を暗号化したものと、を前記ネットワークを介して前記第1通信装置に送信する過程、
     前記第1通信装置が、前記第2通信装置から前記ネットワークを介して前記解を受取り、その解生成手段で複数の解を生成させ、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた解が前記第2通信装置の解生成手段で生成されたときと共通条件下で生成されたものと、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証するとともに、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた暗号化された前記共通鍵を暗号化する際に使用された解が前記第2通信装置の解生成手段で生成されたときと共通条件下で作成されたものを用いて、前記第2通信装置から前記第1通信装置が受取った暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する処理を実行することによって、前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第1通信装置との間で、共通鍵方式の暗号化通信を行う過程、
     を実行させるためのコンピュータプログラム。
  19.  所定のネットワークにそれぞれ接続可能とされると共に、共通条件下で生成されたもの同士を比較すれば同じものとなる解を連続して生成することのできる解生成手段をともに備える第1通信装置と第2通信装置とを含んで構成される暗号化通信システムの前記第1通信装置として、コンピュータを機能させるためのコンピュータプログラムであって、
     前記コンピュータに、
     前記第2通信装置が、その解生成手段で複数の解を生成させ、その解のうちの1つと、その解のうちの他の1つを用いて自らが持つ共通鍵を暗号化したものとを前記ネットワークを介して送ってきた場合に前記解と暗号化された共通鍵とを受取る過程、
     前記第1通信装置の解生成手段で複数の解を生成させ、前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた解が前記第2通信装置の解生成手段で生成されたときと共通条件下で生成されたものと、前記第2通信装置から受取った解とを比較して、両者が一致した場合には、前記第2通信装置を正当なものと認証する過程、
     前記第1通信装置の解生成手段で生成した解であって前記第2通信装置から送られてきた暗号化された前記共通鍵を暗号化する際に使用された解が前記第2通信装置の解生成手段で生成されたときと共通条件下で作成されたものを用いて、前記第2通信装置から受取った暗号化された前記共通鍵を、前記第2通信装置が前記共通鍵を暗号化したのと同じアルゴリズムを用いて復号化する過程、
     以上により前記第1通信装置と前記第2通信装置で共有されることになった前記共通鍵を用いて、前記第2通信装置との間で、共通鍵方式の暗号化通信を行う過程、
     を実行させるためのコンピュータプログラム。
  20.  前記第1通信装置が、自らが持つ共通鍵を暗号化する処理を実行するために、その解生成手段で生成された解を複数用いるとともに、
     前記第2通信装置が、暗号化された前記共通鍵を復号化する処理を実行するために、その解生成手段で生成された解を複数用いる、
     請求項2記載の通信方法。
  21.  前記第2通信装置が、自らが持つ共通鍵を暗号化する処理を実行するために、その解生成手段で生成された解を複数用いるとともに、
     前記第1通信装置が、暗号化された前記共通鍵を復号化する処理を実行するために、その解生成手段で生成された解を複数用いる、
     請求項3記載の通信方法。
  22.  前記第1通信装置が、自らが持つ共通鍵を暗号化する処理を実行するために、その解生成手段で生成された解を複数用いるとともに、
     前記第2通信装置が、暗号化された前記共通鍵を復号化する処理を実行するために、その解生成手段で生成された解を複数用いる、
     請求項4記載の通信方法。
  23.  前記第2通信装置が、自らが持つ共通鍵を暗号化する処理を実行するために、その解生成手段で生成された解を複数用いるとともに、
     前記第1通信装置が、暗号化された前記共通鍵を復号化する処理を実行するために、その解生成手段で生成された解を複数用いる、
     請求項5記載の通信方法。
  24.  前記共通鍵方式の暗号化通信を行う場合の暗号化と復号化を、第2通信装置を構成する前記コンピュータ上における、前記コンピュータ上で実行される暗号化の対象となる平文のデータを扱う所定のアプリケーションと、TCP/IPとの間で実行させるようになっているとともに、
     前記アプリケーションで生成された平文を暗号化してから前記第1通信装置に送信するために前記TCP/IPに渡し、前記TCP/IPから渡された前記第1通信装置から送られてきた暗号化されたデータを平文に復号化してから前記アプリケーションに渡すようになっている、
     請求項10、11又は18記載のコンピュータプログラム。
  25.  前記共通鍵方式の暗号化通信を行う場合の暗号化と復号化を、第1通信装置を構成する前記コンピュータ上における、前記コンピュータ上で実行される暗号化の対象となる平文のデータを扱う所定のアプリケーションと、TCP/IPとの間で実行させるようになっているとともに、
     前記アプリケーションで生成された平文を暗号化してから前記第2通信装置に送信するために前記TCP/IPに渡し、前記TCP/IPから渡された前記第2通信装置から送られてきた暗号化されたデータを平文に復号化してから前記アプリケーションに渡すようになっている、
     請求項12、13又は19記載のコンピュータプログラム。
PCT/JP2017/028391 2016-08-04 2017-08-04 通信システム、通信用クライアント、通信用サーバ、通信方法、プログラム WO2018025991A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/322,508 US20190238334A1 (en) 2016-08-04 2017-08-04 Communication system, communication client, communication server, communication method, and program
EP17837092.0A EP3496328A4 (en) 2016-08-04 2017-08-04 COMMUNICATION SYSTEM, COMMUNICATION CLIENT, COMMUNICATION SERVER, COMMUNICATION PROCEDURE AND PROGRAM

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-153699 2016-08-04
JP2016153699A JP2018023029A (ja) 2016-08-04 2016-08-04 通信システム、通信用クライアント、通信用サーバ、通信方法、プログラム

Publications (1)

Publication Number Publication Date
WO2018025991A1 true WO2018025991A1 (ja) 2018-02-08

Family

ID=61073357

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/028391 WO2018025991A1 (ja) 2016-08-04 2017-08-04 通信システム、通信用クライアント、通信用サーバ、通信方法、プログラム

Country Status (4)

Country Link
US (1) US20190238334A1 (ja)
EP (1) EP3496328A4 (ja)
JP (1) JP2018023029A (ja)
WO (1) WO2018025991A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3855677A1 (en) 2016-02-23 2021-07-28 Nchain Holdings Limited Blockchain-implemented method for control and distribution of digital content
SG11201805542TA (en) 2016-02-23 2018-09-27 Nchain Holdings Ltd Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
BR112018016826A2 (pt) 2016-02-23 2018-12-26 Nchain Holdings Ltd método e sistema de controle implementados por blockchain
CN108780548B (zh) 2016-02-23 2022-08-05 区块链控股有限公司 将椭圆曲线加密用于个人装置安全以共享秘密
GB2562621A (en) 2016-02-23 2018-11-21 Nchain Holdings Ltd System and method for controlling asset-related actions via a blockchain
WO2017145003A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Blockchain-based exchange with tokenisation
SG11201806709PA (en) 2016-02-23 2018-09-27 Nchain Holdings Ltd Universal tokenisation system for blockchain-based cryptocurrencies
EP3420675B1 (en) 2016-02-23 2020-03-11 Nchain Holdings Limited Blockchain implemented counting system and method for use in secure voting and distribution
EA201891829A1 (ru) 2016-02-23 2019-02-28 Нчейн Холдингс Лимитед Способ и система для эффективного перевода криптовалюты, связанной с заработной платой, в блокчейне для создания способа и системы автоматизированной выплаты заработной платы на основе смарт-контрактов
CN115391749A (zh) 2016-02-23 2022-11-25 区块链控股有限公司 使用分布式散列表和区块链保护计算机软件的方法及***
IL278834B2 (en) 2016-02-23 2023-09-01 Nchain Holdings Ltd Automatic registration and management method for smart contracts based on 'block chain'
CN109074580B (zh) 2016-02-23 2022-09-30 区块链控股有限公司 在区块链上安全转移实体的方法和***
MX2018009356A (es) * 2016-02-23 2018-12-19 Nchain Holdings Ltd Determinacion de un secreto comun para el intercambio seguro de informacion y claves criptograficas deterministas y jerarquicas.
EP3860037A1 (en) 2016-02-23 2021-08-04 Nchain Holdings Limited Cryptographic method and system for secure extraction of data from a blockchain

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003218866A (ja) * 2002-01-28 2003-07-31 Communication Research Laboratory 認証システム、認証装置、被認証装置、認証方法、被認証方法、プログラム、ならびに、情報記録媒体
JP2008234048A (ja) * 2007-03-16 2008-10-02 Quality Kk 電子ファイル管理システムおよび電子ファイル管理プログラム
JP2009253650A (ja) * 2008-04-04 2009-10-29 N-Crypt Lab Inc 送受信システム、送信装置、受信装置、認証装置、ユーザ装置、それらで実行される方法、並びにプログラム
JP2015072511A (ja) * 2013-10-01 2015-04-16 さくら情報システム株式会社 ワンタイムパスワード装置、方法及びプログラム
JP2015130633A (ja) * 2014-01-08 2015-07-16 パナソニックIpマネジメント株式会社 認証システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0749839A (ja) * 1993-08-06 1995-02-21 Nri & Ncc Co Ltd カオスを利用した認証システム、認証装置、被認証装置、および認証方法
JP2009177684A (ja) * 2008-01-28 2009-08-06 N-Crypt Lab Inc 送受信システム、送信装置、受信装置、それらで実行される方法、並びにプログラム
WO2014016864A1 (ja) * 2012-07-23 2014-01-30 富士通株式会社 ノードおよび通信方法
CZ2013373A3 (cs) * 2013-05-22 2014-12-03 Anect A.S. Způsob autentizace bezpečného datového kanálu

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003218866A (ja) * 2002-01-28 2003-07-31 Communication Research Laboratory 認証システム、認証装置、被認証装置、認証方法、被認証方法、プログラム、ならびに、情報記録媒体
JP2008234048A (ja) * 2007-03-16 2008-10-02 Quality Kk 電子ファイル管理システムおよび電子ファイル管理プログラム
JP2009253650A (ja) * 2008-04-04 2009-10-29 N-Crypt Lab Inc 送受信システム、送信装置、受信装置、認証装置、ユーザ装置、それらで実行される方法、並びにプログラム
JP2015072511A (ja) * 2013-10-01 2015-04-16 さくら情報システム株式会社 ワンタイムパスワード装置、方法及びプログラム
JP2015130633A (ja) * 2014-01-08 2015-07-16 パナソニックIpマネジメント株式会社 認証システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3496328A4 *

Also Published As

Publication number Publication date
JP2018023029A (ja) 2018-02-08
EP3496328A1 (en) 2019-06-12
EP3496328A4 (en) 2020-03-18
US20190238334A1 (en) 2019-08-01

Similar Documents

Publication Publication Date Title
WO2018025991A1 (ja) 通信システム、通信用クライアント、通信用サーバ、通信方法、プログラム
US8132020B2 (en) System and method for user authentication with exposed and hidden keys
JP6448668B2 (ja) パスワードベース認証
US8181234B2 (en) Authentication system in client/server system and authentication method thereof
US10594479B2 (en) Method for managing smart home environment, method for joining smart home environment and method for connecting communication session with smart device
JP6627043B2 (ja) Ssl通信システム、クライアント、サーバ、ssl通信方法、コンピュータプログラム
MXPA03003710A (es) Metodos para cambiar a distancia una contrasena de comunicaciones.
KR20130131682A (ko) 웹 서비스 사용자 인증 방법
US11438316B2 (en) Sharing encrypted items with participants verification
Lee et al. Two factor authentication for cloud computing
CN108599926A (zh) 一种基于对称密钥池的HTTP-Digest改进型AKA身份认证***和方法
Chidambaram et al. Enhancing the security of customer data in cloud environments using a novel digital fingerprinting technique
JP5324813B2 (ja) 鍵生成装置、証明書生成装置、サービス提供システム、鍵生成方法、証明書生成方法、サービス提供方法およびプログラム
CN110866754A (zh) 一种基于动态口令的纯软件dpva身份认证方法
CN106230840A (zh) 一种高安全性的口令认证方法
US8307209B2 (en) Universal authentication method
TW202231014A (zh) 訊息傳輸系統以及應用其中之使用者裝置與資訊安全硬體模組
JP6165044B2 (ja) 利用者認証装置、システム、方法及びプログラム
Tsai et al. Cloud encryption using distributed environmental keys
CN112751858B (zh) 数据加密通信终端方法、装置、终端、服务器及存储介质
Guo et al. 2FA Communication Protocol to Secure Metro Control Devices
Pérez Working from Home and Data Protection
WO2018079708A2 (ja) 送受信システム、送信装置、受信装置、方法、コンピュータプログラム
Haunts et al. Final Summary
Rennhard et al. SecureSafe: a highly secure online data safe industrial use case

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: 17837092

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017837092

Country of ref document: EP

Effective date: 20190304