Communication device, communication method, communication system, and program
By encrypting packet headers with shared encryption keys and determining relay routes based on key availability, the communication device ensures confidentiality by hiding communication partners from attackers and relay nodes.
Patent Information
- Application Number
- JP2024159800
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-17
- Publication Date
- 2024-12-17
- Estimated Expiration
- 2041-09-15
AI Technical Summary
Conventional communication technologies fail to adequately protect the header information of packets, leaving it vulnerable to attackers and relay nodes, which can reveal the communication partners.
A communication device that encrypts the header of packets using encryption keys shared with relay nodes, determining a relay route based on the remaining amount of encryption keys to ensure confidentiality.
The solution effectively conceals the communication partners by encrypting the packet headers, enhancing the confidentiality of information transmission.
Smart Images

Figure 2024175043000001_ABST
Abstract
Description
[Technical field]
[0001] FIELD OF THE DISCLOSURE The present invention relates to a communication device, a communication method and a communication system. [Background technology]
[0002] In communications using a public network such as the Internet, packets may be encrypted to keep them secret. For example, a transmitting node shares an encryption key with a receiving node in advance, and uses the encryption key to encrypt a transmission packet with a one-time encryption. The receiving node decrypts the received packet with the corresponding encryption key.
[0003] A packet may be forwarded via one or more relay nodes. For example, in a configuration in which there are multiple relay nodes between a sending node and a receiving node, multiple adjacent nodes on the relay path of the packet share an encryption key in advance. The sending node or the previous relay node encrypts the transmitted packet with a one-time encryption. The next relay node or the receiving node decrypts the received packet with the corresponding encryption. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] JP 2014-078875 A [Non-patent literature]
[0005] [Non-Patent Document 1] Michael G. Reed, Paul F. Syverson, and David M. Goldschlag, “Anonymous Connections and Onion Routing”, Proceedings. 1997 IEEE Symposium on Security and Privacy, 1997. Summary of the Invention [Problem to be solved by the invention]
[0006] However, in the conventional technology, there are cases where the confidentiality of information is insufficient. For example, in a configuration in which the payload of a packet is encrypted but the header of the packet is not encrypted, the information written in the header may not be sufficiently protected. [Means for solving the problem]
[0007] A communication device according to an embodiment includes a key sharing unit, a determination unit, an encryption unit, a packet generation unit, and a transmission unit. The key sharing unit shares an encryption key with a plurality of external communication devices. The determination unit determines a route for transmitting transmission data based on a remaining amount of the encryption key. The encryption unit encrypts, for each of one or more external communication devices included in the route, a header that sets the external communication device as a destination with an encryption key shared with the external communication device. The packet generation unit generates a packet including the transmission data and the one or more encrypted headers. The transmission unit transmits the generated packet along the route. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 is a block diagram of a communication system including a communication device according to an embodiment of the present invention. [Diagram 2] FIG. 2 is a functional block diagram of a transmitting node. [Diagram 3] FIG. 4 is a diagram showing an example of a method for managing encryption keys by a key management unit. [Figure 4] FIG. 4 is a diagram showing an example of a method for managing encryption keys by a key management unit. [Diagram 5] FIG. 13 is a diagram illustrating an example of a relay header. [Figure 6] FIG. 2 is a diagram showing an example of the relationship between an area to be encrypted in a packet and an encryption key. [Figure 7] FIG. 2 is a functional block diagram of a relay node. [Figure 8] FIG. 13 is a diagram showing an example of a result of updating a packet header. [Figure 9] FIG. 2 is a diagram showing an example of a packet transmitted from a relay node to a receiving node. [Figure 10] FIG. 2 is a functional block diagram of a receiving node. [Figure 11] 5 is a flowchart showing an example of a transmission process in the present embodiment. [Figure 12] 10 is a flowchart showing an example of a relay process in the present embodiment. [Figure 13] 5 is a flowchart showing an example of a receiving process in the embodiment. [Figure 14] FIG. 11 is a block diagram of a communication system according to a first modified example. [Figure 15] FIG. 2 is a hardware configuration diagram of a communication device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of a communication device according to the present invention will be described in detail below with reference to the accompanying drawings.
[0010] As described above, in the conventional technology, for example, the header of a packet describing information on the sender (sending node) and destination (receiving node) may not be encrypted. In such a case, an attacker and a relay node on the relay route can learn the information on the sender and destination by referring to the header. In other words, it may not be possible to conceal the identity of the communication partner with which the communication is being conducted.
[0011] The communication device according to the present embodiment generates (constructs) a packet whose header is encrypted so that the communication partner cannot be identified, and transmits the generated packet. This makes it possible to improve the confidentiality of information.
[0012] In the following, the communication devices that are the source and destination of a packet may be referred to as a transmitting node (an example of a transmitting device) and a receiving node (an example of a receiving device), respectively. Also, a communication device that relays a packet may be referred to as a relay node (an example of a relay device).
[0013] In this embodiment, the transmitting node shares an encryption key in advance with the receiving node and multiple relay nodes that can relay the packet. Then, when the transmitting node transmits a packet to the receiving node, it determines a relay route for the packet and sets relay route information indicating the determined relay route in the header of the packet. The relay route information is encrypted with an encryption key that the transmitting node shares with the relay node and the receiving node. The encrypted relay route information is set in the header so that only the relay node of the packet can know the relay route information (next relay node) of the next packet.
[0014] The transmitting node determines the relay route, for example, taking into consideration the remaining amount of the encryption key shared with each relay node, relay route information used in packets transmitted so far, etc. Also, the relay route may be determined so as to pass through a prescribed number of relay nodes or more, which indicates the minimum number of relay nodes that relay a packet.
[0015] 1 is a block diagram showing an example of the configuration of a communication system including a communication device according to the present embodiment. As shown in FIG 1, the communication system has a configuration in which a transmitting node 100a, a receiving node 100b, and multiple relay nodes 200a to 200d are connected via a network 400.
[0016] The network 400 may be a wired network, a wireless network, or a combination of a wired network and a wireless network. In the case of a wired network, Ethernet (registered trademark) cables and optical fibers are typically used as connection media for the network 400. In the case of a wireless network, a mobile phone network connection and a wireless LAN (local area network) are typically used.
[0017] The network 400 may be a wide area network such as the Internet, or may be a wide area closed network. Note that network devices such as a network switch and a router are not shown in FIG.
[0018] 1 shows one transmitting node 100a and one receiving node 100b, the communication system may include multiple transmitting nodes 100a and multiple receiving nodes 100b. Since the relay nodes 200a to 200d have the same configuration, they may be simply referred to as relay nodes 200 when there is no need to distinguish them. The number of relay nodes 200 is not limited to four.
[0019] A transmitting node 100a and a receiving node 100b perform packet communication. In this embodiment, an example will be described in which a packet is transmitted from the transmitting node 100a to the receiving node 100b. The transmitting node 100a shares an encryption key with the receiving node 100b, and also shares an encryption key with multiple relay nodes 200.
[0020] 2 is a block diagram showing an example of a functional configuration of the sending node 100a. As shown in FIG. 2, the sending node 100a includes a storage unit 121, a key sharing unit 101, a key management unit 102, an application 103a, a packet generating unit 104, a determining unit 105, an encryption unit 106, and a sending unit 107.
[0021] The storage unit 121 stores various information used within its own device (the sending node 100a). For example, the storage unit 121 stores an encryption key shared by the key sharing unit 101 and managed by the key management unit 102. The storage unit 121 can be configured with any commonly used storage medium such as a flash memory, a memory card, a RAM (Random Access Memory), a HDD (Hard Disk Drive), and an optical disk.
[0022] The key sharing unit 101 communicates with other nodes (examples of external communication devices: relay node 200, receiving node 100b) and shares an encryption key. For example, the key sharing unit 101 shares the encryption key using quantum key distribution such as BB84 and E91. The method of sharing the encryption key is not limited to quantum key distribution, and any means may be used as long as the transmitting node 100a can share a bit string individually with each of the other nodes. The key sharing unit 101 causes the key management unit 102 to store the shared encryption key in the memory unit 121.
[0023] The key management unit 102 manages the shared encryption key for each shared node (receiving node 100b, relay node 200). For example, the key management unit 102 manages the encryption key by storing the shared encryption key in the storage unit 121 in association with each other communication device (relay node 200, receiving node 100b) that is the other node of communication.
[0024] Figures 3 and 4 are diagrams showing examples of a method of managing encryption keys by the key management unit 102. The encryption keys may be managed as one bit string (key value) for each node as shown in Figure 3, or may be managed in a state in which a key identifier is assigned to each encryption key (key value) divided into a predetermined length as shown in Figure 4, or may be managed by other management methods. Note that although the counterpart node is represented by the node name in Figures 3 and 4, it may be represented in other formats (such as IP address) as long as the information can identify the counterpart node.
[0025] In the case of the management method in Fig. 3, when providing an encryption key of a length requested by the application 103a or the like, the key management unit 102 assigns an appropriate key identifier to the encryption key. The method of assigning the key identifier is shared with the receiving node 100b, and the receiving node 100b is capable of identifying the corresponding encryption key using the key identifier assigned by the transmitting node 100a. In addition to providing the encryption key, the key management unit 102 may output the length or number of encryption keys shared by the transmitting node 100a to the specified counterpart node.
[0026] In the case of the management method of FIG. 4, the key management unit 102 may manage all encryption keys with the same key length, or may manage encryption keys so that some or all of the keys have different key lengths. For example, the key management unit 102 may extract a key value with a predetermined length from a bit string shared with a counterpart node, and assign a key identifier to the key value. When the counterpart node is the relay node 200, the key management unit 102 may extract a key value with a relatively short length that is long enough to protect a header (relay header) referenced by the relay node 200. When the counterpart node is the receiving node 100b, the key management unit 102 may extract not only a relatively short key value with a length long enough to protect a relay header, but also a key value with a length necessary to protect a payload.
[0027] In this way, the key management unit 102 may manage the encryption key (first encryption key) for encrypting the header when the corresponding node is the receiving node 100b and the encryption key (second encryption key) for encrypting the header when the corresponding node is the relay node 200 so that they have different lengths.
[0028] The key sharing unit 101 and the key management unit 102 may be realized as devices separate from the transmitting node 100a. The key management unit 102 and the key sharing unit 101 may be realized as a single integrated device, or each may be realized as a separate device. When the key sharing unit 101 and the key management unit 102 are realized as devices separate from the transmitting node 100a, these devices cooperate with each other via an interface such as Ethernet (registered trademark) and a serial bus.
[0029] 2, the application 103a is an application including a function of transmitting and receiving data to and from the receiving node 100b, for example. For example, the application 103a generates transmission data (hereinafter, referred to as application data) to be transmitted to the receiving node 100b. The application 103a inputs the generated application data to the packet generating unit 104.
[0030] The packet generating unit 104 generates a packet to be transmitted. For example, the packet generating unit 104 sets application data input from the application 103a in the payload of the packet. The packet generating unit 104 also acquires a relay header for the application data from the determining unit 105 (details will be described later), and sets control information in the header for delivering the packet to the next relay node 200 via the network 400. The control information includes protocol headers of the link layer and the network layer, such as a MAC header and an IP header. The packet generating unit 104 may suspend the generation process of the packet until the relay header is acquired from the determining unit 105, or may cancel the generation process of the packet and discard the application data if the relay header is not acquired within a predetermined time.
[0031] The determining unit 105 determines a relay route for a packet from the transmitting node 100a to the receiving node 100b. The determining unit 105 also generates a relay header corresponding to the determined relay route. Fig. 5 is a diagram showing an example of a relay header. When the relay route is in the order of the transmitting node 100a, the relay node 200a, the relay node 200b, the relay node 200c, and the receiving node 100b, the determining unit 105 generates a relay header including four pieces of relay route information 501 to 504 as shown in Fig. 5.
[0032] Each piece of relay route information includes a source of a packet, a destination of the packet, and a key identifier of an encryption key used to encrypt information to which the relay route information is added. For example, relay route information 501 indicates that the source of a packet is the sending node 100a, the destination is the relay node 200a, and at least a part of the data following the relay route information 501 is encrypted by an encryption key with a key identifier of 100 among the encryption keys shared by both.
[0033] The determination unit 105 determines a relay route in consideration of the remaining amount of an encryption key (remaining key amount) shared between each relay node 200 and the sending node 100a. For example, the determination unit 105 first identifies (selects) candidates for the relay node 200 to be included in the relay route in consideration of the remaining key amount, and determines the relay node 200 to be included in the relay route from the identified candidates.
[0034] For example, the determination unit 105 identifies relay nodes 200 whose remaining key amount is greater than a threshold as candidates for the relay route, and does not identify relay nodes 200 whose remaining key amount is equal to or less than the threshold as candidates for the relay route. The determination unit 105 determines the relay route by determining the relay nodes 200 to be included in the relay route and the relay order from among the relay nodes 200 identified in consideration of the remaining key amount. The determination unit 105 may determine the relay route according to a predetermined pattern, or may determine the relay route randomly. For example, the determination unit 105 may determine the relay route by selecting a pattern from a plurality of predetermined patterns in order as follows: Pattern 1: relay node 200a → relay node 200b → relay node 200c → relay node 200d Pattern 2: relay node 200b → relay node 200c → relay node 200d → relay node 200a Pattern 3: relay node 200c → relay node 200d → relay node 200a → relay node 200b Pattern 4: relay node 200d → relay node 200a → relay node 200b → relay node 200c
[0035] The determination unit 105 may include a relay node 200 whose remaining key amount is greater than a threshold amount on a relay path of the same application data multiple times. For example, when the remaining amount of the encryption key shared between the relay node 200b and the transmitting node 100a is greater than a threshold amount, the determination unit 105 may determine a relay path of the transmitting node 100a, the relay node 200a, the relay node 200b, the relay node 200c, the relay node 200b, and the receiving node 100b.
[0036] As described above, the determination unit 105 may determine a relay route to pass through a prescribed number or more of relay nodes 200. For example, when the number of relay nodes that satisfy the key remaining amount condition or the like is less than the prescribed number, the transmission of the packet may be suspended or the packet may be discarded. For example, when the prescribed number is set to 3 but there are only two relay nodes that share a sufficient encryption key with the transmitting node, the transmission of the packet may be suspended or the packet may be discarded until the number of relay nodes that share a sufficient encryption key becomes 3 or more.
[0037] 5, the determination unit 105 generates a relay header corresponding to the determined relay route, and outputs the generated relay header to the packet generation unit 104. For example, when the determination unit 105 is requested by the packet generation unit 104 to determine a relay route, the determination unit 105 determines the relay route, generates a relay header, and outputs it to the packet generation unit 104.
[0038] The packet generator 104 generates a packet when it receives the relay header from the determining unit 105. The packet generated by the packet generator 104 is encrypted by the encryption unit .
[0039] The encryption unit 106 encrypts the packet. For example, the encryption unit 106 obtains an encryption key shared with each node included in the relay route via the key management unit 102, and encrypts the relay header and payload using the obtained encryption key.
[0040] Fig. 6 is a diagram showing an example of the relationship between the area to be encrypted among the areas included in the packet and the encryption key used for encryption. Fig. 6 shows an example of encryption of a packet using the relay header shown in Fig. 5.
[0041] For example, since payload (application data) 601 is data used by receiving node 100b, encryption unit 106 encrypts it with one of the encryption keys shared with receiving node 100b (encryption key with key identifier 100). The fact that the key identifier is 100 can be obtained from relay route information 504. Note that the entire payload does not need to be encrypted. In other words, only a part of the payload may be encrypted.
[0042] Since the relay route information 504 is data referenced by the relay node 200c, the encryption unit 106 encrypts the relay route information 504 with one of the encryption keys shared with the relay node 200c (an encryption key with a key identifier of 300). The fact that the key identifier is 300 can be obtained from the relay route information 503.
[0043] Since the relay route information 503 is data referenced by the relay node 200b, the encryption unit 106 encrypts the relay route information 503 with one of the encryption keys shared with the relay node 200b (an encryption key with a key identifier of 200). The fact that the key identifier is 200 can be obtained from the relay route information 502.
[0044] Since the relay route information 502 is data referenced by the relay node 200a, the encryption unit 106 encrypts the relay route information 502 with one of the encryption keys shared with the relay node 200a (an encryption key with a key identifier of 100). The fact that the key identifier is 100 can be obtained from the relay route information 501.
[0045] Since the relay route information 501 and the control information 602 do not need to be kept secret from the relay node 200a, which is the destination, they are transmitted as plain text without being encrypted by the encryption unit 106. As described above, the control information 602 includes protocol headers such as a MAC header and an IP header.
[0046] The encryption unit 106 performs encryption using an encryption method that changes the amount of encryption key (remaining key amount). One example of such an encryption method is one-time encryption (one-time pad). When one-time encryption is applied, the key management unit 102 deletes the encryption key used for encryption from the storage unit 121. This reduces the remaining key amount. Furthermore, the remaining key amount increases due to the encryption key sharing process. One-time encryption is an encryption method that limits the number of times an encryption key can be used once, but other encryption methods that limit the number of times an encryption key can be used may also be used.
[0047] The packet encrypted in this manner is passed to the transmitting unit 107. The transmitting unit 107 sends the packet to the network 400. For example, the transmitting unit 107 sends the packet that has been generated by the packet generating unit 104 and encrypted by the encryption unit 106 to the network 400. The packet is delivered to the first relay node 200a.
[0048] Fig. 7 is a block diagram showing an example of a functional configuration of the relay node 200. As shown in Fig. 7, the relay node 200 includes a storage unit 121, a key sharing unit 101, a key management unit 102, a transmission unit 107, a reception unit 201, a decryption unit 202, and a header processing unit 203.
[0049] The storage unit 121, the key sharing unit 101, the key management unit 102, and the transmission unit 107 are the same as those in the transmission node 100a, so they are denoted by the same reference numerals and their description is omitted. For example, the storage unit 121, the key sharing unit 101, and the key management unit 102 are used to share an encryption key, and the relay node 200 and the transmission node 100a have the same functions except that the other node with which the key is shared is different.
[0050] The receiver 201 receives an encrypted packet transmitted from another node (the transmitting node 100a or another relay node 200). The received packet is passed to the decryption unit 202.
[0051] The decryption unit 202 decrypts the received packet. For example, the decryption unit 202 acquires a key identifier from the leading plaintext portion of the relay header included in the packet. The decryption unit 202 acquires an encryption key corresponding to the acquired key identifier from the storage unit 121 via the key management unit 102. The decryption unit 202 decrypts the first encrypted area of the relay header with the acquired encryption key.
[0052] For example, when relay node 200a receives the packet shown in Fig. 6, decryption unit 202 obtains key identifier 100 from the first area (area corresponding to relay route information 501) which is plain text. Decryption unit 202 obtains an encryption key corresponding to key identifier 100. Decryption unit 202 uses the obtained encryption key to decrypt the second encrypted area (area corresponding to relay route information 502) of the packet. As a result, it is found that the received packet will next be relayed from relay node 200a to relay node 200b.
[0053] The area to be decrypted may be specified in the plaintext header, or may be inferred from the key length of the encryption key used for decryption. The decryption unit 202 may decrypt data of the same length as the encryption key corresponding to the key identifier 100 from the encrypted area of the received packet, and read the contents of the relay header (relay route information 502) from the decrypted data.
[0054] The decryption unit 202 passes the decrypted packet to the header processing unit 203. The header processing unit 203 deletes the plaintext header that is no longer necessary. The header processing unit 203 also updates the header at the beginning of the packet with control information for delivering the packet from the relay node 200a to the relay node 200b.
[0055] Fig. 8 is a diagram showing an example of the result of updating the header of the packet in Fig. 6 in this way. Compared with Fig. 6, the relay route information 501 corresponding to the unnecessary header has been deleted. Also, the relay route information 502 has been updated to relay route information 502-2 that has been decrypted into plain text. Furthermore, control information 602-2 has been updated as control information for delivering the packet from the relay node 200a to the relay node 200b.
[0056] Header processing unit 203 passes the processed packet to transmitting unit 107. Transmitting unit 107 sends the packet, whose header has been processed, to network 400. The packet is delivered to the next relay node 200b.
[0057] Note that the relay node 200a may receive a packet in the format shown in FIG. 6 from another relay node 200, and therefore cannot determine whether the transmitting node 100a is the generator (transmitter) of the packet during processing of the packet in FIG.
[0058] Each relay node 200 included in the relay route repeatedly executes such processing. As a result, the packet in Fig. 6 finally takes the form shown in Fig. 9 and is delivered from the relay node 200c to the receiving node 100b. Fig. 9 is a diagram showing an example of a packet transmitted from the relay node 200c to the receiving node 100b. Control information 602-3 has been updated as control information for delivering the packet from the relay node 200c to the receiving node 100b.
[0059] Since the area corresponding to the payload 601 is encrypted, the relay node 200c cannot determine whether or not this area contains a relay header. In other words, the relay node 200c cannot know that the receiving node 100b is the final destination of the packet.
[0060] Fig. 10 is a block diagram showing an example of a functional configuration of the receiving node 100b. As shown in Fig. 10, the receiving node 100b includes a storage unit 121, a key sharing unit 101, a key management unit 102, a receiving unit 201, a decryption unit 202, and an application 103b.
[0061] The storage unit 121, the key sharing unit 101, the key management unit 102, the receiving unit 201, and the decryption unit 202 are similar to those in the relay node 200, and therefore are given the same reference numerals and their description will be omitted.
[0062] The application 103b is an application that includes a function for transmitting and receiving data to and from the sending node 100a, for example. For example, the application 103b processes the application data in the payload decrypted by the decryption unit 202.
[0063] Each unit in each of the above nodes (transmitting node 100a, receiving node 100b, relay node 200) is realized, for example, by one or more processors. For example, each unit may be realized by having a processor such as a CPU (Central Processing Unit) execute a program, that is, by software. Each unit may be realized by a processor such as a dedicated IC (Integrated Circuit), that is, by hardware. Each unit may be realized by a combination of software and hardware. When multiple processors are used, each processor may realize one of the units, or two or more of the units.
[0064] Two or three of the transmitting node 100a, the receiving node 100b, and the relay node 200 may be realized as one node (communication device). In other words, one node may have the functions of two or three of the transmitting node 100a, the receiving node 100b, and the relay node 200.
[0065] Next, a transmission process by the transmitting node 100a according to the present embodiment will be described below with reference to a flowchart shown in FIG 11.
[0066] The key sharing unit 101 of the sending node 100a shares an encryption key with other nodes (the relay node 200 and the receiving node 100b) (step S101). This sharing process may be executed independently of the processes from step S102 onwards. This sharing process is also executed by each relay node 200 and the receiving node 100b.
[0067] For example, when it becomes necessary to transmit data to the receiving node 100b, the application 103a generates application data to be transmitted (step S102). The application data is passed to the packet generating unit 104. When generating a packet of the application data, the packet generating unit 104 requests the determining unit 105 to determine a relay route for the packet.
[0068] For example, when the determination unit 105 is requested to determine a relay route by the packet generation unit 104, the determination unit 105 determines a relay route for transmitting application data (step S103). The determination unit 105 generates a relay header corresponding to the determined relay route and passes it to the packet generation unit 104.
[0069] The packet generator 104 requests the encryption unit 106 to encrypt the packet according to the relay header. The encryption unit 106 encrypts the payload (application data) using an encryption key shared with the receiving node 100b (step S104). The encryption unit 106 also encrypts each corresponding piece of relay route information using an encryption key shared with each relay node 200 included in the relay route (step S105).
[0070] The packet generating unit 104 sets control information in the header of the packet (step S106). The transmitting unit 107 transmits the generated packet to the network 400 (step S107), and ends the transmission process.
[0071] Next, a description will be given of relay processing by the relay node 200 according to this embodiment. Fig. 12 is a flowchart showing an example of relay processing in this embodiment.
[0072] The receiver 201 of the relay node 200 receives a packet from another node (the sender node 100a, another relay node 200, etc.) (step S201). The decryptor 202 refers to the plaintext area of the received packet and acquires the key identifier of the encryption key used for decryption (step S202). The decryptor 202 decrypts the received packet using the encryption key identified by the key identifier (step S203).
[0073] The header processing unit 203 refers to the decoded information and identifies the node that is the destination of the packet (step S204). For example, in the example of Fig. 8, the header processing unit 203 of the relay node 200a refers to the decoded relay route information 502-2 and identifies that the destination of the packet is the relay node 200b.
[0074] The header processing unit 203 updates the header with control information for delivering the packet to the specified destination (step S205). The transmitting unit 107 transmits the generated packet to the network 400 (step S206), and the relay process ends.
[0075] Next, a receiving process by the receiving node 100b according to this embodiment will be described below with reference to a flowchart shown in FIG 13.
[0076] The receiving unit 201 of the receiving node 100b receives a packet from another node (such as the relay node 200) (step S301).
[0077] Steps S302 and S303 are similar to steps S202 and S203 in FIG.
[0078] The decryption unit 202 outputs the decrypted packet (application data) to the application 103b (step S304). After that, the application 103b executes a process using, for example, the output application data.
[0079] In this example, it is assumed that the receiving node 100b is the destination of the application data, and that the application 103b operates correctly using as application data the data output from the decryption unit 202. On the other hand, in a configuration in which the receiving node 100b also functions as the relay node 200, for example, the decrypted data may become data that is further relayed to another node (such as the relay node 200 or another receiving node 100b that is the final destination).
[0080] In such a case, for example, the header processing unit 203, which is one of the functions of the relay node 200, executes a process of identifying a node to which the packet is to be transmitted, similar to step S204 in Fig. 12. If the destination node cannot be identified by this process, the header processing unit 203 may determine that the decrypted data is application data, and pass the decrypted data to the application 103b.
[0081] As described above, in this embodiment, a packet is generated with an encrypted header so that the communication partner cannot be identified, and the generated packet is transmitted. This makes it possible to conceal information about the source and destination from attackers and relay nodes on the relay path.
[0082] For example, in the onion routing technology described in Non-Patent Document 1, encryption is performed using a public key and decryption is performed using a corresponding private key. On the other hand, in this embodiment, an encryption key with a variable key remaining amount is used, such as a one-time encryption. That is, an encryption method is used in which the remaining key amount increases by a sharing process with other nodes, and when the number of uses is reached, the encryption key is deleted, and the remaining key amount of the shared encryption key changes. In this embodiment, a relay route is determined according to the remaining key amount of such an encryption key. Therefore, it is possible to appropriately determine a relay route according to the sharing status of the encryption key, the remaining key amount of which may change, and to conceal information such as the source and destination.
[0083] (Variation 1) The network for transmitting and receiving packets and the network for sharing the encryption key may be different networks. Fig. 14 is a block diagram showing an example of the configuration of a communication system according to the first modification thus configured.
[0084] Network 400a is a network used for sharing an encryption key. Network 400b is a network used for transmitting and receiving packets. In this modification, key sharing unit 101 of each node is connected to network 400a. Also, transmitting unit 107 and receiving unit 201 of each node are connected to network 400b.
[0085] (Variation 2) The transmitting node 100a and the receiving node 100b may be in different locations on the network at the time when they share the encryption key and at the time when they transmit and receive the packet. For example, the transmitting node 100a, the receiving node 100b, or both the transmitting node 100a and the receiving node 100b may be mobile terminals using a mobile phone network or a satellite line. The relay node 200 may also be a mobile terminal. The transmitting unit 107 and the receiving unit 201 transmit and receive packets via a network 400 that can be connected to a mobile terminal.
[0086] (Variation 3) The determination unit 105 may determine a relay route such that the same route is not used within a predetermined period of time. For example, the determination unit 105 stores the determined relay route in the storage unit 121. Then, when determining a new relay route, the determination unit 105 refers to the relay route stored in the storage unit 121 and controls so that the same relay route is not used within a predetermined period of time. For example, the determination unit 105 controls so that the same relay route is not used consecutively. An upper limit may be set for the number of relay routes stored in the storage unit 121. For example, the determination unit 105 may be configured to delete older relay routes from the storage unit 121 when the upper limit is exceeded.
[0087] (Variation 4) The determination unit 105 may determine a relay route such that the time from when a packet is transmitted until the packet arrives at the receiving node 100b is within a specified time. For example, the transmitting node 100a stores in the storage unit 121 measurement information indicating the communication delay time between the transmitting node 100a itself (the transmitting node 100a) and other nodes, and between other nodes. The determination unit 105 refers to this measurement information and determines a relay route such that the time from when a packet transmitted from the transmitting node 100a is received by the receiving node 100b is within a specified time. In the case where a plurality of packets are repeatedly transmitted, the determination unit 105 may determine a relay route such that the packet arrival interval at the receiving node 100b is within a predetermined range. In this case, the determination unit 105 may determine a relay route such that the time from when a packet is received is within a specified time and the packet arrival interval is within a predetermined range.
[0088] (Variation 5) The packet generator 104 may add dummy data to the application data set in the payload. The length of the added dummy data may be determined depending on the length of the application data. For example, if the application data is sufficiently long, the length of the dummy data is set to zero, and the packet generator 104 does not add dummy data. On the other hand, if the application data is short, the packet generator 104 adds long dummy data to the application data. By adding the dummy data, it becomes possible to conceal from the last relay node 200 on the relay path that the final destination is the receiving node 100b.
[0089] 15 is a diagram showing an example of a hardware configuration of each node (transmitting node, receiving node, relay node) in the above embodiment and each modification. The node includes a control device 301, a main memory device 302, an auxiliary memory device 303, a display device 304, an input device 305, and a communication IF (Interface) 306.
[0090] The control device 301 , the main memory device 302 , the auxiliary memory device 303 , the display device 304 , the input device 305 and the communication IF 306 are connected via a bus 310 .
[0091] The control device 301 executes a program read from the auxiliary storage device 303 to the main storage device 302. The main storage device 302 is a memory such as a ROM (Read Only Memory) and a RAM. The auxiliary storage device 303 is a HDD, a memory card, or the like.
[0092] The display device 304 displays the state of the node, etc. The input device 305 accepts input from a user. The communication IF 306 is an interface for connecting to the network 400. Note that the node does not necessarily have to include the display device 304 and the input device 305. When the node does not have the display device 304 and the input device 305, for example, the display function and the input function of an external terminal connected via the communication IF 306 may be used.
[0093] The programs executed by the communication device (node) according to this embodiment are provided in a state that they are pre-installed in a ROM or the like.
[0094] The program executed by the communication device according to this embodiment may be configured to be provided as a computer program product by being recorded on a computer-readable recording medium such as a CD-ROM (Compact Disk Read Only Memory), a flexible disk (FD), a CD-R (Compact Disk Recordable), or a DVD (Digital Versatile Disk) in the form of an installable or executable file.
[0095] Furthermore, the program executed by the communication device according to the present embodiment may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. Also, the program executed by the communication device according to the present embodiment may be provided or distributed via a network such as the Internet.
[0096] The program executed by the communication device according to the present embodiment can cause a computer to function as each unit of the communication device described above. In this computer, the control device 301 can read the program from a computer-readable storage medium onto the main memory device 302 and execute the program.
[0097] Although some embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included in the scope and spirit of the invention, and are included in the scope of the invention and its equivalents described in the claims. [Explanation of symbols]
[0098] 100a Sending node 100b Receiving node 101 Key sharing part 102 Key Management Department 103a, 103b Applications 104 Packet Generation Unit 105 Decision Section 106 Encryption section 107 Transmitter 121 Storage section 200a~200d Relay nodes 201 Receiving unit 202 Decoding section 203 Header processing section 400 Network
Claims
1. a key sharing unit that shares an encryption key with a plurality of external communication devices; a determination unit that determines a route for transmitting the transmission data based on the remaining amount of the encryption key; an encryption unit that encrypts, for each of the one or more external communication devices included in the route, a header that sets the external communication device as a destination, using the encryption key shared between the external communication device and the external communication device; a packet generator that generates a packet including the transmission data and one or more of the encrypted headers; a transmitting unit that transmits the generated packet along the route; Equipped with the determination unit determines the route that passes through a specified number or more of the external communication devices among the plurality of external communication devices, and when the route that passes through the specified number or more of the external communication devices cannot be determined, suspends transmission of the transmission data or discards the transmission data. Communications equipment.
2. when the number of the external communication devices satisfying a predetermined condition is less than the specified number and therefore the determination unit cannot determine the route passing through the specified number or more of the external communication devices, the determination unit suspends transmission of the transmission data until the number of the external communication devices satisfying the condition becomes equal to or greater than the specified number. The communication device according to claim 1 .
3. the condition is a condition regarding a remaining amount of the encryption key. The communication device according to claim 2 .
4. The determination unit determines the route such that the same route is not used within a predetermined period of time. The communication device according to claim 1 .
5. the determination unit determines the route such that a time from when the packet is transmitted until when the packet arrives at the external communication device, which is a receiving device that receives the transmission data, is within a specified time. The communication device according to claim 1 .
6. the determination unit identifies one or more of the external communication devices to which the transmission data can be transmitted based on a remaining amount of the encryption key, and determines the route that passes through one or more of the identified external communication devices. The communication device according to claim 1 .
7. the key sharing unit shares the encryption key with a plurality of external communication devices by using quantum key distribution; The communication device according to claim 1 .
8. the encryption unit encrypts the header using the encryption key by one-time encryption; The communication device according to claim 1 .
9. At least a part of the external communication device is a mobile terminal that is used while moving, The transmission unit transmits the packet via a network connectable to the mobile terminal. The communication device according to claim 1 .
10. 1. A communication method performed in a communication device, comprising: a key sharing step of sharing an encryption key with a plurality of external communication devices; a determining step of determining a route for transmitting the transmission data based on the remaining amount of the encryption key; an encryption step of encrypting, for each of the one or more external communication devices included in the route, a header that sets the external communication device as a destination, using the encryption key shared between the external communication device and the external communication device; a packet generating step of generating a packet including the transmission data and one or more of the encrypted headers; a transmitting step of transmitting the generated packet along the route; Including, the determining step determines the route that passes through a specified number or more of the external communication devices among the plurality of the external communication devices, and when the route that passes through the specified number or more of the external communication devices cannot be determined, suspends transmission of the transmission data or discards the transmission data. Communication methods.
11. A communication system including one or more transmitting devices, one or more relay devices, and one or more receiving devices, The transmitting device a key sharing unit for sharing an encryption key between the relay device and an external communication device including the receiving device; a determination unit that determines a route for transmitting the transmission data to the receiving device based on a remaining amount of the encryption key; an encryption unit that encrypts, for each of the one or more external communication devices included in the route, a header that sets the external communication device as a destination, using the encryption key shared between the external communication device and the external communication device; a packet generator that generates a packet including the transmission data and one or more of the encrypted headers; a transmitting unit that transmits the generated packet along the route, the determination unit determines the route that passes through a specified number or more of the external communication devices among the plurality of external communication devices, and when the route that passes through the specified number or more of the external communication devices cannot be determined, suspends transmission of the transmission data or discards the transmission data. Communication systems.
12. To your computer a key sharing step of sharing an encryption key with a plurality of external communication devices; a determining step of determining a route for transmitting the transmission data based on the remaining amount of the encryption key; an encryption step of encrypting, for each of the one or more external communication devices included in the route, a header that sets the external communication device as a destination, using the encryption key shared between the external communication device and the external communication device; a packet generating step of generating a packet including the transmission data and one or more of the encrypted headers; a transmitting step of transmitting the generated packet along the route; Run the command, the determining step determines the route that passes through a specified number or more of the external communication devices among the plurality of the external communication devices, and when the route that passes through the specified number or more of the external communication devices cannot be determined, suspends transmission of the transmission data or discards the transmission data. program.
Citation Information
Patent Citations
Packet communication system
JP2000261486A
Control apparatus, communication path control method, communication path control system, and program
JP2009225336A
Communication device, communication system and program
JP2014103514A
Quantum key relay method and apparatus based on centralized control network
JP2020501413A
Onion routing network for securely moving data through communication networks
US6266704B1
