WO2023127429A1 - 電子機器、情報処理方法 - Google Patents

電子機器、情報処理方法 Download PDF

Info

Publication number
WO2023127429A1
WO2023127429A1 PCT/JP2022/044948 JP2022044948W WO2023127429A1 WO 2023127429 A1 WO2023127429 A1 WO 2023127429A1 JP 2022044948 W JP2022044948 W JP 2022044948W WO 2023127429 A1 WO2023127429 A1 WO 2023127429A1
Authority
WO
WIPO (PCT)
Prior art keywords
electronic device
target data
authenticity determination
data
common key
Prior art date
Application number
PCT/JP2022/044948
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 ソニーセミコンダクタソリューションズ株式会社
Publication of WO2023127429A1 publication Critical patent/WO2023127429A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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

Definitions

  • This technology relates to an electronic device and an information processing method, and more particularly to a technology for an electronic device and an information processing method that perform processing to indicate that data has not been tampered with.
  • Non-Patent Documents 1 and 2 There are several methods for verifying that information handled by electronic equipment has not been tampered with. For example, a "public key method” (see Non-Patent Documents 1 and 2 below) that verifies that target data has not been tampered with using a private key and a public key, and a common key is used to verify that target data has not been tampered with. A “common key method” (see Non-Patent Document 3 below) for verifying that the
  • the public key method has a problem that the amount of calculation is large and the processing time is long as compared with the common key method. Moreover, the common key method has a problem that the risk cost is higher than that of the public key method.
  • This technology is intended to solve the above problems, and aims to reduce the risk cost while suppressing the amount of calculation for the process of determining the presence or absence of falsification.
  • An electronic device includes a first authenticity determination processing unit that performs a first authenticity determination using a public key method for target data, and encoded data based on a common key method from the target data determined to be true in the first authentication determination. and a second authenticity determination processing unit that performs a second authenticity determination on the target data using the code data.
  • a second step for determining the authenticity of the target data by generating encoded data (MAC: Message Authentication Code) according to the common key method using the target data determined to be "true" by the first authentication determination process.
  • the code data can be used for authenticity determination processing. Since the second authenticity determination process is based on the common key method, the processing time is shorter than that of the first authenticity determination process based on the public key method.
  • An information processing method includes first authentication processing using a public key method for target data, and code data generation for generating encoded data using a common key method from the target data determined to be true in the first authentication processing. and a second authenticity determination process for performing a second authenticity determination on the target data using the code data.
  • the electronic device described above can be realized by such an information processing method.
  • FIG. 1 is a block diagram for explaining the configuration of an information processing system
  • FIG. FIG. 2 is a diagram for explaining an overview of procedures executed by each device
  • FIG. 4 is a flow chart showing an example of the flow of processing for an electronic device to determine authenticity.
  • 10 is a flowchart showing an example of the flow of processing executed by an electronic device when storing a public key and a common key in the electronic device
  • FIG. 11 is a flowchart showing an example of the flow of processing executed by an electronic device according to a first modified example
  • FIG. FIG. 11 is a flowchart showing an example of the flow of processing executed by an electronic device according to a second modified example
  • FIG. 11 is a flowchart showing an example of the flow of processing executed by an electronic device according to a third modified example
  • FIG. FIG. 16 is a flow chart showing an example of the flow of processing executed by an electronic device according to a fourth modified example
  • FIG. FIG. 14 is a diagram for explaining an overview of procedures executed by each device in the fifth modification
  • the information processing system S includes a server device 1, a host device 2, and an electronic device 3, as shown in FIG.
  • the server device 1 is, for example, an image sensor manufacturing device.
  • the host device 2 is, for example, a camera device equipped with an image sensor.
  • the electronic device 3 is an image sensor manufactured by the server device 1 .
  • the server device 1 is a device that generates various keys, generates data to be authenticated (hereinafter referred to as “target data D”), and transmits necessary data to other devices. be.
  • the server device 1 includes an arithmetic processing unit 10, a storage unit 11, and a communication unit 12.
  • the arithmetic processing unit 10 has a key generation function FA1, a target data generation function FA2, a signature generation function FA3, a storage processing function FA4, an instruction function FA5, and a communication processing function FA6.
  • the key generation function FA1 generates a private key Kpr used in the public key system and a public key Kpb paired with the private key Kpr.
  • the generated private key Kpr is stored in the storage unit 11 .
  • the generated public key Kpb is transmitted to the electronic device 3 .
  • the target data generation function FA2 generates target data D, which is data to be verified that it has not been tampered with, that is, data to be subjected to authenticity determination processing.
  • the generated target data D is first transmitted to the host device 2 .
  • the target data D may be data including at least part of a program that operates in the electronic device 3 as an image sensor, or may be data such as variables used in the program. However, it may be a patch file for updating the program.
  • the target data D may be data such as a program using AI (Artificial Intelligence), or an AI model used by the program.
  • AI Artificial Intelligence
  • the signature generation function FA3 uses the target data D and the secret key Kpr to generate a digital signature DS in the public key system.
  • the generated digital signature DS is sent to the host device 2 .
  • the digital signature DS is generated by encrypting hash data obtained by hashing the target data D using a private key Kpr. done.
  • the storage processing function FA4 stores the private key Kpr generated by the key generation function FA1 in the storage unit 11, stores target data D to be distributed to the host device 2, etc. in the storage unit 11, and A process of storing temporary data in the storage unit 11 and a process of reading them are executed.
  • the instruction function FA5 transmits to the electronic device 3 an instruction to generate the common key Kcm used in the common key method. In response to this, the electronic device 3 generates a common key Kcm. Note that the instruction may be transmitted to the host device 2 after the electronic device 3 is mounted on the host device 2 . The instruction function FA5 also instructs the host device 2 to update various software used in the electronic device 3 .
  • the communication processing function FA6 performs a process of transmitting the public key Kpb generated by the key generation function FA1 to the electronic device 3, a process of transmitting the target data D generated by the target data generation function FA2 to the host device 2, a process of transmitting the signature Processing for transmitting the digital signature DS generated by the generation function FA3 to the host device 2, processing for transmitting instructions by the instruction function FA5 to the host device 2 and the electronic device 3, and the like are performed.
  • the storage unit 11 is configured with a ROM (Read Only Memory), a RAM (Random Access Memory), etc., and stores and reads various data according to instructions from the storage processing function FA4.
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the communication unit 12 performs various communications between the server device 1 and the host device 2 or between the server device 1 and the electronic device 3 according to instructions from the communication processing function FA6.
  • the host device 2 includes an arithmetic processing unit 20, a storage unit 21, and a communication unit 22.
  • the arithmetic processing unit 20 has an update notification function FB1, a storage processing function FB2, and a communication processing function FB3.
  • the update notification function FB1 performs a process of notifying the electronic device 3 that there is an update in response to an update instruction received from the server device 1 .
  • the storage processing function FB2 stores the target data D and the digital signature DS received from the server device 1 in the storage unit 21.
  • the communication processing function FB3 performs processing for receiving the target data D and the digital signature DS from the server device 1, processing for receiving an update instruction from the server device 1, and transmission of the target data D and the digital signature DS to the electronic device 3. and a process of transmitting code data CD to the electronic device 3, which will be described later.
  • the storage unit 21 is configured with ROM, RAM, etc., and stores and reads out various data according to instructions from the storage processing function FB2.
  • the communication unit 22 performs various communications between the host device 2 and the server device 1 or between the host device 2 and the electronic device 3 according to instructions from the communication processing function FB3.
  • Communication with the server device 1 is performed via various communication networks such as the Internet, for example.
  • Communication with the electronic device 3 is performed by a communication method such as I2C (Inter-Integrated Circuit), for example.
  • the electronic device 3 is, for example, an image sensor installed in a camera device as the host device 2, and is a device that actually uses target data D that has not been tampered with for processing.
  • the electronic device 3 includes an arithmetic processing unit 30, a storage unit 31, and a communication unit 32.
  • the arithmetic processing unit 30 includes a first authentication determination function FC1, a random number generation function FC2, a common key generation function FC3, a code data generation function FC4, a non-falsification determination function FC5, a second authentication determination function FC6, and processing It has a selection function FC7, an update determination function FC8, a storage processing function FC9, and a communication processing function FC10.
  • the first authenticity determination function FC1 uses the target data D, the public key Kpb, and the digital signature DS to perform the first authentication for proving that the target data D has not been tampered with. For example, in the case of the RSA method, hash data obtained from the digital signature DS through decryption processing using the public key Kpb is compared with hash data obtained by hashing the target data D in the first authenticity determination.
  • the target data D is "true” and that the target data D has not been tampered with.
  • the two hash data do not match it is determined that the target data D is "not true” and that the target data D has been tampered with.
  • the target data D used in the first authenticity determination is acquired from another device (for example, the server device 1 or the host device 2) each time the electronic device 3 is activated. Accordingly, the electronic device 3 does not have to include a storage unit for storing the target data D. FIG. Further, even if the electronic device 3 is hacked, it is possible to operate the electronic device 3 using the target data D newly acquired each time.
  • the random number generation function FC2 generates random numbers for generating the common key Kcm by the common key method.
  • the random numbers generated by the random number generation function FC2 are preferably true random numbers.
  • a numerical value other than a genuine random number may be generated by a method that cannot be guessed from the outside of the electronic device 3 and used to generate the common key Kcm. Examples of such techniques include PUF (Physically Unclonable Function).
  • the common key generation function FC3 generates a common key Kcm using the random number generated by the random number generation function FC2.
  • the generated common key Kcm is stored in the storage unit 31 .
  • the common key Kcm generated by the common key generation function FC3 may be unique to the electronic device 3. FIG. By making the common key Kcm unique to the electronic device 3, it is possible to minimize the range of influence when the common key Kcm is leaked.
  • the code data generation function FC4 generates code data CD using the target data D determined to be "true” by the first authenticity determination function FC1 and the common key Kcm generated by the common key generation function FC3. .
  • the generated code data CD is transmitted to the host device 2 . Note that the code data CD is not stored in the storage section 31 of the electronic device 3 .
  • the code data CD is, for example, MAC (Message Authentication Code).
  • MAC Message Authentication Code
  • the arithmetic processing unit 30 has a non-falsification determination function FC5.
  • the non-falsification determination function FC5 performs processing for determining that the program related to the first authenticity determination process and the program related to the process of generating the code data CD have not been tampered with. For example, it is possible to verify that the program has not been tampered with by using a secure boot function or the like.
  • a program for executing the first authenticity determination process and a program for executing the process of generating the common key Kcm may be stored in the storage unit 31 generally called a mask ROM.
  • the first authenticity determination process and the process of generating the code data CD can be performed inseparably.
  • the second authenticity determination function FC6 is a function that may be used, for example, when the electronic device 3 is activated for the second time or later. For example, when the electronic device 3 is activated for the first time, the code data CD for the target data D is generated, and is used when the target data D is used when the electronic device 3 is activated for the second time.
  • the second authentication judgment with a shorter processing time than the first authentication judgment is executed.
  • the second authenticity determination function FC6 acquires the target data D and the code data CD from the host device 2, and acquires the code data CD generated again from the target data D using the common key Kcm and the code data CD from the host device 2. Compare the code data CD.
  • the target data D is "true” and that the target data D has not been tampered with.
  • the two code data CDs do not match, it is determined that the target data D is "not true” and that the target data D has been tampered with.
  • CMAC Cipher-based Message Authentication Code
  • the target data D used in the second authenticity determination is acquired from another device (for example, the server device 1 or the host device 2) each time the electronic device 3 is activated.
  • the process selection function FC7 performs a process of selecting either the first authenticity determination process or the second authenticity determination process to determine whether the target data D has been falsified. For example, if the current activation of the electronic device 3 is the first activation using the target data D, the first authenticity determination process is selected. On the other hand, if the current activation of the electronic device 3 is the second or subsequent activation using the target data D, the second authenticity determination process is selected.
  • the first authentication process is selected, and when the code data CD for the target data D has been generated, the second authentication process is selected. to select.
  • the process selection function FC7 determines that this activation is the first activation, and selects the first authenticity determination process.
  • the first activation using the target data D will be described as “initial activation”
  • the second activation using the target data D will be described as “non-initial activation”.
  • Activation when a patch file for update is available is referred to as “initial activation”.
  • the update determination function FC8 determines whether there is an update for the target data D, that is, whether there is a patch file to be applied to the target data D. This determination is made based on the presence or absence of notification by the update notification function FB1 of the host device 2 . Also, the determination result of the update determination process is used by the process selection function FC7.
  • the storage processing function FC9 performs processing for storing the public key Kpb received from the server device 1 in the storage unit 31, processing for storing the common key Kcm generated by the common key generation function FC3 in the storage unit 31, processing for storing the common key Kcm generated by the common key generation function FC3, and and temporarily stores the target data D and the code data CD received from the storage unit 31 .
  • the communication processing function FC10 performs processing for receiving the public key Kpb from the server device 1, processing for transmitting the code data CD to the host device 2, processing for receiving the target data D and the code data CD from the host device 2, and the like. .
  • the communication processing function FC10 receives the target data D from another device each time the electronic device 3 is activated.
  • the arithmetic processing unit 30 performs various processes other than those described above. For example, when there is a patch file to be applied to the target data D, a process of applying the patch file to the target data D to generate new target data D is one of them. Note that the process of applying the patch file to the target data D may be executed in the server device 1 or the host device 2 .
  • the storage unit 31 is configured with ROM, RAM, etc., and stores and reads out various data according to instructions from the storage processing function FC9.
  • the communication unit 32 performs communication between the electronic device 3 and the host device 2 according to instructions from the communication processing function FC10.
  • step S ⁇ b>1 a private key Kpr and a public key Kpb in the public key system are generated by the server device 1 , and the private key Kpr is stored in the storage unit 11 of the server device 1 .
  • step S ⁇ b>2 the server device 1 transmits the public key Kpb to the electronic device 3 and stores it in the storage unit 31 of the electronic device 3 .
  • step S3 the electronic device 3 generates a common key Kcm in the common key scheme and stores it in the storage unit 31.
  • step S1 to step S3 are performed, for example, in the manufacturing process of the image sensor as the electronic device 3.
  • the target data D and the digital signature DS are transmitted from the server device 1 to the host device 2, and when the target data D of the electronic device 3 is activated for the first time, the target data and the digital signature DS are transmitted to the host device.
  • the first authenticity determination may be performed by transmitting from 2 to the electronic device 3 .
  • the digital signature DS is stored in the storage unit 21 of the host device 2, as shown in FIG.
  • step S4 the server device 1 generates target data D such as program data that operates on the electronic device 3.
  • the generated target data D is transmitted to the host device 2, but the transmission timing does not have to be the timing of executing step S4.
  • step S5 the server device 1 generates a digital signature DS using the target data D and the private key Kpr.
  • step S6 the server device 1 transmits the target data D and the digital signature DS to the electronic device 3.
  • step S7 the electronic device 3 performs a first authenticity determination process (signature verification process) using the target data D, the digital signature DS, and the public key Kpb.
  • a first authenticity determination process signature verification process
  • the electronic device 3 can obtain the presence or absence of falsification of the target data D, that is, the result information of the first authenticity determination.
  • step S8 the electronic device 3 generates code data CD such as MAC using the target data D determined to be "true” by the first authenticity determination and the common key Kcm.
  • code data CD such as MAC
  • the example shown in FIG. 2 is an example in which at least the processing up to step S8 is completed in the manufacturing process of the electronic device 3 as an image sensor.
  • the generated code data CD is transmitted to the host device 2 in step S9.
  • the processing after step S9 may be executed after the electronic device 3 as an image sensor is mounted on the host device 2 as a camera device.
  • the initial start-up of the electronic device 3 is completed by each process from step S4 to step S9, and the electronic device 3 can use the target data D.
  • step S10 is a process related to non-initial activation.
  • step S ⁇ b>10 the host device 2 transmits target data D and code data CD to the electronic device 3 .
  • step S11 the electronic device 3 performs a second authenticity determination process (message authentication) using the target data D, code data CD, and common key Kcm.
  • a second authenticity determination process messages authentication
  • the electronic device 3 can obtain information on whether or not the target data D has been falsified, that is, result information of the second authenticity determination.
  • the non-initial activation of the electronic device 3 is completed by each process from step S10 to step S11, and the electronic device 3 can use the target data D.
  • FIG. 3 shows a flow chart showing the flow of processing executed by the electronic device 3 at startup to realize the flow of processing described above. It should be noted that the public key Kpb and the common key Kcm are stored in the storage unit 31 of the electronic device 3 at the time of executing the processing shown in FIG.
  • step S101 the arithmetic processing unit 30 of the electronic device 3 confirms whether or not there is an update notification. If there is no update notification, the arithmetic processing unit 30 determines in step S102 whether or not the target data D is activated for the first time.
  • step S101 If it is determined in step S101 that there is an update notification, or if it is determined in step S102 that the target data D is being activated for the first time, the arithmetic processing unit 30 executes each process for initial activation.
  • the arithmetic processing unit 30 performs secure boot processing in step S103. Thereby, it is possible to execute the non-tampering determination process for ensuring that the program related to the first authenticity determination process and the program related to the process of generating the code data CD have not been tampered with.
  • step S104 the arithmetic processing unit 30 transmits a transmission request for the target data D and the digital signature DS to the server device 1 or the host device 2.
  • the arithmetic processing unit 30 receives the target data D and the digital signature DS in step S105.
  • step S106 the arithmetic processing unit 30 performs a first authenticity determination process.
  • step S107 the arithmetic processing unit 30 performs branch processing according to the processing result of the first authenticity determination processing. Specifically, it is determined whether or not the target data D has been tampered with, and if it is determined that it has been tampered with, the arithmetic processing unit 30 performs a corresponding process in step S108.
  • the corresponding processing it notifies the user that it has been tampered with (performs an error notification), and suspends activation of the electronic device 3 or activation of the host device 2 on which the electronic device 3 is mounted.
  • the user may be allowed to select whether or not to continue the activation while knowing that the target data D has been tampered with, or the activation may be continued while presenting the user with an operation for interrupting the activation. good.
  • the arithmetic processing unit 30 prepares for non-first activation. That is, in step S109, the arithmetic processing unit 30 uses the common key Kcm and the target data D to generate the code data CD.
  • the arithmetic processing unit 30 transmits the generated code data CD to the host device 2 in step S110.
  • the arithmetic processing unit 30 starts using the target data D in step S111. Thereby, the arithmetic processing unit 30 can execute a program as the target data D, and the like.
  • step S102 When it is determined in step S102 that the target data D is not the first activation, the arithmetic processing unit 30 executes each process for non-first activation.
  • step S112 the arithmetic processing unit 30 transmits to the host device 2 a transmission request for the target data D and the code data CD.
  • the arithmetic processing unit 30 receives the target data D and the code data CD from the host device 2 in step S113.
  • step S114 the arithmetic processing unit 30 performs a second authenticity determination process.
  • step S115 the arithmetic processing unit 30 performs branch processing according to the result of the second authenticity determination processing. Specifically, it is determined whether or not the target data D has been tampered with. The arithmetic processing unit 30 proceeds to the process of step S111.
  • the arithmetic processing unit included in the electronic device 3 When the public key Kpb and the common key Kcm are stored in the storage unit 31 of the electronic device 3 by the 30 executing the program, the process procedure shown in FIG. 4 may be used.
  • the arithmetic processing unit 30 determines whether or not the public key Kpb has been stored in the storage unit 31 in step S201.
  • the arithmetic processing unit 30 does not execute the processing of steps S202 and S203.
  • the arithmetic processing unit 30 transmits a public key Kpb generation request and a transmission request to the server device 1 in step S202.
  • the request may be sent to the server device 1 via the host device 2 .
  • the arithmetic processing unit 30 receives the public key Kpb from the server device 1 and stores it in the storage unit 31 in step S203. The reception may be done via the host device 2 . It is desirable that the electronic device 3 receive the public key Kpb in a state in which secure communication with the server device 1 and the host device 2 is established. That is, it is desirable that the public key Kpb is transmitted and received in an environment in which falsification of transmitted and received data is not possible, or in an environment in which falsification is difficult.
  • step S204 the arithmetic processing unit 30 determines whether or not it has received an instruction to generate the common key Kcm.
  • the generation instruction may be given by the server device 1 as described above, or may be given by the host device 2 .
  • the arithmetic processing unit 30 When determining that the generation instruction has been received, the arithmetic processing unit 30 generates a random number in step S205, generates a common key Kcm using the generated random number, and stores it in the storage unit 31 in step S206.
  • the arithmetic processing unit 30 terminates the series of processes shown in FIG.
  • the arithmetic processing unit 30 of the electronic device 3 determines that there is an update notification in step S101, or if it determines that the target data D is the first activation in step S102, the arithmetic processing unit 30 performs each Execute the process.
  • the arithmetic processing unit 30 prepares the target data D and the digital signature DS by executing steps S103 to S106.
  • step S107 the arithmetic processing unit 30 performs branch processing according to the processing result of the first authenticity determination processing.
  • the arithmetic processing unit 30 If it is determined that the target data D has not been falsified, the arithmetic processing unit 30 generates a common key Kcm in step S131 before executing the process of step S109. As a result, since the common key Kcm is not generated until immediately before the code data CD that requires the common key Kcm is generated, the risk of leakage of the common key Kcm can be further reduced.
  • a second modification is an example in which the code data CD is stored in the storage unit 31 of the electronic device 3 .
  • a specific processing procedure will be described with reference to FIG. Note that the same step numbers are assigned to the same processes as those shown in FIG. 3, and the description thereof is omitted as appropriate.
  • the arithmetic processing unit 30 of the electronic device 3 executes each process from step S103 onward as a process for initial activation according to the branching process of steps S101 and S102.
  • step S107 the arithmetic processing unit 30 performs branch processing according to the processing result of the first authenticity determination processing.
  • the arithmetic processing unit 30 uses the common key Kcm and the target data D to generate code data CD in step S109.
  • the arithmetic processing unit 30 stores the code data CD in the storage unit 31 in step S141.
  • the arithmetic processing unit 30 of the electronic device 3 executes each process after step S143 as a process for non-initial activation according to the branching process of steps S101 and S102. Specifically, the arithmetic processing unit 30 transmits a transmission request for the target data D to the host device 2 in step S143.
  • the arithmetic processing unit 30 receives the target data D in step S144. Furthermore, the arithmetic processing unit 30 acquires the code data CD from the storage unit 31 in step S145.
  • the arithmetic processing unit 30 uses these target data D, code data CD, and common key Kcm to perform the second authenticity determination process in step S114.
  • the target data D is acquired from another device each time the electronic device 3 is activated, and the code data CD is held inside the electronic device 3 .
  • the code data CD is held inside the electronic device 3 .
  • a third modification is an example in which both the code data CD and the target data D are stored in the storage unit 31 of the electronic device 3 .
  • a specific processing procedure will be described with reference to FIG. Note that the same step numbers are given to the same processes as those shown in FIG. 6, and the description thereof will be omitted as appropriate.
  • the arithmetic processing unit 30 of the electronic device 3 executes each process from step S103 onward as a process for initial activation according to the branching process of steps S101 and S102.
  • step S107 after executing each process from step S103 to step S106, the arithmetic processing unit 30 performs branching processing according to the processing result of the first authenticity determination processing.
  • the arithmetic processing unit 30 stores the target data D in the storage unit 31 in step S151. Note that the storage processing of the target data D can be executed at any timing after the reception processing in step S105.
  • the arithmetic processing unit 30 uses the common key Kcm and the target data D to generate code data CD in step S109.
  • the arithmetic processing unit 30 stores the code data CD in the storage unit 31 in step S141. As a result, both the target data D and the code data CD are stored in the storage unit 31 . In this example, the processing of transmitting the target data D and the code data CD to the host device 2 is not performed. A data CD may be transmitted to the host device 2 in advance.
  • the arithmetic processing unit 30 of the electronic device 3 executes each process of step S152 and step S114 as a process for non-initial activation according to the branching process of step S101 and step S102. Specifically, in step S152, the arithmetic processing unit 30 acquires the target data D and the code data CD from the storage unit 31. FIG.
  • the arithmetic processing unit 30 uses these target data D, code data CD, and common key Kcm to perform the second authenticity determination process in step S114.
  • the target data D and code data CD are held inside the electronic device 3 .
  • the electronic device 3 executes the process of generating the common key Kcm.
  • the common key Kcm may be generated by a device other than the electronic device 3, such as the server device 1 or the host device 2, and the generated common key Kcm may be transmitted to the electronic device 3 and stored in the storage unit 31.
  • the fourth modification as an example, an example in which the host device 2 generates the common key Kcm will be described.
  • the arithmetic processing unit 30 of the electronic device 3 stores the public key Kpb in the storage unit 31 by performing each process from step S201 to step S203.
  • the arithmetic processing unit 30 determines whether or not the common key Kcm is stored in the storage unit 31 in step S211.
  • the arithmetic processing unit 30 When determining that the common key Kcm is stored in the storage unit 31, the arithmetic processing unit 30 terminates the series of processes shown in FIG. As a result, various keys required for processing can be stored in the storage unit 31 .
  • the arithmetic processing unit 30 transmits a generation request and a transmission request for the common key Kcm to the host device 2 in step S212.
  • the arithmetic processing unit 20 of the host device 2 performs random number generation processing and common key Kcm generation processing, and transmits the generated common key Kcm to the electronic device 3 .
  • step S ⁇ b>213 the arithmetic processing unit 30 of the electronic device 3 receives the common key Kcm and performs processing to store the common key Kcm in the storage unit 31 .
  • the electronic device 3 does not need to have the random number generation function FC2 and the common key generation function FC3 shown in FIG. You can make your program smaller. Therefore, it is possible to reduce the cost and size of the electronic device 3 .
  • the process of transmitting the common key Kcm from the host device 2 to the electronic device 3 is desirably performed in an environment in which wiretapping of communications is not possible or in which wiretapping is difficult.
  • the private key Kpr in the public key scheme is stored in the storage unit 11 of the server device 1, and the public key Kpb in the public key scheme and the common key Kcm in the common key scheme are electronically stored. It is in a state of being stored in the storage unit 31 of the device 3 .
  • step S ⁇ b>20 the host device 2 generates target data D such as program data that operates on the electronic device 3 .
  • step S21 the host device 2 transmits the target data D to the server device 1 in order to obtain a digital signature DS for the target data D.
  • step S22 the server device 1 generates a digital signature DS using the received target data D and the stored private key Kpr.
  • the generated digital signature DS is sent to the host device 2 in step S23.
  • step S24 to step S27 is a process at the first startup of the electronic device 3.
  • step S24 the host device 2 transmits the target data D and the digital signature DS to the electronic device 3.
  • step S25 the electronic device 3 performs a first authenticity determination process (signature verification process) using the target data D, the digital signature DS, and the public key Kpb.
  • a first authenticity determination process signature verification process
  • the electronic device 3 can obtain the presence or absence of falsification of the target data D, that is, the result information of the first authenticity determination.
  • step S26 the electronic device 3 generates code data CD such as MAC using the target data D determined to be "true” by the first authenticity determination and the common key Kcm.
  • the generated code data CD is transmitted to the host device 2 in step S27.
  • step S28 is a process related to non-initial activation. It should be noted that each process of steps S28 and S29 is the same as each process of steps S10 and S11 in FIG. 2, and the description thereof will be omitted.
  • the application range of the present technology can be expanded.
  • the process of writing the public key Kpb into the storage unit 31 of the electronic device 3 may be performed by the host device 2 after the electronic device 3 is purchased.
  • the user who purchased the electronic device 3 can manage the private key Kpr at his or her own responsibility, thereby facilitating risk management.
  • leakage of various data can be prevented.
  • the public key Kpb generated in the host device 2 is transmitted to the server device 1, and the server device 1 that receives the public key Kpb performs processing for storing the public key Kpb in the storage unit 31 of the manufactured electronic device 3. you can go In that case, the electronic device 3 is delivered to the user with the public key Kpb stored in the storage unit 31 .
  • the common key Kcm stored in the electronic device 3 may be used without being changed as long as the target data D is the same, but it may be periodically regenerated even if the target data D is the same. . This can reduce the risk of leakage of the common key Kcm. Note that the same common key Kcm may be used for different target data D. FIG. For example, the electronic device 3 may be configured such that the common key Kcm cannot be rewritten.
  • the first authentication may be performed after one or more steps of processing for authenticating the public key Kpb corresponding to the private key Kpr.
  • the risk can be further reduced by using a so-called certificate chain mechanism.
  • a plurality of types of combinations of the private key Kpr and the public key Kpb may be generated, and the plurality of public keys Kpb may be stored in the storage unit 31 of one electronic device 3 .
  • the outflow risk can be reduced, and the period during which the operation of the electronic device 3 is stopped can be shortened.
  • the host device 2 may be a surveillance camera and the electronic device 3 may be an image sensor mounted on the surveillance camera.
  • the host device 2 may be an in-vehicle ECU (Electronic Control Unit), and the electronic device 3 may be an image sensor as an in-vehicle sensor or an out-of-vehicle sensor driven by the ECU.
  • ECU Electronic Control Unit
  • the electronic device 3 may be an image sensor as an in-vehicle sensor or an out-of-vehicle sensor driven by the ECU.
  • the electronic device 3 includes, for example, an RGB sensor that obtains an R (Red) image, a G (Green) image, and a B (Blue) image, a ToF (Time of Flight) sensor, a thermal sensor, a polarization sensor, a multi-wavelength ( multispectral) sensor, EVS (Event based Vision Sensor), IR (Infrared) sensor, SWIR (Short Wavelength infrared) sensor, humidity sensor, moisture sensor, and various other sensors.
  • the electronic device 3 includes a first authenticity determination processing unit (first authenticity determination function FC1) that performs a first authenticity determination on the target data D using a public key method, and a first authentication determination function FC1.
  • a coded data generation unit (coded data generation function FC4) that generates coded data CD by a common key method from the target data D determined to be true in , and performs a second authenticity determination on the target data D using the coded data CD and a second authenticity determination processing unit (second authenticity determination function FC6).
  • the processing time is shorter than that of the first authenticity determination process based on the public key method. Therefore, for the first authenticity determination, a highly accurate authentication result for the target data D is obtained by performing the first authenticity determination by the public key method with a low risk of leakage, and the correct code data CD for the regular target data D is obtained. can be obtained.
  • the correct code data CD is used to execute the second authenticity determination process according to the common key method, so that the processing time can be shortened, and the electronic device 3 can be activated at a high speed. It is possible to achieve That is, with this configuration, it is possible to achieve both suppression of the risk of leakage of the key and speeding up of authenticity determination.
  • processing selection unit that performs the second authenticity determination without performing the first authenticity determination later may be provided.
  • the authenticity determination is performed to confirm that the target data D has not been tampered with each time the electronic device 3 is activated
  • the first authenticity determination process with a relatively large amount of calculation is performed at the second and subsequent activations. You don't have to. Therefore, it is possible to speed up the startup of the electronic device 3 .
  • the electronic device 3 includes a storage processing unit (storage processing function FC9) that stores in the storage unit 31 the common key Kcm used to generate the code data CD by the common key method.
  • a storage processing unit storage processing function FC9 that stores in the storage unit 31 the common key Kcm used to generate the code data CD by the common key method.
  • the communication processing unit (communication A processing function FC10) may be provided.
  • the electronic device 3 does not have to have the function of generating the common key Kcm by generating the common key Kcm used to generate the code data CD in another device. Therefore, the capacity of the program stored in the electronic device 3 can be reduced, and the memory size can be reduced.
  • the electronic device 3 may include a key generation unit (common key generation function FC3) that generates the common key Kcm.
  • a key generation unit common key generation function FC3 that generates the common key Kcm.
  • FC3 common key generation function
  • the key generation unit (common key generation function FC3) of the electronic device 3 first performs the first authenticity determination on the target data D, and then generates the common key Generation of Kcm may be performed.
  • the common key Kcm is not generated until the code data CD that requires the common key Kcm is generated, the risk of leakage of the common key Kcm can be further reduced.
  • the common key Kcm may be unique to the electronic device 3 .
  • the server device 1 or the host device 2 holds as many common keys Kcm as there are electronic devices 3. required and management costs are high.
  • the common key Kcm exists only in the electronic device 3, there is no management cost for the common key Kcm in the server device 1 or the host device 2.
  • the common key Kcm is unique to each electronic device 3, it is possible to minimize the range of influence when the common key Kcm is leaked, and to reduce the cost of risk management.
  • the code data CD used for the second authentication is stored in the storage unit 31 of the electronic device 3, every time the second authentication is performed, the code data CD is sent from another device (for example, the server device 1 or the host device 2). You don't have to get it. Therefore, it is possible to reduce the processing load associated with communication processing.
  • the target data D is, for example, various programs used for processing by the electronic device 3, and specifically includes not only the software itself, but also patch files applied to the software, AI models used for AI processing, and the like.
  • the target data D may be stored in advance in the manufacturing process of the electronic device 3 . It is conceivable that the target data D has a larger capacity than the code data CD.
  • the electronic device 3 includes a communication processing unit (communication processing function FC10) that receives the target data D from the host device 2 each time the electronic device 3 is activated. good too.
  • a communication processing unit communication processing function FC10
  • FC10 communication processing function
  • the communication processing unit (communication processing function FC10) of the electronic device 3 may receive the code data CD from the host device 2 each time the electronic device 3 is activated.
  • the communication processing unit (communication processing function FC10) of the electronic device 3 may receive the code data CD from the host device 2 each time the electronic device 3 is activated.
  • the electronic device 3 may be configured to inseparably execute the processing of the first authenticity determination and the processing of generating the code data CD. It is possible to guarantee that the code data CD is continuously generated by using the target data D that has been proved not to have been falsified by the first authenticity determination process. Therefore, it is possible to eliminate the possibility that the target data D is tampered with after the processing of the first authenticity determination and before the code data CD is generated, and the tampering risk can be reduced.
  • a mask ROM is used to store a program related to the first authenticity determination process and a program related to the process of generating the code data CD.
  • a storage unit 31 may be provided.
  • the non-tampering determination process is executed for the program related to the first authenticity determination process and the program related to the process of generating the code data CD.
  • a non-falsification determination processing unit non-falsification determination function FC5
  • the electronic device 3 includes an update determination processing unit (update determination function FC8) that determines whether or not the target data D has been updated.
  • the authenticity determination processing unit (first authenticity determination function FC1) performs the first authenticity determination on new target data D after update
  • the code data generation unit (code data generation function FC4) performs may be used to generate the code data CD.
  • the update determination process may be executed by the server device 1 or the host device 2 .
  • the electronic device 3 may perform update processing based on the update instruction and the new target data D received from the server device 1 or the host device 2 .
  • a first authenticity determination process (first authenticity determination function FC1) is performed on target data D by a public key method, and a common key method is performed from target data D determined to be true in the first authenticity determination process.
  • a second authentication process (second authentication function FC6 ) are executed by the computer device.
  • the program of the embodiment performs a first authenticity determination process (first authenticity determination function FC1) by a public key method for target data D, and a code by a common key method from the target data D determined to be true in the first authentication process.
  • a code data generation process (code data generation function FC4) for generating data CD
  • a second authenticity determination process (second authenticity determination function FC6) for performing a second authenticity determination on the target data D using the code data CD. is executed by an arithmetic processing unit such as a CPU.
  • the arithmetic processing unit 30 of the electronic device 3 described above can be realized by an arithmetic processing device such as a microcomputer.
  • programs can be recorded in advance in a HDD as a recording medium built in equipment such as a computer device, or in a ROM or the like in a microcomputer having a CPU.
  • the program may be a flexible disc, CD-ROM (Compact Disc Read Only Memory), MO (Magneto Optical) disc, DVD (Digital Versatile Disc), Blu-ray Disc (registered trademark), magnetic disc, semiconductor It can be temporarily or permanently stored (recorded) in a removable recording medium such as a memory or memory card.
  • Such removable recording media can be provided as so-called package software.
  • it can also be downloaded from a download site via a network such as a LAN (Local Area Network) or the Internet.
  • LAN Local Area Network
  • This technology> (1) a first authenticity determination processing unit that performs a first authenticity determination using a public key method for target data; a coded data generation unit that generates coded data according to a common key method from the target data determined to be true in the first authenticity determination; An electronic device comprising: a second authenticity determination processing unit that performs a second authenticity determination on the target data using the code data.
  • the first authentication is performed, and after generating the code data for the target data, the second authentication is performed without performing the first authentication.
  • the electronic device further comprising: a processing selection unit that performs (3) The electronic device according to any one of (1) to (2) above, further comprising a storage processing unit that stores a common key used for generating the code data by the common key method in a storage unit.
  • the electronic device according to (3) above including a communication processing unit that receives the common key from another device.
  • the electronic device according to (3) above including a key generation unit that generates the common key.
  • the common key is unique to the electronic device.
  • the electronic device further comprising a storage unit configured as a mask ROM in which a program related to the first authenticity determination process and a program related to the process of generating the code data are stored.
  • the electronic device further comprising a non-tampering determination processing unit that performs non-tampering determination processing for the program related to the process of first authenticity determination and the program related to the process of generating the code data.
  • An update determination processing unit that determines whether the target data has been updated, If there is said update, The first authenticity determination processing unit performs the first authenticity determination on new target data after updating, The electronic device according to any one of (1) to (14) above, wherein the code data generation unit generates the code data for the new target data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Abstract

電子機器は、対象データについて公開鍵方式による第1真贋判定を行う第1真贋判定処理部と、前記第1真贋判定において真と判定された前記対象データから共通鍵方式による符号データを生成する符号データ生成部と、前記符号データを用いて前記対象データについての第2真贋判定を行う第2真贋判定処理部と、を備える。

Description

電子機器、情報処理方法
 本技術は電子機器、情報処理方法に関し、特にデータが改竄されていないことを示す処理を行う電子機器及び情報処理方法についての技術に関する。
 電子機器が扱う情報について改竄されていないことを検証する方法は幾つかある。
 例えば、秘密鍵と公開鍵を用いて対象のデータが改竄されていないことを検証する「公開鍵方式」(下記非特許文献1、2参照)や、共通鍵を用いて対象のデータが改竄されていないことを検証する「共通鍵方式」(下記非特許文献3参照)などが知られている。
L. Chen, D. Moody, A. Regenscheid, K. Randall, Recommendations for Discrete Logarithm-Based Cryptography: Elliptic Curve Domain Parameters, Draft NIST Special Publication 800-186, October 2019.インターネット<URL:https://csrc.nist.gov/publications/detail/sp/800-186/draft> RSA Cryptography Specifications Version 2.2インターネット<URL:https://datatracker.ietf.org/doc/html/rfc8017> Recommendation for Block Cipher Modes of Operationインターネット<URL:https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf>
 公開鍵方式は、共通鍵方式に対して演算量が多く処理時間が長いという課題がある。
 また、共通鍵方式は公開鍵方式に対してリスクコストが高いという課題がある。
 本技術は、上記課題の解決を図るものであり、改竄の有無を判定する処理についての演算量を抑えつつリスクコストを低減させることを目的とする。
 本技術に係る電子機器は、対象データについて公開鍵方式による第1真贋判定を行う第1真贋判定処理部と、前記第1真贋判定において真と判定された前記対象データから共通鍵方式による符号データを生成する符号データ生成部と、前記符号データを用いて前記対象データについての第2真贋判定を行う第2真贋判定処理部と、を備えたものである。
 第1真贋判定処理によって「真である」と判定された対象データを用いて共通鍵方式による符号データ(MAC:Message Authentication Code)を生成することで、対象データの真贋を判定するための第2真贋判定処理に当該符号データを用いることができる。第2真贋判定処理は、共通鍵方式による処理であるため、公開鍵方式による第1真贋判定処理よりも処理時間が短い。
 本技術の情報処理方法は、対象データについて公開鍵方式による第1真贋判定処理と、前記第1真贋判定処理において真と判定された前記対象データから共通鍵方式による符号データを生成する符号データ生成処理と、前記符号データを用いて前記対象データについての第2真贋判定を行う第2真贋判定処理と、をコンピュータ装置が実行するものである。
 このような情報処理方法により上記の電子機器を実現することができる。
