WO2013175539A1 - ネットワークシステム、ノード、および通信方法。 - Google Patents

ネットワークシステム、ノード、および通信方法。 Download PDF

Info

Publication number
WO2013175539A1
WO2013175539A1 PCT/JP2012/003408 JP2012003408W WO2013175539A1 WO 2013175539 A1 WO2013175539 A1 WO 2013175539A1 JP 2012003408 W JP2012003408 W JP 2012003408W WO 2013175539 A1 WO2013175539 A1 WO 2013175539A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
information
packet
logical information
logical
Prior art date
Application number
PCT/JP2012/003408
Other languages
English (en)
French (fr)
Inventor
和快 古川
伊豆 哲也
由美 酒見
尚 兒島
武仲 正彦
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2012/003408 priority Critical patent/WO2013175539A1/ja
Priority to JP2014516516A priority patent/JP5874823B2/ja
Publication of WO2013175539A1 publication Critical patent/WO2013175539A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information

Definitions

  • the technology disclosed in this specification relates to a technology for transmitting and receiving packets between nodes in an ad hoc network system.
  • Ad hoc network is a type of self-configuring network that is linked by wireless communication.
  • An ad hoc network is composed of a plurality of devices having a communication function.
  • a device having a communication function in an ad hoc network is called a node.
  • Each node in the ad hoc network transmits and receives packets by multi-hop communication.
  • Multi-hop communication is a technology that enables communication even between nodes that are not within the communication range of each other, via another node that is within the communication range of each node.
  • a route through which a packet is subjected to multi-hop communication is referred to as a transfer route.
  • the transfer path is formed by a plurality of nodes.
  • the encryption key for encryption at each node is not shared by all nodes, but shared between a node and other nodes that are within a range that can communicate with the node.
  • There is a technique for encrypting data using an access key A technique for performing ad hoc communication using an access key is disclosed in Patent Document 2, for example.
  • verifying packet alteration and sender impersonation is referred to as packet verification.
  • packet verification As described above, as a typical method for verifying a packet, there is MAC verification.
  • FIG. 1 is a diagram showing an example of MAC calculation using CMAC.
  • CMAC is one of MAC calculation algorithms.
  • plain text data is divided into a predetermined bit length. Each divided data is referred to as a block.
  • the fixed length tag is obtained by the above processing.
  • the tag depends on the MAC key and the data content.
  • a tag calculated by a transmission side node is set in a packet and transmitted to another node.
  • the node that received the packet performs packet verification. Specifically, first, the receiving node also calculates a tag depending on the data and the MAC key by the same processing as described above.
  • the tag set in the packet is compared with the calculated tag. If they match, the receiving node can determine that the received packet is a legitimate packet that does not falsify data or impersonate the sender. In other words, it is proved that the MAC key and MAC calculation target data used on the transmission side are the same as the MAC key and MAC calculation target data used on the reception side.
  • the receiving node can determine that the received packet is an illegal packet that may be tampered with data or spoofed by the sender.
  • a processing load comparable to the common key encryption processing is required.
  • the MAC has been described as an example.
  • a processing load is generated in order to calculate code information for verifying the packet.
  • Other techniques include convolution error correction codes.
  • the code information is information uniquely determined according to the logical information and the data content.
  • the tag described above is a kind of code information.
  • the logical information is information that defines the logic adopted in a certain algorithm. Note that the logical information needs to be secret from a third party in order to establish secure communication.
  • the MAC key is a kind of logical information.
  • An encryption key used in an encryption algorithm for encrypting data is also a kind of logical information.
  • a common MAC key is used in a plurality of nodes constituting the ad hoc network.
  • the code information set in the packet does not need to be particularly updated. Any node can appropriately verify the packet by using the code information calculated with the common logical information and the code information set first in the packet.
  • the access key disclosed in the prior art is adopted as logical information for packet verification so that the logical information common to all nodes is not used. That is, the logical relationship defined in the access key is used as logical information for calculating code information.
  • the node A calculates code information X for verifying the packet by using the logical information X shared with the node B. Then, the packet including the data and the code information X is transmitted to the node B.
  • a packet including data and code information Z is transmitted from node C to node D.
  • the code information Z is information calculated from the logical information Z shared by the nodes C and D. In this way, each node performs processing of packet verification and calculation of code information corresponding to the next transmission destination.
  • an object of the present invention is to enable each node to perform packet verification using the same code information without sharing logical information in advance between all nodes.
  • FIG. 3 is an explanatory diagram of an example of the network system according to the embodiment.
  • the network system includes a plurality of nodes N, a sink node SN, and a server S.
  • the network system according to the present embodiment and packet transmission in the network system will be described with reference to FIG.
  • the network system according to the present embodiment is an ad hoc network system.
  • the server S and the sink node SN are connected via a normal network 200 such as the Internet, LAN, or WAN.
  • the sink node SN and the nodes Na to Nh are connected via the ad hoc network 100.
  • the sink node SN is a relay device that connects the ad hoc network 100 and the normal network 200.
  • the sink node SN can transmit and receive both the protocol format information of the ad hoc network 100 and the protocol format information of the normal network 200.
  • the sink node SN performs communication by protocol-converting information between the ad hoc network 100 and the normal network 200. For example, a packet transmitted from any of the nodes N in the ad hoc network 100 to the server S is subjected to protocol conversion at the sink node SN. Thereafter, the sink node SN transmits the packet to the normal network 200, so that the packet reaches the server S.
  • data transmitted from the server S or the sink node SN to each node N is subjected to protocol conversion at the sink node SN, and is transmitted as a packet from the sink node SN to each node N in the ad hoc network 100.
  • each node N may individually generate a routing table.
  • Each node N exchanges information regarding communication status with surrounding nodes N. And each node N produces
  • one sync node SN is provided in the ad hoc network 100, but a plurality of sync nodes SN may be provided in one ad hoc network 100.
  • there is one ad hoc network 100 but there may be a plurality of ad hoc networks.
  • each of the plurality of ad hoc networks includes at least one sink node SN, and the server S is connected to the sink node SN via the normal network.
  • the ad hoc network system is applied to a system that collects the power consumption of each household, for example.
  • each node N is installed in a power meter in each home for detecting the amount of power used in each home.
  • the server S can collect the power usage of each household.
  • this network system can also be used for surveying the environment, for example, by providing each node with a sensor function that detects temperature, humidity, light quantity, etc. .
  • FIG. 4 is a functional block diagram of the node.
  • a node when a node becomes a transmission node which transmits a packet, it functions as the node 11 in FIG.
  • the node when the node becomes a relay node for transferring a packet, it functions as the node 12 in FIG.
  • the node Nc when a packet is transferred from the node Nc to the sink node SN, the node Nc becomes the transmission node. Nodes Na and Nb become relay nodes.
  • the node 11 includes an acquisition unit 111, a packet generation unit 112, a logical information generation unit 113, a calculation unit 114, an encryption processing unit 115, a communication unit 116, and a storage unit 117.
  • the acquisition unit 111 is a processing unit that acquires a detection value from the sensor. For example, the acquisition unit 111 acquires detection values such as power consumption and temperature from a sensor that can communicate with the node 11. The acquired detection value is transmitted to another node or sink node as part of the packet.
  • the packet generator 112 in FIG. 4 generates the packet shown in FIG.
  • FIG. 5 shows an example of the data structure of a packet.
  • a first header part 21, a second header part 22, a payload data part 23, a code information storage part 24, and a logical information storage part 25 are allocated to the packet 20, respectively.
  • first header information is described.
  • the first header information includes a local transmission source address and a local transmission destination address.
  • the local transmission source address is information regarding the address of the device that transmits the packet 20.
  • the local transmission destination address is information regarding the address of the device that is the destination of the packet 20.
  • the local transmission source address and the local transmission destination address are the addresses of the node and the sink node.
  • the second header information includes a global transmission source address and a global transmission destination address.
  • the header information is information including first header information and second header information.
  • the global transmission source address is information related to the address of the device that generated the payload data described in the payload data section 23.
  • the global transmission destination address is information related to the address of the device that finally receives the payload data described in the payload data portion 23.
  • the global transmission source address and the global transmission destination address are addresses of nodes and sink nodes.
  • Payload data portion 23 describes payload data. For example, the detection value acquired at each node is described. In the meter reading system, the payload data includes information on the power consumption of each household. Note that the payload data stored in the payload data unit 23 may be encrypted payload data.
  • Code information is information uniquely determined according to logical information and data contents. For example, a tag calculated by the MAC algorithm is a kind of code information.
  • the logical information is information that defines the logic adopted in a certain algorithm.
  • code information is calculated for the data including the second header information and payload data.
  • code information may be calculated for payload data.
  • the first header information is excluded from the code information calculation target.
  • the verification logical information is information that defines the logic used during packet verification among the logical information.
  • a MAC key generated by a later-described logical information generation unit is an example of verification logical information.
  • the verification logical information is encrypted according to the local transmission destination address by an encryption processing unit 115 described later.
  • the verification logical information is information corresponding to a key used in an algorithm for data verification, and is, for example, a MAC key.
  • logical information used for encryption by an encryption processing unit 115 described later is referred to as encryption logical information.
  • the logical information for encryption is information corresponding to a key used in the encryption algorithm.
  • the packet generation unit 112 sets the global transmission destination address and the global transmission source address in the second header part.
  • the packet generator 112 sets the encrypted payload data in the payload data part.
  • the packet generation unit 112 stores the code information in the code information storage unit.
  • the packet generation unit 112 refers to the routing table and determines a local transmission destination address. Then, the local transmission destination address and the local transmission source address are set in the first header part. Further, the packet generation unit 112 stores the logical information for verification encrypted according to the local transmission destination address in the logical information storage unit.
  • the logical information generation unit 113 generates a random number as logical information for verification.
  • the logical information generation unit 113 may be configured by a random number generator.
  • the calculation unit 114 calculates code information using the logical information for verification. For example, the calculation unit 114 performs a MAC calculation process on the second header information and payload data. A tag which is code information is acquired by MAC calculation. The calculation target of the code information may be encrypted payload data. For example, the calculation unit 114 acquires payload data encrypted by an encryption processing unit 115 described later, and calculates code information for the encrypted payload and second header information.
  • the encryption processing unit 115 is a processing unit that encrypts logical information for verification.
  • the logical information for encryption shared by the local transmission destination node and the own node is used.
  • the encryption processing unit 115 uses an access key distributed from a local transmission destination as logical information for encryption.
  • the encryption processing unit 115 encrypts the payload data in order to keep the packet secret from a third party.
  • the payload data is encrypted, logical information for encryption shared by the node or sink node of the global transmission destination and the own node is used.
  • the encryption processing unit 115 uses a server key distributed in advance.
  • the communication unit 116 is a processing unit that communicates with other nodes. For example, the packet generated by the packet generation unit 112 is transmitted to the local transmission destination address.
  • the communication unit 116 functions as a reception unit and a transmission unit in the transmission node.
  • the storage unit 117 stores various information.
  • the storage unit 117 stores a management table for managing a routing table and encryption logical information.
  • FIG. 6 is a data configuration example of the routing table.
  • the routing table 1171 stores a global transmission destination address, a local transmission destination address, and an evaluation value in association with each other.
  • the conventional method is adopted as a method for creating the routing table.
  • the nodes 11 and 12 have a means for creating a routing table. Then, the means creates a routing table 1171 and stores it in the storage unit 117. Note that the routing table is periodically updated.
  • the address of the node that is the global destination of the packet is described.
  • the address of another node that can communicate with the own node is described in each record.
  • the item “evaluation value” stores an evaluation value calculated according to the communication status between each local transmission destination and the own node. For example, a larger value is set as the communication strength is higher.
  • the packet generator 112 refers to the routing table using the global destination address that is the global destination of the packet as a key. Then, the packet generation unit 112 acquires a local transmission destination address having the largest evaluation value among local transmission destination addresses corresponding to the global transmission destination address. Then, the packet generation unit 112 sets the acquired local transmission destination address in the first header part.
  • FIG. 6 shows the routing table of the node Nc. For example, when the node Nc sends a packet to the sink node SN, the “Nb address” having the largest evaluation value is acquired as the local transmission destination address.
  • FIG. 7A and 7B are examples of the data structure of the management table.
  • FIG. 7A shows a first management table 1172 for managing logical information when encrypting logical information for verification.
  • FIG. 7B is a second management table 1173 for managing logical information when data such as payload data is encrypted.
  • the first management table 1172 stores the local sharing destination address and the logical information for encryption in association with each other.
  • the item “local sharing destination address” stores the address of the node sharing the logical information.
  • the item “logical information for encryption” stores logical information shared between the local sharing destination and the own node. For example, for each local sharing destination, an access key shared with the local sharing destination is stored. That is, the logical information for encrypting the verification logical information is logical information shared among communicable nodes among all nodes.
  • FIG. 7A is a first management table of the node Nc, for example.
  • the encryption processing unit 115 encrypts the verification logical information using the “Nb access key”.
  • the second management table 1173 stores the global sharing destination address and the logical information for encryption in association with each other.
  • the item “global sharing destination address” stores the address of the node or sink node that shares the logical information.
  • the item “logical information for encryption” stores logical information shared between the global sharing destination and the own node. For example, for each global sharing destination, a server key shared with the global sharing destination is stored.
  • FIG. 7B is a second management table of the node Nc, for example.
  • the encryption processing unit 115 encrypts the payload data using the “server key”.
  • the node 12 includes a communication unit 121, a decryption processing unit 122, a verification unit 123, a packet generation unit 124, an encryption processing unit 125, and a storage unit 126.
  • the communication unit 121 is a processing unit that communicates with other nodes. For example, a packet is received from the node 11. Furthermore, the packet is transferred to other nodes and sink nodes.
  • the communication unit 121 functions as a reception unit and a transmission unit in the relay node.
  • the decryption processing unit 122 decrypts the logical information stored in the logical information storage unit of the received packet. Note that the decryption processing unit 122 performs decryption using logical information for encryption shared between the local transmission source of the packet and the own node. In addition, when the own node corresponds to the global transmission destination address, the decoding processing unit 122 obtains payload data by decoding the payload data.
  • the verification unit 123 verifies the packet using the logical information for verification. For example, the verification unit 123 performs MAC verification of the packet using the MAC key. Each time a packet is received, the packet is verified. Further, the packet may be verified when the processing load of the own node is equal to or less than a predetermined value. As a result of the packet verification, when it is determined that the packet is a valid packet, the packet is transferred to another node. On the other hand, when it is determined that the packet is an illegal packet, the packet is discarded.
  • the packet generation unit 124 generates a packet to be transferred to another node when the received packet is a valid packet. That is, the packet generation unit 124 rewrites the first header information. Further, the packet generation unit 124 sets the verification logical information re-encrypted by the later-described encryption processing unit 125 in the logical information storage unit.
  • the encryption processing unit 125 is a processing unit that encrypts the logical information for verification according to the local transmission destination in the rewritten first header information. Similar to the storage unit 125, the storage unit 126 stores a routing table and a management table. That is, the packet generation unit 124 refers to the routing table, acquires the local transmission destination address, and sets it as the first header information. In addition, the cryptographic processing unit 125 searches the first management table for a record having the local transmission destination address as the local shared destination address, and acquires the logical information for encryption in the record. Then, the cryptographic processing unit 125 encrypts the verification logical information by using the acquired logical information for encryption.
  • the node 11 that is a transmission node and the node 12 that is a relay node are described as separate nodes, but in reality, a certain node 10 functions as a node 11 12 may function.
  • FIG. 8 is a functional block diagram of the node 10.
  • Each processing unit performs the same processing as each processing unit shown in FIG. For example, when a certain node 10 transmits a detection value to the sink node SN, it functions as the node 11 that is a transmission node. On the other hand, when a node forwards a packet received from another node to another node, it functions as the node 12 that is a relay node. In FIG. 8, each processing unit performs the same processing as the same processing unit in the node 11 or the node 12.
  • FIG. 9 is a processing flowchart of packet transmission processing by the node 11. That is, this is a processing flow of packet transmission processing when the node 10 functions as a transmission node.
  • the acquisition unit 111 acquires a detection value from the sensor (Op. 1). Then, the packet generator 112 generates second header information (Op. 2). The generated header information is set in the second header portion of the packet. That is, the global destination is determined and the global destination address is acquired.
  • the storage unit 17 has a table for storing the addresses of the nodes and the sink nodes, and the packet generation unit 112 acquires the addresses from the table. Further, the packet generation unit 112 sets the address of its own node as the global transmission source address.
  • the encryption processing unit 115 encrypts the payload data including the detection value with logical information corresponding to the global transmission destination (Op. 3).
  • the encrypted payload data is set in the payload data portion of the packet. For example, when the global transmission destination address is “SN address”, the cryptographic processing unit 115 refers to the second management table, and obtains the server key from the record having “SN address” as the global sharing destination address. get. Then, the payload data is encrypted with the server key.
  • the logical information generation unit 113 generates logical information for verification (Op.4).
  • the calculation unit 114 calculates code information depending on the verification logical information for the encrypted payload data and the second header information (Op. 5).
  • the calculated code information is stored in the code information storage unit of the packet.
  • the packet generator 112 generates first header information (OP.6).
  • the generated first header information is set in the first header part of the packet.
  • the packet generator 112 refers to the routing table 1171 and determines a local transmission destination address.
  • the packet generator 112 generates first header information including the local transmission destination address and the address of its own node.
  • the encryption processing unit 115 encrypts the verification logical information (Op. 7).
  • the encrypted logical information for verification is stored in the logical information storage unit.
  • the cryptographic processing unit 115 refers to the first management table and acquires the logical information for encryption from the record including the local transmission destination address.
  • the encryption processing unit 115 encrypts the verification logical information with the logical information shared with the local transmission destination.
  • the communication unit 116 transmits the packet to the local transmission destination address (Op.8).
  • the packet is transmitted from the transmission note to the relay node.
  • verification logical information is generated at the transmission node. Further, since the verification logical information is encrypted according to the local transmission destination address, it is transmitted with higher security. Furthermore, since the code information is information that depends on the verification logic information, the packet can be verified using the same code information as long as the node can obtain the verification logic information. That is, common code information can be used in the transfer path.
  • FIG. 10 is a flowchart of packet verification and packet transfer processing by the node 12. That is, this is a packet verification and packet transfer processing flow when the node 10 functions as a relay node.
  • the communication unit 121 receives the packet (Op. 10).
  • the decryption processing unit 122 decrypts the verification logical information stored in the packet logical information storage unit (Op.11). Note that the decryption processing unit 122 refers to the second management table and performs decryption using the encryption logical information corresponding to the address of the local transmission source.
  • the verification unit 123 determines whether the global transmission destination address set in the packet matches the address of its own node (Op.12). If they match (Op.12 Yes), the received packet is a packet having the final destination as its own node.
  • the verification unit 123 verifies the packet and determines whether it is a valid packet (Op. 13). That is, Op. Code information is calculated using the verification logical information decoded in step 12 for the information stored in the payload data storage unit and the information stored in the second header unit. Then, the verification unit 123 compares the calculated code information with the information stored in the packet code information storage unit. If they match, the received packet is determined to be a valid packet.
  • the decryption processing unit 122 refers to the second management table and decrypts the payload data (Op. 14). That is, the decryption processing unit 122 searches the second management table for a record having the global transmission destination address as the global sharing destination address. Then, the decryption processing unit 122 acquires the encryption logical information in the record. The payload data is decoded using the acquired logical information.
  • the verification unit 123 discards the received packet (Op. 15).
  • the verification unit 123 determines whether to perform packet verification (Op.16). For example, when the processing load is equal to or greater than a threshold, packet verification may be omitted. Op. The processing of 16 may be omitted and the packet verification may be performed without fail.
  • the verification unit 123 executes packet verification. If the received packet is a valid packet (Op. 17 Yes), the packet generator 124 generates first header information (Op. 18).
  • the address having the highest evaluation value is acquired from the local destination addresses corresponding to the global destination address. Then, first header information including the local address as the local transmission source address and the acquired address as the local transmission destination address is generated. The first header information is stored in the first header part.
  • the encryption processing unit 125 encrypts the verification logical information according to the local transmission destination (Op.19). Specifically, referring to the first management table, the logical information for encryption is acquired from the record having the local transmission destination address as the local sharing destination address. Then, the encryption processing unit 125 encrypts the verification logical information using the encryption logical information. Note that the encrypted logical information is stored in the logical information storage unit.
  • the communication unit 121 transfers the packet to the local transmission destination address. Note that the first header information of the received packet is changed in the transmitted packet. Also, the information stored in the logical information storage unit is re-encrypted according to the local transmission destination.
  • the code information included in the received packet is shared with the local transmission destination node together with the logical information for verification. That is, the same code information and the same logical information for verification are shared by the nodes forming the transfer path. Therefore, it is possible to eliminate the process in which the relay node newly recalculates code information according to a new local transmission destination. Further, the verification logical information is encrypted by the logical information shared between the own node and the local transmission destination node. That is, no verification logical information is acquired other than the regular node.
  • the security is improved as compared with the case where the logical information for verification shared in advance by all nodes is used. Further, unlike the technique shown in FIG. 2, since the logical information for verification does not differ between nodes, a process of recalculating code information for each packet transfer other than the packet verification process becomes unnecessary.
  • FIG. 11 is a first diagram for explaining one effect of the technique disclosed in the present embodiment.
  • FIG. 11 is a diagram showing a CBC mode of block cipher as an example of the encryption process.
  • CBC mode data in plain text is divided into blocks having a predetermined bit length.
  • XOR calculation is performed with block 1 using a random number prepared as an initial value.
  • block encryption is performed using an encryption key corresponding to the logical information for encryption. Such processing is carried out in a chain.
  • the last block 4 is encrypted, the combined result of all blocks is encrypted data.
  • the processing load depends on the data length.
  • the CMAC calculation processing and the encryption in the CBC mode are similar in processing content, and therefore, it can be considered that the processing cost increases as the data length increases.
  • FIG. 12 is a second diagram for explaining one effect of the technique disclosed in the present embodiment.
  • FIG. 12 shows the processing cost related to the relay node.
  • a relay node is a node that receives a packet from a certain node and further forwards the packet to another node.
  • packet verification processing may be omitted, but here, description will be made assuming that packet verification processing is executed.
  • the payload data of a packet transferred in an ad hoc network has a variable length, but here it will be described as 128 bytes.
  • the logical information for verification is 16 bytes here. This is because the key length used in MAC calculation is generally 128 bits (ie, 16 bytes).
  • the processing cost of the packet verification process is “1”.
  • the packet verification process is basically a process of calculating code information for the payload data in the received packet, so the code information calculated and the code information set in the packet are the bottleneck. It is assumed that the process of comparing is basically negligible. Therefore, it can be considered that the packet verification processing cost and the code information processing cost are substantially equal.
  • the description is made assuming that the code information is calculated only for the payload data. However, when the code information is calculated for the payload data and the second header information, the code information is used. This calculation requires a larger processing cost.
  • the technique shown in FIG. 2 requires processing for recalculating code information in addition to packet verification processing.
  • the processing cost “2” is generally generated in the relay node.
  • the code information recalculation process has the same processing cost as the packet verification process.
  • a process for decrypting the verification logical information included in the packet and a process for encrypting the verification logical information according to the local transmission destination are required. It becomes.
  • the decryption process and the encryption process for the verification logical information are necessary so that the encrypted logical information included in the received packet can be decrypted even at the local transmission destination.
  • the process of decrypting the verification logical information and the process of encrypting the verification logical information depend on the length of data to be encrypted (or decrypted), as shown in FIGS. Therefore, the process for calculating the code information for the 128-byte payload data and the process for encrypting (or decrypting) the 16-byte verification logical information are generally in an 8-to-1 processing cost relationship. it is conceivable that. Therefore, the processing cost “1.25” is generated in the relay node in the present embodiment together with the decryption processing, the encryption processing, and the packet verification processing.
  • the code information recalculation process is not required even if the verification logical information is not shared in advance, so that the processing load at the relay node is also reduced as compared with the technique of FIG. can do.
  • this effect becomes more prominent as the data length for which the code information is calculated becomes longer. Therefore, this practical example is more effective when transferring larger data in packets.
  • FIG. 13 is a hardware configuration example of the node 10.
  • the node 10 includes a CPU (Central Processing Unit) 301, a RAM (Random Access Memory) 302, a flash memory 303, an interface (I / F) 304, an encryption circuit 305, a sensor 306, and a bus 307. I have.
  • the CPU 301 to the sensor 306 are connected by a bus 307, respectively.
  • the CPU 301 governs overall control of node 10.
  • the CPU 301 functions as the acquisition unit 111, the packet generation unit 112 or 124, the logical information generation unit 113, the calculation unit 114, and the verification unit 123 by executing the program expanded in the RAM 302.
  • the RAM 302 is used as a work area for the CPU 301.
  • the flash memory 303 stores programs, information on various keys, and a routing table.
  • the flash memory 303 is an example of the storage device 117 or 126.
  • the program includes, for example, a program for executing each process in the node shown in the flowcharts of FIGS. For example, a control program for causing a node to execute packet transmission processing, packet verification processing, and packet transfer processing is stored in the flash memory 303.
  • the program stored in the flash memory 303 is expanded in the RAM 302 and executed by the CPU 301, whereby the node 10 functions as various processing units described in FIG. 4 or FIG. Further, the node 10 executes the processes of FIGS. 9 and 10.
  • the I / F 304 transmits and receives packets by multi-hop communication.
  • the I / F 304 is an example of the communication unit 116 or 121.
  • the encryption circuit 305 is a circuit that encrypts data using an encryption key when encrypting the data. For example, when the packet is encrypted and transmitted, the encryption circuit 305 functions.
  • the encryption circuit 305 is an example of the encryption processing unit 115 or 125 and the decryption processing unit 122. Note that when the encryption is executed by software, the CPU 301 functions as the encryption processing unit 115 or 125 and the decryption processing unit 122.
  • the CPU 301 reads a program corresponding to the encryption circuit 305 from the flash memory 23 and executes it.
  • Sensor 306 detects data specific to sensor 306. For example, data suitable for the measurement target is detected, such as temperature, humidity, water level, precipitation, air volume, volume, power consumption, time, time, and acceleration.
  • data suitable for the measurement target is detected, such as temperature, humidity, water level, precipitation, air volume, volume, power consumption, time, time, and acceleration.
  • the CPU 301 functions as the acquisition unit 111, the detection value is acquired from the sensor 306.

