WO2008056612A1 - Appareil de sécurité d'informations - Google Patents

Appareil de sécurité d'informations Download PDF

Info

Publication number
WO2008056612A1
WO2008056612A1 PCT/JP2007/071413 JP2007071413W WO2008056612A1 WO 2008056612 A1 WO2008056612 A1 WO 2008056612A1 JP 2007071413 W JP2007071413 W JP 2007071413W WO 2008056612 A1 WO2008056612 A1 WO 2008056612A1
Authority
WO
WIPO (PCT)
Prior art keywords
output
data
unit
error correction
correction
Prior art date
Application number
PCT/JP2007/071413
Other languages
English (en)
French (fr)
Inventor
Yuichi Futa
Kaoru Yokota
Masao Nonaka
Manabu Maeda
Natsume Matsuzaki
Original Assignee
Panasonic Corporation
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 Panasonic Corporation filed Critical Panasonic Corporation
Priority to EP07831147A priority Critical patent/EP2081170A1/en
Priority to US12/443,736 priority patent/US8510608B2/en
Priority to JP2008543059A priority patent/JP5113074B2/ja
Publication of WO2008056612A1 publication Critical patent/WO2008056612A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/03Astable circuits
    • H03K3/0315Ring oscillators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics

Definitions

  • the present invention relates to a system that realizes authentication and encryption, and is an information security device that securely implements secret data such as a key used in cryptographic processing and device-specific ID data in a form that is protected by analytical power. About.
  • Typical conventional methods for securely storing secret data include a method for storing in a tamper-resistant hardware chip (tamper-resistant chip), and a software program with tamper resistance.
  • tamper-resistant chip tamper-resistant chip
  • a software program with tamper resistance There was a method of embedding in.
  • the former method can achieve high confidentiality of secret data, there is a problem that the cost becomes high because a special dedicated chip is required, and the latter method generally has too high confidentiality.
  • secret data could be exposed by performing analysis over time.
  • PUF Physical Uncloanable Function
  • PUF Physical Uncloanable Function
  • Patent Document 1 the method called Silicon PUF disclosed in Patent Document 1 does not require a special environment or equipment for manufacturing, so it has high tamper resistance at low manufacturing cost. It can be said that this method is particularly suitable for consumer devices that require low cost.
  • FIG. 1 is a diagram showing a configuration of a circuit that realizes a conventional Silicon PUF.
  • PUF circuit 2000 is a circuit that outputs 1-bit secret data when a trigger signal is input.
  • the PUF circuit 2000 includes eight ring oscillators (first ring oscillator 2001 to eighth ring oscillator 2008) and a ring oscillator selection that selects one of the eight ring oscillators based on input data.
  • Units first ring oscillator selection unit 2011 and second ring oscillator selection unit 2012
  • frequency count units first frequency count unit 2021 and first frequency count unit 2021 and second ring oscillator selection unit 2012 that count the oscillation frequency of the ring oscillator selected by the ring oscillator selection unit.
  • 2 frequency counting section 2022 and output bit determining section 2030 for determining the output bit of PUF circuit 2000 based on the counted frequency.
  • the operation of PUF circuit 2000 is described below.
  • each of the ring oscillator selection units 2011 and 2012 selects one predetermined one from eight ring oscillators 20 0;
  • a trigger signal is input to the ring oscillator 200;! To 2008, and the ring oscillator starts an oscillation operation.
  • the frequency oscillator 2021, 2022 (or the above-mentioned gingo oscillator selection ⁇ 2011, 2012)
  • the output signal from the selected ring oscillator is measured, and the oscillation frequency of the ring oscillator is measured.
  • the unit 2030 compares the two measured oscillation frequencies and determines the output bit of the PUF circuit 2000 according to the magnitude relationship.
  • the eight ring oscillators 200;! To 2008 have the same circuit configuration such as the number of stages of the ring oscillator S, and there are slight variations in physical characteristics such as delay time in the manufacturing process. As a result, the oscillation frequency of each ring oscillator becomes a slightly different value. The difference is determined in an unpredictable way when manufacturing a UF circuit, and differs from PUF circuit to PUF circuit. The output bit varies depending on the oscillation frequency. The correspondence of output bits to input data can be analyzed by measuring the oscillation frequency of each ring oscillator in the PUF circuit.
  • the PUF circuit for example by blowing, external If the analysis operation using the oscillation frequency is performed from the beginning, the physical characteristics of the ring oscillator will change, and the same oscillation frequency as when calculating the output bit cannot be measured. It is difficult to examine.
  • the PUF circuit can be realized with a combination circuit such as a ring oscillator, frequency counter, and comparator, it does not require a special manufacturing environment or equipment, and can be manufactured inexpensively using a normal LSI manufacturing environment-equipment. It is possible.
  • the output bit of the PUF circuit is determined by the magnitude relationship of the oscillation frequency of the ring oscillator selected based on the input data.
  • the variation in physical characteristics such as delay time during circuit manufacturing causes the variation in the oscillation frequency of the ring oscillator.
  • the output bit value is determined as “1” from [A oscillation frequency]> [B oscillation frequency]. If the same input data is input to this PUF circuit at different timings, the same ring oscillators A and B are selected. At this time, the external temperature rises more than before. In that case, since the delay time of the ring oscillator increases, the oscillation frequency also decreases, but the degree of the decrease also varies slightly depending on the ring oscillator. If the original frequency difference is insignificant, the magnitude relationship may be reversed. In the above example, the frequency difference between ring oscillators A and B is only 9 Hz, so the magnitude relationship of [A oscillation frequency]> [B oscillation frequency] may be reversed by temperature changes. . That is, there is a possibility that different output bit values may be output for the same input data, and there is a problem in the stability of the output bit values.
  • the error correction code is introduced in the conventional method, and the output value (output bit value) The stability is improved by correcting the error.
  • FIG. 2 shows a configuration of an information security apparatus 3000 in the conventional method.
  • the information security device 3000 outputs a hash value with a key using a key generated using PUF for input data input from the outside.
  • the keyed hash value is generated using a keyed hash function.
  • the keyed hash function is described on pages 189 to 195 of Non-Patent Document 1.
  • the information security device 3000 includes an input unit 3001 that receives input data from the outside, an output unit 3002 that outputs a keyed hash value, a hash generation unit 3003 that generates a keyed hash value, and a key using a PUF.
  • a PUF unit 3004 for generating the error an error correction unit 3005 for generating an error-corrected hash key based on the error correction information, and an error correction information storage unit 3006 for storing the error correction information.
  • the PUF unit 3004 includes a plurality of, for example, six PUF circuits 2000, and uses the 6 bits obtained by connecting the output bits of each PUF circuit as a key.
  • the input unit 3001 accepts external data input, and inputs a trigger signal to the PUF circuit 2000 in the PUF unit 3004.
  • the PUF circuit 2000 generates output bits, and the PUF unit 3004 uses the concatenation of the output bits of the six PUF circuits 2000 as a key.
  • the error correction unit 3005 corrects the key using the error correction information and generates a corrected hash key.
  • the hash generation unit 3003 generates a keyed hash value of the input data using the corrected hash key, and the output unit 3002 outputs this.
  • the error correction information is determined by measuring the value of the PUF circuit 2000 in the PUF unit 3004 when the information security apparatus 3000 is manufactured. Specifically, the key of the PUF unit 3004 is measured a plurality of times, the value of the key that occurs with the highest probability is obtained, error correction information is determined for this, and the error correction information storage unit 3006 Store.
  • Patent Document 1 US Patent Application Publication No. 2003/0204743
  • Non-patent document 1 Tatsuaki Okamoto, Hiroshi Yamamoto, “Modern cryptography”, industrial books (1997)
  • a 3-bit Hamming weight is calculated, and if it is 1 or less, it is decoded as “0”, and if it is 2 or more, it is decoded as “1”. For example, if “011”, it is decoded as “1”.
  • the output of the above PUF section 300 4 is 6 bits, but this is divided into 3 sets of 2 bits each, and error correction information is combined with 3 sets of 1 bit of 3 bits of repetition code for a total of 3 bits. And When the information security device 3000 is manufactured, the output value of the PUF unit 3004 is measured, and the output value that occurs with the highest probability is “11 00 01”.
  • the error correction information is "X Y Z" (X, Y, Z is 0 or 1).
  • the first code is a force that becomes "1 IX”.
  • the error correction information is “1 0 1”, and the decrypted value, that is, the corrected hash key is “1 0 1”. Therefore, the error correction information and the corrected hash key are equal, and the attacker can know the corrected hash key by analyzing the error correction information.
  • the conventional technique has a problem that the safety of PUF is low.
  • the present invention solves the above-described problem, and provides an information security device in which the safety of a PUF does not deteriorate even if information stored in a memory is analyzed by an attacker.
  • Objective an object is to provide an information security device that improves the stability and confidentiality of secret data.
  • an information security apparatus is preset.
  • a first tamper resistant circuit having tamper resistance set by using physical characteristics so as to output predetermined secret data, and Correction data storage means for storing the correction data and a second tamper resistance circuit having tamper resistance set using physical characteristics so as to output the second correction data Error correction information is generated using the first correction data stored in the correction data storage means and the second correction data output from the second tamper resistant circuit Using the correction information generation means and the error correction information generated by the correction information generation means, error correction is performed on the secret data output from the first tamper resistant circuit, and the error correction is performed.
  • Output the secret data Ri characterized in that it comprises a correction manual stage.
  • the secret data set in the first anti-tamper circuit and the second correction data set in the second anti-tamper circuit are set by a PUF (Physically Unclonable Function). Cry.
  • error correction information used directly for error correction of secret data is not stored in the memory as in the prior art, but is generated using the second tamper resistant circuit. It is possible to make it difficult for the attacker to find the error correction information, and as a result, it is possible to improve the security and confidentiality of the secret data set in the first tamper resistant circuit. Furthermore, in the present invention, even if an error occurs in the secret data output from the first tamper resistant circuit due to environmental changes such as ambient temperature or aged factors, the error correction information corrects the error. The stability of secret data can be improved.
  • the information security device further uses an acquisition unit that acquires input data and secret data output from the error correction unit as a key, and the input data is encoded with the key. It is good also as providing the encryption means to do.
  • the input data is converted into a keyed hash value or ciphertext. This enhances the security of keyed hash values and ciphertexts.
  • the first tamper resistant circuit includes one or more first PUF circuits that output a 1-bit value as at least a part of the secret data, and the second tamper resistant circuit.
  • the second PUF circuit outputs a value of 2 bits or more, even if an error occurs in one of the bits, the error can be easily corrected, and the second tamper resistance.
  • the noise resistance of the second correction data output from one circuit can be improved.
  • the first tamper resistant circuit includes one or more first PUF circuits, and the first PUF circuit outputs N (N ⁇ 2) oscillation units that output an oscillation signal.
  • a selection unit that selects M (M ⁇ N) oscillation units from the N oscillation units, and a magnitude relationship between the frequencies of oscillation signals output from the M oscillation units selected by the selection unit
  • a determination unit configured to determine an output value based on the output value, and the selection unit includes M number of units such that the output value determined by the determination unit indicates at least a part of the predetermined secret data.
  • the oscillator unit may be selected. Specifically, the selection unit selects the M oscillation units such that the difference in frequency of the oscillation signals output from the M oscillation units is equal to or greater than a first threshold value.
  • the information security device further compares the error-corrected secret data output from the error correction means with the secret data output from the first tamper resistant circuit.
  • An error discriminating means for discriminating whether or not an error has occurred in the secret data output from the first tamper resistant circuit; and when the error discriminating means determines that an error has occurred,
  • a reset request means for requesting the tamper resistant circuit to reset the predetermined secret data, and the first PUF circuit further receives a reset request from the reset request means. Selected by the selection unit It is also possible to provide a resetting for resetting the predetermined secret data by executing again! /.
  • the first PUF circuit further includes a secret data storage unit for storing at least a part of the predetermined secret data, and the selection unit selects a plurality of oscillation units.
  • a secret data storage unit for storing at least a part of the predetermined secret data
  • the selection unit selects a plurality of oscillation units.
  • at least a part of the secret data is stored in the secret data storage unit.
  • An output control unit that outputs at least a part of the secret data.
  • the first An error is likely to occur in the output value from the PUF circuit of 1, and its reliability is lowered. Therefore, according to the present invention, in such a case, at least a part of the predetermined secret data to be output by the first PUF circuit is stored in the secret data storage unit, and the secret data is stored. Since at least a part of the data is output, it is possible to prevent the secret data output from the first tamper resistant circuit from being erroneous and improve the reliability.
  • the first tamper resistant circuit includes a plurality of the first PUF circuits and the plurality of first tamper resistant circuits.
  • a combination unit that generates secret data by combining the output values output from one PUF circuit, and the error determination means includes an error in the secret data output from the first tamper resistant circuit.
  • the first PUF circuit that outputs an incorrect output value is identified from among the plurality of first PUF circuits, and the reset request means outputs the incorrect output value.
  • the output value may be requested to be reset so that the first PUF circuit identified as having the output value indicates a part of the predetermined secret data.
  • the first PUF circuit that outputs an incorrect output value is specified, and the output value of the specified first PUF circuit is reset. It can be properly set to 1 tamper-resistant circuit.
  • the information security apparatus further includes secret data after error correction output from the error correction means and secret data before error correction output from the first tamper resistant circuit.
  • secret data after error correction output from the error correction means and secret data before error correction output from the first tamper resistant circuit.
  • an error determining means for determining whether or not an error has occurred in the secret data before error correction, and the first tamper resistance when the error determining means determines that an error has occurred.
  • a reset request means for requesting the circuit to reset the predetermined secret data, and the first PUF circuit further stores at least a part of the predetermined secret data.
  • a secret data storage unit for storing data
  • a storage processing unit for storing at least a part of the secret data in the secret data storage unit when a reset request is received from the reset request unit;
  • determination of an output value by the determination unit is prohibited, and at least one of the secret data stored in the secret data storage unit is prohibited.
  • an output control unit that outputs the unit.
  • the first PUF circuit If the first PUF circuit outputs an incorrect output value even once, the reliability of the first PUF circuit is questionable. Therefore, according to the present invention, in such a case, at least a part of predetermined secret data, which is an output value to be output by the first UF circuit, is stored in the secret data storage unit, and Since at least a part of the secret data is output, it is possible to prevent an error from occurring in the secret data output from the first tamper resistant circuit and to improve the reliability.
  • the first PUF circuit further includes a difference determination unit that determines whether or not a difference in frequency of the oscillation signals output from the M oscillation units is less than a second threshold value.
  • a resetting unit that resets the predetermined secret data by causing the selection unit to execute the selection again when it is determined by the difference determination unit that the threshold value is less than the second threshold value. You can make it special! /.
  • the first PUF circuit is further stored in a threshold storage unit storing at least one of the first and second thresholds, and in the threshold storage unit. And an updating unit that updates at least one of the first and second threshold values.
  • the predetermined secret data can be reset at an appropriate timing.
  • a data generation device is a data generation device that generates first correction data for correcting an error in secret data, and is predetermined.
  • a first measuring means for measuring an output value output from a first tamper resistant circuit having tamper resistance set using physical characteristics so as to output the secret data
  • a second correction Second measuring means for measuring an output value output from a second tamper resistant circuit having tamper resistance set by utilizing physical characteristics so as to output data for use, and the first and first Based on the output value measured by the second measuring means, the data generating means for generating the first correction data, and the first correction data generated by the data generating means are stored in a storage medium. Storage processing means And wherein and Turkey.
  • the data generation means includes: a first generation means for generating error correction information by calculating a difference between an output value measured by the first measurement means and a value indicated by the secret data; Second generation means for generating the first correction data by calculating a difference between the output value measured by the second measurement means and a value indicated by the error correction information. .
  • the present invention is not only capable of being realized as such an information security device and data generation device, but also a processing method performed by the device, a program for causing a computer to execute the processing method, and the program It can be realized as a storage medium that stores the data and as an integrated circuit.
  • the information security device of the present invention uses the information stored in the memory, even with the PUF. It is possible to prevent the attacker from knowing the secret data that is concealed, and to prevent the security of the PUF from being reduced. Furthermore, according to the information security device of the present invention, the stability of the output bit value with respect to secular change can be maintained while maintaining the characteristics that the manufacturing cost is low and the data can be securely stored, similarly to the PUF circuit of the prior art. There is an effect that it is possible to provide an information security device that can be improved.
  • FIG. 1 is a diagram showing a configuration of a conventional PUF circuit.
  • Fig. 2 is a diagram showing the configuration of a conventional information security device using PUF error correction.
  • FIG. 3 is a block diagram showing the configuration of the information security system in the first embodiment of the present invention.
  • FIG. 4 is a diagram showing the configuration of the information security apparatus of the above.
  • FIG. 5 is a diagram showing a configuration of an information generation PUF unit same as above.
  • FIG. 6 is a diagram showing a configuration of a first PUF circuit same as above.
  • FIG. 7 is a diagram showing the configuration of the error correction PUF unit of the above.
  • FIG. 8 is a diagram showing a configuration of a second PUF circuit same as above.
  • FIG. 9 is a diagram showing a mapping between the difference and the output correction of the second PUF circuit of the above.
  • FIG. 10 is a diagram showing a configuration of the error correction information generation apparatus same as above.
  • FIG. 11 is a diagram showing a distribution of output values analyzed by the environment change analysis unit same as above. 12A]
  • FIG. 12A is a flowchart showing an operation when the error correction information generation apparatus same as above sets error correction partial information.
  • FIG. 12B is a flowchart showing an operation when the information security apparatus same as above calculates a keyed hash value.
  • FIG. 13 is a block diagram showing a configuration of a PUF circuit in the second embodiment of the present invention.
  • FIG. 14 is a block diagram showing a configuration of the ring oscillator same as above.
  • FIG. 15 is a flowchart showing an operation when the PUF circuit of the same described above sets input value data.
  • FIG. 16 is a flowchart showing the operation when the PUF circuit calculates the output bit.
  • FIG. 17 is a flowchart showing the operation when the PUF circuit of the above resets the input value data.
  • FIG. 18 is a block diagram showing a configuration of a PUF circuit according to Embodiment 3 of the present invention.
  • FIG. 19 is a diagram for explaining a method for setting a hash key in the information generation PUF unit of the above.
  • FIG. 20 is a diagram showing the configuration of the information security apparatus described above.
  • FIG. 21 is a diagram showing a configuration of an error correction processing unit same as above.
  • FIG. 22 is a diagram showing another operation of the PUF circuit of the above.
  • FIG. 3 is a diagram showing a configuration of the information security system 1000 according to the first embodiment.
  • the information security system 1000 includes an information security device 1100 that increases the stability and confidentiality of secret data, and an error correction information generation device 1200 that generates error correction partial information and sets the information in the information security device 1100.
  • error correction information generation apparatus 1200 is configured as a data generation apparatus.
  • FIG. 4 is a diagram showing the configuration of the information security apparatus 1100.
  • the information security device 1 100 includes an input unit 1101 that receives input of data (input data), an output unit 1102 that outputs data, a hash generation unit 1103 that calculates a keyed hash value, and a key of a keyed hash function.
  • PUF unit 1104 for generating a hash key
  • an error correcting unit 1105 for correcting a hash key error and generating a corrected hash key
  • an error correcting PUF unit 1106 for generating error correcting PUF information 1106
  • an error correction part information storage unit 1107 for storing error correction part information
  • an error correction information generation unit 1108 for generating error correction information.
  • the information generation PUF unit 1104 is configured as a first tamper-resistant circuit set to output a hash key that is preset secret data, and error correction is performed.
  • the partial information storage unit 1107 is configured as correction data storage means that stores error correction partial information that is first correction data.
  • the error correction PUF unit 1 106 is configured as a second tamper resistant circuit set to output error correction PUF information as second correction data, and the error correction information generation unit 1108 includes: Error correction information Is configured as correction information generation means for generating
  • the input unit 1101 is configured as an acquisition unit that acquires input data
  • the hash generation unit 1103 is configured as an encryption unit that encrypts input data.
  • the input unit 1101 accepts input data input from the outside and inputs it to the hash generation unit 1103. When the input unit 1101 further receives input data, the input unit 1101 inputs a trigger to the PUF circuit to the information generation PUF unit 1104 and the error correction PUF unit 1106.
  • the output unit 1102 outputs a keyed hash value.
  • the node generator 1103 calculates a keyed hash value using the corrected hash key output from the error correction unit 1105 and the input data received by the input unit 1101, and inputs the calculated hash value to the output unit 1102 .
  • the information generating PUF unit 1104 generates a hash key of a keyed hash function.
  • FIG. 5 is a diagram showing a configuration of the information generation PUF unit 1104.
  • the information generation PUF unit 1104 includes nine first PUF circuits 11041A,
  • the first PUF circuit described later outputs 1-bit information
  • the information generation PUF unit 1104 concatenates the 1-bit information of each of the nine first PUF circuits and inputs it to the error correction unit 1105.
  • the number of first PUF circuits is not limited to the force 9, which is 9, but may be anything as long as it is 2 or more.
  • FIG. 6 is a diagram showing a configuration of the first PUF circuit 11041A.
  • the first PUF circuit 11041A includes a first ring oscillator 11041 ⁇ 01, a second ring oscillator 11041 ⁇ 02,..., And an eighth ring oscillator 11041A08, It is composed of a 2-ring-aged oscillator selection unit, a first frequency count unit 11041A21, a second frequency count unit 11041A22, and an output bit determination unit 11041A30.
  • the first ring oscillator 11041A01 to 8th ring oscillator 11041A08 are each configured as an oscillation unit that outputs an oscillation signal
  • the first ring oscillator selection unit 11041A11 and the second ring oscillator selection unit 11041 A12 are the selection units that select the oscillation unit
  • the output bit determining unit 11041A30 is configured as a determining unit that determines and outputs the output value of the first PUF circuit 11041A.
  • First ring oscillator 11041A01 to eighth ring oscillator 11041A08 have the same configuration, and each output an output signal (oscillation signal) to the trigger signal.
  • First ring oscillator selection section 11041A11 selects a ring oscillator provided in advance from among first ring oscillators 1041A01 to 1041A08.
  • the second ring oscillator selection unit 11041A12 selects a ring oscillator provided in advance, unlike the medium force of the first ring oscillators 1041A01 to 1041A08.
  • the number of ring oscillators was eight, this is not a limitation. The number of ring oscillators should be 2 or more! /.
  • First frequency counting section 11041A21 measures the frequency of the ring oscillator selected by first ring oscillator selection section 11041A11.
  • Second frequency counting section 11041A22 measures the frequency of the ring oscillator selected by second ring oscillator selection section 11041A12.
  • the output bit determination unit 11041A30 compares the frequency F1 measured by the first frequency counting unit 11041A21 with the frequency F2 measured by the second frequency counting unit 11041A22. If F1 ⁇ F2, "0", F1 ⁇ If it is F2, "1" is output. Although the frequency is measured here, the frequency close to the frequency itself, for example, the number of times that the output signal of the ring oscillator within a predetermined time is equal to the predetermined amplitude may be measured. Good. In this case, the number of output bits “0” and “1” may be determined by comparing the number of times instead of the frequency. In the above example, “0” is output when F1 ⁇ F2, and “1” is output when F1 ⁇ F2. However, "1” may be output when F1 ⁇ F2, and "0" may be output when F1 ⁇ F2.
  • First ring oscillator selection section 11041A11 selects a ring oscillator given in advance.
  • Second ring oscillator selection unit 11041A12 also selects a ring oscillator given in advance.
  • the first frequency count unit 11041A21 measures the frequency of the ring oscillator selected by the first ring oscillator selection unit 1104 1A11.
  • Second frequency count unit 11041A22 measures the frequency of the ring oscillator selected by second ring oscillator selection unit 11041A12.
  • the output bit determination unit 11041A30 determines an output bit using the frequencies measured by the first frequency count unit 11041A21 and the second frequency count unit 11041A22.
  • the noush key generation unit 11042 concatenates the bits of the first PUF circuits 11041A to 11041G and uses the concatenated one as a hash key.
  • the error correction unit 1105 uses the error correction information generated by the error correction information generation unit 1108 to error-correct the hash key generated by the information generation PUF unit 1104, and generates a corrected hash key. Any error correction method may be used, but an example will be given for simplicity.
  • the repetition code is a code that encodes “0” as “000”, “1” as “111”, and takes a 3-bit majority decision at the time of decoding. For example, if “101”, the number of 1's is 2 and the majority is taken, it is decoded as “1.” That is, if the hamming weight (number of 1) of the code is 1 or less, “0”, 2 or more If so, decrypt as "1".
  • the error correction information is "010 010 001”.
  • the hash key generated by the information generation PUF section 1104 is “101 000 111”.
  • the error correction unit 1105 takes an exclusive OR (XOR) of the error correction information and the hash key.
  • the corrected hash key is “101”.
  • the error correction PUF unit 1106 generates error correction PUF information.
  • FIG. 7 is a diagram showing a configuration of the error correction PUF unit 1106.
  • the error correcting PUF unit 1106 includes nine second PUF circuits 11061A, 1 1061B, 11061C, 11061D, 11061E, 11061F, 11061G, 11061H, 110611, and a second PUF circuit.
  • the error correction PUF information generation unit 11062 generates error correction PUF information by concatenating these bits.
  • the second PUF circuit described later outputs 3-bit information, and the error correction PUF unit 1106 concatenates the 3-bit information of each of the nine second PUF circuits and inputs the information to the error correction information generation unit 1108.
  • the number of second PUF circuits is 9 here, it is not limited to 9 and may be any number as long as it is 2 or more.
  • the configuration of the second PUF circuit 11061A is representatively shown below.
  • FIG. 8 shows a configuration of second PUF circuit 11061A.
  • the second PUF circuit 11061A includes a first ring oscillator 11061A01, a second ring oscillator 11061A02,..., An eighth ring oscillator 11061A08, a first ring oscillator selection unit 11061A11, A 2-ring oscillator selection unit 11061A12, a first frequency count unit 11061A21, a second frequency count unit 11061A22, and an output bit determination unit 11061A30.
  • First ring oscillator 11061A01 to eighth ring oscillator 11061A08 have the same configuration, and each output an output signal in response to a trigger signal.
  • the first ring oscillator selection unit 11061A11 selects a ring oscillator given in advance from the first ring oscillators; 11061A01 to 11061A08.
  • the second ring oscillator selection unit 11061A12 selects a ring oscillator given in advance, unlike the medium power of the first ring oscillators 1061A01 to 1061A08.
  • the number of ring oscillators was eight, this is not a limitation. The number of ring oscillators should be 2 or more! /.
  • the first frequency count unit 11061A21 is selected by the first ring oscillator selection unit 11061A11. Measure the frequency of the selected ring oscillator.
  • Second frequency counting section 11061A22 measures the frequency of the ring oscillator selected by second ring oscillator selection section 11061A12.
  • the output bit determining unit 11061A30 compares the frequency F1 measured by the first frequency counting unit 11061A21 with the frequency F2 measured by the second frequency counting unit 11061A22, and determines "0" according to the difference between F1 and F2. 3 bits indicating the value from 1 to "7" are output as one element.
  • FIG. 9 is a diagram illustrating mapping of values (3 bits) to frequency differences (F 2 ⁇ F 1).
  • the difference from 300 to 300 is divided into 8 equal parts, and each is mapped from "0" to "7".
  • the mapping method is not limited to this.
  • the range may be other than this, for example, from 500 to 500, or may be mapped unequally for each value that is not evenly divided.
  • First ring oscillator selection section 11061A11 selects a ring oscillator given in advance.
  • Second ring oscillator selection unit 11061A12 also selects a ring oscillator given in advance.
  • First frequency count section 11061A21 measures the frequency of the ring oscillator selected by first ring oscillator selection section 1106 1A11.
  • Second frequency count section 1106 1A22 measures the frequency of the ring oscillator selected by second ring oscillator selection section 11061A12.
  • the output bit determining unit 11061A30 determines three bits as an output using the frequencies measured by the first frequency counting unit 11061A21 and the second frequency counting unit 11061A22. That is, the output bit determination unit 11061A30 uses the mapping shown in FIG.
  • the output bit determining unit 110 61A30 determines “4” if the difference is 0 or more and less than 75, and determines “5” if the difference is 75 or more and less than 150.
  • the error correction PUF information generation unit 11062 includes second PUF circuits 11061A to 110611
  • the output elements are concatenated and the concatenated PUF information is used for error correction.
  • each element output from the second PUF circuit 11061A to 110611 is "2", “6", “5", “1”, “5", "7", “2”, “3” If it is “7”, the PUF information for error correction is “265 157 237”.
  • the error correction partial information storage unit 1107 stores error correction partial information that is partial information of error correction information.
  • the error correction partial information is generated and stored by the error correction information generator 1200.
  • the error correction information generation unit 1108 uses the error correction PUF information generated by the error correction PUF unit 1106 and the error correction partial information stored in the error correction partial information storage unit 1107 to generate an error. Generate correction information.
  • An example of a method for generating error correction information is shown below.
  • error correction PUF information is encoded by a predetermined method, and the resulting error-corrected PUF information and error correction partial information are exclusive ORed.
  • the method of generating error correction information is not limited to this example.
  • the exclusive OR part may be changed to multiplication in a Galois field.
  • PUF information for error correction after encoding and error correction partial information may be regarded as integer values and calorie calculation may be performed! /.
  • the error correction PUF information output from the error correction PUF unit 1106 is “265 157 237” as described above.
  • the value of this element is 3 or less, it is encoded as "0”, and if it is 4 or more, it is encoded as 1 bit.
  • “011 011 001” is obtained, which is used as PUF information for error correction after encoding.
  • the difference between this and the error correction part information stored in the error correction part information storage unit 1107 is obtained.
  • the error correction partial information is “001 001 0 00”
  • the error correction information is
  • this encoding is not limited to this. For example, 4 or more may be encoded as “0”, and 3 or less may be encoded as “1”.
  • FIG. 10 is a diagram showing a configuration of the error correction information generation apparatus 1200.
  • the error correction information generation device 1200 includes a PUF circuit measurement unit 1201 that measures output values of the first PUF circuit and the second PUF circuit in the information security device 1100, and the first PUF circuit and the second PUF circuit.
  • Environment change part 1202 that changes the surrounding environment of the environment, environment change analysis part 1203 that analyzes the distribution of output values measured by the PUF circuit measurement part 1201 due to environment change, and the error correction part based on the analysis results of the environment change analysis part 1203
  • An error correction part information generation unit 1204 that generates information
  • an error correction part information setting unit 1205 that stores the error correction part information in the error correction part information storage unit 1107 in the information security apparatus 1100 are provided.
  • the PUF circuit measurement unit 1201 is configured as the first measurement unit and the second measurement unit
  • the error correction partial information generation unit 1204 is configured as the data generation unit, so that the error correction partial information setting is performed.
  • the unit 1205 is configured as storage processing means.
  • error correction partial information generation section 1204 in the present embodiment uses first generation means for generating error correction information and error correction partial information as first correction data using the error correction information.
  • a second generation means for generating! /.
  • the PUF circuit measurement unit 1201 measures output values of the first PUF circuits 11041A to 110411 and the second PUF circuits 11061A to 110611.
  • the environment changing unit 1202 changes the environment around the first PUF circuit and the second PUF circuit. Specifically, for example, the ambient temperature is changed.
  • the environmental change analysis unit 1203 analyzes the distribution of output values measured by the PUF circuit measurement unit 1201 due to environmental changes. That is, the distribution of output values of the first PUF circuit and the second PUF circuit for each temperature is obtained.
  • Error correction partial information generation section 1204 generates error correction partial information.
  • error correction partial information generation section 1204 obtains error correction information based on the output value distribution of the first UF circuit analyzed by environment change analysis section 1203.
  • FIG. 11 is a diagram illustrating an example of distribution of output values of the first PUF circuit and the second PUF circuit.
  • the difference between the output value that has been encoded with the error correction code for the output value that appears with the highest probability in the output value distribution of the first PUF circuit and the output value is incorrect.
  • Revision Use positive information Combined with the above error correction method example and error correction information generation example, the output value that appears with the highest probability is “101 000 110” when the output values of the nine first PUF circuits 11041A to 110411 are aligned. "It is.
  • the output value that appears with the highest probability is also determined by dividing every 3 bits. In Fig.
  • the error correction partial information generation unit 1204 obtains error correction PUF information based on the distribution of output values of the second PUF circuit analyzed by the environment change analysis unit 1203.
  • Figure 11 shows an example of output value distribution.
  • the output value of one second PUF circuit is a 3-bit element.
  • the output values of the second PUF circuits 11061A to 110611 are arranged in order from the left.
  • the output value that appears with the highest probability in each element in the output value distribution of the second PUF circuit is encoded by a predetermined method.
  • the difference between the post-error correction PUF information and the error correction information is used as error correction partial information.
  • the first element is "3" at 0 ° C, "2” at 10 ° C, and "2” at 20 ° C, so the output value that appears with the highest probability. Is "2".
  • the value of this element is 4 or less, "0" is encoded. .
  • the first element is "2”, so the encoded value is "0".
  • the PUF information for error correction after encoding becomes “011 011 001”.
  • the error correction part information setting unit 1205 stores the error correction part information generated by the error correction part information generation unit 1204 in the error correction part information storage unit 1107 in the information security device 1100.
  • FIG. 12A is a flowchart showing an operation when the error correction information generating apparatus 1200 of the information security system 1000 sets error correction partial information.
  • Error correction information generating apparatus 1200 operates as follows when setting error correction partial information. The process of generating the error correction partial information and setting it in the error correction partial information storage unit 1107 in the information security apparatus 1100 is performed when the information security apparatus 1100 is manufactured.
  • Step S101 The environment changing unit 1202 changes the environment around the first PUF circuit and the second PUF circuit. Further, the environment change unit 1202 inputs the changed environment information to the environment change analysis unit 1203.
  • Step S102 The PUF circuit measurement unit 1201 measures the output values of the first PUF circuit and the second PUF circuit, and inputs them to the environment change analysis unit 1203.
  • Step S103 The environment change analysis unit 1203 obtains a distribution from the environment information and the output values of the first PUF circuit and the second PUF circuit.
  • Step S104 The error correction part information generation unit 1204 generates error correction part information from the distribution of output values.
  • Step S105 The error correction part information setting unit 1205 stores the error correction part information in the error correction part information storage unit 1107 in the information security device 1100.
  • FIG. 12B is a flowchart showing an operation when the information security apparatus 1100 of the information security system 1000 calculates a hash value with a key.
  • the information security device 1100 operates as follows when calculating the keyed hash value. Note that the process in which the information security apparatus 1100 generates and outputs a hashed value with a key for input input data is performed by an input from a user or a trigger from an application program. Step S201: The input unit 1101 accepts input data input from the outside and inputs it to the hash generation unit 1103. Further, the input unit 1101 inputs a trigger signal to the PUF circuit to the information generation PUF unit 1104 and the error correction PUF unit 1106.
  • Step S202 The information generation PUF unit 1104 generates a hash key and inputs it to the error correction unit 1105.
  • Step S203 The error correction PUF unit 1106 generates error correction PUF information and inputs the error correction PUF information to the error correction information generation unit 1108.
  • Step S204 The error correction information generation unit 1108 generates error correction information using the error correction PUF information and the error correction part information stored in the error correction part information storage unit 1107. And input to the error correction unit 1105.
  • Step S205 The error correction unit 1105 uses the error correction information to error-correct the hash key, generates a corrected hash key, and inputs the hash key to the hash generation unit 1103.
  • Step S206 The hash generation unit 1103 generates a keyed hash value of the input data using the corrected hash key as a key, and inputs it to the output unit 1102.
  • Step S207 The output unit 1102 outputs the keyed hash value to the outside.
  • the information security apparatus 1100 stores error correction partial information instead of storing error correction information directly in a memory. Therefore, since the attacker cannot directly access the error correction information, it is difficult and safe for the attacker to obtain the PUF secret, that is, the hash key. Further, by providing the error correction PUF unit 1106 and the error correction information generation unit 1108, the error correction information can be restored from the error correction partial information, and the error correction works correctly.
  • An error in the hash key of the information generation PUF unit 1104 in the first embodiment may also be caused by a force S that may be caused by an environmental change and a secular change in the frequency characteristics of the PUF circuit.
  • the hash of the hash key output from the PUF unit 1104 for generating information is further suppressed by suppressing the output fluctuation of the PUF circuit over time, compared to the configuration of the information security system 1000 in the first embodiment. It is characterized by reducing errors.
  • FIG. 13 is a block diagram showing an example of the configuration of the PUF circuit 1 according to Embodiment 2 of the present invention.
  • the PUF circuit 1 corresponds to each of the first PUF circuits 11041A to 1104 II in the first embodiment, the first to eighth ring oscillators 101 to 108, and the first to second ring oscillator selection units 11; ! ⁇ 112, 1st ⁇ 2nd frequency counting part 121 ⁇ ; 122, output bit determination part 13, input value storage part 14, input value setting part 15, input value resetting determination part 16, threshold value
  • the storage unit 17 includes an output bit control unit 18 and an output bit storage unit 19.
  • output bit storage unit 19 is configured as a secret data storage unit for storing a part of a hash key that is secret data
  • output bit control unit 18 is configured to It is configured as a storage processing unit that stores a part of the key in the output bit storage unit 19 and is configured as an output control unit that outputs a part of the hash key stored in the output bit storage unit 19. Details of each part will be described below.
  • Each of the first to eighth ring oscillators 10;! To 108 is an oscillation circuit based on a configuration in which an odd number of negative circuits are connected in a ring shape, and an oscillation signal having a predetermined oscillation frequency by inputting a trigger signal. (Output signal) is output. Since the configuration and operation of these eight ring oscillators are all the same, the configuration and operation will be described below assuming that they are the ring oscillator 100.
  • FIG. 14 is a block diagram showing an example of the configuration of ring oscillator 100.
  • the ring oscillator 100 is a seven-stage ring oscillator, and includes a NAND circuit 21 and seven negative circuits 22 to 28 power.
  • the force used as a seven-stage ring oscillator may be any number of ring oscillators as long as it is an odd-numbered stage.
  • the output of the NAND circuit 21 is “1”. Therefore, the output of the negative circuit 2 2 is “0”, the output of the negative circuit 23 is “1”, and the output of the negative circuit 27 (that is, one input of the NAND circuit 21) is “1”. Since the other input of the NAND circuit 21 is “0”, the output of the NAND circuit 21 remains “1”. That is, the ring oscillator 100 is stable in the steady state. At this time, the output of the NOT circuit 28, that is, the ring oscillator The output signal of data 100 is stable at “0”. In summary, when the trigger signal to the ring oscillator 100 is “0”, the ring oscillator 100 does not oscillate and its output signal is “0”.
  • the output of the NAND circuit 21 changes from “0” to “1” again.
  • the trigger signal “1” is input, the internal state of the ring oscillator 100 is not stabilized, and the output of the NAND circuit 21 repeats a transition between “1” and “0”. Oscillates.
  • the ring oscillator 100 outputs an oscillation signal having a predetermined oscillation frequency.
  • the oscillation frequency is determined by the number of stages of the ring oscillator. Theoretically, if the ring oscillator has the same number of stages and circuit configuration, it will be the same.
  • the first to second ring oscillator selection units 111 to 112 are respectively based on the 3-bit input value data input from the input value storage unit 14, and the first to eighth ring oscillators 101 to 108 to 1 are used.
  • the oscillation signal output from the selected ring oscillator is acquired and input to the first frequency count unit 121 or the second frequency count unit 122. That is, the first ring oscillator selection unit 111 acquires the oscillation signal output from the selected ring oscillator and inputs it to the first frequency count unit 121, and the second ring oscillator selection unit 112 outputs from the selected ring oscillator.
  • the oscillation signal to be obtained is acquired and input to the second frequency count unit 122.
  • the correspondence between the 3-bit input value data and the ring oscillator to be selected may be anything as long as any input value data corresponds to one ring oscillator. In the present embodiment, it is as follows.
  • the first to second ring oscillator selection units 111 to 112 select the first ring oscillator 101 for the input value data “000” (binary number), respectively.
  • the second ring oscillator 102 is selected.
  • the third ring oscillator 103 is selected.
  • the eighth ring oscillator 108 is selected.
  • the first ring oscillator selection unit 111 and the second ring oscillator selection unit 112 each acquire different input value data and select different ring oscillators.
  • the first to second frequency counting units 121 to 122 measure the oscillation frequency of the oscillation signal input from the first ring oscillator selection unit 111 or the second ring oscillator selection unit 112, and output the measurement result. Input to the decision unit 13. That is, the first frequency counting unit 121 measures the oscillation frequency of the oscillation signal input from the first ring oscillator selecting unit 111, and the second frequency counting unit 122 is input from the second ring oscillator selecting unit 112. Measure the oscillation frequency of the oscillation signal.
  • the output bit determination unit 13 compares the magnitude relations of the input oscillation frequencies from the first frequency count unit 121 and the second frequency count unit 122, and determines the value of the 1-bit output bit based on the comparison result.
  • the output bit indicating the determined value is input to the output bit control unit 18.
  • the correspondence between the comparison result and the value of the output bit is (measurement frequency of first frequency counting unit 121) (total of second frequency counting unit 122). Measurement frequency), “1” is determined. Otherwise, “0” is determined.
  • the output bit control unit 18 When an external trigger signal is input to the PUF circuit 1 and an output bit output request is made, the output bit control unit 18 first stores the output bit in the output bit storage unit 19. Check whether it is done. If the output bits are stored, the stored output bits are output from PUF circuit 1 and the process is terminated. When the output bit is not stored in the output bit storage unit 19, the following processing is performed after the output bit is input from the output bit determination unit 13.
  • the output bit control unit 18 temporarily stores the output bits input from the output bit determination unit 13, and when an output bit save request signal is input from the input value setting unit 15, the output bit control unit 18 temporarily stores the output bits.
  • the stored output bit is output as an output bit of the PUF circuit 1 and also output to the output bit storage unit 19.
  • the temporarily stored output bit is output as the output bit of the PUF circuit 1.
  • the input value storage unit 14 stores two pieces of 3-bit input value data to be input to the first ring oscillator selection unit 111 and the second ring oscillator selection unit 112.
  • the 3-bit input value data input to the first ring oscillator selection unit 111 is referred to as the first input value data
  • the 3-bit input value data input to the second ring oscillator selection unit 112 is referred to as the second input value data. To do.
  • the input value setting unit 15 operates at the time of initialization or when an input value reset request signal is input from the input value reset determination unit 16, and exceeds the input setting threshold stored in the threshold storage unit 17.
  • Input value data (3 bits each) to the first ring oscillator selector 111 and the second ring oscillator selector 112 are set so that two ring oscillators having a frequency difference are selected.
  • the input value setting unit 15 obtains an output setting value from outside the PUF circuit 1 and outputs an output bit indicating the output setting value from the PUF circuit 1.
  • Input value data to the first ring oscillator selection unit 111 and the second ring oscillator selection unit 112 is set.
  • the input value setting unit 15 is (measurement frequency of the first frequency count unit 121) (measurement frequency of the second frequency count unit 122) and those Two such that the absolute value of the frequency difference between the two is equal to or greater than the input setting threshold Set the two input value data so that the ring oscillator is selected.
  • the input value setting unit 15 satisfies (measurement frequency of the first frequency count unit 121) ⁇ (measurement frequency of the second frequency count unit 122) and Two input value data are set so that two ring oscillators are selected such that the absolute value of the frequency difference between them is equal to or greater than the input setting threshold.
  • the input value setting unit 15 acquires the input value reset request signal
  • the measurement frequency of the first frequency counting unit 121 and the measurement frequency of the second frequency counting unit 122 that are already set are set.
  • the two input value data are reset so that the two ring oscillators are selected again so that the absolute value of the difference between these frequencies is equal to or greater than the input setting threshold value.
  • the input value setting unit 15 inputs an output bit save request signal to the output bit control unit 18.
  • the first ring oscillator selection unit 111, the second ring oscillator selection unit 112, the input value storage unit 14, and the input value setting unit 15 are configured by two ring oscillators from eight ring oscillators. It is comprised as a selection part which selects a ring oscillator.
  • the input value setting unit 15 is configured as a search unit that searches for two ring oscillators whose frequency difference is equal to or greater than the input setting threshold value, which is the first threshold value, and the input value storage unit 14 is searched by the search unit. It is configured as a parameter holding unit that holds input value data as selection parameters indicating the two ring oscillators.
  • the first ring oscillator selection unit 111 and the second ring oscillator selection unit 112 are each configured as a selection determination unit that determines and selects the ring oscillator indicated by the input value data as the ring oscillator to be selected.
  • the input value reset determination unit 16 observes the oscillation frequency output from the first frequency counting unit 121 and the second frequency counting unit 122, and the absolute value of the frequency difference is stored in the threshold storage unit 17 If the input value reset judgment threshold is lower, the input value setting Input the input value reset request signal to the fixed part 15.
  • the input value reset determination unit 16 determines whether or not the frequency difference is less than the input value reset determination threshold that is the second threshold; It is configured as a resetting unit that causes the selection by the selection unit described above to be executed again.
  • the threshold storage unit 17 stores the input setting threshold and the input value reset determination threshold. These values are positive. In this embodiment, these values are written when the PUF circuit 1 is manufactured. The values may be written from the outside after the circuit is manufactured. You may be able to do it. Moreover, after performing some kind of authentication, external writing may be permitted. In the present embodiment, the threshold storage unit 17 stores the input setting threshold as the first threshold and the input value reset determination threshold as the second threshold! / Constructed as! /
  • FIG. 15 is a flowchart showing an operation when the PUF circuit 1 sets input value data.
  • Input value data setting is a process executed as an initialization process after the PUF circuit 1 is manufactured.
  • the “input value data setting” process is performed as follows.
  • Step S301 The input value setting unit 15 receives a 1-bit value input from the outside of the PUF circuit 1 as an output setting value. Further, the threshold for input setting stored in the threshold storage unit 17 is read.
  • Step S302a The input value setting unit 15 generates (Nl, N2) as candidates for the first input value data and the second input value data, and sets N1 in the first ring oscillator selection unit 111 and the second ring. N2 is input to the oscillator selection unit 112, respectively.
  • Step S302b The first ring oscillator selection unit 111 selects one ring oscillator as the intermediate force of the first ring oscillator 101 to the eighth ring oscillator 108 based on N1 according to the rules described above. To do.
  • the second ring oscillator selection unit 112 selects one ring oscillator from the first ring oscillator 101 to the eighth ring oscillator 108 according to the rules described above based on N2.
  • Step S302c Here, when a trigger signal is input to the two ring oscillators selected in step S302b, the two selected ring oscillators oscillate and output an oscillation signal.
  • the ring oscillator selected by the first ring oscillator selection unit 111 inputs an oscillation signal to the first frequency count unit 121 via the first ring oscillator selection unit 111.
  • the ring oscillator selected by the second ring oscillator selection unit 112 inputs an oscillation signal to the second frequency count unit 122 via the second ring oscillator selection unit 112.
  • Step S302d The first frequency counting unit 121 and the second frequency counting unit 122 each measure the oscillation frequency from the input oscillation signal.
  • the first frequency counting unit 121 measures the oscillation frequency F1
  • the second frequency counting unit 122 measures the oscillation frequency F2. Then, the measured F1 and F2 are input to the input value setting unit 15.
  • the input value setting unit 15 inputs (Nl, N2) at that time using N1 as the first input value data and N2 as the second input value data. Input to the value storage unit 14 and delete the output set value.
  • “There is no contradiction between the difference D and the output set value” means that if the output set value is 0, the difference D is a negative value or 0, and the output set value is If it is 1, it means that the difference D is a positive value. If the above condition is not satisfied, the input value setting unit 15 determines that the selected candidate has failed. In this case, as will be described later in step S305, another candidate (N1, N2) is generated, and steps S302a to S302d are repeatedly executed.
  • Step S304 The input value storage unit 14 receives Nl and N2 input from the input value setting unit 15, that is, the first input value data candidate Nl and the second input value data that are determined not to fail.
  • the candidate N2 is stored as the first input value data and second input value data to be set, respectively, and the “input value data setting” process is terminated.
  • Step S305 When the input value setting unit 15 determines that the selected first input value data candidate N1 and second input value data candidate N2 are unsuccessful in step S303, the input value setting unit 15 It is determined whether there are other candidates other than N2. Here, if it is determined that there is another candidate, the input value setting unit 15 repeats the processing from step S302, and if it is determined that there is no other candidate, executes the processing of step S306.
  • Step S306 When the input value setting unit 15 determines that there is no other candidate as described above, it outputs an output set value and an input value setting failure signal to the output bit control unit 18.
  • the output bit control unit 18 receives the input value setting failure signal and the output setting value, and inputs the output setting value (the output bit indicating the output setting value) to the output bit storage unit 19.
  • the output bit storage unit 19 stores the output set value and ends the “input value data setting” process.
  • FIG. 16 is a flowchart showing the operation when PUF circuit 1 calculates the output bit.
  • the "output bit calculation" process is executed when a trigger signal is input from outside the PUF circuit 1.
  • PUF circuit 1 outputs a 1-bit output bit that is securely held internally to the outside of PUF circuit 1.
  • the following series of operations are performed.
  • Step S401 The output bit control unit 18 confirms whether or not the output set value (output bit indicating the output set value) is stored in the output bit storage unit 19! In this case, the output setting value (1 bit) is output as an output bit from PUF circuit 1, and the “output bit calculation” process is terminated. If the output set value is not stored, go to step S402.
  • Step S402 The input value storage unit 14 inputs the first input value data stored therein to the first ring oscillator selection unit 111 and the second input value data to the second ring oscillator selection unit 112, respectively.
  • Step S403 The first ring oscillator selection unit 111 selects one medium force of the first ring oscillator 101 to the eighth ring oscillator 108 based on the first input value data.
  • the second ring oscillator selection unit 112 selects one from the first ring oscillator 101 to the eighth ring oscillator 108 based on the second input value data.
  • Step S404 A trigger signal is input to each of the two ring oscillators selected in step S403, an oscillation operation is performed, and an oscillation signal is output. At this time, the output oscillation signals are input to the first frequency count unit 121 and the second frequency count unit 122 via the first ring oscillator selection unit 111 and the second ring oscillator selection unit 112, respectively.
  • Step S405 The first frequency counting unit 121 and the second frequency counting unit 122 measure the oscillation frequencies Fl and F2 of the input oscillation signal, respectively, and determine the output bit determination unit 13 and the input value reset determination. Enter in part 16.
  • Step S406 The output bit determination unit 13 compares the magnitude relation between the input oscillation frequencies Fl and F2, and based on the comparison result, according to the determination rule described above, the 1-bit output bit Is input to the output bit control unit 18.
  • the output bit control unit 18 temporarily stores the input output bits.
  • Step S408 Upon receipt of the input value reset request signal, the input value setting unit 15 executes input value data resetting processing to be described later. As a result of this processing, “update first input value data Nl and second input value data N2 stored in input value storage unit 14” or “send input value reset failure signal to output bit control unit 18”. Either one is done.
  • Step S409 The output bit control unit 18 outputs the 1-bit output bit input from the output bit determination unit 13 and temporarily stored as an output bit of the PUF circuit 1.
  • the output bit control unit 18 ends the calculation of the output bit as it is.
  • the output bit control unit 18 further inputs the one output bit to the output bit storage unit 19 as an output set value. Then, the output bit storage unit 19 stores the output set value therein, and ends the “output bit calculation” process.
  • Figure 17 is a flowchart showing the operation when PUF circuit 1 resets the input value data.
  • the “input value data resetting” process is a subroutine process that is executed when the input value setting unit 15 receives an input value resetting request signal in the “output bit calculation” process described above.
  • the “reset of input value data” process is performed as follows.
  • Step S501 The input value setting unit 15 specifies an input setting threshold value and an output setting value.
  • the input value setting unit 15 reads the input setting threshold value stored in the threshold value storage unit 17. Further, the input value setting unit 15 performs the first rotation in step S405 of “output bit calculation”. Compare the magnitude relationship between the oscillation frequency Fl input from the wave number counting unit 121 and the oscillation frequency F2 input from the second frequency counting unit 122.If F2> F1, set the output setting value to ⁇ 1 '' Otherwise, the output set value is set to “0”.
  • PUF circuit 1 performs the following operations.
  • Step S502a The input value setting unit 15 generates (Nl, N2) as candidates for the first input value data and the second input value data, and sets N1 in the first ring oscillator selection unit 111 and the second ring. N2 is input to the oscillator selection unit 112, respectively.
  • Step S502b The first ring oscillator selection unit 111 selects one ring oscillator from the first ring oscillator 101 to the eighth ring oscillator 108 according to the rules described above based on N1. To do.
  • the second ring oscillator selection unit 112 selects one ring oscillator from the first ring oscillator 101 to the eighth ring oscillator 108 according to the rules described above based on N2.
  • Step S502c Here, when a trigger signal is input to the two ring oscillators selected in step S502b, the two selected ring oscillators oscillate and output an oscillation signal.
  • the ring oscillator selected by the first ring oscillator selection unit 111 inputs an oscillation signal to the first frequency count unit 121 via the first ring oscillator selection unit 111.
  • the ring oscillator selected by the second ring oscillator selection unit 112 inputs an oscillation signal to the second frequency count unit 122 via the second ring oscillator selection unit 112.
  • Step S502d The first frequency count unit 121 and the second frequency count unit 122
  • the oscillation frequency is measured from the input oscillation signal.
  • the first frequency counting unit 121 measures the oscillation frequency F1
  • the second frequency counting unit 122 measures the oscillation frequency F2. Then, the measured F1 and F2 are input to the input value setting unit 15.
  • step S505 determines that the selected candidate is a failure. In this case, as will be described later in step S505, another candidate (Nl, N2) is generated, and steps S502a to S502d are repeatedly executed.
  • the input value setting unit 15 inputs an output set value and an input value reset failure signal corresponding to the above-described save request signal to the output bit control unit 18. Then, the output set value is deleted.
  • Step S504 The input value storage unit 14 receives Nl and N2 input from the input value setting unit 15, that is, the first input value data candidate Nl and the second input value data that are determined not to have failed.
  • the candidate N2 is stored as the first input data and the second input data to be set, respectively, and the “reset input value data” process is completed.
  • Step S505 When the input value setting unit 15 determines that the selected first input value data candidate N1 and second input value data candidate N2 have failed in step S503, the input value setting unit 15 , It is determined whether there are other candidates other than N2. Here, the input value setting unit 15 If it is determined that there is a complement, the processing from step S502 is repeated, and if it is determined that there are no other candidates, the processing of step S506 is executed.
  • Step S506 When the input value setting unit 15 determines that there is no other candidate as described above, it outputs an output set value and an input value reset failure signal to the output bit control unit 18. .
  • the output bit control unit 18 receives the input value reset failure signal and the output set value, and inputs the output set value to the output bit storage unit 19.
  • the output bit storage unit 19 stores the output set value, and ends the “reset of input value data” process.
  • the operation of PUF circuit 1 in the present embodiment is as follows.
  • the PUF circuit 1 After the PUF circuit 1 is manufactured, the PUF circuit 1 performs "input value data setting" processing,
  • PUF circuit 1 performs “output bit calculation” processing and outputs one output bit set by “input value data setting” processing. At that time, the PUF circuit 1 causes the frequency difference between the two ring oscillators selected by the input value data (Nl, N2) set in the input value storage unit 14 to fall below a predetermined threshold due to secular change or the like. If it is detected, the “input value data resetting” process is performed to reset the input value data.
  • the frequency difference between the two ring oscillators selected by the set input value data has become less than a predetermined threshold due to the aging of the frequency characteristics of the circuits constituting the ring oscillator. This is detected, and the input value data is reset so that the frequency difference is equal to or greater than the predetermined threshold.
  • the input value data is reset. Does not have a mechanism. Therefore, it can be said that the PUF circuit 1 is improved in terms of the stability of the output bit as compared with the conventional configuration against the change of the frequency characteristic due to the secular change.
  • two values ie, an input setting threshold and an input value reset determination threshold are introduced and stored in the threshold storage unit 17.
  • these values are not stored inside the PUF circuit.
  • these values are the frequency difference of the ring oscillator From this value, the magnitude relation of the oscillation frequency of the ring oscillator selected in the output bit calculation process cannot be inferred from this value. In other words, one output bit cannot be inferred from these values, and the PUF circuit 1 in this embodiment can safely hold the secret data as in the conventional PUF circuit. is there.
  • the change in the frequency characteristics of the ring oscillator due to secular change advances, and in the reset process of the input value data, a ring oscillator pair having a frequency difference equal to or greater than a predetermined threshold is not found. If the output bit is stored in the output bit storage unit 19, the output bits stored in the output bit storage unit 19 are output. If it is determined that it is difficult to hold more stable output bits due to the PUF configuration by resetting the input value data, the output bits are held as they are to maintain the stability of the output bits. Will continue to do. As a result, the safety of the output bit is reduced compared to the case where it is stored in PUF. However, even if only one bit of tens to hundreds of bits of secret data such as key data is analyzed and exposed, it will rarely lead to fatal security degradation. There is no significant safety problem. The above mechanism may be deleted when implementing a highly secure PUF circuit.
  • the ring oscillator in which the frequency difference is equal to or greater than the threshold value Reset the input value data to select.
  • the stability of the output bits of the PUF circuit can be improved. In other words, it is possible to provide an information security device using a PUF circuit that does not invert the output bits even when aging occurs.
  • Embodiment 3 of the present invention will be described with reference to the drawings.
  • input value data resetting processing is executed based on the result of error correction using an error correction code performed outside the PUF circuit or error detection.
  • FIG. 18 is a block diagram showing an example of the internal configuration of the PUF circuit 4 according to the third embodiment.
  • PUF circuit 4 corresponds to each of first PUFs 11041A to 110411 in the first embodiment and its modifications, and has substantially the same configuration as PUF circuit 1 in the second embodiment in FIG. That is, the PUF circuit 4 includes first to eighth ring oscillators 101 to 108, first to second ring oscillator selection units 11;! To 112, first to second frequency count units 12; The output bit determination unit 13, the input value storage unit 14, the input value setting unit 45, the input value reset determination unit 16, the threshold storage unit 17, the output bit control unit 18, and the output bit storage unit 19 It becomes power.
  • PUF circuit 4 receives an input value reset request signal from the outside, and input value setting unit 45 accepts the input value reset request signal. That is, the input value setting unit 45 in the present embodiment has the same function as the input setting unit 15 in the second embodiment, and when an input value reset request signal is obtained from outside the PUF circuit 4, Similar to when an input value reset request signal is acquired from the value reset determination unit 16, the “reset of input value data” process in the second embodiment is executed.
  • the information generation PUF unit in the present embodiment includes nine such PUF circuits 4, and can securely hold a hash key which is 3-bit secret data.
  • FIG. 19 is a diagram for explaining a method of setting a hash key in the information generation PUF unit in the present embodiment.
  • the information generation PUF unit 1104a includes nine PUF circuits 4 and a bit concatenation unit 302 that concatenates output bits output from the nine PUF circuits 4.
  • Bit concatenation unit 302 has the same function as hash key generation unit 11042 of the first embodiment.
  • an error correction code generation unit 300 and a bit division unit 301 are used.
  • the hash key setting process is performed when the hash key is set after the information generation PUF unit 1104a is manufactured.
  • the error correction code generation unit 300 performs error correction coding on the 3-bit hash key. Then, an error correction code for the hash key is generated.
  • Bit division section 301 divides the error correction code generated by error correction code generation section 300 into bits, and inputs each bit to each PUF circuit 4 as an output set value. The hash key setting process will be described below using a specific example.
  • the error correction code generation unit 300 generates an error correction code (error correction codeword C) for the hash key M as follows.
  • error correction codeword C error correction codeword C
  • ml, m2, and m3 are each 1-bit values
  • ml is the most significant bit of M
  • m2 is the 2nd bit from the high order of M
  • m3 is the least significant bit of M. Bit.
  • the error correction code generation unit 300 inputs the 9-bit error correction codeword C thus obtained to the bit division unit 301.
  • the bit dividing unit 301 divides the inputted 9-bit C bit by bit from the upper bit and inputs each bit to nine PUF circuits 4 respectively.
  • Each of the nine PUF circuits 4 performs exactly the same processing as the “input value data setting” processing of the PUF circuit 1 in the second embodiment by setting the input 1-bit data as the output setting.
  • FIG. 20 is a diagram showing a configuration of the information security apparatus 1100a in the present embodiment.
  • the information security device 1100a in the present embodiment includes an information generation PUF unit 1104a, an error correction processing unit 303, an exclusive OR unit 305, a bit division unit 306, a decoding unit 304, It consists of an input unit 1101, a hash generation unit 1103, and an output unit 1102. Note that the input unit 1101, the hash generation unit 1103, and the output unit 1102 in the present embodiment are the same as the input unit 1101, the hash generation unit 1103, and the output unit 1102 in the information security device 1100 of the first embodiment.
  • Bit concatenation 302 is a permutation of nine PUF circuits 4
  • the bit concatenation unit 302 is configured as a combining unit that combines output values output from the plurality of PUF circuits 4.
  • Error correction processing section 303 performs error correction on the inputted 9-bit data and outputs the resulting 9-bit data.
  • FIG. 21 is a diagram showing a configuration of the error correction processing unit 303.
  • the error correction processing unit 303 includes an error correction unit 1105a, an error correction information generation unit 1108, an error correction PUF unit 1106, and an error correction partial information storage unit 1107.
  • the error correction information generation unit 1108, error correction PUF unit 1106, and error correction part information storage unit 1107 in the present embodiment are the same as the error correction information generation unit 1108, error correction PUF unit 1106, and error correction in the first embodiment. This is the same as the corrected partial information storage unit 1107.
  • the error correction unit 1105a in the present embodiment is configured to set the 3-bit repetition code to 1 bit to perform an exclusive OR operation, similar to the error correction unit 1105 in the first embodiment. No decryption is performed.
  • the error correction unit 1105a takes an exclusive OR of the 9-bit data that is the hash key before error correction and the error correction information, and exclusively outputs the resulting 9-bit data to the decoding unit 304. Input to the logical sum part 305.
  • Decoding section 304 divides the 9-bit data input from error correction processing section 303 into 3-bit repetitive codes, and decodes each 3-bit repetitive code into 1 bit. That is, the error correction unit 1105a and the decoding unit 304 in the present embodiment implement the error correction unit 1105 of the first embodiment.
  • decoding section 304 removes the redundancy added for error correction coding from the 9-bit data of the input error correction result, and outputs a 3-bit corrected hash key .
  • the decoding unit 304 divides the above 9-bit data by 3 bits from the top, and for each 3-bit data, 000 (binary) is 0 (binary) or 111 (binary) Is converted to 1 (binary number) and then concatenated again into 3-bit data.
  • 000 (binary) is 0 (binary) or 111 (binary) Is converted to 1 (binary number) and then concatenated again into 3-bit data.
  • the error correction code used above is a repetitive code that adds 2 bits of the same value as the information bits as redundant bits to the information bits, 3 bits (1 information bit and 2 redundant bits). Even if an error occurs in one bit and the data is inverted, it is possible to detect and correct the error.
  • the error correction processing unit 303 may perform error correction processing as follows. In other words, the error correction processing unit 303 deciphers the input 9-bit data into 3 bits from the higher order, and sets them as cl, c2, and c3. Next, for each of cl, c2, and c3, a nominating weight (the number of bits with 1 standing) is calculated. If the Hamming weight is 2 or more, 111 (binary number) is set. If the Hamming weight is 1 or less, 000 (binary number) is set. For example, 010 (binary number) is 000 (binary number), and 110 (binary number) is 111 (binary number).
  • the final error is obtained by concatenating the 3 bits x 3 data obtained in this order, from the top, in the order of cl error correction processing result, c2 error correction processing result, and c3 error correction processing result.
  • the corrected 9-bit data is input to the decryption unit 304 and the exclusive OR unit 305.
  • the exclusive OR unit 305 is an exclusive OR of the 9-bit data before error correction input from the bit concatenation unit 302 and the 9-bit data after error correction input from the error correction processing unit 303. The calculation is performed, and the 9-bit data that is the calculation result is input to the bit division unit 306. This is equivalent to comparing the data before and after error correction and setting 1 to the bit position where error correction was performed. That is, in the present embodiment, the exclusive OR unit 305 is configured as an error determination unit that determines whether or not an error has occurred in the hash key output from the information generation PUF unit 1104a.
  • the bit dividing unit 306 divides the inputted 9-bit data bit by bit from the upper order, and inputs each bit to each PUF circuit 4. As a result, 1-bit data “1” is input as the input value reset request signal to the PUF circuit 4 that has output the error-corrected bit, and the PUF circuit that has output the error-corrected bit. One bit data “0” is input to 4. That is, in the present embodiment, the bit division unit 306 is configured as a reset request unit that requests the information generation PUF unit 1104a to reset the hash key.
  • the PUF circuit 4 to which the input value reset request signal is input is the same as in the second embodiment described above. "Reset input value data" process is executed. That is, the PUF circuit 4 executes the process described above with reference to FIG. However, the input value setting unit 45 of the PUF circuit 4 specifies the output set value based on the rule opposite to the above because an error has already occurred in the output bit when the output set value is specified in step S501. To do. For example, the input value setting unit 45 compares the magnitude relationship between the oscillation frequency F1 input from the first frequency count unit 121 and the oscillation frequency F2 input from the second frequency count unit 122, and F2 ⁇ F1. If there is, the output set value is set to “1”, otherwise, the output set value is set to “0”.
  • the input value setting unit 45 of the PUF circuit 4 is configured as a resetting unit that resets the hash key.
  • a bit detected (error corrected bit) is input to the PUF circuit that generated the bit value. It is characterized by instructing data reset processing.
  • This configuration has the following effects that were not obtained in the second embodiment.
  • the threshold value for determining the input value resetting is R
  • the frequency characteristics of the ring oscillator change abruptly, and the difference between the oscillation frequencies (F2-F1) force is originally F2- If F1> R changes to F2 ⁇ F1 ⁇ —R, the output bit value of the PUF circuit is inverted, and the absolute value of F2 ⁇ F1 is greater than or equal to R. Therefore, the input value resetting process is not performed.
  • the inversion of the output bit is detected and the input value resetting process is performed, so that the input value data is reset appropriately.
  • the input value data is appropriately reset even for a sudden change in the frequency characteristic of the ring oscillator, and the stability of the output bit is maintained.
  • the PUF circuit 4 that has output the output bit that is, the PUF circuit 4 that has acquired the input value reset request signal
  • the output bit value to be output without resetting the input value data that is, the output setting value may be stored in the output bit storage unit 19.
  • FIG. 22 is a flowchart showing another operation of the PUF circuit 4 that has acquired the input value reset request signal.
  • the input value setting unit 45 that has acquired the input value reset request signal specifies the output set value. (Step S601). At this time, the input value setting unit 45, as described above, has already generated an error in the output bit, so that the oscillation frequency F1 input from the first frequency counting unit 121 and the second frequency counting unit 122 are input. Compare the magnitude relationship with the oscillation frequency F2, and if F2 ⁇ F1, set the output set value to "1", otherwise set the output set value to "0".
  • the input value setting unit 45 outputs the specified output setting value and the save request signal to the output bit control unit 18, whereby the output bit control unit 18 receives the output setting value (output setting value). Are stored in the output bit storage unit 19 (step S602).
  • Embodiments 1 to 3 described above are examples of the practice of the present invention, and the present invention is not limited to these embodiments, and can be carried out in various modes without departing from the scope of the invention. To get.
  • the present invention includes the following cases.
  • the error correction code used in the information security device and the error correction information generation device is a repetition code, but is not limited thereto. Any error correction code may be used. For example, an algebraic code such as a Reed 'Solomon code or a convolutional code may be used. In addition, the code length (number of bits and elements) is set to 9, and the number of information symbols is set to 3. This is not limited to this. In terms of security, the corrected hash key should be 80 bits or more! /.
  • Information security device is not limited to the ability to output a hash value with a key.
  • Conversion data obtained by converting input data using a secret key may be output.
  • Conversion data includes ciphertext, decrypted text, and signature data in addition to the hash value with key.
  • any tamper resistant circuit that can output secret information may be used.
  • it may be a tamper resistant circuit whose output changes due to environmental or aging deterioration.
  • an identification information generating circuit described in Patent Document 2 Japanese Patent Laid-Open No. 2006-060109
  • the identification information generation circuit is unique from the first logic signal output from each memory cell of flip-flop RAM and StaticRAM when the power is turned on. An identification code is generated.
  • PUF includes Optical UF using speckle pattern, Silicon PUF using gate delay, Coating PUF using dielectric constant, and Acoustic PUF using noise sound.
  • the environment change unit of the error correction information generation apparatus changes the temperature around the PUF circuit
  • other environment changes for example, voltage changes may be used.
  • it may be configured to acquire the current environment, not the environment change, and inform the environment change analysis unit of the current environment.
  • the rule for converting the difference from “0” to “7” is a force given in advance.
  • This conversion rule is used to generate error correction information. It may be determined by the device and embedded in the second PUF circuit or stored in the error correction partial information storage.
  • the error correction information of the second PUF circuit may be stored in the error correction partial information storage unit.
  • the error correction information of the second PUF circuit can be used to know the PUF information for error correction, and the attacker can know the error correction information of the first PUF circuit from the error correction partial information.
  • the amount of processing required for attacker analysis increases, which is effective in improving security.
  • PUF circuits may be added as the third, fourth,... To make the error correction information more demanding by the attacker.
  • the force that determines the output bit of 1 bit or 3 bits from the magnitude relationship between the oscillation frequencies of the two ring oscillators This is not limited to two, but more than two It may be a ring oscillator.
  • the frequencies of the three ring oscillators are A, B, and C
  • the correspondence relationship between all the patterns of A, B, and C and the output bits may be determined in advance as rules. .
  • the input value reset determining unit determines the difference between (first frequency) and (second frequency) after arranging A, B, C in descending order of frequency ( The difference between (second frequency) and (third frequency) can be calculated and checked by checking whether each difference value is equal to or greater than a predetermined threshold.
  • the input value pair (Nl, N2) having a difference equal to or larger than the input value setting threshold value is When it is found, the force that was set or reset in the direct storage section First, after finding the frequency difference value for all input value pairs (Nl, N2), select the largest difference value (Nl, N2), and the difference value at that time is the input value setting. If it is greater than or equal to the threshold, the selected value is set or reset in the input value storage unit, and if it is less than the above threshold, there is an input value setting failure signal! /, And an input value reset failure signal is sent. May be.
  • the input setting threshold and the input value resetting determination threshold stored in the threshold storage unit are not necessarily set at the time of manufacturing the PUF circuit, and may be set after manufacturing. Yes. Further, even after setting once, it may be set again. That is, at least one of the input setting threshold and the input value reset determination threshold may be updated. For example, every time the UF circuit performs output bit calculation processing a predetermined number of times, a ring oscillator pair that satisfies the currently set input setting threshold is changed when the threshold value is changed or when the input value data is reset. If it does not exist, the threshold may be changed to be smaller than the current threshold.
  • the input value reset determination by the input value reset determination unit may be performed every time the output bit calculation process is performed a predetermined number of times, which is not necessary every time the output bit calculation process is performed. Alternatively, it may be performed when an external instruction signal is received.
  • a configuration in which a ring oscillator is used as an oscillation circuit is shown.
  • This is an oscillation such as a solid oscillator oscillation circuit, a CR oscillation circuit, an LC anti-coupling oscillation circuit, etc. Any circuit can be used.
  • data output from one PUF circuit is a force S that was 1 bit or 3 bits, and this is not limited to 1 bit or 3 bits, and the magnitude relationship of the oscillation frequency If the decision rule for deciding the output bit from is decided in advance, it may be 2 bits or 4 bits or more.
  • each of the above devices is a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is stored in the RAM or hard disk unit.
  • Microprocessor power Each device achieves its functions by operating according to the computer program.
  • Computer productr here The system is a combination of multiple instruction codes that indicate commands to the computer in order to achieve a predetermined function.
  • a system LSI is an ultra-multifunctional LSI that is manufactured by integrating multiple components on a single chip. Specifically, it is a computer system that includes a microprocessor, ROM, RAM, and so on. is there. A computer program is stored in the RAM. Microprocessor power The system LSI achieves its functions by operating according to the computer program.
  • a part or all of the components constituting each of the above devices may be constituted by an IC (Integrated Circuit) card that can be attached to and detached from each device or a single module.
  • the entire information security device 1100 shown in FIG. 4 is configured as an IC card, or the information generation PUF unit 1104, the error correction unit 1105, the error correction information generation unit 1108, and the error
  • the correction PUF unit 1106 and the error correction partial information storage unit 1107 may be configured as an IC card.
  • the IC card or the module is a computer system including a microprocessor, ROM, RAM, and the like.
  • the IC card or the module may include the super multifunctional LSI described above. Microprocessor power By operating according to a computer program, the IC card or the module achieves its function. This IC card or this module may be tamper resistant! /.
  • the present invention may be the method described above. Further, the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal composed of the computer program.
  • the present invention also relates to a recording medium capable of reading the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM. , Recorded on a BD (Blu-ray Disc), semiconductor memory, or the like. Also, the digital signal recorded on these recording media is acceptable.
  • the computer program or the digital signal is transmitted via an electric communication line, a wireless or wired communication line, a network typified by the Internet, a data broadcast, or the like. It may be a thing.
  • the present invention is a computer system including a microprocessor and a memory, the memory storing the computer program, and the microprocessor according to the computer program. It may operate.
  • the program or the digital signal is recorded on the recording medium and transferred, or the program or the digital signal is transferred via the network or the like. It may be implemented by another computer system.
  • the information security device makes it impossible for an attacker to know secret data such as a key value concealed by the PUF even if information stored in the memory is used. Can be applied to IC cards, for example.
  • the information security device which is the power of the present invention, maintains the secret data such as key data and ID data in a secure and inexpensive manner, and improves the stability of the secret data against aging over the prior art. Therefore, it is useful for realizing information security devices that are required to be realized with high security, low cost, and high stability.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Description

明 細 書
情報セキュリティ装置
技術分野
[0001] 本発明は、認証や暗号を実現するシステムに関するものであり、暗号処理で用いる 鍵などの秘密データや、機器固有の IDデータを解析力 保護された形でセキュアに 実装する情報セキュリティ装置に関する。
背景技術
[0002] 近年、デジタルコンテンツの著作権保護やネット上の通信データの秘匿を目的とし て、各種民生機器などで喑号処理を行うケースが多くなつてきた。喑号処理において は、その処理に用いる鍵や IDデータを機器内に蓄積する必要があり、著作権保護シ ステムや秘話通信システムの安全性は、前記鍵や IDデータの秘匿性に大きく依存す る。従って、そういった秘密データを、機器外部からの解析から保護された形でセキ ユアに蓄積する必要がある。
[0003] 秘密データをセキュアに蓄積する典型的な従来方法としては、耐タンパ一性の高 いハードウェアチップ (耐タンパ一チップ)内に蓄積する方法や、耐タンパ一が施され たソフトウェアプログラム内に埋め込むような方法があった。しかし、前者の方法では 、秘密データの高い秘匿性は実現できるものの特殊な専用チップが必要となるため コストが高くなるという問題があり、後者の方法では、一般的には余り高い秘匿性は実 現できず、時間をかけて解析を行うことで秘密データが露呈してしまう可能性があつ た。
[0004] 耐タンパ一チップのような特殊なハードウェアを必要とせず、秘密データの高い秘 匿性を実現可能な方法として、 PUF (Physically Uncloanable Function)と呼 ばれる技術がある。 PUFとは、デバイスの物理的な特性を利用して、物理的な解析 に対しても耐性があるような秘密データの蓄積方法である。 PUFの具体的な方法は 、各種がある力 中でも特許文献 1に開示の Silicon PUFと呼ばれる方法は、製造 に特殊な環境や設備を必要としないことから、安価な製造コストで高い耐タンパ一性 を実現でき、低コスト性が要求される民生機器などに特に適した方法といえる。 [0005] (Silicon PUFの概要)
図 1は、従来の Silicon PUFを実現する回路の構成を示した図である。図 1にお いて、 PUF回路 2000は、トリガ信号を入力すると、 1ビットの秘密データを出力する 回路である。
[0006] PUF回路 2000は、 8個のリングオシレータ(第 1リングオシレータ 2001〜第 8リング オシレータ 2008)と、入力データに基づいて前記 8個のリングオシレータのうちから 1 個を選択するリングオシレータ選択部(第 1リングオシレータ選択部 2011及び第 2リ ングオシレータ選択部 2012)と、前記リングオシレータ選択部が選択したリングオシ レータの発振周波数をカウントする周波数カウント部(第 1周波数カウント部 2021及 び第 2周波数カウント部 2022)と、カウントした周波数を元に PUF回路 2000の出力 ビットを決定する出力ビット決定部 2030とからなる。以下、 PUF回路 2000の動作を 説明する。
[0007] まず、リングオシレータ選択部 2011、 2012はそれぞれ、 8個のリングオシレータ 20 0;!〜 2008の中から予め決定した 1個をそれぞれ選択する。次に、前記リングオシレ ータ 200;!〜 2008にトリガ信号が入力され、リングオシレータは発振動作を開始する 。周波数カクン卜咅 2021、 2022 (ま、前記ジング才シレータ選択咅 2011、 2012カ¾1 択したリングオシレータからの出力信号をそれぞれ計測して、リングオシレータの発 振周波数を計測する。そして、出力ビット決定部 2030は、前記計測した 2つの発振 周波数を比較し、その大小関係によって、 PUF回路 2000の出力ビットを決定する。
[0008] 上記一連の動作により、 PUF回路 2000にトリガ信号を入力すると、 PUF回路 200 0の内部で出力ビットが 1ビットだけ決定され出力される。 8個のリングオシレータ 200 ;!〜 2008は、リングオシレータの段数などの回路構成は同一である力 S、製造プロセス において遅延時間など物理的な特性に若干であるがバラつきが生じる。それにより、 各リングオシレータの発振周波数は、少しずつ異なった値となる。その異なり方は、 P UF回路を製造する際に予測不可能な形で決まり、かつ、 PUF回路ごとに違ってくる 。このような発振周波数により出力ビットが異なる。また、入力データに対する出力ビ ットの対応関係は、 PUF回路内の各リングオシレータの発振周波数を計測することで 解析すること力 Sできる。しかし、 PUF回路に対して、例えばブロービングなどで、外部 から発振周波数による解析操作を行うと、リングオシレータの物理特性が変化して、 出力ビット計算時と同じ発振周波数を計測することができないので、外部からの解析 により、入力データに対する出力ビットの対応関係を調べることは困難である。また、 PUF回路は、リングオシレータ、周波数カウンタ、比較器などの組み合わせ回路によ つて実現できるため、特殊な製造環境や設備を必要とせず、通常の LSI製造環境- 設備を用いて安価に製造することが可能である。
[0009] (Silicon PUFの課題)
上記のとおり、 Silicon PUFの技術により、安価なコストによって、解析困難な形で チップごとに異なった入出力関係を有する関数を実装することが可能となったが、以 下のような課題もある。 PUF回路の出力ビットは、入力データに基づいて選択された リングオシレータの発振周波数の大小関係で決定される。先ほど説明したとおり、回 路製造時の遅延時間などの物理特性のバラつきによって、リングオシレータの発信 周波数にバラつきが生じる力 周波数の差がわず力、しかない二つのリングオシレータ 間の大小関係は、温度変化など外部の環境によって逆転してしまう恐れがある。例え ば、ある入力データによって、二つのリングオシレータ A及び Bが選択され、発振周波 数がそれぞれ 1256Hz、 1245Hzと計測されたとする。このとき、出力ビット値は、 [A の発振周波数] > [Bの発振周波数]から" 1 "と判定される。また、別のタイミングで同 じ入力データを、この PUF回路に入力すると、同じリングオシレータ A及び Bが選択さ れるカ S、このとき、先ほどよりも外部の温度が上昇したとする。その場合、リングオシレ ータの遅延時間が上昇するので、発振周波数も、それぞれ低下することになるが、そ の低下の度合いにも、リングオシレータによって若干であるがバラつきがあるので、リ ングオシレータの元もとの周波数差が僅力もかない場合には、大小関係が反転して しまう恐れがある。上記の例では、リングオシレータ Aと Bとの周波数差は、 9Hzしかな いので、温度変化によって、 [Aの発振周波数]〉 [Bの発振周波数]という大小関係 は反転してしまう恐れがある。即ち、同じ入力データに対して、場合によっては、違う 出力ビット値を出力してしまう恐れがあり、出力ビット値の安定性に課題がある。
[0010] (Slilicon PUFの改良)
上記課題に対し、従来方法では誤り訂正符号を導入し、出力値(出力ビットの値) の誤りを訂正することで安定性を向上させている。
[0011] 図 2は、従来方法における情報セキュリティ装置 3000の構成を示している。情報セ キユリティ装置 3000は、外部から入力された入力データに対し、 PUFを使用して生 成した鍵を用いた鍵付ハッシュ値を出力している。鍵付ハッシュ値は、鍵付ハッシュ 関数を用いて生成される。鍵付ハッシュ関数については、非特許文献 1の 189〜; 19 5ページに記載されている。
[0012] 情報セキュリティ装置 3000は、外部から入力データを受け付ける入力部 3001と、 鍵付ハッシュ値を出力する出力部 3002と、鍵付ハッシュ値を生成するハッシュ生成 部 3003と、 PUFを用いて鍵を生成する PUF部 3004と、誤り訂正情報に基づき、鍵 を誤り訂正し訂正後ハッシュ鍵を生成する誤り訂正部 3005と、誤り訂正情報を格納 する誤り訂正情報格納部 3006とを備える。
[0013] PUF部 3004は先の PUF回路 2000を複数、例えば、 6個備え、それぞれの PUF 回路の出力ビットを連結した 6ビットを鍵とする。
[0014] 情報セキュリティ装置 3000の動作を以下に示す。入力部 3001は外部のデータの 入力を受け付け、これにより PUF部 3004内の PUF回路 2000にトリガ信号を入力す る。 PUF回路 2000では、出力ビットを生成し、 PUF部 3004は 6つの PUF回路 200 0の出力ビットを連結したものを鍵とする。その後、誤り訂正部 3005は鍵を誤り訂正 情報を用いて訂正し訂正後ハッシュ鍵を生成する。さらにハッシュ生成部 3003は訂 正後ハッシュ鍵を用いて、入力データの鍵付ハッシュ値を生成し、出力部 3002がこ れを出力する。
[0015] 誤り訂正情報は、情報セキュリティ装置 3000の製造時に、 PUF部 3004内の PUF 回路 2000の値を計測して決定する。具体的には、 PUF部 3004の鍵を複数回計測 し、その中で最も高確率に発生する鍵の値を求め、これに対して誤り訂正情報を確 定し、誤り訂正情報格納部 3006に格納する。
特許文献 1:米国特許出願公開第 2003/0204743号明細書
非特許文献 1 :岡本龍明、山本博資、 "現代暗号"、産業図書(1997年)
発明の開示
発明が解決しょうとする課題 [0016] しかしながら、上記従来技術では、メモリ(誤り訂正情報格納部 3006)に格納された 誤り訂正情報を解析することで、誤り訂正部 3005からハッシュ生成部 3003に入力さ れる訂正後ハッシュ鍵の鍵値が求めやすくなつてしまうという問題がある。
[0017] 例えば、 3ビットごとの繰り返し符号を用いて誤り訂正する方法を考える。繰り返し符 号では、 3ビットのハミング重みを計算し、それが 1以下であれば" 0"、 2以上であれば "1"と復号化する。例えば、 "011"であれば、 "1"と復号化する。上記の PUF部 300 4の出力は 6ビットであるが、これを 2ビットごとの 3組に分割し、誤り訂正情報を、 3ビッ トの繰り返し符号の 1ビット分を 3組合わせた合計 3ビットとする。情報セキュリティ装置 3000の製造時に、 PUF部 3004の出力値を計測し、最も高確率に発生する出力値 を" 11 00 01 "であるとする。誤り訂正情報を" X Y Z" (X、 Y、 Zは 0または 1)とす る。このとき、一つ目の符号は" 1 IX"となる力 これを復号化すると" 1 "となる。ここで 誤りが起こっても正しく復号化できるように" X"を 1に設定する。同様に、 "Υ "を 0に設 定する。 "Ζ "は 0、 1のどちらに設定してもよいが、ここでは";!"とする。そうすると、誤り 訂正情報は" 1 0 1 "であり、復号化後の値、すなわち、訂正後ハッシュ鍵は" 1 0 1 "である。したがって、誤り訂正情報と訂正後ハッシュ鍵が等しくなり、攻撃者が誤り 訂正情報を解析することで訂正後ハッシュ鍵を知ることができる。
[0018] 上記例は、極端なケースで説明して!/、る力 このような誤り訂正方法や誤り訂正情 報の設定をしない場合も、攻撃者が誤り訂正情報を用いて訂正後ハッシュ鍵の鍵値 を求めやすくなる可能性がある。鍵値が求められると、それをメモリに格納して鍵付ハ ッシュ関数に使用する PUFのシミュレータを攻撃者が作成し、それを用いた偽造が 可能になるため秘匿性が保たれなくなる。
[0019] このように、従来技術では、 PUFの安全性が低いという課題がある。
[0020] そこで本発明は、上記課題を解決するものであって、メモリに格納された情報を攻 撃者により解析されても、 PUFの安全性が低下しない情報セキュリティ装置を提供す ることを目的とする。つまり、秘密データの安定性と秘匿性を高めた情報セキュリティ 装置を提供することを目的とする。
課題を解決するための手段
[0021] 上記目的を達成するために、本発明に係る情報セキュリティ装置は、予め設定され た秘密データを出力する情報セキュリティ装置であって、予め定められた秘密データ を出力するように物理特性を利用して設定された耐タンパ一性を有する第 1の耐タン パー回路と、第 1の訂正用データを記憶している訂正用データ記憶手段と、第 2の訂 正用データを出力するように物理特性を利用して設定された耐タンパ一性を有する 第 2の耐タンパ一回路と、前記訂正用データ記憶手段に記憶されている第 1の訂正 用データと、前記第 2の耐タンパ一回路から出力される第 2の訂正用データとを用い て、誤り訂正情報を生成する訂正情報生成手段と、前記訂正情報生成手段により生 成された誤り訂正情報を用いて、前記第 1の耐タンパ一回路から出力される秘密デ ータに対して誤り訂正を行い、誤り訂正された前記秘密データを出力する誤り訂正手 段とを備えることを特徴とする。例えば、前記第 1の耐タンパ一回路に設定される秘密 データと、前記第 2の耐タンパ一回路に設定される第 2の訂正用データとは、 PUF (P hysically Unclonable Function)により設疋 れ飞いる。
[0022] これにより、秘密データの誤り訂正に直接的に用いられる誤り訂正情報は、従来の ようにメモリに格納されておらず、第 2の耐タンパ一回路を用いて生成されるため、攻 撃者に対して誤り訂正情報を見つけ難くすることができ、その結果、第 1の耐タンパ 一回路に設定された秘密データの安全性および秘匿性を高めることができる。さらに 、本発明では、周辺温度などの環境変化や経年的な要因によって第 1の耐タンパ一 回路から出力される秘密データに誤りが生じても、誤り訂正情報によってその誤りが 訂正されるため、秘密データの安定性を高めることができる。
[0023] また、前記情報セキュリティ装置は、さらに、入力データを取得する取得手段と、前 記誤り訂正手段から出力される秘密データを鍵として用い、前記鍵により前記入力デ 一タを喑号化する暗号化手段とを備えることを特徴としてもよい。
[0024] 例えば、入力データは鍵付ハッシュ値や暗号文に変換される。これにより、鍵付ハ ッシュ値や暗号文などの安全性を高めることができる。
[0025] また、前記第 1の耐タンパ一回路は、 1ビットの値を前記秘密データの少なくとも一 部として出力する 1つ以上の第 1の PUF回路を備え、前記第 2の耐タンパ一回路は、 2ビット以上の値を前記第 2の訂正用データの少なくとも一部として出力する 1つ以上 の第 2の PUF回路を備えることを特徴としてもょレ、。 [0026] 例えば、第 2の PUF回路から 1ビットの値しか出力されないような場合には、ノイズな どによってその値に誤りが生じることがある。しかし、本発明では、第 2の PUF回路は 2ビット以上の値を出力するため、そのうちの 1ビットに誤りが生じても、その誤りを容 易に訂正することができ、第 2の耐タンパ一回路から出力される第 2の訂正用データ の耐ノイズ性を向上することができる。
[0027] また、前記第 1の耐タンパ一回路は、 1つ以上の第 1の PUF回路を備え、前記第 1 の PUF回路は、発振信号を出力する N (N≥ 2)個の発振部と、前記 N個の発振部か ら M (M≤N)個の発振部を選択する選択部と、前記選択部により選択された M個の 発振部から出力される発振信号の周波数の大小関係に基づいて出力値を決定して 出力する決定部とを備え、前記選択部は、前記決定部によって決定される出力値が 前記予め定められた秘密データの少なくとも一部を示すように M個の発振部を選択 することを特徴としてもよい。具体的には、前記選択部は、前記 M個の発振部から出 力される発振信号の周波数の差分が第 1の閾値以上となるように前記 M個の発振部 を選択する。
[0028] 例えば、選択された 2つの発振部から出力される発振信号の周波数の差分が極め て小さい場合には、それらの発振部の物理特性が経年的に変化することによって、 それらの周波数の大小関係が反転してしまうことがある。しかし、本発明では、周波数 の差分が第 1の閾値以上になるように M個の発振部が選択されるため、それらの発 振部の物理特性が経年変化しても、それらの発振部から出力される発振信号の周波 数の大小関係が変化してしまうのを抑えることができる。その結果、第 1の耐タンパ一 回路から出力される秘密データに発生する誤りを抑えることができる。
[0029] また、前記情報セキュリティ装置は、さらに、前記誤り訂正手段から出力される誤り 訂正後の秘密データと、前記第 1の耐タンパ一回路から出力される秘密データとを比 較することにより、前記第 1の耐タンパ一回路から出力される秘密データに誤りが生じ たか否力、を判別する誤り判別手段と、前記誤り判別手段により誤りが生じたと判別さ れたときには、前記第 1の耐タンパ一回路に対して、前記予め定められた秘密データ の再設定を要求する再設定要求手段とを備え、前記第 1の PUF回路は、さらに、前 記再設定要求手段から再設定の要求を受け付けたときには、前記選択部による選択 を再度実行させることにより、前記予め定められた秘密データの再設定を行う再設定 を備えることを特 ί毁としてもよ!/、。
[0030] これにより、第 1の耐タンパ一回路が出力した秘密データに誤りが生じたときには、 予め定められた秘密データが第 1の耐タンパ一回路に設定し直されるため、誤り訂正 の精度を高めることができ、秘密データの安定性をさらに向上することができる。
[0031] また、前記第 1の PUF回路は、さらに、前記予め定められた秘密データの少なくとも 一部を記憶するための秘密データ用記憶部と、前記選択部が Μ個の発振部を選択 する際に、前記発振周波数の差分が前記第 1の閾値以上となるような Μ個の発振部 を選択することができないときに、前記秘密データの少なくとも一部を前記秘密デー タ用記憶部に格納する格納処理部と、前記秘密データ用記憶部に前記秘密データ の少なくとも一部が格納されているときには、前記決定部による出力値の決定を禁止 し、前記秘密データ用記憶部に格納されてレ、る前記秘密データの少なくとも一部を 出力する出力制御部とを備えることを特徴としてもよい。
[0032] Ν個の発振部の何れを選択しても、選択された Μ個の発振部から出力される発振 信号の周波数の差分が第 1の閾値未満となってしまう場合には、その第 1の PUF回 路からの出力値に誤りが生じ易くその信頼性が低くなる。したがって、本発明では、こ のような場合には、第 1の PUF回路が出力すべき、予め定められた秘密データの少 なくとも一部が秘密データ用記憶部に格納され、その秘密データの少なくとも一部が 出力されるため、第 1の耐タンパ一回路から出力される秘密データに誤りが生じるの を防ぎ、信頼性を高めることができる。
[0033] また、前記第 1の耐タンパ一回路は、複数の前記第 1の PUF回路と、前記複数の第
1の PUF回路から出力される出力値を結合することにより秘密データを生成する結合 部とを備え、前記誤り判別手段は、前記第 1の耐タンパ一回路から出力される秘密デ ータに誤りが生じたと判別するときには、さらに、前記複数の第 1の PUF回路のうち、 誤った出力値を出力する第 1の PUF回路を特定し、前記再設定要求手段は、誤った 出力値を出力していると特定された第 1の PUF回路に対して、出力値が前記予め定 められた秘密データの一部を示すように、出力値の再設定を要求することを特徴とし てもよい。 [0034] これにより、誤った出力値を出力する第 1の PUF回路が特定されて、その特定され た第 1の PUF回路の出力値が再設定されるため、予め定められた秘密データを第 1 の耐タンパ一回路に適切に設定し直すことができる。
[0035] また、前記情報セキュリティ装置は、さらに、前記誤り訂正手段から出力される誤り 訂正後の秘密データと、前記第 1の耐タンパ一回路から出力される誤り訂正前の秘 密データとを比較することにより、前記誤り訂正前の秘密データに誤りが生じたか否 かを判別する誤り判別手段と、前記誤り判別手段により誤りが生じたと判別されたとき には、前記第 1の耐タンパ一回路に対して、前記予め定められた秘密データの再設 定を要求する再設定要求手段とを備え、前記第 1の PUF回路は、さらに、前記予め 定められた秘密データの少なくとも一部を記憶するための秘密データ用記憶部と、前 記再設定要求手段から再設定の要求を受け付けたときには、前記秘密データの少な くとも一部を前記秘密データ用記憶部に格納する格納処理部と、前記秘密データ用 記憶部に前記秘密データの少なくとも一部が格納されているときには、前記決定部 による出力値の決定を禁止し、前記秘密データ用記憶部に格納されている前記秘密 データの少なくとも一部を出力する出力制御部とを備えることを特徴としてもよい。
[0036] 第 1の PUF回路が一度でも誤った出力値を出力した場合には、その第 1の PUF回 路の信頼性は疑わしい。したがって、本発明では、このような場合には、その第 1の P UF回路が出力すべき出力値である、予め定められた秘密データの少なくとも一部が 秘密データ用記憶部に格納され、その秘密データの少なくとも一部が出力されるた め、第 1の耐タンパ一回路から出力される秘密データに誤りが生じるのを防ぎ、信頼 十生を高めることができる。
[0037] また、前記第 1の PUF回路は、さらに、前記 M個の発振部から出力される発振信号 の周波数の差分が第 2の閾値未満であるか否力、を判別する差分判別部と、前記差分 判別部によって前記第 2の閾値未満であると判別されると、前記選択部による選択を 再度実行させることにより、前記予め定められた秘密データの再設定を行う再設定部 とを備えることを特 ί毁としてもよ!/、。
[0038] これにより、第 1の PUF回路から出力される出力値の誤りを未然に防ぐことができる
〇 [0039] また、前記第 1の PUF回路は、さらに、前記第 1および第 2の閾値のうちの少なくと も一方を格納している閾値格納部と、前記閾値格納部に格納されている、前記第 1 および第 2の閾値のうちの少なくとも一方を更新する更新部とを備えることを特徴とし てもよい。
[0040] これにより、予め定められた秘密データを適切なタイミングで設定し直すことができ
[0041] また、上記目的を達成するために、本発明に係るデータ生成装置は、秘密データ の誤りを訂正するための第 1の訂正用データを生成するデータ生成装置であって、 予め定められた秘密データを出力するように物理特性を利用して設定された耐タン パー性を有する第 1の耐タンパ一回路から出力される出力値を計測する第 1の計測 手段と、第 2の訂正用データを出力するように物理特性を利用して設定された耐タン パー性を有する第 2の耐タンパ一回路から出力される出力値を計測する第 2の計測 手段と、前記第 1および第 2の計測手段によって計測された出力値に基づいて、前記 第 1の訂正用データを生成するデータ生成手段と、前記データ生成手段によって生 成された前記第 1の訂正用データを記憶媒体に格納する格納処理手段とを備えるこ とを特徴とする。例えば、前記データ生成手段は、前記第 1の計測手段によって計測 された出力値と、前記秘密データの示す値との差分を算出することにより、誤り訂正 情報を生成する第 1の生成手段と、前記第 2の計測手段によって計測された出力値 と、前記誤り訂正情報の示す値との差分を算出することにより、前記第 1の訂正用デ ータを生成する第 2の生成手段とを備える。
[0042] これにより、第 2の訂正用データを用いて誤り訂正情報を生成するために必要な第 1の訂正用データを適切に生成すること力 Sできる。
[0043] なお、本発明は、このような情報セキュリティ装置およびデータ生成装置として実現 すること力 Sできるだけでなく、その装置によって行われる処理方法や、その処理方法 をコンピュータに実行させるプログラム、そのプログラムを格納する記憶媒体、集積回 路としてあ実現すること力 Sでさる。
発明の効果
[0044] 本発明の情報セキュリティ装置は、メモリに格納された情報を用いても、 PUFにより 秘匿された秘密データを攻撃者が知ることができなくなり、 PUFの安全性が低下しな いようにすること力 Sでき、その価ィ直は大きい。さらに、本発明の情報セキュリティ装置に よれば、従来技術の PUF回路と同様に製造コストが安価でセキュアにデータを保管 可能という特徴を保持しつつ、かつ、経年変化に対する出力ビット値の安定性を向上 できるような情報セキュリティ装置を提供することが可能になるという効果がある。 図面の簡単な説明
[図 1]図 1は、従来の PUF回路の構成を示す図である。
園 2]図 2は、従来の PUFの誤り訂正を用いた情報セキュリティ装置の構成を示す図 である。
園 3]図 3は、本発明の実施の形態 1における情報セキュリティシステムの構成を示す ブロック図である。
[図 4]図 4は、同上の情報セキュリティ装置の構成を示す図である。
[図 5]図 5は、同上の情報生成用 PUF部の構成を示す図である。
[図 6]図 6は、同上の第 1の PUF回路の構成を示す図である。
[図 7]図 7は、同上の誤り訂正用 PUF部の構成を示す図である。
[図 8]図 8は、同上の第 2の PUF回路の構成を示す図である。
[図 9]図 9は、同上の第 2の PUF回路の差分と出カイ直のマッピングを示す図である。
[図 10]図 10は、同上の誤り訂正情報生成装置の構成を示す図である。
[図 11]図 11は、同上の環境変化解析部で解析した出力値の分布を示す図である。 園 12A]図 12Aは、同上の誤り訂正情報生成装置が誤り訂正部分情報を設定すると きの動作を示すフローチャートである。
園 12B]図 12Bは、同上の情報セキュリティ装置が鍵付ハッシュ値を計算するときの 動作を示すフローチャートである。
[図 13]図 13は、本発明の実施の形態 2における PUF回路の構成を示すブロック図で ある。
[図 14]図 14は、同上のリングオシレータの構成を示すブロック図である。
[図 15]図 15は、同上の PUF回路が入力値データを設定するときの動作を示すフロ 一チャートである [図 16]図 16は、同上の PUF回路が出力ビットを算出するときの動作を示すフローチ ヤートである。
[図 17]図 17は、同上の PUF回路が入力値データを再設定するときの動作を示すフ ローチャートである。
[図 18]図 18は、本発明の実施の形態 3に係る PUF回路の構成を示すブロック図であ
[図 19]図 19は、同上の情報生成用 PUF部にハッシュ鍵を設定する方法を説明する ための図である。
園 20]図 20は、同上の情報セキュリティ装置の構成を示す図である。
[図 21]図 21は、同上の誤り訂正処理部の構成を示す図である。
[図 22]図 22は、同上の PUF回路の他の動作を示す図である。
符号の説明
1 PUF回路
13 出力ビット決定部
14 入力値保管部
15 入力値設定部
16 入力値再設定判定部
17 閾値保管部
18 出力ビット制御部
19 出力ビット保管部
101 〜; 108 第 1〜第 8リングォ、:ノレータ
111 , 112 第 1、第 2リングオシレータ選択部
121 , 122 第 1、第 2周波数カウント部
1000 情報セキュリティ:
1100, 3000 情報セキ
1101 , 3001 入力部
1102, 3002 出力部
1103, 3003 ノヽッシュ生成部 1104 情報生成用 PUF部
11041A~11041I 第 1の PUF回路 11042 ハッシュ鍵生成部
1105, 3005 誤り訂正部
1106 誤り訂正用 PUF部
11061A—11061I 第 2の PUF回路
11062 誤り訂正用 PUF情報生成
1107 誤り訂正部分情報格納部
1108 誤り訂正情報生成部
1200 誤り訂正情報生成装置
1201 PUF回路計測部
1202 環境変化部
1203 環境変化解析部
1204 誤り訂正部分情報生成部
1205 誤り訂正部分情報設定部
2000 PUF回路
2001 第 1リング才シレー -タ
2002 第 2リングオシレー -タ
2003 第 3リング才シレー -タ
2004 第 4リング才シレー -タ
2005 第 5リングオシレー -タ
2006 第 6リング才シレー -タ
2007 第 7リング才シレー -タ
2008 第 8リングオシレー -タ
2011 第 1リング才シレー -タ選択部
2012 第 2リング才シレー -タ選択部
2021 第 1周波数カウント部
2022 第 2周波数カウント部 2030 出力ビット決定部
3004 PUF部
3006 誤り訂正情報格納部
発明を実施するための最良の形態
[0047] 以下、本発明の実施の形態について、図面を参照しながら説明する。
[0048] (実施の形態 1)
本発明に係る第 1の実施の形態としての情報セキュリティシステム 1000について、 説明する。
[0049] 図 3は、実施の形態 1における情報セキュリティシステム 1000の構成を示す図であ
[0050] 本情報セキュリティシステム 1000は、秘密データの安定性と秘匿性を高めた情報 セキュリティ装置 1100と、誤り訂正部分情報を生成して情報セキュリティ装置 1100 に設定する誤り訂正情報生成装置 1200とを備える。なお、本実施の形態では、誤り 訂正情報生成装置 1200がデータ生成装置として構成されている。
[0051] <情報セキュリティ装置 1100の構成〉
図 4は、情報セキュリティ装置 1100の構成を示す図である。情報セキュリティ装置 1 100は、データ(入力データ)の入力を受け付ける入力部 1101と、データを出力する 出力部 1102と、鍵付ハッシュ値を計算するハッシュ生成部 1103と、鍵付ハッシュ関 数の鍵であるハッシュ鍵を生成する情報生成用 PUF部 1104と、ハッシュ鍵の誤りを 訂正し訂正後ハッシュ鍵を生成する誤り訂正部 1105と、誤り訂正用 PUF情報を生 成する誤り訂正用 PUF部 1106と、誤り訂正部分情報を格納する誤り訂正部分情報 格納部 1107と、誤り訂正情報を生成する誤り訂正情報生成部 1108とを備える。
[0052] なお、本実施の形態では、情報生成用 PUF部 1104が、予め設定された秘密デー タたるハッシュ鍵を出力するように設定された第 1の耐タンパ一回路として構成され、 誤り訂正部分情報格納部 1107が、第 1の訂正用データたる誤り訂正部分情報を記 憶している訂正用データ記憶手段として構成されている。また、誤り訂正用 PUF部 1 106が、第 2の訂正用データたる誤り訂正用 PUF情報を出力するように設定された 第 2の耐タンパ一回路として構成され、誤り訂正情報生成部 1108が、誤り訂正情報 を生成する訂正情報生成手段として構成されている。さらに、入力部 1101が、入力 データを取得する取得手段として構成され、ハッシュ生成部 1103が、入力データを 暗号化する暗号化手段として構成されて!/、る。
[0053] 入力部 1101は、外部より入力された入力データを受け付け、ハッシュ生成部 1103 に入力する。入力部 1101は、さらに入力データを受け付けたときに、 PUF回路への トリガを情報生成用 PUF部 1104と誤り訂正用 PUF部 1106に入力する。
[0054] 出力部 1102は、鍵付ハッシュ値を出力する。
[0055] ノ、ッシュ生成部 1103は、誤り訂正部 1105で出力された訂正後ハッシュ鍵と入力 部 1101で受け付けた入力データを用いて、鍵付ハッシュ値を計算し、出力部 1102 に入力する。
[0056] 情報生成用 PUF部 1104は、鍵付ハッシュ関数のハッシュ鍵を生成する。
[0057] 図 5は、情報生成用 PUF部 1104の構成を示す図である。
[0058] 情報生成用 PUF部 1104は、図 5に示すように、 9つの第 1の PUF回路 11041A、
11041B, 11041C, 11041D, 11041E, 11041F, 11041G, 11041H, 11041
Iと、第 1の PUF回路のビットを連結してハッシュ鍵を生成するハッシュ鍵生成部 110 42と力 なる。後述する第 1の PUF回路は 1ビットの情報を出力し、情報生成用 PUF 部 1104は 9つの第 1の PUF回路の各 1ビットの情報を連結して、誤り訂正部 1105に 入力する。なお、ここでは第 1の PUF回路の数は 9としていた力 9に限らず、 2以上 であれば何でもよい。
[0059] (第 1の PUF回路 11041A、 · · ·、 11041G, 11041H, 110411の構成 ίこつ!/ヽて) 第 1の PUF回路 11041Α、 · · ·、 110411はそれぞれ、同じ構成であるため、以下 では代表して第 1の PUF回路 11041Aの構成を説明する。
[0060] 図 6は、第 1の PUF回路 11041Aの構成を示す図である。
[0061] 第 1の PUF回路 11041Aは、図 6に示すように、第 1リングオシレータ 11041Α01、 第 2リングオシレータ 11041Α02、…、及び第 8リングオシレータ 11041A08と、第 1リング才シレータ選択咅 と、第 2リング才シレータ選択咅 と、 第 1周波数カウント部 11041A21と、第 2周波数カウント部 11041A22と、出力ビット 決定部 11041A30とから構成される。なお、本実施の形態では、第 1リングオシレー タ 11041A01〜第 8リングオシレータ 11041A08がそれぞれ、発振信号を出力する 発振部として構成され、第 1リングオシレータ選択部 11041A11と第 2リングオシレー タ選択部 11041 A12とがそれぞれ、発振部を選択する選択部として構成され、出力 ビット決定部 11041A30力 第 1の PUF回路 11041Aの出力値を決定して出力する 決定部として構成されて!/、る。
[0062] 第 1リングオシレータ 11041A01〜第 8リングオシレータ 11041A08は、同じ構成 であり、それぞれトリガ信号に対して出力信号 (発振信号)を出力する。
[0063] 第 リングオシレータ選択部 11041A11は、第 リングオシレータ 1041A01〜 1 041A08の中から予め与えられたリングオシレータを選択する。
[0064] 第 2リングオシレータ選択部 11041A12は、第 リングオシレータ 1041A01〜 1 041A08の中力、ら、第 1リングオシレータ選択部 11041A11と異なり、予め与えられ たリングオシレータを選択する。なお、リングオシレータの数を 8としていたが、これに 限らなレ、。リングオシレータの数は 2以上であればよ!/、。
[0065] 第 1周波数カウント部 11041A21は、第 1リングオシレータ選択部 11041A11で選 択したリングオシレータの周波数を計測する。
[0066] 第 2周波数カウント部 11041A22は、第 2リングオシレータ選択部 11041A12で選 択したリングオシレータの周波数を計測する。
[0067] 出力ビット決定部 11041A30は、第 1周波数カウント部 11041A21で計測した周 波数 F1と第 2周波数カウント部 11041A22で計測した周波数 F2を比較し、 F1≥F2 であれば" 0"、 F1 < F2であれば "1"を出力する。なお、ここでは周波数を計測すると したが、周波数そのものではなぐ周波数に近いもの、例えば、予め与えられた一定 時間内のリングオシレータの出力信号が予め与えられた振幅と等しくなる回数を計測 するとしてもよい。この場合、周波数の代わりにこの回数を比較して、 "0"、 "1"の出力 ビットを決定してもよい。また、上記では F1≥F2の場合" 0"、 F1 < F2の場合 "1"を 出力するとしたが、 F1 < F2の場合" 1"、 F1≥F2の場合" 0"を出力するとしてもよい
[0068] (第 1の PUF回路 11041A、 · · ·、 110411の動作について)
以下、構成について説明したときと同様に、代表して第 1の PUF回路 11041Aの動 作を説明する。
[0069] 第 1リングオシレータ選択部 11041A11は、予め与えられたリングオシレータを選 択する。第 2リングオシレータ選択部 11041A12も、予め与えられたリングオシレータ を選択する。第 1周波数カウント部 11041A21は、第 1リングオシレータ選択部 1104 1A11で選択したリングオシレータの周波数を計測する。第 2周波数カウント部 1104 1A22は、第 2リングオシレータ選択部 11041A12で選択したリングオシレータの周 波数を計測する。出力ビット決定部 11041A30は、第 1周波数カウント部 11041A2 1及び第 2周波数カウント部 11041A22で計測した周波数を用いて、出力ビットを決 疋 。
[0070] (ハッシュ鍵生成部 11042について)
ノヽッシュ鍵生成部 11042は、第 1の PUF回路 11041A〜; 11041Gのビットを連結 し、連結したものをハッシュ鍵とする。
[0071] 誤り訂正部 1105は、誤り訂正情報生成部 1108で生成した誤り訂正情報を用いて 、情報生成用 PUF部 1104で生成したハッシュ鍵を誤り訂正し、訂正後ハッシュ鍵を 生成する。誤り訂正の方法は、何でもよいが、簡単のため、例を示す。
[0072] (誤り訂正の方法例)
この例では、 3ビットの繰り返し符号を 3つ連結したものを使用している。繰り返し符 号とは、 "0"を" 000"、 "1"を" 111 "と符号化し、復号時には 3ビットの多数決を取る 符号である。例えば、 "101"であれば 1の数が 2で多数決を取るど' 1"と復号化される 。すなわち、符号のハミング重み(1の数)が 1以下であれば" 0"、 2以上であれば" 1" と復号化する。
[0073] 誤り訂正情報を" 010 010 001"とする。情報生成用 PUF部 1104で生成したハ ッシュ鍵を" 101 000 111 "とする。誤り訂正部 1105では、誤り訂正情報とハッシュ 鍵の排他的論理和(XOR)を取る。
[0074] "010 010 001" XOR "101 000 111"
= "111 010 110"
これに対し復号化すると、一つ目の繰り返し符号は" 111 "であるため" 1"、二つ目 は" 010"であるため" 0"、三つ目は" 110"であるため" 1 "と復号化する。 [0075] したがって、この例では訂正後ハッシュ鍵は" 101 "となる。
[0076] 誤り訂正用 PUF部 1106は、誤り訂正用 PUF情報を生成する。
[0077] 図 7は、誤り訂正用 PUF部 1106の構成を示す図である。
[0078] 誤り訂正用 PUF部 1106は、図 7に示すように、 9つの第 2の PUF回路 11061A、 1 1061B, 11061C, 11061D, 11061E, 11061F, 11061G, 11061H, 110611 と、第 2の PUF回路のビットを連結して誤り訂正用 PUF情報を生成する誤り訂正用 P UF情報生成部 11062とからなる。後述する第 2の PUF回路は 3ビットの情報を出力 し、誤り訂正用 PUF部 1106は 9つの第 2の PUF回路の各 3ビットの情報を連結して 、誤り訂正情報生成部 1108に入力する。なお、ここでは第 2の PUF回路の数は 9と していたが、 9に限らず、 2以上であれば何でもよい。
[0079] (第 2の PUF回路 11061A、 · · ·、 110611の構成について)
第 2の PUF回路 11061A、 · · ·、 110611はそれぞれ、同じ構成であるため、以下 では代表して第 2の PUF回路 11061Aの構成を示す。
[0080] 図 8は、第 2の PUF回路 11061Aの構成を示す図である。
[0081] 第 2の PUF回路 11061Aは、図 8に示すように、第 1リングオシレータ 11061A01、 第 2リングオシレータ 11061A02、…、及び第 8リングオシレータ 11061A08と、第 1リングオシレータ選択部 11061A11と、第 2リングオシレータ選択部 11061A12と、 第 1周波数カウント部 11061A21と、第 2周波数カウント部 11061A22と、出力ビット 決定部 11061A30とから構成される。
[0082] 第 1リングオシレータ 11061A01〜第 8リングオシレータ 11061A08は、同じ構成 であり、それぞれトリガ信号に対して出力信号を出力する。
[0083] 第 1リングオシレータ選択部 11061A11は、第 1リングオシレータ; 11061A01〜; 11 061A08の中から予め与えられたリングオシレータを選択する。
[0084] 第 2リングオシレータ選択部 11061A12は、第 リングオシレータ 1061A01〜 1 061A08の中力、ら、第 1リングオシレータ選択部 11061A11と異なり、予め与えられ たリングオシレータを選択する。なお、リングオシレータの数を 8としていたが、これに 限らなレ、。リングオシレータの数は 2以上であればよ!/、。
[0085] 第 1周波数カウント部 11061A21は、第 1リングオシレータ選択部 11061A11で選 択したリングオシレータの周波数を計測する。
[0086] 第 2周波数カウント部 11061A22は、第 2リングオシレータ選択部 11061A12で選 択したリングオシレータの周波数を計測する。
[0087] 出力ビット決定部 11061A30は、第 1周波数カウント部 11061A21で計測した周 波数 F1と第 2周波数カウント部 11061A22で計測した周波数 F2とを比較し、 F1と F 2の差分によって、 "0"から" 7"までの値を示す 3ビットを 1要素として出力する。
[0088] 図 9は、周波数の差分(F2— F1)に対する値(3ビット)のマッピングを示す図である 。図 9では、差分の 300から 300までを 8等分してそれぞれを" 0"から" 7"までマツ ビングしている。なお、マッピング方法はこれだけに限らない。範囲をこれ以外、例え ば一 500から 500までとしてもよいし、等分ではなぐ値ごとに不等分にマッピングし てもよい。
[0089] (第 2の PUF回路 11061A、 · · ·、 110611の動作について)
以下、構成について説明したときと同様に、代表して第 2の PUF回路 11061Aの動 作を説明する。
[0090] 第 1リングオシレータ選択部 11061A11は、予め与えられたリングオシレータを選 択する。第 2リングオシレータ選択部 11061A12も、予め与えられたリングオシレータ を選択する。第 1周波数カウント部 11061A21は、第 1リングオシレータ選択部 1106 1A11で選択したリングオシレータの周波数を計測する。第 2周波数カウント部 1106 1A22は、第 2リングオシレータ選択部 11061A12で選択したリングオシレータの周 波数を計測する。出力ビット決定部 11061A30は、第 1周波数カウント部 11061A2 1及び第 2周波数カウント部 11061A22で計測した周波数を用いて、出力である 3ビ ットを決定する。つまり、出力ビット決定部 11061A30は、第 1周波数カウント部 1106 1A21と、第 2周波数カウント部 11061A22で計測した周波数との差分に応じた 3ビ ットの値を、図 9に示すマッピングを用いて決定する。例えば、出力ビット決定部 110 61A30は、差分が 0以上 75未満であれば" 4"を決定し、差分が 75以上 150未満で あれば" 5"を決定する。
[0091] (誤り訂正用 PUF情報生成部 11062について)
誤り訂正用 PUF情報生成部 11062は、第 2の PUF回路 11061A〜; 110611から 出力される各要素を連結し、連結したものを誤り訂正用 PUF情報とする。例えば、第 2の PUF回路 11061A〜; 110611から出力される各要素が、 "2"、 "6"、 "5"、 "1"、 " 5"、 "7"、 "2"、 "3"、 "7"であれば、誤り訂正用 PUF情報は" 265 157 237"であ
[0092] 誤り訂正部分情報格納部 1107は、誤り訂正情報の部分情報である誤り訂正部分 情報を格納する。誤り訂正部分情報は誤り訂正情報生成装置 1200が生成して格納 する。
[0093] 誤り訂正情報生成部 1108は、誤り訂正用 PUF部 1106が生成する誤り訂正用 PU F情報と、誤り訂正部分情報格納部 1107が格納している誤り訂正部分情報とを用い て、誤り訂正情報を生成する。誤り訂正情報の生成方法の例を以下に示す。この例 では、誤り訂正用 PUF情報を、予め与えられた方法により符号化し、その結果生成さ れた符号化後誤り訂正用 PUF情報と誤り訂正部分情報の排他的論理和を取ってい るが、誤り訂正情報の生成方法は、この例に限らない。排他的論理和の部分をガロ ァ体における乗算に変えてもよい。また、排他的論理和の代わりに、符号化後誤り訂 正用 PUF情報と誤り訂正部分情報を整数値と見立てて、カロ算するとしてもよ!/、。
[0094] (誤り訂正情報生成の例)
誤り訂正用 PUF部 1106が出力した誤り訂正用 PUF情報が上記のように、 "265 157 237"であるとする。これに対し、この要素の値が 3以下の場合" 0"、 4以上の場 合" 1 "と 1ビットの値に符号化する。符号化した結果、" 011 011 001 "となり、これ を符号化後誤り訂正用 PUF情報とする。これと誤り訂正部分情報格納部 1107に格 納されている誤り訂正部分情報との差分を取る。誤り訂正部分情報を" 001 001 0 00"とするとき、誤り訂正情報は、
"Oi l 011 001" XOR "001 001 000"
= "010 010 001"
である。
[0095] なお、この符号化はこれだけに限らず、例えば、 4以上を" 0"、 3以下を" 1 "と符号 化してもよい。
[0096] <誤り訂正情報生成装置 1200の構成〉 図 10は、誤り訂正情報生成装置 1200の構成を示す図である。誤り訂正情報生成 装置 1200は、情報セキュリティ装置 1100内の第 1の PUF回路及び第 2の PUF回路 の出力値を計測する PUF回路計測部 1201と、第 1の PUF回路及び第 2の PUF回 路の周囲の環境を変化させる環境変化部 1202と、環境変化による PUF回路計測部 1201で計測した出力値の分布を解析する環境変化解析部 1203と、環境変化解析 部 1203の解析結果により誤り訂正部分情報を生成する誤り訂正部分情報生成部 1 204と、誤り訂正部分情報を情報セキュリティ装置 1100内の誤り訂正部分情報格納 部 1107に格納する誤り訂正部分情報設定部 1205とを備える。なお、本実施の形態 では、 PUF回路計測部 1201が第 1の計測手段および第 2の計測手段として構成さ れ、誤り訂正部分情報生成部 1204がデータ生成手段として構成され、誤り訂正部分 情報設定部 1205が格納処理手段として構成されている。また、本実施の形態にお ける誤り訂正部分情報生成部 1204は、誤り訂正情報を生成する第 1の生成手段と、 その誤り訂正情報を用いて第 1の訂正用データたる誤り訂正部分情報を生成する第 2の生成手段とを備えて!/、る。
[0097] PUF回路計測部 1201は、第 1の PUF回路 11041A〜; 110411と、第 2の PUF回 路 11061A〜; 110611の出力値を計測する。
[0098] 環境変化部 1202は、第 1の PUF回路及び第 2の PUF回路の周囲の環境を変化さ せる。具体的には、例えば、周囲の温度を変化させる。
[0099] 環境変化解析部 1203は、環境変化による PUF回路計測部 1201で計測した出力 値の分布を解析する。すなわち、温度ごとの第 1の PUF回路及び第 2の PUF回路の 出力値の分布を求める。
[0100] 誤り訂正部分情報生成部 1204は、誤り訂正部分情報を生成する。
[0101] (誤り訂正部分情報生成部 1204の処理)
誤り訂正部分情報生成部 1204はまず、環境変化解析部 1203で解析した第 1の P UF回路の出力値の分布に基づいて、誤り訂正情報を求める。
[0102] 図 11は、第 1の PUF回路及び第 2の PUF回路の出力値の分布例を示す図である 。具体的な例としては、第 1の PUF回路の出力値の分布で最も高確率で出現した出 力値に対し、誤り訂正符号を用いて符号化をしたものとその出力値との差分を誤り訂 正情報とする。上記誤り訂正の方法例や誤り訂正情報生成の例と合わせると、最も高 確率で出現した出力値は、 9つの第 1の PUF回路 11041A〜; 110411の出力値を並 ベると" 101 000 110"である。ここで、例として、 3ビットの繰り返し符号を用いるた め、最も高確率で出現する出力値も、 3ビットごとに区切って判断する。図 11では、一 つ目の 3ビットは 0°Cのとき" 100"、 10°Cのとき" 101"、 20°Cのとき" 101 "であるため 、最も高確率で出現した出力値は" 101"である。同様に、二つ目は" 000"、三つ目 は" 110"となる。 3ビットの繰り返し符号を 3つ並べたものを使用してこの出力値を符 号化すると、" 111 000 111"になる。したがって、出力値と符号化したものの差分 は、
"101 000 110" XOR "111 000 111"
= "010 000 001"
であり、これを誤り訂正情報とする。
次に、誤り訂正部分情報生成部 1204は、環境変化解析部 1203で解析した第 2の PUF回路の出力値の分布に基づいて、誤り訂正用 PUF情報を求める。図 11は、出 力値の分布例を示している。一つの第 2の PUF回路の出力値は 3ビットの要素である 、図 11では、第 2の PUF回路 11061A〜; 110611の出力値を左から順番に並べて いる。誤り訂正部分情報の生成方法の具体的な例としては、第 2の PUF回路の出力 値の分布で各要素で最も高確率で出現した出力値に対し、予め定めた方法で符号 化した符号化後誤り訂正用 PUF情報と誤り訂正情報との差分を誤り訂正部分情報と する。図 11の例では、一つ目の要素は 0°Cのとき" 3"、 10°Cのとき" 2"、 20°Cのとき" 2"であるため、最も高確率で出現した出力値は" 2"である。これに対し、誤り訂正情 報生成の例と同じ符号化方法を使用すると、この要素の値が 4以下の場合" 0"、 5以 上の場合" 1"と 1ビットの値に符号化する。図 11の例では、一つ目の要素は" 2"であ るため、符号化後の値は" 0"となる。同様に二つ目以降も符号化すると、符号化後誤 り訂正用 PUF情報は" 011 011 001 "となる。符号化後誤り訂正用 PUF情報と、 誤り訂正情報との差分を取ると、
"010 000 001" XOR "Oi l 011 001"
= "001 011 000" となり、" 001 Oi l 000"を誤り訂正部分情報とする。
[0104] 誤り訂正部分情報設定部 1205は、誤り訂正部分情報生成部 1204で生成した誤り 訂正部分情報を、情報セキュリティ装置 1100内の誤り訂正部分情報格納部 1107に 格納する。
[0105] <情報セキュリティシステム 1000の動作〉
図 12Aは、情報セキュリティシステム 1000の誤り訂正情報生成装置 1200が誤り訂 正部分情報を設定するときの動作を示すフローチャートである。
[0106] 誤り訂正情報生成装置 1200は、誤り訂正部分情報を設定する時には、以下のよう に動作する。なお、誤り訂正部分情報を生成して情報セキュリティ装置 1100内の誤 り訂正部分情報格納部 1107に設定する処理は、情報セキュリティ装置 1100の製造 時に実施される。
[0107] ステップ S101:環境変化部 1202は、第 1の PUF回路及び第 2の PUF回路の周囲 の環境を変化させる。さらに環境変化部 1202は、変化させた環境の情報を、環境変 化解析部 1203に入力する。
[0108] ステップ S102 : PUF回路計測部 1201は、第 1の PUF回路及び第 2の PUF回路 の出力値を計測し、環境変化解析部 1203に入力する。
[0109] ステップ S103 :環境変化解析部 1203は、環境の情報と第 1の PUF回路及び第 2 の PUF回路の出力値から分布を得る。
[0110] ステップ S104 :誤り訂正部分情報生成部 1204は、出力値の分布より、誤り訂正部 分情報を生成する。
[0111] ステップ S105 :誤り訂正部分情報設定部 1205は、誤り訂正部分情報を、情報セキ ユリティ装置 1100内の誤り訂正部分情報格納部 1107に格納する。
[0112] 図 12Bは、情報セキュリティシステム 1000の情報セキュリティ装置 1100が鍵付ハツ シュ値を計算するときの動作を示すフローチャートである。
[0113] 情報セキュリティ装置 1100は、鍵付ハッシュ値を計算する時には、以下のように動 作する。なお、情報セキュリティ装置 1100が、入力された入力データに対し、鍵付ハ ッシュ値を生成し出力する処理は、ユーザからの入力やアプリケーションプログラムか らのトリガにより行われる。 [0114] ステップ S201 :入力部 1101は、外部より入力された入力データを受け付け、ハツ シュ生成部 1103に入力する。さらに、入力部 1101は、 PUF回路へのトリガ信号を 情報生成用 PUF部 1104と誤り訂正用 PUF部 1106に入力する。
[0115] ステップ S202 :情報生成用 PUF部 1104は、ハッシュ鍵を生成し、誤り訂正部 110 5に入力する。
[0116] ステップ S203 :誤り訂正用 PUF部 1106は、誤り訂正用 PUF情報を生成し、誤り訂 正情報生成部 1108に入力する。
[0117] ステップ S204 :誤り訂正情報生成部 1108は、誤り訂正用 PUF情報と誤り訂正部 分情報格納部 1107に格納されて!/、る誤り訂正部分情報とを用いて、誤り訂正情報 を生成し、誤り訂正部 1105に入力する。
[0118] ステップ S205 :誤り訂正部 1105は、誤り訂正情報を用いて、ハッシュ鍵を誤り訂正 し、訂正後ハッシュ鍵を生成し、ハッシュ生成部 1103に入力する。
[0119] ステップ S206 :ハッシュ生成部 1103は、訂正後ハッシュ鍵を鍵として使用して、入 力データの鍵付ハッシュ値を生成し、出力部 1102に入力する。
[0120] ステップ S207 :出力部 1102は、鍵付ハッシュ値を外部へ出力する。
[0121] このように本実施の形態では、情報セキュリティ装置 1100は、誤り訂正情報を直接 メモリに格納せず、誤り訂正部分情報を格納している。そのため、誤り訂正情報に攻 撃者が直接アクセスできないため、 PUFの秘密、すなわち、ハッシュ鍵を攻撃者が得 ることが困難であり、安全である。また、誤り訂正用 PUF部 1106と誤り訂正情報生成 部 1108を設けることで、誤り訂正部分情報から誤り訂正情報を復元でき、誤り訂正が 正しく働く。
[0122] (実施の形態 2)
実施の形態 1における情報生成用 PUF部 1104のハッシュ鍵の誤りは、環境変化 によって生じることがある力 S、PUF回路の周波数特性の経年変化によっても生じるこ とがある。本実施の形態では、実施の形態 1における情報セキュリティシステム 1000 の構成に対して、さらに、 PUF回路の経年的な出力変動を抑えることにより、情報生 成用 PUF部 1104から出力されるハッシュ鍵の誤りを軽減することを特徴とする。
[0123] 以下、本発明の実施の形態 2について、図面を参照しながら説明する。 [0124] (PUF回路 1の構成)
図 13は、本発明の実施の形態 2における PUF回路 1の構成の一例を示したブロッ ク図である。 PUF回路 1は、実施の形態 1における第 1の PUF回路 11041A〜; 1104 IIのそれぞれに相当し、第 1〜第 8リングオシレータ 101〜; 108と、第 1〜第 2リングォ シレータ選択部 11;!〜 112と、第 1〜第 2周波数カウント部 121〜; 122と、出力ビット 決定部 13と、入力値保管部 14と、入力値設定部 15と、入力値再設定判定部 16と、 閾値保管部 17と、出力ビット制御部 18と、出力ビット保管部 19とからなる。
[0125] なお、本実施の形態では、出力ビット保管部 19が、秘密データたるハッシュ鍵の一 部を記憶するための秘密データ用記憶部として構成され、出力ビット制御部 18が、 ノ、ッシュ鍵の一部を出力ビット保管部 19に格納する格納処理部として構成されてい るとともに、出力ビット保管部 19に格納されているハッシュ鍵の一部を出力する出力 制御部として構成されている。以下、各部の詳細について説明する。
[0126] (1)第 1〜第 8リングオシレータ; 101〜; 108
第 1〜第 8リングオシレータ 10;!〜 108はそれぞれ、奇数個の否定回路をリング状 に接続した構成を基本とする発振回路であり、トリガ信号の入力により所定の発振周 波数を有する発振信号(出力信号)を出力する。これら 8個のリングオシレータの構成 及び動作は全て同じであるので、以下では、それらをリングオシレータ 100として、そ の構成及び動作を説明する。
[0127] 図 14は、リングオシレータ 100の構成の一例を示すブロック図である。リングオシレ ータ 100は、 7段のリングオシレータであり、 NAND回路 21と、 7個の否定回路 22〜 28力、らなる。なお、本実施の形態では、 7段のリングオシレータとしている力 これは 奇数段であれば何段のリングオシレータであってもよい。
[0128] リングオシレータ 100にトリガ信号が入力されていない場合、即ち、トリガ信号として 「0」が入力されている場合、 NAND回路 21の出力は「1」となる。よって、否定回路 2 2の出力は「0」となり、否定回路 23の出力は「1」となり、 · · ·、否定回路 27の出力(即 ち NAND回路 21の 1つの入力)は「1」となる力 NAND回路 21のもう 1つの入力は「 0」であるから、 NAND回路 21の出力は「1」のままである。即ち、リングオシレータ 10 0は、上記の定常状態で安定する。このとき、否定回路 28の出力、即ちリングオシレ ータ 100の出力信号は「0」で安定する。まとめると、リングオシレータ 100へのトリガ 信号が「0」の場合にはリングオシレータ 100は発振せず、その出力信号は「0」で安 疋 。
[0129] 一方、リングオシレータ 100にトリガ信号が入力された場合、即ち、トリガ信号として「 1」が入力された場合、 NAND回路 21の出力は「1」となる。よって、否定回路 22の出 力は「0」となり、否定回路 23の出力は「1」となり、 · · ·、否定回路 27の出力は「1」とな る。このとき、 NAND回路 21の 2つの入力はどちらも「1」になるため、 NAND回路 21 の出力は、「1」から「0」に遷移する。この遷移に伴い、否定回路 22の出力は「1」とな り、否定回路 23の出力は「0」となり、 · · ·、否定回路 27の出力は「0」となる。このとき、 NAND回路 21の一方の入力力 S「0」になるため、 NAND回路 21の出力は、再び「0」 から「1」に遷移する。上記のように、トリガ信号「1」が入力されると、リングオシレータ 1 00の内部状態は安定せずに、 NAND回路 21の出力は「1」と「0」の間で遷移を繰り 返し、発振する。このとき、リングオシレータ 100は、所定の発振周波数を有する発振 信号を出力する。前記発振周波数は、リングオシレータの段数で決まり、理論的には 段数と回路構成が同じリングオシレータであれば、同じになることになる。しかし、実 際には、同一の構成を持つリングオシレータであっても、リングオシレータを構成する 回路素子の周波数特性のバラつきが生じるので、発振周波数にも若干のバラつきが ある。なお、上記発振状態において、トリガ信号が「0」に変化すると、 NAND回路 21 の出力は「1」で安定するので、発振動作は停止し、出力信号は「0」になる。
[0130] (2)第 1〜第 2リングオシレータ選択部 111〜; 112
第 1〜第 2リングオシレータ選択部 111〜; 112は、それぞれ、入力値保管部 14から 入力される 3ビットの入力値データに基づいて、前記第 1〜第 8リングオシレータ 101 〜; 108から 1個を選択し、選択したリングオシレータから出力される発振信号を取得し て第 1周波数カウント部 121または第 2周波数カウント部 122に入力する。つまり、第 1リングオシレータ選択部 111は、選択したリングオシレータから出力される発振信号 を取得して第 1周波数カウント部 121に入力し、第 2リングオシレータ選択部 112は、 選択したリングオシレータから出力される発振信号を取得して第 2周波数カウント部 1 22に入力する。 [0131] 3ビットの入力値データと、選択するリングオシレータとの対応関係は、任意の入力 値データが、ある 1つのリングオシレータに対応していれば、どのようなものであっても 良いが、本実施の形態では、以下の通りとする。第 1〜第 2リングオシレータ選択部 1 11〜; 112は、それぞれ、入力値データ「000」(2進数)に対しては、第 1リングオシレ ータ 101を選択する。入力値データ「001」(2進数)に対しては、第 2リングオシレータ 102を選択する。入力値データ「010」(2進数)に対しては、第 3リングオシレータ 10 3を選択する。 · · ·。入力データ「111」(2進数)に対しては、第 8リングオシレータ 108 を選択する。なお、第 1リングオシレータ選択部 111および第 2リングオシレータ選択 部 112は、それぞれ、互いに異なる入力値データを取得して、互いに異なるリングォ シレータを選択する。
[0132] (3)第 1〜第 2周波数カウント部 121〜; 122
第 1〜第 2周波数カウント部 121〜; 122は、それぞれ、第 1リングオシレータ選択部 111または第 2リングオシレータ選択部 112から入力される発振信号の発振周波数を 計測して、計測結果を出力ビット決定部 13に入力する。つまり、第 1周波数カウント部 121は、第 1リングオシレータ選択部 111から入力される発振信号の発振周波数を計 測し、第 2周波数カウント部 122は、第 2リングオシレータ選択部 112から入力される 発振信号の発振周波数を計測する。
[0133] (4)出力ビット決定部 13
出力ビット決定部 13は、第 1周波数カウント部 121および第 2周波数カウント部 122 力、らそれぞれ入力される発振周波数の大小関係を比較し、その比較結果に基づい て 1ビットの出力ビットの値を決定して、その決定された値を示す出力ビットを出力ビッ ト制御部 18に入力する。
[0134] 比較結果と出力ビットの値との対応関係はどのようなものでもよいか、本実施の形態 では、(第 1周波数カウント部 121の計測周波数)く(第 2周波数カウント部 122の計 測周波数)であれば、「1」と決定し、そうでなければ「0」と決定するものとする。
[0135] (5)出力ビット制御部 18
出力ビット制御部 18は、 PUF回路 1に対して外部からトリガ信号が入力されて出力 ビットの出力要求があった場合には、まず、出力ビット保管部 19に出力ビットが保管 されているか否かを確認する。出力ビットが保管されている場合には、保管されてい る出力ビットを PUF回路 1から出力して処理を終了する。出力ビット保管部 19に出力 ビットが保管されていない場合には、出力ビット決定部 13から、出力ビットが入力され た後に、以下の処理を行う。
[0136] 出力ビット制御部 18は、まず、出力ビット決定部 13から入力される出力ビットを一時 保管し、入力値設定部 15から、出力ビットの退避要求信号が入力された場合には、 一時保管している出力ビットを、 PUF回路 1の出力ビットとして出力するとともに、出 力ビット保管部 19に出力する。一方、入力値設定部 15から、出力ビットの退避要求 信号が入力されない場合には、一時保管している出力ビットを、 PUF回路 1の出力ビ ットとして出力する。
[0137] (6)入力値保管部 14
入力値保管部 14は、第 1リングオシレータ選択部 111及び第 2リングオシレータ選 択部 112に入力する 3ビットの入力値データを 2個保管する。以降では、第 1リングォ シレータ選択部 111に入力する 3ビットの入力値データを第 1入力値データとし、第 2 リングオシレータ選択部 112に入力する 3ビットの入力値データを第 2入力値データと する。
[0138] (7)入力値設定部 15
入力値設定部 15は、初期化時、または入力値再設定判定部 16より入力値再設定 要求信号が入力されたときに動作し、閾値保管部 17に保管されている入力設定用 閾値以上の周波数差を有する 2個のリングオシレータが選択されるように、第 1リング オシレータ選択部 111及び第 2リングオシレータ選択部 112への入力値データ(それ ぞれ 3ビット)を設定する。
[0139] 具体的に、入力値設定部 15は、初期化時には、 PUF回路 1の外部から出力設定 値を取得し、その出力設定値を示す出力ビットが PUF回路 1から出力されるように、 第 1リングオシレータ選択部 111及び第 2リングオシレータ選択部 112への入力値デ ータを設定する。このとき、出力設定値が「1」であれば、入力値設定部 15は、(第 1 周波数カウント部 121の計測周波数)く (第 2周波数カウント部 122の計測周波数)で あって且つ、それらの周波数の差の絶対値が入力設定用閾値以上となるような 2つ のリングオシレータが選択されるように、 2つの入力値データを設定する。また、出力 設定値が「0」であれば、入力値設定部 15は、(第 1周波数カウント部 121の計測周 波数)≥ (第 2周波数カウント部 122の計測周波数)であって且つ、それらの周波数の 差の絶対値が入力設定用閾値以上となるような 2つのリングオシレータが選択される ように、 2つの入力値データを設定する。
[0140] また、入力値設定部 15は、入力値再設定要求信号を取得したときには、既に設定 されている、第 1周波数カウント部 121の計測周波数と、第 2周波数カウント部 122の 計測周波数との大小関係を維持し、それらの周波数の差の絶対値が入力設定用閾 値以上となるような 2つのリングオシレータが改めて選択されるように、 2つの入力値 データを再設定する。
[0141] また、前記入力設定用閾値以上の周波数差を有する 2個のリングオシレータを選択 するような入力値データの決定に失敗した場合 (即ち、周波数差が前記閾値以上に なるリングオシレータのペアが見つからなかった場合)には、入力値設定部 15は、出 力ビットの退避要求信号を出力ビット制御部 18に入力する。
[0142] なお、本実施の形態では、第 1リングオシレータ選択部 111、第 2リングオシレータ 選択部 112、入力値保管部 14および入力値設定部 15が、 8個のリングオシレータか ら 2個のリングオシレータを選択する選択部として構成されている。また、入力値設定 部 15が、周波数差が第 1の閾値たる入力設定用閾値以上となる 2個のリングオシレ ータを検索する検索部として構成され、入力値保管部 14が、検索部によって検索さ れた 2個のリングオシレータを示す選択パラメータたる入力値データを保持するパラメ ータ保持部として構成されている。さらに、第 1リングオシレータ選択部 111および第 2リングオシレータ選択部 112がそれぞれ、入力値データの示すリングオシレータを 選択すべきリングオシレータとして決定して選択する選択決定部として構成されてい
[0143] (8)入力値再設定判定部 16
入力値再設定判定部 16は、第 1周波数カウント部 121および第 2周波数カウント部 122から出力される発振周波数を観測し、その周波数差の絶対値が、閾値保管部 1 7に保管されている入力値再設定判定用閾値よりも小さくなつた場合には、入力値設 定部 15に入力値再設定要求信号を入力する。
[0144] なお、本実施の形態では、入力値再設定判定部 16が、周波数差が第 2の閾値たる 入力値再設定判定用閾値未満であるか否力、を判別する差分判別部と、上述の選択 部による選択を再度実行させる再設定部として構成されている。
[0145] (9)閾値保管部 17
閾値保管部 17は、入力設定用閾値及び入力値再設定判定用閾値を保管する。こ れらの値は正の値である。本実施の形態では、これらの値は、 PUF回路 1の製造時 に書き込むものとする力 回路製造後に外部から書き込むようにしても良いし、書き 込んだ後でも、外部力、ら書き換えること力 Sできるようにしても良い。また、何らかの認証 を行った上で、外部からの書き込みを許可するようにしても良い。なお、本実施の形 態では、閾値保管部 17が、第 1の閾値たる入力設定用閾値と、第 2の閾値たる入力 値再設定判定用閾値とを格納して!/、る閾値格納部として構成されて!/、る。
[0146] 以下、 PUF回路 1の動作を説明する。 PUF回路 1の動作は、「入力値データの設 定」、「出力ビットの算出」および「入力値データの再設定」の 3種類に大別され、以下 、それぞれについて説明する。
[0147] (入力値データの設定)
図 15は、 PUF回路 1が入力値データを設定するときの動作を示すフローチャート である。
[0148] 「入力値データの設定」は、 PUF回路 1が製造された後の初期化処理として実行す る処理である。「入力値データの設定」処理は、以下のようにして行う。
[0149] ステップ S301:入力値設定部 15は、 PUF回路 1の外部から入力される 1ビットの値 を出力設定値として受け付ける。また、閾値保管部 17に保管されている入力設定用 閾値を読み込む。
[0150] ステップ S302 :入力値設定部 15は、入力値データの候補を選択して、その候補に おける第 1周波数カウント部 121および第 2周波数カウント部 122による発振周波数 の計測を実行させる。即ち、入力値設定部 15は、第 1入力値データの候補として N1 = 000 (2進数)〜 111 (2進数)の中から何れか 1つを選択し、第 2入力値データの候 補として N2 = 000 (2進数)〜 111 (2進数)の中力、ら何れ力、 1つを選択する。そして、 入力値設定部 15は、(第 1入力値データの候補,第 2入力値データの候補) = (N1 , N2)の組み合わせによって選択されるリングオシレータを用い、第 1周波数カウント部 121および第 2周波数カウント部 122による発振周波数の計測を実行させる。具体的 には、 PUF回路 1は以下の動作を実行する。
[0151] ステップ S302a :入力値設定部 15は、第 1入力値データ及び第 2入力値データの 候補として(Nl , N2)を生成し、第 1リングオシレータ選択部 111に N1を、第 2リング オシレータ選択部 112に N2を、それぞれ入力する。
[0152] ステップ S302b :第 1リングオシレータ選択部 111は、前記 N1に基づいて、前に述 ベた規則に従い、第 1リングオシレータ 101〜第 8リングオシレータ 108の中力も 1つ のリングオシレータを選択する。第 2リングオシレータ選択部 112は、前記 N2に基づ いて、前に述べた規則に従い、第 1リングオシレータ 101〜第 8リングオシレータ 108 の中から 1つのリングオシレータを選択する。
[0153] ステップ S302c :ここで、ステップ S302bで選択された 2個のリングオシレータにトリ ガ信号が入力されると、選択された 2つのリングオシレータは発振して、発振信号を 出力する。このとき、第 1リングオシレータ選択部 111により選択されたリングオシレー タは、同第 1リングオシレータ選択部 111を介して第 1周波数カウント部 121に発振信 号を入力する。第 2リングオシレータ選択部 112により選択されたリングオシレータは 、同第 2リングオシレータ選択部 112を介して第 2周波数カウント部 122に発振信号を 入力する。
[0154] ステップ S302d :第 1周波数カウント部 121及び第 2周波数カウント部 122は、それ ぞれ入力された発振信号から発振周波数を計測する。ここで、第 1周波数カウント部 121は、発振周波数 F1を計測し、第 2周波数カウント部 122は、発振周波数 F2を計 測する。そして、計測した F1及び F2を、入力値設定部 15に入力する。
[0155] ステップ S303 :入力値設定部 15は、上述のように計測された発振周波数 Fl , F2 に基づいて選択された入力値データの候補力 S、設定されるべき入力値データとして 相応しいか否か、つまり選択された候補が失敗であつたか否かを判別する。具体的 には、入力値設定部 15は、入力された F1及び F2から、周波数の差分 D = F2— F1 を計算し、差分 Dとステップ S301で受け付けた出力設定値との間に矛盾がなぐ力、 つ、差分 Dの絶対値が入力設定用閾値以上であれば、選択された候補が失敗でな いと判別する。この場合、後述するステップ S304で説明するように、入力値設定部 1 5は、そのときの(Nl , N2)について、 N1を第 1入力値データ、 N2を第 2入力値デー タとして、入力値保管部 14に入力し、出力設定値を消去する。ここで、「差分 Dと出力 設定値との間に矛盾がない」とは、出力設定値が 0の場合には差分 Dが負の値また は 0であることを意味し、出力設定値が 1の場合には差分 Dが正の値であることを意 味する。上記の条件を満たさない場合には、入力値設定部 15は、選択された候補が 失敗と判別する。この場合、後述するステップ S305で説明するように、別の候補 (N1 , N2)を生成して、ステップ S302a〜S302dを繰り返し実行する。なお、全ての(N1 , N2)の組み合わせについて、上記の条件を満たすような(Nl , N2)が見つからな 力、つた場合には、後述するステップ S306で説明するように、入力値設定部 15は、出 力設定値と、上述の退避要求信号に相当する入力値設定失敗信号とを出力ビット制 御部 18に入力した後、出力設定値を消去する。
[0156] ステップ S304 :入力値保管部 14は、入力値設定部 15から入力される Nl、 N2、す なわち失敗でないと判別された第 1入力値データの候補 Nlと第 2入力値データの候 補 N2とを、それぞれ設定されるべき第 1入力値データおよび第 2入力値データとして 保管し、「入力値データの設定」処理を終了する。
[0157] ステップ S305 :入力値設定部 15は、選択された第 1入力値データの候補 N1およ び第 2入力値データの候補 N2がステップ S303で失敗と判別されると、その候補 N1 , N2以外の他の候補があるか否かを判別する。ここで、入力値設定部 15は、他の候 補があると判別すると、ステップ S302からの処理を繰り返し、他の候補がないと判別 すると、ステップ S306の処理を実行する。
[0158] ステップ S306 :入力値設定部 15は、上述のように他の候補がないと判別すると、出 力ビット制御部 18に対して、出力設定値と入力値設定失敗信号とを出力する。出力 ビット制御部 18は、入力値設定失敗信号と出力設定値を受け付けて、出力設定値( 出力設定値を示す出力ビット)を、出力ビット保管部 19に入力する。出力ビット保管 部 19は、出力設定値を保管し、「入力値データの設定」処理を終了する。
[0159] (出力ビットの算出) 図 16は、 PUF回路 1が出力ビットを算出するときの動作を示すフローチャートであ
[0160] 「出力ビットの算出」処理は、 PUF回路 1の外部からトリガ信号が入力されたときに 実行される。この処理により、 PUF回路 1は、内部にセキュアに保持する 1ビットの出 力ビットを PUF回路 1の外部に出力する。具体的には、 PUF回路 1へのトリガ信号が 入力されると、以下の一連の動作を行う。
[0161] ステップ S401:出力ビット制御部 18は、出力ビット保管部 19に出力設定値(出力 設定値を示す出力ビット)が保管されて!/、るかどうかを確認して、保管されてレ、る場合 には、その出力設定ィ直(1ビット)を PUF回路 1からの出力ビットとして出力して、「出 力ビットの算出」処理を終了する。出力設定値が保管されていない場合には、ステツ プ S402に進む。
[0162] ステップ S402 :入力値保管部 14は、内部に保管する第 1入力値データを第 1リン グオシレータ選択部 111に、第 2入力値データを第 2リングオシレータ選択部 112に それぞれ入力する。
[0163] ステップ S403 :第 1リングオシレータ選択部 111は、第 1入力値データに基づいて、 第 1リングオシレータ 101〜第 8リングオシレータ 108の中力も 1つを選択する。また、 第 2リングオシレータ選択部 112は、第 2入力値データに基づいて、第 1リングオシレ ータ 101〜第 8リングオシレータ 108の中から 1つを選択する。
[0164] ステップ S404 :ステップ S403において選択された 2個のリングオシレータにそれぞ れトリガ信号が入力され、発振動作が行われて、発振信号が出力される。このとき、出 力された発振信号は、それぞれ、第 1リングオシレータ選択部 111及び第 2リングオシ レータ選択部 112を介して、第 1周波数カウント部 121及び第 2周波数カウント部 122 に入力される。
[0165] ステップ S405 :第 1周波数カウント部 121および第 2周波数カウント部 122は、それ ぞれ入力される発振信号の発振周波数 Fl、 F2を計測し、出力ビット決定部 13及び 入力値再設定判定部 16に入力する。
[0166] ステップ S406 :出力ビット決定部 13は、入力される発振周波数 Fl、 F2の大小関係 を比較して、比較結果に基づいて、既に述べた判定規則に従い、 1ビットの出力ビッ トを決定して、出力ビット制御部 18に入力する。出力ビット制御部 18は、入力された 出力ビットを一時保管する。
[0167] ステップ S407 :入力値再設定判定部 16は、閾値保管部 17に保管されている入力 値再設定判定用閾値を読み出す。次に、入力値再設定判定部 16は、入力される発 振周波数 Fl、 F2から、周波数差分 D = F2— F1を計算し、差分 Dの絶対値が、前記 入力値再設定判定用閾値以上である力、確認する。もしも、前記閾値未満であれば、 入力値再設定判定部 16は、入力値設定部 15に、入力値再設定要求信号を入力す る。一方、前記閾値以上であれば、入力値再設定判定部 16は何も行わない。
[0168] ステップ S408 :入力値設定部 15は、入力値再設定要求信号を受け付けると、後で 説明する入力値データの再設定処理を実行する。この処理の結果、「入力値保管部 14に保管する第 1入力値データ Nl、第 2入力値データ N2を更新する」か、「入力値 再設定失敗信号を出力ビット制御部 18に送信する」か、のいずれかが行われる。
[0169] ステップ S409 :出力ビット制御部 18は、出力ビット決定部 13から入力されて一時保 管されている 1ビットの出力ビットを PUF回路 1の出力ビットとして出力する。入力値設 定部 15から、入力値再設定失敗信号を受け取つていない場合には、出力ビット制御 部 18は、そのまま出力ビットの算出を終了する。入力値再設定失敗信号を受け取つ た場合には、出力ビット制御部 18は、更に前記 1ビットの出力ビットを、出力設定値と して出力ビット保管部 19に入力する。そして、出力ビット保管部 19は、前記出力設定 値を内部に保管して、「出力ビットの算出」処理を終了する。
[0170] (入力値データの再設定)
図 17は、 PUF回路 1が入力値データを再設定するときの動作を示すフローチヤ一 トでめる。
[0171] 「入力値データの再設定」処理は、上述の「出力ビットの算出」処理において、入力 値設定部 15が入力値再設定要求信号を受け付けた場合に実行するサブルーチン 処理である。「入力値データの再設定」処理は、以下のようにして行う。
[0172] ステップ S501:入力値設定部 15は、入力設定用閾値と出力設定値を特定する。
つまり、入力値設定部 15は、閾値保管部 17に保管する入力設定用閾値を読み込む 。さらに、入力値設定部 15は、「出力ビットの算出」のステップ S405において、第 1周 波数カウント部 121から入力された発振周波数 Flと、第 2周波数カウント部 122から 入力された発振周波数 F2との大小関係を比較し、 F2〉F1であれば、出力設定値を 「1」とし、そうでなければ、出力設定値を「0」とする。
[0173] ステップ S502 :入力値設定部 15は、入力値データの候補を選択して、その候補に おける第 1周波数カウント部 121および第 2周波数カウント部 122による発振周波数 の計測を実行させる。即ち、入力値設定部 15は、第 1入力値データの候補として N1 = 000 (2進数)〜 111 (2進数)の中から何れか 1つを選択し、第 2入力値データの候 補として N2 = 000 (2進数)〜 111 (2進数)の中力、ら何れ力、 1つを選択する。そして、 入力値設定部 15は、(第 1入力値データの候補,第 2入力値データの候補) = (N1 , N2)の組み合わせによって選択されるリングオシレータを用い、第 1周波数カウント部 121および第 2周波数カウント部 122による発振周波数の計測を実行させる。具体的 には、 PUF回路 1は以下の動作を実行する。
[0174] ステップ S502a :入力値設定部 15は、第 1入力値データ及び第 2入力値データの 候補として(Nl , N2)を生成し、第 1リングオシレータ選択部 111に N1を、第 2リング オシレータ選択部 112に N2を、それぞれ入力する。
[0175] ステップ S502b :第 1リングオシレータ選択部 111は、前記 N1に基づいて、前に述 ベた規則に従い、第 1リングオシレータ 101〜第 8リングオシレータ 108の中力も 1つ のリングオシレータを選択する。第 2リングオシレータ選択部 112は、前記 N2に基づ いて、前に述べた規則に従い、第 1リングオシレータ 101〜第 8リングオシレータ 108 の中から 1つのリングオシレータを選択する。
[0176] ステップ S502c :ここで、ステップ S502bで選択された 2個のリングオシレータにトリ ガ信号が入力されると、選択された 2つのリングオシレータは発振して、発振信号を 出力する。このとき、第 1リングオシレータ選択部 111により選択されたリングオシレー タは、同第 1リングオシレータ選択部 111を介して第 1周波数カウント部 121に発振信 号を入力する。第 2リングオシレータ選択部 112により選択されたリングオシレータは 、同第 2リングオシレータ選択部 112を介して第 2周波数カウント部 122に発振信号を 入力する。
[0177] ステップ S502d :第 1周波数カウント部 121及び第 2周波数カウント部 122は、それ ぞれ入力された発振信号から発振周波数を計測する。ここで、第 1周波数カウント部 121は、発振周波数 F1を計測し、第 2周波数カウント部 122は、発振周波数 F2を計 測する。そして、計測した F1及び F2を、入力値設定部 15に入力する。
[0178] ステップ S503 :入力値設定部 15は、上述のように計測された発振周波数 Fl , F2 に基づいて選択された入力値データの候補力 S、設定されるべき入力値データとして 相応しいか否か、つまり選択された候補が失敗であつたか否かを判別する。具体的 には、入力値設定部 15は、入力された F1及び F2から、周波数の差分 D = F2— F1 を計算し、差分 Dとステップ S501で特定した出力設定値との間に矛盾がなぐかつ、 差分 Dの絶対値が入力設定用閾値以上であれば、選択された候補が失敗でなレ、と 判別する。この場合、後述するステップ S504で説明するように、入力値設定部 15は 、そのときの(Nl , N2)について、 N1を第 1入力値データ、 N2を第 2入力値データと して、入力値保管部 14に入力し、出力設定値を消去する。ここで、「差分 Dと出力設 定値との間に矛盾がない」とは、出力設定値が 0の場合には差分 Dが負の値または 0 であることを意味し、出力設定値が 1の場合には差分 Dが正の値であることを意味す る。上記の条件を満たさない場合には、入力値設定部 15は、選択された候補が失敗 と判別する。この場合、後述するステップ S 505で説明するように、別の候補 (Nl , N 2)を生成して、ステップ S502a〜S502dを繰り返し実行する。なお、全ての(Nl , N 2)の組み合わせについて、入力設定用閾値に基づく上記の条件を満たすようなもの がな力 た場合には、後述するステップ S506で説明するように、入力値設定部 15は 、出力設定値と、上述の退避要求信号に相当する入力値再設定失敗信号とを出力 ビット制御部 18に入力する。そして、出力設定値を消去する。
[0179] ステップ S504 :入力値保管部 14は、入力値設定部 15から入力される Nl、 N2、す なわち失敗でないと判別された第 1入力値データの候補 Nlと第 2入力値データの候 補 N2とを、それぞれ設定されるべき第 1入力データおよび第 2入力データとして保管 し、「入力値データの再設定」処理を終了する。
[0180] ステップ S505 :入力値設定部 15は、選択された第 1入力値データの候補 N1およ び第 2入力値データの候補 N2がステップ S 503で失敗と判別されると、その候補 N1 , N2以外の他の候補があるか否かを判別する。ここで、入力値設定部 15は、他の候 補があると判別すると、ステップ S502からの処理を繰り返し、他の候補がないと判別 すると、ステップ S 506の処理を実行する。
[0181] ステップ S506 :入力値設定部 15は、上述のように他の候補がないと判別すると、出 力ビット制御部 18に対して、出力設定値と入力値再設定失敗信号とを出力する。出 力ビット制御部 18は、入力値再設定失敗信号と出力設定値を受け付けて、出力設 定値を、出力ビット保管部 19に入力する。出力ビット保管部 19は、出力設定値を保 管し、「入力値データの再設定」処理を終了する。
[0182] (PUF回路 1の動作概要)
以上の動作を元に、本実施の形態における PUF回路 1の動作は、以下の通りであ
[0183] PUF回路 1が製造された後に、 PUF回路 1は「入力値データの設定」処理を行い、
1または 0の出力ビットを設定する。その後、 PUF回路 1は「出力ビットの算出」処理を 行い、「入力値データの設定」処理により設定された 1ビットの出力ビットを出力する。 その際、 PUF回路 1は、入力値保管部 14に設定している入力値データ(Nl , N2)に よって選択される 2つのリングオシレータの周波数差が、経年変化などにより、所定の 閾値未満になったと検知した場合には、「入力値データの再設定」処理を行い、前記 入力値データの再設定を行う。
[0184] 本実施の形態においては、リングオシレータを構成する回路の周波数特性の経年 変化により、設定された入力値データによって選択される 2つのリングオシレータの周 波数差が所定の閾値未満になったことを検知して、周波数差が所定の閾値以上にな るように、入力値データを再設定する。一方、従来では、上記のような経年変化により 、リングオシレータの周波数差が小さくなり、外部環境の変化によって周波数の大小 関係が逆転する恐れが高くなつたとしても、入力値データを再設定するような仕組み は備えていない。従って、経年変化による周波数特性の変化に対して、 PUF回路 1 は、従来の構成よりも、出力ビットの安定性という点で向上しているといえる。
[0185] また、本実施の形態では、入力設定用閾値及び入力値再設定判定用閾値という 2 つの値を導入して、閾値保管部 17に保管している。従来では、これらの値を PUF回 路内部に保管することはない。しかし、これらの値は、リングオシレータの周波数差分 の絶対値に関する閾値なので、この値から、出力ビットの算出処理において選択され るリングオシレータの発振周波数の大小関係を推測することはできない。即ち、これら の値から、 1ビットの出力ビットを推測することはできず、本実施の形態における PUF 回路 1においても、従来の PUF回路と同様に安全に秘密データを保持することが可 能である。
[0186] また、本実施の形態では、経年変化によるリングオシレータの周波数特性の変化が 進んで、入力値データの再設定処理において、所定の閾値以上の周波数差となるリ ングオシレータペアが見つからなかった場合には、出力ビットを出力ビット保管部 19 に保管し、以降は、この出力ビット保管部 19に保管されている出力ビットを出力する。 これは、入力値データの再設定によって、これ以上安定した出力ビットを PUFの構成 により保持することが困難と判断した場合には、出力ビットをそのまま保持することで、 出力ビットの安定性を保持し続けようとするものである。これにより、出力ビットの安全 性は、 PUFで記憶している場合と比べて低下する。しかし、鍵データのような数十ビ ット〜数百ビットの秘密データのうち、仮に 1ビットだけが解析され露呈したとしても、 致命的な安全性低下に繋がることは稀であるので、実質的に安全性上に著しい問題 を生じることはない。なお、上記の仕組みは、高い安全性を有する PUF回路を実現 する場合には、削除してもよい。
[0187] 以上にて述べたように、本実施の形態では、 PUF回路において、リングオシレータ の周波数差分が所定の閾値未満になったことを検知すると、周波数差が閾値以上と なるようなリングオシレータを選択するように入力値データを再設定する。これによつ て、リングオシレータの周波数特性が経年変化しても、 PUF回路の出力ビットの安定 性を向上することができる。即ち、経年変化が起こっても、出力ビットが反転してしま わないような PUF回路を用いた情報セキュリティ装置を提供することが可能である。
[0188] (実施の形態 3)
次に、本発明の実施の形態 3について、図面を参照しながら説明する。実施の形態 3では、実施の形態 2に加えて、更に、 PUF回路の外部で行う誤り訂正符号を用いた 誤り訂正、もしくは、誤り検出の結果を元に、入力値データの再設定処理を実行する 構成を追加することで、周波数の経年変化に対する PUF回路の出力ビットの安定性 をより向上させた構成となっている。
[0189] (PUF回路 4の構成)
図 18は、実施の形態 3に係る PUF回路 4の内部構成の一例を示したブロック図で ある。 PUF回路 4は、実施の形態 1およびその変形例における第 1の PUF11041A 〜; 110411のそれぞれに相当し、図 13の実施の形態 2における PUF回路 1とほぼ同 じ構成である。すなわち、 PUF回路 4は、第 1〜第 8リングオシレータ 101〜; 108と、 第 1〜第 2リングオシレータ選択部 11;!〜 112と、第 1〜第 2周波数カウント部 12;!〜 122と、出力ビット決定部 13と、入力値保管部 14と、入力値設定部 45と、入力値再 設定判定部 16と、閾値保管部 17と、出力ビット制御部 18と、出力ビット保管部 19と 力 なる。
[0190] PUF回路 1と唯一異なる点は、 PUF回路 4は、外部から入力値再設定要求信号が 入力され、入力値設定部 45は前記入力値再設定要求信号を受け付ける点である。 つまり、本実施の形態における入力値設定部 45は、実施の形態 2の入力設定部 15 と同様の機能を有するとともに、 PUF回路 4の外部から入力値再設定要求信号を取 得したときには、入力値再設定判定部 16から入力値再設定要求信号を取得したとき と同様、実施の形態 2における「入力値データの再設定」処理を実行する。
[0191] 本実施の形態における情報生成用 PUF部は、このような PUF回路 4を 9個備え、 3 ビットの秘密データであるハッシュ鍵をセキュアに保持することができる。
[0192] 図 19は、本実施の形態における情報生成用 PUF部にハッシュ鍵を設定する方法 を説明するための図である。
[0193] 情報生成用 PUF部 1104aは、 9つの PUF回路 4と、 9つの PUF回路 4から出力さ れる出力ビットを連結するビット連結部 302とを備える。ビット連結部 302は、実施の 形態 1のハッシュ鍵生成部 11042と同様の機能を有する。このような情報生成用 PU F部 1104aに 3ビットのハッシュ鍵を設定するときには、誤り訂正符号生成部 300と、 ビット分割部 301とを用いる。ハッシュ鍵の設定処理は、情報生成用 PUF部 1104a が製造された後で、ハッシュ鍵が設定されて!/、な!/、状態にぉレ、て行われる処理であ
[0194] 誤り訂正符号生成部 300は、 3ビットのハッシュ鍵に対して誤り訂正符号化を行って 、ハッシュ鍵に対する誤り訂正符号を生成する。ビット分割部 301は、誤り訂正符号 生成部 300が生成した誤り訂正符号をビット単位に分割して、各ビットをそれぞれ各 PUF回路 4に出力設定値として入力する。以下、具体的な例を挙げてハッシュ鍵の 設定処理につ!/、て説明する。
[0195] まず、ハッシュ鍵 Mを誤り訂正符号生成部 300に入力する。誤り訂正符号生成部 3 00は、ハッシュ鍵 Mに対する誤り訂正符号 (誤り訂正符号語 C)を、以下のように生成 する。まず、ハッシュ鍵 Mを M= (ml、 m2、 m3)とする。ここで、 ml、 m2、 m3は、そ れぞれ 1ビットの値であり、 mlは Mの最上位ビット、 m2は Mの上位から 2ビット目のビ ット、 m3は、 Mの最下位ビットとする。このとき、誤り訂正符号生成部 300は、 Mに対 する誤り訂正符号語 Cを 9ビットの値 C= (ml、 ml、 ml、 m2、 m2、 m2、 m3、 m3、 m3)として決定する。例えば、 M= 101 (2進数)の場合、 C = 111000111 (2進数) であり、 M = 011 (2進数)の場合、 C = 000111111 (2進数)である。誤り訂正符号 生成部 300は、こうして得られた 9ビットの誤り訂正符号語 Cをビット分割部 301に入 力する。ビット分割部 301は、入力された 9ビットの Cを上位から 1ビットずつ分割して 、各ビットをそれぞれ 9つの PUF回路 4に入力する。 9つの PUF回路 4は、それぞれ 入力された 1ビットデータを出力設定 として、実施の形態 2における PUF回路 1の「 入力値データの設定」処理と全く同じ処理を行う。
[0196] 図 20は、本実施の形態における情報セキュリティ装置 1100aの構成を示す図であ
[0197] 本実施の形態における情報セキュリティ装置 1100aは、情報生成用 PUF部 1104a と、誤り訂正処理部 303と、排他的論理和部 305と、ビット分割部 306と、復号化部 3 04と、入力部 1101と、ハッシュ生成部 1103と、出力部 1102とからなる。なお、本実 施の形態における入力部 1101、ハッシュ生成部 1103および出力部 1102は、実施 の形態 1の情報セキュリティ装置 1100における入力部 1101、ハッシュ生成部 1103 および出力部 1102と同じである。
[0198] トリガ信号が情報生成用 PUF部 1104aの 9つの PUF回路 4に入力されると、各 PU F回路 4は、実施の形態 2における「出力ビットの算出」処理と同じ処理を行って、それ ぞれ 1ビットの出力ビットを出力する。ビット連結部 302は、 9つの PUF回路 4の順列 に従って、 1番目の PUF回路 4の出力ビットが最上位ビットとなり、 9番目の PUF回路 4の出力ビットが最下位ビットとなるように、ビット連結を行うことにより、誤り訂正前の ハッシュ鍵を 9ビットデータとして生成し、誤り訂正処理部 303と排他的論理和部 305 とに入力する。なお、本実施の形態では、ビット連結部 302が、複数の PUF回路 4か ら出力される出力値を結合する結合部として構成されている。
[0199] 誤り訂正処理部 303は、入力された 9ビットデータに対して誤り訂正を行い、その結 果の 9ビットデータを出力する。
[0200] 図 21は、誤り訂正処理部 303の構成を示す図である。
[0201] 誤り訂正処理部 303は、誤り訂正部 1105aと、誤り訂正情報生成部 1108と、誤り訂 正用 PUF部 1106と、誤り訂正部分情報格納部 1107とを備えている。本実施の形態 における誤り訂正情報生成部 1108、誤り訂正用 PUF部 1106、および誤り訂正部分 情報格納部 1107は、実施の形態 1における誤り訂正情報生成部 1108、誤り訂正用 PUF部 1106、および誤り訂正部分情報格納部 1107と同じである。
[0202] また、本実施の形態における誤り訂正部 1105aは、実施の形態 1における誤り訂正 部 1105と同様に排他的論理和の演算を実行する力 3ビットの繰り返し符号を 1ビッ トにするような復号化は実行しない。つまり、誤り訂正部 1105aは、誤り訂正前のハツ シュ鍵である 9ビットデータと誤り訂正情報との排他的論理和を取って、その結果であ る 9ビットデータを復号化部 304と排他的論理和部 305とに入力する。
[0203] 復号化部 304は、誤り訂正処理部 303から入力された 9ビットデータを、 3ビットの繰 り返し符号に分割し、各 3ビットの繰り返し符号を 1ビットに復号化する。つまり、本実 施の形態における誤り訂正部 1105aと復号化部 304とにより、実施の形態 1の誤り訂 正部 1105が実現される。
[0204] 具体的に、復号化部 304は、入力された誤り訂正結果の 9ビットデータから誤り訂正 符号化のために付加した冗長性を除去して、 3ビットの訂正後ハッシュ鍵を出力する 。つまり、復号化部 304は、上述の 9ビットデータを上位から 3ビットずつ分割し、各 3 ビットデータについて、 000 (2進数)の場合は 0 (2進数)に、 111 (2進数)の場合は 1 (2進数)に変換した後、再び連結して 3ビットデータとする。これにより、「入力値デー タの設定」処理において各 PUF回路 4に設定したハッシュ鍵である 3ビットと同じデー タが得られる。ここで、上記に用いた誤り訂正符号は、情報ビットに対して情報ビットと 同じ値 2ビットを冗長ビットとして付加する繰り返し符号であり、 3ビット(情報ビット 1ビ ットと冗長ビット 2ビット)のうち 1ビットに誤りが生じてデータが反転しても、誤りを検知 して訂正することが可能である。
[0205] なお、誤り訂正処理部 303は、以下のようにして誤り訂正処理を行ってもよい。すな わち、誤り訂正処理部 303は、入力された 9ビットデータを、上位から 3ビットずつに分 害 IJして、 c l、 c2、 c3とする。次に、 c l、 c2、 c3のそれぞれについて、ノヽミング重み(1 の立っているビットの数)を計算する。そして、ハミング重みが 2以上であれば、 111 ( 2進数)とし、ノ、ミング重みが 1以下であれば、 000 (2進数)とする。例えば、 010 (2進 数)であれば、 000 (2進数)とし、 110 (2進数)であれば、 111 (2進数)とする。そうし て得られた 3ビット X 3個のデータを、上位から、 clの誤り訂正処理結果、 c2の誤り訂 正処理結果、 c3の誤り訂正処理結果の順に連結したものを、最終的な誤り訂正結果 の 9ビットデータとして、復号化部 304及び排他的論理和部 305に入力する。
[0206] 排他的論理和部 305は、ビット連結部 302から入力された誤り訂正前の 9ビットデー タと、誤り訂正処理部 303から入力された誤り訂正後の 9ビットデータとの排他的論理 和演算を行い、その演算結果である 9ビットデータをビット分割部 306に入力する。こ れは、誤り訂正前と訂正後のデータを比較して、誤り訂正が行われたビット位置に 1を 立てる処理を行っていることと同じである。つまり、本実施の形態では、排他的論理和 部 305が、情報生成用 PUF部 1104aから出力されるハッシュ鍵に誤りが生じたか否 かを判別する誤り判別手段として構成されている。
[0207] ビット分割部 306は、入力された 9ビットデータを上位から 1ビットずつ分割して、各 ビットをそれぞれ各 PUF回路 4に入力する。これにより、誤り訂正が行われたビットを 出力した PUF回路 4には、 1ビットデータ「1」が入力値再設定要求信号として入力さ れ、誤り訂正が行われなかったビットを出力した PUF回路 4には、 1ビットデータ「0」 カ入力されることになる。 つまり、本実施の形態では、ビット分割部 306が、情報生成 用 PUF部 1104aに対して、ハッシュ鍵の再設定を要求する再設定要求手段として構 成されている。
[0208] 入力値再設定要求信号が入力された PUF回路 4は、上記実施の形態 2と同様の「 入力値データの再設定」処理を実行する。つまり、 PUF回路 4は、図 17を用いて上 述のように説明した処理を実行する。但し、 PUF回路 4の入力値設定部 45は、ステツ プ S501において出力設定値を特定するときには、既に出力ビットに誤りが生じてい るため、上述とは逆の規則に基づいて出力設定値を特定する。例えば、入力値設定 部 45は、第 1周波数カウント部 121から入力された発振周波数 F1と、第 2周波数カウ ント部 122から入力された発振周波数 F2との大小関係を比較し、 F2≤F1であれば 、出力設定値を「1」とし、そうでなければ、出力設定値を「0」とする。
[0209] なお、本実施の形態では、 PUF回路 4の入力値設定部 45が、ハッシュ鍵の再設定 を行う再設定部として構成されてレ、る。
[0210] 本実施の形態では、誤りが発生して!/、ると検知されたビット (誤り訂正が行われたビ ット)については、そのビット値を生成した PUF回路に対して入力値データの再設定 処理を指示することが特徴である。この構成により、実施の形態 2では得られなかった 以下のような効果がある。例えば、実施の形態 2の場合は、入力値再設定判定用閾 値を Rとしたとき、リングオシレータの周波数特性が急激に変化し、発振周波数の差 分(F2— F1)力 元々は F2— F1〉Rであったものが、 F2— F1 <— Rとなるように変 化した場合、 PUF回路の出力ビット値は反転してしまい、更に、 F2— F1の絶対値は 、 R以上になるために、入力値の再設定処理は行われない。しかし、本実施の形態に おいては、上記の出力ビットの反転が検知され、入力値の再設定処理が行われるた めに、適切に入力値データが再設定される。このように、本実施の形態においては、 リングオシレータの急激な周波数特性変化についても、適切に入力値データの再設 定が行われ、出力ビットの安定性が保たれる。
[0211] なお、本実施の形態では、出力ビットに誤りが生じたときには、その出力ビットを出 力した PUF回路 4、つまり入力値再設定要求信号を取得した PUF回路 4は、入力値 データの再設定を行ったが、入力値データの再設定を行うことなぐ出力すべき出力 ビットの値、すなわち出力設定値を出力ビット保管部 19に格納してもよい。
[0212] 図 22は、入力値再設定要求信号を取得した PUF回路 4の他の動作を示すフロー チャートである。
[0213] まず、入力値再設定要求信号を取得した入力値設定部 45は出力設定値を特定す る(ステップ S601)。このとき、入力値設定部 45は、上述と同様、既に出力ビットに誤 りが生じているため、第 1周波数カウント部 121から入力された発振周波数 F1と、第 2 周波数カウント部 122から入力された発振周波数 F2との大小関係を比較し、 F2≤F 1であれば、出力設定値を「1」とし、そうでなければ、出力設定値を「0」とする。
[0214] そして、入力値設定部 45は、特定した出力設定値と退避要求信号とを出力ビット制 御部 18に出力することにより、その出力ビット制御部 18にその出力設定値(出力設 定値を示す出力ビット)を出力ビット保管部 19に格納させる(ステップ S602)。
[0215] このように、入力値再設定要求信号を取得した PUF回路 4が入力値データの再設 定を行わず出力設定値を出力ビット保管部 19に格納する場合には、 PUF回路 4に おける今後の処理負担を軽減し、出力ビットを安定させることができる。
[0216] (変形例)
上記に説明した実施の形態 1〜3は、本発明の実施の一例であり、本発明はこの実 施の形態に何ら限定されるものではなぐその旨を逸脱しない範囲において種々なる 態様で実施し得るものである。例えば、以下のような場合も本発明に含まれる。
[0217] (1)情報セキュリティ装置及び誤り訂正情報生成装置で使用する誤り訂正符号は、 繰り返し符号であるが、これに限らない。誤り訂正符号であれば何でもよい。例えば、 リード '·ソロモン符号などの代数的符号や畳み込み符号であってもよい。また、符号 長(ビットや要素の数)を 9とし、情報記号数を 3としていた力 これに限らない。安全 性の面では、訂正後ハッシュ鍵は 80ビット以上である方がよ!/、。
[0218] (2)情報セキュリティ装置では、鍵付ハッシュ値を出力するとしている力 これに限ら ない。秘密の鍵を用いて入力データを変換した変換データを出力すればよい。変換 データは、鍵付ハッシュ値の他に、暗号文、復号文、署名データなどがある。
[0219] (3)情報セキュリティ装置では、 PUF回路を使用している力 これだけに限らない。
PUF回路の代わりに、秘密の情報を出力可能な耐タンパ一回路であればよい。また 、環境や経年劣化により出力が変化する耐タンパ一回路であってもよい。耐タンパ一 回路として、特許文献 2 (特開 2006— 060109号公報)に記載されている、識別情報 生成回路を使用してもよい。識別情報生成回路は、電源をオンした際のフリップフロ ップゃ RAM、 StaticRAMの各メモリセルから最初に出力される論理信号から、固有 の識別コードを生成する。なお、 PUFには、スペックルパタンを利用した Optical P UF、ゲート遅延を利用した Silicon PUF、誘電率を利用した Coating PUF、およ びノイズ音を利用した Acoustic PUFなどがある。
[0220] (4)誤り訂正情報生成装置の環境変化部では、 PUF回路の周囲の温度を変化さ せるとしていたが、他の環境変化、例えば、電圧変化であってもよい。また、環境変化 ではなぐ現在の環境を取得して、環境変化解析部へ現在の環境を知らせる構成で あよい。
[0221] (5)第 2の PUF回路において、差分から" 0"から" 7"までの値への変換するルール は予め、固定化したものを与えている力 この変換ルールを誤り訂正情報生成装置 が決定して第 2の PUF回路に埋め込む、もしくは誤り訂正部分情報格納部に格納し てもよい。また、第 2の PUF回路の誤り訂正情報を誤り訂正部分情報格納部に格納 してもよい。この場合、第 2の PUF回路の誤り訂正情報を用いて、誤り訂正用 PUF情 報を知り、誤り訂正部分情報から第 1の PUF回路の誤り訂正情報を攻撃者が知ること が可能になる。しかし、攻撃者の解析に要する処理量が大きくなるため、安全性の向 上としては有効である。さらに、 PUF回路をさらに第 3、第 4、 · · ·と追加して、誤り訂 正情報を攻撃者がより求めに《してもよい。
[0222] (6)実施の形態では、 2個のリングオシレータの発振周波数の大小関係から 1ビット または 3ビットの出力ビットを決定していた力 これは 2個とは限らず、 3個以上のリン グオシレータであってもよい。このとき、例えば、 3個のリングオシレータの周波数が、 A、 B、 Cのとき、 A、 B、 Cの大小関係の全パタンと出力ビットの対応関係が予めルー ルとして決定されていれば良い。また、このとき入力値再設定判定部における判定方 法としては、 A、 B、 Cを周波数の大きい順に並べた上で、(1番目の周波数)と(2番 目の周波数)の差分と(2番目の周波数)と(3番目の周波数)の差分をそれぞれ計算 し、各差分値が所定の閾値以上であるかどうかをチェックすることで、判定すればよ い。
[0223] (7)実施の形態では、「入力値データの設定」処理および「入力値データの再設定 」処理において、入力値設定用閾値以上の差分を有する入力値ペア (Nl , N2)が 見つかった時点で、そのィ直を、入カイ直保管部に設定あるいは再設定していた力 こ れは、まず全ての入力値ペア(Nl , N2)について、周波数の差分値を求めた上で、 差分値の一番大きくなる (Nl , N2)を選び、そのときの差分値が入力値設定用閾値 以上であれば、選んだ値を入力値保管部に設定あるいは再設定し、上記閾値未満 であれば、入力値設定失敗信号ある!/、は入力値再設定失敗信号を送付するようにし てもよい。
[0224] (8)閾値保管部に保管する入力設定用閾値及び入力値再設定判定用閾値は、必 ずしも PUF回路の製造時に設定する必要はなぐ製造後に、設定するようにしても良 い。また、一度設定した後でも、再設定ができるようにしても良い。つまり、入力設定 用閾値及び入力値再設定判定用閾値の少なくとも一方を更新してもよい。例えば、 P UF回路が出力ビット算出処理を所定回数行うたびに、閾値を変更したり、入力値デ 一タの再設定処理の際に、現在設定されている入力設定用閾値を満たすリングオシ レータペアが存在しない場合には、今の閾値よりも小さくするようにその閾値を変更し たり、してもよい。
[0225] (9)入力値再設定判定部による入力値再設定判定は、出力ビット算出処理を行うご とに毎回行う必要はなぐ所定回数出力ビット算出処理を行うごとに行うようにしてもよ いし、外部からの指示信号を受け付けたときに行うようにしてもよい。
[0226] (10)本実施の形態では、発振回路としてリングオシレータを用いた場合の構成を 示しているが、これは固体振動子発振回路、 CR発振回路、 LC反結合発振回路、な ど発振回路であれば何でもよレ、。
[0227] (11)実施の形態では、 1つの PUF回路から出力されるデータは 1ビットまたは 3ビッ トであった力 S、これは 1ビットまたは 3ビットに限定されず、発振周波数の大小関係から 出力ビットを決定する決定ルールを予め決めておけば、 2ビットや 4ビット以上であつ てもよい。
[0228] (12)上記の各装置は、具体的には、マイクロプロセッサ、 ROM、 RAM,ハードデ イスクュニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンビユー タシステムである。前記 RAMまたはハードディスクユニットには、コンピュータプログラ ムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムにしたが つて動作することにより、各装置は、その機能を達成する。ここでコンピュータプロダラ ムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが 複数個組み合わされて構成されたものである。
[0229] (13)上記の各装置を構成する構成要素の一部または全部は、 1個のシステム LSI
(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。 システム LSIは、複数の構成部を 1個のチップ上に集積して製造された超多機能 LSI であり、具体的には、マイクロプロセッサ、 ROM、 RAMなどを含んで構成されるコン ピュータシステムである。前記 RAMには、コンピュータプログラムが記憶されている。 前記マイクロプロセッサ力 前記コンピュータプログラムにしたがって動作することによ り、システム LSIは、その機能を達成する。
[0230] (14)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能 な IC (Integrated Circuit)カードまたは単体のモジュールから構成されているとしても よい。例えば、図 4に示す情報セキュリティ装置 1100の全体を ICカードとして構成し たり、その情報セキュリティ装置 1100のうち情報生成用 PUF部 1104と、誤り訂正部 1105と、誤り訂正情報生成部 1108と、誤り訂正用 PUF部 1106と、誤り訂正部分情 報格納部 1107とを ICカードとして構成してもよい。前記 ICカードまたは前記モジュ ールは、マイクロプロセッサ、 ROM、 RAMなどから構成されるコンピュータシステム である。前記 ICカードまたは前記モジュールは、上記の超多機能 LSIを含むとしても よい。マイクロプロセッサ力 コンピュータプログラムにしたがって動作することにより、 前記 ICカードまたは前記モジュールは、その機能を達成する。この ICカードまたはこ のモジュールは、耐タンパ性を有するとしてもよ!/、。
[0231] (15)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンビュ ータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプ ログラムからなるディジタル信号であるとしてもよい。
[0232] (16)また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコン ピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、 C D— ROM、 MO、 DVD, DVD-ROM, DVD -RAM, BD (Blu— ray Disc)、半 導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されてい る前記ディジタノレ信号であるとしてあよレ、。 [0233] (17)また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号を、電 気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、デ ータ放送等を経由して伝送するものとしてもよい。
[0234] (18)また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであ つて、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセ ッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
[0235] (19)また、前記プログラムまたは前記ディジタル信号を前記記録媒体に記録して 移送することにより、または前記プログラムまたは前記ディジタル信号を前記ネットヮ 一ク等を経由して移送することにより、独立した他のコンピュータシステムにより実施 するとしてあよい。
[0236] (20)上記実施の形態;!〜 3及び上記変形例をそれぞれ組み合わせるとしてもよい
産業上の利用可能性
[0237] 本発明に係る情報セキュリティ装置は、メモリに格納された情報を用いても、 PUFに より秘匿された鍵値などの秘密データを攻撃者が知ることができなくなり、 PUFの安 全性が低下しないようにすることができるという効果を奏し、例えば、 ICカードなどに 適用すること力できる。また、本発明に力、かる情報セキュリティ装置は、鍵データや ID データなどの秘密データをセキュアかつ安価に保持しつつ、従来技術よりも、経年変 化に対する秘密データの安定性を向上させるという特徴を有するので、高セキユリテ ィ、低コスト、かつ高安定性での実現が求められる情報セキュリティ装置の実現に有 用である。

Claims

請求の範囲
[1] 予め設定された秘密データを出力する情報セキュリティ装置であって、
予め定められた秘密データを出力するように物理特性を利用して設定された耐タン パー性を有する第 1の耐タンパ一回路と、
第 1の訂正用データを記憶している訂正用データ記憶手段と、
第 2の訂正用データを出力するように物理特性を利用して設定された耐タンパ一性 を有する第 2の耐タンパ一回路と、
前記訂正用データ記憶手段に記憶されている第 1の訂正用データと、前記第 2の 耐タンパ一回路から出力される第 2の訂正用データとを用いて、誤り訂正情報を生成 する訂正情報生成手段と、
前記訂正情報生成手段により生成された誤り訂正情報を用いて、前記第 1の耐タン パー回路から出力される秘密データに対して誤り訂正を行い、誤り訂正された前記 秘密データを出力する誤り訂正手段と
を備えることを特徴とする情報セキュリティ装置。
[2] 前記情報セキュリティ装置は、さらに、
入力データを取得する取得手段と、
前記誤り訂正手段から出力される秘密データを鍵として用い、前記鍵により前記入 力データを暗号化する暗号化手段とを備える
ことを特徴とする請求項 1記載の情報セキュリティ装置。
[3] 前記第 1の耐タンパ一回路に設定される秘密データと、前記第 2の耐タンパ一回路 に設定される第 2の訂正用データとは、 PUF (Physically Unclonable Function)により 設定されている
ことを特徴とする請求項 1記載の情報セキュリティ装置。
[4] 前記第 1の耐タンパ一回路は、 1ビットの値を前記秘密データの少なくとも一部とし て出力する 1つ以上の第 1の PUF回路を備え、
前記第 2の耐タンパ一回路は、 2ビット以上の値を前記第 2の訂正用データの少なく とも一部として出力する 1つ以上の第 2の PUF回路を備える
ことを特徴とする請求項 3記載の情報セキュリティ装置。
[5] 前記第 1の耐タンパ一回路は、 1つ以上の第 1の PUF回路を備え、 前記第 1の PUF回路は、
発振信号を出力する N (N≥ 2)個の発振部と、
前記 N個の発振部から M (M≤N)個の発振部を選択する選択部と、
前記選択部により選択された M個の発振部から出力される発振信号の周波数の大 小関係に基づいて出力値を決定して出力する決定部とを備え、
前記選択部は、前記決定部によって決定される出力値が前記予め定められた秘密 データの少なくとも一部を示すように M個の発振部を選択する
ことを特徴とする請求項 3記載の情報セキュリティ装置。
[6] 前記選択部は、前記 M個の発振部から出力される発振信号の周波数の差分が第 1 の閾値以上となるように前記 M個の発振部を選択する
ことを特徴とする請求項 5記載の情報セキュリティ装置。
[7] 前記情報セキュリティ装置は、さらに、
前記誤り訂正手段から出力される誤り訂正後の秘密データと、前記第 1の耐タンパ 一回路から出力される秘密データとを比較することにより、前記第 1の耐タンパ一回 路から出力される秘密データに誤りが生じたか否力、を判別する誤り判別手段と、 前記誤り判別手段により誤りが生じたと判別されたときには、前記第 1の耐タンパ一 回路に対して、前記予め定められた秘密データの再設定を要求する再設定要求手 段とを備え、
前記第 1の PUF回路は、さらに、
前記再設定要求手段から再設定の要求を受け付けたときには、前記選択部による 選択を再度実行させることにより、前記予め定められた秘密データの再設定を行う再 設定部を備える
ことを特徴とする請求項 6記載の情報セキュリティ装置。
[8] 前記第 1の PUF回路は、さらに、
前記予め定められた秘密データの少なくとも一部を記憶するための秘密データ用 記憶部と、
前記選択部が M個の発振部を選択する際に、前記発振周波数の差分が前記第 1 の閾値以上となるような M個の発振部を選択することができないときに、前記秘密デ ータの少なくとも一部を前記秘密データ用記憶部に格納する格納処理部と、 前記秘密データ用記憶部に前記秘密データの少なくとも一部が格納されていると きには、前記決定部による出力値の決定を禁止し、前記秘密データ用記憶部に格納 されている前記秘密データの少なくとも一部を出力する出力制御部とを備える ことを特徴とする請求項 7記載の情報セキュリティ装置。
[9] 前記第 1の耐タンパ一回路は、
複数の前記第 1の PUF回路と、
前記複数の第 1の PUF回路から出力される出力値を結合することにより秘密データ を生成する結合部とを備え、
前記誤り判別手段は、前記第 1の耐タンパ一回路から出力される秘密データに誤り が生じたと判別するときには、さらに、前記複数の第 1の PUF回路のうち、誤った出 力値を出力する第 1の PUF回路を特定し、
前記再設定要求手段は、誤った出力値を出力していると特定された第 1の PUF回 路に対して、出力値が前記予め定められた秘密データの一部を示すように、出力値 の再設定を要求する
ことを特徴とする請求項 7記載の情報セキュリティ装置。
[10] 前記情報セキュリティ装置は、さらに、
前記誤り訂正手段から出力される誤り訂正後の秘密データと、前記第 1の耐タンパ 一回路から出力される誤り訂正前の秘密データとを比較することにより、前記誤り訂 正前の秘密データに誤りが生じたか否かを判別する誤り判別手段と、
前記誤り判別手段により誤りが生じたと判別されたときには、前記第 1の耐タンパ一 回路に対して、前記予め定められた秘密データの再設定を要求する再設定要求手 段とを備え、
前記第 1の PUF回路は、さらに、
前記予め定められた秘密データの少なくとも一部を記憶するための秘密データ用 記憶部と、
前記再設定要求手段から再設定の要求を受け付けたときには、前記秘密データの 少なくとも一部を前記秘密データ用記憶部に格納する格納処理部と、 前記秘密データ用記憶部に前記秘密データの少なくとも一部が格納されていると きには、前記決定部による出力値の決定を禁止し、前記秘密データ用記憶部に格納 されている前記秘密データの少なくとも一部を出力する出力制御部とを備える ことを特徴とする請求項 6記載の情報セキュリティ装置。
[11] 前記第 1の PUF回路は、さらに、
前記 M個の発振部から出力される発振信号の周波数の差分が第 2の閾値未満で あるか否かを判別する差分判別部と、
前記差分判別部によって前記第 2の閾値未満であると判別されると、前記選択部に よる選択を再度実行させることにより、前記予め定められた秘密データの再設定を行 う再設定部とを備える
ことを特徴とする請求項 6記載の情報セキュリティ装置。
[12] 前記第 1の PUF回路は、さらに、
前記第 1および第 2の閾値のうちの少なくとも一方を格納している閾値格納部と、 前記閾値格納部に格納されている、前記第 1および第 2の閾値のうちの少なくとも 一方を更新する更新部とを備える
ことを特徴とする請求項 11記載の情報セキュリティ装置。
[13] 前記選択部は、
前記 M個の発振部から出力される発振信号の周波数の差分が第 1の閾値以上とな るような前記 M個の発振部を検索する検索部と、
前記検索部によって検索された M個の発振部を示す選択パラメータを保持するパ ラメータ保持部と、
前記パラメータ保持部に保持されている選択パラメータの示す M個の発振部を選 択すべき M個の発振部と決定して選択する選択決定部とを備える
ことを特徴とする請求項 6記載の情報セキュリティ装置。
[14] 秘密データの誤りを訂正するための第 1の訂正用データを生成するデータ生成装 置であって、
予め定められた秘密データを出力するように物理特性を利用して設定された耐タン パー性を有する第 1の耐タンパ一回路から出力される出力値を計測する第 1の計測 手段と、
第 2の訂正用データを出力するように物理特性を利用して設定された耐タンパ一性 を有する第 2の耐タンパ一回路から出力される出力値を計測する第 2の計測手段と、 前記第 1および第 2の計測手段によって計測された出力 に基づいて、前記第 1の 訂正用データを生成するデータ生成手段と、
前記データ生成手段によって生成された前記第 1の訂正用データを記憶媒体に格 納する格納処理手段と
を備えることを特徴とするデータ生成装置。
[15] 前記データ生成手段は、
前記第 1の計測手段によって計測された出力値と、前記秘密データの示す値との 差分を算出することにより、誤り訂正情報を生成する第 1の生成手段と、
前記第 2の計測手段によって計測された出力値と、前記誤り訂正情報の示す値と の差分を算出することにより、前記第 1の訂正用データを生成する第 2の生成手段と を備える
ことを特徴とする請求項 14記載のデータ生成装置。
[16] 前記第 1および第 2の計測手段は、出力値の計測を繰り返し行い、
前記第 1の生成手段は、繰り返し計測された出力値の分布に基づいて特定される 出力値を用いて前記誤り訂正情報を生成し、
前記第 2の生成手段は、繰り返し計測された出力値の分布に基づいて特定される 出力値を用いて前記第 1の訂正用データを生成する
ことを特徴とする請求項 15記載のデータ生成装置。
[17] 前記データ生成装置は、さらに、
前記第 1および第 2の耐タンパ一回路から出力される出力値の計測が行われるごと に、前記第 1および第 2の耐タンパ一回路の周辺環境を変化させる環境変化手段を 備える
ことを特徴とする請求項 16記載のデータ生成装置。
[18] 前記環境変化手段は、前記第 1および第 2の耐タンパ一回路の周辺温度を変化さ せる
ことを特徴とする請求項 17記載のデータ生成装置。
[19] 予め設定された秘密データを出力する情報セキュリティ方法であって、
予め定められた秘密データを出力するように物理特性を利用して設定された耐タン パー性を有する第 1の耐タンパ一回路から秘密データを出力させる第 1の出カステツ プと、
第 1の訂正用データを記憶している訂正用データ記憶手段から前記第 1の訂正用 データを出力させる第 2の出力ステップと、
第 2の訂正用データを出力するように物理特性を利用して設定された耐タンパ一性 を有する第 2の耐タンパ一回路から第 2の訂正用データを出力させる第 3の出力ステ 前記第 2の出力ステップで出力される第 1の訂正用データと、前記第 3の出カステツ プで出力される第 2の訂正用データとを用いて、誤り訂正情報を生成する訂正情報 生成ステップと、
前記訂正情報生成ステップで生成された誤り訂正情報を用いて、前記第 1の出力 ステップで出力される秘密データに対して誤り訂正を行い、誤り訂正された前記秘密 データを出力する誤り訂正ステップと
を含むことを特徴とする情報セキュリティ方法。
[20] 秘密データの誤りを訂正するための第 1の訂正用データを生成するデータ生成方 法であって、
予め定められた秘密データを出力するように物理特性を利用して設定された耐タン パー性を有する第 1の耐タンパ一回路から出力される出力値を計測する第 1の計測 第 2の訂正用データを出力するように物理特性を利用して設定された耐タンパ一性 を有する第 2の耐タンパ一回路から出力される出力値を計測する第 2の計測ステップ と、
前記第 1および第 2の計測ステップで計測された出力 に基づレ、て、前記第 1の訂 正用データを生成するデータ生成ステップと、 前記データ生成ステップで生成された前記第 1の訂正用データを記憶媒体に格納 する格納ステップと
を含むことを特徴とするデータ生成方法。
[21] 予め設定された秘密データを出力するためのプログラムであって、
予め定められた秘密データを出力するように物理特性を利用して設定された耐タン パー性を有する第 1の耐タンパ一回路から秘密データを出力させる第 1の出カステツ プと、
第 1の訂正用データを記憶している訂正用データ記憶手段から前記第 1の訂正用 データを出力させる第 2の出力ステップと、
第 2の訂正用データを出力するように物理特性を利用して設定された耐タンパ一性 を有する第 2の耐タンパ一回路から第 2の訂正用データを出力させる第 3の出力ステ 前記第 2の出力ステップで出力される第 1の訂正用データと、前記第 3の出カステツ プで出力される第 2の訂正用データとを用いて、誤り訂正情報を生成する訂正情報 生成ステップと、
前記訂正情報生成ステップで生成された誤り訂正情報を用いて、前記第 1の出力 ステップで出力される秘密データに対して誤り訂正を行い、誤り訂正された前記秘密 データを出力する誤り訂正ステップと
をコンピュータに実行させることを特徴とするプログラム。
[22] 秘密データの誤りを訂正するための第 1の訂正用データを生成するためのプロダラ ムであって、
予め定められた秘密データを出力するように物理特性を利用して設定された耐タン パー性を有する第 1の耐タンパ一回路から出力される出力値を計測する第 1の計測 第 2の訂正用データを出力するように物理特性を利用して設定された耐タンパ一性 を有する第 2の耐タンパ一回路から出力される出力値を計測する第 2の計測ステップ と、
前記第 1および第 2の計測ステップで計測された出力 に基づレ、て、前記第 1の訂 正用データを生成するデータ生成ステップと、
前記データ生成ステップで生成された前記第 1の訂正用データを記憶媒体に格納 する格納ステップと
をコンピュータに実行させることを特徴とするプログラム。
[23] 予め設定された秘密データを出力する集積回路であって、
予め定められた秘密データを出力するように物理特性を利用して設定された耐タン パー性を有する第 1の耐タンパ一回路と、
第 1の訂正用データを記憶している訂正用データ記憶手段と、
第 2の訂正用データを出力するように物理特性を利用して設定された耐タンパ一性 を有する第 2の耐タンパ一回路と、
前記訂正用データ記憶手段に記憶されている第 1の訂正用データと、前記第 2の 耐タンパ一回路から出力される第 2の訂正用データとを用いて、誤り訂正情報を生成 する訂正情報生成手段と、
前記訂正情報生成手段により生成された誤り訂正情報を用いて、前記第 1の耐タン パー回路から出力される秘密データに対して誤り訂正を行い、誤り訂正された前記 秘密データを出力する誤り訂正手段と
を備えることを特徴とする集積回路。
[24] 秘密データの誤りを訂正するための第 1の訂正用データを生成する集積回路であ つて、
予め定められた秘密データを出力するように物理特性を利用して設定された耐タン パー性を有する第 1の耐タンパ一回路から出力される出力値を計測する第 1の計測 手段と、
第 2の訂正用データを出力するように物理特性を利用して設定された耐タンパ一性 を有する第 2の耐タンパ一回路から出力される出力値を計測する第 2の計測手段と、 前記第 1および第 2の計測手段によって計測された出力値に基づいて、前記第 1の 訂正用データを生成するデータ生成手段と、
前記データ生成手段によって生成された前記第 1の訂正用データを記憶媒体に格 納する格納処理手段と を備えることを特徴とする集積回路。
PCT/JP2007/071413 2006-11-06 2007-11-02 Appareil de sécurité d'informations WO2008056612A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP07831147A EP2081170A1 (en) 2006-11-06 2007-11-02 Information security apparatus
US12/443,736 US8510608B2 (en) 2006-11-06 2007-11-02 Generating PUF error correcting code using redundant hardware
JP2008543059A JP5113074B2 (ja) 2006-11-06 2007-11-02 情報セキュリティ装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2006-299905 2006-11-06
JP2006299905 2006-11-06
JP2006299906 2006-11-06
JP2006-299906 2006-11-06

Publications (1)

Publication Number Publication Date
WO2008056612A1 true WO2008056612A1 (fr) 2008-05-15

Family

ID=39364430

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/071413 WO2008056612A1 (fr) 2006-11-06 2007-11-02 Appareil de sécurité d'informations

Country Status (4)

Country Link
US (1) US8510608B2 (ja)
EP (1) EP2081170A1 (ja)
JP (1) JP5113074B2 (ja)
WO (1) WO2008056612A1 (ja)

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010134192A1 (ja) * 2009-05-22 2010-11-25 三菱電機株式会社 電子機器及び鍵生成プログラム及び記録媒体及び鍵生成方法
WO2011155011A1 (ja) * 2010-06-07 2011-12-15 三菱電機株式会社 信号処理システム
WO2012001796A1 (ja) * 2010-06-30 2012-01-05 富士通株式会社 個体別情報生成装置及び個体別情報生成方法
JP2012510210A (ja) * 2008-11-21 2012-04-26 ベラヨ インク 非ネットワークrfid−puf認証
JP2012105056A (ja) * 2010-11-10 2012-05-31 Nec Corp デバイス固有情報生成装置、デバイス固有情報生成方法および認証装置
JP2012529867A (ja) * 2009-06-17 2012-11-22 エンパイア テクノロジー ディベロップメント エルエルシー ハードウェアベースの暗号法
WO2012164721A1 (ja) * 2011-06-02 2012-12-06 三菱電機株式会社 鍵情報生成装置及び鍵情報生成方法
EP2538608A1 (en) 2011-06-20 2012-12-26 Renesas Electronics Corporation Semiconductor device and method of writing data to semiconductor device
JP2013005314A (ja) * 2011-06-20 2013-01-07 Renesas Electronics Corp 半導体装置
JP2013046334A (ja) * 2011-08-26 2013-03-04 Meijo University 情報セキュリティシステム,ホスト,デバイス,その制御方法及びそのプログラム
WO2013080921A1 (ja) * 2011-12-01 2013-06-06 日本電気株式会社 デバイス固有情報生成出力装置、デバイス固有情報生成方法および生成プログラム
WO2013094056A1 (ja) * 2011-12-22 2013-06-27 三菱電機株式会社 デバイス固有情報生成装置およびデバイス固有情報生成方法
JP2013131868A (ja) * 2011-12-20 2013-07-04 Fujitsu Ltd 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置
JP2014504403A (ja) * 2010-12-09 2014-02-20 アイシーティーケー カンパニー リミテッド 識別キーを生成する装置及び方法
US8850281B2 (en) 2009-05-12 2014-09-30 Empire Technology Development Llc Digital signatures
JP2015001761A (ja) * 2013-06-13 2015-01-05 株式会社東芝 認証装置、認証方法およびプログラム
JP2015012409A (ja) * 2013-06-28 2015-01-19 ルネサスエレクトロニクス株式会社 半導体集積回路及びシステム
JP2015504634A (ja) * 2011-11-22 2015-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ファジー・アルゴリズムおよび動的キーを特徴とする保持ベースの固有指紋識別
US9014371B2 (en) 2011-02-15 2015-04-21 Ictk Co., Ltd Encryption device and method for defending a physical attack
US9032476B2 (en) 2009-05-12 2015-05-12 Empire Technology Development Llc Secure authentication
JP2015139010A (ja) * 2014-01-20 2015-07-30 富士通株式会社 半導体集積回路、認証システム、及び認証方法
US9105432B2 (en) 2011-03-31 2015-08-11 Ictk Co., Ltd Apparatus and method for generating digital value
KR20150117284A (ko) * 2013-02-11 2015-10-19 퀄컴 인코포레이티드 링 오실레이터 기반 물리적으로 클론가능하지 않은 기능 및 연령 검출 회로를 사용하는 집적 회로 식별 및 의존성 검증
JP2016007033A (ja) * 2011-06-20 2016-01-14 ルネサスエレクトロニクス株式会社 暗号通信システムおよび暗号通信方法
EP3067875A1 (en) 2015-03-12 2016-09-14 Fujitsu Limited Multi-frequencies puf based electronic circuit, authentication system, and authentication method
JP6081675B1 (ja) * 2014-01-10 2017-02-15 クアルコム,インコーポレイテッド センサの識別
US9787670B2 (en) 2011-08-16 2017-10-10 Ictk Co., Ltd Apparatus and method for authentication between devices based on PUF over machine-to-machine communications
US10122537B2 (en) 2013-12-31 2018-11-06 Ictk Holdings Co., Ltd. Apparatus and method for generating random digital value
JP2019146158A (ja) * 2017-12-22 2019-08-29 ザ・ボーイング・カンパニーThe Boeing Company リング発振器ベースの物理的複製不可能機能に対する頻繁な変更攻撃に対する対策
US10594497B2 (en) 2017-01-13 2020-03-17 Renesas Electronics Corporation Semiconductor device
US11044108B1 (en) 2019-12-24 2021-06-22 CERA Licensing Limited Temperature sensing physical unclonable function (PUF) authentication system
US11516028B2 (en) 2019-12-24 2022-11-29 CERA Licensing Limited Temperature sensing physical unclonable function (PUF) authentication system

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008003946A1 (de) * 2008-01-11 2009-07-23 Micronas Gmbh Schaltung und Verfahren zur Generierung einer echten, schaltungsspezifischen und zeitinvarianten Zufallszahl
JP5278115B2 (ja) * 2009-03-31 2013-09-04 日本電気株式会社 冗長符号生成方法及び装置、データ復元方法及び装置、並びにraid記憶装置
JP5433686B2 (ja) * 2009-05-22 2014-03-05 株式会社東芝 乱数生成回路およびこれを用いた暗号回路
FR2955394B1 (fr) * 2010-01-18 2012-01-06 Inst Telecom Telecom Paristech Circuit integre en silicium comportant une fonction physiquement non copiable, procede et systeme de test d'un tel circuit
US8868923B1 (en) * 2010-07-28 2014-10-21 Sandia Corporation Multi-factor authentication
US8848905B1 (en) * 2010-07-28 2014-09-30 Sandia Corporation Deterrence of device counterfeiting, cloning, and subversion by substitution using hardware fingerprinting
FR2964278A1 (fr) * 2010-08-31 2012-03-02 St Microelectronics Rousset Extraction de cle dans un circuit integre
US9081991B2 (en) * 2011-03-23 2015-07-14 Polytechnic Institute Of New York University Ring oscillator based design-for-trust
WO2012151753A1 (zh) * 2011-05-12 2012-11-15 中国科学院自动化研究所 基于局部特征的免配准安全指纹认证方法和系统
US8750502B2 (en) * 2012-03-22 2014-06-10 Purdue Research Foundation System on chip and method for cryptography using a physically unclonable function
US9218477B2 (en) 2012-04-13 2015-12-22 Lewis Innovative Technologies Electronic physical unclonable functions
CN103578565B (zh) * 2012-07-19 2017-06-20 百富计算机技术(深圳)有限公司 一种NAND Flash存储芯片的校验方法及装置
US9279856B2 (en) * 2012-10-22 2016-03-08 Infineon Technologies Ag Die, chip, method for driving a die or a chip and method for manufacturing a die or a chip
JP6030925B2 (ja) 2012-11-12 2016-11-24 ルネサスエレクトロニクス株式会社 半導体装置及び情報処理システム
US9015500B2 (en) 2013-01-16 2015-04-21 Qualcomm Incorporated Method and apparatus for using dynamic voltage and frequency scaling with circuit-delay based integrated circuit identification
US9444618B1 (en) * 2013-04-22 2016-09-13 Xilinx, Inc. Defense against attacks on ring oscillator-based physically unclonable functions
EP2816756A1 (fr) * 2013-06-18 2014-12-24 Nagravision S.A. Procédé et dispositif cryptographique unique à fonction physiquement induplicable
US9366718B2 (en) * 2013-09-12 2016-06-14 Cisco Technology Inc. Detection of disassembly of multi-die chip assemblies
US9992031B2 (en) * 2013-09-27 2018-06-05 Intel Corporation Dark bits to reduce physically unclonable function error rates
KR20150043122A (ko) * 2013-10-14 2015-04-22 에스케이하이닉스 주식회사 반도체 장치
US20150134966A1 (en) 2013-11-10 2015-05-14 Sypris Electronics, Llc Authentication System
DE102013227166B4 (de) * 2013-12-27 2016-01-14 Siemens Aktiengesellschaft Schaltkreiseinheit zur Bereitstellung eines kryptographischen Schlüssels
EP2911086A1 (en) * 2014-02-19 2015-08-26 Renesas Electronics Europe GmbH Integrated circuit with parts activated based on intrinsic features
US9577637B2 (en) 2014-02-19 2017-02-21 Altera Corporation Stability-enhanced physically unclonable function circuitry
US9438940B2 (en) 2014-04-07 2016-09-06 The Nielsen Company (Us), Llc Methods and apparatus to identify media using hash keys
US9668020B2 (en) 2014-04-07 2017-05-30 The Nielsen Company (Us), Llc Signature retrieval and matching for media monitoring
US9672342B2 (en) 2014-05-05 2017-06-06 Analog Devices, Inc. System and device binding metadata with hardware intrinsic properties
US9946858B2 (en) 2014-05-05 2018-04-17 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
US10432409B2 (en) * 2014-05-05 2019-10-01 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
US10382962B2 (en) 2014-05-22 2019-08-13 Analog Devices, Inc. Network authentication system with dynamic key generation
KR101593166B1 (ko) * 2014-06-02 2016-02-15 한국전자통신연구원 물리적 복제 방지 함수의 오류를 방지하는 장치 및 그 방법
JP2016046719A (ja) * 2014-08-25 2016-04-04 株式会社東芝 データ生成装置、通信装置、移動体、データ生成方法およびプログラム
KR102201642B1 (ko) * 2014-11-28 2021-01-13 삼성전자주식회사 Puf 회로 및 그것의 키 등록 방법
US9501664B1 (en) * 2014-12-15 2016-11-22 Sandia Corporation Method, apparatus and system to compensate for drift by physically unclonable function circuitry
WO2016189070A1 (en) 2015-05-27 2016-12-01 Nagravision S.A. Method for generating a value inherent to an electronic circuit, electronic circuit generating this value and method for using such a value
US10572651B2 (en) 2016-02-16 2020-02-25 Samsung Electronics Co., Ltd. Key generating method and apparatus using characteristic of memory
US9762241B1 (en) * 2016-06-30 2017-09-12 Intel Corporation Physically unclonable function circuit including memory elements
JP6471130B2 (ja) * 2016-09-20 2019-02-13 ウィンボンド エレクトロニクス コーポレーション 半導体装置およびセキュリティシステム
TWI625733B (zh) * 2017-02-22 2018-06-01 旺宏電子股份有限公司 產生積體電路固有資訊的裝置及方法
DE102017205818A1 (de) * 2017-04-05 2018-10-11 Robert Bosch Gmbh Einstellbare physikalische unklonbare Funktion
US10425235B2 (en) 2017-06-02 2019-09-24 Analog Devices, Inc. Device and system with global tamper resistance
US10958452B2 (en) 2017-06-06 2021-03-23 Analog Devices, Inc. System and device including reconfigurable physical unclonable functions and threshold cryptography
JP6882678B2 (ja) * 2017-06-30 2021-06-02 富士通株式会社 衝突検出システムおよび衝突検出方法
US10819528B2 (en) 2017-07-18 2020-10-27 Square, Inc. Device security with physically unclonable functions
US10438190B2 (en) 2017-07-18 2019-10-08 Square, Inc. Devices with on-board physically unclonable functions
US10891366B1 (en) * 2017-08-18 2021-01-12 Jonetix Corporation Secure hardware signature and related methods and applications
US11068589B2 (en) * 2017-12-22 2021-07-20 The Boeing Company Interference detecting ring oscillators
US10778451B2 (en) * 2018-07-30 2020-09-15 United States Of America As Represented By The Secretary Of The Navy Device and method for hardware timestamping with inherent security
US11585854B1 (en) * 2018-08-22 2023-02-21 Xilinx, Inc. Runtime measurement of process variations and supply voltage characteristics
US11151290B2 (en) * 2018-09-17 2021-10-19 Analog Devices, Inc. Tamper-resistant component networks
US11269999B2 (en) * 2019-07-01 2022-03-08 At&T Intellectual Property I, L.P. Protecting computing devices from malicious tampering
US20210026602A1 (en) * 2019-07-25 2021-01-28 PUFsecurity Corporation Entropy Generator and Method of Generating Enhanced Entropy Using Truly Random Static Entropy
US11271732B2 (en) * 2019-11-12 2022-03-08 Nxp B.V. Robust repeatable entropy extraction from noisy source
US11240047B2 (en) 2019-12-16 2022-02-01 Analog Devices International Unlimited Company Capacitor based physical unclonable function
US11394529B2 (en) * 2020-01-17 2022-07-19 SK Hynix Inc. Encoder and decoder using physically unclonable functions
KR20210097537A (ko) 2020-01-30 2021-08-09 삼성전자주식회사 물리적 복제 방지 기능에 기초하여 마스킹 데이터를 생성하는 보안 장치 및 이의 동작 방법
US11734459B2 (en) * 2020-08-05 2023-08-22 Analog Devices International Unlimited Company Monitoring a physical unclonable function
US11394566B2 (en) * 2020-08-05 2022-07-19 Analog Devices International Unlimited Company Physical unclonable function configuration and readout
EP3972191A1 (en) * 2020-09-18 2022-03-23 Thales Dis Design Services Sas Method of implementing a physical unclonable function
CN112837737B (zh) * 2021-01-28 2024-05-10 翼盾(上海)智能科技有限公司 具有指数增长型响应数量的puf电路及加密装置
CN116208145B (zh) * 2023-04-27 2023-08-04 湖北工业大学 基于fpga的低开销三态puf电路及配置方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000083019A (ja) * 1998-09-07 2000-03-21 Hitachi Ltd 暗号処理装置
JP2005045760A (ja) * 2003-07-24 2005-02-17 Hitachi Ltd 暗号処理方法及び装置
JP2006060109A (ja) 2004-08-23 2006-03-02 Matsushita Electric Ind Co Ltd 半導体装置の識別コード作成方法および半導体装置の識別方法並びに半導体装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274799A (en) * 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
US5961577A (en) * 1996-12-05 1999-10-05 Texas Instruments Incorporated Random binary number generator
US6246970B1 (en) * 1998-07-10 2001-06-12 Silverbrook Research Pty Ltd Method for making a chip tamper-resistant
US6161213A (en) 1999-02-17 2000-12-12 Icid, Llc System for providing an integrated circuit with a unique identification
JPWO2002050910A1 (ja) 2000-12-01 2004-04-22 株式会社日立製作所 半導体集積回路装置の識別方法と半導体集積回路装置の製造方法及び半導体集積回路装置
FR2825873A1 (fr) 2001-06-11 2002-12-13 St Microelectronics Sa Stockage protege d'une donnee dans un circuit integre
US7840803B2 (en) * 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
US8032760B2 (en) 2003-05-21 2011-10-04 Koninklijke Philips Electronics N.V. Method and system for authentication of a physical object
US7412435B2 (en) * 2004-01-06 2008-08-12 Matsushita Electric Industrial Co., Ltd. Information retrieval apparatus and information retrieval support apparatus
KR100603199B1 (ko) 2004-06-08 2006-07-24 삼성전자주식회사 온도데이터를 송신하는 무선인증용태그 및 그 방법
JP4594760B2 (ja) * 2005-02-09 2010-12-08 株式会社東芝 個体認証装置
WO2007007229A1 (en) * 2005-07-07 2007-01-18 Koninklijke Philips Electronics N.V. Method, apparatus and system for verifying authenticity of an object
DE602006005958D1 (de) * 2005-11-29 2009-05-07 Koninkl Philips Electronics Nv Beweise der physischen nähe unter verwendung von cpufs
CN1949708B (zh) * 2006-11-10 2011-02-02 华为技术有限公司 随机数发生装置、方法及对应的数据交互系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000083019A (ja) * 1998-09-07 2000-03-21 Hitachi Ltd 暗号処理装置
JP2005045760A (ja) * 2003-07-24 2005-02-17 Hitachi Ltd 暗号処理方法及び装置
JP2006060109A (ja) 2004-08-23 2006-03-02 Matsushita Electric Ind Co Ltd 半導体装置の識別コード作成方法および半導体装置の識別方法並びに半導体装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LEE J.W. ET AL.: "A Technique to Build a Secret Key in Integrated Circuits for Identification and Authentication Applications", VLSI CIRCUITS, 2005. DIGEST OF TECHNICAL PAPERS. 2004 SYMPOSIUM, June 2004 (2004-06-01), pages 176 - 179, XP002420397 *
RANASINGHE D.C. ET AL.: "An Integrable Low Cost Hardware Random Number Generator", PROCEEDINGS OF SPIE - THE INTERNATIONAL SOCIETY FOR OPTICAL ENGINEERING, vol. 5649, no. PART TWO OF TWO PARTS, 2005, pages 627 - 639, XP008105193 *

Cited By (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012510210A (ja) * 2008-11-21 2012-04-26 ベラヨ インク 非ネットワークrfid−puf認証
US8850281B2 (en) 2009-05-12 2014-09-30 Empire Technology Development Llc Digital signatures
US9032476B2 (en) 2009-05-12 2015-05-12 Empire Technology Development Llc Secure authentication
EP2434683A4 (en) * 2009-05-22 2016-04-20 Mitsubishi Electric Corp ELECTRONIC DEVICE, KEY GENERATION PROGRAM, RECORDING MEDIUM AND KEY PRODUCING METHOD
JPWO2010134192A1 (ja) * 2009-05-22 2012-11-08 三菱電機株式会社 電子機器及び鍵生成プログラム及び記録媒体及び鍵生成方法
WO2010134192A1 (ja) * 2009-05-22 2010-11-25 三菱電機株式会社 電子機器及び鍵生成プログラム及び記録媒体及び鍵生成方法
JP2012529867A (ja) * 2009-06-17 2012-11-22 エンパイア テクノロジー ディベロップメント エルエルシー ハードウェアベースの暗号法
WO2011155011A1 (ja) * 2010-06-07 2011-12-15 三菱電機株式会社 信号処理システム
JP5335141B2 (ja) * 2010-06-07 2013-11-06 三菱電機株式会社 信号処理システム
JP5333669B2 (ja) * 2010-06-30 2013-11-06 富士通株式会社 個体別情報生成装置及び個体別情報生成方法
WO2012001796A1 (ja) * 2010-06-30 2012-01-05 富士通株式会社 個体別情報生成装置及び個体別情報生成方法
US9021001B2 (en) 2010-06-30 2015-04-28 Fujitsu Limited Individual-specific information generation apparatus and individual-specific information generation method
JP2012105056A (ja) * 2010-11-10 2012-05-31 Nec Corp デバイス固有情報生成装置、デバイス固有情報生成方法および認証装置
JP2017208843A (ja) * 2010-12-09 2017-11-24 アイシーティーケー カンパニー リミテッド 識別キーを生成する装置及び方法
US9292710B2 (en) 2010-12-09 2016-03-22 Ictk Co., Ltd. Apparatus and method for generating identification key
JP2015201884A (ja) * 2010-12-09 2015-11-12 アイシーティーケー カンパニー リミテッド 識別キーを生成する装置及び方法
US10235540B2 (en) 2010-12-09 2019-03-19 Ictk Holdings Co., Ltd. Apparatus and method for generating identification key
US10769309B2 (en) 2010-12-09 2020-09-08 Ictk Holdings Co., Ltd Apparatus and method for generating identification key
JP2014504403A (ja) * 2010-12-09 2014-02-20 アイシーティーケー カンパニー リミテッド 識別キーを生成する装置及び方法
US9397826B2 (en) 2011-02-15 2016-07-19 Ictk Co., Ltd. Encryption device and method for defending a physical attack
US9014371B2 (en) 2011-02-15 2015-04-21 Ictk Co., Ltd Encryption device and method for defending a physical attack
US9105432B2 (en) 2011-03-31 2015-08-11 Ictk Co., Ltd Apparatus and method for generating digital value
US9729334B2 (en) 2011-03-31 2017-08-08 Ictk Co., Ltd Apparatus and method for generating digital value
WO2012164721A1 (ja) * 2011-06-02 2012-12-06 三菱電機株式会社 鍵情報生成装置及び鍵情報生成方法
US9391772B2 (en) 2011-06-02 2016-07-12 Mitsubishi Electric Corporation Key information generation device and key information generation method
JP5420114B2 (ja) * 2011-06-02 2014-02-19 三菱電機株式会社 鍵情報生成装置及び鍵情報生成方法
JP2016007033A (ja) * 2011-06-20 2016-01-14 ルネサスエレクトロニクス株式会社 暗号通信システムおよび暗号通信方法
EP2538608A1 (en) 2011-06-20 2012-12-26 Renesas Electronics Corporation Semiconductor device and method of writing data to semiconductor device
US9026882B2 (en) 2011-06-20 2015-05-05 Renesas Electronics Corporation Semiconductor device and method of writing data to semiconductor device
JP2013005314A (ja) * 2011-06-20 2013-01-07 Renesas Electronics Corp 半導体装置
US9300470B2 (en) 2011-06-20 2016-03-29 Renesas Electronics Corporation Semiconductor device and method of writing data to semiconductor device
US9787670B2 (en) 2011-08-16 2017-10-10 Ictk Co., Ltd Apparatus and method for authentication between devices based on PUF over machine-to-machine communications
JP2013046334A (ja) * 2011-08-26 2013-03-04 Meijo University 情報セキュリティシステム,ホスト,デバイス,その制御方法及びそのプログラム
JP2015504634A (ja) * 2011-11-22 2015-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ファジー・アルゴリズムおよび動的キーを特徴とする保持ベースの固有指紋識別
JPWO2013080921A1 (ja) * 2011-12-01 2015-04-27 日本電気株式会社 デバイス固有情報生成出力装置、デバイス固有情報生成方法および生成プログラム
WO2013080921A1 (ja) * 2011-12-01 2013-06-06 日本電気株式会社 デバイス固有情報生成出力装置、デバイス固有情報生成方法および生成プログラム
JP2013131868A (ja) * 2011-12-20 2013-07-04 Fujitsu Ltd 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置
CN103946909A (zh) * 2011-12-22 2014-07-23 三菱电机株式会社 器件固有信息生成装置以及器件固有信息生成方法
CN103946909B (zh) * 2011-12-22 2016-05-11 三菱电机株式会社 器件固有信息生成装置以及器件固有信息生成方法
US9361482B2 (en) 2011-12-22 2016-06-07 Mitsubishi Electric Corporation Device specific information generation device and device specific generation method
WO2013094056A1 (ja) * 2011-12-22 2013-06-27 三菱電機株式会社 デバイス固有情報生成装置およびデバイス固有情報生成方法
KR101576408B1 (ko) 2011-12-22 2015-12-09 미쓰비시덴키 가부시키가이샤 디바이스 고유 정보 생성 장치 및 디바이스 고유 정보 생성 방법
JP2018082483A (ja) * 2013-02-11 2018-05-24 クアルコム,インコーポレイテッド リング発振器ベースの物理的複製不可関数および年齢検知回路を使用した集積回路識別およびディペンダビリティ検証
KR20150117284A (ko) * 2013-02-11 2015-10-19 퀄컴 인코포레이티드 링 오실레이터 기반 물리적으로 클론가능하지 않은 기능 및 연령 검출 회로를 사용하는 집적 회로 식별 및 의존성 검증
KR101681219B1 (ko) 2013-02-11 2016-12-01 퀄컴 인코포레이티드 링 오실레이터 기반 물리적으로 클론가능하지 않은 기능 및 연령 검출 회로를 사용하는 집적 회로 식별 및 의존성 검증
JP2016508003A (ja) * 2013-02-11 2016-03-10 クアルコム,インコーポレイテッド リング発振器ベースの物理的複製不可関数および年齢検知回路を使用した集積回路識別およびディペンダビリティ検証
JP2015001761A (ja) * 2013-06-13 2015-01-05 株式会社東芝 認証装置、認証方法およびプログラム
JP2015012409A (ja) * 2013-06-28 2015-01-19 ルネサスエレクトロニクス株式会社 半導体集積回路及びシステム
US10122537B2 (en) 2013-12-31 2018-11-06 Ictk Holdings Co., Ltd. Apparatus and method for generating random digital value
US10771268B2 (en) 2013-12-31 2020-09-08 Ictk Holdings Co., Ltd Apparatus and method for generating random digital value
US10146929B2 (en) 2014-01-10 2018-12-04 Qualcomm Incorporated Sensor identification
JP2017123655A (ja) * 2014-01-10 2017-07-13 クアルコム,インコーポレイテッド センサの識別
JP6081675B1 (ja) * 2014-01-10 2017-02-15 クアルコム,インコーポレイテッド センサの識別
JP2015139010A (ja) * 2014-01-20 2015-07-30 富士通株式会社 半導体集積回路、認証システム、及び認証方法
EP3067875A1 (en) 2015-03-12 2016-09-14 Fujitsu Limited Multi-frequencies puf based electronic circuit, authentication system, and authentication method
US10594497B2 (en) 2017-01-13 2020-03-17 Renesas Electronics Corporation Semiconductor device
JP2019146158A (ja) * 2017-12-22 2019-08-29 ザ・ボーイング・カンパニーThe Boeing Company リング発振器ベースの物理的複製不可能機能に対する頻繁な変更攻撃に対する対策
JP7222697B2 (ja) 2017-12-22 2023-02-15 ザ・ボーイング・カンパニー リング発振器ベースの物理的複製不可能機能に対する頻繁な変更攻撃に対する対策
US11044108B1 (en) 2019-12-24 2021-06-22 CERA Licensing Limited Temperature sensing physical unclonable function (PUF) authentication system
US11516028B2 (en) 2019-12-24 2022-11-29 CERA Licensing Limited Temperature sensing physical unclonable function (PUF) authentication system
US11652649B2 (en) 2019-12-24 2023-05-16 CERA Licensing Limited Sensor secured by physical unclonable function (PUF)

Also Published As

Publication number Publication date
JPWO2008056612A1 (ja) 2010-02-25
US20100031065A1 (en) 2010-02-04
JP5113074B2 (ja) 2013-01-09
US8510608B2 (en) 2013-08-13
EP2081170A1 (en) 2009-07-22

Similar Documents

Publication Publication Date Title
JP5113074B2 (ja) 情報セキュリティ装置
KR102412616B1 (ko) 대수적 조작으로부터 데이터를 보호하는 방법
US10554398B2 (en) Cryptographic key production from a physical unclonable function
Koeberl et al. Entropy loss in PUF-based key generation schemes: The repetition code pitfall
JP5420114B2 (ja) 鍵情報生成装置及び鍵情報生成方法
JP5248328B2 (ja) 信号発生器をベースとした装置セキュリティ
JP5548218B2 (ja) 物理的システムに依存する暗号鍵を確立するためのシステム
Hiller et al. Breaking through fixed PUF block limitations with differential sequence coding and convolutional codes
Hiller et al. Cherry-picking reliable PUF bits with differential sequence coding
US20120183135A1 (en) Reliable puf value generation by pattern matching
KR20160065297A (ko) Puf 회로 및 그것의 키 등록 방법
JP6323338B2 (ja) ビット列照合システムと方法とプログラム
US9882712B2 (en) Encrypted text matching system, method, and computer readable medium
JP5724305B2 (ja) デバイス固有情報生成装置、デバイス固有情報生成方法および認証装置
KR20210095460A (ko) 시도-응답 방식을 이용하여 인증을 수행하는 집적 회로 및 이를 사용하는 방법
Hiller et al. Increasing the efficiency of syndrome coding for PUFs with helper data compression
KR101675674B1 (ko) 양자 메시지에 대한 양자 서명 장치
JP6295961B2 (ja) メッセージ認証システム、およびメッセージ認証方法
EP2991265A1 (en) Encrypted text matching system, method and program
CN109428721B (zh) 用于确定物理不可克隆功能电路的健康状况的方法或装置
KR20180006251A (ko) 생체 코드를 등록 및 인증하는 방법 및 장치
EP2991266B1 (en) Encrypted text matching system, method, and computer readable medium
JP5602312B2 (ja) 誤り訂正復号装置
Höberl et al. Towards a Secure Key Generation and Storage Framework on Resource-Constrained Sensor Nodes.
KR102425916B1 (ko) 가변 길이 퍼지 데이터를 지원하는 격자 기반 퍼지 추출 장치 및 방법

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2008543059

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2007831147

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12443736

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE