Key management device, quantum cryptography communication system, key management method and program

The key management device in quantum cryptographic systems efficiently relays keys by generating global keys from random numbers and encrypting them with local keys, addressing the challenge of slow relay control in conventional systems.

JP2026106671APending Publication Date: 2026-06-30KK TOSHIBA +1

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
KK TOSHIBA
Filing Date
2024-12-18
Publication Date
2026-06-30

Smart Images

  • Figure 2026106671000001_ABST
    Figure 2026106671000001_ABST
Patent Text Reader

Abstract

This enables faster and more efficient relay control of keys used to encrypt communication between applications in quantum cryptography communication systems. [Solution] The key management device of the embodiment comprises a generation unit, a packet processing unit, and an inter-node relay unit. The generation unit generates a first global key based on a first random number. The packet processing unit adds first route information indicating the relay route of the first packet to the first packet containing the first global key. The inter-node relay unit encrypts the first packet with a local key shared with other nodes and transmits the encrypted first packet to the other nodes.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present invention relate to a key management device, a quantum cryptographic communication system, a key management method, and a program.

Background Art

[0002] Conventionally, a quantum cryptographic communication control device that can guarantee the QoS (Quality of Service) originally expected by an application has been known. Also, network routing technologies that control the communication flow of packets between communication network nodes have been known.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Non-Patent Documents

[0004]

Non-Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] However, in the conventional technology, it has been difficult to perform relay control of keys used for encrypting communication between applications in a quantum cryptographic communication system more quickly and efficiently.

Means for Solving the Problems

[0006] The key management device of this embodiment comprises a generation unit, a packet processing unit, and an inter-node relay unit. The generation unit generates a first global key based on a first random number. The packet processing unit adds first route information indicating the relay path of the first packet to the first packet containing the first global key. The inter-node relay unit encrypts the first packet with a local key shared with other nodes and transmits the encrypted first packet to the other nodes. [Brief explanation of the drawing]

[0007] [Figure 1] Figure 1 shows an example of the configuration of a quantum cryptography communication system according to an embodiment. [Figure 2] Figure 2 shows an example of the network configuration of the embodiment. [Figure 3] Figure 3 shows an example of the functional configuration of the key management device according to the embodiment. [Figure 4] Figure 4 shows an example of global key information stored in the key storage unit of the embodiment. [Figure 5] Figure 5 shows an example of flow information stored in the flow information storage unit of the embodiment. [Figure 6] Figure 6 shows an example of route information stored in the route information storage unit of the embodiment. [Figure 7] Figure 7 shows an example of link information stored in the link information storage unit of the embodiment. [Figure 8] Figure 8 shows an example of a packet in the embodiment. [Figure 9] Figure 9 is a flowchart showing the processing flow of the key management device on the transmitting side. [Figure 10] Figure 10 is a flowchart showing the processing flow of the receiving key management device. [Figure 11] Figure 11 shows an example of a pair of applications that perform encrypted communication in this embodiment. [Figure 12a] Figure 12a shows an example 1 of the relay path for the global key used in the application pair in Figure 11. [Figure 12b]FIG. 12b is a diagram showing an example of path information corresponding to the relay path of FIG. 12a. [Figure 12c] FIG. 12c is a diagram showing an example of a path control header corresponding to the path information of FIG. 12b. [Figure 13a] FIG. 13a is a diagram showing Example 2 of a relay path of a global key used in a pair of applications in FIG. 11. [Figure 13b] FIG. 13b is a diagram showing an example of path information corresponding to the relay path of FIG. 13a. [Figure 13c] FIG. 13c is a diagram showing an example of a path control header corresponding to the path information of FIG. 13b. [Figure 14] FIG. 14 is a diagram showing a path table necessary for performing the key relay of FIG. 12a in a general manner. [Figure 15] FIG. 15 is a diagram showing an example of the hardware configuration of the key management apparatus according to the embodiment. [Embodiments of the Invention]

[0008] Embodiments of a key management apparatus, a quantum cryptographic communication system, a key management method, and a program will be described in detail below with reference to the accompanying drawings.

[0009] First, an example of the configuration of the quantum cryptographic communication system 1 according to the embodiment will be described. [Example of Configuration] FIG. 1 is a diagram showing an example of the configuration of the quantum cryptographic communication system 1 according to the embodiment. The quantum cryptographic communication system 1 according to the embodiment includes an application 10, a key management apparatus 20, and a QKD (Quantum Key Distribution) apparatus 30.

[0010] The application 10 operates on an information processing apparatus belonging to a user network.

