COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM
Patent Information
- Application Number
- JP2024205916
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-11-27
- Publication Date
- 2025-03-26
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
【0018】 本開示によれば、多数のデバイスが存在するネットワークにおいて、各デバイスが自立してデータ通信を実現できる解決策を提供できる。
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to techniques for data communication between devices having authenticated IP addresses. [Background technology]
[0002] Recent Information and Communication Technology Advances in ICT (Information and Communication Technology) have been remarkable, and devices connected to networks such as the Internet are no longer limited to traditional information processing devices such as personal computers and smartphones, but are now expanding to include a wide variety of things. This technological trend is known as the Internet of Things (IoT), and a variety of technologies and services are being proposed and put into practical use. In the future, it is expected that billions of people and tens of billions or even trillions of devices on Earth will be connected simultaneously. To realize such a networked world, it is necessary to provide solutions that allow for simpler, safer, and more free connections.
[0003] Typically, on a network, data communication between devices is achieved using an Internet Protocol (IP) address that is statically or dynamically assigned to each device.
[0004] In order to realize data communication between devices, data sent from the source device must be transferred to the destination device. This data transfer process is called "routing." To realize this routing, many routers are placed on the network.
[0005] As disclosed in Japanese Patent Laid-Open No. 05-022293 (Patent Document 1), a router has a route information table that stores route information, and determines a route and relays a received frame according to the internetworking address in the received frame and the contents of the route information table (paragraphs
[0005] and
[10] of Japanese Patent Laid-Open No. 05-022293).
[0006] etc.). [Prior art documents] [Patent documents]
[0006] [Patent Document 1] Japanese Patent Application Publication No. 05-022293 Summary of the Invention [Problem to be solved by the invention]
[0007] According to the above-mentioned Patent Document 1, assuming a network in which many devices exist, many routers are required, and the problem arises that the responsibility of each router becomes large. Therefore, in a network in which many devices exist, it is preferable that each device is configured to realize data communication independently. The present disclosure provides a solution such as a data transmission method in which each device independently realizes data communication in a network in which many devices exist. [Means for solving the problem]
[0008] According to an embodiment of the present disclosure, there is provided a data communication method in a network to which a plurality of devices are connected. The data communication method includes a step of encrypting a packet addressed to a second device with a first encryption key associated with the second device to generate a first encrypted packet in a first device, and a step of encrypting a packet addressed to a second device with a first encryption key associated with the second device to generate a first encrypted packet in a first device to which the first encrypted packet is to be sent. the step of determining a device to which the first encrypted packet is to be sent, encrypting the first encrypted packet with a second encryption key associated with the determined device to generate a second encrypted packet, and transmitting the second encrypted packet to the determined device; the step of decrypting the second encrypted packet into a first encrypted packet in the device receiving the second encrypted packet, and determining whether or not the decrypted first encrypted packet is addressed to the device itself; and if the decrypted first encrypted packet is not addressed to the device itself based on the determination whether or not the packet is addressed to the device itself, executing a step of determining another device and transmitting the packet, and if the decrypted first encrypted packet is addressed to the device itself, further decrypting the first encrypted packet.
[0009] The above data communication method may further include a step in which, in each of the multiple devices, each device transmits a public key and an electronic certificate associated with the public key to another device, and, in the device receiving the public key and electronic certificate, determines an IP address of the device that transmitted the public key and electronic certificate based on a hash value calculated from the public key according to a hash function.
[0010] According to another aspect of the present disclosure, there is provided a communication processing method in a device connected to a network, the communication processing method including the steps of: encrypting a packet destined for another device with a first encryption key associated with the other device to generate a first encrypted packet, determining a device to which the first encrypted packet is to be sent, encrypting the first encrypted packet with a second encryption key associated with the determined device to generate a second encrypted packet, and transmitting the second encrypted packet to the determined device, which is executed when the packet is received. The communication processing method further includes a step of decrypting the second encrypted packet into a first encrypted packet, which is executed upon receiving a second encrypted packet from another device; a step of determining whether the decrypted first encrypted packet is addressed to the own device by determining whether it is addressed to the own device; if the decrypted first encrypted packet is not addressed to the own device, a step of determining another device to which the first encrypted packet is to be sent and generating and transmitting a second encrypted packet using a second encryption key associated with the determined device; and a step of further decrypting the first encrypted packet if the decrypted first encrypted packet is addressed to the own device.
[0011] In the above embodiment, the destination device may be determined based on the IP address of each device.
[0012] The above-mentioned communication processing method may further include the steps of obtaining a private key and a public key, determining an IP address of the device based on a hash value calculated from the public key according to a hash function, obtaining an electronic certificate associated with the public key from a certification authority, and transmitting the public key and the electronic certificate to another device.
[0013] The above-mentioned communication processing method may further include a step of determining the validity of the electronic certificate when a public key and an electronic certificate associated with the public key are received from another device, and a step of determining an IP address of the other device based on a hash value calculated from the public key according to a hash function if it is determined that the electronic certificate is valid.
[0014] The above-mentioned communication processing method may further comprise a step, executed upon receiving a packet addressed to another device, of searching for an IP address of said destination device.
[0015] The above-mentioned communication processing method may further include a step of establishing a session with the other device and determining a first encryption key, which is executed when a packet addressed to the other device is received. Also, the above-mentioned communication processing method may further include a step of receiving a second encryption key from the other device. The method may further include a step, performed upon receiving the first encrypted packet, of establishing a session with a further device to which the first encrypted packet is to be sent and determining a second encryption key.
[0016] According to yet another embodiment of the present disclosure, there is provided an apparatus including a network interface for connecting to a network and a control unit connected to the network interface. The control unit includes a first encryption / decryption unit capable of encrypting a packet into a first encrypted packet using a first encryption key associated with another device and decrypting the first encrypted packet, a second encryption / decryption unit capable of encrypting the first encrypted packet into a second encrypted packet using a second encryption key associated with a device that is a destination of the first encrypted packet and decrypting the second encrypted packet, and a transmission management unit that transmits the second encrypted packet, which is generated by encrypting a packet destined for the other device in the first encryption / decryption unit and the second encryption / decryption unit, to the destination device. The transmission management unit determines whether a first encrypted packet generated by decrypting a second encrypted packet received from another device in the second encryption / decryption unit is addressed to the own device, and if the generated first encrypted packet is not addressed to the own device, transmits a second encrypted packet generated by encrypting the first encrypted packet in the second encryption / decryption unit to yet another device, and if the generated first encrypted packet is addressed to the own device, further decrypts the first encrypted packet in the first encryption / decryption unit and outputs it.
[0017] According to yet another aspect of the present disclosure, there is provided a communication processing program for a computer having a network interface for connecting to a network, the communication processing program causing the computer to execute any one of the communication processing methods described above when executed by the computer. Effect of the Invention
[0018] According to the present disclosure, it is possible to provide a solution in which each device in a network including a large number of devices can independently perform data communication. [Brief description of the drawings]
[0019] [Figure 1] 1 is a schematic diagram showing an example of an overall configuration of a network system according to the present embodiment; [Diagram 2] FIG. 2 is a schematic diagram showing an example of a hardware configuration of a device according to the present embodiment. [Diagram 3] FIG. 2 is a schematic diagram showing an example of a configuration of programs and data of a device according to the present embodiment. [Figure 4] 10 is a diagram illustrating an IP address authentication procedure in the network system according to the present embodiment. FIG. [Diagram 5] 11 shows an example of type specifying information embedded in an IP address used in the network system according to the present embodiment. FIG. [Figure 6] 13 is a flowchart showing a processing procedure in which a device provides an authenticated IP address in the network system according to the present embodiment. [Figure 7] 1 is a diagram for illustrating a process relating to notification of an IP address in a network system according to an embodiment of the present invention. FIG. [Figure 8] 1 is a diagram for illustrating a process relating to notification of an IP address in a network system according to an embodiment of the present invention. FIG. [Figure 9] 10 is a sequence chart showing a process procedure relating to notification of an IP address in the network system according to the present embodiment. [Figure 10] 1 is a diagram for illustrating an overview of data communication in a network system according to an embodiment of the present invention. [Figure 11] FIG. 2 is a schematic diagram showing a functional configuration related to data transmission in a device according to the present embodiment. [Figure 12] FIG. 11 is a schematic diagram showing an example of an operation at the time of transmitting data in the device according to the present embodiment. [Figure 13] 10 is a flowchart showing a processing procedure when a transmission packet occurs in the device according to the present embodiment. [Figure 14] 13 is a flowchart showing a processing procedure when a packet is received from another device in the device according to the present embodiment.
Embodiments for Carrying Out the Invention
[0020] Embodiments according to the present disclosure will be described in detail with reference to the drawings. For the same or corresponding parts in the drawings, the same reference numerals are given and their descriptions will not be repeated.
[0021] <A. Overall Configuration of Network System 1> First, the overall configuration of the network system 1 according to the present embodiment will be described.
[0022] FIG. 1 is a schematic diagram showing an example of the overall configuration of the network system 1 according to the present embodiment. Referring to FIG. 1, it is assumed that a plurality of devices 100-1, 100-2, 100-3, 100-4, 100-5, ··· (hereinafter sometimes collectively referred to as "device 100") are connected to an arbitrary network 2 such as the Internet or an intranet. Some of the devices 100 may be connected to the network 2 via wireless communication established with the access point 4. Alternatively, some other devices 100 may be connected to the network 2 via wireless communication established with the mobile base station 6.
[0023] In this way, the network 2 may include any one of a local area network (LAN), a wide area network (WAN), a radio access network (RAN), and the Internet.
[0024] Each of the devices 100 connected to the network can be regarded as a "node" of the network, and in the following description, the device 100 may also be referred to as a "node".
[0025] In the network system 1 according to the present embodiment, data communication is realized among the devices 100 according to procedures as described later. Note that the physical connection method between the devices 100 may be any kind.
[0026] The device 100 includes any device that has a function of performing data communication with other devices using the IP address that each device has. The device 100 may be configured as a communication device alone, or may be configured as a part of some object, or may be configured by being incorporated into some object.
[0027] More specifically, the device 100 may be, for example, a personal computer, a smartphone, a tablet, or a wearable device (for example, a smart watch or AR glasses) that is attached to the user's body (for example, an arm or a head). The device 100 may also be a control device or a part thereof installed in a smart home appliance, a connected automobile, a factory, or the like.
[0028] The network system 1 according to the present embodiment further includes one or more certificate authorities 200. Each of the certificate authorities 200 is a computer configured with one or more servers. Using the one or more certificate authorities 200, each device 100 is authenticated by a procedure to be described later. The IP address held by each device 100 is authenticated, so that each device 100 has an authenticated IP address.
[0029] In this specification, an "authenticated IP address" refers to a state in which the validity of the IP address held by each device 100 is guaranteed to the communication destination or a third party. More specifically, an "authenticated IP address" refers to an IP address that is generated by an irreversible cryptographic hash function and is authenticated directly or indirectly by a certification authority (details will be described later). By using such an "authenticated IP address," it is possible to guarantee that the IP address used by each device 100 for data communication is not forged.
[0030] As a result, any device 100 included in the network system 1 will be uniquely identified based on the IP address that each device 100 has. That is, each device can determine the destination of data transmission and the device that will be the sender based on the IP address that each device has.
[0031] The IP address is assumed to be a global IP address that can also be used for data communication between devices 100 connected to the Internet, but it may also be a private IP address that is used only within a specific network.
[0032] The number of bits that make up the IP address differs depending on the version. In the currently established IPv4 (Internet Protocol Version 4), a 32-bit address range is defined, and in the currently established IPv6 (Internet Protocol Version 6), a 128-bit address range is defined. In this embodiment, the IP address conforming to IPv6 will be mainly described. However, the present disclosure is also applicable to network addresses defined with a larger number of bits or network addresses defined with a smaller number of bits.
[0033] <B. Configuration Example of Device 100> Next, a configuration example of the hardware and software of the device 100 used in the network system 1 according to this embodiment will be described.
[0034] FIG. 2 is a schematic diagram showing a hardware configuration example of the device 100 according to this embodiment. Referring to FIG. 2, the device 100 includes, as main components, a control unit 110 which is a processing circuitry.
[0035] The control unit 110 is a computing entity for providing functions and executing processes according to this embodiment. The control unit 110 may be configured to use a processor and memory as shown in FIG. 2, in which the processor executes computer readable instructions (an OS (Operating System) and a communication processing program as shown in FIG. 3) stored in the memory. Alternatively, the control unit 110 may be configured to use an ASIC (Application Specific Integrated Circuit) in which circuits corresponding to computer readable instructions are incorporated. The control unit 110 may be realized by using a hardwired circuit such as a field specific integrated circuit (FPGA). Alternatively, the control unit 110 may be realized by implementing a circuit corresponding to computer readable instructions on an FPGA (field-programmable gate array). The control unit 110 may also be realized by appropriately combining a processor, a memory, an ASIC, an FPGA, and the like.
[0036] In the configuration using the processor and memory as shown in FIG. The computer includes a processor 102, a main memory 104, a storage 106, and a ROM (Read Only Memory) 108.
[0037] The processor 102 is an arithmetic circuit that sequentially reads and executes computer-readable instructions. The processor 102 is composed of, for example, a central processing unit (CPU), a micro processing unit (MPU), a graphics processing unit (GPU), etc. The control unit 110 may be realized using a plurality of processors 102 (multiprocessor configuration), or may be realized using a processor having a plurality of cores (multicore configuration).
[0038] The main memory 104 is a volatile storage device such as a dynamic random access memory (DRAM) or a static random access memory (SRAM). The processor 102 loads a specified program from among various programs stored in the storage 106 or the ROM 108 onto the main memory 104, and cooperates with the main memory 104 to realize various processes according to the present embodiment.
[0039] The storage 106 is, for example, a non-volatile storage device such as a hard disk drive (HDD), a solid state drive (SSD), a flash memory, etc. The storage 106 stores various programs executed by the processor 102 and various data to be described later.
[0040] The ROM 108 permanently stores various programs executed by the processor 102 and various data to be described later.
[0041] In a configuration in which the processor 102 executes computer-readable instructions stored in a memory as shown in FIG. 2, the memory corresponds to the storage 106 and the ROM 108 .
[0042] Here, an example of the programs and data stored in the memory of the device 100 will be described.
[0043] Fig. 3 is a schematic diagram showing an example of the configuration of programs and data of device 100 according to the present embodiment. With reference to Fig. 3, in the memory (storage 106 and / or ROM 108) of device 100, for example, an OS 160, a communication processing program 170, and various applications 300 are stored as programs including computer-readable instructions.
[0044] The OS 160 is a program that provides basic functions for implementing processes executed by the device 100. The communication processing program 170 is a program that mainly provides functions and executes processes according to the present embodiment. Note that the communication processing program 170 may provide functions and execute processes according to the present embodiment by using libraries provided by the OS 160, etc.
[0045] The various applications 300 are programs for implementing various functions provided by the device 100, and can be installed at the user's discretion. Typically, the various applications 300 provide various processes that utilize the data communication function provided by the communication processing program 170.
[0046] In addition, the memory (storage 106 and / or ROM 108) of the device 100 stores, for example, a private key 172, a public key 174, and a digital certificate 176 as data required to provide the functions and execute the processes according to the present embodiment. The private key 172 and the public key 174 are so-called keys that are generated according to an arbitrary encryption / decryption algorithm. The public key 174 is a pair. The private key 172 is used for encrypted communication with other devices. The public key 174 is used to determine the IP address of each device 100 according to a procedure to be described later. The digital certificate 176 is issued by the certificate authority 200 for the public key 174, and is intended to guarantee the validity of the IP address of the device 100. Typically, the digital certificate 176 includes a hash value (digital signature) calculated from the public key 174 of each device 100 using the private key of the certificate authority 200. The device 100 that receives the digital certificate 176 uses the public key of the certificate authority 200 to verify the validity of the digital certificate 176 and the public key 174 associated with the digital certificate 176.
[0047] The generation of a key pair (private key 172 and public key 174), the acquisition of a digital certificate 176, and the procedures for using this data will be described later.
[0048] It is not necessary to provide both the storage 106 and the ROM 108, and only one of them may be provided depending on the implementation form. In addition, when both the storage 106 and the ROM 108 are provided, for example, the key pair (private key 172 and public key 174) may be stored in the ROM 108 to enhance confidentiality.
[0049] 2, the device 100 further includes a network interface 120 for connecting the device 100 to a network. The network interface 120 performs data communication with other devices over the network.
[0050] The network interface 120 includes a wired connection terminal such as an Ethernet port, a Universal Serial Bus (USB) port, a serial port such as IEEE1394, or a legacy parallel port. Alternatively, the network interface 120 may include a processing circuit and an antenna for wireless communication with a device, a router, a mobile base station, or the like. The wireless communication supported by the network interface 120 may be, for example, any of Wi-Fi (registered trademark), Bluetooth (registered trademark), ZigBee (registered trademark), Low Power Wide Area (LPWA), GSM (registered trademark), W-CDMA, CDMA200, Long Term Evolution (LTE), and a fifth generation mobile communication system (5G).
[0051] Device 100 may also include, as optional components, a display 130, an input 140, and a media interface 150.
[0052] The display unit 130 is a component for externally presenting the processing results of the processor 102, etc. The display unit 130 may be, for example, an LCD (Liquid Crystal Display) or an organic EL (Electro-Luminescence) display. The display unit 130 may also be a head-mounted display that is worn on the user's head, or a projector that projects an image onto a screen.
[0053] The input unit 140 is a component for receiving an input operation of a user who operates the device 100. The input unit 140 may be, for example, a keyboard, a mouse, a touch panel arranged on the display unit 130, an operation button arranged on the housing of the device 100, or the like.
[0054] The media interface 150 reads various programs (computer-readable instructions) and / or various data from a non-transitory medium 152 in which the various programs and / or data are stored.
[0055] The medium 152 may be, for example, an optical medium such as a DVD (Digital Versatile Disc), a semiconductor medium such as a USB memory, etc. The media interface 150 adopts a configuration according to the type of the medium 152. Various programs and / or various data read by the media interface 150 may be stored in the storage 106, etc.
[0056] Instead of installing various programs and / or various data in device 100 via medium 152, necessary programs and data may be installed in device 100 from a distribution server on a network. In this case, necessary programs and data are acquired via network interface 120.
[0057] As described above, since the display unit 130, the input unit 140, and the media interface 150 are optional components, for example, they may be connected from the outside of the device 100 via an arbitrary interface such as USB.
[0058] It is the control unit 110 that realizes the provision of functions and the execution of processing according to the present embodiment, and the technical scope of the present application includes at least the hardware and / or software for realizing the control unit 110. As described above, the hardware may include not only a configuration including a processor and a memory, but also a hard-wired circuit using an ASIC or the like and a configuration using an FPGA. That is, the control unit 110 can be realized by installing a program in a general-purpose computer, or can also be realized as a dedicated chip.
[0059] In addition, the software executed by the processor may include not only that distributed via the medium 152, but also that appropriately downloaded via a distribution server.
[0060] Note that the configuration for realizing the provision of functions and the execution of processing according to the present embodiment is not limited to the control unit 110 shown in FIG. 2, and can be implemented using any technology according to the era in which it is realized.
[0061] <C. Authenticated IP Address> Next, processing for providing an authenticated IP address to each device 100 and the like will be described.
[0062] (c1: IP Address Determination Process) In the network system 1 according to the present embodiment, typically, the IP address of each device 100 is authenticated using an authenticated IP address. As an example, the IP address of each device 100 may be authenticated using a public key infrastructure (PKI).
[0063] 4 is a diagram illustrating an IP address authentication procedure in network system 1 according to the present embodiment. Note that reference characters such as "S1" to "S4" in FIG. 4 correspond to the step numbers shown in FIG.
[0064] 4, device 100 has a key pair consisting of private key 172 and public key 174. A hash value 178 is calculated by inputting public key 174 to a predetermined hash function 180, and all or a part of the calculated hash value 178 is used as an IP address 190 of device 100.
[0065] In accordance with this process of determining the IP address 190, the device 100 transmits the public key 174 to the certificate authority 200, and links the public key 174 to the digital certificate 176 issued by the certificate authority 200. The device 100 transmits its own public key 174 and digital certificate 176 to the other device. The other device confirms the validity of the IP address 190 of the device 100 based on the public key 174 and digital certificate 176 published by the device 100. When the validity of the IP address 190 is confirmed, data communication is started using the IP address 190 whose validity has been confirmed. The device and the other device can directly communicate with each other, but in addition to the direct communication process, an inquiry process at the certificate authority 200 may also be included.
[0066] In this manner, in the network system 1 according to the present embodiment, the IP address 190 itself can be authenticated, and since the device itself holds such an authenticated IP address 190, an autonomous network can be constructed without using IP addresses statically or dynamically assigned to each device.
[0067] The process for providing an authenticated IP address in network system 1 according to the present embodiment will now be described in detail.
[0068] The key pair, private key 172 and public key 174, may be generated by device 100 itself, or may be provided from an external source and stored in advance in device 100. If provided from an external source, device 100 may obtain only private key 172 and generate public key 174 by itself.
[0069] As an example of a method for generating the public key 174 of the key pair, a bit string of a predetermined length (e.g., 512 bits) generated by a random number generator may be used as the private key 172, and the public key 174 consisting of a bit string of a predetermined length (e.g., 256 bits) may be generated from the private key 172 in accordance with a known encryption algorithm (e.g., elliptic curve encryption algorithm). Note that when the device 100 itself generates the key pair, the random number generator may be realized by utilizing a function provided by the OS 160, or may be realized by using a hardwired circuit such as an ASIC.
[0070] A known irreversible cryptographic hash function (for example, BLAKE) can be used as the hash function 180. The hash function 180 calculates a hash value 178 consisting of a bit string of a predetermined length (for example, 256 bits).
[0071] In addition to public key 174, an arbitrary keyword may be input to hash function 180. A message associated with a specific organization may be used as the arbitrary keyword. A message including the name of a trademark owned by the specific organization may be used as the message associated with the specific organization. For example, the name of a registered trademark owned by the specific organization (e.g., "connectFree") may be used as the keyword to be input to hash function 180. By adopting such an implementation method, it is possible to prevent a third party other than the specific organization from implementing network system 1 according to this embodiment and related methods and programs without the permission of the specific organization.
[0072] All or a part of hash value 178 calculated by hash function 180 is used as IP address 190. For example, when a 256-bit (64 hexadecimal digits) hash value 178 is calculated, any 32 digits (e.g., the first 32 digits) of the 64-digit hash value 178 may be determined as IP address 190 (128 bits) corresponding to IPv6. Alternatively, the first 8 digits of the 64-digit hash value 178 may be determined as IP address 190 (32 bits) corresponding to IPv4.
[0073] Alternatively, the 128-bit hash value 178 may be calculated from the hash function 180, taking into consideration the IP address 190 (128 bits) corresponding to IPv6. In this case, the entire calculated hash value 178 can be determined as the IP address 190 (128 bits) corresponding to IPv6.
[0074] According to this embodiment, the IP address 190 unique to the device 100 can be determined based on the public key 174 of the device 100. In this manner, the device 100 can be connected to a network such as the Internet using the IP address 190 determined by the device 100. Furthermore, the device 100 can perform data communication using the IP address 190 determined by itself, even if there is no service provider (server) that manages global IP addresses such as an Internet service provider (ISP). Furthermore, the device 100 can connect to a global network such as the Internet and perform data communication using the IP address 190 determined by itself, even if there is no server that manages private IP addresses such as a DHCP (Dynamic Host Configuration Protocol) server implemented in an access point or the like. Therefore, the user experience and user convenience regarding connection to a network such as the Internet can be improved.
[0075] (c2: Unique string) The IP address 190 determined by the device 100 may be specified as having been determined in accordance with the processing procedure according to the present embodiment. In order to perform such specification, for example, a predetermined unique value (unique character string) for specification may be included in the IP address 190. In other words, the determined IP address may include a predetermined unique value (unique character string) for specification.
[0076] As an example, the first two digits (the first and second digits from the top) of the IP address 190 expressed in hexadecimal numbers may be fixed to a predetermined unique character string (e.g., "FC"). Since the hash function 180 is usually a one-way function, it is not possible to reversely calculate the public key 174 from the IP address 190. Therefore, the private key 172 and the public key 174 may be repeatedly generated using a random number generator until the determined IP address 190 satisfies a predetermined condition (in this case, the first two digits become a predetermined unique value). In other words, the public key 174 may be determined so that the IP address 190 determined based on a hash value calculated from the public key 174 according to the hash function matches a predetermined format.
[0077] In this way, by including a predetermined unique value for identification (for example, the first two digits are “FC”) in IP address 190, a third party can determine whether IP address 190 of device 100 was determined by device 100 itself.
[0078] (c3: type specific information) The IP address 190 determined by the device 100 may include information that can identify the type of the device 100. In order to perform such identification, for example, the IP address 190 may include a value according to the type of the device 100. In other words, the determined IP address 190 may include a value according to the type of the device 100 that determined the IP address 190.
[0079] As an example, a value (type-specific information) according to the type of device 100 may be embedded in the third and fourth digits from the beginning of the IP address 190 expressed in hexadecimal notation.
[0080] FIG. 5 shows a block diagram of an IP address used in network system 1 according to the present embodiment. 5 is a diagram showing an example of type specifying information to be included in the device 100. The type specifying information shown in Fig. 5 may be stored in advance in the ROM 108 (see Fig. 2) of the control unit 110 of each device 100. As an example, a value according to the type of device as shown in Fig. 5 may be used.
[0081] As shown in FIG. 5, for example, if the type of device 100 is a personal computer, the value "00" indicating a personal computer is set in the third and fourth digits from the beginning of the IP address 190.
[0082] As described above, since hash function 180 is usually a one-way function, public key 174 cannot be calculated backward from IP address 190. Therefore, a random number generator may be used to repeatedly generate private key 172 and public key 174 until the determined IP address 190 satisfies a predetermined condition (in this case, the third and fourth digits from the beginning are values indicating the type of device 100). In other words, public key 174 may be determined so that IP address 190 determined based on a hash value calculated from public key 174 according to a hash function matches a predetermined format.
[0083] In this way, by including a value indicating the type of device 100 in the IP address 190, a third party can identify the type of device 100 from the IP address 190 determined by the device 100.
[0084] (c4: Registration of public key 174 and acquisition of electronic certificate 176) Next, the registration of the public key 174 and the acquisition of the electronic certificate 176 will be described.
[0085] The device 100 obtains the digital certificate 176 for verifying the validity of the public key 174 from the certification authority 200. The procedure for obtaining the digital certificate 176 is as follows: the device 100 transmits the public key 174 to the certification authority 200 and registers it there; and the device 100 obtains the digital certificate 176 associated with the registered public key 174 from the certification authority 200.
[0086] More specifically, device 100 (control unit 110) transmits public key 174 and a request for issuance of an electronic certificate (hereinafter also referred to as a "certificate signing request") to certificate authority 200 via the network. In response to the certificate signing request received from device 100, certificate authority 200 registers public key 174 and issues electronic certificate 176 associated with registered public key 174. Then, certificate authority 200 transmits electronic certificate 176 to device 100 via the network.
[0087] Typically, the digital certificate 176 includes information about the owner of the digital certificate 176 (in this example, the device 100), information about the issuer of the digital certificate 176 (in this example, the certificate authority 200), the issuer's digital signature, and the expiration date of the digital certificate 176.
[0088] The certificate authority 200 may be operated by a specific organization, or may be an intermediate certificate authority associated with a root certificate authority operated by a specific organization. In addition, a specific fee and / or maintenance fee may be charged to the specific organization for registering the public key 174 and issuing the digital certificate 176 associated with the public key 174.
[0089] According to the present embodiment, public key 174 is directly authenticated by certification authority 200 through registration and acquisition of public key 174, and thus IP address 190 determined based on public key 174 is also indirectly authenticated by certification authority 200. Such authentication by certification authority 200 enables device 100 to realize data communication over the network using authenticated IP address 190.
[0090] Note that the electronic certificate 176 associated with the public key 174 may include information related to the attributes of the device 100 (hereinafter also referred to as "attribute information") in order to improve confidentiality. The attribute information of the device 100 may be, for example, version information of the OS 160 and the communication processing program 170 of the device 100, or a serial number of the hardware (e.g., processor, storage, etc.) constituting the device 100. In this case, the device 100 may transmit the attribute information of the device 100 to the certificate authority 200 when transmitting the public key 174 and the certificate signing request. Note that the attribute information of the device 100 included in the electronic certificate 176 may be encrypted using a known irreversible cryptographic hash function or the like.
[0091] In this way, by including attribute information of device 100 in digital certificate 176, it is possible to authenticate that digital certificate 176 has been issued in response to a certificate signing request from device 100 itself. In other words, it is possible to more reliably prevent a device other than device 100 from masquerading as device 100 and using public key 174 and digital certificate 176 of device 100.
[0092] (c5: Processing procedure) Next, a process for providing an authenticated IP address in each device 100 will be described.
[0093] Fig. 6 is a flowchart showing a processing procedure in which the device 100 provides an authenticated IP address in the network system 1 according to the present embodiment. The processing procedure shown in Fig. 6 is executed in each device 100, and each step shown in Fig. 6 is executed by the control unit 110 of each device 100.
[0094] 6, device 100 acquires a key pair (private key 172 and public key 174) generated according to an arbitrary algorithm (step S1). This key pair may be generated by device 100 itself, or may be acquired by device 100 from outside. Alternatively, device 100 may acquire only private key 172 from outside and generate public key 174 internally.
[0095] Next, the device 100 calculates a hash value 178 by inputting the public key 174 into a predetermined hash function 180, and determines an IP address 190 of the device 100 from all or a part of the calculated hash value 178 (step S2). That is, the device 100 determines the IP address of its own device based on the hash value 178 calculated from the public key 174 according to the hash function 180.
[0096] In addition, an appropriate key pair (private key 172 and public key 174) may be generated so that IP address 190 includes a unique string (e.g., the first and second digits of IP address 190) and / or type-specific information (e.g., the first and fourth digits of IP address 190).
[0097] Furthermore, the device 100 transmits the public key 174 and a request for issuing an electronic certificate (certificate signing request) to the certificate authority 200 (step S3). In response to the certificate signing request received from the device 100, the certificate authority 200 registers the public key 174 and issues an electronic certificate 176 associated with the registered public key 174. The certificate authority 200 then transmits the electronic certificate 176 to the device 100 via the network. The device 100 then receives and stores the electronic certificate 176 from the certificate authority 200 (step S4).
[0098] In this manner, the device 100 receives a digital certificate associated with the public key 174 from a certificate authority. Get 176.
[0099] Note that the execution order of the process in step S2 and the processes in steps S3 and S4 is not limited.
[0100] <D. Data Communication Process> Next, the data communication process between devices 100 using the authenticated IP addresses will be described.
[0101] (d1: Notification of IP Address) First, the process related to the notification of IP addresses between devices 100 in the network system 1 according to the present embodiment will be described.
[0102] FIGS. 7 and 8 are diagrams for explaining the process related to the notification of IP addresses in the network system 1 according to the present embodiment. FIGS. 7 and 8 show an example of exchanging IP addresses among three devices 100-1, 100-2, and 100-3. Note that the same process is possible between two devices 100, and the same process is also possible among more devices 100.
[0103] In the state shown in FIGS. 7 and 8, each of the devices 100-1, 100-2, and 100-3 has determined IP addresses 190-1, 190-2, and 190-3 according to the procedure described above. Also, it is assumed that the registration of public keys 174-1, 174-2, and 174-3 with the certification authority 200 and the acquisition of electronic certificates 176-1, 176-2, and 176-3 from the certification authority 200 have been completed for each device.
[0104] As shown in FIGS. 7 and 8, each device 100 periodically or for each event transmits (broadcasts) the public key 174 that each device has and the electronic certificate 176 associated with the public key 174. That is, each device 100 transmits the public key 174 and the electronic certificate 176 to other devices. If the public key 174 is included in the electronic certificate 176, only the electronic certificate 176 may be transmitted.
[0105] As an example, Fig. 7 shows a case where device 100-1 transmits (broadcasts) public key 174-1 and electronic certificate 176-1 associated with public key 174-1. In the example shown in Fig. 7, it is assumed that devices 100-2 and 100-3 receive public key 174-1 and electronic certificate 176-1 transmitted by device 100-1. Then, devices 100-2 and 100-3 determine whether electronic certificate 176-1 is valid, and if it is determined to be valid, determine IP address 190-1 of device 100-1 based on associated public key 174-1 and register it in connection tables 194-2 and 194-3, respectively.
[0106] Here, the connection table contains information about each device 100 for performing data communication, and each device 100 refers to the connection table to identify the IP address of the destination device 100 and establish a necessary session. Here, a "session" refers to a logical communication path configured by exchanging necessary data prior to sending and receiving data such as packets.
[0107] More specifically, device 100-2 first determines whether or not digital certificate 176-1 broadcast from device 100-1 is valid. In the process of determining the validity, the integrity of digital certificate 176-1 is verified.
[0108] As an example of a process for verifying the integrity, the device 100-2 first checks the owner information of the electronic certificate 176-1, the issuer information of the electronic certificate 176-1, and the existence of the issuer's digital signature. Then, the device 100-2 judges whether the electronic certificate 176-1 is within the validity period. Furthermore, the device 100-2 judges whether the issuer of the electronic certificate 176-1 is trustworthy. In particular, when the electronic certificate 176-1 is issued by an intermediate certification authority, the device 100-2 identifies a root certification authority associated with the intermediate certification authority that issued the electronic certificate 176-1, and judges whether the identified root certification authority is trustworthy. For example, when the identified root certification authority matches any one or more root certification authorities stored in the device 100-1, it is judged that the issuer of the electronic certificate 176-1 is trustworthy.
[0109] If the above-mentioned determination process is passed, the device 100-2 determines that the electronic certificate 176-1 broadcast from the device 100-1 is valid. The device 100-2 then inputs the public key 174-1 broadcast from the device 100-1 into a predetermined hash function 180 to calculate a hash value 178-1, and determines the IP address 190-1 of the device 100-1 using all or a part of the calculated hash value 178-1. Here, it is assumed that the devices 100-1 and 100-2 have a common hash function 180. It is also assumed that the process of determining the IP address 190-1 from the hash value 178-1 is common between the devices 100-1 and 100-2.
[0110] Through the above process, the device 100-2 can determine the IP address 190-1 of the device 100-1. Then, the device 100-2 adds an entry for the determined IP address 190-1 of the device 100-1 to the connection table 194-2. The public key 174-1 may be registered in association with the IP address 190-1.
[0111] The same process as that of the device 100-2 is also executed in the device 100-3, and an entry for the determined IP address 190-1 of the device 100-1 is added to the connection table 194-2 of the device 100-3. The public key 174-1 may be registered in association with the IP address 190-1.
[0112] Through the process shown in FIG. 7, device 100-2 and device 100-3 can obtain IP address 190-1 of device 100-1.
[0113] As an example, Fig. 8 shows a case where device 100-2 transmits (broadcasts) public key 174-2 and electronic certificate 176-2 associated with public key 174-2. In the example shown in Fig. 8, it is assumed that devices 100-1 and 100-3 receive public key 174-2 and electronic certificate 176-2 transmitted by device 100-2. Then, devices 100-1 and 100-3 determine whether electronic certificate 176-2 is valid, and if it is determined to be valid, determine IP address 190-2 of device 100-2 based on associated public key 174-2 and register it in connection tables 194-1 and 194-3, respectively.
[0114] The series of processes executed in devices 100-1 and 100-3 are similar to the processes described with reference to Fig. 7, and therefore detailed description will not be repeated. By the process shown in Fig. 8, device 100-1 and device 100-3 can obtain IP address 190-2 of device 100-2.
[0115] Additionally, device 100-3 has public key 174-3 and associated public key 174-3. Alternatively, the devices 100-1 and 100-2 may transmit (broadcast) the public key 174-3 and electronic certificate 176-3 transmitted by the device 100-3. It is assumed that the devices 100-1 and 100-2 receive the public key 174-3 and electronic certificate 176-3 transmitted by the device 100-3. The devices 100-1 and 100-2 then determine whether the electronic certificate 176-3 is valid, and if it is determined to be valid, determine the IP address 190-3 of the device 100-3 based on the associated public key 174-3 and register it in the connection tables 194-1 and 194-2, respectively. Through this process, the devices 100-1 and 100-2 can obtain the IP address 190-3 of the device 100-3.
[0116] Fig. 9 is a sequence chart showing a processing procedure relating to notification of an IP address in network system 1 according to the present embodiment. Fig. 9 shows processing procedures in three devices 100-1, 100-2, and 100-3 in correspondence with Figs. 7 and 8.
[0117] The device 100-1 transmits (broadcasts) the public key 174-1 and the digital certificate 176-1 associated with the public key 174-1 (sequence SQ10).
[0118] When device 100-2 receives public key 174-1 and electronic certificate 176-1 transmitted by device 100-1, it determines the validity of electronic certificate 176-1 (sequence SQ11). If it is determined that electronic certificate 176-1 is valid, device 100-2 determines IP address 190-1 of device 100-1 based on public key 174-1 (sequence SQ12), and registers the determined IP address 190-1 of device 100-1 in connection table 194-2 (sequence SQ13).
[0119] Similarly, upon receiving the public key 174-1 and electronic certificate 176-1 transmitted by the device 100-1, the device 100-3 determines the validity of the electronic certificate 176-1 (sequence SQ14). If it is determined that the electronic certificate 176-1 is valid, the device 100-3 determines the IP address 190-1 of the device 100-1 based on the public key 174-1 (sequence SQ15), and registers the determined IP address 190-1 of the device 100-1 in the connection table 194-3 (sequence SQ16).
[0120] In addition, the device 100-2 transmits (broadcasts) the public key 174-2 and the digital certificate 176-2 associated with the public key 174-2 (sequence SQ20).
[0121] When device 100-1 receives public key 174-2 and digital certificate 176-2 transmitted by device 100-2, device 100-1 determines the validity of digital certificate 176-2 (sequence SQ21). If it is determined that digital certificate 176-2 is valid, device 100-1 determines IP address 190-2 of device 100-2 based on public key 174-2 (sequence SQ22), and registers the determined IP address 190-2 of device 100-2 in connection table 194-1 (sequence SQ23).
[0122] Similarly, upon receiving the public key 174-2 and electronic certificate 176-2 transmitted by the device 100-2, the device 100-3 determines the validity of the electronic certificate 176-2 (sequence SQ24). If it is determined that the electronic certificate 176-2 is valid, the device 100-3 determines the IP address 190-2 of the device 100-2 based on the public key 174-2 (sequence SQ25), and registers the determined IP address 190-2 of the device 100-2 in the connection table 194-3 (sequence SQ26).
[0123] In addition, the device 100-3 transmits (broadcasts) the public key 174-3 and the digital certificate 176-3 associated with the public key 174-3 (sequence SQ30).
[0124] When the device 100-1 receives the public key 174-3 and the electronic certificate 176-3 transmitted by the device 100-3, the device 100-1 judges the validity of the electronic certificate 176-3 (sequence SQ31). If it is judged that the electronic certificate 176-3 is valid, the device 100-1 determines the IP address 190-3 of the device 100-3 based on the public key 174-3 (sequence SQ32), and registers the determined IP address 190-3 of the device 100-3 in the connection table 194-1 (sequence SQ33).
[0125] Similarly, upon receiving the public key 174-3 and electronic certificate 176-3 transmitted by the device 100-3, the device 100-2 determines the validity of the electronic certificate 176-3 (sequence SQ34). If it is determined that the electronic certificate 176-3 is valid, the device 100-2 determines the IP address 190-3 of the device 100-3 based on the public key 174-3 (sequence SQ35), and registers the determined IP address 190-3 of the device 100-3 in the connection table 194-2 (sequence SQ36).
[0126] The processing of sequences SQ10 to SQ16, the processing of sequences SQ20 to SQ26, and the processing of sequences SQ30 to SQ36 may be executed in any order or in parallel.
[0127] In this way, when each device 100 receives public key 174 and digital certificate 176 associated with public key 174 from another device, it determines the validity of digital certificate 176 (sequences SQ11, SQ14, SQ21, SQ24, SQ31, SQ34). Then, when each device 100 determines that digital certificate 176 is valid, it determines the IP address of the other device based on a hash value calculated from public key 174 according to a hash function (sequences SQ12, SQ15, SQ22, SQ25, SQ32, SQ35).
[0128] As described above, in network system 1 according to the present embodiment, on condition that electronic certificate 176 transmitted from other device 100 is determined to be valid, IP address 190 of the other device 100 is determined based on public key 174 associated with electronic certificate 176. On condition that electronic certificate 176 associated with public key 174 is determined to be valid, IP address 190 is determined based on public key 174, so that the validity of public key 174 and the validity of IP address 190 can be guaranteed. Therefore, reliable data communication between devices 100 can be realized.
[0129] Furthermore, in network system 1 according to the present embodiment, the IP address of each device 100 can be known based on public key 174 broadcast by each device 100, so that devices 100 can connect directly to each other even if there is no server that manages IP addresses. In particular, even if there is no virtual private network (VPN) server, confidential communication can be achieved between devices 100, so that the cost and power consumption for maintaining a VPN server can be reduced.
[0130] (d2: Data communication) Next, a description will be given of processing related to data communication between devices 100. In network system 1 according to the present embodiment, each device 100 has a routing function and a data transfer function, and these functions enable realization of a network capable of autonomously performing data communication.
[0131] Furthermore, in network system 1 according to the present embodiment, communicated data (typically packets or frames) is encrypted with an encryption key set for each session, thereby ensuring confidentiality of data communication.
[0132] First, an overview of data communication in network system 1 according to the present embodiment will be described. In the following description, as a typical example, data is transmitted in the form of "packets."
[0133] Fig. 10 is a diagram for explaining an outline of data communication in network system 1 according to the present embodiment. Fig. 10 illustrates, as an example, a data transmission method in a network including three devices 100-1, 100-2, and 100-3.
[0134] 10, as an example, it is assumed that direct communication is possible between device 100-1 and device 100-2, and direct communication is possible between device 100-2 and device 100-3. However, it is assumed that direct communication is not possible between device 100-1 and device 100-3. Here, a state in which direct communication is possible typically means a connection state in which nodes are present within one hop. A process of transmitting a packet from device 100-1 to device 100-3 in such a connection state will be described.
[0135] In network system 1 according to the present embodiment, a two-stage session is established. More specifically, the two-stage session includes adjacent node session 12, which is a first-stage session, and end-to-end session 14, which is a second-stage session.
[0136] The adjacent node session 12 is a session established between devices 100 that can directly communicate with each other. In the example shown in Fig. 10, the adjacent node sessions 12 are established between the device 100-1 and the device 100-2, and between the device 100-2 and the device 100-3. On the other hand, the end-to-end session 14 is a session established between the source device 100 and the destination device 100.
[0137] In each of the adjacent node session 12 and the end-to-end session 14, packets are encrypted. Typically, in the process of establishing each session, an encryption key used between the nodes is exchanged or shared. As a result, in the end-to-end session 14, an encrypted packet 22 obtained by encrypting a packet to be transmitted (hereinafter also referred to as a "transmission packet 20") based on the encryption key exchanged or shared between the device 100-1 and the device 100-3 is exchanged. The transmission packet 20 is composed of a header section 20H including information such as a destination and a data body section 20D. The encrypted packet 22 includes the result of encrypting the entire transmission packet 20 as a data body section 22D, and is further added with a header section 22H including information such as a destination. By adopting such a data structure, it is possible to realize packet forwarding to the destination device while maintaining the confidentiality of the transmission packet 20 included in the data body section 22D.
[0138] In the adjacent node session 12, encrypted packets 24 obtained by further encrypting the encrypted packets 22 based on another encryption key exchanged or shared between the devices 100-1 and 100-2 are exchanged. Also, encrypted packets 26 obtained by further encrypting the encrypted packets 22 based on yet another encryption key exchanged or exchanged between the devices 100-2 and 100-3 are exchanged.
[0139] Encrypted packet 24 includes the result of encrypting the entire encrypted packet 22 as data body 24D, to which a header section 24H including information such as the destination is added. Similarly, encrypted packet 26 includes the result of encrypting the entire encrypted packet 22 as data body 26D, to which a header section 26H including information such as the destination is added.
[0140] In the device 100-2, the encrypted packet 24 is once decrypted into the encrypted packet 22, and then re-encrypted to generate the encrypted packet 26. Even in this case, the device 100-2 cannot decrypt the encrypted packet 22 generated in the end-to-end session 14, so the confidentiality of the data communication is guaranteed.
[0141] 10, device 100-1 encrypts transmission packet 20 addressed to device 100-2 with an encryption key associated with device 100-2 to generate encrypted packet 22. Then, device 100-1 determines a device (device 100-2 in the example shown in FIG. 10) to which encrypted packet 22 is to be sent, encrypts encrypted packet 22 with an encryption key associated with the determined device to generate encrypted packet 24, and transmits it to the determined device.
[0142] Upon receiving the encrypted packet 24, the device 100-2 decrypts the encrypted packet 24 into an encrypted packet 22, and determines whether the decrypted encrypted packet 22 is addressed to the device itself. If the decrypted encrypted packet 22 is not addressed to the device itself, the device 100-2 executes the same process as when the device 100-1 transmits the encrypted packet 24 to the device 100-2. That is, the device 100-2 determines a device (in this case, the device 100-3) to which the encrypted packet 22 will be further sent, encrypts the encrypted packet 22 with an encryption key associated with the determined device to generate an encrypted packet 26, and transmits the encrypted packet 26 to the determined device.
[0143] On the other hand, if the decrypted encrypted packet 22 is addressed to the own device (in this example, when the encrypted packet 22 reaches the device 100-3 in the example shown in FIG. 10), the encrypted packet 22 is decrypted into the transmission packet 20.
[0144] Fig. 11 is a schematic diagram showing a functional configuration related to data transmission in device 100 according to the present embodiment. Referring to Fig. 11, device 100 includes a router engine 1120, a transfer engine 1110, and an interface 1210 as components for realizing data communication as shown in Fig. 10. These components are provided by control unit 110.
[0145] The router engine 1120 is primarily responsible for the end-to-end session 14 , and the forwarding engine 1110 is primarily responsible for the adjacent node session 12 .
[0146] When the router engine 1120 is given a transmission packet from various applications 300, it encrypts the transmission packet using an encryption key exchanged or exchanged with the destination device 100, and transmits an encrypted packet including the encrypted transmission packet to the destination device 100.
[0147] Furthermore, when the router engine 1120 receives an encrypted packet from the transfer engine 1110, it determines whether the encrypted packet is addressed to its own device. If the encrypted packet is addressed to its own device, the router engine 1120 decrypts the transmission packet included in the encrypted packet as a received packet (hereinafter also referred to as a "received packet") using an encryption key exchanged or shared with the sending device 100, and outputs the packet to the various applications 300. On the other hand, if the encrypted packet is addressed to another device, the router engine 1120 returns the encrypted packet to the transfer engine 1110.
[0148] More specifically, the router engine 1120 includes a session management engine 1122, an encryption / decryption engine 1124, an end-to-end session management table 1126, and and a search engine 1128.
[0149] The session management engine 1122 performs a session establishment with the destination device 100, a packet forwarding process, and a retransmission process. The session management engine 1122 also determines the destination of a given transmission packet according to the destination of the packet. The encryption / decryption engine 1124 encrypts and decrypts data. The end-to-end session management table 1126 holds the IP address, encryption key, connection type, and the like of the device 100 with which the session management engine 1122 can establish a session. The search engine 1128 searches for the device 100 having the specified IP address on the network and the route thereto when the IP address specified by the various applications 300 is not registered in the end-to-end session management table 1126.
[0150] When the transfer engine 1110 receives a packet from the interface 1210, it decrypts the packet using an encryption key that has been exchanged or has been exchanged with the device 100 that is the destination of direct data communication with the packet, and outputs the packet to the router engine 1120. Also, when the transfer engine 1110 receives a packet from the router engine 1120, it encrypts the packet using an encryption key that has been exchanged or has been exchanged with the device 100 that is the destination of direct data communication with the packet, and transmits the packet to the destination device 100.
[0151] More specifically, the forwarding engine 1110 includes a session management engine 1112 , an encryption / decryption engine 1114 , and an adjacent node session management table 1116 .
[0152] The session management engine 1112 establishes a session with the device 100 that is the direct data communication destination of the packet, and performs packet transfer and retransmission processing. The encryption / decryption engine 1114 encrypts and decrypts data. The adjacent node session management table 1116 holds the IP address, encryption key, connection type, etc. of the device 100 with which the session management engine 1112 can establish a session.
[0153] The interface 1210 is a module that logically processes data that is physically exchanged by the network interface 120. The interface 1210 logically connects the session management engine 1112 and a data communication path prepared for each protocol (for example, TCP (Transmission Control Protocol) 1212, UDP (User Datagram Protocol) 1214, other protocols 1216, etc.).
[0154] Fig. 12 is a schematic diagram showing an example of operation during data transmission in the device 100 according to the present embodiment. Fig. 12 shows processing when the device 100 receives a packet addressed to the device itself (a received packet addressed to the device itself) and processing when the device 100 receives a packet addressed to another device (a received packet addressed to another device).
[0155] When a packet arrives at the device 100, the packet is sent to the transfer engine 1110 and decrypted using an encryption key exchanged or exchanged with the device 100 that directly communicated the packet. If the packet is addressed to the device itself, the decrypted packet is sent to the router engine 1120 and further decrypted using an encryption key exchanged or exchanged with the source device 100, and output to various applications 300. On the other hand, if the packet is addressed to another device, the decrypted packet is returned to the transfer engine 1110 and encrypted using an encryption key exchanged or exchanged with the next destination device, and then transmitted.
[0156] FIG. 13 shows a case where a transmission packet is generated in device 100 according to the present embodiment. 14 is a flowchart showing a processing procedure when device 100 according to the present embodiment receives a packet from another device. FIGS. 13 and 14 show the procedure of a communication processing method in device 100 connected to a network. Each step shown in FIGS. 13 and 14 is executed by control unit 110 (see FIG. 2) of device 100 (typically realized by cooperation between a processor and a memory).
[0157] 13, it is determined whether or not a transmission packet 20 destined for another device has been provided by various applications 300 or the like (step S100). If a transmission packet 20 destined for another device has not been provided (NO in step S100), the process of step S100 is repeated.
[0158] On the other hand, when a transmission packet 20 destined for another device is given (YES in step S100), the processes from step S102 onwards are executed. That is, the processes from step S102 onwards shown in FIG. 13 are executed when a packet destined for another device is given.
[0159] In step S102, the device 100 (session management engine 1122 in FIG. 11) determines whether a session corresponding to the IP address of the destination device is registered (step S102). Typically, the IP address for each session that can be established is registered in the end-to-end session management table 1126 shown in FIG. 11, and the registered contents are referenced.
[0160] If a session corresponding to the IP address of the destination device is registered (YES in step S102), the process proceeds to step S114, which will be described later.
[0161] If a session corresponding to the IP address of the destination device is not registered (NO in step S102), the device 100 (search engine 1128 in FIG. 11) temporarily stores the transmission packet 20 in a queue (step S104) and starts searching for the destination device and a route to the destination device for each data communication route (step S106). The device 100 then determines whether the search is successful (step S108). If the search is successful (YES in step S108), the process of step S114 described below is executed. In this way, when the device 100 is given a packet addressed to another device, it searches for the IP address of the destination device.
[0162] On the other hand, if the search is not successful (NO in step S108), the device 100 judges whether or not a predetermined time limit (timeout time) has elapsed since the transmission packet 20 was stored in the queue (step S110). If the predetermined time limit has not elapsed since the transmission packet 20 was stored in the queue (NO in step S110), the process from step S108 onwards is repeated.
[0163] On the other hand, if the predetermined time limit has elapsed since the transmission packet 20 was stored in the queue (YES in step S110), the device 100 discards the transmission packet 20 stored in the queue (step S112), and the process then ends.
[0164] In step S114, the device 100 (session management engine 1122 in FIG. 11) determines whether an end-to-end session 14 has been established with the destination device (step S114).
[0165] If an end-to-end session14 is not established with the destination device ( If the answer is NO in step S114, the device 100 establishes an end-to-end session 14 with the destination device (step S116). When establishing the end-to-end session 14, the device 100 exchanges or shares an encryption key associated with the end-to-end session 14 with the destination device. In this manner, the device 100 establishes the end-to-end session 14 with the other device and determines an encryption key associated with the end-to-end session 14 (i.e., the other device).
[0166] On the other hand, if an end-to-end session 14 has already been established with the destination device (YES in step S114), the process of step S116 is skipped.
[0167] Next, the device 100 (encryption / decryption engine 1124) encrypts the transmission packet 20 with the encryption key associated with the end-to-end session 14 established with the destination device, thereby generating an encrypted packet 22 (step S118). That is, the device 100 generates the encrypted packet 22 by encrypting the transmission packet 20 with the encryption key associated with the other destination device.
[0168] Next, the device 100 (session management engine 1112) determines a device to which the encrypted packet 22 is to be sent (step S120). Typically, an IP address for each session that can be established is registered in an adjacent node session management table 1116 shown in Fig. 11, and this registered content is referenced. Furthermore, the device 100 (encryption / decryption engine 1114) determines whether an adjacent node session 12 has been established with the determined destination device (step S122).
[0169] If an adjacent node session 12 has not been established with the determined destination device (NO in step S122), the device 100 establishes the adjacent node session 12 with the determined destination device (step S124). When establishing the adjacent node session 12, the device 100 exchanges or shares an encryption key associated with the adjacent node session 12 with the target device. In this way, the device 100 establishes the adjacent node session 12 with yet another device to which the encrypted packet 22 is to be sent, and determines an encryption key associated with the adjacent node session 12 (i.e., the destination device).
[0170] On the other hand, if an adjacent node session 12 has already been established with the determined destination device (YES in step S122), the process of step S124 is skipped.
[0171] Next, the device 100 (encryption / decryption engine 1114) generates an encrypted packet 24 by encrypting the encrypted packet 22 with an encryption key associated with the adjacent node session 12 established with the determined destination device (step S126). That is, the device 100 encrypts the encrypted packet 22 with an encryption key associated with the determined destination device to generate an encrypted packet 24.
[0172] Finally, the device 100 (session management engine 1112) sends the generated encrypted packet 24 to the determined destination device (step S128). With the above, the process when the transmission packet 20 is given is completed.
[0173] 14, it is determined whether or not the encrypted packet 24 has been received from another device (step S200). If the encrypted packet 24 has not been received from another device (NO in step S200), the process of step S200 is repeated.
[0174] On the other hand, when the encrypted packet 24 is received from another device (YES in step S200), the process from step S202 onwards is executed. That is, the process from step S202 onwards shown in Fig. 14 is executed when the encrypted packet 24 is received from another device.
[0175] The device 100 (encryption / decryption engine 1114) decrypts the encrypted packet 24 into an encrypted packet 22 using the encryption key associated with the adjacent node session 12 with the other device (step S202). Then, the device 100 (session management engine 1112) determines whether the decrypted encrypted packet 22 is addressed to the device itself (step S204).
[0176] If the decrypted encrypted packet 22 is not addressed to the device itself (NO in step S204), the device 100 (session management engine 1112) determines a device to which the encrypted packet 22 will be further sent (step S210). Typically, the adjacent node session management table 1116 shown in FIG. 11 is referenced. Furthermore, the device 100 (encryption / decryption engine 1114) determines whether or not an adjacent node session 12 has been established with the determined destination device (step S212). If an adjacent node session 12 has not been established with the determined destination device (NO in step S212), the device 100 establishes an adjacent node session 12 with the determined destination device (step S214). Note that if an adjacent node session 12 has already been established with the determined destination device (YES in step S212), the process of step S214 is skipped.
[0177] Next, the device 100 (encryption / decryption engine 1114) generates an encrypted packet 24 by encrypting the encrypted packet 22 with an encryption key associated with the adjacent node session 12 established with the determined destination device (step S216). Finally, the device 100 (session management engine 1112) transmits the generated encrypted packet 24 to the determined destination device (step S218).
[0178] In this way, if the decrypted encrypted packet 22 is not addressed to the device itself (NO in step S204), the device 100 determines another device to which the encrypted packet 22 is to be sent, and generates and transmits the encrypted packet 24 using the encryption key associated with the determined device. This ends the process for when an encrypted packet 24 is received from another device.
[0179] On the other hand, if the decrypted encrypted packet 22 is addressed to the local device (YES in step S204), the device 100 (encryption / decryption engine 1124) decrypts the encrypted packet 22 into the transmission packet 20 using the encryption key associated with the end-to-end session 14 established with the source device (step S206). Then, the device 100 outputs the decrypted transmission packet 20 as a received packet to various applications 300 (step S208). Thus, the processing when receiving the encrypted packet 24 from another device ends.
[0180] As described above, in the network system 1 according to the present embodiment, when transmitting a packet from a source device to a destination device, the encrypted packet 22 is generated using the encryption key associated with the end-to-end session 14 between the source device and the destination device. The encrypted packet 22 may be sequentially transferred by one or more devices, but even in such a process, since it is sequentially transferred in an encrypted state, the confidentiality of the packet can be maintained until it reaches the destination device.
[0181] Furthermore, in the network system 1 according to the present embodiment, even between the devices that sequentially transfer the encrypted packet 22, the encrypted packet 22 is further encrypted using the encryption key associated with the adjacent node session 12 between the devices. Therefore, even in the data communication process in which the encrypted packet 22 is sequentially transferred, the confidentiality can be further enhanced.
[0182] <E. Advantages> According to the network system 1 according to the present embodiment, in a network in which a large number of devices exist, a solution can be provided in which each device 100 can independently realize data communication.
[0183] The embodiments disclosed herein should be considered to be illustrative and not restrictive in all respects. The scope of the present invention is defined by the claims, not the above description, and is intended to include all modifications within the meaning and scope of the claims. [Explanation of symbols]
[0184] 1 network system, 2 network, 4 access point, 6 mobile base station, 12 adjacent node session, 14 end-to-end session, 20 transmission packet, 20D, 22D, 24D, 26D data body, 20H, 22H, 24H, 26H header, 22, 24, 26 encrypted packet, 100 device, 102 processor, 104 main memory, 106 storage, 108 ROM, 110 control unit, 120 network interface, 130 display unit, 140 input unit, 150 media interface, 152 media, 160 OS, 170 communication processing program, 172 private key, 174 public key, 176 electronic certificate, 178 hash value, 180 Hash functions, 190 IP addresses, 194 connection table, 200 certificate authority, 300 various applications, 1110 forwarding engine, 1112,1122 session management engines, 1114,1124 encryption / decryption engine, 1116 adjacent node session management table, 1120 router engine, 1126 end-to-end session management table, 1128 search engine, 1210 interfaces, 1216 other protocols.
Claims
1. A communication method in a network to which a plurality of devices are connected, comprising: Establishing an end-to-end session between a first device and a second device; a step of encrypting a transmission packet destined for the second device by the first device with a first encryption key associated with the end-to-end session to generate a first encrypted packet; determining whether the first device and the second device are within one hop; if the first device is within one hop from the second device, the first device transmits the first encrypted packet to the second device; and if the first device and the second device are not within one hop, the first device encrypts the first encrypted packet with a second encryption key associated with a first adjacent node session established with a third device that is within one hop to generate a second encrypted packet, and transmits the second encrypted packet to the third device.
2. The method of communication of claim 1 , further comprising the step of the second device decrypting the first encrypted packet with the first encryption key to the transmitted packet.
3. 3. The communication method according to claim 1, further comprising a step in which the third device decrypts the second encrypted packet with the second encryption key to generate the first encrypted packet, and then encrypts the first encrypted packet with a third encryption key associated with a second adjacent node session established with a fourth device present within one hop to generate a third encrypted packet, and transmits the third encrypted packet to the fourth device.
4. 4. The communication method according to claim 3, further comprising a step in which, if the fourth device is the second device that is the destination of the transmission packet, the fourth device decrypts the third encrypted packet with the third encryption key into the first encrypted packet, and then decrypts the first encrypted packet with the first encryption key into the transmission packet.
5. 5. The communication method according to claim 4, further comprising the step of: if the fourth device is not the second device that is the destination of the transmission packet, the fourth device decrypts the third encrypted packet with the third encryption key to generate the first encrypted packet, and then encrypts the first encrypted packet with a fourth encryption key associated with a third adjacent node session established with a fifth device that is present within one hop to generate a fourth encrypted packet, and transmitting the fourth encrypted packet to the fifth device.
6. The communication method according to any one of claims 1 to 5, further comprising the step of the second device passing the transmission packet to an application executed on the second device.
7. determining, in each of the plurality of devices, an entire network address of the device using all or a part of a hash value calculated by inputting a public key held by each device into a hash function; The communication method according to any one of claims 1 to 6, further comprising a step of determining an entire network address of the other device using all or part of a hash value calculated by inputting a public key received from the other device into the hash function.
8. each of the plurality of devices maintaining an end-to-end session management table indicating network addresses of other devices with which each device can establish an end-to-end session; The communication method according to any one of claims 1 to 7, further comprising a step in which each of the plurality of devices maintains an adjacent node session management table indicating the network addresses of other devices with which each device can establish an adjacent node session.
9. a network interface for connecting to a network having a plurality of devices; means for establishing an end-to-end session with a first device; means for encrypting a transmission packet addressed to the first device with a first encryption key associated with the end-to-end session to generate a first encrypted packet; means for determining whether the first device is within one hop; means for transmitting the first encrypted packet to the first device if the first device is within one hop; and if the first device is not within one hop from the first device, encrypting the first encrypted packet with a second encryption key associated with an adjacent node session established with a second device that is within one hop from the first device to generate a second encrypted packet, and transmitting the second encrypted packet to the second device.
10. A communications program for a computer having a network interface for connecting to a network, the communications program causing the computer to execute the communications method according to any one of claims 1 to 8 when executed by the computer.