WO2021181474A1 - 鍵生成装置 - Google Patents

鍵生成装置 Download PDF

Info

Publication number
WO2021181474A1
WO2021181474A1 PCT/JP2020/010084 JP2020010084W WO2021181474A1 WO 2021181474 A1 WO2021181474 A1 WO 2021181474A1 JP 2020010084 W JP2020010084 W JP 2020010084W WO 2021181474 A1 WO2021181474 A1 WO 2021181474A1
Authority
WO
WIPO (PCT)
Prior art keywords
output
unit
output value
data
key
Prior art date
Application number
PCT/JP2020/010084
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 JP2021567020A priority Critical patent/JP7034400B2/ja
Priority to PCT/JP2020/010084 priority patent/WO2021181474A1/ja
Publication of WO2021181474A1 publication Critical patent/WO2021181474A1/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Definitions

  • the present disclosure relates to a key generator that generates a key using a PUF (Physical Uncle Function) and regenerates a key using the PUF.
  • PUF Physical Uncle Function
  • Patent Document 1 discloses a technique of observing the failure frequency of key generation, repackaging secret information with key information generated in the current operating environment, and storing the repackaged secret information in a non-volatile memory. There is. Specifically, in Patent Document 1, the frequency of failure in generating key information k due to temporal fluctuation is detected, and when the frequency of failure increases, the key information k newly generated in the current operating environment is detected. The secret information mk is repackaged by'and stored in the non-volatile memory. As a result, the new key information k'has less time variation with respect to the original key information k, so that the frequency of failure to generate the key information k can be reduced again.
  • Patent Document 1 is effective in a situation where the output of PUF gradually changes due to temporal fluctuation.
  • an application in which a temperature change occurs in a short time includes an aerospace application and a defense application.
  • the temperature operating range of semiconductors in these applications is assumed to be in the range of ⁇ 55 ° C to +125 ° C, which is wider than the operating temperature range of general semiconductors.
  • it is expected that the environmental temperature of semiconductors in these applications will change rapidly.
  • environmental changes that are difficult to predict at the design stage such as vibration or radio wave environments, can affect key generation.
  • An object of the present disclosure is to provide a key generation device capable of stably regenerating a key by PUF even when the usage environment of the key generation device is suddenly changed.
  • the key generator according to the present disclosure is The first data used for key generation is input, and in response to the input of the first data, the first output value is output using PUF, which is a physically non-replicatable function, and the first data and the value are output.
  • the second data for monitoring the key generation environment is input, and the PUF unit that outputs the second output value using the PUF in response to the input of the second data
  • Auxiliary data which is data generated at the time of key generation in which the first data is used and is used for key regeneration, and the second data input at the time of generation of the auxiliary data.
  • a storage unit that stores a plurality of sets of the second output value output in response to data input, and a storage unit.
  • the similarity between the newly output second output value and each of the plurality of sets of second output values is calculated. Based on each similarity, a determination unit that determines whether the auxiliary data to be used for key regeneration exists in the plurality of sets, and a determination unit. When it is determined that the auxiliary data to be used for regenerating the key exists in the plurality of sets, the determined auxiliary data and the newly output first output value are used. , The key regenerating unit that regenerates the key, To be equipped.
  • a key generation device capable of stably regenerating a key by PUF even when the usage environment of the key generation device is suddenly changed.
  • FIG. 6 is a block diagram of the key generation device 1 in the figure of the first embodiment.
  • the logical configuration diagram of the key generation process S10 by the key generation unit 20 FIG. 5 is a flowchart showing a key generation process S10 in the figure of the first embodiment.
  • FIG. 5 is a diagram showing a logical configuration of a state monitoring process S20 by a state monitoring unit 30 in the figure of the first embodiment.
  • FIG. 5 is a flowchart showing a state monitoring process S20 in the figure of the first embodiment.
  • FIG. 5 is a diagram showing a logical configuration of a key regeneration process S30 by the key generation unit 20 in the figure of the first embodiment.
  • FIG. 5 is a flowchart showing a key regeneration process S30 in the figure of the first embodiment.
  • the flowchart which shows the re-registration process S40 in the figure of Embodiment 1.
  • FIG. FIG. 5 is a diagram showing a hardware configuration of the key generation device 1 in the diagram of the first embodiment.
  • FIG. 5 is a diagram showing a configuration in which the function of the key generation device 1 is realized by hardware in the figure of the first embodiment.
  • FIG. 5 is a diagram qualitatively showing the error rate of the output of the PUF unit 21 in the diagram of the first embodiment.
  • FIG. 1 is another diagram showing the characteristics of the output error rate of the PUF unit 21 in the diagram of the first embodiment.
  • the first input data X and the second input data Xm in the first embodiment will be described.
  • the first input data X is data input to the PUF unit 21 in order to generate the key K.
  • the second input data Xm is data input to the PUF unit 21 in order to monitor the environment in which the key K is generated.
  • the value of the first input data X is not changed. For example, if 8-bit "11110,000" is used for the first input data X, "11110,000" is continuously used as the first input data X.
  • the value of the second input data Xm is not changed either. For example, if 8-bit "101010” is used for the second input data Xm, "10101010” is continuously used as the second input data Xm.
  • the output of the PUF unit 21 with respect to the input of the first input data X is referred to as the first PUF output value W.
  • the output of the PUF unit 21 with respect to the input of the second input data Xm is referred to as a second PUF output value Wm.
  • the first PUF output value W and the second PUF output value Wm other than the key generation process S10 are indicated by adding * such as the first PUF output value W * and the second PUF output value W * m.
  • the key generation process S10 is a process for generating a key K using the first input data X.
  • a key regeneration process S30 different from the key generation process S10 appears.
  • the auxiliary data H is used, whereas in the key generation process S10, the auxiliary data H is not used.
  • the second PUF output value Wm is acquired from the second input data Xm.
  • the Hamming distance with each of Wm1, Wm2, Wm3, and Wm4 is calculated.
  • ⁇ Key regeneration process S30> The key K is regenerated from the first PUF output value W * for the new first input data X and any of the registered auxiliary data H1, H2, H3, H4.
  • the key regeneration process S30 includes a state monitoring process.
  • the re-registration process S40 is a process in which the set of the auxiliary data H and the second PUF output value Wm is re-registered.
  • the content of the re-registration process S40 is the key generation process S10.
  • FIG. 1 shows a block diagram of the key generation device 1 of the first embodiment.
  • the functional configuration of the key generation device 1 will be described with reference to FIG.
  • the key generation device 1 includes an auxiliary data management unit 10, a key generation unit 20, and a status monitoring unit 30.
  • the condition monitoring unit 30 is a determination unit.
  • the auxiliary data management unit 10 has a plurality of auxiliary data H required for key generation by the PUF unit 21.
  • the auxiliary data management unit 10 holds four types of auxiliary data, H1, H2, H3, and H4. The four types are merely examples.
  • the number of auxiliary data held by the auxiliary data management unit 10 is not limited.
  • the key generation unit 20 regenerates the key using the auxiliary data Hi.
  • the main components of the key generation unit 20 are the PUF unit 21, the random number generation unit 22, the coding unit 23, the decoding unit 24, the hash unit 25, the first calculation unit 26, the second calculation unit 27, and the third calculation unit 28. It has. The function of each component is described in the description of operation.
  • the key generation unit 20 is realized by hardware as the key generation circuit 20A.
  • the PUF unit 21 to the third calculation unit 28 are also realized by circuits, respectively, as will be described later in FIG.
  • the condition monitoring unit 30 has the second PUF output values Wm1, Wm2, Wm3, which are output from the PUF unit 21 under the same operating environment as H1, H2, H3, and H4 stored in the auxiliary data management unit 10.
  • Hi and Wmi are pairs generated under the same operating environment in the key generation device 1 and at timings close to each other in time. for example, H1 and Wm1 are pairs generated at timings close to each other in an operating environment of 100 ° C. H2 and Wm2 are pairs generated at timings close to each other in an operating environment of 200 ° C.
  • H3 and Wm3 are pairs generated at a timing close to each other in an operating environment of 300 ° C.
  • H4 and Wm4 are pairs generated at timings close to each other in an operating environment of 400 ° C. That is, the second PUF output value Wmi generated at a timing close in time to the timing at which the auxiliary data Hi is generated is stored as Wmi.
  • the second PUF output value Wmi is a series different from the first PUF output value W used for key generation. That is, the second PUF output value Wmi is the output of the PUF unit 21 with respect to the input of the second input data Xm, and the first PUF output value W is the output of the PUF unit 21 with respect to the input of the first input data X.
  • the auxiliary data management unit 10 transmits the auxiliary data Hi of the index “i” indicated by the auxiliary data selection signal SG31 transmitted from the condition monitoring unit 30 to the key generation unit 20. Further, in the auxiliary data Hi re-registration process S40, the auxiliary data management unit 10 assists the auxiliary data Hi of the index “i” indicated by the auxiliary data selection signal SG31 for re-registration transmitted from the key generation unit 20. Overwrite with data H N.
  • ⁇ Key generator 20> In the key generation unit 20, the hash unit 25 outputs the key K.
  • the PUF unit 21 transmits the second PUF output value to the condition monitoring unit 30.
  • Key generating unit 20 transmission when receiving the re-registration signal SG32 from the state monitoring section 30, by executing the key generation processing S10 creates a new auxiliary data H N, the auxiliary data H N in the auxiliary data management unit 10 do.
  • the state monitoring unit 30 uses the second PUF output value W * m output from the PUF unit 21 and the already registered second PUF output values Wm1, Wm2, Wm3, and Wm4 to perform the state monitoring process S20. conduct. From the result of the state monitoring process S20, if the state monitoring process S20 is associated with the key regeneration process S30, the state monitoring unit 30 generates the auxiliary data selection signal SG31 and transmits the auxiliary data selection signal SG31 to the auxiliary data management unit 10. do.
  • the state monitoring unit 30 transmits the re-registration signal SG32 to the key generation unit 20 and overwrites the index of the auxiliary data Hi.
  • the auxiliary data selection signal SG31 that specifies "i" is transmitted to the auxiliary data management unit 10.
  • the condition monitoring unit 30 overwrites the Wmi corresponding to the index “i” indicated by the auxiliary data selection signal SG31 by the second PUF output value Wm output from the key generation unit 20.
  • FIG. 2 shows the logical configuration of the key generation process S10 by the key generation unit 20.
  • FIG. 3 is a flowchart showing the key generation process S10. It should be noted that the functional elements shown in parentheses in the flowcharts of FIGS. 3, 5, 7, and 8 indicate that they are the main body of the operation. The key generation process S10 will be described with reference to FIGS. 2 and 3.
  • step S11 the first input data X and the second input data Xm are input to the PUF unit 21.
  • the PUF unit 21 is input with the first data used for key generation, and outputs the first output value with respect to the input of the first input data X by using the PUF which is a physically non-replicatable function.
  • the first input data X is the first data
  • the first PUF output value is the first output value.
  • the PUF unit 21 is input with the second input data Xm, which has a value different from that of the first input data and monitors the key generation environment, and uses the PUF to input the second input data Xm to the second PUF output value. Is output. Specifically, it is as follows.
  • the PUF unit 21 is a circuit that returns an n-bit output value for "preset m-bit input data".
  • the PUF unit 21 returns the first PUF output value W for the first input data X and returns the second PUF output value Wm for the second input data Xm.
  • the PUF unit 21 does not always return the same output value even if the input data is the same.
  • the Hamming distance HD between the output value V1 for the first input data D1 and the output value V2 for the same input data D1 input the second time ( V1 and V2) are guaranteed to be less than a certain value t. That is, HD (V1, V2) ⁇ t Is.
  • the input data D1 is the first input data X or the second input data Xm.
  • step S11 the PUF unit 21 outputs the first PUF output value W to the input of the first input data X, and outputs the second PUF output value Wm to the input of the second input data Xm.
  • step S12 the PUF unit 21 transmits the second PUF output value Wm to the condition monitoring unit 30.
  • step S13 the condition monitoring unit 30 registers the second PUF output value Wm received from the PUF unit 21 in the non-volatile memory 120 described later.
  • the second PUF output value Wm received by the condition monitoring unit 30 from the PUF unit 21 is set to the second PUF output value Wm1. Further, it is assumed that only the second PUF output value Wm1 is registered in the non-volatile memory 120.
  • step S14 the hash unit 25 generates the key K from the first PUF output value W.
  • the hash unit 25 is a general-purpose hash circuit that converts an n-bit first PUF output value W into L bits. The output of the hash unit 25 is used as the key K.
  • step S15 the random number generation unit 22 outputs a k-bit random number R.
  • step S16 the coding unit 23 encodes the k-bit random number R and outputs the n-bit codeword C.
  • the coding unit 23 is a linear code circuit.
  • step S17 the first calculation unit 26 calculates the exclusive OR of the first PUF output value W and the codeword C, and outputs the calculation result as auxiliary data Hi.
  • the auxiliary data Hi is the auxiliary data H1.
  • step S18 the first calculation unit 26 transmits the auxiliary data H1 to the auxiliary data management unit 10.
  • step S19 the auxiliary data management unit 10 registers the received auxiliary data H1 in the non-volatile memory 120.
  • the second PUF output value Wm1 registered in step S13 and the auxiliary data H1 registered in step S19 are associated with each other by the index “1”. That is, the pair of the auxiliary data Hi registered in the non-volatile memory 120 and the second PUF output value Wmi is associated with each other by the key generation unit 20.
  • the auxiliary data Hi and the second PUF output value Wmi are associated with each other as follows.
  • the PUF unit 21 adds an index “i” to the second PUF output value Wm. Further, in FIG.
  • the PUF unit 21 adds the information of the index “i” of the second PUF output value Wm to the first PUF output value W.
  • the first calculation unit 26 specifies the index “i” for the input first PUF output value W.
  • the first calculation unit 26 can add the index “i” to the auxiliary data H generated from the first PUF output value W for which the index “i” is specified.
  • step S19 only the auxiliary data H1 is registered in the auxiliary data management unit 10, and only the second PUF output value Wm1 is registered in the condition monitoring unit 30. That is, at the end of step S19, only the set of the auxiliary data H1 and the second PUF output value Wm1 is registered.
  • the auxiliary data H2 and the second PUF output value Wm2 By repeating steps S11 to S19, the auxiliary data H2 and the second PUF output value Wm2, the auxiliary data H3 and the second PUF output value Wm3, and the auxiliary data H4 and the second PUF output value Wm4 are obtained. Is registered, and the state shown in FIG. 1 is obtained.
  • FIG. 4 shows the logical configuration of the state monitoring process S20 by the state monitoring unit 30.
  • FIG. 5 is a flowchart showing the state monitoring process S20. The state monitoring process S20 will be described with reference to FIGS. 4 and 5.
  • step S21 the second input data Xm is input to the PUF unit 21.
  • step S22 the PUF unit 21 transmits the second PUF output value W * m with respect to the second input data Xm to the condition monitoring unit 30.
  • step S23 the state monitoring section 30, the Hamming distance between the first 2PUF output value W * m and Wm1, Hamming distance between the first 2PUF output value W * m and Wm2, humming the first 2PUF output value W * m and Wm3 Calculate the distance and the Hamming distance between the second PUF output values W * m and Wm3.
  • the condition monitoring unit 30 is registered in the newly output second PUF output value W * m and the non-volatile memory 120.
  • the Hamming distance which is the degree of similarity with each second PUF output value Wmi of a plurality of sets [Hi, Wmi], is calculated.
  • the condition monitoring unit 30 determines whether each Hamming distance satisfies the threshold value th set as the allowable limit, and if each Hamming distance satisfies the threshold value th, which of the plurality of sets [Hi, Wmi] is set in step S25.
  • the pair of is also maintained without updating. The smaller the value, the more similar the similarity is.
  • step S25 the state monitoring unit 30 ends the state monitoring process S20. Further, when the key regeneration process S30 is involved, the key K is regenerated.
  • FIG. 6 shows the logical configuration of the key regeneration process S30 by the key generation unit 20.
  • the second calculation unit 27, the decoding unit 24, the third calculation unit 28, and the hash unit 25 constitute the key reproduction unit 20-1.
  • FIG. 7 is a flowchart showing the key regeneration process S30.
  • the key regeneration process S30 includes a state monitoring process S20.
  • steps S21, S22, S23, S24, S25, and S26 are steps of the state monitoring process S20.
  • Step S24-1 and steps S31 to S36 are steps specific to the key regeneration process S30.
  • the condition monitoring process S20 will be described with reference to FIGS. 6 and 7.
  • the key reproduction unit 20-1 shown in FIG. 6 determines when the condition monitoring unit 30 determines that the auxiliary data Hi to be used for regenerating the key K exists in a plurality of sets [Hi, Wmi].
  • the key K is regenerated based on the generated auxiliary data Hi and the newly output first PUF output value W *. Specifically, it is as follows.
  • step S24-1 it is determined whether or not the first input data X has been input in step S21. It is assumed that the information on whether or not the first input data X has been input is transmitted from the key generation unit 20 to the state monitoring unit 30. If the first input data X is not input, the process proceeds to step S25. When the first input data X is input, the process proceeds to step S31.
  • step S31 the condition monitoring unit 30 transmits the Wmi index “i” having the smallest Hamming distance among the Hamming distances calculated in step S23 to the auxiliary data management unit 10 as the auxiliary data selection signal SG31.
  • i 4.
  • step S32 the auxiliary data management unit 10 transmits the auxiliary data H4 to the key generation unit 20.
  • step S33 the second calculation unit 27 calculates the exclusive OR of the auxiliary data H4 and the first PUF output value W * of the first input data X input in step S21.
  • the calculation result of the exclusive OR is input to the decoding unit 24.
  • step S34 the decoding unit 24 corrects the input data into the codeword C and outputs the data.
  • the decoding unit 24 is a circuit having an algorithm capable of error correction if HD (V1, V2) ⁇ t. If the error can be corrected, the decoding unit 24 corrects the input data into the code word C and outputs the data.
  • step S35 the third calculation unit 28 calculates the exclusive OR of the auxiliary data H4 and C output from the decoding unit 24.
  • step S363 the hash unit 25 inputs the W output from the third calculation unit 28 into the hash function, and regenerates the same key K as at the time of key generation.
  • FIG. 8 is a flowchart showing the re-registration process S40.
  • the re-registration process S40 will be described with reference to FIG.
  • the re-registration process S40 is substantially the key generation process S10.
  • the state monitoring process S20 when there is no Wmi satisfying the threshold value th, the re-registration process S40 is executed. Specifically, when the process proceeds to step S26 of the state monitoring process S20, the re-registration process S40 is executed.
  • step S23 as shown in FIGS. 4 and 6, the condition monitoring unit 30 was newly output when both the first PUF output value W * and the second PUF output value W * m were newly output.
  • the Hamming distance which is the similarity between the second PUF output value W * m and each of the second output values Wmi of a plurality of sets, is calculated.
  • step S24 the condition monitoring unit 30 has auxiliary data Hi to be used for regenerating the key K in a plurality of sets [Hi, Wmi] based on each similarity, that is, based on each Hamming distance. Determine if you want to.
  • Step S26 the re-registration process S40 is started.
  • Step S26 of FIG. 8 is step S26 of FIG.
  • the condition monitoring unit 30 has a second PU output value Wmi that does not satisfy the threshold value th among the plurality of sets [Hi, Wmi] stored in the non-volatile memory 120.
  • the rewrite request signal corresponds to the auxiliary data selection signal SG31 output with the output of the re-registration signal SG2 and the re-registration signal SG2.
  • the condition monitoring unit 30 determines that the Hamming distances of a plurality of sets [Hi, Wmi] stored in the non-volatile memory 120 when all of the calculated Hamming distances do not satisfy the threshold value th. Outputs a rewrite request signal requesting rewriting of the set having the smallest second PUF output value Wmi.
  • the PUF unit 21 inputs the first input data X and the second input data Xm triggered by the output of the rewrite request signal.
  • the PUF unit 21 outputs the first PUF output value W and the second PUF output value Wm with respect to the inputs of the first input data X and the second input data Xm.
  • the random number generation unit 22, the coding unit 23, and the first calculation unit 26 shown in FIG. 2 constitute an auxiliary data generation unit 20-2.
  • the auxiliary data generation unit 20-2 newly generates auxiliary data H based on the first PUF output value W output triggered by the output of the rewrite request signal.
  • the condition monitoring unit 30 satisfies the threshold value th of the plurality of sets [Hi, Wmi] with the set of the newly generated auxiliary data and the second PUF output value Wm output triggered by the output of the rewrite request signal. Do not rewrite any set that includes the second PUF output value Wmi. Specifically, it is as follows.
  • step S26 the condition monitoring unit 30 transmits the re-registration signal SG32 to the key generation unit 20. Further, the condition monitoring unit 30 transmits the auxiliary data selection signal SG31 for designating the index “i” of the auxiliary data Hi to be overwritten to the auxiliary data management unit 10.
  • the total Hamming distances from Wm1 to Wm4 do not satisfy the threshold value th in the determination in step S24.
  • the condition monitoring unit 30 updates Wmi, which has the smallest Hamming distance from the second PUF output value W * m. That is, the pair of Wmi having the smallest Hamming distance and the auxiliary data Hi corresponding to Wmi is updated.
  • the condition monitoring unit 30 transmits the re-registration signal SG32 to the key generation unit 20. Further, the condition monitoring unit 30 transmits the auxiliary data selection signal SG31 indicating the index “3” to the auxiliary data management unit 10. The condition monitoring unit 30 adds information indicating that it is the auxiliary data selection signal SG31 for re-registration to the auxiliary data selection signal SG31.
  • step S26 the key generation process S10 is executed.
  • the first input data X and the second input data Xm are input to the PUF unit 21 in step S11, triggered by the reception of the re-registration signal SG32.
  • Steps S11 to S19 are key generation processes S10.
  • the pair of Wm in step S13 of the key generation process S10 and the auxiliary data H in step S19 is overwritten by the pair of Wm3 and H3.
  • FIG. 9 shows the hardware configuration of the key generation device 1.
  • the hardware configuration of the key generation device 1 will be described with reference to FIG.
  • the key generation device 1 is used as a device for generating and regenerating the key K used in the encryption processing ENC and the decryption processing DEC.
  • the key generation device 1 includes a processor 110.
  • the key generation device 1 includes other hardware such as a non-volatile memory 120, a volatile memory 130, an input / output circuit 140, and a key generation circuit 20A.
  • the processor 110 is connected to other hardware via the local bus 150 and controls the other hardware.
  • the auxiliary data management unit 10 shown in FIG. 1 is realized by a program, a processor 110, and a non-volatile memory 120.
  • the key generation unit 20 is realized by the key generation circuit 20A.
  • the key generation circuit 20A includes a PUF circuit 21A, a random number generation circuit 22A, a coding circuit 23A, a decoding circuit 24A, a hash circuit 25A, a first calculation circuit 26A, a second calculation circuit 27A, and a third calculation circuit 28A.
  • the PUF unit 21, the random number generation unit 22, the coding unit 23, the decoding unit 24, the hash unit 25, the first calculation unit 26, the second calculation unit 27, and the third calculation unit 28 are the PUF circuit 21A and the random number generation circuit 22A.
  • the condition monitoring unit 30 is realized by the program and the processor 110.
  • the program that realizes the auxiliary data management unit 10 and the program that realizes the state monitoring unit 30 are stored in the non-volatile memory 120.
  • the processor 110 is an IC (Integrated Circuit) that performs arithmetic processing.
  • Specific examples of the processor 110 are a CPU (Central Processing Unit), a DSP (Digital Signal Processor), and a GPU (Graphics Processing Unit).
  • non-volatile memory 120 is an HDD (Hard Disk Drive). Further, the non-volatile memory 120 may be a portable recording medium such as an SD (registered trademark) (Secure Digital) memory card or a NAND flash.
  • the non-volatile memory 120 stores a set of auxiliary data Hi and a second PUF output value Wmi.
  • the non-volatile memory 120 is a storage unit. As shown in FIG. 9, the non-volatile memory 120 includes auxiliary data Hi, which is data generated when the first input data X is used for key generation, and is used for key regeneration, and auxiliary data Hi.
  • a plurality of sets of the second output PUF output value Wmi output from the PUF unit 21 with respect to the input of the second input data Xm input when the data H is generated are stored.
  • four sets of H1 and Wm1, H2 and Wm2, H3 and Wm3, and H4 and Wm4 are stored in the non-volatile memory 120.
  • volatile memory 130 SRAM (Static Random Access Memory) and DRAM (Dynamic Random Access Memory).
  • the input / output circuit 140 is a circuit that inputs / outputs data to / from an external device via the external port 141.
  • control function of the auxiliary data management unit 10 and the function of the condition monitoring unit 30 are realized by executing the program by the processor 110.
  • control function of the auxiliary data management unit 10 and the function of the condition monitoring unit 30 may be realized by hardware.
  • FIG. 10 is a diagram showing a configuration in which the function of the key generation device 1 is realized by hardware.
  • the electronic circuit 90 of FIG. 10 is a dedicated electronic device that realizes the functions of the auxiliary data management unit 10, the key generation unit 20, the state monitoring unit 30, the non-volatile memory 120, the volatile memory 130, and the input / output circuit 140 of the key generation device 1. It is a circuit.
  • the electronic circuit 90 is connected to the signal line 91.
  • the electronic circuit 90 is a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA, an ASIC, or an FPGA.
  • GA is an abbreviation for Gate Array.
  • ASIC is an abbreviation for Application Special Integrated Circuit.
  • FPGA is an abbreviation for Field-Programmable Gate Array.
  • the functions of the components of the key generation device 1 may be realized by one electronic circuit, or may be distributed and realized by a plurality of electronic circuits. Further, as described with reference to FIG. 9, some functions of the components of the key generation device 1 may be realized by an electronic circuit, and the remaining functions may be realized by software.
  • Each of the processor 110 and the electronic circuit 90 is also called a processing circuit.
  • the functions of the auxiliary data management unit 10, the key generation unit 20, and the status monitoring unit 30 may be realized by the processing circuit.
  • the functions of the auxiliary data management unit 10, the key generation unit 20, the condition monitoring unit 30, the non-volatile memory 120, the volatile memory 130, and the input / output circuit 140 may be realized by the processing circuit.
  • FIG. 11 qualitatively shows the error rate of the output of the PUF unit 21.
  • the horizontal axis shows environmental changes such as temperature changes
  • the vertical axis shows the error rate of the output of the PUF unit 21.
  • the error rate has a V-shaped characteristic as shown in FIG. FIG.
  • FIG. 12 shows the characteristics of the error rate of the output of the PUF unit 21 in the key generation device 1.
  • a plurality of V-shaped characteristics corresponding to each auxiliary data Hi are shifted to the left and right and combined.
  • the V-th order graphs of Wm1, Wm2, Wm3 and Wm4 in FIG. 12 correspond to H1, H2, H3 and H4, respectively.
  • which V-shaped graph is used for regeneration is determined on the Wmi V-shape having the smallest Hamming distance as a result of condition monitoring. Therefore, according to the key generation device 1, the key regeneration environment closest to the current operating environment can be searched by the determination based on the Hamming distance.
  • the V-shape shown in FIG. 12 is formed during the operation period of the key generation device 1 by the re-registration process S40 of the set of the auxiliary data H for status monitoring and the second PUF output value Wm. It can be dynamically shifted. That is, the V-shaped characteristic determined at the shipping stage of the key generator 1 can be sequentially updated to the V-shaped characteristic suitable for the current operation. For example, when Wm1 to Wm4 are registered, the key generator 1 newly updates the set of the auxiliary data H1 and the second PUF output value Wm1 with the set of the auxiliary data H5 and the second PUF output value Wm5. .. As a result, the key generation device 1 can regenerate the key using the auxiliary data H5 in the current environment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Lock And Its Accessories (AREA)