[0011] The key management apparatus 20 belongs to a key management network composed of a plurality of key management apparatuses 20.

[0012] The QKD device 30 belongs to a QKD network composed of multiple QKD devices 30.

[0013] As shown in Figure 1, the key management network and the QKD network correspond to each other, and the link connectivity (topology) of the key management network is the same as the link connectivity of the QKD network.

[0014] The key management device 20 and the QKD device 30 are housed, for example, in a secure trusted node at each location. Hereinafter, "trusted node" will simply be referred to as "node".

[0015] In a QKD network, in order to transfer the private key used for encrypted communication by application 10 (hereinafter referred to as the "global key") between key management devices 20, it is necessary to encrypt the global key using the private keys of each key management device 20 (hereinafter referred to as the "local key"). However, in order to transfer the global key to a remote key management device 20 that does not have a direct link, it is necessary to send the global key via multiple key management devices 20 in a relay format.

[0016] The key management device 20 receives a local key from the QKD device 30. Each key management device 20 creates a tunnel along the link between the key management devices 20 that transparently encrypts IP packets (hereinafter simply referred to as "packets") using the local key, and forwards the packets through each tunnel to the target key management device 20. This allows the global key to be sent and received as direct IP communication between the source key management device 20 and the destination key management device 20, which has the advantage of utilizing existing IP network technologies. For example, by combining it with the TLS (Transport Layer Security) protocol, it becomes possible to send the global key in an end-to-end encrypted state from the source key management device 20 to the destination key management device 20.

[0017] The global key shared between the source key management device 20 and the destination key management device 20 is provided to the application 10 from both the source and destination key management devices 20.

[0018] Figure 2 shows an example of the network configuration of the embodiment. Each node 40 is equipped with a key management device 20 and a QKD device 30. In the example in Figure 2, each node 40 is represented by A to M.

[0019] QKD device 30 is connected to QKD device 30 located in an adjacent node 40 by an optical fiber line, and this line is called a QKD link (L AB~ L LM ).

[0020] First, the QKD devices 30 of each node 40 share local keys (=quantum keys) on a per-QKD link basis using a quantum key distribution protocol such as BB84. This enables encrypted communication using a symmetric-key cryptographic scheme with local keys on a per-QKD link basis.

[0021] Next, the key management devices 20 of each node 40 share a global key. This global key is a common key provided to applications 10 and other external applications of the quantum key management network. The global key is generated from random numbers at node 40, which is the key generation source. The packet containing the global key includes metadata about the sequence of QKD links used to reach node 40, which is the key sharing destination.

[0022] Furthermore, each node 40 forwards the global key to the next destination node 40 according to this sequence information. Thus, the global key is transmitted via a relay system, encrypted with a local key unique to each QKD link, and reaches the shared node 40.

[0023] The global key, once it reaches the final destination node 40, is stored in the key management device 20 within node 40 for provision to external applications 10, etc., and the sharing of the global key between the key management device 20 that generated the global key and the key management device 20 to which it is shared is completed.

[0024] [Example of key management system function configuration] Figure 3 shows an example of the functional configuration of the key management device 20 of the embodiment. The key management device 20 of the embodiment includes a registration unit 201, a route information storage unit 202, a generation unit 203, a key storage unit 204, a flow information storage unit 205, an allocation unit 206, a packet processing unit 207, a link information storage unit 208, an inter-node relay unit 209, and an intra-node relay unit 210.

[0025] The registration unit 201 registers route information in the route information storage unit 202 that indicates the route used when sending the global key generated by the generation unit 203 to other key management devices 20, and registers flow information in the flow information storage unit 205 that is used as a condition for identifying the flow of packets containing the global key.

[0026] The route information storage unit 202 stores route information. Details of the route information will be described later with reference to Figure 6.

[0027] The generation unit 203 generates random numbers and generates a global key from the random numbers. The generation unit 203 stores the global key information, which indicates the information of the generated global key, in the key storage unit 204. The generation unit 203 also inputs the global key information to the assignment unit 206.

[0028] The key storage unit 204 stores the global key information of the global key generated by the generation unit 203, and the global key information of the global key generated by the key management device 20 of the other node 40 (global key received from the other node 40). Details of the global key information will be described later with reference to Figure 4.

[0029] Furthermore, the key storage unit 204 stores local key information shared with the key management device 20 of the adjacent node 40. The local key information includes a link ID, a local key ID, and local key data. The link ID is identification information that identifies the QKD link. The local key ID is identification information that identifies the local key. The local key data is binary data that represents the local key.

