WO2019142307A1 - 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム - Google Patents

半導体装置、更新データ提供方法、更新データ受取方法およびプログラム Download PDF

Info

Publication number
WO2019142307A1
WO2019142307A1 PCT/JP2018/001521 JP2018001521W WO2019142307A1 WO 2019142307 A1 WO2019142307 A1 WO 2019142307A1 JP 2018001521 W JP2018001521 W JP 2018001521W WO 2019142307 A1 WO2019142307 A1 WO 2019142307A1
Authority
WO
WIPO (PCT)
Prior art keywords
random number
signal
number signal
update data
semiconductor device
Prior art date
Application number
PCT/JP2018/001521
Other languages
English (en)
French (fr)
Inventor
大輔 森山
鈴木 大輔
Original Assignee
ルネサスエレクトロニクス株式会社
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ルネサスエレクトロニクス株式会社, 三菱電機株式会社 filed Critical ルネサスエレクトロニクス株式会社
Priority to US16/955,435 priority Critical patent/US11516024B2/en
Priority to CN201880082807.0A priority patent/CN111512593B/zh
Priority to JP2019565643A priority patent/JP6888122B2/ja
Priority to PCT/JP2018/001521 priority patent/WO2019142307A1/ja
Priority to EP18900856.8A priority patent/EP3742665A4/en
Publication of WO2019142307A1 publication Critical patent/WO2019142307A1/ja

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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Definitions

  • the present invention relates to a semiconductor device, a method of providing update data, a method of receiving update data, and a program.
  • IoT Internet of Things
  • the external device described in Patent Document 1 implements an update control program, means for calculating a digest value according to the program, means for determining whether the operation after the update is normal, and means for returning a determination result. It stores update data including programs. Then, the control device receives the update data transmitted from the external device via the relay device. Further, the control device updates the control program by the update control program included in the received update data, and executes the program to determine whether or not the operation after the update is normal, and the determination result is Reply to the relay device.
  • the electronic device described in Patent Document 2 has an application file related to the operation of application software, and updates the application file via a network.
  • the electronic device stores an application file including one or more data, and receives update data and position information indicating a position to be updated by the update data in the application file from the external device via the network. Furthermore, the electronic device rewrites the data present at the position indicated by the position information to the update data, updates only a part of the application file, and confirms whether the updated application file is falsified or not. I do.
  • the program rewriting system described in Patent Document 3 searches for difference data between a new program and an old program in an on-vehicle relay device compatible with multiprotocol, and transmits difference data in the new program to the ECU for storage.
  • the embedded device described in Patent Document 4 sequentially performs verification processing on each section obtained by dividing update data for updating software into a plurality of pieces.
  • the embedded device stores intermediate values obtained during the verification process.
  • the embedded device compares the value obtained by the verification process with the verification data to confirm that there is no tampering. If it is confirmed that there is no tampering, the embedded device performs verification processing on each section in order again.
  • the embedded device compares the intermediate value obtained in the verification process with the stored intermediate value, and if it matches, updates the software according to the section.
  • Patent Document 1 must enable the relay device to perform electronic signature calculation on the updated data. Moreover, since patent document 1 does not encrypt update data, it has not been able to guarantee the secrecy of update data. Moreover, the technique described in Patent Document 2 performs partial verification but does not perform verification as a whole. Therefore, management of tampering detection is performed for each block, and the amount of stored data may be increased. Further, in the technique described in Patent Document 3, since the relay device has to perform the electronic signature and the decryption operation of the update data, it is necessary to disclose the contents of the update data to the relay device, while the relay device and the ECU Security in communication is not secured.
  • a semiconductor device includes a memory, a random number generation circuit, and a control circuit, and provides update data to an external terminal device.
  • the memory stores key information
  • the random number generation circuit generates a first random number signal and a second random number signal.
  • the control circuit generates a sixth random number signal and a seventh random number signal from the first random number signal and the key information, and generates encrypted update data using the seventh random number signal for the update data.
  • the control circuit generates the first random number signal and the second random number signal as a request signal to be transmitted to the external terminal device, and the first response signal and the second response from the external terminal device as a response signal to the request signal.
  • the control circuit generates an eighth random number signal using the first response signal, the second random number signal, and the sixth random number signal as input signals, and the second response signal and the eighth random number signal are one. If it does, the encrypted update data is provided to the external terminal device.
  • a semiconductor device has a memory and a control circuit, and receives encrypted update data from an external server device.
  • the memory stores pre-update data and key information.
  • the control circuit receives a first random number signal and a second random number signal from the external server device as a request signal, and generates a sixth random number signal and a seventh random number signal from the first random number signal and the key information.
  • the control circuit generates a ninth random number signal and a tenth random number signal using the second random number signal and the sixth random number signal as input signals. Further, the control circuit generates a challenge code including a preset signal, and outputs the ninth random number signal and the challenge code to the external server device as a response signal to the request signal.
  • the control circuit receives an authentication signal and the encrypted update data from the external server apparatus based on the output response signal, and the received authentication signal matches the tenth random number signal. And decrypting the encrypted updated data.
  • the semiconductor device can exchange the update program efficiently and safely, and can realize the update of the program.
  • FIG. 1 is a schematic view of a transmission and reception system according to a first embodiment.
  • FIG. 1 is a hardware configuration diagram of a first semiconductor device according to a first embodiment.
  • FIG. 2 is a hardware configuration diagram of a second semiconductor device according to the first embodiment.
  • FIG. 6 is a hardware configuration diagram of a third semiconductor device according to the first embodiment.
  • FIG. 2 is a diagram showing transmission and reception signals of the transmission and reception system according to the first embodiment.
  • FIG. 1 is a functional block diagram of a first semiconductor device 110 according to a first embodiment.
  • 5 is a functional block diagram of a third semiconductor device according to Embodiment 1.
  • FIG. FIG. 1 is a functional block diagram of a first semiconductor device according to a first embodiment.
  • FIG. 5 is a functional block diagram of a third semiconductor device according to Embodiment 1.
  • FIG. FIG. 16 is a functional block diagram of a third semiconductor device according to a modification of the first embodiment.
  • FIG. 7 is a hardware configuration diagram of a transmission and reception system according to a second embodiment.
  • FIG. 8 is a diagram showing transmission and reception signals of the transmission and reception system according to the second embodiment.
  • FIG. 16 is a functional block diagram of a third semiconductor device according to Embodiment 2.
  • FIG. 7 is a functional block diagram of a first semiconductor device according to a second embodiment.
  • FIG. 16 is a functional block diagram of a third semiconductor device according to Embodiment 2.
  • FIG. 7 is a functional block diagram of a first semiconductor device according to a second embodiment.
  • FIG. 16 is a hardware configuration diagram of a second semiconductor device according to a third embodiment.
  • FIG. 16 is a diagram showing transmission and reception signals of the transmission and reception system according to the third embodiment.
  • FIG. 16 is a functional block diagram of a first semiconductor device according to a third embodiment.
  • FIG. 16 is a functional block diagram of a second semiconductor device according to a third embodiment.
  • FIG. 16 is a functional block diagram of a second semiconductor device according to a third embodiment.
  • each element described in the drawing as a functional block that performs various processing can be configured by a CPU (Central Processing Unit), a memory, and other circuits in terms of hardware, and in terms of software, a memory It is realized by the program etc. loaded to Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to any of them. Therefore, the configuration exemplified as the circuit in the following description can be realized by either hardware or software or both, and the configuration shown as the circuit realizing a certain function realizes the same function. Can also be shown as part of the For example, a configuration described as a control circuit may be described as a control unit. In the drawings, the same elements are denoted by the same reference numerals, and the redundant description is omitted as necessary.
  • Non-transitory computer readable media include various types of tangible storage media. Examples of non-transitory computer readable media are magnetic recording media (eg flexible disk, magnetic tape, hard disk drive), magneto-optical recording media (eg magneto-optical disk), CD-ROM (Read Only Memory) CD-R, CD And semiconductor memory (eg, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (Random Access Memory)).
  • the programs may also be supplied to the computer by various types of temporary computer readable media. Examples of temporary computer readable media include electrical signals, light signals, and electromagnetic waves.
  • the temporary computer readable medium can provide the program to the computer via a wired communication path such as electric wire and optical fiber, or a wireless communication path.
  • FIG. 1 is a schematic diagram of a transmission / reception system according to a first embodiment.
  • the transmission / reception system 1 is a system for updating the pre-update data possessed by the terminal device 13 into the update data possessed by the server device 11.
  • the transmission / reception system 1 encrypts update data in the server device 11 and transmits encrypted update data, which is encrypted update data, to the terminal device 13.
  • the terminal device 13 decrypts the encrypted update data to update the data.
  • the transmission / reception system 1 includes a server device 11, a relay device 12, and a terminal device 13.
  • the server device 11 and the relay device 12 are communicably connected.
  • the relay device 12 and the terminal device 13 are communicably connected.
  • the server device 11 and the relay device 12 are communicably connected via the network 900.
  • the connection means for enabling each configuration to be communicated may be wired or wireless, and may be via the Internet or not.
  • the server device 11 is, for example, a personal computer or a blade server, and includes a first semiconductor device 110 that performs information processing.
  • the relay device 12 is, for example, a smart phone, a tablet terminal, or the like, and includes a second semiconductor device 120 that handles information processing.
  • the terminal device 13 is a device called an IoT device, which can be connected to the Internet, or another device having a communication function.
  • the terminal device 13 has a third semiconductor device 130 that controls information processing.
  • FIG. 2 is a hardware configuration diagram of the first semiconductor device 110 according to the first embodiment.
  • the first semiconductor device 110 in charge of information processing mainly includes a CPU 111, a non-volatile random access memory (NVRAM) 112, a dynamic random access memory (DRAM) 113, an interface (IF) 114, and a true random number generator (TRNG) 115 It has a random number generation circuit), and these configurations are connected by a communication bus.
  • NVRAM non-volatile random access memory
  • DRAM dynamic random access memory
  • IF interface
  • TRNG true random number generator
  • the CPU 111 is an arithmetic device for performing arithmetic processing and the like to be described later in the first semiconductor device 110.
  • the CPU 111 mainly includes a PRF arithmetic circuit 111a, a comparison circuit 111b, an AE encryption circuit 111c, and a selection circuit 111d.
  • the CPU 111 may have a plurality of these configurations as hardware, or may be configured to be capable of parallel processing as software.
  • the CPU described in this embodiment may include peripheral circuits other than the CPU core.
  • PRF Pseudorandom function
  • a pseudorandom function is a function that can not be identified cryptographically as a random number, and returns an output that looks intuitively sufficiently random, and is a polynomial time that distinguishes both from a true random function Point to the one where there is no algorithm.
  • the PRF arithmetic circuit 111a outputs the same result for the same input.
  • the PRF arithmetic circuit 111a may specify the number of output variables as an input.
  • the PRF operation circuit 111a may use another function such as a common key encryption or a function based on a hash function, as long as the above-described output is performed and security can be ensured.
  • the comparison circuit 111b receives two signals as inputs, compares the two received signals, and outputs as a comparison result whether or not the two signals match.
  • the output signal of the comparison result the output signal when the two signals do not match is “0”, and the output signal when the two signals match is “1”.
  • the output signal of the comparison result is not limited to this.
  • the key information is also used when performing decryption processing.
  • the AE encryption circuit 111 c outputs a ciphertext, an authentication tag, and a header signal.
  • the selection circuit 111d has a function of outputting a signal selected from among a plurality of input signals.
  • the selection circuit 111d selects which one of the plurality of input signals is to be output according to the value of the comparison result signal SG20 supplied from the comparison circuit 111b. That is, the comparison result signal SG20 is a selection control signal of the selection circuit 111d.
  • the selection circuit 111d is a multiplexer as an example of a hardware configuration.
  • the NVRAM 112 is, for example, a readable and writable non-volatile storage device such as a flash memory.
  • the NVRAM 112 stores update data, key information for securing communication security, and the like.
  • the DRAM 113 is a volatile storage device and temporarily stores various data.
  • the hardware configuration of the DRAM 113 in this embodiment is an example, and the DRAM 113 may be configured by a static random access memory (SRAM), and instead of the volatile memory, a magnetoresistive random access memory (MRAM), Alternatively, it may be configured by non-volatile memory such as flash memory.
  • SRAM static random access memory
  • MRAM magnetoresistive random access memory
  • non-volatile memory such as flash memory.
  • the TRNG 115 is a true random number generation circuit.
  • the TRNG 115 generates random numbers based on the signal using a random physical phenomenon, such as a sensor that detects noise generated by a diode, thermal noise, or radiation due to decay of a radioactive substance.
  • the CPU 111 processes a signal of each configuration, transmits a signal corresponding to the process to the relay device 12 via the IF 114, or receives a signal received from the relay device 12 via the IF 114, and receives the received signal To process.
  • FIG. 3 is a hardware configuration diagram of the second semiconductor device 120 according to the first embodiment.
  • the second semiconductor device 120 in charge of information processing mainly includes a CPU 121, an NVRAM 122, a DRAM 123, and an IF 124, which are connected by a communication bus.
  • the second semiconductor device 120 communicates with the server device 11, receives a signal from the server device 11, processes the received signal as necessary, and transmits it to the terminal device 13. Further, the relay device 12 receives a signal from the terminal device 13, processes the received signal as necessary, and transmits the processed signal to the server device 11.
  • FIG. 4 is a hardware configuration diagram of the third semiconductor device 130 according to the first embodiment.
  • the third semiconductor device 130 responsible for information processing has, as main components, a CPU 131, an NVRAM 132, a DRAM 133, an IF 134, and a TRNG 135, which are connected by a communication bus.
  • the terminal device 13 receives a signal from the relay device 12 and processes the received signal. Further, the terminal device 13 transmits the processed signal to the relay device 12.
  • the CPU 131 is an arithmetic device for performing arithmetic processing and the like in the third semiconductor device 130.
  • the CPU 131 mainly has a PRF arithmetic circuit 131a, a comparison circuit 131b, and an AE decoding circuit 131c.
  • the AE decryption circuit 131 c performs decryption processing and verification of an authentication tag on the authentication-encrypted signal. That is, the AE decryption circuit 131c uses the ciphertext, the authentication tag, the header signal output from the AE encryption circuit 111c, and the key information used by the AE encryption circuit 111c as input signals. The AE decryption circuit 131 c decrypts the ciphertext, and verifies whether the authentication tag generated as a result of the decryption matches the authentication tag received as an input signal. As a result of the verification, if these authentication tags match, the AE decryption circuit 131 c outputs the decrypted plaintext. On the other hand, if these authentication tags do not match, the AE decoding circuit 131 c outputs a signal indicating that the authentication results do not match.
  • the update control circuit 131 d performs signal control for updating the firmware.
  • the update control circuit 131 d receives a flag signal and an update data signal as input signals. If the received flag signal is a value for updating the firmware, the update control circuit 131d executes a process of replacing the update data received as an input signal with the pre-update data. Further, the update control circuit 131 d may have a function of outputting whether or not the firmware update process has succeeded.
  • the terminal device 13 may not have the TRNG 135.
  • FIG. 5 is a diagram showing transmission and reception signals of the transmission and reception system 1 according to the first embodiment.
  • the server device 11 stores, in the NVRAM 112, update data SG02, update version data SG04, an identifier SG05, and a master key SG06.
  • the update data SG02 is, for example, a new version of firmware for the terminal device 13.
  • the update version data SG04 is data including version information of the update data SG02.
  • the identifier SG05 is identification information uniquely assigned to the terminal device 13, and is, for example, a Mac address (Media Access Control address) of the terminal device 13, an identification number unique to a product, or the like.
  • the terminal device 13 stores, in the NVRAM 132, pre-update data SG01, pre-update version data SG03, an identifier SG05, and a master key SG06.
  • the pre-update data SG01 is, for example, firmware currently used by the terminal device 13.
  • the pre-update version data SG03 is data including version information of the pre-update data SG01.
  • the transmission and reception system 1 performs a version update process of the firmware of the terminal device 13.
  • the relay device 12 transmits a version check request signal SG08 to the terminal device 13 (step S11).
  • the version check request signal SG08 is a signal for requesting the terminal device 13 to respond with the version of firmware.
  • the terminal device 13 When the terminal device 13 receives the version check request signal SG08 from the relay device 12, the terminal device 13 relays the pre-update version data SG03, which is the version of the current firmware of the terminal device 13, and the identifier SG05 in response to the received request signal. It transmits to 12 (step S12).
  • the relay device 12 When the relay device 12 receives the pre-update version data SG03 and the identifier SG05 from the terminal device 13, the relay device 12 adds a version upgrade request signal SG09 to these data, and transmits the data to the server device 11 (step S13).
  • the first semiconductor device 110 included in the server device 11 determines whether to perform the process on the terminal device 13 in order to perform the firmware version update process. When performing such processing, the first semiconductor device 110 outputs a signal for generating a key used when decrypting the encrypted update data, and a challenge code for authenticating the terminal device 13.
  • FIG. 6 is a functional block diagram of the first semiconductor device 110 in the server apparatus 11 according to the first embodiment.
  • the first semiconductor device 110 receives a version upgrade request signal SG ⁇ b> 09 from the relay device 12.
  • the first semiconductor device 110 accesses the database area of the NVRAM 112 and checks whether the identifier SG05 stored in the NVRAM 112 matches the identifier SG05 received from the relay device 12 or not.
  • the server apparatus 11 collates the pre-update version data SG03 which is the firmware version of the terminal apparatus 13 received from the relay apparatus 12 with the update version data SG04 stored in the NVRAM 112 when these signals regarding the identifier match. . That is, the first semiconductor device 110 accesses the update data area of the NVRAM 112, and transmits the update version data SG04 to the comparison circuit 111b of the CPU 111. The first semiconductor device 110 also supplies the pre-update version data SG03 received from the relay device 12 to the comparison circuit 111b. Then, the comparison circuit 111b compares these data, and outputs a comparison result signal SG10 to the PRF calculation circuit 111a.
  • the comparison circuit 111b As a result of comparison of data by the comparison circuit 111b, when the version data match, the comparison circuit 111b outputs "0" as the comparison result signal SG10. In this case, the firmware of the terminal device 13 is the latest and does not need to be updated. Therefore, the PRF arithmetic circuit 111a does not execute the process for updating the firmware. On the other hand, when the version data do not match as a result of the comparison, the comparison circuit 111b outputs "1" as the comparison result signal SG10. In this case, the server device 11 executes a process for updating the firmware of the terminal device 13 described later.
  • the PRF operation circuit 111a accesses the database area of the NVRAM 112 and receives the master key SG06.
  • the PRF arithmetic circuit 111a receives the first random number signal SG11 from the TRNG 115.
  • the PRF operation circuit 111a receives the master key SG06 and the first random number signal SG11, generates a sixth random number signal SG13 and a seventh random number signal SG14, and stores the generated signals in the DRAM 113.
  • the TRNG 115 supplies the first random number signal SG11 to the PRF arithmetic circuit 111a, generates the second random number signal SG12, and stores the generated second random number signal SG12 in the DRAM 113.
  • the TRNG 115 outputs the generated first random number signal SG11 as information for generating a key for the terminal device 13 to decrypt the update data. Also, the TRNG 115 outputs the generated second random number signal SG12 as a challenge code that is a request signal to the terminal device 13.
  • the server device 11 transmits the first random number signal SG11 and the second random number signal SG12 output from the TRNG 115 to the relay device 12 (step S14).
  • the relay device 12 transmits the first random number signal SG11 and the second random number signal SG12 received from the server device 11 to the terminal device 13 (step S15).
  • the third semiconductor device 130 included in the terminal device 13 decrypts the encrypted update data using the signal (first random number signal SG11) received from the server device 11 for generating the key.
  • a key (seventh random number signal SG14) to be used in the process is generated.
  • the third semiconductor device 130 outputs a response code (ninth random number signal SG16) as a response signal to the challenge code (second random number signal SG12) received from the server device 11. Further, when making a response, the third semiconductor device 130 outputs a challenge code (third random number signal SG15) for authenticating the server device 11.
  • FIG. 7 is a functional block diagram of the terminal apparatus according to the first embodiment.
  • PRF arithmetic circuit 131a_1 since there are two PRF arithmetic circuits, for convenience of explanation, one is called a PRF arithmetic circuit 131a_1, and the other is called a PRF arithmetic circuit 131a_2.
  • the PRF arithmetic circuit 131a_1 and the PRF arithmetic circuit 131a_2 may have different configurations, or may have one configuration and perform different computations. Further, also in the following description, when there are a plurality of configurations of the same type in one block diagram, the same reference numerals may be given.
  • the third semiconductor device 130 included in the terminal device 13 inputs the received first random number signal SG11 to the PRF arithmetic circuit 131a included in the CPU 131.
  • the PRF arithmetic circuit 131a reads the master key SG06 stored in the NVRAM 132 as an input signal.
  • the PRF calculation circuit 131a_1 receives the master key SG06 and the first random number signal SG11, and generates a sixth random number signal SG13 and a seventh random number signal SG14. Among the generated signals, the PRF arithmetic circuit 131a_1 inputs the sixth random number signal SG13 to the PRF arithmetic circuit 131a_2. Further, the PRF arithmetic circuit 131a_1 causes the DRAM 133 to store the seventh random number signal SG14 among the generated signals.
  • the PRF arithmetic circuit 131a_2 to which the sixth random number signal SG13 is input further receives the second random number signal SG12 received from the relay apparatus 12 as an input signal.
  • the PRF arithmetic circuit 131a_2 receives the third random number signal SG15 from the TRNG 135 as another input signal.
  • the PRF arithmetic circuit 131a_2 generates a ninth random number signal SG16 and a tenth random number signal SG17, using the sixth random number signal SG13, the second random number signal SG12, and the third random number signal SG15 as input signals. Among these generated signals, the PRF arithmetic circuit 131a_2 outputs the ninth random number signal SG16 as a response signal to the request signal received from the server apparatus 11. Further, the PRF arithmetic circuit 131a_2 causes the DRAM 133 to store the tenth random number signal SG17 among the generated signals.
  • the TRNG 135 outputs the third random number signal SG15 generated as an input signal of the PRF operation circuit 131a_2 as a response signal to the request signal received from the server apparatus 11. That is, the third semiconductor device 130 outputs the ninth random number signal SG16 and the third random number signal SG15 as a response signal to the request signal received from the server device 11.
  • the terminal device 13 transmits the third random number signal SG15 and the ninth random number signal SG16 output from the third semiconductor device 130 to the relay device 12 (step S16).
  • the relay device 12 transmits the third random number signal SG15 and the ninth random number signal SG16 received from the server device 11 to the server device 11 (step S17).
  • the first semiconductor device 110 included in the server device 11 outputs a response code (an eleventh random number signal SG19) as a response signal to the challenge code (third random number signal SG15) received from the terminal device 13.
  • the first semiconductor device 110 also compares whether the response code (the ninth random number signal SG16) received from the terminal device 13 matches the expected value, and outputs a ciphertext SG23 according to the comparison result.
  • FIG. 8 is a functional block diagram of the first semiconductor device according to the first embodiment.
  • the first semiconductor device 110 inputs the received third random number signal SG15 to the PRF operation circuit 111a.
  • the PRF operation circuit 111a further receives a sixth random number signal SG13 and a second random number signal SG12 from the DRAM 113 as input signals.
  • the PRF operation circuit 111a generates an eighth random number signal SG18 and an eleventh random number signal SG19, using the sixth random number signal SG13, the second random number signal SG12, and the third random number signal SG15 as input signals.
  • the PRF arithmetic circuit 111a transmits the generated eighth random number signal SG18 to the comparison circuit 111b.
  • the PRF arithmetic circuit 111a outputs the generated eleventh random number signal SG19 as a response code in response to the challenge code received from the terminal device 13.
  • the first semiconductor device 110 inputs the received ninth random number signal SG16 to the comparison circuit 111b.
  • the comparison circuit 111b receives the eighth random number signal SG18 output from the PRF operation circuit 111a and the ninth random number signal SG16 output from the terminal device 13 as input signals, and compares the received signals. That is, the server device 11 compares the response code sent by the terminal device 13 with the challenge code sent by the server device 11 whether it matches the expected value. As a result of comparison of data by the comparison circuit 111b, when these signals do not match, the comparison circuit 111b outputs "0" as the comparison result signal SG20.
  • the comparison circuit 111 b outputs “1” as the comparison result signal SG ⁇ b> 20.
  • the comparison circuit 111b supplies the output comparison result signal SG20 to the selection circuit 111d.
  • the AE encryption circuit 111 c receives the update data SG 02 and the update version data SG 04 as input signals from the NVRAM 112.
  • the AE encryption circuit 111 c also receives, from the DRAM 113, a seventh random number signal SG 14 which is key information for encrypting the update data SG 02 and the update version data SG 04.
  • the AE encryption circuit 111c outputs the encrypted update data SG21 based on these input signals, and inputs the output encrypted update data SG21 to the selection circuit 111d.
  • the TRNG 115 generates a fourth random number signal SG22, and inputs the generated signal to the selection circuit 111d.
  • the fourth random number signal SG22 output from the TRNG 115 is a true random number, and is set so that the number of digits of the signal is the same as the encrypted update data SG21. That is, when the decryption is not possible, it is not easy to distinguish between the encrypted update data SG21 and the fourth random number signal SG22.
  • the selection circuit 111d receives the encrypted update data SG21 and the fourth random number signal SG22 described above as input signals, and receives the comparison result signal SG20 as a selection control signal.
  • the selection circuit 111d selects the encrypted update data SG21 as the ciphertext SG23 that is the output signal.
  • the selection circuit 111d selects the fourth random number signal SG22 instead of the encrypted update data SG21 as the ciphertext SG23 which is an output signal.
  • the selection circuit 111d selects a signal in this manner, and outputs the selected signal as a ciphertext SG23.
  • the first semiconductor device 110 outputs the encrypted signal including the update data when the authentication of the terminal device 13 is correctly performed, and when the authentication of the terminal device 13 is not correctly performed, A random number signal is transmitted that is not easy to distinguish from the encrypted update data SG21 for a destination that is not correctly authenticated.
  • a random number signal is transmitted that is not easy to distinguish from the encrypted update data SG21 for a destination that is not correctly authenticated.
  • the first semiconductor device 110 outputs an eleventh random number signal SG19 as a response code to the third random number signal SG15 which is a challenge code, and a ninth random number signal SG16 which is a response code received from the terminal device 13.
  • the ciphertext SG23 is output according to.
  • the server device 11 transmits the eleventh random number signal SG19 and the ciphertext SG23 output by the first semiconductor device 110 to the relay device 12 (step S18).
  • the relay device 12 transmits the eleventh random number signal SG19 and the ciphertext SG23 received from the server device 11 to the terminal device 13 (step S19).
  • the third semiconductor device 130 included in the terminal device 13 authenticates the server device 11 using the response code (the eleventh random number signal SG ⁇ b> 19) received from the server device 11. Further, the third semiconductor device 130 determines whether to decrypt the ciphertext SG23 received from the server device 11 according to the authentication result of the server device 11 and performs processing according to the determination result.
  • FIG. 9 is a functional block diagram of a third semiconductor device according to the first embodiment.
  • the third semiconductor device 130 of the terminal device 13 inputs the eleventh random number signal SG19 received from the server device 11 and the tenth random number signal SG17 stored in the DRAM 133 to the comparison circuit 131b_1, Compare the signals.
  • the comparison circuit 131 b _ 1 outputs “0” as the comparison result signal SG 24 when these signals do not match, and outputs “1” as the comparison result signal SG 24 when these signals match.
  • the supplied signal is supplied to the AE decoding circuit 131c.
  • the third semiconductor device 130 also inputs the ciphertext SG23 received from the server device 11 to the AE encryption circuit 111c.
  • the AE encryption circuit 111c further receives a seventh random number signal SG14 stored in the DRAM 133 as an input signal.
  • the AE decryption circuit 131c executes the following process of decrypting the ciphertext SG23.
  • the AE decryption circuit 131 c decrypts the ciphertext SG ⁇ b> 23 with the ciphertext SG ⁇ b> 23 and the seventh random number signal SG ⁇ b> 14 as key information for decrypting the ciphertext SG ⁇ b> 23 as input signals.
  • the AE decoding circuit 131c supplies the updated version data SG04 contained in the output signal to the comparison circuit 131b_2.
  • the comparison circuit 131b_2 receives, from the NVRAM 132, pre-update version data SG03 which is version information of the current firmware stored in the third semiconductor device 130.
  • the comparison circuit 131b_2 compares whether the update version data SG04 is larger than the pre-update version data SG03 and supplies a comparison result signal SG25 to the update control circuit 131d.
  • the update control circuit 131d receives the comparison result signal SG25 from the comparison circuit 131b_2 and also receives the decoded update data SG02 from the AE decoding circuit 131c.
  • the update control circuit 131 d performs a process of updating the firmware stored in the NVRAM 132 when the version of the decoded firmware is larger than the version of the firmware stored in the NVRAM 132.
  • the update control circuit 131d stores the update data SG02 in the NVRAM 132 instead of the pre-update data SG01, and stores the update version data SG04 in the NVRAM 132 instead of the pre-update version data SG03.
  • the transmission / reception system 1 is configured as described above. From the above description, the processing of the transmission / reception system 1 can be summarized as follows. That is, the transmission / reception system 1 including the server device and the terminal device that receives the update data from the server device executes the process as follows.
  • the server device 11 transmits, to the terminal device 13, a signal (111) for generating a key for decrypting the encryption with authentication and a challenge code (112) for authenticating the terminal device 13.
  • the terminal device 13 transmits, to the server device 11, a response code for the challenge code (112) and a challenge code for authenticating the server device 11.
  • the server device verifies the response code, transmits a preset encryption according to the verification result, and transmits to the terminal device 13 a response code to the challenge code received from the terminal device 13.
  • the terminal device 13 verifies the response code received from the server device 11, and determines processing for the encryption received together with the response code according to the verification result.
  • the relay device 12 is interposed between the server device 11 and the terminal device 13, the server device 11 and the relay device 12 communicate, and the relay device 12 and the terminal device 13 communicate.
  • the transmission and reception system 1 transmits and receives update data using a common key that the server device 11 and the terminal device 13 have.
  • the transmission / reception system 1 also calculates signals using the pseudo random functions common to the server device 11 and the terminal device 13. Therefore, the transmission / reception system 1 can maintain the secrecy of the update data and prevent information leakage to a third party.
  • the transmission / reception system 1 transmits / receives update data using an authentication-added encryption technology. Therefore, if the terminal device 13 is supplied with the tampered update data, the transmission / reception system 1 can prevent the update by the incorrect data by verifying the authentication tag.
  • the relay device 12 is interposed between the server device 11 and the terminal device 13.
  • the transmission and reception system 1 can transmit and receive signals between the server device 11 and the terminal device 13. Therefore, the transmission / reception system 1 can update the firmware even when the terminal device 13 is not directly connected to the Internet, for example, and can reduce the operation cost.
  • the server device 11 and the terminal device 13 each have a common key.
  • the transmission and reception system 1 can perform processing at high speed.
  • the processing speed of the system according to the present embodiment is about 100 times faster than that of a system using a general public key.
  • the transmission / reception system 1 according to the modification of the first embodiment differs from the above-described configuration of the terminal device 13 in that the terminal device 13 does not have the TRNG 135.
  • FIG. 10 is a functional block diagram of a third semiconductor device according to a modification of the first embodiment.
  • the functional block diagram of FIG. 10 is for explaining the process performed by the terminal apparatus 13 that has received the first random number signal SG11 and the second random number signal SG12 in step S15 in FIG. It corresponds.
  • FIG. 10 is a functional block diagram of the terminal apparatus according to the first embodiment.
  • the processing performed by the terminal device 13 receiving the first random number signal SG11 and the second random number signal SG12 will be outlined in terms of differences from the first embodiment described above.
  • the third semiconductor device 130 included in the terminal device 13 generates a twelfth random number signal SG07_n instead of the third random number signal SG15 as the challenge code for authenticating the server device 11.
  • the third semiconductor device 130 stores the twelfth random number signal SG07_n generated by the PRF calculation circuit 131a_2 in the NVRAM 132.
  • the third semiconductor device 130 outputs the ninth random number signal SG16 as a response code, and outputs the twelfth random number signal SG07_n as a challenge code.
  • the third semiconductor device 130 stores in advance in the NVRAM 132 a twelfth random number signal SG07_0, which is a random number, as an initial value of the twelfth random number signal SG07_n.
  • the PRF operation circuit 131a accesses the NVRAM 132 and receives the twelfth random number signal SG07_0.
  • the PRF arithmetic circuit 131a_2 also receives the second random number signal SG12 and the sixth random number signal SG13 output from the PRF arithmetic circuit 131a_1 as input signals.
  • the PRF calculation circuit 131a_2 performs calculations using these as input signals, and generates a ninth random number signal SG16, a tenth random number signal SG17, and a twelfth random number signal SG07_1 as output signals.
  • the PRF operation circuit 131a_2 outputs the twelfth random number signal SG07_1 out of these output signals as a challenge code for authenticating the server apparatus 11, and stores the twelfth random number signal SG07_1 in the NVRAM 132.
  • the PRF arithmetic circuit 131a_2 sequentially updates the twelfth random number signal SG07_n to a new value each time the arithmetic operation is performed, and stores the updated signal in the NVRAM 132.
  • the terminal device 13 can authenticate the server device 11 without having the TRNG 135. Therefore, the transmission and reception system 1 can make the terminal device 13 a simple configuration. Therefore, in the modification of the first embodiment, the transmission / reception system 1 can exchange the update program efficiently and safely with a simple configuration, and can realize the update of the program.
  • the present invention is not limited to this.
  • the transmission / reception system 1 can exchange the update program efficiently and safely with a simple configuration, and can realize the program update.
  • the transmission / reception system 2 according to the second embodiment is different from that of the first embodiment in the configuration of the CPU of the server device and the configuration of the CPU of the terminal device.
  • the transmission / reception system 2 according to the second embodiment is different from the transmission / reception system 1 according to the first embodiment in that the server apparatus manages the version of firmware of the terminal device.
  • FIG. 11 is a hardware configuration diagram of the transmission and reception system according to the second embodiment.
  • the transmission / reception system 2 includes a server device 21, a relay device 22, and a terminal device 23.
  • the server device 21 includes a first semiconductor device 210, and the first semiconductor device 210 includes a CPU 211.
  • the CPU 211 differs from the CPU 111 according to the first embodiment in that the CPU 211 includes the update control circuit 211 e.
  • the terminal device 23 includes a third semiconductor device 230, and the third semiconductor device 230 includes a CPU 231.
  • the CPU 231 differs from the CPU 231 according to the first embodiment in that it includes a selection circuit 231e.
  • FIG. 12 is a diagram showing transmission and reception signals of the transmission and reception system according to the second embodiment.
  • the server apparatus 21 differs from the server apparatus 11 according to the first embodiment in that the pre-update version data SG03 is stored in the NVRAM 112. That is, the server device 21 manages what is the current firmware version of the terminal device 23.
  • the terminal device 23 stores the same signal as the terminal device 13 according to the first embodiment.
  • step S 11 to step S 15 is the same as that of the first embodiment.
  • the third semiconductor device 230 included in the terminal device 23 is different from that of Embodiment 1 in the signal output from the PRF arithmetic circuit 231 a_2. That is, the PRF arithmetic circuit 231a_2 adds the ninth random number signal SG16 and the tenth random number signal SG17 to the thirteenth random number signal SG17 in the calculation using the sixth random number signal SG13, the second random number signal SG12 and the third random number signal SG15 as input signals.
  • the random number signal SG26 is also output.
  • the thirteenth random number signal SG26 is used as a signal to indicate that the firmware update has been correctly performed.
  • the PRF arithmetic circuit 231a_2 stores the output thirteenth random number signal SG26 in the DRAM 133.
  • the third semiconductor device 230 which has performed the above-described process outputs the third random number signal SG ⁇ b> 15 and the ninth random number signal SG ⁇ b> 16 as in the first embodiment.
  • the terminal device 23 transmits the third random number signal SG15 and the ninth random number signal SG16 to the relay device 22 (step S26), and the relay device 22 transmits these signals to the server device 21 (step S27).
  • FIG. 14 is a functional block diagram of the server apparatus according to the second embodiment.
  • the first semiconductor device 210 included in the server device 21 differs from the first embodiment in the signal output from the PRF operation circuit 211 a. That is, the PRF arithmetic circuit 211a adds the eighth random number signal SG18 and the eleventh random number signal SG19 to the fourteenth random number signal SG19 in the calculation using the second random number signal SG12, the sixth random number signal SG13 and the third random number signal SG15 as input signals.
  • the random number signal SG27 is also output.
  • the fourteenth random number signal SG27 is used as a signal for verifying a firmware update result signal received from the terminal device 23.
  • the PRF arithmetic circuit 211 a stores the output fourteenth random number signal SG 27 in the DRAM 113.
  • the first semiconductor device 210 that has executed the above-described process outputs an eleventh random number signal SG19 and a ciphertext SG23 as in the first embodiment.
  • the server device 21 transmits the eleventh random number signal SG19 and the ciphertext SG23 to the relay device 22 (step S28), and the relay device 22 transmits these signals to the terminal device 23 (step S29).
  • the third semiconductor device 230 included in the terminal device 23 outputs the update result from the update control circuit 231d, and the third semiconductor device 230 outputs the update result signal based on the update result output from the update control circuit 231d.
  • the point of transmitting to the server device 21 is different from the first embodiment.
  • FIG. 15 is a functional block diagram of a terminal apparatus according to the second embodiment.
  • the update control circuit 231d receives the comparison result signal SG25 from the comparison circuit 231b, and receives the updated data SG02 decoded from the AE decoding circuit 231c.
  • the update control circuit 231d performs a process of updating the firmware stored in the NVRAM 132 when the version of the decoded firmware is larger than the version of the firmware stored in the NVRAM 132.
  • the update control circuit 231d When the process of updating the firmware is completed, the update control circuit 231d generates a first update result signal SG28 indicating whether or not the process is successful, and selects the generated first update result signal SG28 as the selection circuit 231e. It supplies as a control signal. If the process of updating the firmware is successful, the update control circuit 231 d outputs “1” as the first update result signal SG ⁇ b> 28. On the other hand, when the process of updating the firmware is not successful, the update control circuit 231d outputs “0” as the first update result signal SG28.
  • the selection circuit 231e receives the thirteenth random number signal SG26 from the DRAM 133 as an input signal, and further receives a fifth random number signal SG29 from the TRNG 135.
  • the fifth random number signal SG29 is a true random number having the same number of digits as the thirteenth random number signal SG26.
  • the selection circuit 231e selects the thirteenth random number signal SG26 as a signal to be output.
  • the selection circuit 231 e selects the fifth random number signal SG ⁇ b> 29 as a signal to be output.
  • the selection circuit 231e outputs the selected signal as a second update result signal SG30.
  • the third semiconductor device 230 outputs the second update result signal SG30 output by the selection circuit 231e.
  • the terminal device 23 transmits the second update result signal SG30 to the relay device 22 (step S30), and the relay device 22 transmits this to the server device 21 (step S31).
  • FIG. 16 is a functional block diagram of the server apparatus according to the second embodiment.
  • the first semiconductor device 210 included in the server device 21 supplies the received second update result signal SG ⁇ b> 30 to the comparison circuit 211 b.
  • the comparison circuit 211 b also receives a fourteenth random number signal SG 27 from the DRAM 113. That is, the comparison circuit 211b compares the second update result signal SG30 with the fourteenth random number signal SG27, and outputs the comparison result signal SG31 to the update control circuit 211e.
  • the comparison circuit 211b When the second update result signal SG30 and the fourteenth random number signal SG27 coincide with each other, the comparison circuit 211b outputs "1" as the comparison result signal SG31. On the other hand, when the second update result signal SG30 and the fourteenth random number signal SG27 do not match, the comparison circuit 211b outputs "0" as the comparison result signal SG31.
  • the update control circuit 211 e When the update control circuit 211 e receives “0” as the comparison result signal SG 31, the update control circuit 211 e does not execute the process of updating the data of the NVRAM 112. In this case, the terminal device 23 may determine that the update processing has failed, and the comparison result signal SG31 may be stored in the NVRAM 112. On the other hand, when the update control circuit 211 e receives “1” as the comparison result signal SG 31, the update control circuit 211 e executes a process of updating the data of the NVRAM 112. That is, the update control circuit 211e accesses the update data area of the NVRAM 112 and receives the update version data SG04 related to the update data transmitted to the terminal device 23. Then, the update control circuit 211e performs a process of storing the update version data SG04 instead of the pre-update version data SG03 stored in the database area of the NVRAM 112.
  • the transmission / reception system can easily manage the update data of the terminal device. Therefore, for example, when the server device manages a plurality of terminal devices, it is possible to manage the update status of the data possessed by each, and it becomes possible to grasp network vulnerability etc.
  • Embodiment 3 A third embodiment will now be described with reference to FIGS. 17 to 21.
  • the transmission / reception system 3 according to the third embodiment is different from that of the first embodiment in the communication processing between the terminal devices. That is, the transmission / reception system 3 according to the third embodiment first performs communication between the server device 31 and the relay device 32, and then performs communication in a state where communication between the server device 31 and the relay device 32 is not performed. Communication between the device 32 and the terminal device 33 is performed.
  • the transmission / reception system 3 according to the third embodiment is different from that of the first embodiment in the configuration of the relay apparatus 32.
  • FIG. 17 is a hardware configuration diagram of the second semiconductor device according to the third embodiment.
  • the configuration of the CPU 321 of the relay device 32 and the second semiconductor device 320 included in the terminal device is different from that of the CPU 121 according to the first embodiment.
  • the CPU 321 mainly includes a PRF arithmetic circuit 321a, a comparison circuit 321b, an AE decoding circuit 321c, and a selection circuit 321d.
  • the second semiconductor device 320 is different from the first embodiment in that the second semiconductor device 320 includes the TRNG 325.
  • FIG. 18 is a diagram showing transmission and reception signals of the transmission and reception system according to the third embodiment.
  • the transmission / reception system 3 shown in FIG. 18 is different from that of the first embodiment in that the NVRAM 112 of the server device 31 stores the common key SG 32 and the NVRAM 122 of the relay device 32 stores the common key SG 32.
  • the data stored in the NVRAM 132 of the terminal device 33 is the same as that of the first embodiment.
  • step S ⁇ b> 11 to step S ⁇ b> 13 is the same as that of the first embodiment.
  • FIG. 19 is a functional block diagram of the server apparatus according to the third embodiment.
  • the first semiconductor device 110 of the server device 11 authenticates the terminal device 13 with a signal (first random number signal SG11) for generating a key to be used when decrypting the encrypted update data.
  • a challenge code (second random number signal SG12) for The process until outputting the first random number signal SG11 and the second random number signal SG12 is the same as that of the first embodiment, and therefore the description thereof is omitted.
  • the first semiconductor device 110 inputs the common key SG32 and the sixth random number signal SG13 to the AE encryption circuit 111c_1.
  • the AE encryption circuit 111c_1 receives these signals, performs encryption processing with authentication on the received signals, and generates a ciphertext SG33.
  • the first semiconductor device 110 inputs the update data SG02, the update version data SG04, and the seventh random number signal SG14 to the AE encryption circuit 111c_2.
  • the AE encryption circuit 111c_2 receives these signals, performs encryption processing with authentication on the received signals, and generates encrypted update data SG21.
  • the first semiconductor device 110 outputs the first random number signal SG11, the second random number signal SG12, the ciphertext SG33, and the encrypted update data SG21 to the outside. Then, the server device 11 transmits these signals to the relay device 32 (step S31 in FIG. 18).
  • FIG. 20 is a functional block diagram of the relay device according to the third embodiment.
  • the second semiconductor device 320 of the relay device 32 performs the following processing.
  • the AE decryption circuit 321c receives the ciphertext SG33 as an input signal, and further receives the common key SG32 stored in the NVRAM 122 as an input signal. Then, the AE decryption circuit 321 c decrypts the sixth random number signal SG ⁇ b> 13 included in the ciphertext SG ⁇ b> 33, using these as input signals. The AE decoding circuit 321 c stores the generated sixth random number signal SG ⁇ b> 13 in the NVRAM 122.
  • the second semiconductor device 320 stores the first random number signal SG11, the second random number signal SG12, and the encrypted update data SG21 in the NVRAM 122, and the first random number signal SG11 and the second random number signal SG12 as the terminal device 33. Perform processing to output to.
  • the relay device 32 transmits these signals to the terminal device 33 (step S32 in FIG. 18).
  • the terminal device 33 processes the first random number signal SG11 and the second random number signal SG12 received from the relay device 32, and transmits a third random number signal SG15 and a ninth random number signal SG16 to the relay device 32 ( Step S33 in FIG.
  • the process in which the terminal device 33 processes the first random number signal SG11 and the second random number signal SG12 and transmits the third random number signal SG15 and the ninth random number signal SG16 to the relay device 32 is the same as that in FIG. It is similar to that described with reference.
  • FIG. 21 is a functional block diagram of the relay device according to the third embodiment.
  • the PRF arithmetic circuit 321a receives, as an input signal, the third random number signal SG15 transmitted by the terminal device 33. In addition, the PRF arithmetic circuit 321a receives, as input signals, the sixth random number signal SG13 and the second random number signal SG12 stored in the NVRAM 122. The PRF arithmetic circuit 321a performs arithmetic processing using these signals as input signals, and generates an eighth random number signal SG18 and an eleventh random number signal SG19.
  • the second semiconductor device 320 outputs the eleventh random number signal SG19 generated by the PRF arithmetic circuit 321a as a response code to the challenge code (third random number signal SG15) of the terminal device 33.
  • the comparison circuit 321b receives the eighth random number signal SG18 generated by the PRF operation circuit 321a and the ninth random number signal SG16 received as a response code from the relay device 32, and compares these received signals.
  • the comparison circuit 321b As a result of comparison of data by the comparison circuit 321b, when these signals do not match, the comparison circuit 321b outputs "0" as the comparison result signal SG20. On the other hand, as a result of comparison, when these signals match, the comparison circuit 321 b outputs “1” as the comparison result signal SG20. The comparison circuit 321b supplies the output comparison result signal SG20 to the selection circuit 321d.
  • the TRNG 125 generates a fourth random number signal SG22, and inputs the generated signal to the selection circuit 321d.
  • the fourth random number signal SG22 output by the TRNG 125 is a true random number whose number of digits of the signal is the same as that of the encrypted update data SG21.
  • the selection circuit 321d receives the encrypted update data SG21 and the fourth random number signal SG22 stored in the NVRAM 122 as input signals, and receives the comparison result signal SG20 as a selection control signal.
  • the selection circuit 321d selects the encrypted update data SG21 as the ciphertext SG23 that is the output signal.
  • the selection circuit 321d selects the fourth random number signal SG22 instead of the encrypted update data SG21 as the ciphertext SG23 which is the output signal.
  • the selection circuit 321d selects a signal in this manner, and outputs the selected signal as a ciphertext SG23.
  • the relay device 32 transmits the eleventh random number signal SG19 and the ciphertext SG23 output from the second semiconductor device 320 to the terminal device 33 (step S34 in FIG. 18).
  • the subsequent processing in the terminal device 33 is the same as that described with reference to FIG. 9 in the first embodiment.
  • the data transmitted and received by the relay apparatus 32 and the terminal apparatus 33 in step S11 and step S12 in FIG. 18 do not have confidentiality. Therefore, the relay device 32 may store the pre-update version data SG03 and the identifier SG05 of the terminal device 33 in advance.
  • the transmission / reception system 3 separates the communication between the server device 31 and the relay device 32 and the communication between the relay device 32 and the terminal device 33 to perform data update processing It can be done. For example, in an environment where the transmission / reception system 3 can not communicate with the server device 31 and the relay device 32 when the terminal device 33 is at a remote place or when only the short distance communication is provided. Even if it exists, the update data can be provided to the terminal device 33.
  • a semiconductor device having a memory, a random number generation circuit, and a control circuit, and providing updated data to an external terminal device,
  • the memory stores key information
  • the random number generation circuit generates a first random number signal and a second random number signal
  • the control circuit A sixth random number signal and a seventh random number signal are generated from the first random number signal and the key information, Generating encrypted update data using the seventh random number signal for the update data; Generating the first random number signal and the second random number signal as a request signal to be transmitted to the external terminal device; Receiving a first response signal and a second response signal from the external terminal apparatus as a response signal to the request signal;
  • An eighth random number signal is generated using the first response signal, the second random number signal, and the sixth random number signal as input signals,
  • the semiconductor device wherein the encrypted update data is provided to the external terminal device when the second response signal matches the eighth random number signal.
  • the control circuit receives, from the external terminal device, a third response signal which is a response signal to the provided encrypted update data, the third response signal includes the first response signal and the second random number. It is determined whether or not the signal and the tenth random number signal generated by using the sixth random number signal as an input signal match, and in the case of a match, registration that the data has been updated is registered. , Register that the data was not updated, The semiconductor device according to appendix 1.
  • a semiconductor device having a memory and a control circuit and receiving encrypted update data from an external server device,
  • the memory stores pre-update data and key information;
  • the control circuit Receiving a first random number signal and a second random number signal as a request signal from the external server device;
  • a sixth random number signal and a seventh random number signal are generated from the first random number signal and the key information,
  • a ninth random number signal and a tenth random number signal are generated using the second random number signal and the sixth random number signal as input signals, Generate a challenge code including a preset signal, Outputting the ninth random number signal and the challenge code as a response signal to the request signal to the external server device;
  • the decryption processing of the encrypted update data received from the external server device is performed.
  • the control circuit The sixth random number signal, the seventh random number signal, the ninth random number signal, and the tenth random number signal; Calculate each by inputting to the same pseudo random function set in advance The semiconductor device according to appendix 5.
  • the control circuit does not decrypt the encrypted update data received from the external server device when the received authentication signal and the tenth random number signal do not match.
  • the semiconductor device according to appendix 5.
  • the control circuit generates the challenge code by sequentially incrementing a numerical value of a preset digit number.
  • the semiconductor device according to appendix 5.
  • the control circuit generates the challenge code by generating a twelfth random number signal using the second random number signal and the sixth random number signal as input signals.
  • the semiconductor device according to appendix 5.
  • the control circuit generates a thirteenth random number signal as an output of a pseudo random function including at least the second random number signal and the sixth random number signal as input signals, And outputting the thirteenth random number signal to the external server device when the decryption processing of the encrypted update data is successful.
  • the semiconductor device according to appendix 5.
  • the control circuit outputs a random number signal to the external server device in place of the thirteenth random number signal when the decryption processing of the encrypted update data is not successful.
  • the random number signal is a true random number signal,
  • a method of providing update data to an external terminal device comprising: Store key information, Generating a first random number signal and a second random number signal, A sixth random number signal and a seventh random number signal are generated from the first random number signal and the key information, Generating encrypted update data using the seventh random number signal for the update data; Generating the first random number signal and the second random number signal as a request signal to be transmitted to the external terminal device; Receiving a first response signal and a second response signal from the external terminal apparatus as a response signal to the request signal; An eighth random number signal is generated using the first response signal, the second random number signal, and the sixth random number signal as input signals, The encrypted update data is provided to the external terminal device when the second response signal and the eighth random number signal match.
  • Update data provision method comprising: Store key information, Generating a first random number signal and a second random number signal, A sixth random number signal and a seventh random number signal are generated from the first random number signal and the key information, Generating encrypted update data using the seventh random number signal for
  • a method of receiving encrypted update data, which is encrypted update data, from an external server device comprising: Store pre-update data and key information, Receiving a first random number signal and a second random number signal as a request signal from the external server device; A sixth random number signal and a seventh random number signal are generated from the first random number signal and the key information, A ninth random number signal and a tenth random number signal are generated using the second random number signal and the sixth random number signal as input signals, Generate a challenge code including a preset signal, Outputting the ninth random number signal and the challenge code as a response signal to the request signal to the external server device; Receiving an authentication signal and the encrypted update data from the external server device based on the output response signal; When the received authentication signal and the tenth random number signal match, the decryption processing of the encrypted update data received from the external server device is performed. How to receive updated data.
  • a program that causes a computer to execute the following method A method of providing update data to an external terminal device, comprising: Store key information, Generating a first random number signal and a second random number signal, A sixth random number signal and a seventh random number signal are generated from the first random number signal and the key information, Generating encrypted update data using the seventh random number signal for the update data; Generating the first random number signal and the second random number signal as a request signal to be transmitted to the external terminal device; Receiving a first response signal and a second response signal from the external terminal apparatus as a response signal to the request signal; An eighth random number signal is generated using the first response signal, the second random number signal, and the sixth random number signal as input signals, The encrypted update data is provided to the external terminal device when the second response signal and the eighth random number signal match. program.
  • a program for causing a computer to execute the following method A method of receiving encrypted update data, which is encrypted update data, from an external server device, comprising: Store pre-update data and key information, Receiving a first random number signal and a second random number signal as a request signal from the external server device; A sixth random number signal and a seventh random number signal are generated from the first random number signal and the key information, A ninth random number signal and a tenth random number signal are generated using the second random number signal and the sixth random number signal as input signals, Generate a challenge code including a preset signal, Outputting the ninth random number signal and the challenge code as a response signal to the request signal to the external server device; Receiving an authentication signal and the encrypted update data from the external server device based on the output response signal; When the received authentication signal and the tenth random number signal match, the decryption processing of the encrypted update data received from the external server device is performed. program.
  • a semiconductor device having a memory, a random number generation circuit, and a control circuit, receiving encrypted update data from an external server device, and providing the received encrypted update data to an external terminal device,
  • the memory stores a common key usable with the external server device;
  • the control circuit Receiving from the external server apparatus a first random number signal, a second random number signal, encryption key data including a sixth random number signal encrypted by the common key, and encrypted update data;
  • the encrypted key data is decrypted with the common key to generate a sixth random number signal, Outputting the first random number signal and the second random number signal as a request signal to be transmitted to the external terminal device;
  • An eighth random number signal is generated using the first response signal, the second random number signal, and the sixth random number signal as input signals,
  • the semiconductor device wherein the encrypted update data is provided to the external terminal device when the second response signal matches the eighth random number signal.
  • a transmission / reception system including a server device and a terminal device that receives update data from the server device, The server device and the terminal device store master key information in advance, The server device transmits to the terminal device a first random number signal and a first challenge code for authenticating the terminal device, to the terminal device.
  • the terminal device is configured to Transmitting a first response code generated based on the first random number signal and the first challenge code, and a second challenge code for authenticating the server device;
  • the server device is configured to: And transmitting, when the first response code matches the expected value, encrypted update data encrypted by the master key and a second response code for the second challenge code.
  • the terminal device is Decrypting the encrypted update data received using the master key if the second response code matches the expected value; Transmission and reception system.
  • the server device and the terminal device each store a common pseudorandom function,
  • the terminal device inputs the first challenge code into the pseudo random function to generate the first response code.
  • the server device generates the second response code by inputting the second challenge code into the pseudo random function.
  • the transmission / reception system according to appendix 21.
  • the server device has a true random number generation circuit, The first random number signal and the first challenge code are respectively true random number signals.
  • the terminal device has a true random number generation circuit,
  • the second challenge code is a true random number signal,
  • the terminal device transmits an update result signal generated based on the first random number signal and the first challenge code to the server device when the registration of the update data is completed based on the received encrypted update data.
  • the server device is When the update result signal received from the terminal device matches the expected value, the data of the terminal device is registered as the update data, or when it does not match the expected value, the terminal device Register that the data of is not the update data, The transmission / reception system according to appendix 21.
  • the server device transmits a random number signal having the same number of digits as the encrypted update data, instead of the encrypted update data, when the first challenge code does not match the expected value.
  • the transmission / reception system according to appendix 21.
  • the terminal device does not decrypt the received encrypted update data if the response code does not match the expected value.
  • the relay device further relays communication between the server device and the terminal device, The relay device transmits a signal requesting version information of pre-update data to the terminal device, the version information received from the terminal device, and a signal requesting processing for updating the pre-update data.
  • the transmission / reception system according to appendix 21.
  • the relay device further relays communication between the server device and the terminal device,
  • the server device and the relay device store in advance a common key,
  • the server device Transmitting a first random number signal, the first challenge code, encrypted key data including a sixth random number signal encrypted by the common key, and the encrypted update data;
  • the relay device is configured to: Transmitting the first random number signal and a first challenge code;
  • the terminal device Transmitting the first random number signal, the first response code, and the second challenge code;
  • the relay device is configured to: If the first response code matches the expected value, Transmitting the encrypted update data and the second response code;
  • the terminal device decrypts the received encrypted update data when the second response code matches the expected value.
  • the embodiment can be applied to a server apparatus, a terminal apparatus, etc. that transmits and receives the update program.

Abstract

半導体装置は、メモリ(132)と、乱数生成回路(135)と、制御回路(131)と、を有する。メモリ(132)は、鍵情報を記憶し、乱数生成回路(135)は、第1乱数信号および第2乱数信号を生成する。制御回路(131)は、第1乱数信号および鍵情報から第6乱数信号および第7乱数信号を生成し、更新データに対して第7乱数信号を用いて暗号化更新データを生成し、外部端末装置に送信する要求信号として第1乱数信号および第2乱数信号を生成し、要求信号に対する応答信号として外部装置から第1応答信号および第2応答信号を受け取り、第1応答信号と第2乱数信号と第6乱数信号とを入力信号として、第8乱数信号を生成し、第2応答信号と第8乱数信号とが一致している場合に、暗号化更新データを外部端末装置に提供する。

Description

半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
 本発明は、半導体装置、更新データ提供方法、更新データ受取方法およびプログラムに関する。
 IoT(Internet of Things)機器が広く普及している。これらの機器に含まれるマイコン等の半導体装置に対して高いセキュリティを確保した状態でファームウェアアップデート等を行うことが期待されている。
 特許文献1に記載の車外装置は、更新制御プログラム、当該プログラムに係るダイジェスト値の算出手段、更新後の動作が正常であるか否かを判定する手段、および判定結果を返答する手段を実現するプログラムを含む更新データを記憶している。そして、制御装置は、車外装置から送信される更新データを中継装置を介して受信する。さらに、制御装置は、受信した更新データに含まれる更新制御プログラムにより制御プログラムを更新すると共に、前記プログラムを実行して更新後の動作が正常であるか否かを判定して、その判定結果を中継装置に返答する。
 特許文献2に記載の電子機器は、アプリケーションソフトウェアの動作に係るアプリケーションファイルを有し、ネットワークを介して前記アプリケーションファイルを更新する。かかる電子機器は、1つ以上のデータからなるアプリケーションファイルを記憶し、更新データと、前記アプリケーションファイルにおいて前記更新データによって更新する位置を示す位置情報とを、前記ネットワークを介して外部装置から受け取る。さらに、電子機器は、前記位置情報が示す位置に存在するデータを前記更新データに書き換えて、前記アプリケーションファイルの一部のみを更新し、更新された前記アプリケーションファイルが改竄されているか否かの確認を行う。
 特許文献3に記載のプログラム書換えシステムは、マルチプロトコルに対応した車載中継装置において新プログラムと旧プログラムとの差分データを検索し、新プログラムにおける差分データをECUに送信して記憶する。
 特許文献4に記載の組込機器は、ソフトウェアを更新する更新データが複数に分割された各セクションについて順に検証処理を行う。組込機器は、検証処理の途中で得られる中間値を記憶しておく。組込機器は、全てのセクションに対して検証処理が完了すると、検証処理で得られた値と、検証データとを比較して、改ざんがないことを確認する。改ざんがないことが確認できると、組込機器は、再び各セクションについて順に検証処理を行う。組込機器は、検証処理で得られた中間値と記憶しておいた中間値とを比較して、一致すると、そのセクションによってソフトウェアを更新する。
特開2015-103163号公報 国際公開第2006/129654号 特開2014-182571号公報 国際公開第2006/129654号
 特許文献1に記載の技術は、中継機が更新データに対して電子署名演算を行うことが可能でなければならない。また、特許文献1は、更新データの暗号化が行われないため、更新データの秘匿性を担保できていない。また、特許文献2に記載の技術は、部分的な検証を行う一方で、全体としての検証を行わない。そのため、ブロックごとに改ざん検出の管理を行うこととなり、保存データ量が多くなるおそれがある。また、特許文献3に記載の技術は、中継装置が更新データの電子署名や復号演算を行わなければならないため、中継装置に更新データの中身を開示する必要がある一方、中継装置とECUとの通信においてのセキュリティが担保されていない。また、特許文献4に記載の技術は、各セクションにかかる中間値を記憶しておく必要があり保存データ量が多くなるおそれがある。また、各セクションに対して各2回の検証処理が必要であるために計算に時間がかかるおそれがある。さらに、上記特許文献のいずれにおいても、正当な更新対象機器との通信が行われていることを確認する手段についての提案はなされていない。
 その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
 一実施の形態によれば、半導体装置は、メモリと、乱数生成回路と、制御回路と、を有し、外部端末装置に更新データを提供する。前記メモリは、鍵情報を記憶し、前記乱数生成回路は、第1乱数信号および第2乱数信号を生成する。前記制御回路は、前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、前記更新データに対して第7乱数信号を用いて暗号化更新データを生成する。前記制御回路は、前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を生成し、前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取る。前記制御回路は、前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する。
 一実施の形態によれば、半導体装置は、メモリと、制御回路と、を有し、外部サーバ装置から暗号化更新データを受け取る。前記メモリは、更新前データと、鍵情報を記憶している。前記制御回路は、前記外部サーバ装置から第1乱数信号および第2乱数信号を要求信号として受け取り、前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成する。前記制御回路は、前記第2乱数信号と前記第6乱数信号とを入力信号として、第9乱数信号および第10乱数信号を生成する。また、前記制御回路は、予め設定された信号を含むチャレンジコードを生成し、前記要求信号に対する応答信号として前記第9乱数信号および前記チャレンジコードを前記外部サーバ装置へ出力する。前記制御回路は、出力した前記応答信号に基づいて前記外部サーバ装置から認証信号と前記暗号化更新データとを受け取り、受け取った前記認証信号と、前記第10乱数信号とが一致している場合に、前記暗号化更新データの復号処理を行う。
 前記一実施の形態によれば、半導体装置は、効率的かつ安全に更新プログラムの授受を行い、プログラムの更新を実現することができる。
実施の形態1にかかる送受信システムの概略図である。 実施の形態1にかかる第1半導体装置のハードウェア構成図である。 実施の形態1にかかる第2半導体装置のハードウェア構成図である。 実施の形態1にかかる第3半導体装置のハードウェア構成図である。 実施の形態1にかかる送受信システムの送受信信号を示した図である。 実施の形態1にかかる第1半導体装置110の機能ブロック図である。 実施の形態1にかかる第3半導体装置の機能ブロック図である。 実施の形態1にかかる第1半導体装置の機能ブロック図である。 実施の形態1にかかる第3半導体装置の機能ブロック図である。 実施の形態1の変形例にかかる第3半導体装置の機能ブロック図である。 実施の形態2にかかる送受信システムのハードウェア構成図である。 実施の形態2にかかる送受信システムの送受信信号を示した図である。 実施の形態2にかかる第3半導体装置の機能ブロック図である。 実施の形態2にかかる第1半導体装置の機能ブロック図である。 実施の形態2にかかる第3半導体装置の機能ブロック図である。 実施の形態2にかかる第1半導体装置の機能ブロック図である。 実施の形態3にかかる第2半導体装置のハードウェア構成図である。 実施の形態3にかかる送受信システムの送受信信号を示した図である。 実施の形態3にかかる第1半導体装置の機能ブロック図である。 実施の形態3にかかる第2半導体装置の機能ブロック図である。 実施の形態3にかかる第2半導体装置の機能ブロック図である。
 説明の明確化のため、以下の記載および図面は、適宜、省略、および簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。よって、以下の説明に回路として例示した構成は、ハードウェアまたはソフトウェアのいずれかまたはその両方によって実現することが可能であり、ある機能を実現する回路として示された構成は、同様の機能を実現するソフトウェアの一部としても示され得る。例えば、制御回路と記載された構成は、制御部として記載され得る。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
 また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、および電磁波を含む。一時的なコンピュータ可読媒体は、電線および光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
 <実施の形態1>
 まず、図1を参照しながら、実施の形態1について概略を説明する。図1は、実施の形態1にかかる送受信システムの概略図である。送受信システム1は、端末装置13が有する更新前データを、サーバ装置11が有している更新データに更新するためのシステムである。送受信システム1は、サーバ装置11において更新データを暗号化し、暗号化した更新データである暗号化更新データを端末装置13に送信する。端末装置13は、暗号化更新データを復号してデータを更新する。送受信システム1は、サーバ装置11、中継装置12、および端末装置13を構成とする。サーバ装置11と中継装置12とは、通信可能に接続している。また、中継装置12と端末装置13とは、通信可能に接続している。図1の例示は、サーバ装置11と中継装置12とはネットワーク900を介して通信可能に接続されている。なお、各構成を通信可能にする接続手段は有線、無線を問わず、インターネットを介しているか否かを問わない。
 サーバ装置11は、例えばパーソナルコンピュータやブレードサーバであって、情報処理を司る第1半導体装置110を有している。中継装置12は、例えばスマートフォンやタブレット端末等であって、情報処理を司る第2半導体装置120を有している。また、端末装置13は、IoT機器と呼ばれるインターネット接続可能な機器や、その他通信機能を有する機器である。端末装置13は、情報処理を司る第3半導体装置130を有している。
 図2は、実施の形態1にかかる第1半導体装置110のハードウェア構成図である。情報処理を司る第1半導体装置110は、主な構成として、CPU111、NVRAM112(Non-Volatile Random Access Memory)、DRAM113(Dynamic Random Access Memory)、IF114(Interface)、およびTRNG115(True Random Number Generator:真性乱数生成回路)を有しており、これらの構成は通信バスにより接続されている。
 なお、以降の説明において、特別に説明を加えた場合を除き、名称が同一で符号が異なる構成は同様の機能を有するものとする。そのため、このような構成についての説明は省略する。
 CPU111は、第1半導体装置110において後述する演算処理等を行うための演算装置である。CPU111は、PRF演算回路111a、比較回路111b、AE暗号化回路111c、選択回路111dを主な構成として有している。なお、CPU111は、ハードウェアとしてのこれらの構成を複数有していてもよいし、ソフトウェアとして並列処理可能に構成されていてもよい。また、本実施の形態において説明するCPUは、CPUコア以外の周辺回路を含んでもよい。
 PRF演算回路111aは、任意の入力信号を予め設定された擬似ランダム関数(PRF=Pseudorandom function)により演算し、演算結果を出力する。擬似ランダム関数は、暗号学的には乱数として識別できない値であって、直感的には十分ランダムに見える出力を返す関数であり、真のランダム関数との間で両者を識別するような多項式時間のアルゴリズムが存在しないものを指す。また、PRF演算回路111aは、同じ入力に対しては同じ結果を出力する。PRF演算回路111aは、入力として出力変数の数を指定してもよい。なお、PRF演算回路111aは、上述のような出力がなされ、且つ安全性が担保できるのであれば、共通鍵暗号やハッシュ関数に基づいた関数など他の関数を用いたものであってもよい。
 比較回路111bは、入力として2つの信号を受け取り、受け取った2つの信号を比較し、比較結果としてこれらの信号が一致するか否かを出力する。比較結果の出力信号の例としては、2つの信号が一致しない場合の出力信号は「0」であり、2つの信号が一致する場合の出力信号は「1」である。ただし、比較結果の出力信号はこれに限られない。
 AE暗号化回路111c(AE=Authenticated Encryption)は、任意の平文と鍵情報とを入力信号として、入力信号に対して認証付き暗号化処理を行う。鍵情報は、復号処理をする際にも使用される。認証付き暗号化処理を行うことにより、AE暗号化回路111cは、暗号文、認証タグ、およびヘッダ信号を出力する。
 選択回路111dは、複数の入力信号の内いずれか選択した信号を出力する機能を有している。選択回路111dは、比較回路111bから供給される比較結果信号SG20の値によって、複数の入力信号の内からどの信号を出力するかを選択する。つまり、比較結果信号SG20は、選択回路111dの選択制御信号である。選択回路111dは、ハードウェア構成の例としてはマルチプレクサである。
 NVRAM112は、例えばフラッシュメモリのような読み書き可能な不揮発性の記憶装置である。NVRAM112は、更新データや通信セキュリティを担保するための鍵情報等を記憶している。
 DRAM113は、揮発性の記憶装置であって、種々のデータを一時的に記憶する。なお、本実施の形態におけるDRAM113のハードウェア構成は一例であって、DRAM113は、SRAM(Static Random Access Memory)によって構成されてもよく、揮発性メモリに代えて、MRAM(Magnetoresistive Random Access Memory)、またはフラッシュメモリ等の不揮発性メモリによって構成されてもよい。
 TRNG115は、真性乱数生成回路である。TRNG115は、例えば、ダイオードの生成するノイズや熱雑音、放射性物質の崩壊による放射線をセンサで検出する等、ランダムな物理現象を用い、その信号を元に乱数を生成する。CPU111は、各構成の信号を処理し、処理に応じた信号を、IF114を介して中継装置12に送信し、または、中継装置12から受信した信号を、IF114を介して受け取り、受け取った信号を処理する。
 図3は、実施の形態1にかかる第2半導体装置120のハードウェア構成図である。情報処理を司る第2半導体装置120は、主な構成として、CPU121、NVRAM122、DRAM123、およびIF124を有しており、これらの構成は通信バスにより接続されている。第2半導体装置120は、これらの構成により、サーバ装置11と通信し、サーバ装置11から信号を受け取り、受け取った信号を必要に応じて処理し、端末装置13に送信する。また、中継装置12は、端末装置13から信号を受け取り、受け取った信号を必要に応じて処理し、サーバ装置11に送信する。
 図4は、実施の形態1にかかる第3半導体装置130のハードウェア構成図である。情報処理を司る第3半導体装置130は、主な構成として、CPU131、NVRAM132、DRAM133、IF134、およびTRNG135を有しており、これらの構成は通信バスにより接続されている。端末装置13は、中継装置12から信号を受け取り、受け取った信号を処理する。また、端末装置13は、処理した信号を中継装置12に送信する。
 CPU131は、第3半導体装置130において演算処理等を行うための演算装置である。CPU131は、PRF演算回路131a、比較回路131b、AE復号回路131cを主な構成として有している。
 AE復号回路131cは、認証付き暗号化された信号に対して、復号処理および認証タグの検証を行う。すなわち、AE復号回路131cは、AE暗号化回路111cが出力した暗号文、認証タグ、およびヘッダ信号、ならびにAE暗号化回路111cが使用した鍵情報を入力信号とする。AE復号回路131cは、暗号文を復号し、復号した結果生成された認証タグと、入力信号として受け取った認証タグが一致するか検証を行う。検証の結果、これらの認証タグが一致すると、AE復号回路131cは、復号した平文を出力する。一方、これらの認証タグが一致しないと、AE復号回路131cは、認証結果不一致を示す信号を出力する。
 更新制御回路131dは、ファームウェアの更新を行うための信号制御を行う。更新制御回路131dは、入力信号として、フラグ信号と更新データ信号を受け取る。更新制御回路131dは、受け取ったフラグ信号がファームウェアの更新を実行するための値であれば、入力信号として受け取った更新データを更新前データと置き換える処理を実行する。また、更新制御回路131dは、ファームウェアの更新処理が成功したか否かを出力する機能を有していてもよい。
 なお、実施の形態1の変形例として後述するように、端末装置13は、TRNG135を有していない構成としてもよい。
 次に、図5~図10を参照しながら、送受信システム1の動作について詳細を説明する。まず、図5を参照しながら、送受信システム1にかかるそれぞれの装置が有する信号と、それぞれの装置が送受信する信号について説明する。図5は、実施の形態1にかかる送受信システム1の送受信信号を示した図である。
 サーバ装置11は、NVRAM112に、更新データSG02、更新バージョンデータSG04、識別子SG05、およびマスタ鍵SG06を記憶している。更新データSG02は、例えば、端末装置13のための新しいバージョンのファームウェアである。更新バージョンデータSG04は、更新データSG02のバージョン情報を含むデータである。識別子SG05は、端末装置13に固有に付与されている識別情報であって、例えば端末装置13のMacアドレス(Media Access Control address)や製品固有の識別番号等である。
 端末装置13は、NVRAM132に、更新前データSG01、更新前バージョンデータSG03、識別子SG05、およびマスタ鍵SG06を記憶している。更新前データSG01は、例えば、端末装置13が現在利用しているファームウェアである。更新前バージョンデータSG03は、更新前データSG01のバージョン情報を含むデータである。
 以降は、送受信システム1にかかるそれぞれの装置が送受信する信号と、それぞれの装置が行う処理について信号の処理の流れに沿って説明する。ここに示す例では、送受信システム1は、端末装置13のファームウェアのバージョンアップデート処理を行う。
 まず、中継装置12は、バージョンチェック要求信号SG08を端末装置13に送信する(ステップS11)。バージョンチェック要求信号SG08は、端末装置13に対してファームウェアのバージョンを応答するように要求する信号である。
 端末装置13は、中継装置12からバージョンチェック要求信号SG08を受け取ると、受け取った要求信号に応じて、端末装置13の現在のファームウェアのバージョンである更新前バージョンデータSG03と、識別子SG05とを中継装置12に送信する(ステップS12)。
 中継装置12は、端末装置13から更新前バージョンデータSG03と、識別子SG05とを受け取ると、これらのデータにバージョンアップ要求信号SG09を加えて、サーバ装置11に送信する(ステップS13)。
 図6を参照しながら、サーバ装置11が中継装置12から受け取った信号を処理して、要求信号を出力するまでの処理について説明する。図6において、サーバ装置11が有する第1半導体装置110は、ファームウェアのバージョンアップデート処理を行うために、端末装置13に対してかかる処理を行うか否かを判定する。かかる処理を行う場合、第1半導体装置110は、暗号化された更新データを復号する際に使用する鍵を生成するための信号と、端末装置13を認証するためのチャレンジコードとを出力する。
 図6は、実施の形態1にかかるサーバ装置11における第1半導体装置110の機能ブロック図である。図6において、第1半導体装置110は中継装置12からのバージョンアップ要求信号SG09を受け付ける。次に、第1半導体装置110は、NVRAM112のデータベース領域にアクセスして、NVRAM112が記憶している識別子SG05と、中継装置12から受け取った識別子SG05とが一致するか否かを照合する。
 サーバ装置11は、識別子に関するこれらの信号が一致した場合、中継装置12から受け取った端末装置13のファームウェアバージョンである更新前バージョンデータSG03と、NVRAM112に記憶している更新バージョンデータSG04とを照合する。すなわち、第1半導体装置110は、NVRAM112の更新データ領域にアクセスし、更新バージョンデータSG04をCPU111の比較回路111bに送信する。また、第1半導体装置110は、中継装置12から受け取った更新前バージョンデータSG03を比較回路111bに供給する。そして、比較回路111bは、これらのデータを比較し、比較結果信号SG10をPRF演算回路111aに出力する。
 ここでは、比較回路111bがデータを比較した結果、バージョンデータが一致した場合、比較回路111bは、比較結果信号SG10として「0」を出力する。この場合、端末装置13のファームウェアは最新であり更新の必要はない。そのため、PRF演算回路111aは、ファームウェア更新のための処理を実行しない。一方、比較した結果、バージョンデータが一致しない場合、比較回路111bは、比較結果信号SG10として「1」を出力する。この場合、サーバ装置11は、後述する端末装置13のファームウェアを更新するための処理を実行する。
 比較回路111bから比較結果信号SG10として「1」を受け取った場合、PRF演算回路111aは、NVRAM112のデータベース領域にアクセスし、マスタ鍵SG06を受け取る。また、PRF演算回路111aは、TRNG115から、第1乱数信号SG11を受け取る。PRF演算回路111aは、マスタ鍵SG06と、第1乱数信号SG11とを入力として、第6乱数信号SG13および第7乱数信号SG14を生成し、生成したこれらの信号を、DRAM113に記憶させる。
 TRNG115は、PRF演算回路111aに対して第1乱数信号SG11を供給すると共に、第2乱数信号SG12を生成し、生成した第2乱数信号SG12をDRAM113に記憶させる。TRNG115は、生成した第1乱数信号SG11を、端末装置13が更新データを復号するための鍵を生成するための情報として出力する。また、TRNG115は、生成した第2乱数信号SG12を、端末装置13に対する要求信号であるチャレンジコードとして出力する。
 図5に戻る。サーバ装置11は、TRNG115が出力した第1乱数信号SG11および第2乱数信号SG12を、中継装置12に送信する(ステップS14)。
 中継装置12は、サーバ装置11から受け取った第1乱数信号SG11および第2乱数信号SG12を、端末装置13に送信する(ステップS15)。
 図7を参照しながら、第1乱数信号SG11および第2乱数信号SG12を受け取った端末装置13が行う処理の概要について説明する。図7において、端末装置13が有する第3半導体装置130は、サーバ装置11から受け取った、鍵を生成するための信号(第1乱数信号SG11)を使用して、暗号化された更新データを復号する際に使用する鍵(第7乱数信号SG14)を生成する。また、第3半導体装置130は、サーバ装置11から受け取った、チャレンジコード(第2乱数信号SG12)に対する応答信号としてレスポンスコード(第9乱数信号SG16)を出力する。さらに、第3半導体装置130は、応答する際にサーバ装置11を認証するためのチャレンジコード(第3乱数信号SG15)を出力する。
 図7は、実施の形態1にかかる端末装置の機能ブロック図である。図7において、PRF演算回路が2つ存在するため、ここでは説明の便宜上一方をPRF演算回路131a_1、もう一方をPRF演算回路131a_2と称する。当然ながら、PRF演算回路131a_1とPRF演算回路131a_2とは、別の構成であっても構わないし、一個の構成であって、異なる演算を行うものであってよい。また、以降の説明においても1つのブロック図において同じ種類の構成が複数存在する場合には、同様の符号をつけることがある。
 端末装置13が有する第3半導体装置130は、受け取った第1乱数信号SG11をCPU131が有するPRF演算回路131aに入力する。また、PRF演算回路131aは、NVRAM132が記憶しているマスタ鍵SG06を入力信号として読み出す。
 PRF演算回路131a_1は、マスタ鍵SG06と、第1乱数信号SG11とを入力として、第6乱数信号SG13および第7乱数信号SG14を生成する。PRF演算回路131a_1は、生成した信号のうち、第6乱数信号SG13をPRF演算回路131a_2に入力する。また、PRF演算回路131a_1は、生成した信号のうち、第7乱数信号SG14をDRAM133に記憶させる。
 第6乱数信号SG13が入力されたPRF演算回路131a_2は、さらに中継装置12から受け取った第2乱数信号SG12を、入力信号として受け取る。また、PRF演算回路131a_2は、もう一つの入力信号として、TRNG135から第3乱数信号SG15を受け取る。
 PRF演算回路131a_2は、第6乱数信号SG13、第2乱数信号SG12、および第3乱数信号SG15を入力信号として、第9乱数信号SG16および第10乱数信号SG17を生成する。PRF演算回路131a_2は、生成したこれらの信号のうち、第9乱数信号SG16を、サーバ装置11から受け取った要求信号に対する応答信号として出力する。また、PRF演算回路131a_2は、生成したこれらの信号のうち、第10乱数信号SG17を、DRAM133に記憶させる。
 TRNG135は、PRF演算回路131a_2の入力信号として生成した第3乱数信号SG15を、サーバ装置11から受け取った要求信号に対する応答信号として出力する。すなわち、第3半導体装置130は、第9乱数信号SG16と、第3乱数信号SG15とを、サーバ装置11から受け取った要求信号に対する応答信号として出力する。
 図5に戻る。端末装置13は、第3半導体装置130が出力した第3乱数信号SG15および第9乱数信号SG16を、中継装置12に送信する(ステップS16)。
 中継装置12は、サーバ装置11から受け取った第3乱数信号SG15および第9乱数信号SG16を、サーバ装置11に送信する(ステップS17)。
 図8を参照しながら、第3乱数信号SG15および第9乱数信号SG16を受け取ったサーバ装置11が行う処理について説明する。図8において、サーバ装置11が有する第1半導体装置110は、端末装置13から受け取った、チャレンジコード(第3乱数信号SG15)に対する応答信号としてレスポンスコード(第11乱数信号SG19)を出力する。また、第1半導体装置110は、端末装置13から受け取った、レスポンスコード(第9乱数信号SG16)が期待値と一致するか否かを比較し、比較結果に応じた暗号文SG23を出力する。
 図8は、実施の形態1にかかる第1半導体装置の機能ブロック図である。第1半導体装置110は、受け取った第3乱数信号SG15をPRF演算回路111aに入力する。PRF演算回路111aは、さらに入力信号として、DRAM113から第6乱数信号SG13および第2乱数信号SG12を受け取る。
 PRF演算回路111aは、第6乱数信号SG13、第2乱数信号SG12、および第3乱数信号SG15を入力信号として、第8乱数信号SG18と、第11乱数信号SG19とを生成する。PRF演算回路111aは、生成した第8乱数信号SG18を比較回路111bに送信する。また、PRF演算回路111aは、生成した第11乱数信号SG19を端末装置13から受け取ったチャレンジコードに応答するレスポンスコードとして出力する。
 第1半導体装置110は、受け取った第9乱数信号SG16を、比較回路111bに入力する。比較回路111bは、入力信号として、PRF演算回路111aが出力した第8乱数信号SG18と、端末装置13が出力した第9乱数信号SG16とをそれぞれ受け取り、受け取ったこれらの信号を比較する。すなわち、サーバ装置11は、サーバ装置11が送信したチャレンジコードに対して端末装置13が応答したレスポンスコードが期待値と一致するか否かを比較する。比較回路111bがデータを比較した結果、これらの信号が一致しない場合、比較回路111bは、比較結果信号SG20として「0」を出力する。一方、比較した結果、これらの信号が一致する場合、比較回路111bは、比較結果信号SG20として「1」を出力する。比較回路111bは出力した比較結果信号SG20を、選択回路111dに供給する。
 AE暗号化回路111cは、NVRAM112から入力信号として更新データSG02と、更新バージョンデータSG04を受け取る。また、AE暗号化回路111cは、更新データSG02および更新バージョンデータSG04を暗号化するための鍵情報である第7乱数信号SG14をDRAM113から受け取る。AE暗号化回路111cは、これらの入力信号に基づいて、暗号化更新データSG21を出力し、出力した暗号化更新データSG21を選択回路111dに入力する。
 TRNG115は、第4乱数信号SG22を生成し、生成した信号を、選択回路111dに入力する。TRNG115が出力する第4乱数信号SG22は、真性乱数であって、信号の桁数が暗号化更新データSG21と同じになるように設定されている。すなわち、復号できない場合、暗号化更新データSG21と第4乱数信号SG22との区別は容易ではない。
 選択回路111dは、入力信号として、上述した暗号化更新データSG21と第4乱数信号SG22とを受け取るとともに、選択制御信号として、比較結果信号SG20を受け取る。選択回路111dは、比較結果信号SG20の値が「1」の場合、出力信号である暗号文SG23として暗号化更新データSG21を選択する。一方、選択回路111dは、比較結果信号SG20の値が「0」の場合、出力信号である暗号文SG23として暗号化更新データSG21に代えて第4乱数信号SG22を選択する。選択回路111dは、このようにして信号を選択し、選択した信号を暗号文SG23として出力する。
 このように、第1半導体装置110は、端末装置13の認証が正しく行われた場合には更新データを含む暗号化信号を出力し、端末装置13の認証が正しく行われなかった場合には、正しく認証されない送信先にとって暗号化更新データSG21との区別が容易ではない乱数信号を送信する。このように、正しく認証されない相手に対して形式的に正しい信号と区別が容易ではない信号を送信することにより、第三者からの不要な攻撃を抑制することができる。
 図8の構成により、第1半導体装置110は、チャレンジコードである第3乱数信号SG15に対するレスポンスコードとして第11乱数信号SG19を出力し、端末装置13から受け取ったレスポンスコードである第9乱数信号SG16に応じて暗号文SG23を出力する。
 図5に戻る。サーバ装置11は、第1半導体装置110が出力した第11乱数信号SG19および暗号文SG23を、中継装置12に送信する(ステップS18)。
 中継装置12は、サーバ装置11から受け取った第11乱数信号SG19および暗号文SG23を、端末装置13に送信する(ステップS19)。
 図9を参照しながら、第11乱数信号SG19および暗号文SG23を受け取った端末装置13が行う処理について説明する。図9において、端末装置13が有する第3半導体装置130は、サーバ装置11から受け取った、レスポンスコード(第11乱数信号SG19)を使用して、サーバ装置11に対する認証を行う。また、第3半導体装置130は、サーバ装置11に対する認証結果に応じて、サーバ装置11から受け取った暗号文SG23を復号するか否かを判定し、判定結果に応じた処理を行う。
 図9は、実施の形態1にかかる第3半導体装置の機能ブロック図である。図9において、端末装置13の第3半導体装置130は、サーバ装置11から受け取った第11乱数信号SG19と、DRAM133が記憶している第10乱数信号SG17とを比較回路131b_1に入力し、これらの信号を比較する。比較回路131b_1は、これらの信号が一致していない場合には比較結果信号SG24として「0」を出力し、これらの信号が一致している場合には比較結果信号SG24として「1」を出力し、出力した信号を、AE復号回路131cに供給する。
 また、第3半導体装置130は、サーバ装置11から受け取った、暗号文SG23を、AE暗号化回路111cに入力する。AE暗号化回路111cは、さらに入力信号として、DRAM133が記憶している第7乱数信号SG14を受け取る。
 ここで、比較結果信号SG24の値が「0」の場合は、サーバ装置11の認証が正しく行われなかったことを意味している。この場合、AE復号回路131cは、暗号文SG23を復号する処理を実行しない。一方、比較結果信号SG24の値が「1」の場合は、サーバ装置11の認証が正しく行われたことを意味している。この場合、AE復号回路131cは、暗号文SG23を復号する以下の処理を実行する。
 このように、認証が正しく行われなかった場合に受け取った暗号文の復号処理を実行しないことにより、悪意ある第三者等からのアップデート要求を防止することが出来る。
 AE復号回路131cは、暗号文SG23と、暗号文SG23を復号するための鍵情報である第7乱数信号SG14とを入力信号として、暗号文SG23を復号する。暗号文SG23が復号されると、AE復号回路131cは、出力信号に含まれている更新バージョンデータSG04を比較回路131b_2に供給する。比較回路131b_2は、NVRAM132から第3半導体装置130が記憶する現在のファームウェアのバージョン情報である更新前バージョンデータSG03を受け取る。比較回路131b_2は、更新バージョンデータSG04が更新前バージョンデータSG03より大きいか否かを比較し、比較結果信号SG25を更新制御回路131dに供給する。
 更新制御回路131dは、比較回路131b_2から比較結果信号SG25を受け取ると共に、AE復号回路131cから復号された更新データSG02を受け取る。更新制御回路131dは、NVRAM132が記憶するファームウェアのバージョンよりも、復号されたファームウェアのバージョンが大きい場合には、NVRAM132が記憶するファームウェアを更新する処理を行う。ファームウェアを更新する処理として、更新制御回路131dは、更新前データSG01に代えて、更新データSG02をNVRAM132に記憶させ、更新前バージョンデータSG03に代えて更新バージョンデータSG04をNVRAM132に記憶させる。
 実施の形態1にかかる送受信システムは、以上のような構成となっている。上述した説明から、送受信システム1の処理をまとめると、以下のように説明することが出来る。すなわち、サーバ装置と、前記サーバ装置から更新データを受け取る端末装置とを含む送受信システム1は、以下のように処理を実行する。
 まず、サーバ装置11は、認証付き暗号を復号するための鍵を生成するための信号(111)および端末装置13を認証するためのチャレンジコード(112)を端末装置13へ送信する。
 端末装置13は、チャレンジコード(112)に対するレスポンスコードと、サーバ装置11を認証するためのチャレンジコードをサーバ装置11へ送信する。
 サーバ装置は、レスポンスコードの検証を行い、検証結果に応じて、予め設定された暗号を送信するとともに、端末装置13から受け取ったチャレンジコードに対するレスポンスコードを端末装置13へ送信する。
 端末装置13は、サーバ装置11から受け取ったレスポンスコードの検証を行い、検証結果に応じて、レスポンスコードと共に受け取った暗号に対する処理を決定する。
 また、送受信システム1は、サーバ装置11と端末装置13との間に中継装置12が介在し、サーバ装置11と中継装置12とが通信し、中継装置12と端末装置13とが通信する。
 送受信システム1は、サーバ装置11と端末装置13とが有する共通鍵を用いて更新データを送受信する。また、送受信システム1は、サーバ装置11と端末装置13とが有する共通の擬似ランダム関数を用いて信号をそれぞれ演算する。そのため、送受信システム1は、更新データの秘匿性を維持し、第三者への情報漏えいを防ぐことが出来る。
 送受信システム1は、認証付き暗号化技術を利用して更新データの送受信をおこなう。そのため、仮に、端末装置13に改ざんされた更新データが供給された場合、送受信システム1は、認証タグを検証することにより、正しくないデータによる更新を防止できる。
 また、送受信システム1は、サーバ装置11と端末装置13との間に中継装置12が介在する。これにより、送受信システム1は、サーバ装置11の通信方式と、端末装置13の通信方式が異なる場合にも、サーバ装置11と端末装置13との信号の送受信が可能となる。したがって、送受信システム1は、例えば、端末装置13が直接インターネットに接続していない場合においても、ファームウェアの更新を行うことが出来、運用コストを低減することができる。
 また、送受信システム1は、サーバ装置11と端末装置13とがそれぞれ共通の鍵を有している。このような構成により、送受信システム1は、高速に処理をおこなうことができる。例えば、一般的な公開鍵を利用したシステムと比較すると、本実施の形態にかかるシステムの処理速度は100倍程度速い。
 <実施の形態1の変形例>
 以下に、図10を参照しながら、実施の形態1の変形例について説明する。実施の形態1の変形例に係る送受信システム1は、端末装置13がTRNG135を有していない点において、上述した端末装置13の構成と異なる。
 図10は、実施の形態1の変形例にかかる第3半導体装置の機能ブロック図である。図10の機能ブロック図は、図5におけるステップS15において第1乱数信号SG11および第2乱数信号SG12を受け取った端末装置13が行う処理について説明するものであって、実施の形態1の図7に対応する。
 図10は、実施の形態1にかかる端末装置の機能ブロック図である。図10を参照しながら、第1乱数信号SG11および第2乱数信号SG12を受け取った端末装置13が行う処理について上述した実施の形態1と異なる点について概要を説明する。図10において、端末装置13が有する第3半導体装置130は、サーバ装置11を認証するためのチャレンジコードとして、第3乱数信号SG15に代えてPRF演算回路131a_2が第12乱数信号SG07_nを生成する。第3半導体装置130は、PRF演算回路131a_2が生成した第12乱数信号SG07_nを、NVRAM132に記憶させる。また、第3半導体装置130は、第9乱数信号SG16をレスポンスコードとして出力すると共に、第12乱数信号SG07_nをチャレンジコードとして出力する。
 以下に、第12乱数信号SG07_nについて詳細を説明する。図10において、第3半導体装置130は、NVRAM132に予め第12乱数信号SG07_nの初期値として、乱数である第12乱数信号SG07_0を記憶している。第3半導体装置130が最初に処理を行う場合、PRF演算回路131aは、NVRAM132にアクセスし、第12乱数信号SG07_0を受け取る。また、PRF演算回路131a_2は、第2乱数信号SG12と、PRF演算回路131a_1が出力した第6乱数信号SG13を同じく入力信号として受け取る。PRF演算回路131a_2は、これらを入力信号として演算を行い、出力信号として、第9乱数信号SG16、第10乱数信号SG17、および第12乱数信号SG07_1を生成する。PRF演算回路131a_2は、これらの出力信号のうち、第12乱数信号SG07_1を、サーバ装置11を認証するためのチャレンジコードとして外部に出力するとともに、第12乱数信号SG07_1を、NVRAM132に記憶させる。PRF演算回路131a_2は、演算の度に第12乱数信号SG07_nを新しい値に順次更新し、更新した信号をNVRAM132に記憶する。
 これにより、端末装置13は、TRNG135を有さず、サーバ装置11の認証を行うことが出来る。したがって、送受信システム1は、端末装置13を簡便な構成とすることができる。したがって、実施の形態1変形例において、送受信システム1は、簡便な構成により、効率的かつ安全に更新プログラムの授受を行い、プログラムの更新を実現することができる。
 なお、実施の形態1の変形例としては、これに限らず、例えば、チャレンジコードとして、上述した第3乱数信号SG15や第12乱数信号SG07_nに代えて、外部に出力する度にインクリメントする数値を用いてもよい。このような構成にすることにより、実施の形態1変形例において、送受信システム1は、簡便な構成により、効率的かつ安全に更新プログラムの授受を行い、プログラムの更新を実現することができる。
 <実施の形態2>
 次に、図11~図16を参照して本発明の実施の形態について説明する。実施の形態2にかかる送受信システム2は、サーバ装置のCPUの構成、および、端末装置のCPUの構成が実施の形態1と異なる。また、実施の形態2にかかる送受信システム2は、サーバ装置において端末装置が有するファームウェアのバージョンを管理する点において、実施の形態1にかかる送受信システム1と異なる。
 図11は、実施の形態2にかかる送受信システムのハードウェア構成図である。送受信システム2は、サーバ装置21、中継装置22、および端末装置23を有している。サーバ装置21は、第1半導体装置210を有しており、第1半導体装置210は、CPU211を含んでいる。CPU211は、更新制御回路211eを含む点において、実施の形態1にかかるCPU111と異なる。端末装置23は、第3半導体装置230を有しており、第3半導体装置230は、CPU231を含んでいる。CPU231は、選択回路231eを含む点において、実施の形態1にかかるCPU231と異なる。
 次に、図12を参照しながら、送受信システム2にかかるそれぞれの装置が有する信号と、それぞれの装置が送受信する信号について説明する。図12は、実施の形態2にかかる送受信システムの送受信信号を示した図である。
 サーバ装置21は、NVRAM112に、更新前バージョンデータSG03を記憶している点において、実施の形態1にかかるサーバ装置11と異なる。すなわち、サーバ装置21は、端末装置23の現在のファームウェアのバージョンが何であるかを管理している。なお、端末装置23は、実施の形態1にかかる端末装置13と同様の信号を記憶している。
 以降は、送受信システム2にかかるそれぞれの装置が送受信する信号と、それぞれの装置が行う処理について、実施の形態1と異なる点について説明する。図12に示すように、送受信システム2は、ステップS11からステップS15までの処理は、実施の形態1と同様である。
 次に、図13を参照しながら、第1乱数信号SG11および第2乱数信号SG12を受け取った端末装置23が行う処理について、図7に示した実施の形態1と異なる点について説明する。図13において、端末装置23が有する第3半導体装置230は、PRF演算回路231a_2が出力する信号が、実施の形態1と異なる。すなわち、PRF演算回路231a_2は、第6乱数信号SG13、第2乱数信号SG12、および第3乱数信号SG15を入力信号とした演算において、第9乱数信号SG16と第10乱数信号SG17に加え、第13乱数信号SG26も出力する。第13乱数信号SG26は、ファームウェアの更新が正しく行われたことを示すための信号として用いられる。PRF演算回路231a_2は、出力した第13乱数信号SG26をDRAM133に記憶させる。図13において、上述の処理を実行した第3半導体装置230は、実施の形態1と同様に、第3乱数信号SG15および第9乱数信号SG16を出力する。
 図12に戻る。端末装置23は、第3乱数信号SG15および第9乱数信号SG16を中継装置22に送信し(ステップS26)、中継装置22はこれらの信号をサーバ装置21に送信する(ステップS27)。
 次に、図14を参照しながら、第3乱数信号SG15および第9乱数信号SG16を受け取ったサーバ装置21が行う処理について、図8に示した実施の形態1と異なる点について説明する。図14は、実施の形態2にかかるサーバ装置の機能ブロック図である。
 図14において、サーバ装置21が有する第1半導体装置210は、PRF演算回路211a出力する信号が、実施の形態1と異なる。すなわち、PRF演算回路211aは、第2乱数信号SG12、第6乱数信号SG13、および第3乱数信号SG15を入力信号とした演算において、第8乱数信号SG18と第11乱数信号SG19に加え、第14乱数信号SG27も出力する。第14乱数信号SG27は、端末装置23から受け取るファームウェア更新結果信号を検証するための信号として用いられる。PRF演算回路211aは、出力した第14乱数信号SG27をDRAM113に記憶させる。図14において、上述の処理を実行した第1半導体装置210は、実施の形態1と同様に、第11乱数信号SG19および暗号文SG23を出力する。
 図12に戻る。サーバ装置21は、第11乱数信号SG19および暗号文SG23を中継装置22に送信し(ステップS28)、中継装置22はこれらの信号を端末装置23に送信する(ステップS29)。
 次に、図15を参照しながら、第11乱数信号SG19および暗号文SG23を受け取った端末装置23が行う処理について、図9に示した実施の形態1と異なる点について説明する。図15において、端末装置23が有する第3半導体装置230は、更新制御回路231dが更新結果を出力し、更新制御回路231dが出力した更新結果に基づいて、第3半導体装置230が更新結果信号をサーバ装置21に送信する点が、実施の形態1と異なる。
 図15は、実施の形態2にかかる端末装置の機能ブロック図である。図15において、更新制御回路231dは、比較回路231bから比較結果信号SG25を受け取ると共に、AE復号回路231cから復号された更新データSG02を受け取る。更新制御回路231dは、NVRAM132が記憶するファームウェアのバージョンよりも、復号されたファームウェアのバージョンが大きい場合には、NVRAM132が記憶するファームウェアを更新する処理を行う。
 更新制御回路231dは、ファームウェアを更新する処理が完了すると、かかる処理が成功したか否かを示す第1更新結果信号SG28を生成し、生成した第1更新結果信号SG28を、選択回路231eに選択制御信号として供給する。ファームウェアを更新する処理が成功した場合、更新制御回路231dは、第1更新結果信号SG28として「1」を出力する。一方、ファームウェアを更新する処理が成功しなかった場合、更新制御回路231dは、第1更新結果信号SG28として「0」を出力する。
 選択回路231eは、入力信号として、DRAM133から第13乱数信号SG26を受け取り、さらに、TRNG135から第5乱数信号SG29を受け取る。第5乱数信号SG29は、第13乱数信号SG26と同じ桁数の真性乱数である。選択回路231eは、更新制御回路231dから第1更新結果信号SG28として「1」を受け取った場合、出力する信号として第13乱数信号SG26を選択する。一方、選択回路231eは、更新制御回路231dから第1更新結果信号SG28として「0」を受け取った場合、出力する信号として第5乱数信号SG29を選択する。選択回路231eは、選択した信号を、第2更新結果信号SG30として出力する。第3半導体装置230は、選択回路231eが出力した第2更新結果信号SG30を出力する。
 ファームウェアを更新する処理が成功したか否かを示すための信号をこのように出力することにより、かかる信号は秘匿性を維持し、第三者への情報漏えいを防ぐことが出来る。
 図12に戻る。端末装置23は、第2更新結果信号SG30を中継装置22に送信し(ステップS30)、中継装置22はこれをサーバ装置21に送信する(ステップS31)。
 次に、図16を参照しながら、サーバ装置21が行う処理について説明する。図16は、実施の形態2にかかるサーバ装置の機能ブロック図である。図16において、サーバ装置21が有する第1半導体装置210は、第2更新結果信号SG30を受け取ると、受け取った第2更新結果信号SG30を比較回路211bに供給する。また、比較回路211bは、DRAM113から第14乱数信号SG27を受け取る。すなわち、比較回路211bは、第2更新結果信号SG30と第14乱数信号SG27とを比較し、比較結果信号SG31を更新制御回路211eに出力する。
 比較回路211bは、第2更新結果信号SG30と第14乱数信号SG27とが一致していた場合は、比較結果信号SG31として「1」を出力する。一方、比較回路211bは、第2更新結果信号SG30と第14乱数信号SG27とが一致していない場合は、比較結果信号SG31として「0」を出力する。
 更新制御回路211eは、比較結果信号SG31として「0」を受け取った場合、NVRAM112のデータを更新する処理を実行しない。この場合、端末装置23が更新処理に失敗したと判断し比較結果信号SG31をNVRAM112に保存してもよい。一方、更新制御回路211eは、比較結果信号SG31として「1」を受け取った場合、NVRAM112のデータを更新する処理を実行する。すなわち、更新制御回路211eは、NVRAM112の更新データ領域にアクセスし、端末装置23に送信した更新データにかかる更新バージョンデータSG04を受け取る。そして、更新制御回路211eは、NVRAM112のデータベース領域に記憶されている更新前バージョンデータSG03に代えて、更新バージョンデータSG04を記憶させる処理を行う。
 以上に説明した構成を有することにより、実施の形態2にかかる送受信システムは、端末装置の更新データを容易に管理できる。したがって、例えばサーバ装置が複数の端末装置を管理する場合に、それぞれの有するデータの更新状況を管理することができ、ネットワーク脆弱性等を把握することが可能となる。
 <実施の形態3>
 次に、図17から図21を参照して、実施の形態3について説明する。実施の形態3にかかる送受信システム3は、端末装置間の通信処理が実施の形態1と異なる。すなわち、実施の形態3にかかる送受信システム3は、まず、サーバ装置31と中継装置32との通信を行い、次に、サーバ装置31と中継装置32との通信を行うことがない状況において、中継装置32と端末装置33との間の通信を行う。また、実施の形態3にかかる送受信システム3は、中継装置32の構成が実施の形態1と異なる。
 図17は、実施の形態3にかかる第2半導体装置のハードウェア構成図である。送受信システム3において、中継装置32と端末装置が有する第2半導体装置320は、および、CPU321の構成が、実施の形態1にかかるCPU121と異なる。CPU321は、PRF演算回路321a、比較回路321b、AE復号回路321c、および選択回路321dを主な構成として有している。また、第2半導体装置320は、TRNG325を有している点が実施の形態1と異なる。
 次に、図18を参照しながら、送受信システム3にかかるそれぞれの装置が有する信号と、それぞれの装置が送受信する信号について説明する。図18は、実施の形態3にかかる送受信システムの送受信信号を示した図である。
 図18に示す送受信システム3は、サーバ装置31のNVRAM112が共通鍵SG32を記憶している点、および中継装置32のNVRAM122が共通鍵SG32を記憶している点において、実施の形態1と異なる。なお、端末装置33のNVRAM132が記憶するデータは、実施の形態1と同様である。
 以降は、送受信システム3にかかるそれぞれの装置が送受信する信号と、それぞれの装置が行う処理について、実施の形態1と異なる点について説明する。図18に示すように、送受信システム3は、ステップS11からステップS13までの処理は、実施の形態1と同様である。
 次に、図19を参照しながら、サーバ装置11が行う処理について実施の形態1と異なる点について説明する。図19は、実施の形態3にかかるサーバ装置の機能ブロック図である。図19において、サーバ装置11の第1半導体装置110は、暗号化された更新データを復号する際に使用する鍵を生成するための信号(第1乱数信号SG11)と、端末装置13を認証するためのチャレンジコード(第2乱数信号SG12)とを出力する。第1乱数信号SG11および第2乱数信号SG12を出力するまでの処理については実施の形態1と同様であるため説明を省略する。
 第1半導体装置110は、共通鍵SG32と、第6乱数信号SG13とをAE暗号化回路111c_1に入力する。AE暗号化回路111c_1は、これらの信号を受け取り、受け取った信号に対して認証付き暗号化処理を行い、暗号文SG33を生成する。
 また、第1半導体装置110は、更新データSG02、更新バージョンデータSG04、および第7乱数信号SG14をAE暗号化回路111c_2に入力する。AE暗号化回路111c_2は、これらの信号を受け取り、受け取った信号に対して認証付き暗号化処理を行い、暗号化更新データSG21を生成する。
 以上の処理により、第1半導体装置110は、第1乱数信号SG11、第2乱数信号SG12、暗号文SG33、および暗号化更新データSG21を外部へ出力する。そして、サーバ装置11は、これらの信号を中継装置32に送信する(図18のステップS31)。
 次に、図20を参照しながら、上述の信号を受け取った中継装置が行う処理について説明する。図20は、実施の形態3にかかる中継装置の機能ブロック図である。図20において、中継装置32の第2半導体装置320は、以下の処理を行う。
 まず、AE復号回路321cは、暗号文SG33を入力信号として受け取り、さらにNVRAM122に記憶されている共通鍵SG32を入力信号として受け取る。そして、AE復号回路321cは、これらを入力信号として、暗号文SG33に含まれていた第6乱数信号SG13を復号により生成する。AE復号回路321cは、生成した第6乱数信号SG13をNVRAM122に記憶させる。
 次に、第2半導体装置320は、第1乱数信号SG11、第2乱数信号SG12、および暗号化更新データSG21をNVRAM122に記憶させるとともに、第1乱数信号SG11および第2乱数信号SG12を端末装置33へ出力する処理を行う。中継装置32は、これらの信号を端末装置33に送信する(図18のステップS32)。
 次に、端末装置33は、中継装置32から受け取った第1乱数信号SG11および第2乱数信号SG12を処理し、中継装置32に対して第3乱数信号SG15および第9乱数信号SG16を送信する(図18のステップS33)。端末装置33が第1乱数信号SG11および第2乱数信号SG12を処理し、中継装置32に対して第3乱数信号SG15および第9乱数信号SG16を送信する処理は、実施の形態1において図7を参照しながら説明したものと同様である。
 次に、図21を参照しながら、第3乱数信号SG15および第9乱数信号SG16を受け取った中継装置32が行う処理について説明する。図21は、図19は、実施の形態3にかかる中継装置の機能ブロック図である。
 第2半導体装置320において、PRF演算回路321aは、入力信号として、端末装置33が送信した第3乱数信号SG15を受け取る。また、PRF演算回路321aは、入力信号として、NVRAM122に記憶している第6乱数信号SG13、および第2乱数信号SG12を受け取る。PRF演算回路321aは、これらの信号を入力信号として演算処理を行い、第8乱数信号SG18、および第11乱数信号SG19を生成する。
 第2半導体装置320は、PRF演算回路321aが生成した第11乱数信号SG19を、端末装置33のチャレンジコード(第3乱数信号SG15)に対するレスポンスコードとして出力する。
 比較回路321bは、PRF演算回路321aが生成した第8乱数信号SG18と、中継装置32からレスポンスコードとして受け取った第9乱数信号SG16とをそれぞれ受け取り、受け取ったこれらの信号を比較する。
 比較回路321bがデータを比較した結果、これらの信号が一致しない場合、比較回路321bは、比較結果信号SG20として「0」を出力する。一方、比較した結果、これらの信号が一致する場合、比較回路321bは、比較結果信号SG20として「1」を出力する。比較回路321bは出力した比較結果信号SG20を、選択回路321dに供給する。
 TRNG125は、第4乱数信号SG22を生成し、生成した信号を、選択回路321dに入力する。TRNG125が出力する第4乱数信号SG22は、信号の桁数が暗号化更新データSG21と同じである真性乱数である。
 選択回路321dは、入力信号として、NVRAM122に記憶されている暗号化更新データSG21と第4乱数信号SG22とを受け取るとともに、選択制御信号として、比較結果信号SG20を受け取る。選択回路321dは、比較結果信号SG20の値が「1」の場合、出力信号である暗号文SG23として暗号化更新データSG21を選択する。一方、選択回路321dは、比較結果信号SG20の値が「0」の場合、出力信号である暗号文SG23として暗号化更新データSG21に代えて第4乱数信号SG22を選択する。選択回路321dは、このようにして信号を選択し、選択した信号を暗号文SG23として出力する。
 中継装置32は、第2半導体装置320が出力した第11乱数信号SG19および暗号文SG23を、端末装置33に送信する(図18のステップS34)。以降の端末装置33における処理は、実施の形態1において図9を参照しながら説明したものと同様である。
 なお、図18のステップS11およびステップS12において中継装置32と端末装置33とが送受信するデータは、秘匿性があるものではない。そのため、端末装置33にかかる更新前バージョンデータSG03および識別子SG05を、中継装置32が予め記憶しておいてもよい。
 このような構成により、実施の形態3にかかる送受信システム3は、サーバ装置31と中継装置32との通信と、中継装置32と端末装置33との通信と、を分離してデータの更新処理を行うことが出来る。例えば、送受信システム3は、端末装置33が遠隔の地にある場合や、近距離通信のみを備えている場合であって、サーバ装置31と中継装置32との通信を行うことが出来ない環境であっても、端末装置33に対して更新データを提供することができる。
 なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
 例えば、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
   (付記1)
 メモリと、乱数生成回路と、制御回路と、を有し、外部端末装置に更新データを提供する半導体装置であって、
 前記メモリは、鍵情報を記憶し、
 前記乱数生成回路は、第1乱数信号および第2乱数信号を生成し、
 前記制御回路は、
 前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
 前記更新データに対して第7乱数信号を用いて暗号化更新データを生成し、
 前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を生成し、
 前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
 前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
 前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、半導体装置。
   (付記2)
 前記制御回路は、
前記第6乱数信号、前記第7乱数信号、および前記第8乱数信号を、
予め設定された同一の擬似ランダム関数に入力することよりそれぞれ演算する、
付記1に記載の半導体装置。
   (付記3)
 前記制御回路は、前記第2応答信号と前記第8乱数信号とが一致していない場合に、前記暗号化更新データに代えて、前記暗号化更新データと同じ桁数の乱数信号を前記外部端末装置に提供する、
付記1に記載の半導体装置。
   (付記4)
 前記制御回路は、前記外部端末装置から、提供した前記暗号化更新データに対する応答信号である第3応答信号を受け取った場合に、前記第3応答信号が、前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として生成された第10乱数信号と一致するか否かを判定し、一致する場合には、データが更新されたことを登録し、一致しない場合には、データが更新されなかったことを登録する、
付記1に記載の半導体装置。
   (付記5)
 メモリと、制御回路と、を有し、外部サーバ装置から暗号化更新データを受け取る半導体装置であって、
 前記メモリは、更新前データと、鍵情報を記憶し、
 前記制御回路は、
 前記外部サーバ装置から第1乱数信号および第2乱数信号を要求信号として受け取り、
 前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
 前記第2乱数信号と前記第6乱数信号とを入力信号として、第9乱数信号および第10乱数信号を生成し、
 予め設定された信号を含むチャレンジコードを生成し、
 前記要求信号に対する応答信号として前記第9乱数信号および前記チャレンジコードを前記外部サーバ装置へ出力し、
 出力した前記応答信号に基づいて前記外部サーバ装置から認証信号と前記暗号化更新データとを受け取り、
 受け取った前記認証信号と、前記第10乱数信号とが一致している場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行う、
半導体装置。
   (付記6)
 前記制御回路は、
前記第6乱数信号、前記第7乱数信号、前記第9乱数信号、および前記第10乱数信号を、
予め設定された同一の擬似ランダム関数に入力することよりそれぞれ演算する、
付記5に記載の半導体装置。
   (付記7)
 前記制御回路は、受け取った前記認証信号と、前記第10乱数信号とが一致していない場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行わない、
付記5に記載の半導体装置。
   (付記8)
 前記制御回路は、予め設定された桁数の数値を順次インクリメントすることにより前記チャレンジコードを生成する、
付記5に記載の半導体装置。
   (付記9)
 前記制御回路は、前記第2乱数信号と前記第6乱数信号とを入力信号として、第12乱数信号を生成することにより前記チャレンジコードを生成する、
付記5に記載の半導体装置。
   (付記10)
 第3乱数信号を生成する乱数生成回路をさらに備え、
 前記制御回路は、前記第9乱数信号および前記第10乱数信号を生成する際に、前記第2乱数信号と前記第6乱数信号に加えて前記第3乱数信号も入力信号として入力し、
 前記チャレンジコードとして第3乱数信号を前記外部サーバ装置へ出力する、
付記5に記載の半導体装置。
   (付記11)
 前記制御回路は、少なくとも前記第2乱数信号と前記第6乱数信号とを入力信号として含む擬似ランダム関数の出力として第13乱数信号を生成し、
 前記暗号化更新データの復号処理が成功した場合に、前記第13乱数信号を前記外部サーバ装置へ出力する、
付記5に記載の半導体装置。
   (付記12)
 前記制御回路は、前記暗号化更新データの復号処理が成功しなかった場合に、前記第13乱数信号に代えて、乱数信号を前記外部サーバ装置へ出力する、
付記11に記載の半導体装置。
   (付記13)
 真性乱数生成回路をさらに備え、
 前記乱数信号は、真性乱数信号である、
付記12に記載の半導体装置。
   (付記14)
 外部端末装置に更新データを提供する方法であって、
 鍵情報を記憶し、
 第1乱数信号および第2乱数信号を生成し、
 前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
 前記更新データに対して第7乱数信号を用いて暗号化更新データを生成し、
 前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を生成し、
 前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
 前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
 前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、
更新データ提供方法。
   (付記15)
 外部サーバ装置から暗号化更新データである暗号化更新データを受け取る方法であって、
 更新前データと、鍵情報を記憶し、
 前記外部サーバ装置から第1乱数信号および第2乱数信号を要求信号として受け取り、
 前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
 前記第2乱数信号と前記第6乱数信号とを入力信号として、第9乱数信号および第10乱数信号を生成し、
 予め設定された信号を含むチャレンジコードを生成し、
 前記要求信号に対する応答信号として前記第9乱数信号および前記チャレンジコードを前記外部サーバ装置へ出力し、
 出力した前記応答信号に基づいて前記外部サーバ装置から認証信号と前記暗号化更新データとを受け取り、
 受け取った前記認証信号と、前記第10乱数信号とが一致している場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行う、
更新データ受取方法。
   (付記16)
 コンピュータに以下の方法を実行させるプログラムであって、前記方法は、
 外部端末装置に更新データを提供する方法であって、
 鍵情報を記憶し、
 第1乱数信号および第2乱数信号を生成し、
 前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
 前記更新データに対して第7乱数信号を用いて暗号化更新データを生成し、
 前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を生成し、
 前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
 前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
 前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、
プログラム。
   (付記17)
 コンピュータに以下の方法を実行させるためのプログラムであって、前記方法は、
 外部サーバ装置から暗号化更新データである暗号化更新データを受け取る方法であって、
 更新前データと、鍵情報を記憶し、
 前記外部サーバ装置から第1乱数信号および第2乱数信号を要求信号として受け取り、
 前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
 前記第2乱数信号と前記第6乱数信号とを入力信号として、第9乱数信号および第10乱数信号を生成し、
 予め設定された信号を含むチャレンジコードを生成し、
 前記要求信号に対する応答信号として前記第9乱数信号および前記チャレンジコードを前記外部サーバ装置へ出力し、
 出力した前記応答信号に基づいて前記外部サーバ装置から認証信号と前記暗号化更新データとを受け取り、
 受け取った前記認証信号と、前記第10乱数信号とが一致している場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行う、
プログラム。
   (付記18)
 メモリと、乱数生成回路と、制御回路と、を有し、外部サーバ装置から暗号化更新データを受け取り、受け取った暗号化更新データを外部端末装置に提供する半導体装置であって、
 前記メモリは、前記外部サーバ装置との間で使用可能な共通鍵を記憶し、
 前記制御回路は、
 前記外部サーバ装置から、第1乱数信号、第2乱数信号、前記共通鍵により暗号化された第6乱数信号を含む暗号化鍵データ、および暗号化更新データを受け取り、
 前記暗号化鍵データを前記共通鍵により復号して第6乱数信号を生成し、
 前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を出力し、
 前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
 前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
 前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、半導体装置。
   (付記19)
 前記第6乱数信号および前記第8乱数信号は、
予め設定された同一の擬似ランダム関数に入力することよりそれぞれ演算される、
付記18に記載の半導体装置。
   (付記20)
 前記制御回路は、
 前記第2応答信号と前記第8乱数信号とが一致していない場合に、前記暗号化更新データに代えて、前記暗号化更新データと同じ桁数の乱数信号を前記外部端末装置に提供する、
付記18に記載の半導体装置。
   (付記21)
 サーバ装置と、前記サーバ装置から更新データを受け取る端末装置とを含む送受信システムであって、
 前記サーバ装置と、前記端末装置とは、マスタ鍵情報をそれぞれ予め記憶し、
 前記サーバ装置は、前記端末装置に対して、第1乱数信号と、前記端末装置を認証するための第1チャレンジコードと、を前記端末装置へ送信し、
 前記端末装置は、サーバ装置に対して、
前記第1乱数信号および前記第1チャレンジコードに基づいて生成した第1レスポンスコードと、前記サーバ装置を認証するための第2チャレンジコードと、を送信し、
 前記サーバ装置は、前記端末装置に対して、
前記第1レスポンスコードが期待値と一致する場合に、前記マスタ鍵により暗号化された暗号化更新データと、前記第2チャレンジコードに対する第2レスポンスコードを送信し、
 前記端末装置は、
前記第2レスポンスコードが期待値と一致する場合に、前記マスタ鍵を用いて受け取った前記暗号化更新データを復号する、
送受信システム。
   (付記22)
 前記サーバ装置と、前記端末装置とは、それぞれ共通の擬似ランダム関数を記憶し、
 前記端末装置は、前記擬似ランダム関数に前記第1チャレンジコードを入力して前記第1レスポンスコードを生成し、
 前記サーバ装置は、前記擬似ランダム関数に前記第2チャレンジコードを入力して前記第2レスポンスコードを生成する、
付記21に記載の送受信システム。
   (付記23)
 前記サーバ装置は、真性乱数生成回路を有しており、
 前記第1乱数信号と前記第1チャレンジコードとはそれぞれ真性乱数信号である、
付記21に記載の送受信システム。
   (付記24)
 前記端末装置は、真性乱数生成回路を有しており、
 前記第2チャレンジコードは真性乱数信号である、
付記23に記載の送受信システム。
   (付記25)
 前記端末装置は、受け取った前記暗号化更新データに基づいて更新データの登録が完了した場合に、前記第1乱数信号および第1チャレンジコードに基づいて生成した更新結果信号を前記サーバ装置に送信し、
 前記サーバ装置は、
 前記端末装置から受け取った前記更新結果信号が、期待値と一致する場合には、前記端末装置のデータが前記更新データであることを登録するか、期待値と一致しない場合には、前記端末装置のデータが前記更新データでないことを登録する、
付記21に記載の送受信システム。
   (付記26)
 前記サーバ装置は、前記第1チャレンジコードが期待値と一致しない場合に、前記暗号化更新データに代えて、前記暗号化更新データと同じ桁数の乱数信号を送信する、
付記21に記載の送受信システム。
   (付記27)
 前記端末装置は、前記レスポンスコードが期待値と一致しない場合に、受け取った前記暗号化更新データを復号しない、
付記21に記載の送受信システム。
   (付記28)
 前記サーバ装置と前記端末装置との通信を中継する中継装置を更に有し、
 前記中継装置は、前記端末装置に対して更新前データのバージョン情報を要求する信号を送信し、前記端末装置から受け取った前記バージョン情報と、前記更新前データを更新する処理を要求する信号と、を前記サーバ装置に送信する、
付記21に記載の送受信システム。
   (付記29)
 前記サーバ装置と前記端末装置との通信を中継する中継装置を更に有し、
 前記サーバ装置と、前記中継装置とは、共通鍵をそれぞれ予め記憶し、
 前記サーバ装置は、前記中継装置に対して、
第1乱数信号、前記第1チャレンジコード、前記共通鍵により暗号化された第6乱数信号を含む暗号化鍵データ、および前記暗号化更新データ、を送信し、
 前記中継装置は、前記端末装置に対して、
前記第1乱数信号と、第1チャレンジコードと、を送信し、
 前記端末装置は、前記中継装置に対して、
前記第1乱数信号と、前記第1レスポンスコードと、前記第2チャレンジコードと、を送信し、
 前記中継装置は、前記端末装置に対して、
前記第1レスポンスコードが期待値と一致する場合に、
前記暗号化更新データと、前記第2レスポンスコードと、を送信し、
 前記端末装置は、前記第2レスポンスコードが期待値と一致する場合に、受け取った前記暗号化更新データを復号する、
付記21に記載の送受信システム。
 一実施の形態は、更新プログラムの授受を行うサーバ装置、端末装置等に適用可能である。
1、2、3 送受信システム
11、21、31 サーバ装置
12、22、32 中継装置
13、23、33 端末装置
110、210 第1半導体装置
120、320 第2半導体装置
130、230 第3半導体装置
900 ネットワーク
SG01 更新前データ
SG02 更新データ
SG03 更新前バージョンデータ
SG04 更新バージョンデータ
SG05 識別子
SG06 マスタ鍵
SG07 第12乱数信号
SG08 バージョンチェック要求信号
SG09 バージョンアップ要求信号
SG10 比較結果信号
SG11 第1乱数信号
SG12 第2乱数信号
SG13 第6乱数信号
SG14 第7乱数信号
SG15 第3乱数信号
SG16 第9乱数信号
SG17 第10乱数信号
SG18 第8乱数信号
SG19 第11乱数信号
SG20 比較結果信号
SG21 暗号化更新データ
SG22 第4乱数信号
SG23 暗号文
SG24 比較結果信号
SG25 比較結果信号
SG26 第13乱数信号
SG27 第14乱数信号
SG28 第1更新結果信号
SG29 第5乱数信号
SG30 第2更新結果信号
SG31 比較結果信号
SG32 共通鍵
SG33 暗号文

Claims (20)

  1.  メモリと、乱数生成回路と、制御回路と、を有し、外部端末装置に更新データを提供する半導体装置であって、
     前記メモリは、鍵情報を記憶し、
     前記乱数生成回路は、第1乱数信号および第2乱数信号を生成し、
     前記制御回路は、
     前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
     前記更新データに対して第7乱数信号を用いて暗号化更新データを生成し、
     前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を生成し、
     前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
     前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
     前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、半導体装置。
  2.  前記制御回路は、
    前記第6乱数信号、前記第7乱数信号、および前記第8乱数信号を、
    予め設定された同一の擬似ランダム関数に入力することよりそれぞれ演算する、
    請求項1に記載の半導体装置。
  3.  前記制御回路は、前記第2応答信号と前記第8乱数信号とが一致していない場合に、前記暗号化更新データに代えて、前記暗号化更新データと同じ桁数の乱数信号を前記外部端末装置に提供する、
    請求項1に記載の半導体装置。
  4.  前記制御回路は、前記外部端末装置から、提供した前記暗号化更新データに対する応答信号である第3応答信号を受け取った場合に、前記第3応答信号が、前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として生成された第10乱数信号と一致するか否かを判定し、一致する場合にデータが更新されたことを登録し、一致しない場合には、データが更新されなかったことを登録する、
    請求項1に記載の半導体装置。
  5.  メモリと、制御回路と、を有し、外部サーバ装置から暗号化更新データを受け取る半導体装置であって、
     前記メモリは、更新前データと、鍵情報を記憶し、
     前記制御回路は、
     前記外部サーバ装置から第1乱数信号および第2乱数信号を要求信号として受け取り、
     前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
     前記第2乱数信号と前記第6乱数信号とを入力信号として、第9乱数信号および第10乱数信号を生成し、
     予め設定された信号を含むチャレンジコードを生成し、
     前記要求信号に対する応答信号として前記第9乱数信号および前記チャレンジコードを前記外部サーバ装置へ出力し、
     出力した前記応答信号に基づいて前記外部サーバ装置から認証信号と前記暗号化更新データとを受け取り、
     受け取った前記認証信号と、前記第10乱数信号とが一致している場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行う、
    半導体装置。
  6.  前記制御回路は、
    前記第6乱数信号、前記第7乱数信号、前記第9乱数信号、および前記第10乱数信号を、
    予め設定された同一の擬似ランダム関数に入力することよりそれぞれ演算する、
    請求項5に記載の半導体装置。
  7.  前記制御回路は、受け取った前記認証信号と、前記第10乱数信号とが一致していない場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行わない、
    請求項5に記載の半導体装置。
  8.  前記制御回路は、予め設定された桁数の数値を順次インクリメントすることにより前記チャレンジコードを生成する、
    請求項5に記載の半導体装置。
  9.  前記制御回路は、前記第2乱数信号と前記第6乱数信号とを入力信号として、第12乱数信号を生成することにより前記チャレンジコードを生成する、
    請求項5に記載の半導体装置。
  10.  第3乱数信号を生成する乱数生成回路をさらに備え、
     前記制御回路は、前記第9乱数信号および前記第10乱数信号を生成する際に、前記第2乱数信号と前記第6乱数信号に加えて前記第3乱数信号も入力信号として入力し、
     前記チャレンジコードとして第3乱数信号を前記外部サーバ装置へ出力する、
    請求項5に記載の半導体装置。
  11.  前記制御回路は、少なくとも前記第2乱数信号と前記第6乱数信号とを入力信号として含む擬似ランダム関数の出力として第13乱数信号を生成し、
     前記暗号化更新データの復号処理が成功した場合に、前記第13乱数信号を前記外部サーバ装置へ出力する、
    請求項5に記載の半導体装置。
  12.  前記制御回路は、前記暗号化更新データの復号処理が成功しなかった場合に、前記第13乱数信号に代えて、乱数信号を前記外部サーバ装置へ出力する、
    請求項11に記載の半導体装置。
  13.  真性乱数生成回路をさらに備え、
     前記乱数信号は、真性乱数信号である、
    請求項12に記載の半導体装置。
  14.  外部端末装置に更新データを提供する方法であって、
     鍵情報を記憶し、
     第1乱数信号および第2乱数信号を生成し、
     前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
     前記更新データに対して第7乱数信号を用いて暗号化更新データを生成し、
     前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を生成し、
     前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
     前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
     前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、
    更新データ提供方法。
  15.  外部サーバ装置から暗号化更新データである暗号化更新データを受け取る方法であって、
     更新前データと、鍵情報を記憶し、
     前記外部サーバ装置から第1乱数信号および第2乱数信号を要求信号として受け取り、
     前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
     前記第2乱数信号と前記第6乱数信号とを入力信号として、第9乱数信号および第10乱数信号を生成し、
     予め設定された信号を含むチャレンジコードを生成し、
     前記要求信号に対する応答信号として前記第9乱数信号および前記チャレンジコードを前記外部サーバ装置へ出力し、
     出力した前記応答信号に基づいて前記外部サーバ装置から認証信号と前記暗号化更新データとを受け取り、
     受け取った前記認証信号と、前記第10乱数信号とが一致している場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行う、
    更新データ受取方法。
  16.  コンピュータに以下の方法を実行させるプログラムであって、前記方法は、
     外部端末装置に更新データを提供する方法であって、
     鍵情報を記憶し、
     第1乱数信号および第2乱数信号を生成し、
     前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
     前記更新データに対して第7乱数信号を用いて暗号化更新データを生成し、
     前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を生成し、
     前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
     前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
     前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、
    プログラム。
  17.  コンピュータに以下の方法を実行させるためのプログラムであって、前記方法は、
     外部サーバ装置から暗号化更新データである暗号化更新データを受け取る方法であって、
     更新前データと、鍵情報を記憶し、
     前記外部サーバ装置から第1乱数信号および第2乱数信号を要求信号として受け取り、
     前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
     前記第2乱数信号と前記第6乱数信号とを入力信号として、第9乱数信号および第10乱数信号を生成し、
     予め設定された信号を含むチャレンジコードを生成し、
     前記要求信号に対する応答信号として前記第9乱数信号および前記チャレンジコードを前記外部サーバ装置へ出力し、
     出力した前記応答信号に基づいて前記外部サーバ装置から認証信号と前記暗号化更新データとを受け取り、
     受け取った前記認証信号と、前記第10乱数信号とが一致している場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行う、
    プログラム。
  18.  メモリと、乱数生成回路と、制御回路と、を有し、外部サーバ装置から暗号化更新データを受け取り、受け取った暗号化更新データを外部端末装置に提供する半導体装置であって、
     前記メモリは、前記外部サーバ装置との間で使用可能な共通鍵を記憶し、
     前記制御回路は、
     前記外部サーバ装置から、第1乱数信号、第2乱数信号、前記共通鍵により暗号化された第6乱数信号を含む暗号化鍵データ、および暗号化更新データを受け取り、
     前記暗号化鍵データを前記共通鍵により復号して第6乱数信号を生成し、
     前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を出力し、
     前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
     前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
     前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、半導体装置。
  19.  前記第6乱数信号および前記第8乱数信号は、
    予め設定された同一の擬似ランダム関数に入力することよりそれぞれ演算される、
    請求項18に記載の半導体装置。
  20.  前記制御回路は、
     前記第2応答信号と前記第8乱数信号とが一致していない場合に、前記暗号化更新データに代えて、前記暗号化更新データと同じ桁数の乱数信号を前記外部端末装置に提供する、
    請求項18に記載の半導体装置。
PCT/JP2018/001521 2018-01-19 2018-01-19 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム WO2019142307A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US16/955,435 US11516024B2 (en) 2018-01-19 2018-01-19 Semiconductor device, update data-providing method, update data-receiving method, and program
CN201880082807.0A CN111512593B (zh) 2018-01-19 2018-01-19 半导体设备、提供更新数据的方法、接收更新数据的方法以及介质
JP2019565643A JP6888122B2 (ja) 2018-01-19 2018-01-19 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
PCT/JP2018/001521 WO2019142307A1 (ja) 2018-01-19 2018-01-19 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
EP18900856.8A EP3742665A4 (en) 2018-01-19 2018-01-19 SEMICONDUCTOR COMPONENT, UPDATE DATA PROVISION PROCEDURE, UPDATE DATA RECEIVE PROCEDURE AND PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/001521 WO2019142307A1 (ja) 2018-01-19 2018-01-19 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム

Publications (1)

Publication Number Publication Date
WO2019142307A1 true WO2019142307A1 (ja) 2019-07-25

Family

ID=67300979

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/001521 WO2019142307A1 (ja) 2018-01-19 2018-01-19 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム

Country Status (5)

Country Link
US (1) US11516024B2 (ja)
EP (1) EP3742665A4 (ja)
JP (1) JP6888122B2 (ja)
CN (1) CN111512593B (ja)
WO (1) WO2019142307A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11090545B2 (en) * 2019-03-20 2021-08-17 Samuel W. Rall Wireless customizable referee paging system
US11269999B2 (en) * 2019-07-01 2022-03-08 At&T Intellectual Property I, L.P. Protecting computing devices from malicious tampering
US20220116206A1 (en) * 2021-12-22 2022-04-14 Intel Corporation Systems and methods for device authentication in supply chain

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150453A (ja) * 2001-11-15 2003-05-23 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
WO2006129654A1 (ja) 2005-06-01 2006-12-07 Matsushita Electric Industrial Co., Ltd. 電子機器、更新サーバ装置、鍵更新装置
JP2012093921A (ja) * 2010-10-27 2012-05-17 Nec Engineering Ltd 情報漏洩防止ストレージシステム
JP2014182571A (ja) 2013-03-19 2014-09-29 Denso Corp 車載電子制御装置のプログラム書換システム及び車載中継装置
JP2015103163A (ja) 2013-11-27 2015-06-04 株式会社オートネットワーク技術研究所 プログラム更新システム及びプログラム更新方法
WO2016020640A1 (en) * 2014-08-05 2016-02-11 Arm Ip Limited Control mechanisms for data processing devices
JP2017022654A (ja) * 2015-07-14 2017-01-26 株式会社東芝 記憶装置及び方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5453324B2 (ja) * 2009-02-16 2014-03-26 パナソニック株式会社 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法
US20120324557A1 (en) * 2011-06-17 2012-12-20 Raytheon Bbn Technologies Corp System and method for remote integrity verification
JP5907937B2 (ja) * 2013-09-11 2016-04-26 京セラドキュメントソリューションズ株式会社 組込システム
US20160267273A1 (en) 2013-11-06 2016-09-15 Mitsubishi Electric Corporation Software update apparatus and computer-readable storage medium storing software update program
US9894066B2 (en) * 2014-07-30 2018-02-13 Master Lock Company Llc Wireless firmware updates
CN105577625B (zh) * 2014-10-17 2019-04-23 西安西电捷通无线网络通信股份有限公司 基于预共享密钥的实体鉴别方法及装置
US10171478B2 (en) * 2016-06-30 2019-01-01 Faraday & Future Inc. Efficient and secure method and apparatus for firmware update
CN106603485B (zh) * 2016-10-31 2020-03-03 美的智慧家居科技有限公司 密钥协商方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150453A (ja) * 2001-11-15 2003-05-23 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
WO2006129654A1 (ja) 2005-06-01 2006-12-07 Matsushita Electric Industrial Co., Ltd. 電子機器、更新サーバ装置、鍵更新装置
JP2012093921A (ja) * 2010-10-27 2012-05-17 Nec Engineering Ltd 情報漏洩防止ストレージシステム
JP2014182571A (ja) 2013-03-19 2014-09-29 Denso Corp 車載電子制御装置のプログラム書換システム及び車載中継装置
JP2015103163A (ja) 2013-11-27 2015-06-04 株式会社オートネットワーク技術研究所 プログラム更新システム及びプログラム更新方法
WO2016020640A1 (en) * 2014-08-05 2016-02-11 Arm Ip Limited Control mechanisms for data processing devices
JP2017022654A (ja) * 2015-07-14 2017-01-26 株式会社東芝 記憶装置及び方法

Also Published As

Publication number Publication date
CN111512593B (zh) 2023-08-29
EP3742665A4 (en) 2021-08-18
EP3742665A1 (en) 2020-11-25
JP6888122B2 (ja) 2021-06-16
JPWO2019142307A1 (ja) 2020-11-19
CN111512593A (zh) 2020-08-07
US11516024B2 (en) 2022-11-29
US20200351108A1 (en) 2020-11-05

Similar Documents

Publication Publication Date Title
US8213612B2 (en) Secure software download
EP2506488B1 (en) Secure dynamic on-chip key programming
JP5690412B2 (ja) ハードウェアデバイスの鍵プロビジョン方法および装置
US10841087B2 (en) Security device, system, and security method
US20050076226A1 (en) Computing device that securely runs authorized software
US9165148B2 (en) Generating secure device secret key
EP3025226A1 (en) Media client device authentication using hardware root of trust
CN111611593A (zh) 安全数据处理设备
US20100241865A1 (en) One-Time Password System Capable of Defending Against Phishing Attacks
US9003197B2 (en) Methods, apparatus and system for authenticating a programmable hardware device and for authenticating commands received in the programmable hardware device from a secure processor
WO2019142307A1 (ja) 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
EP3214567B1 (en) Secure external update of memory content for a certain system on chip
CN112703500A (zh) 在低功率模式期间保护存储在IoT装置的存储器中的数据
JP2008033512A (ja) セキュリティチップ及びプラットフォーム
WO2015094114A1 (en) Entity authentication in network
EP3881215B1 (en) Method for providing a secret unique key for a volatile fpga
WO2010109560A1 (ja) 半導体メモリ、当該半導体メモリと結合されるコンピュータマシン、及び、そのデータ処理方法
KR20230037588A (ko) 프로그래밍가능 장치를 원격으로 프로그래밍하는 방법
JP2010135950A (ja) 暗号処理装置および暗号処理方法
JP2013197810A (ja) 暗号処理装置

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019565643

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018900856

Country of ref document: EP

Effective date: 20200819