WO2018066509A1 - 通信装置、通信方法、通信システム及び記録媒体 - Google Patents

通信装置、通信方法、通信システム及び記録媒体 Download PDF

Info

Publication number
WO2018066509A1
WO2018066509A1 PCT/JP2017/035815 JP2017035815W WO2018066509A1 WO 2018066509 A1 WO2018066509 A1 WO 2018066509A1 JP 2017035815 W JP2017035815 W JP 2017035815W WO 2018066509 A1 WO2018066509 A1 WO 2018066509A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
communication
clock
communication device
selection
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2017/035815
Other languages
English (en)
French (fr)
Inventor
真和 小野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to US16/336,347 priority Critical patent/US11082223B2/en
Priority to JP2018543890A priority patent/JP6743898B2/ja
Priority to AU2017340733A priority patent/AU2017340733B2/en
Priority to CN201780061010.8A priority patent/CN109792385B/zh
Priority to EP17858347.2A priority patent/EP3522444B1/en
Publication of WO2018066509A1 publication Critical patent/WO2018066509A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

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/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation

Definitions

  • This disclosure relates to a technique for performing communication using encrypted communication data.
  • each communication device executes communication data encryption processing and decryption processing using secret information (for example, a key).
  • secret information for example, a key
  • data encryption processing and decryption processing are collectively referred to as “encryption processing”.
  • the unencrypted data is described as “plaintext data”
  • the encrypted data of the plaintext data is described as “ciphertext data”.
  • a key used for encryption and a key used for decryption are collectively referred to as “encryption key”.
  • the key used for encryption and the key used for decryption may be the same key data (for example, a common key encryption method), or may be a pair of different key data (for example, a public key encryption method).
  • the encryption key If the encryption key is leaked, the ciphertext encrypted using the encryption key is compromised. Further, when the number of ciphertexts encrypted using the same encryption key increases, there is a possibility of giving an attacker a clue to an attack on cryptographic processing. For this reason, in encryption communication, the encryption key may be changed as appropriate.
  • Patent Document 1 discloses a method in which a terminal and a host have a key data table having the same contents in advance, and clock data synchronized between the terminal and the host is used to select an encryption key from the key data table. Is disclosed.
  • an encryption key used for encryption processing is distributed to each communication device.
  • the distribution of the encryption key may not be easy.
  • the encryption key may be distributed to each communication device offline (that is, not via a communication path). In this case, it is not always easy to manually distribute the encryption key to each communication device depending on the location of the communication device and the number of communication devices. If distribution of the encryption key is not easy, the encryption key may not be changed appropriately. In other words, each communication device may not be able to use an appropriate encryption key from the viewpoint of security in encrypted communication.
  • Patent Document 1 describes a method of changing an encryption key by selecting an encryption key from a key data table prepared in advance, instead of distributing the encryption key.
  • variations of encryption keys are limited to encryption keys registered in advance in the key data table. For this reason, it is considered that the improvement of security by changing the encryption key is limited.
  • a method for appropriately changing the key data table itself is not considered.
  • one of the main objectives of the present disclosure is to provide a technology that enables a communication device to execute encrypted communication using an appropriate encryption key.
  • a communication device includes a device information management unit capable of storing device information, which is information commonly stored in one or more communication devices, and a periodic clock.
  • a clock generation unit that generates clock information representing timing using a signal, and at least a part of the one or more pieces of the device information is selected according to the clock information, and the at least a part of the selected device information is
  • a device information selection unit that generates selection information that is different for each clock information, and a key generation unit that generates an encryption key using at least the clock information and the selection information generated by the device information selection unit
  • an encryption processing unit that executes at least one of an encryption process and a decryption process using the generated encryption key.
  • the communication method generates clock information representing timing using a periodic clock signal, and is stored in common with one or more communication devices according to the clock information.
  • Select at least a part of the device information that is information generate selection information that is different for each of the clock information from at least a part of the selected device information, and the clock information and the device information selection unit
  • An encryption key is generated using at least the generated selection information, and at least one of an encryption process and a decryption process is executed using the generated encryption key.
  • the object can be achieved by a communication apparatus having the above configuration, a computer program that implements the communication method by a computer, a computer-readable storage medium in which the computer program is stored, and the like.
  • the computer program includes a process of generating clock information representing timing using a periodic clock signal in a computer configuring the communication device, and one or more in accordance with the clock information. Selecting at least a part of the device information that is information commonly stored in the communication devices, and generating selection information that is different information for each clock information from at least a part of the selected device information A process of generating an encryption key using at least the clock information and the generated selection information; The generated encryption key is used to execute a process for executing at least one of an encryption process and a decryption process for communication data.
  • each communication device can execute encrypted communication using an appropriate encryption key.
  • FIG. 1A is a block diagram illustrating a functional configuration of a communication device according to the first embodiment of the present disclosure.
  • FIG. 1B is a block diagram illustrating another functional configuration of the communication device according to the first embodiment of the present disclosure.
  • FIG. 2A is an explanatory diagram illustrating an example of a hardware configuration capable of realizing the communication device according to the first embodiment of the present disclosure.
  • FIG. 2B is an explanatory diagram illustrating another example of a hardware configuration capable of realizing the communication device according to the first embodiment of the present disclosure.
  • FIG. 2C is an explanatory diagram illustrating yet another example of the hardware configuration capable of realizing the communication device according to the first embodiment of the present disclosure.
  • FIG. 1A is a block diagram illustrating a functional configuration of a communication device according to the first embodiment of the present disclosure.
  • FIG. 1B is a block diagram illustrating another functional configuration of the communication device according to the first embodiment of the present disclosure.
  • FIG. 2A is an explanatory diagram illustrating an example of
  • FIG. 3 is a flowchart (part 1) for explaining the operation (encryption processing) of the communication device according to the first embodiment of the present disclosure.
  • FIG. 4 is a flowchart (part 2) illustrating the operation (encryption key generation process) of the communication device according to the first embodiment of the present disclosure.
  • FIG. 5 is a flowchart (part 3) illustrating the operation (encryption key update processing) of the communication device according to the first embodiment of the present disclosure.
  • FIG. 6 is a sequence diagram (part 1) illustrating the operation (clock information adjustment processing) of the communication device according to the first embodiment of the present disclosure.
  • FIG. 7 is an explanatory diagram schematically illustrating the operation (clock information adjustment processing) of the communication device according to the first embodiment of the present disclosure.
  • FIG. 8 is a sequence diagram (part 2) illustrating the operation (clock information adjustment processing) of the communication device according to the first embodiment of the present disclosure.
  • FIG. 9 is an explanatory diagram schematically illustrating a specific example regarding adjustment information of clock information held by the communication device according to the first embodiment of the present disclosure.
  • FIG. 10 is an explanatory diagram schematically illustrating a specific example relating to encryption key adjustment by the communication device according to the first embodiment of the present disclosure.
  • FIG. 11A is an explanatory diagram (part 1) schematically illustrating a specific example of device information delivery by the communication device according to the first embodiment of the present disclosure.
  • FIG. 11B is an explanatory diagram (part 2) schematically illustrating a specific example related to delivery of device information by the communication device according to the first embodiment of the present disclosure.
  • FIG. 12 is an explanatory diagram illustrating a configuration example of a device information selection unit included in the communication device according to the first embodiment of the present disclosure.
  • FIG. 13 is a flowchart illustrating an operation (selection information and encryption key generation process) of the communication device according to the first embodiment of the present disclosure.
  • FIG. 14A is a block diagram illustrating a functional configuration of a communication device according to the second embodiment of the present disclosure.
  • FIG. 14B is a block diagram illustrating another functional configuration of the communication device according to the second embodiment of the present disclosure.
  • each communication device capable of executing encrypted communication has an encryption key used for encryption processing related to communication data.
  • a certain communication device performs encryption processing on communication data using an encryption key common to other communication devices.
  • a certain communication apparatus encrypts communication data using a public key disclosed by another communication apparatus.
  • the communication device that has received the encrypted communication data decrypts the communication data using the secret key.
  • an encryption key is distributed to each communication device.
  • the encryption key When the encryption key is changed, the encryption key may be distributed to each communication device.
  • a general method for distributing an encryption key online is widely used (that is, via a communication line).
  • the performer of the encryption communication may not be aware of the leakage of the encryption key and the decryption of the communication data by the attacker.
  • a method of distributing the encryption key offline (that is, not via a communication line) can be considered.
  • a person who performs encryption communication and a user of the communication device (hereinafter simply referred to as “user”) distribute the encryption key to each communication device manually. Can do.
  • the number of communication devices is large, or when communication devices are spaced apart, it may not always be easy to manually distribute keys to each communication device. If distribution of the encryption key is not easy, the encryption key may not be changed at an appropriate timing. This may cause problems related to the security of cryptographic communication.
  • the communication device in each embodiment includes, for example, information held by each communication device and information that changes with the passage of time (for example, time, elapsed time, counter value that increases or decreases according to time or elapsed time, and the like).
  • To generate an encryption key For example, when information used for generating an encryption key is common in each communication device, each communication device can generate a common encryption key. Thereby, each communication apparatus can use a common encryption key, for example, without explicitly distributing an encryption key mutually.
  • each embodiment will be described in detail.
  • the configuration of the communication device described in each of the following embodiments is an exemplification, and the technical scope of the present disclosure is not limited thereto.
  • the division (for example, division by a functional unit) of the component which comprises the communication apparatus in each following embodiment is an example which can implement
  • the implementation of the communication device is not limited to the following examples, and various configurations are assumed. That is, the constituent elements constituting the communication device in each of the following embodiments may be further divided, or one or more constituent elements may be integrated.
  • the communication device described below may be configured using a single device (physical or virtual device) or may be realized using a plurality of separated devices (physical or virtual devices). Good. A communication device described below or a hardware configuration capable of realizing the components will be described later.
  • FIG. 1A is a block diagram illustrating a functional configuration of the communication apparatus 100 according to the present embodiment.
  • the communication device 100 is a device that can execute encrypted communication.
  • One or more other communication devices 100 are communicably connected to one communication device 100.
  • a communication path connecting each communication device 100 may be realized by, for example, wireless communication, wired communication, or a combination thereof.
  • the communication protocol used for the communication is not particularly limited, and may be appropriately selected.
  • the communication device 100 includes a device information management unit 101, a clock generation unit 102, a device information selection unit 103, a key generation unit 104, and an encryption processing unit 105.
  • the communication device 100 may include a communication unit 106 and a data transfer unit 107. These components constituting the communication device 100 may be connected so as to be able to transmit data and commands (commands). Hereinafter, these components constituting the communication device 100 will be described.
  • the device information management unit 101 stores (holds) data (hereinafter referred to as “device information”) used to generate an encryption key in encrypted communication.
  • the device information management unit 101 may hold information unique to the communication device 100 (for example, information on a device included in the communication device 100) as device information. Further, the device information management unit 101 may hold data (for example, various setting information) given from the outside to the communication device 100 as device information.
  • the following information can be used as specific device information. That is, as the device information, a CPUID that is an ID (identifier: Identifier) that can identify a CPU (Central Processing Unit) included in the communication device may be used. As the device information, for example, a MAC (Media Access Control) address assigned to a communication interface included in the communication device may be used. As the device information, for example, a serial number, a model number, or the like of the communication device 100 may be used. The device information is not limited to the above, and other appropriate information may be selected.
  • the device information management unit 101 may hold certain common data included in all the communication devices 100 in common.
  • the specific common data may be appropriately set in each scene such as manufacturing, deployment, operation, and maintenance of the communication device 100, for example.
  • Such specific common data may be, for example, a key (pre-shared key) held in common by each communication device 100. Note that it is not essential for the communication device 100 to hold the pre-shared key. That is, the communication device 100 may or may not hold the pre-shared key as necessary.
  • device information having the same content may be given in advance to a certain communication device 100 and another communication device 100.
  • a certain communication device 100 and another communication device 100 may hold device information of the same content by transmitting and receiving data to and from each other, for example.
  • One communication device 100 and another communication device 100 may generate device information having the same content by executing a predetermined calculation using data held by each communication device 100 and the other communication device 100.
  • the clock generator 102 is configured to generate clock information, which is information representing timing, using a periodic clock signal.
  • the clock generation unit 102 can provide the generated clock information to other components of the communication device 100.
  • the clock generation unit 102 generates a clock signal using, for example, an appropriate device (such as an oscillation device) that can generate a clock signal that satisfies a predetermined frequency accuracy.
  • the clock generation unit 102 may generate a clock signal using an atomic clock including a rubidium atomic oscillator, a cesium atomic oscillator, or the like, for example.
  • the clock generator 102 can generate a clock signal with extremely high accuracy (for example, a frequency accuracy of about “ ⁇ 5 ⁇ 10E-11”).
  • the clock generator 102 may generate a clock signal using, for example, a general crystal oscillator.
  • the clock generation unit 102 may maintain the accuracy of the clock signal by appropriately adjusting the clock signal.
  • the clock generation unit 102 may adjust the clock signal so that the rising timing or falling timing of the clock signal matches a specific timing.
  • the specific timing for adjusting the clock signal may be, for example, a regular timing or a timing representing a specific time.
  • the clock generation unit 102 may adjust the clock signal using time information given from the outside of the communication device 100, for example.
  • the method by which the clock generation unit 102 acquires time information is not particularly limited, and an appropriate method may be adopted.
  • the clock generation unit 102 may acquire a time method from, for example, a GPS (Global Positioning System) signal, a standard radio signal (JJY), or the like.
  • the clock generation unit 102 may acquire time information from an NTP (Network Time Protocol) server via the communication unit 106 (described later), for example. Since accurate time information generated using an atomic clock can be obtained from GPS, standard radio waves, and NTP, the clock generator 102 can adjust the clock signal using accurate time information.
  • NTP Network Time Protocol
  • the clock information generated by the clock generator 102 may be information representing the periodic clock signal itself, for example.
  • the clock information may be information indicating a counter value obtained by counting clock signals from a certain timing.
  • the clock generation unit 102 may generate clock information including information representing time. In this case, the clock generation unit 102 can generate clock information including time at a certain timing by using time information acquired from the outside and the generated clock signal. Further, the clock generation unit 102 may generate clock information including information indicating an elapsed time from a certain timing.
  • the clock generation unit 102 may be configured to execute a process of adjusting a difference in clock information with another communication device 100. Processing for adjusting the difference in clock information will be described later.
  • the device information selection unit 103 selects at least a part of the device information held in the device information management unit 101 according to the clock information provided from the clock generation unit 102, and uses the selected information according to the clock. Selection information which is different information. That is, the device information selection unit 103 generates different information for each clock information by using at least a part of the device information held in the device information management unit 101.
  • a method for selecting at least a part of the device information held in the device information management unit 101 may be referred to as a “selection algorithm”.
  • the specific method for generating the selection information is not particularly limited.
  • the device information selection unit 103 may generate different information according to the clock information, for example, by executing predetermined arithmetic processing with the device information and the clock information as inputs.
  • the device information selection unit 103 converts the clock information provided from the clock generation unit 102 into a representative value (for example, an upper limit value, a lower limit value, a median value, etc.) for each specific range related to the clock information. May be.
  • the device information selection unit 103 may convert the time represented by the clock information into a representative value within a certain time range.
  • a case where the time range is set to “10 seconds” is assumed.
  • the device information selection unit 103 may convert a time from 0 seconds to less than 10 seconds into “0 seconds” which is a representative value (lower limit value).
  • the device information selection unit 103 may convert, for example, a time of 10 seconds or more and less than 20 seconds into “10 seconds” which is a representative value (lower limit value).
  • the time range may be a shorter time range (for example, milliseconds) or a longer time range (for example, minutes, time units, etc.).
  • the device information selection unit 103 may convert the counter value represented by the clock information into a certain range of representative values. For example, assume that “100” is set as the range of the counter value. In this case, for example, the device information selection unit 103 may convert a counter value of 0 or more and less than 100 to “0” that is a representative value (lower limit value). Similarly, for example, the device information selection unit 103 may convert a counter value of 100 or more and less than 200 to “100” which is a representative value (lower limit value). The same applies to a counter value of 200 or more.
  • the range of the counter value may be a smaller range or a larger range.
  • the device information selection unit 103 can absorb the influence of fluctuation by using the representative value as clock information even when the clock information fluctuates within a predetermined range.
  • the device information management unit 101 transmits “device information # 1”, “device information # 2”, “device information # 3”..., “Device information #i” “i” (i Is a positive integer).
  • the device information selection unit 103 may select one or more pieces of device information from i pieces of device information, for example, according to clock information. For example, the device information selection unit 103 may treat the clock information as a numerical value, and calculate a remainder (hereinafter referred to as “mod i”) of the numerical value “i”. Then, the device information selection unit 103 may select “mod i” -th device information out of i pieces of device information.
  • the device information selection unit 103 divides, for example, data representing the device information into one or more parts, and depending on the clock information, the one or more parts are divided. You may choose.
  • the device information selection unit 103 selects one or more device information from the device information # 1 to device information #i, and sets data representing the device information to n (n is a natural number). Divide into pieces. For example, the device information selection unit 103 may divide the data into n parts according to the size of the data representing the device information. The method for dividing the data representing the device information is not limited to the above, and an appropriate method may be selected as appropriate. The device information selection unit 103 may select one or more portions from the data representing the respective device information and combine them.
  • the device information selection unit 103 selects, for example, one or more pieces of device information from i pieces of device information according to clock information, and randomly arranges the data. It may be generated.
  • the device information selection unit 103 may extract a part of the data according to the clock information, for example, from data obtained by arranging and combining i pieces of device information. Good. For example, it is assumed that the size of data in which i pieces of device information are arranged is “N” bits.
  • the device information selection unit 103 may randomly select “n” bit data from “N” bit data. In this case, for example, the device information selection unit 103 generates “n” random numbers from 1 to “N” using clock information as a seed. When the value of a certain random number is “j” (1 ⁇ j ⁇ N), the device information selection unit 103 extracts “j” bit data from “N” bit data. By executing the above process for “n” random numbers, the device information selection unit 103 can extract at least “n” bits of data.
  • the method for selecting at least a part of the device information is not limited to the above example.
  • the device information selection unit 103 may appropriately combine the above methods as a method for selecting at least part of the device information, or may appropriately adopt a method different from the above. By the processing as described above, the device information selection unit 103 can select at least a part of the device information according to the clock information.
  • the device information selection unit 103 may provide the selected one or more pieces of device information (or a part thereof) as selection information as they are. When there are sufficiently many variations of the device information held by the device information management unit 101, the device information selection unit 103 can thereby provide different selection information according to the clock information.
  • the device information selection unit 103 may provide a result of executing a predetermined calculation process using the selected device information (or part thereof) and clock information as selection information. For example, the device information selection unit 103 calculates a hash value of data including the selected device information and clock information (for example, data obtained by combining the selected device information and clock information), and provides the hash value as selection information. May be.
  • the device information selection unit 103 may use a cryptographically secure hash function (for example, SHA (Secure Hash Algorithm) -2) as a hash function.
  • SHA Secure Hash Algorithm
  • the key generation unit 104 generates an encryption key using the clock information provided from the clock generation unit 102 and the selection information generated by the device information selection unit 103.
  • the key generation unit 104 may generate a random number using, for example, a known pseudorandom number generator that is cryptographically secure using the selection information and the clock information as a seed, and provide the random number as an encryption key.
  • the key generation unit 104 may provide, as an encryption key, a result of encrypting clock information using a known cryptographic algorithm that is cryptographically safe using the selection information as a key, for example.
  • the key generation unit 104 may provide the selection information calculated using an appropriate hash function and the hash value of the clock information as an encryption key. Thereby, the key generation unit 104 can generate different encryption keys according to the selection information and the clock information.
  • the key generation unit 104 may convert the clock information provided from the clock generation unit 102 into a representative value for each predetermined range related to the clock information. Therefore, even if the clock information fluctuates within a predetermined range, the key generation unit 104 can absorb the influence due to the fluctuation by using the representative value as the clock information.
  • the key generation unit 104 is configured to change (update) the encryption key at an appropriate timing. When the key generation unit 104 changes (updates) the encryption key, it is possible to appropriately maintain the safety of encryption communication.
  • the key generation unit 104 may periodically generate an encryption key and provide it to the encryption processing unit 105 (described later). For example, the key generation unit 104 may generate an encryption key at a specific timing and provide it to the encryption processing unit 105. For example, the key generation unit 104 may generate an encryption key in response to a request from the encryption processing unit 105 and provide the encryption key to the encryption processing unit 105.
  • the key generation unit 104 may hold a setting value indicating the timing for changing the encryption key. For example, when the clock information includes time information, a time at which the encryption key is changed may be set as the setting value. For example, when the clock information includes a counter value, the counter value when the encryption key is changed may be set in the setting.
  • the cryptographic processing unit 105 executes cryptographic processing using the cryptographic key generated by the key generation unit 104.
  • the cryptographic algorithm used by the cryptographic processing unit 105 for cryptographic processing is not particularly limited. For example, a well-known cryptographic algorithm whose cryptographic security has been confirmed can be employed.
  • the encryption processing unit 105 receives the encrypted communication data from the communication unit 106, and decrypts the communication data using the key data generated by the key generation unit 104.
  • the encryption processing unit 105 may provide the decrypted communication data to the data transfer unit 107.
  • the encryption processing unit 105 encrypts plaintext communication data provided from the data transfer unit 107 using the encryption key generated by the key generation unit 104 and provides the encrypted communication data to the communication unit 106.
  • the cryptographic processing unit 105 may be configured to execute cryptographic processing in parallel for each communication unit 106 as illustrated in FIG. 1B.
  • the encryption execution unit 105a executes a process of encrypting plaintext communication data using an encryption key.
  • the decryption execution unit 105b receives the encrypted communication data from the communication unit 106, and decrypts the communication data using the encryption key.
  • the encryption execution unit 105a and the decryption execution unit 105b may be realized as software programs such as threads, processes, and tasks, for example.
  • the encryption execution unit 105a and the decryption execution unit 105b may be realized as hardware circuit elements capable of executing parallel processing, for example.
  • the encryption processing unit 105 may be configured to notify the other communication device 100 using the communication unit 106 whether or not the communication data received from the other communication device 100 has been correctly decrypted.
  • the communication unit 106 transmits / receives the communication data encrypted by the encryption processing unit 105 to / from another communication device 100. Specifically, the communication unit 106 receives encrypted communication data from the encryption processing unit 105 and transmits it to another communication device 100. The communication unit 106 provides the encrypted communication data received from the other communication device 100 to the encryption processing unit 105.
  • the communication device 100 may be provided with one or more communication units 106. Each communication unit 106 may transmit / receive communication data to / from another different communication device 100. That is, the communication unit 106 and the other communication device 100 that transmits and receives communication data by the communication unit 106 may correspond one-to-one. In addition, one communication unit 106 may be connected to a plurality of other communication devices 100 so as to be communicable.
  • the communication unit 106 may measure a delay that occurs in a communication path between the communication unit 106 and another communication device 100 that transmits and receives communication data.
  • a well-known technique may be adopted as a method for measuring the delay in the communication path.
  • the data transfer unit 107 executes a transfer process related to communication data.
  • the data transfer unit 107 analyzes plaintext communication data provided from the encryption processing unit 105 and executes processing such as routing or switching related to the communication data.
  • the data transfer unit 107 is configured to accept data generated inside or outside the communication device 100, encrypt the data by the encryption processing unit 105, and transmit the data to another communication device 100 via the communication unit 106. Also good.
  • FIGS. 2A to 2C A specific example of a hardware configuration capable of realizing the communication device 100 having the above-described functional configuration will be described with reference to FIGS. 2A to 2C.
  • the hardware illustrated in FIGS. 2A to 2C is one specific example that can implement the communication apparatus 100, and the hardware that can implement the communication apparatus 100 is not limited to these.
  • the hardware configuration illustrated in FIGS. 2A to 2C may be realized by physical hardware or may be realized by virtual hardware. The configuration illustrated in each figure will be described below.
  • the communication device 100 illustrated in FIG. 2A includes a processor 201, a memory 202, a clock generator 203, and a communication interface 204 including a communication port.
  • the communication device 100 may further include a storage 205, an input / output interface 206, and a drive device 208. These components are connected to each other via, for example, an appropriate communication line (communication bus or the like).
  • Each component of the communication apparatus 100 illustrated in FIGS. 2A to 2C may be realized by, for example, a circuit configuration that can provide each function.
  • a circuit configuration includes, for example, an integrated circuit such as SoC (System on a Chip), a chip set realized using the integrated circuit, and the like.
  • SoC System on a Chip
  • the data held by the components of the communication apparatus 100 is, for example, a RAM (Random Access Memory) area or a flash memory area integrated as a SoC, or a storage device (semiconductor storage device or the like) connected to the SoC. May be stored.
  • RAM Random Access Memory
  • flash memory area integrated as a SoC
  • storage device semiconductor storage device or the like
  • the processor 201 may be a general-purpose CPU or a microprocessor, or may be a logic circuit realized using a programmable element.
  • the processor 201 executes processing according to the software program read into the memory 202.
  • the memory 202 is a memory device such as a RAM that can be referred to by the processor 201.
  • the memory 202 stores, for example, a software program capable of realizing each component of the communication device 100 described above.
  • the device information management unit 101 may be realized by the processor 201 executing a device information management program.
  • the device information held by the device information management unit 101 may be held, for example, in the storage 205 described later.
  • the clock generation unit 102 may be realized by the processor 201 executing a clock generation program.
  • the clock generation program generates clock information using data provided by a clock generator 203 described later.
  • a function corresponding to the clock generation program may be incorporated in the clock generator 203.
  • the device information selection unit 103 may be realized by the processor 201 executing a device information selection program.
  • the device information selection program acquires data representing clock information from the clock generation program, and acquires device information provided by the device information management program.
  • the key generation unit 104 may be realized by the processor 201 executing a key generation program.
  • the key generation program acquires clock information from the clock generation program, and acquires selection information provided by the device information selection program.
  • the cryptographic processing unit 105 may be realized by the processor 201 executing a cryptographic processing program.
  • the encryption processing program acquires an encryption key provided by the key generation program.
  • the cryptographic processing program may acquire encrypted communication data from the communication interface 204, for example.
  • the data transfer unit 107 may be realized by the processor 201 executing a data transfer program.
  • the data transfer unit acquires, for example, plain text data provided by the cryptographic processing program.
  • Each software program executed by the processor 201 may be configured to transmit various data to each other by an appropriate method such as shared memory or inter-process communication.
  • the clock generator 203 is a device including a device (for example, an atomic clock) that generates a clock signal, for example.
  • the clock generator 203 may include a device (for example, a GPS unit or a standard radio wave receiving unit) that acquires time information.
  • the clock generator 203 may provide the generated clock signal or time information to other components.
  • the communication interface 204 is a device including a communication port connected to a communication network and a controller that controls transmission and reception of data.
  • a communication cable may be connected to the communication interface.
  • a communication antenna or the like may be connected to the communication interface.
  • the communication unit 106 in FIGS. 1A and 1B may be realized using the communication interface 204.
  • the storage 205 is a non-volatile storage device such as a magnetic disk drive or a semiconductor storage device using a flash memory.
  • the storage 205 can store various software programs and data used by the software programs.
  • the input / output interface 206 is a device that controls input / output with the input / output device 207, for example.
  • the input / output device 207 may be, for example, a device (display, operation button, voice input / output device, etc.) that realizes an interface between the communication device 100 and the user. Note that the communication apparatus 100 may not include the input / output interface 206.
  • the drive device 208 is, for example, a device that processes reading and writing of data with respect to a storage medium 209 described later. Note that the communication device 100 may not include the drive device 208.
  • the storage medium 209 is a storage medium capable of recording data, such as an optical disk, a magneto-optical disk, or a semiconductor flash memory.
  • the software program may be recorded in the storage medium 209 and stored in the storage 205 through the drive device 208 as appropriate at the time of shipment or operation of the communication device 100.
  • various software programs may be installed in the communication apparatus 100 using an appropriate tool.
  • the constituent elements of the communication apparatus 100 can be regarded as being configured by a code constituting each of the software programs or a computer-readable storage medium on which the code is recorded.
  • an encryption key for example, a pre-shared key
  • the encryption key may be distributed to each communication device 100 using the storage medium 209.
  • FIG. 2B further includes a cryptographic processing device 210 for the configuration of FIG. 2A.
  • the cryptographic processing device 210 is a device including a circuit configuration for executing cryptographic processing, a circuit configuration for executing key generation processing, and the like.
  • the cryptographic processing device 210 may be realized by using, for example, an FPGA (field-programmable gate array) or an ASIC (application specific integrated circuit).
  • a plurality of circuits capable of executing the processing of the encryption execution unit 105a and the decryption execution unit 105b illustrated in FIG. 1B may be mounted. For each communication port included in the communication interface 204, these circuits may execute encryption processing related to communication data transmitted and received at the communication port in parallel.
  • the cryptographic processing device 210 may be mounted in the communication interface 204 as illustrated in FIG. 2C, for example. In this case, the cryptographic processing device 210 implemented in each communication interface 204 executes cryptographic processing related to communication data transmitted and received at a communication port included in the communication interface 204.
  • a certain communication device 100 (tentatively described as “communication device X”) and another communication device 100 (tentatively described as “communication device Y”) have the same device information. Assume that. In addition, it is assumed that each communication device 100 generates a clock signal using an atomic clock, and clock information generated using the clock signal is synchronized. Note that two or more clock information is synchronized means that the clock information is the same (that is, there is no difference), or the difference between them is within a certain reference range. means. Each communication device is assumed to encrypt communication data using a common key encryption method.
  • FIG. 3 is a flowchart showing an example of an operation when the communication device 100 executes cryptographic communication with another communication device 100.
  • step S301 device information is registered in the communication device 100.
  • the device information management unit 101 holds the device information. For example, if device information is set in advance in the communication device, step S301 may not be executed. It is assumed that device information having the same content is registered in each communication device 100 (for example, communication device X and communication device Y).
  • the clock generation unit 102 in the communication device 100 generates clock information (step S302).
  • the clock generation unit 102 generates a clock signal using an atomic clock, and generates clock information using the clock signal.
  • the atomic clock can generate a clock signal with high accuracy, and is unlikely to accumulate errors in a short period of time (that is, a clock shift (difference) occurs). Therefore, when the clock signal of each communication apparatus 100 is synchronized, it is considered that each communication apparatus 100 can generate clock information having the same content using the clock signal. Therefore, when a highly accurate clock signal can be generated using an atomic clock or the like, each communication device 100 does not need to frequently adjust a difference in clock information with another communication device 100.
  • the clock generation unit 102 may use information representing a counter that counts the generated clock signals as clock information. The timing for starting the counting of the clock signal may be appropriately determined. Not limited to the above, the clock generation unit 102 may generate clock information including information indicating time.
  • the communication device 100 generates an encryption key from the device information registered in step S301 and the clock information generated in step S302 (step S303).
  • the encryption key generation process will be described with reference to FIG.
  • the device information selection unit 103 in the communication device 100 generates selection information from the device information registered in step S301 and the clock information generated in step S302 (step S401).
  • the device information selection unit 103 selects at least a part of the device information held in the device information management unit 101 according to the clock information.
  • a specific example of the operation in which the device information selection unit 103 selects at least part of the device information is as described above.
  • the device information selection unit 103 uses the at least part of the selected device information to generate different selection information for each clock information.
  • a specific example of the operation in which the device information selection unit 103 generates selection information is as described above.
  • the device information selection unit 103 may convert the clock information acquired from the clock generation unit 102 into a representative value. Thereby, even if a minute difference occurs in the clock information of each communication device 100, it is possible to absorb the difference, and each communication device 100 (communication device X and communication device Y) has the same selection information. Can be generated.
  • the key generation unit 104 in the communication device 100 generates an encryption key corresponding to the encryption algorithm used for the encryption process from the selection information generated in step S401 and the clock information (step S402).
  • a specific example of the operation in which the key generation unit 104 generates the encryption key is as described above. With this processing, each communication device 100 (communication device X and communication device Y) can generate an encryption key having the same content.
  • the key generation unit 104 may convert the clock information acquired from the clock generation unit 102 into a representative value. Thereby, even if a minute difference occurs in the clock information of each communication device 100, the difference can be absorbed.
  • the communication device 100 can generate various variations of encryption keys according to the clock information and device information.
  • the reason is that variations in selection information used when generating an encryption key can be increased by selecting a part of the device information according to the clock information. Even if the device information held by the device information management unit 101 is relatively small, variations in the encryption key can be increased by generating selection information using the clock information.
  • the cryptographic processing unit 105 in the communication device 100 executes cryptographic processing using the cryptographic key generated in step S303 (steps S401 to S402) (step S304).
  • the encryption processing unit 105 encrypts plaintext data provided from the data transfer unit 107 and provides the encrypted data to the communication unit 106.
  • the communication unit 106 in the communication device X transmits the encrypted communication data to the communication device Y.
  • the encryption processing unit 105 may decrypt the encrypted communication data received by the communication unit 106 and provide it to the data transfer unit 107, for example.
  • the communication unit 106 in the communication device X provides the encrypted data received from the communication device Y to the encryption processing unit 105 in the communication device X.
  • the encryption processing unit 105 in the communication device X decrypts the communication data and provides it to the data transfer unit 107 in the communication device X.
  • each component of the communication apparatus 100 described below is one specific example, and a component that executes a certain process (operation) can be selected as appropriate.
  • the following processing may be executed by the device information management unit 101 giving an instruction to another component.
  • the key generation unit 104 confirms the clock information generated by the clock generation unit 102 (step S501).
  • the key generation unit 104 determines whether the key change timing has arrived as a result of the confirmation in step S501. For example, the key generation unit 104 may determine whether or not the key change timing has arrived by comparing the clock information acquired from the clock generation unit 102 with a setting value indicating the timing to change the encryption key. Good.
  • the key generation unit 104 compares the counter value included in the clock information with the counter value included in the set value to determine whether the key change timing has arrived. You may judge.
  • the key generation unit 104 compares the time included in the clock information with the time included in the set value to determine whether or not the key change timing has arrived. You may judge.
  • step S503 If the key change timing has arrived (YES in step S502), the key generation unit 104 executes an encryption key generation process (step S503).
  • the process executed in step S503 may be the same as step S401 and step S402 illustrated in FIG.
  • the key generation unit 104 may provide the generated new encryption key to the encryption processing unit 105.
  • step S502 If the key change timing has not arrived (NO in step S502), the key generation unit 104 continues the process from step S501.
  • the key generation unit 104 updates the key change timing (step S504). For example, the key generation unit 104 sets the next timing for changing the encryption key to a setting value indicating the timing for changing the encryption key.
  • step S505 When the key generation unit 104 continues the key update process (YES in step S505), the key generation unit 104 continues the process from step S501. When the key update process is not continued (NO in step S505), the key generation unit 104 ends the process.
  • the key generation unit 104 can change (update) the encryption key at an appropriate timing. Further, when the encryption key is changed, it is not necessary to explicitly distribute the encryption key to each communication device 100.
  • each communication device 100 can generate an encryption key using device information and clock information having the same contents. Specifically, for example, if the clock signals generated by the communication devices 100 are synchronized, the communication devices 100 can generate clock information having the same content.
  • Each communication device 100 can generate an encryption key with the same content by using device information with the same content at the same timing (that is, with the same clock information). Therefore, when changing (updating) the encryption key, it is not necessary to distribute the encryption key to each communication device 100.
  • the communication device 100 can execute encrypted communication with another communication device 100 using an appropriate encryption key.
  • the encryption processing unit 105 may appropriately change the encryption key used for the encryption process. For example, it is assumed that one piece of data transmitted from the communication device 100 on the transmission side is divided into “M” (“M” is a natural number) pieces of communication data (for example, “M” packets). .
  • M is a natural number
  • the encryption processing unit 105 determines the (“m + 1”) th packet. Up to “M” th packets are encrypted using the changed encryption key.
  • one piece of data is divided into a plurality of parts (packets) and encrypted using different encryption keys for each part. Thereby, even if the encryption key used for encrypting a certain part is compromised, the entire data is not decrypted.
  • each communication device 100 generates clock information using a high-accuracy clock signal generated using an atomic clock, and therefore the timing at which the encryption key is changed in each communication device 100 is also synchronized with high accuracy. obtain. Therefore, each communication apparatus 100 can encrypt one piece of data using a different encryption key for each part according to the timing when the encryption key is changed.
  • the encryption processing unit 105 may change the encryption key during the encryption process for one communication data (for example, one packet).
  • M the communication data of “M” (“M” is a natural number) bytes (bytes)
  • the data up to the “m” (“m” is a natural number less than “M”) bytes is encrypted, Assume that the encryption key is changed.
  • the data from 1 to “m” bytes is encrypted by the encryption key KEY (t1) generated using the clock information CKLI (t1), and the data from (“m + 1”) to “M” bytes. It is assumed that the data is encrypted with the encryption key KEY (t1 + 1) generated using the clock information CLKI (t1 + 1).
  • the communication device 100 on the transmission side stores data that can specify each part encrypted with different encryption keys and data that can specify the encryption key used for encryption of each part. It is encrypted by (t1 + 1) and added to the communication data.
  • the added data is referred to as “additional data”.
  • Data that can specify each part encrypted with different encryption keys may include, for example, an offset from the beginning and a combination of sizes (for example, offset is “0 bytes”, size is “m bytes”, etc.) Good.
  • the information that can specify the encryption key used for encrypting each part of the communication data may represent, for example, clock information (for example, CLKI (t1)) used to generate the encryption key.
  • the communication data encrypted as described above is transmitted at the timing when the clock information in the communication device 100 on the transmission side is CLKI (t1 + 1).
  • the communication device 100 on the receiving side receives the communication data, for example, at the timing when the clock information is CLKI (t1 + 1).
  • the receiving-side communication device 100 decodes the additional data using the clock information CLKI (t1 + 1). As a result, the communication device 100 on the receiving side identifies each portion (for example, the 1st to mth byte portions, the (m + 1) to Mth byte portions) encrypted with a different encryption key in the received communication data. Is possible.
  • the communication device 100 on the receiving side can generate an encryption key (for example, KEY (t1)) from data that can specify the encryption key used for encryption of each part. Through the processing as described above, the communication device 100 on the receiving side can decrypt each part of the communication data using an appropriate encryption key.
  • the timing for changing the encryption key may be finely adjusted as appropriate according to the encryption algorithm used in the encryption processing unit 105. For example, when a block encryption algorithm is employed, the encryption key may be changed in units of blocks. For example, when a stream encryption algorithm is employed, the encryption key that becomes the seed of the pseudo-random number generator may be changed as appropriate.
  • clock information adjustment an operation of adjusting a difference when a difference (shift) occurs in clock information used for generating an encryption key between the communication apparatuses 100 that perform communication will be described.
  • the process (operation) of each component of the communication apparatus 100 described below is one specific example, and a component that executes a certain process (operation) can be selected as appropriate.
  • the following processing may be executed by the device information management unit 101 giving an instruction to another component.
  • the encryption key is generated using the clock information.
  • the clock information generated in the communication device 100 on the transmission side for example, the communication device X
  • the clock information generated in the communication device 100 on the reception side for example, the communication device Y
  • the communication data is encrypted.
  • the encryption key used for the decryption and the encryption key used for the decryption are different.
  • the encryption key is updated in the communication device 100 on the reception side until the communication data transmitted by the communication device 100 on the transmission side arrives at the communication device 100 on the reception side. That is, the encryption key used for encrypting communication data may be different from the encryption key used for decryption.
  • a certain communication device 100 estimates the clock information of another communication device 100 and generates an encryption key using the estimated clock information, so that encrypted communication can be performed even in the above situation. It is possible to execute.
  • each communication device 100 adjusts the clock information can be selected as appropriate. That is, each communication apparatus 100 may adjust the clock information periodically, or may adjust the clock information at a predetermined timing determined by a setting value or the like. Each communication device 100 may adjust the clock information when the communication device 100 on the receiving side fails to decode the communication data.
  • clock adjustment data As one method for adjusting the difference in clock information for each communication device 100 (for example, communication device X and communication device Y), at least one communication device directly transmits its own clock information to the other communication device 100.
  • a transmission method is conceivable.
  • communication data used for clock information adjustment may be referred to as clock adjustment data.
  • the communication device 100 (communication device Y) that has received the clock adjustment data from another communication device 100 (communication device X), for example, the clock information included in the clock adjustment data and the own device when the clock adjustment data is received
  • the difference from the clock information may be calculated.
  • the communication device Y generates adjusted clock information by reflecting (for example, adding or subtracting) the difference to the clock information generated in the own device.
  • the communication device Y may generate an encryption key used for encryption processing related to communication data transmitted / received to / from the communication device X using the clock information adjusted as described above. As a result, the communication device X and the communication device Y can execute encryption processing using the same encryption key.
  • each communication device 100 encrypts and transmits the clock adjustment data in order to prevent leakage of clock information in the communication path.
  • an encryption key generated using clock information in each communication device 100 may not be used as an encryption key for encrypting clock adjustment data. This is because when there is a difference in the clock information in each communication device 100, the encryption key generated in each communication device 100 is different.
  • each communication device 100 encrypts the clock adjustment data using the device information. For example, when each communication device 100 holds a common key (for example, the above-described pre-shared key) in advance as device information, each communication device 100 encrypts the clock adjustment data using the pre-shared key. Alternatively, it may be transmitted to another communication device 100.
  • a common key for example, the above-described pre-shared key
  • the encryption processing unit 105 encrypts the clock information using the pre-shared key, and the communication unit 106 transmits the encrypted communication data to another communication device 100.
  • the pre-shared key is used for encryption processing related to clock adjustment data. That is, the encryption key used for encryption of (normal) communication data other than the clock adjustment data is generated using the clock information adjusted by the clock adjustment data. In other words, the pre-shared key is not used for normal communication data encryption.
  • the size of the clock adjustment data is considered to be relatively small.
  • the frequency (difference) of clock information between the communication devices 100 is low. Accordingly, it is considered that the number of times that the clock adjustment data is transmitted between the communication apparatuses 100 is relatively small.
  • FIG. 6 is a sequence diagram illustrating a process in which each communication device 100 synchronizes clock information.
  • FIG. 7 is an explanatory diagram conceptually showing a method for estimating the clock information of the communication apparatus 100. The present embodiment is not limited to the specific examples shown in FIGS.
  • the transmission-side communication device 100 (communication device X) generates clock information (CLKI (t1)), and the reception-side communication device 100 (communication device Y). ) Generates clock information (CLKI (t2)). That is, there is a difference between the clock information generated in each communication device 100.
  • CLKI clock information
  • the communication device Y on the reception side estimates the clock information generated in the communication device X on the transmission side will be described.
  • the communication device X generates clock information CLKI (t1) at an appropriate timing (step S601 in FIG. 6), and uses the clock information CLKI (t1) to describe an encryption key (hereinafter referred to as “KEY (t1)”). Is generated (step S602 in FIG. 6).
  • Specific processing for generating the encryption key is as described above, and such processing may include processing for generating selection information in accordance with the clock information CLKI (t1) (the same applies hereinafter).
  • the communication device Y generates clock information CLKI (t2) at an appropriate timing (step S603 in FIG. 6), and uses the clock information CLKI (t2) to describe an encryption key (hereinafter referred to as “KEY (t2)”). Is generated (step S604 in FIG. 6).
  • the communication device X encrypts the communication data using the encryption key KEY (t1) (step S605 in FIG. 6), and transmits the encrypted communication data (hereinafter referred to as “C (t1)”) to the communication device Y. (Step S606 in FIG. 6).
  • the communication device X When creating the communication data C (t1) in step S605, the communication device X adds data (verification data) that can determine whether or not the communication data C (t1) has been correctly decoded to the communication data. Also good. For example, the communication device X may calculate a hash value of the payload of communication data before encryption as the verification data. The communication device X may create the communication data C (t1) by combining the hash value with the communication data and then encrypting the entire hash value. Alternatively, the communication device X may add a message authentication code or a message integrity code to the communication data. The message authentication code or message integrity code can be generated using well-known techniques.
  • the communication device Y receives the encrypted communication data C (t1) (step S607 in FIG. 6), and decrypts the communication data C (t1) using the encryption key KEY (t2) (step S608 in FIG. 6). ). Such decryption processing may be executed by, for example, the encryption processing unit 105 in the communication device Y. At this time, the communication device Y (encryption processing unit 105) may determine whether or not the communication data C (t1) has been correctly decrypted.
  • the communication device Y when the communication device Y has the same hash value calculated from the payload of the communication data C (t1) decrypted using the encryption key KEY (t2) and the verification data added to the communication data C (t1) It may be determined that the communication data C (t1) has been correctly decoded.
  • the communication device Y can determine whether or not the communication data C (t1) has been correctly decrypted by verifying the message authentication code.
  • the communication device Y since the encryption key KEY (t2) is an encryption key different from the encryption key KEY (t1), the communication device Y correctly decrypts the communication data C (t1) in step S608. I can't.
  • the communication apparatus Y further generates clock information CLKI (tx) different from the clock information CLKI (t2) (step S609 in FIG. 6).
  • the encryption processing unit 105 in the communication device Y may instruct generation of clock information related to the clock generation unit 102.
  • the clock information CLKI (tx) different from the clock information CLKI (t2) may be referred to as “first estimated clock information”. This will be specifically described with reference to FIG.
  • the communication device Y (clock generation unit 102), for example, in a specific range including the clock information CLKI (t2) (more specifically, for example, a range centered on the clock information CLKI (t2)) Estimated clock information may be generated.
  • the clock information CLKI (t1) of the communication device X is considered to be distributed in a specific range centered on the clock information CLKI (t2).
  • the specific range can be determined as appropriate by, for example, an experiment in the development stage of the communication device 100 (or actual measurement in the deployment stage), and may be set in advance for the communication device 100.
  • the communication device Y uses clock information CLKI (t2_1) and clock information CLK1 (t2_1) as clock information (first estimated clock information) different from the clock information CLKI (t2).
  • CLKI (t2_2) is generated.
  • the clock information CLKI (t2_1) and CLKI (t2_2) may be included in a range of specific clock information including the clock information CLKI (t2), for example.
  • the clock information CLKI (t2) represents a counter value “N” (for example, N is a positive integer).
  • the communication device Y is included in a specific range including the counter value “N” (for example, the range from the counter value “N ⁇ n” to the counter value “N + n”, where “n” is a positive integer).
  • Clock information may be generated.
  • the communication device Y generates clock information CLKI (t2_1) representing the counter value “N ⁇ 1” and clock information CLKI (t2_2) representing the counter value “N + 1”.
  • the clock information CLKI (t2) represents time “t”.
  • the communication device Y for example, from the time “t” to “ ⁇ t” from a time before a specific range including the time “t” (for example, “ ⁇ t” (“ ⁇ t”: positive integer) from the time “t”).
  • the clock information included in “until a later time, etc.) may be generated.
  • the communication device Y generates clock information CLKI (t2_1) representing time “t ⁇ 1” and clock information CLKI (t2_2) representing time “t + 1”.
  • the unit of time may be selected as appropriate (for example, milliseconds, seconds, minutes, etc.).
  • the communication device Y (device information selection unit 103) generates selection information using the first estimated clock information generated as described above.
  • the communication device Y (key generation unit 104) uses the generated selection information and the first estimated clock information to respectively generate encryption keys (for example, encryption key KEY (t2_1) and encryption key KEY (t2_2)). Generate (step S610 in FIG. 6).
  • an encryption key generated using the first estimated clock information may be referred to as a “first estimated encryption key”.
  • the communication device Y (the encryption processing unit 105) decrypts the communication data C (t1) using the generated encryption key (first estimated encryption key) (step S611 in FIG. 6).
  • the method for determining whether or not the communication data C (t1) has been successfully decoded is as described above.
  • the communication device Y (encryption processing unit 105) estimates the clock information used to generate the encryption key that has been successfully decrypted as the clock information of the communication device X (FIG. 6 step S612).
  • the clock information used to generate the encryption key KEY (t2_2) is clock information CLKI (t2_2).
  • the communication device Y estimates that the clock information of the communication device X is CLKI (t2_2).
  • the communication device Y generates clock information (for example, the above-mentioned CLKI (t2_1) and CLKI (t2_2)) included in a specific clock information range one by one, and uses the encryption key generated using the clock information.
  • the communication data C (t1) may be confirmed to be decryptable.
  • the communication device 100 can estimate the clock information in the other communication device 100 without transmitting / receiving the clock adjustment data.
  • the key generation unit 104 in the communication device Y stores (stores) the difference between the clock information CLKI (t2) and the clock information CLKI (t2_2) as the difference between the clock information between the communication device X and the communication device Y. May be.
  • the key generation unit 104 in the communication device Y adjusts the clock information acquired from the clock generation unit 102 using the difference, and after adjustment The encryption key may be generated using the clock information.
  • a method in which the transmission-side communication apparatus 100 predicts the clock information in the reception-side communication apparatus 100 can be considered. For example, when the communication device 100 on the transmission side receives a notification from the communication device 100 on the reception side indicating that communication data transmitted from the device itself cannot be correctly decoded, the transmission side communication device 100 predicts the clock information in the communication device 100 on the reception side. May be.
  • the clock information generated by the communication device X is described as CLKI (t1)
  • the clock information of the communication device Y predicted by the communication device X is described as CLKI (t1 + ⁇ t).
  • the clock information of the communication device Y predicted by the communication device X may be described as second estimated clock information.
  • the transmission-side communication apparatus 100 (communication apparatus X) takes into account the delay in the communication path, the time elapsed since the previous clock information adjustment, and the like, the clock information in the reception-side communication apparatus 100 (communication apparatus Y). (Second estimated clock information) is estimated (step S801).
  • a well-known technique can be adopted as a method for measuring the delay in the communication path.
  • the communication device X may predict the second estimated clock information in a range of specific clock information including the clock information CLKI (t1) generated in its own device.
  • the key generation unit 104 in the communication device X may instruct the clock generation unit 102 to generate the second estimated clock information.
  • the communication device X (device information selection unit 103) generates selection information using the clock information CLKI (t1 + ⁇ t). Then, the communication device X (key generation unit 104) generates an encryption key (KEY (t1 + ⁇ t)) from the clock information CLKI (t1 + ⁇ t) and the generated selection information (step S802). Hereinafter, such an encryption key may be referred to as a “second estimated encryption key”.
  • the communication device X (encryption processing unit 105) encrypts the communication data using the generated encryption key (second estimated encryption key) (step S803).
  • the communication device X (communication unit 106) transmits the encrypted communication data C (t1 + ⁇ t) to the communication device Y (step S804).
  • clock information CLKI (t2) is generated at an appropriate timing (step S805), and an encryption key KEY (t2) is generated using the clock information CLKI (t2) (step S806).
  • the communication device Y receives the communication data C (t1 + ⁇ t) from the communication device X (step S807) and decrypts it using the encryption key KEY (t2) (step S808).
  • the communication device Y notifies the communication device X whether or not the communication data C (t1 + ⁇ t) has been correctly decoded in step S808 (step S809).
  • the communication device X confirms the notification received from the communication device Y (step S810).
  • the communication device Y can correctly decode the communication data C (t1 + ⁇ t)
  • the communication device X estimates that the clock of the communication device Y is (t1 + ⁇ t).
  • the communication device X may save (store) a difference ( ⁇ t) in clock information between the communication device X and the communication device Y.
  • the communication device X When the communication device X performs cryptographic communication with the communication device Y, the communication device X can adjust the clock information by reflecting the difference in the clock information generated by the communication device X.
  • the communication device X can execute encryption communication with the communication device Y by generating an encryption key using the adjusted clock information.
  • the communication device X changes the clock information predicted for the communication device Y (for example, changes to CLKI (t1 + ⁇ t2)) (step S812). For example, the communication device X may repeatedly execute steps S801 to S812 until the decoding process in the communication device Y is successful.
  • each communication device 100 adjusts clock information with another communication device 100 has been described above.
  • the key generation unit 104 in the communication device 100 may hold adjustment information used for adjustment of clock information in association with other communication devices 100.
  • adjustment information may typically represent a difference between clock information generated in one communication device 100 and clock information generated in another communication device 100.
  • Encryption key adjustment the encryption key used between the communication device 100 on the transmission side (communication device X) and the communication device 100 on the reception side (communication device Y) is adjusted using the clock signal adjusted as described above.
  • the method will be described using a specific example shown in FIG.
  • the specific example shown in FIG. 10 is an example for explanation, and the present embodiment is not limited to this.
  • the process (operation) of each component of the communication apparatus 100 described below is one specific example, and a component that executes a certain process (operation) can be selected as appropriate.
  • each communication device 100 holds clock information adjustment information related to other communication devices 100 as illustrated in FIG. That is, the communication device X holds clock information adjustment information related to the communication device Y, and the communication device Y holds clock information adjustment information related to the communication device X.
  • one of the communication device 100 that is the communication data transmission side and the communication device 100 that is the communication data reception side generates an encryption key using the adjusted clock information, and uses the encryption key. To execute cryptographic processing.
  • Which of the communication device 100 that is the communication data transmission side and the communication device 100 that is the communication data reception side uses the adjusted clock information to generate the encryption key may be determined in advance. You may select when the apparatus 100 communicates with the other communication apparatus 100.
  • the communication device X uses the clock information generated by the own device as adjustment information for the communication device Y. Adjust using (t_xy). Specifically, the communication device X may adjust the clock information by adding (or subtracting) the adjustment information to the clock information generated by itself. The communication device X uses the adjusted clock information to generate an encryption key by the method described above, and encrypts communication data using the encryption key. On the other hand, in this case, the communication device Y on the receiving side generates the encryption key without adjusting the clock information. The communication device Y can decrypt the encrypted data received from the communication device X using the encryption key.
  • the communication device Y adjusts the clock information generated by itself by using the adjustment information (t_yx) for the communication device X.
  • the communication device Y uses the adjusted clock information to generate an encryption key by the method described above, and encrypts communication data using the encryption key.
  • the communication device X on the receiving side generates the encryption key without adjusting the clock information.
  • the communication device X can decrypt the encrypted data received from the communication device Y using the encryption key.
  • the communication device 100 on the transmission side adjusts the clock information, so that the communication device 100 on the reception side can execute the encryption communication without adjusting the clock information.
  • the communication device X when transmitting communication data from the communication device X to the communication device Y, the communication device X generates an encryption key by the above-described method without adjusting the clock information generated by the device itself, and uses the encryption key. Use to encrypt communication data.
  • the communication device Y on the receiving side adjusts the clock information generated by itself by using the adjustment information (t_yx) for the communication device X.
  • the communication device Y can decrypt the encrypted data received from the communication device X using the encryption key.
  • the communication device Y when transmitting communication data from the communication device Y to the communication device X, the communication device Y generates an encryption key by the above-described method without adjusting the clock information generated by itself, and uses the encryption key. Use to encrypt communication data.
  • the communication apparatus X on the receiving side in this case adjusts the clock information generated by itself using the adjustment information (t_xy) for the communication apparatus Y.
  • the communication device X can decrypt the encrypted data received from the communication device Y using the encryption key.
  • the communication device 100 on the transmission side does not adjust the clock information, and the communication device 100 on the reception side adjusts the clock information, so that the encrypted communication can be executed.
  • the operation of the communication device 100 has been described above.
  • the communication device 100 configured as described above can execute encrypted communication with another communication device 100 using an appropriate encryption key.
  • the reason is as follows.
  • each communication device 100 generates an encryption key by using at least a part of device information held by each communication device 100 and clock information. If each communication device 100 holds device information of the same content and the clock information generated in each communication device is synchronized, each communication device 100 can generate the same encryption key. In other words, it is not necessary to explicitly distribute the encryption key to each communication device 100.
  • each communication device 100 Since each communication device 100 generates an encryption key using at least a part of the device information and clock information, it is not necessary to share a predetermined encryption key.
  • variations of the generated encryption key are not limited to known encryption key variations, for example.
  • each communication device 100 Since each communication device 100 generates clock information using a high-accuracy clock signal generated using, for example, an atomic clock, the clock information of each communication device 100 can be synchronized with high accuracy. Therefore, each communication apparatus 100 can change the encryption key as appropriate at the same timing, for example, according to the clock information. Further, when changing the encryption key, it is not necessary to explicitly distribute the changed encryption key.
  • each communication device 100 can execute the process of adjusting the difference as described above. Even if there is a difference in clock information, each communication device 100 can generate an encryption key that can be used for encrypted communication with other communication devices 100 by adjusting the difference. it can. In addition, the communication device 100 on the transmission side or the communication device 100 on the reception side generates encryption keys using appropriately adjusted clock information, so that encryption communication with other communication devices 100 can be executed.
  • the operations of the device information management unit 101 and the encryption processing unit 105 are different from those in the first embodiment.
  • such differences will be described with reference to specific examples illustrated in FIGS. 11A and 11B.
  • the device information management unit 101 in each communication device 100 (communication device A to communication device D) holds data (data1, data2, data3, and data4) unique to the communication device 100, respectively. To do.
  • the device information management unit 101 in each communication device 100 holds at least one piece of device information common to each device.
  • the device information common to each device may be, for example, the pre-shared key described above.
  • the pre-shared key is an encryption key common to each communication device.
  • the device information management unit 101 in each communication device 100 mutually transmits and receives unique device information held by each other at the timing of starting communication with another communication device 100, for example. At this time, each communication device 100 encrypts communication data including unique device information using, for example, a pre-shared key.
  • the encryption processing unit 105 encrypts communication data including device information unique to each communication device 100 held by the device information management unit 101 using a pre-shared key.
  • the communication unit 106 transmits the encrypted communication data to the other communication device 100.
  • the encryption processing unit 105 decrypts the communication data using the pre-shared key.
  • the encryption processing unit 105 may provide device information management unit 101 with device information included in the decrypted communication data and unique to the other communication device 100.
  • each communication device 100 can hold device information of the same content for each other communication device 100.
  • the communication device A and the communication device C hold data1 and data3 as device information, respectively.
  • the communication device A and the communication device D hold data1 and data4 as device information, respectively.
  • the communication device B and the communication device D hold data2 and data4 as device information, respectively.
  • the device information selection unit 103 in the communication device A and the communication device C generates selection information using the clock information and the device information (data1 and data3).
  • the device information selection unit 103 in the communication device A and the communication device D generates selection information using the clock information and the device information (data1 and data4).
  • the device information selection unit 103 in the communication device B and the communication device D generates selection information using the clock information and device information (data2 and data4).
  • the key generation unit 104 in each communication device 100 generates an encryption key using the selection information generated as described above and the clock information.
  • each communication device 100 can use a different encryption key for each other communication device 100 when communicating with the other communication device 100.
  • the communication device A can use different encryption keys for encryption communication with the communication device C and encryption communication with the communication device D.
  • the communication device D can use different encryption keys for encryption communication with the communication device A and encryption communication with the communication device B.
  • the pre-shared key is used for encrypting device information transmitted and received by each communication device 100, and is not used for encrypting normal communication data. That is, since the total amount of ciphertext data encrypted using the pre-shared key is relatively small, it is not easy to collect a large amount of such ciphertext data. Therefore, it is considered that an attack on the pre-shared key is relatively difficult.
  • the operation of the device information selection unit 103 is different from that in the first embodiment.
  • the difference will be described.
  • FIG. 12 shows a configuration example of the device information selection unit 103 in this modification.
  • the device information selection unit 103 in this modification includes a plurality of selection processing units 1201 that select at least a part of device information according to different selection algorithms.
  • the device information selection unit 103 in this modification example selects at least one selection processing unit 1201 from the plurality of selection processing units 1201 according to the clock information, and at least one of the device information selected by the selection processing unit 1201.
  • the selection information is generated using the unit.
  • the device information selection unit 103 includes a selection processing unit A, a selection processing unit B, and a selection processing unit C as an example.
  • the number of selection processing units 1201 is not particularly limited, and may be determined as appropriate.
  • Each selection processing unit 1201 selects a part of the device information according to a different selection algorithm.
  • the selection processing unit A selects some device information from a plurality of device information held in the device information management unit 101, for example, according to clock information.
  • the selection processing unit B divides one or more pieces of device information into a plurality of parts, and appropriately selects and combines the divided parts according to the clock information.
  • the selection processing unit C appropriately rearranges a plurality of pieces of device information held in the device information management unit 101 according to clock information.
  • the device information selection unit 103 may provide the device information (or a part thereof) selected by each of the selection processing units 1201 (selection processing unit A to selection processing unit C) as selection information as it is.
  • the device information selection unit 103 provides, as selection information, a result obtained by executing a predetermined operation (for example, a hash function) on the device information (or a part thereof) selected by each of the selection processing units 1201. May be.
  • a predetermined operation for example, a hash function
  • the device information selection unit 103 selects the selection processing unit 1201 according to the clock information (step S1301).
  • a method for selecting the selection processing unit 1201 may be appropriately determined.
  • the device information selection unit 103 may sequentially select the selection processing unit 1201 according to the clock information.
  • the device information selection unit 103 may randomly select the selection processing unit 1201 by generating a random number using the clock information as a seed.
  • the selection processing unit 1201 selected in step S1301 acquires at least part of the device information according to the clock information (step S1302).
  • the device information selection unit 103 generates selection information using the device information acquired in step S1302 (step S1303).
  • the key generation unit 104 generates an encryption key corresponding to the encryption algorithm using the generated selection information and clock information (step S1304).
  • the process in step S1304 may be the same as the process in step S402.
  • selection information is generated using different selection algorithms in accordance with clock information. That is, variations in the method for generating selection information can be increased. This is considered to make it difficult to predict the original data used for generating the encryption key.
  • the second embodiment is a basic embodiment common to the first embodiment and modifications thereof.
  • FIG. 14A is a block diagram illustrating a functional configuration of the communication device 1400 according to the present embodiment.
  • the communication device 1400 can be realized by, for example, hardware illustrated in FIGS. 2A to 2C.
  • the communication device 1400 includes a device information management unit 1401, a clock generation unit 1402, a device information selection unit 1403, a key generation unit 1404, and an encryption processing unit 1405.
  • the communication device 1400 may include a communication unit 1406 as illustrated in FIG. 14B. These components constituting the communication device 1400 may be connected using an appropriate method so as to exchange data with each other. Hereinafter, each component will be described.
  • the device information management unit 1401 stores device information that is information commonly stored in one or more communication devices.
  • the device information may be the same information as the device information in the first embodiment.
  • the device information management unit 1401 may store individual device information for each of the other communication devices 1400 with which the device itself communicates.
  • the device information management unit 1401 may be configured to execute the same processing as the device information management unit 101 in the first embodiment.
  • the clock generation unit 1402 (clock generation means) generates clock information representing timing using a periodic clock signal.
  • the clock generation unit 1402 may generate clock information using, for example, a highly accurate clock signal generated using an atomic clock or the like.
  • the clock information generated by the clock generation unit 1402 may include information indicating time or information indicating a counter value, for example, as in the first embodiment.
  • the clock generation unit 1402 may be configured to execute the same processing as that of the clock generation unit 102 in the first embodiment.
  • the device information selection unit 1403 selects at least a part of one or more pieces of device information in accordance with the clock information generated by the clock generation unit 1402. In addition, the device information selection unit 1403 generates selection information that is different information for each clock information from at least a part of the selected device information. For example, the device information selection unit 1403 may generate selection information using the device information selected by the selection algorithm described in the first embodiment. The device information selection unit 1403 may be configured to execute the same processing as the device information selection unit 103 in the first embodiment.
  • the key generation unit 1404 (key generation means) generates an encryption key using at least the clock information and the selection information generated by the device information selection unit. Accordingly, the key generation unit 1404 can generate different encryption keys according to the selection information and the clock information.
  • the key generation unit 1404 may be configured to execute the same processing as the key generation unit 104 in the first embodiment.
  • the encryption processing unit 1405 executes at least one of encryption processing and decryption processing using the encryption key generated by the key generation unit 1404.
  • the cryptographic processing unit 1405 may be configured to execute, for example, the same processing as the cryptographic processing unit 105 in the first embodiment.
  • the communication unit 1406 (communication means) is configured to transmit / receive communication data to / from another communication device 1400.
  • the communication unit 1406 transmits the communication data encrypted by the encryption processing unit 1405 to the other communication device 1400.
  • the communication unit 1406 receives encrypted communication data from another communication device 1400 and provides the encrypted communication data to the encryption processing unit 1405.
  • the communication unit 1406 may be configured to execute the same processing as the communication unit 106 in the first embodiment.
  • the communication device 1400 configured as described above can execute encrypted communication with another communication device 1400 without explicitly distributing an encryption key used for encrypted communication to the other communication device 1400. . Further, the communication device 1400 configured as described above can execute encrypted communication without sharing an encryption key in advance. The reason is that, when the clock information generated by each communication device has the same content, each communication device 1400 is based on the device information common to the other communication devices 1400 and the clock information. This is because the same encryption key can be generated. Also, the communication device 1400 can generate different encryption keys according to the clock information when updating the encryption key. As described above, each communication device 1400 can execute encrypted communication with another communication device 1400 using an appropriate encryption key.
  • the present disclosure has been described above as an example applied to the exemplary embodiment described above.
  • the example in which the technology related to the present disclosure is applied to the communication devices (100, 1400) has been described.
  • the communication method according to the present disclosure can be realized by operating the communication devices (100, 1400) in the above embodiments.
  • the method for realizing the communication method according to the present disclosure is not limited to the above.
  • the communication method according to the present disclosure may be realized by, for example, an appropriate device (an information processing device such as a computer or a dedicated embedded device) that can perform the same operation as the communication device (100, 1400). Is possible.
  • the present disclosure may be realized as a system including a plurality of communication devices (100, 1400).
  • Device information management means capable of storing device information which is information commonly stored in one or more communication devices; Clock generating means for generating clock information representing timing using a periodic clock signal; Device information selection means for selecting at least a part of the device information according to the clock information, and generating selection information that is different information for each clock information from at least a part of the selected device information; Key generation means for generating an encryption key using at least the clock information and the selection information generated by the device information selection means;
  • a communication apparatus comprising: encryption processing means for executing at least one of encryption processing and decryption processing relating to communication data using a generated encryption key.
  • the device information management means stores a plurality of the device information, The device information selecting means is responsive to the clock information, A process of selecting at least one piece of the device information from the plurality of pieces of device information; A process of selecting at least one or more pieces of device information from a plurality of pieces of device information, dividing each selected piece of device information into a plurality of portions, and selecting one or more portions from the selected pieces of device information;
  • Appendix 3 The communication device according to appendix 1 or appendix 2, wherein the clock generation means includes an atomic clock and generates the clock signal synchronized with another communication device using the atomic clock.
  • the communication device according to Supplementary Note 1 or Supplementary Note 2, wherein the clock generation unit adjusts the timing of the clock signal based on time information generated from an external device using an atomic clock.
  • the communication device according to any one of appendix
  • the clock generation means generates one or more second estimated clock information that is the clock information different from the clock information in the device itself,
  • the device information selection means selects at least a part of the device information according to the second estimated clock information, generates the selection information from at least a part of the selected device information,
  • the key generation means generates a second estimated encryption key using at least the second estimated clock information and the selection information,
  • the communication means transmits the communication data encrypted by the encryption processing means using the second estimated encryption key to the other communication device,
  • the key generation unit The communication device according to any one of appendix 1 to appendix 4, wherein the estimated clock information is estimated as the clock information generated in the other communication device.
  • the key generation unit holds adjustment information representing a difference between the clock information estimated for the other communication device and the clock information generated by the clock generation unit in its own device in association with the other communication device. And When the own device is a communication device on the receiving side that receives communication data from the other communication device, The device information selection unit adjusts the clock information generated by the clock generation unit using the adjustment information, and generates the selection information using the adjusted clock information. The key generation means adjusts the clock information generated by the clock generation means using the adjustment information, and uses the adjusted clock information and the selection information generated by the device information selection means.
  • the communication apparatus according to appendix 5 or appendix 6, wherein the encryption processing unit decrypts the communication data received by the communication unit using the encryption key generated by the key generation unit.
  • the key generation unit holds adjustment information representing a difference between the clock information estimated for the other communication device and the clock information generated by the clock generation unit in its own device in association with the other communication device.
  • the device information selection unit adjusts the clock information generated by the clock generation unit using the adjustment information, and generates the selection information using the adjusted clock information.
  • the key generation means adjusts the clock information generated by the clock generation means using the adjustment information, and uses the adjusted clock information and the selection information generated by the device information selection means.
  • Generate an encryption key The communication apparatus according to appendix 5 or appendix 6, wherein the encryption processing unit encrypts communication data transmitted from the communication unit using the encryption key generated by the key generation unit.
  • the device information management unit stores, as the device information, a pre-shared key held in common by all the communication devices and information unique to the device itself, and the encryption processing unit uses the pre-shared key.
  • the communication means transmits the encrypted communication data to another communication device, When the communication means receives communication data including information unique to the other communication apparatus from another communication apparatus, the encryption processing means receives the communication means using the pre-shared key.
  • the communication device according to any one of appendix 5 to appendix 8, wherein the communication data is decrypted and information unique to the other communication device included in the decrypted communication data is provided to the device information management unit. (Appendix 10)
  • the device information selection unit calculates a hash value of data including at least a part of the selected device information and the clock information generated by the clock generation unit, and provides the calculated hash value as the selection information
  • the communication apparatus according to Supplementary Note 2.
  • the device information selecting means is A plurality of selection processing means for selecting at least a part of the device information different from each other according to the clock information; The one or more selection processing units are selected according to the clock information, and the selection information is generated using at least a part of the device information selected by the selection processing unit.
  • Communication device. A transmitter communication device that is the communication device according to appendix 7, and a receiver communication device that is the communication device according to appendix 7.
  • the encryption processing means in the transmission side communication device encrypts communication data using an encryption key generated by the key generation means according to the clock information generated by the clock generation means in the transmission side communication device.
  • the communication means in the transmission side communication device transmits the encrypted communication data to the reception side communication device
  • the encryption processing means in the receiving communication apparatus adjusts the clock information generated by the clock generating means in the receiving communication apparatus using the adjustment information, and uses the adjusted clock information.
  • a communication system for decrypting communication data received from the transmission side communication device using an encryption key generated by a key generation means. (Appendix 13) A transmission-side communication device that is the communication device according to appendix 8, and a reception-side communication device that is the communication device according to appendix 8.
  • the encryption processing unit in the transmission-side communication device adjusts the clock information generated by the clock generation unit in the transmission-side communication device using the adjustment information, and according to the clock information after adjustment
  • the communication data is encrypted using the encryption key generated by the key generation means
  • the communication means in the transmission side communication device transmits the encrypted communication data to the reception side communication device
  • the encryption processing means in the reception side communication device uses the encryption key generated by the key generation means according to the clock information generated by the clock generation means in the reception side communication device.
  • (Appendix 14) Generate clock information that represents timing using a periodic clock signal, According to the clock information, at least a part of device information that is information commonly stored in one or more communication devices is selected, and information that differs for each clock information from at least a part of the selected device information Generate selection information that is Using at least the clock information and the generated selection information to generate an encryption key; A communication method for executing at least one of an encryption process and a decryption process on communication data using a generated encryption key.
  • a process of generating clock information representing timing using a periodic clock signal According to the clock information, at least a part of device information that is information commonly stored in one or more communication devices is selected, and information that differs for each clock information from at least a part of the selected device information Processing to generate selection information that is, A process of generating an encryption key using at least the clock information and the generated selection information; A recording medium on which a communication program for executing at least one of an encryption process and a decryption process for communication data using a generated encryption key is recorded.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Electric Clocks (AREA)