情報処理システムの構成を説明するためのブロック図である。 各機器が実行する手順の概要を説明するための図である。 電子機器が真贋判定を行うための処理の流れの一例を示すフローチャートである。 公開鍵と共通鍵を電子機器に記憶させる場合に電子機器が実行する処理の流れの一例を示すフローチャートである。 第1の変形例に係る電子機器が実行する処理の流れの一例を示すフローチャートである。 第2の変形例に係る電子機器が実行する処理の流れの一例を示すフローチャートである。 第3の変形例に係る電子機器が実行する処理の流れの一例を示すフローチャートである。 第4の変形例に係る電子機器が実行する処理の流れの一例を示すフローチャートである。 第5の変形例において各機器が実行する手順の概要を説明するための図である。
 以下、実施の形態を次の順序で説明する。
<1.システム構成>
<2.各装置における処理手順>
<3.変形例>
<3-1.第1の変形例>
<3-2.第2の変形例>
<3-3.第3の変形例>
<3-4.第4の変形例>
<3-5.第5の変形例>
<3-6.その他の変形例>
<4.まとめ>
<5.本技術>
<1.システム構成>
 対象データの真贋判定を行うためには、各種の鍵やデジタル署名等を生成する処理や、それらのデータを記憶する処理などが必要となる。そして、真贋判定を行うための構成については各種の態様が考えられる。
 ここでは先ず、情報処理システムSにおける一つの実施の形態において説明する。
 情報処理システムSは、図1に示すように、サーバ装置1とホスト機器2と電子機器3とを備えている。
 以下に示す例において、サーバ装置1は、例えば、イメージセンサの製造装置とされている。また、ホスト機器2は、例えば、イメージセンサが搭載されるカメラ機器とされている。更に、電子機器3は、サーバ装置1によって製造されたイメージセンサとされている。
 サーバ装置1は、各種の鍵の生成や真贋判定の対象となるデータ(以降「対象データD」と記載)の生成を行い、他の機器に対して必要なデータを送信する処理を行う装置である。
 サーバ装置1は、演算処理部10と、記憶部11と、通信部12と、を備えている。
 演算処理部10は、鍵生成機能FA1と、対象データ生成機能FA2と、署名生成機能FA3と、記憶処理機能FA4と、指示機能FA5と、通信処理機能FA6とを有している。
 鍵生成機能FA1は、公開鍵方式において利用される秘密鍵Kprと、該秘密鍵Kprと対となる公開鍵Kpbと、を生成する。生成された秘密鍵Kprは記憶部11に記憶される。また、生成された公開鍵Kpbは、電子機器3へと送信される。
 対象データ生成機能FA2は、改竄されていないことの証明の対象となるデータ、即ち、真贋判定処理の対象となるデータである対象データDの生成を行う。生成された対象データDは、先ずホスト機器2へと送信される。
 対象データDは各種考えられる。例えば、対象データDは、イメージセンサとしての電子機器3内で動作するプログラムの少なくとも一部を含んだデータとされていてもよいし、プログラムで利用される変数などのデータとされていてもよいし、プログラムをアップデートするためのパッチファイルとされていてもよい。また、対象データDは、AI(Artificial Intelligence)を利用したプログラムなどのデータであってもよいし、該プログラムによって利用されるAIモデルなどであってもよい。
 署名生成機能FA3は、対象データDと秘密鍵Kprを用いて公開鍵方式におけるデジタル署名DSの生成を行う。生成されたデジタル署名DSは、ホスト機器2へ送信される。
 デジタル署名DSの生成は、例えばRSA(Rivest-Shamir-Adleman Cryptosystem)方式であれば、対象データDをハッシュ化して得られたハッシュデータに対して、秘密鍵Kprを用いた暗号化を施すことにより行われる。
 記憶処理機能FA4は、鍵生成機能FA1によって生成された秘密鍵Kprを記憶部11に記憶する処理や、ホスト機器2などに配信する対象データDを記憶部11に記憶する処理や、各処理における一時データを記憶部11に記憶する処理及びそれらを読み出す処理を実行する。
 指示機能FA5は、共通鍵方式において利用される共通鍵Kcmの生成指示を電子機器3に対して送信する。これに応じて電子機器3は共通鍵Kcmの生成を行う。なお、電子機器3がホスト機器2に搭載された後においては、該指示をホスト機器2に対して送信してもよい。
 また、指示機能FA5は、電子機器3で用いられる各種のソフトウェアなどのアップデート指示をホスト機器2に対して行う。
 通信処理機能FA6は、鍵生成機能FA1によって生成された公開鍵Kpbを電子機器3に送信する処理や、対象データ生成機能FA2によって生成された対象データDをホスト機器2に送信する処理や、署名生成機能FA3によって生成されたデジタル署名DSをホスト機器2に送信する処理や、指示機能FA5による指示をホスト機器2や電子機器3に送信する処理などを行う。
 記憶部11は、ROM(Read Only Memory)やRAM(Random Access Memory)等を有して構成されており、記憶処理機能FA4の指示に応じて各種のデータの記憶や読み出しを行う。
 通信部12は、通信処理機能FA6の指示に応じて、サーバ装置1とホスト機器2或いはサーバ装置1と電子機器3の間で各種の通信を行う。
 ホスト機器2は、演算処理部20と、記憶部21と、通信部22とを備えている。
 演算処理部20は、アップデート通知機能FB1と、記憶処理機能FB2と、通信処理機能FB3とを有している。
