WO2024080091A1 - 通信方法、第1機器、第2機器、及び、プログラム - Google Patents

通信方法、第1機器、第2機器、及び、プログラム Download PDF

Info

Publication number
WO2024080091A1
WO2024080091A1 PCT/JP2023/034112 JP2023034112W WO2024080091A1 WO 2024080091 A1 WO2024080091 A1 WO 2024080091A1 JP 2023034112 W JP2023034112 W JP 2023034112W WO 2024080091 A1 WO2024080091 A1 WO 2024080091A1
Authority
WO
WIPO (PCT)
Prior art keywords
certificate
nonce
encryption method
message
confirmation flag
Prior art date
Application number
PCT/JP2023/034112
Other languages
English (en)
French (fr)
Inventor
康 高橋
三朗 豊永
勇二 海上
兼次郎 池
直央 西田
Original Assignee
パナソニックIpマネジメント株式会社
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 パナソニックIpマネジメント株式会社 filed Critical パナソニックIpマネジメント株式会社
Publication of WO2024080091A1 publication Critical patent/WO2024080091A1/ja

Links

Images

Classifications

    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or 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 disclosure relates to a communication method, a first device, a second device, and a program.
  • Patent Document 1 discloses a method for transitioning the encryption system used by applications in a corporate system to a hybrid system that combines the so-called classical encryption method and the PQC (Post Quantum Cryptography) method.
  • This disclosure provides a communication method and the like for more appropriately applying the hybrid method.
  • a communication method is a communication method between a first device and a second device, in which the first device transmits to the second device a certificate for a first encryption method, the certificate including a confirmation flag indicating that the certificate corresponds to an encryption method different from the first encryption method, and when the first device receives a message including a Nonce and the confirmation flag as a response from the second device to the transmission of the certificate, the first device transmits to the second device a signature generated based on the Nonce and the confirmation flag included in the received message, and when the first device receives a message including the Nonce and not including the confirmation flag as a response from the second device to the transmission of the certificate, the first device transmits to the second device a signature generated based on the Nonce included in the received message.
  • a communication method is a communication method between a first device and a second device, in which the second device receives from the first device a certificate of a first encryption method that includes a confirmation flag indicating that the second device supports an encryption method different from the first encryption method, and if the second device supports the different encryption method, the second device transmits a message including a Nonce and the confirmation flag to the first device in response to the received certificate, and if the second device does not support the different encryption method, the second device transmits a message including the Nonce but not the confirmation flag to the first device in response to the received certificate, and the second device receives from the first device a signature generated based on either the Nonce included in the transmitted message or the Nonce and the confirmation flag.
  • a further aspect of the present disclosure is a communication method between a first device and a second device, in which the first device transmits to the second device a certificate of a first encryption method, the certificate including a confirmation flag indicating that the first device supports an encryption method different from the first encryption method, and if the second device supports the different encryption method, the second device transmits to the first device a message including a Nonce and the confirmation flag in response to the received certificate, and if the second device does not support the different encryption method, the second device transmits to the first device a message including the Nonce and the confirmation flag in response to the received certificate.
  • a message not including a flag is sent to the first device, and when the first device receives a message including a Nonce and the confirmation flag as a response from the second device to the transmission of the certificate, the first device transmits to the second device a signature generated based on the Nonce and the confirmation flag included in the received message, and when the first device receives a message including the Nonce and not including the confirmation flag as a response from the second device to the transmission of the certificate, the first device transmits to the second device a signature generated based on the Nonce included in the received message.
  • a first device is a first device capable of communicating with a second device, and includes a certificate generation unit that generates a certificate for a first encryption method, the certificate including a confirmation flag indicating that the certificate corresponds to an encryption method different from the first encryption method, and a signature generation unit, and when the generated certificate is transmitted to the second device and a message including a Nonce and the confirmation flag is received as a response from the second device, the signature generation unit generates a signature based on the Nonce and the confirmation flag included in the received message, and when the generated certificate is transmitted to the second device and a message including the Nonce and not including the confirmation flag is received as a response from the second device, the signature generation unit generates a signature based on the Nonce included in the received message.
  • a second device is a second device capable of communicating with a first device, and includes a message generation unit that, when receiving a certificate for a first encryption method from the first device that includes a confirmation flag indicating that the second device supports an encryption method different from the first encryption method, generates a message including a Nonce and the confirmation flag as a response to the received certificate if the second device supports the different encryption method, and generates a message including the Nonce but not the confirmation flag as a response to the received certificate if the second device does not support the different encryption method; and a communication unit that receives from the first device the Nonce included in the message sent by the second device and a signature generated based on either the Nonce or the confirmation flag.
  • a program is a program for causing a computer to execute a communication method between a first device and a second device, in which the first device transmits to the second device a certificate for a first encryption method that includes a confirmation flag indicating that the certificate corresponds to an encryption method different from the first encryption method, and when the first device receives a message including a Nonce and the confirmation flag as a response from the second device to the transmission of the certificate, the first device transmits to the second device a signature generated based on the Nonce and the confirmation flag included in the received message, and when the first device receives a message including the Nonce and not including the confirmation flag as a response from the second device to the transmission of the certificate, the first device transmits to the second device a signature generated based on the Nonce included in the received message.
  • a program according to another aspect of the present disclosure is a program for causing a computer to execute a communication method between a first device and a second device, in which the second device receives from the first device a certificate of a first encryption method that includes a confirmation flag indicating that the second device supports an encryption method different from the first encryption method, and if the second device supports the different encryption method, the second device transmits a message including a Nonce and the confirmation flag to the first device in response to the received certificate, and if the second device does not support the different encryption method, the second device transmits a message including the Nonce but not the confirmation flag to the first device in response to the received certificate, and the second device receives from the first device a signature generated based on either the Nonce included in the transmitted message or the Nonce and the confirmation flag.
  • the communication methods disclosed herein can more appropriately apply the hybrid method.
  • FIG. 1 is a diagram for explaining an overview of a communication system according to an embodiment.
  • FIG. 2 is a diagram for explaining an overview of a communication system according to another embodiment of the present invention.
  • FIG. 3 is a block diagram illustrating an example of a functional configuration of the certificate issuing apparatus according to the embodiment.
  • FIG. 4 is a block diagram illustrating an example of a functional configuration of a shared key issuing device according to an embodiment.
  • FIG. 5 is a block diagram illustrating another example of a functional configuration of the shared key issuing device according to the embodiment.
  • FIG. 6 is a block diagram illustrating an example of a functional configuration of a terminal device according to an embodiment.
  • FIG. 7 is a block diagram illustrating another example of a functional configuration of a terminal device according to an embodiment.
  • FIG. 8 is a block diagram illustrating an example of a functional configuration of a terminal device according to an embodiment.
  • FIG. 9 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 10 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 11 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 12 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 13 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 14 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 10 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 11 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 12 is a sequence diagram illustrating an example of the operation of the
  • FIG. 15 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 16 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 17 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 18 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 19 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 20 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 21 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 22 is a sequence diagram illustrating an example of the operation of the communication system according to the embodiment.
  • FIG. 23 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 24 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 25 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 26 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 27 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 28 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 29 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 30 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 31 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 32 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 33 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 34 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 35 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 36 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 37 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 38 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 39 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 40 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 41 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 42 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 43 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 44 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 45 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 46 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 47 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 48 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 49 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 50 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 51 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 52 is a diagram showing an example of a screen display during the operation of the communication system according to the embodiment.
  • FIG. 53 is a sequence diagram illustrating an example of the operation of a communication system according to a modification of an embodiment.
  • FIG. 54 is a sequence diagram illustrating an example of the operation of a communication system according to a modified example of an embodiment.
  • FIG. 55 is a sequence diagram illustrating an example of the operation of a communication system according to a modified example of an embodiment.
  • FIG. 56 is a sequence diagram illustrating an example of the operation of a communication system according to a modification of an embodiment.
  • the hybrid method is effective in maintaining safety over a long period of time, but it requires support on the communications device side. In other words, this method cannot be used to communicate with conventional devices that do not support the hybrid method (there is no backward compatibility). For this reason, when communicating, it is necessary for both parties to confirm that the other device is hybrid-compatible.
  • a non-critical extension field for confirming the hybrid compatibility status of the second device is added as a confirmation flag to the classical certificate sent by the first device. If the second device is hybrid compatible, it reads the flag and returns the confirmation flag together with the Nonce. The first device then generates a signature using both the received Nonce and the confirmation flag. By doing this, for example, even if the communication is intercepted when the second device returns the confirmation flag together with the Nonce and only a tampered Nonce is sent to the first device, the signature further sent from the first device does not include the confirmation flag, so the second device can detect that tampering has occurred because it does not match the Nonce and confirmation flag used for transmission. In other words, it becomes possible to apply the hybrid method more appropriately from the viewpoint of safely confirming the hybrid compatibility status.
  • the communication method is a communication method between a first device and a second device, in which the first device transmits to the second device a certificate for a first encryption method that includes a confirmation flag indicating that the certificate corresponds to an encryption method different from the first encryption method, and when the first device receives a message including a Nonce and the confirmation flag as a response from the second device to the transmission of the certificate, the first device transmits to the second device a signature generated based on the Nonce and the confirmation flag included in the received message, and when the first device receives a message including a Nonce and not including the confirmation flag as a response from the second device to the transmission of the certificate, the first device transmits to the second device a signature generated based on the Nonce included in the received message.
  • this communication method it is possible to detect whether the message has been tampered with by using the message sent as a response from the second device and the signature subsequently received from the first device.
  • the second device can obtain information for detecting whether the message has been tampered with. This makes it possible to more appropriately apply the hybrid method from the standpoint of safely checking the hybrid compatibility status.
  • the communication method according to the second aspect of the present disclosure is the communication method described in the first aspect, in which, when the first device receives a detection flag indicating that the message has been tampered with, the detection flag is generated by the second device based on a discrepancy between a message sent by the second device in response to the sending of the certificate and a signature sent from the first device to the second device in response to receiving the message, and the communication session between the first device and the second device continues using a different encryption method.
  • the communication session between the first device and the second device can be continued using a different encryption method.
  • a communication method is the communication method described in the first aspect, in which the first device terminates the communication session between the first device and the second device when the first device receives a detection flag indicating that the message has been tampered with, the detection flag being generated by the second device based on a discrepancy between a message sent by the second device in response to the sending of the certificate and a signature sent from the first device to the second device in response to receiving the message.
  • the communication session between the first device and the second device can be terminated based on receiving a detection flag indicating that a message has been tampered with.
  • the communication method according to the fourth aspect of the present disclosure is a communication method according to any one of the first to third aspects, in which the first encryption method is the RSA method or the EC-DSA method, and the different encryption method is the PQC method.
  • a communication method is a communication method between a first device and a second device, in which the second device receives from the first device a certificate of a first encryption method that includes a confirmation flag indicating that the second device supports an encryption method different from the first encryption method, and if the second device supports the different encryption method, the second device transmits a message including a Nonce and the confirmation flag to the first device as a response to the received certificate, and if the second device does not support the different encryption method, the second device transmits a message including a Nonce but not including the confirmation flag to the first device as a response to the received certificate, and the second device receives from the first device a signature generated based on either the Nonce included in the transmitted message or the Nonce and the confirmation flag.
  • the second device can obtain information for detecting whether the message has been tampered with. Therefore, it is possible to more appropriately apply the hybrid method from the standpoint of safely checking the hybrid compatibility status.
  • a communication method is a communication method between a first device and a second device, in which the first device transmits to the second device a certificate of a first encryption method that includes a confirmation flag indicating that the certificate supports an encryption method different from the first encryption method, and if the second device supports the different encryption method, the second device transmits to the first device a message including a Nonce and a confirmation flag as a response to the received certificate, and if the second device does not support the different encryption method, the second device transmits to the first device a message including a Nonce and not including a confirmation flag as a response to the received certificate, and if the first device receives a message including a Nonce and a confirmation flag from the second device as a response to the transmission of the certificate, the first device transmits to the second device a signature generated based on the Nonce and the confirmation flag included in the received message, and if the first device receives a message including a Nonce and not including a confirmation flag as a
  • the second device can obtain information for detecting whether the message has been tampered with. Therefore, it is possible to more appropriately apply the hybrid method from the standpoint of safely checking the hybrid compatibility status.
  • a first device is a first device capable of communicating with a second device, and includes a certificate generation unit that generates a certificate for a first encryption method that includes a confirmation flag indicating that the certificate corresponds to an encryption method different from the first encryption method, and a signature generation unit, and when the generated certificate is transmitted to the second device and a message including a Nonce and the confirmation flag is received as a response from the second device, the signature generation unit generates a signature based on the Nonce and the confirmation flag included in the received message, and when the generated certificate is transmitted to the second device and a message including a Nonce and not including the confirmation flag is received as a response from the second device, the signature generation unit generates a signature based on the Nonce included in the received message.
  • the second device is a second device capable of communicating with the first device, and includes a message generation unit that, when receiving from the first device a certificate for the first encryption method that includes a confirmation flag indicating that the second device supports an encryption method different from the first encryption method, generates a message including a Nonce and the confirmation flag as a response to the received certificate if the second device supports the different encryption method, and generates a message including a Nonce but not including the confirmation flag as a response to the received certificate if the second device does not support the different encryption method, and a communication unit that receives from the first device a Nonce included in the message sent by the second device and a signature generated based on either the Nonce or the confirmation flag.
  • a program according to a ninth aspect of the present disclosure is a program for causing a computer to execute a communication method between a first device and a second device, in which the first device transmits to the second device a certificate for a first encryption method that includes a confirmation flag indicating that the certificate corresponds to an encryption method different from the first encryption method, and when the first device receives a message including a Nonce and the confirmation flag as a response from the second device to the transmission of the certificate, the first device transmits to the second device a signature generated based on the Nonce and the confirmation flag included in the received message, and when the first device receives a message including a Nonce and not including the confirmation flag as a response from the second device to the transmission of the certificate, the first device transmits to the second device a signature generated based on the Nonce included in the received message.
  • this method achieves the same effect as the communication method described above.
  • a program according to a tenth aspect of the present disclosure is a program for causing a computer to execute a communication method between a first device and a second device, in which the second device receives from the first device a certificate of a first encryption method that includes a confirmation flag indicating that the second device supports an encryption method different from the first encryption method, and if the second device supports the different encryption method, the second device transmits a message including a Nonce and the confirmation flag to the first device as a response to the received certificate, and if the second device does not support the different encryption method, the second device transmits a message including a Nonce but not including the confirmation flag to the first device as a response to the received certificate, and the second device receives from the first device a signature generated based on either the Nonce included in the transmitted message or the Nonce and the confirmation flag.
  • this method achieves the same effect as the communication method described above.
  • Fig. 1 is a diagram for explaining an overview of a communication system according to an embodiment.
  • Fig. 1 shows a terminal device 300 corresponding to a first device and a terminal device 400 corresponding to a second device as devices involved in communication.
  • the certificate issuing device 100 generates an electronic signature certificate to be used by the user and transmits the certificate to the terminal devices 300 and 400.
  • the certificate issuing device 100 is realized, for example, by a server device belonging to a certificate issuing authority.
  • the shared key issuing device 200 generates a different shared key for each terminal device 300 and 400 used by the user, and embeds the shared key in the terminal devices 300 and 400.
  • the shared key issuing device 200 is operated, for example, by a terminal device manufacturing company that produces the terminal devices 300 and 400.
  • the shared key issuing device 200 may generate a common test message and flag for each terminal device 300 and 400 used by the user, and embed the test message and flag in the terminal devices 300 and 400.
  • the terminal device 300 performs communication between terminal devices (with the terminal device 400), random number generation, signature generation, session key generation, etc. In addition to the above, the terminal device 300 may also perform key generation.
  • the terminal device 400 performs communication between terminal devices (with the terminal device 300), random number generation processing, signature verification processing, session key generation processing, etc.
  • FIG. 2 is a diagram for explaining an overview of a communication system according to another embodiment of the present invention.
  • the shared key issuing device 200 is managed and operated by each user so that it can be connected to the terminal devices 300 and 400 individually.
  • FIG. 3 is a block diagram showing an example of the functional configuration of a certificate issuing device according to an embodiment.
  • the certificate issuing device 100 is realized by a processor, a memory, and a predetermined program stored in the memory.
  • the certificate issuing device 100 generates an electronic signature certificate to be used by a user, and transmits the certificate to the terminal devices 300 and 400.
  • the certificate issuing device 100 has, as its functional configuration, a random number generation unit 101, a flag generation unit 102, a key generation unit 103, a signature generation unit 104, a certificate generation unit 105, and a communication unit 106.
  • the random number generation unit 101 performs a random number generation process, notifies the key generation unit 103 of the generated random number A, and notifies the signature generation unit 104 of the generated random number B.
  • random numbers A and B may be different.
  • the random numbers do not have to be uniform random numbers.
  • the flag generation unit 102 performs a process of generating a flag indicating that the certificate supports multiple algorithms (algorithm means encryption method), and notifies the signature generation unit 104 and the certificate generation unit 105.
  • algorithm means encryption method
  • the flag may be in binary or integer format, or in other formats.
  • the flag may be specified or may be other. There may be multiple types of flags depending on the type and number of algorithms that the certificate supports.
  • Key generation unit 103 performs the process of generating private key A, public key B, private key C, and public key D, notifies signature generation unit 104 of private key A and public key D, notifies certificate generation unit 105 of public key D, and notifies communication unit 106 of public key B and private key C.
  • Public key B is notified to terminal device 400
  • private key C is notified to terminal device 300.
  • key generation unit 103 may generate any number of private keys and public keys, and may also generate a common key.
  • the signature generation unit 104 performs a signature process using the private key A on the plaintext including the public key D and the flag notified by the flag generation unit 102, and notifies the certificate generation unit 105 of the generated signature.
  • any number of signatures may be generated, and there is no limit to how many private keys are used for how many plaintexts.
  • the plaintext may include the public key or common key notified by the terminal device 300.
  • the certificate generation unit 105 creates a certificate including the flag notified by the flag generation unit 102, the signature notified by the signature generation unit 104, and the public key D notified by the key generation unit 103, and notifies the communication unit 106 and the terminal device 300.
  • FIG. 4 is a block diagram showing an example of the functional configuration of a shared key issuing device according to an embodiment.
  • the shared key issuing device 200 is realized by a processor, a memory, and a predetermined program stored in the memory.
  • the shared key issuing device 200 generates a different shared key for each terminal device 300 and 400 used by a user, and embeds the shared key in each terminal device 300 and 400.
  • the shared key issuing device 200 has, as its functional configuration, a random number generation unit 201, a shared key generation unit 202, and a communication unit 203.
  • the random number generation unit 201 performs random number generation processing and notifies the common key generation unit 202 of the generated random number. However, multiple random numbers may be generated, and they do not have to be uniform random numbers.
  • the shared key generating unit 202 performs a shared key generation process and notifies the communication unit 203 of the generated shared key. However, multiple shared keys may be generated. As shown in FIG. 2, in another example of the embodiment, the shared key issuing device 200 may be attached to the terminal devices 300 and 400 of each user.
  • FIG. 5 is a block diagram showing another example of the functional configuration of a shared key issuing device according to an embodiment.
  • the shared key issuing device 200a may generate a test message and flag common to the terminal devices 300 and 400 used by a user, and embed the test message and flag in the terminal devices 300 and 400. This applies, for example, to the configuration shown in FIG. 1.
  • the shared key issuing device 200a in this example has, as its functional configuration, a random number generation unit 201a, a flag generation unit 202a, a test message generation unit 203a, a shared key generation unit 204a, and a communication unit 205a.
  • the random number generation unit 201a performs a random number generation process, notifies the flag generation unit 202a of the generated random number A, notifies the test message generation unit 203a of the generated random number B, and notifies the common key generation unit 204a of the generated random number C.
  • the random numbers A, B, and C may be different.
  • the random numbers do not have to be uniform random numbers.
  • the flag generation unit 202a performs processing to generate a flag indicating that the certificate supports multiple algorithms, and notifies the communication unit 205a.
  • the flag may be in any format, such as a binary or integer value.
  • the flag may be either specified or unspecified. There may be multiple types of flags depending on the type and number of algorithms that the certificate supports.
  • the test message generation unit 203a performs a test message generation process and notifies the communication unit 205a.
  • the flag format may be binary or an integer value, or anything else.
  • the test message may or may not be specified. There may be multiple types of test messages depending on the purpose.
  • the shared key generation unit 204a performs a shared key generation process and notifies the communication unit 205a of the generated shared key. However, multiple shared keys may be generated.
  • FIG. 6 is a block diagram showing an example of the functional configuration of a terminal device according to an embodiment.
  • the terminal device 300 is realized by a processor, a memory, and a predetermined program stored in the memory.
  • the terminal device 300 performs communication between terminal devices, random number generation processing, signature generation processing, session key generation processing, etc.
  • the terminal device 300 has, as its functional configuration, a random number generation unit 301, a signature generation unit 302, a session key generation unit 303, a session key confirmation unit 304, a certificate storage unit 305, and a communication unit 306.
  • the random number generation unit 301 performs the signature generation process and notifies the signature generation unit 302 of the generated random number. However, multiple random numbers may be generated, and they do not have to be uniform random numbers.
  • the signature generation unit 302 performs a signature process on the plaintext including the flag and Nonce using the private key C notified by the key generation unit 103, notifies the communication unit 306 of the generated signature, and notifies the terminal device 400.
  • any number of signatures may be generated, and there is no particular limit to how many private keys are used for how many plaintexts.
  • the plaintext does not need to include the flag and Nonce, and the signature does not need to be generated using the private key C notified by the key generation unit 103.
  • the session key generating unit 303 performs a session key generation process for key exchange, notifies the communication unit 306, and notifies the terminal device 400. However, multiple session keys may be generated, and an encrypted test message may be notified together with the session key.
  • the session key confirmation unit 304 performs confirmation processing of the session key notified by the session key generation unit 303, and notifies the communication unit 306 of the confirmation result. However, multiple session keys may be confirmed, and a session key other than the one notified by the session key generation unit 303 may be confirmed.
  • the certificate storage unit 305 stores the certificate notified by the certificate generation unit 105. If necessary, it also notifies the communication unit 306 of the certificate and notifies the terminal device 400 of the certificate.
  • FIG. 7 is a block diagram showing another example of the functional configuration of a terminal device according to an embodiment.
  • Terminal device 300a may generate keys.
  • terminal device 300a has a random number generation unit 301a, a signature generation unit 302a, a session key generation unit 303a, a session key confirmation unit 304a, a certificate storage unit 305a, a key generation unit 306a, and a communication unit 307a as its functional configuration.
  • random number generation unit 301a The functions of random number generation unit 301a, signature generation unit 302a, session key generation unit 303a, session key confirmation unit 304a, certificate storage unit 305a, and communication unit 307a are similar to those of random number generation unit 301, signature generation unit 302, session key generation unit 303, session key confirmation unit 304, certificate storage unit 305, and communication unit 306, respectively, and therefore will not be described.
  • the key generation unit 306a performs the process of generating a private key C and a public key D, and notifies the communication unit 307a, and then notifies the certificate issuing device 100. However, the key generation unit 306a may generate any number of private keys and public keys, or may generate a common key.
  • FIG. 8 is a block diagram showing an example of the functional configuration of a terminal device according to an embodiment.
  • the terminal device 400 is realized by a processor, a memory, and a predetermined program stored in the memory.
  • the terminal device 400 performs communication between terminal devices, random number generation processing, signature verification processing, session key generation processing, and the like.
  • the terminal device 400 has, as its functional configuration, a random number generation unit 401, a Nonce flag generation unit 402, a session key generation unit 403, a signature verification unit 404, a certificate verification unit 405, a certificate reading unit 406, and a communication unit 407.
  • the random number generation unit 401 performs a random number generation process, notifies the Nonce flag generation unit 402 of the generated random number A, and notifies the session key generation unit 403 of the generated random number B.
  • random numbers A and B may be different.
  • the random numbers do not have to be uniform random numbers.
  • the Nonce flag generation unit 402 performs processing to generate a Nonce for use in signature processing and a flag for notifying of attack detection.
  • the Nonce is notified to the communication unit 407, and then to the terminal device 300.
  • the flag is notified to the session key generation unit 403.
  • the Nonce flag generation unit 402 does not necessarily need to generate both a Nonce and a flag, and may generate only one of them.
  • the signature verification unit 404 performs a verification process for the signature notified by the certificate verification unit 405, and notifies the certificate verification unit 405 of the verification result. However, the signature verification unit 404 may verify any number of signatures.
  • the certificate verification unit 405 extracts the signature portion of the certificate required for verification according to the certificate and verification method notified by the certificate reading unit 406, and notifies the signature verification unit 404. However, the certificate verification unit 405 may verify any number of certificates.
  • the certificate reading unit 406 analyzes the certificate notified by the certificate storage unit 305, and reads the presence or absence of flags, the number and type of signatures, the number and type of public keys, etc. Furthermore, depending on the information read, it determines the method for verifying the certificate (e.g., the order of signatures to be verified, etc.) and notifies the certificate verification unit of the determined method and the certificate.
  • Figures 9 to 22 are sequence diagrams explaining an example of the operation of the communication system according to the embodiment.
  • Figures 23 to 52 are diagrams showing an example of screen display in the operation of the communication system according to the embodiment.
  • the certificate issuing device 100 When the communication system starts operating, first, the certificate issuing device 100 creates a first algorithm public key and a private key for the certificate issuing authority (S101). Specifically, the key generating unit 103 creates these public keys and private keys. The certificate issuing device 100 also creates a second algorithm public key and a private key for the certificate issuing authority (S102). Specifically, the key generating unit 103 creates these public keys and private keys.
  • the terminal device 400 transmits a certificate issuing authority public key request to the certificate issuing device 100.
  • the terminal device 400 displays a screen for key generation settings as shown in FIG. 23, and the certificate issuing authority public key request is transmitted by selecting "public key” as shown in FIG. 24.
  • the certificate issuing device 100 judges whether the terminal device 400 supports the hybrid method (S103).
  • the terminal device 400 displays a screen for inputting whether or not the hybrid method is supported as shown in FIG. 26, and "supported” is selected as shown in FIG. 27.
  • the screen transitions to a screen for selecting whether or not to issue a hybrid certificate as shown in FIG. 28, and by selecting "yes" as shown in FIG. 29, the fact that the hybrid method is supported is input to the communication system.
  • the certificate issuing device 100 transmits the first algorithm public key for the certificate issuing authority and the second algorithm public key for the certificate issuing authority to the terminal device 400.
  • the screen transitions to a screen for selecting a first algorithm from among several options as shown in FIG. 30, for example.
  • First assume that "Algorithm A” is selected from several options as the first algorithm as shown in FIG. 31.
  • the screen transitions to a screen for selecting a second algorithm from among several options as shown in FIG. 32.
  • a first algorithm public key for the certificate issuing authority of "Algorithm A” and a second algorithm public key for the certificate issuing authority of "Algorithm E" are created, and the screen shown in FIG. 34 is displayed.
  • the certificate issuing device 100 transmits only the first algorithm public key for the certificate issuing authority to the terminal device 400.
  • the screen transitions to a screen for selecting a first algorithm from among several options as shown in FIG. 36. If, for example, "Algorithm A" is selected as the first algorithm from among several options as shown in FIG. 37, a first algorithm public key for the certificate issuing authority of "Algorithm A" is created, and the screen shown in FIG. 34 is displayed.
  • the terminal device 300 transmits a request for a certificate and a private key to the certificate issuing device 100.
  • the terminal device 300 displays a screen for setting key generation as shown in FIG. 23, and a request for a certificate and a private key is transmitted by selecting "certificate and private key" as shown in FIG. 25.
  • the certificate issuing device 100 judges whether the terminal device 300 supports the hybrid method (S201).
  • the terminal device 300 displays a screen for inputting whether or not the hybrid method is supported as shown in FIG. 26, and selects "supported” as shown in FIG. 27.
  • the screen transitions to a screen for selecting whether or not to issue a hybrid certificate as shown in FIG. 28, and by selecting "yes" as shown in FIG. 29, the fact that the hybrid method is supported is input to the communication system.
  • the screens of FIG. 30 to FIG. 38 are transitioned in the same way as the terminal device 400, and therefore a description thereof will be omitted.
  • the certificate issuing device 100 creates a first algorithm public key and a private key for the certificate (S202).
  • the certificate issuing device 100 also creates a second algorithm public key and a private key for the certificate (S203).
  • the certificate issuing device 100 also creates a first algorithm certificate (S204).
  • the certificate issuing device 100 also creates a second algorithm certificate (S205).
  • the certificate issuing device 100 then transmits the private key corresponding to the first algorithm certificate and the private key corresponding to the second algorithm certificate to the terminal device 300.
  • the process proceeds to N2 in FIG. 13. FIG. 13 will be described later.
  • Figures 11 and 12 show another example of the above operation. More specifically, part of the above processing is performed by the shared key issuing device 200. Note that, in the operation relating to this another example as well, the screen displays shown in Figures 23 to 38 and the corresponding operations may be received by the terminal device 400 and the terminal device 300.
  • the shared key issuing device 200 sends a certificate issuing authority public key request to the certificate issuing device 100. Note that steps S301 and S302 are similar to steps S101 and S102, respectively, and therefore description thereof will be omitted.
  • the certificate issuing device 100 determines whether the terminal device 400 supports the hybrid method (S303).
  • the certificate issuing device 100 transmits the first algorithm public key for the certificate issuing authority and the second algorithm public key for the certificate issuing authority to the terminal device 400 via the shared key issuing device 200.
  • the certificate issuing device 100 transmits only the first algorithm public key for the certificate issuing authority to the terminal device 400 via the shared key issuing device 200.
  • the certificate issuing device 100 determines whether the terminal device 300 supports the hybrid method (S401), as in step S201. Steps S402 to S405 are similar to steps S202 to S205, respectively, and therefore will not be described. If it is determined that the terminal device 300 supports the hybrid method ("Supported" in S401), the certificate issuing device 100 executes steps S402 to S405, and then transmits the private key corresponding to the first algorithm certificate and the private key corresponding to the second algorithm certificate to the terminal device 300 via the shared key issuing device 200. If it is determined that the terminal device 300 does not support the hybrid method ("Not Supported" in S401), proceed to N2 in FIG. 13.
  • the certificate issuing device 100 creates a first algorithm public key and private key for the certificate (S501).
  • the certificate issuing device 100 then creates a first algorithm certificate (S502) and transmits the first algorithm certificate and the corresponding private key to the terminal device 300. The process then ends.
  • the shared key issuing device 200 creates a shared key (S601) and transmits it to the terminal device 400. After that, the process ends.
  • the shared key issuing device 200 creates a flag (S701), creates a test message (S702), and creates a shared key (S703). Then, the shared key issuing device 200 transmits the flag to the terminal devices 300 and 400. Then, the shared key issuing device 200 transmits the test message to the terminal devices 300 and 400. Then, the shared key issuing device 200 transmits the shared key to the terminal device 400. Thereafter, the processing ends.
  • preliminary communication is performed between terminal device 300 and terminal device 400 to confirm whether hybrid communication is possible.
  • terminal device 300 transmits a first algorithm certificate to terminal device 400.
  • the first algorithm certificate includes a confirmation flag in a non-critical extension field indicating that the certificate supports hybrid communication, i.e., an encryption method that combines the classical method (first encryption method) and the PQC method (second encryption method). More precisely, in this communication method, when the first algorithm certificate is issued, a first algorithm certificate is issued that includes a confirmation flag in a non-critical extension field.
  • the terminal device 400 When the terminal device 400 receives the first algorithm certificate, it creates a Nonce (S801). If the terminal device 400 supports the hybrid method, it generates a Nonce and a confirmation flag. If the terminal device 400 does not support the hybrid method, it generates only a Nonce. Therefore, in determining whether or not there is a flag (confirmation flag) (S802), if it is determined that there is no flag (S802: No), the terminal device 400 does not support the hybrid method. In this case, proceed to N4 in FIG. 19. FIG. 19 will be described later. For example, a confirmation screen for the presence or absence of a flag shown in FIG. 40 is displayed on the terminal device 400, and it can be confirmed that there is no flag. Then, the process transitions to the screen shown in FIG. 43 and ends.
  • the terminal device 400 is deemed to support the hybrid method. For example, a confirmation screen for the presence or absence of a flag as shown in FIG. 39 is displayed on the terminal device 400, allowing the user to confirm that the flag is present. The screen then transitions to that shown in FIG. 43, and the process ends.
  • the terminal device 400 transmits a Nonce and a confirmation flag, or just the Nonce, to the terminal device 300.
  • the Nonce is, for example, a 128-bit random number.
  • the terminal device 300 determines whether or not there is a flag (S803), and if it is determined that there is no flag (S803: No), the terminal device 400 does not support the hybrid method. In this case, proceed to N5 in FIG. 20.
  • FIG. 20 will be described later.
  • a confirmation screen for the presence or absence of a flag shown in FIG. 42 is displayed on the terminal device 300, allowing the user to confirm that there is no flag. The process then transitions to the screen shown in FIG. 43 and ends.
  • the terminal device 400 is deemed to support the hybrid method. For example, a confirmation screen for the presence or absence of a flag as shown in FIG. 41 is displayed on the terminal device 300, allowing the user to confirm that the flag is present. The screen then transitions to that shown in FIG. 43, and the process ends.
  • the terminal device 300 creates a first algorithm signature (S804). Specifically, the terminal device 300 generates the first algorithm signature by signing a value obtained by combining the Nonce, the confirmation flag, and the session key using a classical encryption method such as the EC-DSA method.
  • the terminal device 300 transmits the generated first algorithm signature to the terminal device 400.
  • the terminal device 400 verifies the first algorithm certificate (S805). At that time, it extracts the public key corresponding to the private key. Next, the terminal device 400 verifies the first algorithm signature (S806). It uses the extracted public key for the verification.
  • terminal device 400 creates a session key (S901). Specifically, terminal device 400 generates a 128-bit common key from the public key received from terminal device 300 and the private key generated by terminal device 400. Terminal device 400 uses the session key to encrypt a common key used for communication between terminal devices 300 and 400 and a test message (S902). Specifically, terminal device 400 encrypts the common key and test message using the generated 128-bit key in AES format and transmits them.
  • the terminal device 400 transmits the encrypted test message to the terminal device 300.
  • the terminal device 300 creates a session key (S903). Specifically, the terminal device 300 further decrypts the common key and the test message using the session key (S904). The terminal device 300 then decrypts the received encrypted common key and verifies the test message.
  • the terminal device 300 transmits the second algorithm certificate to the terminal device 400.
  • the terminal device 400 creates a Nonce (S905) and transmits the created Nonce to the terminal device 300.
  • the terminal device 300 creates a second algorithm signature (S906) and transmits the created second algorithm signature to the terminal device 400.
  • the terminal device 400 verifies the second algorithm certificate (S1001).
  • the terminal device 400 also verifies the second algorithm signature (S1002).
  • the terminal device 400 creates a session key (S1003) and encrypts the common key with the created session key (S1004).
  • the terminal device 400 transmits the encrypted common key to the terminal device 300.
  • the terminal device 300 creates a session key (S1005) and decrypts the encrypted common key with the session key (S1006). In this way, communication using the hybrid method is established (the correspondence confirmation pre-communication process ends).
  • terminal device 400 transmits a Nonce to terminal device 300. Since terminal device 400 does not support the hybrid method, terminal device 300 operates to communicate using the first algorithm. First, terminal device 300 creates a first algorithm signature (S1101). Terminal device 300 transmits the created first algorithm signature to terminal device 400.
  • the terminal device 400 verifies the first algorithm certificate (S1102), verifies the first algorithm signature (S1103), and creates a session key (S1104).
  • the terminal device 400 then encrypts the common key with the created session key (S1105).
  • the terminal device 400 transmits the encrypted common key to the terminal device 300.
  • the terminal device 300 creates a session key (S1106), and decrypts the encrypted common key with the session key (S1107). In this way, communication using the first algorithm (i.e., the classical method) is established (the correspondence confirmation pre-communication process ends).
  • the terminal device 300 creates a first algorithm signature (S1201).
  • the terminal device 300 transmits the created first algorithm signature to the terminal device 400.
  • the terminal device 400 verifies the first algorithm certificate (S1202) and verifies the first algorithm signature (S1203). For example, a screen for verifying the first algorithm signature shown in FIG. 44 is displayed. At this time, if the verification is NG ("Verification NG" in S1203), the process proceeds to N8 in FIG. 21. FIG. 21 will be described later.
  • the process proceeds to creating a session key (S1204). For example, a screen indicating that the verification result is "OK” as shown in FIG. 45 is displayed, and then the process transitions to a screen indicating that the verification is complete as shown in FIG. 46.
  • the terminal device 400 then encrypts the common key with the created session key (S1205).
  • the terminal device 400 transmits the encrypted common key to the terminal device 300.
  • the terminal device 300 creates a session key (S1206) and decrypts the encrypted common key with the session key (S1207). In this way, communication using the first algorithm (i.e., the classical method) is established (the correspondence confirmation pre-communication process is terminated).
  • the terminal device 400 judges whether to continue or end the communication (S1301). For example, a screen indicating that the verification result is "NG” as shown in FIG. 47 is displayed, and the screen transitions to a screen for selecting whether to continue or end the communication as shown in FIG. 48. If the terminal device 400 judges to end the communication ("end communication" in S1301), the communication is ended and all processing is ended. For example, as shown in FIG. 51, when "end" is selected, the screen transitions to a screen indicating that the communication is ended as shown in FIG. 52.
  • the terminal device 400 judges to continue the communication ("continue communication" in S1301), the terminal device 400 creates a session key (S1302). For example, as shown in FIG. 49, when "continue communication" is selected, the screen transitions to a screen indicating that the communication is continued as shown in FIG. 50. Then, the terminal device 400 encrypts the detection flag with the created session key (S1303).
  • the detection flag is a flag that indicates that a message has been tampered with. In other words, there is a possibility that an attacker has forced communication to use the classical method, so if communication is to continue, it is preferable to continue using the PQC method. Therefore, from this point on, communication will switch to using the second algorithm, which corresponds to the PQC method.
  • the terminal device 400 transmits the encrypted detection flag to the terminal device 300.
  • the terminal device 400 then creates a session key (S1304) and decrypts the encrypted detection flag using the session key (S1305). In this way, the terminal device 300 detects that tampering has occurred by receiving the detection flag.
  • the terminal device 300 then transmits a second algorithm certificate to the terminal device 400.
  • the terminal device 400 creates a Nonce (S1306) and transmits the created Nonce to the terminal device 300.
  • the terminal device 300 creates a second algorithm signature (S1401) and transmits the created second algorithm signature to the terminal device 400.
  • the terminal device 400 verifies the second algorithm certificate (S1402).
  • the terminal device 400 also verifies the second algorithm signature (S1403).
  • the terminal device 400 creates a session key (S1404) and encrypts the common key with the created session key (S1405).
  • the terminal device 400 transmits the encrypted common key to the terminal device 300.
  • the terminal device 300 creates a session key (S1406) and decrypts the encrypted common key with the session key (S1407). In this way, communication using the PQC method is established (the correspondence confirmation pre-communication process ends).
  • Figures 53 to 56 corresponding to Figures 16, 17, 19, and 20 in the above embodiment will be used for explanation.
  • the points different from the above embodiment will be mainly described, and the explanation of the points that are the same as the above embodiment will be omitted.
  • Figures 53 to 56 are sequence diagrams explaining an example of the operation of a communication system according to the modified example of the embodiment.
  • the first algorithm and the second algorithm are selected from several options and used.
  • the selected algorithm must be consistent between terminal device 300 and terminal device 400, and in this case, the communication system may be provided with a function for checking whether the selected algorithms are the same. Therefore, in the communication system according to the modified example, in addition to the operations described in Figures 16 to 20, steps (S800, S900, S1100, and S1200) for checking whether the algorithms are the same are added.
  • FIG. 53 corresponds to FIG. 16, and in addition to the operation of the communication system shown in FIG. 16, a step (S800) of confirming whether the algorithms are the same is added.
  • the terminal device 400 confirms whether the first algorithm is the same (S800). Also, the terminal device 300 may confirm whether the algorithm that is to be used as the first algorithm is the same as the algorithm selected as the first algorithm in the terminal device 400.
  • FIG. 54 corresponds to FIG. 17, and in addition to the operation of the communication system shown in FIG. 17, a step (S900) of confirming whether the algorithms are the same is added.
  • the terminal device 400 confirms whether the second algorithm is the same (S900). Also, the terminal device 300 may confirm whether the algorithm to be used as the second algorithm is the same as the algorithm selected as the second algorithm by the terminal device 400.
  • FIG. 55 corresponds to FIG. 19, and in addition to the operation of the communication system shown in FIG. 19, a step (S1100) of confirming whether the algorithms are the same is added.
  • the terminal device 400 confirms whether the first algorithm is the same (S1100). Also, the terminal device 300 may confirm whether the algorithm that is to be used as the first algorithm is the same as the algorithm selected as the first algorithm in the terminal device 400.
  • FIG. 56 corresponds to FIG. 20, and in addition to the operation of the communication system shown in FIG. 20, a step (S1200) of confirming whether the algorithms are the same is added.
  • the terminal device 400 confirms whether the first algorithm is the same (S1200). Also, the terminal device 300 may confirm whether the algorithm that is to be used as the first algorithm is the same as the algorithm selected as the first algorithm in the terminal device 400.
  • the terminal device 300 and the terminal device 400 each correspond to the second algorithm.
  • the process for communication using the first algorithm may not be performed, and only the process for communication using the second algorithm (the process from sending the second algorithm certificate in step S904 onward) may be performed.
  • each component may be configured with dedicated hardware, or may be realized by executing a software program suitable for each component.
  • Each component may be realized by a program execution unit such as a CPU or processor reading and executing a software program recorded on a recording medium such as a hard disk or semiconductor memory.
  • each component may be a circuit (or an integrated circuit). These circuits may form a single circuit as a whole, or each may be a separate circuit. Furthermore, each of these circuits may be a general-purpose circuit, or a dedicated circuit.
  • the general or specific aspects of the present disclosure may be realized in a system, an apparatus, a method, an integrated circuit, a computer program, or a non-transitory recording medium such as a computer-readable CD-ROM.
  • the present disclosure may be realized in any combination of a system, an apparatus, a method, an integrated circuit, a computer program, and a non-transitory recording medium that is computer-readable.
  • the present disclosure may be realized as a communication method executed by various devices related to communication (computers or DSPs), or as a program for causing a computer or DSP to execute the above-mentioned communication method.
  • processing performed by a specific processing unit may be executed by another processing unit.
  • the order of multiple processes in the operation of the communication system described in the above embodiment may be changed, and multiple processes may be executed in parallel.
  • this disclosure also includes forms obtained by applying various modifications to each embodiment that a person skilled in the art may conceive, or forms realized by arbitrarily combining the components and functions of each embodiment within the scope of the spirit of this disclosure.
  • This disclosure is useful as a communication method when applying a hybrid system.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