Abstract

適切な暗号鍵を用いて暗号通信可能な通信装置を提供する。通信装置は、1以上の通信装置に共通して保存される情報である装置情報を記憶可能な装置情報管理部と、周期的なクロック信号を用いて、タイミングを表すクロック情報を生成するクロック発生部と、上記クロック情報に応じて1以上の上記装置情報の少なくとも一部を選択し、選択した上記装置情報の少なくとも一部から、上記クロック情報毎に異なる情報である選択情報を生成する装置情報選択部と、上記クロック情報と、上記装置情報選択部により生成された上記選択情報とを少なくとも用いて、暗号鍵を生成する鍵生成部と、生成された暗号鍵を用いて、暗号化処理と復号処理との少なくとも一方を実行する暗号処理部と、を備える。

Description

通信装置、通信方法、通信システム及び記録媒体
 本開示は、暗号化された通信データを用いて通信を行う技術に関する。
 近年、通信装置の間で暗号化されたデータを送受信する通信方法(以下、「暗号通信」と記載する)が広く用いられている。暗号通信においては、各通信装置が、秘密情報(例えば鍵)を用いて、通信データの暗号化処理及び復号処理を実行する。以下、データの暗号化処理及び復号処理を、まとめて「暗号処理」と記載する。暗号化されていないデータを「平文データ」と記載し、平文データを暗号化したデータを「暗号文データ」と記載する。暗号化に用いられる鍵と、復号に用いられる鍵とをまとめて「暗号鍵」と記載する。暗号化に用いられる鍵と復号に用いられる鍵とは同じ鍵データであってもよく(例えば、共通鍵暗号方式)、異なる鍵データのペアであってもよい(例えば公開鍵暗号方式)。
 暗号鍵が漏洩した場合、その暗号鍵を用いて暗号化された暗号文が危殆化する。また、同じ暗号鍵を用いて暗号化された暗号文の数が増大すると、暗号処理に対する攻撃の手掛かりを攻撃者に与える可能性がある。このため、暗号通信においては、暗号鍵が適宜変更されることがある。
 このような暗号通信に関連する技術が特許文献1に記載されている。即ち、特許文献1には、端末及びホストが予め同じ内容の鍵データテーブルを有し、当該端末とホストとの間で同期された時計データを用いて、鍵データテーブルから暗号鍵を選択する方法が開示されている。