Abstract

鍵生成装置(1)は、鍵生成に使用される第1入力データ(X)の入力に対して第1PUF出力値を出力し、鍵生成の環境を監視する第2入力データ(Xm)の入力に対して第2PUF出力値を出力するPUF部(21)と、補助データと、補助データの生成の際に入力された第2入力データに対して出力された第2PUF出力値との複数の組を格納する不揮発メモリと、第1PUF出力値(W)と第2PUF出力値(Wm)とが共に新たに出力されると、第2PUF出力値(Wm)と複数の組の各第2出力値とのハミング距離を計算し、各ハミング距離に基づき、鍵の再生成に使用するべき補助データ(H)が複数の組の中に存在するかを判定する状態監視部(30)と、補助データ(H)が存在する場合、この補助データ(H)と第1PUF出力値(W)とに基づき鍵Kを再生成する鍵再生成部(20-1)と備える。

Description

鍵生成装置
 本開示は、PUF(Physical Unclonable Function)を用いて鍵を生成し、かつ、PUFを用いて鍵を再生成する鍵生成装置に関する。
 暗号処理で用いる秘密情報あるいは装置を認証するために必要な装置固有の識別子を、PUFを用いて、長期間にわたり安定的かつ安全に管理する従来技術がある。特許文献1では、鍵生成の失敗頻度を観測し、現在の動作環境で生成される鍵情報によって秘密情報を再包装化し、再包装化された秘密情報を不揮発メモリに格納する技術が開示されている。具体的には、特許文献1では、時間的変動による鍵情報kの生成に失敗する頻度を検出し、失敗の頻度が高くなった場合は、新たに現在の動作環境で生成される鍵情報k’によって秘密情報mkを再包装化し、不揮発メモリに格納する。これにより、あらたな鍵情報k’は元の鍵情報kに対して時間的変動が小さくなるため、鍵情報kの生成に失敗する頻度を再度低くすることができるとしている。
 特許文献1に開示された技術は、時間的変動によって徐々にPUFの出力が変化する状況においては有効である。しかし、ダイナミックに動作環境が変化する状況においては、鍵生成が困難となる可能性がある。例えば、短時間で温度変化が発生するアプリケーションしては航空宇宙用途及び防衛用途のアプリケーションが挙げられる。これらの用途における半導体では、温度動作範囲が、-55°Cから+125°Cの範囲が想定されており、一般的な半導体の動作温度範囲よりも広い。また、これらの用途における半導体では、環境温度が急激に変化することが予想される。温度変化以外にも、振動あるいは電波環境のような、設計段階では予測困難な環境変化が、鍵生成に影響を与える可能性がある。