通信方法では、第1機器(端末装置(300))が、第1暗号化方式の証明書であって、第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を第2機器(端末装置(400))に送信し、第1機器が、証明書の送信に対する第2機器からの応答として、Nonceと確認フラグとを含むメッセージを受信した場合、第1機器は、受信したメッセージに含まれるNonce及び確認フラグに基づいて生成した署名を第2機器に送信し、第1機器が、証明書の送信に対する第2機器からの応答として、Nonceを含み、かつ、確認フラグを含まないメッセージを受信した場合、第1機器は、受信したメッセージに含まれるNonceに基づいて生成した署名を第2機器に送信する。

Description

通信方法、第1機器、第2機器、及び、プログラム
 本開示は、通信方法、第1機器、第2機器、及び、プログラムに関する。
 特許文献1には、企業システム内のアプリが使用する暗号システムが、いわゆる古典暗号化方式と、PQC(Post Quantum Cryptography)方式とを組み合わせたハイブリッド方式へ移行する方法について開示されている。
国際公開第2020/087152号
 本開示は、より適切に、ハイブリッド方式を適用するための通信方法などを提供する。
 本開示の一態様に係る通信方法は、第1機器と第2機器との間における通信方法であって、前記第1機器が、第1暗号化方式の証明書であって、前記第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を前記第2機器に送信し、前記第1機器が、前記証明書の送信に対する前記第2機器からの応答として、Nonceと前記確認フラグとを含むメッセージを受信した場合、前記第1機器は、受信した前記メッセージに含まれる前記Nonce及び前記確認フラグに基づいて生成した署名を前記第2機器に送信し、前記第1機器が、前記証明書の送信に対する前記第2機器からの応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを受信した場合、前記第1機器は、受信した前記メッセージに含まれる前記Nonceに基づいて生成した署名を前記第2機器に送信する。
 本開示の別の一態様に係る通信方法は、第1機器と第2機器との間における通信方法であって、前記第2機器が、前記第1機器からの第1暗号化方式の証明書であって、前記第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を受信し、前記第2機器が、前記異なる暗号化方式に対応する場合に、前記第2機器は、受信した前記証明書に対する応答として、Nonceと前記確認フラグとを含むメッセージを前記第1機器に送信し、前記第2機器が、前記異なる暗号化方式に対応しない場合に、前記第2機器は、受信した前記証明書に対する応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを前記第1機器に送信し、前記第2機器が、前記第1機器から、送信した前記メッセージに含まれる前記Nonceと、前記Nonce及び前記確認フラグとのいずれかに基づいて生成された署名を受信する。
 本開示のさらに別の一態様に係る通信方法は、第1機器と第2機器との間における通信方法であって、前記第1機器が、第1暗号化方式の証明書であって、前記第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を前記第2機器に送信し、前記第2機器が前記異なる暗号化方式に対応する場合に、前記第2機器は、受信した前記証明書に対する応答として、Nonceと前記確認フラグとを含むメッセージを前記第1機器に送信し、前記第2機器が前記異なる暗号化方式に対応しない場合に、前記第2機器は、受信した前記証明書に対する応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを前記第1機器に送信し、前記第1機器が、前記証明書の送信に対する前記第2機器からの応答として、Nonceと前記確認フラグとを含むメッセージを受信した場合、前記第1機器は、受信した前記メッセージに含まれる前記Nonce及び前記確認フラグに基づいて生成した署名を前記第2機器に送信し、前記第1機器が、前記証明書の送信に対する前記第2機器からの応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを受信した場合、前記第1機器は、受信した前記メッセージに含まれる前記Nonceに基づいて生成した署名を前記第2機器に送信する。
 本開示の一態様に係る第1機器は、第2機器と通信可能な第1機器であって、第1暗号化方式の証明書であって、前記第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を生成する証明書生成部と、署名生成部と、を備え、前記署名生成部は、生成した前記証明書を前記第2機器に送信した場合に前記第2機器からの応答として、Nonceと前記確認フラグとを含むメッセージを受信した場合、受信した前記メッセージに含まれる前記Nonce及び前記確認フラグに基づいて署名を生成し、生成した前記証明書を前記第2機器に送信した場合に前記第2機器からの応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを受信した場合、受信した前記メッセージに含まれる前記Nonceに基づいて署名を生成する。
 本開示の一態様に係る第2機器は、第1機器と通信可能な第2機器であって、メッセージ生成部であって、前記第1機器からの第1暗号化方式の証明書であって、前記第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を受信した場合に、前記第2機器が前記異なる暗号化方式に対応していれば、受信した前記証明書に対する応答として、Nonceと前記確認フラグとを含むメッセージを生成し、前記第2機器が前記異なる暗号化方式に対応していなければ、受信した前記証明書に対する応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを生成する、メッセージ生成部と、前記第2機器が、前記第1機器から、送信した前記メッセージに含まれる前記Nonceと、前記Nonce及び前記確認フラグとのいずれかに基づいて生成された署名を受信する通信部と、を備える。
 本開示の一態様に係るプログラムは、第1機器と第2機器との間における通信方法をコンピュータに実行させるためのプログラムであって、前記通信方法では、前記第1機器が、第1暗号化方式の証明書であって、前記第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を前記第2機器に送信し、前記第1機器が、前記証明書の送信に対する前記第2機器からの応答として、Nonceと前記確認フラグとを含むメッセージを受信した場合、前記第1機器は、受信した前記メッセージに含まれる前記Nonce及び前記確認フラグに基づいて生成した署名を前記第2機器に送信し、前記第1機器が、前記証明書の送信に対する前記第2機器からの応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを受信した場合、前記第1機器は、受信した前記メッセージに含まれる前記Nonceに基づいて生成した署名を前記第2機器に送信する。
 本開示の別の一態様に係るプログラムは、第1機器と第2機器との間における通信方法をコンピュータに実行させるためのプログラムであって、前記通信方法では、前記第2機器が、前記第1機器からの第1暗号化方式の証明書であって、前記第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を受信し、前記第2機器が、前記異なる暗号化方式に対応する場合に、前記第2機器は、受信した前記証明書に対する応答として、Nonceと前記確認フラグとを含むメッセージを前記第1機器に送信し、前記第2機器が、前記異なる暗号化方式に対応しない場合に、前記第2機器は、受信した前記証明書に対する応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを前記第1機器に送信し、前記第2機器が、前記第1機器から、送信した前記メッセージに含まれる前記Nonceと、前記Nonce及び前記確認フラグとのいずれかに基づいて生成された署名を受信する。
 なお、これらの全般的または具体的な態様は、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの非一時的な記録媒体で実現されてもよく、装置、集積回路、コンピュータプログラム及び非一時的な記録媒体の任意な組み合わせで実現されてもよい。
 本開示における通信方法などは、より適切に、ハイブリッド方式を適用することが可能となる。