特開2003-101528号公報
 各通信装置が暗号通信を実行する際、暗号処理に用いられる暗号鍵が各通信装置に配布される。しかしながら、通信装置が配備される環境及び通信装置が稼働する状況によっては、係る暗号鍵の配布が容易ではない場合がある。
 例えば、暗号鍵が漏洩するリスクを低減する観点から、各通信装置に対してオフラインで(即ち通信路を介さずに)暗号鍵が配布される場合がある。この場合、通信装置の配備場所や、通信装置の数によっては、各通信装置に対して人手により暗号鍵を配布することは必ずしも容易ではない。暗号鍵の配布が容易ではない場合、暗号鍵を適切に変更できない可能性がある。換言すると、各通信装置は、暗号通信において、安全性の観点から適切な暗号鍵を使用することができない可能性がある。
 ところで、上記特許文献1には、暗号鍵を配布するかわりに、予め用意された鍵データテーブルから暗号鍵を選択することで、暗号鍵を変更する方法が記載されている。係る技術においては、暗号鍵のバリエーションが、鍵データテーブルに予め登録された暗号鍵に限定される。このため、暗号鍵の変更による安全性の改善が限定的であると考えられる。また、特許文献1に係る技術においては、鍵データテーブル自体が危殆化した場合に、鍵データテーブル自体を適切に変更する方法が考慮されていない。
 本開示は、上記のような事情を鑑みてなされたものである。即ち、本開示は、通信装置が適切な暗号鍵を用いて暗号通信を実行することを可能とする技術を提供することを、主たる目的の一つとする。
 上記の目的を達成すべく、本開示の1態様に係る通信装置は、1以上の通信装置に共通して保存される情報である装置情報を記憶可能な装置情報管理部と、周期的なクロック信号を用いて、タイミングを表すクロック情報を生成するクロック発生部と、上記クロック情報に応じて1以上の上記装置情報の少なくとも一部を選択し、選択した上記装置情報の少なくとも一部から、上記クロック情報毎に異なる情報である選択情報を生成する装置情報選択部と、上記クロック情報と、上記装置情報選択部により生成された上記選択情報とを少なくとも用いて、暗号鍵を生成する鍵生成部と、生成された暗号鍵を用いて、暗号化処理と復号処理との少なくとも一方を実行する暗号処理部と、を備える。
 また、本開示の1態様に係る通信方法は、周期的なクロック信号を用いて、タイミングを表すクロック情報を生成し、上記クロック情報に応じて、1以上の通信装置に共通して保存される情報である装置情報の少なくとも一部を選択し、選択した上記装置情報の少なくとも一部から、上記クロック情報毎に異なる情報である選択情報を生成し、上記クロック情報と、上記装置情報選択部により生成された上記選択情報とを少なくとも用いて、暗号鍵を生成し、生成された暗号鍵を用いて、暗号化処理と復号処理との少なくとも一方を実行する。
 また、同目的は、上記構成を有する通信装置、通信方法をコンピュータによって実現するコンピュータ・プログラム、及び、そのコンピュータ・プログラムが格納されているコンピュータ読み取り可能な記憶媒体等によっても達成される。
 即ち、本開示の1態様に係るコンピュータプログラムは、通信装置を構成するコンピュータに、周期的なクロック信号を用いて、タイミングを表すクロック情報を生成する処理と、上記クロック情報に応じて、1以上の通信装置に共通して保存される情報である装置情報の少なくとも一部を選択し、選択した上記装置情報の少なくとも一部から、上記クロック情報毎に異なる情報である選択情報を生成する処理と、上記クロック情報と、生成された上記選択情報とを少なくとも用いて、暗号鍵を生成する処理と、
 生成された暗号鍵を用いて、通信データに関する暗号化処理と復号処理との少なくとも一方を実行する処理と、を実行させるよう構成される。
 本開示によれば、各通信装置は、適切な暗号鍵を用いて暗号通信を実行可能である。