国際公開第2012/164721号パンフレット
 本開示は、鍵生成装置の使用環境に急激な環境変化があって場合においても、安定してPUFによる鍵の再生成の可能な鍵生成装置の提供を目的とする。
 本開示に係る鍵生成装置は、
 鍵生成に使用される第1データが入力され、前記第1データの入力に対して、物理的に複製不能な機能であるPUFを用いて第1出力値を出力し、前記第1データと値が異なると共に前記鍵生成の環境を監視する第2データが入力され、前記第2データの入力に対して、前記PUFを用いて第2出力値を出力するPUF部と、
 前記第1データが使用された前記鍵生成の際に生成されたデータであり、鍵の再生成に使用されるデータである補助データと、前記補助データの生成の際に入力された前記第2データの入力に対して出力された前記第2出力値との複数の組を格納している記憶部と、
 前記第1出力値と前記第2出力値とが共に新たに出力されると、新たに出力された前記第2出力値と前記複数の組の各第2出力値との類似度を計算し、各類似度に基づいて、前記鍵の再生成に使用するべき前記補助データが前記複数の組の中に存在するかを判定する判定部と、
 前記鍵の再生成に使用するべき前記補助データが前記複数の組の中に存在すると判定された場合に、判定された前記補助データと、新たに出力された前記第1出力値とに基づいて、前記鍵を再生成する鍵再生成部と、