図1は、実施の形態に係る通信システムの概要を説明するための図である。 図2は、実施の形態の別例に係る通信システムの概要を説明するための図である。 図3は、実施の形態に係る証明書発行装置の機能構成の一例を示すブロック図である。 図4は、実施の形態に係る共通鍵発行装置の機能構成の一例を示すブロック図である。 図5は、実施の形態に係る共通鍵発行装置の機能構成の別の一例を示すブロック図である。 図6は、実施の形態に係る端末装置の機能構成の一例を示すブロック図である。 図7は、実施の形態に係る端末装置の機能構成の別の一例を示すブロック図である。 図8は、実施の形態に係る端末装置の機能構成の一例を示すブロック図である。 図9は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。 図10は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。 図11は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。 図12は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。 図13は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。 図14は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。 図15は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。 図16は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。 図17は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。 図18は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。 図19は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。 図20は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。 図21は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。 図22は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。 図23は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図24は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図25は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図26は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図27は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図28は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図29は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図30は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図31は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図32は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図33は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図34は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図35は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図36は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図37は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図38は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図39は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図40は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図41は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図42は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図43は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図44は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図45は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図46は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図47は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図48は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図49は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図50は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図51は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図52は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。 図53は、実施の形態の変形例に係る通信システムの動作の一例を説明するシーケンス図である。 図54は、実施の形態の変形例に係る通信システムの動作の一例を説明するシーケンス図である。 図55は、実施の形態の変形例に係る通信システムの動作の一例を説明するシーケンス図である。 図56は、実施の形態の変形例に係る通信システムの動作の一例を説明するシーケンス図である。
 (本開示の基礎となった知見)
 近年量子計算機の開発が盛んに行われており、その一方で、量子計算機の大規模化により現在使用されている暗号方式(以下、古典暗号化方式、又は、単に、古典方式)は、理論上危殆化することが知られている。このような事情に鑑みて、大規模な量子計算機の計算性能に耐えうる新しい暗号方式(以下、PQC(Post Quantum Cryptography)方式)が提案され、古典方式からの移行の準備が進められている。しかしながら、PQC方式は、まだ歴史が浅く、安全性に対する評価が十分に行われているとはいえない。言い換えると、PQC方式をそのまま用いた場合に、暗号化の安全性が担保されていない。そのため、安全性に対する評価が十分に行われるまでの移行期の間は、古典方式とPQC方式とを併用した方式(以下、ハイブリッド方式)を用いるのがよいと考えられている。古典方式としては、RSA又はEC-DSA(Elliptic Curve - Digital Signature Algorithm)等が用いられる。
 ところで、ハイブリッド方式は、安全性を長期間保つためには有効だが、通信機器側での対応を必要とする。つまり、ハイブリッド方式に非対応の従来機器との通信では、この方式を利用できない(下位互換性がない)。そのため、通信時に相手側の機器がハイブリッド対応しているかを互いに確認することが必要となる。
 本開示では、通信を行う一方の機器(第2機器)が、他方の機器(第1機器)を認証し、鍵交換を行う通信を例に、より適切にハイブリッド方式を適用するための通信方法について説明する。この通信方法の概略は以下の通りである。
 まず、第1機器が送信する古典証明書に、第2機器側のハイブリッド対応状況を確認するためのnon-criticalな拡張領域を確認フラグとして追加する。第2機器側は、ハイブリッド対応していればフラグを読み取り、Nonceとともに確認フラグを返す。そして、第1機器側は、受け取ったNonceと確認フラグとの両方を用いて署名を生成する。このようにすることで、例えば、第2機器側からNonceとともに確認フラグを返す際に通信が傍受されて第1機器側に改ざんされたNonceのみが送信されたとしても、第1機器からさらに送信される署名に確認フラグが含まれていないことから、第2機器側において、送信に用いたNonce及び確認フラグと整合しないという点で、改ざんがあったことを検知できる。つまり、安全にハイブリッド対応状況を確認できるという観点で、より適切に、ハイブリッド方式を適用することが可能となる。
 (本開示の概要)
 本開示の概要は、以下のとおりである。
 本開示の第1態様に係る通信方法は、第1機器と第2機器との間における通信方法であって、第1機器が、第1暗号化方式の証明書であって、第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を第2機器に送信し、第1機器が、証明書の送信に対する第2機器からの応答として、Nonceと確認フラグとを含むメッセージを受信した場合、第1機器は、受信したメッセージに含まれるNonce及び確認フラグに基づいて生成した署名を第2機器に送信し、第1機器が、証明書の送信に対する第2機器からの応答として、Nonceを含み、かつ、確認フラグを含まないメッセージを受信した場合、第1機器は、受信したメッセージに含まれるNonceに基づいて生成した署名を第2機器に送信する。
 このような通信方法によれば、第2機器からの応答として送信されたメッセージと、第1機器からその後に受信された署名とを用いれば、メッセージに改ざんがあったか否かを検知することができる。つまり、メッセージに改ざんがあったか否かを検知するための情報を、第2機器が得ることができる。よって、安全にハイブリッド対応状況を確認できるという観点で、より適切に、ハイブリッド方式を適用することが可能となる。
 また、本開示の第2態様に係る通信方法は、第1機器が、証明書の送信に対して第2機器が応答として送信したメッセージと、メッセージの受信に対して第1機器から第2機器に送信された署名とが整合しないことに基づいて、第2機器が生成した検知フラグであって、メッセージに対する改ざんがあったことを示す検知フラグを受信した場合、第1機器と第2機器との間の通信セッションを異なる暗号化方式で継続する、第1態様に記載の通信方法である。
 これによれば、メッセージに対する改ざんがあったことを示す検知フラグを受信したことに基づいて、第1機器と第2機器との間の通信セッションを異なる暗号化方式で継続することができる。
 また、本開示の第3態様に係る通信方法は、第1機器が、証明書の送信に対して第2機器が応答として送信したメッセージと、メッセージの受信に対して第1機器から第2機器に送信された署名とが整合しないことに基づいて、第2機器が生成した検知フラグであって、メッセージに対する改ざんがあったことを示す検知フラグを受信した場合、第1機器と第2機器との間の通信セッションを終了する、第1態様に記載の通信方法である。
 これによれば、メッセージに対する改ざんがあったことを示す検知フラグを受信したことに基づいて、第1機器と第2機器との間の通信セッションを終了することができる。
 また、本開示の第4態様に係る通信方法は、第1暗号化方式は、RSA方式又はEC-DSA方式であり、異なる暗号化方式は、PQC方式である、第1~第3態様のいずれか1態様に記載の通信方法である。
 これによれば、より適切に、RSA方式又はEC-DSA方式と、PQC方式とを併用するハイブリッド方式を適用することが可能となる。
 また、本開示の第5態様に係る通信方法は、第1機器と第2機器との間における通信方法であって、第2機器が、第1機器からの第1暗号化方式の証明書であって、第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を受信し、第2機器が、異なる暗号化方式に対応する場合に、第2機器は、受信した証明書に対する応答として、Nonceと確認フラグとを含むメッセージを第1機器に送信し、第2機器が、異なる暗号化方式に対応しない場合に、第2機器は、受信した証明書に対する応答として、Nonceを含み、かつ、確認フラグを含まないメッセージを第1機器に送信し、第2機器が、第1機器から、送信したメッセージに含まれるNonceと、Nonce及び確認フラグとのいずれかに基づいて生成された署名を受信する。
 これによれば、第2機器からの応答として送信されたメッセージと、第1機器からその後に受信された署名とを用いれば、メッセージに改ざんがあったか否かを検知することができる。つまり、メッセージに改ざんがあったか否かを検知するための情報を、第2機器が得ることができる。よって、安全にハイブリッド対応状況を確認できるという観点で、より適切に、ハイブリッド方式を適用することが可能となる。
 また、本開示の第6態様に係る通信方法は、第1機器と第2機器との間における通信方法であって、第1機器が、第1暗号化方式の証明書であって、第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を第2機器に送信し、第2機器が異なる暗号化方式に対応する場合に、第2機器は、受信した証明書に対する応答として、Nonceと確認フラグとを含むメッセージを第1機器に送信し、第2機器が異なる暗号化方式に対応しない場合に、第2機器は、受信した証明書に対する応答として、Nonceを含み、かつ、確認フラグを含まないメッセージを第1機器に送信し、第1機器が、証明書の送信に対する第2機器からの応答として、Nonceと確認フラグとを含むメッセージを受信した場合、第1機器は、受信したメッセージに含まれるNonce及び確認フラグに基づいて生成した署名を第2機器に送信し、第1機器が、証明書の送信に対する第2機器からの応答として、Nonceを含み、かつ、確認フラグを含まないメッセージを受信した場合、第1機器は、受信したメッセージに含まれるNonceに基づいて生成した署名を第2機器に送信する。
 これによれば、第2機器からの応答として送信されたメッセージと、第1機器からその後に受信された署名とを用いれば、メッセージに改ざんがあったか否かを検知することができる。つまり、メッセージに改ざんがあったか否かを検知するための情報を、第2機器が得ることができる。よって、安全にハイブリッド対応状況を確認できるという観点で、より適切に、ハイブリッド方式を適用することが可能となる。
 また、本開示の第7態様に係る第1機器は、第2機器と通信可能な第1機器であって、第1暗号化方式の証明書であって、第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を生成する証明書生成部と、署名生成部と、を備え、署名生成部は、生成した証明書を第2機器に送信した場合に第2機器からの応答として、Nonceと確認フラグとを含むメッセージを受信した場合、受信したメッセージに含まれるNonce及び確認フラグに基づいて署名を生成し、生成した証明書を第2機器に送信した場合に第2機器からの応答として、Nonceを含み、かつ、確認フラグを含まないメッセージを受信した場合、受信したメッセージに含まれるNonceに基づいて署名を生成する。
 これによれば、上記に記載の通信方法と同様の効果を奏する。
 また、本開示の第8態様に係る第2機器は、第1機器と通信可能な第2機器であって、メッセージ生成部であって、第1機器からの第1暗号化方式の証明書であって、第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を受信した場合に、第2機器が異なる暗号化方式に対応していれば、受信した証明書に対する応答として、Nonceと確認フラグとを含むメッセージを生成し、第2機器が異なる暗号化方式に対応していなければ、受信した証明書に対する応答として、Nonceを含み、かつ、確認フラグを含まないメッセージを生成する、メッセージ生成部と、第2機器が、第1機器から、送信したメッセージに含まれるNonceと、Nonce及び確認フラグとのいずれかに基づいて生成された署名を受信する通信部と、を備える。
 これによれば、上記に記載の通信方法と同様の効果を奏する。
 また、本開示の第9態様に係るプログラムは、第1機器と第2機器との間における通信方法をコンピュータに実行させるためのプログラムであって、通信方法では、第1機器が、第1暗号化方式の証明書であって、第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を第2機器に送信し、第1機器が、証明書の送信に対する第2機器からの応答として、Nonceと確認フラグとを含むメッセージを受信した場合、第1機器は、受信したメッセージに含まれるNonce及び確認フラグに基づいて生成した署名を第2機器に送信し、第1機器が、証明書の送信に対する第2機器からの応答として、Nonceを含み、かつ、確認フラグを含まないメッセージを受信した場合、第1機器は、受信したメッセージに含まれるNonceに基づいて生成した署名を第2機器に送信する。
 これによれば、コンピュータを用いることで、上記に記載の通信方法と同様の効果を奏する。
 また、本開示の第10態様に係るプログラムは、第1機器と第2機器との間における通信方法をコンピュータに実行させるためのプログラムであって、通信方法では、第2機器が、第1機器からの第1暗号化方式の証明書であって、第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を受信し、第2機器が、異なる暗号化方式に対応する場合に、第2機器は、受信した証明書に対する応答として、Nonceと確認フラグとを含むメッセージを第1機器に送信し、第2機器が、異なる暗号化方式に対応しない場合に、第2機器は、受信した証明書に対する応答として、Nonceを含み、かつ、確認フラグを含まないメッセージを第1機器に送信し、第2機器が、第1機器から、送信したメッセージに含まれるNonceと、Nonce及び確認フラグとのいずれかに基づいて生成された署名を受信する。
 これによれば、コンピュータを用いることで、上記に記載の通信方法と同様の効果を奏する。
 なお、これらの全般的または具体的な態様は、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの非一時的な記録媒体で実現されてもよく、装置、集積回路、コンピュータプログラム及び非一時的な記録媒体の任意な組み合わせで実現されてもよい。
 以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
 なお、発明者は、当業者が本開示を十分に理解するために添付図面及び以下の説明を提供するのであって、これらによって請求の範囲に記載の主題を限定することを意図するものではない。
 (実施の形態)
 [構成]
 図1は、実施の形態に係る通信システムの概要を説明するための図である。図1では、通信に係る機器として、第1機器に対応する端末装置300及び第2機器に対応する端末装置400が示されている。
 証明書発行装置100は、ユーザが使用する電子署名証明書を生成し、端末装置300及び400へ証明書を送信する。証明書発行装置100は、例えば、証明書発行機関に属するサーバ装置等によって実現される。
 共通鍵発行装置200は、ユーザが使用する端末装置300及び400ごとに異なる共通鍵を生成し、端末装置300及び400に共通鍵を埋め込む。共通鍵発行装置200は、例えば、端末装置300及び400を製造する端末装置製造企業などによって運用される。共通鍵発行装置200は、上記に加えて、ユーザが使用する端末装置300及び400ごとに共通のテストメッセージ、及び、フラグを生成し、端末装置300及び400にテストメッセージ、及び、フラグを埋め込んでもよい。
 端末装置300は、端末装置同士(端末装置400との間)での通信、乱数生成処理、署名生成処理、セッション鍵生成処理などを行う。端末装置300は、上記に加えて、鍵生成を行ってもよい。
 端末装置400は、端末装置同士(端末装置300との間)での通信、乱数生成処理、署名検証処理、セッション鍵生成処理などを行う。
 なお、図2は、実施の形態の別例に係る通信システムの概要を説明するための図である。この例では、共通鍵発行装置200が、端末装置300及び400に個別に接続可能なように、それぞれのユーザによって管理及び運用されている。
 図3は、実施の形態に係る証明書発行装置の機能構成の一例を示すブロック図である。証明書発行装置100は、プロセッサ及びメモリと、当該メモリに格納された所定のプログラムとによって実現される。証明書発行装置100は、ユーザが使用する電子署名証明書を生成し、端末装置300及び400へ証明書を送信する。証明書発行装置100は、機能構成として、乱数生成部101、フラグ生成部102、鍵生成部103、署名生成部104、証明書生成部105、及び、通信部106を有する。
 乱数生成部101は、乱数生成処理を実施し、鍵生成部103に生成した乱数Aを通知し、署名生成部104に生成した乱数Bを通知する。ただし、乱数Aと乱数Bとは異なっていてもよい。乱数は一様乱数でなくてもよい。
 フラグ生成部102は、証明書が複数のアルゴリズム(アルゴリズムとは、すなわち、暗号化方式を意味している)に対応していることを示すフラグの生成処理を実施し、署名生成部104と証明書生成部105とに通知する。ただし、フラグの形式はバイナリでも整数値でも、その他でもよい。フラグは、規定されているものでも、その他でもよい。フラグは、証明書が対応しているアルゴリズムの種類や数に応じて複数種類存在してもよい。
 鍵生成部103は、秘密鍵Aと公開鍵Bと秘密鍵Cと公開鍵Dとの生成処理を実施し、署名生成部104に秘密鍵Aと公開鍵Dとを通知し、証明書生成部105に公開鍵Dを通知し、通信部106に公開鍵Bと秘密鍵Cとを通知する。公開鍵Bは、端末装置400へ通知され、秘密鍵Cは、端末装置300へ通知される。ただし、鍵生成部103は、秘密鍵と公開鍵とをいくつ作成してもよく、共通鍵を作成してもよい。
 署名生成部104は、公開鍵Dとフラグ生成部102から通知されたフラグを含む平文に対して秘密鍵Aによる署名処理を実施し、証明書生成部105に生成した署名を通知する。ただし、署名はいくつ生成してもよく、いくつの平文に対して、いくつの秘密鍵を使用して生成するかを限定しない。平文には、端末装置300から通知された公開鍵または共通鍵が含まれていてもよい。
 証明書生成部105は、フラグ生成部102から通知されたフラグ、署名生成部104から通知された署名、鍵生成部103から通知された公開鍵Dを含む証明書を作成し、通信部106へ通知し、端末装置300へ通知する。
 図4は、実施の形態に係る共通鍵発行装置の機能構成の一例を示すブロック図である。共通鍵発行装置200は、プロセッサ及びメモリと、当該メモリに格納された所定のプログラムとによって実現される。共通鍵発行装置200は、ユーザが使用する端末装置300及び400ごとに異なる共通鍵を生成し、各端末装置300及び400に共通鍵を埋め込む。共通鍵発行装置200は、機能構成として、乱数生成部201、共通鍵生成部202、及び、通信部203を有する。
 乱数生成部201は、乱数生成処理を実施し、共通鍵生成部202に生成した乱数を通知する。ただし、乱数は複数生成してもよく、一様乱数でなくてもよい。
 共通鍵生成部202は、共通鍵生成処理を実施し、通信部203に生成した共通鍵を通知する。ただし、共通鍵は複数生成してもよい。なお、図2に示すように、実施の形態の別例では、共通鍵発行装置200は、各ユーザの端末装置300及び400に付属していてもよい。
 図5は、実施の形態に係る共通鍵発行装置の機能構成の別の一例を示すブロック図である。共通鍵発行装置200aは、ユーザが使用する端末装置300及び400に共通のテストメッセージ、フラグを生成し、端末装置300及び400にテストメッセージ、フラグを埋め込んでもよい、これは、例えば、図1に示す構成の場合に適用される。この例における共通鍵発行装置200aは、機能構成として、乱数生成部201a、フラグ生成部202a、テストメッセージ生成部203a、共通鍵生成部204a、及び、通信部205aを有する。
 乱数生成部201aは、乱数生成処理を実施し、フラグ生成部202aに生成した乱数Aを通知し、テストメッセージ生成部203aに生成した乱数Bを通知し、共通鍵生成部204aに生成した乱数Cを通知する。ただし、乱数Aと乱数Bと乱数Cとは異なっていてもよい。乱数は一様乱数でなくてもよい。
 フラグ生成部202aは、証明書が複数のアルゴリズムに対応していることを示すフラグの生成処理を実施し、通信部205aへ通知する。ただし、フラグの形式はバイナリでも整数値でも何でもよい。フラグは規定されているものでもそうでなくてもよい。フラグは証明書が対応しているアルゴリズムの種類や数に応じて複数種類存在してもよい。
 テストメッセージ生成部203aは、テストメッセージ生成処理を実施し、通信部205aへ通知する。ただし、フラグの形式はバイナリでも整数値でも何でもよい。テストメッセージは規定されているものでもそうでなくてもよい。テストメッセージは用途に応じて複数種類存在してもよい。
 共通鍵生成部204aは、共通鍵生成処理を実施し、通信部205aに生成した共通鍵を通知する。ただし、共通鍵は複数生成してもよい。
 図6は、実施の形態に係る端末装置の機能構成の一例を示すブロック図である。端末装置300は、プロセッサ及びメモリと、当該メモリに格納された所定のプログラムとによって実現される。端末装置300は、端末装置同士での通信、乱数生成処理、署名生成処理、セッション鍵生成処理などを行う。端末装置300は、機能構成として、乱数生成部301、署名生成部302、セッション鍵生成部303、セッション鍵確認部304、証明書格納部305、及び、通信部306を有する。
 乱数生成部301は、署名生成処理を実施し、署名生成部302に生成した乱数を通知する。ただし、乱数は複数生成してもよく、一様乱数でなくてもよい。
 署名生成部302は、フラグとNonceとを含む平文に対して鍵生成部103から通知された秘密鍵Cによる署名処理を実施し、通信部306に生成した署名を通知し、端末装置400へ通知する。ただし、署名はいくつ生成してもよく、いくつの平文に対して、いくつの秘密鍵を使用して生成するかに特に限定はない。平文には、フラグとNonceとが含まれていなくてもよく、鍵生成部103から通知された秘密鍵Cによる署名でなくてもよい。
 セッション鍵生成部303は、鍵交換のためのセッション鍵生成処理を実施し、通信部306に通知し、端末装置400に通知する。ただし、セッション鍵は複数生成してもよく、セッション鍵とともに暗号化したテストメッセージを通知してもよい。
 セッション鍵確認部304は、セッション鍵生成部303から通知されたセッション鍵の確認処理を実施し、通信部306に確認結果を通知する。ただし、セッション鍵は複数確認してもよく、セッション鍵生成部303から通知されたセッション鍵以外を確認してもよい。
 証明書格納部305は、証明書生成部105から通知された証明書を保存する。また、必要に応じて通信部306へ証明書を通知し、端末装置400へ証明書を通知する。
 図7は、実施の形態に係る端末装置の機能構成の別の一例を示すブロック図である。端末装置300aは、鍵生成を行ってもよい。この例における端末装置300aは、機能構成として、乱数生成部301a、署名生成部302a、セッション鍵生成部303a、セッション鍵確認部304a、証明書格納部305a、鍵生成部306a、及び、通信部307aを有する。乱数生成部301a、署名生成部302a、セッション鍵生成部303a、セッション鍵確認部304a、証明書格納部305a、及び、通信部307aの機能は、乱数生成部301、署名生成部302、セッション鍵生成部303、セッション鍵確認部304、証明書格納部305、及び、通信部306とそれぞれ同様であるので説明を省略する。
 鍵生成部306aは、秘密鍵Cと公開鍵Dの生成処理を実施し、通信部307aへ通知し、証明書発行装置100へ通知する。ただし、鍵生成部306aは、秘密鍵と公開鍵をいくつ作成してもよく、共通鍵を作成してもよい。
 図8は、実施の形態に係る端末装置の機能構成の一例を示すブロック図である。端末装置400は、プロセッサ及びメモリと、当該メモリに格納された所定のプログラムとによって実現される。端末装置400は、端末装置同士での通信、乱数生成処理、署名検証処理、セッション鍵生成処理などを行う。端末装置400は、機能構成として、乱数生成部401、Nonceフラグ生成部402、セッション鍵生成部403、署名検証部404、証明書検証部405、証明書読取部406、及び、通信部407を有する。
 乱数生成部401は、乱数生成処理を実施し、Nonceフラグ生成部402に生成した乱数Aを通知し、セッション鍵生成部403に生成した乱数Bを通知する。ただし、乱数Aと乱数Bは異なっていてもよい。乱数は一様乱数でなくてもよい。
 Nonceフラグ生成部402は、署名に利用するNonceと攻撃検知通知の為のフラグの生成処理を行う。Nonceは、通信部407へ通知し、端末装置300へ通知する。フラグは、セッション鍵生成部403に通知する。ただし、Nonceフラグ生成部402は、必ずしもNonceとフラグとの両方を生成する必要はなく、片方のみでもよい。また、生成するNonceやフラグは、複数種類あってもよく、複数個生成してもよい。
 署名検証部404は、証明書検証部405から通知された署名の検証処理を行い、証明書検証部405に検証結果を通知する。ただし、署名検証部404は、いくつ署名を検証してもよい。
 証明書検証部405は、証明書読取部406から通知された証明書とその検証方法に応じて、検証に必要な証明書の署名部分を抽出し、署名検証部404へ通知する。ただし、証明書検証部405はいくつ証明書を検証してもよい。
 証明書読取部406は、証明書格納部305から通知された証明書を解析し、フラグの有無、署名の数と種類、公開鍵の数と種類などを読み取る。さらに、読み取った情報に応じて、証明書を検証する方法(例えば検証する署名の順番など)を決定し、決定した方法と証明書を証明書検証部へ通知する。
 [動作]
 次に、実施の形態に係る通信システムの動作の動作について説明する。図9~図22は、実施の形態に係る通信システムの動作の一例を説明するシーケンス図である。また、図23~図52は、実施の形態に係る通信システムの動作における画面表示の一例を示す図である。
 通信システムの動作が開始されると、まず、証明書発行装置100は、証明書発行機関用第一アルゴリズム公開鍵と秘密鍵とを作成する(S101)。具体的には、鍵生成部103がこれらの公開鍵と秘密鍵とを作成する。また、証明書発行装置100は、証明書発行機関用第二アルゴリズム公開鍵と秘密鍵とを作成する(S102)。具体的には、鍵生成部103がこれらの公開鍵と秘密鍵とを作成する。
 ここで、端末装置400は、証明書発行機関用公開鍵リクエストを証明書発行装置100に送信する。例えば、端末装置400において、図23に示すような鍵生成の設定の画面表示がされ、図24に示すように「公開鍵」を選択することで証明書発行機関用公開鍵リクエストが送信される。証明書発行装置100では、端末装置400がハイブリッド方式に対応しているか否かを判定する(S103)。例えば、端末装置400において、図26に示すようなハイブリッド方式に対応しているか否かの入力の画面表示がされ、図27に示すように「対応」を選択する。そして、図28に示すハイブリッド証明書の発行の有無を選択する画面に遷移し、図29に示すように「はい」を選択することでハイブリッド方式に対応していることが通信システムに入力される。
 端末装置400がハイブリッド方式に対応していると判定されると(S103で「対応」)、証明書発行装置100は、証明書発行機関用第一アルゴリズム公開鍵、及び、証明書発行機関用第二アルゴリズム公開鍵を端末装置400へと送信する。
 図28に示す画面において、図29に示すように「はい」を選択した後に、例えば、図30に示すように、第一アルゴリズムをいくつかの選択肢の中から選択する画面に遷移する。まず、第一アルゴリズムとして、例えば、図31に示すように、いくつかの選択肢の中から「アルゴリズムA」を選択したとする。次に、図32に示すように、第二アルゴリズムをいくつかの選択肢の中から選択する画面に遷移する。例えば、図33に示すように、いくつかの選択肢の中から「アルゴリズムE」を選択したとすると、「アルゴリズムA」の証明書発行機関用第一アルゴリズム公開鍵、及び、「アルゴリズムE」の証明書発行機関用第二アルゴリズム公開鍵が作成され、図34に示す画面が表示される。
 一方で、端末装置400がハイブリッド方式に対応していないと判定されると(S103で「非対応」)、証明書発行装置100は、証明書発行機関用第一アルゴリズム公開鍵のみを端末装置400へと送信する。
 例えば、図28に示す画面において、図35に示すように「いいえ」を選択した後に、図36に示すように、第一アルゴリズムをいくつかの選択肢の中から選択する画面に遷移する。第一アルゴリズムとして、例えば、図37に示すように、いくつかの選択肢の中から「アルゴリズムA」を選択したとすると、「アルゴリズムA」の証明書発行機関用第一アルゴリズム公開鍵が作成され、図34に示す画面が表示される。
 また、例えば、図26に示す画面において、図38に示すように「非対応」を選択した場合も、図36に示す画面に遷移し、図37に示す画面に遷移し、図34に示す画面に遷移する。
 図10のN1に進み、端末装置300は、証明書と秘密鍵とのリクエストを証明書発行装置100へと送信する。例えば、端末装置300において、図23に示すような鍵生成の設定の画面表示がされ、図25に示すように「証明書と秘密鍵」を選択することで証明書と秘密鍵とのリクエストが送信される。証明書発行装置100では、端末装置300がハイブリッド方式に対応しているか否かを判定する(S201)。例えば、端末装置300において、図26に示すようなハイブリッド方式に対応しているか否かの入力の画面表示がされ、図27に示すように「対応」を選択する。そして、図28に示すハイブリッド証明書の発行の有無を選択する画面に遷移し、図29に示すように「はい」を選択することでハイブリッド方式に対応していることが通信システムに入力される。以降、図30~図38の画面を端末装置400と同様に遷移するものであるため、説明を省略する。
 端末装置300がハイブリッド方式に対応していると判定されると(S201で「対応」)、証明書発行装置100は、証明書用第一アルゴリズム公開鍵と秘密鍵とを作成する(S202)。また、証明書発行装置100は、証明書用第二アルゴリズム公開鍵と秘密鍵とを作成する(S203)。また、証明書発行装置100は、第一アルゴリズム証明書を作成する(S204)。また、証明書発行装置100は、第二アルゴリズム証明書を作成する(S205)。そして、証明書発行装置100は、第一アルゴリズム証明書と対応する秘密鍵、及び、第二アルゴリズム証明書と対応する秘密鍵を端末装置300に送信する。一方で、端末装置300がハイブリッド方式に対応していないと判定されると(S201で「非対応」)、図13のN2に進む。図13については後述する。
 ここで、図11及び図12は、上記の動作の別例を示している。より具体的には、上記の処理の一部を共通鍵発行装置200が行う。なお、この別例に係る動作においても、端末装置400及び端末装置300によって、図23~図38に示す画面表示と、それに対する操作の受け付けが行われてもよい。例えば、図11は、図9に対して、共通鍵発行装置200が証明書発行機関用公開鍵リクエストを証明書発行装置100に送信する。なお、ステップS301及びステップS302は、それぞれ、ステップS101及びステップS102と同様であるので、説明を省略する。そして、証明書発行装置100は、ステップS103と同様に、端末装置400がハイブリッド方式に対応しているか否かを判定する(S303)。端末装置400がハイブリッド方式に対応していると判定されると(S303で「対応」)、証明書発行装置100は、証明書発行機関用第一アルゴリズム公開鍵、及び、証明書発行機関用第二アルゴリズム公開鍵を、共通鍵発行装置200経由で端末装置400へと送信する。一方で、端末装置400がハイブリッド方式に対応していないと判定されると(S303で「非対応」)、証明書発行装置100は、証明書発行機関用第一アルゴリズム公開鍵のみを共通鍵発行装置200経由で端末装置400へと送信する。
 図12のN3に進み、ここでは、共通鍵発行装置200が証明書と秘密鍵とのリクエストを証明書発行装置100へと送信する。証明書発行装置100は、ステップS201と同様に、端末装置300がハイブリッド方式に対応しているか否かを判定する(S401)。ステップS402~ステップS405は、それぞれ、ステップS202~ステップS205と同様であるので、説明を省略する。端末装置300がハイブリッド方式に対応していると判定されると(S401で「対応」)、証明書発行装置100は、ステップS402~ステップS405を実行した後、第一アルゴリズム証明書と対応する秘密鍵、及び、第二アルゴリズム証明書と対応する秘密鍵を、共通鍵発行装置200経由で端末装置300に送信する。端末装置300がハイブリッド方式に対応していないと判定されると(S401で「非対応」)、図13のN2に進む。
 図13に示すように、図10のS201で「非対応」、又は、図12のS401で「非対応」となった場合、証明書発行装置100は、証明書用第一アルゴリズム公開鍵と秘密鍵とを作成する(S501)。そして、証明書発行装置100は、第一アルゴリズム証明書を作成し(S502)、第一アルゴリズム証明書と対応する秘密鍵とを端末装置300に送信する。その後、処理が終了される。
 なお、図4に示す構成の場合、図14に示すように、共通鍵発行装置200は、共通鍵を作成し(S601)、端末装置400へと送信する。その後、処理が終了される。
 また、図5に示す構成の場合、図15に示すように、共通鍵発行装置200は、フラグを作成し(S701)、テストメッセージを作成し(S702)、共通鍵を作成する(S703)。そして、共通鍵発行装置200は、フラグを端末装置300及び400に送信する。また、共通鍵発行装置200は、テストメッセージを端末装置300及び400に送信する。そして、共通鍵発行装置200は、共通鍵を端末装置400へと送信する。その後、処理が終了される。
 次に、図16に示すように、端末装置300と端末装置400との間でハイブリッド方式での通信が行えるか否かを確認するための事前通信が行われる。まず、端末装置300は、第一アルゴリズム証明書を端末装置400へと送信する。このとき、第一アルゴリズム証明書には、non-criticalな拡張領域にハイブリッド通信、すなわち、古典方式(第1暗号化方式)と、PQC方式(第2暗号化方式)とを併せた暗号化方式に対応することを示す確認フラグを含めている。より正確には、この通信方法では、第一アルゴリズム証明書の発行の際に、non-criticalな拡張領域に確認フラグが含まれるような第一アルゴリズム証明書を発行させる。
 端末装置400では、第一アルゴリズム証明書を受信すると、Nonceを作成する(S801)。ここで、端末装置400は、端末装置400がハイブリッド方式に対応していれば、Nonceと確認フラグとを生成し、端末装置400がハイブリッド方式に対応していなければ、Nonceのみを生成する。そのため、フラグ(確認フラグ)があるか否かの判定(S802)において、フラグがないと判定されると(S802で「無い」)、端末装置400は、ハイブリッド方式に対応していないこととなる。この場合、図19のN4に進む。図19については後述する。例えば、端末装置400には、図40に示すフラグの有無の確認画面が表示されて、フラグがないことを確認することができる。そして、図43に示す画面に遷移して終了する。
 一方で、フラグがあると判定されると(S802で「ある」)、端末装置400は、ハイブリッド方式に対応していることとなる。例えば、端末装置400には、図39に示すフラグの有無の確認画面が表示されて、フラグがあることを確認することができる。そして、図43に示す画面に遷移して終了する。端末装置400は証明書への応答として、Nonceと確認フラグと、又は、Nonceのみを端末装置300へと送信する。Nonceは、例えば128bitの乱数である。
 端末装置300は、フラグがあるか否かを判定し(S803)、フラグがないと判定されると(S803で「無い」)、端末装置400は、ハイブリッド方式に対応していないこととなる。この場合、図20のN5に進む。図20については後述する。例えば、端末装置300には、図42に示すフラグの有無の確認画面が表示されて、フラグがないことを確認することができる。そして、図43に示す画面に遷移して終了する。
 一方で、フラグがあると判定されると(S803で「ある」)、端末装置400は、ハイブリッド方式に対応していることとなる。例えば、端末装置300には、図41に示すフラグの有無の確認画面が表示されて、フラグがあることを確認することができる。そして、図43に示す画面に遷移して終了する。端末装置300は、第一アルゴリズム署名を作成する(S804)。具体的には、端末装置300は、Nonceと確認フラグとセッション鍵とを結合した値に、EC-DSA方式などの古典暗号化方式で署名することで、第一アルゴリズム署名を生成する。
 端末装置300は、生成した第一アルゴリズム署名を端末装置400に送信する。端末装置400は、第一アルゴリズム証明書を検証する(S805)。その際、秘密鍵に対応する公開鍵を抽出する。次に、端末装置400は、第一アルゴリズム署名を検証する(S806)。検証には抽出した公開鍵を用いる。
 図17のN6に進み、端末装置400はセッション鍵を作成する(S901)。具体的には、端末装置400は、端末装置300から受信した公開鍵と端末装置400が生成した秘密鍵とから128ビットの共通の鍵を生成する。端末装置400は、セッション鍵により、端末装置300及び400間での通信に用いる共通鍵と、テストメッセージを暗号化する(S902)。具体的には、端末装置400は、生成した128ビットの鍵で共通鍵とテストメッセージとをAES方式で暗号化して送信する。
 端末装置400は、暗号化したテストメッセージを端末装置300に送信する。端末装置300は、セッション鍵の作成を行う(S903)。具体的には、端末装置300は、さらに、セッション鍵によって共通鍵とテストメッセージの復号を行う(S904)。その後、端末装置300は、受信した、暗号化された共通鍵を復号してテストメッセージを検証する。
 そして、端末装置300は、第二アルゴリズム証明書を端末装置400へと送信する。端末装置400では、Nonceの作成を行い(S905)、作成したNonceを端末装置300へと送信する。端末装置300では、第二アルゴリズム署名を作成し(S906)作成した第二アルゴリズム署名を端末装置400へと送信する。
 図18のN7に進み、端末装置400は、第二アルゴリズム証明書を検証する(S1001)。また、端末装置400は、第二アルゴリズム署名を検証する(S1002)。その後、端末装置400は、セッション鍵を作成し(S1003)、作成したセッション鍵により共通鍵を暗号化する(S1004)。端末装置400は、暗号化した共通鍵を端末装置300に送信する。端末装置300では、セッション鍵の作成を行い(S1005)、セッション鍵により暗号化した共通鍵を復号する(S1006)。このようにして、ハイブリッド方式での通信が確立される(対応確認の事前通信処理を終了する)。
 ここで、図19のN4以降の動作を説明する。S802で「無い」となった後に、端末装置400は、Nonceを端末装置300に送信する。端末装置300は、端末装置400がハイブリッド方式に対応していないため、第一アルゴリズムでの通信を行うように動作する。まず、端末装置300は、第一アルゴリズム署名を作成する(S1101)。端末装置300は、作成した第一アルゴリズム署名を端末装置400に送信する。
 そして、端末装置400では、第一アルゴリズム証明書を検証し(S1102)、第一アルゴリズム署名を検証し(S1103)、セッション鍵を作成する(S1104)。そして、端末装置400は、作成したセッション鍵により、共通鍵を暗号化する(S1105)。端末装置400は、暗号化した共通鍵を端末装置300に送信する。端末装置300では、セッション鍵の作成を行い(S1106)、セッション鍵により暗号化した共通鍵を復号する(S1107)。このようにして、第一アルゴリズム(すなわち古典方式)での通信が確立される(対応確認の事前通信処理を終了する)。
 また、図20のN5以降の動作を説明する。S803で「無い」となった後に、端末装置300は、第一アルゴリズム署名を作成する(S1201)。端末装置300は、作成した第一アルゴリズム署名を端末装置400に送信する。端末装置400では、第一アルゴリズム証明書を検証し(S1202)、第一アルゴリズム署名を検証する(S1203)。例えば、図44に示す第一アルゴリズム署名の検証の画面が表示される。このとき、検証NGとなれば(S1203で「検証NG」)、図21のN8に進む。図21については後述する。
 第一アルゴリズム署名の検証がOKとなれば(S1203で「検証OK」)、セッション鍵の作成に進む(S1204)。例えば、図45に示す、検証結果が「OK」であることを示す画面が表示され、図46に示す、検証が終了したことを示す画面に遷移する。そして、端末装置400は、作成したセッション鍵により、共通鍵を暗号化する(S1205)。端末装置400は、暗号化した共通鍵を端末装置300に送信する。端末装置300では、セッション鍵の作成を行い(S1206)、セッション鍵により暗号化した共通鍵を復号する(S1207)。このようにして、第一アルゴリズム(すなわち古典方式)での通信が確立される(対応確認の事前通信処理を終了する)。
 次に、図21のN8以降の動作を説明する。第一アルゴリズム署名の検証がNGとなれば(S1203で「検証NG」)、端末装置400は、通信を継続するか終了するかを判定する(S1301)。例えば、図47に示す、検証結果が「NG」であることを示す画面が表示され、図48に示す、通信を継続するか終了するかを選択する画面に遷移する。端末装置400が、通信を終了すると判定した場合(S1301で「通信終了」)、通信を終了して、全ての処理が終了する。例えば、図51に示すように、「終了」を選択すると、図52に示す、通信が終了したことを示す画面に遷移する。一方、端末装置400が、通信を継続すると判定した場合(S1301で「通信継続」)、端末装置400は、セッション鍵を作成する(S1302)。例えば、図49に示すように、「通信継続」を選択すると、図50に示す、通信を継続することを示す画面に遷移する。そして、端末装置400は、作成したセッション鍵により、検知フラグを暗号化する(S1303)。検知フラグは、メッセージに対する改ざんがあったことを示すフラグである。つまり、攻撃者によって、古典方式での通信にさせられている可能性があるため、通信を継続するのであれば、PQC方式で継続することが望ましい。そのため、以降では、PQC方式に相当する第二アルゴリズムでの通信に切り替わるようになっている。
 端末装置400は、暗号化した検知フラグを端末装置300に送信する。そして、端末装置400は、セッション鍵の作成を行い(S1304)、セッション鍵により暗号化した検知フラグを復号する(S1305)。このようにして、端末装置300では、検知フラグを受信することで改ざんがあったことを検知する。その後、端末装置300は、第二アルゴリズム証明書を端末装置400に送信する。端末装置400は、Nonceを作成し(S1306)、作成したNonceを端末装置300へと送信する。
 図22のN9に進み、端末装置300は、第二アルゴリズム署名を作成し(S1401)作成した第二アルゴリズム署名を端末装置400へと送信する。端末装置400は、第二アルゴリズム証明書を検証する(S1402)。また、端末装置400は、第二アルゴリズム署名を検証する(S1403)。その後、端末装置400は、セッション鍵を作成し(S1404)、作成したセッション鍵により共通鍵を暗号化する(S1405)。端末装置400は、暗号化した共通鍵を端末装置300に送信する。端末装置300では、セッション鍵の作成を行い(S1406)、セッション鍵により暗号化した共通鍵を復号する(S1407)。このようにして、PQC方式での通信が確立される(対応確認の事前通信処理を終了する)。
 [変形例]
 以下説明する変形例では、上記実施の形態における図16、図17、図19及び図20に対応する図53~図56を説明に用いる。説明では、上記実施の形態と比較して異なる点を中心に述べ、上記実施の形態と比較して一致する点の説明を省略する。図53~図56は、実施の形態の変形例に係る通信システムの動作の一例を説明するシーケンス図である。
 上記実施の形態では、図30~図33、図36~図37に示すように、第一アルゴリズム及び第二アルゴリズムをいくつかの選択肢の中から選択して利用することを説明した。端末装置300及び端末装置400の間で、どのアルゴリズムを選択したかを合わせる必要があるが、その際、通信システムに選択されたアルゴリズムが同じであるかを確認する機能が付されてもよい。そこで、変形例に係る通信システムでは、図16~図20において説明した動作に加えて、アルゴリズムが同じであるかを確認するステップ(S800、S900、S1100及びS1200)が追加されている。
 図53は、図16に対応しており、図16に示す通信システムの動作に加えて、アルゴリズムが同じであるかを確認するステップ(S800)が追加されている。ここでは、端末装置300が生成した第一アルゴリズム署名を端末装置400に送信した後に、端末装置400で第一アルゴリズムが同じであるかを確認する(S800)。また、端末装置300において、これから第一アルゴリズムとして使用を予定しているアルゴリズムと、端末装置400において第一アルゴリズムとして選択されたアルゴリズムとが同じであるかを確認してもよい。
 図54は、図17に対応しており、図17に示す通信システムの動作に加えて、アルゴリズムが同じであるかを確認するステップ(S900)が追加されている。ここでは、端末装置300が生成した第二アルゴリズム署名を端末装置400に送信した後に、端末装置400で第二アルゴリズムが同じであるかを確認する(S900)。また、端末装置300において、これから第二アルゴリズムとして使用を予定しているアルゴリズムと、端末装置400において第二アルゴリズムとして選択されたアルゴリズムとが同じであるかを確認してもよい。
 図55は、図19に対応しており、図19に示す通信システムの動作に加えて、アルゴリズムが同じであるかを確認するステップ(S1100)が追加されている。ここでは、端末装置300が生成した第一アルゴリズム署名を端末装置400に送信した後に、端末装置400で第一アルゴリズムが同じであるかを確認する(S1100)。また、端末装置300において、これから第一アルゴリズムとして使用を予定しているアルゴリズムと、端末装置400において第一アルゴリズムとして選択されたアルゴリズムとが同じであるかを確認してもよい。
 図56は、図20に対応しており、図20に示す通信システムの動作に加えて、アルゴリズムが同じであるかを確認するステップ(S1200)が追加されている。ここでは、端末装置300が生成した第一アルゴリズム署名を端末装置400に送信した後に、端末装置400で第一アルゴリズムが同じであるかを確認する(S1200)。また、端末装置300において、これから第一アルゴリズムとして使用を予定しているアルゴリズムと、端末装置400において第一アルゴリズムとして選択されたアルゴリズムとが同じであるかを確認してもよい。
 (その他の実施の形態)
 上記実施の形態において、ステップS802で「ある」に進んだ際、端末装置300と端末装置400とがそれぞれ第二アルゴリズムに対応していることとなる。例えば、PQC方式の安全性に対する評価が十分に行われた以降など、PQC方式を単独で利用しても差し支えない状況においては、端末装置300と端末装置400とがそれぞれ第二アルゴリズムに対応しているとわかった場合(ステップS802で「ある」)、第一アルゴリズムによる通信のための処理を行わずに、第二アルゴリズムによる通信のための処理(ステップS904以降の第二アルゴリズム証明書送付からの処理)のみを行ってもよい。
 また、上記実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
 また、各構成要素は、回路(または集積回路)でもよい。これらの回路は、全体として1つの回路を構成してもよいし、それぞれ別々の回路でもよい。また、これらの回路は、それぞれ、汎用的な回路でもよいし、専用の回路でもよい。
 また、本開示の全般的または具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの非一時的な記録媒体で実現されてもよい。また、システム、装置、方法、集積回路、コンピュータプログラム及びコンピュータ読み取り可能な非一時的な記録媒体の任意な組み合わせで実現されてもよい。
 例えば、本開示は、通信に係る各種装置(コンピュータまたはDSP)が実行する通信方法として実現されてもよいし、上記通信方法をコンピュータまたはDSPに実行させるためのプログラムとして実現されてもよい。
 また、上記実施の形態において、特定の処理部が実行する処理を別の処理部が実行してもよい。また、上記実施の形態において説明された通信システムの動作における複数の処理の順序は、変更されてもよいし、複数の処理は、並行して実行されてもよい。
 その他、各実施の形態に対して当業者が思いつく各種変形を施して得られる形態、または、本開示の趣旨を逸脱しない範囲で各実施の形態における構成要素及び機能を任意に組み合わせることで実現される形態も本開示に含まれる。
 本開示は、ハイブリッド方式を適用する際の通信方法などとして有用である。
  100 証明書発行装置
  101、201、201a、301、301a、401 乱数生成部
  102、202a フラグ生成部
  103、306a 鍵生成部
  104、302、302a 署名生成部
  105 証明書生成部
  106、203、205a、306、307a、407 通信部
  200、200a 共通鍵発行装置
  202、204a 共通鍵生成部
  203a テストメッセージ生成部
  300、300a、400 端末装置
  303、303a セッション鍵生成部
  304、304a セッション鍵確認部
  305、305a 証明書格納部
  402 Nonceフラグ生成部
  403 セッション鍵生成部
  404 署名検証部
  405 証明書検証部
  406 証明書読取部

