WO2015012667A1 - 랜덤성 테스트 장치 및 방법 - Google Patents

랜덤성 테스트 장치 및 방법 Download PDF

Info

Publication number
WO2015012667A1
WO2015012667A1 PCT/KR2014/006897 KR2014006897W WO2015012667A1 WO 2015012667 A1 WO2015012667 A1 WO 2015012667A1 KR 2014006897 W KR2014006897 W KR 2014006897W WO 2015012667 A1 WO2015012667 A1 WO 2015012667A1
Authority
WO
WIPO (PCT)
Prior art keywords
test
randomness
puf
based hardware
randomness test
Prior art date
Application number
PCT/KR2014/006897
Other languages
English (en)
French (fr)
Inventor
김동규
최병덕
지광현
Original Assignee
(주) 아이씨티케이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주) 아이씨티케이 filed Critical (주) 아이씨티케이
Priority to US14/907,801 priority Critical patent/US10235261B2/en
Priority to EP14828675.0A priority patent/EP3032421A4/en
Publication of WO2015012667A1 publication Critical patent/WO2015012667A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K23/00Pulse counters comprising counting chains; Frequency dividers comprising counting chains
    • H03K23/004Counters counting in a non-natural counting order, e.g. random counters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Definitions

  • the present disclosure relates to a randomness test apparatus and method, and more particularly, to a randomness test apparatus and method for testing the randomness of a physical unclonable function (PUF) -based hardware.
  • PAF physical unclonable function
  • computing devices such as radio frequency identification (RFID), smart cards, universal subscriber identity modules (USIM), and one time password (OTP) are widely used.
  • RFID radio frequency identification
  • USIM universal subscriber identity modules
  • OTP one time password
  • Cryptographic-key or unique ID is used in the process of performing this security function, which is an essential element of the security system, and hereinafter, Cryptographic-key or unique ID is referred to as an identification key.
  • an externally generated cryptographically secure PRN Pseudo Random Number
  • EEPROM Electrically Erasable Programmable Read-Only Memory
  • PUF Physical Unclonable Function
  • PAF Physically Unclonable Function
  • PUF-based hardware having sufficient randomness may be determined as a good product, but PUF-based hardware having low randomness may be determined to be a defective product because a PUF-based identification key may be inferred due to the low randomness of the PUF value.
  • a determination method has not been disclosed in the related art, and development of a randomness test apparatus and method capable of determining whether PUF-based hardware has sufficient randomness is required.
  • a lot of bits of data are required for randomness verification, but PUF-based hardware has a problem of generating only limited data.
  • the present disclosure has been made in response to the above-described development request, and the present disclosure provides a randomness test apparatus and method for testing whether the PUF-based hardware is defective and the randomness of the PUF-based hardware.
  • the randomness test apparatus determines whether the PUF-based hardware is defective based on a randomness test module that performs a randomness test on a physically unclonable function (PUF) -based hardware and a result of performing the randomness test. It may include a processing device.
  • PUF physically unclonable function
  • the test method performed by the randomness test module may be a mono test.
  • test module tests equality between 1 and 0 with respect to a value output from the PUF-based hardware.
  • the output value of N bits is input from the PUF-based hardware, and the number of bits of 1 or the number of bits of 0 is counted, and the value is determined in advance of the first predetermined range according to the value of N. If satisfied, a method of determining that the PUF-based hardware is good is used.
  • the test method performed by the randomness test module may be a poker test.
  • test module tests the uniformity of the pattern of values output by the PUF-based hardware.
  • the output value of the N bits received from the PUF-based hardware is separated by 4 bits, the result of counting each frequency with respect to 0 to 15, which is the value that 4 bits can have, is determined to N. Accordingly, if the second predetermined range is satisfied, a method of determining that the PUF-based hardware is good quality may be used.
  • the test method performed by the randomness test module may be a run test.
  • a run means a sequence of bits having the same value and may be referred to as a continuous sequence.
  • test module tests whether the number of consecutive sequences of values output by the PUF-based hardware is appropriate.
  • the frequency at which the value changes is satisfied to satisfy the third predetermined range according to N.
  • a method of determining that the PUF-based hardware is a good product may be used.
  • the test method performed by the randomness test module may be a long run test.
  • the test module performs a test on whether there is no long run that is too long a run among values output by the PUF-based hardware.
  • test methods described above are examples of test methods that can be performed by a test module.
  • some of the test methods may be changed to random tests or additionally. It may be further included.
  • the randomness test method may include performing a randomness test on a physically unclonable function (PUF) -based hardware and determining whether the PUF-based hardware is defective based on a result of the randomness test. It may include.
  • PUF physically unclonable function
  • the randomness test method may include inputting a bit sequence including at least one of the first output value and the second output value from a physically unclonable function (PUF) based hardware that outputs a first output value or a second output value. Receiving, performing a randomness test on the bit sequence and determining whether the PUF-based hardware is defective based on the result of the randomness test.
  • PUF physically unclonable function
  • Another embodiment may be a computer readable recording medium including the randomness test method described above.
  • an apparatus and method for testing randomness capable of testing randomness of PUF-based hardware are provided.
  • various embodiments of the present disclosure may perform a randomness test based on a statistical method such that the output value of the PUF-based hardware is not exposed to the outside, thereby increasing security.
  • the randomness test apparatus can be implemented as a device requiring a small amount of computation, and thus a cost-effective effect can be created.
  • the PUF-based hardware outputs a random digital value, it was not possible to perform testing in a conventional manner on whether or not there is a defect.
  • the randomness verification method may be absorbed as a method of determining whether or not a defect is found in manufacturing. That is, the effects of the two tests can be created with one randomness test.
  • the effect that can determine whether the failure can also be created.
  • 1 shows an apparatus for generating an identification key.
  • FIG. 2 is a conceptual diagram illustrating a configuration of an identification key generation unit.
  • FIG. 3 is a conceptual diagram illustrating an exemplary structure of a via or contact array formed in a semiconductor layer by the identification key generation unit 110 according to an embodiment of the present invention to generate an identification key.
  • 4A to 4C are block diagrams illustrating a randomness test apparatus according to various embodiments.
  • FIG. 5 is a block diagram of a randomness test module according to an embodiment.
  • FIG. 6 is a flowchart illustrating a randomness test method according to an exemplary embodiment.
  • FIG. 7 is a flowchart of a mono test according to an embodiment.
  • FIG. 8 is a flowchart of a poker test according to an exemplary embodiment.
  • FIG. 9 is a flowchart illustrating a run test according to an exemplary embodiment.
  • FIG. 10 is a flowchart of a long-run test according to an embodiment.
  • FIG. 11 is a block diagram of a random test module according to an exemplary embodiment.
  • the PUF-based hardware will be described with reference to FIGS. 1 to 3, and the apparatus and method for the randomness test for the PUF-based hardware will be described later.
  • FIG. 1 illustrates an identification key generating apparatus 100.
  • the identification key generation unit 110 generates an identification key that does not change with time using a semiconductor process, and the generated identification key is random, but does not change over time.
  • the identification key generated by the identification key generation unit 110 may be, for example, a digital value of N bits (where N is a natural number).
  • the most important factors in the reliability of the generated identification key are the randomness of the generated identification key (or may be referred to as 'random') and the invariant whose value does not change with time.
  • the identification key generation unit 110 is configured such that a short between nodes generated in a semiconductor manufacturing process has a randomness, and a short between nodes does not change over time or depending on a usage environment. The generated identification key does not change.
  • the identification key generator 110 generates the identification key according to whether the conductive layers are shorted by a contact or via formed between the conductive layers generated in the semiconductor manufacturing process.
  • the contacts or vias are designed to connect between the conductive layers so that typically the contact or via size is determined to short between the conductive layers. And in conventional design rules, a minimum contact or via size is specified to ensure shorting between conductive layers.
  • the size of a contact or via is intentionally smaller than that specified in the design rule, so that some of the contacts or vias are formed between conductive layers. Shorting, and some other contacts or vias do not short between the conductive layers, and whether or not such a short is determined.
  • the identification key generation unit 110 intentionally determines the spacing between conductive lines in a semiconductor manufacturing process to be smaller than the design rule, thereby determining whether there is a short circuit between the conductive lines.
  • the identification key having randomness is generated by being determined probabilistically.
  • This embodiment also generates a random identification key intentionally deviating from a design rule that guarantees open between conductive lines, i.e., a certain level or more, in a conventional semiconductor manufacturing process.
  • the identification key generation unit 110 electrically generates an identification key generated according to the above embodiments. Whether a contact or via is shorting between the conductive layers or shorting between the conductive lines can be identified using a read transistor.
  • the ratio of the contact or via which does not connect between the conductive layers by shortening the contact or via and the via and the non-via is preferably equal to 1/2. Even so, it may not be guaranteed that the proportions of shorts (such as digital value 0) and otherwise (such as digital value 1) are stochasticly identical.
  • the larger the contact or via size is to the value defined in the design rule, the greater the probability of a short circuit, and conversely, the smaller the probability of a short circuit, the greater the probability of a short circuit or a non-short circuit. If this becomes large, the randomness of the generated identification key is reduced.
  • the identification key generation device 100 further includes an identification key processing device 130 for processing the identification key generated by the identification key generation unit 110 to ensure randomness.
  • an identification key processing device 130 for processing the identification key generated by the identification key generation unit 110 to ensure randomness.
  • the term 'identification key processing device' is used, but this is not limited to processing the generated identification key through a separate technique or algorithm, and should not be interpreted. It should be understood to mean a set of configurations that performs balancing between 0 and 1 to ensure.
  • FIG. 2 is a conceptual diagram illustrating a configuration of an identification key generation unit.
  • vias are formed between the metal 1 layer 202 and the metal 2 layer 201.
  • a group 220 having a via size between the groups 210 and 230 some vias short the metal 1 layer 202 and the metal 2 layer 201, and some of the vias are metal 1.
  • the layer 202 and the metal 2 layer 201 are not shorted.
  • the identification key generation unit 110 like the group 220, some vias short the metal 1 layer 202 and the metal 2 layer 201, and other vias
  • the via size is set so that the metal 1 layer 202 and the metal 2 layer 201 are not shorted.
  • the design rule for the via size is different depending on the semiconductor manufacturing process.
  • the design rule of the via is set to 0.25 micron in a complementary metal oxide semiconductor (CMOS) process of 0.18 micrometers.
  • CMOS complementary metal oxide semiconductor
  • the identification key generation unit 110 sets the via size to 0.19 microns so that the presence or absence of a short circuit between the metal layers is probabilistic.
  • such a probability distribution as a short circuit has a short probability of 50%
  • the identification key generation unit 110 is configured by setting the via size so that the probability distribution is as close to 50% as possible. do.
  • the via size may be determined by experiments according to the process.
  • FIG. 3 is a conceptual diagram illustrating an exemplary structure of a via or contact array formed in a semiconductor layer by the identification key generation unit 110 according to an embodiment of the present invention to generate an identification key.
  • M and N vias (where M and N are natural numbers) and a total of M * N vias are formed between the metal layers stacked on the semiconductor substrate.
  • the identification key generation unit 110 determines the M * N bits according to whether each of the M * N vias shorts between the metal layers (digital value 0) or not (digital value 1). Generates an identification key for.
  • the generated M * N bit identification key is read by the identification key reader 120.
  • randomness is required so that the probability of outputting a value of 0 and the probability of outputting a value of 1 are equal to 1/2. That is, the higher the randomness in which the value of 0 is M * N / 2 and the value of 1 is M * N / 2 in the M * N bits described above, it can be classified as good PUF-based hardware.
  • PUF-based hardware based on the above-described via is merely exemplary, and there is no limitation on the type of PUF.
  • the randomness test according to the embodiment is 10-2010-0125633, 10-2011-0013269, 10-2011-0029429, 10-2012-0033362, 10-2009-0035416, 10-2012-0089227, 10-2011-0077271, 10-2009-0096085, 10-2010-0039857, 10-2007-0122914, 10-2012-0091197, 10-2013-0129262, 10-2013-0029616, 10-2013-0043954, 10- 2013-0101893, 10-2013-0168530, 10-2013-0168558, 10-2013-0088696, 10-2013-0103939, 2011-0029430, 10-2013-0105385, 10-2013-0105470, 10-2013-0107217, PUF according to 10-2013-0107304, 10-2013-0116424, 10-2013-0120297, 10-2013-0120141, 10-2013-0120043, 10-2014-0042360, 10-2014-0042362, 10-2014-0046021 Obviously, you can also run tests on the underlying hardware.
  • the failure test can not be performed by the existing testing method.
  • PUF-based hardware since PUF-based hardware has to be obtained at a predetermined level of randomness, a method for determining whether the output value is random is also required.
  • a method of simultaneously testing a defect test and randomness of PUF-based hardware through a randomness test will be described in more detail.
  • 4A to 4C are block diagrams illustrating a randomness test apparatus according to various embodiments.
  • the randomness test apparatus 400 may include a PUF generator 410 and a randomness test module 420.
  • the PUF generator 410 may generate an output value from the PUF-based hardware.
  • the PUF generator 410 may output a first output value (eg, a value of 1) or a second output value (eg, a value of 0).
  • a first output value eg, a value of 1
  • a second output value eg, a value of 0
  • the PUF generation unit 410 may generate, for example, N output values (N is a natural number).
  • the output value may consist of at least one of a value of 0 and a value of 1, and thus the output value may be named as a bit sequence.
  • the bit sequence may be managed, for example, in units of 1 bit or 4 bits, which will be described later in more detail.
  • the management in units of 1 bit or 4 bits may mean that the randomness test module 420 may receive a bit sequence in units of 1 bit or 4 bits.
  • being managed in units of 1 or 4 bits may mean that the randomness test module 420 receives a bit sequence in units of arbitrary bits and performs a randomness test in units of 1 or 4 bits. . That is, the randomness test module 420 may perform the randomness test in units of 1 bit or 4 bits, regardless of the size of the received bit sequence. In this case, for example, the randomness test module 420 may perform the randomness test in units of 1 bit or 4 bits after receiving all the target bits.
  • the PUF generator 410 may be implemented with PUF-based hardware.
  • the PUF generator 410 may not necessarily be provided in the randomness test apparatus 400, and may be implemented to be able to enter and exit the test. .
  • the PUF generator 410 may be integrally implemented with the randomness tester 400.
  • the PUF generator 410 may be implemented as an interface for receiving an output value, that is, a bit sequence, from PUF-based hardware.
  • the PUF generator 410 may be connected to external PUF-based hardware to receive an output value from the PUF-based hardware and output the output value to the randomness test module 420. .
  • the PUF generator 410 simply outputs only a test result, so that the output value from the PUF-based hardware is not exposed.
  • the randomness test module 420 may perform randomness test on the PUF-based hardware.
  • the randomness test module 420 may receive an output value, eg, a bit sequence, from PUF-based hardware from the PUF generator 410.
  • the randomness test module 420 may perform a randomness test on the output value from the received PUF based hardware. For example, the randomness test module 420 may test whether the distribution of 0 and 1 in the bit sequence has randomness.
  • the randomness test module 420 uses at least one of a mono test, a poker test, a run test, and a long-run test using an output value, that is, a bit sequence. Can be performed. Each randomness test will be described later in more detail.
  • the processing apparatus may determine whether the PUF-based hardware is defective based on the randomness test result. If the randomness of the PUF-based hardware is equal to or greater than a predetermined level, the processing apparatus (not shown) may determine that the PUF-based hardware is good. For example, when the randomness test module 420 performs a mono test, the processing apparatus (not shown) may determine that the PUF-based hardware is good if the value of 1 is within a preset range. The processing device (not shown) may determine that the PUF-based hardware is bad when the number of 1s is out of a predetermined range. The processing apparatus (not shown) may determine whether the PUF-based hardware is defective based on at least one result of the four randomness tests described above. The processing apparatus (not shown) may weight the various randomness tests described above to determine whether they are defective.
  • the processing device may be disposed outside the randomness test device 400 or may be implemented by being combined with the randomness test module 420 in one piece of hardware.
  • FIG. 4B is a block diagram of a randomness test apparatus according to another embodiment.
  • the embodiment of FIG. 4B may further include a correction circuit 415 as compared to the embodiment of FIG. 4A.
  • the correction circuit 415 may correct the output value from the PUF generator 410 and transmit the correction to the randomness test module 420.
  • FIG. 4C is a block diagram of a randomness test apparatus according to another embodiment.
  • the randomness test module 420 may be physically separated from the PUF generator 410.
  • FIG. 5 is a block diagram of a randomness test module according to an embodiment.
  • the randomness test module 420 includes a mono test module 421, a poker test module 422, a run test module 423, and a long-run test module 424. It may include. Each of the mono test module 421, the poker test module 422, the run test module 423, and the long-run test module 424 may perform a randomness test based on output values from input PUF-based hardware. .
  • the mono test can test randomness by determining uniformity for the number of zeros and ones in the bit sequence.
  • the mono test can determine the uniformity of the number of 1's and 0's by observing the value of each bit in units of 1 bit.
  • the poker test can test randomness by determining whether the frequency of 0 to 15 represented by each 4 bits is equal when the bit sequences are separated into 4 bit units.
  • the run test can test randomness by determining the continuity of 0 or 1 in the bit sequence.
  • the run test may check the number of consecutive sequences in the bit sequence and test randomness based on the number of identified consecutive sequences.
  • the long-run test can test randomness by determining the continuity of 0 or 1 in the bit sequence.
  • the long-run test may test randomness depending on whether there is a continuous sequence of a length beyond a predetermined threshold.
  • the randomness test may be performed in parallel, respectively, and output a test result.
  • the mono test module 421, the poker test module 422, the run test module 423, and the long-run test module 424 may output a result value as 1 or 0.
  • “1” may mean that the randomness test is still in progress or the randomness test result has failed, and "0" may mean that the randomness test has passed.
  • 6 is a flowchart illustrating a randomness test method according to an exemplary embodiment. 6 may be, for example, a flowchart of a mono test.
  • the randomness test method may read an output value from a PUF based hardware, that is, a digital value.
  • the output value may be a bit sequence composed of at least one of 0 and 1.
  • the size of the bit sequence is 2500 bits. Accordingly, a bit sequence from PUF based hardware with perfect randomness may consist of 1250 1s and 1250 0s.
  • the randomness test method may check the number of first output values in the bit sequence.
  • the first output value may be 1 or 0.
  • the randomness test method may determine whether the number of first output values exists within a preset range.
  • a bit sequence from PUF-based hardware having perfect randomness may have 1250 first values.
  • a range having a deviation from perfect randomness can also be treated as having randomness.
  • the deviation may be set to 64.
  • the predetermined range for the randomness pass may be greater than 1185 and less than 1315. The determination as to whether or not belonging to a more detailed preset range will be described later in more detail.
  • the randomness test method may determine that the PUF-based hardware is good.
  • the randomness test method may determine that the PUF-based hardware is bad when the number of first values is outside the preset range.
  • the mono test assumes receiving a 2500 bit size bit sequence from PUF based hardware and testing the randomness of the bit sequence.
  • the mono test may set an initial value of the number of first values cnt_1 to ⁇ 1250. This will be described later, for ease of run testing.
  • the mono test result value Mono_result may be set to 1.
  • the mono tester may determine whether an input bit is a first value.
  • the first value is assumed to be 1.
  • step 715 the mono test increases the number cnt_1 of the first value by 1 when the input bit is the first value.
  • operation 720 when the input bit is the second value, the mono test maintains the number cnt_1 of the first value.
  • the mono test may determine whether steps 710 through 715 are performed for all bits. If not performed for all bits, the mono test may perform steps 710 to 715 for the next bit. If all bits have been performed, the mono test at step 725 may determine whether the number cnt_1 of the first value is negative.
  • the mono test may determine whether the number cnt_1 of the first value is greater than 64.
  • the mono test result value Mono_result When the number cnt_1 of the first value is greater than 64, the mono test result value Mono_result may be maintained at 1 and output. Here, the mono test result value Mono_result of 1 may mean that the randomness is poor. On the other hand, when the number cnt_1 of the first value is less than or equal to 64, the mono test result value Mono_result may be replaced with 0 and output. Here, the mono test result value Mono_result of 0 may mean that the randomness is good.
  • FIG. 8 is a flowchart of a poker test.
  • the poker test assumes receiving a 2500 bit size bit sequence from PUF based hardware and testing the randomness of the bit sequence.
  • the poker test may manage the bit sequence by dividing the bit sequence into 4 bit units.
  • the poker test can test whether the frequencies of 0 to 15 represented by 4 bits are equal.
  • the test pass condition is shown in Equation 1.
  • Equation 1 may represent the frequency of each of four bits 0000, 0001, 0010, ..., 1111.
  • Equation 1 can be converted into Equation 2, which is equivalent to Equation 1, and used.
  • Equation 3 in which the square operation is replaced with a series sequence may be used.
  • k may be a natural number for the calculation.
  • the poker test may stop calculating f (i) and output a result of failure when the total sum is greater than 25695.
  • the poker test may convert the result to success if the sum is not less than 24594 and output the result.
  • the poker test may set the total to zero and set the values of f (0) to f (15) to all zeros. In addition, the poker test may set the initial value of the result value Poker_result to one.
  • the poker test may determine a value of a sub-bit sequence having a size of 4 bits. Depending on the value of the sub bit sequence, the poker test may proceed to steps 815 to 835. For example, if the value of the sub-bit sequence is 0, the poker test increases the value of f (0) by 1 in step 815, while increasing the amount of the sum by f (0) * 2 + 1 in step 820. Can be set to In addition, when the value of the sub-bit sequence is 1, the poker test increases the value of f (1) by 1 in step 825, while increasing the size of the sum in step 830 by f (1) * 2 + 1. Can be set as large as. Also, if the value of the sub-bit sequence is 15, the poker test increases the value of f (1) by 1 in step 835, while increasing the size of the sum in step 840 by f (15) * 2 + 1 over the existing sum. Can be set as large as.
  • step 845 it may be determined whether the sum is greater than 25695. If the total is greater than 25695, the poker test may end the test by determining whether all 2500 bits have been performed in step 850. If the total is less than or equal to 25695, then the poker test may determine whether all 2500 bits have been performed in step 855. If it is determined that all have not been performed, the poker test may return to step 810 to repeat the test for the next subsequence. If all is determined to have been performed, the poker test may determine whether the total is less than 24594 in step 860. If the total is greater than or equal to 24594, the poker test may output the result value Mono_result by replacing it with 0 in step 865.
  • the poker test may maintain the result value Mono_result as 1 and output the result.
  • the result value Mono_result of 0 may mean that the randomness is good
  • the result value Mono_result of 1 may mean that the randomness is poor.
  • the sequence sequence operation is selected instead of the square operation, and thus an effect of reducing the calculation area may be created.
  • the size of f (i) is 8 bits
  • 16 square modules of 8 * 8 and 15 add modules of 16 * 16 are required.
  • the effect that the above-described large area calculation is not required is created.
  • the effect of identifying the median can also be created.
  • the inefficiency of counting all f (i) must be counted, even though a specific value may be concentrated in a specific part of the bit sequence, and the result of the poker test may be recognized as a failure early. This exists.
  • the failure can be detected early, and thus an adaptive randomness test may be possible. This can create additional power dissipation protection and resistor size reduction.
  • Table 1 below shows the relationship between the register size and the add module size according to the adaptive randomness test.
  • the design of the hardware may require preparation for the worst case.
  • the worst case may be a case where all of the input patterns of the 4-bit sub-bit sequence are 0000. In this case, f (0) is 625 and the sum total is 391250.
  • the middle sum may be grasped before entering the worst case, so that the test result may fail and the randomness test may be stopped early.
  • the method using the sequence sequence stops the randomness test when it exceeds the maximum value of 25695, which is to continue the randomness test.
  • the sub-bit sequence of 0000 is continuously input as described above, when the same pattern is input 160 times, the sum is 25600, and when the sub-bit sequence of 0000 is input once more, that is, f (0) If this is 161, the sum is 25291 and the randomness test can be stopped.
  • an addition module is required to calculate the intermediate sum of the sum and count f (i).
  • one existing 19-bit addition module and 15 to 16-bit addition modules are used.
  • Add module One add-on module can be reduced to 16 8-bit add modules.
  • the run test assumes receiving a 2500 bit size bit sequence from PUF based hardware and testing the randomness of the bit sequence.
  • the run test may test randomness based on whether the number of consecutive sequences in the bit sequence is sufficient. For example, if the bit sequence is 11000011101110010, the contiguous sequence is "11", “0000”, "111", “0”, “111", “00”, "1", "0", and so on. The number may be eight. The smaller the number of consecutive sequences, the lower the randomness. The higher the number of consecutive sequences can be interpreted as increasing the randomness, the run test can test the randomness based on the number of consecutive sequences.
  • the run test may test the randomness, for example, based on whether the number of consecutive sequences is within a preset range. For example, the run test may test randomness based on Equation 4.
  • m may be 5000p
  • b may be 257.5828p
  • p may be q * (1-q)
  • q may be the number of first values / 2500.
  • q may be set based on the mono test result, for example.
  • m and b may be calculated and set in advance as parameters. Since m and b have symmetrical values when the number of 1s is 1250, for this,
  • the run test may be set to be performed only when
  • step 905 to 935, step 965 is a mono test process, and since it has been described above, further description thereof will be omitted.
  • the run test may be performed together with the mono test. The run test can be performed in parallel with the mono test.
  • the run test may set the number of consecutive sequences cnt_run to 1.
  • the run test may set the run test result (Run_result) to 1.
  • Run_result When the run test result Run_result is 1, it may mean that randomness is poor.
  • the run test result (Run_result) 0 may mean that the randomness is good.
  • step 945 the run test replaces the used new bit (new_bit) with the existing bit (old_bit) and sets the newly input bit to the new bit (new_bit).
  • the run test may determine whether the new bit new_bit and the old bit old_bit are different.
  • the run test may increase the number of consecutive sequences cnt_run by 1 in step 955. If it is determined that the new bit (new_bit) and the old bit (old_bit) are the same, the run test proceeds to step 960, and it may be determined whether the run test is performed on all the bits 2500. FIG.
  • step 970 the run test reads the minimum and maximum values of the number of consecutive sequences, that is, the boundary values of a preset range, from the parameter values calculated in advance, using the number of 1s (cnt_1) in the bit sequence calculated in the mono test as index values. Can be.
  • step 975 the run test may determine whether the number of consecutive sequences cnt_run is not less than the minimum value and not greater than the maximum value. That is, the run test may determine whether the number of consecutive sequences (cnt_run) is included in a preset range.
  • the run test may output the result value Run_result by replacing it with 0 in step 980. If it is determined that the number of consecutive sequences cnt_run is not included in the preset range, the run test may output the result value Run_result as 1.
  • FIG. 10 is a flowchart of a long-run test according to an embodiment.
  • the long-run test assumes receiving a 2500 bit size bit sequence from PUF based hardware and testing the randomness of the bit sequence.
  • the long-run test may test randomness by determining whether there is a length of a continuous sequence in the bit sequence that is greater than or equal to a predetermined threshold. For example, the long-run test may end the randomness test when there is a length of 17 or more consecutive sequences.
  • the long-run test may set the length (cnt_LR) of the continuous sequence to one.
  • the long-run test may set the result value LR_result to 1.
  • the long-run test may replace the used new bit new_bit with the existing bit old_bit and set the newly input bit as the new bit new_bit.
  • the long-run test may determine whether the new bit new_bit and the old bit old_bit are different.
  • the long-run test may set the length of the continuous sequence (cnt_LR) back to 1 at step 1020. If the new bit (new_bit) and the existing bit (old_bit) are the same, the long-run test may increase the length of the continuous sequence (cnt_LR) by 1 at step 1025.
  • the long-run test may determine whether the length of the continuous sequence cnt_LR is equal to 17. If the length of the continuous sequence (cnt_LR) is equal to 17, the test ends immediately. If the length cnt_LR of the continuous sequence is not 17, in step 1040, the long-run test may confirm whether all bits 2500 are input. If all bits 2500 have not been entered, the long-run test may return to step 1010 to repeat the operation. On the other hand, when the length cnt_LR of the continuous sequence does not occur at least 17 and all bits 2500 are input, the long-run test may replace the result value LR_result with 0 and output the result.
  • the result LR-result of 0 may mean that the randomness is good
  • the result LR-result of 1 may mean that the randomness is poor.
  • FIG. 11 is a block diagram of a random test module according to an exemplary embodiment.
  • a first bit sequence i_load may be input to the random test module 1100.
  • the first bit sequence i_load may be input in units of 1 bit.
  • the second test sequence i_data may be input to the random test module 110.
  • the second bit sequence i_data may be input in units of 4 bits.
  • the first bit sequence i_load may inform the random test module 1100 when a second bit sequence i_data is input.
  • the random test module 1100 may apply a mono test, a poker test, a run test, and a long-run test to at least one of the first bit sequence i_load and the second bit sequence i_data.
  • the random test module 1100 may output a mono test result o_mono, a poker test result o_poker, a run test result o_run, and a long-run test result o_lr. Test results can be displayed via four pins at the end of the test.
  • the apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components.
  • the devices and components described in the embodiments may be, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable arrays (FPAs), It may be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions.
  • the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
  • the processing device may also access, store, manipulate, process, and generate data in response to the execution of the software.
  • OS operating system
  • the processing device may also access, store, manipulate, process, and generate data in response to the execution of the software.
  • processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include.
  • the processing device may include a plurality of processors or one processor and one controller.
  • other processing configurations are possible, such as parallel processors.
  • the software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device.
  • Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted.
  • the software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner.
  • Software and data may be stored on one or more computer readable recording media.
  • the method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • the program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