を備える。
 本開示によれば、鍵生成装置の使用環境に急激な環境変化があって場合においても、安定してPUFによる鍵の再生成の可能な鍵生成装置を提供できる。
実施の形態1の図で、鍵生成装置1のブロック図。 実施の形態1の図で、鍵生成部20による鍵生成処理S10の論理構成図。 実施の形態1の図で、鍵生成処理S10を示すフローチャート。 実施の形態1の図で、状態監視部30による状態監視処理S20の論理構成を示す図。 実施の形態1の図で、状態監視処理S20を示すフローチャート。 実施の形態1の図で、鍵生成部20による鍵再生成処理S30の論理構成を示す図。 実施の形態1の図で、鍵再生成処理S30を示すフローチャート。 実施の形態1の図で、再登録処理S40を示すフローチャート。 実施の形態1の図で、鍵生成装置1のハードウェア構成を示す図。 実施の形態1の図で、鍵生成装置1の機能をハードウェアで実現する構成を示す図。 実施の形態1の図で、PUF部21の出力の誤り率を定性的に示す図。 実施の形態1の図で、PUF部21の出力の誤り率の特性を示す別の図。
 以下、実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
<第1入力データX及び第2入力データXm>
 実施の形態1における第1入力データXと第2入力データXmについて述べる。第1入力データXは、鍵Kを生成するためにPUF部21に入力されるデータである。第2入力データXmは、鍵Kが生成される環境を監視するためにPUF部21に入力されるデータである。第1入力データXの値は、変更されない。例えば、第1入力データXに8ビットの「11110000」が使用されるとすれば、「11110000」が第1入力データXとして継続して使用される。第2入力データXmについても値は変更されない。例えば、第2入力データXmに8ビットの「10101010」が使用されるとすれば、「10101010」が第2入力データXmとして継続して使用される。