[0030] The flow information storage unit 205 stores flow information. Details of the flow information will be described later with reference to Figure 5.

[0031] The allocation unit 206 refers to the flow information storage unit 205 and assigns a flow ID to the global key information input from the generation unit 203. Specifically, for each pair of applications 10 that use the global key to encrypt or decrypt data, the allocation unit 206 assigns a flow ID to the global key that identifies the communication flow of the packet. The allocation unit 206 inputs the global key information and the flow ID to the packet processing unit 207.

[0032] The packet processing unit 207 generates a packet containing global key information. Specifically, the packet processing unit 207 refers to the flow ID input from the allocation unit 206 and reads the route information associated with the flow ID from the route information storage unit 202. The packet processing unit 207 writes the route information associated with the flow ID into the routing header of the packet. The packet processing unit 207 inputs the packet to the inter-node relay unit 209.

[0033] The link information storage unit 208 stores link information that indicates the correspondence between the QKD link ID, which identifies the QKD link, and the inter-node relay unit 209. Details of the link information will be described later with reference to Figure 7.

[0034] The inter-node relay unit 209 is connected to the key management device 20 of the adjacent node and performs packet transmission and reception (relay). The example in Figure 3 shows the case where there are two adjacent nodes. The inter-node relay unit 209 establishes an encrypted communication channel with the key management device 20 of the adjacent node and transmits and receives packets generated by the packet processing unit 207.

[0035] For example, the inter-node relay unit 209 encrypts a packet using a local key shared with other nodes 40 via QKD, and sends the encrypted packet to the other node 40. Alternatively, when the inter-node relay unit 209 receives an encrypted packet from another node 40 containing a global key and a routing header (routing information) indicating the relay path of the packet, it decrypts the packet using the local key.

[0036] The intranode relay unit 210 forwards packets received from the internode relay unit 209 to other internode relay units 209 according to the routing header of the packets.

[0037] Figure 4 shows an example of global key information 300 stored in the key storage unit 204 of the embodiment. The global key information 300 includes at least a local application identifier, a remote application identifier, a key type, a key ID, and key data.

[0038] The local application is identification information that identifies the application 10 connected to the key management device 20.

[0039] The remote application identifier is identification information that identifies the application 10 connected to the key management device 20 of the remote node.

[0040] The key type is information that indicates whether it is an encryption key or a decryption key.

[0041] The key ID is an identifier that uniquely identifies a global key (binary data).

[0042] The key data is binary data that represents the global key.

[0043] Figure 5 shows an example of flow information 400 stored in the flow information storage unit 205 of the embodiment. The flow information 400 includes a flow ID and flow identification conditions.

[0044] A flow ID is an identifier that identifies a flow.

[0045] Flow identification conditions are the conditions used to identify a flow of packets that contain a global key. In the example in Figure 4, a condition that includes a combination of two applications 10 that use a global key is registered as a flow identification condition.

[0046] Figure 6 shows an example of route information 500 stored in the route information storage unit 202 of the embodiment. The route information 500 includes a flow ID and a link ID list.

[0047] The route information 500 in Figure 6 is an example of route information (route information starting from A) stored in the key management device 20 housed in node 40, indicated as A in Figure 2 above.

[0048] A flow ID is an identifier that identifies a flow. For example, a flow ID is used as a foreign key to associate it with flow information 400.

[0049] The link ID list indicates the order of links from the start to the end point included in the key relay path to the key management device 20 located at the destination node 40. Since there is a one-to-one correspondence between the connection relationships of the key management network and the connection relationships of the QKD network, the order of links from the start to the end point included in the key relay path is managed by the order information of the QKD links included in the QKD network.

[0050] When multiple key sharing paths are possible between the key management device 20 at the starting node 40 and the key management device 20 at the ending node 40, multiple path information 500 is defined by multiple flow IDs. In addition, in the flow information 400 in Figure 5, each of the multiple flow IDs is associated with and stored as a pair of applications 10.

[0051] As a result, when the key management device 20 shares a global key with other key management devices 20, the assignment unit 206 assigns a flow ID to the global key, allowing the global key to be shared via a different route for each application 10 that uses that global key.

[0052] Figure 7 shows an example of link information 600 stored in the link information storage unit 208 of the embodiment. The link information 600 includes the link ID and the destination node address.

[0053] The link information 600 in Figure 7 is an example of link information stored in the key management device 20 of node 40, which is indicated as F in Figure 2 above.

[0054] The link ID is identification information that identifies the QKD link connected to the QKD device 30 of each node 40.