図1Aは、本開示の第1の実施形態における通信装置の機能的な構成を例示するブロック図である。 図1Bは、本開示の第1の実施形態における通信装置の他の機能的な構成を例示するブロック図である。 図2Aは、本開示の第1の実施形態における通信装置を実現可能なハードウェア構成の一例を示す説明図である。 図2Bは、本開示の第1の実施形態における通信装置を実現可能なハードウェア構成の他の一例を示す説明図である。 図2Cは、本開示の第1の実施形態における通信装置を実現可能なハードウェア構成の更に他の一例を示す説明図である。 図3は、本開示の第1の実施形態における通信装置の動作(暗号処理)を説明するフローチャート(その1)である。 図4は、本開示の第1の実施形態における通信装置の動作(暗号鍵の生成処理)を説明するフローチャート(その2)である。 図5は、本開示の第1の実施形態における通信装置の動作(暗号鍵の更新処理)を説明するフローチャート(その3)である。 図6は、本開示の第1の実施形態における通信装置の動作(クロック情報の調整処理)を説明するシーケンス図(その1)である。 図7は、本開示の第1の実施形態における通信装置の動作(クロック情報の調整処理)を模式的に説明する説明図である。 図8は、本開示の第1の実施形態における通信装置の動作(クロック情報の調整処理)を説明するシーケンス図(その2)である。 図9は、本開示の第1の実施形態における通信装置が保持するクロック情報の調整情報に関する具体例を模式的に示す説明図である。 図10は、本開示の第1の実施形態における通信装置による暗号鍵の調整に関する具体例を模式的に示す説明図である。 図11Aは、本開示の第1の実施形態における通信装置による装置情報の受渡しに関する具体例を模式的に示す説明図(その1)である。 図11Bは、本開示の第1の実施形態における通信装置による装置情報の受渡しに関する具体例を模式的に示す説明図(その2)である。 図12は、本開示の第1の実施形態における通信装置を構成する装置情報選択部の構成例を示す説明図である。 図13は、本開示の第1の実施形態における通信装置の動作(選択情報及び暗号鍵の生成処理)を例示するフローチャートである。 図14Aは、本開示の第2の実施形態における通信装置の機能的な構成を例示するブロック図である。 図14Bは、本開示の第2の実施形態における通信装置の他の機能的な構成を例示するブロック図である。
 本開示の実施形態に関する説明に先立って、本開示に関する技術的な検討事項等についてより詳細に説明する。
 上記したように、暗号通信を実行可能な各通信装置は、通信データに関する暗号処理に用いられる暗号鍵を有する。例えば、共通鍵暗号方式を用いる場合、ある通信装置は、他の通信装置と共通の暗号鍵を用いて、通信データに関する暗号処理を実行する。例えば、公開鍵暗号方式を用いる場合、ある通信装置は、他の通信装置が開示した公開鍵を用いて通信データを暗号化する。この場合、暗号化された通信データを受信した通信装置は、秘密鍵を用いて当該通信データを復号する。どちらの場合も、それぞれの通信装置には、暗号鍵が配布される。
 暗号通信において、同じ暗号鍵を用いて暗号化されたデータが増大すると、攻撃者が入手可能な暗号解読の手掛かりが増大し得る。このようなリスクを低減する観点から、暗号通信においては、暗号鍵を適切に変更する処理が実行される。
 暗号鍵が変更される際、各通信装置に対して暗号鍵が配布されることがある。オンラインにより(即ち通信回線を介して)、暗号鍵を配布する一般的な方法は広く用いられている。しかしながら、例えば、オンラインによる暗号鍵の配布において万が一暗号鍵が漏洩した場合、暗号通信の実行者は、暗号鍵の漏洩及び攻撃者による通信データの解読に気付けない可能性がある。
 暗号鍵の漏洩に関するリスクを低減する方法の一つとして、オフラインにより(即ち、通信回線を介さずに)暗号鍵を配布する方法が考えられる。オフラインにより暗号鍵を配布する方法の一つとして、例えば、暗号通信の実行者及び通信装置のユーザ(以下単に「ユーザ」と記載する)は、各通信装置に暗号鍵を手作業で配布することができる。しかしながら、通信装置の数が多い場合や、通信装置の配置場所が離間している場合、各通信装置に対して手作業で鍵を配布することは、必ずしも容易ではない可能性がある。暗号鍵の配布が容易ではない場合、暗号鍵を適切なタイミングで変更できない可能性がある。これにより、暗号通信の安全性に関する問題が引き起こされる可能性がある。
 そこで、以下に説明する本開示の各実施形態においては、オフラインによる鍵配布の問題点を解決可能な通信装置等について説明する。各実施形態における通信装置は、例えば、各通信装置が保持する情報と、時間の経過に伴い変化する情報(例えば、時刻、経過時間、時刻又は経過時間に応じて増減するカウンタ値等)とを用いて、暗号鍵を生成する。例えば、各通信装置において、暗号鍵の生成に用いられる情報が共通する場合、各通信装置は共通する暗号鍵を生成可能である。これにより、各通信装置は、例えば、明示的に相互に暗号鍵を配布することなく、共通の暗号鍵を使用可能である。以下、各実施形態について詳細に説明する。
 なお、以下の各実施形態に記載されている通信装置の構成は例示であり、本開示の技術範囲はそれらには限定されない。以下の各実施形態における通信装置を構成する構成要素の区分け(例えば、機能的な単位による分割)は、当該通信装置を実現可能な一例である。当該通信装置の実装に際しては、以下の例示に限定されず、様々な構成が想定される。即ち、以下の各実施形態における通信装置を構成する構成要素は、更に分割されてもよく、1以上の構成要素が統合されてもよい。
 以下において説明する通信装置は、単体の装置(物理的あるいは仮想的な装置)を用いて構成されてもよく、複数の離間した装置(物理的あるいは仮想的な装置)を用いて実現されてもよい。以下において説明する通信装置、あるいは、その構成要素を実現可能なハードウェア構成については、後述する。
 <第1の実施形態>
 以下、本開示の第1の実施形態における通信装置について説明する。
 [機能的な構成]
 図1Aは、本実施形態における通信装置100の機能的な構成を例示するブロック図である。
 通信装置100は、暗号通信を実行可能な装置である。1つの通信装置100に対して、1以上の他の通信装置100が通信可能に接続される。各通信装置100を接続する通信路は、例えば、無線通信、有線通信、又はそれらの組合せにより実現されてよい。また、係る通信に用いられる通信プロトコルは、特に制限されず、適宜選択されてよい。
 図1Aに例示するように、通信装置100は、装置情報管理部101、クロック発生部102、装置情報選択部103、鍵生成部104、暗号処理部105を含む。通信装置100は、通信部106及びデータ転送部107を含んでもよい。通信装置100を構成するこれらの構成要素の間は、データ及び指令(コマンド)等を伝達可能に接続されていてもよい。以下、通信装置100を構成するこれらの構成要素について説明する。
 装置情報管理部101は、暗号通信における暗号鍵の生成に用いられるデータ(以下、「装置情報」と記載する)を記憶(保持)する。装置情報管理部101は、例えば、通信装置100に固有の情報(例えば、通信装置100に含まれるデバイスに関する情報等)を装置情報として保持してもよい。また、装置情報管理部101は、通信装置100に対して外部から与えられるデータ(例えば、各種設定情報等)を装置情報として保持してもよい。
 具体的な装置情報として、例えば、以下のような情報が用いられ得る。即ち、装置情報として、通信装置に含まれるCPU(Central Processing Unit)を識別可能なID(識別子:Identifier)であるCPUIDが用いられてもよい。装置情報として、例えば、通信装置に含まれる通信インタフェースに割り当てられたMAC(Media Access Control)アドレスが用いられてもよい。装置情報として、例えば、通信装置100のシリアル番号、型式番号等が用いられてもよい。上記に限定されず、装置情報としては、その他の適切な情報が選択されてよい。
 上記装置情報の一つのバリエーションとして、装置情報管理部101は、全ての通信装置100に共通して含まれる、ある特定の共通データを保持してもよい。係る特定の共通データは、例えば、通信装置100の製造、配備、稼働、メンテナンスなどの各場面で適宜設定されてよい。係る特定の共通データは、例えば、各通信装置100が共通に保持する鍵(事前共有鍵)であってもよい。なお、通信装置100が事前共有鍵を保持することは必須ではない。即ち、通信装置100は、必要に応じて、事前共有鍵を保持してもよく、保持しなくてもよい。
 ある通信装置100と、他の通信装置100とには、例えば、予め同じ内容の装置情報が与えられてもよい。ある通信装置100と、他の通信装置100とは、例えば、相互にデータを送受信することで、同じ内容の装置情報を保持してもよい。ある通信装置100及び他の通信装置100は、それぞれが保持するデータを用いて所定の演算を実行することで、同じ内容の装置情報を生成してもよい。
 クロック発生部102は、周期的なクロック信号を用いて、タイミングを表す情報であるクロック情報を生成するよう構成される。クロック発生部102は、生成したクロック情報を、通信装置100の他の構成要素に提供可能である。
 クロック発生部102は、例えば、所定の周波数精度を満足するクロック信号を生成可能な適切なデバイス(発振デバイス等)を用いて、クロック信号を生成する。具体的には、クロック発生部102は、例えば、ルビジウム原子発振器、セシウム原子発振器等を含む原子時計を用いてクロック信号を生成してよい。この場合、クロック発生部102は、極めて高精度な(例えば、周波数精度が”±5×10E-11”程度)のクロック信号を生成することができる。
 原子時計等の極めて高精度なデバイスを使用するかわりに、クロック発生部102は、例えば、一般的な水晶発振器を用いてクロック信号を生成してもよい。この場合、クロック発生部102は、クロック信号を適切に調整することにより、クロック信号の精度を維持してもよい。例えば、クロック発生部102は、クロック信号の立ち上がりのタイミング又は立下がりのタイミングを、特定のタイミングに合わせるように、クロック信号を調整してもよい。クロック信号を調整する特定のタイミングは、例えば、定期的なタイミングであってもよく、特定の時刻を表すタイミングあってもよい。
 クロック発生部102は、例えば、通信装置100の外部から与えられる時刻情報を用いて、クロック信号を調整してもよい。クロック発生部102が時刻情報を取得する方法は、特に限定されず、適切な方法を採用してよい。時刻情報を取得する方法の一例として、クロック発生部102は、例えば、GPS(Global Positioning System)信号、標準電波信号(JJY)等から時刻方法を取得してもよい。クロック発生部102は、例えば、通信部106(後述)を介してNTP(Network Time Protocol)サーバから時刻情報を取得してもよい。GPS、標準電波、NTPからは、原子時計を用いて生成された正確な時刻情報を得ることができることから、クロック発生部102は正確な時刻情報を用いてクロック信号を調整可能である。
 クロック発生部102が生成するクロック情報は、例えば、周期的なクロック信号そのものを表す情報であってもよい。また、クロック情報は、あるタイミングからのクロック信号を計数したカウンタ値を表す情報であってもよい。また、クロック発生部102は、時刻を表す情報を含むクロック情報を生成してもよい。この場合、クロック発生部102は、外部から取得した時刻情報と、生成したクロック信号とを用いて、あるタイミングにおける時刻を含むクロック情報を生成することができる。また、クロック発生部102は、あるタイミングからの経過時間を表す情報を含むクロック情報を生成してもよい。
 クロック発生部102は、他の通信装置100との間でクロック情報の差分を調整する処理を実行するよう構成されてもよい。クロック情報の差分を調整する処理については、後述する。
 装置情報選択部103は、クロック発生部102から提供されるクロック情報に応じて、装置情報管理部101に保持された装置情報の少なくとも一部を選択し、選択した情報を用いて、クロックに応じて異なる情報である選択情報を生成する。即ち、装置情報選択部103は、装置情報管理部101に保持された装置情報の少なくとも一部を用いて、クロック情報毎に異なる情報を生成する。以下、装置情報管理部101に保持された装置情報の少なくとも一部を選択する方法を、「選択アルゴリズム」と記載する場合がある。
 選択情報を生成する具体的な方法は、特に限定されない。装置情報選択部103は、例えば、装置情報と、クロック情報とを入力として所定の演算処理を実行することにより、クロック情報に応じて異なる情報を生成してもよい。
 装置情報選択部103は、クロック発生部102から提供されるクロック情報を、当該クロック情報に関する特定の範囲毎に、代表値(例えば、当該範囲の上限値、下限値、中央値等)に変換してもよい。
 例えば、クロック情報が時刻を表す場合、装置情報選択部103は、クロック情報により表される時刻を、ある時間範囲の代表値に変換してもよい。一つの具体例として、係る時間範囲が「10秒」に設定されている場合を想定する。この場合、装置情報選択部103は、例えば、0秒以上10秒未満の時間を、代表値(下限値)である「0秒」に変換してもよい。同様に、装置情報選択部103は、例えば、10秒以上20秒未満の時間を、代表値(下限値)である「10秒」に変換してもよい。20秒以上の時間についても同様である。なお、係る時間範囲はより短い時間の範囲(例えばミリ秒単位等)であってもよく、より長い時間の範囲(例えば、分単位、時間単位等)であってもよい。
 例えば、クロック情報がカウンタ値を表す場合、装置情報選択部103は、クロック情報により表されるカウンタ値を、ある範囲の代表値に変換してもよい。係るカウンタ値の範囲として、例えば「100」が設定されている場合を想定する。この場合、装置情報選択部103は、例えば、0以上100未満のカウンタ値を、代表値(下限値)である「0」に変換してもよい。同様に、装置情報選択部103は、例えば、100以上200未満のカウンタ値を、代表値(下限値)である「100」に変換してもよい。カウンタ値200以上についても同様である。係るカウンタ値の範囲は、より小さな範囲であってもよく、より大きな範囲であってもよい。
 上記のような処理により、装置情報選択部103は、クロック情報が所定の範囲内で変動した場合であっても、代表値をクロック情報として用いることで、変動による影響を吸収することができる。
 以下、選択情報を生成する方法の具体例について説明する。
 例えば、装置情報管理部101に、装置情報として、「装置情報#1」、「装置情報#2」、「装置情報#3」・・・、「装置情報#i」の”i個”(iは正整数)の情報を表すデータが保持されていることを想定する。
 装置情報の少なくとも一部を選択する方法として、装置情報選択部103は、例えば、クロック情報に応じて、i個の装置情報から1以上の装置情報を選択してもよい。例えば、装置情報選択部103は、クロック情報を数値として扱い、係る数値の”i”による剰余(以下”mod i”と記載する)を算出してもよい。そして、装置情報選択部103は、i個の装置情報の内、”mod i”個目の装置情報を選択してもよい。
 装置情報の少なくとも一部を選択する他の方法として、装置情報選択部103は、例えば、装置情報を表すデータを1以上の部分に分割し、クロック情報に応じて、そのうちの1以上の部分を選択してもよい。
 具体的には、例えば、装置情報選択部103は、装置情報#1~装置情報#iのうち、1以上の装置情報を選択し、当該装置情報を表すデータを、それぞれn(nは自然数)個の部分に分割する。例えば、装置情報選択部103は、装置情報を表すデータのサイズに応じて当該データをn等分してもよい。装置情報を表すデータを分割する方法は、上記に限定されず、適切な方法を適宜選択してよい。装置情報選択部103は、それぞれの装置情報を表すデータから1以上の部分を選択し、それらを結合してもよい。
 装置情報の少なくとも一部を選択する他の方法として、装置情報選択部103は、例えば、クロック情報に応じて、i個の装置情報から1以上の装置情報を選択してランダムに並べたデータを生成してもよい。
 装置情報の少なくとも一部を選択する他の方法として、装置情報選択部103は、例えば、i個の装置情報を並べて結合したデータから、クロック情報に応じて、一部のデータを抽出してもよい。例えば、i個の装置情報を並べたデータのサイズが”N”ビット(bit)であると想定する。装置情報選択部103は、”N”ビットのデータから、ランダムに”n”ビットのデータを選択してもよい。この場合、装置情報選択部103は、例えば、クロック情報をシードとして、1以上”N”以下の乱数を”n”個生成する。ある乱数の値が”j”(1≦j≦N)である場合、装置情報選択部103は、”N”ビットのデータのうち”j”ビット目のデータを抽出する。上記処理を”n”個の乱数について実行することで、装置情報選択部103は、少なくとも”n”ビットのデータを抽出可能である。
 装置情報の少なくとも一部を選択する方法は上記例示に限定されない。装置情報選択部103は、装置情報の少なくとも一部を選択する方法として、上記方法を適宜組み合わせてもよく、上記とは異なる方法を適宜採用してもよい。上記のような処理により、装置情報選択部103は、クロック情報に応じて、装置情報の少なくとも一部を選択可能である。
 装置情報選択部103は、選択した1以上の装置情報(あるいはその一部)をそのまま選択情報として提供してもよい。装置情報管理部101が保持する装置情報のバリエーションが十分に多い場合は、装置情報選択部103は、これにより、クロック情報に応じて異なる選択情報を提供することができる。
 また、装置情報選択部103は、選択した装置情報(あるいはその一部)と、クロック情報とを用いて所定の演算処理を実行した結果を、選択情報として提供してもよい。装置情報選択部103は、例えば、選択した装置情報及びクロック情報を含むデータ(例えば、選択した装置情報とクロック情報とを結合したデータ)のハッシュ値を算出し、係るハッシュ値を選択情報として提供してもよい。装置情報選択部103は、ハッシュ関数として、暗号論的に安全なハッシュ関数(例えば、SHA(Secure Hash Algorithm)-2等)を用いてもよい。これにより、装置情報管理部101が保持する装置情報のバリエーションが比較的少ない場合であっても、クロック情報に応じて異なる情報を選択情報として生成することが可能である。即ち、暗号鍵の生成に用いられる情報のバリエーションを増やすことができる。また、ハッシュ値から元のデータ(例えば、装置情報の一部)を算出することは困難であることから、選択情報の生成に用いられるデータを秘匿することが可能である。
 鍵生成部104は、クロック発生部102から提供されるクロック情報と、装置情報選択部103により生成された選択情報とを用いて、暗号鍵を生成する。
 鍵生成部104は、例えば、選択情報とクロック情報とをシードとして、暗号論的に安全な周知の疑似乱数生成器を用いて乱数を生成し、当該乱数を暗号鍵として提供してもよい。また、鍵生成部104は、例えば、選択情報を鍵として用いて、暗号論的に安全な周知の暗号アルゴリズムを用いてクロック情報を暗号化した結果を、暗号鍵として提供してもよい。また、鍵生成部104は、適切なハッシュ関数を用いて算出した選択情報及びクロック情報のハッシュ値を、暗号鍵として提供してもよい。これにより、鍵生成部104は、選択情報と、クロック情報とに応じて異なる暗号鍵を生成することができる。
 なお、鍵生成部104は、装置情報選択部103と同様に、クロック発生部102から提供されるクロック情報を、当該クロック情報に関する所定の範囲毎に、代表値に変換してもよい。これにより、鍵生成部104は、クロック情報が所定の範囲内で変動した場合であっても、代表値をクロック情報として用いることで、変動による影響を吸収することができる。
 鍵生成部104は、適切なタイミングで暗号鍵を変更(更新)するよう構成される。鍵生成部104が暗号鍵を変更(更新)することにより、暗号通信の安全性を適切に維持することが可能である。
 具体的には、鍵生成部104は、例えば、定期的に暗号鍵を生成して暗号処理部105(後述)に提供してもよい。鍵生成部104は、例えば、ある特定のタイミングで暗号鍵を生成して暗号処理部105に提供してもよい。鍵生成部104は、例えば、暗号処理部105からの要求に応じて暗号鍵を生成して、暗号処理部105に提供してもよい。
 鍵生成部104は、暗号鍵を変更するタイミングを表す設定値を保持してもよい。例えば、クロック情報が時刻情報を含む場合、係る設定値には、暗号鍵が変更される時刻が設定されてもよい。例えば、クロック情報がカウンタ値を含む場合、係る設定には、暗号鍵が変更される際のカウンタ値が設定されてもよい。
 暗号処理部105は、鍵生成部104が生成した暗号鍵を用いて、暗号処理を実行する。暗号処理部105が暗号処理に用いる暗号アルゴリズムは特に限定されず、例えば、暗号論的に安全性が確認された周知の暗号アルゴリズムを採用可能である。
 暗号処理部105は、通信部106から暗号化された通信データを受け取り、鍵生成部104が生成した鍵データを用いて、当該通信データを復号する。暗号処理部105は、復号した通信データをデータ転送部107に提供してもよい。また、暗号処理部105は、鍵生成部104が生成した暗号鍵を用いて、データ転送部107から提供された平文の通信データを暗号化し、通信部106に提供する。
 暗号処理部105は、通信部106(後述)が複数存在する場合、図1Bに例示するように、通信部106毎に暗号処理を並列に実行するよう構成されてもよい。例えば、暗号化実行部105aは、暗号鍵を用いて、平文の通信データを暗号化する処理を実行する。また、復号実行部105bは、暗号化された通信データを通信部106から受け付け、暗号鍵を用いて当該通信データを復号する。暗号化実行部105a、復号実行部105bは、例えば、スレッド、プロセス、タスク等のソフトウェア・プログラムとして実現されてもよい。また、暗号化実行部105a、復号実行部105bは、例えば、並列処理を実行可能なハードウェアの回路要素として実現されてもよい。
 暗号処理部105は、他の通信装置100から受信した通信データを正しく復号できたか否かを、通信部106を用いて他の通信装置100に対して通知するよう構成されてもよい。
 通信部106は、暗号処理部105により暗号化された通信データを、他の通信装置100との間で送受信する。具体的には、通信部106は、暗号処理部105から暗号化された通信データを受け付け、他の通信装置100に送信する。通信部106は、他の通信装置100から受信した暗号化された通信データを、暗号処理部105に提供する。
 通信装置100には、1以上の通信部106が設けられていてもよい。各通信部106は、それぞれ別の他の通信装置100との間で通信データを送受信してもよい。即ち、通信部106と、当該通信部106が通信データを送受信する他の通信装置100とは、1対1に対応していてもよい。また、一つの通信部106が、複数の他の通信装置100に通信可能に接続されていてもよい。
 通信部106は、当該通信部106が通信データを送受信する他の通信装置100との間の通信路において生じる遅延を測定してもよい。通信路における遅延を測定する方法は、周知の技術を採用してよい。
 データ転送部107は、通信データに関する転送処理を実行する。データ転送部107は、例えば暗号処理部105から提供された平文の通信データを解析し、当該通信データに関するルーティング、あるいは、スイッチング等の処理を実行する。
 データ転送部107は、通信装置100の内部又は外部で生成されたデータを受け付け、当該データを暗号処理部105により暗号化し、通信部106を介して他の通信装置100に送信するよう構成されてもよい。
 [ハードウェア構成]
 上記のような機能的な構成を有する通信装置100を実現可能なハードウェア構成の具体例について、図2A乃至図2Cを参照して説明する。なお、図2A乃至図2Cに例示するハードウェアは、通信装置100を実現可能な具体例の一つであり、通信装置100を実現可能なハードウェアはこれらに限定されない。また、図2A乃至図2Cに例示するハードウェア構成は、物理的なハードウェアにより実現されてもよく、仮想化されたハードウェアにより実現されてもよい。以下、各図に例示した構成について説明する。
 図2Aに例示する通信装置100は、プロセッサ201と、メモリ202と、クロック発生器203と、通信ポートを含む通信インタフェース204と、を含む。通信装置100は、ストレージ205と、入出力インタフェース206と、ドライブ装置208と、更に含んでもよい。これらの構成要素は、例えば、適切な通信回線(通信バス等)を介して相互に接続されている。
 図2A乃至図2Cに例示される通信装置100の、各構成要素は、例えば、それぞれの機能を提供可能な回路構成(circuitry)により実現されてもよい。係る回路構成は、例えば、SoC(System on a Chip)等の集積回路や、当該集積回路を用いて実現されたチップセット等を含む。この場合、通信装置100の構成要素が保持するデータは、例えば、SoCとして統合されたRAM(Random Access Memory)領域やフラッシュメモリ領域、あるいは、当該SoCに接続された記憶デバイス(半導体記憶装置等)に記憶されてもよい。以下、各構成要素について説明する。
 プロセッサ201は、汎用のCPUやマイクロプロセッサであってもよく、プログラマブル素子を用いて実現された論理回路であってもよい。プロセッサ201は、メモリ202に読み出されたソフトウェア・プログラムに従って、処理を実行する。
 メモリ202は、例えば、プロセッサ201から参照可能なRAM等のメモリデバイスである。メモリ202には、例えば、上記説明した通信装置100の各構成要素を実現可能なソフトウェア・プログラムが記憶される。
 例えば、装置情報管理部101は、プロセッサ201が装置情報管理プログラムを実行することにより実現されてもよい。装置情報管理部101が保持する装置情報は、例えば、後述するストレージ205に保持されてもよい。
 例えば、クロック発生部102は、プロセッサ201がクロック発生プログラムを実行することにより実現されてもよい。この場合、クロック発生プログラムは、後述するクロック発生器203が提供するデータを用いて、クロック情報を生成する。なお、クロック発生プログラムに相当する機能が、クロック発生器203に組み込まれてもよい。
 例えば、装置情報選択部103は、プロセッサ201が装置情報選択プログラムを実行することにより実現されてもよい。装置情報選択プログラムは、クロック発生プログラムからクロック情報を表すデータを取得し、装置情報管理プログラムにより提供される装置情報を取得する。
 例えば、鍵生成部104は、プロセッサ201が鍵生成プログラムを実行することにより実現されてもよい。この場合、鍵生成プログラムは、クロック発生プログラムからクロック情報を取得し、装置情報選択プログラムにより提供される選択情報を取得する。
 例えば、暗号処理部105は、プロセッサ201が暗号処理プログラムを実行することにより実現されてもよい。この場合、暗号処理プログラムは、例えば、鍵生成プログラムが提供する暗号鍵を取得する。また、暗号処理プログラムは、例えば、通信インタフェース204から暗号化された通信データを取得してよい。
 データ転送部107は、プロセッサ201がデータ転送プログラムを実行することにより実現されてもよい。この場合、データ転送部は、例えば、暗号処理プログラムが提供する平文データを取得する。
 プロセッサ201により実行される各ソフトウェア・プログラムは、例えば、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成されてもよい。
 クロック発生器203は、例えば、クロック信号を生成するデバイス(例えば原子時計等)を含むデバイスである。また、クロック発生器203は、時刻情報を取得するデバイス(例えば、GPSユニット、標準電波受信ユニット等)を含んでもよい。クロック発生器203は、生成したクロック信号あるいは時刻情報を、他の構成要素に提供してよい。
 通信インタフェース204は、通信ネットワークに接続される通信ポートと、データの送受信を制御するコントローラとを含むデバイスである。通信装置100が有線通信回線に接続される場合、通信インタフェースには通信ケーブルが接続されてもよい。通信装置100が無線通信回線に接続される場合、通信インタフェースには通信用のアンテナ等が接続されてもよい。図1A、図1Bにおける通信部106は、通信インタフェース204を用いて実現されてよい。
 ストレージ205は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置等の、不揮発性の記憶装置である。ストレージ205は、各種ソフトウェア・プログラム及び、当該ソフトウェア・プログラムが使用するデータ等を記憶可能である。
 入出力インタフェース206は、例えば、入出力装置207との間の入出力を制御するデバイスである。入出力装置207は、例えば、通信装置100と、ユーザとの間のインタフェースを実現するデバイス(ディスプレイ、操作ボタン、音声入出力デバイス等)であってもよい。なお、通信装置100は、入出力インタフェース206を含まなくともよい。
 ドライブ装置208は、例えば、後述する記憶媒体209に対するデータの読み込みや書き込みを処理する装置である。なお、通信装置100は、ドライブ装置208を含まなくともよい。
 記憶媒体209は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な記憶媒体である。上記ソフトウェア・プログラムは記憶媒体209に記録され、通信装置100の出荷段階、あるいは運用段階等において、適宜ドライブ装置208を通じてストレージ205に格納されてもよい。上記の場合において、各種ソフトウェア・プログラムは、適当なツールを利用して通信装置100にインストールされてもよい。上記の場合において、通信装置100の構成要素は、上記各ソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み取り可能な記憶媒体によって構成されると捉えることができる。
 なお、各通信装置に対して手動で暗号鍵(例えば、事前共有鍵)を設定する場合、係る暗号鍵は、記憶媒体209を用いて各通信装置100に配布されてもよい。
 上記に限定されず、通信装置100は、図2Bに例示するような構成により実現することも可能である。図2Bは、図2Aの構成に対して、暗号処理デバイス210を更に含む。
 暗号処理デバイス210は、暗号処理を実行する回路構成と、鍵生成処理を実行する回路構成等を含むデバイスである。暗号処理デバイス210は、例えば、FPGA(field-programmable gate array)や、ASIC(application specific integrated circuit)を用いて実現されてもよい。
 暗号処理デバイス210には、例えば、図1Bに例示する暗号化実行部105a及び復号実行部105bの処理を実行可能な回路が複数実装されてもよい。これらの回路は、通信インタフェース204が有する通信ポート毎に、当該通信ポートにおいて送受信される通信データに関する暗号処理を並列に実行してもよい。
 なお、暗号処理デバイス210は、例えば、図2Cに例示するように、通信インタフェース204内に実装されてもよい。この場合、各通信インタフェース204に実装された暗号処理デバイス210は、当該通信インタフェース204に含まれる通信ポートにおいて送受信される通信データに関する暗号処理を実行する。
 [動作]
 上記のように構成された通信装置100の動作について説明する。
 (暗号鍵の生成及び暗号処理)
 以下、通信装置100における、暗号処理の実行について説明する。以下においては、説明の便宜上、ある通信装置100(仮に「通信装置X」と記載する)と、他の通信装置100(仮に「通信装置Y」と記載する)とが同じ内容の装置情報を有することを想定する。また、それぞれの通信装置100が原子時計を用いてクロック信号を生成すること、及び、当該クロック信号を用いて生成するクロック情報が同期していることを想定する。なお、2以上のクロック情報が同期しているとは、それらのクロック情報が同一であるか(即ち差分(ズレ)がない)、あるいは、それらの間の差分がある基準範囲内にあることを意味する。また、各通信装置は、共通鍵暗号方式を用いて通信データを暗号化することを想定する。
 図3は、通信装置100が他の通信装置100と暗号通信を実行する際の動作の一例を表すフローチャートである。
 ステップS301において、通信装置100に装置情報が登録される。装置情報管理部101は、当該装置情報を保持する。例えば、通信装置に予め装置情報が設定されている場合、ステップS301は実行されなくともよい。各通信装置100(例えば、通信装置X及び通信装置Y)には、同じ内容の装置情報が登録されることを想定する。
 通信装置100におけるクロック発生部102は、クロック情報を生成する(ステップS302)。クロック発生部102は、上記したように、原子時計を用いてクロック信号を生成し、当該クロック信号を用いてクロック情報を生成する。原子時計は、精度の高いクロック信号を生成可能であり、短期間で誤差が蓄積する(即ちクロックのずれ(差分)が生じる)可能性は低い。よって、各通信装置100のクロック信号が同期されている場合、係るクロック信号を用いて各通信装置100は同じ内容のクロック情報を生成可能であると考えられる。よって、原子時計等を用いて高精度なクロック信号を生成できる場合、各通信装置100は、他の通信装置100との間のクロック情報の差分を頻繁に調整しなくてもよい。
 クロック発生部102は、生成したクロック信号を計数したカウンタを表す情報を、クロック情報としてもよい。クロック信号の計数を開始するタイミングは適宜定められてよい。上記に限らず、クロック発生部102は、時刻を表す情報を含むクロック情報を生成してもよい。
 通信装置100は、ステップS301において登録された装置情報と、ステップS302において生成されたクロック情報とから、暗号鍵を生成する(ステップS303)。以下、図4を参照して、暗号鍵の生成処理について説明する。
 通信装置100における装置情報選択部103は、ステップS301において登録された装置情報と、ステップS302において生成されたクロック情報とから、選択情報を生成する(ステップS401)。装置情報選択部103は、クロック情報に応じて、装置情報管理部101に保持された装置情報の少なくとも一部を選択する。装置情報選択部103が装置情報の少なくとも一部を選択する動作の具体例は、上記において説明した通りである。
 装置情報選択部103は、選択した装置情報の少なくとも一部を用いて、クロック情報毎に異なる選択情報を生成する。装置情報選択部103が選択情報を生成する動作の具体例は、上記において説明した通りである。
 装置情報選択部103は、上記説明したように、クロック発生部102から取得したクロック情報を、代表値に変換してもよい。これにより、各通信装置100のクロック情報に微小な差分が生じた場合であっても係る差分を吸収することが可能であり、各通信装置100(通信装置X及び通信装置Y)が同じ選択情報を生成可能である。
 通信装置100における鍵生成部104は、ステップS401において生成された選択情報と、クロック情報とから、暗号処理に用いられる暗号アルゴリズムに応じた暗号鍵を生成する(ステップS402)。鍵生成部104が、暗号鍵を生成する動作の具体例は、上記において説明した通りである。係る処理により、各通信装置100(通信装置X及び通信装置Y)は、同じ内容の暗号鍵を生成することができる。
 鍵生成部104は、上記説明したように、クロック発生部102から取得したクロック情報を、代表値に変換してもよい。これにより、各通信装置100のクロック情報に微小な差分が生じた場合であっても係る差分を吸収することが可能である。
 上記処理により、通信装置100は、クロック情報及び装置情報に応じて多様なバリエーションの暗号鍵を生成することが可能である。その理由は、クロック情報に応じて装置情報の一部が選択することにより、暗号鍵を生成する際に用いられる選択情報のバリエーションを増やせるからである。装置情報管理部101が保持する装置情報が比較的少量な場合でも、クロック情報を用いて選択情報を生成することにより、暗号鍵のバリエーションを増やすことができる。
 通信装置100における暗号処理部105は、ステップS303(ステップS401乃至S402)において生成された暗号鍵を用いて暗号処理を実行する(ステップS304)。
 暗号処理部105は、例えば、データ転送部107から提供された平文データを暗号化し、通信部106に提供する。例えば、通信装置Xにおける通信部106は、暗号化された通信データを通信装置Yに送信する。
 暗号処理部105は、例えば、通信部106が受信した暗号化された通信データを復号し、データ転送部107に提供してよい。例えば、通信装置Xにおける通信部106は、通信装置Yから受信した暗号化されたデータを、通信装置Xにおける暗号処理部105に提供する。通信装置Xにおける暗号処理部105は、その通信データを復号し、通信装置Xにおけるデータ転送部107に提供する。
 (暗号鍵の更新)
 以下、図5を参照して、暗号鍵の変更(更新)について説明する。以下において説明する、通信装置100の各構成要素の処理(動作)は一つの具体例であり、ある処理(動作)を実行する構成要素は適宜選択可能である。一例として、以下の処理は、装置情報管理部101が、他の構成要素に指示を与えることにより実行されてもよい。
 鍵生成部104はクロック発生部102が生成するクロック情報を確認する(ステップS501)。
 鍵生成部104は、ステップS501における確認の結果、鍵変更タイミングが到来したか否かを判定する。鍵生成部104は、例えば、クロック発生部102から取得したクロック情報と、暗号鍵を変更するタイミングを表す設定値とを比較することで、鍵変更タイミングが到来したか否かを判定してもよい。
 例えば、クロック情報がカウンタ値を表す場合、鍵生成部104は、クロック情報に含まれるカウンタ値と、設定値に含まれるカウンタ値とを比較することで、鍵変更タイミングが到来したか否かを判定してもよい。
 また、例えば、クロック情報が時刻情報を表す場合、鍵生成部104は、クロック情報に含まれる時刻と、設定値に含まれる時刻とを比較することで、鍵変更タイミングが到来したか否かを判定してもよい。
 鍵変更タイミングが到来した場合(ステップS502においてYES)、鍵生成部104は、暗号鍵生成処理を実行する(ステップS503)。ステップS503において実行される処理は、図4に例示するステップS401及びステップS402と同様としてよい。鍵生成部104は、生成した新たな暗号鍵を、暗号処理部105に提供してよい。
 鍵変更タイミングが到来していない場合(ステップS502においてNO)、鍵生成部104は、ステップS501から処理を続行する。
 鍵生成部104は、鍵変更タイミングを更新する(ステップS504)。鍵生成部104は、例えば、暗号鍵を変更するタイミングを表す設定値に、暗号鍵を変更する次回のタイミングを設定する。
 鍵生成部104は、鍵更新処理を継続する場合(ステップS505においてYES)、ステップS501から処理を続行する。鍵更新処理を継続しない場合(ステップS505においてNO)、鍵生成部104は処理を終了する。
 上記説明した処理により、鍵生成部104は、適切なタイミングで暗号鍵を変更(更新)することができる。また、暗号鍵が変更される際、各通信装置100に暗号鍵を明示的に配布しなくてもよい。その理由は、各通信装置100が、同じ内容の装置情報と、クロック情報とを用いて暗号鍵を生成できるからである。具体的には、例えば、各通信装置100が生成するクロック信号が同期していれば、各通信装置100は、同じ内容のクロック情報を生成することができる。各通信装置100は、同じタイミング(即ち同じクロック情報)で、同じ内容の装置情報を用いることで、同じ内容の暗号鍵を生成することができる。よって、暗号鍵を変更(更新)する際、各通信装置100に対して暗号鍵を配布しなくてもよい。
 以上より、本実施形態における通信装置100は、他の通信装置100と、適切な暗号鍵を用いて暗号通信を実行することが可能である。
 なお、鍵生成部140が暗号鍵を変更した場合、暗号処理部105は、暗号処理に用いる暗号鍵を適宜変更してよい。例えば、送信側の通信装置100から送信する1つのデータが、”M”(”M”は自然数)個の通信データ(例えば”M”個のパケット)に分割して送信される場合を想定する。1個目~”m”個目(”m”は”M”未満の自然数)までのパケットを送信したタイミングで暗号鍵が変更された場合、暗号処理部105は、(”m+1”)個目~”M”個目までのパケットを、変更された後の暗号鍵を用いて暗号化する。これにより、一つのデータが複数の部分(パケット)に分割され、部分毎に異なる暗号鍵を用いて暗号化される。これにより、仮にある部分の暗号化に用いられた暗号鍵が危殆化した場合であっても、データ全体が復号されることがない。
 各通信装置100は、例えば、原子時計を用いて生成した高精度なクロック信号を用いてクロック情報を生成することから、各通信装置100において暗号鍵が変更されるタイミングも、高い精度で同期され得る。よって、各通信装置100は、暗号鍵が変更されたタイミングに応じて、一つのデータを、部分毎に異なる暗号鍵を用いて暗号化することが可能である。
 更に、暗号処理部105は、一つの通信データ(例えば一つのパケット)に対する暗号処理の途中で、暗号鍵を変更してもよい。仮に、”M”(”M”は自然数)バイト(byte)の通信データのうち、”m”(”m”は”M”未満の自然数)バイト目までのデータが暗号化されたタイミングで、暗号鍵が変更されることを想定する。具体的には、1~”m”バイトまでのデータはクロック情報CKLI(t1)を用いて生成された暗号鍵KEY(t1)により暗号化され、(”m+1”)~”M”バイトまでのデータは、クロック情報CLKI(t1+1)を用いて生成された暗号鍵KEY(t1+1)により暗号化されることを想定する。
 この場合、送信側の通信装置100は、例えば、異なる暗号鍵により暗号化された各部分を特定可能なデータと、各部分の暗号化に用いられた暗号鍵を特定可能なデータとを、KEY(t1+1)により暗号化して、通信データに付加する。以下、付加されたデータを「付加データ」と記載する。異なる暗号鍵により暗号化された各部分を特定可能なデータは、例えば、先頭からのオフセットと、サイズとの組合せ(例えばオフセットが「0バイト」、サイズが「mバイト」等)とを含んでもよい。通信データの各部分の暗号化に用いられた暗号鍵を特定可能な情報は、例えば、当該暗号鍵の生成に用いられたクロック情報(例えば、CLKI(t1))を表してもよい。
 上記のように暗号化された通信データは、送信側の通信装置100におけるクロック情報がCLKI(t1+1)のタイミングで送信される。この場合、受信側の通信装置100は、例えば、クロック情報がCLKI(t1+1)のタイミングで当該通信データを受信する。
 受信側の通信装置100は、クロック情報CLKI(t1+1)を用いて、上記付加データを復号する。これにより、受信側の通信装置100は、受信した通信データのうち、異なる暗号鍵により暗号化された各部分(例えば1~mバイト目の部分、(m+1)~Mバイト目の部分)を特定可能である。また、受信側の通信装置100は、各部分の暗号化に用いられた暗号鍵を特定可能なデータから、暗号鍵(例えば、KEY(t1))を生成することができる。上記のような処理により、受信側の通信装置100は、通信データの各部分を、適切な暗号鍵を用いて復号可能である。
 なお、暗号鍵を変更するタイミングは、暗号処理部105において用いられる暗号アルゴリズムに応じて適宜微調整されてもよい。例えば、ブロック暗号アルゴリズムが採用される場合、暗号鍵はブロック単位で変更されてもよい。例えば、ストリーム暗号アルゴリズムが採用される場合、疑似乱数生成器のシードとなる暗号鍵を適宜変更してもよい。
 (クロック情報の調整)
 以下、通信を実行する通信装置100の間で、暗号鍵の生成に用いられるクロック情報に差分(ずれ)が生じた場合に、係る差分を調整する動作について説明する。以下において説明する、通信装置100の各構成要素の処理(動作)は一つの具体例であり、ある処理(動作)を実行する構成要素は適宜選択可能である。一例として、以下の処理は、装置情報管理部101が、他の構成要素に指示を与えることにより実行されてもよい。
 上記説明したように、暗号鍵はクロック情報を用いて生成される。例えば、送信側の通信装置100(例えば通信装置X)において生成されるクロック情報と、受信側の通信装置100(例えば通信装置Y)において生成されるクロック情報とが異なる場合、通信データを暗号化する際に用いられる暗号鍵と、復号する際に用いられる暗号鍵とが異なる可能性がある。
 また、各通信装置100の間の通信路において遅延が生じることがある。この結果、送信側の通信装置100が送信した通信データが、受信側の通信装置100に到着するまでの間に、受信側の通信装置100において暗号鍵が更新される可能性がある。即ち、通信データを暗号化する際に用いられる暗号鍵と、復号する際に用いられる暗号鍵とが異なる場合がある。
 これに対して、例えば、ある通信装置100が、他の通信装置100のクロック情報を推定し、推定したクロック情報を用いて暗号鍵を生成することで、上記のような状況においても暗号通信を実行することが可能である。
 なお、各通信装置100がクロック情報を調整するタイミングは、適宜選択可能である。即ち、各通信装置100は、定期的にクロック情報を調整してもよく、設定値等により定められた所定のタイミングでクロック情報を調整してもよい。また、各通信装置100は、受信側の通信装置100において通信データの復号に失敗した際に、クロック情報を調整してもよい。
 以下、各通信装置100が暗号鍵の生成に用いるクロック情報を調整する動作について、具体例を用いて説明する。
 各通信装置100(例えば通信装置X及び通信装置Y)がクロック情報の差分を調整する一つの方法として、少なくとも一方の通信装置が、他方の通信装置100に対して、自装置のクロック情報を直接送信する方法が考えられる。以下、クロック情報の調整に用いられる通信データを、クロック調整データと記載する場合がある。
 他の通信装置100(通信装置X)から、クロック調整データを受信した通信装置100(通信装置Y)は、例えば、クロック調整データに含まれるクロック情報と、クロック調整データを受信した際の自装置のクロック情報との差分を算出してよい。通信装置Yは、例えば、自装置において生成したクロック情報に当該差分を反映(例えば加算又は減算)することで、調整されたクロック情報を生成する。
 通信装置Yは、上記のように調整されたクロック情報を用いて、通信装置Xとの間で送受信する通信データに関する暗号処理に用いる暗号鍵を生成してよい。これにより、通信装置Xと、通信装置Yとは、同じ暗号鍵を用いて暗号処理を実行することが可能である。
 上記説明した方法の場合、通信装置100の間でクロック調整データが転送されることから、通信路におけるクロック情報が漏洩する可能性がある。そのため、通信路におけるクロック情報の漏洩を防止するべく、各通信装置100が、クロック調整データを暗号化して送受信することが考えられる。しかしながら、例えば、各通信装置100においてクロック情報を用いて生成された暗号鍵は、クロック調整データを暗号化する暗号鍵として用いることができない場合がある。なぜならば、各通信装置100におけるクロック情報に差分がある場合、各通信装置100において生成される暗号鍵が異なるからである。
 そこで、各通信装置100は、全ての通信装置100が同じ装置情報を保持している場合には、当該装置情報を用いて、クロック調整データを暗号化する。例えば、各通信装置100が装置情報として事前に共通の鍵(例えば、上記した事前共有鍵)を保持している場合、各通信装置100は、係る事前共有鍵を用いてクロック調整データを暗号化し、他の通信装置100に送信してもよい。
 具体的には、暗号処理部105は、事前共有鍵を用いて、クロック情報を暗号化し、通信部106が当該暗号化された通信データを他の通信装置100に送信する。
 この場合、事前共有鍵はクロック調整データに関する暗号処理に用いられる。即ち、クロック調整データ以外の(通常の)通信データの暗号化に用いられる暗号鍵は、クロック調整データにより調整されたクロック情報を用いて生成される。換言すると、事前共有鍵は、通常の通信データの暗号化には使用されない。
 クロック情報の調整に必要なデータのサイズは比較的小さいと考えられることから、クロック調整データのサイズは比較的小さいと考えられる。また、原子時計等を用いて高精度なクロック信号を生成する場合、通信装置100の間でクロック情報の差分(ズレ)が生じる頻度は低いと考えられる。従って、通信装置100の間でクロック調整データが送信される回数も比較的少ないと考えられる。
 以上より、事前共有鍵を用いて暗号化される暗号文データの総量は比較的少ないことから、係る暗号文データを大量に収集することは容易ではなく、長時間を要すると考えられる。仮に事前共有鍵自体の変更(更新)頻度が低い場合であっても、暗号通信の安全性に関する問題が引き起こされる可能性は低いと考えられる。
 以下、各通信装置100がクロック情報を調整する他の方法について説明する。各通信装置100がクロック情報を調整するもう一つの方法として、受信側の通信装置100が、送信側の通信装置100におけるクロック情報を予測する方法が考えられる。以下、図6及び図7に示す具体例を参照して、係る方法について説明する。図6は、各通信装置100がクロック情報を同期する過程を例示するシーケンス図である。図7は、通信装置100のクロック情報を推定する方法を概念的に示す説明図である。なお、本実施形態は図6及び図7に示す具体例に限定されるものではない。
 図6及び図7に示す具体例においては、あるタイミングにおいて、送信側の通信装置100(通信装置X)がクロック情報(CLKI(t1))を生成し、受信側の通信装置100(通信装置Y)がクロック情報(CLKI(t2))を生成することを想定する。即ち、各通信装置100において生成されたクロック情報の間に差分がある。以下、受信側の通信装置Yが、送信側の通信装置Xにおいて生成されたクロック情報を推定する方法を説明する。
 通信装置Xは、適切なタイミングでクロック情報CLKI(t1)を生成し(図6のステップS601)、当該クロック情報CLKI(t1)を用いて暗号鍵(以下「KEY(t1)」と記載する)を生成する(図6のステップS602)。暗号鍵を生成する具体的な処理は上記説明した通りであり、係る処理には、クロック情報CLKI(t1)に応じて選択情報を生成する処理も含まれてよい(以下同様)。
 通信装置Yは、適切なタイミングでクロック情報CLKI(t2)を生成し(図6のステップS603)、当該クロック情報CLKI(t2)を用いて暗号鍵(以下「KEY(t2)」と記載する)を生成する(図6のステップS604)。
 通信装置Xは、暗号鍵KEY(t1)を用いて通信データを暗号化し(図6のステップS605)、暗号化した通信データ(以下「C(t1)」と記載する)を通信装置Yに送信する(図6のステップS606)。
 ステップS605において通信データC(t1)を作成する際、通信装置Xは、通信データC(t1)を正しく復号できたか否かを判定可能なデータ(検証用データ)を、通信データに付加してもよい。例えば、通信装置Xは、検証用データとして、暗号化する前の通信データのペイロードのハッシュ値を計算してもよい。通信装置Xは、当該ハッシュ値を通信データに結合してから、それら全体を暗号化することで、通信データC(t1)を作成してもよい。あるいは、通信装置Xは、通信データにメッセージ認証コード又はメッセージ完全性符号を付加してもよい。メッセージ認証コード又はメッセージ完全性符号は、周知の技術を用いて生成可能である。
 通信装置Yは、暗号化された通信データC(t1)を受信し(図6のステップS607)、暗号鍵KEY(t2)を用いて通信データC(t1)を復号する(図6のステップS608)。係る復号処理は、例えば、通信装置Yにおける暗号処理部105が実行してよい。この際、通信装置Y(暗号処理部105)は、通信データC(t1)が正しく復号できたか否かを判定してよい。
 例えば、通信装置Yは、暗号鍵KEY(t2)を用いて復号した通信データC(t1)のペイロードから算出したハッシュ値と、通信データC(t1)に付加された検証用データとが等しい場合、通信データC(t1)を正しく復号できたと判定してもよい。なお、通信データにメッセージ認証コードが設定されている場合、通信装置Yは、係るメッセージ認証コードを検証することで、通信データC(t1)を正しく復号できたか否かを判定可能である。
 図6の具体例では、暗号鍵KEY(t2)は、暗号鍵KEY(t1)とは異なる暗号鍵であることから、通信装置Yは、ステップS608において、通信データC(t1)を正しく復号することができない。
 この場合、通信装置Yは、例えば、クロック情報CLKI(t2)とは異なるクロック情報CLKI(tx)を更に生成する(図6のステップS609)。例えば、通信装置Yにおける暗号処理部105は、クロック発生部102に係るクロック情報の生成を指示してもよい。以下、クロック情報CLKI(t2)とは異なるクロック情報CLKI(tx)を、「第1の推定クロック情報」と記載する場合がある。図7を参照して具体的に説明する。
 通信装置Y(クロック発生部102)は、例えば、クロック情報CLKI(t2)を含む特定の範囲(より具体的には、例えば、クロック情報CLKI(t2)を中心とした範囲)において、第1の推定クロック情報を生成してもよい。上記したように、通信装置X及び通信装置Yは高精度なクロック信号を用いてクロック情報を生成することから、それらの間に生じる差分(差異)は比較的小さいと考えられるからである。通信装置Xと、通信装置Yとの間のクロック情報の差分が小さい場合、通信装置Xのクロック情報CLKI(t1)は、クロック情報CLKI(t2)を中心とした特定の範囲に分布すると考えられる。なお、係る特定の範囲は、例えば、通信装置100の開発段階における実験(あるいは配備段階における実測)等により適宜求めることが可能であり、通信装置100に対して予め設定されていてもよい。
 図7に示す具体例の場合、通信装置Y(クロック発生部102)は、例えば、クロック情報CLKI(t2)とは異なるクロック情報(第1の推定クロック情報)として、クロック情報CLKI(t2_1)及びCLKI(t2_2)を生成する。クロック情報CLKI(t2_1)及びCLKI(t2_2)は、例えば、クロック情報CLKI(t2)を含む特定のクロック情報の範囲に含まれてもよい。
 例えば、クロック情報CLKI(t2)が、カウンタ値”N”(例えば、Nは正整数)を表す場合を想定する。この場合、通信装置Yは、例えば、カウンタ値”N”を含む特定の範囲(例えば、カウンタ値”N-n”から、カウンタ値”N+n”の範囲、但し”n”は正整数)に含まれるクロック情報を生成してもよい。図7に例示する具体例の場合、通信装置Yは、カウンタ値”N-1”を表すクロック情報CLKI(t2_1)、カウンタ値”N+1”を表すクロック情報CLKI(t2_2)、を生成する。
 例えば、クロック情報CLKI(t2)が、時刻”t”を表す場合を想定する。この場合、通信装置Yは、例えば、時刻”t”を含む特定の範囲(例えば、時刻”t”から”Δt”(”Δt”:正整数)前の時刻から、時刻”t”から”Δt”後の時刻まで、等)に含まれるクロック情報を生成してもよい。図7に例示する具体例の場合、通信装置Yは、時刻”t-1”を表すクロック情報CLKI(t2_1)、時刻”t+1”を表すクロック情報CLKI(t2_2)を生成する。時刻の単位は適宜選択してよい(例えば、ミリ秒、秒、分等)。
 通信装置Y(装置情報選択部103)は、は上記のように生成した第1の推定クロック情報を用いて、選択情報を生成する。通信装置Y(鍵生成部104)は、生成された選択情報と、第1の推定クロック情報とを用いて、それぞれ暗号鍵(例えば、暗号鍵KEY(t2_1)、暗号鍵KEY(t2_2))を生成する(図6のステップS610)。以下、第1の推定クロック情報を用いて生成された暗号鍵を「第1の推定暗号鍵」と記載する場合がある。
 通信装置Y(暗号処理部105)は、生成した暗号鍵(第1の推定暗号鍵)を用いて、通信データC(t1)を復号する(図6のステップS611)。通信データC(t1)の復号に成功したか否かを判定する方法は、上記説明した通りである。
 通信データC(t1)を復号できた場合、通信装置Y(暗号処理部105)は、復号に成功した暗号鍵の生成に用いられたクロック情報を、通信装置Xのクロック情報として推定する(図6のステップS612)。図7に示す具体例の場合、暗号鍵KEY(t2_2)を用いて、通信データC(t1)を正しく復号することが可能である。暗号鍵KEY(t2_2)の生成に用いられたクロック情報は、クロック情報CLKI(t2_2)である。この場合、通信装置Yは、通信装置Xのクロック情報を、CLKI(t2_2)であると推定する。
 なお、通信装置Yは、特定のクロック情報の範囲に含まれるクロック情報(例えば、上記CLKI(t2_1)及びCLKI(t2_2))を一つずつ生成し、当該クロック情報を用いて生成した暗号鍵により、通信データC(t1)を復号可能か確認してもよい。
 上記方法により、通信装置100は、クロック調整データを送受信することなく、他の通信装置100におけるクロック情報を推定することができる。
 通信装置Yにおける鍵生成部104は、例えば、クロック情報CLKI(t2)と、クロック情報CLKI(t2_2)との差分を、通信装置Xと通信装置Yとのクロック情報の差分として保存(記憶)してもよい。通信装置Yにおける鍵生成部104は、通信装置Xとの間の暗号通信に用いられる暗号鍵を生成する場合、クロック発生部102から取得したクロック情報を、当該差分を用いて調整し、調整後のクロック情報を用いて暗号鍵を生成してもよい。
 以下、各通信装置100がクロック情報を調整する更にもう一つ方法について説明する。各通信装置100がクロック情報を調整する更にもう一つの方法として、送信側の通信装置100が、受信側の通信装置100におけるクロック情報を予測する方法が考えられる。例えば、送信側の通信装置100は、自装置から送信された通信データを正しく復号できないことを表す通知を受信側の通信装置100から受け付けた場合に、受信側の通信装置100におけるクロック情報を予測してもよい。
 以下、図8に例示するシーケンス図を参照して、係る方法について説明する。以下の説明においては、通信装置Xが生成するクロック情報をCLKI(t1)、通信装置Xが予測した通信装置Yのクロック情報をCLKI(t1+Δt)と記載する。また、通信装置Xが予測した通信装置Yのクロック情報を、第2の推定クロック情報と記載する場合がある。
 送信側の通信装置100(通信装置X)は、通信路における遅延、前回クロック情報を調整してから経過した時間、等を考慮して、受信側の通信装置100(通信装置Y)におけるクロック情報(第2の推定クロック情報)を推定する(ステップS801)。なお、通信路における遅延を計測する方法は、周知技術を採用可能である。
 通信装置Xは、例えば、自装置において生成したクロック情報CLKI(t1)を含む特定のクロック情報の範囲において、第2の推定クロック情報を予測してもよい。例えば、通信装置Xにおける鍵生成部104が、クロック発生部102に対して、第2の推定クロック情報を生成するよう指示してもよい。
 通信装置X(装置情報選択部103)は、クロック情報CLKI(t1+Δt)を用いて選択情報を生成する。そして、通信装置X(鍵生成部104)は、クロック情報CLKI(t1+Δt)と、生成された選択情報と、から暗号鍵(KEY(t1+Δt))を生成する(ステップS802)。以下、係る暗号鍵を「第2の推定暗号鍵」と記載する場合がある。通信装置X(暗号処理部105)は、生成した暗号鍵(第2の推定暗号鍵)を用いて、通信データを暗号化する(ステップS803)。
 通信装置X(通信部106)は、暗号化した通信データC(t1+Δt)を、通信装置Yに送信する(ステップS804)。
 通信装置Yにおいては、適切なタイミングでクロック情報CLKI(t2)が生成され(ステップS805)、当該クロック情報CLKI(t2)を用いて暗号鍵KEY(t2)が生成されている(ステップS806)。
 通信装置Yは、通信装置Xから通信データC(t1+Δt)を受信し(ステップS807)、暗号鍵KEY(t2)を用いて復号する(ステップS808)。
 通信装置Yは、ステップS808において通信データC(t1+Δt)を正しく復号できたか否かを、通信装置Xに通知する(ステップS809)。
 通信装置Xは、通信装置Yから受信した通知を確認する(ステップS810)。通信装置Yが通信データC(t1+Δt)を正しく復号できた場合、通信装置Xは、通信装置Yのクロックが(t1+Δt)であると推定する。この場合、通信装置Xは、自装置と、通信装置Yとのクロック情報の差分(Δt)を保存(記憶)してもよい。
 通信装置Xは、通信装置Yとの間で暗号通信を実行する際、自装置が生成するクロック情報に上記差分を反映することで、クロック情報を調整することができる。通信装置Xは、当該調整したクロック情報を用いて暗号鍵を生成することで、通信装置Yとの間で暗号通信を実行することができる。
 通信装置Yが通信データC(t1+Δt)の復号に失敗した場合、通信装置Xは、通信装置Yに関して予測したクロック情報を変更して(例えば、CLKI(t1+Δt2)に変更)する(ステップS812)。通信装置Xは、例えば、通信装置Yにおける復号処理が成功するまで、ステップS801乃至ステップS812を繰り返し実行してもよい。
 以上、各通信装置100が、他の通信装置100との間でクロック情報を調整する方法の具体例について説明した。
 各通信装置100が複数の他の通信装置100と通信する場合、通信装置100における鍵生成部104は、クロック情報の調整に用いる調整情報を、他の通信装置100と関連付けて保持してもよい(例えば、図9)。係る調整情報は、典型的には、ある通信装置100において生成されるクロック情報と、他の通信装置100において生成されるクロック情報との間の差分を表してもよい。
 (暗号鍵の調整)
 以下、上記のように調整されるクロック信号を用いて、送信側の通信装置100(通信装置X)と、受信側の通信装置100(通信装置Y)との間で用いられる暗号鍵を調整する方法について、図10に示す具体例を用いて説明する。なお、図10に示す具体例は、説明のための一例であり、本実施形態はこれに限定されない。以下において説明する、通信装置100の各構成要素の処理(動作)は一つの具体例であり、ある処理(動作)を実行する構成要素は適宜選択可能である。
 上記説明したクロック情報の調整処理を実行した場合、図10に例示するように、各通信装置100は、他の通信装置100に関するクロック情報の調整情報を保持する。即ち、通信装置Xは、通信装置Yに関するクロック情報の調整情報を保持し、通信装置Yは、通信装置Xに関するクロック情報の調整情報を保持する。
 この場合、通信データの送信側となる通信装置100と、通信データの受信側となる通信装置100とのいずれか一方が、調整したクロック情報を用いて暗号鍵を生成し、当該暗号鍵を用いて暗号処理を実行する。
 通信データの送信側となる通信装置100と、通信データの受信側となる通信装置100とのどちらが調整したクロック情報を用いて暗号鍵を生成するかは、予め定められていてもよく、各通信装置100が他の通信装置100と通信する際に選択してもよい。
 以下、通信データの送信側となる通信装置100がクロック情報を調整する場合について説明する。
 通信装置Xから通信装置Yに通信データを送信する場合、通信装置X(特には、装置情報選択部103及び鍵生成部104)は、自装置が生成したクロック情報を、通信装置Yに対する調整情報(t_xy)を用いて調整する。具体的には、通信装置Xは、自装置が生成したクロック情報に調整情報を加算(又は減算)することで、クロック情報を調整してよい。通信装置Xは、調整したクロック情報を用いて、上記説明した方法により暗号鍵を生成し、当該暗号鍵を用いて通信データを暗号化する。一方、この場合、受信側の通信装置Yは、クロック情報を調整することなく暗号鍵を生成する。通信装置Yは、当該暗号鍵を用いて、通信装置Xから受信した暗号データを復号することができる。
 同様に、通信装置Yから通信装置Xに通信データを送信する場合、通信装置Yは、自装置が生成したクロック情報を、通信装置Xに対する調整情報(t_yx)を用いて調整する。通信装置Yは、調整したクロック情報を用いて、上記説明した方法により暗号鍵を生成し、当該暗号鍵を用いて通信データを暗号化する。一方、この場合、受信側の通信装置Xは、クロック情報を調整することなく暗号鍵を生成する。通信装置Xは、当該暗号鍵を用いて、通信装置Yから受信した暗号データを復号することができる。
 上記説明した動作により、送信側の通信装置100がクロック情報を調整することで、受信側の通信装置100がクロック情報を調整することなく、暗号通信を実行可能である。
 以下、通信データの受信側となる通信装置100がクロック情報を調整する場合について説明する。
 例えば、通信装置Xから通信装置Yに通信データを送信する場合、通信装置Xは、自装置が生成したクロック情報を調整せずに、上記説明した方法により暗号鍵を生成し、当該暗号鍵を用いて通信データを暗号化する。一方、この場合、受信側の通信装置Yは、自装置が生成したクロック情報を、通信装置Xに対する調整情報(t_yx)を用いて調整する。通信装置Yは、当該暗号鍵を用いて、通信装置Xから受信した暗号データを復号することができる。
 例えば、通信装置Yから通信装置Xに通信データを送信する場合、通信装置Yは、自装置が生成したクロック情報を調整せずに、上記説明した方法により暗号鍵を生成し、当該暗号鍵を用いて通信データを暗号化する。一方、この場合の受信側の通信装置Xは、自装置が生成したクロック情報を、通信装置Yに対する調整情報(t_xy)を用いて調整する。通信装置Xは、当該暗号鍵を用いて、通信装置Yから受信した暗号データを復号することができる。
 上記説明した動作により、送信側の通信装置100がクロック情報を調整せず、受信側の通信装置100がクロック情報を調整することで、暗号通信を実行可能である。
 以上、通信装置100の動作について説明した。以上のように構成された通信装置100は、適切な暗号鍵を用いて、他の通信装置100と暗号通信を実行することができる。その理由は、以下の通りである。
 即ち、各通信装置100は、各通信装置100が保持する装置情報の少なくとも一部と、クロック情報とを用いて、暗号鍵を生成する。各通信装置100が、同じ内容の装置情報を保持しており、各通信装置において生成されるクロック情報が同期していれば、各通信装置100は、同じ暗号鍵を生成可能である。即ち、各通信装置100に対して、暗号鍵を明示的に配布しなくてもよい。
 各通信装置100は、装置情報の少なくとも一部とクロック情報とを用いて暗号鍵を生成することから、予め定められた暗号鍵を共有する必要がない。また、生成される暗号鍵のバリエーションは、例えば、既知の暗号鍵のバリエーションに制限されることがない。
 各通信装置100は、例えば原子時計等を用いて生成された高精度なクロック信号を用いてクロック情報を生成することから、各通信装置100のクロック情報を、高い精度で同期することができる。よって、各通信装置100は、例えば、係るクロック情報に応じて、同じタイミングで適宜暗号鍵を変更することができる。また、係る暗号鍵の変更に際して、変更後の暗号鍵を明示的に配布しなくてもよい。
 各通信装置100は、クロック情報に差異が生じた場合には、上記説明したように、当該差異を調整する処理を実行可能である。仮にクロック情報に差異が生じた場合であっても、各通当該差異を調整することで、各通信装置100は、他の通信装置100との暗号通信に使用可能な暗号鍵を生成することができる。また、送信側の通信装置100又は受信側の通信装置100が適宜調整されたクロック情報を用いて暗号鍵を生成することで、他の通信装置100と暗号通信を実行することができる。
 [第1の変形例]
 以下、本実施形態における通信装置100の第1の変形例について説明する。本変形例における通信装置100を実現可能な機能的な構成は、第1の実施形態と同様としてよい。
 本変形例においては、装置情報管理部101及び暗号処理部105の動作が、上記第1の実施形態と相違する。以下、係る相違点について、図11A及び図11Bに例示する具体例を用いて説明する。
 図11Aに示す具体例の場合、各通信装置100(通信装置A乃至通信装置D)における装置情報管理部101は、それぞれ当該通信装置100に固有のデータ(data1、data2、data3、data4)を保持する。また、各通信装置100における装置情報管理部101は、各機器に共通する装置情報を少なくとも1つ保持する。各機器に共通する装置情報は、例えば、上記説明した事前共有鍵であってもよい。上記説明したように、事前共有鍵は、各通信装置に共通する暗号鍵である。
 各通信装置100における装置情報管理部101は、例えば、他の通信装置100と通信を開始するタイミングにおいて、それぞれが保持する固有の装置情報を、相互に送受信する。この際、各通信装置100は、例えば、事前共有鍵を用いて、固有の装置情報を含む通信データを暗号化する。
 具体的には、暗号処理部105が、事前共有鍵を用いて、装置情報管理部101が保持する各通信装置100に固有の装置情報を含む通信データを暗号化する。通信部106が当該暗号化された通信データを他の通信装置100に送信する。
 通信部106が、他の通信装置100から、固有の装置情報を含む通信データを受信した場合、暗号処理部105は、事前共有鍵を用いて当該通信データを復号する。暗号処理部105は、復号した通信データに含まれる、他の通信装置100に固有の装置情報を装置情報管理部101に提供してもよい。
 上記処理の結果、図11Bに例示するように、各通信装置100は、他の通信装置100毎に、同じ内容の装置情報を保持することができる。例えば、通信装置A及び通信装置Cは、装置情報として、それぞれdata1及びdata3を保持する。通信装置A及び通信装置Dは、装置情報として、それぞれdata1及びdata4を保持する。通信装置B及び通信装置Dは、装置情報として、それぞれdata2及びdata4を保持する。
 以降の通信においては、例えば、通信装置A及び通信装置Cにおける装置情報選択部103は、クロック情報と、装置情報(data1及びdata3)とを用いて、選択情報を生成する。通信装置A及び通信装置Dにおける装置情報選択部103は、クロック情報と、装置情報(data1及びdata4)とを用いて、選択情報を生成する。通信装置B及び通信装置Dにおける装置情報選択部103は、クロック情報と、装置情報(data2及びdata4)とを用いて、選択情報を生成する。各通信装置100における鍵生成部104は、上記のように生成された選択情報と、クロック情報とを用いて、暗号鍵を生成する。
 上記処理により、各通信装置100は、他の通信装置100と通信する際、当該他の通信装置100毎に異なる暗号鍵を使用することができる。図11A、図11Bに例示する具体例の場合、通信装置Aは、通信装置Cとの暗号通信と、通信装置Dとの暗号通信とにおいて、異なる暗号鍵を使用可能である。通信装置Dは、通信装置Aとの間の暗号通信と、通信装置Bとの間の暗号通信とにおいて、異なる暗号鍵を使用可能である。
 これより、本変形例によれば、ある通信装置間(例えば通信装置Aと通信装置C)の暗号鍵が危殆化しても、他の通信装置間(例えば通信装置Aと通信装置D)の暗号通信に関する安全性への影響を低減可能である。
 なお、事前共有鍵は、各通信装置100が送受信する装置情報の暗号化に用いられ、通常の通信データの暗号化には用いられない。即ち、事前共有鍵を用いて暗号化される暗号文データの総量は比較的少ないことから、係る暗号文データを大量に収集することは容易ではないと考えられる。よって、事前共有鍵に対する攻撃は、比較的困難であると考えられる。
 [第2の変形例]
 以下、本実施形態における通信装置100の第1の変形例について説明する。本変形例における通信装置100を実現可能な機能的な構成は、第1の実施形態と同様としてよい。
 本変形例においては、装置情報選択部103の動作が、上記第1の実施形態と相違する。以下、係る相違点について説明する。
 本変形例における装置情報選択部103の構成例を図12に示す。本変形例における装置情報選択部103は、それぞれが異なる選択アルゴリズムに従って装置情報の少なくとも一部を選択する選択処理部1201を複数有する。本変形例における装置情報選択部103は、クロック情報に応じて、複数の選択処理部1201から少なくとも1以上の選択処理部1201を選択し、その選択処理部1201により選択された装置情報の少なくとも一部を用いて、選択情報を生成する。
 図12に例示する構成の場合、装置情報選択部103は、一例として、選択処理部A、選択処理部B、選択処理部Cを有する。なお、選択処理部1201の数は特に限定されず、適宜定められてよい。各選択処理部1201(選択処理部A~選択処理部C)は、それぞれが異なる選択アルゴリズムに従って装置情報の一部を選択する。
 図12に例示する構成の場合、選択処理部Aは、例えば、クロック情報に応じて、装置情報管理部101に保持された複数の装置情報から一部の装置情報を選択する。選択処理部Bは、例えば、1以上の装置情報を複数の部分に分割し、クロック情報に応じて分割された部分を適宜選択して結合する。選択処理部Cは、例えば、装置情報管理部101に保持された複数の装置情報をクロック情報に応じて適宜並べ替える。
 装置情報選択部103は、上記各選択処理部1201(選択処理部A~選択処理部C)が選択した装置情報(またはその一部)を、そのまま選択情報として提供してもよい。装置情報選択部103は、例えば、上記各選択処理部1201により選択された装置情報(またはその一部)に対して所定の演算(例えばハッシュ関数等)を実行した結果を、選択情報として提供してもよい。
 本変形例における暗号鍵の生成処理について、図13に例示するフローチャートを用いて説明する。
 装置情報選択部103は、クロック情報に応じて、選択処理部1201を選択する(ステップS1301)。選択処理部1201を選択する方法は適宜定められてよい。装置情報選択部103は、クロック情報に応じて、選択処理部1201を逐次選択してもよい。装置情報選択部103は、クロック情報をシードとした乱数を生成することにより、選択処理部1201をランダムに選択してもよい。
 ステップS1301において選択された選択処理部1201は、クロック情報に応じて、装置情報の少なくとも一部を取得する(ステップS1302)。
 装置情報選択部103は、ステップS1302において取得した装置情報を用いて選択情報を生成する(ステップS1303)。
 鍵生成部104は、生成された選択情報と、クロック情報とを用いて、暗号アルゴリズムに応じた暗号鍵を生成する(ステップS1304)。ステップS1304における処理は、ステップS402における処理と同様としてよい。
 上記のように構成された本変形例によれば、クロック情報に応じて、異なった選択アルゴリズムを用いて選択情報が生成される。即ち、選択情報を生成する方法のバリエーションを増やすことができる。これにより、暗号鍵の生成に用いられる元のデータを予測しにくくなると考えられる。
 <第2の実施形態>
 以下、本開示の第2の実施形態について記載する。第2の実施形態は、上記第1の実施形態及びその変形例に共通する基本的な実施形態である。
 図14Aは、本実施形態における通信装置1400の機能的な構成を例示するブロック図である。なお、通信装置1400は、例えば、図2A乃至図2Cに例示するハードウェアにより実現可能である。
 図14Aに例示するように、通信装置1400は、装置情報管理部1401と、クロック発生部1402と、装置情報選択部1403と、鍵生成部1404と、暗号処理部1405と、を備える。通信装置1400は、図14Bに例示するように、通信部1406を備えてもよい。通信装置1400を構成するこれらの構成要素の間は、相互にデータを受け渡せるよう、適切な方法を用いて接続されていてもよい。以下、各構成要素について説明する。
 装置情報管理部1401(装置情報管理手段)は、1以上の通信装置に共通して保存される情報である装置情報を記憶する。係る装置情報は、例えば、上記第1の実施形態における装置情報と同様の情報であってもよい。装置情報管理部1401は、例えば、自装置が通信する他の通信装置1400毎に、個別の装置情報を記憶してもよい。装置情報管理部1401は、例えば、上記第1の実施形態における装置情報管理部101と同様の処理を実行できるよう構成されてもよい。
 クロック発生部1402(クロック発生手段)は、周期的なクロック信号を用いて、タイミングを表すクロック情報を生成する。クロック発生部1402は、例えば、原子時計等を用いて生成された高精度なクロック信号を用いて、クロック情報を生成してもよい。クロック発生部1402により生成されるクロック情報は、例えば、上記第1の実施形態と同様、時刻を表す情報を含んでもよく、カウンタ値を表す情報を含んでもよい。クロック発生部1402は、例えば、第1の実施形態におけるクロック発生部102と同様の処理を実行できるよう構成されてもよい。
 装置情報選択部1403(装置情報選択手段)は、クロック発生部1402により生成されたクロック情報に応じて、1以上の装置情報の少なくとも一部を選択する。また、装置情報選択部1403は、選択した装置情報の少なくとも一部から、クロック情報毎に異なる情報である選択情報を生成する。装置情報選択部1403は、例えば、第1の実施形態において説明した選択アルゴリズムにより選択した装置情報を用いて、選択情報を生成してもよい。装置情報選択部1403は、第1の実施形態における装置情報選択部103と同様の処理を実行できるよう構成されてもよい。
 鍵生成部1404(鍵生成手段)は、クロック情報と、装置情報選択部により生成された選択情報とを少なくとも用いて、暗号鍵を生成する。これにより、鍵生成部1404は、選択情報と、クロック情報とに応じて、異なる暗号鍵を生成することができる。鍵生成部1404は、例えば、第1の実施形態における鍵生成部104と同様の処理を実行できるよう構成されてもよい。
 暗号処理部1405(暗号処理手段)は、鍵生成部1404において生成された暗号鍵を用いて、暗号化処理と復号処理との少なくとも一方を実行する。暗号処理部1405は、例えば、第1の実施形態における暗号処理部105と同様の処理を実行できるよう構成されてもよい。
 通信部1406(通信手段)は、他の通信装置1400との間で通信データを送受信するよう構成される。通信部1406は、例えば、暗号処理部1405において暗号化された通信データを他の通信装置1400に送信する。通信部1406は、例えば、他の通信装置1400から暗号化された通信データを受信し、暗号処理部1405に提供する。通信部1406は、例えば、第1の実施形態における通信部106と同様の処理を実行するよう構成されてもよい。
 上記のように構成された通信装置1400は、暗号通信に用いられる暗号鍵を他の通信装置1400に明示的に配布せずとも、他の通信装置1400との間で暗号通信を実行可能である。また、上記のように構成された通信装置1400は、事前に暗号鍵を共有することなく、暗号通信を実行可能である。その理由は、各通信装置が生成するクロック情報が同じ内容である場合、各通信装置1400は、他の通信装置1400と共通する装置情報と、クロック情報とに基づいて、他の通信装置1400と同じ暗号鍵を生成できるからである。また、通信装置1400は、暗号鍵を更新する際にクロック情報に応じて異なる暗号鍵を生成することが可能である。以上より、各通信装置1400は、他の通信装置1400との間で、適切な暗号鍵を用いて暗号通信を実行することができる。
 以上、本開示を、上述した模範的な実施形態に適用した例として説明した。上記各実施形態においては、本開示に関する技術を通信装置(100、1400)に適用した例を説明した。例えば、上記各実施形態における通信装置(100、1400)を動作させることによって、本開示に関する通信方法を実現することができる。本開示に係る通信方法を実現する方法は上記に限定されない。本開示に係る通信方法は、例えば、通信装置(100、1400)と同様の動作を実行可能な、適切な装置(コンピュータ等の情報処理装置、又は、専用の組み込み機器等)によって実現することも可能である。なお、本開示は複数の通信装置(100、1400)を含むシステムとして実現されてもよい。
 また、本開示の技術的範囲は、上述した各実施形態及び変形例に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本開示の技術的範囲に含まれ得る。更に、上述した各実施形態及び変形例、あるいは、係る変更又は改良を加えた新たな実施形態を組み合わせた実施形態も、本開示の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
 なお、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