Abstract

【課題】 全ノードで論理情報を予め共有することなく、各ノードが同一の符号情報を用いてパケット検証を行うことを課題とする。 【解決手段】第一のノードと第二のノードとで共有された第一の論理情報を用いて、第二の論理情報を暗号化する第1の暗号処理部と、暗号化された第二の論理情報と、データと、データの内容および第二の論理情報に依存する符号情報とを含むパケットを送信する第1の送信部とを有する第一のノード、及び、パケットを受信する受信部と、第二の論理情報を、第一の論理情報で復号する復号処理部と、第二のノードと前記第三のノードとで共有された第三の論理情報で、第二の論理情報を暗号化する第2の暗号処理部と、暗号化された第二の論理情報と、データと、符号情報とを、第三のノードへ送信する第2の送信部とを有する第二のノードを含むネットワークシステム。

Description

ネットワークシステム、ノード、および通信方法。
 本明細書に開示する技術は、アドホックネットワークシステムにおいて、ノード間でパケット送受信する技術に関する。
 アドホックネットワークとは、無線通信によってリンクする自己構成型のネットワークの一種である。アドホックネットワークは、通信機能を有する複数の装置により構成される。なお、アドホックネットワークにおける、通信機能を有する装置は、ノードと呼ばれる。また、アドホックネットワーク内の各ノードは、マルチホップ通信によりパケットを送受信する。マルチホップ通信は、互いの通信圏内に存在しないノード同士であっても、各ノードの通信圏内に存在する別のノードを介して通信を可能にする技術である。なお、パケットがマルチホップ通信されるルートを、転送経路と称する。転送経路は、複数のノードにより形成される。
 例えば、アドホックネットワークを利用したシステムとして、各家庭の電力メータに無線通信可能なノードを組み込むことにより、アドホックネットワーク経由で各家庭の消費電力量などを収集する検針システムがある。検針システムでは、各電力メータが検出した各家庭の消費電力量を含むパケットが、各家庭の電力メータが備える各ノードから電力会社のシステムまで転送される。このように、検針システムで転送されるパケットに、各家庭の電力使用に係る個人情報が含まれる。
 アドホックネットワークにおけるセキュリティ対策として、パケットの少なくとも一部を暗号化することで、転送経路でパケットが第三者に搾取された場合でも、パケットの内容を秘匿化する技術がある。さらに、あるノードに対してパケットが送信された場合に、メッセージ認証子(MAC)を利用して、パケットの改ざんや送信者のなりすましがないかを検証する技術がある。暗号化およびMACを利用したパケット検証を行う技術は、例えば、特許文献1に開示されている。
 一方、セキュリティをさらに強化する為に、各ノードにおける暗号用の暗号鍵を全ノードで共通とするではなく、あるノードと、当該ノードと通信可能な範囲に存在する他のノードとの間で共有されるアクセスキーを用いて、データを暗号化する技術がある。アクセスキーを利用したアドホック通信を行う技術は、例えば、特許文献2に開示されている。