[0055] The destination node address indicates the address of node 40 that houses the opposing QKD device 30 connected to the QKD link.

[0056] Figure 8 shows an example of a packet in the embodiment. The packet processing unit 207, the inter-node relay unit 209, and the intra-node relay unit 210 generate or analyze packets (communication frames) as shown in Figure 8, and then forward or store them as global keys.

[0057] The fixed-length header 701 is unique data used to identify the contents of a packet.

[0058] The routing header 702 is information added to the packet to perform global key relay according to the embodiment. The routing header 702 includes the header length, the number of links, the number of remaining links (initial value is the same as the number of links), and link information 705. The header length represents the size of the entire routing header 702. The number of links represents the size of the link array (link information 705). The number of remaining links represents the position within the link array. The link information 705 is an array of link ID lists arranged in reverse order.

[0059] The key identification information 703 is written when encryption using a local key is performed by the inter-node relay unit 209. For example, the key identification information 703 is identification information that identifies the local key used for encryption. For example, the key identification information 703 is used to identify the decryption key (the same common key as the encryption key) used to decrypt the encrypted data 704.

[0060] The encrypted data 704 includes global key information 300 (local application identifier, remote application identifier, key type, key ID, and key data) encrypted with a local key.

[0061] Figure 9 is a flowchart showing the processing flow of the transmitting key management device 20. First, the generation unit 203 generates random numbers and generates a global key from the random numbers (step S101). For example, the generation process in step S101 is executed in response to a request for global key generation from the application 10.

[0062] Next, the generation unit 203 stores the global key information 300 of the global key generated in step S101 in the key storage unit 204 (step S102).

[0063] Next, the allocation unit 206 reads the flow information 400 from the flow information storage unit 205 (step S103). The flow information 400 read in step S103 is selected according to the application 10 that requested the generation of a global key.

[0064] Next, the assignment unit 206 assigns the flow ID of the flow information 400 read in step S103 to the global key generated in step S101 (step S104).

[0065] Next, the packet processing unit 207 generates a packet containing the global key information 300 stored in step S102 (step S105). Specifically, for example, the packet processing unit 207 obtains the route information 500 associated with the flow information 400 assigned in step S104 from the route information storage unit 202, and adds a route control header 702 containing the route information 500 to the packet.

[0066] Next, the inter-node relay unit 209 encrypts the packet generated in step S105 (step S106). Specifically, the inter-node relay unit 209 uses a local key to encrypt the global key information 300 contained in the packet generated in step S105.

[0067] Next, the inter-node relay unit 209 forwards the encrypted packet from step S106 to the key management device 20 of the opposing node 40.

[0068] Figure 10 is a flowchart showing the processing flow of the receiving key management device 20. First, the inter-node relay unit 209 receives an encrypted packet from the key management device 20 of the opposing node 40 (step S201).

[0069] Next, the inter-node relay unit 209 decrypts the encrypted packet received in step S201 (step S202). The inter-node relay unit 209 identifies the local key to be used as the decryption key (the same common key as the encryption key) from the key identification information contained in the encrypted packet, and obtains the local key from the key storage unit 204. Then, the inter-node relay unit 209 decrypts the encrypted packet (encrypted data 704) using the local key and obtains global key information 300 (local application identifier, remote application identifier, key type, key ID, and key data).

[0070] Next, the inter-node relay unit 209 rewrites the routing header 702 (step S203). Specifically, the inter-node relay unit 209 decrements the number of remaining links in the routing header 702 of the encrypted packet. The number of remaining links decreases each time an inter-node relay is performed, and becomes 0 when it reaches the final destination node 40.

[0071] Next, the node relay unit 210 determines whether the number of remaining links in the routing header 702 is 0 (step S204).

[0072] If the number of remaining links is 0 (step S204, Yes), the relay unit 210 within the node stores the key data (random number) contained in the global key information 300 obtained in step S202 as the decryption key in the key storage unit 204 (step S205).

[0073] If the number of remaining links is not zero (step S204, No), the intranode relay unit 210 identifies the destination node 40 (step S206). Specifically, the intranode relay unit 210 identifies the next link by subtracting the "number of remaining links" from the "number of links" included in the routing header 702, considering this number as an index in the "link information" array, and reads the link information 600 corresponding to the next link from the link information storage unit 208. The intranode relay unit 210 identifies the destination node 40 by the opposing node address in the link information 600. Then, the intranode relay unit 210 relays the packet intranode to the internode relay unit 209 corresponding to the destination node 40.

[0074] Next, the inter-node relay unit 209 encrypts the packet (global key information 300) using the local key corresponding to the relay destination node 40 (step S207).