アップデート通知機能FB1は、サーバ装置1から受信したアップデート指示に応じて電子機器3にアップデートがある旨を通知する処理を行う。
 記憶処理機能FB2は、サーバ装置1から受信した対象データDやデジタル署名DSを記憶部21に記憶する処理を行う。
 通信処理機能FB3は、サーバ装置1から対象データDやデジタル署名DSを受信する処理や、サーバ装置1からアップデート指示を受信する処理や、電子機器3に対して対象データDやデジタル署名DSを送信する処理や、電子機器3に対して後述する符号データCDを送信する処理を行う。
 記憶部21は、ROMやRAM等を有して構成されており、記憶処理機能FB2の指示に応じて各種のデータの記憶や読み出しを行う。
 通信部22は、通信処理機能FB3の指示に応じて、ホスト機器2とサーバ装置1或いはホスト機器2と電子機器3の間で各種の通信を行う。サーバ装置1との通信は、例えば、インターネットなど各種の通信ネットワークを介して行う。また、電子機器3との通信は、例えば、I2C(Inter-Integrated Circuit)などの通信方式によってなされる。
 電子機器3は、上述したように、例えばホスト機器2としてのカメラ装置に搭載されたイメージセンサなどとされ、改竄されていない対象データDを実際に用いて処理を行う機器である。
 電子機器3は、演算処理部30と、記憶部31と、通信部32とを備えている。
 演算処理部30は、第1真贋判定機能FC1と、乱数生成機能FC2と、共通鍵生成機能FC3と、符号データ生成機能FC4と、非改竄判定機能FC5と、第2真贋判定機能FC6と、処理選択機能FC7と、アップデート判定機能FC8と、記憶処理機能FC9と、通信処理機能FC10とを有している。
 第1真贋判定機能FC1は、対象データDと公開鍵Kpbとデジタル署名DSを用いて対象データDが改竄されていないことを証明するための第1真贋判定を行う。例えばRSA方式であれば、該第1真贋判定においては公開鍵Kpbを用いた復号処理によってデジタル署名DSから得たハッシュデータと、対象データDをハッシュ化して得られるハッシュデータとを比較する。
 二つのハッシュデータが一致している場合には、対象データDが「真である」と判定し、対象データDが改竄されていないと判定する。
 一方、二つのハッシュデータが一致していない場合には、対象データDが「真でない」と判定し、対象データDが改竄されていると判定する。
 なお、第1真贋判定機能FC1が用いる暗号技術としては、例えば、楕円曲線暗号(ECC:Elliptic Curve Cryptography)やRSAなど、各種考えられる。
 なお、第1真贋判定において用いられる対象データDは、電子機器3の起動ごとに他の装置(例えば、サーバ装置1やホスト機器2)から取得する。これにより、対象データDを記憶するための記憶部を電子機器3が備えていなくてもよい。また、電子機器3がハッキングにあったとしても、都度新たに取得した対象データDを用いて電子機器3を動作させることが可能となる。
 乱数生成機能FC2は、共通鍵方式による共通鍵Kcmを生成するための乱数を生成する。乱数生成機能FC2が生成する乱数は真正乱数であることが望ましい。
 なお、電子機器3の外部から推測できない手法で真正乱数以外の数値を生成して共通鍵Kcmの生成に用いてもよい。そのような手法として、例えば、PUF(Physically Unclonable Function)などを挙げることができる。
 共通鍵生成機能FC3は、乱数生成機能FC2が生成した乱数を用いて共通鍵Kcmを生成する。生成された共通鍵Kcmは、記憶部31に記憶される。
 なお、共通鍵生成機能FC3によって生成された共通鍵Kcmは、電子機器3固有のものとされてもよい。共通鍵Kcmが電子機器3固有のものとされることにより、共通鍵Kcmが流出した際の影響範囲を最小限に止めることが可能となる。
 符号データ生成機能FC4は、第1真贋判定機能FC1によって「真である」と判定された対象データDと共通鍵生成機能FC3によって生成された共通鍵Kcmとを用いて、符号データCDを生成する。生成された符号データCDはホスト機器2に送信される。なお、符号データCDは電子機器3の記憶部31に記憶されない。
 符号データCDは、例えば、MAC(Message Authentication Code)などとされる。
 ここで符号データCDを生成する処理は、第1真贋判定機能FC1による第1真贋判定処理と不可分に実行されるのが望ましい。
 例えば、第1真贋判定の処理の後に符号データ生成の処理以外のプログラムが実行可能となるようにプログラムが改竄されてしまうと、第1真贋判定機能FC1によって第1真贋判定を実行する意味が無くなってしまうためである。
 第1真贋判定処理と符号データCDを生成する処理が不可分に実行されるための構成の一例として、演算処理部30は、非改竄判定機能FC5を有している。
 非改竄判定機能FC5は、第1真贋判定の処理に係るプログラムと、符号データCDを生成する処理に係るプログラムと、が改竄されていないことを判定するための処理を行う。例えば、セキュアブート機能などを利用することによりプログラムが改竄されていないことを検証することが可能である。
 なお、電子機器3の演算処理部30が非改竄判定機能FC5を有していなくても、プログラムを記憶部31に記憶する際の記憶態様によってプログラムの非改竄性を担保することが可能である。
 例えば、第1真贋判定の処理を実行するためのプログラムと共通鍵Kcmを生成する処理を実行するためのプログラムとが、一般にマスクROMと呼ばれる記憶部31に記憶されていてもよい。
 これらの手法により、第1真贋判定処理と符号データCDを生成する処理とを不可分に実行することができる。
 第2真贋判定機能FC6は、例えば、電子機器3の2回目以降の起動の際に利用される可能性のある機能である。
 例えば、電子機器3の1回目の起動において、対象データDについての符号データCDが生成されており、電子機器3の2回目の起動においても対象データDを利用する場合に利用される。
 電子機器3についての当該2回目の起動においては、第1真贋判定よりも処理時間の短い第2真贋判定が実行される。
 具体的に、第2真贋判定機能FC6は、ホスト機器2から対象データDと符号データCDを取得し、対象データDから共通鍵Kcmを用いて再度生成した符号データCDとホスト機器2から取得した符号データCDを比較する。
 二つの符号データCDが一致している場合には、対象データDが「真である」と判定し、対象データDが改竄されていないと判定する。
 一方、二つの符号データCDが一致していない場合には、対象データDが「真でない」と判定し、対象データDが改竄されていると判定する。
 なお、第2真贋判定機能FC6が用いる暗号技術としては、CMAC(Cipher-based Message Authentication Code)など各種考えられる。
 なお、第2真贋判定において用いられる対象データDは、電子機器3の起動ごとに他の装置(例えば、サーバ装置1やホスト機器2)から取得する。
 処理選択機能FC7は、対象データDが改竄されていないことを判定するために第1真贋判定と第2真贋判定の何れの処理を行うかを選択する処理を行う。
 例えば、電子機器3の今回の起動が対象データDを利用する最初の起動である場合は、第1真贋判定の処理を選択する。一方、電子機器3の今回の起動が対象データDを利用する2回目以降の起動である場合は、第2真贋判定の処理を選択する。
 換言すれば、対象データDについての符号データCDが未生成の場合には第1真贋判定の処理を選択し、対象データDについての符号データCDが生成済みの場合には第2真贋判定の処理を選択する。
 なお、電子機器3の今回の起動が対象データDを利用する2回目以降の起動であっても対象データDをアップデートするためのパッチファイルが存在する場合には、パッチファイルを適用した対象データDの利用は初めてとなるため、処理選択機能FC7は、今回の起動が最初の起動であると判定して第1真贋判定の処理を選択する。
 以降の説明においては、対象データDを利用する最初の起動を「初回起動」と記載し、対象データDを利用する2回目の起動を「非初回起動」と記載する。そして、アップデート用のパッチファイルが利用可能である場合の起動については「初回起動」とされる。
 アップデート判定機能FC8は、対象データDについてのアップデートの有無、即ち、対象データDに適用すべきパッチファイルの有無を判定する。該判定は、ホスト機器2のアップデート通知機能FB1による通知の有無に基づいて行われる。また、アップデート判定処理の判定結果は、処理選択機能FC7によって利用される。
 記憶処理機能FC9は、サーバ装置1から受信した公開鍵Kpbを記憶部31に記憶する処理や、共通鍵生成機能FC3によって生成された共通鍵Kcmを記憶部31に記憶する処理や、ホスト機器2から受信した対象データDや符号データCDを一時的に記憶部31に記憶する処理などを行う。
 通信処理機能FC10は、サーバ装置1から公開鍵Kpbを受信する処理や、ホスト機器2に符号データCDを送信する処理や、ホスト機器2から対象データDと符号データCDを受信する処理などを行う。なお、本実施の形態において、通信処理機能FC10は、電子機器3の起動ごとに対象データDを他の機器から受信する。
 演算処理部30は、上述した以外にも各種の処理を行う。例えば、対象データDに適用するパッチファイルがある場合には、対象データDにパッチファイルを適用して新たな対象データDを生成する処理などもその一つである。なお、対象データDにパッチファイルを適用する処理がサーバ装置1やホスト機器2において実行されてもよい。
 記憶部31は、ROMやRAM等を有して構成されており、記憶処理機能FC9の指示に応じて各種のデータの記憶や読み出しを行う。
 通信部32は、通信処理機能FC10の指示に応じて、電子機器3とホスト機器2の通信を行う。