(付記1)
 1以上の通信装置に共通して保存される情報である装置情報を記憶可能な装置情報管理手段と、
 周期的なクロック信号を用いて、タイミングを表すクロック情報を生成するクロック発生手段と、
 前記クロック情報に応じて前記装置情報の少なくとも一部を選択し、選択した前記装置情報の少なくとも一部から、前記クロック情報毎に異なる情報である選択情報を生成する装置情報選択手段と、
 前記クロック情報と、前記装置情報選択手段により生成された前記選択情報とを少なくとも用いて、暗号鍵を生成する鍵生成手段と、
 生成された暗号鍵を用いて、通信データに関する暗号化処理と復号処理との少なくとも一方を実行する暗号処理手段と、を備える通信装置。
(付記2)
 前記装置情報管理手段は、複数の前記装置情報を記憶し、
 前記装置情報選択手段は、前記クロック情報に応じて、
  複数の前記装置情報のうち、少なくとも1以上の前記装置情報を選択する処理と、
  複数の前記装置情報から少なくとも1以上の前記装置情報を選択するとともに、選択したそれぞれの前記装置情報を複数の部分に分割し、選択したそれぞれの前記装置情報から1以上の部分を選択する処理と、の少なくとも一方を実行することにより、前記装置情報の少なくとも一部を選択する付記1に記載の通信装置。