랜덤성 테스트 장치가 개시된다. 일 실시 예에 의한 랜덤성 테스트 장치는, PUF(Physically Unclonable Function) 기반 하드웨어에 대하여 랜덤성 테스트를 수행하는 랜덤성 테스트 모듈 및 상기 랜덤성 테스트 수행 결과에 기초하여 상기 PUF 기반 하드웨어의 불량 여부를 결정하는 처리 장치를 포함한다.

Description

랜덤성 테스트 장치 및 방법
본 개시는 랜덤성 테스트 장치 및 방법에 관련된 것으로, 더욱 상세하게는 PUF(Physical Unclonable Function) 기반 하드웨어가 가지는 랜덤성을 테스트하는 랜덤성 테스트 장치 및 방법에 관련된 것이다.
정보화 사회가 고도화 됨에 따라 개인 프라이버시 보호의 필요성도 높아지고 있으며, 이와 함께 정보를 암호화 및 복호화하여 안전하게 전송하는 보안 시스템을 구축하는 기술이 반드시 필요한 중요 기술로 자리잡고 있다.
고도화된 정보화 사회에서는 다양한 기기들이 전자화됨에 따라 고성능의 컴퓨터 형태를 벗어난 임베디드 시스템(Embedded System)이나 SoC(System on Chip) 형태의 컴퓨팅 디바이스도 사용이 급속하게 늘어나고 있다. 예를 들면, RFID(Radio-Frequency IDentification), 스마트 카드(Smart Card), USIM(Universal Subscriber Identity Module), OTP(One Time Password) 등의 컴퓨팅 디바이스가 광범위하게 활용되고 있다.
이러한 컴퓨팅 디바이스의 안전한 사용을 위해서는 보안 시스템 구축이 필수적으로 요구되며, 보안 시스템을 통해 암호화 및 복호화 알고리즘을 이용하여 중요 정보를 보호하거나 식별 및 인증 기능을 이용하여 접근권한을 부여하는 등의 보안 기능을 수행할 수 있다. 이러한 보안 기능을 수행하는 과정에서는 암호키(Cryptographic-key)나 고유의 아이디가 사용되는 데, 이는 보안 시스템의 필수 요소이며, 이하에서는 암호키(Cryptographic-key)나 고유의 아이디를 식별키로 언급한다. 이러한 식별키를 생성하는 방법으로는 외부에서 암호학적으로 안전한 PRN(Pseudo Random Number)를 외부에서 생성하여 플래시 메모리(Flash Memory)나 이이피롬(EEPROM, Electrically Erasable Programmable Read-Only Memory, EEPROM) 등의 비휘발성 메모리에 저장하는 방법이 주로 사용되고 있다.
최근에는 컴퓨팅 디바이스에 저장된 식별키에 대하여, 부채널 공격(side channel attack), 역공학(reverse engineering) 공격 등의 다양한 공격이 이루어지고 있는 추세이다. 이런 공격에 대하여 안전하게 식별키를 생성 및 저장할 수 있는 방법 중 하나로 PUF(Physical Unclonable Function) 기술이 개발되고 있다.
PUF(Physically Unclonable Function)는 전자시스템에 존재하는 미세한 물리적 특성 차이를 이용하여 식별키를 생성하고, 변하지 않도록 유지 또는 저장하기 위한 기술로서 하드웨어 핑거프린트(hardware fingerprint)라고도 한다.
PUF를 식별키로 사용하기 위한 한 가지 필요조건으로, 생성된 식별키의 랜덤성이 충분히 확보되어야 한다. 랜덤성이 충분히 확보된 PUF 기반 하드웨어는 양품으로 판정될 수 있으나, 랜덤성이 낮은 PUF 기반 하드웨어는 PUF 값의 낮은 랜덤성으로 인하여 PUF 기반 식별키가 추측될 수 있으므로 불량품으로 판정되어야 한다. 하지만, 종래에는 이와 같은 판정 방법에 대하여 개시된 바가 없으며, PUF 기반 하드웨어가 충분한 랜덤성을 가지는지 여부를 판단할 수 있는 랜덤성 테스트 장치 및 방법의 개발이 요청된다. 또한, 랜덤성 검증을 위해서는 많은 비트의 데이터가 필요한데 PUF 기반 하드웨어는 한정적인 데이터만 생성하는 문제점이 있다.
한편, 반도체 공정상에서 만들어진 모든 회로는 결함(defect)에 의하여 불량품이 발생할 수 있기 때문에, 양품인지 불량인지를 판단하는 테스팅 과정이 요구된다. 다만, PUF 기반 하드웨어는 랜덤값을 생성하므로, 기존의 테스팅 과정으로는 PUF 기반 하드웨어의 불량여부를 판단할 수 없다.
즉, PUF 기반 하드웨어에 대하여 불량 여부와 랜덤성을 테스팅하는 방법의 개발이 요청되는 실정이다.
본 개시는 상술한 개발 요청에 응답하여 안출된 것으로, 본 개시는 PUF 기반 하드웨어의 불량 여부와 PUF 기반 하드웨어가 가지는 랜덤성을 테스트하는 랜덤성 테스트 장치 및 방법을 제공한다.
일 실시 예에 의한 랜덤성 테스트 장치는, PUF(Physically Unclonable Function) 기반 하드웨어에 대하여 랜덤성 테스트를 수행하는 랜덤성 테스트 모듈 및 상기 랜덤성 테스트 수행 결과에 기초하여 상기 PUF 기반 하드웨어의 불량 여부를 결정하는 처리 장치를 포함할 수 있다.
상기 랜덤성 테스트 모듈이 수행하는 테스트 방법은 모노 테스트(mono test)일 수 있다.
이 경우, 상기 테스트 모듈은 상기 PUF 기반 하드웨어가 출력하는 값에 대하여 1과 0의 균등성을 테스트한다.
균등성을 테스트하기 위한 방법으로, 상기 PUF 기반 하드웨어로부터 N 비트의 출력값을 입력 받아 그 중 1인 비트의 개수 또는 0인 비트의 개수를 카운팅하고, 그 값이 N 값에 따라 미리 지정된 제 1 범위를 만족시킬 경우 상기 PUF 기반 하드웨어가 양품인 것으로 판단하는 방법이 사용될 수 있다.
상기 랜덤성 테스트 모듈이 수행하는 테스트 방법은 포커 테스트(poker test)일 수 있다.
이 경우, 상기 테스트 모듈은 상기 PUF 기반 하드웨어가 출력하는 값의 패턴에 대하여 균등성을 테스트한다.
패턴의 균등성을 테스트하기 위한 방법으로, 상기 PUF 기반 하드웨어로부터 받은 N 비트의 출력값을 4비트씩 분리하였을 때, 4 비트가 가질 수 있는 값인 0 내지 15에 대하여 각각의 빈도를 카운팅한 결과가 N에 따라 미리 지정된 제 2 범위를 만족시킬 경우 상기 PUF 기반 하드웨어가 양품인 것으로 판단하는 방법이 사용될 수 있다.
상기 랜덤성 테스트 모듈이 수행하는 테스트 방법은 런 테스트(run test)일 수 있다.
여기서 런(run)은 동일한 값으로 연속된 비트 시퀀스를 의미하며, 연속 시퀀스로 명명될 수 있다.
이 경우, 상기 테스트 모듈은 상기 PUF 기반 하드웨어가 출력하는 값의 연속 시퀀스의 개수가 적절한지에 대한 테스트를 수행한다.
연속 시퀀스의 개수의 적절성을 테스트하기 위한 방법으로, 상기 PUF 기반 하드웨어로부터 받은 N 비트의 출력값을 1 비트씩 연속으로 관찰하였을 때 그 값이 변화하는 빈도가 N에 따라 미리 지정된 제 3 범위를 만족시킬 경우 상기 PUF 기반 하드웨어가 양품인 것으로 판단하는 방법이 사용될 수 있다.
상기 랜덤성 테스트 모듈이 수행하는 테스트 방법은 롱-런 테스트(long run test)일 수 있다.
이 경우, 상기 테스트 모듈은 상기 PUF 기반 하드웨어가 출력하는 값 중 너무 긴 런인 롱 런(long-run)이 존재하지 않는지에 대한 테스트를 수행한다.
롱 런의 존재여부를 테스트하기 위한 방법으로, 상기 PUF 기반 하드웨어로부터 받은 N 비트의 출력값을 1 비트씩 연속으로 관찰하였을 때 동일한 값으로 연속되는 비트의 길이를 카운트하다가 그 길이 값이 N에 따라 미리 지정된 제 4 범위를 벗어나는 경우가 발생하면 상기 PUF 기반 하드웨어가 불량인 것으로 판단하는 방법이 사용될 수 있다.
이상과 같은 테스트 방법들은 테스트 모듈이 수행할 수 있는 테스트 방법의 예시로 상기 PUF 기반 하드웨어가 출력한 값에 대한 랜덤성을 테스트하기 위하여 상기 테스트 방법 중 일부가 다른 방식이 랜덤 테스트로 변경되거나 추가로 더 포함될 수 있다.
다른 실시 예에 의한 랜덤성 테스트 방법은, PUF(Physically Unclonable Function) 기반 하드웨어에 대하여 랜덤성 테스트를 수행하는 단계 및 상기 랜덤성 테스트 수행 결과에 기초하여 상기 PUF 기반 하드웨어의 불량 여부를 결정하는 단계를 포함할 수 있다.
또 다른 실시 예에 의한 랜덤성 테스트 방법은, 제 1 출력값 또는 제 2 출력값을 출력하는 PUF(Physically Unclonable Function) 기반 하드웨어로부터, 상기 제 1 출력값 및 상기 제 2 출력값 중 적어도 하나로 구성되는 비트 시퀀스를 입력받는 단계, 상기 비트 시퀀스에 대하여 랜덤성 테스트를 수행하는 단계 및 상기 랜덤성 테스트 수행 결과에 기초하여 상기 PUF 기반 하드웨어의 불량 여부를 결정하는 단계를 포함할 수 있다.
또 다른 실시 예는, 상술한 랜덤성 테스트 방법을 수록한 컴퓨터 판독 가능 기록 매체일 수 있다.
본 개시의 다양한 실시 예들에 의하여, PUF 기반 하드웨어의 랜덤성을 테스트할 수 있는 랜덤성 테스트 장치 및 방법이 제공된다. 특히, 다양한 실시 예들은 통계적 방법에 기초하여 랜덤성 테스트를 수행함으로써, PUF 기반 하드웨어의 출력값이 외부로 노출되지 않아 보안성이 증대될 수 있다.
뿐만 아니라, PUF 기반 하드웨어의 출력값에 대하여 간단한 통계적 방법의 랜덤성 테스트를 수행함에 따라서, 랜덤성 테스트 장치가 작은 연산량을 요구하는 장치로 구현될 수 있어, 비용적인 측면의 효과도 창출될 수 있다.
아울러, PUF 기반 하드웨어는 랜덤 디지털 값을 출력하기 때문에, 불량 여부를 기존의 방식으로 테스팅을 수행할 수 없었다. 또한, PUF 기반 하드웨어가 비록 양품으로 판정되더라도 랜덤성이 검증이 되지 않으면 암호시스템의 키 값으로 사용할 수 없다. 본 개시의 실시 예에 의하여, 랜덤성 검증 방법이 제작 시의 불량여부를 판단하는 방법으로 흡수될 수 있다. 즉, 하나의 랜덤성 테스트로 두 테스트의 효과가 창출될 수 있다. 특히, 종래의 테스팅 방법에 의하여 불량 여부를 판단할 수 없었던 PUF 기반 하드웨어에 대하여, 불량 여부를 판단할 수 있는 효과 또한 창출될 수 있다.
도 1은 식별키 생성 장치를 도시한다.
도 2는 식별키 생성부의 구성을 설명하기 위한 개념도이다.
도 3은 본 발명의 일실시예에 따른 식별키 생성부(110)가 식별키를 생성하기 위해 반도체 레이어에 형성된 비아 또는 콘택 어레이의 예시적 구조를 도시하는 개념도이다.
도 4a 내지 4c는 다양한 실시 예들에 의한 랜덤성 테스트 장치를 설명하기 위한 블록도들이다.
도 5는 일 실시 예에 의한 랜덤성 테스트 모듈의 블록도이다.
도 6은 일 실시 예에 의한 랜덤성 테스트 방법의 흐름도이다.
도 7은 일 실시 예에 의한 모노 테스트의 흐름도이다.
도 8은 일 실시 예에 의한 포커 테스트의 흐름도이다.
도 9는 일 실시 예에 의한 런 테스트의 흐름도이다.
도 10은 일 실시 예에 의한 롱-런 테스트의 흐름도이다.
도 11은 일 실시 예에 의한 랜덤 테스트 모듈의 블록도이다.
이하에서, 본 발명의 일부 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
우선, 도 1 내지 도 3에서는 PUF 기반 하드웨어에 대하여 설명하도록 하며, 이후에 PUF 기반 하드웨어에 대한 랜덤성 테스트의 장치 및 방법에 대하여 기술하도록 한다.
도 1은 식별키 생성 장치(100)를 도시한다.
식별키 생성부(110)는, 반도체 공정을 이용하여 시간에 따라 변하지 않는 식별키를 생성하며, 생성된 식별키는 무작위적(random)이지만, 시간이 지나더라도 변하지는 않는다.
식별키 생성부(110)가 생성한 식별키는 이를 테면, N 비트(단 N은 자연수)의 디지털 값일 수 있다.
생성되는 식별키의 신뢰성에 있어서 가장 중요한 요소는, 생성된 식별키의 랜덤성 (또는, '무작위성'이라고도 할 수 있음) 과 시간에 따라 값이 변하지 않는 불변성이다.
식별키 생성부(110)는 반도체 제조 공정 상 생성되는 노드(node) 간의 단락(short) 여부가 랜덤성을 갖도록 구성되며, 또한 노드 간의 단락 여부는 시간에 따라 또는 사용 환경에 따라 변하지 않으므로 한 번 생성된 식별키는 변하지 않는다.
식별키 생성부(110)는 반도체 제조 공정 상 생성되는 전도성 레이어들(conductive layers) 사이에 형성되는 콘택 또는 비아(via)에 의해 전도성 레이어들의 단락 여부에 따라 식별키를 생성한다.
콘택 또는 비아는 전도성 레이어들 사이를 연결하도록 설계되는 것이어서, 통상적으로 콘택 또는 비아 사이즈는 전도성 레이어들 사이를 단락시키도록 결정된다. 그리고 통상적인 디자인 룰(rule)에서는 전도성 레이어들 사이를 단락시키는 것이 보장되도록 최소한의 콘택 또는 비아 사이즈가 정해져 있다.
그러나, 본 발명의 일실시예에 따른 식별키 생성부(110)의 구현에 있어서는, 콘택 또는 비아의 사이즈를 디자인 룰에서 정해진 것보다 의도적으로 작게 하여, 일부의 콘택 또는 비아는 전도성 레이어들 사이를 단락시키고, 다른 일부의 콘택 또는 비아는 전도성 레이어들 사이를 단락시키지 못하게 되며, 이러한 단락 여부는 확률적으로 결정된다.
기존의 반도체 공정에서는 콘택 또는 비아가 전도성 레이어들 사이를 단락시키지 못하면 공정 상 실패한 것이 되나, 이를 랜덤성을 갖는 식별키 생성에 이용하는 것이다.
상기 실시예에 따른 콘택 또는 비아의 사이즈 설정은 보다 상세히 후술한다.
한편, 본 발명의 다른 일실시예에 따르면, 식별키 생성부(110)는 반도체 제조 공정 상에서 전도성 라인들 간의 간격 (spacing)을 디자인 룰보다 의도적으로 작게 결정하여, 전도성 라인들 사이의 단락 여부가 확률적으로 결정되도록 하여, 랜덤성을 갖는 식별키를 생성한다.
이러한 실시예 또한, 종래의 반도체 제조 공정에서, 전도성 라인들 사이의 오픈을 보장하는 디자인 룰, 즉, 일정 수준 이상의 간격을 의도적으로 벗어나서, 무작위의 식별키를 생성하는 것이다.
식별키 생성부(110)는 상기한 실시예들에 따라 생성된 식별키를 전기적으로 생성한다. 전도성 레이어 사이를 콘택 또는 비아가 단락시키고 있는지, 또는 전도성 라인들 사이가 단락되고 있는지는, 리드 트랜지스터(read transistor)를 이용하여 식별할 수 있다.
한편, 상기한 콘택 또는 비아의 사이즈 조정을 이용하는 실시예에서, 콘택 또는 비아의 사이즈를 조정하여 전도성 레이어들 사이를 단락하는 콘택 또는 비아와 그렇지 못한 비아의 비율이 가급적 1/2로 동일한 확률을 가지도록 조정한다고 해도, 단락이 되는 경우(이를 테면 디지털 값 0)와 그렇지 않은 경우(이를 테면 디지털 값 1)의 비율이 확률적으로 완전히 동일한 것이 보장되지 않을 수도 있다.
즉, 콘택 또는 비아의 사이즈가 디자인 룰에서 정해진 값으로 커질수록 단락이 되는 확률이 커지고, 반대로 작아질수록 단락이 되지 않는 확률이 커지는데, 단락되는 경우와 단락되지 않는 경우의 확률, 어느 한 쪽이 커지게 되면, 생성된 식별키의 랜덤성이 저하된다.
이러한 문제는 상기한 전도성 라인 사이의 간격(spacing)을 조정하는 실시예에서도 마찬가지이다.
따라서 본 발명의 일실시예에 따르면, 식별키 생성 장치(100)는 식별키 생성부(110)가 생성한 식별키를 처리하여, 랜덤성이 보장되도록 하는 식별키 처리 장치(130)를 더 포함한다. 참고로, 본 명세서에서는 '식별키 처리 장치'라는 용어를 사용하지만, 이는 생성된 식별키를 별도의 기법이나 알고리즘을 통해 가공하는 것으로 한정되어 해석되어서는 안 되며, 생성된 식별키의 랜덤성을 보장하기 위해 0과 1 사이의 밸런싱(balancing)을 수행하는 일련의 구성을 의미하는 것으로 이해되어야 한다.
도 2는 식별키 생성부의 구성을 설명하기 위한 개념도이다.
반도체 제조 공정에서 메탈 1 레이어(202)와 메탈 2 레이어(201) 사이에 비아들이 형성된 모습의 도시되었다.
비아 사이즈를 디자인 룰에 따라 충분히 크게 한 그룹(210)에서는 모든 비아가 메탈 1 레이어(202)와 메탈 2 레이어(201)을 단락시키고 있으며, 단락 여부를 디지털 값으로 표현하면 모두 0이 된다.
한편, 비아 사이즈를 너무 작게 한 그룹(230)에서는 모든 비아가 메탈 1 레이어(202)와 메탈 2 레이어(201)을 단락시키지 못하고 있다. 따라서 단락 여부를 디지털 값으로 표현하면 모두 1이 된다.
그리고, 비아 사이즈를 그룹(210)과 그룹(230) 사이로 한 그룹(220)에서는, 일부의 비아는 메탈 1 레이어(202)와 메탈 2 레이어(201)을 단락시키고, 다른 일부의 비아는 메탈 1 레이어(202)와 메탈 2 레이어(201)을 단락시키지 못하고 있다.
본 발명의 일실시예에 따른 식별키 생성부(110)는, 그룹(220)와 같이, 일부의 비아는 메탈 1 레이어(202)와 메탈 2 레이어(201)을 단락시키고, 다른 일부의 비아는 메탈 1 레이어(202)와 메탈 2 레이어(201)을 단락시키지 못하도록 비아 사이즈를 설정하여 구성된다.
비아 사이즈에 대한 디자인 룰은 반도체 제조 공정에 따라 상이한데, 이를테면 0.18 마이크로미터 공정의 CMOS(Complementary metal oxide semiconductor) 공정에서 비아의 디자인 룰이 0.25 미크론으로 설정된다고 하면, 상기 본 발명의 일실시예에 따른 식별키 생성부(110)에서 비아 사이즈를 0.19 미크론으로 설정하여, 메탈 레이어들 사이의 단락 여부가 확률적으로 분포하도록 한다.
이러한 단락 여부의 확률 분포는 50%의 단락 확률을 갖도록 하는 것이 이상적이며, 본 발명의 일실시예에 따른 식별키 생성부(110)는 상기 확률 분포가 최대한 50%에 가깝게 비아 사이즈를 설정하여 구성된다. 이러한 비아 사이즈 설정에서는 공정에 따른 실험에 의하여 비아 사이즈를 결정할 수 있다.
도 3은 본 발명의 일실시예에 따른 식별키 생성부(110)가 식별키를 생성하기 위해 반도체 레이어에 형성된 비아 또는 콘택 어레이의 예시적 구조를 도시하는 개념도이다.
반도체 기판(substrate)에 적층된 메탈 레이어 사이에 가로 M개, 세로 N 개(단, M 및 N은 자연수), 총 M*N 개의 비아가 형성된 모습이 도시되었다.
식별키 생성부(110)는 M*N 개의 비아들 각각이 메탈 레이어들 사이를 단락시키는지(디지털 값 0) 또는 단락시키지 못하는지(디지털 값 1)의 여부에 따라, M*N 비트(bit)의 식별키를 생성한다.
그리고, 이렇게 생성된 M*N 비트의 식별키는 식별키 독출부(120)에 의해 독출된다.
한편, 상술한 PUF 기반의 하드웨어에 있어서 고도의 랜덤성이 요구된다. 이상적으로는 0의 값이 출력될 확률과 1의 값이 출력될 확률이 1/2로 동일하도록 하는 랜덤성이 요구된다. 즉, 상술한 M*N 비트에 있어서 0의 값이 M*N/2 개이며, 1의 값이 M*N/2 개가 되는 고도의 랜덤성을 가질수록 양호한 PUF 기반 하드웨어로 분류될 수 있다.
이에 따라, 하기에서는 기 제작된 PUF 기반의 하드웨어에 대하여 랜덤성 테스트를 수행할 수 있는 랜덤성 테스트 장치 및 방법이 제공된다. 한편, 상술한 비아에 기초하는 PUF 기반 하드웨어는 단순히 예시적인 것으로, PUF의 종류에는 제한이 없다. 예를 들어, 실시 예에 의한 랜덤성 테스트는 출원된 10-2010-0125633, 10-2011-0013269, 10-2011-0029429, 10-2012-0033362, 10-2009-0035416, 10-2012-0089227, 10-2011-0077271, 10-2009-0096085, 10-2010-0039857, 10-2007-0122914, 10-2012-0091197, 10-2013-0129262, 10-2013-0029616, 10-2013-0043954, 10-2013-0101893, 10-2013-0168530, 10-2013-0168558, 10-2013-0088696, 10-2013-0103939, 2011-0029430, 10-2013-0105385, 10-2013-0105470, 10-2013-0107217, 10-2013-0107304, 10-2013-0116424, 10-2013-0120297, 10-2013-0120141, 10-2013-0120043, 10-2014-0042360, 10-2014-0042362, 10-2014-0046021에 따른 PUF 기반 하드웨어에 대하여서도 테스트를 수행할 수 있음은 자명하다.
한편, 상술한 바와 같이, PUF 기반 하드웨어는 랜덤한 출력값을 출력하기 때문에, 기존의 테스팅 방법으로 불량 테스트를 수행할 수 없다. 또한, PUF 기반 하드웨어는 랜덤성이 소정의 수준으로 획득되어야 하기 때문에, 출력값이 랜덤한지 여부를 파악할 수 있는 방법 또한 요구된다. 이하에서는, 랜덤성 테스트를 통하여, PUF 기반 하드웨어의 불량 테스트와 랜덤성을 동시에 테스팅하는 방법에 대하여 더욱 상세하게 설명하도록 한다.
도 4a 내지 4c는 다양한 실시 예들에 의한 랜덤성 테스트 장치를 설명하기 위한 블록도들이다.
우선, 도 4a를 참조하면 랜덤성 테스트 장치(400)는 PUF 생성부(410) 및 랜덤성 테스트 모듈(420)을 포함할 수 있다.
PUF 생성부(410)는 PUF 기반 하드웨어로부터의 출력값을 생성할 수 있다. 예를 들어, PUF 생성부(410)는 제 1 출력값(예를 들어, 1의 값) 또는 제 2 출력값(예를 들어, 0의 값)을 출력할 수 있다. 여기에서, 제 1 출력값을 1의 값으로 설명하였지만, 제 1 출력값이 0이고 제 2 출력값이 1인 경우도 상정할 수 있다. PUF 생성부(410)는, 예를 들어 N개(N은 자연수)의 출력값을 생성할 수 있다. 출력값은 0의 값 및 1의 값 중 적어도 하나로 구성될 수 있으며, 이에 따라 출력값을 비트 시퀀스로 명명될 수도 있다. 비트 시퀀스는, 예를 들어 1비트 단위 또는 4비트 단위로 관리될 수 있으며, 이에 대하여서는 더욱 상세하게 후술하도록 한다. 여기에서, 1비트 단위 또는 4비트 단위로 관리된다는 것은, 랜덤성 테스트 모듈(420)이 1비트 단위 또는 4비트 단위로 비트 시퀀스를 수신할 수 있음을 의미할 수 있다. 또는, 1비트 단위 또는 4비트 단위로 관리된다는 것은, 랜덤성 테스트 모듈(420)이 임의의 비트 단위로 비트 시퀀스를 수신하고, 1비트 또는 4비트 단위로 랜덤성 테스트를 수행함을 의미할 수 있다. 즉, 랜덤성 테스트 모듈(420)은 수신된 비트 시퀀스의 크기와 관계 없이, 랜덤성 테스트를 1비트 또는 4비트의 단위로 수행할 수 있다. 이 경우, 예를 들어 랜덤성 테스트 모듈(420)은 대상 비트를 모두 수신한 후, 랜덤성 테스트를 1비트 또는 4비트의 단위로 수행할 수도 있다.
PUF 생성부(410)는 PUF 기반 하드웨어로 구현될 수 있다. PUF 생성부(410)가 PUF 기반 하드웨어로 구현되는 경우에는, PUF 생성부(410)는 랜덤성 테스트 장치(400)에 필수적으로 구비되는 것은 아닐 수도 있으며, 테스트 시 입출이 가능하도록 구현될 수 있다. 또는, PUF 생성부(410)는 랜덤성 테스트 장치(400)와 일체형으로 구현될 수도 있다.
또 다른 실시 예에서, PUF 생성부(410)는 PUF 기반 하드웨어로부터 출력값, 즉 비트 시퀀스를 수신하는 인터페이스로 구현될 수도 있다. PUF 생성부(410)가 인터페이스로 구현되는 경우에는, PUF 생성부(410)는 외부의 PUF 기반 하드웨어와 연결되어, PUF 기반 하드웨어로부터 출력값을 수신하여 랜덤성 테스트 모듈(420)로 출력할 수 있다. 이 경우, PUF 생성부(410)는 단순히 테스트 결과만을 출력함으로써, PUF 기반 하드웨어로부터의 출력값이 노출되지 않도록 할 수 있다.
랜덤성 테스트 모듈(420)은 PUF 기반 하드웨어에 대하여 랜덤성 테스트를 수행할 수 있다. 랜덤성 테스트 모듈(420)은 PUF 생성부(410)로부터 PUF 기반 하드웨어로부터의 출력값, 예를 들어 비트 시퀀스를 수신할 수 있다. 랜덤성 테스트 모듈(420)은 수신된 PUF 기반 하드웨어로부터의 출력값에 대한 랜덤성 테스트를 수행할 수 있다. 예를 들어, 랜덤성 테스트 모듈(420)은 비트 시퀀스 내에 0과 1의 분포가 랜덤성을 가지는 지를 테스트할 수 있다.
랜덤성 테스트 모듈(420)은 출력값, 즉 비트 시퀀스를 이용하여 모노 테스트(mono test), 포커 테스트(poker test), 런 테스트(run test) 및 롱-런 테스트(long-run test) 중 적어도 하나를 수행할 수 있다. 각각의 랜덤성 테스트에 대하여서는 더욱 상세하게 후술하도록 한다.
처리 장치(미도시)는 랜덤성 테스트 결과에 기초하여 PUF 기반 하드웨어의 불량 여부를 결정할 수 있다. 처리 장치(미도시)는 PUF 기반 하드웨어의 랜덤성이 기설정된 수준 이상인 경우에는, PUF 기반 하드웨어가 양품인 것으로 판단할 수 있다. 예를 들어, 랜덤성 테스트 모듈(420)이 모노 테스트를 수행하면, 처리 장치(미도시)는 1의 값이 개수가 기설정된 범위 내인 경우에는 PUF 기반 하드웨어가 양품인 것으로 판단할 수 있다. 처리 장치(미도시)는 1의 값의 개수가 기설정된 범위 밖인 경우에는 PUF 기반 하드웨어가 불량인 것으로 판단할 수 있다. 처리 장치(미도시)는 상술한 4가지의 랜덤성 테스트 중 적어도 하나의 결과에 기초하여 PUF 기반 하드웨어의 불량 여부를 판단할 수 있다. 처리 장치(미도시)는 상술한 다양한 랜덤성 테스트에 대하여 가중치를 부여하여 불량 여부를 판단할 수도 있다.
처리 장치(미도시)는 랜덤성 테스트 장치(400)의 외부에 배치될 수도 있으며, 또는 랜덤성 테스트 모듈(420)과 하나의 하드웨어로 결합되어 구현될 수도 있다.
도 4b는 다른 실시 예에 의한 랜덤성 테스트 장치의 블록도이다. 도 4b에 의한 실시 예는, 도 4a에 의한 실시 예와 비교하여 보정 회로(415)를 더 포함할 수 있다. 보정 회로(415)는 PUF 생성부(410)로부터의 출력값에 보정을 수행하여 랜덤성 테스트 모듈(420)로 전달할 수 있다.
도 4c는 또 다른 실시 예에 의한 랜덤성 테스트 장치의 블록도이다. 도 4c에 의한 실시 예에서는 랜덤성 테스트 모듈(420)이 PUF 생성부(410)와는 물리적으로 분리되어 구현될 수도 있다는 점을 명확히 한 것이다.
도 5는 일 실시 예에 의한 랜덤성 테스트 모듈의 블록도이다.
도 5에 도시된 바와 같이, 일 실시 예에 의한 랜덤성 테스트 모듈(420)은 모노 테스트 모듈(421), 포커 테스트 모듈(422), 런 테스트 모듈(423) 및 롱-런 테스트 모듈(424)을 포함할 수 있다. 모노 테스트 모듈(421), 포커 테스트 모듈(422), 런 테스트 모듈(423) 및 롱-런 테스트 모듈(424) 각각은 입력되는 PUF 기반 하드웨어로부터의 출력값에 기초하여 랜덤성 테스트를 수행할 수 있다.
모노 테스트는, 비트 시퀀스 내에서 0과 1의 개수에 대한 균등성을 판단함으로써 랜덤성을 테스트할 수 있다. 모노 테스트는, 비트 시퀀스를 1비트의 단위로 각 비트의 값을 관찰하여 1과 0의 개수에 대한 균등성을 판단할 수 있다.
포커 테스트는, 비트 시퀀스를 4비트 단위로 각각 분리하였을 때 각 4비트로 표현되는 0 내지 15의 빈도수가 균등한지를 판단함으로써 랜덤성을 테스트할 수 있다.
런 테스트는 비트 시퀀스 내의 0 또는 1의 연속성을 판단함으로써 랜덤성을 테스트할 수 있다. 런 테스트는 비트 시퀀스 내의 연속 시퀀스의 개수를 확인하고, 확인된 연속 시퀀스의 개수에 기초하여 랜덤성을 테스트할 수 있다.
롱-런 테스트는 비트 시퀀스 내의 0 또는 1의 연속성을 판단함으로써 랜덤성을 테스트할 수 있다. 롱-런 테스트는, 기설정된 임계치 이상을 넘어가는 길이의 연속 시퀀스가 존재하는지 여부에 따라 랜덤성을 테스트할 수 있다.
상기의 랜덤성 테스트는 각각 병렬로 수행될 수 있으며, 테스트 결과를 출력할 수 있다. 모노 테스트 모듈(421), 포커 테스트 모듈(422), 런 테스트 모듈(423) 및 롱-런 테스트 모듈(424)은 결과값을 1 또는 0으로 출력할 수 있다. 여기에서, "1"은 아직 랜덤성 테스트 중이거나 랜덤성 테스트 결과가 실패임을 의미하며, "0"은 랜덤성 테스트를 통과한 것을 의미할 수 있다.
한편, 상술한 4 가지 종류의 랜덤성 테스트 방법은 단순히 예시적인 것으로, 표준화된 다른 종류의 랜덤성 테스트로 치환하여 설계될 수 있음을 당업자는 용이하게 이해할 수 있을 것이다. 더욱 상세하게, 4 가지 종류의 랜덤성 테스트 방법의 일부 또는 전부가 표준화된 다른 종류의 랜덤성 테스트로 치환될 수 있다. 아울러, 본원의 권리범위는 랜덤성 종류에 의하여 제한되지 않음 또한 당업자는 이해할 것이다.
도 6은 일 실시 예에 의한 랜덤성 테스트 방법의 흐름도이다. 도 6의 실시 예는, 예를 들어 모노 테스트의 흐름도일 수 있다.
단계 610에서, 랜덤성 테스트 방법은 PUF 기반 하드웨어로부터의 출력값, 즉 디지털 값을 읽을 수 있다. 상술한 바와 같이, 출력값은 0 및 1 중 적어도 하나로 구성되는 비트 시퀀스일 수 있다. 본 실시 예에서 비트 시퀀스의 크기는 2500 비트인 것을 상정하도록 한다. 이에 따라, 완벽한 랜덤성을 가지는 PUF 기반 하드웨어로부터의 비트 시퀀스는 1250개의 1과 1250개의 0으로 구성될 수 있다.
단계 620에서, 랜덤성 테스트 방법은 비트 시퀀스 내의 제 1 출력값의 개수를 확인할 수 있다. 여기에서 제 1 출력값은 1 또는 0일 수 있다.
단계 630에서, 랜덤성 테스트 방법은 제 1 출력값의 개수가 기설정된 범위 내에 존재하는지를 판단할 수 있다. 상술한 바와 같이 완벽한 랜덤성을 가지는 PUF 기반 하드웨어로부터의 비트 시퀀스는 1250개의 제 1 값을 가질 수 있다. 하지만, 완벽한 랜덤성에 대하여 편차를 가지는 범위 또한 랜덤성을 가지는 것으로 처리할 수 있다. 일 실시 예에 의한 랜덤성 테스트 방법은, 상기의 편차를 64로 설정할 수 있다. 이 경우, 랜덤성 통과에 대한 기설정된 범위는 1185 초과 1315 미만일 수 있다. 더욱 상세한 기설정된 범위에 속하는지 여부에 대한 판단은 더욱 상세하게 후술하도록 한다.
단계 640에서, 랜덤성 테스트 방법은 제 1 값의 개수가 기설정된 범위 내에 있는 경우, PUF 기반 하드웨어를 양품으로 판단할 수 있다. 단계 650에서, 랜덤성 테스트 방법은 제 1 값의 개수가 상기 기설정된 범위 외에 있는 경우, PUF 기반 하드웨어가 불량한 것으로 판단할 수 있다.
도 7은 모노 테스트의 흐름도이다. 도 7의 실시 예에서, 모노 테스트는 PUF 기반 하드웨어로부터 2500 비트 크기의 비트 시퀀스를 수신하고, 비트 시퀀스의 랜덤성을 테스트하는 것을 상정하도록 한다.
단계 705에서, 모노 테스트는 제 1 값의 개수(cnt_1)의 초기 값을 -1250으로 설정할 수 있다. 이는 추후에 다시 설명할 것으로 런 테스트의 용이성을 위한 것이다. 한편, 모노 테스트는 모노 테스트 결과값(Mono_result)을 1로 설정할 수 있다.
단계 710에서, 모노 테스느는 입력되는 비트가 제 1 값인지 여부를 판단할 수 있다. 본 실시 예에서 제 1 값은 1로 상정하도록 한다.
단계 715에서, 모노 테스트는 입력되는 비트가 제 1 값인 경우에는 제 1 값의 개수(cnt_1)를 1만큼 증가시킨다. 단계 720에서, 모노 테스트는 입력되는 비트가 제 2 값인 경우에는 제 1 값의 개수(cnt_1)를 그대로 유지한다.
단계 720에서, 모노 테스트는 모든 비트에 대하여 단계 710 내지 715가 수행되는지 여부를 판단할 수 있다. 모든 비트에 대하여 수행되지 않은 경우에는, 모노 테스트는 다음 비트에 대하여 단계 710 내지 715를 수행할 수 있다. 모든 비트에 대하여 수행된 경우에는, 단계 725에서 모노 테스트는 제 1 값의 개수(cnt_1)가 음수인지를 판단할 수 있다.
단계 730에서, 제 1 값의 개수(cnt_1)가 음수라면, 제 1 값의 개수(cnt_1)를 양수로 치환할 수 있다. 단계 735에서, 모노 테스트는 제 1 값의 개수(cnt_1)가 64보다 큰지를 판단할 수 있다.
제 1 값의 개수(cnt_1)가 64보다 큰 경우에는, 모노 테스트 결과값(Mono_result)을 1로 유지하여 출력할 수 있다. 여기에서, 모노 테스트 결과값(Mono_result)가 1인 것은 랜덤성이 불량함을 의미할 수 있다. 한편, 제 1 값의 개수(cnt_1)가 64보다 작거나 같은 경우에는, 모노 테스트 결과값(Mono_result)을 0으로 치환하여 출력할 수 있다. 여기에서, 모노 테스트 결과값(Mono_result)가 0인 것은 랜덤성이 양호함을 의미할 수 있다.
도 8은 포커 테스트의 흐름도이다. 도 8의 실시 예에서, 포커 테스트는 PUF 기반 하드웨어로부터 2500 비트 크기의 비트 시퀀스를 수신하고, 비트 시퀀스의 랜덤성을 테스트하는 것을 상정하도록 한다.
포커 테스트는 비트 시퀀스를 4 비트 단위로 구분하여 관리할 수 있다. 포커 테스트는 4 비트로 표현되는 0 내지 15의 빈도 수가 균등한 지를 테스트할 수 있다. 테스트 통과 조건은 수학식 1과 같다.
Figure PCTKR2014006897-appb-I000001
여기에서 f(i)는 각 4 비트 0000, 0001, 0010, ..., 1111의 빈도 수를 나타낼 수 있다. 한편, 수학식 1의 하드웨어 구현이 어려운 경우에는, 수학식 1을 수학식 1과 동치인 수학식 2로 변환하여 이용할 수 있다.
Figure PCTKR2014006897-appb-I000002
아울러, 수학식 2 내의 제곱의 연산의 하드웨어 구현이 어려운 경우에는, 제곱의 연산을 계차 수열로 치환한 수학식 3이 이용될 수 있다.
Figure PCTKR2014006897-appb-I000003
여기에서, k는 계산을 위한 자연수일 수 있다. 수학식 3으로 구현된 경우에는, 하드웨어 구현 시 제곱기 구현이 요구되지 않는다. 일 실시 예에 의한 포커 테스트는 총 합이 25695보다 커지면 f(i)의 계산을 중지하고 실패의 결과를 출력할 수 있다. 포커 테스트는 총 합이 24594보다 작지 않을 경우 결과를 성공으로 변환하여 출력할 수 있다. 상술한 과정을 도 8의 흐름도를 참조하여 더욱 상세하게 설명하도록 한다.
단계 805에서, 포커 테스트는 총 합을 0으로 설정하고, f(0) 내지 f(15)의 값을 모두 0으로 설정할 수 있다. 아울러, 포커 테스트는 결과값(Poker_result)의 초기값을 1로 설정할 수 있다.
단계 810에서, 포커 테스트는 크기가 4 비트인 서브 비트 시퀀스의 값을 판단할 수 있다. 서브 비트 시퀀스의 값에 따라서, 포커 테스트는 단계 815 내지 835로 진행할 수 있다. 예를 들어, 서브 비트 시퀀스의 값이 0인 경우에는, 포커 테스트는 단계 815에서 f(0)의 값을 1만큼 증가시키면서, 단계 820에서 총합의 크기를 f(0)*2+1 만큼 크도록 설정할 수 있다. 아울러, 서브 비트 시퀀스의 값이 1인 경우에는, 포커 테스트는 단계 825에서 f(1)의 값을 1만큼 증가시키면서, 단계 830에서 총합의 크기를 기존의 총합보다 f(1)*2+1 만큼 크도록 설정할 수 있다. 또한, 서브 비트 시퀀스의 값이 15인 경우에는, 포커 테스트는 단계 835에서 f(1)의 값을 1만큼 증가시키면서, 단계 840에서 총합의 크기를 기존의 총합보다 f(15)*2+1 만큼 크도록 설정할 수 있다.
한편, 서브 비트 시퀀스의 값이 2 내지 14인 경우에도 유사한 절차가 수행됨을 당업자는 용이하게 이해할 수 있을 것이다.
단계 845에서, 총합이 25695보다 큰지 여부를 판단할 수 있다. 총합이 25695보다 큰 경우에는, 포커 테스트는 단계 850에서 2500 비트에 대하여 모두 수행하였는지를 판단하여 테스트를 종료할 수 있다. 총합이 25695보다 작거나 같은 경우에는, 포커 테스트는 단계 855에서 2500 비트에 대하여 모두 수행하였는지를 판단할 수 있다. 모두 수행되지 않은 것으로 판단되면, 포커 테스트는 810 단계로 회귀하여 다음 서브 시퀀스에 대하여 테스트를 반복할 수 있다. 모두 수행된 것으로 판단되면, 포커 테스트는 860 단계에서 총합이 24594보다 작은지를 판단할 수 있다. 총합이 24594보다 크거나 같은 경우에는, 포커 테스트는 단계 865에서 결과값(Mono_result)을 0으로 치환하여 출력할 수 있다. 총합이 24594보다 작은 경우에는, 포커 테스트는 결과값(Mono_result)을 1로 유지하여 출력할 수 있다. 여기에서, 결과값(Mono_result)이 0인 것은 랜덤성이 양호한 것을 의미하며, 결과값(Mono_result)이 1인 것은 랜덤성이 불량한 것을 의미할 수 있다.
상술한 방식은 제곱의 연산 대신 계차 수열 연산을 택한 것으로, 이에 따라 연산 면적을 감소시키는 효과가 창출될 수 있다. 예를 들어, 제곱의 연산을 수행하기 위하여서는 f(i)의 크기가 8비트 이므로, 8*8 크기의 제곱 모듈 16개와 16*16 크기의 덧셈 모듈 15개가 요구된다. 상기의 계차 수열에 대하여서는 1개의 덧셈 모듈만이 요구됨에 따라 상술한 대면적의 연산이 요구되지 않는 효과가 창출된다.
아울러, 중간값을 파악할 수 있는 효과 또한 창출될 수 있다. 제곱 연산을 수행하는 경우에는, 특정 값이 비트 시퀀스 내에 특정 부분에 집중되어 포커 테스트의 결과가 조기에 실패로 파악될 수 있음에도 불구하고, 모든 f(i)를 카운팅하여야 총합을 구할 수 있는 비효율성이 존재한다. 계차 수열법에 기초한 경우에는, 계산 도중 중간 합을 파악할 수 있기 때문에, 실패가 조기에 파악될 수 있어 적응적인 랜덤성 테스트가 가능할 수 있다. 이에 따라 추가적인 전력 소모 방지 및 레지스터 크기 감소의 효과가 창출될 수 있다.
하기 표 1은 적응적인 랜덤성 테스트에 따른 레지스터 크기 및 덧셈 모듈 크기의 관계를 나타내는 표이다.
표 1
최대값 레지스터 크기(bit) 덧셈 모듈 크기(bit)
총합 f(i) 총합 f(i) 개수 총합 f(i)
최악의 경우 391250 625 19 각10, 총 160 179 19 각 10
계차수열을 이용 25695+160 160 15 각8, 총 128 143 15 각 8
하드웨어의 설계에서는 최악의 경우에 대한 대비가 요구될 수 있다. 최악의 경우는 4 비트의 서브 비트 시퀀스의 입력 패턴이 모두 0000인 경우일 수 있다. 이 경우에는, f(0)는 625, 총합은 391250이 된다. 하지만, 일 실시 예와 같은 계차수열을 이용한 방식에서는, 최악의 경우로 진입하기 이전에 미리 중간 합을 파악하여, 테스트 결과가 실패를 결정하고 랜덤성 테스트를 조기에 중단할 수 있다.
표 1에서와 같이, 최악의 경우에서 필요한 레지스터를 살펴보면, 총합은 391250을 저장할 수 있도록 19비트가 요구되고, 0 내지 15의 i에 대하여 각 f(i)는 625를 저장할 수 있도록 10비트가 요구되므로 총 19+10*16=179 비트가 요구된다.
이와는 대조적으로, 계차수열을 이용한 방식에서는 랜덤성 테스트를 지속하기 위한, 총합의 최대값인 25695보다 커지면 랜덤성 테스트를 중단한다. 이러한 조건 하에서, 상기와 같이 0000의 서브 비트 시퀀스가 계속 입력되는 경우에는, 동일한 패터이 160번 입력되는 경우 총합은 25600이고, 0000의 서브 비트 시퀀스가 한 번 더 입력되는 경우, 즉 f(0)이 161이 되면 총합은 25291이 되어 랜덤성 테스트가 중단될 수 있다. 이 경우, 총합 저장에 요구되는 비트는 15비트이며, f(i)는 161까지 저장하여야 하므로 8비트가 요구된다. 이에 따라, 요구되는 총 비트는 15+8*16= 143 비트로, 요구되는 연산 면적이 현격하게 감소함을 확인할 수 있다.
레지스터뿐만 아니라, 총합의 중간합을 계산하고 f(i)를 카운팅하기 위하여 덧셈 모듈이 요구되는데, 계차수열을 이용한 방식의 경우에는 기존 19비트 덧셈 모듈 1개, 10비트 덧셈 모듈 16개에서 15비트 덧셈 모듈 1개 8비트 덧셈 모듈 16개로 덧셈 모듈이 감소할 수 있다.
도 9는 일 실시 예에 의한 런 테스트의 흐름도이다. 도 9의 실시 예에서, 런 테스트는 PUF 기반 하드웨어로부터 2500 비트 크기의 비트 시퀀스를 수신하고, 비트 시퀀스의 랜덤성을 테스트하는 것을 상정하도록 한다. 런 테스트는 비트 시퀀스 내 연속 시퀀스의 개수가 충분한지 여부에 기초하여 랜덤성을 테스트할 수 있다. 예를 들어, 비트 시퀀스가 11000011101110010인 경우, 연속 시퀀스는 "11", "0000", "111", "0", "111", "00", "1", "0"으로, 연속 시퀀스의 개수는 8개일 수 있다. 연속 시퀀스의 개수가 적을수록 랜덤성은 저하되는 것이며, 연속 시퀀스의 개수가 많을수록 랜덤성이 증가하는 것으로 해석될 수 있으며, 런 테스트는 연속 시퀀스의 개수에 기초하여 랜덤성을 테스트할 수 있다.
런 테스트는 예를 들어, 연속 시퀀스의 개수가 기설정된 범위 내에 있는지 여부에 기초하여 랜덤성을 테스트할 수 있다. 예를 들어, 런 테스트는 수학식 4에 기초하여 랜덤성을 테스트할 수 있다.
Figure PCTKR2014006897-appb-I000004
여기에서, m은 5000p이며, b는 257.5828p, p는 q*(1-q), q는 제 1 값의 개수/2500일 수 있다. q는 예를 들어 모노 테스트 결과에 기초하여 설정될 수 있다. 한편, 런 테스트를 수행하는 경우에는 m 및 b를 파라미터로서 미리 계산하여 설정할 수 있다. m 및 b는 1의 개수가 1250일 때를 기준으로 대칭된 값을 가지므로, 이를 위하여 모노 테스트에서 |제1값의 개수-1250|이 계산될 수 있으며, 계산 결과는 표 2와 같다.
표 2
|제1값의 개수-1250| 0x00 ~0x15 0x16 ~0x1c 0x1d ~0x28 0x29 ~0x2d 0x2e ~0x35 0x36 ~0x3a 0x3b ~0x40
m-b 1186 1185 1184 1183
m+b 1314 1313 1312 1311
모노 테스트에서는, |제1값의 개수-1250| 값이 64보다 커지는 경우에 런 테스트의 결과가 무의미하여지므로, |제1값의 개수-1250|가 64보다 작거나 같은 경우에만 런 테스트가 수행되도록 설정될 수도 있다.
한편, 단계 905 내지 935, 단계 965는 모노 테스트 과정이며 이에 대하여서는 상술하였기 때문에 여기에서의 더 이상의 설명은 생략하도록 한다. 한편, 도시된 바와 같이, 런 테스트는 모노 테스트와 함께 수행될 수 있다. 런 테스트는 모노 테스트와 병렬적으로 수행될 수 있다.
단계 940에서, 런 테스트는 연속 시퀀스 개수(cnt_run)를 1로 설정할 수 있다. 런 테스트는 런 테스트 결과(Run_result)를 1로 설정할 수 있다. 런 테스트 결과(Run_result)가 1인 것은 랜덤성이 불량하는 것을 의미할 수 있다. 한편, 런 테스트 결과(Run_result)가 0인 것은 랜덤성이 양호한 것을 의미할 수 있다.
단계 945에서, 런 테스트는 사용한 신규 비트(new_bit)를 기존 비트(old_bit)로 치환시키고, 새로 입력된 비트를 신규 비트(new_bit)로 설정한다. 단계 950에서, 런 테스트는 신규 비트(new_bit) 및 기존 비트(old_bit)가 다른지 여부를 판단할 수 있다.
신규 비트(new_bit) 및 기존 비트(old_bit)가 다른 경우에는, 런 테스트는 단계955에서 연속 시퀀스 개수(cnt_run)의 개수를 1만큼 증가시킬 수 있다. 신규 비트(new_bit) 및 기존 비트(old_bit)가 동일한 것으로 판단되면, 런 테스트는 단계 960으로 진행하며, 모든 비트(2500)에 대하여 런 테스트가 수행된지 여부를 판단할 수 있다.
단계 970에서는, 런 테스트는 모노 테스트에서 계산한 비트 시퀀스 내 1의 개수(cnt_1)을 인덱스 값으로 하여 미리 계산된 파라미터 값으로부터 연속 시퀀스 개수의 최소값 및 최대값, 즉 기설정된 범위의 경계값을 읽을 수 있다. 단계 975에서, 런 테스트는 연속 시퀀스 개수(cnt_run)가 상기 최소값보다 작지 않고 최대값보다 크지 않은지 여부를 판단할 수 있다. 즉, 런 테스트는 기설정된 범위 내에 연속 시퀀스 개수(cnt_run)가 포함되는 지를 판단할 수 있다. 연속 시퀀스 개수(cnt_run)가 기설정된 범위 내에 포함된 것으로 판단되면, 단계 980에서 런 테스트는 결과값(Run_result)을 0으로 치환하여 출력할 수 있다. 연속 시퀀스 개수(cnt_run)가 기설정된 범위 내에 포함되지 않은 것으로 판단되면, 런 테스트는 결과값(Run_result)을 1로 유지하여 출력할 수 있다.
도 10은 일 실시 예에 의한 롱-런 테스트의 흐름도이다. 도 10의 실시 예에서, 롱-런 테스트는 PUF 기반 하드웨어로부터 2500 비트 크기의 비트 시퀀스를 수신하고, 비트 시퀀스의 랜덤성을 테스트하는 것을 상정하도록 한다.
롱-런 테스트는 비트 시퀀스 내의 연속 시퀀스의 길이가 기설정된 임계치 이상인 것이 있는지 여부를 판단함에 따라서 랜덤성을 테스트할 수 있다. 예를 들어, 롱-런 테스트는 연속 시퀀스의 길이가 17 이상인 것이 존재하는 경우, 랜덤성 테스트를 종료할 수 있다.
단계 1005에서, 롱-런 테스트는 연속 시퀀스의 길이(cnt_LR)를 1로 설정할 수 있다. 롱-런 테스트는 결과값(LR_result)을 1로 설정할 수 있다.
단계 1010에서, 롱-런 테스트는 사용한 신규 비트(new_bit)를 기존 비트(old_bit)로 치환시키고, 새로 입력된 비트를 신규 비트(new_bit)로 설정할 수 있다. 단계 1015에서, 롱-런 테스트는 신규 비트(new_bit) 및 기존 비트(old_bit)가 다른지 여부를 판단할 수 있다.
신규 비트(new_bit) 및 기존 비트(old_bit)가 다른 경우에는, 단계 1020에서 롱-런 테스트는 연속 시퀀스의 길이(cnt_LR)를 다시 1로 설정할 수 있다. 신규 비트(new_bit) 및 기존 비트(old_bit)가 동일한 경우에는, 단계 1025에서 롱-런 테스트는 연속 시퀀스의 길이(cnt_LR)를 1만큼 증가시킬 수 있다.
단계 1030에서, 롱-런 테스트는 연속 시퀀스의 길이(cnt_LR)가 17과 동일한지 여부를 판단할 수 있다. 연속 시퀀스의 길이(cnt_LR)가 17과 동일한 경우, 바로 테스트를 종료한다. 연속 시퀀스의 길이(cnt_LR)가 17이 아닌 경우에는, 단계1040에서 롱-런 테스트는 모든 비트(2500)가 입력되는 지를 확인할 수 있다. 모든 비트(2500)가 입력되지 않은 경우에는, 롱-런 테스트는 다시 단계 1010으로 복귀하여 상기 작업을 반복할 수 있다. 한편, 연속 시퀀스의 길이(cnt_LR)가 17 이상인 경우가 발생하지 않고 모든 비트(2500)가 입력된 경우에는, 롱-런 테스트는 결과값(LR_result)을 0으로 치환하여 출력할 수 있다. 여기에서, 결과값(LR-result)이 0인 것은 랜덤성이 양호한 것을 의미하며, 결과값(LR-result)이 1인 것은 랜덤성이 불량한 것을 의미할 수 있다.
도 11은 일 실시 예에 의한 랜덤 테스트 모듈의 블록도이다.
도 11에 도시된 바와 같이 랜덤 테스트 모듈(1100)에는 제 1 비트 시퀀스(i_load)가 입력될 수 있다. 여기에서 제 1 비트 시퀀스(i_load)는 1비트 단위로 입력될 수 있다. 한편, 랜덤 테스트 모듈(110)에는 제 2 비트 시퀀스(i_data)가 입력될 수 있다. 여기에서 제 2 비트 시퀀스(i_data)는 4비트 단위로 입력될 수 있다. 제 1 비트 시퀀스(i_load)는 랜덤 테스트 모듈(1100)에 제 2 비트 시퀀스(i_data)가 입력되는 시점을 알려줄 수 있다.
랜덤 테스트 모듈(1100)은 제 1 비트 시퀀스(i_load) 및 제 2 비트 시퀀스(i_data) 중 적어도 하나에 모노 테스트, 포커 테스트, 런 테스트 및 롱-런 테스트를 적용할 수 있다. 랜덤 테스트 모듈(1100)은 모노 테스트 결과(o_mono), 포커 테스트 결과(o_poker), 런 테스트 결과(o_run) 및 롱-런 테스트 결과(o_lr)를 출력할 수 있다. 테스트 결과는 테스트 종료시 4개의 핀을 통하여 표시될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (21)

  1. PUF(Physically Unclonable Function) 기반 하드웨어에 대하여 랜덤성 테스트를 수행하는 랜덤성 테스트 모듈; 및
    상기 랜덤성 테스트 수행 결과에 기초하여 상기 PUF 기반 하드웨어의 불량 여부를 결정하는 처리 장치
    를 포함하는 랜덤성 테스트 장치.
  2. 제 1 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 PUF 기반 하드웨어에 대하여 모노 테스트(mono test)를 수행하는 랜덤성 테스트 장치.
  3. 제 2 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 PUF 기반 하드웨어의 1과 0의 분포의 균등성을 테스트하는 랜덤성 테스트 장치.
  4. 제 3 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 PUF 기반 하드웨어로부터 N 비트-상기 N은 자연수임-의 출력값을 입력 받아 그 중 0인 비트의 개수 또는 1인 비트의 개수를 카운팅하고, 카운팅된 값이 N 값 에 따라 미리 결정된 제 1 범위를 만족시키는지 여부로 상기 균등성을 테스트하는 랜덤성 장치.
  5. 제 1 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 PUF 기반 하드웨어에 대하여 포커 테스트(poker test)를 수행하는 랜덤성 테스트 장치.
  6. 제 5 항에 있어서,
    상기 랜덤성 테스트 모듈은 상기 PUF 기반 하드웨어가 출력하는 값의 패턴에 대하여 균등성을 테스트하는 랜덤성 테스트 장치.
  7. 제 6 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 PUF 기반 하드웨어가 출력하는 N 비트-상기 N은 자연수임-의 출력값을 4비트씩 분리하였을 때, 4 비트가 가질 수 있는 값인 0 내지 15에 대하여 각각의 빈도를 카운팅한 결과가 N에 따라 미리 결정된 제 2 범위를 만족시키는지 여부로 상기 균등성을 테스트하는 랜덤성 테스트 장치.
  8. 제 7 항에 있어서,
    상기 처리 장치는, 상기 0 내지 15의 빈도수의 제곱의 총합이 상기 제 2 범위에 있으면, 상기 PUF 기반 하드웨어가 양품인 것으로 판단하는 랜덤성 테스트 장치.
  9. 제 8 항에 있어서,
    상기 처리 장치는, 상기 제곱의 총합을 계차 수열로 변환하여 계산하는 랜덤성 테스트 장치.
  10. 제 9 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 포커 테스트의 중간합에 기초하여 적응적으로 랜덤성 테스트를 수행하는 랜덤성 테스트 장치.
  11. 제 1 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 PUF 기반 하드웨어에 대하여 런 테스트(run test)를 수행하는 랜덤성 테스트 장치.
  12. 제 11 항에 있어서,
    상기 처리 장치는, 상기 PUF 기반 하드웨어로부터 출력되는 N 비트-상기 N은 자연수임-의 출력값을 1 비트씩 연속으로 관찰하였을 때, 변화하는 빈도가 N에 따라 미리 지정된 제 3 범위를 만족시키면, 상기 PUF 기반 하드웨어가 양품인 것으로 판단하는 랜덤성 테스트 장치.
  13. 제 12 항에 있어서,
    상기 랜덤성 테스트 모듈은, 0 또는 1을 상기 PUF 기반 하드웨어로부터 입력받아, 상기 0 또는 상기 1의 연속성을 테스트함으로써 상기 랜덤성을 테스트하는 랜덤성 테스트 장치.
  14. 제 13 항에 있어서,
    상기 제 3 범위는, 상기 0 또는 1의 전체 개수에 따라 결정되는 랜덤성 테스트 장치.
  15. 제 1 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 PUF 기반 하드웨어에 대하여 롱-런 테스트(long-run test)를 수행하는 랜덤성 테스트 장치.
  16. 제 15 항에 있어서,
    상기 랜덤성 테스트 모듈은, 0 또는 1을 상기 PUF 기반 하드웨어로부터 입력받아, 제 4 범위 이상의 비트 시퀀스가 포함되는지 여부에 기초하여 랜덤성을 테스트하는 랜덤성 테스트 장치.
  17. 제 16 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 제 4 범위 이상의 비트 시퀀스가 포함되는 것이 검출되면 상기 랜덤성 테스트를 중단하는 랜덤성 테스트 장치.
  18. 제 16 항에 있어서,
    상기 처리 장치는, 상기 제 4 범위 이상의 비트 시퀀스가 포함되는 경우에는, 상기 PUF 기반 하드웨어를 불량으로 판단하는 랜덤성 테스트 장치.
  19. PUF(Physically Unclonable Function) 기반 하드웨어에 대하여 랜덤성 테스트를 수행하는 단계; 및
    상기 랜덤성 테스트 수행 결과에 기초하여 상기 PUF 기반 하드웨어의 불량 여부를 결정하는 단계
    를 포함하는 랜덤성 테스트 방법.
  20. 0 또는 1을 출력하는 PUF(Physically Unclonable Function) 기반 하드웨어로부터, 상기 0 및 상기 1 중 적어도 하나로 구성되는 비트 시퀀스를 입력받는 단계;
    상기 비트 시퀀스에 대하여 랜덤성 테스트를 수행하는 단계; 및
    상기 랜덤성 테스트 수행 결과에 기초하여 상기 PUF 기반 하드웨어의 불량 여부를 결정하는 단계
    를 포함하는 랜덤성 테스트 방법.
  21. 제19항 내지 제20항 중 어느 한 항의 랜덤성 테스트 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