<第1PUF出力値W及び第2PUF出力値Wm>
 第1入力データXの入力に対するPUF部21の出力を、第1PUF出力値Wと表記する。第2入力データXmの入力に対するPUF部21の出力を、第2PUF出力値Wmと表記する。また、鍵生成処理S10以外の第1PUF出力値W及び第2PUF出力値Wmは、第1PUF出力値W及び第2PUF出力値Wmのように*を付けて表記する。
 次に実施の形態1に登場する主要な用語を説明する。
<鍵生成処理S10>
 鍵生成処理S10は、第1入力データXを用いて鍵Kを生成する処理である。なお、実施の形態1には鍵生成処理S10とは異なる鍵の再生成処理S30が登場する。鍵再生成処理S30では、補助データHが使用されるのに対して、鍵生成処理S10では補助データHは使用されない。
<状態監視処理S20>
 状態監視処理S20では、第2入力データXmから第2PUF出力値Wmが取得される。第2PUF出力値Wmは、Wm1,Wm2,Wm3,Wm4のそれぞれとのハミング距離が計算される。
<鍵再生成処理S30>
 新たな第1入力データXに対する第1PUF出力値Wと、登録されている補助データH1,H2,H3,H4のどれかとから、鍵Kが再生成される。鍵再生成処理S30は、状態監視処理を含んでいる。
<再登録処理S40>
 再登録処理S40とは、補助データHと第2PUF出力値Wmとの組が再び登録される処理である。再登録処理S40の内容は、鍵生成処理S10である。
 実施の形態1.
***構成の説明***
 図1は、実施の形態1の鍵生成装置1のブロック図を示す。図1を参照して鍵生成装置1の機能構成を説明する。鍵生成装置1は、補助データ管理部10、鍵生成部20、状態監視部30を備える。状態監視部30は判定部である。
<補助データ管理部10>
 補助データ管理部10は、PUF部21による鍵生成に必要な補助データHを複数持つ。実施の形態1では、補助データ管理部10は、H1、H2、H3、H4の4種類の補助データを保持する。4種類は単なる例示である。補助データ管理部10の保持する補助データの数は限定されない。補助データを区別する必要のない場合は、補助データをHiと表記する。Hiにおいてi=1,2,3,4である。
<鍵生成部20>
 鍵生成部20は、補助データHiを用いて鍵再生成を行う。鍵生成部20の主要な構成要素として、PUF部21、乱数生成部22、コード化部23、デコード部24、ハッシュ部25、第1計算部26、第2計算部27及び第3計算部28を備えている。各構成要素の機能は動作の説明で述べる。なお、図9で後述するように、鍵生成部20は鍵生成回路20Aとして、ハードウェアで実現される。PUF部21から第3計算部28も、図9で後述するように、ぞれぞれ、回路で実現される。
<状態監視部30>
 状態監視部30は、補助データ管理部10に格納されているH1、H2、H3、H4と、同一の動作環境下でPUF部21から出力された第2PUF出力値であるWm1、Wm2、Wm3、Wm4を管理する。Wm1、Wm2、Wm3、Wm4をWmi(i=1,2,3,4)と表記する。HiとWmiとは、鍵生成装置1における同じ動作環境下で、かつ、互いに時間的に近いタイミングで生成されたペアーである。
 例えば、
H1とWm1とは、100℃の動作環境で、互いに時間的に近いタイミングで生成されたペアーであり、
H2とWm2とは、200℃の動作環境で、互いに時間的に近いタイミングで生成されたペアーであり、
H3とWm3とは、300℃の動作環境で、互いに時間的に近いタイミングで生成されたペアーであり、
H4とWm4とは、400℃の動作環境で、互いに時間的に近いタイミングで生成されたペアーである。
 つまり、補助データHiが生成されたタイミングと時間的に近いタイミングで生成された第2PUF出力値Wmiが、Wmiとして格納される。なお、第2PUF出力値Wmiは鍵生成に用いる第1PUF出力値Wとは別の系列である。つまり、第2PUF出力値Wmiは、第2入力データXmの入力に対するPUF部21の出力であり、第1PUF出力値Wは、第1入力データXの入力に対するPUF部21の出力である。
***動作の説明***
 次に図1を参照して、補助データ管理部10、鍵生成部20及び状態監視部30の動作の概要を説明する。
 補助データ管理部10は、状態監視部30から送信された補助データ選択信号SG31の示すインデックス「i」の補助データHiを、鍵生成部20へ送信する。また、補助データHiの再登録処理S40では、補助データ管理部10は、補助データ選択信号SG31の示すインデックス「i」の補助データHiを、鍵生成部20から送信される再登録のための補助データHで上書きする。
<鍵生成部20>
 鍵生成部20では、ハッシュ部25が鍵Kを出力する。PUF部21は、第2PUF出力値を状態監視部30に送信する。鍵生成部20は、状態監視部30から再登録信号SG32を受信した場合、鍵生成処理S10を実行して補助データHを新たに作成し、補助データHを補助データ管理部10に送信する。
<状態監視部30>
 状態監視部30は、PUF部21から出力される第2PUF出力値Wmと、既に登録されている第2PUF出力値であるWm1、Wm2、Wm3、Wm4とを用いて、状態監視処理S20を行う。状態監視処理S20の結果から、鍵再生成処理S30に伴う状態監視処理S20であれば、状態監視部30は補助データ選択信号SG31を生成し、補助データ選択信号SG31を補助データ管理部10に送信する。
 また、状態監視処理S20の結果、補助データHの再登録処理S40を行う場合は、状態監視部30は、再登録信号SG32を鍵生成部20に送信し、かつ、上書きする補助データHiのインデックス「i」を指定する補助データ選択信号SG31を、補助データ管理部10に送信する。状態監視部30は、鍵生成部20から出力される第2PUF出力値Wmによって、補助データ選択信号SG31の示すインデックス「i」に対応するWmiを上書きする。
 次に、図1の説明で述べた、鍵生成処理S10、状態監視処理S20、鍵再生成処理S30及び再登録処理S40を説明する。
<鍵生成処理S10>
 図2は、鍵生成部20による鍵生成処理S10の論理構成を示す。
 図3は、鍵生成処理S10を示すフローチャートである。なお図3、図5、図7、図8の各フローチャートで括弧書きで示す機能要素は、動作の主体であることを示す。図2及び図3を参照して鍵生成処理S10を説明する。
<ステップS11>
 ステップS11において、PUF部21に第1入力データX及び第2入力データXmが入力される。
 PUF部21は、鍵生成に使用される第1データが入力され、第1入力データXの入力に対して、物理的に複製不能な機能であるPUFを用いて第1出力値を出力する。第1入力データXは第1データであり、第1PUF出力値は第1出力値である。またPUF部21は、第1入力データと値が異なると共に鍵生成の環境を監視する第2入力データXmが入力され、第2入力データXmの入力に対して、PUFを用いて第2PUF出力値を出力する。
 具体的には以下のようである。PUF部21は、「事前に設定されたmビットの入力データ」に対して、nビットの出力値を返す回路である。PUF部21は、第1入力データXに対して第1PUF出力値Wを返えし、第2入力データXmに対して第2PUF出力値Wmを返えす。PUF部21は、同一の入力データであっても、必ず同じ出力値を返すとは限らない。しかし、環境条件が似ている場合には、1回目に入力された入力データD1に対する出力値V1と、2回目に入力された1回目と同じ入力データD1に対する出力値V2とのハミング距離HD(V1,V2)は、ある一定値t未満となることが保証される。
すなわち、
HD(V1,V2)<t
である。なお入力データD1は、第1入力データXあるいは第2入力データXmである。
似ている環境条件とは、例えばPUF部21が出力値V1を出力する環境温度は40度であり、PUF部21が出力値V2を出力する環境温度は42度のような場合である。
 ステップS11では、PUF部21は、第1入力データXの入力に対して第1PUF出力値Wを出力し、第2入力データXmの入力に対して第2PUF出力値Wmを出力する。
<ステップS12>
 ステップS12において、PUF部21は、第2PUF出力値Wmを状態監視部30へ送信する。