<2.各装置における処理手順>
 サーバ装置1、ホスト機器2及び電子機器3が実行する上述した各処理の手順について図2を参照して説明する。
 先ず、ステップS1において、公開鍵方式における秘密鍵Kprと公開鍵Kpbがサーバ装置1で生成され、秘密鍵Kprはサーバ装置1の記憶部11に記憶される。
 また、ステップS2において、サーバ装置1は電子機器3に公開鍵Kpbを送信して電子機器3の記憶部31に記憶させる。
 ステップS3において、電子機器3は共通鍵方式における共通鍵Kcmを生成し記憶部31に記憶する。
 なお、ステップS1からステップS3の各処理は、例えば、電子機器3としてのイメージセンサの製造工程において行われる。
 なお、上述のように、サーバ装置1からホスト機器2に対して対象データDとデジタル署名DSを送信し、電子機器3の対象データDについての初回起動時に、対象データとデジタル署名DSをホスト機器2から電子機器3へ送信することにより、第1真贋判定を行ってもよい。この場合には、図1に示すように、デジタル署名DSがホスト機器2の記憶部21に記憶される。
 それ以外の方法としては、イメージセンサとしての電子機器3の製造工程において初回起動まで済ませてしまうことが考えられる。この場合には、デジタル署名DSをホスト機器2の記憶部21に記憶させる必要はない。図2に示す例は、製造工程において初回起動まで済ませてしまう例を示したものである。
 具体的に、ステップS4において、サーバ装置1は電子機器3で動作するプログラムデータなどの対象データDを生成する。生成した対象データDはホスト機器2に送信するが、送信タイミングはステップS4を実行するタイミングでなくてもよい。
 ステップS5において、サーバ装置1は対象データDと秘密鍵Kprとを用いてデジタル署名DSを生成する。
 ステップS6において、サーバ装置1は、電子機器3に対して対象データDとデジタル署名DSを送信する。
 ステップS7において、電子機器3は、対象データDとデジタル署名DSと公開鍵Kpbを用いた第1真贋判定処理(署名検証処理)を行う。その結果、電子機器3は、対象データDの改竄の有無、即ち、第1真贋判定の結果情報を得ることができる。
 ステップS8において、電子機器3は、第1真贋判定によって「真である」と判定された対象データDと共通鍵Kcmを用いてMACなどの符号データCDを生成する。
 なお、上述したように、図2に示す例は少なくともステップS8の処理まではイメージセンサとしての電子機器3の製造工程において済ませてしまう例である。
 生成された符号データCDは、ステップS9においてホスト機器2に送信される。ステップS9以降の処理は、イメージセンサとしての電子機器3がカメラ装置としてのホスト機器2に搭載された後に実行されてもよい。
 ステップS4からステップS9の各処理により電子機器3の初回起動が完了し、電子機器3は対象データDの利用が可能となる。
 ステップS10以降の各処理は、非初回起動に係る処理である。
 ステップS10において、ホスト機器2は電子機器3に対して対象データDと符号データCDを送信する。
 ステップS11において、電子機器3は、対象データDと符号データCDと共通鍵Kcmを用いた第2真贋判定処理(メッセージ認証)を行う。その結果、電子機器3は、対象データDの改竄の有無、即ち第2真贋判定の結果情報を得ることができる。
 ステップS10からステップS11の各処理により電子機器3の非初回起動が完了し、電子機器3は対象データDの利用が可能となる。
 上述した処理の流れを実現するための電子機器3が起動時に実行する処理の流れを示したフローチャートを図3に示す。なお、図3に示す処理を実行する時点においては、電子機器3の記憶部31に公開鍵Kpbと共通鍵Kcmが記憶された状態とする。
 電子機器3の演算処理部30は、ステップS101において、アップデート通知の有無を確認する。アップデート通知が無い場合には、演算処理部30はステップS102において、対象データDについて初回起動であるか否かを判定する。
 ステップS101でアップデート通知があると判定した場合、或いは、ステップS102において対象データDについて初回起動であると判定した場合、演算処理部30は初回起動用の各処理を実行する。
 具体的に、演算処理部30はステップS103において、セキュアブート処理を行う。これにより、第1真贋判定の処理に係るプログラムと符号データCDを生成する処理に係るプログラムとが改竄されていないことを保証するための非改竄判定処理を実行することが可能となる。
 演算処理部30はステップS104において、対象データDとデジタル署名DSの送信要求をサーバ装置1或いはホスト機器2に送信する。
 演算処理部30はステップS105において、対象データDとデジタル署名DSを受信する。
 演算処理部30はステップS106において、第1真贋判定処理を行う。
 演算処理部30はステップS107において、第1真贋判定処理の処理結果に応じた分岐処理を行う。具体的には、対象データDが改竄されているか否かを判定し、改竄されていると判定した場合、演算処理部30はステップS108において、対応処理を行う。
 対応処理の例は各種考えられる。例えば、改竄されていることをユーザに通知する(エラー通知を行う)と共に電子機器3の起動、或いは、電子機器3が搭載されたホスト機器2の起動を中断する。
 或いは、対象データDが改竄されていることを承知で起動を継続するか否かをユーザに選択させてもよいし、起動を中断するための操作をユーザに提示しつつ起動を継続してもよい。
 一方、対象データDが改竄されていないと判定した場合、演算処理部30は非初回起動のための準備を行う。
 即ち、演算処理部30はステップS109において、共通鍵Kcmと対象データDを用いて符号データCDの生成を行う。
 演算処理部30はステップS110において、生成した符号データCDをホスト機器2に送信する。
 演算処理部30はステップS111において、対象データDの利用を開始する。これにより、演算処理部30は、対象データDとしてのプログラムの実行等を行うことができる。
 ステップS102において、対象データDについての初回起動でないと判定した場合、演算処理部30は非初回起動用の各処理を実行する。
 具体的に、演算処理部30はステップS112において、対象データDと符号データCDの送信要求をホスト機器2に送信する。
 演算処理部30はステップS113において、対象データDと符号データCDをホスト機器2から受信する。
 演算処理部30はステップS114において、第2真贋判定処理を行う。
 演算処理部30はステップS115において、第2真贋判定処理の結果に応じた分岐処理を行う。具体的には、対象データDが改竄されているか否かを判定し、改竄されていると判定した場合、演算処理部30はステップS108の対応処理を行い、改竄されていないと判定した場合、演算処理部30はステップS111の処理へと進む。
 なお、電子機器3が備える演算処理部30によってプログラムを実行させることなく電子機器3の製造時に公開鍵Kpbと共通鍵Kcmを記憶部31に記憶させるのではなく、電子機器3が備える演算処理部30がプログラムを実行することにより電子機器3の記憶部31に公開鍵Kpbと共通鍵Kcmを記憶させる場合には、図4に示すような処理手順によって実現してもよい。
 演算処理部30はステップS201において、公開鍵Kpbが記憶部31に記憶済みであるか否かを判定する。
 公開鍵Kpbが記憶済みであると判定した場合、演算処理部30はステップS202及びステップS203の処理を実行しない。
 一方、公開鍵Kpbが記憶されていないと判定した場合、演算処理部30はステップS202において、公開鍵Kpbの生成要求と送信要求をサーバ装置1に送信する。該要求は、ホスト機器2を介してサーバ装置1に送信されてもよい。
 演算処理部30はステップS203において、公開鍵Kpbをサーバ装置1から受信して記憶部31に記憶する。該受信は、ホスト機器2を経由してなされてもよい。電子機器3における公開鍵Kpbの受信は、サーバ装置1やホスト機器2との安全な通信が確立された状態で行われることが望ましい。即ち、送受信データの改竄ができない環境、或いは、改竄することが困難な環境で公開鍵Kpbの送受信が行われることが望ましい。
 演算処理部30はステップS204において、共通鍵Kcmの生成指示を受信したか否かを判定する。該生成指示は、上述のように、サーバ装置1によってなされてもよいが、ホスト機器2によってなされてもよい。
 該生成指示を受信したと判定した場合、演算処理部30は、ステップS205において、乱数生成を行い、ステップS206において、生成した乱数を用いて共通鍵Kcmを生成し記憶部31に記憶する。
 一方、共通鍵Kcmの生成指示を受信していないと判定した場合、演算処理部30は図4に示す一連の処理を終了する。