国際公開2011-121713号公報 国際公開2009-130917号公報
 以下、パケットの改ざんや送信者のなりすましを検証することを、パケットを検証するという。パケットを検証する方法として、代表的なものに先に述べたように、MAC検証がある。
 まず、アドホックネットワークを例に、MACを用いたパケット検証について説明する。MACには、共通鍵暗号の技術が採用される。そして、送受信者間でMAC算出用のMAC鍵を、秘密の状態で共有することで、パケットの検証が可能となる。
 具体的には、まず、送信側は、送信したいデータとMAC鍵とに依存するタグを算出する。タグは、固定長のビット列で、例えば128ビットなどである。
 図1は、CMACを用いたMAC算出の例を示す図である。CMACは、MAC算出のアルゴリズムの一つである。CMACというアルゴリズムでタグを算出する場合には、平文であるデータを、所定のビット長に区切る。区切られた各データは、ブロックと称される。
 複数のブロックのうち、最初のブロック1をMAC鍵でブロック暗号化する。次に、暗号化されたブロック1と、次のブロックとをXOR計算する。XOR計算の結果は、さらにブロック暗号化される。プロセッサは、このような処理を連鎖的に実施する。最後のブロック4は、MAC鍵に由来する定数を用いて、XOR計算がなされ、さらにブロック暗号化される。
 以上の処理によって、固定長のタグが得られる。タグは、MAC鍵とデータ内容とに依存する。アドホックネットワークでは、送信側のノードにより算出されたタグは、パケット内に設定され、他のノードへ送信される。
 パケットを受信したノードは、パケットの検証を実行する。具体的には、まず、受信側のノードも、上記と同様の処理で、データとMAC鍵とに依存するタグを算出する。
 次に、パケット内に設定されたタグと、算出されたタグとを比較する。一致している場合は、受信側のノードは、受信したパケットが、データの改ざんや送信者のなりすましがない正当なパケットであると判断できる。つまり、送信側で利用されたMAC鍵およびMAC算出の対象となったデータと、受信側で利用されたMAC鍵およびMAC算出の対象となったデータとが、同一であることが証明される。
 一方、一致しない場合は、受信側のノードは、受信したパケットが、データの改ざんや送信者のなりすましの可能性がある不正なパケットであると判断できる。
 上記説明したとおり、タグを算出する為に、共通鍵暗号処理と同程度の処理負荷が要される。ここでは、MACを例に説明を行ったが、パケットを検証する為の他の技術でも、パケットを検証する為の符号情報を算出する為に、処理負荷が生じる。他の技術としては、畳み込み演算誤り訂正符号などが挙げられる。
 なお、符号情報は、論理情報とデータの内容とに応じて、一意に決まる情報である。上述のタグは、符号情報の一種である。論理情報は、あるアルゴリズムにおいて、採用される論理が規定された情報である。なお、セキュアな通信を確率する為には、論理情報は、第三者に対して秘密である必要がある。例えば、MAC鍵は、論理情報の一種である。また、データを暗号化する為の暗号化アルゴリズムにおいて利用される暗号鍵も、論理情報の一種である。
 ここで、上述した従来技術においては、アドホックネットワークを構成する複数のノードにおいて、共通のMAC鍵が使用されている。共通のMAC鍵を各ノードが使用することで、次の様な利点が考えられる。
 転送経路の始点となるノードA、ノードB、ノードC,ノードDとパケットが複数回転送される場合を考える。全ノードが同一のMAC鍵を有していれば、パケットの改ざんやなりすましがない限り、ノードAにて算出されたタグと、他のノードが算出したタグとは一致する。
 つまり、全ノードで同一の論理情報が共有されていれば、パケット内に設定された符号情報は、特に更新される必要はない。いずれのノードも、共通の論理情報で算出した符号情報と、パケット内にはじめに設定された符号情報とを利用して、適切にパケットの検証が可能である。
 しかし、セキュリティの観点から、パケットの検証に、全ノードで共通の論理情報を用いることは好ましくない。論理情報が第三者に漏洩した場合に被害が及ぶ範囲が大きいことや、悪意のある第三者が論理情報を入手できる可能性を高めてしまうことが理由である。
 そこで、従来技術に開示されたアクセスキーを、パケット検証用の論理情報として採用することで、全ノードで共通の論理情報を用いないように、変更することが考えられる。つまり、アクセスキーに定義された論理関係を、符号情報を算出する為の論理情報として利用する。
 図2は、アドホック通信において、全ノードの内、一部のノードで論理情報を共有する場合のパケット検証を説明する為の図である。
 図2では、ノードA、ノードB、ノードC、ノードDを含む転送経路が示されている。例えば、ノードAとノードBで論理情報Xを共有し、ノードBとノードCで論理情報Yを共有し、ノードCとノードDで論理情報Zを共有しているとする。なお、論理情報XYZには、互いに異なる論理関係が規定されているとする。符号情報を算出する為の論理情報は、事前に各ノードの記憶領域に論理情報が記録されてもよいし、または、従来技術に示すアクセスキーと同様の方法で定期的に各ノードが配布する形態でも良い。
 まず、ノードAは、ノードBに対してデータを含むパケットを送信する際に、ノードBと共有された論理情報Xを用いて、パケットを検証する為の符号情報Xを算出する。そして、データおよび符号情報Xを含むパケットを、ノードBに対して送信する。
 次に、ノードBは、パケットを検証する。パケットの送信元であるノードAと共有された論理情報Xを利用して符号情報を算出し、パケット内に含まれる符号情報Xと比較する。パケットが正当である場合には、ノードBは、パケットをノードCに送信するが、ノードBは、ノードCと共有された論理情報Yを利用して符号情報Yを算出する。そして、データおよび符号情報Yを含むパケットを、ノードCに対して送信する。
 同様に、ノードCからノードDに対して、データおよび符号情報Zを含むパケットが送信される。なお、符号情報Zは、ノードCとノードDとが共有する論理情報Zにより算出された情報である。このように、各ノードでは、パケットの検証と、次の送信先に応じた符号情報の算出という処理が各々実行される。図2に示す技術を採用する事で、転送経路内で、パケットの検証が可能となるとともに、全ノードで共通の論理情報を共有する必要がなくなる。
 しかし、上述したとおり、各ノードでは、パケットの検証処理のほかに、次の送信先に応じた符号情報の算出という処理が強いられることになる。これは、転送経路内で、パケット検証用の論理情報が同一でない為、各々の論理情報に依存する符号情報も、共通にはならないからである。言い換えると、全ノードは、パケット検証において、同じ符号情報を利用することができない為、各ノードでは、次の送信先に応じた符号情報を新たに算出しなければならない。
 例えば、図2において、ノードAは、論理情報Xに依存する符号情報Xが設定されたパケットを、ノードBへ送信する。ここで、ノードBは、符号情報Xが設定されたパケットを、そのままノードCへ送信したとする。ノードCが、ノードBと共有した論理情報Yを用いてパケットの検証を行うと、パケットの改ざんやなりすましが無かったとしても、パケット内の符号情報Xと、論理情報Yにより算出された符号情報は一致しない。よって、ノードCは、受信したパケットを不正なパケットと判定してしまう。このような事態を避けるために、全ノードにおいて、送信先に応じた論理情報で符号情報を算出する処理が必要となる。
 したがって、部分的に共有された論理情報を採用することで、セキュリティは向上されるが、同一の符号情報を利用することができなくなる。これは、パケット検証の処理以外に、符号情報を新たに算出する処理を全ノードに課す事となり、各ノードに処理負荷が生じる。さらに、符号情報を新たに算出する処理は、上述のとおり処理負荷が高いという点からも、好ましくない。
 したがって、本発明は、全ノードで論理情報を予め共有することなく、各ノードが同一の符号情報を用いてパケット検証を可能とすることを目的とする。
 本発明の一観点によれば、第一のノード、第二のノード、および第三のノードを含むネットワークシステムにおいて、前記第一のノードは、前記第一のノードと前記第二のノードとで共有された第一の論理が規定された第一の論理情報を用いて、データを検証する際に用いられる第二の論理が規定された第二の論理情報を暗号化する第1の暗号処理部と、前記第一の論理情報で暗号化された前記第二の論理情報と、前記データと、該データの内容および該第二の論理情報に依存する符号情報とを含むパケットを、前記第二のノードに対して送信する第1の送信部とを有し、前記第二のノードは、パケットを受信する受信部と、前記第二の論理情報を、前記第一の論理情報で復号する復号処理部と、前記第二のノードと前記第三のノードとで共有された第三の論理が規定された第三の論理情報で、前記第二の論理情報を暗号化する第2の暗号処理部と、前記第三の論理情報で暗号化された前記第二の論理情報と、前記受信したパケットに含まれるデータと、前記符号情報とを、前記第三のノードへ送信する第2の送信部とを有する。
 本発明の一観点によれば、転送経路を形成する複数のノードは、論理情報を全ノードで事前に共有する事無く、同一の符号情報を利用してパケットを検証することができる。