PCT/KR2014/006897 2013-07-26 2014-07-28 랜덤성 테스트 장치 및 방법 WO2015012667A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/907,801 US10235261B2 (en) 2013-07-26 2014-07-28 Apparatus and method for testing randomness
EP14828675.0A EP3032421A4 (en) 2013-07-26 2014-07-28 Device and method for testing randomness

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0088696 2013-07-26
KR20130088696 2013-07-26

Publications (1)

Publication Number Publication Date
WO2015012667A1 true WO2015012667A1 (ko) 2015-01-29

Family

ID=52393598

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/006897 WO2015012667A1 (ko) 2013-07-26 2014-07-28 랜덤성 테스트 장치 및 방법

Country Status (5)

Country Link
US (1) US10235261B2 (ko)
EP (1) EP3032421A4 (ko)
KR (1) KR102178386B1 (ko)
TW (1) TWI640863B (ko)
WO (1) WO2015012667A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108028757A (zh) * 2015-07-01 2018-05-11 智能Ic卡公司 用于物理不可克隆功能的嵌入式测试电路

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101489091B1 (ko) * 2013-09-30 2015-02-04 (주) 아이씨티케이 반도체 공정을 이용한 식별키 생성 장치 및 방법
KR102050021B1 (ko) * 2017-04-27 2019-11-28 김태욱 식별키 유용성 판별장치
FR3069677A1 (fr) * 2017-07-27 2019-02-01 Stmicroelectronics (Crolles 2) Sas Dispositif de generation d'un nombre aleatoire
US10649735B2 (en) * 2017-09-12 2020-05-12 Ememory Technology Inc. Security system with entropy bits
CN109032868A (zh) * 2018-07-26 2018-12-18 北京计算机技术及应用研究所 一种物理不可克隆函数ip核自动化验证装置
CN109144668B (zh) * 2018-08-06 2022-08-05 华大恒芯科技有限公司 Rfid仿真用例实现方法及装置
US11263331B2 (en) * 2018-09-27 2022-03-01 Taiwan Semiconductor Manufacturing Company, Ltd. Electronic device for checking randomness of identification key device, random key checker circuit, and method of checking randomness of electronic device
CN112764977A (zh) * 2019-11-05 2021-05-07 深圳宏芯宇电子股份有限公司 存储控制器以及测试数据产生方法
US11282799B2 (en) 2020-01-14 2022-03-22 United Microelectronics Corp. Device for generating security key and manufacturing method thereof
WO2022008553A1 (en) * 2020-07-09 2022-01-13 Telefonaktiebolaget Lm Ericsson (Publ) Processing a series of bits
US11782090B2 (en) 2020-12-11 2023-10-10 PUFsecurity Corporation Built-in self-test circuit and built-in self-test method for physical unclonable function quality check
EP4016282A1 (en) * 2020-12-15 2022-06-22 ID Quantique S.A. Qrng chip mass production method
GB2601846A (en) * 2021-03-15 2022-06-15 Nordic Semiconductor Asa Encoding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103131A1 (en) * 2002-11-21 2004-05-27 Ip-First, Llc. Random number generator bit string filter
US20060040731A1 (en) * 2002-09-30 2006-02-23 Hiroyasu Yamamoto Method of uniforming physical random number and physical number generation device
US20090106615A1 (en) * 2007-10-17 2009-04-23 Kabushiki Kaisha Toshiba Test method of integrated circuit with random-number generation circuit and integrated circuit with random-number generation circuit
US20110066670A1 (en) * 2009-08-05 2011-03-17 Verayo, Inc. Combination of values from a pseudo-random source
US8427193B1 (en) * 2010-12-07 2013-04-23 Xilinx, Inc. Intellectual property core protection for integrated circuits

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1887460A3 (en) * 2004-10-15 2008-06-04 Nxp B.V. Integrated circuit with a true random number generator
EP1846866B1 (en) * 2005-02-02 2015-01-07 Intrinsic ID B.V. Method, apparatus, device, system, program, for calibrating
US8290150B2 (en) * 2007-05-11 2012-10-16 Validity Sensors, Inc. Method and system for electronically securing an electronic device using physically unclonable functions
KR100964845B1 (ko) 2007-11-29 2010-06-24 주식회사 시큐트론 공정편차에 기반한 보안 시스템 및 방법
TW200943897A (en) * 2008-01-02 2009-10-16 Verayo Inc Authentication with physical unclonable functions
CN102037676B (zh) * 2008-03-20 2015-02-25 日内瓦大学 基于不可克隆特征的安全物品识别以及认证系统和方法
US8598743B2 (en) * 2008-09-27 2013-12-03 Witricity Corporation Resonator arrays for wireless energy transfer
KR100926214B1 (ko) 2009-04-23 2009-11-09 한양대학교 산학협력단 공정편차를 이용한 디지털 값 생성 장치 및 방법
US8370787B2 (en) * 2009-08-25 2013-02-05 Empire Technology Development Llc Testing security of mapping functions
KR100937516B1 (ko) 2009-10-09 2010-01-19 (주) 아이씨티케이 스마트카드 테스트 시스템 및 그 방법
KR100980052B1 (ko) 2010-04-29 2010-09-06 (주) 아이씨티케이 Nfc를 이용하는 휴대장치의 전력공급 및 통신분기 인터페이스 시스템
KR101139630B1 (ko) * 2010-12-09 2012-05-30 한양대학교 산학협력단 식별키 생성 장치 및 방법
KR101118826B1 (ko) * 2011-02-15 2012-04-20 한양대학교 산학협력단 물리적 공격을 방어하는 암호화 장치 및 암호화 방법
KR101169172B1 (ko) 2011-03-31 2012-08-03 한양대학교 산학협력단 공정편차를 이용한 식별 키 생성 장치 및 방법
ES2593302T3 (es) 2011-03-31 2016-12-07 Ictk Co., Ltd. Aparato y método para generar un valor digital
KR101080529B1 (ko) 2011-03-31 2011-11-04 한양대학교 산학협력단 전력 분석 공격에 안전한 암호화 장치 및 그 동작 방법
US8821965B2 (en) * 2011-04-29 2014-09-02 International Business Machines Corporation Accurate deposition of nano-objects on a surface
KR101080511B1 (ko) 2011-08-03 2011-11-04 (주) 아이씨티케이 식별키 누출을 방지하는 ic 칩 및 이의 인증 방법
EP2747335B1 (en) 2011-08-16 2017-01-11 ICTK Co., Ltd. Device and method for puf-based inter-device security authentication in machine-to-machine communication
US9036891B2 (en) * 2011-10-30 2015-05-19 The United States Of America As Represented By The Secretary Of The Air Force Intrinsic physical layer authentication of integrated circuits
US9054871B2 (en) * 2012-02-21 2015-06-09 California Institute Of Technology Physical key-protected one time pad
KR101663341B1 (ko) * 2012-03-20 2016-10-14 (주) 아이씨티케이 식별키 생성 장치 및 방법
DE102012107024B3 (de) * 2012-08-01 2013-08-29 Infineon Technologies Ag Schaltung zum strombegrenzten Umladen eines Knotens
KR101332517B1 (ko) 2012-08-21 2013-11-22 한양대학교 산학협력단 인증 정보 처리 장치 및 방법
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
US9148796B2 (en) * 2012-12-13 2015-09-29 Ninve Jr. Inc. Resilient antenna disturbance detector
KR101442401B1 (ko) 2013-03-20 2014-09-23 (주) 아이씨티케이 Puf를 생성하는 장치 및 방법
KR20140126787A (ko) 2013-04-22 2014-11-03 (주) 아이씨티케이 PUF 기반 하드웨어 OTP 제공 장치 및 이를 이용한 2-Factor 인증 방법
EP2816756A1 (fr) * 2013-06-18 2014-12-24 Nagravision S.A. Procédé et dispositif cryptographique unique à fonction physiquement induplicable
KR20150024676A (ko) 2013-08-27 2015-03-09 (주) 아이씨티케이 반도체 프로세스의 포토 마스크를 변형하여 puf를 생성하는 방법 및 장치
KR20150032606A (ko) 2013-08-30 2015-03-27 (주) 아이씨티케이 카드 결제 단말 테스트 시스템 및 방법
KR101489088B1 (ko) 2013-09-03 2015-02-04 (주) 아이씨티케이 식별키 생성 장치 및 방법
KR101541597B1 (ko) 2013-09-03 2015-08-03 (주) 아이씨티케이 식별키 생성 장치 및 방법
KR101488616B1 (ko) 2013-09-06 2015-02-06 (주) 아이씨티케이 식별키 생성 장치 및 방법
KR101504025B1 (ko) 2013-09-06 2015-03-18 (주) 아이씨티케이 식별 키 생성 장치 및 방법
KR101489091B1 (ko) 2013-09-30 2015-02-04 (주) 아이씨티케이 반도체 공정을 이용한 식별키 생성 장치 및 방법
KR101457305B1 (ko) 2013-10-10 2014-11-03 (주) 아이씨티케이 식별키 생성 장치 및 방법
KR101495448B1 (ko) 2013-10-29 2015-02-26 (주) 아이씨티케이 사용자 인증을 위한 ic 칩 및 인증 방법
KR102198499B1 (ko) 2013-12-31 2021-01-05 주식회사 아이씨티케이 홀딩스 디지털 값 처리 장치 및 방법
KR102186475B1 (ko) 2013-12-31 2020-12-03 주식회사 아이씨티케이 홀딩스 랜덤한 디지털 값을 생성하는 장치 및 방법
KR20140115278A (ko) 2014-04-17 2014-09-30 (주) 아이씨티케이 Puf를 생성하는 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060040731A1 (en) * 2002-09-30 2006-02-23 Hiroyasu Yamamoto Method of uniforming physical random number and physical number generation device
US20040103131A1 (en) * 2002-11-21 2004-05-27 Ip-First, Llc. Random number generator bit string filter
US20090106615A1 (en) * 2007-10-17 2009-04-23 Kabushiki Kaisha Toshiba Test method of integrated circuit with random-number generation circuit and integrated circuit with random-number generation circuit
US20110066670A1 (en) * 2009-08-05 2011-03-17 Verayo, Inc. Combination of values from a pseudo-random source
US8427193B1 (en) * 2010-12-07 2013-04-23 Xilinx, Inc. Intellectual property core protection for integrated circuits

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3032421A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108028757A (zh) * 2015-07-01 2018-05-11 智能Ic卡公司 用于物理不可克隆功能的嵌入式测试电路
CN108028757B (zh) * 2015-07-01 2021-01-12 智能Ic卡公司 用于物理不可克隆功能的嵌入式测试电路