<3.変形例>
<3-1.第1の変形例>
 第1の変形例は、共通鍵Kcmの生成タイミングについてのものである。
 具体的な処理手順について図5を参照して説明する。
 なお、図3に示す各処理と同様の処理については、同じステップ番号を付し適宜説明を省略する。
 電子機器3の演算処理部30は、ステップS101においてアップデート通知があると判定した場合、或いは、ステップS102において対象データDについて初回起動であると判定した場合、演算処理部30は初回起動用の各処理を実行する。
 初回起動用の各処理では、演算処理部30はステップS103からステップS106を実行することにより、対象データDとデジタル署名DSを用意する。
 続いて、演算処理部30はステップS107において、第1真贋判定処理の処理結果に応じた分岐処理を行う。
 対象データDが改竄されていないと判定した場合、演算処理部30はステップS109の処理を実行する前にステップS131において共通鍵Kcmの生成を行う。
 これにより、共通鍵Kcmが必要となる符号データCDの生成の直前まで共通鍵Kcmが生成されないため、共通鍵Kcmの流出リスクをより低減させることができる。
<3-2.第2の変形例>
 第2の変形例は、電子機器3の記憶部31に符号データCDが記憶される例である。
 具体的な処理手順について図6を参照して説明する。
 なお、図3に示す各処理と同様の処理については、同じステップ番号を付し適宜説明を省略する。
 電子機器3の演算処理部30は、ステップS101及びステップS102の分岐処理に応じて初回起動用の処理としてステップS103以降の各処理を実行する。
 ステップS107においては、演算処理部30は、第1真贋判定処理の処理結果に応じた分岐処理を行う。
 対象データDが改竄されていないと判定した場合、演算処理部30はステップS109で共通鍵Kcmと対象データDを用いて符号データCDの生成を行う。
 続いて、演算処理部30はステップS141において、符号データCDを記憶部31に記憶する処理を行う。
 また、電子機器3の演算処理部30は、ステップS101及びステップS102の分岐処理に応じて非初回起動用の処理としてステップS143以降の各処理を実行する。
 具体的に、演算処理部30はステップS143において、対象データDの送信要求をホスト機器2に送信する。
 続いて、演算処理部30はステップS144において、対象データDの受信を行う。
 更に、演算処理部30はステップS145において、符号データCDを記憶部31から取得する。
 これらの対象データDと符号データCDと共通鍵Kcmを用いて、演算処理部30はステップS114の第2真贋判定処理を行う。
 即ち、第2の変形例においては、対象データDは電子機器3の起動ごとに他の装置から取得すると共に、符号データCDについては電子機器3の内部に保持しておく。
 これにより、通信帯域の削減や処理速度の向上を図ることができる。
<3-3.第3の変形例>
 第3の変形例は、電子機器3の記憶部31に符号データCDと対象データDの双方が記憶される例である。
 具体的な処理手順について図7を参照して説明する。
 なお、図6に示す各処理と同様の処理については、同じステップ番号を付し適宜説明を省略する。
 電子機器3の演算処理部30は、ステップS101及びステップS102の分岐処理に応じて初回起動用の処理としてステップS103以降の各処理を実行する。
 ステップS103からステップS106の各処理を実行した後のステップS107において、演算処理部30は、第1真贋判定処理の処理結果に応じた分岐処理を行う。
 対象データDが改竄されていないと判定した場合、演算処理部30はステップS151において対象データDを記憶部31に記憶する処理を行う。なお、対象データDの記憶処理は、ステップS105の受信処理の後、任意のタイミングで実行することが可能である。
 続いて、演算処理部30はステップS109で共通鍵Kcmと対象データDを用いて符号データCDの生成を行う。
 演算処理部30はステップS141において、符号データCDを記憶部31に記憶する。これにより、記憶部31に対象データDと符号データCDの双方が記憶される。
 なお、本例においては、ホスト機器2に対して対象データDや符号データCDを送信する処理は行わないが、電子機器3に記憶したデータが破損したときなどのために、対象データDや符号データCDをホスト機器2に送信しておいてもよい。
 電子機器3の演算処理部30は、ステップS101及びステップS102の分岐処理に応じて非初回起動用の処理としてステップS152及びステップS114の各処理を実行する。
 具体的に、演算処理部30はステップS152において、対象データDと符号データCDを記憶部31から取得する処理を行う。
 これらの対象データDと符号データCDと共通鍵Kcmを用いて、演算処理部30はステップS114の第2真贋判定処理を行う。
 即ち、第3の変形例においては、対象データDと符号データCDを電子機器3の内部に保持しておく。これにより、通信帯域の削減や処理速度の向上を図ることができる。
<3-4.第4の変形例>
 上述した例では、共通鍵Kcmの生成処理を電子機器3で実行する例を説明した。しかし、電子機器3以外の機器、例えば、サーバ装置1やホスト機器2で共通鍵Kcmの生成を行い、生成した共通鍵Kcmを電子機器3に送信して記憶部31に記憶させてもよい。
 第4の変形例においては、一例として、共通鍵Kcmの生成処理をホスト機器2で行う例を説明する。
 具体的に、図8を参照して説明する。
 なお、図4に示す各処理と同様の処理については、同じステップ番号を付し適宜説明を省略する。
 電子機器3の演算処理部30は、ステップS201からステップS203の各処理を行うことにより、公開鍵Kpbを記憶部31に記憶する。
 続いて、演算処理部30はステップS211において、共通鍵Kcmが記憶部31に記憶されているか否かを判定する。
 共通鍵Kcmが記憶部31に記憶されていると判定した場合、演算処理部30は図8に示す一連の処理を終了する。これにより、処理に必要な各種の鍵が記憶部31に記憶された状態とすることができる。
 一方、共通鍵Kcmが記憶部31に記憶されていないと判定した場合、演算処理部30はステップS212において、共通鍵Kcmの生成要求と送信要求をホスト機器2に送信する。
 これに応じて、ホスト機器2の演算処理部20は、乱数生成処理と共通鍵Kcmの生成処理を行い、生成した共通鍵Kcmを電子機器3に送信する処理を行う。
 電子機器3の演算処理部30はステップS213において、共通鍵Kcmを受信し、共通鍵Kcmを記憶部31に記憶する処理を行う。
 このように、電子機器3以外の機器において共通鍵Kcmを生成することにより、電子機器3は図1に示す乱数生成機能FC2や共通鍵生成機能FC3を備えずに済むため、電子機器3にデプロイするプログラムを小さくすることができる。従って、電子機器3のコスト削減や小型化を図ることが可能となる。
 なお、ホスト機器2から電子機器3への共通鍵Kcmの送信処理は、通信の盗聴ができない環境、或いは盗聴が難しい環境にて行われることが望ましい。
<3-5.第5の変形例>
 上述した例では、サーバ装置1が対象データDを生成する例について説明した。
 第5の変形例では、ホスト機器2が対象データDの生成を行う。
 本例の処理の流れについて、具体的に、図9を参照して説明する。
 なお、図2に示す各処理と同様の処理については、同じステップ番号を付し適宜説明を省略する。
 先ず、ステップS1、ステップS2及びステップS3により、公開鍵方式における秘密鍵Kprがサーバ装置1の記憶部11に記憶されており、公開鍵方式における公開鍵Kpbと共通鍵方式における共通鍵Kcmが電子機器3の記憶部31に記憶された状態となる。
 ステップS20において、ホスト機器2は電子機器3で動作するプログラムデータなどの対象データDを生成する。
 ステップS21において、ホスト機器2は、対象データDについてのデジタル署名DSを得るために、対象データDをサーバ装置1に送信する。
 ステップS22において、サーバ装置1は、受信した対象データDと記憶されている秘密鍵Kprとを用いてデジタル署名DSを生成する。
 生成したデジタル署名DSは、ステップS23においてホスト機器2に送信される。
 ステップS24からステップS27の各処理は電子機器3の初回起動における処理である。
 ステップS24において、ホスト機器2は、電子機器3に対して対象データDとデジタル署名DSを送信する。
 ステップS25において、電子機器3は、対象データDとデジタル署名DSと公開鍵Kpbを用いた第1真贋判定処理(署名検証処理)を行う。その結果、電子機器3は、対象データDの改竄の有無、即ち、第1真贋判定の結果情報を得ることができる。
 ステップS26において、電子機器3は、第1真贋判定によって「真である」と判定された対象データDと共通鍵Kcmを用いてMACなどの符号データCDを生成する。生成された符号データCDは、ステップS27においてホスト機器2に送信される。
 ステップS28以降の各処理は、非初回起動に係る処理である。なお、ステップS28及びS29の各処理は、図2におけるステップS10及びS11の各処理と同様の処理であり、説明を省略する。
 本例によれば、電子機器3の製造を行っている者が対象データDを生成して電子機器3で動作させることができるため、本技術の適用範囲を広げることができる。