図1は、CMACを用いたMAC算出の例を示す図である。 図2は、アドホック通信において、全ノードの内一部のノードで論理情報を共有する場合のパケット検証を説明する為の図である。 図3は、実施の形態にかかるネットワークシステムの一実施例を示す説明図である。 図4は、ノードの機能ブロック図である。 図5は、パケットのデータ構成例を示す図である。 図6は、ルーティングテーブルのデータ構成を示す図である。 図7は、管理テーブルのデータ構成例を示す図である。 図8は、ノード10の機能ブロック図である。 図9は、ノード11によるパケット送信処理フローチャートである。 図10は、ノード12によるパケット検証およびパケット転送処理フローチャートである。 図11は、本実施例に開示の技術の一つの効果を説明する為の第一の図である。 図12は、本実施例に開示の技術の一つの効果を説明する為の第二の図である。 図13は、ノードのハードウェア構成例である。
 以下に添付図面を参照して、この発明にかかる通信装置、通信方法、およびシステムの実施の形態を詳細に説明する。
 (実施例1)
 図3は、実施の形態にかかるネットワークシステムの一実施例を示す説明図である。ネットワークシステムは、複数のノードNと、シンクノードSNと、サーバSとを含む。まず、図3を用いて、本実施の形態に係るネットワークシステムおよび、ネットワークシステムにおけるパケットの送信について、説明する。また、本実施の形態に係るネットワークシステムは、アドホックネットワークシステムである。
 サーバSとシンクノードSNとはインターネット、LAN、WANなどの通常ネットワーク200を介して接続されている。シンクノードSNとノードNa~Nhとは、アドホックネットワーク100を介して接続されている。
 アドホックネットワーク100内には、複数のノードNが設けられている。図3では、代表としてノードNa~Nhを示している。
 シンクノードSNは、アドホックネットワーク100と通常ネットワーク200とを接続する中継機器である。シンクノードSNは、アドホックネットワーク100のプロトコルの形式の情報と通常ネットワーク200のプロトコルの形式の情報の両方を送受信可能である。
 また、シンクノードSNは、アドホックネットワーク100と通常ネットワーク200との間で情報をプロトコル変換することにより、通信を行う。例えば、アドホックネットワーク100内のノードNのいずれかからサーバS宛に送信されたパケットは、シンクノードSNにてプロトコル変換される。その後、シンクノードSNが、当該パケットを、通常ネットワーク200に送信することで、パケットはサーバSに到達する。
 また、サーバSやシンクノードSNからそれぞれのノードN宛てに送信されたデータは、シンクノードSNにてプロトコル変換され、シンクノードSNからアドホックネットワーク100内の各ノードNにパケットとして送信される。
 なお、シンクノードSNは、各ノードN間の通信の可否をルーティングテーブルにより把握する。そして、シンクノードSNは、ルーティングテーブルの情報を元に、パケットの送信ルートを、自律的に生成する。
 また、各ノードNは、個別にルーティングテーブルを生成してもよい。各ノードNは、周囲のノードNと通信状況に関する情報を交換する。そして、各ノードNは、通信状況に関する情報に基づいて、ルーティングテーブルを生成する。例えば、ノードNfとノードNgが通信不能となった場合でも、新たな送信ルートの設定が可能となる。例えば、ノードNgは、ノードNeを経由する新たなルートを構築することができる。本実施の形態においては、各ノードがルーティングテーブルを生成するとして、以下説明を行う。
 各ノードは、所定の通信圏内で通信可能な他ノードとマルチホップ通信が可能な装置である。アドホックネットワーク100では、すべてのノードNa~Nhが直接シンクノードSNと通信できる必要はなく、他のノードを経由する事で、各ノードNa~Nhは、シンクノードSNと通信する。
 このため、アドホックネットワーク100では、一部のノードがシンクノードSNと通信可能であればよい。図3では、シンクノードSNと直接通信可能なノードは、ノードNa,Ndであるとする。
 なお、図3の例では、アドホックネットワーク100内に1台のシンクノードSNを設ける構成としたが、一つのアドホックネットワーク100内に複数台のシンクノードSNを設ける構成としてもよい。また、図3ではアドホックネットワーク100は一つであるが、複数のアドホックネットワークを含む場合もある。複数のアドホックネットワークを含む場合、複数のアドホックネットワークにはそれぞれ少なくとも一つのシンクノードSNが含まれており、サーバSは当該シンクノードSNと通常ネットワークを介して接続する。この構成により、サーバSと全てのノードNとのデータ送受信が可能になる。
 本実施例のアドホックネットワークシステムは、たとえば各家庭の電力の使用量を収集するシステムに適用される。このようなシステムの場合、各ノードNは、各家庭の電力の使用量を検出するための各家庭の電力メータに設置される。各ノードNが検出した電力の使用量を、シンクノードSNを経由してサーバSに送信することで、サーバSは、各家庭の電力の使用量を収集することが可能になる。
 具体的には、例えば、各家庭の電力メータにそれぞれノードNが組み込まれているとする。各ノードNは、各ノードNは、各家庭の電力や使用量を、アドホックネットワーク100を介してサーバSに送信する。
 なお、各家庭の電力の使用量は、各ノードが計測してもよく、また、各ノードが電力メータから取得してもよい。また、各ノードは、自身の記憶領域に、検出した電力使用量を記憶する。シンクノードSNは、アドホックネットワーク100内の各ノードから受信した各家庭の電力や使用量を、通常ネットワーク200を介して電力会社のサーバSに送信する。これにより、作業員が現地に出向くことなく電力の使用量を収集することができる。
 また、本ネットワークシステムは、電力の使用量の収集だけでなく、各ノードに温度,湿度,光量などを検知するセンサ機能を持たせて、例えば、環境などの調査に使用することも可能である。
 図3では、アドホックネットワーク100を構成するノードNa~Nhにより、4つの転送経路R1~R4が設定されているものとする。具体的には、転送経路R1は、ノードNcとノードNbとノードNaとシンクノードSNとを含むルートである。転送経路R2は、ノードNeとノードNdとシンクノードSNとを含むルートである。転送経路R3は、ノードNgとノードNfとノードNdとシンクノードSNとを含むルートである。転送経路R4は、ノードNhとノードNfとノードNdとシンクノードSNとを含むルートである。なお、ノードNaやノードNdはシンクノードSNと直接通信するノードである。
 シンクノードSNに近いノードを上流側のノードと呼ぶ。なお、アドホックネットワーク100の規模によっては、ノードNbやノードNeも上流側のノードとなる。各ノードNa~NhからサーバSへデータが送信される場合は、各ノードNa~Nhは、各々検出したデータをルーティングされた転送経路R1~R4に従ってシンクノードSNに送信する。
 図4は、ノードの機能ブロック図である。なお、ノードが、パケットを送信する送信ノードとなる場合は、図4におけるノード11として機能する。一方、ノードが、パケットを転送する中継ノードとなる場合は、図4におけるノード12として機能する。例えば、図3における転送経路R1において、ノードNcから、シンクノードSNへパケットが転送される場合には、ノードNcが送信ノードとなる。そして、ノードNaおよびNbが中継ノードとなる。
 ノード11は、取得部111、パケット生成部112、論理情報生成部113、算出部114、暗号処理部115、通信部116、記憶部117を有する。
 取得部111は、センサからの検出値を取得する処理部である。例えば、取得部111は、ノード11と通信可能なセンサから、消費電力量や温度等の検出値を取得する。なお、取得された検出値は、パケットの一部として、他のノードまたはシンクノードへ送信される。
 パケット生成部112は、パケットを生成する処理部である。例えば、パケット生成部112は、ヘッダ情報を生成するとともに、検出値およびヘッダ情報を含むパケットを生成する。
 図4におけるパケット生成部112は、図5に示すパケットを生成する。
 図5は、パケットのデータ構成例を示す図である。
 パケット20には、第一のヘッダ部21、第二のヘッダ部22、ペイロードデータ部23、符号情報格納部24、論理情報格納部25が、それぞれ割り当てられる。第一のヘッダ部21には、第一のヘッダ情報が記述される。第一のヘッダ情報は、ローカル送信元アドレス、ローカル送信先アドレスを含む。
 ローカル送信元アドレスは、パケット20を送信する装置のアドレスに関する情報である。ローカル送信先アドレスは、パケット20の宛先となる装置のアドレスに関する情報である。なお、本実施例においては、ローカル送信元アドレスおよびローカル送信先アドレスは、ノード、シンクノードのアドレスである。
 第二のヘッダ部22には、第二のヘッダ情報が記述される。第二のヘッダ情報は、グローバル送信元アドレス、グローバル送信先アドレスを含む。なお、ヘッダ情報は、第一のヘッダ情報と第二のヘッダ情報とを含む情報である。グローバル送信元アドレスは、ペイロードデータ部23に記述されるペイロードデータを生成した装置のアドレスに関する情報である。
 グローバル送信先アドレスは、ペイロードデータ部23に記述されるペイロードデータを最終的に受信する装置のアドレスに関する情報である。なお、本実施例においては、グローバル送信元アドレスおよびグローバル送信先アドレスは、ノード、シンクノードのアドレスである。
 ペイロードデータ部23には、ペイロードデータが記述される。例えば、各ノードで取得された検出値が記述される。また、検針システムにおいては、ペイロードデータには、各家庭の消費電力量の情報等が含まれる。なお、ペイロードデータ部23に格納されるペイロードデータは、暗号化されたペイロードデータであってもよい。
 符号情報格納部24には、パケット20を検証する為の符号情報が記述される。符号情報は、論理情報とデータの内容とに応じて、一意に決まる情報である。例えば、MACのアルゴリズムにより算出されるタグは、符号情報の一種である。論理情報は、あるアルゴリズムにおいて、採用される論理が規定された情報である。
 ここで、本実施例では、符号情報は、第二のヘッダ情報およびペイロードデータを含むデータに対して、算出されるものとする。なお、ペイロードデータに対して符号情報が算出されてもよい。ただし、第一のヘッダ情報は、符号情報の算出対象から除外される。
 論理情報格納部25には、暗号化された検証用の論理情報が記述される。検証用の論理情報は、論理情報の内、パケット検証時に利用される論理が規定された情報である。例えば、後述の論理情報生成部により生成されたMAC鍵は、検証用の論理情報の一例である。なお、検証用の論理情報は、後述の暗号処理部115によって、ローカル送信先アドレスに応じて暗号化される。
 検証用の論理情報は、データ検証用のアルゴリズムにおいて用いられる鍵に相当する情報であって、例えばMAC鍵である。一方、後述する暗号処理部115による暗号化に利用される論理情報は、暗号用の論理情報と称される。暗号用の論理情報は、暗号化アルゴリズムにおいて用いられる鍵に相当する情報である。
 パケット生成部112は、グローバル送信先アドレスおよびグローバル送信元アドレスを第二のヘッダ部に設定する。また、パケット生成部112は、暗号化されたペイロードデータを、ペイロードデータ部に設定する。そして、パケット生成部112は、符号情報を、符号情報格納部に格納する。さらに、パケット生成部112は、ルーティングテーブルを参照し、ローカル送信先アドレスを決定する。そして、ローカル送信先アドレスとローカル送信元アドレスを第一のヘッダ部に設定する。さらに、パケット生成部112は、ローカル送信先アドレスに応じて暗号化された検証用の論理情報を、論理情報格納部に格納する。
 図4における論理情報生成部113は、検証用の論理情報を生成する。例えば、論理情報生成部113は、乱数を、検証用の論理情報として生成する。なお、論理情報生成部113は、乱数発生器により構成されるとしてもよい。
 算出部114は、検証用の論理情報を用いて、符号情報を算出する。例えば、算出部114は、第二のヘッダ情報およびペイロードデータを対象として、MAC算出処理を行う。MAC算出によって、符号情報であるタグを取得する。なお、符号情報の算出対象は、暗号化されたペイロードデータであってもよい。例えば、後述の暗号処理部115により暗号化されたペイロードデータを、算出部114が取得し、暗号化されたペイロードと、第二のヘッダ情報に対して符号情報を算出する。
 暗号化処理部115は、検証用の論理情報を暗号化する処理部である。なお、検証用の論理情報を暗号化する際には、ローカル送信先のノードと自ノードが共有する暗号用の論理情報が利用される。例えば、暗号化処理部115は、暗号用の論理情報として、ローカル送信先から配布されたアクセスキーを利用する。
 また、暗号化処理部115は、パケットを第三者に対して秘匿する為に、ペイロードデータを暗号化する。なお、ペイロードデータを暗号化する際には、グローバル送信先のノードまたはシンクノードと、自ノードとが共有する暗号用の論理情報が利用される。例えば、暗号化処理部115は、事前に配布されたサーバキーを利用する。
 通信部116は、他のノードと通信する処理部である。例えば、パケット生成部112が生成したパケットを、ローカル送信先アドレスに送信する。通信部116は、送信ノードにおける受信部および送信部として機能する。
 記憶部117は、各種情報を記憶する。例えば、記憶部117は、ルーティングテーブル、暗号用の論理情報を管理する管理テーブルを記憶する。
 図6は、ルーティングテーブルのデータ構成例である。ルーティングテーブル1171は、グローバル送信先アドレス、ローカル送信先アドレス、評価値を対応付けて記憶する。
 なお、ルーティングテーブルの作成手法は、従来の手法が採用される。また、ノード11およびノード12は、ルーティングテーブルを作成する手段を有する。そして、当該手段がルーティングテーブル1171を作成し、記憶部117へ格納する。なお、ルーティングテーブルは定期的に更新される。
 項目「グローバル送信先アドレス」には、パケットのグローバル送信先となるノードのアドレスが記述される。 項目「ローカル送信先アドレス」は、自ノードと通信可能な他のノードのアドレスが、各レコードに記述される。項目「評価値」は、各ローカル送信先と自ノードとの通信状況に応じて算出された評価値が格納される。なお、評価値は、例えば、通信強度が大きいほど、大きな値が設定される。
 つまり、パケット生成部112は、パケット送信時に、パケットのグローバル送信先となるグローバル送信先アドレスをキーにルーティングテーブルを参照する。そして、パケット生成部112は、グローバル送信先アドレスに対応づいたローカル送信先アドレスの内、もっとも評価値が大きいローカル送信先アドレスを取得する。そして、パケット生成部112は、取得したローカル送信先アドレスを、第一のヘッダ部に設定する。
 図6は、ノードNcのルーティングテーブルを示している。例えば、ノードNcが、シンクノードSNへパケットを送る場合、評価値が最も大きい「Nbのアドレス」がローカル送信先アドレスとして取得される。
 図7AおよびBは、管理テーブルのデータ構成例である。図7Aは、検証用の論理情報を暗号化する際の論理情報を管理する第一の管理デーブル1172である。図7Bは、ペイロードデータなどのデータを暗号化する際の論理情報を管理する第二の管理テーブル1173である。
 第一の管理テーブル1172は、ローカル共有先アドレスと、暗号用の論理情報とを対応付けて記憶する。項目「ローカル共有先アドレス」には、論理情報を共有するノードのアドレスが記憶される。項目「暗号用の論理情報」には、ローカル共有先と自ノードとの間で共有された論理情報が記憶される。例えば、ローカル共有先毎に、ローカル共有先と共有されたアクセスキーが記憶される。つまり、検証用の論理情報を暗号化する場合の論理情報は、全ノードのうち、通信可能なノード間で共有された論理情報である。
 図7Aは、例えば、ノードNcの第一の管理テーブルである。パケット生成部112により、ローカル送信先アドレスが「Nbのアドレス」に決定された場合には、暗号処理部115は「Nbのアクセスキー」を用いて、検証用の論理情報を暗号化する。
 第二の管理テーブル1173は、グローバル共有先アドレスと、暗号用の論理情報とを対応付けて記憶する。項目「グローバル共有先アドレス」には、論理情報を共有するノードまたはシンクノードのアドレスが記憶される。項目「暗号用の論理情報」には、グローバル共有先と自ノードとの間で共有された論理情報が記憶される。例えば、グローバル共有先毎に、グローバル共有先と共有されたサーバキーが記憶される。
 図7Bは、例えば、ノードNcの第二の管理テーブルである。パケット生成部112が、グローバル送信先アドレスとして「SNのアドレス」を設定した場合には、暗号処理部115は「サーバキー」を用いて、ペイロードデータを暗号化する。
 次に、中継ノードとして機能するノード12について説明する。ノード12は、通信部121、復号処理部122、検証部123、パケット生成部124、暗号処理部125、記憶部126を有する。
 通信部121は、他のノードと通信する処理部である。例えば、ノード11からパケットを受信する。さらに、他のノードやシンクノードへパケットを転送する。通信部121は、中継ノードにおける受信部および送信部として機能する。
 復号処理部122は、受信したパケットの論理情報格納部に格納された論理情報を復号する。なお、復号処理部122は、パケットのローカル送信元と自ノードとが共有した暗号用の論理情報を用いて、復号を行う。なお、復号処理部122は、自ノードがグローバル送信先アドレスに相当する場合は、ペイロードデータの復号を行う事により、ペイロードデータを入手する。
 検証部123は、検証用の論理情報を用いて、パケットの検証を行う。例えば、検証部123は、MAC鍵を用いて、パケットのMAC検証を行う。なお、パケットを受信する度に、パケットの検証を行う。また、自ノードの処理負荷が所定以下である場合に、パケットの検証を行ってもよい。パケットの検証の結果、パケットが正当なパケットであることが判定された場合には、他のノードへパケットは転送される。一方、パケットが不正なパケットである事が判定された場合には、パケットは破棄される。
 パケット生成部124は、受信したパケットが正当なパケットである場合に、他のノードへ転送するパケットを生成する。つまり、パケット生成部124は、第一のヘッダ情報を書き換える。さらに、パケット生成部124は、後述の暗号処理部125により再暗号化された検証用の論理情報を、論理情報格納部に設定する。
 暗号処理部125は、検証用の論理情報を、書き換えられた第一のヘッダ情報におけるローカル送信先に応じて、暗号化する処理部である。記憶部126は、記憶部125と同様に、ルーティングテーブルおよび管理テーブルを記憶する。つまり、パケット生成部124は、ルーティングテーブルを参照して、ローカル送信先アドレスを取得するとともに、第一のヘッダ情報に設定する。また、暗号処理部125は、第一の管理テーブルから、ローカル送信先アドレスをローカル共有先アドレスに持つレコードを検索し、当該レコードにおける暗号用の論理情報を取得する。そして、暗号処理部125は、取得した暗号化用の論理情報を利用して、検証用の論理情報を暗号化する。
 図4においては、説明のために、送信ノードであるノード11と、中継ノードであるノード12とを別のノードとして記載したが、実際は、あるノード10は、ノード11として機能する場合と、ノード12として機能する場合がある。
 図8は、ノード10の機能ブロック図である。なお、各処理部は、図4に示す各処理部と同様の処理を行う。例えば、あるノード10が検出値をシンクノードSNへ送信する場合には、送信ノードであるノード11として機能する。一方、あるノードが、他のノードから受信したパケットを他のノードへ転送する場合は、中継ノードであるノード12として機能する。図8においては、各処理部は、ノード11またはノード12における同一の処理部と同様の処理を行う。
 図9は、ノード11によるパケット送信処理の処理フローチャートである。すなわち、ノード10が、送信ノードとして機能する場合のパケット送信処理の処理フローである。
 まず、取得部111が、センサから検出値を取得する(Op.1)。そして、パケット生成部112は、第二のヘッダ情報を生成する(Op.2)。そして、生成したヘッダ情報は、パケットの第二のヘッダ部に設定される。すなわち、グローバル送信先を決定するとともに、グローバル送信先アドレスを取得する。なお、記憶部17は、各ノードおよびシンクノードのアドレスを記憶するテーブルを有しており、パケット生成部112は、当該テーブルより、アドレスを取得する。また、パケット生成部112は、グローバル送信元アドレスに自ノードのアドレスを設定する。
 続いて、暗号処理部115は、検出値を含むペイロードデータを、グローバル送信先に応じた論理情報で、暗号化する(Op.3)。暗号化されたペイロードデータは、パケットのペイロードデータ部に設定される。例えば、グローバル送信先アドレスが「SNのアドレス」である場合に、暗号処理部115は、第二の管理テーブルを参照し、「SNのアドレス」をグローバル共有先アドレスにもつレコードから、サーバキーを取得する。そして、サーバキーでペイロードデータを暗号化する。
 次に、論理情報生成部113は、検証用の論理情報を生成する(Op.4)。そして、算出部114は、暗号化されたペイロードデータ、および第二のヘッダ情報を対象として、検証用の論理情報に依存する符号情報を算出する(Op.5)。算出された符号情報は、パケットの符号情報格納部に格納される。
 パケット生成部112は、第一のヘッダ情報を生成する(OP.6)。生成された第一のヘッダ情報は、パケットの第一のヘッダ部に設定される。具体的には、パケット生成部112は、ルーティングテーブル1171を参照し、ローカル送信先アドレスを決定する。パケット生成部112は、ローカル送信先アドレスと自ノードのアドレスを含む第一のヘッダ情報を生成する。
 次に、暗号処理部115は、検証用の論理情報を暗号化する(Op.7)。暗号化された検証用の論理情報は、論理情報格納部に格納される。具体的には、暗号処理部115は、第一の管理テーブルを参照し、ローカル送信先アドレスを含むレコードから、暗号用の論理情報を取得する。暗号処理部115は、ローカル送信先と共有された論理情報で、検証用の論理情報を暗号化する。
 通信部116は、パケットをローカル送信先アドレスに対して送信する(Op.8)。
 以上の処理によって、送信ノートから中継ノードへパケットが送信される。本実施例によれば、送信ノードにおいて、検証用の論理情報が生成される。さらに、検証用の論理情報は、ローカル送信先アドレスに応じて暗号化されるため、よりセキュリティが高い状態で、送信される。さらに、符号情報は、検証用の論理情報に依存する情報である為、検証用の論理情報を入手可能なノードであれば、同一の符号情報を用いてパケットを検証することができる。つまり、転送経路において、共通の符号情報が利用可能である。
 図10は、ノード12によるパケット検証およびパケット転送処理フローチャートである。すなわち、ノード10が、中継ノードとして機能する場合のパケット検証およびパケット転送処理フローである。
 通信部121は、パケットを受信する(Op.10)。復号処理部122は、パケットの論理情報格納部に格納された検証用の論理情報を復号する(Op.11)。なお、復号処理部122は、第二の管理テーブルを参照し、ローカル送信元のアドレスに応じた暗号用の論理情報を利用して、復号を行う。
 検証部123は、パケット内に設定されたグローバル送信先アドレスが自ノードのアドレスと一致するか判定する(Op.12)。一致する場合は(Op.12Yes)、受信したパケットは、最終的な宛先を自ノードとするパケットであることとなる。
 一致する場合は(Op.12Yes)、検証部123は、パケットを検証し、正当なパケットであるか判定する(Op.13)。つまり、Op.12において復号された検証用の論理情報を用いて、ペイロードデータ格納部に格納されている情報、および第二のヘッダ部に格納されている情報を対象として、符号情報を算出する。そして、検証部123は、算出した符号情報と、パケットの符号情報格納部に格納されている情報とを比較する。一致する場合は、受信したパケットは、正当なパケットであると判定される。
 正当なパケットである場合は(Op.13Yes)、復号処理部122は、第二の管理テーブルを参照し、ペイロードデータを復号する(Op.14)。つまり、復号処理部122は、グローバル送信先アドレスを、グローバル共有先アドレスとするレコードを、第二の管理テーブルから検索する。そして、復号処理部122は、当該レコードにおける暗号用の論理情報を取得する。取得した論理情報を利用して、ペイロードデータを復号する。
 一方、受信したパケットが正当なパケットでない場合は(Op.13No)、検証部123は、受信したパケットを破棄する(Op.15)。
 Op.12において判定結果がNoである場合は、検証部123は、パケットの検証を実行するか判定する(Op.16)。例えば、処理負荷が閾値以上である場合は、パケットの検証を省略する事としてもよい。なお、Op.16の処理は省略され、必ずパケットの検証を行うとしてもよい。
 パケットの検証を実行する場合は(OP.16Yes)、検証部123はパケットの検証を実行する。受信したパケットが正当なパケットである場合には(Op.17Yes)、パケット生成部124は第一のヘッダ情報を生成する(Op.18)。
 具体的には、ルーティングテーブルを参照し、グローバル送信先アドレスに対応するローカル送信先アドレスの内、もっとも評価値の高いアドレスを取得する。そして、ローカル送信元アドレスに自アドレスを、ローカル送信先アドレスに取得したアドレスを含む第一のヘッダ情報を生成する。そして、第一のヘッダ情報は、第一のヘッダ部に格納される。
 次に、暗号化処理部125は、検証用の論理情報を、ローカル送信先に応じて暗号化する(Op.19)。具体的には、第一の管理テーブルを参照し、ローカル送信先アドレスをローカル共有先アドレスに有するレコードから、暗号用の論理情報を取得する。そして、暗号化処理部125は、暗号用の論理情報を用いて、検証用の論理情報を暗号化する。なお、暗号化された論理情報は、論理情報格納部に格納される。
 続いて、通信部121は、ローカル送信先アドレスに対して、パケットを転送する。なお、送信されるパケットは、受信したパケットの内、第一のヘッダ情報が変更されている。また、論理情報格納部に格納される情報が、ローカル送信先に応じて再暗号化されている。
 なお、パケットが不正なパケットである場合は(Op.17No)、パケットは破棄される(Op.21)。また、パケットの検証を実行しない場合は(Op.16No)、Op.18以降の処理が実行される。
 以上の処理により、受信したパケットに含まれる符号情報は、検証用の論理情報とともに、ローカル送信先のノードへ共有される。つまり、転送経路を形成する各ノードには、同一の符号情報と、同一の検証用の論理情報が共有される。よって、中継ノードが、新たなローカル送信先に応じて、新たに符号情報を算出しなおす処理は不要化できる。さらに、検証用の論理情報は、自ノードとローカル送信先のノードとの間で共有された論理情報により暗号化される。つまり、正規のノード以外に検証用の論理情報が取得されることはない。
 したがって、本実施例に開示の技術では、全ノードで事前に共有した検証用の論理情報を利用する場合と比べ、セキュリティが向上される。さらに、図2に示す技術のように、ノード間で検証用の論理情報が異なることがない為、パケットの検証処理以外に、パケット転送毎に符号情報を算出しなおすという処理が不要となる。
 ここで、今回の本実施例に開示の技術は、次の様な側面からも、図2に示す技術よりも有利であるといえる。図11は、本実施例に開示の技術の一つの効果を説明する為の第一の図である。図11は、暗号化処理の一例として、ブロック暗号のCBCモードを示す図である。
 CBCモードは、平文であるデータを、所定のビット長であるブロックに区切る。CBCモードでは、初期値として準備された乱数を用いて、ブロック1とXOR計算を実行する。そして、暗号用の論理情報にあたる暗号鍵を利用して、ブロック暗号を行う。このような処理を連鎖的に実施する。最後のブロック4が暗号化された時点で、全てのブロックの暗号処理の結果を合わせたものが暗号化データとなる。
 符号情報の算出処理と、暗号化処理とを比較すると、処理負荷はデータ長に依存する。特に、図1および図11からわかる様に、CMAC算出処理と、CBCモードによる暗号化とは、処理内容は類似する為、データ長が長くなるほど、各々の処理コストが大きくなると考えて良い。
 図12は、本実施例に開示の技術の一つの効果を説明する為の第二の図である。図12には、中継ノードに関する処理コストが示される。中継ノードとは、あるノードからパケットを受信し、さらに他のノードへパケットの転送を行うノードである。上記のように、本実施例においては、パケットの検証処理は省略される場合もあるが、ここでは、パケットの検証処理を実行するとして説明を行う。
 また、通常、アドホックネットワークにおいて転送されるパケットのペイロードデータは、可変長であるが、ここでは、128バイトとして説明する。また、検証用の論理情報は、ここでは、16バイトとする。これは、一般的に、MAC算出において利用される鍵の長さが128ビット(すなわち16バイト)である為である。
 ここで、パケットの検証処理の処理コストを「1」とする。なお、パケットの検証処理は、基本的に受信したパケット内のペイロードデータに対して、符号情報を算出する処理がボトルネックである為、算出された符号情報と、パケット内に設定された符号情報とを比較する処理は、基本的に無視できるとする。したがって、パケット検証の処理コストと、符号情報の処理コストとは、概ね等しいと考えることができる。
 また、図12の説明においては、ペイロードデータのみを対象として、符号情報が算出されるとして説明を行うが、ペイロードデータおよび第二のヘッダ情報を対象として符号情報を算出する場合には、符号情報の算出にはさらに大きな処理コストが要される。
 まず、図2に示す技術は、パケットの検証処理のほかに、符号情報を再算出する処理が必要である。以上のように、図2に示す技術において、中継ノードには、概ね処理コスト「2」が発生する。なお、符号情報の再算出処理は、パケットの検証処理と処理コストは同じである。
 次に、本実施例においては、パケット検証処理のほかに、パケットに含まれる検証用の論理情報を復号する処理と、検証用の論理情報をローカル送信先に応じて暗号化する処理とが必要となる。検証用の論理情報に対する復号処理および暗号化処理は、受信パケット内に含まれる暗号化された論理情報を、ローカル送信先でも復号可能とする為に必要である。
 検証用の論理情報を復号する処理と、検証用の論理情報を暗号化する処理は、図1および図11に示すように、暗号化(または復号)されるデータ長に依存すると考えられる。したがって、128バイトのペイロードデータに対して符号情報と算出する処理と、16バイトの検証用の論理情報を暗号化(または復号)する処理とは、概ね、8対1の処理コストの関係にあると考えられる。よって、復号処理と暗号処理およびパケット検証処理を併せて、本実施例における中継ノードには、処理コスト「1.25」が発生する。
 以上のように、本実施例は、予め検証用の論理情報を共有せずとも、符号情報再算出処理が不要となることで、中継ノードにおける処理負荷も、図2の技術と比較して低減することができる。また、この効果は、符号情報の算出対象となるデータ長が長くなるほど、顕著となる。したがって、より大きなデータをパケット転送する際に、本実地例はさらに有効である。
 図13は、ノード10のハードウェア構成例である。ノード10は、CPU(Central Processing Unit)301と、RAM(Random Access Memory)302と、フラッシュメモリ303と、インターフェース(I/F)304と、暗号化回路305と、センサ306と、バス307とを備えている。CPU301乃至センサ306は、バス307よってそれぞれ接続されている。
 CPU301は、ノード10の全体の制御を司る。CPU301は、RAM302に展開されたプログラムを実行することにより、取得部111、パケット生成部112または124、論理情報生成部113、算出部114、検証部123として機能する。
 RAM302は、CPU301のワークエリアとして使用される。フラッシュメモリ303は、プログラムや、各種鍵の情報、ルーティングテーブルを記憶している。なお、フラッシュメモリ303は、記憶装置117または126の一例である。プログラムには、例えば、図9および図10のフローチャートに示したノードにおける各処理を実行させる為のプログラムが含まれる。例えば、パケットの送信処理、パケットの検証処理、パケットの転送処理を、ノードに実行させる為の制御プログラムが、フラッシュメモリ303に記憶される。
 フラッシュメモリ303に記憶されたプログラムを、RAM302に展開し、CPU301が実行することで、ノード10は、図4または図8に記載した各種処理部として機能する。また、ノード10は、図9および図10の処理を実行する。
 I/F304は、マルチホップ通信によりパケットを送受信する。I/F304は、通信部116または121の一例である。
 暗号化回路305は、データを暗号化する場合に暗号鍵によりデータを暗号化する回路である。例えば、パケットを暗号化して送信する場合は、暗号化回路305が機能する。暗号化回路305は、暗号処理部115または125、復号処理部122の一例である。なお、暗号化をソフトウェア的に実行する場合は、CPU301が暗号処理部115または125、復号処理部122として機能する。CPU301は、暗号化回路305に相当するプログラムをフラッシュメモリ23から読み出し、実行する。
 センサ306は、センサ306固有のデータを検出する。たとえば、温度、湿度、水位、降水量、風量、音量、電力使用量、時間、時刻、加速度など、測定対象にあったデータを検出する。なお、CPU301が、取得部111として機能する際には、センサ306から検出値を取得する。