Claims (10)

  1.  第1機器と第2機器との間における通信方法であって、
     前記第1機器が、第1暗号化方式の証明書であって、前記第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を前記第2機器に送信し、
     前記第1機器が、前記証明書の送信に対する前記第2機器からの応答として、Nonceと前記確認フラグとを含むメッセージを受信した場合、前記第1機器は、受信した前記メッセージに含まれる前記Nonce及び前記確認フラグに基づいて生成した署名を前記第2機器に送信し、
     前記第1機器が、前記証明書の送信に対する前記第2機器からの応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを受信した場合、前記第1機器は、受信した前記メッセージに含まれる前記Nonceに基づいて生成した署名を前記第2機器に送信する
     通信方法。
  2.  前記第1機器が、前記証明書の送信に対して前記第2機器が応答として送信した前記メッセージと、前記メッセージの受信に対して前記第1機器から前記第2機器に送信された前記署名とが整合しないことに基づいて、前記第2機器が生成した検知フラグであって、前記メッセージに対する改ざんがあったことを示す検知フラグを受信した場合、前記第1機器と前記第2機器との間の通信セッションを前記異なる暗号化方式で継続する
     請求項1に記載の通信方法。
  3.  前記第1機器が、前記証明書の送信に対して前記第2機器が応答として送信した前記メッセージと、前記メッセージの受信に対して前記第1機器から前記第2機器に送信された前記署名とが整合しないことに基づいて、前記第2機器が生成した検知フラグであって、前記メッセージに対する改ざんがあったことを示す検知フラグを受信した場合、前記第1機器と前記第2機器との間の通信セッションを終了する
     請求項1に記載の通信方法。
  4.  前記第1暗号化方式は、RSA方式又はEC-DSA方式であり、
     前記異なる暗号化方式は、PQC方式である
     請求項1~3のいずれか1項に記載の通信方法。
  5.  第1機器と第2機器との間における通信方法であって、
     前記第2機器が、前記第1機器からの第1暗号化方式の証明書であって、前記第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を受信し、
     前記第2機器が、前記異なる暗号化方式に対応する場合に、前記第2機器は、受信した前記証明書に対する応答として、Nonceと前記確認フラグとを含むメッセージを前記第1機器に送信し、
     前記第2機器が、前記異なる暗号化方式に対応しない場合に、前記第2機器は、受信した前記証明書に対する応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを前記第1機器に送信し、
     前記第2機器が、前記第1機器から、送信した前記メッセージに含まれる前記Nonceと、前記Nonce及び前記確認フラグとのいずれかに基づいて生成された署名を受信する
     通信方法。
  6.  第1機器と第2機器との間における通信方法であって、
     前記第1機器が、第1暗号化方式の証明書であって、前記第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を前記第2機器に送信し、
     前記第2機器が前記異なる暗号化方式に対応する場合に、前記第2機器は、受信した前記証明書に対する応答として、Nonceと前記確認フラグとを含むメッセージを前記第1機器に送信し、
     前記第2機器が前記異なる暗号化方式に対応しない場合に、前記第2機器は、受信した前記証明書に対する応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを前記第1機器に送信し、
     前記第1機器が、前記証明書の送信に対する前記第2機器からの応答として、Nonceと前記確認フラグとを含むメッセージを受信した場合、前記第1機器は、受信した前記メッセージに含まれる前記Nonce及び前記確認フラグに基づいて生成した署名を前記第2機器に送信し、
     前記第1機器が、前記証明書の送信に対する前記第2機器からの応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを受信した場合、前記第1機器は、受信した前記メッセージに含まれる前記Nonceに基づいて生成した署名を前記第2機器に送信する
     通信方法。
  7.  第2機器と通信可能な第1機器であって、
     第1暗号化方式の証明書であって、前記第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を生成する証明書生成部と、
     署名生成部と、を備え、
     前記署名生成部は、
      生成した前記証明書を前記第2機器に送信した場合に前記第2機器からの応答として、Nonceと前記確認フラグとを含むメッセージを受信した場合、受信した前記メッセージに含まれる前記Nonce及び前記確認フラグに基づいて署名を生成し、
      生成した前記証明書を前記第2機器に送信した場合に前記第2機器からの応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを受信した場合、受信した前記メッセージに含まれる前記Nonceに基づいて署名を生成する
     第1機器。
  8.  第1機器と通信可能な第2機器であって、
     メッセージ生成部であって、
     前記第1機器からの第1暗号化方式の証明書であって、前記第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を受信した場合に、
     前記第2機器が前記異なる暗号化方式に対応していれば、受信した前記証明書に対する応答として、Nonceと前記確認フラグとを含むメッセージを生成し、
     前記第2機器が前記異なる暗号化方式に対応していなければ、受信した前記証明書に対する応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを生成する、メッセージ生成部と、
     前記第2機器が、前記第1機器から、送信した前記メッセージに含まれる前記Nonceと、前記Nonce及び前記確認フラグとのいずれかに基づいて生成された署名を受信する通信部と、を備える
     第2機器。
  9.  第1機器と第2機器との間における通信方法をコンピュータに実行させるためのプログラムであって、
     前記通信方法では、
     前記第1機器が、第1暗号化方式の証明書であって、前記第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を前記第2機器に送信し、
     前記第1機器が、前記証明書の送信に対する前記第2機器からの応答として、Nonceと前記確認フラグとを含むメッセージを受信した場合、前記第1機器は、受信した前記メッセージに含まれる前記Nonce及び前記確認フラグに基づいて生成した署名を前記第2機器に送信し、
     前記第1機器が、前記証明書の送信に対する前記第2機器からの応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを受信した場合、前記第1機器は、受信した前記メッセージに含まれる前記Nonceに基づいて生成した署名を前記第2機器に送信する
     プログラム。
  10.  第1機器と第2機器との間における通信方法をコンピュータに実行させるためのプログラムであって、
     前記通信方法では、
     前記第2機器が、前記第1機器からの第1暗号化方式の証明書であって、前記第1暗号化方式とは異なる暗号化方式に対応することを示す確認フラグを含む証明書を受信し、
     前記第2機器が、前記異なる暗号化方式に対応する場合に、前記第2機器は、受信した前記証明書に対する応答として、Nonceと前記確認フラグとを含むメッセージを前記第1機器に送信し、
     前記第2機器が、前記異なる暗号化方式に対応しない場合に、前記第2機器は、受信した前記証明書に対する応答として、前記Nonceを含み、かつ、前記確認フラグを含まないメッセージを前記第1機器に送信し、
     前記第2機器が、前記第1機器から、送信した前記メッセージに含まれる前記Nonceと、前記Nonce及び前記確認フラグとのいずれかに基づいて生成された署名を受信する
     プログラム。