Also Published As

Publication number Publication date
US10235261B2 (en) 2019-03-19
KR102178386B1 (ko) 2020-11-12
EP3032421A4 (en) 2017-04-19
TW201520761A (zh) 2015-06-01
US20160170856A1 (en) 2016-06-16
TWI640863B (zh) 2018-11-11
KR20150013091A (ko) 2015-02-04
EP3032421A1 (en) 2016-06-15

Similar Documents

Publication Publication Date Title
WO2015012667A1 (ko) 랜덤성 테스트 장치 및 방법
WO2012111872A1 (ko) 물리적 공격을 방어하는 암호화 장치 및 암호화 방법
WO2012077856A1 (ko) 식별키 생성 장치 및 방법
WO2014030911A1 (ko) 인증 정보 처리 장치 및 방법
WO2013025060A2 (ko) 사물지능통신에서 puf에 기반한 장치간 보안 인증 장치 및 방법
US9121896B2 (en) Device for detecting the thinning down of the substrate of an integrated circuit chip
WO2019088689A1 (ko) Puf-qrng 양자암호 보안단말기 시스템 및 암호키 생성 방법
WO2015102253A1 (ko) 디지털 값 처리 장치 및 방법
WO2010123185A1 (en) Semiconductor chip and method for generating digital value using process variation
WO2018151390A1 (ko) 사물 인터넷 장치
WO2015102359A1 (ko) 랜덤한 디지털 값을 생성하는 장치 및 방법
WO2018199539A1 (ko) 식별키 생성장치 및 식별키 생성방법
EP3147830B1 (en) Protecting an integrated circuit
WO2015053441A1 (ko) 식별키 생성 장치 및 방법
WO2020231177A1 (en) Electronic device and method for receiving push message stored in blockchain
WO2015034146A1 (ko) 식별키 생성 장치 및 방법
WO2017126900A1 (ko) 식별키 생성 장치 및 그 관리 방법
US11411749B2 (en) System and method for performing netlist obfuscation for a semiconductor device
JP7378089B2 (ja) 不正通信検知装置、不正通信検知方法及び製造システム
WO2017078427A1 (ko) 보안 장치 및 그 동작 방법
WO2022010136A1 (ko) 클라우드 서버 및 이의 제어 방법
US10339979B2 (en) Secure protection block and function block system and method
WO2015046682A1 (ko) 반도체 공정을 이용한 식별키 생성 장치 및 방법
WO2015053440A1 (ko) 식별 키 생성 장치 및 방법
WO2017138799A1 (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: 14828675

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14907801

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2014828675

Country of ref document: EP