<ステップS13>
 ステップS13において、状態監視部30は、PUF部21から受信した第2PUF出力値Wmを後述する不揮発メモリ120に登録する。状態監視部30がPUF部21から受信した第2PUF出力値Wmは第2PUF出力値Wm1とする。また、不揮発メモリ120には、第2PUF出力値Wm1のみが登録されているとする。
<ステップS14>
 ステップS14において、ハッシュ部25は、第1PUF出力値Wから鍵Kを生成する。ハッシュ部25は、nビットの第1PUF出力値WをLビットに変換する汎用ハッシュ回路である。ハッシュ部25の出力が、鍵Kとして使用される。
<ステップS15>
 ステップS15において、乱数生成部22は、kビットの乱数Rを出力する。
<ステップS16>
 ステップS16において、コード化部23は、kビットの乱数Rを符号化して、nビットの符号語Cを出力する。コード化部23は、線形符号回路である。
 <ステップS17>
 ステップS17において、第1計算部26は、第1PUF出力値Wと、符号語Cとの排他的論理和を計算し、計算結果を補助データHiとして出力する。補助データHiは、補助データH1とする。
<ステップS18>
 ステップS18において、第1計算部26は、補助データH1を補助データ管理部10へ送信する。
<ステップS19>
 ステップS19において、補助データ管理部10は受信した補助データH1を不揮発メモリ120に登録する。なお、ステップS13で登録される第2PUF出力値Wm1と、このステップS19で登録される補助データH1とは、インデックス「1」によって、対応付けられている。
 つまり、不揮発メモリ120に登録される補助データHiと第2PUF出力値Wmiとの組は、鍵生成部20によって対応付けられている。例えば、補助データHiと第2PUF出力値Wmiとは、以下のように対応付けられる。PUF部21は第2PUF出力値Wmにインデックス「i」を付加する。また、図2において、PUF部21は、第1PUF出力値Wに、第2PUF出力値Wmのインデックス「i」の情報を付加する。これにより、第1計算部26は、入力される第1PUF出力値Wについてインデックス「i」を特定する。第1計算部26は、インデックス「i」が特定された第1PUF出力値Wから生成される補助データHに、インデックス「i」を付加することができる。
 ステップS19の終了時点で、補助データ管理部10には補助データH1のみが登録されており、状態監視部30には第2PUF出力値Wm1のみが登録されている。つまり、ステップS19の終了時点で、補助データH1と第2PUF出力値Wm1との組のみが登録されている。上記のステップS11からステップS19が繰り返されることで、補助データH2と第2PUF出力値Wm2との組、補助データH3と第2PUF出力値Wm3との組、及び補助データH4と第2PUF出力値Wm4との組が登録されて、図1に示す状態になる。
<状態監視処理S20>
 図4は、状態監視部30による状態監視処理S20の論理構成を示す。
 図5は、状態監視処理S20を示すフローチャートである。図4及び図5を参照して状態監視処理S20を説明する。
<ステップS21>
 ステップS21において、PUF部21に第2入力データXmが入力される。
<ステップS22>
 ステップS22において、PUF部21は、第2入力データXmに対する第2PUF出力値Wmを状態監視部30へ送信する。
<ステップS23>
 ステップS23において、状態監視部30は、第2PUF出力値WmとWm1とのハミング距離,第2PUF出力値WmとWm2とのハミング距離,第2PUF出力値WmとWm3とのハミング距離,及び、第2PUF出力値WmとWm3とのハミング距離を計算する。
 図4に示すように、状態監視部30は、第2PUF出力値Wmが新たに出力されると、新たに出力された第2PUF出力値Wmと、不揮発メモリ120に登録されている複数の組[Hi,Wmi]の各第2PUF出力値Wmiとの類似度であるハミング距離を計算する。状態監視部30は、各ハミング距離が許容限度として設定されている閾値thを満足するかを判定し、各ハミング距離が閾値thを満たす場合、ステップS25で複数の組[Hi,Wmi]のいずれの組も更新せず維持する。類似度は、値が小さいほど似ていることを示す。
<ステップS24>
 ステップS24において、状態監視部30は、計算したハミング距離が、閾値thを満たすWmi(i=1,2,3,4)が存在するか判定する。閾値thを満たすWmiが、1以上ある場合、処理はステップS25に進む。閾値thを満たすWmiが一つもない場合、処理はステップS26に進む。
<ステップS25>
 ステップS25において、状態監視部30は、状態監視処理S20を終了する。また、鍵再生成処理S30を伴う場合、鍵Kが再生成される。
<鍵再生成処理S30>
 図6は、鍵生成部20による鍵再生成処理S30の論理構成を示す。図6において、第2計算部27、デコード部24、第3計算部28、ハッシュ部25は鍵再生部20-1を構成する。
 図7は、鍵再生成処理S30を示すフローチャートである。
鍵再生成処理S30は状態監視処理S20を含んでいる。図7においてステップS21,S22,S23,S24,S25,S26は状態監視処理S20のステップである。ステップS24-1、及びステップS31からステップS36は、鍵再生成処理S30に特有のステップである。
図6及び図7を参照して状態監視処理S20を説明する。
 図6に示す鍵再生部20-1は、鍵Kの再生成に使用するべき補助データHiが複数の組[Hi,Wmi]の中に存在すると状態監視部30によって判定された場合に、判定された補助データHiと、新たに出力された第1PUF出力値Wとに基づいて、鍵Kを再生成する。具体的には以下のようである。
 ステップS21からステップS26は状態監視処理S20で説明したので、これらの説明は省略する。
<ステップS24-1>
 ステップS24-1において、ステップS21で第1入力データXが入力されたかどうかを判定する。第1入力データXが入力されたかどうかの情報は、鍵生成部20から状態監視部30に送信されるとする。第1入力データXが入力されていない場合、処理はステップS25に進む。第1入力データXが入力されている場合、処理はステップS31に進む。
<ステップS31>
 ステップS31において、状態監視部30は、ステップS23で計算したハミング距離の中で最も小さいハミング距離のWmiのインデックス「i」を、補助データ選択信号SG31として、補助データ管理部10へ送信する。この例ではi=4とする。
<ステップS32>
 ステップS32において、補助データ管理部10は、補助データH4を鍵生成部20へ送信する。
<ステップS33>
 ステップS33において、第2計算部27は、補助データH4と、ステップS21で入力された第1入力データXの第1PUF出力値Wとの排他的論理和を計算する。排他的論理和の計算結果は、デコード部24に入力される。
<ステップS34>
 ステップS34において、デコード部24は、入力データを符号語Cに訂正して出力する。デコード部24は、HD(V1,V2)<tであれば誤り訂正可能なアルゴリズムを持つ回路である。デコード部24は、誤り訂正可能な場合、入力データを符号語Cに訂正して出力する。第2計算部27によって計算される、補助データH4と第1PUF出力値Wとの排他的論理和は以下のようである。
以下では、[+]は排他的論理和を示す記号とする。
H4=W[+]C
である。よって、第1PUF出力値Wと補助データH4との排他的論理和は、
[+]H4=W[+]W[+]C
である。
[+]W=Eとおく。
Eを誤りベクトルとすれば
Decode(W[+]H4)
=Decode(W[+]W[+]C)
=Decode(E[+]C)=C
となり、E[+]Cは、Cに訂正される。
よって、図6のデコード部24の出力はCとなる。
<ステップS35>
 ステップS35において、第3計算部28は、補助データH4と、デコード部24から出力されたCとの排他的論理和を計算する。
第3計算部28は、
H4[+]C=W[+]C[+]C=W
を計算して、出力する。
<ステップS36>
 ステップS363において、ハッシュ部25は、第3計算部28から出力されたWをハッシュ関数に入力し、鍵生成時と同一の鍵Kを再生成する。
<再登録処理S40>
 図8は、再登録処理S40を示すフローチャートである。図8を参照して再登録処理S40を説明する。再登録処理S40は、実質的には鍵生成処理S10である。状態監視処理S20において、閾値thを満足するWmiが存在しない場合に、再登録処理S40が実行される。具体的には処理が状態監視処理S20のステップS26に進む場合に、再登録処理S40が実行される。
 なおステップS23において、図4及び図6に示すように、状態監視部30は、第1PUF出力値Wと第2PUF出力値Wmとが共に新たに出力されると、新たに出力された第2PUF出力値Wmと複数の組の各第2出力値Wmiとの類似度であるハミング距離を計算する。状態監視部30は、ステップS24において、各類似度に基づいて、つまり各ハミング距離に基づいて、鍵Kの再生成に使用するべき補助データHiが複数の組[Hi,Wmi]の中に存在するかを判定する。