[0075] Next, the inter-node relay unit 209 sends the encrypted packet to the relay destination node 40 (step S208).

[0076] From this point onward, the process S201 to S208 is repeated at the key management device 20 of the next node 40 until the final destination node 40 is reached and the number of remaining links becomes 0.

[0077] [Specific example of processing] Figure 11 shows an example of a pair of applications 10 performing encrypted communication in the embodiment. Figure 12a shows an example 1 of the relay path for the global key used in the pair of applications 10 in Figure 11.

[0078] The local application (ENC_A1) is connected to the key management device 20 of node 40, indicated by A in Figure 12a. The global key used by the local application (ENC_A1) is provided by the key management device 20 of node 40, indicated by A in Figure 12a.

[0079] The remote application (ENC_M1) communicates with the key management device 20 of node 40, represented by M in Figure 12a. The global key used by the remote application (ENC_M1) is provided by the key management device 20 of node 40, represented by M in Figure 12a.

[0080] Figure 12b shows an example of route information 500 corresponding to the relay route in Figure 12a. First, at the key management device 20 of node 40, indicated by A, a trigger is activated to generate a global key between ENC_A1 and ENC_M1 (for example, a global key generation request from ENC_A1 to the key management device 20).

[0081] Then, the key management device 20 of node 40, indicated by A, refers to the routing information 500 in Figure 12b and sets the routing header 702 in Figure 12c in the packet. Then, the key management device 20 of node 40, indicated by A, starts communication with the key management device 20 of node 40, indicated by M.

[0082] Figure 12c shows an example of a routing header 702 corresponding to the routing information 500 in Figure 12b. The key management device 20 of node 40, indicated by A, sends a packet with the routing header 702 set in Figure 12c.

[0083] At this time, (number of links) - (number of remaining links) = 6 - 6 = 0, so the value of link information [0] is "L AB " becomes the next link. Therefore, the packet is L AB It is then forwarded to node 40, indicated by B.

[0084] The packets are encrypted by the key management device 20 of node 40 (represented by A) using a local key shared between nodes 40 (represented by A) and B. The encrypted packets are then decrypted by the key management device 20 of node 40 (represented by B) using a local key shared between nodes 40 (represented by A) and B.

[0085] Next, the key management device 20 of node 40, denoted as B, analyzes the routing header 702 of the packet and decrements the value of the remaining links (overwrites it with a value one less). At this time, (number of links) - (number of remaining links) = 6 - 5 = 1, so the value of link information [1], i.e., "L BC " becomes the next link. Therefore, the packet is L BC It is then forwarded to node 40, which is denoted as C.

[0086] The above process is repeated until the packet is forwarded to node 40, represented by M. When the key management device 20 of node 40, represented by M, decrements the number of remaining links in the packet's routing header 702, the number of remaining links becomes 0. Since a number of remaining links of 0 indicates that the packet has reached its destination node 40, the key management device 20 of node 40, represented by M, retrieves the global key information 300 from the encrypted data 704, processes the received response, and processes the received data.

[0087] Note that the information contained in the encrypted data 704 may include information other than the global key information 300. The global key information 300 contained in the encrypted data 704 is stored in the key storage unit 204.

[0088] By repeating the above series of steps, global keys for the pair of application 10 (ENC_A1 and ENC_M1) are accumulated in the key management device 20 of node 40, denoted as A and M.

[0089] Next, regarding the key generation for "Flow ID=10" in Figure 11 mentioned above, we will explain the process of changing the route to the route in Figure 13a when the route in Figure 12a is being used.

[0090] The route information 500 for the key relay with "Flow ID=10" in Figure 11 is recorded in the key management device 20 of the starting node 40 indicated by A. Therefore, the key management device 20 of the starting node 40 indicated by A rewrites the route information 500.

[0091] Figure 13a shows an example 2 of the relay route for the global key used in the application 10 pair in Figure 11. When the route is changed to the relay route in Figure 13a, the rewritten route information 500 will be as shown in Figure 13b.

[0092] Figure 13b shows an example of routing information 500 corresponding to the relay path in Figure 13a. The routing information 500 is reflected in the packet of global key information 300 originating from node 40, represented by A, and the routing header 702 will be as shown in Figure 13c.

[0093] Figure 13c shows an example of a routing header 702 corresponding to the routing information 500 in Figure 13b. From here on, packets are forwarded along the relay route shown in Figure 13a according to the contents of the routing header 702.