PCT/JP2023/034112 2022-10-14 2023-09-20 通信方法、第1機器、第2機器、及び、プログラム WO2024080091A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022165328 2022-10-14
JP2022-165328 2022-10-14

Publications (1)

Publication Number Publication Date
WO2024080091A1 true WO2024080091A1 (ja) 2024-04-18

Family

ID=90669125

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/034112 WO2024080091A1 (ja) 2022-10-14 2023-09-20 通信方法、第1機器、第2機器、及び、プログラム

Country Status (1)

Country Link
WO (1) WO2024080091A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220006835A1 (en) * 2020-07-02 2022-01-06 International Business Machines Corporation Tls integration of post quantum cryptographic algorithms
JP2022508774A (ja) * 2018-10-31 2022-01-19 イサラ コーポレイション デジタル証明書を複数の暗号システムと共に使用するための拡張領域
US20220141039A1 (en) * 2020-11-02 2022-05-05 International Business Machines Corporation Certificate based security using post quantum cryptography

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022508774A (ja) * 2018-10-31 2022-01-19 イサラ コーポレイション デジタル証明書を複数の暗号システムと共に使用するための拡張領域
US20220006835A1 (en) * 2020-07-02 2022-01-06 International Business Machines Corporation Tls integration of post quantum cryptographic algorithms
US20220141039A1 (en) * 2020-11-02 2022-05-05 International Business Machines Corporation Certificate based security using post quantum cryptography

