COMMUNICATION SYSTEM, COMMUNICATION DEVICE, METHOD, AND PROGRAM
The communication system integrates protocol conversion and management units to enable any key sharing protocol, including QKD and PQKD, within a unified procedure, addressing the separation issue in QKD systems and facilitating protocol switching.
Patent Information
- Application Number
- JP2023561987
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-11-17
- Publication Date
- 2024-12-24
- Estimated Expiration
- 2041-11-17
AI Technical Summary
Quantum Key Distribution (QKD) systems have a physical limitation where the device for key sharing and the device for data transmission are separate, leading to differences in key distribution specifications compared to conventional protocols like TLS and IPsec, preventing seamless integration and application in encrypted communications.
A communication system with a protocol conversion unit, state management unit, and protocol driver that enables any key sharing protocol to be used through a standardized procedure, allowing applications to utilize QKD and other protocols like Post-Quantum Key Exchange (PQKD) without specific procedural knowledge.
Enables applications to use any key sharing protocol uniformly, facilitating seamless integration and switching between different key sharing protocols, including QKD and PQKD, by hiding specific protocol mechanisms from the application program.
Smart Images

Figure 0007605342000001 
Figure 0007605342000002 
Figure 0007605342000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a communication system, a communication device, a method, and a program. [Background technology]
[0002] A key sharing protocol called quantum key distribution (QKD) is known (see, for example, Non-Patent Documents 1 and 2). QKD is a technology in which a key for encrypting communication between two parties is shared by quantum teleportation, and the communication is encrypted using the key (hereinafter, also referred to as a shared key). [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] ETSI GS QKD 004 V2.1.1 (2020-08) Quantum Key Distribution (QKD); Application Interface [Non-Patent Document 2] ETSI GS QKD 014 V1.1.1 (2019-02) Quantum Key Distribution (QKD); Protocol and data format of REST-based key delivery API Summary of the Invention [Problem to be solved by the invention]
[0004] However, QKD has a physical constraint that the device that shares the key and the device that transmits and receives the data are separate devices. Also, there are significant differences between the key distribution specifications in, for example, TLS and IPsec. For this reason, applications that use a shared key for encrypted communication cannot use QKD in the same way as conventional key sharing protocols.
[0005] An embodiment of the present invention has been made in view of the above points, and has an object to enable an application to use any key agreement protocol in the same procedure. [Means for solving the problem]
[0006] In order to achieve the above-mentioned object, a communication system in one embodiment is a communication system that includes a plurality of communication devices, each of which has an application program that performs encrypted communication with other communication devices, a protocol conversion unit that transmits a message representing a predetermined procedure when a key request for a shared key used in the encrypted communication is received from the application program, a state management unit that receives the message from the protocol conversion unit and manages the execution state of the procedure, and transmits the message to a protocol driver corresponding to a predetermined key sharing protocol, and a protocol driver that, when it receives a message from the state management unit, requests a key sharing system that executes the key sharing protocol to perform processing to generate the shared key. Effect of the Invention
[0007] Applications can use any key agreement protocol in the same procedure. [Brief description of the drawings]
[0008] [Figure 1] 1 is a diagram illustrating an example of an overall configuration of a communication system according to an embodiment of the present invention. [Diagram 2] 11 is a sequence diagram illustrating an example of a protocol driver registration process according to the embodiment. FIG. [Diagram 3] FIG. 11 is a sequence diagram illustrating an example of an initial registration process according to the embodiment. [Figure 4] 11 is a sequence diagram showing an example of a process from a key request to a key notification according to the embodiment. FIG. [Diagram 5] FIG. 11 is a sequence diagram illustrating an example of a process from key ID sharing to key acquisition in the first embodiment. [Figure 6]FIG. 11 is a sequence diagram illustrating an example of a process from key ID sharing to key acquisition in the second embodiment. [Figure 7] FIG. 2 illustrates an example of a hardware configuration of a computer. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] An embodiment of the present invention will be described below. In the following, a communication system 1 in which an application can use any key agreement protocol in the same procedure will be described. According to this communication system 1, an application that performs encrypted communication using a shared key can use any key agreement protocol, including QKD, in the same procedure, and can easily switch between various key agreement protocols, for example. Note that a key agreement protocol is a protocol for generating the same shared key between two parties, and may also be called, for example, a key exchange protocol or a key distribution protocol.
[0010] <Overall configuration of communication system 1> An example of the overall configuration of a communication system 1 according to this embodiment is shown in Fig. 1. Fig. 1 shows, as an example, the communication system 1 in which encrypted communication is performed between a point 1 and a point 2. In the communication system 1 shown in Fig. 1, a communication device 10-1 and a key sharing system 20-1 are included in the point 1, and a communication device 10-2 and a key sharing system 20-2 are included in the point 2.
[0011] The communication device 10-1 performs encrypted communication with the communication device 10-2 using a key (shared key) shared between the key sharing system 20-1 and the key sharing system 20-2. The key sharing system 20-1 generates a shared key with the key sharing system 20-2 by a predetermined key sharing protocol. The communication device 10-1 has an application program (hereinafter referred to as AP) 110-1, a protocol conversion unit 120-1, a state management unit 130-1, and a protocol driver 140-1. The protocol conversion unit 120-1 also includes an initial registration unit 121-1, a key sharing acceptance unit 122-1, and a key output unit 123-1.
[0012] Similarly, the communication device 10-2 performs encrypted communication with the communication device 10-1 using a key (shared key) shared between the key sharing system 20-1 and the key sharing system 20-2. The key sharing system 20-2 generates a shared key with the key sharing system 20-1 by a predetermined key sharing protocol. Here, the communication device 10-2 has an AP 110-2, a protocol conversion unit 120-2, a state management unit 130-2, and a protocol driver 140-2. The protocol conversion unit 120-2 also includes an initial registration unit 121-2, a key sharing acceptance unit 122-2, and a key output unit 123-2.
[0013] Hereinafter, when there is no need to distinguish between communication device 10-1 and communication device 10-2, they will be referred to as "communication device 10," and when there is no need to distinguish between key sharing systems 20-1 and 20-2, they will be referred to as "key sharing system 20." Similarly, the other components will be referred to as "AP 110," "protocol conversion unit 120," "initial registration unit 121," "key sharing acceptance unit 122," "key output unit 123," "state management unit 130," and "protocol driver 140."
[0014] Here, we will break down any key agreement protocol so that it can be realized in the following five steps.
[0015] ·Key Request ·Key ID Share ·KeyShare ·KeyGet ·KeyNotify An application that uses the shared key then realizes the original key agreement protocol by appropriately combining all or part of the above five steps. This hides the specific mechanism of the key agreement protocol from application programs that use the shared key, and enables the application programs to realize various key agreement protocols by combining all or part of the above five steps.
[0016] The AP 110 is an application program that performs encrypted communication with the AP 110 of another communication device 10 by using a shared key.
[0017] Protocol conversion unit 120 accepts (a message representing) a key request from AP 110, and transmits (a message representing) a key notification to AP 110. Protocol conversion unit 120 also transmits (messages representing) key ID sharing and key acquisition to state management unit 130, and receives the results of the transmission. In addition to the above, protocol conversion unit 120 performs various processes and related processes for implementing a predetermined key exchange protocol by all or part of the above five procedures.
[0018] The state management unit 130 manages the protocol driver 140 and the state of the key sharing protocol corresponding to this protocol driver 140 .
[0019] The protocol driver 140 is a program that transmits and receives various messages to and from the key sharing system 20 and executes specific processes. A protocol driver 140 is required for each key sharing system 20. For example, if the key sharing system 20 performs key sharing by QKD, a protocol driver 140 compatible with QKD is required, and if the key sharing system 20 performs key sharing by Post-Quantum Key Exchange (PQKD), a protocol driver 140 compatible with PQKD is required.
[0020] Furthermore, the protocol driver 140 defines various processes of the key sharing protocol corresponding to this protocol driver 140 for each of key ID sharing, key sharing, and key acquisition. As a result, when key ID sharing, key sharing, or key acquisition is received, the protocol driver 140 can execute the key ID sharing process, key sharing process, or key acquisition process specific to the key sharing protocol corresponding to this protocol driver 140.
[0021] The initial registration unit 121 performs registration of the protocol driver 140 and various other initial registrations. Examples of initial registrations include setting and registration of various keys (e.g., signature key, verification key, pre-shared key, etc.) used for key sharing, initiator / responder registration, etc. Note that initiator / responder registration refers to registering whether the AP 110 is an initiator or a responder.
[0022] The key sharing acceptance unit 122 accepts a key request from the AP 110, and in response thereto, shares a key ID with the state management unit 130, obtains a key, and so on.
[0023] The key output unit 123 performs key notification and the like for notifying the AP 110 of the shared key received from the state management unit 130 .
[0024] 1, the communication device 10 and the key sharing system 20 exist as separate entities at each base, but they may be integrated depending on the key sharing protocol executed by the key sharing system 20. For example, when the key sharing protocol executed by the key sharing system 20 is PQKD or the like, the communication device 10 and the key sharing system 20 may be integrated (specifically, the key sharing system 20 may be included in the communication device 10). On the other hand, when the key sharing protocol executed by the key sharing system 20 is QKD or the like, the communication device 10 and the key sharing system 20 are configured as separate entities.
[0025] Furthermore, the communication network between the communication devices 10 and the communication network between the key sharing systems 20 may be the same, or may be different depending on the key sharing protocol executed by the key sharing system 20. For example, when the key sharing protocol executed by the key sharing system 20 is PQKD or the like, the communication network between the communication devices 10 and the communication network between the key sharing systems 20 may both be the Internet or the like. On the other hand, when the key sharing protocol executed by the key sharing system 20 is QKD or the like, the communication network between the communication devices 10 is the Internet or the like, and the communication network between the key sharing systems 20 is an optical communication network or the like.
[0026] When the key sharing system 20 executes a key sharing protocol that is QKD, the communication device 10 and the key sharing system 20 at the same site are connected by a communication network such as an intra-site network.
[0027] <Protocol driver registration process> The process of registering the protocol driver 140 in the communication device 10 (protocol driver registration process) will be described below with reference to FIG.
[0028] The initial registration section 121 of the protocol conversion section 120 accepts registration of the protocol driver 140 (step S101). Note that the protocol driver 140 itself is input from a recording medium such as a CD-ROM or a USB memory.
[0029] The initial registration unit 121 of the protocol conversion unit 120 transmits a protocol driver registration request including the protocol driver 140 to the state management unit 130 (step S102). The state management unit 130 registers the protocol driver 140 included in the protocol driver registration in the communication device 10 (step S103), and returns a notification of completion of registration (step S104). As a result, the protocol driver 140 is registered in the communication device 10.
[0030] <Initial registration process> The initial registration process will be described below with reference to FIG.
[0031] The AP 110 transmits initial registration information to the protocol conversion unit 120 (step S201). The initial registration information includes, for example, at least initial setting information for the key sharing system 20 (including a verification key (or a pre-shared key) for the signature of the protocol driver 140, etc.). The initial registration information may also include initial setting information for the protocol driver 140 (including a signature key and a verification key (or a pre-shared key) used when communicating with the key sharing system 20 or a protocol driver 140 at another base, etc.).
[0032] When the initial registration unit 121 of the protocol conversion unit 120 receives the initial registration information (step S202), it transmits the initial registration information to the state management unit 130 (step S203). The state management unit 130 transmits the initial registration information to the protocol driver 140 (step S204). The protocol driver 140 performs initial settings (e.g., setting a signature key and a verification key (or a pre-shared key)) from the initial registration information, and then transmits the initial registration information to the key sharing system 20 (step S205). The key sharing system 20 performs initial settings (e.g., setting a verification key (or a pre-shared key)) from the initial registration information, and then replies that registration has been completed (steps S206 to S209).
[0033] Here, the settings for the keys (signature key, verification key, pre-shared key) in the initial settings above are as follows: When the key sharing protocol executed by the key sharing system 20 is QKD A verification key (or a pre-shared key) for the signature of the key sharing system 20 at the same location is set in the protocol driver 140 of the communication device 10. Similarly, a verification key (or a pre-shared key) for the signature of the communication device 10 (its protocol driver 140) at the same location is set in the key sharing system 20. That is, a verification key (or a pre-shared key) for mutual authentication between the communication device 10 (its protocol driver 140) and the key sharing system 20 is set in each. This is because in QKD, the communication device 10 and the key sharing system 20 are separate entities, and it is necessary to transmit a shared key from the key sharing system 20 to the communication device 10 via a communication network such as an intra-location network.
[0034] Furthermore, when the AP 110 of the communication device 10 becomes a responder, a verification key (or a pre-shared key) for the signature of the initiator is set in the protocol driver 140 of the communication device 10.
[0035] When the key sharing protocol executed by the key sharing system 20 is PQKD When the AP 110 of the communication device 10 becomes a responder, a verification key for the initiator's signature (or a verification key or a pre-shared key for mutual authentication between the initiator and the responder) is set in the key sharing system 20 included in the communication device 10.
[0036] Returning to the explanation of Fig. 3, in step S210, initiator / responder registration is performed. In the initiator / responder registration, information indicating whether the AP 110 is an initiator or a responder (hereinafter also referred to as initiator / responder information) is registered in the AP 110 and the protocol driver 140, and there are mainly two registration methods.
[0037] The first method is called invitation registration. In invitation registration, the protocol driver 140 transmits invitation information including initiator / responder information to the AP 110 via the state management unit 130 and the protocol conversion unit 120. The AP 110 can approve or reject this invitation information. If the AP 110 approves, it transmits information indicating approval to the protocol driver 140 via the protocol conversion unit 120 and the state management unit 130. As a result, the initiator / responder information is registered in the AP 110 and the protocol driver 140.
[0038] The second method is called callback registration. In callback registration, the AP 110 sends a callback registration request including initiator / responder information to the protocol driver 140 via the protocol conversion unit 120 and the state management unit 130. The protocol driver 140 registers the initiator / responder information included in this callback registration request, and then sends the registration result to the AP 110 via the state management unit 130 and the protocol conversion unit 120. As a result, the initiator / responder information is registered in the AP 110 and the protocol driver 140.
[0039] <Processing from key request to key notification> The following describes the process of key sharing of a predetermined key sharing protocol through the above five steps (key request, key ID sharing, key sharing, key acquisition, and key notification) with reference to Fig. 4. In the following, as an example, it is assumed that the AP 110 is an initiator.
[0040] The AP 110 transmits a key request to the protocol conversion unit 120 (step S301). The key sharing acceptance unit 122 of the protocol conversion unit 120 accepts the key request (step S302). Then, the protocol conversion unit 120 transmits the key request to the state management unit 130 (step S303).
[0041] The state management unit 130 transmits the handle information to the protocol conversion unit 120 (step S304). The handle information is information for managing the processing state until the shared key is notified to the AP 110. At this time, the protocol conversion unit 120 that has received the handle information updates the handle information to information indicating that the process up to the key request has been executed, for example.
[0042] The protocol conversion unit 120 transmits the key ID sharing to the state management unit 130 (step S305). The state management unit 130, the protocol driver 140, and at least a part of the key sharing system 20 execute a key ID sharing process specific to the key sharing protocol corresponding to this protocol driver 140 (step S306). Then, the state management unit 130 transmits a result of the key ID sharing process specific to the key sharing protocol (key ID sharing result) to the protocol conversion unit 120 (step S307). At this time, the protocol conversion unit 120 that has received the key ID updates the handle information to information indicating that up to the key ID sharing has been executed, for example.
[0043] The protocol conversion unit 120 transmits the key sharing to the state management unit 130 (step S308). The state management unit 130, the protocol driver 140, and at least a part of the key sharing system 20 execute a key sharing process specific to the key sharing protocol corresponding to this protocol driver 140 (step S309). The state management unit 130 then transmits the result of the key sharing process specific to the key sharing protocol (key sharing result) to the protocol conversion unit 120 (step S310). At this time, the protocol conversion unit 120 that has received the key sharing result updates the handle information to information indicating that up to the key sharing has been executed, for example.
[0044] The protocol conversion unit 120 transmits a key acquisition to the state management unit 130 (step S311). The state management unit 130, the protocol driver 140, and at least a part of the key sharing system 20 execute a key acquisition process specific to the key sharing protocol corresponding to this protocol driver 140 (step S312). The state management unit 130 then transmits the key and key ID acquired in the key acquisition process specific to the key sharing protocol to the protocol conversion unit 120 (step S313). At this time, the protocol conversion unit 120 that has received the key updates the handle information to information indicating that the process up to the key acquisition has been performed, for example. Depending on the key sharing protocol executed by the key sharing system 20, only the key may be acquired in the key acquisition, or only the key ID may be acquired.
[0045] The key output unit 123 of the protocol conversion unit 120 notifies the AP 110 of the key (shared key) and key ID received from the state management unit 130 (step S314). This enables the AP 110 to perform encrypted communication using the shared key with the AP 110 at the other base.
[0046] Example 1: QKD In the following, as a first embodiment, a process example of steps S305 to S313 in Fig. 4 in a case where the key sharing protocol executed by the key sharing system 20 is QKD will be described with reference to Fig. 5. In the following, it is assumed that AP 110-1 is an initiator and AP 110-2 is a responder.
[0047] Note that the QKD-specific key ID sharing process corresponds to steps S402 to S405, the QKD-specific key sharing process corresponds to steps S408 to S410 and steps S412 to S414, and the QKD-specific key acquisition process corresponds to steps S417 to S418 and steps S421 to S422.
[0048] When the state management unit 130-1 receives the key ID sharing from the protocol conversion unit 120-1 (step S401), it transmits the key ID sharing to the protocol driver 140-1 (step S402). When the protocol driver 140-1 receives the key ID sharing from the state management unit 130-1, it transmits the key ID sharing to the key sharing system 20-1 (step S403). When the key sharing system 20-1 receives the key ID sharing from the protocol driver 140-1, it transmits a key (shared key) generated between the key sharing system 20-2 by QKD and the key ID to the protocol driver 140-1 (step S404). In the communication between the protocol driver 140-1 and the key sharing system 20-1, mutual authentication is performed by a key (verification key or pre-shared key) set in the initial setting, and a secure channel is configured by, for example, TLS or the like.
[0049] Here, when transmitting the shared key and the key ID in the above step S404, the key sharing system 20-1 may calculate a hash value from the shared key and the key ID, and then transmit this hash value (hereinafter referred to as a first hash value) together. Note that the calculation of this first hash value may be performed, for example, by the protocol driver 140-1 in step S405 described later, or by the state management unit 130-1 in step S406. In the following, it is assumed that the shared key, the key ID, and the first hash value are transmitted in the above step S404.
[0050] Upon receiving the shared key, the key ID, and the first hash value, the protocol driver 140-1: A key ID sharing result indicating that the key ID sharing has been completed is transmitted to state management unit 130-1 (step S405). Upon receiving the key ID sharing result, state management unit 130-1 transmits the key ID sharing result to protocol conversion unit 120-1 (step S406).
[0051] When the state management unit 130-1 receives the key sharing from the protocol conversion unit 120-1 (step S407), it transmits the key sharing to the protocol driver 140-1 (step S408). When the protocol driver 140-1 receives the key sharing, it calculates a second hash value from the shared key and key ID received from the key sharing system 20-1 in the above step S404, and verifies whether the second hash value matches the first hash value. If the verification is successful, it transmits the key ID and the first hash value to the protocol driver 140-2 (step S409). At this time, the protocol driver 140-1 assigns a signature to the key ID and the first hash value using its own (communication device 10-1) signature key.
[0052] After transmitting the key ID, the first hash value, and the corresponding signature to the protocol driver 140-2, the protocol driver 140-1 transmits a key sharing result indicating that the key sharing has been completed to the state management unit 130-1 (step S410).Then, the state management unit 130-1 transmits the key sharing result to the protocol conversion unit 120-1 (step S411).
[0053] On the other hand, when the protocol driver 140-2 receives the key ID, the first hash value, and the signature for them, it verifies the signature using the verification key of the protocol driver 140-1, and if the verification is successful, it transmits the key ID to the key sharing system 20-2 (step S412). When the key sharing system 20-2 receives the key ID, it transmits the key of this key ID (i.e., the shared key generated with the key sharing system 20-1 by QKD) to the protocol driver 140-2 (step S413). The protocol driver 140-2 calculates a third hash value from the shared key and key ID received from the key sharing system 20-1, and verifies whether the third hash value matches the first hash value, and if the verification is successful, it transmits the key sharing result to the state management unit 130-2 (step S414). Then, the state management unit 130-2 transmits the key sharing result to the protocol conversion unit 120-2 (step S415).
[0054] Upon receiving the key acquisition from the protocol conversion unit 120-2 (step S416), the state management unit 130-2 transmits the key acquisition to the protocol driver 140-2 (step S417). Upon receiving the key acquisition, the protocol driver 140-2 transmits the shared key and the key ID to the state management unit 130-2 (step S418). Then, the state management unit 130-2 transmits the shared key and the key ID to the protocol conversion unit 120-2 (step S419). Note that in the above steps S418 and S419, the first hash value may be transmitted together with the shared key and the key ID.
[0055] When state management unit 130-1 receives the key acquisition from protocol conversion unit 120-1 (step S420), it transmits the key acquisition to protocol driver 140-1 (step S421). When protocol driver 140-1 receives the key acquisition, it transmits the shared key and key ID to state management unit 130-1 (step S422). Then, state management unit 130-1 transmits the shared key and key ID to protocol conversion unit 120-1 (step S423). Note that in the above steps S422 and S423, a first hash value may be transmitted together with the shared key and key ID.
[0056] To calculate the first to third hash values, the shared key and the key ID are combined and input to a predetermined hash function. In this case, a keyed hash function may be used as the hash function.
[0057] Here, at each base, there may be a plurality of key sharing systems 20 for one communication device 10. In this case, in the above step S409, in addition to the key ID and the first hash value, information for identifying the key sharing system 20 on the initiator side and information for identifying the key sharing system 20 on the responder side may be transmitted.
[0058] Example 2: PQKD In the following, as a second embodiment, a process example of steps S305 to S313 in Fig. 4 in a case where the key sharing protocol executed by the key sharing system 20 is PQKD will be described with reference to Fig. 6. In the following, it is assumed that AP 110-1 is an initiator and AP 110-2 is a responder.
[0059] Note that the PQKD-specific key ID sharing process corresponds to steps S502 to S503, the PQKD-specific key sharing process corresponds to steps S506 to S513, and the PQKD-specific key acquisition process corresponds to steps S516 to S517 and steps S519 to S522.
[0060] When state management unit 130-1 receives the key ID sharing from protocol conversion unit 120-1 (step S501), it transmits the key ID sharing to protocol driver 140-1 (step S502). Protocol driver 140-1 generates a key ID and then transmits a key ID sharing result indicating that the key ID sharing has been completed to state management unit 130-1 (step S503). Then, state management unit 130-1 transmits this key ID sharing result to protocol conversion unit 120-1 (step S504).
[0061] When the state management unit 130-1 receives the key sharing from the protocol conversion unit 120-1 (step S505), it transmits the key sharing to the protocol driver 140-1 (step S506). When the protocol driver 140-1 receives the key sharing, it transmits the key ID generated in the above step S503 and the predetermined key length to the key sharing system 20-1 (step S507). When the key sharing system 20-1 receives the key ID and the key length, it generates a key pair of a public key Pk and a private key Sk by a quantum-resistant public key cryptography method, and transmits the public key Pk, the key ID, the key length, and a signature (or a message authentication code) for them to the key sharing system 20-2 (step S508). In the communication between the key sharing system 20-1 and the key sharing system 20-2, mutual authentication is performed by a key (verification key or pre-shared) set in the initial setting, and a secure channel is configured by, for example, TLS or the like.
[0062] When the key sharing system 20-2 receives the public key Pk, the key ID, the key length, and the signature (or the message authentication code) for them, it verifies the signature (or the message authentication code), and if the verification is successful, it inputs the public key Pk to the encryption algorithm of the Key Encapsulation Mechanism (KEM) to generate a session key ssk and its ciphertext ctx, and then generates a shared key by a key derivation function with the session key ssk and the key length as input, and transmits the ciphertext ctx, the shared key, and the key ID to the protocol driver 140-2 (step S509). When the protocol driver 140-2 receives the ciphertext ctx, the shared key, and the key ID, it calculates a hash value (hereinafter referred to as a fourth hash value) from the shared key and the key ID, and then holds the shared key, the key ID, and the fourth hash value, and transmits the ciphertext ctx and the fourth hash value to the key sharing system 20-2 (step S510). Then, upon receiving the ciphertext ctx and the fourth hash value, the key sharing system 20-2 transmits the ciphertext ctx and the fourth hash value to the key sharing system 20-1 (step S511).
[0063] When the key sharing system 20-1 receives the ciphertext ctx and the fourth hash value, it inputs the private key Sk and the ciphertext ctx to the decryption algorithm of the key encapsulation mechanism to decrypt the session key ssk, generates a shared key by a key derivation function with the session key ssk and the key length as input, and transmits the shared key and the fourth hash value to the protocol driver 140-1 (step S512). When the protocol driver 140-1 receives the shared key and the fourth hash value, it calculates a hash value (hereinafter referred to as a fifth hash value) from the shared key and the key ID generated in the above step S503, and verifies whether the fifth hash value matches the fourth hash value. If the verification is successful, it holds the shared key, the key ID, and the fifth hash value, and transmits a key sharing result indicating that the key sharing has been completed to the state management unit 130-1 (step S513). Then, state management unit 130-1 transmits the result of the key sharing to protocol conversion unit 120-1 (step S514).
[0064] When state management unit 130-1 receives the key acquisition from protocol conversion unit 120-1 (step S515), it transmits this key acquisition to protocol driver 140-1 (step S516). When protocol driver 140-1 receives the key acquisition, it transmits the shared key and key ID held in the above step S513 to state management unit 130-1 (step S517). Then, state management unit 130-1 transmits the shared key and key ID to protocol conversion unit 120-1 (step S518).
[0065] Furthermore, the protocol driver 140-1 transmits a completion notification including the key ID and the fifth hash value held in the above step S513 to the key sharing system 20-1 (step S519). Upon receiving the completion notification, the key sharing system 20-1 transmits this completion notification to the key sharing system 20-2 (step S520). Upon receiving the completion notification, the key sharing system 20-2 transmits this completion notification to the protocol driver 140-2 (step S521). Upon receiving the completion notification, the protocol driver 140-2 transmits the key ID and the shared key of this key ID included in the completion notification to the state management unit 130-2 (step S522). At this time, the protocol driver 140-2 may transmit the key ID and the shared key to the state management unit 130-2 only if the fifth hash value included in the completion notification matches the fourth hash value. Then, state management unit 130-2 transmits the shared key and the key ID to protocol conversion unit 120-2 (step S523).
[0066] To calculate the fourth to fifth hash values, the shared key and the key ID combined may be input to a predetermined hash function.
[0067] <Hardware configuration> The communication device 10 and the key sharing system 20 included in the communication system 1 according to this embodiment are realized, for example, by the hardware configuration of a computer 500 shown in Fig. 7. The computer 500 shown in Fig. 7 has an input device 501, a display device 502, an external I / F 503, a communication I / F 504, a processor 505, and a memory device 506. Each of these pieces of hardware are connected to each other via a bus 507 so as to be able to communicate with each other.
[0068] The input device 501 is, for example, a keyboard, a mouse, a touch panel, various physical buttons, etc. The display device 502 is, for example, a display, a display panel, etc. Note that the computer 500 does not necessarily have to have at least one of the input device 501 and the display device 502, for example.
[0069] The external I / F 503 is an interface with an external device such as a recording medium 503a. Examples of the recording medium 503a include a CD-ROM, a DVD-ROM, an SD memory card, and a USB memory card.
[0070] The communication I / F 504 is an interface for connecting the computer 500 to a communication network. The processor 505 is, for example, various arithmetic devices such as a CPU (Central Processing Unit). The memory device 506 is, for example, various storage devices such as a HDD (Hard Disk Drive), an SSD (Solid State Drive), a RAM (Random Access Memory), a ROM (Read Only Memory), and a flash memory.
[0071] 7 is merely an example, and other hardware configurations may be used. For example, the computer 500 may have multiple processors 505 and multiple memory devices 506, or may have various other hardware components in addition to the hardware components shown in the figure.
[0072] One or more programs for implementing AP 110, protocol conversion unit 120, and status management unit 130 shown in FIG. 1, protocol driver 140, etc. are stored in memory device 506, and various functions are realized by executing various processes by processor 505.
[0073] <Summary> As described above, each communication device 10 included in the communication system 1 according to this embodiment includes a protocol conversion unit 120, a state management unit 130, and a protocol driver 140 between the AP 110 and the key sharing system 20. This allows the AP 110 to use any key sharing protocol through five steps: key request, key ID sharing, key sharing, key acquisition, and key notification. Therefore, the AP 110 does not need to consider steps specific to the key sharing protocol, and can use various key sharing protocols through similar steps, and can easily switch between key sharing protocols.
[0074] <Supplementary Information> In the communication system 1 according to the present embodiment, each base includes one key sharing system 20 (see FIG. 1), but this is not limiting, and each base may include multiple key sharing systems 20. In this case, the AP 110 of the communication device 10 at that base can use multiple key sharing protocols.
[0075] When AP110 is capable of using multiple key sharing protocols, the key sharing protocol to be used can be specified or set in various ways, but examples include the following specification or setting methods (1) to (3).
[0076] (1) Set the key sharing protocol to be used as standard (default) during initial configuration of the AP 110. Note that if you want to change the default key sharing protocol, just change the default key sharing protocol without changing any other settings, just like with the initial configuration.
[0077] (2) When making a key request (that is, step S301 in FIG. 4), specify that a default key agreement protocol is to be used, or if a key agreement protocol other than the default is to be used, specify that key agreement protocol.
[0078] (3) In cases such as when AP 110 is called by a callback, a key agreement protocol different from the default key agreement protocol of AP 110 on the responder side may be selected or specified on the initiator side. In such cases, the initiator notifies AP 110 on the responder side of information that can identify or specify the key agreement protocol selected or specified on the initiator side. This means that the key agreement protocol selected or specified on the initiator side is specified as the key agreement protocol to be used by AP 110 on the responder side.
[0079] The present invention is not limited to the above-described embodiments specifically disclosed, and various modifications, changes, combinations with known technologies, etc. are possible without departing from the scope of the claims. [Explanation of symbols]
[0080] 1. Communication Systems 10. Communications Equipment 20 Key Sharing System 110 AP 120 Protocol conversion unit 121 Initial Registration Section 122 Key sharing reception unit 123 Key output unit 130 Status Management Unit 140 Protocol Driver 500 Computers 501 Input Device 502 Display device 503 External I / F 503a Recording media 504 Communication I / F 505 Processor 506 Memory Device 507 Bus
Claims
1. A communication system including a plurality of communication devices, The communication device includes: an application program for performing encrypted communication with another communication device; a protocol conversion unit that transmits a message indicating a predetermined procedure when a request for a shared key used in the encrypted communication is received from the application program; a state management unit that, upon receiving a message from the protocol conversion unit, transmits the message to a protocol driver corresponding to a predetermined key sharing protocol; a protocol driver that, upon receiving a message from the state management unit, requests a key sharing system that executes the key sharing protocol to perform a process for generating the shared key; the procedure includes: key ID sharing for sharing a key ID of the shared key; key sharing for sharing the shared key; key acquisition for acquiring at least one of the key ID and the shared key; and key notification for at least outputting the shared key; When the key agreement protocol is quantum key distribution, the key agreement system is a device physically different from the communication device; If the key agreement protocol is quantum-safe key exchange, the key agreement system is included in the communication device. Communication systems.
2. the key agreement protocol is quantum key distribution; The protocol driver includes:
2. The communication system according to claim 1, wherein when the shared key and a key ID of the shared key are received from the key sharing system, the key ID and hash values of the shared key and the key ID are transmitted to the other device.
3. the key agreement protocol is quantum-safe; The key sharing system comprises: A public key and a private key pair are generated using quantum-safe cryptography.
2. The communication system according to claim 1, further comprising: a key ID generated by the protocol driver, the public key, a predetermined key length, and a signature or message authentication code for the key ID, the public key, and the key length, the key ID being transmitted to the other communication device.
4. an application program for performing encrypted communication with another communication device; a protocol conversion unit that transmits a message indicating a predetermined procedure when a request for a shared key used in the encrypted communication is received from the application program; a state management unit that, upon receiving a message from the protocol conversion unit, transmits the message to a protocol driver corresponding to a predetermined key sharing protocol; a protocol driver that, upon receiving a message from the state management unit, requests a key sharing system that executes the key sharing protocol to perform processing for generating the shared key; having the procedure includes: key ID sharing for sharing a key ID of the shared key; key sharing for sharing the shared key; key acquisition for acquiring at least one of the key ID and the shared key; and key notification for at least outputting the shared key; When the key agreement protocol is quantum key distribution, the key agreement system is a device physically different from the communication device; If the key agreement protocol is quantum-safe key exchange, the key agreement system is included in the communication device. Communications equipment.
5. 1. A method for use in a communication device, comprising: An application program performs encrypted communication with another communication device; a protocol conversion unit transmitting a message indicating a predetermined procedure when receiving a key request for a shared key used in the encrypted communication from the application program; a state management unit, upon receiving a message from the protocol conversion unit, transmitting the message to a protocol driver corresponding to a predetermined key agreement protocol; a step of, when a protocol driver receives a message from the state management unit, requesting a key sharing system that executes the key sharing protocol to perform a process for generating the shared key; the procedure includes: key ID sharing for sharing a key ID of the shared key; key sharing for sharing the shared key; key acquisition for acquiring at least one of the key ID and the shared key; and key notification for at least outputting the shared key; When the key agreement protocol is quantum key distribution, the key agreement system is a device physically different from the communication device; If the key agreement protocol is quantum-safe key exchange, the key agreement system is included in the communication device. method.
6. A program for causing a computer to function as a communication device included in the communication system according to any one of claims 1 to 3.
Citation Information
Patent Citations
IPSec VPN cipher machine based on quantum key distribution
CN108173652A
Communication device, communication method, program and communication system
JP2014036322A
Communication apparatus, communication system, key sharing method, and program
JP2018207348A