<ステップS26>
 ステップS26において、再登録処理S40が開始される。図8のステップS26は図5のステップS26である。
 状態監視部30は、計算した各ハミング距離の少なくとも一つが閾値thを満足しない場合、不揮発メモリ120に格納されている複数の組[Hi,Wmi]のうち閾値thを満足しない第2PU出力値Wmiを有する組の書き換えを要求する書き換え要求信号を出力する。
書き換え要求信号には、再登録信号SG2及び再登録信号SG2の出力に伴って出力される補助データ選択信号SG31が相当する。なお、以下に説明する例では、状態監視部30は、計算した各ハミング距離の全部が閾値thを満足しない場合に、不揮発メモリ120に格納されている複数の組[Hi,Wmi]のハミング距離の最も小さい第2PUF出力値Wmiを有する組の書き換えを要求する書き換え要求信号を出力する。
 PUF部21は、再登録処理S40のステップS11において、書き換え要求信号の出力を契機として第1入力データXと第2入力データXmとが入力される。PUF部21は、第1入力データXと第2入力データXmとの入力に対して、第1PUF出力値Wと第2PUF出力値Wmとを出力する。
 図2に示す乱数生成部22、コード化部23及び第1計算部26は、補助データ生成部20-2を構成する。図2に示すように、補助データ生成部20-2は、書き換え要求信号の出力を契機として出力された第1PUF出力値Wに基づいて、補助データHを新たに生成する。
 状態監視部30は、新たに生成された補助データと、書き換え要求信号の出力を契機として出力された第2PUF出力値Wmとの組で、複数の組[Hi,Wmi]のうち閾値thを満足しない第2PUF出力値Wmiを含むいずれかの組を書き換える。具体的には以下のようである。
 ステップS26では、状態監視部30は、再登録信号SG32を鍵生成部20に送信する。また、状態監視部30は、上書きする補助データHiのインデックス「i」を指定する補助データ選択信号SG31を、補助データ管理部10に送信する。ステップS26に進む場合は、ステップS24の判定においてWm1からWm4の全部のハミング距離が、閾値thを満たさない。状態監視部30は、第2PUF出力値Wmとのハミング距離が最も小さいWmiを更新する。つまり、ハミング距離が最も小さいWmiと、Wmiに対応する補助データHiとの組を更新する。この例ではWm3が最もハミング距離が小さいとする。その場合、状態監視部30は、鍵生成部20へ再登録信号SG32を送信する。また、状態監視部30は、インデックス「3」を示す補助データ選択信号SG31を補助データ管理部10へ送信する。状態監視部30は、この補助データ選択信号SG31に、再登録用の補助データ選択信号SG31であることを示す情報を付加する。
 ステップS26以降は、鍵生成処理S10が実行される。鍵生成部20では、再登録信号SG32の受信を契機として、ステップS11において、PUF部21に第1入力データXと、第2入力データXmとが入力される。ステップS11からステップS19は鍵生成処理S10である。鍵生成処理S10のステップS13のWmと、ステップS19の補助データHとの組が、Wm3とH3との組に上書きされる。
 図9は、鍵生成装置1のハードウェア構成を示す。図9を参照して鍵生成装置1のハードウェア構成を説明する。鍵生成装置1は、暗号化処理ENC及び復号処理DECで用いる鍵Kを生成及び再生成する装置として使用される。
 鍵生成装置1は、プロセッサ110を備える。鍵生成装置1は、プロセッサ110の他に、不揮発メモリ120、揮発メモリ130、入出力回路140、及び鍵生成回路20Aといった、他のハードウェアを備える。プロセッサ110は、ローカルバス150を介して、他のハードウェアと接続され、他のハードウェアを制御する。
 図1に示す補助データ管理部10は、プログラム、プロセッサ110及び不揮発メモリ120で実現される。鍵生成部20は鍵生成回路20Aによって実現される。鍵生成回路20Aは、PUF回路21A、乱数生成回路22A、コード化回路23A、デコード回路24A、ハッシュ回路25A、第1計算回路26A、第2計算回路27A及び第3計算回路28Aを備えている。PUF部21、乱数生成部22、コード化部23、デコード部24、ハッシュ部25、第1計算部26、第2計算部27、及び第3計算部28は、PUF回路21A、乱数生成回路22A、コード化回路23A、デコード回路24A、ハッシュ回路25A、第1計算回路26A、第2計算回路27A及び第3計算回路28Aで実現される。状態監視部30は、プログラム及びプロセッサ110で実現される。補助データ管理部10を実現するプログラム及び状態監視部30を実現するプログラムは、不揮発メモリ120に格納されている。
 プロセッサ110は、演算処理を行うIC(Integrated Circuit)である。プロセッサ110の具体例は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
 不揮発メモリ120の具体例は、HDD(Hard Disk Drive)である。また、不揮発メモリ120は、SD(登録商標)(Secure Digital)メモリカード、NANDフラッシュといった可搬記録媒体であってもよい。不揮発メモリ120は、補助データHiと第2PUF出力値Wmiとの組を格納する。
 不揮発メモリ120は記憶部である。図9に示すように、不揮発メモリ120は、第1入力データXが使用された鍵生成の際に生成されたデータであり、鍵の再生成に使用されるデータである補助データHiと、補助データHの生成の際に入力された第2入力データXmの入力に対してPUF部21から出力された第2出PUF出力値Wmiとの複数の組を格納している。図9では、H1とWm1、H2とWm2、H3とWm3、H4とWm4との、4組が不揮発メモリ120に格納されている。
 揮発メモリ130の具体例は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
 入出力回路140は、外部ポート141を介して、外部の装置とデータを入出する回路である。
 図9では、補助データ管理部10の有する制御機能及び状態監視部30の機能は、プログラムをプロセッサ110が実行することで実現する。しかし、補助データ管理部10の有する制御機能及び状態監視部30の機能は、ハードウェアで実現してもよい。
 図10は、鍵生成装置1の機能をハードウェアで実現する構成を示す図である。
<ハードウェア構成の補足>
 図10の電子回路90は、鍵生成装置1の、補助データ管理部10、鍵生成部20、状態監視部30、不揮発メモリ120、揮発メモリ130、入出力回路140の機能を実現する専用の電子回路である。電子回路90は、信号線91に接続している。電子回路90は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。FPGAは、Field-Programmable Gate Arrayの略語である。鍵生成装置1の構成要素の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。また、図9で述べたように、鍵生成装置1の構成要素の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
 プロセッサ110と電子回路90の各々は、プロセッシングサーキットリとも呼ばれる。鍵生成装置1において、助データ管理部10、鍵生成部20及び状態監視部30の機能がプロセッシングサーキットリにより実現されてもよい。あるいは、補助データ管理部10、鍵生成部20、状態監視部30、不揮発メモリ120、揮発メモリ130及び入出力回路140の機能がプロセッシングサーキットリにより実現されてもよい。
***実施の形態1の効果***
 PUF部21の出力の誤り率は、鍵生成処理S10と鍵再生成処理S30との環境差によって変化する。鍵再生成処理S40が鍵生成処理S10に近い環境で実行されれば、PUF部21の出力の誤り率は小さい。一方環境差が大きければ誤り率は増大する。
 図11は、PUF部21の出力の誤り率を定性的に示す。図11では横軸は温度変化のような環境変化を示し、縦軸はPUF部21の出力の誤り率示す。この場合、誤り率は、図11のようにV字特性を持つ。
 図12は、鍵生成装置1におけるPUF部21の出力の誤り率の特性を示す。鍵生成装置1のように、複数の補助データHを用いて鍵生成を行った場合、各補助データHiに対応する複数のV字特性が、左右にシフトして合成した特性となる。図12のWm1、Wm2、Wm3及びWm4のV次グラフは、それぞれH1、H2、H3及びH4に対応する。
 鍵生成装置1では、図12において、どのV字グラフで再生成を行うかは、状態監視の結果、最もハミング距離が小さいWmiのV字上で行うことになる。