(付記3)
 前記クロック発生手段は、原子時計を備え、他の前記通信装置と同期された前記クロック信号を前記原子時計を用いて発生する、付記1又は付記2に記載の通信装置。
(付記4)
 前記クロック発生手段は、自装置の外部から提供される、原子時計を用いて生成された時刻情報により、前記クロック信号のタイミングを調整する付記1又は付記2に記載の通信装置。
(付記5)
 他の前記通信装置との間で通信データを送受信する通信手段を更に備え、
 前記通信手段が他の前記通信装置から受信した通信データを、前記暗号処理手段が正しく復号できない場合、
  前記クロック発生手段は、その通信データを受信した際の自装置における前記クロック情報とは異なる前記クロック情報である第1の推定クロック情報を1以上生成し、
  前記装置情報選択手段は、前記第1の推定クロック情報に応じて前記装置情報の少なくとも一部を選択し、選択した前記装置情報の少なくとも一部から、前記選択情報を生成し、
  前記鍵生成手段は、
   前記第1の推定クロック情報と、前記選択情報とを少なくとも用いて第1の推定暗号鍵を生成し、
   前記暗号処理手段が、生成された前記第1の推定暗号鍵を用いて、前記通信装置から受信した通信データを正しく復号できたか否かを判定した結果に応じて、他の前記通信装置において生成された前記クロック情報を推定する、付記1乃至付記4のいずれかに記載の通信装置。