10   ノード
11   送信ノード
12   中継ノード
111  取得部
112  パケット生成部
113  論理情報生成部
114  算出部
115  暗号処理部
116  通信部
117  記憶部
121  通信部
122  復号処理部
123  検証部
124  パケット生成部
125  暗号処理部
126  記憶部
301  CPU
302  RAM
303  フラッシュメモリ
304  I/F
305  暗号化回路
306  センサ
307  バス

Claims (15)

  1.  第一のノード、第二のノード、および第三のノードを含むネットワークシステムにおいて、
     前記第一のノードは、
     前記第一のノードと前記第二のノードとで共有された第一の論理が規定された第一の論理情報を用いて、データを検証する際に用いられる第二の論理が規定された第二の論理情報を暗号化する第1の暗号処理部と、
     前記第一の論理情報で暗号化された前記第二の論理情報と、前記データと、該データの内容および該第二の論理情報に依存する符号情報とを含むパケットを、前記第二のノードに対して送信する第1の送信部とを有し、
     前記第二のノードは、
     パケットを受信する受信部と、
     前記第二の論理情報を、前記第一の論理情報で復号する復号処理部と、
     前記第二のノードと前記第三のノードとで共有された第三の論理が規定された第三の論理情報で、前記第二の論理情報を暗号化する第2の暗号処理部と、
     前記第三の論理情報で暗号化された前記第二の論理情報と、前記受信したパケットに含まれるデータと、前記符号情報とを、前記第三のノードへ送信する第2の送信部と
    を有することを特徴とするネットワークシステム。
  2.  第一のノード、第二のノード、および第三のノードを含むネットワークシステムにおける、該第一のノードは、
     データと、該データを検証する際に用いられる第一の論理を規定した第一の論理情報が暗号化された暗号情報と、該データの内容および該第二の論理情報に依存する符号情報とを含むパケットを、前記第二のノードから受信する受信部と、
     前記暗号情報を、前記第一のノードと前記第二のノードとで共有された第二の論理が規定された第二の論理情報を用いて、復号する復号処理部と、
     復号により得られた前記第一の論理情報を、前記第一のノードと前記第三のノードとで共有された第三の論理が規定された第三の論理情報で暗号化する暗号処理部と、
     前記第三の論理情報で暗号化された前記第一の論理情報と、前記データと、前記符号情報とを、前記第三のノードへ送信する送信部とを有することを特徴とする。
  3.  前記符号情報、前記第一の論理情報を用いて、前記パケットを検証する検証部をさらに有することを特徴とする請求項2記載の第一のノード。
  4.  前記検証部は、受信したパケット内の前記データに対して、前記第一の論理情報を用いて、他の符号情報を算出し、
     前記符号情報と前記他の符号情報とが一致する場合に、前記パケットは正当なパケットであると判定することを特徴とする請求項3記載の第一のノード。
  5.  前記符号情報は、メッセージ認証コードであって、
     前記第一の論理情報は、該メッセージ認証コードを算出する際に利用されるメッセージ認証コード用の鍵情報であって、
     前記第二の論理情報は、前記第一のノードと前記第二のノードとで共有された暗号鍵情報であって、
     前記第三の論理情報は、前記第一のノードと前記第三のノードとで共有された他の暗号鍵情報であることを特徴とする請求項2乃至請求項4のいずれか一項に記載の第一のノード。
  6.  第一のノード、第二のノード、および第三のノードを含むネットワークシステムにおける、該第一のノードは、
     データを検証する際に用いられる第一の論理が規定された第一の論理情報を生成する論理情報生成部と、
     前記データの内容および前記第一の論理情報に依存する符号情報を算出する算出部と、
    前記第一のノードと前記第二のノードとで共有された第二の論理が規定された第二の論理情報を用いて、前記第一の論理情報を暗号化する暗号処理部と、
     前記第二の論理情報で暗号化された前記第一の論理情報と、前記データと、前記符号情報とを含むパケットを、前記第三のノードと通信する前記第二のノードに対して送信する送信部とを有することを特徴とする。
  7.  前記第一のノードは、センサから検出値を取得する取得部をさらに有し、
     前記検出値を含む前記データの内容に応じて、前記符号情報を算出することを特徴とする請求項6記載の第一のノード。
  8.  前記符号情報は、メッセージ認証コードであって、
     前記第一の論理情報は、該メッセージ認証コードを算出する際に利用されるメッセージ認証コード用の鍵情報であって、
     前記第二の論理情報は、前記第一のノードと前記第二のノードとで共有された暗号鍵情報であることを特徴とする請求項6または請求項7のいずれか一項に記載の第一のノード。
  9.  第一のノード、第二のノード、および第三のノードを含むネットワークシステムにおける、該第一のノードが、
     データと、該データを検証する際に用いられる第一の論理を規定した第一の論理情報が暗号化された暗号情報と、該データの内容および該第二の論理情報に依存する符号情報とを含むパケットを、前記第二のノードから受信し、
     前記暗号情報を、前記第一のノードと前記第二のノードとで共有された第二の論理が規定された第二の論理情報を用いて、復号し、
     前記第一の論理情報を、前記第一のノードと前記第三のノードとで共有された第三の論理が規定された第三の論理情報で暗号化し、
     前記第三の論理情報で暗号化された前記第一の論理情報と、前記データと、前記符号情報とを、前記第三のノードへ送信する処理を実行することを特徴とする通信方法。
  10.  前記第一のノードは、
     前記符号情報、前記第一の論理情報を用いて、前記パケットを検証する処理を実行することを特徴とする請求項9記載の通信方法。
  11.  前記検証する処理において、前記第一のノードは、受信したパケット内の前記データに対して、前記第一の論理情報を用いて、他の符号情報を算出し、
     前記符号情報と前記他の符号情報とが一致する場合に、前記パケットは正当なパケットであると判定することを特徴とする請求項10記載の通信方法。
  12.  前記符号情報は、メッセージ認証コードであって、
     前記第一の論理情報は、該メッセージ認証コードを算出する際に利用されるメッセージ認証コード用の鍵情報であって、
     前記第二の論理情報は、前記第一のノードと前記第二のノードとで共有された暗号鍵情報であって、
     前記第三の論理情報は、前記第一のノードと前記第三のノードとで共有された他の暗号鍵情報であることを特徴とする請求項9乃至請求項11のいずれか一項に記載の通信方法。
  13.  第一のノード、第二のノード、および第三のノードを含むネットワークシステムにおける、該第一のノードが、
     データを検証する際に用いられる第一の論理が規定された第一の論理情報を生成し、
     前記データの内容および前記第一の論理情報に依存する符号情報を算出し、
     前記第一のノードと前記第二のノードとで共有された第二の論理が規定された第二の論理情報を用いて、前記第一の論理情報を暗号化し、
     前記第二の論理情報で暗号化された前記第一の論理情報と、前記データと、前記符号情報とを含むパケットを、前記第三のノードと通信する前記第二のノードに対して送信する処理を実行することを特徴とする通信方法。
  14.  前記第一のノードは、さらに、
     センサから検出値を取得する処理を実行し、
     前記算出する処理において、前記検出値を含む前記データの内容に応じて、前記符号情報を算出することを特徴とする請求項13記載の通信方法。
  15.  前記符号情報は、メッセージ認証コードであって、
     前記第一の論理情報は、該メッセージ認証コードを算出する際に利用されるメッセージ認証コード用の鍵情報であって、
     前記第二の論理情報は、前記第一のノードと前記第二のノードとで共有された暗号鍵情報であることを特徴とする請求項13または請求項14のいずれか一項に記載の通信方法。