よって、鍵生成装置1によればハミング距離による判定によって、現在の動作環境と最も近い鍵再生成の環境が、探索できる。
 鍵生成装置1によれば、状態監視のための補助データHと第2PUF出力値Wmとの組の再登録処理S40によって、鍵生成装置1の運用期間中に、図12に示すV字を、動的にシフトすることができる。
 つまり、鍵生成装置1の出荷段階で決定されたV字特性から、逐次現在の運用に適合したV字特性に更新することができる。例えば、Wm1からWm4が登録されている場合に、鍵生成装置1は、新たに補助データH5と第2PUF出力値Wm5との組で、補助データH1と第2PUF出力値Wm1との組を更新する。これにより、鍵生成装置1は、現在の環境の補助データH5を用いた鍵再生成が可能となる。
 S10 鍵生成処理、S20 状態監視処理、S30 鍵再生成処理、S40 再登録処理、SG31 補助データ選択信号、SG32 再登録信号、W,W 第1PUF出力値、Wm,Wm 第2PUF出力値、X 第1入力データ、Xm 第2入力データ、1 鍵生成装置、10 補助データ管理部、20 鍵生成部、20-1 鍵再生成部、20-2 補助データ生成部、21 PUF部、22 乱数生成部、23 コード化部、24 デコード部、25 ハッシュ部、26 第1計算部、27 第2計算部、28 第3計算部、20A 鍵生成回路、21A PUF回路、22A 乱数生成回路、23A コード化回路、24A デコード回路、25A ハッシュ回路、26A 第1計算回路、27A 第2計算回路、28A 第3計算回路、30 状態監視部、110 プロセッサ、120 不揮発メモリ、130 揮発メモリ、140 入出力回路、141 外部ポート、150 ローカルバス。

Claims (5)

  1.  鍵生成に使用される第1データが入力され、前記第1データの入力に対して、物理的に複製不能な機能であるPUFを用いて第1出力値を出力し、前記第1データと値が異なると共に前記鍵生成の環境を監視する第2データが入力され、前記第2データの入力に対して、前記PUFを用いて第2出力値を出力するPUF部と、
     前記第1データが使用された前記鍵生成の際に生成されたデータであり、鍵の再生成に使用されるデータである補助データと、前記補助データの生成の際に入力された前記第2データの入力に対して出力された前記第2出力値との複数の組を格納している記憶部と、
     前記第1出力値と前記第2出力値とが共に新たに出力されると、新たに出力された前記第2出力値と前記複数の組の各第2出力値との類似度を計算し、各類似度に基づいて、前記鍵の再生成に使用するべき前記補助データが前記複数の組の中に存在するかを判定する判定部と、
     前記鍵の再生成に使用するべき前記補助データが前記複数の組の中に存在すると判定された場合に、判定された前記補助データと、新たに出力された前記第1出力値とに基づいて、前記鍵を再生成する鍵再生成部と、
    を備える鍵生成装置。
  2.  前記判定部は、
     前記第2出力値が新たに出力されると、新たに出力された前記第2出力値と前記複数の組の各第2出力値との類似度を計算し、各類似度が許容限度として設定されている閾値を満足するかを判定し、各類似度が前記閾値を満たす場合、前記複数の組を維持する請求項1に記載の鍵生成装置。
  3.  前記判定部は、
     計算した各類似度の少なくとも一つが前記閾値を満足しない場合、前記複数の組のうち前記閾値を満足しない前記第2出力値を有する組の書き換えを要求する書き換え要求信号を出力し、
     前記PUF部は、
     前記書き換え要求信号の出力を契機として前記第1データと前記第2データとが入力され、前記第1データと前記第2データとの入力に対して、前記第1出力値と前記第2出力値とを出力し、
     前記鍵生成装置は、さらに、
     前記書き換え要求信号の出力を契機として出力された前記第1出力値に基づいて、補助データを新たに生成する補助データ生成部を備え、
     前記判定部は、
     新たに生成された前記補助データと、前記書き換え要求信号の出力を契機として出力された前記第2出力値との組で、前記複数の組のうち前記閾値を満足しない前記第2出力値を含むいずれかの組を書き換える請求項2に記載の鍵生成装置。
  4.  前記類似度は、値が小さいほど似ていることを示し、
     前記判定部は、
     前記類似度の最も小さい前記第2出力値を有する前記組を書き換える請求項3に記載の鍵生成装置。
  5.  前記判定部は、
     前記類似度として、ハミング距離を計算する請求項1から請求項4のいずれか1項に記載の鍵生成装置。
PCT/JP2020/010084 2020-03-09 2020-03-09 鍵生成装置 WO2021181474A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021567020A JP7034400B2 (ja) 2020-03-09 2020-03-09 鍵生成装置
PCT/JP2020/010084 WO2021181474A1 (ja) 2020-03-09 2020-03-09 鍵生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/010084 WO2021181474A1 (ja) 2020-03-09 2020-03-09 鍵生成装置

Publications (1)

Publication Number Publication Date
WO2021181474A1 true WO2021181474A1 (ja) 2021-09-16

Family

ID=77671264

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/010084 WO2021181474A1 (ja) 2020-03-09 2020-03-09 鍵生成装置

Country Status (2)

Country Link
JP (1) JP7034400B2 (ja)
WO (1) WO2021181474A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017110483A1 (ja) * 2015-12-22 2017-06-29 ソニー株式会社 情報処理装置、情報処理方法、プログラム
US20190138753A1 (en) * 2017-11-08 2019-05-09 Analog Devices, Inc. Remote re-enrollment of physical unclonable functions

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6588048B2 (ja) * 2017-03-17 2019-10-09 株式会社東芝 情報処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017110483A1 (ja) * 2015-12-22 2017-06-29 ソニー株式会社 情報処理装置、情報処理方法、プログラム
US20190138753A1 (en) * 2017-11-08 2019-05-09 Analog Devices, Inc. Remote re-enrollment of physical unclonable functions

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
OKURA, SHUNSUKE ET AL.: "A Dynamic Soft-Decision Fuzzy Extractor for a GMOS Image Sensor PUF", 2018 INTERNATIONAL SYMPOSIUM ON INTELLIGENT SIGNAL PROCESSING AND COMMUNICATION SYSTEMS(ISPACS, 2018, pages 54 - 59, XP033644473, Retrieved from the Internet <URL:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8923459> [retrieved on 20200728], DOI: 10.1109/ISPACS.2018.8923459 *

Also Published As

Publication number Publication date
JP7034400B2 (ja) 2022-03-11
JPWO2021181474A1 (ja) 2021-09-16

Similar Documents

Publication Publication Date Title
KR102231294B1 (ko) 복수의 레벨의 오류 정정을 제공하는 정보 처리 장치 및 시스템, 및 그것의 동작 방법
US9946474B2 (en) Storing and accessing data
US8908859B2 (en) Cryptographic apparatus and memory system
US20180143872A1 (en) Cyclic redundancy check calculation for multiple blocks of a message
US11438172B2 (en) Robust state synchronization for stateful hash-based signatures
CN111052670B (zh) 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质
US9734008B2 (en) Error vector readout from a memory device
EP3127271B1 (en) Obfuscated performance of a predetermined function
US8719588B2 (en) Memory address obfuscation
WO2021181474A1 (ja) 鍵生成装置
US20210152326A1 (en) White-box encryption method for prevention of fault injection attack and apparatus therefor
US11876888B2 (en) Encryption device, decryption device, encryption method, decryption method, and computer readable medium
US9880960B1 (en) Configurable sponge function engine
KR20150105405A (ko) 컴퓨팅 가능하고, 대형이며, 가변적이며 안전한 치환 박스를 위한 방법 및 장치
JP6830867B2 (ja) 追加データ付き認証暗号システム、復号装置、追加データ付き認証暗号方法、およびプログラム
US8150030B2 (en) Cryptographic hashing device and method
CN111030709A (zh) 基于bch译码器的译码方法、bch译码器及应用其的电路
JP3743915B2 (ja) スポッティバイト誤り訂正・検出方法及び装置
WO2019030860A1 (ja) 誤り検出用冗長ビットの生成方法および装置
WO2024057411A1 (ja) メモリ更新装置、情報処理システム、メモリ更新方法及びコンピュータ可読媒体
JP6732698B2 (ja) 追加データ付き認証暗号システム、暗号化装置、復号装置、追加データ付き認証暗号方法、およびプログラム
US20230400996A1 (en) Apparatus, Device, and Method for a Memory Controller, Memory Controller, and System
US20220308840A1 (en) Reciprocal calculating method and reciprocal calculating apparatus
US20230216677A1 (en) Cipher accelerator and differential fault analysis method for encryption/decryption operation
US11522675B2 (en) Apparatus and method for encryption and decryption based on tweak converter to which key table is applied

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021567020

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20924580

Country of ref document: EP

Kind code of ref document: A1