(付記6)
 他の前記通信装置との間で通信データを送受信する通信手段を更に備え、
 前記通信手段が、自装置から送信された通信データを正しく復号できないことを表す通知を、他の前記通信装置から受信した場合、
  前記クロック発生手段は、自装置における前記クロック情報とは異なる前記クロック情報である第2の推定クロック情報を1以上生成し、
  前記装置情報選択手段は、前記第2の推定クロック情報に応じて前記装置情報の少なくとも一部を選択し、選択した前記装置情報の少なくとも一部から、前記選択情報を生成し、
  前記鍵生成手段は、前記第2の推定クロック情報と、前記選択情報とを少なくとも用いて第2の推定暗号鍵を生成し、
  前記通信手段は、前記第2の推定暗号鍵を用いて前記暗号処理手段により暗号化された通信データを他の前記通信装置に送信し、
  前記鍵生成手段は、前記第2の推定暗号鍵を用いて暗号化された通信データを正しく復号できたことを表す通知を、前記通信手段が他の前記通信装置から受信した場合、前記第2の推定クロック情報を、他の前記通信装置において生成された前記クロック情報と推定する付記1乃至付記4のいずれかに記載の通信装置。
(付記7)
 前記鍵生成手段は、他の前記通信装置について推定した前記クロック情報と、自装置における前記クロック発生手段が生成した前記クロック情報との差分を表す調整情報を、他の前記通信装置に関連付けて保持し、
 自装置が、他の前記通信装置から通信データを受信する受信側の通信装置である場合、
 前記装置情報選択手段は、前記クロック発生手段により生成された前記クロック情報を、前記調整情報を用いて調整するとともに、調整後の前記クロック情報を用いて前記選択情報を生成し、
 前記鍵生成手段は、前記クロック発生手段により生成された前記クロック情報を、前記調整情報を用いて調整するとともに、調整後の前記クロック情報及び前記装置情報選択手段により生成された前記選択情報を用いて暗号鍵を生成し、
 前記暗号処理手段は、前記鍵生成手段により生成された暗号鍵を用いて、前記通信手段が受信した通信データを復号する、付記5又は付記6に記載の通信装置。