[0094] It should be noted that in a computer network where application 10 communicates, it is rarely realistic to expect communication to be completely one-way. This is because, even when sending data in one direction, a reverse receiving response is almost always necessary. When bidirectional communication is required, relay routes are registered at the key management devices 20 of the nodes 40 at both ends of the communication path.

[0095] Specifically, in the examples in Figures 12a and 13a, the route from node 40 labeled A to node 40 labeled M is registered in the key management device 20 of node 40 labeled A. The route from node 40 labeled M to node 40 labeled A is registered in the key management device 20 of node 40 labeled M.

[0096] [Effects of the Embodiment] As described above, in the key management device 20 of this embodiment, the generation unit 203 generates a global key based on random numbers. The packet processing unit 207 adds routing information indicating the relay path of the packet to the packet containing the global key. Then, the inter-node relay unit 209 encrypts the packet with a local key shared with other nodes and sends the encrypted packet to the other nodes.

[0097] As a result, the key management device 20 of this embodiment enables more rapid and efficient relay control of the key (global key) used to encrypt communication between applications 10 in the quantum cryptography communication system 1.

[0098] For example, when the key management device 20 of node 40 relaying the first packet relays the first packet sent from another node 40, it refers to the routing information written to the packet by the key management device 20 of the originating node 40. Therefore, the key management device 20 of the originating node 40 can control the relay route of the global key on its own, enabling rapid and efficient routing control.

[0099] Furthermore, using the process of changing routes as an example, a comparison between the process of this embodiment and a method that performs routing according to the route table set on each node (a general method that does not perform source routing) can be made as follows.

[0100] Figure 14 shows the routing tables required to perform the key relay shown in Figure 12a using a general method. Each routing table has a forwarding condition and a forwarding destination. Packets that match the forwarding condition are forwarded to the forwarding destination. In Figure 14, the destination node is used as the forwarding condition, but the same applies when the flow ID is used as the forwarding condition or when the QKD link is used as the forwarding destination, as in this embodiment.

[0101] Now, when comparing the conventional route table in Figure 14 with the route information 500 in Figure 12b of this embodiment, this embodiment has two clear advantages.

[0102] The first advantage is the ease of updating the route information 500. In the conventional route table shown in Figure 14, settings are configured across each node, so updating them requires making changes to numerous nodes. On the other hand, in this embodiment shown in Figure 12b, the route information 500 only needs to be rewritten for the starting node 40, that is, the node 40 indicated as A in Figure 12a. In the example in Figure 12b, all the information is contained in one record, so replacement only requires one record.

[0103] The second advantage is the clarity of the routing table. In the conventional routing table shown in Figure 14, in order to know which routes are actually being used, it is necessary to collect the routing tables of each node and assemble them as routes from the starting point to the ending point. Therefore, as the number of nodes in the QKD network increases, the overview becomes worse and maintainability decreases. On the other hand, in this embodiment shown in Figure 12b, the routing information 500 only needs to refer to the routing information 500 of the starting node 40, i.e., node 40 indicated by A, and the path from the starting point to the ending point is immediately clear.

[0104] (Modification of Embodiment 1) Next, a first modification of the embodiment will be described. In the description of the first modification, explanations similar to those of the embodiment will be omitted, and the differences from the embodiment will be described. The first modification describes the case in which priority control of packet communication is performed.

[0105] In Modification Example 1, the flow ID is defined based on the application 10 pair and the packet communication priority control information.

[0106] For example, priority control information includes QoS policies such as bandwidth-prioritizing, which prioritizes the size of the data transmitted in a packet, and latency-prioritizing, which prioritizes the speed of packet transmission.

[0107] In Modification 1, the allocation unit 206 assigns the flow ID to a global key based on priority control information. Then, the packet processing unit 207 in Modification 1 adds routing information associated with the flow ID to the packet.

[0108] For example, suppose there are two paths between key management devices 20 within a key management network: path A with high latency and path B with low latency. In this case, bandwidth-prioritizing and latency-prioritizing are defined in advance as QoS policies in the flow information 400 in Figure 5 or the path information 500 in Figure 6. Specifically, bandwidth-prioritizing is set for the flow ID corresponding to path A, and latency-prioritizing is set for the flow ID corresponding to path B.

[0109] The allocation unit 206 assigns flow IDs to global keys according to the QoS policy settings for the global key sharing process. Specifically, for example, if the QoS policy setting for the global key sharing process is latency-focused (i.e., prioritizing the time required for global key sharing), then a flow ID with "QoS policy = latency-focused" is assigned to the global key. As a result, the relay of packets containing that global key is performed using route B.