Similar Documents

Publication Publication Date Title
US6058188A (en) Method and apparatus for interoperable validation of key recovery information in a cryptographic system
TWI269169B (en) Methods and systems for cryptographically protecting secure content
JP2762909B2 (ja) 電子署名装置
JP7087015B2 (ja) 情報処理装置、暗号化通信方法、およびプログラム
US7376834B2 (en) System and method for securely controlling communications
US8555069B2 (en) Fast-reconnection of negotiable authentication network clients
CN109639412A (zh) 一种通信方法、系统及电子设备和存储介质
US8687812B2 (en) Method and apparatus for public key cryptography
US20130028419A1 (en) System and a method for use in a symmetric key cryptographic communications
CN109150897B (zh) 一种端到端的通信加密方法及装置
JP2004280284A (ja) 制御プロセッサ、電子機器及び電子機器のプログラム起動方法、並びに電子機器のシステムモジュール更新方法
CN110138772A (zh) 一种通信方法、装置、系统、设备和存储介质
JP2010514000A (ja) 電子装置にプログラム状態データをセキュアに記憶するための方法
CN108710500A (zh) 资源发布方法、更新方法和装置
JP2008306395A (ja) 情報処理装置、情報処理方法
JP2008028849A (ja) ハイブリッド暗号化装置およびハイブリッド暗号化方法
CN114513345A (zh) 信息传输系统以及使用者装置与信息安全硬件模块
CN114389860A (zh) 语音通信方法及其装置
WO2024080091A1 (ja) 通信方法、第1機器、第2機器、及び、プログラム
CN114221784A (zh) 数据传输方法和计算机设备
JP2004297755A (ja) 暗号システムにおける鍵管理サーバおよび復号装置を制御するプログラム,ならびに署名/検証システムにおける鍵管理サーバおよび検証装置を制御するプログラム
CN108243198B (zh) 一种数据分发、转发方法及装置
JP2005202048A (ja) 暗号通信システム、そのシステムに使用される暗号装置および復号装置、暗号化方法および復号化方法、暗号化プログラムおよび復号化プログラム、ならびに記録媒体
JP2008028867A (ja) 通信代理システムおよび通信代理装置
CN112242977A (zh) 一种数据传输方法及数据传输系统