WO2009130917A1 - ノード装置及びプログラム - Google Patents

ノード装置及びプログラム Download PDF

Info

Publication number
WO2009130917A1
WO2009130917A1 PCT/JP2009/001903 JP2009001903W WO2009130917A1 WO 2009130917 A1 WO2009130917 A1 WO 2009130917A1 JP 2009001903 W JP2009001903 W JP 2009001903W WO 2009130917 A1 WO2009130917 A1 WO 2009130917A1
Authority
WO
WIPO (PCT)
Prior art keywords
frame
node device
time
key
access key
Prior art date
Application number
PCT/JP2009/001903
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 CN200980113336.6A priority Critical patent/CN102007726B/zh
Priority to EP09733693.7A priority patent/EP2273717B1/en
Priority to JP2010509092A priority patent/JP4883219B2/ja
Publication of WO2009130917A1 publication Critical patent/WO2009130917A1/ja
Priority to US12/908,508 priority patent/US8417936B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Definitions

  • the present invention relates to an apparatus and a program for maintaining security in an autonomous distributed network.
  • transmission data is encrypted.
  • an encryption method for example, there is a common key method (also called a symmetric key encryption method).
  • a common key method also called a symmetric key encryption method.
  • Wi-Fi Protected Access There are also security methods such as WEP (Wired Equivalent Privacy) and WPA (Wi-Fi Protected Access). According to these techniques, authentication processing is generally performed by issuing a control instruction in a server.
  • WEP Wi-Fi Protected Access
  • the present invention provides a node device that autonomously cooperates with another node device to perform the operation for encryption, and the node device autonomously cooperates with another node device for the operation for encryption. It is an object of the present invention to provide a program for instructing to do so.
  • a node device is the first node device in a network configured by a plurality of node devices including a first node device and a second node device, and includes an access key generation unit, A common key generation unit, an access key notification unit, an access key reception unit, an access key decryption unit, a data transmission unit, a data reception unit, a data decryption unit, and a consistency confirmation unit.
  • the access key generation unit generates a first access key, which is an encryption key unique to the first node device, at every first time.
  • the common key generation unit generates a common key that is common to the plurality of node devices in the network by changing every second time that is a time common to the plurality of node devices.
  • the access key notification unit encrypts the generated first access key with the generated common key and transmits the encrypted first access key to the second node device.
  • the access key receiving unit includes access key notification data that is data obtained by encrypting a second access key that is an encryption key unique to the second node device with the common key. The transmitted access key notification frame is received.
  • the access key decryption unit obtains the second access key from the access key notification data by decrypting the access key notification data using the generated common key.
  • the data transmitting unit adds first signature data obtained by encrypting data including a first hash value calculated from the first plaintext frame with the common key to the first plaintext frame. Then, the data transmitting unit encrypts the first plaintext frame to which the first signature data is attached with the second access key obtained by decryption, and transmits the first plaintext frame as a first encrypted frame. To do.
  • the data receiving unit receives the second encrypted frame from the second node device.
  • the second encrypted frame is a second plaintext frame to which second signature data obtained by encrypting data including a second hash value with the common key is added. It is encrypted with the access key.
  • the data decryption unit decrypts the second encrypted frame with the first access key, and the second plaintext to which the second signature data is added from the second encrypted frame. Get the frame.
  • the consistency confirmation unit obtains the second hash value by decrypting the second signature data using the generated common key. Then, the consistency confirmation unit calculates a third hash value from the second plaintext frame, and confirms whether or not the consistency between the second hash value and the third hash value is obtained. To do.
  • the program according to the second aspect is a program executed by a computer that controls the first node device in a network constituted by a plurality of node devices including the first node device and the second node device. is there.
  • the program controls the computer of the first node device of the second mode so that the first node device of the second mode operates in the same manner as the first node device of the first mode. It is a program to let you.
  • the first node device in the network operates for encrypted communication autonomously and in cooperation with another node device such as the second node device. It is possible. Therefore, in any of the above aspects, it is possible to increase the security of communication in a network including a plurality of node devices.
  • FIG. 1 is an overall conceptual diagram of an ad hoc communication system. It is a network block diagram which shows the example of the sensor network containing a some node apparatus. It is a block diagram of the node apparatus which concerns on embodiment. It is a hardware block diagram of the node apparatus which concerns on embodiment. It is a figure which shows the structure of the node apparatus which concerns on this embodiment in detail. It is a figure explaining the authentication method by the node apparatus which concerns on embodiment. It is the sequence diagram which showed the process which mutually authenticates and communicates with the other node apparatus between two node apparatuses. It is a figure which shows the format of a data frame. It is a flowchart of a common key update process. It is a flowchart of an access key update process.
  • FIG. 1 is an overall conceptual diagram of an ad hoc communication system.
  • node devices (a, b,..., S, t) are connected to each other to form a network.
  • each node device operates as a relay, and transmits information from a start node (node device b in the example of FIG. 1) to a goal node (node device t in the example of FIG. 1).
  • Each node device has a node ID, which is unique identification information (ID).
  • ID is unique identification information
  • a MAC (Media Access Control) address may be used as the node ID.
  • Each node device does not grasp node devices adjacent to each other or the entire network. In the initial state, there is no mutual link, and each node device does not grasp any other node device.
  • each node device detects surrounding node devices. For this purpose, each node device periodically notifies its own existence to node devices existing in the vicinity. Information related to route creation is attached to the notification to the neighboring node device. Each node device, when receiving a notification from another node device, creates a list of the surrounding node devices and can grasp other node devices existing around the own node device.
  • the node device that has detected the surrounding node device determines the node device to which information is to be transferred, and transfers the information to the determined node device.
  • Each node device communicates with the other node device by encrypting the frame as a security measure. Specifically, each node device performs encryption using an encryption key unique to the communication partner node device and a common key common among the node devices in the network, and transmits information to the communication partner node device. Send to. Further, when each node device receives information from the node device of the communication partner, each node device decrypts the frame using the encryption key unique to the own node device and the common key, and extracts the information.
  • each node device transmits data to the node device of the communication partner using the encryption key obtained by decryption.
  • each node device determines that the node device of the communication partner is valid when the received data is encrypted with the encryption key generated by the own node device.
  • the node device according to the present embodiment can be used in any ad hoc communication system as shown in FIG. 1, but may be used in a sensor network realized by an ad hoc network as shown in FIG. 2, for example.
  • FIG. 2 is a network configuration diagram illustrating an example of a sensor network including a plurality of node devices.
  • a plurality of node devices 1A to 1I and a gateway device GW constitute an ad hoc network.
  • the gateway device GW is connected to the server SV by a cable, for example.
  • the connection between the gateway device GW and the server SV may be a connection via a network or a wireless connection.
  • each of the plurality of node devices 1A to 1I is connected to one or more sensors (not shown) or incorporates one or more sensors (not shown).
  • the sensor may be, for example, a sensor that senses temperature, pressure, acceleration, or the like. Also, a plurality of different types of sensors may be used.
  • Each of the node devices 1A to 1I acquires data (hereinafter referred to as “sensor data”) representing the result sensed by the sensor from the sensor connected to the node device. Then, each of the node devices 1A to 1I generates an encrypted frame (hereinafter referred to as “sensor data frame”) including the acquired sensor data, and transmits the sensor data frame to the gateway device GW through the ad hoc network.
  • sensor data data representing the result sensed by the sensor from the sensor connected to the node device.
  • sensor data frame an encrypted frame including the acquired sensor data
  • each sensor may output sensor data to the node device once a minute. Therefore, when each of the node devices 1A to 1I is connected to one sensor as described above, each of the node devices 1A to 1I transmits a sensor data frame once per minute.
  • the gateway device GW includes each unit of FIG. 3 to be described later in the same manner as each of the node devices 1A to 1I, and can construct an ad hoc network autonomously in cooperation with the node devices 1A to 1I. That is, the common key is common between the node devices 1A to 1I and the gateway device GW, and the fixed key for time synchronization described later is also common.
  • the gateway device GW transmits the sensor data included in the sensor data frame transmitted from each of the node devices 1A to 1I to the server SV.
  • the gateway device GW may operate as follows.
  • the gateway device GW extracts sensor data by decoding the received sensor data frame. Then, the gateway device GW transmits data including the extracted sensor data to the server SV.
  • the gateway device GW may further extract the identification information of the node device (1A to 1I) that is the transmission source of the sensor data frame from the received sensor data frame. Then, the gateway device GW may generate an encrypted frame including data obtained by encrypting data including sensor data and identification information in a payload, and may transmit the encrypted frame to the server SV.
  • the server SV can perform any of various processes based on the physical quantity sensed by the sensor using the collected sensor data. For example, when each sensor is a temperature sensor, the server SV may perform a process for examining a temperature distribution or a temperature change, or may perform a temperature prediction process.
  • the server SV can collect sensor data while keeping it in a secret state, and is further altered. No correct sensor data can be collected.
  • FIG. 3 is a configuration diagram of the node device according to the present embodiment.
  • 3 includes an access key generation unit 2, a common key generation unit 3, an encryption unit 4, a decryption unit 5, a frame processing unit 6, a transmission unit 7, a reception unit 8, and a time synchronization unit 9. .
  • each of the node devices 1A to 1I in FIG. 2 has a configuration as shown in FIG.
  • the access key generation unit 2 generates an encryption key unique to the node device 1 (hereinafter referred to as “access key”).
  • the access key is generated using a known technique such as WEP or WPA.
  • WEP Wired Equivalent Privacy
  • WPA Wired Equivalent Privacy
  • the access key is encrypted by RC4 (Rivest's Cipher 4) and transmitted to another node device.
  • the length of the access key is 128 bits. Since RC4 is a kind of stream cipher, the length of the ciphertext encrypted by RC4 is equal to the length of the original plaintext.
  • the gateway device GW that is the final destination of the sensor data frame receives the most frames in the ad hoc network.
  • the number of frames when receiving data from a total of 500 node apparatuses is about 500 frames per minute. That is, it can be said that it is practically impossible for the unauthorized node device to collect frames necessary for decryption within 10 minutes until the access key is updated.
  • the time information held in each node device is synchronized in the network. For this reason, the common key changes with time, but is shared by the node devices in the network at a certain time.
  • the encryption unit 4 encrypts the data included in the frame transmitted to the other node device, and the decryption unit 5 decrypts the data included in the frame transmitted after being encrypted from the other node device. .
  • the transmission unit 7 transmits an encrypted frame including the encrypted data generated in the node device 1 illustrated in FIG. 3 to the other node device, and the reception unit 8 performs the encryption transmitted from the other node device. Receive a frame.
  • the frame processing unit 6 performs processing of the received frame.
  • the frame processing unit 6 may extract information from a predetermined field of the received frame, and perform the determination of “whether it is an already received frame” as the “process of received frame”.
  • the frame processing unit 6 extracts information from a predetermined field of the received frame and determines whether or not it is “a frame transmitted from a legitimate node device” or the like by “the processing of the received frame”.
  • the frame processing unit 6 also performs processing for creating a frame to be transmitted.
  • the time synchronizer 9 executes processing for synchronizing the time held in the node device 1 shown in FIG. 3 with the time of other node devices in the network. Details of the operation of the time synchronizer 9 will be described later with reference to FIGS.
  • the node device 1 shown in FIG. 3 exchanges an access key encrypted using a common key with the other node device before starting communication with other node devices in the network.
  • the access key encrypted with the common key is stored in a predetermined field of a frame of a predetermined format called “hello frame”, for example, and transmitted to the partner node device.
  • an access key generated by the node device 1 itself is referred to as an “internally-originated access key”, and an access key received from another node device is referred to as “externally-originated”.
  • access key Sometimes referred to as “access key”.
  • the 3 receives the encrypted access key received from the communication partner node device (second node device (not shown) having the same configuration as that of the node device 1 in FIG. 3) as its own node device. 1. Decrypt using the common key held in 1. Then, when the node device 1 in FIG. 3 communicates with the second node device (not shown) thereafter, the access device (that is, the externally derived access key) obtained by decryption is used to communicate with the second node device (not shown). The frame addressed to the second node device is encrypted.
  • the common key and the access key are updated at predetermined time intervals t 2 and t 1 , respectively. For this reason, even if a third party obtains a common key or an access key at an unauthorized time, unauthorized access such as impersonation becomes impossible.
  • FIG. 4 is a hardware configuration diagram of the node device 1 according to the present embodiment.
  • 3 includes an MPU (MicroProcessing Unit) 11, a wired PHY (PHYsical layer) processing unit 12, a timer IC (Integrated Circuit) 13, and a tamper-resistant PIC (Peripheral Interface Controller) microcomputer 14. Is provided.
  • the node device 1 further includes a DRAM (Dynamic Random Access Memory) 15, a flash memory 16, and a wireless LAN (Local Area Network) processing unit 17.
  • DRAM Dynamic Random Access Memory
  • flash memory 16 a flash memory
  • wireless LAN Local Area Network
  • a connection interface between the MPU 11 and the wired PHY processing unit 12 is, for example, MII (Media Independent Interface) / MDIO (Management Data Input / Output) 18 (where “MII / MDIO” means “MII or MDIO”). Is). Both MII and MDIO are interfaces between the physical layer and the MAC sublayer (Media
  • the timer IC 13 and the tamper resistant PIC microcomputer 14 are connected to the MPU 11 by an I 2 C (Inter-Integrated Circuit) / PIO (Parallel Input / Output) bus 19 (note that the “I 2 C / PIO bus” is Meaning “I 2 C bus or PIO bus”).
  • I 2 C Inter-Integrated Circuit
  • PIO Parallel Input / Output
  • the DRAM 15, the flash memory 16, and the wireless LAN processing unit 17 are connected to the MPU 11 via a PCI (Peripheral Component Interconnect) bus 20.
  • the MPU 11 executes various processes by loading various programs such as firmware stored in the flash memory 16 which is one type of nonvolatile storage device onto the DRAM 15 and executing them.
  • the MPU 11 executes various programs such as a driver for the tamper resistant PIC microcomputer 14 and a firmware program for causing the node device 1 to execute various processes described later.
  • the DRAM 15 may store various data such as an encryption key.
  • the DRAM 15 is also used as a frame transmission buffer and a reception buffer.
  • the flash memory 16 stores a firmware program and the like.
  • the flash memory 16 also stores information unique to the node device 1 itself (for example, node ID and MAC address).
  • the wired PHY processing unit 12 is a circuit that performs physical layer processing in wired connection.
  • the wireless LAN processing unit 17 is hardware that performs physical layer processing in wireless LAN connection.
  • the wireless LAN processing unit 17 includes, for example, an antenna, an ADC (Analog-to-Digital Converter), a DAC (Digital-to-Analog Converter), a modulator, a demodulator, and the like, and performs processing of the physical layer and the MAC sublayer. Therefore, in the present embodiment, the node device 1 can perform both wired communication and wireless communication. However, an embodiment in which the node device 1 performs only one of wired communication and wireless communication is also possible.
  • the timer IC 13 is a circuit that performs a count-up operation until a set time elapses, and outputs an interrupt signal when the set time elapses.
  • the tamper resistant PIC microcomputer 14 is a microcomputer in which a predetermined algorithm for generating a common key is incorporated. Since the tamper resistant PIC microcomputer 14 is tamper resistant, it cannot be analyzed from the outside what kind of algorithm the predetermined algorithm for generating the common key is.
  • FIG. 5 is a diagram showing the configuration of the node device 1 according to this embodiment in more detail.
  • the reception unit 8 includes a frame branching processing unit 21 that classifies frames received by the node device 1 according to the frame type, and a reception buffer for each frame type.
  • the reception buffer is realized by, for example, the DRAM 15 of FIG.
  • a hello frame reception buffer 22, a time synchronization frame reception buffer 23, and a data frame reception buffer 24 are received corresponding to three types of a hello frame, a time synchronization frame, and a data frame. Part 8 is provided.
  • the frame branch processing unit 21 is realized by, for example, the wireless LAN processing unit 17 and the MPU 11 in FIG. 4 or the wired PHY processing unit 12 and the MPU 11. As will be described later with reference to FIGS. 12, 15, and 17, since the frame header includes a “frame type” field indicating the type of the frame, the frame branch processing unit 21 determines whether the frame type field is based on the value of the frame type field. The type of the received frame can be recognized and the received frame can be classified.
  • the decoding unit 5 includes a hello frame decoding unit 25, a time synchronization frame decoding unit 26, and a data frame decoding unit 27 corresponding to the three types of frames.
  • the decoding unit 5 is realized by the MPU 11 in this embodiment, but may be realized by a dedicated hardware circuit.
  • the hello frame decoding unit 25 decodes the hello frame stored in the hello frame reception buffer 22 and extracts and outputs the access keys of other node devices not shown in FIG.
  • the time synchronization frame decoding unit 26 decodes the time synchronization frame stored in the time synchronization frame reception buffer 23 and outputs information obtained by decoding to the time synchronization unit 9.
  • the data frame decoding unit 27 decodes the data frame stored in the data frame reception buffer 24.
  • the node device 1 includes an access key storage unit 28 for storing an access key for another node device (that is, an externally derived access key) shown in FIG.
  • the access key storage unit 28 stores an external access key included in the plaintext decrypted by the hello frame decryption unit 25. More specifically, the access key storage unit 28 stores an externally derived access key corresponding to each of the plurality of node devices in association with information for identifying the plurality of node devices (for example, node IDs or MAC addresses). ing.
  • the access key storage unit 28 is realized by, for example, the DRAM 15 in FIG. 4, and at least a part thereof may be realized by a cache memory in the MPU 11.
  • the node device 1 also includes a confirmation unit 29 that confirms the correctness of the decoded data frame. Details of the operation of the confirmation unit 29 will be described later with reference to FIG. 16, but the confirmation unit 29 is realized by the MPU 11, for example. In the present embodiment, the confirmation unit 29 also confirms the correctness of the decrypted access key.
  • the frame processing unit 6 includes a received data frame processing unit 30 and performs processing using the data frame confirmed as “correct (ie, not tampered)” by the confirmation unit 29.
  • the received data frame processing unit 30 may perform a process of determining whether the same data frame as the already received data frame is received again or a new data frame is received.
  • the reception data frame processing unit 30 can also be realized by the MPU 11.
  • the node device 1 further includes an access key storage unit 31 that stores an access key for the node device 1 (that is, an access key derived from the inside).
  • the access key storage unit 31 may be realized by, for example, the DRAM 15 or may be realized by a cache memory in the MPU 11.
  • the node device 1 further includes a common key storage unit 32 that stores a common key.
  • the common key storage unit 32 may also be realized by, for example, the DRAM 15 or may be realized by a cache memory in the MPU 11.
  • the common key stored in the common key storage unit 32 is generated by the common key generation unit 3 as described with reference to FIG. That is, according to the present embodiment, the common key uniquely determined from the time according to the same algorithm in the common key generation unit 3 of each of the plurality of node devices so that it is not necessary to exchange the common key between the plurality of node devices. Is generated.
  • the common key generation unit 3 of this embodiment is realized by the tamper resistant PIC microcomputer 14 of FIG. That is, the common key generation unit 3 is tamper resistant.
  • the common key generation unit 3 uses time information to generate a common key.
  • the node device 1 includes a clock 33 and the common key generation unit 3 refers to the clock 33 to obtain time information.
  • the node device 1 further includes a counter 34 realized by the timer IC 13 of FIG.
  • the counter 34 repeats the count-up operation, and when the value of the counter 34 reaches a preset value, the access key generation unit 2 generates an access key, and the counter 34 is cleared.
  • the node device 1 further includes a time synchronization key storage unit 35 that stores a time synchronization key.
  • the time synchronization key may be stored in advance in the DRAM 15 by, for example, being written in advance as a constant in a firmware program executed by the MPU 11 and being loaded into the DRAM 15.
  • the time synchronization key storage unit 35 can be realized by, for example, a flash memory 16, a DRAM 15, or a cache memory in the MPU 11.
  • the frame processing unit 6 further includes not only the received data frame processing unit 30 that processes the received data frame but also a hello frame creation unit 36 that creates a hello frame.
  • the hello frame creation unit 36 reads the access key of the node device 1 itself from the access key storage unit 31, creates a plaintext frame that is the basis of the hello frame, and outputs it.
  • the hello frame creation unit 36 is realized by the MPU 11, for example.
  • the plaintext frame output from the hello frame creation unit 36 is input to the encryption unit 4 and encrypted.
  • the encryption unit 4 includes a hello frame encryption unit 37, a time synchronization frame encryption unit 38, and a data frame encryption unit 39. These units in the encryption unit 4 are also realized by the MPU 11, for example.
  • the hello frame encryption unit 37 uses the common key stored in the common key storage unit 32 to encrypt the plaintext frame that is the source of the hello frame.
  • the time synchronization frame encryption unit 38 encrypts a plaintext frame that is a source of the time synchronization frame, using the time synchronization key stored in the time synchronization key storage unit 35.
  • the data frame encryption unit 39 encrypts the plaintext frame that is the source of the data frame by using the access key for the node device that is the destination of the data frame among the access keys stored in the access key storage unit 28. Turn into.
  • the plaintext frame that is the origin of the time synchronization frame is output from the time synchronization unit 9 to the time synchronization frame encryption unit 38 as will be described in detail later with reference to FIG.
  • the frame processing unit 6 further includes a data frame creation unit 40 that creates a plaintext frame that is a source of the data frame and outputs the plaintext frame to the data frame encryption unit 39.
  • the transmission unit 7 includes, for example, three buffers (that is, a hello frame transmission buffer 41, a time synchronization frame transmission buffer 42, and a data frame transmission buffer 43) realized by the DRAM 15 in FIG. 4, and a transmission processing unit. 44.
  • the transmission processing unit 44 may be realized by the wired PHY processing unit 12 and the MPU 11, for example, or may be realized by the wireless LAN processing unit 17 and the MPU 11.
  • the hello frame transmission buffer 41 receives the encrypted hello frame from the hello frame encryption unit 37, stores it, and outputs it to the transmission processing unit 44.
  • the time synchronization frame transmission buffer 42 receives and stores the encrypted time synchronization frame from the time synchronization frame encryption unit 38 and outputs it to the transmission processing unit 44.
  • the data frame transmission buffer 43 receives the encrypted data frame from the data frame encryption unit 39, stores it, and outputs it to the transmission processing unit 44. Then, the transmission processing unit 44 transmits the received frame.
  • the node device 1 further includes a latest transmission time storage unit 45 realized by, for example, the DRAM 15.
  • the latest transmission time storage unit 45 will be described later together with FIG. Omitted.
  • FIG. 6 is a diagram for explaining an authentication method by the node device 1 according to the present embodiment.
  • the node device 1A uses the generated access key a1 as the access key b1 of the node device 1B and the node device 1C, respectively. And c1. Then, the node device 1A encrypts and transmits the data frame with the access key b1 to the node device 1B, and transmits the data frame encrypted with the access key c1 to the node device 1C.
  • the access key a1 is an internal access key
  • the access keys b1 and c1 are external access keys
  • the access key a1 is an external access key
  • the access key b1 is an internal access key
  • the node device 1A uses different access keys (b1 and c1) between the node device 1B and the node device 1C. For example, in communication with the node device 1B, the node device 1A uses the access key b1 when transmitting data, but uses the access key a1 when receiving data. As described above, the node device 1A performs communication using different access keys for data transmission and data reception. In other words, the internal access key is a decryption key, and the external access key is an encryption key.
  • each of the node devices constituting the ad hoc communication network exchanges an access key with an adjacent node device by the above method, and encrypts and transmits the frame using the access key received from the communication partner node device. To do. At the same time, the frame received from the communication partner is decrypted using an access key that is periodically updated in the own node device. Thereby, security is ensured.
  • each node device in the network communicates with an adjacent node device
  • an access key for the communication partner node device to access its own node device is generated.
  • Each node device encrypts the generated access key using a common key common in the network, and broadcasts the encrypted access key in a hello frame.
  • Each node device decrypts the access key included in the hello frame received from the adjacent node device with the common key, and accesses the adjacent node device using the access key obtained by the decryption.
  • the process executed between the two node devices will be specifically described.
  • FIG. 7 is a sequence diagram showing processing for performing communication by authenticating each other's node device between two node devices.
  • node device 1A in order to distinguish the two node devices 1 from each other, they are referred to as “node device 1A” and “node device 1B”, respectively.
  • step S1 the access key a1 generated by the node device 1A is transmitted from the node device 1A to the node device 1B that is the communication counterpart node device.
  • the access key a1 is encrypted with a common key held in common between the node device 1A and the node device 1B.
  • the node device 1B performs a decryption process using the common key generated by using the tamper resistant device in the node device 1B, and obtains the access key a1.
  • step S2 the access key b1 generated by the node device 1B is transmitted from the node device 1B to the node device 1A that is the communication partner node device.
  • the access key b1 is also encrypted with a common key that is common between the node device 1A and the node device 1B.
  • the node device 1A performs a decryption process using the common key generated by using the tamper resistant device in the node device 1A to obtain the access key b1.
  • step S1 and step S2 if one of the node devices is a third party that attempts to gain unauthorized access, the communication partner node device does not have a common key with the communication partner node device and is decrypted.
  • the access key of the node device cannot be acquired.
  • the communication partner node device is authenticated based on the success or failure of the exchange of the access key with the communication partner node device. If the authentication is successful, the communication after step S3 is started.
  • step S3 a frame including data is transmitted from the node device 1A to the node device 1B.
  • the transmitted frame is encrypted with the access key b1 acquired by the node device 1A in step S2.
  • a sensor data frame that is an encrypted frame including sensor data is transmitted in step S3.
  • the frame is signed.
  • the signature will be described later.
  • the node device 1B that has received the frame uses the access key b1 generated in its own node device 1B to decrypt the received frame to obtain data.
  • step S4 a frame including data is transmitted from the node device 1B to the node device 1A.
  • the transmitted frame is encrypted with the access key a1 acquired by the node device 1B in step S1, and is signed.
  • the received frame is decrypted using the access key a1 generated in the own node device 1A to obtain data.
  • the node device 1 (1A and 1B) is generated in each node device (1A and 1B) using a common key common to the communication partner node device (1B and 1A).
  • the access keys (a1 and b1) to be encrypted are exchanged. If the communication partner node devices (1B and 1A) are valid, the communication partner node devices (1B and 1A) have a common key that is common to their own node devices (1A and 1B).
  • each node device (1A and 1B) uses the common key held in its own node device (1A and 1B) for the access key (b1 and a1) received from the communication partner node device (1B and 1A). Can be decrypted. Since the third party who tries to access illegally does not have the common key, each node device (1A and 1B) can communicate with the other party depending on whether or not the received access key (b1 and a1) can be decrypted. It is possible to determine whether each node device (1B and 1A) is valid or invalid. Each node device 1 periodically exchanges an access key with the node device of the communication partner, and continues communication with the node device that has been determined to be valid.
  • decryption processing is performed using the access key generated in the own node device, and the data is extracted.
  • the receiving-side node device 1B performs a decryption process using the access key b1 generated by the node device 1B.
  • the data is transmitted after being encrypted using the access key generated in the communication partner node device received from the communication partner node device in the authentication process.
  • the transmission-side node device 1A performs an encryption process using the access key b1 received in step S2 from the communication partner node device 1B.
  • FIG. 8 is a diagram showing a data frame format. Further details of the format will be described later in conjunction with FIGS. An example of the format of the hello frame will be described later with reference to FIG.
  • the data frame includes a header, frame identification information (FID), time information, and a body, and a signature is added to the data frame.
  • the header stores frame destination information and the like.
  • FID a sequence number assigned by the transmission source node device 1 for identifying a data frame is stored.
  • the time information stores information indicating the time when the frame shown in FIG. 8 is assembled. Specifically, information indicating the time at which the data frame in FIG. 8 is transferred to the adjacent node device is stored.
  • the body stores the data body.
  • the signature stores a value obtained by encrypting the hash code of the frame (exactly a plaintext frame) with the common key.
  • the signature proves that the frame shown in FIG. 8 is generated in the node device having the same common key.
  • the data frame shown in FIG. 8 is transmitted after being encrypted with the access key (that is, the externally derived access key) of the communication partner node device.
  • the node device 1 receives the encrypted frame from the communication partner node device, the node device 1 decrypts the encrypted frame using the access key generated by the own node device to obtain a plaintext frame.
  • the node device 1 further extracts an encrypted hash value given as a signature from the plaintext frame, and further decrypts the extracted hash value (encrypted hash value) using a common key.
  • the node device 1 determines that “the same common key as that of the own node device is used”. It is determined that the generated frame is received by the owned node device.
  • the node device 1 stores a combination of the FID and time information of the data frame received from the other party, and stores the stored FID and time information and the FID and time information of the received data frame. And compare. For example, an unauthorized node device may capture and copy a data frame and transmit it when communication is performed between two node devices authenticated as valid. In that case, the FID and time information included in the data frame match the FID and time information received from a valid node device in the past. Thus, when the FID and time information of the received data frame match the FID and time information stored in the node device 1 itself, the node device 1 determines that the access is from an unauthorized node device. Discard the received data frame.
  • the node device 1 determines that the data frame “FID matches the stored value and differs in time information” is the same as the data frame that has already been received. Also discard.
  • FIG. 9 is a flowchart of the common key update process.
  • the common key update process is started when the node device 1 is powered on.
  • step S101 the MPU 11 in FIG. 4 that controls the entire node device 1 recognizes the current time with reference to the clock 33 in FIG. 5, and determines whether the current time is a predetermined update time.
  • step S102 the MPU 11 starts a process for generating a common key for the driver of the tamper resistant PIC microcomputer 14 (hereinafter referred to as “tamper resistant device driver”). I ordered.
  • the tamper resistant device driver works as a part of the common key generation unit 3.
  • the MPU 11 gives data (hereinafter referred to as “seed data”) used as a seed for generating the common key as an argument to the tamper resistant device driver.
  • seed data data used as a seed for generating the common key as an argument to the tamper resistant device driver.
  • the tamper resistant device driver is also a kind of program executed by the MPU 11.
  • step S103 the tamper resistant device driver outputs the received seed data to the tamper resistant PIC microcomputer 14 which is a tamper resistant device, and uses the seed data to generate a new common key.
  • the PIC microcomputer 14 is instructed.
  • step S104 the tamper resistant PIC microcomputer 14 generates a new common key using the received seed data, and notifies the generated common key to the tamper resistant device.
  • the tamper resistant device driver stores the generated new common key in, for example, the common key storage unit 32 realized on the DRAM 15.
  • step S101 may be realized by a timer interrupt.
  • FIG. 10 is a flowchart of the access key update process.
  • step S201 the timer counter inside the node device 1 (that is, the counter 34 of FIG. 5 realized by the timer IC 13 of FIG. 4) performs a count-up operation.
  • step S203 the access key generation unit 2 generates a new access key according to a predetermined algorithm, and overwrites and updates the internally derived access key stored in the access key storage unit 31.
  • step S204 the timer counter (that is, the counter 34 in FIG. 5) is cleared, and then the process returns to step S201.
  • the common key update in FIG. 9 is performed using a second counter (not shown) that is cleared when the count value reaches a value corresponding to the predetermined time t 2 (that is, a counter different from the counter 34 in FIG. 5). Processing can also be realized.
  • the access key generation unit 2 refers to the clock 33 and determines whether or not the current time corresponds to the access key update time, whereby the access key update process of FIG. 10 can be realized.
  • the transmission of the hello frame accompanying the update of the access key can be dispersed in time within the ad hoc communication system by, for example, the following (1) to (3).
  • (1) When each of the node devices 1A to 1I in FIG. 2 is set to start the processing of FIG. 10 after a common predetermined time has elapsed after power-on, The power is turned on at different times. Then, since the update times of the access keys by the node devices 1A to 1I are also distributed, the transmission of the hello frame that occurs following the update of the access keys also occurs in a time-distributed manner.
  • Each of the node devices 1A to 1I may be set to start the processing in FIG. 10 after a random time different for each of the node devices 1A to 1I has elapsed after the power is turned on.
  • the random time may be written and set in advance in a predetermined area of the flash memory 16 of each of the node devices 1A to 1I.
  • a predetermined length of time t 1 of the different may be set.
  • the predetermined time t 1 for example, as a constant to be used by the firmware program MPU11 be executed is set in advance.
  • a hello frame is transmitted as described with respect to steps S1 and S2 of FIG.
  • the generated new access key is notified to the adjacent node device by the hello frame.
  • FIG. 11 is a flowchart of the hello frame transmission process.
  • FIG. 12 is a diagram for explaining the format of the hello frame and various processes performed on the hello frame.
  • step S1 in FIG. 7 the node device 1A executes the process in FIG. 11 and in step S2, the node device 1B executes the process in FIG.
  • the access key generation unit 2 notifies the hello frame creation unit 36 of the access key generation
  • the hello frame creation unit 36 starts the process of FIG.
  • the hello frame creation unit 36 creates hello data (that is, plaintext data that is the basis of the hello frame payload) and a hello frame header.
  • the hello data includes access key data newly generated by the access key generation unit 2.
  • the hello frame may be a frame of a predetermined format determined in advance for exchanging the access key, and the payload may include various fields other than the access key.
  • the hello frame of the present embodiment includes only an access key encrypted in the payload will be described as an example.
  • step S301 the hello frame creation unit 36 can prepare the hello data simply by reading the access key derived from the inside as the hello data from the access key storage unit 31. That is, the plaintext access key D1 of FIG. 12 is prepared as hello data in step S301.
  • the hello frame creation unit 36 calculates the hash value of the hello data, and assigns the calculated hash value as a signature to the end of the plaintext frame that is the basis of the hello frame. Specifically, the hello frame creation unit 36 calculates the plaintext hash value D2 from the plaintext access key D1 of FIG. 12, and encrypts the plaintext frame obtained by concatenating the header, the plaintext access key D1, and the plaintext hash value D2 with the hello frame encryption. To the unit 37.
  • the name “plaintext hash value” is a name for clearly indicating that the hash value is an original hash value before being encrypted, in contrast to the encrypted hash value.
  • step S303 the hello frame encryption unit 37 reads the common key with reference to the common key storage unit 32, and the plaintext frame (to be precise, the payload and trailer of the plaintext frame) after the signature is given in step S302. ) Is encrypted using a common key.
  • step S303 the hello frame encryption unit 37 generates a key stream from the common key, and an exclusive OR (XOR; eXclusive OR) of the part composed of the plaintext access key D1 and the plaintext hash value D2 and the key stream. Ask for. Thereby, in step S303, an encrypted payload and trailer are generated.
  • XOR exclusive OR
  • eXclusive OR exclusive OR
  • the hello frame encryption unit 37 generates an encrypted access key D3 from the plaintext access key D1, and generates an encrypted hash value D4 from the plaintext hash value D2.
  • the encryption or decryption operation using the common key is indicated by a thick black arrow.
  • the header prepared in step S301 is not encrypted and is used as clear text.
  • an ad hoc header D9 including fields of a local destination address D5, a local source address D6, a frame type D7, and a frame size D8 is prepared in step S301.
  • step S303 the hello frame encryption unit 37 concatenates the ad hoc header D9 with the encrypted access key D3 as the payload D10 and the encrypted hash value D4 as the trailer D11 to create a hello frame. Then, the hello frame encryption unit 37 outputs the created hello frame to the hello frame transmission buffer 41.
  • the hello frame is broadcast to notify the access key to a plurality of adjacent devices (other node devices and gateway devices GW). Therefore, specifically, the local destination address D5 is a broadcast address, and the local source address D6 is the MAC address of the node device 1 itself.
  • the frame type D7 is set to a value representing a hello frame.
  • the frame size D8 specifies the sum of the lengths of the encrypted access key D3 and the encrypted hash value D4 (that is, the sum of the lengths of the plaintext access key D1 and the plaintext hash value D2).
  • step S304 the transmission unit 7 transmits a hello frame. That is, the hello frame temporarily stored in the hello frame transmission buffer 41 as a result of step S303 is read and transmitted by the transmission processing unit 44 in step S304.
  • FIG. 13 is a flowchart of the hello frame reception process. For example, in step S1 of FIG. 7, since the node device 1A of FIG. 2 performs the process of FIG. 11, the process of FIG. 13 is performed by the node device 1B adjacent to the node device 1A.
  • the frame branching processing unit 21 determines from the frame type D7 of the ad hoc header D9 that “the received frame is a hello frame”. And the process of FIG. 13 is started by the determination. Also, the received frame determined to be a hello frame by the frame branch processing unit 21 is temporarily stored in the hello frame reception buffer 22.
  • step S401 the hello frame decryption unit 25 of the decryption unit 5 reads the data of the common key with reference to the common key storage unit 32. Then, the hello frame decoding unit 25 uses the common key to decode the hello frame (in the present embodiment, its payload and trailer) stored in the hello frame reception buffer 22.
  • the hello frame decryption unit 25 generates a key stream from the common key, and obtains an XOR between the part composed of the payload D10 and the trailer D11 and the key stream. Thereby, the hello frame decryption unit 25 obtains the decrypted plaintext access key D12 from the encrypted access key D3, and obtains the decrypted plaintext hash value D13 from the encrypted hash value D4. Then, the hello frame decryption unit 25 outputs a plaintext frame including the ad hoc header D9, the decrypted plaintext access key D12, and the decrypted plaintext hash value D13 to the confirmation unit 29.
  • step S402 the confirmation unit 29 extracts the decrypted plaintext access key D12 from the plaintext frame input from the hello frame decryption unit 25. Then, the confirmation unit 29 calculates the hash value of the decrypted plaintext access key D12 to obtain the calculated hash value D14 of FIG.
  • step S403 the confirmation unit 29 compares the decrypted plaintext hash value D13 in FIG. 12 with the calculated hash value D14. If the two hash values are equal, the confirmation unit 29 determines “OK”, and the process proceeds to step S404. On the other hand, if the two hash values are different, the confirmation unit 29 determines “NG”, and the process proceeds to step S405.
  • step S404 the confirmation unit 29 overwrites the external access key in the access key storage unit 28 associated with the local source address D6 with the decrypted plaintext access key D12. As a result, the external access key corresponding to the node device that is the transmission source of the hello frame is updated. Then, the process of FIG. 13 ends.
  • step S405 the hello frame that triggered the start of the process of FIG. 13 is discarded, and the process of FIG. 13 ends.
  • the details of the processing corresponding to steps S1 and S2 of FIG. 7 have been described above with reference to FIGS. 10 to 13. Subsequently, the details of the processing corresponding to steps S3 and S4 of FIG. Description will be made with reference to FIG.
  • FIG. 14 is a flowchart of data frame transmission processing.
  • the node device 1A performs the processing in FIG. 14 and in step S4, the node device 1B performs the processing in FIG.
  • the data frame transmission process may be started when triggered by an input from an external device such as a sensor connected to the node device 1.
  • the node device 1 may perform data frame transmission processing according to a predetermined schedule.
  • the data frame creation unit 40 starts the process of FIG. (1)
  • Data to be transmitted (hereinafter referred to as “target data”) is prepared.
  • the target data may be input from an external device connected to the node device 1, or may be generated by the data frame generation unit 40.
  • An example of the target data is the sensor data described with reference to FIG.
  • a final destination (that is, a global destination in the ad hoc network) is determined.
  • the final destination may be fixedly determined as the gateway device GW as in the example of FIG. 2, or may be dynamically determined by the data frame creation unit 40.
  • a local destination that is, one of other adjacent node devices.
  • the node device 1 that is a component of the ad hoc communication system can determine a local destination from a global destination.
  • the node device 1 that is a component of the ad hoc communication system creates a list of other node devices existing around the node device 1 itself, and the node device 1 generates a frame based on the list.
  • the node device to be transferred can be determined. That is, the node device 1 has a function of determining a local destination from a global destination and routing a frame.
  • the node device 1B in FIG. 2 creates a list for the other node devices 1A, 1C, and 1E that exist around the node device 1B itself, and “the frame whose final destination is the gateway device GW is the node device 1C. It is preferable to transfer the information to “ That is, the node device 1B manages a global destination (for example, the gateway device GW) in association with a local destination (for example, the node device 1C) indicating a device adjacent to the node device 1B itself, and performs frame routing. Information that associates a global destination with a local destination is stored in, for example, the DRAM 15 in FIG.
  • information that associates global destinations with local destinations may be weighted.
  • the weighting indicates which of a plurality of devices (for example, the node devices 1A, 1C, and 1E) adjacent to the node device 1B itself is preferable as a transfer destination with respect to a certain global destination (for example, the gateway device GW).
  • the weight of the set of the gateway device GW and the node device 1C shows a higher priority than the weight of the set of the gateway device GW and the node device 1A.
  • information such as “the frame whose gateway is the gateway device GW is preferably transferred to the node device 1C rather than transferred to the node device 1A or 1E” is expressed by weighting.
  • the MPU 11 manages the above information by executing the firmware program, and determines whether the received frame needs to be transferred.
  • the MPU 11 that executes the firmware program refers to the DRAM 15 to determine a local destination from a global destination, and transmits a frame using the determined local destination as the transfer destination.
  • the data frame transmission process is started when the conditions (1) to (3) are satisfied.
  • the data frame creation unit 40 calculates a hash value of the plaintext payload that is the basis of the payload of the data frame.
  • the data frame creation unit 40 assigns the calculated hash value as a part of the plaintext trailer following the end of the plaintext payload.
  • a signature is set on the trailer.
  • FIG. 15 is a diagram for explaining a data frame format and a first example of various processes performed on the data frame.
  • FIG. 15 illustrates a case where a format that is partially different from that in FIG. 8 is adopted. The case of adopting the same format as in FIG. 8 will be described later with reference to FIG.
  • step S501 the data frame creation unit 40 issues a new FID as the plaintext FID / D15 in FIG.
  • the data frame creation unit 40 appropriately prepares other data to be included in the payload in addition to the target data described regarding the condition (1) in step S501.
  • the data prepared in step S501 may be data read from the DRAM 15 or the flash memory 16, data generated by the data frame creation unit 40, or data input from an external device.
  • the data frame creation unit 40 creates plaintext body D16 by combining data designating a global destination, which is the final destination of the data frame, with the target data prepared in the condition (1).
  • the data frame creation unit 40 further generates an ad hoc header D9 in step S501.
  • the format of the ad hoc header D9 is the same as that of the hello frame.
  • the ad hoc header D9 includes a local destination address D5, a local source address D6, a frame type D7, and a frame size D8.
  • the local destination address D5 is a MAC address determined as described in the condition (3) above.
  • the frame type D7 is set to a value indicating a data frame.
  • step S501 the data frame creation unit 40 creates an ad hoc header D9, a plaintext payload composed of plaintext FID / D15 and plaintext body D16, and calculates a plaintext hash value D17 of FIG. 15 from the plaintext payload.
  • step S502 the data frame creation unit 40 refers to the clock 33 to acquire current time information, and concatenates the acquired current time information as a plaintext time D18 in FIG. 15 after the plaintext hash value D17.
  • the portion consisting of the plaintext hash value D17 and the plaintext time D18 is a plaintext signature that is the source of the encryption signature.
  • the data frame creation unit 40 outputs a plaintext frame including the ad hoc header D9, the plaintext payload, and the plaintext signature to the data frame encryption unit 39.
  • step S503 the data frame encryption unit 39 reads the common key with reference to the common key storage unit 32, encrypts the plain text signature using the common key, and obtains the encrypted signature D21.
  • RC4 is employed as the encryption algorithm in this embodiment. Therefore, in step S503, the data frame encryption unit 39 specifically generates a key stream from the common key and obtains an XOR between the plaintext signature and the key stream.
  • the encrypted hash value D19 is obtained from the plaintext hash value D17
  • the encrypted time D20 is obtained from the plaintext time D18.
  • an encrypted signature D21 composed of the encrypted hash value D19 and the encryption time D20 is obtained from the entire plaintext signature.
  • step S504 the data frame encryption unit 39 uses the access key of the transmission destination node device determined by the condition (3) (that is, the node device whose MAC address is specified in the local destination address D5). To encrypt the plaintext frame. That is, the data frame encryption unit 39 reads the access key of the transmission destination node device with reference to the access key storage unit 28, and encrypts the plaintext payload and the encryption signature D21 using the read access key.
  • the data frame encryption unit 39 performs key stream generation and XOR operation. As a result, the data frame encryption unit 39 generates an encrypted FID ⁇ D22 from the plaintext FID ⁇ D15 and an encrypted body D23 from the plaintext body D16. The data frame encryption unit 39 generates a double encryption hash value D24 from the encryption hash value D19 and a double encryption time D25 from the encryption time D20. That is, a double-encrypted signature corresponding to the trailer is obtained from the encryption signature D21.
  • encryption and decryption using the common key are represented by black arrows
  • encryption and decryption using the access keys are represented by hatched arrows.
  • the payload D26 composed of the encrypted FID ⁇ D22 and the encrypted body D23, and the trailer D27 as a signature composed of the double encrypted hash value D24 and the double encrypted time D25 are generated.
  • the data frame encryption unit 39 creates a data frame by connecting the payload D26 and the trailer D27 to the ad hoc header D9 and outputs the data frame to the data frame transmission buffer 43.
  • step S505 the transmission unit 7 transmits a data frame. That is, the data frame temporarily stored in the data frame transmission buffer 43 as a result of step S504 is read and transmitted by the transmission processing unit 44 in step S505.
  • FIG. 16 is a flowchart of the data frame reception process.
  • 1B performs the processing in FIG. 16, and in step S4, the node apparatus 1A performs processing in FIG.
  • the node device 1B receives the data frame encrypted with the access key b1 in the reception unit 8 in step S3 of FIG.
  • the frame branching processing unit 21 determines from the frame type D7 of the ad hoc header D9 that “the received frame is a data frame”. And the process of FIG. 16 is started by the determination.
  • the received frame determined as a data frame by the frame branch processing unit 21 is temporarily stored in the data frame reception buffer 24.
  • step S601 the data frame decryption unit 27 of the decryption unit 5 decrypts the received frame using the access key of the own node device 1B. That is, the data frame decryption unit 27 refers to the access key storage unit 31 and reads the data of the access key b1 that is an access key derived from the inside for the node device 1B itself. Then, the data frame decryption unit 27 decrypts the data frame (in the present embodiment, its payload and trailer) stored in the data frame reception buffer 24 using the access key b1.
  • the data frame decryption unit 27 generates a key stream from the access key b1, and obtains an XOR between the ciphertext (that is, the part composed of the payload D26 and the trailer D27 in FIG. 15) and the key stream. Thereby, the data frame decryption unit 27 obtains the decrypted plaintext FID ⁇ D28 from the encrypted FID ⁇ D22 and obtains the decrypted plaintext body D29 from the encrypted body D23. Further, the data frame decryption unit 27 obtains the decrypted ciphertext hash value D30 from the double encryption hash value D24, and obtains the decrypted ciphertext time D31 from the double encryption time D25. That is, the data frame decryption unit 27 obtains an encryption signature from the double encryption signature.
  • step S602 the data frame decryption unit 27 reads the data of the common key with reference to the common key storage unit 32, and an encrypted signature composed of the decrypted ciphertext hash value D30 and the decrypted ciphertext time D31. Is decrypted using the common key. As a result, a decrypted plaintext hash value D33 is obtained from the decrypted ciphertext hash value D30, and a decrypted plaintext time D34 is obtained from the decrypted ciphertext time D31.
  • the data frame decryption unit 27 sends the ad hoc header D9, the decrypted plaintext FID / D28, the decrypted plaintext body D29, the decrypted plaintext hash value D33, and the counter 34 to the confirmation unit 29 as a decrypted plaintext frame. Output.
  • step S ⁇ b> 603 the confirmation unit 29 extracts, from the input from the data frame decryption unit 27, a portion composed of the decrypted plaintext FID • D 28 and the decrypted plaintext body D 29 (hereinafter referred to as “decrypted plaintext payload”). . And the confirmation part 29 calculates the hash value of the decrypted plaintext payload, and obtains the calculated hash value D32 of FIG.
  • step S603 as an authentication determination process for the received data frame, the confirmation unit 29 compares the calculated hash value D32 with the decrypted plaintext hash value D33. If the received data frame is a correct data frame that has not been tampered with, the calculated hash value D32 matches the decrypted plaintext hash value D33.
  • step S604 the confirmation unit 29 extracts the decrypted plaintext time D34. Since step S604 is executed when it is determined “OK” in step S603, the decrypted plaintext time D34 is equal to the original plaintext time D18. In addition, the confirmation unit 29 also extracts the local source address D6 in step S604.
  • step S605 the confirmation unit 29 performs time determination processing.
  • the time determination process is a process for defense against a spoofing attack.
  • an unauthorized third party intercepts (that is, captures) a data frame, and copies or partially changes the intercepted data frame and transmits the data frame as a spoofing attack.
  • the confirmation unit 29 performs time determination processing with reference to the latest transmission time storage unit 45 in FIG. As shown in FIG. 16, the latest transmission time storage unit 45 stores an entry that associates a local source address with a time.
  • the first entry shown in FIG. 16 associates the local source address A 1 with the time T 1 .
  • the description of FIG. 16 is an example in which the node device 1B performs the processing of FIG. Therefore, the first entry shown in FIG. 16 is “the decrypted plaintext time D34 obtained from the latest data frame received by the node device 1B from the node device identified by the local source address A 1 is T 1. Is. "
  • the latest transmission time storage unit 45 does not store any entry, but an entry is added to the latest transmission time storage unit 45 in step S606 described later. Or existing entries are updated.
  • step S605 the confirmation unit 29 searches the latest transmission time storage unit 45 using the extracted local source address D6 as a search key. As a result of the search, if there is no entry whose “local source address” field matches the extracted local source address D6, the confirmation unit 29 indicates that “the received data frame is not a data frame sent by a spoofing attack”. to decide. That is, the confirmation unit 29 determines that “the received data frame is a valid data frame”, and the process proceeds to step S606.
  • the confirmation unit 29 compares the value of the “time” field of the found entry with the decrypted plaintext time D34 extracted in step S604.
  • the confirmation unit 29 determines that “the received data frame is due to a spoofing attack”, and the process proceeds to step S608. On the contrary, if the two times do not match, the confirmation unit 29 confirms that a new data frame different from that received by the node device 1B from the node device identified by the local source address D6 is valid. The process proceeds to step S606.
  • step S606 the confirmation unit 29 updates the latest time information of the transmission source node device identified by the local source address D6. That is, if no entry is found in the search in step S605, the confirmation unit 29 creates a new entry that associates the local source address D6 with the decrypted plaintext time D34 and stores the new entry in the latest transmission time storage unit 45. . If an entry is found by the search in step S605, the confirmation unit 29 overwrites the value of the “time” field of the found entry with the decrypted plaintext time D34.
  • the confirmation unit 29 When the latest time information held by the latest transmission time storage unit 45 is updated as described above, the confirmation unit 29 outputs a plaintext frame to the received data frame processing unit 30. Then, in step S607, the received data frame processing unit 30 performs processing according to the embodiment using the input from the confirmation unit 29.
  • a final destination that is, a global destination of the target data may be designated. Then, the received data frame processing unit 30 determines whether or not the data frame needs to be transferred according to the global destination, determines the local destination when transferring, and creates a new data frame as a data frame. The unit 40 may be instructed.
  • the received data frame processing unit 30 uses the decrypted plaintext FID ⁇ D28 and the decrypted plaintext time D34 to discriminate between an illegal data frame and a valid data frame, A determination may be made as to whether the received data frame has been retransmitted.
  • step S608 the received data frame is discarded, and the processing in FIG. 16 ends. That is, in step S608, the confirmation unit 29 does not output data to the reception data frame processing unit 30.
  • FIG. 17 is a diagram for explaining a second example of a data frame format and various processes performed on the data frame.
  • FIG. 17 shows an example of a detailed format of FIG.
  • the data frame creation unit 40 of the node device 1A calculates the hash value of the plaintext payload composed of the plaintext FID ⁇ D15, the plaintext time D18, and the plaintext body D16, and obtains the plaintext hash value D35.
  • the data frame encryption unit 39 of the node device 1A encrypts the plaintext hash value D35 using the common key to obtain the encrypted hash value D36, and the portion composed of the plaintext payload and the encrypted hash value D36 Encryption is performed with the access key b1 of 1B.
  • the value D40 is obtained.
  • the data frame encryption unit 39 of the node device 1A receives, in the ad hoc header D9, the payload D41 composed of the encrypted FID / D37, the encryption time D38 and the encrypted body D39, and the double encrypted hash value D40 as the trailer D42. Link.
  • the encrypted data frame completed by the concatenation is temporarily stored in the data frame transmission buffer 43 and transmitted from the transmission processing unit 44.
  • the frame branching processing unit 21 determines from the frame type D7 that “the received frame is a data frame”, and the received frame is the data frame reception buffer 24.
  • the data frame decryption unit 27 decrypts the payload D41 and the trailer D42 with the access key b1 of the node device 1B itself.
  • the decrypted plaintext FID ⁇ D43 is obtained from the encrypted FID ⁇ D37
  • the decrypted plaintext time D44 is obtained from the encrypted time D38
  • the decrypted plaintext is obtained from the encrypted body D39.
  • a body D45 is obtained.
  • a decrypted ciphertext hash value D46 is obtained from the double encrypted hash value D40.
  • the data frame decryption unit 27 further decrypts the decrypted ciphertext hash value D46 with the common key to obtain a decrypted plaintext hash value D48.
  • the confirmation unit 29 of the node device 1B calculates a hash value of a portion including the decrypted plaintext FID ⁇ D43, the decrypted plaintext time D44, and the decrypted plaintext body D45, and obtains the calculated hash value D47. . Then, the confirmation unit 29 compares the calculated hash value D47 with the decrypted plaintext hash value D48, and discards the data frame if they do not match.
  • the confirmation unit 29 further searches the latest transmission time storage unit 45 using the decrypted plaintext time D44 as a search key, and the step of FIG.
  • the time determination process similar to S605 is performed.
  • the processing after step S605 is the same as that described with reference to FIG.
  • the node device exchanges an access key using a common key updated in a predetermined period, and unauthorized access by a third party using the common key and the access key. And access from a legitimate node device. For this reason, it is necessary to match the update timing of the common key and the access key between the node devices. That is, it is necessary to keep the time in the node device synchronized between the node devices in the network.
  • the time synchronization method will be described below.
  • FIG. 18 is a diagram for explaining a time synchronization method.
  • the node device 1A stores the current time of the node device 1A and the final time when the time is adjusted in a storage unit (for example, the DRAM 15).
  • a time synchronization frame for time synchronization is received, information related to time is extracted from the time synchronization frame and compared with information stored in the node device 1A. As a result of the comparison, when it is determined that synchronization is necessary, the node device 1A adjusts the time according to information included in the time synchronization frame.
  • the time synchronization frame is one type of control frame having a format similar to the hello frame, and data indicating the current time and the time when the time is adjusted (hereinafter referred to as “synchronization time”).
  • the current time refers to the time in the node device 1 itself when the time synchronization frame is generated
  • the synchronization time refers to the time at which the time is synchronized in a predetermined device.
  • the predetermined device is the gateway device GW in this embodiment, and the time synchronization means that the time is synchronized in the gateway device GW by, for example, SNTP (Simple Network Time Protocol) or the like.
  • the gateway device GW periodically synchronizes the time by SNTP or the like, for example, once every two hours.
  • Each node device 1 stores the current time and synchronization time of its own node device 1 in the time synchronization frame, and broadcasts it using the time synchronization frame.
  • the time synchronization frame is encrypted and transmitted at a predetermined timing (for example, once every two hours) using a fixed time synchronization key different from the above-described common key that changes over time.
  • the gateway device GW synchronizes the time by SNTP or the like at 12:00, and generates and transmits a time synchronization frame P1 at 13:00.
  • the node device 1A that has received the time synchronization frame P1 compares the last synchronization time stored in the node device 1A with the synchronization time of the time synchronization frame P1.
  • the synchronization time (12:00) of the time synchronization frame P1 is newer than the last synchronization time (11:00) stored.
  • the node device 1A sets the current time (13:00) stored in the received time synchronization frame as the current time.
  • the node device 1A may receive a time synchronization frame based on synchronization at a non-latest time like the time synchronization frame P2 transmitted from the node device 1B.
  • the node device 1A determines that the last synchronization time (11:00) stored in the node device 1A is newer than the synchronization time (10:00) of the time synchronization frame P2. Therefore, the time is not synchronized.
  • FIG. 19 is a sequence diagram illustrating the time synchronization method described with reference to FIG. FIG. 19 shows the SNTP server SS, the gateway device GW, and the node devices 1A to 1C.
  • the gateway device GW and the node device 1A are adjacent in the ad hoc network, and the node device 1A is also adjacent to the node devices 1B and 1C.
  • each of the gateway device GW and the node devices 1A to 1C includes the units shown in FIG. Further, the gateway device GW is further provided with a time adjusting function by SNTP.
  • Step S701 when the time in the clock 33 of the gateway device GW itself becomes 12:00, the gateway device GW accesses the SNTP server SS by SNTP according to a predetermined schedule and performs time adjustment.
  • a schedule such as “transmit at 13:00” is set in advance for the timing of transmitting the time synchronization frame. Therefore, when the clock of the gateway device GW corrected as a result of the time adjustment in step S701 indicates 13:00, the gateway device GW transmits the time synchronization frame P1 as shown in step S702.
  • the timing which transmits a time synchronous frame may set another time with respect to each of several adjacent node apparatus.
  • the time synchronization frame includes an ad hoc header D9 similar to the hello frame of FIG. 12, and further includes two fields of “synchronization time” and “current time”. It includes an encrypted payload obtained by encrypting a plaintext payload using a time synchronization key.
  • step S702 the gateway device GW transmits a time synchronization frame P1 indicating that “the synchronization time is 12:00 and the current time is 13:00”. That is, the value of the synchronization time field is the time when the gateway device GW itself performed time adjustment in step S701, and the value of the current time field is the time when the gateway device GW transmits the time synchronization frame P1.
  • the local destination address of the time synchronization frame P1 is the address of the node device 1A. Details of the time synchronization frame transmission processing will be described later with reference to FIG.
  • the communication delay time between devices adjacent to each other in the ad hoc network is regarded as zero.
  • the time synchronization frame P1 is received at the node device 1A at 13:00 by the clock 33 of the gateway device GW.
  • the clock 33 of the node apparatus 1A when receiving the time synchronization frame P1 may indicate, for example, 12:58 or 13:03.
  • the node device 1A that has received the time synchronization frame P1 performs time adjustment (that is, time synchronization processing) of the clock 33 of the node device 1A itself in step S703.
  • time adjustment that is, time synchronization processing
  • the clock 33 of the node device 1A is corrected to 13:00.
  • the time synchronization processing in step S703 is specifically the time synchronization frame reception processing in FIG.
  • the individual node devices 1A to 1C perform time synchronization frame transmission processing according to individual schedule settings. For example, in the example of FIG. 19, when the node device 1B reaches 13:30 on the clock of the node device 1B, the time synchronization frame P2 is transmitted as shown in step S704. The time synchronization frame P2 indicates that “the synchronization time is 10:00 and the current time is 13:30”. Further, it is assumed that the local destination address of the time synchronization frame P2 is the address of the node device 1A.
  • the node device 1A receives the time synchronization frame P2, and performs time synchronization processing as shown in step S705 in response to reception of the time synchronization frame P2.
  • the time 10:00 indicated as the synchronization time in the time synchronization frame P2 is different from the time 12:00 indicated as the synchronization time in the time synchronization frame P1 used in the time synchronization processing already performed in step S703. Is old. Therefore, as will be described in detail with reference to FIG. 21, the node device 1A does not update the clock 33 in step S705.
  • an interval Tnax from when the clock 33 is corrected by the time synchronization process to when the time synchronization frame is transmitted to another adjacent node device is set in advance.
  • the interval Tnax set in the node device 1A is 40 minutes.
  • a different random interval may be set for each of the node devices 1A to 1C.
  • the node device 1A may set the same interval (for example, the above-described interval Tnax) until the time synchronization frame is transmitted to each of the plurality of node devices 1B and 1C after the clock 33 is corrected.
  • the interval Tnax until the time synchronization frame is transmitted to 1C may be set to a different value.
  • step S706 a time synchronization frame P3 indicating that the synchronization time is 12:00 and the current time is 13:40 is transmitted.
  • the time synchronization frame P3 indicates “synchronization time is 12:00” because the time synchronization frame P1 that triggered the correction of the clock 33 by the node device 1A was indicated as the synchronization time at 12:00. is there.
  • the time synchronization frame P3 indicates “the current time is 13:40” because the time synchronization frame P3 is transmitted at 13:40.
  • FIG. 20 is a flowchart of time synchronization frame transmission processing.
  • the gateway device GW performs the processing in FIG. 20, the node device 1B in step S704, and the node device 1A in step S706, respectively.
  • the time synchronization unit 9 of the node device 1A may include a second counter (not shown) different from the counter 34 of FIG.
  • the second counter can be realized by, for example, a hardware circuit similar to the timer IC 13 in FIG.
  • a value indicating the interval Tnax is set in the second counter. Then, the time synchronization unit 9 clears the second counter at the end of the time synchronization frame reception process described later with reference to FIG. When the second counter counts up to a value indicating the interval Tnax, the time synchronization unit 9 starts the process of FIG.
  • the time synchronization unit 9 stores the time when the clock 33 is corrected, determines whether the interval Tnax has elapsed from the stored time by referring to the clock 33, and if the interval Tnax has elapsed. You may start the process of FIG.
  • the time synchronization unit 9 sets the last synchronization time held in the node device 1 in the frame as the synchronization time in step S801.
  • the time synchronization unit 9 holds the time obtained from the synchronization time field of the time synchronization frame when the process of FIG. 21 was last performed as the “final synchronization time” in the node device 1 itself, for example, on the DRAM 15. . Therefore, in step S801, the time synchronization unit 9 sets the value of the last synchronization time held in the synchronization time field of a newly created plaintext frame.
  • step S706 when the time synchronization unit 9 of the node device 1A executes step S706, the time synchronization unit 9 uses the synchronization time indicated by the time synchronization frame P1 that triggered the correction of the clock 33 in step S703. A certain 12:00 is held as the last synchronization time. Therefore, in step S801 of the process of FIG. 20 called from step S706, the time synchronization unit 9 sets 12:00 in the synchronization time field of the newly created plaintext frame.
  • step S802 the time synchronization unit 9 sets the time synchronization frame transmission time of the own node device 1 as a “current time” in a frame (that is, a newly created plaintext frame). More precisely, the time indicated by the clock 33 at the time of execution of step S802 is approximately regarded as the time synchronization frame transmission time from the node device 1, and is added to the current time field of the plaintext frame by the time synchronization unit 9. Is set.
  • step S706 when the time synchronization unit 9 of the node device 1A executes step S706, in step S802 of the process of FIG. 20 called from step S706, the time synchronization unit 9 displays the current time field of the plaintext frame. Is set to 13:40.
  • step S803 the time synchronization unit 9 creates a header of the time synchronization frame, and adds the created header to the plaintext payload (including the synchronization time and the current time).
  • the header created in step S803 has the same format as the ad hoc header D9 of the hello frame, for example.
  • the time synchronization unit 9 outputs a plaintext frame including a header and a plaintext payload to the time synchronization frame encryption unit 38.
  • step S804 the time synchronization frame encryption unit 38 reads the time synchronization key with reference to the time synchronization key storage unit 35, and encrypts the plaintext payload using the time synchronization key.
  • the time synchronization frame encryption unit 38 in step S804, specifically generates a key stream and performs an XOR operation.
  • the time synchronization frame encryption unit 38 outputs to the time synchronization frame transmission buffer 42 a time synchronization frame composed of the header added in step S803 and the payload encrypted in step S804.
  • step S805 the transmission unit 7 transmits a time synchronization frame. That is, the transmission processing unit 44 transmits the time synchronization frame temporarily stored in the time synchronization frame transmission buffer 42, and the process of FIG.
  • FIG. 21 is a flowchart of time synchronization frame reception processing.
  • the node device 1A performs the process of FIG.
  • the node device 1 receives a frame at the receiving unit 8, and the frame branching processing unit 21 of the receiving unit 8 determines that “the received frame is a time synchronization frame” based on the frame type D 7 of the ad hoc header D 9. It is started when it is determined. If the frame branch processing unit 21 determines that “the received frame is a time synchronization frame”, the received frame is output to the time synchronization frame reception buffer 23 and stored.
  • step S901 the time synchronization frame decoding unit 26 reads the time synchronization frame from the time synchronization frame reception buffer 23 and decodes it. That is, the time synchronization frame decryption unit 26 reads the time synchronization key with reference to the time synchronization key storage unit 35, and decrypts the encrypted payload of the time synchronization frame using the time synchronization key.
  • the time synchronization frame decryption unit 26 specifically performs key stream generation and XOR operation in step S901.
  • the time synchronization frame decoding unit 26 outputs the header and the plaintext payload obtained by the decoding to the time synchronization unit 9.
  • the time synchronization unit 9 extracts the value of the synchronization time field from the plaintext payload and reads the last synchronization time held in the DRAM 15, for example. Then, the time synchronization unit 9 compares the extracted synchronization time with the read last synchronization time.
  • step S903 When the synchronization time is newer than the last synchronization time, the process proceeds to step S903. Conversely, when the synchronization time is the same as the last synchronization time or the synchronization time is older than the last synchronization time, the process proceeds to step S904.
  • step S903 the time synchronization unit 9 sets the current time of the time synchronization frame as the time of the own node device 1. That is, the time synchronization unit 9 corrects the time of the clock 33 by extracting the value of the current time field of the time synchronization frame and setting the extracted value in the clock 33. Then, the process of FIG. 21 ends.
  • step S903 is executed, and the time synchronization unit 9 corrects the clock 33.
  • step S904 the time synchronization unit 9 discards the time synchronization frame, and the process in FIG.
  • step S904 is executed.
  • the time synchronization frame according to the present embodiment does not include a trailer such as a signature, but uses a time synchronization frame in a format in which a hash value of a plaintext payload is added as a trailer.
  • a trailer such as a signature
  • Embodiments are also possible.
  • the time synchronization unit 9 calculates a hash value, and the time synchronization frame encryption unit 38 encrypts both the payload and the trailer.
  • the time synchronization frame decoding unit 26 decodes both the payload and the trailer.
  • the confirmation unit 29 calculates a hash value from the plaintext payload obtained by decryption, compares the calculated hash value with the plaintext hash value obtained by decryption, and only when the two hash values match, The synchronization unit 9 executes the processing after step S902.
  • each node device synchronizes at the time of a predetermined device such as a gateway device when the number of node devices constituting the ad hoc communication network is large.
  • traffic increases.
  • each node device can synchronize time from the already synchronized node devices among the adjacent node devices as in the above time synchronization method. Receive the frame and set the time. Therefore, according to the present embodiment, each node device can synchronize time without increasing the traffic of the entire network.
  • the node device 1 shown in FIGS. 3 to 5 is one of the node devices in the network constituted by a plurality of node devices as shown in FIGS. 2, 6, 7, 18, and 19, for example.
  • the first node device 1A and the second node device 1B among the plurality of node devices will be noted, and the configuration of the first node device 1A will be outlined.
  • the first node device 1A changes the first access key, which is an encryption key unique to the first node device 1A, at every first time, and generates an access key A generation unit 2 is included.
  • the first node device 1A assigns a common key common to a plurality of node devices in the network every second time that is a time common to the plurality of node devices.
  • a common key generation unit 3 that is generated by modification is provided.
  • the first node device 1A has a component that functions as an access key notification unit that encrypts the generated first access key with the generated common key and transmits it to the second node device 1B. That is, the frame processing unit 6, the encryption unit 4, and the transmission unit 7 of FIG. 3 work together as the access key notification unit. More specifically, the hello frame creation unit 36, the hello frame encryption unit 37, the hello frame transmission buffer 41, and the transmission processing unit 44 in FIG. 5 work together as the access key notification unit.
  • the first node device 1A has a component that functions as an access key receiving unit that receives an access key notification frame transmitted from the second node device 1B.
  • the “access key notification frame” includes access key notification data that is data obtained by encrypting the second access key, which is an encryption key unique to the second node device 1B, with a common key. Is an encrypted hello frame in the above embodiment.
  • the “second access key” is, for example, the access key b1 in FIG. 6, and the “access key notification data” is, for example, the encrypted access key D3 in FIG.
  • the receiving unit 8 in FIG. 3 functions as an access key receiving unit.
  • the first node device 1A decrypts the access key notification data using the generated common key, and thereby functions as an access key decryption unit that acquires the second access key from the access key notification data.
  • the decryption unit 5 in FIG. 3 (more specifically, the hello frame decryption unit 25 in FIG. 5) works as the access key decryption unit to obtain the access key b1.
  • the first node device 1A has a component that functions as a data transmission unit.
  • the data transmission unit adds first signature data obtained by encrypting data including the first hash value calculated from the first plaintext frame with the common key to the first plaintext frame. Then, the data transmission unit encrypts the first plaintext frame to which the first signature data is attached with the second access key obtained by decryption, and transmits the first plaintext frame as the first encrypted frame.
  • first plaintext frame is a plaintext frame including the ad hoc header D9 and the plaintext payload composed of the plaintext FID • D15 and the plaintext body D16 described with reference to FIG.
  • first hash value is the plaintext hash value D17 of FIG. 15 calculated from a plaintext frame for which a trailer has not yet been created (more precisely, from a plaintext payload). "Is an encryption signature D21.
  • a header may be further used to calculate the hash value.
  • second access key is specifically the access key b1 in FIG.
  • the encryption unit 4 and the transmission unit 7 in FIG. 3 (more specifically, the data frame encryption unit 39, the data frame transmission buffer 43, and the transmission processing unit 44 in FIG. works as a transmitter.
  • the first node device 1A has a receiving unit 8 in FIG. 3 (more specifically, the frame branching processing unit 21 in FIG. 5 and the data receiving unit that receives the second encrypted frame from the second node device 1B.
  • the “second encrypted frame” is a frame in which the second plaintext frame is encrypted with the first access key
  • the “second plaintext frame” is the second hash value. It is a frame to which second signature data obtained by encrypting data including the same with the common key is added.
  • the first node device 1A includes the decoding unit 5 in FIG. 3 (more specifically, the data frame decoding unit 27 in FIG. 5) that functions as a data decoding unit.
  • the data decryption unit decrypts the second encrypted frame with the first access key, and obtains a second plaintext frame to which the second signature data is attached from the second encrypted frame.
  • the example of FIG. 15 has been described in the case of transmission of a data frame from the node device 1A to the node device 1B.
  • the “second encrypted frame” transmitted from the node device 1B corresponds to the data frame including the ad hoc header D9, the payload D26, and the trailer D27 in FIG.
  • the data frame decoding unit 27 of the node device 1A serving as the data decoding unit obtains a second plaintext frame by using the access key a1 that is the “first access key”.
  • the “second plaintext frame” includes an ad hoc header D9 and a plaintext payload composed of the decrypted plaintext FID ⁇ D28 and the decrypted plaintext body D29.
  • an encrypted signature (corresponding to the “second signature data” described above) composed of the decrypted ciphertext hash value D30 and the decrypted ciphertext time D31 is used as a trailer. Has been granted.
  • the first node device 1A has a component that functions as a consistency confirmation unit.
  • the data frame decoding unit 27 and the confirmation unit 29 in FIG. 5 work together as a consistency confirmation unit.
  • the data frame decryption unit 27 as a part of the consistency confirmation unit obtains the second hash value by decrypting the second signature data using the generated common key.
  • the confirmation unit 29 as a part of the consistency confirmation unit calculates a third hash value (for example, the calculated hash value D32 in FIG. 15) from the second plaintext frame, It is confirmed whether or not consistency with the third hash value is obtained.
  • a third hash value for example, the calculated hash value D32 in FIG. 15
  • the data transmission unit further includes a first identifier for uniquely identifying the first plaintext frame and information indicating the first transmission time in the first plaintext frame. Also good.
  • the data frame creation unit 40 also functions as a part of the data transmission unit.
  • the data frame creation unit 40 uses the plaintext FID ⁇ D15 of FIG.
  • the plaintext time D18 as “information indicating time” is included in the first plaintext frame.
  • the data frame creation unit 40 may include the encryption time D20 as “information indicating the first transmission time” in the first plaintext frame as shown in FIG.
  • the plaintext time D18 and the encryption time D20 are the same in that they indicate “first transmission time”, although there is a difference between clear text and ciphertext.
  • the received data frame processing unit 30 in FIG. 5 may additionally function as the above-described consistency confirmation unit. That is, the received data frame processing unit 30 as the consistency confirmation unit receives the third identifier that has been received in the past by the second identifier included in the second plaintext frame decrypted from the second encrypted frame. If the third identifier contained in the third plaintext frame decrypted from the encrypted frame is equal to the third identifier, discard the second and third plaintext frames whose information obtained by decryption indicates a newer transmission time. May be.
  • the “second plaintext frame” includes an ad hoc header D9, a plaintext payload, and a decrypted ciphertext as a plaintext trailer. It consists of a hash value D46.
  • the plaintext payload includes a decrypted plaintext FID ⁇ D43, a decrypted plaintext time D44, and a decrypted plaintext body D45.
  • the “second identifier” corresponds to the decrypted plaintext FID ⁇ D43.
  • the received data frame processing unit 30 as the consistency confirmation unit operates as follows. That is, when the plaintext FID ⁇ D43 is equal to the FID of another data frame that has been received in the past, the reception data frame processing unit 30 has a transmission time obtained by decryption (for example, decrypted plaintext time D44). Discard the newer data frame.
  • each unit as the data transmission unit and the consistency confirmation unit performs processing using an identifier (specifically, FID), so that the node device 1A detects a frame transmitted from an unauthorized node device. can do.
  • FID an identifier
  • the common key generation unit 3 of each of a plurality of node devices (for example, including the node devices 1A and 1B) in the network generates a common key for each second time that is a common time. . Therefore, if the clocks of each of the plurality of node devices (for example, the clock 33 in FIG. 5) are synchronized with each other within an error range that can be ignored, a plurality of node devices generate a common key. The timing is also synchronized.
  • the time lag of the clocks of each of the plurality of node devices may increase with time. Therefore, in the above embodiment, the timing of generating the common key is synchronized among the plurality of node devices in the network by correcting the time lag of the clock of each of the plurality of node devices.
  • the first node device 1A has components that work together as a time synchronization frame transmission unit.
  • the time synchronization frame transmission unit includes, as a time synchronization frame, data indicating a first current time in the first node device 1A and a first synchronization time at which time adjustment is performed in the first node device 1A.
  • a first time synchronization frame is generated and transmitted.
  • the “first synchronization time” after step S703 is 12:00, and in step S706, the time synchronization frame P3 including information indicating 13:40 as the “first current time” is Has been sent.
  • time synchronization frame of the above embodiment is encrypted with the time synchronization key
  • an embodiment in which the time synchronization frame is not encrypted is also possible. Therefore, in the above embodiment, the time synchronization unit 9, the time synchronization frame encryption unit 38, the time synchronization frame transmission buffer 42, and the transmission processing unit 44 in FIG. 5 work together as a time synchronization frame transmission unit.
  • the time synchronization frame encryption unit 38 may be omitted.
  • the first node device 1A has a component that functions as a time synchronization frame receiving unit that receives the second time synchronization frame from the second node device 1B.
  • the second time synchronization frame is the second current time (for example, 13:30 in the example of FIG. 19) in the second node device 1B and the second time that is time-matched in the second node device. Data indicating the synchronization time (for example, 10:00 in the example of FIG. 19).
  • the frame branch processing unit 21 and the time synchronization frame reception buffer 23 in FIG. 5 work together as the time synchronization frame reception unit.
  • the first node device 1A includes a component that functions as a time update unit.
  • the time updating unit compares the second synchronization time obtained from the second time synchronization frame with the first synchronization time stored in the first node device 1A. If the second synchronization time is newer, the time updating unit sets the second current time as the current time in the first node device 1A and updates the time of the first node device 1A. .
  • the time synchronization unit 9 in FIG. 5 functions as a time update unit.
  • the time synchronization frame decryption unit 26 since the time synchronization frame is encrypted, the time synchronization frame decryption unit 26 also works as part of the time update unit in order to obtain the second synchronization time from the second time synchronization frame. Yes.
  • the node device 1A has, for example, a DRAM 15 as a storage unit.
  • the storage unit stores the second synchronization time as the time when the time synchronization unit 9 as the time update unit performs time adjustment by updating the time of the first node device 1A. 3 and 5 sets the second time based on the time (specifically, the time indicated by the clock 33 in FIG. 5) updated by the time synchronization unit 9 as the time update unit. Keep time.
  • the second node device when the second node device is a legitimate node device, the second node device holds a common key that is common to the first node device. Therefore, the first access key generated by the first node device and the second access key generated by the second node device can be securely exchanged using the common key.
  • the first node device can encrypt the data using the second access key of the second node device obtained by decryption and transmit the data to the second node device. Furthermore, the first node device can also receive data encrypted using the first access key generated by the first node itself from the second node device.
  • each node device autonomously performs an operation for encryption in cooperation with another node device. Therefore, even in a network including a large number of node devices, traffic for exchanging encryption keys does not concentrate.
  • a node device that can change a common key autonomously with a simple configuration and without applying a load to the network.
  • control program that causes a computer to execute the above method is also included in an example of the embodiment of the present invention.
  • the control program may be provided by being stored in a computer-readable storage medium such as a magnetic disk, a magneto-optical disk, a nonvolatile semiconductor memory, or an optical disk, loaded into a computer, and executed by the computer.
  • a computer that executes the control program is built in or connected to a node device (not shown), and is not shown according to the control program so that the node device (not shown) operates in the same manner as the node device 1 of the embodiment.
  • Control the node device For example, from another viewpoint, the MPU 11 that is a built-in computer of the node device 1 controls the node device 1 according to a control program stored in the flash memory 16, and performs the above processing on the node device 1. It can be said that it is done.
  • RC4 illustrated in the above embodiment is an example of an encryption algorithm that can be adopted.
  • encryption and decryption by other encryption algorithms may be performed.
  • an encryption algorithm other than the stream cipher may be used.
  • encryption and decryption using the time synchronization key, common key, and access key may be based on different encryption algorithms.
  • each frame may further include a field not exemplified in the above embodiment.
  • the field of the frame size D8 can be omitted.

Abstract

 複数のノード装置によって構成されるネットワークの中の第1のノード装置において、アクセスキー生成部は、第1のノード装置に固有の暗号鍵である第1のアクセスキーを、第1の時間ごとに変更する。共通鍵生成部は、複数のノード装置で共通の共通鍵を第2の時間ごとに変更する。第1のノード装置は、生成した第1のアクセスキーを生成した共通鍵で暗号化して送信するとともに、第2のノード装置から送信されてきた、第2のノード装置の第2のアクセスキーを共通鍵で暗号化したデータを含むアクセスキー通知フレームを受信する。復号化部は、受信したアクセスキー通知フレームを、生成された共通鍵を用いて復号することにより、第2のアクセスキーを取得する。送信部からは、平文フレームから計算されるハッシュ値を含むデータを共通鍵で暗号化した署名データの付与された平文フレームを、第2のアクセスキーで暗号化した、暗号化フレームが送信される。

Description

ノード装置及びプログラム
 本発明は、自律分散型のネットワークにおける、セキュリティ維持のための装置及びプログラムに関する。
 セキュリティ対策の一つとして、送信データを暗号化することが行われている。暗号化の方法としては、例えば共通鍵方式(対称鍵暗号方式ともいう)がある。また、さらにセキュリティを強固にするために、下記公知例のように共通鍵を一定時間ごとに変化させる技術がある。
 また、WEP(Wired Equivalent Privacy)、WPA(Wi-Fi Protected Access)などのセキュリティ方式もある。
 これらの技術によれば、サーバにおいて制御指示を出すことにより認証処理を行うのが一般的である。
 また、通信システムにおいて、クライアント側の暗証番号については一定のまま、サーバの制御変数の変更のみで共有する暗号鍵を変更する技術も開示されている。これにより、短い時間間隔で共有する共通鍵を変化させ、暗号システムの安全性を向上させることができる。
特開平9-321748号公報
 有線か無線かを問わず、非常に多くのノード装置を含むネットワークを考えた場合、1つの管理サーバが共通鍵を生成(つまり時間に応じて変更)し、各ノード装置へ通知することは実用的ではない。すなわち、ノード装置の数が多いので、サーバから制御指示を送信するだけでも大変な負荷になってしまう。このため、各ノード装置が、暗号化のための動作を自律的に他のノード装置と協働して行うことが望ましい。
 本発明は、暗号化のための動作を自律的に他のノード装置と協働して行うノード装置、及び、ノード装置に、暗号化のための動作を自律的に他のノード装置と協働して行うよう命令するプログラムを提供することを目的とする。
 第1の態様のノード装置は、第1のノード装置と第2のノード装置を含む複数のノード装置によって構成されるネットワークの中の、前記第1のノード装置であって、アクセスキー生成部、共通鍵生成部、アクセスキー通知部、アクセスキー受信部、アクセスキー復号化部、データ送信部、データ受信部、データ復号化部及び整合性確認部を有する。
 前記アクセスキー生成部は、前記第1のノード装置に固有の暗号鍵である第1のアクセスキーを、第1の時間ごとに変更して生成する。また、前記共通鍵生成部は、前記ネットワーク内の前記複数のノード装置で共通の共通鍵を、前記複数のノード装置で共通の時間である第2の時間ごとに変更して生成する。
 前記アクセスキー通知部は、生成された前記第1のアクセスキーを、生成された前記共通鍵で暗号化して前記第2のノード装置に送信する。前記アクセスキー受信部は、前記第2のノード装置に固有の暗号鍵である第2のアクセスキーを前記共通鍵で暗号化したデータであるアクセスキー通知データを含む、前記第2のノード装置から送信されてきたアクセスキー通知フレームを、受信する。
 前記アクセスキー復号化部は、前記アクセスキー通知データを、生成された前記共通鍵を用いて復号することにより、前記アクセスキー通知データから前記第2のアクセスキーを取得する。
 前記データ送信部は、第1の平文フレームに、該第1の平文フレームから計算される第1のハッシュ値を含むデータを前記共通鍵で暗号化した第1の署名データを付与する。そして、前記データ送信部は、前記第1の署名データの付与された前記第1の平文フレームを、復号して得た前記第2のアクセスキーで暗号化して、第1の暗号化フレームとして送信する。
 前記データ受信部は、第2の暗号化フレームを、前記第2のノード装置から受信する。ここで、前記第2の暗号化フレームとは、第2のハッシュ値を含むデータを前記共通鍵で暗号化した第2の署名データが付与された、第2の平文フレームが、前記第1のアクセスキーにより暗号化されたものである。
 前記データ復号化部は、前記第2の暗号化フレームを前記第1のアクセスキーで復号して、前記第2の暗号化フレームから、前記第2の署名データが付与された前記第2の平文フレームを得る。
 前記整合性確認部は、生成された前記共通鍵を用いて前記第2の署名データを復号することにより前記第2のハッシュ値を取得する。そして、前記整合性確認部は、前記第2の平文フレームから第3のハッシュ値を計算し、前記第2のハッシュ値と前記第3のハッシュ値との整合性が取れているか否かを確認する。
 第2の態様のプログラムは、第1のノード装置と第2のノード装置を含む複数のノード装置によって構成されるネットワークの中の、前記第1のノード装置を制御するコンピュータにより実行されるプログラムである。前記プログラムは、第1の態様の前記第1のノード装置と同様に第2の態様の前記第1のノード装置が動作するよう、第2の態様の前記第1のノード装置を前記コンピュータに制御させるプログラムである。
 上記いずれの態様においても、ネットワークの中の第1のノード装置は、自律的に、かつ、第2のノード装置などの他のノード装置と協働して、暗号化通信のための動作をすることが可能である。したがって、上記いずれの態様においても、複数のノード装置を含むネットワークにおける通信のセキュリティを高めることが可能となる。
アドホック通信システムの全体概念図である。 複数のノード装置を含むセンサネットワークの例を示すネットワーク構成図である。 実施形態に係るノード装置の構成図である。 実施形態に係るノード装置のハードウェア構成図である。 本実施形態に係るノード装置の構成をより詳細に示す図である。 実施形態に係るノード装置による認証方法を説明する図である。 2つのノード装置間で互いに相手のノード装置を認証して通信を行う処理を示したシーケンス図である。 データフレームのフォーマットを示す図である。 共通鍵更新処理のフローチャートである。 アクセスキー更新処理のフローチャートである。 ハローフレーム送信処理のフローチャートである。 ハローフレームのフォーマットと、ハローフレームに関して行われる各種処理を説明する図である。 ハローフレーム受信処理のフローチャートである。 データフレーム送信処理のフローチャートである。 データフレームのフォーマットと、データフレームに関して行われる各種処理の第1の例を説明する図である。 データフレーム受信処理のフローチャートである。 データフレームのフォーマットと、データフレームに関して行われる各種処理の第2の例を説明する図である。 時刻の同期方法を説明する図である。 時刻の同期方法を説明するシーケンス図である。 時刻同期フレーム送信処理のフローチャートである。 時刻同期フレーム受信処理のフローチャートである。
 以下、本発明の実施の形態について、図面を参照して詳細に説明する。
 図1は、アドホック通信システムの全体概念図である。図1に示すように、ノード装置(a、b、…、s、t)が互いに接続されて網を構成している。アドホック通信システムにおいては、各ノード装置が中継器として動作し、スタートノード(図1の例ではノード装置b)からゴールノード(図1の例ではノード装置t)へと情報を伝達する。
 各ノード装置は、それぞれ固有の識別情報(ID、Identification)であるノードIDを保有する。MAC(Media Access Control)アドレスがノードIDとして利用されてもよい。
 各ノード装置は、互いに隣接しているノード装置やネットワーク全体については把握していない。初期状態においては、互いのリンクは存在しておらず、各ノード装置は、自身以外のノード装置については把握していない。
 そこで、図1に示すアドホック通信システムにおいて、スタートノードであるノード装置bから、ゴールノードであるノード装置tへと情報を伝達するには、まず、経路を決定する必要がある。経路を決定する手順は、以下のとおりである。
 まず、各ノード装置は周囲のノード装置を検出する。そのために各ノード装置は、自身の存在を、近隣に存在するノード装置に周期的に通知する。近隣のノード装置への通知には、経路作成に関連した情報が付随している。各ノード装置は、他のノード装置から通知を受信すると、周囲のノード装置についてリストを作成して、自ノード装置の周囲に存在する他のノード装置を把握することができる。
 周囲のノード装置を検出したノード装置は、作成したリストに基づいて、自ノード装置が情報を転送するノード装置を決定して、その決定したノード装置に情報を転送する。
 各ノード装置は、セキュリティ対策のため、フレームを暗号化して相手のノード装置と通信を行う。具体的には、各ノード装置は、通信相手のノード装置に固有の暗号鍵と、ネットワーク内のノード装置間で共通の共通鍵とを用いて暗号化を行って、情報を通信相手のノード装置に送信する。また、各ノード装置は、通信相手のノード装置から情報を受信すると、自ノード装置に固有の暗号鍵と、上記の共通鍵とを用いてフレームを復号して情報を取り出す。
 以後同様に、ノード装置間の通信においては、各ノード装置は、復号して得た暗号鍵を用いて通信相手のノード装置にデータの送信を行う。また、各ノード装置は、受信したデータが自ノード装置の生成した暗号鍵により暗号化されていることをもって、通信相手のノード装置を正当と判断する。
 以下、本実施形態に係るノード装置による認証処理及び通信の方法について、具体的に説明する。
 本実施形態のノード装置は、図1のような任意のアドホック通信システムにおいて利用可能であるが、例えば、図2のような、アドホックネットワークにより実現されるセンサネットワークにおいて利用されてもよい。
 図2は、複数のノード装置を含むセンサネットワークの例を示すネットワーク構成図である。
 図2のセンサネットワークでは、複数のノード装置1A~1I及びゲートウェイ装置GWがアドホックネットワークを構成している。また、ゲートウェイ装置GWは、例えばケーブルでサーバSVに接続されている。もちろん、ゲートウェイ装置GWとサーバSVの間の接続は、ネットワークを介した接続でもよいし、無線による接続でもよい。
 図2において、複数のノード装置1A~1Iのそれぞれは、不図示の1つ以上のセンサと接続されているか、又は不図示の1つ以上のセンサを内蔵している。以下では説明の簡単化のため、各ノード装置1A~1Iは、それぞれ1つのセンサと接続されているものとする。センサは、例えば、温度、圧力、加速度などを感知するセンサでもよい。また、異なる種類の複数のセンサが使われてもいてもよい。
 各ノード装置1A~1Iは、センサが感知した結果を表すデータ(以下「センサデータ」という)を、自ノード装置に接続されたセンサから取得する。そして、各ノード装置1A~1Iは、取得したセンサデータを含む暗号化フレーム(以下「センサデータフレーム」という)を生成し、アドホックネットワークを通じてゲートウェイ装置GWにセンサデータフレームを送信する。
 例えば、各センサは、1分に1回センサデータをノード装置に出力してもよい。したがって、上記のとおりノード装置1A~1Iがそれぞれ1つのセンサと接続されている場合、各ノード装置1A~1Iは、1分間に1回センサデータフレームを送信することになる。
 ゲートウェイ装置GWは、各ノード装置1A~1Iと同様に後述の図3の各部を備えており、ノード装置1A~1Iと協働して自律的にアドホックネットワークを構築することができる。つまり、ノード装置1A~1Iとゲートウェイ装置GWの間で、共通鍵は共通しており、後述の時刻同期用の固定鍵も共通している。
 ゲートウェイ装置GWは、各ノード装置1A~1Iから送信されてきたセンサデータフレームに含まれるセンサデータをサーバSVに送信する。例えば、ゲートウェイ装置GWは、次のように動作してもよい。
 ゲートウェイ装置GWは、受信したセンサデータフレームを復号してセンサデータを抽出する。そして、ゲートウェイ装置GWは、抽出したセンサデータを含むデータを、サーバSVに送信する。
 あるいは、ゲートウェイ装置GWは、受信したセンサデータフレームから、センサデータフレームの送信元のノード装置(1A~1Iのいずれか)の識別情報をさらに抽出してもよい。そして、ゲートウェイ装置GWは、センサデータと識別情報を含むデータを暗号化したデータをペイロードに含む暗号化フレームを生成して、サーバSVに送信してもよい。
 サーバSVは、センサが感知する物理量に基づく任意の各種の処理を、収集したセンサデータを使って行うことができる。例えば、各センサが温度センサの場合、サーバSVは、温度分布や温度変化を調べる処理を行ってもよいし、温度予測処理を行ってもよい。
 以下に詳しく説明する本実施形態のノード装置1を、図2のノード装置1A~IHとして利用すれば、サーバSVは、センサデータを秘密状態に保ちつつ収集することができ、さらに、改竄されていない正しいセンサデータを収集することができる。
 図3は、本実施形態に係るノード装置の構成図である。図3に示すノード装置1は、アクセスキー生成部2、共通鍵生成部3、暗号化部4、復号化部5、フレーム処理部6、送信部7、受信部8及び時刻同期部9を有する。例えば、図2のノード装置1A~1Iの各々は、図3のような構成を有する。
 アクセスキー生成部2は、ノード装置1に固有の暗号鍵(以下「アクセスキー」という)を生成する。アクセスキーは、公知のWEPやWPA等の技術を用いて生成される。アクセスキーは、対称鍵暗号方式における暗号鍵として生成され、使用される。
 また、アクセスキーは、所定の時間間隔tでランダムに更新される。本実施形態では、例えば、t=10(分)である。
 なお、アクセスキーは、RC4(Rivest's Cipher 4)により暗号化されて他のノード装置に送信され、本実施形態では、アクセスキーの長さは128ビットである。RC4はストリーム暗号の1種なので、RC4によって暗号化された暗号文(ciphertext)の長さは、元の平文(plaintext)の長さと等しい。
 ところで、一般に、鍵の長さが64ビットのRC4の解読には50万フレームを、鍵の長さが128ビットの解読には100万フレームを収集することが必要であると言われている。これに対し、上記のとおり、本実施形態では、アクセスキーはt=10分ごとにランダムに変化する。
 例えば、図2に関して例示したように、フレームが通常毎分1フレーム送信されるとすると、10分間では10フレーム送信されることとなる。そして、例えば、図2の例では、センサデータフレームの最終的な宛先であるゲートウェイ装置GWが、アドホックネットワーク内で最も多くのフレームを受信することになる。しかし、ゲートウェイ装置GWであっても、例えば総数500台のノード装置からデータを受信する場合のフレーム数は、1分間あたり約500フレームである。すなわち、アクセスキーが更新されるまでの10分間に、不正ノード装置が解読に必要なフレームを収集することは、事実上不可能であると言うことができる。
 共通鍵生成部3は、ノード装置1内に備えられた耐タンパデバイス(例えば後述の図4の耐タンパ性PICマイコン14)等により、図1のネットワーク内のノード装置で共通する暗号鍵である共通鍵を生成する。共通鍵は、所定の時間間隔tで更新される。本実施形態では、例えば、t=12(時間)である。
 各ノード装置において保有する時刻情報は、ネットワーク内で同期されている。このため、共通鍵は、時間により変化するが、ある時刻においては、ネットワーク内のノード装置で共通する。
 暗号化部4は、他のノード装置に送信するフレームに含まれるデータの暗号化を行い、復号化部5は、他のノード装置から暗号化して送信されたフレームに含まれるデータの復号を行う。
 送信部7は、図3に示すノード装置1において生成した暗号化データを含む暗号化フレームを、他のノード装置に向けて送信し、受信部8は、他のノード装置から送信された暗号化フレームを受信する。
 フレーム処理部6は、受信したフレームの処理を実行する。例えば、フレーム処理部6は、受信したフレームの所定のフィールドから情報を取り出して、「既に受信したフレームであるか否か」の判断を、上記「受信したフレームの処理」として行ってもよい。あるいは、フレーム処理部6は、受信したフレームの所定のフィールドから情報を取り出して、「正当なノード装置から送信されたフレームであるか否か」の判断等を、上記「受信したフレームの処理」として行ってもよい。
 フレーム処理部6はさらに、送信するフレームを作成する処理も行う。
 時刻同期部9は、図3に示すノード装置1において保有する時刻を、ネットワーク内の他のノード装置の時刻と同期させるための処理を実行する。時刻同期部9の動作の詳細は、図18~図21とともに後述する。
 図3に示すノード装置1は、ネットワーク内の他のノード装置と通信を開始する前に、相手のノード装置との間で、共通鍵を用いて暗号化したアクセスキーを交換する。共通鍵により暗号化されたアクセスキーは、例えば「ハローフレーム」と呼ばれる所定の形式のフレームの所定のフィールドに格納されて相手のノード装置に送信される。
 なお、以下、説明の便宜上、ノード装置1自身が生成したアクセスキーを「内部由来(internally-originated)アクセスキー」と称し、他のノード装置から受け取ったアクセスキーを「外部由来(externally-originated)アクセスキー」と称することがある。
 図3のノード装置1は、通信相手のノード装置(図3のノード装置1と同様の構成を有する不図示の第2のノード装置)から受信した、暗号化されたアクセスキーを、自ノード装置1において保有する共通鍵を用いて復号する。そして、図3のノード装置1は、以降、その不図示の第2のノード装置と通信を行う際には、復号により得られたアクセスキー(すなわち外部由来アクセスキー)を用いて、不図示の第2のノード装置宛のフレームの暗号化を行う。
 上記のとおり、共通鍵及びアクセスキーはそれぞれ所定の時間間隔t及びtで更新されている。このため、第三者が不正にある時点での共通鍵あるいはアクセスキーを取得したとしても、なりすまし等の不正なアクセスは不可能となる。
 続いて、図3の構成を実現するハードウェアの具体例について図4を参照して説明する。図4は、本実施形態に係るノード装置1のハードウェア構成図である。
 図3のノード装置1は、MPU(MicroProcessing Unit)11と、有線PHY(PHYsical layer)処理部12と、タイマIC(Integrated Circuit)13と、耐タンパ性PIC(Peripheral Interface Controller)マイコン(microcomputer)14を備える。ノード装置1はさらに、DRAM(Dynamic Random Access Memory)15と、フラッシュメモリ16と、無線LAN(Local Area Network)処理部17を備える。
 MPU11と有線PHY処理部12の間の接続インタフェイスは、例えば、MII(Media Independent Interface)/MDIO(Management Data Input/Output)18である(なお「MII/MDIO」は「MII又はMDIO」の意味である)。MIIとMDIOはいずれも、物理層とMAC副層(Media Access Control sublayer)との間のインタフェイスである。
 また、タイマIC13と耐タンパ性PICマイコン14は、IC(Inter-Integrated  Circuit)/PIO(Parallel Input/Output)バス19によりMPU11と接続されている(なお「IC/PIOバス」は「ICバス又はPIOバス」の意味である)。
 DRAM15とフラッシュメモリ16と無線LAN処理部17は、PCI(Peripheral  Component Interconnect)バス20によりMPU11と接続されている。
 MPU11は、不揮発性記憶装置の1種であるフラッシュメモリ16上に格納されたファームウェアなどの種々のプログラムをDRAM15上にロードして実行することで様々な処理を実行する。MPU11は、例えば、耐タンパ性PICマイコン14のドライバや、後述の各種処理をノード装置1に実行させるためのファームウェアプログラムなど、種々のプログラムを実行する。
 なお、DRAM15には、暗号化鍵などの各種のデータが格納されてもよい。また、DRAM15は、フレームの送信バッファ及び受信バッファとしても使われる。フラッシュメモリ16は、上記のとおり、ファームウェアプログラムなどを格納する。また、フラッシュメモリ16には、ノード装置1自身に固有の情報(例えば、ノードIDやMACアドレス)も格納されている。
 有線PHY処理部12は、有線接続における物理層の処理を行う回路である。また、無線LAN処理部17は、無線LAN接続における物理層の処理を行うハードウェアである。無線LAN処理部17は、例えばアンテナ、ADC(Analog-to-Digital Converter)、DAC(Digital-to-Analog Converter)、変調器、復調器などを含み、物理層とMAC副層の処理を行う。したがって、本実施形態では、ノード装置1が、有線通信と無線通信の双方を行うことができる。しかし、ノード装置1が、有線通信又は無線通信の一方のみを行う実施形態も可能である。
 タイマIC13は、設定された時間が経過するまでカウントアップ動作を行い、設定された時間が経過すると割り込み信号を出力する回路である。
 耐タンパ性PICマイコン14は、共通鍵を生成する所定のアルゴリズムが組み込まれたマイコンである。耐タンパ性PICマイコン14は耐タンパ性なので、共通鍵を生成する所定のアルゴリズムが具体的にどのようなアルゴリズムであるかは、外部から解析することができない。
 続いて、図3と図4を参照して説明したノード装置1の構成について、図5を参照してさらに詳しく説明する。図5は、本実施形態に係るノード装置1の構成をより詳細に示す図である。
 図5には、図3と同様のアクセスキー生成部2、共通鍵生成部3、暗号化部4、復号化部5、フレーム処理部6、送信部7、受信部8及び時刻同期部9が示されている。
 図5に示すように、受信部8は、ノード装置1が受信したフレームをフレームの種類に応じて分類するフレーム分岐処理部21と、フレームの種類別の受信バッファを備える。受信バッファは、例えば図4のDRAM15により実現される。
 具体的に本実施形態では、ハローフレーム、時刻同期フレーム及びデータフレームという3つの種類に対応して、ハローフレーム受信バッファ22と、時刻同期フレーム受信バッファ23と、データフレーム受信バッファ24とを、受信部8が備えている。
 フレーム分岐処理部21は、例えば、図4の無線LAN処理部17とMPU11により、又は有線PHY処理部12とMPU11により、実現される。図12、図15及び図17とともに後述するように、フレームのヘッダにはフレームの種類を示す「フレームタイプ」フィールドが含まれるので、フレーム分岐処理部21は、フレームタイプフィールドの値に基づいて、受信したフレームの種別を認識し、受信したフレームの分類を行うことができる。
 また、復号化部5は、3つのフレームの種類に対応して、ハローフレーム復号化部25と、時刻同期フレーム復号化部26と、データフレーム復号化部27とを備える。復号化部5は、本実施形態ではMPU11により実現されるが、専用のハードウェア回路により実現されてもよい。
 ハローフレーム復号化部25は、ハローフレーム受信バッファ22に格納されたハローフレームを復号して、図4には不図示の他のノード装置のアクセスキーを抽出して出力する。時刻同期フレーム復号化部26は、時刻同期フレーム受信バッファ23に格納された時刻同期フレームを復号し、復号して得られた情報を時刻同期部9に出力する。データフレーム復号化部27は、データフレーム受信バッファ24に格納されたデータフレームを復号する。
 さらに、ノード装置1は、図5に図示の、他のノード装置用のアクセスキー(すなわち外部由来アクセスキー)を格納するアクセスキー格納部28を備える。アクセスキー格納部28には、ハローフレーム復号化部25で復号された平文に含まれる外部由来アクセスキーが格納される。より具体的には、アクセスキー格納部28は、複数のノード装置それぞれに対応する外部由来アクセスキーを、複数のノード装置を識別する情報(例えばノードID又はMACアドレスなど)と対応付けて格納している。
 なお、アクセスキー格納部28は、例えば図4のDRAM15によって実現され、また、少なくとも一部がMPU11内のキャッシュメモリによって実現されてもよい。
 また、ノード装置1は、復号されたデータフレームの正しさを確認する確認部29を含む。確認部29の動作の詳細は、図16とともに後述するが、確認部29は例えばMPU11により実現される。なお、本実施形態では、確認部29は、復号されたアクセスキーの正しさの確認も行う。
 また、フレーム処理部6は受信データフレーム処理部30を含み、確認部29により「正しい(すなわち改竄されていない)」と確認されたデータフレームを使った処理を行う。例えば、受信データフレーム処理部30は、既に受信したデータフレームと同一のデータフレームを再度受信したのか、新たなデータフレームを受信したのかを判別する処理を行ってもよい。受信データフレーム処理部30も、MPU11により実現することができる。
 なお、上記のデータフレーム復号化部27における復号では、ノード装置1自身のアクセスキーが使われる。そのため、ノード装置1は、自ノード装置1用のアクセスキー(すなわち内部由来アクセスキー)を格納するアクセスキー格納部31をさらに備えている。アクセスキー格納部31は、例えばDRAM15によって実現されてもよく、MPU11内のキャッシュメモリによって実現されてもよい。
 他方、上記のハローフレーム復号化部25における復号では、ネットワーク内の複数のノード装置で共通の共通鍵が使われる。そのため、ノード装置1は、共通鍵を格納する共通鍵格納部32をさらに備えている。共通鍵格納部32も、例えばDRAM15によって実現されてもよく、MPU11内のキャッシュメモリによって実現されてもよい。
 また、共通鍵格納部32に格納される共通鍵は、図3に関して説明したように、共通鍵生成部3によって生成される。すなわち、本実施形態によれば、複数のノード装置間で共通鍵を交換する必要がないように、複数のノード装置それぞれの共通鍵生成部3において、同じアルゴリズムにしたがって時刻から一意に決まる共通鍵が生成される。
 なお、共通鍵の漏洩を防ぐため、本実施形態の共通鍵生成部3は、図4の耐タンパ性PICマイコン14によって実現される。すなわち、共通鍵生成部3は耐タンパ性である。
 また、共通鍵生成部3は、共通鍵を生成するために時刻情報を利用する。具体的には、ノード装置1は時計33を備えており、共通鍵生成部3は時計33を参照して時刻情報を得る。
 なお、詳しくは図10とともに後述するが、ノード装置1はさらに、図4のタイマIC13により実現されるカウンタ34を備えている。カウンタ34はカウントアップ動作を繰り返し、カウンタ34の値が予め設定された値に達すると、アクセスキー生成部2がアクセスキーを生成し、カウンタ34がクリアされる。
 また、上記の時刻同期フレーム復号化部26における復号では、ネットワーク内の複数のノード装置で共通しており、時間によって変動することもない、固定された時刻同期鍵が使われる。そのため、ノード装置1は、時刻同期鍵を格納する時刻同期鍵格納部35をさらに備えている。
 時刻同期鍵は、例えば、MPU11が実行するファームウェアプログラムに定数として予め書き込まれており、ファームウェアプログラムがDRAM15にロードされることで、DRAM15に記憶されてもよい。時刻同期鍵格納部35は、例えば、フラッシュメモリ16、DRAM15又はMPU11内のキャッシュメモリによって実現することができる。
 ところで、フレーム処理部6は、受信したデータフレームを処理する上記の受信データフレーム処理部30だけではなく、ハローフレームを作成するハローフレーム作成部36をさらに備えている。ハローフレーム作成部36は、アクセスキー格納部31からノード装置1自身のアクセスキーを読み出し、ハローフレームの元となる平文フレームを作成し、出力する。ハローフレーム作成部36は、例えば、MPU11により実現される。
 ハローフレーム作成部36から出力される平文フレームは、暗号化部4に入力され、暗号化される。なお、暗号化部4は、ハローフレーム暗号化部37、時刻同期フレーム暗号化部38及びデータフレーム暗号化部39を備え、暗号化部4内のこれら各部も、例えばMPU11により実現される。
 ハローフレーム暗号化部37は、共通鍵格納部32に格納されている共通鍵を用いて、ハローフレームの元となる平文フレームを暗号化する。また、時刻同期フレーム暗号化部38は、時刻同期鍵格納部35に格納されている時刻同期鍵を用いて、時刻同期フレームの元となる平文フレームを暗号化する。そして、データフレーム暗号化部39は、アクセスキー格納部28に格納されているアクセスキーのうち、データフレームの宛先のノード装置用のアクセスキーを用いて、データフレームの元となる平文フレームを暗号化する。
 なお、時刻同期フレームの元となる平文フレームは、詳しくは図20とともに後述するとおり、時刻同期部9から時刻同期フレーム暗号化部38に出力される。
 また、フレーム処理部6はさらに、データフレームの元となる平文フレームを作成してデータフレーム暗号化部39に出力するデータフレーム作成部40も備えている。
 暗号化部4内で暗号化された各種フレームは送信部7に出力され、ノード装置1から送信される。具体的には、送信部7は、例えば図4のDRAM15によって実現される3つのバッファ(すなわち、ハローフレーム送信バッファ41と時刻同期フレーム送信バッファ42とデータフレーム送信バッファ43)と、さらに送信処理部44とを備える。送信処理部44は、例えば有線PHY処理部12とMPU11により実現されてもよいし、無線LAN処理部17とMPU11により実現されてもよい。
 ハローフレーム送信バッファ41は、暗号化されたハローフレームをハローフレーム暗号化部37から受け取って格納し、送信処理部44に出力する。時刻同期フレーム送信バッファ42は、暗号化された時刻同期フレームを時刻同期フレーム暗号化部38から受け取って格納し、送信処理部44に出力する。データフレーム送信バッファ43は、暗号化されたデータフレームをデータフレーム暗号化部39から受け取って格納し、送信処理部44に出力する。そして、送信処理部44は、受け取ったフレームを送信する。
 なお、図5に示すように、ノード装置1はさらに、例えばDRAM15によって実現される最新送信時刻格納部45を備えるが、最新送信時刻格納部45については図16とともに後述するので、ここでは説明を省略する。
 以上、図3~図5を参照してノード装置1の構成について説明したので、続いて、ノード装置1の動作について図6~図21を参照して説明する。
 図6は、本実施形態に係るノード装置1による認証方法を説明する図である。
 図6に示すように、ノード装置1Aの周辺にノード装置1B及びノード装置1Cが存在する場合に、ノード装置1Aは、生成したアクセスキーa1を、それぞれノード装置1B及びノード装置1Cのアクセスキーb1及びc1と交換する。そして、ノード装置1Aは、ノード装置1Bに対しては、アクセスキーb1によりデータフレームを暗号化して送信し、ノード装置1Cに対しては、アクセスキーc1によりデータフレームを暗号化して送信する。
 図6の例では、ノード装置1Aにとっては、アクセスキーa1は内部由来アクセスキーであり、アクセスキーb1とc1は外部由来アクセスキーである。他方で、ノード装置1Bにとっては、アクセスキーa1は外部由来アクセスキーであり、アクセスキーb1が内部由来アクセスキーである。
 ノード装置1Aは、ノード装置1Bとノード装置1Cとでそれぞれ異なるアクセスキー(b1及びc1)を使用する。また、例えば、ノード装置1Bとの通信において、ノード装置1Aは、データ送信時にはアクセスキーb1を使用するが、データ受信時にはアクセスキーa1を使用する。このように、ノード装置1Aは、データ送信時とデータ受信時とでそれぞれ異なるアクセスキーを使用して通信を行う。換言すれば、内部由来アクセスキーは復号化用の鍵であり、外部由来アクセスキーは暗号化用の鍵である。
 このように、アドホック通信ネットワークを構成するノード装置のそれぞれが、隣接するノード装置とアクセスキーを上記の方法により交換し、通信相手のノード装置から受信したアクセスキーを用いてフレームを暗号化して送信する。また、これとともに、通信相手から受信したフレームについては、自ノード装置において定期的に更新するアクセスキーを用いて復号する。これにより、セキュリティが確保される。
 上記のとおり、本実施形態においては、ネットワーク内の各ノード装置が、隣接するノード装置と通信を行うときに、通信相手のノード装置が自ノード装置にアクセスするためのアクセスキーを生成する。そして、各ノード装置は、ネットワーク内で共通する共通鍵を用いて、上記の生成したアクセスキーを暗号化し、暗号化したアクセスキーをハローフレームでブロードキャストする。各ノード装置は、隣接ノード装置から受信したハローフレームに含まれるアクセスキーを共通鍵で復号し、復号で得たアクセスキーを用いて隣接ノード装置にアクセスする。以下、2台のノード装置間で実行される処理について具体的に説明する。
 図7は、2つのノード装置間で互いに相手のノード装置を認証して通信を行う処理を示したシーケンス図である。ここでは、2台のノード装置1を互いに区別するために、それぞれを「ノード装置1A」及び「ノード装置1B」とする。
 まず、ステップS1で、ノード装置1Aから通信相手ノード装置であるノード装置1Bに向けて、ノード装置1Aで生成したアクセスキーa1が送信される。アクセスキーa1は、先述のとおり、ノード装置1Aとノード装置1Bとの間で共通して保有する共通鍵により暗号化されている。ノード装置1Bは、自ノード装置1Bにおいて耐タンパデバイスを用いて生成した共通鍵を用いて、復号処理を行い、アクセスキーa1を得る。
 次に、ステップS2で、ノード装置1Bから通信相手ノード装置であるノード装置1Aに向けて、ノード装置1Bで生成したアクセスキーb1が送信される。アクセスキーb1についても、ノード装置1Aとノード装置1Bとの間で共通する共通鍵により暗号化されている。ノード装置1Aは、自ノード装置1Aにおいて耐タンパデバイスを用いて生成した共通鍵を用いて、復号処理を行い、アクセスキーb1を得る。
 ステップS1及びステップS2の処理において、一方のノード装置が不正にアクセスしようとする第三者である場合には、通信相手ノード装置との間に共通する共通鍵を持たず、復号して通信相手ノード装置のアクセスキーを取得することができない。このことを利用して、2台のノード装置1A、1Bの間でアクセスキーの交換ができた場合には、通信相手のノード装置1A及び1Bを正当と判断することができる。つまり、ノード装置1A、1Bの間でアクセスキーの交換ができた場合には、ノード装置1Aはノード装置1Bを正当と判断し、ノード装置1Bはノード装置1Aを正当と判断することができる。
 本実施形態においては、通信相手ノード装置とのアクセスキーの交換の成否をもって通信相手ノード装置の認証を行うこととし、認証が成功した場合には、ステップS3以降の通信を開始する。
 なお、ステップS1及びステップS2の認証処理は、アクセスキーが更新されるごとに行われる。
 ステップS3で、ノード装置1Aからノード装置1Bに向けて、データを含むフレームが送信される。送信されるフレームは、ステップS2においてノード装置1Aが取得したアクセスキーb1により暗号化されている。例えば、図2に関して説明したように、センサデータを含む暗号化フレームであるセンサデータフレームが、ステップS3では送信される。
 また、フレームには、署名がされている。署名については後述する。フレームを受信したノード装置1Bは、自ノード装置1Bにおいて生成したアクセスキーb1を用いて、受信したフレームの復号を行い、データを得る。
 ステップS4で、ノード装置1Bからノード装置1Aに向けて、データを含むフレームが送信される。送信されるフレームは、ステップS1においてノード装置1Bが取得したアクセスキーa1により暗号化されており、署名がされている。フレームを受信したノード装置1Aにおいては、自ノード装置1Aにおいて生成したアクセスキーa1を用いて、受信したフレームの復号を行い、データを得る。
 図7に示すとおり、本実施形態に係るノード装置1(1A及び1B)は、通信相手のノード装置(1B及び1A)と共通する共通鍵を用いて、各ノード装置(1A及び1B)において生成するアクセスキー(a1及びb1)を暗号化して交換する。通信相手のノード装置(1B及び1A)が正当である場合には、通信相手のノード装置(1B及び1A)は、自ノード装置(1A及び1B)はと共通する共通鍵を保有している。
 このため、各ノード装置(1A及び1B)は、通信相手のノード装置(1B及び1A)から受信したアクセスキー(b1及びa1)を、自ノード装置(1A及び1B)において保有する共通鍵を用いて復号することができる。不正にアクセスしようとする第三者においては上記共通鍵を保有していないため、各ノード装置(1A及び1B)は、受信したアクセスキー(b1及びa1)を復号できるか否かにより、通信相手のノード装置(1B及び1A)について正当か不当かを判断することができる。各ノード装置1は、通信相手のノード装置と定期的にアクセスキーを交換し、正当であると判断できたノード装置と通信を継続する。
 また、データの受信時においては、自ノード装置において生成したアクセスキーを用いて復号処理を行い、データを取り出す。例えば、ステップS3では、受信側のノード装置1Bは、自ノード装置1Bが生成したアクセスキーb1を用いて復号処理を行う。
 データの送信時においては、認証処理において通信相手ノード装置から受信した、通信相手ノード装置において生成されたアクセスキーを用いて暗号化して、データを送信する。例えば、ステップS3では、送信側のノード装置1Aは、通信相手ノード装置1BからステップS2で受信したアクセスキーb1を用いて暗号化処理を行う。
 図8は、データフレームのフォーマットを示す図である。フォーマットの更なる詳細は、図15及び図17とともに後述する。また、ハローフレームのフォーマットの例は図12とともに後述する。
 図8に示すように、データフレームは、ヘッダ、フレームの識別情報(FID)、時刻情報及びボディからなり、データフレームには署名が追加されている。
 ヘッダには、フレームの宛先情報等が格納される。FIDには、送信元のノード装置1が付与した、データフレームを識別するためのシーケンス番号等が格納される。時刻情報には、図8に示すフレームが組み立てられた時刻を示す情報が格納される。具体的には、図8のデータフレームを隣接ノード装置に転送する時刻を示す情報が格納される。ボディには、データ本体が格納される。
 署名には、フレーム(正確には平文フレーム)自体のハッシュコードが共通鍵により暗号化された値が格納される。署名により、図8に示すフレームが同一の共通鍵を保有するノード装置において生成されたものであることが証明される。
 図8に示すデータフレームは、通信相手のノード装置のアクセスキー(つまり外部由来アクセスキー)により暗号化されて送信される。
 本実施形態に係るノード装置1は、通信相手のノード装置から暗号化フレームを受信すると、自ノード装置が生成したアクセスキーを用いて復号して、平文フレームを得る。ノード装置1はさらに、平文フレームから署名として付与されている暗号化されたハッシュ値を取り出し、さらに、取り出したハッシュ値(暗号化されたハッシュ値)を、共通鍵を用いて復号する。そして、共通鍵を用いて復号して得られた値と、平文フレームから計算されるハッシュ値とを比較し、互いに一致する場合は、ノード装置1は、「自ノード装置と同一の共通鍵を保有するノード装置において生成したフレームが受信された」と判定する。
 また、本実施形態に係るノード装置1は、相手から受信したデータフレームのFIDと時刻情報との組み合わせを記憶しておき、記憶されているFID及び時刻情報と受信したデータフレームのFID及び時刻情報とを比較する。例えば、正当と認証された2台のノード装置間で通信を行っているときに、不正なノード装置がデータフレームをキャプチャ及びコピーして送信してくることがある。その場合、データフレームに含まれるFID及び時刻情報は、過去に正当なノード装置から受信したFID及び時刻情報と一致する。このように、受信したデータフレームのFID及び時刻情報が、ノード装置1自身が記憶しているFID及び時刻情報と一致する場合は、ノード装置1は、不正なノード装置からのアクセスと判断して、受信したデータフレームを破棄する。
 なお、正当なノード装置からデータフレームが再送された場合には、FIDについては記憶されているFIDと一致するが、時刻情報が異なる。このように、「FIDは記憶されている値と一致し、時刻情報については異なる」というデータフレームについては、ノード装置1は、既に受信したデータフレームと同一であると判断し、そのデータフレームについても破棄する。
 続いて、上記図6~図8を参照して説明した一連の処理について、図9~図16のフローチャートを参照しながら、より詳細に説明する。
 図9は共通鍵更新処理のフローチャートである。共通鍵更新処理は、ノード装置1の電源が入れられると開始される。
 ステップS101で、ノード装置1全体を制御する図4のMPU11は、図5の時計33を参照して、現在時刻を認識し、現在時刻が予め決められた更新時刻であるか否かを判断する。なお、ここで「更新時刻」とは、共通鍵の更新を行う時刻として予め決められた時刻である。例えば、t=12(時間)である場合、「毎日1時と13時が更新時刻である」と決められていてもよい。
 現在時刻が更新時刻であれば、処理はステップS102に進み、MPU11は、耐タンパ性PICマイコン14のドライバ(以下「耐タンパデバイスドライバ」という)に、共通鍵の生成のための処理を開始するよう命令する。耐タンパデバイスドライバは、共通鍵生成部3の一部として働く。
 すなわち、MPU11は、共通鍵を生成するための種(seed)として使うデータ(以下「種データ」という)を、耐タンパデバイスドライバに引数として与える。耐タンパデバイスドライバも、MPU11により実行されるプログラムの1種である。
 続いて、ステップS103において耐タンパデバイスドライバは、受け取った種データを、耐タンパデバイスである耐タンパ性PICマイコン14に出力し、当該種データを使って新たな共通鍵を生成するよう、耐タンパ性PICマイコン14に命令する。
 そして、ステップS104で耐タンパ性PICマイコン14は、受け取った種データを使って新たな共通鍵を生成し、生成した共通鍵を耐タンパデバイスに通知する。耐タンパデバイスドライバは、生成された新たな共通鍵を、例えばDRAM15上に実現される共通鍵格納部32に格納する。
 以上のようにして、現在時刻が更新時刻であれば、共通鍵が更新される。他方で、現在時刻が更新時刻でなければ、処理はステップS101に戻る。なお、ステップS101の分岐は、タイマ割り込みにより実現されてもよい。
 続いて、アクセスキーの更新について図10を参照して説明する。図7に関して説明したように、アクセスキーは定期的に更新される。
 図10はアクセスキー更新処理のフローチャートである。
 ステップS201で、ノード装置1内部のタイマカウンタ(すなわち図4のタイマIC13により実現される図5のカウンタ34)がカウントアップ操作を行う。
 そして、ステップS202で、アクセスキー生成部2は、所定の時間t=10分が経過したか否かを、カウンタ34の値を参照して判断する。所定の時間t=10分が経過していれば(すなわち、カウンタ34の値が、t=10分に対応する値として予め設定された値に達していれば)、処理はステップS203に進み、まだ所定の時間t=10分が経過していなければ、処理はステップS201に戻る。
 ステップS203でアクセスキー生成部2は、所定のアルゴリズムにしたがって新たなアクセスキーを生成し、アクセスキー格納部31に記憶された内部由来アクセスキーを上書き更新する。
 また、ステップS204では、タイマカウンタ(つまり図5のカウンタ34)のクリア動作が行われ、その後、処理はステップS201に戻る。
 なお、カウント値が所定の時間tに相当する値になるとクリアされる不図示の第2のカウンタ(つまり図5のカウンタ34とは別のカウンタ)を利用して、図9の共通鍵更新処理を実現することもできる。あるいは逆に、アクセスキー生成部2が時計33を参照し、現在時刻がアクセスキーの更新時刻に該当するか否かを判断することで、図10のアクセスキー更新処理を実現することもできる。
 ところで、多数のノード装置1を含むアドホック通信システムにおいては、アドホック通信システム全体としてトラフィックが時間的に分散することが好ましい。アクセスキーの更新に伴うハローフレームの送信は、例えば下記(1)~(3)により、アドホック通信システム内で時間的に分散させることができる。
 (1)図2の各ノード装置1A~1Iが、共通の所定時間が電源投入後に経過してから図10の処理を開始するよう設定されている場合は、各ノード装置1A~1Iには、時刻をずらして電源が入れられる。すると、各ノード装置1A~1Iによるアクセスキーの更新時刻も分散するので、アクセスキーの更新に続いて生じるハローフレームの送信も、時間的に分散して生じることになる。
 (2)各ノード装置1A~1Iは、ノード装置1A~1Iごとに異なるランダムな時間が電源投入後に経過してから図10の処理を開始するように設定されていてもよい。例えば、各ノード装置1A~1Iそれぞれのフラッシュメモリ16の所定の領域に、上記ランダムな時間が予め書き込まれて設定されてもよい。
 (3)各ノード装置1A~1Iにおいて、上記の所定の時間tの長さが異なるよう、設定されていてもよい。所定の時間tは、例えば、MPU11が実行するファームウェアプログラムで利用される定数として、予め設定されている。
 さて、上記のようにして図10の処理によりアクセスキーが生成されると、図7のステップS1とS2に関して説明したように、ハローフレームが送信される。生成された新たなアクセスキーは、ハローフレームにより、隣接するノード装置に通知される。
 そこで、以下ではハローフレームの送信と受信の詳細について、図11~図13を参照して説明する。
 図11はハローフレーム送信処理のフローチャートである。また、図12はハローフレームのフォーマットと、ハローフレームに関して行われる各種処理を説明する図である。
 図11の処理は、アクセスキー生成部2がアクセスキーを生成したことを契機として開始される。例えば、図7のステップS1ではノード装置1Aが、ステップS2ではノード装置1Bが、図11の処理を実行する。例えば、アクセスキー生成部2がアクセスキーの生成をハローフレーム作成部36に通知することで、ハローフレーム作成部36が図11の処理を開始する。
 ステップS301においてハローフレーム作成部36は、ハローデータ(すなわちハローフレームのペイロードの元になる平文データ)と、ハローフレームのヘッダを作成する。具体的には、ハローデータは、アクセスキー生成部2が新たに生成したアクセスキーのデータを含む。
 例えば、ハローフレームはアクセスキーの交換のために予め決められた所定のフォーマットのフレームであればよく、ペイロードにはアクセスキー以外の様々なフィールドを含んでもよい。しかし、以下では説明の簡単化のため、本実施形態のハローフレームは、ペイロードに暗号化されたアクセスキーのみを含む場合を例として説明する。
 この場合、ステップS301でハローフレーム作成部36は、単にアクセスキー格納部31からハローデータとして内部由来アクセスキーを読み出すだけで、ハローデータを用意することができる。すなわち、図12の平文アクセスキーD1が、ステップS301でハローデータとして用意される。
 次に、ステップS302においてハローフレーム作成部36は、ハローデータのハッシュ値を計算し、計算したハッシュ値を、ハローフレームの元になる平文フレームの末尾に署名として付与する。具体的には、ハローフレーム作成部36は、図12の平文アクセスキーD1から平文ハッシュ値D2を計算し、ヘッダと平文アクセスキーD1と平文ハッシュ値D2を連結した平文フレームを、ハローフレーム暗号化部37に出力する。なお、「平文ハッシュ値」という名称は、暗号化されたハッシュ値と対比して、暗号化される前の元のハッシュ値であることを明示するための名称である。
 そして、ステップS303でハローフレーム暗号化部37は、共通鍵格納部32を参照して共通鍵を読み出し、ステップS302で署名が付与された後の平文フレーム(正確には、平文フレームのペイロードとトレイラ)を、共通鍵を用いて暗号化する。
 例えば、本実施形態では、暗号化アルゴリズムとして、ストリーム暗号の1種であるRC4が採用されている。よって、ステップS303では、ハローフレーム暗号化部37が共通鍵から鍵ストリームを生成し、平文アクセスキーD1と平文ハッシュ値D2からなる部分と、鍵ストリームとの排他的論理和(XOR;eXclusive OR)を求める。それにより、ステップS303では、暗号化されたペイロード及びトレイラが生成される。
 具体的には、図12に示すように、ハローフレーム暗号化部37は、平文アクセスキーD1から暗号化アクセスキーD3を生成し、平文ハッシュ値D2から暗号化ハッシュ値D4を生成する。なお、図12では、共通鍵を使った暗号化又は復号化の操作を黒い太矢印で表している。
 また、ステップS301で用意されたヘッダは暗号化されず、クリアテキスト(cleartext)のまま使われる。本実施形態では、例えば図12に示すように、ローカル宛先アドレスD5、ローカル差出アドレスD6、フレームタイプD7及びフレームサイズD8の各フィールドを含むアドホックヘッダD9がステップS301で用意されている。
 したがって、ステップS303でハローフレーム暗号化部37は、アドホックヘッダD9に、ペイロードD10としての暗号化アクセスキーD3と、トレイラD11としての暗号化ハッシュ値D4とを連結し、ハローフレームを作成する。そして、ハローフレーム暗号化部37は、作成したハローフレームをハローフレーム送信バッファ41に出力する。
 なお、本実施形態では、隣接する複数の装置(他のノード装置やゲートウェイ装置GW)にアクセスキーを通知するため、ハローフレームはブロードキャストされる。そのため、具体的には、ローカル宛先アドレスD5はブロードキャストアドレスであり、ローカル差出アドレスD6はノード装置1自身のMACアドレスである。
 また、フレームタイプD7は、ハローフレームを表す値に設定されている。フレームサイズD8には、暗号化アクセスキーD3と暗号化ハッシュ値D4の長さの和(すなわち平文アクセスキーD1と平文ハッシュ値D2の長さの和)が指定されている。
 最後に、ステップS304で送信部7はハローフレームを送信する。すなわち、ステップS303の結果として一時的にハローフレーム送信バッファ41に格納されたハローフレームが、送信処理部44によってステップS304で読み出されて送信される。
 図13はハローフレーム受信処理のフローチャートである。例えば、図7のステップS1においては、図2のノード装置1Aが図11の処理を行うので、ノード装置1Aに隣接するノード装置1Bで図13の処理が行われる。
 ノード装置1Bにおいて、受信部8がハローフレームを受信すると、フレーム分岐処理部21が「受信したフレームはハローフレームである」とアドホックヘッダD9のフレームタイプD7から判別する。そして、その判別を契機として、図13の処理が開始される。また、フレーム分岐処理部21によってハローフレームと判別された受信フレームは、一時的にハローフレーム受信バッファ22に格納される。
 ステップS401で復号化部5のハローフレーム復号化部25は、共通鍵格納部32を参照して共通鍵のデータを読み出す。そして、ハローフレーム復号化部25は、共通鍵を用いて、ハローフレーム受信バッファ22に格納されているハローフレーム(本実施形態では、正確にはそのペイロードとトレイラ)を復号する。
 すなわち、ハローフレーム復号化部25は、共通鍵から鍵ストリームを生成し、ペイロードD10とトレイラD11からなる部分と鍵ストリームとのXORを求める。それにより、ハローフレーム復号化部25は、暗号化アクセスキーD3から、復号された平文アクセスキーD12を得るとともに、暗号化ハッシュ値D4から、復号された平文ハッシュ値D13を得る。そして、ハローフレーム復号化部25は、アドホックヘッダD9と復号された平文アクセスキーD12と復号された平文ハッシュ値D13からなる平文フレームを確認部29に出力する。
 すると、ステップS402で確認部29は、ハローフレーム復号化部25から入力された平文フレームから、復号された平文アクセスキーD12を抽出する。そして、確認部29は、復号された平文アクセスキーD12のハッシュ値を計算し、図12の計算されたハッシュ値D14を得る。
 そして、ステップS403で確認部29は、図12の復号された平文ハッシュ値D13と計算されたハッシュ値D14を比較する。
 2つのハッシュ値が等しければ、確認部29は「OK」と判断し、処理はステップS404に移行する。他方、2つのハッシュ値が異なれば、確認部29は「NG」と判断し、処理はステップS405に移行する。
 ステップS404では、確認部29が、ローカル差出アドレスD6と関連付けられているアクセスキー格納部28内の外部由来アクセスキーを、復号された平文アクセスキーD12で上書きする。その結果、ハローフレームの送信元のノード装置に対応する外部由来アクセスキーが更新される。そして図13の処理は終了する。
 他方、ステップS405では、図13の処理を開始する契機となった当該ハローフレームが廃棄され、図13の処理が終了する。
 以上、図7のステップS1とS2に対応する処理の詳細を、図10~図13を参照して説明したので、続いて、図7のステップS3とS4に対応する処理の詳細を、図14~図16を参照して説明する。
 図14はデータフレーム送信処理のフローチャートである。図7のステップS3ではノード装置1Aが、ステップS4ではノード装置1Bが、図14の処理を行う。実施形態に応じて、例えば、ノード装置1に接続されたセンサ等の外部機器からの入力を契機としてデータフレーム送信処理が開始されてもよい。あるいは、ノード装置1は、予め決められたスケジュールにしたがってデータフレーム送信処理を行ってもよい。
 本実施形態では、下記(1)~(3)の条件が成立すると、データフレーム作成部40が図14の処理を開始する。
 (1)送信対象のデータ(以下「対象データ」という)が用意される。対象データは、例えば、ノード装置1に接続された外部機器から入力されてもよいし、データフレーム作成部40が作成してもよい。対象データの例は、図2に関して説明したセンサデータである。
 (2)最終的な宛先(すなわちアドホックネットワーク内でのグローバルな宛先)が決定される。最終的な宛先は、図2の例のように固定的にゲートウェイ装置GWと決定されていてもよいし、データフレーム作成部40により動的に決定されてもよい。
 (3)グローバルな宛先から、ローカルな宛先(すなわち隣接する他のノード装置のうちの1つ)が決定される。アドホック通信システムの構成要素であるノード装置1は、グローバルな宛先からローカルな宛先を決定することができる。
 なお、上記(3)に関して補足すると次のとおりである。
 図1に関して説明したように、アドホック通信システムの構成要素であるノード装置1は、ノード装置1自身の周囲に存在する他のノード装置についてリストを作成し、リストに基づいてノード装置1がフレームを転送するノード装置を決定することができる。つまり、ノード装置1には、グローバルな宛先からローカルな宛先を決定してフレームをルーティングする機能が実装されている。
 例えば、図2のノード装置1Bは、ノード装置1B自身の周囲に存在する他のノード装置1A、1C及び1Eについてリストを作成し、「最終的な宛先がゲートウェイ装置GWのフレームは、ノード装置1Cに転送するのが好ましい」といった情報を管理する。つまり、ノード装置1Bは、グローバルな宛先(例えばゲートウェイ装置GW)を、ノード装置1B自身に隣接する装置を示すローカルな宛先(例えばノード装置1C)に対応付けて管理し、フレームのルーティングを行う。グローバルな宛先とローカルな宛先を対応付ける情報は、例えば図4のDRAM15に記憶される。
 また、グローバルな宛先とローカルな宛先を対応付ける情報は、重み付けされていてもよい。重み付けにより、ある1つのグローバルな宛先(例えばゲートウェイ装置GW)に関して、ノード装置1B自身に隣接する複数の装置(例えばノード装置1A、1C及び1E)のうち、いずれが転送先として好ましいかが表される。例えば、図2の例では、ゲートウェイ装置GWとノード装置1Aの組の重みよりも、ゲートウェイ装置GWとノード装置1Cの組の重みの方が、高い優先度を示す。すなわち、重み付けにより、「最終的な宛先がゲートウェイ装置GWのフレームは、ノード装置1A又は1Eに転送するよりも、ノード装置1Cに転送する方が好ましい」といった情報が表される。
 MPU11は、ファームウェアプログラムを実行することにより、上記の情報を管理し、受信したフレームの転送の要否を判断する。転送が必要な場合、ファームウェアプログラムを実行するMPU11は、DRAM15を参照してグローバルな宛先からローカルな宛先を決定し、決定したローカルな宛先を転送先として、フレームを送信する。
 ここで図14の説明に戻ると、上述のとおりデータフレーム送信処理は、上記(1)~(3)の条件が成立すると開始される。
 すると、ステップS501でデータフレーム作成部40は、データフレームのペイロードの元になる平文ペイロードのハッシュ値を計算する。データフレーム作成部40は、計算したハッシュ値を、平文ペイロードの末尾に続く平文トレイラの一部として付与する。本実施形態は、トレイラには、署名が設定される。
 ここで、図15を参照してステップS501をより詳細に説明すれば下記のとおりである。
 図15はデータフレームのフォーマットと、データフレームに関して行われる各種処理の第1の例を説明する図である。図15は、図8と一部異なるフォーマットが採用される場合についての説明である。図8と同様のフォーマットを採用する場合については、図17とともに後述する。
 ステップS501でデータフレーム作成部40は、図15の平文FID・D15として新たなFIDを発行する。また、データフレーム作成部40は、上記の条件(1)に関して説明した対象データだけでなく、ペイロードに含める他のデータを適宜ステップS501で用意する。ステップS501で用意されるデータは、DRAM15又はフラッシュメモリ16から読み出されるデータでもよいし、データフレーム作成部40によって生成されるデータでもよいし、外部機器から入力されるデータでもよい。
 例えば、データフレーム作成部40は、データフレームの最終的な宛先であるグローバルな宛先を指定するデータを、条件(1)で用意された対象データと合わせて、平文ボディD16を作成する。
 また、図14には明示していないが、データフレーム作成部40はステップS501でさらに、アドホックヘッダD9を生成する。アドホックヘッダD9の形式は、ハローフレームと同様である。
 すなわち、データフレームにおいても、アドホックヘッダD9は、ローカル宛先アドレスD5、ローカル差出アドレスD6、フレームタイプD7及びフレームサイズD8を含む。ただし、ローカル宛先アドレスD5は上記の条件(3)で説明したようにして決定されたMACアドレスである。また、フレームタイプD7は、データフレームを示す値に設定される。
 こうして、データフレーム作成部40はステップS501においてアドホックヘッダD9と、平文FID・D15と平文ボディD16からなる平文ペイロードとを作成し、平文ペイロードから図15の平文ハッシュ値D17を計算する。
 また、ステップS502でデータフレーム作成部40は、時計33を参照して現在時刻情報を取得し、取得した現在時刻情報を図15の平文時刻D18として、平文ハッシュ値D17の後ろに連結する。平文ハッシュ値D17と平文時刻D18からなる部分が、暗号化署名の元となる平文署名である。そして、データフレーム作成部40は、アドホックヘッダD9、平文ペイロード及び平文署名からなる平文フレームをデータフレーム暗号化部39に出力する。
 すると、ステップS503でデータフレーム暗号化部39は、共通鍵格納部32を参照して共通鍵を読み出し、共通鍵を用いて平文署名を暗号化して暗号化署名D21を得る。
 上記のように、本実施形態では暗号化アルゴリズムとしてRC4が採用されている。よって、ステップS503でデータフレーム暗号化部39は、具体的には、共通鍵から鍵ストリームを生成し、平文署名と鍵ストリームとのXORを求める。
 その結果、平文ハッシュ値D17からは暗号化ハッシュ値D19が得られ、平文時刻D18からは暗号化時刻D20が得られる。換言すれば、平文署名全体からは、暗号化ハッシュ値D19と暗号化時刻D20からなる暗号化署名D21が得られる。
 続いて、ステップS504でデータフレーム暗号化部39は、上記条件(3)で決定した送信先のノード装置(すなわち、ローカル宛先アドレスD5にMACアドレスが指定されているノード装置)のアクセスキーを使って、平文フレームを暗号化する。すなわち、データフレーム暗号化部39は、アクセスキー格納部28を参照して送信先のノード装置のアクセスキーを読み出し、読み出したアクセスキーを用いて、平文ペイロードと暗号化署名D21を暗号化する。
 すなわち、データフレーム暗号化部39は、鍵ストリームの生成とXOR演算を行う。その結果、データフレーム暗号化部39は、平文FID・D15からは暗号化FID・D22を、平文ボディD16からは暗号化ボディD23を、それぞれ生成する。また、データフレーム暗号化部39は、暗号化ハッシュ値D19からは二重暗号化ハッシュ値D24を、暗号化時刻D20からは二重暗号化時刻D25を生成する。つまり、暗号化署名D21からは、トレイラに相当する、二重に暗号化された署名が得られる。
 なお、図15及び図17では、共通鍵による暗号化及び復号化を黒い矢印で表し、アクセスキーによる暗号化及び復号化を斜線模様の矢印で表している。
 以上のようにして、暗号化FID・D22と暗号化ボディD23からなるペイロードD26と、二重暗号化ハッシュ値D24と二重暗号化時刻D25からなる署名としてのトレイラD27が生成される。したがって、ステップS504でデータフレーム暗号化部39は、アドホックヘッダD9にペイロードD26とトレイラD27を連結してデータフレームを作成し、データフレーム送信バッファ43に出力する。
 最後に、ステップS505で送信部7はデータフレームを送信する。すなわち、ステップS504の結果として一時的にデータフレーム送信バッファ43に格納されたデータフレームが、送信処理部44によってステップS505で読み出されて送信される。
 図16はデータフレーム受信処理のフローチャートである。図7のステップS3では1Bが、ステップS4ではノード装置1Aが、図16の処理を行う。
 以下、説明の便宜上、図7のステップS3で、ノード装置1Bが、アクセスキーb1で暗号化されたデータフレームを受信部8において受信した場合について、説明する。
 上記データフレームがノード装置1Bで受信されると、フレーム分岐処理部21は、「受信したフレームはデータフレームである」とアドホックヘッダD9のフレームタイプD7から判別する。そして、その判別を契機として、図16の処理が開始される。また、フレーム分岐処理部21によってデータフレームと判別された受信フレームは、一時的にデータフレーム受信バッファ24に格納される。
 ステップS601で復号化部5のデータフレーム復号化部27は、自ノード装置1Bのアクセスキーを使って、受信したフレームを復号する。すなわち、データフレーム復号化部27は、アクセスキー格納部31を参照して、ノード装置1B自身にとっては内部由来アクセスキーであるアクセスキーb1のデータを読み出す。そして、データフレーム復号化部27は、アクセスキーb1を用いて、データフレーム受信バッファ24に格納されているデータフレーム(本実施形態では、正確にはそのペイロードとトレイラ)を復号する。
 すなわち、データフレーム復号部27は、アクセスキーb1から鍵ストリームを生成し、暗号文(つまり図15のペイロードD26とトレイラD27からなる部分)と鍵ストリームとのXORを求める。それにより、データフレーム復号部27は、暗号化FID・D22から、復号された平文FID・D28を得、暗号化ボディD23から、復号された平文ボディD29を得る。また、データフレーム復号部27は、二重暗号化ハッシュ値D24から、復号された暗号文ハッシュ値D30を得、二重暗号化時刻D25から、復号された暗号文時刻D31を得る。つまり、データフレーム復号部27は二重暗号化署名から暗号化署名を得る。
 続いて、ステップS602でデータフレーム復号部27は、共通鍵格納部32を参照して共通鍵のデータを読み出し、復号された暗号文ハッシュ値D30と復号された暗号文時刻D31からなる暗号化署名を、共通鍵を用いて復号する。その結果、復号された暗号文ハッシュ値D30からは復号された平文ハッシュ値D33が得られ、復号された暗号文時刻D31からは復号された平文時刻D34が得られる。
 そこで、データフレーム復号部27は、アドホックヘッダD9、復号された平文FID・D28、復号された平文ボディD29、復号された平文ハッシュ値D33及びカウンタ34を、復号された平文フレームとして確認部29に出力する。
 ステップS603で確認部29は、データフレーム復号部27からの入力から、復号された平文FID・D28と復号された平文ボディD29からなる部分(以下、「復号された平文ペイロード」という)を抽出する。そして、確認部29は、復号された平文ペイロードのハッシュ値を計算し、図15の計算されたハッシュ値D32を得る。
 ステップS603では、受信されたデータフレームの認証判定処理として、確認部29が、計算されたハッシュ値D32と復号された平文ハッシュ値D33を比較する。受信されたデータフレームが、改竄などを受けていない正しいデータフレームであれば、計算されたハッシュ値D32と復号された平文ハッシュ値D33は一致する。
 よって、計算されたハッシュ値D32と復号された平文ハッシュ値D33が一致する場合、確認部29は「OK」と判定して、処理はステップS604に移行する。他方、計算されたハッシュ値D32と復号された平文ハッシュ値D33が一致しない場合は、確認部29は「NG」と判定して、処理はステップS608に移行する。
 ステップS604で確認部29は、復号された平文時刻D34を抽出する。ステップS604が実行されるのはステップS603で「OK」と判断された場合なので、復号された平文時刻D34は、元の平文時刻D18と等しい。また、確認部29は、ステップS604でローカル差出アドレスD6も抽出する。
 そして、ステップS605で確認部29は、時刻判定処理を行う。時刻判定処理は、なりすまし攻撃に対する防御のための処理である。なお、本明細書では、不正な第三者がデータフレームを傍受(すなわちキャプチャ)し、傍受したデータフレームをコピー又は一部変更して送信することを、なりすまし攻撃という。
 具体的には、確認部29は、図5の最新送信時刻格納部45を参照して時刻判定処理を行う。図16に示すように、最新送信時刻格納部45は、ローカル差出アドレスと時刻を対応付けるエントリを記憶する。
 例えば、図16に示した1番目のエントリは、ローカル差出アドレスAと時刻Tとを対応付けている。また、上記のように、図16の説明は、ノード装置1Bが図16の処理を行う場合を例としている。したがって、図16に示す1番目のエントリは、「ローカル差出アドレスAで識別されるノード装置からノード装置1Bが受信した最新のデータフレームから得られた、復号された平文時刻D34は、Tである」ということを示す。
 ノード装置1Bの電源が投入された時点、すなわち初期状態での最新送信時刻格納部45は、1つもエントリを記憶していないが、後述のステップS606により、最新送信時刻格納部45にエントリが追加され、又は既存のエントリが更新される。
 ステップS605において、確認部29は、抽出したローカル差出アドレスD6を検索キーにして最新送信時刻格納部45を検索する。検索の結果、「ローカル差出アドレス」フィールドが、抽出したローカル差出アドレスD6と一致するエントリがなければ、確認部29は、「受信したデータフレームは、なりすまし攻撃によって送られたデータフレームではない」と判断する。すなわち、確認部29は、「受信したデータフレームは、正当なデータフレームである」と判断し、処理はステップS606に移行する。
 逆に、検索の結果、「ローカル差出アドレス」フィールドが、抽出したローカル差出アドレスD6と一致するエントリが見つかった場合、受信したデータフレームは、なりすまし攻撃によって送られた可能性がある。そこで、確認部29は、見つかったエントリの「時刻」フィールドの値を、ステップS604で抽出した、復号された平文時刻D34と比較する。
 2つの時刻が一致する場合、確認部29は、「受信したデータフレームがなりすまし攻撃によるものである」と判断し、処理はステップS608に移行する。逆に、2つの時刻が一致しなければ、確認部29は、「ローカル差出アドレスD6で識別されるノード装置から、今までにノード装置1Bが受信したのとは異なる新たなデータフレームが、正当に送信された」と判断し、処理はステップS606に移行する。
 ステップS606で確認部29は、ローカル差出アドレスD6で識別される送信元ノード装置の最新時刻情報を更新する。
 すなわち、ステップS605の検索でエントリが見つからなかった場合には、確認部29は、ローカル差出アドレスD6と復号された平文時刻D34を対応付ける新たなエントリを作成して最新送信時刻格納部45に格納する。また、ステップS605の検索でエントリが見つかった場合には、確認部29は、見つかった当該エントリの「時刻」フィールドの値を、復号された平文時刻D34で上書きする。
 以上により最新送信時刻格納部45が保持する最新時刻情報を更新すると、確認部29は、平文フレームを受信データフレーム処理部30に出力する。
 すると、ステップS607では、受信データフレーム処理部30が、確認部29からの入力を用いて、実施形態に応じた処理を行う。
 例えば、復号された平文ボディD29には、対象データの最終的な宛先(つまりグローバルな宛先)が指定されていてもよい。そして、受信データフレーム処理部30は、グローバルな宛先に応じて、データフレームの転送の要否を判断し、転送する場合にはローカルな宛先を決定し、新たなデータフレームの組み立てをデータフレーム作成部40に命令してもよい。
 また、受信データフレーム処理部30は、図8に関して説明したように、復号された平文FID・D28と復号された平文時刻D34を用いて、不正なデータフレームと正当なデータフレームの判別や、受信したデータフレームが再送されたものか否かの判断を行ってもよい。
 また、ステップS608では、受信されたデータフレームが廃棄され、図16の処理が終了する。すなわち、ステップS608では、確認部29は、受信データフレーム処理部30にデータを出力しない。
 以上図14~図16を参照して説明したデータフレームの送受信に関する一連の処理は、データフレームのフォーマットに応じて適宜変形可能である。その具体例を、図17とともに説明する。
 図17は、データフレームのフォーマットと、データフレームに関して行われる各種処理の第2の例を説明する図である。図17は図8を詳細化したフォーマットの一例である。
 以下、ノード装置1Aからノード装置1Bへデータフレームが送信される場合を例にして、図17に対応する処理の詳細を説明する。
 ノード装置1Aのデータフレーム作成部40は、平文FID・D15と平文時刻D18と平文ボディD16からなる平文ペイロードのハッシュ値を計算し、平文ハッシュ値D35を得る。そして、ノード装置1Aのデータフレーム暗号化部39は、共通鍵を使って平文ハッシュ値D35を暗号化して暗号化ハッシュ値D36を得、平文ペイロードと暗号化ハッシュ値D36からなる部分を、ノード装置1Bのアクセスキーb1で暗号化する。
 その結果、平文FID・D15からは暗号化FID・D37が、平文時刻D18からは暗号化時刻D38が、平文ボディD16からは暗号化ボディD39が、暗号化ハッシュ値D36からは二重暗号化ハッシュ値D40が得られる。
 ノード装置1Aのデータフレーム暗号化部39は、アドホックヘッダD9に、暗号化FID・D37と暗号化時刻D38と暗号化ボディD39からなるペイロードD41と、トレイラD42としての二重暗号化ハッシュ値D40を連結する。連結により完成した、暗号化されたデータフレームは、データフレーム送信バッファ43に一時的に格納され、送信処理部44から送信される。
 そして、暗号化されたデータフレームを受信したノード装置1Bでは、フレーム分岐処理部21がフレームタイプD7から「受信したフレームはデータフレームである」と判別し、受信されたフレームはデータフレーム受信バッファ24に格納される。そして、データフレーム復号部27がペイロードD41とトレイラD42をノード装置1B自身のアクセスキーb1で復号する。
 その結果、暗号化FID・D37からは、復号された平文FID・D43が得られ、暗号化時刻D38からは、復号された平文時刻D44が得られ、暗号化ボディD39からは、復号された平文ボディD45が得られる。また、二重暗号化ハッシュ値D40からは復号された暗号文ハッシュ値D46が得られる。データフレーム復号部27はさらに、復号された暗号文ハッシュ値D46を共通鍵で復号することで、復号された平文ハッシュ値D48を得る。
 すると、ノード装置1Bの確認部29は、復号された平文FID・D43と復号された平文時刻D44と復号された平文ボディD45からなる部分のハッシュ値を計算し、計算されたハッシュ値D47を得る。そして、確認部29は、計算されたハッシュ値D47と復号された平文ハッシュ値D48を比較し、両者が不一致であれば、データフレームを廃棄する。
 計算されたハッシュ値D47と復号された平文ハッシュ値D48が一致するとき、確認部29はさらに、復号された平文時刻D44を検索キーにして最新送信時刻格納部45を検索し、図16のステップS605と同様の時刻判定処理を行う。ステップS605以降の処理は、図16に関して説明したのと同様である。
 以上説明したように、本実施形態に係るノード装置は、所定の期間で更新される共通鍵を用いてアクセスキーを交換して、共通鍵及びアクセスキーを利用して第三者による不正なアクセスと正当なノード装置からのアクセスとを判別している。このため、共通鍵やアクセスキーを更新するタイミングをノード装置間で一致させる必要がある。すなわち、ノード装置内の時刻について、ネットワーク内のノード装置間で同期をとっておく必要がある。以下、時刻の同期方法について説明する。
 図18は、時刻の同期方法を説明する図である。図18のノード装置1Aにおいて時刻の同期をとって時刻合わせする場合を例に説明することとする。
 ノード装置1Aは、自ノード装置1Aの現在時刻と、時刻合わせを行った最終時刻とを記憶部(例えばDRAM15)に記憶させておく。そして、時刻同期用の時刻同期フレームを受信した場合には、時刻同期フレームから時刻に関わる情報を取り出して、自ノード装置1Aにおいて記憶している情報と比較する。比較した結果、同期が必要と判断した場合には、ノード装置1Aは、時刻同期フレームに含まれる情報にしたがって時刻合わせを行う。
 時刻同期フレームは、本実施形態においては、ハローフレームと類似のフォーマットの制御用フレームの1種であり、現在時刻及び時刻合わせを行った時刻(以下、「同期時刻」とする)を示すデータを含む。ここで、現在時刻とは、時刻同期フレームを生成する時点でのそのノード装置1自身における時刻を言い、同期時刻とは、所定の装置において時刻の同期をとった時刻を言う。所定の装置とは、本実施形態においてはゲートウェイ装置GWであり、時刻の同期は、例えばSNTP(Simple Network Time Protocol)等によりゲートウェイ装置GWにおいて時刻の同期をとることを言う。
 ゲートウェイ装置GWにおいて、定期的に、例えば2時間に1回、SNTP等により時刻の同期をとる。各ノード装置1は、時刻同期フレームに、自ノード装置1の現在時刻と同期時刻とを格納し、時刻同期フレームによりブロードキャストする。時刻同期フレームは、所定のタイミングで(例えば2時間に1回)、上記の時間変化する共通鍵とは異なる固定的な時刻同期鍵を用いて暗号化して送信される。
 図18に示す例では、ゲートウェイ装置GWにおいて、12時にSNTP等により時刻の同期をとり、13時に時刻同期フレームP1を生成して送信する。
 時刻同期フレームP1を受信したノード装置1Aは、自ノード装置1Aに記憶している最終同期時刻と、時刻同期フレームP1の同期時刻とを比較する。図18の例では、時刻同期フレームP1の同期時刻(12:00)の方が記憶している最終同期時刻(11:00)よりも新しい。この場合は、ノード装置1Aは、受信した時刻同期フレームに格納されている現在時刻(13:00)を現在時刻として設定する。
 ここで、ノード装置1Aは、ノード装置1Bから送信される時刻同期フレームP2のように、最新でない時刻における同期による時刻同期フレームを受信することがある。時刻同期フレームP2を受信した場合は、ノード装置1Aは、自ノード装置1Aに記憶している最終同期時刻(11:00)の方が時刻同期フレームP2の同期時刻(10:00)よりも新しいため、時刻の同期はとらない。
 続いて、図18の例について、図19~図21を参照してより詳細に説明する。
 図19は、図18を参照して説明した時刻の同期方法を説明するシーケンス図である。図19には、SNTPサーバSS、ゲートウェイ装置GW及びノード装置1A~1Cが示されている。以下では、アドホックネットワーク内でゲートウェイ装置GWとノード装置1Aが隣接しており、ノード装置1Aはノード装置1B及び1Cとも隣接しているものとする。
 なお、ゲートウェイ装置GWとノード装置1A~1Cは、いずれも図5の各部を備えている。また、ゲートウェイ装置GWにはさらに、SNTPによる時刻合わせ機能も実装されている。
 ステップS701に示すように、ゲートウェイ装置GWは、ゲートウェイ装置GW自身の時計33における時刻が12:00になると、予め決められたスケジュールにしたがって、SNTPによってSNTPサーバSSにアクセスし、時刻合わせを行う。
 また、ゲートウェイ装置GWには、時刻同期フレームを送信するタイミングについても、予め「13:00に送信する」のようなスケジュールが設定されている。よって、ステップS701での時刻合わせの結果適宜修正されたゲートウェイ装置GWの時計が13:00を示すと、ゲートウェイ装置GWはステップS702に示すように、時刻同期フレームP1を送信する。
 なお、時刻同期フレームを送信するタイミングは、隣接する複数のノード装置それぞれに対して別の時刻が設定されていてもよい。
 時刻同期フレームのフォーマットの詳細の図示は省略するが、時刻同期フレームは、図12のハローフレームと同様のアドホックヘッダD9を含み、さらに、「同期時刻」と「現在時刻」という2つのフィールドを含む平文ペイロードを、時刻同期鍵を使って暗号化して得られる暗号化ペイロードを含む。
 例えば、ステップS702では、ゲートウェイ装置GWが、「同期時刻が12:00で現在時刻が13:00である」と示す時刻同期フレームP1を送信する。すなわち、同期時刻フィールドの値は、ゲートウェイ装置GW自身がステップS701の時刻合わせを行った時刻であり、現在時刻フィールドの値は、ゲートウェイ装置GWが時刻同期フレームP1を送信する時刻である。
 なお、以下では、時刻同期フレームP1のローカル宛先アドレスはノード装置1Aのアドレスであるとする。時刻同期フレーム送信処理の詳細は、図20とともに後述する。
 ところで、本実施形態では、アドホックネットワーク内で互いに隣接する装置間での通信遅延時間は、ゼロと見なされる。すると、時刻同期フレームP1は、ゲートウェイ装置GWの時計33で13:00にノード装置1Aにおいて受信される。しかし、時刻同期フレームP1を受信したときのノード装置1Aの時計33は、例えば、12:58を示しているかもしれないし、13:03を示しているかもしれない。
 そこで、時刻同期フレームP1を受信したノード装置1Aは、ノード装置1A自身の時計33の時刻合わせ(すなわち時刻同期処理)をステップS703で行う。その結果、ノード装置1Aの時計33は、13:00に補正される。なお、ステップS703の時刻同期処理は、具体的には、図21の時刻同期フレーム受信処理である。
 ステップS703においてノード装置1Aの時計33が補正されるということは、換言すれば、ステップS703でノード装置1Aが、時間帯Tna1から時間帯Tna2にスイッチしたとも言える。
 また、個々のノード装置1A~1Cは、個々のスケジュール設定に応じて時刻同期フレーム送信処理を行う。例えば、図19の例では、ノード装置1Bが、ノード装置1Bの時計で13:30になると、ステップS704に示すように、時刻同期フレームP2を送信する。時刻同期フレームP2は、「同期時刻が10:00で現在時刻が13:30である」と示している。また、時刻同期フレームP2のローカル宛先アドレスはノード装置1Aのアドレスであるとする。
 すると、ノード装置1Aは、時刻同期フレームP2を受信し、時刻同期フレームP2の受信を契機として、ステップS705に示すように時刻同期処理を行う。しかし、既にステップS703で行った時刻同期処理で使われた時刻同期フレームP1に同期時刻として示されていた12:00よりも、時刻同期フレームP2に同期時刻として示されている10:00の方が古い。そのため、詳しくは図21とともに説明するように、ステップS705では、ノード装置1Aは時計33を更新しない。
 ところで、個々のノード装置1A~1Cには、時刻同期処理によって時計33を補正してから、隣接する他のノード装置に時刻同期フレームを送信するまでの間隔Tnaxが、予め設定されている。例えば、ノード装置1Aに設定されている間隔Tnaxは、40分である。
 個々のノード装置1A~1Cごとに、異なるランダムな間隔が設定されていてもよい。また、ノード装置1Aは、時計33を補正してから複数のノード装置1Bと1Cへそれぞれ時刻同期フレームを送信するまでの間隔が、同じ値(例えば上記の間隔Tnax)に設定されていてもよい。あるいは逆に、1つのノード装置1Aにおいて、時計33を補正してからノード装置1Bへ時刻同期フレームを送信するまでの間隔(図19には不図示)と、時計33を補正してからノード装置1Cへの時刻同期フレームを送信するまでの間隔Tnaxとが、異なる値に設定されていてもよい。
 ノード装置1Aは、設定にしたがって、時計33を補正してから所定の時間(すなわちTnax=40分)が経過すると、ステップS706に示すように時刻同期フレーム送信処理を行う。ステップS706では、「同期時刻が12:00で現在時刻が13:40である」と示す時刻同期フレームP3が送信される。
 時刻同期フレームP3が「同期時刻が12:00」と示すのは、ノード装置1Aが時計33を補正する契機となった時刻同期フレームP1が、同期時刻として示していたのが12:00だからである。また、時刻同期フレームP3が「現在時刻が13:40」と示すのは、時刻同期フレームP3が13:40に送信されるからである。
 そして、時刻同期フレームP3がノード装置1Cで受信されると、ステップS707に示すように、ノード装置1Cが時刻同期処理を行う。
 図20は時刻同期フレーム送信処理のフローチャートである。例えば、図19のステップS702ではゲートウェイ装置GWが、ステップS704ではノード装置1Bが、ステップS706ではノード装置1Aが、それぞれ図20の処理を行う。
 例えば、ノード装置1Aの時刻同期部9は、図5のカウンタ34とは別の不図示の第2のカウンタを備えていてもよい。第2のカウンタは、例えば図4のタイマIC13と類似のハードウェア回路により実現することができる。
 第2のカウンタには、間隔Tnaxを示す値が設定される。そして、時刻同期部9は、図21とともに後述する時刻同期フレーム受信処理の終了時に第2のカウンタをクリアする。第2のカウンタが、間隔Tnaxを示す値までカウントアップすると、図20の処理を時刻同期部9が開始する。
 あるいは、時刻同期部9は、時計33を補正した時刻を記憶し、記憶した時刻から間隔Tnaxが経過したか否かを、時計33を参照することにより判断し、間隔Tnaxが経過していれば図20の処理を開始してもよい。
 図20の処理が開始されると、ステップS801で時刻同期部9は、自ノード装置1で保持している最終同期時刻を、同期時刻としてフレームに設定する。
 時刻同期部9は、最後に図21の処理を行ったときの時刻同期フレームの同期時刻フィールドから得た時刻を、ノード装置1自身における「最終同期時刻」として、例えばDRAM15上に保持している。そこで、ステップS801では、時刻同期部9は、新たに作成する平文フレームの同期時刻フィールドに、保持している最終同期時刻の値を設定する。
 例えば図19の例において、ノード装置1Aの時刻同期部9がステップS706を実行する場合、時刻同期部9は、ステップS703で時計33を補正した契機となった時刻同期フレームP1が示す同期時刻である12:00を、最終同期時刻として保持している。よって、ステップS706から呼び出された図20の処理のステップS801では、時刻同期部9は、新たに作成する平文フレームの同期時刻フィールドに、12:00と設定する。
 次に、ステップS802で時刻同期部9は、自ノード装置1の時刻同期フレーム送信時刻を、「現在時刻」としてフレーム(つまり新たに作成する平文フレーム)に設定する。より厳密には、ステップS802の実行時に時計33が示す時刻が、近似的に、ノード装置1からの時刻同期フレーム送信時刻であると見なされて、時刻同期部9によって平文フレームの現在時刻フィールドに設定される。
 例えば図19の例において、ノード装置1Aの時刻同期部9がステップS706を実行する場合、ステップS706から呼び出された図20の処理のステップS802では、時刻同期部9は、平文フレームの現在時刻フィールドに、13:40と設定する。
 そして、ステップS803で時刻同期部9は、時刻同期フレームのヘッダを作成し、作成したヘッダを、平文ペイロード(同期時刻と現在時刻を含む)の前に付与する。ステップS803で作成されるヘッダは、例えば、ハローフレームのアドホックヘッダD9と同様の形式である。そして、時刻同期部9は、ヘッダと平文ペイロードからなる平文フレームを時刻同期フレーム暗号化部38に出力する。
 するとステップS804で時刻同期フレーム暗号化部38は、時刻同期鍵格納部35を参照して時刻同期鍵を読み出し、時刻同期鍵を用いて、平文ペイロードを暗号化する。例えば、時刻同期フレームの暗号化のための暗号化アルゴリズムもRC4である場合、時刻同期フレーム暗号化部38は、ステップS804において、具体的には、鍵ストリームの生成とXOR操作を行う。時刻同期フレーム暗号化部38は、ステップS803で付与したヘッダと、ステップS804で暗号化したペイロードとからなる時刻同期フレームを、時刻同期フレーム送信バッファ42に出力する。
 最後にステップS805で、送信部7が時刻同期フレームを送信する。つまり、送信処理部44が、時刻同期フレーム送信バッファ42に一時的に格納された時刻同期フレームを送信し、図20の処理は終了する。
 図21は時刻同期フレーム受信処理のフローチャートである。例えば、図19のステップS703とS705では、ノード装置1Aが図21の処理を行う。図21の処理は、ノード装置1が受信部8でフレームを受信し、受信部8のフレーム分岐処理部21がアドホックヘッダD9のフレームタイプD7に基づいて「受信したフレームは時刻同期フレームである」と判別することを契機として、開始される。なお、フレーム分岐処理部21が「受信したフレームは時刻同期フレームである」と判別すると、受信されたフレームは時刻同期フレーム受信バッファ23に出力され、格納される。
 ステップS901で時刻同期フレーム復号部26は、時刻同期フレーム受信バッファ23から時刻同期フレームを読み出して復号化を行う。すなわち、時刻同期フレーム復号部26は時刻同期鍵格納部35を参照して時刻同期鍵を読み出し、時刻同期鍵を用いて、時刻同期フレームの暗号化されているペイロードを復号する。
 上記のように時刻同期フレームの暗号化のための暗号化アルゴリズムもRC4である場合、時刻同期フレーム復号部26は、ステップS901において、具体的には、鍵ストリームの生成とXOR操作を行う。
 また、復号後、時刻同期フレーム復号部26は、ヘッダと、復号によって得た平文ペイロードとを時刻同期部9に出力する。
 すると、ステップS902で時刻同期部9は、平文ペイロードから同期時刻フィールドの値を抽出するとともに、例えばDRAM15に保持している最終同期時刻を読み出す。そして時刻同期部9は、抽出した同期時刻と読み出した最終同期時刻を比較する。
 同期時刻が最終同期時刻よりも新しいとき、処理はステップS903に移行する。逆に、同期時刻が最終同期時刻と同じか、又は同期時刻が最終同期時刻よりも古いとき、処理はステップS904に移行する。
 ステップS903で時刻同期部9は、時刻同期フレームの現在時刻を、自ノード装置1の時刻として設定する。すなわち、時刻同期部9は、時刻同期フレームの現在時刻フィールドの値を抽出し、抽出した値を時計33に設定することで、時計33の時刻を補正する。そして、図21の処理は終了する。
 例えば、図19のステップS703から図21の処理が呼び出された場合、ステップS903が実行され、時刻同期部9が時計33を補正する。
 また、ステップS904では、時刻同期部9は時刻同期フレームを破棄し、図21の処理が終了する。例えば、図19のステップS705から図21の処理が呼び出された場合、ステップS904が実行される。
 なお、図20及び図21に関して説明したように、本実施形態の時刻同期フレームには特に署名などのトレイラは含まれないが、平文ペイロードのハッシュ値をトレイラとして付与したフォーマットの時刻同期フレームを利用する実施形態も可能である。
 その場合、時刻同期フレーム送信処理において、時刻同期部9はハッシュ値の計算を行い、時刻同期フレーム暗号化部38はペイロードとトレイラの双方を暗号化する。また、時刻同期フレーム受信処理において、時刻同期フレーム復号部26はペイロードとトレイラの双方を復号する。そして、確認部29が、復号により得られた平文ペイロードからハッシュ値を計算し、計算したハッシュ値と復号により得られた平文ハッシュ値とを比較し、2つのハッシュ値が一致する場合のみ、時刻同期部9がステップS902以降の処理を実行する。
 アドホック通信ネットワークを構成するノード装置数が多い場合に、ゲートウェイ装置等の所定の1つの装置の時刻に各ノード装置が同期をとる構成では、トラフィックが増大することとなる。他方、本実施形態によれば、ノード装置数が多い場合であっても、上記の時刻同期方法のように、各ノード装置が、隣接するノード装置のうち既に同期をとったノード装置から時刻同期フレームを受信して時刻合わせを行う。そのため、本実施形態によれば、ネットワーク全体としてのトラフィックを増大させることなく、各ノード装置が時刻の同期をとることができる。
 以上、図1~図21を参照して本実施形態について詳しく説明したが、本実施形態のノード装置1について概観すれば下記のごとくである。
 図3~図5に示すノード装置1は、例えば図2、図6、図7、図18及び図19に示すように複数のノード装置によって構成されるネットワークの中のノード装置の1つである。ここで説明の便宜上、複数のノード装置のうち第1のノード装置1Aと第2のノード装置1Bに注目し、第1のノード装置1Aの構成について概観する。
 第1のノード装置1Aは、図3及び図5に示すように、第1のノード装置1A固有の暗号鍵である第1のアクセスキーを、第1の時間ごとに変更して生成するアクセスキー生成部2を有する。ここで、「第1のアクセスキー」とは、例えば、図6のアクセスキーa1であり、「第1の時間」とは、上記実施形態の例ではt=10(分)である。
 また、第1のノード装置1Aは、図3及び図5に示すように、ネットワーク内の複数のノード装置で共通の共通鍵を、複数のノード装置で共通の時間である第2の時間ごとに変更して生成する共通鍵生成部3を有する。ここで、「第2の時間」とは、上記実施形態の例ではt=12(時間)である。
 また、第1のノード装置1Aは、生成された第1のアクセスキーを、生成された共通鍵で暗号化して第2のノード装置1Bに送信するアクセスキー通知部として働くコンポーネントを有する。すなわち、図3のフレーム処理部6と暗号化部4と送信部7が、協働して上記アクセスキー通知部として働く。より詳しくは、図5のハローフレーム作成部36とハローフレーム暗号化部37とハローフレーム送信バッファ41と送信処理部44が、協働して上記アクセスキー通知部として働く。
 また、第1のノード装置1Aは、第2のノード装置1Bから送信されてきたアクセスキー通知フレームを受信するアクセスキー受信部として働くコンポーネントを有する。ここで、「アクセスキー通知フレーム」とは、第2のノード装置1Bに固有の暗号鍵である第2のアクセスキーを共通鍵で暗号化したデータであるアクセスキー通知データを含み、具体的には、上記実施形態における、暗号化されたハローフレームである。また、「第2のアクセスキー」は、例えば図6のアクセスキーb1であり、「アクセスキー通知データ」は、例えば図12の暗号化アクセスキーD3である。
 なお、上記実施形態では、図3の受信部8(より詳しくは図5のフレーム分岐処理部21とハローフレーム受信バッファ22)がアクセスキー受信部として働く。
 また、第1のノード装置1Aは、アクセスキー通知データを、生成された共通鍵を用いて復号することにより、アクセスキー通知データから第2のアクセスキーを取得するアクセスキー復号化部として働くコンポーネントを有する。すなわち、上記実施形態では、図3の復号部5(より詳しくは図5のハローフレーム復号部25)が、上記アクセスキー復号化部として働いて、アクセスキーb1を取得する。
 また、第1のノード装置1Aは、データ送信部として働くコンポーネントを有する。データ送信部は、第1の平文フレームに、第1の平文フレームから計算される第1のハッシュ値を含むデータを共通鍵で暗号化した第1の署名データを付与する。そして、データ送信部は、第1の署名データの付与された第1の平文フレームを、復号して得た第2のアクセスキーで暗号化して、第1の暗号化フレームとして送信する。
 ここで「第1の平文フレーム」の例は、図15に関して説明した、アドホックヘッダD9と、平文FID・D15と平文ボディD16からなる平文ペイロードとを含む、平文フレームである。「第1のハッシュ値」の例は、まだトレイラが作成されていない平文フレームから(より正確には平文ペイロードから)計算される、図15の平文ハッシュ値D17であり、「第1の署名データ」の例は暗号化署名D21である。実施形態によっては、ハッシュ値の計算にさらにヘッダが利用されてもよい。また、「第2のアクセスキー」は、具体的には、図6のアクセスキーb1である。
 上記実施形態では、図3の暗号化部4と送信部7(より詳しくは、図5のデータフレーム暗号化部39とデータフレーム送信バッファ43と送信処理部44)が、協働して上記データ送信部として働く。
 また、第1のノード装置1Aは、第2のノード装置1Bから第2の暗号化フレームを受信するデータ受信部として働く図3の受信部8(より詳しくは図5のフレーム分岐処理部21とデータフレーム受信バッファ24)を有する。ここで、「第2の暗号化フレーム」とは、第2の平文フレームが第1のアクセスキーにより暗号化されたフレームであり、「第2の平文フレーム」とは、第2のハッシュ値を含むデータを前記共通鍵で暗号化した第2の署名データが付与されたフレームである。
 また、第1のノード装置1Aは、データ復号化部として働く図3の復号部5(より詳しくは図5のデータフレーム復号部27)を有する。上記データ復号化部は、第2の暗号化フレームを第1のアクセスキーで復号して、第2の暗号化フレームから、第2の署名データが付与された第2の平文フレームを得る。
 上記実施形態の説明においては、図15の例を、ノード装置1Aからノード装置1Bへのデータフレームの送信の場合に即して説明したが、図15は、ノード装置1Bからノード装置1Aへのデータフレームの送信の場合にも当てはまる。この場合、ノード装置1Bから送信されてきた「第2の暗号化フレーム」に相当するのは、図15のアドホックヘッダD9とペイロードD26とトレイラD27からなるデータフレームである。
 そして、上記データ復号化部として働くノード装置1Aのデータフレーム復号部27は、「第1のアクセスキー」であるアクセスキーa1を用いて、第2の平文フレームを得る。ここで、「第2の平文フレーム」は、アドホックヘッダD9と、復号された平文FID・D28及び復号された平文ボディD29からなる平文ペイロードとを含む。また、「第2の平文フレーム」には、復号された暗号文ハッシュ値D30と復号された暗号文時刻D31からなる暗号化署名(上記の「第2の署名データ」に相当)が、トレイラとして付与されている。
 また、第1のノード装置1Aは、整合性確認部として働くコンポーネントを有する。上記実施形態では図5のデータフレーム復号部27と確認部29が協働して整合性確認部として働く。具体的には、整合性確認部の一部としてのデータフレーム復号部27が、生成された共通鍵を用いて第2の署名データを復号することにより第2のハッシュ値を取得する。そして、整合性確認部の一部としての確認部29が、第2の平文フレームから第3のハッシュ値(例えば図15の計算されたハッシュ値D32)を計算し、第2のハッシュ値と前記第3のハッシュ値との整合性が取れているか否かを確認する。
 なお、上記のデータ送信部は、さらに、第1の平文フレーム中に、第1の平文フレームを一意に識別するための第1の識別子と、第1の送信時刻を示す情報とを含ませてもよい。
 上記実施形態では、データフレーム作成部40もデータ送信部の一部として働いており、データフレーム作成部40が、「第1の識別子」としての図17の平文FID・D15と「第1の送信時刻を示す情報」としての平文時刻D18を、第1の平文フレーム中に含ませる。あるいは、データフレーム作成部40が、「第1の送信時刻を示す情報」として、図15のように暗号化時刻D20を、第1の平文フレーム中に含ませてもよい。平文時刻D18と暗号化時刻D20は、クリアテキストか暗号文かという違いはあるが、「第1の送信時刻を示す」という点では同じである。
 また、図5の受信データフレーム処理部30が、さらに上記の整合性確認部として付加的に働いてもよい。つまり、整合性確認部としての受信データフレーム処理部30は、第2の暗号化フレームから復号された第2の平文フレームに含まれる第2の識別子が、過去に受信したことのある第3の暗号化フレームから復号した第3の平文フレームに含まれる第3の識別子と等しい場合に、第2と第3の平文フレームのうち、復号により得られる情報がより新しい送信時刻を示す方を破棄してもよい。
 例えば、図17の例をノード装置1Bからノード装置1Aへの送信の場合に当てはめると、「第2の平文フレーム」は、アドホックヘッダD9と、平文ペイロードと、平文トレイラとしての復号された暗号文ハッシュ値D46とからなる。そして、平文ペイロードは、復号された平文FID・D43、復号された平文時刻D44及び復号された平文ボディD45からなる。また、「第2の識別子」は復号された平文FID・D43に相当する。
 そして、整合性確認部としての受信データフレーム処理部30は、次のように動作する。すなわち、受信データフレーム処理部30は、平文FID・D43が、過去に受信したことのある他のデータフレームのFIDと等しい場合、復号により得られる送信時刻(例えば、復号された平文時刻D44)が新しい方のデータフレームを破棄する。
 このように、データ送信部及び整合性確認部としての各部が、識別子(具体的にはFID)を使った処理を行うことで、ノード装置1Aは、不正なノード装置から送信されたフレームを検出することができる。
 また、ネットワーク内の複数のノード装置(例えばノード装置1Aと1Bを含む)のそれぞれの共通鍵生成部3は、上記のように、共通の時間である第2の時間ごとに共通鍵を生成する。したがって、複数のノード装置それぞれの時計(例えば図5の時計33)が、無視しても問題ない程度の誤差の範囲内で互いに同期していれば、複数のノード装置で共通鍵が生成されるタイミングも同期していることになる。
 しかしながら、複数のノード装置それぞれの時計の時刻のずれが時とともに拡大することもありうる。そこで、上記実施形態は、複数のノード装置それぞれの時計の時刻のずれを補正することで、ネットワーク内の複数のノード装置間で、共通鍵を生成するタイミングの同期をとっている。
 すなわち、第1のノード装置1Aは、協働して時刻同期フレーム送信部として働くコンポーネントを有する。時刻同期フレーム送信部は、時刻同期フレームとして、第1のノード装置1Aにおける第1の現在時刻と、第1のノード装置1Aにおいて時刻合わせを行った第1の同期時刻とを示すデータを含んだ第1の時刻同期フレームを生成して送信する。
 例えば、図19の例では、ステップS703以降における「第1の同期時刻」は12:00であり、ステップS706では「第1の現在時刻」として13:40を示す情報を含む時刻同期フレームP3が送信されている。
 なお、上記実施形態の時刻同期フレームは時刻同期鍵により暗号化されているが、時刻同期フレームが暗号化されない実施形態も可能である。したがって、上記実施形態では図5の時刻同期部9、時刻同期フレーム暗号化部38、時刻同期フレーム送信バッファ42及び送信処理部44が、協働して時刻同期フレーム送信部として働いているが、時刻同期フレーム暗号化部38が省略されてもよい。
 また、第1のノード装置1Aは、第2の時刻同期フレームを第2のノード装置1Bから受信する時刻同期フレーム受信部として働くコンポーネントを有する。ここで、第2の時刻同期フレームは、第2のノード装置1Bにおける第2の現在時刻(例えば図19の例では13:30)と、前記第2のノード装置において時刻合わせを行った第2の同期時刻(例えば図19の例では10:00)とを示すデータを含む。
 上記実施形態では図5のフレーム分岐処理部21及び時刻同期フレーム受信バッファ23が、協働して上記時刻同期フレーム受信部として働く。
 さらに、第1のノード装置1Aは、時刻更新部として働くコンポーネントを有する。時刻更新部は、第2の時刻同期フレームから得られる第2の同期時刻と、第1のノード装置1Aが記憶している第1の同期時刻とを比較する。そして、第2の同期時刻の方が新しければ、時刻更新部は、第2の現在時刻を第1のノード装置1Aにおける現在時刻として設定して、第1のノード装置1Aの時刻を更新する。
 具体的には、図5の時刻同期部9が時刻更新部として働く。また、上記実施形態では、時刻同期フレームが暗号化されているので、第2の時刻同期フレームから第2の同期時刻を得るため、時刻同期フレーム復号部26も時刻更新部の一部として働いている。
 そして、ノード装置1Aは、記憶部として、例えばDRAM15を有する。当該記憶部は、時刻更新部としての時刻同期部9が第1のノード装置1Aの時刻を更新することで時刻合わせを行った時刻として、第2の同期時刻を記憶する。また、図3及び図5の共通鍵生成部3は、時刻更新部としての時刻同期部9が更新した時刻(具体的には図5の時計33が示す時刻)に基づいて第2の時間を計時する。
 以上概観した上記実施形態によれば、第2のノード装置が正当なノード装置である場合には、第2のノード装置は、第1のノード装置と共通する共通鍵を保有している。よって、第1のノード装置で生成した第1のアクセスキーと、第2のノード装置で生成した第2のアクセスキーは、共通鍵を用いてセキュアに交換することができる。
 また、第1のノード装置は、復号して得られた第2のノード装置の第2のアクセスキーを用いてデータを暗号化して第2のノード装置に送信することが可能である。さらに、第1のノード装置は、第2のノード装置からは、第1のノード自身が生成した第1のアクセスキーを用いて暗号化されたデータを受信することも可能である。
 このように、上記実施形態によれば、各ノード装置が、暗号化のための動作を自律的に他のノード装置と協働して行う。したがって、非常に多くのノード装置を含むネットワークにおいても、暗号化鍵の交換のためのトラフィックが集中することはない。
 また、各ノード装置が、暗号化のための動作を自律的に行うためには、各ノード装置が時間に応じて生成しなおして変更する共通鍵の、変更タイミングの同期をとることが求められる。上記の実施形態によれば、簡易な構成で、かつ、ネットワークに負荷をかけずに、自律的に共通鍵を、同期をとって変更可能なノード装置が提供される。
 なお、上記の実施形態においては、ノード装置について主に説明したが、上記の方法をコンピュータに実行させる制御プログラムも、本発明の実施形態の一例に含まれる。当該制御プログラムは、磁気ディスク、光磁気ディスク、不揮発性の半導体メモリ、光ディスクなどの、コンピュータ読み取り可能な記憶媒体に格納されて提供され、コンピュータにロードされ、コンピュータにより実行されてもよい。
 当該制御プログラムを実行するコンピュータは、不図示のノード装置に内蔵又は接続され、上記不図示のノード装置が上記実施形態のノード装置1と同様に動作するように、当該制御プログラムにしたがって上記不図示のノード装置を制御する。例えば、上記実施形態を別の観点から見れば、ノード装置1の内蔵コンピュータであるMPU11は、フラッシュメモリ16に格納された制御プログラムにしたがってノード装置1を制御し、上記各処理をノード装置1に行わせている、とも言える。
 また、上記実施形態で例示したRC4は、採用可能な暗号化アルゴリズムの一例である。実施形態によっては、その他の暗号化アルゴリズムによる暗号化及び復号が行われてもよい。例えば、ストリーム暗号以外の暗号化アルゴリズムが使われてもよい。また、時刻同期鍵、共通鍵、アクセスキーそれぞれを使った暗号化及び復号が、異なる暗号化アルゴリズムによるものであってもよい。
 また、ハローフレーム、データフレーム、時刻同期フレームのフォーマットは、上記実施形態で例示したものに限らないことは無論である。例えば、各フレームは、上記実施形態では例示していないフィールドをさらに含んでいてもよい。逆に、フレームが固定長であれば、フレームサイズD8のフィールドは省略可能である。
 さらに、上記実施形態で例示した「10分」などの具体的な数値は、理解の助けとするために示したに過ぎず、実施形態によって具体的数値は様々に設定されてよい。

Claims (4)

  1.  第1のノード装置と第2のノード装置を含む複数のノード装置によって構成されるネットワークの中の、前記第1のノード装置であって、
     前記第1のノード装置に固有の暗号鍵である第1のアクセスキーを、第1の時間ごとに変更して生成するアクセスキー生成部と、
     前記ネットワーク内の前記複数のノード装置で共通の共通鍵を、前記複数のノード装置で共通の時間である第2の時間ごとに変更して生成する共通鍵生成部と、
     生成された前記第1のアクセスキーを、生成された前記共通鍵で暗号化して前記第2のノード装置に送信するアクセスキー通知部と、
     前記第2のノード装置に固有の暗号鍵である第2のアクセスキーを前記共通鍵で暗号化したデータであるアクセスキー通知データを含む、前記第2のノード装置から送信されてきたアクセスキー通知フレームを、受信するアクセスキー受信部と、
     前記アクセスキー通知データを、生成された前記共通鍵を用いて復号することにより、前記アクセスキー通知データから前記第2のアクセスキーを取得するアクセスキー復号化部と、
     第1の平文フレームに、該第1の平文フレームから計算される第1のハッシュ値を含むデータを前記共通鍵で暗号化した第1の署名データを付与し、前記第1の署名データの付与された前記第1の平文フレームを、復号して得た前記第2のアクセスキーで暗号化して、第1の暗号化フレームとして送信するデータ送信部と、
     第2のハッシュ値を含むデータを前記共通鍵で暗号化した第2の署名データが付与された、第2の平文フレームが、前記第1のアクセスキーにより暗号化された、第2の暗号化フレームを、前記第2のノード装置から受信するデータ受信部と、
     前記第2の暗号化フレームを前記第1のアクセスキーで復号して、前記第2の暗号化フレームから、前記第2の署名データが付与された前記第2の平文フレームを得るデータ復号化部と、
     生成された前記共通鍵を用いて前記第2の署名データを復号することにより前記第2のハッシュ値を取得し、前記第2の平文フレームから第3のハッシュ値を計算し、前記第2のハッシュ値と前記第3のハッシュ値との整合性が取れているか否かを確認する整合性確認部と
     を有することを特徴とするノード装置。
  2.  前記データ送信部は、前記第1の平文フレーム中に、前記第1の平文フレームを一意に識別するための第1の識別子と、第1の送信時刻を示す情報とを含ませ、
     前記整合性確認部はさらに、前記データ復号化部が前記第2の暗号化フレームから復号した前記第2の平文フレームに含まれる第2の識別子が、過去に受信したことのある第3の暗号化フレームから復号した第3の平文フレームに含まれる第3の識別子と等しい場合に、前記第2の平文フレームと前記第3の平文フレームのうち、復号により得られる情報がより新しい送信時刻を示す方を破棄する
     ことを特徴とする請求項1記載のノード装置。
  3.  時刻同期フレームとして、前記第1のノード装置における第1の現在時刻と、前記第1のノード装置において時刻合わせを行った第1の同期時刻とを示すデータを含んだ第1の時刻同期フレームを生成して送信する時刻同期フレーム送信部と、
     前記第2のノード装置における第2の現在時刻と、前記第2のノード装置において時刻合わせを行った第2の同期時刻とを示すデータを含む第2の時刻同期フレームを、前記第2のノード装置から受信する時刻同期フレーム受信部と、
     前記第2の時刻同期フレームから得られる第2の同期時刻と、前記第1のノード装置が記憶している前記第1の同期時刻とを比較し、前記第2の同期時刻の方が新しければ、前記第2の現在時刻を前記第1のノード装置における現在時刻として設定して、前記第1のノード装置の時刻を更新する時刻更新部と、
     前記時刻更新部が前記第1のノード装置の時刻を更新することで時刻合わせを行った時刻として、前記第2の同期時刻を記憶する記憶部と
     を有し、
     前記共通鍵生成部は、前記時刻更新部が更新した時刻に基づいて前記第2の時間を計時する
     ことを特徴とする請求項2記載のノード装置。
  4.  第1のノード装置と第2のノード装置を含む複数のノード装置によって構成されるネットワークの中の、前記第1のノード装置を制御するコンピュータに、
     前記第1のノード装置に固有の暗号鍵である第1のアクセスキーを、第1の時間ごとに変更して生成し、
     前記ネットワーク内の前記複数のノード装置で共通の共通鍵を、前記複数のノード装置で共通の時間である第2の時間ごとに変更して生成し、
     生成された前記第1のアクセスキーを、生成された前記共通鍵で暗号化して前記第2のノード装置に送信し、
     前記第2のノード装置に固有の暗号鍵である第2のアクセスキーを前記共通鍵で暗号化したデータであるアクセスキー通知データを含む、前記第2のノード装置から送信されてきたアクセスキー通知フレームを、受信し、
     前記アクセスキー通知データを、生成された前記共通鍵を用いて復号することにより、前記アクセスキー通知データから前記第2のアクセスキーを取得し、
     第1の平文フレームに、該第1の平文フレームから計算される第1のハッシュ値を含むデータを前記共通鍵で暗号化した第1の署名データを付与し、前記第1の署名データの付与された前記第1の平文フレームを、復号して得た前記第2のアクセスキーで暗号化して、第1の暗号化フレームとして送信し、
     第2のハッシュ値を含むデータを前記共通鍵で暗号化した第2の署名データが付与された、第2の平文フレームが、前記第1のアクセスキーにより暗号化された、第2の暗号化フレームを、前記第2のノード装置から受信し、
     前記第2の暗号化フレームを前記第1のアクセスキーで復号して、前記第2の暗号化フレームから、前記第2の署名データが付与された前記第2の平文フレームを得、
     生成された前記共通鍵を用いて前記第2の署名データを復号することにより前記第2のハッシュ値を取得し、前記第2の平文フレームから第3のハッシュ値を計算し、前記第2のハッシュ値と前記第3のハッシュ値とのと整合性が取れているか否かを確認する
     処理を実行させることを特徴とするプログラム。
PCT/JP2009/001903 2008-04-24 2009-04-24 ノード装置及びプログラム WO2009130917A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN200980113336.6A CN102007726B (zh) 2008-04-24 2009-04-24 节点装置以及程序
EP09733693.7A EP2273717B1 (en) 2008-04-24 2009-04-24 Node device and program
JP2010509092A JP4883219B2 (ja) 2008-04-24 2009-04-24 ノード装置及びプログラム
US12/908,508 US8417936B2 (en) 2008-04-24 2010-10-20 Node apparatus, method and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008113530 2008-04-24
JP2008-113530 2008-04-24

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/908,508 Continuation US8417936B2 (en) 2008-04-24 2010-10-20 Node apparatus, method and storage medium

Publications (1)

Publication Number Publication Date
WO2009130917A1 true WO2009130917A1 (ja) 2009-10-29

Family

ID=41216658

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/001903 WO2009130917A1 (ja) 2008-04-24 2009-04-24 ノード装置及びプログラム

Country Status (6)

Country Link
US (1) US8417936B2 (ja)
EP (1) EP2273717B1 (ja)
JP (1) JP4883219B2 (ja)
KR (1) KR101174215B1 (ja)
CN (1) CN102007726B (ja)
WO (1) WO2009130917A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011087013A (ja) * 2009-10-13 2011-04-28 Mitsubishi Electric Corp 通信システムおよび鍵更新方法
JP2011160098A (ja) * 2010-01-29 2011-08-18 Oki Electric Industry Co Ltd 通信システム及び通信装置
JP5488715B2 (ja) * 2010-11-30 2014-05-14 富士通株式会社 鍵更新方法、ノード、サーバ、およびネットワークシステム
JP5488716B2 (ja) * 2010-11-30 2014-05-14 富士通株式会社 鍵更新方法、ノード、ゲートウェイ、サーバ、およびネットワークシステム
JP2015033082A (ja) * 2013-08-06 2015-02-16 シャープ株式会社 暗号処理装置および暗号処理システム
JP2015099984A (ja) * 2013-11-18 2015-05-28 富士通株式会社 ノード装置、通信システム、通信方法および通信プログラム
JP2016134671A (ja) * 2015-01-16 2016-07-25 株式会社東芝 データ生成装置、通信装置、通信システム、移動体、データ生成方法およびプログラム
JP2017507549A (ja) * 2013-12-30 2017-03-16 バスコ データ セキュリティー インターナショナル ゲゼルシャフト ミット ベシュレンクテル ハフツング ブルートゥースインタフェースを備える認証装置

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819435B2 (en) 2011-09-12 2014-08-26 Qualcomm Incorporated Generating protocol-specific keys for a mixed communication network
US9326238B2 (en) * 2011-09-26 2016-04-26 Broadcom Corporation Smart meter media access control (MAC) for single user, multiple user, multiple access, and/or MIMO wireless communications
CN103988189B (zh) * 2011-12-08 2016-10-12 国际商业机器公司 检测在信息设备之间的数据传输的数据丢失的方法
WO2014016864A1 (ja) * 2012-07-23 2014-01-30 富士通株式会社 ノードおよび通信方法
US8995658B2 (en) * 2013-02-13 2015-03-31 Honeywell International Inc. Physics-based key generation
JP6054324B2 (ja) * 2014-03-06 2016-12-27 株式会社東芝 Mmt送信システム、暗号化処理装置
US9405920B1 (en) 2014-05-21 2016-08-02 Amazon Technologies, Inc. Data integrity verification
US9497025B2 (en) * 2014-09-20 2016-11-15 Innovasic Inc. Ethernet interface module
EP3116187B1 (en) * 2015-07-09 2019-12-04 Nxp B.V. Methods for facilitating secure communication
US10263777B2 (en) 2015-09-18 2019-04-16 Olympus Sky Technologies, S.A. Systems and methods for secure communications using organically derived synchronized encryption processes
FR3047384B1 (fr) * 2016-01-28 2018-11-23 Sagemcom Broadband Sas Procede de synchronisation d'une passerelle dans un reseau lora
US10452858B2 (en) * 2016-03-31 2019-10-22 International Business Machines Corporation Encryption key management for file system
US10382208B2 (en) 2016-04-29 2019-08-13 Olympus Sky Technologies, S.A. Secure communications using organically derived synchronized processes
US10382196B2 (en) 2016-04-29 2019-08-13 Olympus Sky Technologies, S.A. System and method for secure communications based on locally stored values
DE102017204184A1 (de) * 2017-03-14 2018-09-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Authentisierte Bestätigungs- und Aktivierungsnachricht
WO2019046823A1 (en) * 2017-08-31 2019-03-07 Chaos Prime, Inc. HIGH PSK SIGNALING TECHNIQUES (HOPS) FOR LOW POWER SPREAD SPECTRUM COMMUNICATIONS
WO2019067002A1 (en) * 2017-09-26 2019-04-04 Olympus Sky Technologies, S.A. SECURE COMMUNICATIONS USING SYNCHRONIZED ORGANIC PROCESSES
US10860743B2 (en) * 2017-10-26 2020-12-08 VYRTY Corporation Encryption scheme for making secure patient data available to authorized parties
US11205194B2 (en) 2019-04-30 2021-12-21 Advanced New Technologies Co., Ltd. Reliable user service system and method
CN110460580B (zh) * 2019-07-11 2022-02-22 中国银联股份有限公司 图像采集装置、服务器及加、解密方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09321748A (ja) 1996-05-27 1997-12-12 Trans Kosumosu Kk 共有暗号鍵による通信システム、同システム用サーバ装置、同システム用クライアント装置、及び通信システムにおける暗号鍵の共有方法
JP2002111679A (ja) * 2000-09-28 2002-04-12 Hitachi Ltd 閉域グループ通信方法および通信端末装置
JP2004056762A (ja) * 2002-05-29 2004-02-19 Ntt Electornics Corp 無線通信方法、無線通信装置、通信制御プログラム、通信制御装置、鍵管理プログラム、無線lanシステム、および記録媒体
JP2004343717A (ja) * 2003-05-16 2004-12-02 Samsung Electronics Co Ltd モバイルアドホックネットワークにおけるノード間の暗号化キー割り当て方法及びこれを用いたネットワーク装置
JP2005278044A (ja) * 2004-03-26 2005-10-06 Hitachi Ltd アドホックネットワークにおける共通鍵共有方法、無線通信端末装置
JP2006514789A (ja) * 2002-05-10 2006-05-11 ハリス コーポレイション 安全な移動体アドホック・ネットワーク及び関連の方法
JP2007104310A (ja) * 2005-10-04 2007-04-19 Hitachi Ltd ネットワーク装置、ネットワークシステム及び鍵更新方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004194295A (ja) 2002-10-17 2004-07-08 Matsushita Electric Ind Co Ltd パケット送受信装置
US7228422B2 (en) 2002-10-17 2007-06-05 Matsushita Electric Industrial Co., Ltd. Packet transmission/reception device
JP2006121545A (ja) 2004-10-25 2006-05-11 Sony Corp 無線通信システム、無線通信装置及び無線通信方法、並びにコンピュータ・プログラム
US8130959B2 (en) 2006-09-07 2012-03-06 International Business Machines Corporation Rekeying encryption for removable storage media
CN101110831B (zh) * 2007-08-24 2010-12-01 中兴通讯股份有限公司 一种数字密钥保护方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09321748A (ja) 1996-05-27 1997-12-12 Trans Kosumosu Kk 共有暗号鍵による通信システム、同システム用サーバ装置、同システム用クライアント装置、及び通信システムにおける暗号鍵の共有方法
JP2002111679A (ja) * 2000-09-28 2002-04-12 Hitachi Ltd 閉域グループ通信方法および通信端末装置
JP2006514789A (ja) * 2002-05-10 2006-05-11 ハリス コーポレイション 安全な移動体アドホック・ネットワーク及び関連の方法
JP2004056762A (ja) * 2002-05-29 2004-02-19 Ntt Electornics Corp 無線通信方法、無線通信装置、通信制御プログラム、通信制御装置、鍵管理プログラム、無線lanシステム、および記録媒体
JP2004343717A (ja) * 2003-05-16 2004-12-02 Samsung Electronics Co Ltd モバイルアドホックネットワークにおけるノード間の暗号化キー割り当て方法及びこれを用いたネットワーク装置
JP2005278044A (ja) * 2004-03-26 2005-10-06 Hitachi Ltd アドホックネットワークにおける共通鍵共有方法、無線通信端末装置
JP2007104310A (ja) * 2005-10-04 2007-04-19 Hitachi Ltd ネットワーク装置、ネットワークシステム及び鍵更新方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2273717A4 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011087013A (ja) * 2009-10-13 2011-04-28 Mitsubishi Electric Corp 通信システムおよび鍵更新方法
JP2011160098A (ja) * 2010-01-29 2011-08-18 Oki Electric Industry Co Ltd 通信システム及び通信装置
JP5488715B2 (ja) * 2010-11-30 2014-05-14 富士通株式会社 鍵更新方法、ノード、サーバ、およびネットワークシステム
JP5488716B2 (ja) * 2010-11-30 2014-05-14 富士通株式会社 鍵更新方法、ノード、ゲートウェイ、サーバ、およびネットワークシステム
JPWO2012073340A1 (ja) * 2010-11-30 2014-05-19 富士通株式会社 鍵更新方法、ノード、ゲートウェイ、サーバ、およびネットワークシステム
JPWO2012073339A1 (ja) * 2010-11-30 2014-05-19 富士通株式会社 鍵更新方法、ノード、ゲートウェイ、サーバ、およびネットワークシステム
JP2015033082A (ja) * 2013-08-06 2015-02-16 シャープ株式会社 暗号処理装置および暗号処理システム
JP2015099984A (ja) * 2013-11-18 2015-05-28 富士通株式会社 ノード装置、通信システム、通信方法および通信プログラム
JP2017507549A (ja) * 2013-12-30 2017-03-16 バスコ データ セキュリティー インターナショナル ゲゼルシャフト ミット ベシュレンクテル ハフツング ブルートゥースインタフェースを備える認証装置
US11026085B2 (en) 2013-12-30 2021-06-01 Onespan North America Inc. Authentication apparatus with a bluetooth interface
JP2016134671A (ja) * 2015-01-16 2016-07-25 株式会社東芝 データ生成装置、通信装置、通信システム、移動体、データ生成方法およびプログラム

Also Published As

Publication number Publication date
EP2273717B1 (en) 2016-05-25
EP2273717A1 (en) 2011-01-12
KR101174215B1 (ko) 2012-08-16
US8417936B2 (en) 2013-04-09
JP4883219B2 (ja) 2012-02-22
US20110093717A1 (en) 2011-04-21
CN102007726B (zh) 2014-05-14
JPWO2009130917A1 (ja) 2011-08-11
EP2273717A4 (en) 2015-07-22
KR20100126570A (ko) 2010-12-01
CN102007726A (zh) 2011-04-06

Similar Documents

Publication Publication Date Title
JP4883219B2 (ja) ノード装置及びプログラム
JP5454673B2 (ja) 通信装置、プログラムおよび方法
JP6478749B2 (ja) 量子鍵配送装置、量子鍵配送システムおよび量子鍵配送方法
JP5077186B2 (ja) 通信装置、通信方法及び通信プログラム
WO2016098303A1 (ja) 署名検証装置、署名生成装置、署名処理システム、署名検証方法及び署名生成方法
US20100246809A1 (en) Information Processing System, Information Processing Method, and Information Processing Program
US10897710B2 (en) Disjoint security in wireless networks with multiple managers or access points
JP2004186814A (ja) 共通鍵暗号化通信システム
US20220141004A1 (en) Efficient Internet-Of-Things (IoT) Data Encryption/Decryption
GB2555183A (en) Method for secure data management in a computer network
WO2014147934A1 (ja) 通信装置、通信システム及び通信方法
WO2015178597A1 (ko) Puf를 이용한 비밀키 업데이트 시스템 및 방법
JP2006197065A (ja) 端末装置および認証装置
US20120254611A1 (en) Communication apparatus, communication system, and communication method
JP5448700B2 (ja) 通信システム、収集装置および鍵更新方法
JP5491713B2 (ja) 暗号化装置、暗号化プログラム及び方法
JP4199779B2 (ja) 秘密鍵生成装置および秘密鍵生成方法
JP4631423B2 (ja) メッセージの認証方法と該認証方法を用いたメッセージ認証装置およびメッセージ認証システム
JP2010141619A (ja) 通信装置、サーバ装置、通信プログラム、及びデータ
WO2010076899A1 (ja) 放送型暗号システム、送信者装置、ユーザ装置、カプセル化/脱カプセル化方法
JP4153375B2 (ja) 共通鍵同期方法および共通鍵同期装置
KR100794792B1 (ko) 브로드캐스트 프레임 보호 방법
JP4271165B2 (ja) 暗号通信システム
JP2020141414A (ja) Ecu、ネットワーク装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980113336.6

Country of ref document: CN

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

Ref document number: 09733693

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010509092

Country of ref document: JP

ENP Entry into the national phase

Ref document number: 20107024000

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2009733693

Country of ref document: EP