(付記8)
 前記鍵生成手段は、他の前記通信装置について推定した前記クロック情報と、自装置における前記クロック発生手段が生成した前記クロック情報との差分を表す調整情報を、他の前記通信装置に関連付けて保持し、
 自装置が、他の前記通信装置に対して通信データを送信する送信側の通信装置である場合、
 前記装置情報選択手段は、前記クロック発生手段により生成された前記クロック情報を、前記調整情報を用いて調整するとともに、調整後の前記クロック情報を用いて前記選択情報を生成し、
 前記鍵生成手段は、前記クロック発生手段により生成された前記クロック情報を、前記調整情報を用いて調整するとともに、調整後の前記クロック情報及び前記装置情報選択手段により生成された前記選択情報を用いて暗号鍵を生成し、
 前記暗号処理手段は、前記鍵生成手段により生成された暗号鍵を用いて、前記通信手段から送信される通信データを暗号化する付記5又は付記6に記載の通信装置。
(付記9)
 前記装置情報管理手段は、全ての前記通信装置が共通して保持する事前共有鍵と、自装置に固有の情報と、を前記装置情報として記憶し
 前記暗号処理手段は、事前共有鍵を用いて、自装置に固有の情報を含む通信データを暗号化し、
 前記通信手段は、前記暗号化された通信データを他の通信装置に送信し、
 前記通信手段が、他の前記通信装置から、他の前記通信装置に固有の情報を含む通信データを受信した場合、前記暗号処理手段は、前記事前共有鍵を用いて、前記通信手段が受信した通信データを復号し、復号された通信データに含まれる他の前記通信装置に固有の情報を、前記装置情報管理手段に提供する、付記5乃至付記8のいずれかに記載の通信装置。
(付記10)
 前記装置情報選択手段は、選択した前記装置情報の少なくとも一部と、前記クロック発生手段により生成された前記クロック情報とを含むデータのハッシュ値を算出し、算出したハッシュ値を前記選択情報として提供する付記2に記載の通信装置。
(付記11)
 前記装置情報選択手段は、
  前記クロック情報に応じて、それぞれが異なる前記装置情報の少なくとも一部を選択する選択処理手段を複数有し、
  前記クロック情報に応じて1以上の前記選択処理手段を選択し、その選択処理手段により選択された前記装置情報の少なくとも一部を用いて、前記選択情報を生成する付記2又は付記10に記載の通信装置。
(付記12)
 付記7に記載の前記通信装置である送信側通信装置と、付記7に記載の前記通信装置である受信側通信装置と、を有し、
 前記送信側通信装置における前記暗号処理手段は、その送信側通信装置における前記クロック発生手段により生成された前記クロック情報に応じて前記鍵生成手段により生成された暗号鍵を用いて通信データを暗号化し、その送信側通信装置における前記通信手段が、暗号化された通信データを前記受信側通信装置に送信し、
 前記受信側通信装置における前記暗号処理手段は、その受信側通信装置における前記クロック発生手段により生成された前記クロック情報を、前記調整情報を用いて調整し、調整後の前記クロック情報を用いて前記鍵生成手段により生成された暗号鍵を用いて、前記送信側通信装置から受信した通信データを復号する通信システム。
(付記13)
 付記8に記載の前記通信装置である送信側通信装置と、付記8に記載の前記通信装置である受信側通信装置と、を有し、
 前記送信側通信装置における前記暗号処理手段は、その送信側通信装置における前記クロック発生手段により生成された前記クロック情報を前記調整情報を用いて調整し、調整した後の前記クロック情報に応じて前記鍵生成手段により生成された暗号鍵を用いて通信データを暗号化し、その送信側通信装置における前記通信手段が暗号化された通信データを前記受信側通信装置に送信し、
 前記受信側通信装置における前記暗号処理手段は、その受信側通信装置における前記クロック発生手段により生成された前記クロック情報に応じて前記鍵生成手段により生成された暗号鍵を用いて、前記送信側通信装置から受信した通信データを復号する通信システム。
(付記14)
 周期的なクロック信号を用いて、タイミングを表すクロック情報を生成し、
 前記クロック情報に応じて、1以上の通信装置に共通して保存される情報である装置情報の少なくとも一部を選択し、選択した前記装置情報の少なくとも一部から、前記クロック情報毎に異なる情報である選択情報を生成し、
 前記クロック情報と、生成された前記選択情報とを少なくとも用いて、暗号鍵を生成し、
 生成された暗号鍵を用いて、通信データに関する暗号化処理と復号処理との少なくとも一方を実行する通信方法。
(付記15)
 通信装置を構成するコンピュータに、
 周期的なクロック信号を用いて、タイミングを表すクロック情報を生成する処理と、
 前記クロック情報に応じて、1以上の通信装置に共通して保存される情報である装置情報の少なくとも一部を選択し、選択した前記装置情報の少なくとも一部から、前記クロック情報毎に異なる情報である選択情報を生成する処理と、
 前記クロック情報と、生成された前記選択情報とを少なくとも用いて、暗号鍵を生成する処理と、
 生成された暗号鍵を用いて、通信データに関する暗号化処理と復号処理との少なくとも一方を実行する処理と、を実行させる通信プログラムが記録された記録媒体。
 この出願は、2016年10月3日に出願された日本出願特願2016-195775を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 100  通信装置
 101  装置情報管理部
 102  クロック発生部
 103  装置情報選択部
 104  鍵生成部
 105  暗号処理部
 106  通信部
 107  データ転送部
 201  プロセッサ
 202  メモリ
 203  クロック発生器
 204  通信インタフェース
 205  ストレージ
 206  入出力インタフェース
 207  入出力装置
 208  ドライブ装置
 209  記憶媒体
 210  暗号処理デバイス
 1400  通信装置
 1401  装置情報管理部
 1402  クロック発生部
 1403  装置情報選択部
 1404  鍵生成部
 1405  暗号処理部

Claims (15)

  1.  1以上の通信装置に共通して保存される情報である装置情報を記憶可能な装置情報管理手段と、
     周期的なクロック信号を用いて、タイミングを表すクロック情報を生成するクロック発生手段と、
     前記クロック情報に応じて前記装置情報の少なくとも一部を選択し、選択した前記装置情報の少なくとも一部から、前記クロック情報毎に異なる情報である選択情報を生成する装置情報選択手段と、
     前記クロック情報と、前記装置情報選択手段により生成された前記選択情報とを少なくとも用いて、暗号鍵を生成する鍵生成手段と、
     生成された暗号鍵を用いて、通信データに関する暗号化処理と復号処理との少なくとも一方を実行する暗号処理手段と、を備える通信装置。
  2.  前記装置情報管理手段は、複数の前記装置情報を記憶し、
     前記装置情報選択手段は、前記クロック情報に応じて、
      複数の前記装置情報のうち、少なくとも1以上の前記装置情報を選択する処理と、
      複数の前記装置情報から少なくとも1以上の前記装置情報を選択するとともに、選択したそれぞれの前記装置情報を複数の部分に分割し、選択したそれぞれの前記装置情報から1以上の部分を更に選択する処理と、の少なくとも一方を実行することにより、前記装置情報の少なくとも一部を選択する請求項1に記載の通信装置。
  3.  前記クロック発生手段は、原子時計を備え、前記原子時計を用いて、他の前記通信装置と同期された前記クロック信号を発生する、請求項1又は請求項2に記載の通信装置。
  4.  前記クロック発生手段は、自装置の外部から提供される、原子時計を用いて生成された時刻情報により、前記クロック信号のタイミングを調整する請求項1又は請求項2に記載の通信装置。
  5.  他の前記通信装置との間で通信データを送受信する通信手段を更に備え、
     前記通信手段が他の前記通信装置から受信した通信データを、前記暗号処理手段が正しく復号できない場合、
      前記クロック発生手段は、その通信データを受信した際の自装置における前記クロック情報とは異なる前記クロック情報である第1の推定クロック情報を1以上生成し、
      前記装置情報選択手段は、前記第1の推定クロック情報に応じて前記装置情報の少なくとも一部を選択し、選択した前記装置情報の少なくとも一部から、前記選択情報を生成し、
      前記鍵生成手段は、
       前記第1の推定クロック情報と、前記選択情報とを少なくとも用いて第1の推定暗号鍵を生成し、
       前記暗号処理手段が、生成された前記第1の推定暗号鍵を用いて、前記通信装置から受信した通信データを正しく復号できたか否かを判定した結果に応じて、他の前記通信装置において生成された前記クロック情報を推定する、請求項1乃至請求項4のいずれかに記載の通信装置。
  6.  他の前記通信装置との間で通信データを送受信する通信手段を更に備え、
     前記通信手段が、自装置から送信された通信データを正しく復号できないことを表す通知を、他の前記通信装置から受信した場合、
      前記クロック発生手段は、自装置における前記クロック情報とは異なる前記クロック情報である第2の推定クロック情報を1以上生成し、
      前記装置情報選択手段は、前記第2の推定クロック情報に応じて前記装置情報の少なくとも一部を選択し、選択した前記装置情報の少なくとも一部から、前記選択情報を生成し、
      前記鍵生成手段は、前記第2の推定クロック情報と、前記選択情報とを少なくとも用いて第2の推定暗号鍵を生成し、
      前記通信手段は、前記第2の推定暗号鍵を用いて前記暗号処理手段により暗号化された通信データを他の前記通信装置に送信し、
      前記鍵生成手段は、前記第2の推定暗号鍵を用いて暗号化された通信データを正しく復号できたことを表す通知を、前記通信手段が他の前記通信装置から受信した場合、前記第2の推定クロック情報を、他の前記通信装置において生成された前記クロック情報と推定する請求項1乃至請求項4のいずれかに記載の通信装置。
  7.  前記鍵生成手段は、他の前記通信装置について推定した前記クロック情報と、自装置における前記クロック発生手段が生成した前記クロック情報との差分を表す調整情報を、他の前記通信装置に関連付けて保持し、
     自装置が、他の前記通信装置から通信データを受信する受信側の通信装置である場合、
     前記装置情報選択手段は、前記クロック発生手段により生成された前記クロック情報を、前記調整情報を用いて調整するとともに、調整後の前記クロック情報を用いて前記選択情報を生成し、
     前記鍵生成手段は、前記クロック発生手段により生成された前記クロック情報を、前記調整情報を用いて調整するとともに、調整後の前記クロック情報及び前記装置情報選択手段により生成された前記選択情報を用いて暗号鍵を生成し、
     前記暗号処理手段は、前記鍵生成手段により生成された暗号鍵を用いて、前記通信手段が受信した通信データを復号する、請求項5又は請求項6に記載の通信装置。
  8.  前記鍵生成手段は、他の前記通信装置について推定した前記クロック情報と、自装置における前記クロック発生手段が生成した前記クロック情報との差分を表す調整情報を、他の前記通信装置に関連付けて保持し、
     自装置が、他の前記通信装置に対して通信データを送信する送信側の通信装置である場合、
     前記装置情報選択手段は、前記クロック発生手段により生成された前記クロック情報を、前記調整情報を用いて調整するとともに、調整後の前記クロック情報を用いて前記選択情報を生成し、
     前記鍵生成手段は、前記クロック発生手段により生成された前記クロック情報を、前記調整情報を用いて調整するとともに、調整後の前記クロック情報及び前記装置情報選択手段により生成された前記選択情報を用いて暗号鍵を生成し、
     前記暗号処理手段は、前記鍵生成手段により生成された暗号鍵を用いて、前記通信手段から送信される通信データを暗号化する請求項5又は請求項6に記載の通信装置。
  9.  前記装置情報管理手段は、全ての前記通信装置が共通して保持する事前共有鍵と、自装置に固有の情報と、を前記装置情報として記憶し
     前記暗号処理手段は、事前共有鍵を用いて、自装置に固有の情報を含む通信データを暗号化し、
     前記通信手段は、前記暗号化された通信データを他の通信装置に送信し、
     前記通信手段が、他の前記通信装置から、他の前記通信装置に固有の情報を含む通信データを受信した場合、前記暗号処理手段は、前記事前共有鍵を用いて、前記通信手段が受信した通信データを復号し、復号された通信データに含まれる他の前記通信装置に固有の情報を、前記装置情報管理手段に提供する、請求項5乃至請求項8のいずれかに記載の通信装置。
  10.  前記装置情報選択手段は、選択した前記装置情報の少なくとも一部と、前記クロック発生手段により生成された前記クロック情報とを含むデータのハッシュ値を算出し、算出したハッシュ値を前記選択情報として提供する請求項2に記載の通信装置。
  11.  前記装置情報選択手段は、
      前記クロック情報に応じて、それぞれが異なる前記装置情報の少なくとも一部を選択する選択処理手段を複数有し、
      前記クロック情報に応じて1以上の前記選択処理手段を選択し、その選択処理手段により選択された前記装置情報の少なくとも一部を用いて、前記選択情報を生成する請求項2又は請求項10に記載の通信装置。
  12.  それぞれ請求項7に記載の前記通信装置である送信側通信装置と、受信側通信装置と、を有し、
     前記送信側通信装置における前記暗号処理手段は、その送信側通信装置における前記クロック発生手段により生成された前記クロック情報に応じて前記鍵生成手段により生成された暗号鍵を用いて通信データを暗号化し、その送信側通信装置における前記通信手段が、暗号化された通信データを前記受信側通信装置に送信し、
     前記受信側通信装置における前記暗号処理手段は、その受信側通信装置における前記クロック発生手段により生成された前記クロック情報を、前記調整情報を用いて調整し、調整後の前記クロック情報を用いて前記鍵生成手段により生成された暗号鍵を用いて、前記送信側通信装置から受信した通信データを復号する通信システム。
  13.  それぞれ請求項8に記載の前記通信装置である送信側通信装置と、受信側通信装置と、を有し、
     前記送信側通信装置における前記暗号処理手段は、その送信側通信装置における前記クロック発生手段により生成された前記クロック情報を前記調整情報を用いて調整し、調整した後の前記クロック情報に応じて前記鍵生成手段により生成された暗号鍵を用いて通信データを暗号化し、その送信側通信装置における前記通信手段が、暗号化された通信データを前記受信側通信装置に送信し、
     前記受信側通信装置における前記暗号処理手段は、その受信側通信装置における前記クロック発生手段により生成された前記クロック情報に応じて前記鍵生成手段により生成された暗号鍵を用いて、前記送信側通信装置から受信した通信データを復号する通信システム。
  14.  周期的なクロック信号を用いて、タイミングを表すクロック情報を生成し、
     前記クロック情報に応じて、1以上の通信装置に共通して保存される情報である装置情報の少なくとも一部を選択し、選択した前記装置情報の少なくとも一部から、前記クロック情報毎に異なる情報である選択情報を生成し、
     前記クロック情報と、生成された前記選択情報とを少なくとも用いて、暗号鍵を生成し、
     生成された暗号鍵を用いて、通信データに関する暗号化処理と復号処理との少なくとも一方を実行する通信方法。
  15.  通信装置を構成するコンピュータに、
     周期的なクロック信号を用いて、タイミングを表すクロック情報を生成する処理と、
     前記クロック情報に応じて、1以上の通信装置に共通して保存される情報である装置情報の少なくとも一部を選択し、選択した前記装置情報の少なくとも一部から、前記クロック情報毎に異なる情報である選択情報を生成する処理と、
     前記クロック情報と、生成された前記選択情報とを少なくとも用いて、暗号鍵を生成する処理と、
     生成された暗号鍵を用いて、通信データに関する暗号化処理と復号処理との少なくとも一方を実行する処理と、を実行させる通信プログラムが記録された記録媒体。
PCT/JP2017/035815 2016-10-03 2017-10-02 通信装置、通信方法、通信システム及び記録媒体 Ceased WO2018066509A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US16/336,347 US11082223B2 (en) 2016-10-03 2017-10-02 Communication device, communication method, and recording medium
JP2018543890A JP6743898B2 (ja) 2016-10-03 2017-10-02 通信装置、通信方法、通信システム及び通信プログラム
AU2017340733A AU2017340733B2 (en) 2016-10-03 2017-10-02 Communication device, communication method, communication system, and communication program
CN201780061010.8A CN109792385B (zh) 2016-10-03 2017-10-02 通信装置、通信方法、通信系统和记录介质
EP17858347.2A EP3522444B1 (en) 2016-10-03 2017-10-02 Communication device, communication method, communication system, and recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-195775 2016-10-03
JP2016195775 2016-10-03

Publications (1)

Publication Number Publication Date
WO2018066509A1 true WO2018066509A1 (ja) 2018-04-12

Family

ID=61832044

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/035815 Ceased WO2018066509A1 (ja) 2016-10-03 2017-10-02 通信装置、通信方法、通信システム及び記録媒体

Country Status (7)

Country Link
US (1) US11082223B2 (ja)
EP (1) EP3522444B1 (ja)
JP (1) JP6743898B2 (ja)
CN (1) CN109792385B (ja)
AU (1) AU2017340733B2 (ja)
TW (1) TWI694707B (ja)
WO (1) WO2018066509A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11343089B2 (en) * 2019-07-10 2022-05-24 Tunnel VUE Inc. Cryptography system and method
US12445453B2 (en) 2019-12-09 2025-10-14 Daniel Chien Access control systems and methods
US11509463B2 (en) * 2020-05-31 2022-11-22 Daniel Chien Timestamp-based shared key generation
JP7618057B2 (ja) * 2021-04-16 2025-01-20 ダニエル チエン デュアルクロックに基づく共有鍵の生成
CN115348045B (zh) * 2021-05-13 2025-05-23 北京小米移动软件有限公司 数据传输方法、数据传输装置及存储介质
US12495042B2 (en) * 2021-08-16 2025-12-09 Capital One Services, Llc Systems and methods for resetting an authentication counter

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020006202A1 (en) * 2000-02-22 2002-01-17 Hugo Fruehauf System and method for secure cryptographic communications
JP2003101528A (ja) * 2001-09-19 2003-04-04 Nagano Fujitsu Component Kk 暗号化データ送受信方法及びその方法を行うためのシステム、送信機
JP2014099793A (ja) * 2012-11-15 2014-05-29 Ntt Data Corp 通信システム、通信方法、通信装置、および通信プログラム
JP2016025532A (ja) * 2014-07-22 2016-02-08 パナソニックIpマネジメント株式会社 通信システム、通信装置、及び通信方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE517460C2 (sv) 2000-03-24 2002-06-11 Imp Internat Ab Metod och system för kryptering och autentisiering
JP2006508471A (ja) * 2002-11-27 2006-03-09 アールエスエイ セキュリティー インク 識別認証システムおよび方法
US8347096B2 (en) 2009-07-10 2013-01-01 Vasco Data Security, Inc. Authentication token with incremental key establishment capacity
CA2781608C (en) * 2009-11-25 2018-11-06 Aclara RF Systems Inc. Random number generator
US8995658B2 (en) * 2013-02-13 2015-03-31 Honeywell International Inc. Physics-based key generation
US9465960B2 (en) * 2013-12-04 2016-10-11 Honeywell International Inc. Physics-based authentication
US20150318982A1 (en) * 2014-05-05 2015-11-05 Andrew M. Kowalevicz Method and system for non-persistent communication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020006202A1 (en) * 2000-02-22 2002-01-17 Hugo Fruehauf System and method for secure cryptographic communications
JP2003101528A (ja) * 2001-09-19 2003-04-04 Nagano Fujitsu Component Kk 暗号化データ送受信方法及びその方法を行うためのシステム、送信機
JP2014099793A (ja) * 2012-11-15 2014-05-29 Ntt Data Corp 通信システム、通信方法、通信装置、および通信プログラム
JP2016025532A (ja) * 2014-07-22 2016-02-08 パナソニックIpマネジメント株式会社 通信システム、通信装置、及び通信方法

Also Published As

Publication number Publication date
EP3522444A1 (en) 2019-08-07
CN109792385B (zh) 2022-03-29
JPWO2018066509A1 (ja) 2019-06-24
JP6743898B2 (ja) 2020-08-19
US20190238332A1 (en) 2019-08-01
EP3522444A4 (en) 2019-10-02
TWI694707B (zh) 2020-05-21
AU2017340733B2 (en) 2020-03-26
TW201817194A (zh) 2018-05-01
AU2017340733A1 (en) 2019-03-28
EP3522444B1 (en) 2020-09-16
CN109792385A (zh) 2019-05-21
US11082223B2 (en) 2021-08-03

Similar Documents

Publication Publication Date Title
JP6743898B2 (ja) 通信装置、通信方法、通信システム及び通信プログラム
US12368584B2 (en) Time-based encryption key derivation
US6590981B2 (en) System and method for secure cryptographic communications
CN101304314B (zh) 对数据进行加密和解密的方法和使用该方法的总线系统
JP6743897B2 (ja) 通信装置、通信方法、及び通信プログラム
US10623180B2 (en) Communication device, communication method, and communication system
JP6367376B2 (ja) 安全なネットワーク通信のためのカオス・ベースの同期
JP2017517720A (ja) 無線航法信号の認証を最適化する方法及びシステム
US10439807B2 (en) Communication device, communication system, and communication method
US20180198770A1 (en) Communication device and system, data processing method and method for securely exchanging data
CN117792655A (zh) 基于时间同步的数据传输系统、方法
KR102029550B1 (ko) 디스플레이포트용 hdcp 설계
Latinovic et al. Bulk Mode Encryption Devices Modification for Usage of Quantum Key Distribution
CN120602177A (zh) 基于tsn的数据加密传输方法及其系统

Legal Events

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

Ref document number: 17858347

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018543890

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2017340733

Country of ref document: AU

Date of ref document: 20171002

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: 2017858347

Country of ref document: EP