[0110] For example, if the QoS policy setting for global key sharing is bandwidth-first (i.e., prioritizing the amount of global key shared), the flow ID "QoS policy = bandwidth-first" will be assigned to the global key. As a result, relaying of packets containing that global key will be performed using route A.

[0111] According to variation 1, it is possible to optimize traffic during global key sharing.

[0112] (Modified embodiment 2) Next, a second modification of the embodiment will be described. In the description of the second modification, explanations similar to those of the embodiment will be omitted, and the differences from the embodiment will be described. The second modification describes the case in which the global key is divided into multiple blocks and relayed by multiple packets.

[0113] In the modified example 2, multiple flow IDs and route information are defined for each block in the route information storage unit 202 of the starting node 40. In addition, the flow IDs of application 10 pairs are defined for each block in the flow information storage unit 205 of the starting node 40.

[0114] In the modified example 2, the generation unit 203 divides the global key into multiple blocks. Then, the assignment unit 206 of the modified example 2 assigns a flow ID to each block.

[0115] According to Modification 2, it becomes possible to send each block of the global key via a different path. This improves the confidentiality of the global key and provides benefits such as load balancing for packet relay processing.

[0116] (Modification of Embodiment 3) Next, a third modification of the embodiment will be described. In the description of the third modification, explanations similar to those of the embodiment will be omitted, and only the differences from the embodiment will be described. The third modification describes a control example that allows the selection of an alternative route in the event of a relay path failure.

[0117] In Modification 3, the allocation unit 206 assigns multiple flow IDs to a global key along with their priority. In Modification 3, the packet processing unit 207 adds multiple routing information associated with the multiple flow IDs to the packet.

[0118] Furthermore, in Modification 3, when the inter-node relay unit 209 receives an encrypted packet from another node 40 containing a global key, multiple routing information, and the priority of the multiple routing information, it decrypts the second packet using the local key. In Modification 3, the intra-node relay unit 210 determines the destination of the packet based on the priority of the multiple routing information and the status of the relay path.

[0119] For example, in Modification 3, the node relay unit 210 selects route information with the highest priority in order, and if the selected route is unavailable due to a network failure, it selects the next highest priority route.

[0120] According to Modification 3, by including multiple routing information and the priority of that information in the packet, it is possible to control the use of an alternative route in the event of a route failure. Specifically, if a network failure occurs in part of the shared global key route, it becomes possible to switch to an alternative route. The network failure is detected, for example, by a node 40 adjacent to the failure location and notified to the key management device 20 of the node 40 that relays the packet.

[0121] Finally, an example of the hardware configuration of the key management device 20 in this embodiment will be described. The main hardware configuration of the information processing device on which application 10 runs, and the QKD device 30, is the same as that of the key management device 20.

[0122] [Example hardware configuration] Figure 15 shows an example of the hardware configuration of the key management device 20 according to the embodiment. The key management device 20 includes a CPU (Central Processing Unit) 51, ROM (Read Only Memory) 52, RAM (Random Access Memory) 53, a communication interface 54, and an auxiliary storage device 55. The CPU 51, ROM 52, RAM 53, communication interface 54, and auxiliary storage device 55 are connected via a bus 56.

[0123] The CPU 51 (an example of a processor) executes programs read into the RAM 53 from the ROM 52 (an example of main memory) and auxiliary storage devices 55. The auxiliary storage devices 55 include HDDs (Hard Disk Drives) and memory cards.

[0124] The key management device 20 may further include a display device that shows the status of the key management device 20, and an input device that receives input from the user.

[0125] Communication I / F54 is a communication interface for communicating with application 10, other key management devices 20, and QKD device 30, etc.

[0126] The program executed by the key management device 20 is stored in an installable or executable file format on a computer-readable storage medium such as a CD-ROM, memory card, CD-R, or DVD (Digital Versatile Disc) and provided as a computer program product.

[0127] Alternatively, the program executed by the key management device 20 may be stored on a computer connected to a network such as the Internet, and provided by allowing users to download it via the network.

[0128] Furthermore, the program executed by the key management device 20 may be configured to be provided via a network such as the Internet without requiring a download.

[0129] Alternatively, the program executed by the key management device 20 may be pre-installed and provided in ROM or the like.

[0130] The program executed by the key management device 20 has a modular configuration that includes functions that can be implemented by the program from the functional configuration of the key management device 20 described above. The functions implemented by the program are loaded into the RAM 53 by the CPU 51 reading the program from a storage medium such as the auxiliary storage device 55 and executing it. In other words, the functions implemented by the program are generated on the RAM 53.