<3-6.その他の変形例>
 なお、本例及び上述した各例においては、秘密鍵Kprと公開鍵Kpbの生成をサーバ装置1で行う例について説明したが、秘密鍵Kprと公開鍵Kpbの生成及び管理をホスト機器2で行ってもよい。即ち、電子機器3を購入したユーザ側で秘密鍵Kprと公開鍵Kpbの管理を行ってもよい。
 また、この場合には、電子機器3の記憶部31に公開鍵Kpbを書き込む処理について、電子機器3を購入した後にホスト機器2で行ってもよい。これにより、電子機器3を購入したユーザ自身の責任において秘密鍵Kprを管理することができるため、リスク管理を容易にすることができる。また、ホスト機器2とサーバ装置1の間で対象データDやデジタル署名DSの送受信を行わずに済むため、各種データの流出を防止することができる。
 なお、ホスト機器2において生成された公開鍵Kpbがサーバ装置1に送信され、該公開鍵Kpbを受信したサーバ装置1では、製造した電子機器3の記憶部31に公開鍵Kpbを記憶させる処理を行ってもよい。その場合には、記憶部31に公開鍵Kpbが記憶された状態で電子機器3がユーザに納品される。
 電子機器3で記憶している共通鍵Kcmは、対象データDが同一である限り変更されずに使用されてもよいが、対象データDが同一であっても、定期的に作りかえてもよい。これにより、共通鍵Kcmの流出リスクを低減させることができる。
 なお、対象データDが異なる場合に同一の共通鍵Kcmが用いられるように構成してもよい。例えば、電子機器3が共通鍵Kcmの書き換えが不可能に構成されていてもよい。
 上述した各種の構成に加えて、秘密鍵Kprに対応する公開鍵Kpbについての真贋判定を行うための処理を1段または複数段実行した後に、第1真贋判定を実行してもよい。
 所謂証明書のチェーンの仕組みを利用することにより、リスクを更に低減させることができる。
 更に、秘密鍵Kprと公開鍵Kpbの組みあわせを複数種類生成し、該複数の公開鍵Kpbを一つの電子機器3の記憶部31に記憶させておいてもよい。
 これにより、例えば、使用中の公開鍵Kpbの流出が判明した場合に、即座に当該公開鍵Kpbを無効化して別の公開鍵Kpbの使用を開始することができる。
 従って、流出リスクの低減を図ると共に、電子機器3の動作を停止させる期間を短くすることができる。
 上述したホスト機器2及び電子機器3の態様は各種考えられる。
 例えば、ホスト機器2が監視カメラとされ電子機器3は該監視カメラに搭載されたイメージセンサとされていてもよい。
 また、ホスト機器2が車載のECU(Electronic Control Unit)とされ、電子機器3は該ECUによって駆動する車内センサ或いは車外センサとしてのイメージセンサとされていてもよい。
 電子機器3は、例えば、R(Red)画像、G(Green)画像及びB(Blue)画像を得るRGBセンサや、ToF(Time of Flight)センサや、サーマルセンサや、偏光センサや、多波長(マルチスペクトル)センサや、EVS(Event based Vision Sensor)や、IR(Infrared)センサ、SWIR(Short Wavelength infrared)センサ、湿度センサ、水分センサなど、各種のセンサに適用することができる。
<4.まとめ>
 上述した各種の例で説明したように、電子機器3は、対象データDについて公開鍵方式による第1真贋判定を行う第1真贋判定処理部(第1真贋判定機能FC1)と、第1真贋判定において真と判定された対象データDから共通鍵方式による符号データCDを生成する符号データ生成部(符号データ生成機能FC4)と、符号データCDを用いて対象データDについての第2真贋判定を行う第2真贋判定処理部(第2真贋判定機能FC6)と、を備えている。
 第1真贋判定処理によって「真である」と判定された対象データDを用いて共通鍵方式による符号データCDを生成することで、対象データDの真贋を判定するための第2真贋判定処理に当該符号データCDを用いることができる。第2真贋判定処理は、共通鍵方式による処理であるため、公開鍵方式による第1真贋判定処理よりも処理時間が短い。
 従って、初回の真贋判定については、流出リスクの低い公開鍵方式による第1真贋判定を行うことで対象データDについての高精度な真贋判定結果を得ると共に正規の対象データDについての正しい符号データCDを得ることができる。また、2回目以降の真贋判定については、当該正しい符号データCDを用いて共通鍵方式による第2真贋判定処理を実行することで、処理時間を短縮することができ、電子機器3の起動の高速化等を図ることができる。
 即ち、本構成によって、鍵の流出リスクの抑制と真贋判定の高速化の両立を図ることができる。
 図1等を参照して説明したように、電子機器3においては、対象データDについての符号データCDを生成する前においては第1真贋判定を行い、対象データDについての符号データCDを生成した後においては第1真贋判定を行わずに第2真贋判定を行う処理選択部(処理選択機能FC7)と、を備えていてもよい。
 例えば、電子機器3の起動ごとに対象データDが改竄されていないことを確認するために真贋判定を行う場合に、2回目以降の起動時において演算量が相対的に多い第1真贋判定処理を行わずに済む。従って、電子機器3の起動の高速化を図ることができる。
 図1等を参照して説明したように、電子機器3は、共通鍵方式による符号データCDの生成に用いる共通鍵Kcmを記憶部31に記憶する記憶処理部(記憶処理機能FC9)を備えていてもよい。
 符号データCDの生成に用いる共通鍵Kcmを電子機器3の内部に記憶させることで、共通鍵Kcmの流出リスクを低減させることができる。
 図8等を参照して第4の変形例で説明したように、電子機器3においては、共通鍵Kcmを他の機器(例えば、サーバ装置1やホスト機器2)から受信する通信処理部(通信処理機能FC10)を備えていてもよい。
 具体的には、符号データCDの生成に用いる共通鍵Kcmを他の機器において生成することにより、電子機器3が共通鍵Kcmを生成する機能を備えていなくてもよい。従って、電子機器3に記憶されるプログラムの容量を小さくすることができ、メモリサイズの小型化等を図ることができる。
 図1等を参照して説明したように、電子機器3は、共通鍵Kcmを生成する鍵生成部(共通鍵生成機能FC3)を備えていてもよい。
 これにより、他の機器(例えば、サーバ装置1やホスト機器2)で共通鍵Kcmを生成せずに済む。従って、共通鍵Kcmの送受信を行わなくて済むため、共通鍵Kcmの流出リスクを更に低減させることができる。従って、対象データDの真贋判定をより高精度に行うことができる。
 図5等を参照して第1の変形例で説明したように、電子機器3の鍵生成部(共通鍵生成機能FC3)は、対象データDについて第1真贋判定を最初に行った後に共通鍵Kcmの生成を行ってもよい。
 これにより、共通鍵Kcmが必要となる符号データCDの生成まで共通鍵Kcmが生成されないため、共通鍵Kcmの流出リスクをより低減させることができる。
 図1等を参照して説明したように、共通鍵Kcmは電子機器3固有のものとされてもよい。
 電子機器3ごとに異なる共通鍵Kcmを作った場合、本来の共通鍵方式であれば、サーバ装置1或いはホスト機器2の何れかにも電子機器3の台数分の共通鍵Kcmを保持しておく必要があり、管理コストが高くなってしまう。
 しかし、本構成であれば、共通鍵Kcmは、電子機器3にのみ存在するため、サーバ装置1やホスト機器2における共通鍵Kcmの管理コストが発生しない。
 また、電子機器3ごとに固有の共通鍵Kcmであるため、共通鍵Kcmが流出した際の影響範囲を最小限にとどめることができ、リスク管理のコスト削減を図ることができる。
 図6等を参照して第2の変形例で説明したように、電子機器3の記憶処理部(記憶処理機能FC9)は、符号データCDを記憶部31に記憶してもよい。
 第2真贋判定に用いる符号データCDを電子機器3の記憶部31に記憶させることにより、第2真贋判定を行うたびに符号データCDを他の機器(例えば、サーバ装置1やホスト機器2)から取得しなくて済む。従って、通信処理に係る処理負担の軽減等を図ることができる。
 図7等を参照して第3の変形例で説明したように、電子機器3の記憶処理部(記憶処理機能FC9)は、対象データDを記憶部31に記憶してもよい。
 対象データDは、例えば、電子機器3が処理に用いる各種のプログラム等であり、具体的には、ソフトウェアそのものだけでなく、ソフトウェアに適用するパッチファイルやAI処理に用いられるAIモデル等を含んでいる。これらの対象データDを電子機器3の記憶部31に記憶することにより、他の機器から対象データDを取得するための通信処理を行わずに済むため、処理負担及び通信帯域の削減を図ることができる。また、この場合には、電子機器3の製造工程において予め対象データDのみを記憶させるようにしてもよい。対象データDは符号データCDよりも容量が大きいことが考えられる。対象データDを予め電子機器3に記憶しておくことにより、電子機器3の起動のたびに対象データDを受信する処理を実行せずに済み、起動時間を短くすることができる。
 図1、図3等を参照して説明したように、電子機器3は、電子機器3の起動ごとに対象データDをホスト機器2から受信する通信処理部(通信処理機能FC10)を備えていてもよい。
 起動ごとに対象データDをホスト機器2から取得することにより、電子機器3の内部の不揮発性メモリ等に対象データDを記憶しておかなくて済む。従って、電子機器3が備える記憶部31の容量を小さくすることにより電子機器3の小型化を図ることが可能となる。
 図3等を参照して説明したように、電子機器3の通信処理部(通信処理機能FC10)は、電子機器3の起動ごとに符号データCDをホスト機器2から受信してもよい。
 起動ごとに対象データDだけでなく符号データCDをホスト機器2から取得することにより、電子機器3の内部に対象データDと符号データCDの双方を記憶するための領域を確保しなくてよい。従って、電子機器3が備える記憶部31の容量をより小さくすることができ、電子機器3の小型化をより図ることができる。
 図1等を参照して説明したように、電子機器3においては、第1真贋判定の処理と符号データCDを生成する処理とを不可分に実行するように構成されていてもよい。
 第1真贋判定の処理によって改竄されていないことが証明された対象データDを用いて続けざまに符号データCDが生成されることを保証することができる。従って、第1真贋判定の処理後且つ符号データCDの生成前に対象データDが改竄されてしまう可能性を排除することができ、改竄リスクを低減させることができる。
 図1等を参照して説明したように、電子機器3においては、第1真贋判定の処理に係るプログラムと、符号データCDを生成する処理に係るプログラムと、が記憶されるマスクROMとされた記憶部31を備えていてもよい。
 マスクROM方式を用いることにより、第1真贋判定の処理と符号データCDの生成処理の間に他の処理が実行されないことを担保することができる。
 図1、図3等を参照して説明したように、電子機器3においては、第1真贋判定の処理に係るプログラムと、符号データCDを生成する処理に係るプログラムと、について、非改竄判定処理を行う非改竄判定処理部(非改竄判定機能FC5)を備えていてもよい。
 これにより、第1真贋判定及び符号データCDの生成の双方の処理が正規のプログラムに基づいて行われることを保証することができる。従って、それにより生成された符号データCDについても正しいことを保証することができ、改竄リスクの低減を図ることができる。
 図1、図3等を参照して説明したように、電子機器3が対象データDのアップデートの有無を判定するアップデート判定処理部(アップデート判定機能FC8)を備え、アップデートがある場合に、第1真贋判定処理部(第1真贋判定機能FC1)はアップデート後の新たな対象データDに対して第1真贋判定を行い、符号データ生成部(符号データ生成機能FC4)は新たな対象データDに対して符号データCDの生成を行ってもよい。
 これにより、対象データDの変更が無い場合には第2真贋判定処理によって改竄されていないことを証明することができるため、真贋判定に係る処理時間の短縮を図ることができる。
 なお、アップデート判定処理は、サーバ装置1やホスト機器2によって実行されてもよい。この場合において、電子機器3は、サーバ装置1やホスト機器2から受信したアップデート指示と新たな対象データDに基づいてアップデート処理を行ってもよい。
 実施の形態の情報処理方法は、対象データDについて公開鍵方式による第1真贋判定処理(第1真贋判定機能FC1)と、第1真贋判定処理において真と判定された対象データDから共通鍵方式による符号データCDを生成する符号データ生成処理(符号データ生成機能FC4)と、符号データCDを用いて前記対象データDについての第2真贋判定を行う第2真贋判定処理(第2真贋判定機能FC6)と、をコンピュータ装置が実行するものである。
 実施の形態のプログラムは、対象データDについて公開鍵方式による第1真贋判定処理(第1真贋判定機能FC1)と、第1真贋判定処理において真と判定された対象データDから共通鍵方式による符号データCDを生成する符号データ生成処理(符号データ生成機能FC4)と、符号データCDを用いて前記対象データDについての第2真贋判定を行う第2真贋判定処理(第2真贋判定機能FC6)とを、例えばCPU等の演算処理装置に実行させるプログラムである。
 このようなプログラムにより、上述した電子機器3の演算処理部30をマイクロコンピュータ等の演算処理装置により実現できる。
 これらのプログラムはコンピュータ装置等の機器に内蔵されている記録媒体としてのHDDや、CPUを有するマイクロコンピュータ内のROM等に予め記録しておくことができる。あるいはまたプログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)、MO(Magneto Optical)ディスク、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc(登録商標))、磁気ディスク、半導体メモリ、メモリカードなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
 また、このようなプログラムは、リムーバブル記録媒体からパーソナルコンピュータ等にインストールする他、ダウンロードサイトから、LAN(Local Area Network)、インターネットなどのネットワークを介してダウンロードすることもできる。
 なお、本明細書に記載された効果はあくまでも例示であって限定されるものではなく、また他の効果があってもよい。
 また、上述した各例はいかように組み合わせてもよく、各種の組み合わせを用いた場合であっても上述した種々の作用効果を得ることが可能である。