PCT/JP2012/003408 2012-05-24 2012-05-24 ネットワークシステム、ノード、および通信方法。 WO2013175539A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2012/003408 WO2013175539A1 (ja) 2012-05-24 2012-05-24 ネットワークシステム、ノード、および通信方法。
JP2014516516A JP5874823B2 (ja) 2012-05-24 2012-05-24 ネットワークシステム、ノード、および通信方法。

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/003408 WO2013175539A1 (ja) 2012-05-24 2012-05-24 ネットワークシステム、ノード、および通信方法。

Publications (1)

Publication Number Publication Date
WO2013175539A1 true WO2013175539A1 (ja) 2013-11-28

Family

ID=49623274

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/003408 WO2013175539A1 (ja) 2012-05-24 2012-05-24 ネットワークシステム、ノード、および通信方法。

Country Status (2)

Country Link
JP (1) JP5874823B2 (ja)
WO (1) WO2013175539A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018081352A (ja) * 2016-11-14 2018-05-24 Necプラットフォームズ株式会社 検針システム、検針方法および検針プログラム
JP2019506798A (ja) * 2016-01-13 2019-03-07 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 完全性保護

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09214556A (ja) * 1995-11-30 1997-08-15 Toshiba Corp パケット転送方法、パケット処理装置、パケット暗号化方法、パケット復号化方法及びパケット暗号処理方法
JP2002232460A (ja) * 2001-02-06 2002-08-16 Nippon Telegr & Teleph Corp <Ntt> イントラネットリモートアクセス方法並びにイントラネットリモートアクセス処理プログラム及び該処理プログラムを記録した記録媒体
JP2004241865A (ja) * 2003-02-03 2004-08-26 Sony Corp 無線アドホック通信システム、端末、その端末における認証方法、暗号化方法及び端末管理方法並びにそれらの方法を端末に実行させるためのプログラム
JP2007013386A (ja) * 2005-06-29 2007-01-18 Hitachi Ltd アドホックネットワーク用の通信端末および通信制御方法
JP2008109612A (ja) * 2006-09-27 2008-05-08 Kyocera Corp 無線通信方法及び無線通信システム
JP2008547257A (ja) * 2005-06-13 2008-12-25 シーメンス アクチエンゲゼルシヤフト アドホックネットワーク内でデータを安全に伝送するための方法および装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1079732A (ja) * 1996-09-03 1998-03-24 Iryo Joho Syst Kaihatsu Center ネットワークセキュリティシステムおよびネットワークセキュリティ方法
DE102005040889A1 (de) * 2005-08-29 2007-03-15 Siemens Ag Verfahren und Anordnung zum sicheren Übertragen von Daten in einem ein Mehrsprungverfahren nutzenden Kommunikationssystem
JP4490352B2 (ja) * 2005-08-30 2010-06-23 Kddi株式会社 Vpnサーバホスティングシステム、およびvpn構築方法
JP4900007B2 (ja) * 2007-04-12 2012-03-21 富士通株式会社 無線基地局、中継局、帯域割当方法
US8612752B2 (en) * 2008-10-30 2013-12-17 Symbol Technologies, Inc. Communicating a packet from a mesh-enabled access point to a mesh portal in a multi-hop mesh network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09214556A (ja) * 1995-11-30 1997-08-15 Toshiba Corp パケット転送方法、パケット処理装置、パケット暗号化方法、パケット復号化方法及びパケット暗号処理方法
JP2002232460A (ja) * 2001-02-06 2002-08-16 Nippon Telegr & Teleph Corp <Ntt> イントラネットリモートアクセス方法並びにイントラネットリモートアクセス処理プログラム及び該処理プログラムを記録した記録媒体
JP2004241865A (ja) * 2003-02-03 2004-08-26 Sony Corp 無線アドホック通信システム、端末、その端末における認証方法、暗号化方法及び端末管理方法並びにそれらの方法を端末に実行させるためのプログラム
JP2008547257A (ja) * 2005-06-13 2008-12-25 シーメンス アクチエンゲゼルシヤフト アドホックネットワーク内でデータを安全に伝送するための方法および装置
JP2007013386A (ja) * 2005-06-29 2007-01-18 Hitachi Ltd アドホックネットワーク用の通信端末および通信制御方法
JP2008109612A (ja) * 2006-09-27 2008-05-08 Kyocera Corp 無線通信方法及び無線通信システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019506798A (ja) * 2016-01-13 2019-03-07 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 完全性保護
US11296890B2 (en) 2016-01-13 2022-04-05 Telefonaktiebolaget Lm Ericsson (Publ) Integrity protection
US11917073B2 (en) 2016-01-13 2024-02-27 Telefonaktiebolaget Lm Ericsson (Publ) Integrity protection
JP2018081352A (ja) * 2016-11-14 2018-05-24 Necプラットフォームズ株式会社 検針システム、検針方法および検針プログラム