[0131] Furthermore, some or all of the functions of the key management device 20 may be implemented by hardware such as an IC (Integrated Circuit). An IC is, for example, a processor that performs dedicated processing.

[0132] Furthermore, when multiple processors are used to implement each function, each processor may implement one of the functions, or it may implement two or more of the functions.

[0133] While several embodiments of the present invention have been described, these embodiments are presented as examples only and are not intended to limit the scope of the invention. These novel embodiments can be carried out in a variety of other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their variations are included in the scope and spirit of the invention, as well as in the claims of the invention and its equivalents. [Explanation of symbols]

[0134] 1. Quantum cryptography communication system 10 Applications 20 Key management device 30 QKD equipment 40 nodes 51 CPU 52 ROM 53 RAM 54 Communication I / F 55 Auxiliary storage device 56 Bus 201 Registration Department 202 Route Information Storage Unit 203 Generation part 204 Key storage unit 205 Flow Information Storage Unit 206 Allocation Section 207 Packet Processing Unit 208 Link Information Storage Unit 209 Inter-node relay section 210 Node Internal Relay Section

Claims

1. A generation unit that generates a first global key based on a first random number, A packet processing unit that adds first route information indicating the relay route of the first packet to the first packet containing the first global key, An inter-node relay unit that encrypts the first packet using a local key shared with other nodes and transmits the encrypted first packet to the other nodes, A key management device equipped with the following features.

2. When the inter-node relay unit receives the encrypted second packet from the other node, which includes a second global key based on a second random number and second routing information indicating the relay path of the second packet, it decrypts the second packet using the local key. An in-node relay unit that identifies the forwarding destination of the second packet from the second routing information, The key management device according to claim 1, further comprising:

3. The generation unit stores the first global key in a storage device, When the relay unit within the node identifies the destination of the second packet as its own device based on the second routing information, it stores the second global key in the storage device. The key management device according to claim 2.

4. When the inter-node relay unit receives an encrypted second packet from the other node, which includes the second global key, a plurality of second routing information, and the priority of the plurality of second routing information, it decrypts the second packet using the local key. The relay unit within the node determines the forwarding destination of the second packet based on the priority and the state of the relay path of the second packet, using a plurality of second path information. The key management device according to claim 2, further comprising:

5. The aforementioned local key is shared with the other nodes via QKD (Quantum Key Distribution), The packet processing unit adds the first routing information using the sequence information of the QKD links used for QKD. A key management device according to any one of claims 1 to 4.

6. For each pair of applications that use the first global key to encrypt or decrypt data, an allocation unit assigns flow identification information that identifies the communication flow of the first packet to the first global key, The packet processing unit adds the first routing information associated with the flow identification information to the first packet. A key management device according to any one of claims 1 to 4.

7. The flow identification information is defined based on the application pair and the priority control information for the communication of the first packet. The allocation unit further assigns the flow identification information to the first global key based on the priority control information. The key management device according to claim 6.

8. The priority control information includes at least a bandwidth-prioritizing approach that emphasizes the size of the communication data volume of the first packet, and a latency-prioritizing approach that emphasizes the speed of the communication of the first packet. The key management device according to claim 7.

9. The generation unit divides the first global key into a plurality of blocks, The allocation unit allocates the flow identification information to each block. The key management device according to claim 6.

10. The allocation unit assigns the multiple flow identification pieces to the first global key along with their priority order. The packet processing unit adds a plurality of first route information associated with a plurality of flow identification information to the first packet. The key management device according to claim 6.

11. The system includes multiple nodes equipped with QKD devices and key management devices. The QKD device provides the key management device with local keys shared with other nodes by QKD (Quantum Key Distribution), The aforementioned key management device is, A generation unit that generates a first global key based on a first random number, A packet processing unit that adds first route information indicating the relay route of the first packet to the first packet containing the first global key, An inter-node relay unit that encrypts the first packet using the local key and transmits the encrypted first packet to the other node, A quantum cryptography communication system equipped with [the necessary components].

12. The key management device generates a first global key based on a first random number, The key management device adds first routing information indicating the relay route of the first packet to the first packet containing the first global key, The key management device encrypts the first packet with a local key shared with other nodes, and transmits the encrypted first packet to the other nodes. A key management method that includes this.

13. Computers, A generation unit that generates a first global key based on a first random number, A packet processing unit that adds first route information indicating the relay route of the first packet to the first packet containing the first global key, An inter-node relay unit that encrypts the first packet using a local key shared with other nodes and transmits the encrypted first packet to the other nodes. A program that makes it function as such.