<5.本技術>
(1)
 対象データについて公開鍵方式による第1真贋判定を行う第1真贋判定処理部と、
 前記第1真贋判定において真と判定された前記対象データから共通鍵方式による符号データを生成する符号データ生成部と、
 前記符号データを用いて前記対象データについての第2真贋判定を行う第2真贋判定処理部と、を備えた
 電子機器。
(2)
 前記対象データについての前記符号データを生成する前においては前記第1真贋判定を行い、前記対象データについての前記符号データを生成した後においては前記第1真贋判定を行わずに前記第2真贋判定を行う処理選択部と、を備えた
 上記(1)に記載の電子機器。
(3)
 前記共通鍵方式による前記符号データの生成に用いる共通鍵を記憶部に記憶する記憶処理部を備えた
 上記(1)から上記(2)の何れかに記載の電子機器。
(4)
 前記共通鍵を他の機器から受信する通信処理部を備えた
 上記(3)に記載の電子機器。
(5)
 前記共通鍵を生成する鍵生成部を備えた
 上記(3)に記載の電子機器。
(6)
 前記鍵生成部は、前記対象データについて前記第1真贋判定を最初に行った後に前記共通鍵の生成を行う
 上記(5)に記載の電子機器。
(7)
 前記共通鍵は前記電子機器固有のものとされた
 上記(3)から上記(6)の何れかに記載の電子機器。
(8)
 前記記憶処理部は、前記符号データを前記記憶部に記憶する
 上記(3)から上記(7)の何れかに記載の電子機器。
(9)
 前記記憶処理部は、前記対象データを前記記憶部に記憶する
 上記(8)に記載の電子機器。
(10)
 前記電子機器の起動ごとに前記対象データをホスト機器から受信する通信処理部を備えた
 上記(3)から上記(8)の何れかに記載の電子機器。
(11)
 前記通信処理部は、前記電子機器の起動ごとに前記符号データを前記ホスト機器から受信する
 上記(10)に記載の電子機器。
(12)
 前記第1真贋判定の処理と前記符号データを生成する処理とを不可分に実行する
 上記(1)から上記(11)の何れかに記載の電子機器。
(13)
 前記第1真贋判定の処理に係るプログラムと、前記符号データを生成する処理に係るプログラムと、が記憶されるマスクROMとされた記憶部を備えた
 上記(12)に記載の電子機器。
(14)
 前記第1真贋判定の処理に係るプログラムと、前記符号データを生成する処理に係るプログラムと、について、非改竄判定処理を行う非改竄判定処理部を備えた
 上記(12)に記載の電子機器。
(15)
 前記対象データのアップデートの有無を判定するアップデート判定処理部を備え、
 前記アップデートがある場合に、
 前記第1真贋判定処理部はアップデート後の新たな対象データに対して前記第1真贋判定を行い、
 前記符号データ生成部は前記新たな対象データに対して前記符号データの生成を行う
 上記(1)から上記(14)の何れかに記載の電子機器。
(16)
 対象データについて公開鍵方式による第1真贋判定処理と、
 前記第1真贋判定処理において真と判定された前記対象データから共通鍵方式による符号データを生成する符号データ生成処理と、
 前記符号データを用いて前記対象データについての第2真贋判定を行う第2真贋判定処理と、をコンピュータ装置が実行する
 情報処理方法。
1 サーバ装置(他の機器)
2 ホスト機器
3 電子機器
31 記憶部
FC1 第1真贋判定機能(第1真贋判定処理部)
FC3 共通鍵生成機能(鍵生成部)
FC4 符号データ生成機能(符号データ生成部)
FC5 非改竄判定機能(非改竄判定処理部)
FC6 第2真贋判定機能(第2真贋判定処理部)
FC7 処理選択機能(処理選択部)
FC8 アップデート判定機能(アップデート判定処理部)
FC9 記憶処理機能(記憶処理部)
FC10 通信処理機能(通信処理部)
Kcm 共通鍵
D 対象データ
CD 符号データ

Claims (16)

  1.  対象データについて公開鍵方式による第1真贋判定を行う第1真贋判定処理部と、
     前記第1真贋判定において真と判定された前記対象データから共通鍵方式による符号データを生成する符号データ生成部と、
     前記符号データを用いて前記対象データについての第2真贋判定を行う第2真贋判定処理部と、を備えた
     電子機器。
  2.  前記対象データについての前記符号データを生成する前においては前記第1真贋判定を行い、前記対象データについての前記符号データを生成した後においては前記第1真贋判定を行わずに前記第2真贋判定を行う処理選択部と、を備えた
     請求項1に記載の電子機器。
  3.  前記共通鍵方式による前記符号データの生成に用いる共通鍵を記憶部に記憶する記憶処理部を備えた
     請求項1に記載の電子機器。
  4.  前記共通鍵を他の機器から受信する通信処理部を備えた
     請求項3に記載の電子機器。
  5.  前記共通鍵を生成する鍵生成部を備えた
     請求項3に記載の電子機器。
  6.  前記鍵生成部は、前記対象データについて前記第1真贋判定を最初に行った後に前記共通鍵の生成を行う
     請求項5に記載の電子機器。
  7.  前記共通鍵は前記電子機器固有のものとされた
     請求項3に記載の電子機器。
  8.  前記記憶処理部は、前記符号データを前記記憶部に記憶する
     請求項3に記載の電子機器。
  9.  前記記憶処理部は、前記対象データを前記記憶部に記憶する
     請求項8に記載の電子機器。
  10.  前記電子機器の起動ごとに前記対象データをホスト機器から受信する通信処理部を備えた
     請求項3に記載の電子機器。
  11.  前記通信処理部は、前記電子機器の起動ごとに前記符号データを前記ホスト機器から受信する
     請求項10に記載の電子機器。
  12.  前記第1真贋判定の処理と前記符号データを生成する処理とを不可分に実行する
     請求項1に記載の電子機器。
  13.  前記第1真贋判定の処理に係るプログラムと、前記符号データを生成する処理に係るプログラムと、が記憶されるマスクROMとされた記憶部を備えた
     請求項12に記載の電子機器。
  14.  前記第1真贋判定の処理に係るプログラムと、前記符号データを生成する処理に係るプログラムと、について、非改竄判定処理を行う非改竄判定処理部を備えた
     請求項12に記載の電子機器。
  15.  前記対象データのアップデートの有無を判定するアップデート判定処理部を備え、
     前記アップデートがある場合に、
     前記第1真贋判定処理部はアップデート後の新たな対象データに対して前記第1真贋判定を行い、
     前記符号データ生成部は前記新たな対象データに対して前記符号データの生成を行う
     請求項1に記載の電子機器。
  16.  対象データについて公開鍵方式による第1真贋判定処理と、
     前記第1真贋判定処理において真と判定された前記対象データから共通鍵方式による符号データを生成する符号データ生成処理と、
     前記符号データを用いて前記対象データについての第2真贋判定を行う第2真贋判定処理と、をコンピュータ装置が実行する
     情報処理方法。
PCT/JP2022/044948 2021-12-27 2022-12-06 電子機器、情報処理方法 WO2023127429A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021212201 2021-12-27
JP2021-212201 2021-12-27

Publications (1)

Publication Number Publication Date
WO2023127429A1 true WO2023127429A1 (ja) 2023-07-06

Family

ID=86998635

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/044948 WO2023127429A1 (ja) 2021-12-27 2022-12-06 電子機器、情報処理方法

Country Status (1)

Country Link
WO (1) WO2023127429A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012532564A (ja) * 2009-07-06 2012-12-13 インテル・コーポレーション セキュリティ鍵の導出方法および装置
WO2017006862A1 (ja) * 2015-07-03 2017-01-12 Kddi株式会社 ソフトウェア配布処理装置、車両、ソフトウェア配布処理方法及びコンピュータプログラム
JP6260068B1 (ja) * 2016-09-30 2018-01-17 Kddi株式会社 保守装置、保守方法、及びコンピュータプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012532564A (ja) * 2009-07-06 2012-12-13 インテル・コーポレーション セキュリティ鍵の導出方法および装置
WO2017006862A1 (ja) * 2015-07-03 2017-01-12 Kddi株式会社 ソフトウェア配布処理装置、車両、ソフトウェア配布処理方法及びコンピュータプログラム
JP6260068B1 (ja) * 2016-09-30 2018-01-17 Kddi株式会社 保守装置、保守方法、及びコンピュータプログラム

Similar Documents

Publication Publication Date Title
JP5690412B2 (ja) ハードウェアデバイスの鍵プロビジョン方法および装置
US8966248B2 (en) Secure software file transfer systems and methods for vehicle control modules
JP5310761B2 (ja) 車両ネットワークシステム
JP4501349B2 (ja) システムモジュール実行装置
JP4856080B2 (ja) データ処理装置へのデータのセキュリティ上安全なロード及び格納
US11601268B2 (en) Device attestation including attestation-key modification following boot event
US20030126432A1 (en) Content authentication for digital media based recording devices
US8417954B1 (en) Installation image including digital signature
US11228438B2 (en) Security device for providing security function for image, camera device including the same, and system on chip for controlling the camera device
JP5097130B2 (ja) 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム
JP2009087035A (ja) 暗号クライアント装置、暗号パッケージ配信システム、暗号コンテナ配信システム、暗号管理サーバ装置、ソフトウェアモジュール管理装置、ソフトウェアモジュール管理プログラム
KR20050035104A (ko) 복제 방지를 위한 디바이스 바운드 플래싱/부팅
JP2010011400A (ja) 共通鍵方式の暗号通信システム
JP2007511810A (ja) 乱数関数を利用した実行証明
JP2010514000A (ja) 電子装置にプログラム状態データをセキュアに記憶するための方法
JP6387908B2 (ja) 認証システム
JP7450713B2 (ja) ソフトウェア完全性保護方法および装置、ならびにソフトウェア完全性検証方法および装置
WO2011150650A1 (zh) 密钥授权信息管理方法及装置
WO2019142307A1 (ja) 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
CN117436043A (zh) 待执行文件的来源验证方法、设备以及可读存储介质
WO2023127429A1 (ja) 電子機器、情報処理方法
JP2004234641A (ja) コンテンツファイル制作者の認証方式およびそのプログラム
US20220209946A1 (en) Key revocation for edge devices
CN113330438A (zh) 安全代码映像分发
TWI840506B (zh) 安全資料處理裝置(二)

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

Country of ref document: EP

Kind code of ref document: A1