Also Published As

Publication number Publication date
JPWO2013175539A1 (ja) 2016-01-12
JP5874823B2 (ja) 2016-03-02

Similar Documents

Publication Publication Date Title
Perrig et al. SPINS: Security protocols for sensor networks
US9094818B2 (en) Method for cryptographically transmitting data between network nodes using a nonce value
US9510216B2 (en) Node device and communication control method
JP6013988B2 (ja) データ収集システム、データ収集方法、ゲートウェイ装置及びデータ集約プログラム
Boubiche et al. A cross-layer watermarking-based mechanism for data aggregation integrity in heterogeneous WSNs
Boubiche et al. SDAW: secure data aggregation watermarking-based scheme in homogeneous WSNs
WO2011121713A1 (ja) ノード、転送方法、および転送プログラム
WO2018101488A1 (ja) セキュアネットワーク通信方法
US20140334383A1 (en) Network system, node device, and method of controlling network system
WO2020101567A1 (en) Method and architecture for securing and managing networks of embedded systems with optimised public key infrastructure
Tajeddine et al. Authentication schemes for wireless sensor networks
Bok et al. An energy-efficient secure scheme in wireless sensor networks
JP5874823B2 (ja) ネットワークシステム、ノード、および通信方法。
JP5361970B2 (ja) 通信システム、第一通信装置、第二通信装置、暗号化通信方法及びプログラム
US20120216036A1 (en) Encryption methods and systems
WO2013145026A1 (ja) ネットワークシステム、ノード、検証ノードおよび通信方法
JP6303426B2 (ja) ノード装置、通信システム、通信方法および通信プログラム
WO2010032391A1 (ja) 完全性検証のための通信システム、通信装置、及びそれらを用いた通信方法及びプログラム
JP5552104B2 (ja) 通信システム及び通信方法
Parmar et al. Aggregate MAC based authentication for secure data aggregation in wireless sensor networks
Bagula et al. On the Relevance of Using Multi-layered Security in the Opportunistic Internet-of-Things
Yang A Secure and Accountable Mesh Routing Algorithm
Sreenivasulu et al. An enhanced secure data aggregation routing protocol for sensor networks
Taheri et al. High secure routing protocol with authentication and confidentiality increased in wireless ad hoc networks
Gauhar Fatima et al. A Security Protocol for Wireless Sensor Networks

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12877533

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014516516

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12877533

Country of ref document: EP

Kind code of ref document: A1